diff --git a/libraries/chain/controller.cpp b/libraries/chain/controller.cpp index 3825d839d4..a528960790 100644 --- a/libraries/chain/controller.cpp +++ b/libraries/chain/controller.cpp @@ -1014,8 +1014,8 @@ struct controller_impl { ); } - sha256 calculate_integrity_hash() { - sha256::encoder enc; + fc::sha256 calculate_integrity_hash() { + fc::sha256::encoder enc; auto hash_writer = std::make_shared(enc); add_to_snapshot(hash_writer); hash_writer->finalize(); @@ -2091,7 +2091,7 @@ struct controller_impl { } else { packed_transaction_ptr ptrx( b, &pt ); // alias signed_block_ptr auto fut = transaction_metadata::start_recover_keys( - std::move( ptrx ), thread_pool.get_executor(), chain_id, microseconds::maximum(), transaction_metadata::trx_type::input ); + std::move( ptrx ), thread_pool.get_executor(), chain_id, fc::microseconds::maximum(), transaction_metadata::trx_type::input ); trx_metas.emplace_back( transaction_metadata_ptr{}, std::move( fut ) ); } } @@ -3218,7 +3218,7 @@ block_id_type controller::get_block_id_for_num( uint32_t block_num )const { try return id; } FC_CAPTURE_AND_RETHROW( (block_num) ) } -sha256 controller::calculate_integrity_hash() { try { +fc::sha256 controller::calculate_integrity_hash() { try { return my->calculate_integrity_hash(); } FC_LOG_AND_RETHROW() } diff --git a/libraries/chain/include/eosio/chain/apply_context.hpp b/libraries/chain/include/eosio/chain/apply_context.hpp index 090531bfcb..da6e17cfa6 100644 --- a/libraries/chain/include/eosio/chain/apply_context.hpp +++ b/libraries/chain/include/eosio/chain/apply_context.hpp @@ -14,6 +14,7 @@ namespace chainbase { class database; } namespace eosio { namespace chain { class controller; +class account_metadata_object; class apply_context { private: diff --git a/libraries/chain/include/eosio/chain/controller.hpp b/libraries/chain/include/eosio/chain/controller.hpp index e0d40bf21c..5960853786 100644 --- a/libraries/chain/include/eosio/chain/controller.hpp +++ b/libraries/chain/include/eosio/chain/controller.hpp @@ -6,8 +6,6 @@ #include #include -#include -#include #include #include #include @@ -259,7 +257,7 @@ namespace eosio { namespace chain { // thread-safe block_id_type get_block_id_for_num( uint32_t block_num )const; - sha256 calculate_integrity_hash(); + fc::sha256 calculate_integrity_hash(); void write_snapshot( const snapshot_writer_ptr& snapshot ); bool sender_avoids_whitelist_blacklist_enforcement( account_name sender )const; diff --git a/libraries/chain/transaction_context.cpp b/libraries/chain/transaction_context.cpp index 3ee699c496..8c9e434d8f 100644 --- a/libraries/chain/transaction_context.cpp +++ b/libraries/chain/transaction_context.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -8,16 +9,6 @@ #include #include -#pragma push_macro("N") -#undef N -#include -#include -#include -#include -#include -#include -#pragma pop_macro("N") - #include namespace eosio { namespace chain { @@ -828,7 +819,7 @@ namespace eosio { namespace chain { actors.insert( auth.actor ); } } - EOS_ASSERT( one_auth || is_transient(), tx_no_auths, "transaction must have at least one authorization" ); + EOS_ASSERT( one_auth || is_read_only(), tx_no_auths, "transaction must have at least one authorization" ); if( enforce_actor_whitelist_blacklist ) { control.check_actor_list( actors ); diff --git a/libraries/chain/webassembly/authorization.cpp b/libraries/chain/webassembly/authorization.cpp index 43af5cdce6..8f446591ba 100644 --- a/libraries/chain/webassembly/authorization.cpp +++ b/libraries/chain/webassembly/authorization.cpp @@ -1,6 +1,8 @@ #include #include +#include + namespace eosio { namespace chain { namespace webassembly { void interface::require_auth( account_name account ) const { context.require_authorization( account ); @@ -42,7 +44,7 @@ namespace eosio { namespace chain { namespace webassembly { auto s = fc::raw::pack_size(result); if (s <= packed_result.size()) { - datastream ds(packed_result.data(), s); + fc::datastream ds(packed_result.data(), s); fc::raw::pack(ds, result); } return s; diff --git a/libraries/chain/webassembly/crypto.cpp b/libraries/chain/webassembly/crypto.cpp index 095ee4c1d9..d169123d7a 100644 --- a/libraries/chain/webassembly/crypto.cpp +++ b/libraries/chain/webassembly/crypto.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -25,8 +26,8 @@ namespace eosio { namespace chain { namespace webassembly { legacy_span pub ) const { fc::crypto::signature s; fc::crypto::public_key p; - datastream ds( sig.data(), sig.size() ); - datastream pubds ( pub.data(), pub.size() ); + fc::datastream ds( sig.data(), sig.size() ); + fc::datastream pubds ( pub.data(), pub.size() ); fc::raw::unpack( ds, s ); fc::raw::unpack( pubds, p ); @@ -48,7 +49,7 @@ namespace eosio { namespace chain { namespace webassembly { legacy_span sig, legacy_span pub ) const { fc::crypto::signature s; - datastream ds( sig.data(), sig.size() ); + fc::datastream ds( sig.data(), sig.size() ); fc::raw::unpack(ds, s); EOS_ASSERT(s.which() < context.db.get().num_supported_key_types, unactivated_signature_type, @@ -74,7 +75,7 @@ namespace eosio { namespace chain { namespace webassembly { // this will do one less copy for those keys while maintaining the rules of // [0..33) dest sizes: assert (asserts in fc::raw::pack) // [33..inf) dest sizes: return packed size (always 33) - datastream out_ds( pub.data(), pub.size() ); + fc::datastream out_ds( pub.data(), pub.size() ); fc::raw::pack(out_ds, recovered); return out_ds.tellp(); } diff --git a/libraries/chain/webassembly/permission.cpp b/libraries/chain/webassembly/permission.cpp index c5b521b851..a65ad82fcd 100644 --- a/libraries/chain/webassembly/permission.cpp +++ b/libraries/chain/webassembly/permission.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include diff --git a/libraries/chain/webassembly/privileged.cpp b/libraries/chain/webassembly/privileged.cpp index 1e8ce2382c..f9a8456745 100644 --- a/libraries/chain/webassembly/privileged.cpp +++ b/libraries/chain/webassembly/privileged.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -5,6 +6,8 @@ #include #include +#include + #include #include @@ -94,7 +97,7 @@ namespace eosio { namespace chain { namespace webassembly { return s; if ( s <= packed_parameters.size() ) { - datastream ds( packed_parameters.data(), s ); + fc::datastream ds( packed_parameters.data(), s ); fc::raw::pack(ds, version); fc::raw::pack(ds, params); } @@ -102,7 +105,7 @@ namespace eosio { namespace chain { namespace webassembly { } void interface::set_wasm_parameters_packed( span packed_parameters ) { EOS_ASSERT(!context.trx_context.is_read_only(), wasm_execution_error, "set_wasm_parameters_packed not allowed in a readonly transaction"); - datastream ds( packed_parameters.data(), packed_parameters.size() ); + fc::datastream ds( packed_parameters.data(), packed_parameters.size() ); uint32_t version; chain::wasm_config cfg; fc::raw::unpack(ds, version); @@ -117,7 +120,7 @@ namespace eosio { namespace chain { namespace webassembly { } int64_t interface::set_proposed_producers( legacy_span packed_producer_schedule) { EOS_ASSERT(!context.trx_context.is_read_only(), wasm_execution_error, "set_proposed_producers not allowed in a readonly transaction"); - datastream ds( packed_producer_schedule.data(), packed_producer_schedule.size() ); + fc::datastream ds( packed_producer_schedule.data(), packed_producer_schedule.size() ); std::vector producers; std::vector old_version; fc::raw::unpack(ds, old_version); @@ -137,7 +140,7 @@ namespace eosio { namespace chain { namespace webassembly { if (packed_producer_format == 0) { return set_proposed_producers(std::move(packed_producer_schedule)); } else if (packed_producer_format == 1) { - datastream ds( packed_producer_schedule.data(), packed_producer_schedule.size() ); + fc::datastream ds( packed_producer_schedule.data(), packed_producer_schedule.size() ); vector producers; fc::raw::unpack(ds, producers); @@ -154,7 +157,7 @@ namespace eosio { namespace chain { namespace webassembly { if( packed_blockchain_parameters.size() == 0 ) return s; if ( s <= packed_blockchain_parameters.size() ) { - datastream ds( packed_blockchain_parameters.data(), s ); + fc::datastream ds( packed_blockchain_parameters.data(), s ); fc::raw::pack(ds, gpo.configuration.v0()); return s; } @@ -163,7 +166,7 @@ namespace eosio { namespace chain { namespace webassembly { void interface::set_blockchain_parameters_packed( legacy_span packed_blockchain_parameters ) { EOS_ASSERT(!context.trx_context.is_read_only(), wasm_execution_error, "set_blockchain_parameters_packed not allowed in a readonly transaction"); - datastream ds( packed_blockchain_parameters.data(), packed_blockchain_parameters.size() ); + fc::datastream ds( packed_blockchain_parameters.data(), packed_blockchain_parameters.size() ); chain::chain_config_v0 cfg; fc::raw::unpack(ds, cfg); cfg.validate(); @@ -174,7 +177,7 @@ namespace eosio { namespace chain { namespace webassembly { } uint32_t interface::get_parameters_packed( span packed_parameter_ids, span packed_parameters) const{ - datastream ds_ids( packed_parameter_ids.data(), packed_parameter_ids.size() ); + fc::datastream ds_ids( packed_parameter_ids.data(), packed_parameter_ids.size() ); chain::chain_config cfg = context.control.get_global_properties().configuration; std::vector ids; @@ -188,14 +191,14 @@ namespace eosio { namespace chain { namespace webassembly { chain::config_parse_error, "get_parameters_packed: buffer size is smaller than ${size}", ("size", size)); - datastream ds( packed_parameters.data(), size ); + fc::datastream ds( packed_parameters.data(), size ); fc::raw::pack( ds, config_range ); return size; } void interface::set_parameters_packed( span packed_parameters ){ EOS_ASSERT(!context.trx_context.is_read_only(), wasm_execution_error, "set_parameters_packed not allowed in a readonly transaction"); - datastream ds( packed_parameters.data(), packed_parameters.size() ); + fc::datastream ds( packed_parameters.data(), packed_parameters.size() ); chain::chain_config cfg = context.control.get_global_properties().configuration; config_range config_range(cfg, {context.control}); diff --git a/libraries/chain/webassembly/runtimes/eos-vm.cpp b/libraries/chain/webassembly/runtimes/eos-vm.cpp index b0c81c3c6a..033cf978a3 100644 --- a/libraries/chain/webassembly/runtimes/eos-vm.cpp +++ b/libraries/chain/webassembly/runtimes/eos-vm.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include