diff --git a/libraries/chain/CMakeLists.txt b/libraries/chain/CMakeLists.txt index c2ed25de31cc411a8d85661595efdaf89e24b58b..27e61a86cf3b0e69215a5af49246700ada9c6f15 100644 --- a/libraries/chain/CMakeLists.txt +++ b/libraries/chain/CMakeLists.txt @@ -8,7 +8,6 @@ add_library( eos_chain transaction.cpp block.cpp - genesis_state.cpp get_config.cpp block_log.cpp diff --git a/libraries/chain/include/eos/chain/chain_controller.hpp b/libraries/chain/include/eos/chain/chain_controller.hpp index 7260fb2de6af955753c82cb89075243123d2d852..5049911c838fa2cb43325eb6ac143f9dbaa3bab6 100644 --- a/libraries/chain/include/eos/chain/chain_controller.hpp +++ b/libraries/chain/include/eos/chain/chain_controller.hpp @@ -27,7 +27,6 @@ #include #include #include -#include #include #include diff --git a/libraries/egenesis/CMakeLists.txt b/libraries/egenesis/CMakeLists.txt index c5ee5c16e113e6ca39a11731b5ae60d6f124f090..3358e944bb344ea4117d6430405ea225c49db66a 100644 --- a/libraries/egenesis/CMakeLists.txt +++ b/libraries/egenesis/CMakeLists.txt @@ -4,7 +4,7 @@ add_library( eos_egenesis_none include/eos/egenesis/egenesis.hpp ) -target_link_libraries( eos_egenesis_none eos_chain fc ) +target_link_libraries( eos_egenesis_none eos_chain eos_native_contract fc ) target_include_directories( eos_egenesis_none PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" ) @@ -42,8 +42,8 @@ add_custom_command( add_library( eos_egenesis_brief "${CMAKE_CURRENT_BINARY_DIR}/egenesis_brief.cpp" include/eos/egenesis/egenesis.hpp ) add_library( eos_egenesis_full "${CMAKE_CURRENT_BINARY_DIR}/egenesis_full.cpp" include/eos/egenesis/egenesis.hpp ) -target_link_libraries( eos_egenesis_brief eos_chain fc ) -target_link_libraries( eos_egenesis_full eos_chain fc ) +target_link_libraries( eos_egenesis_brief eos_chain eos_native_contract fc ) +target_link_libraries( eos_egenesis_full eos_chain eos_native_contract fc ) target_include_directories( eos_egenesis_brief PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" ) diff --git a/libraries/egenesis/embed_genesis.cpp b/libraries/egenesis/embed_genesis.cpp index 2c6d2f882562c33384a92c441ce5b77dc1be2a55..676f99babc41b6fbf0e43cc12e7a093b30a82178 100644 --- a/libraries/egenesis/embed_genesis.cpp +++ b/libraries/egenesis/embed_genesis.cpp @@ -34,10 +34,10 @@ #include // required for gcc in release mode #include #include -#include -#include +#include using namespace eos::chain; +using eos::native_contract::genesis_state_type; static const char generated_file_banner[] = "// _ _ __ _ _ //\n" @@ -54,7 +54,7 @@ static const char generated_file_banner[] = "// Warning: This is a generated file, any changes made here will be //\n" "// overwritten by the build process. If you need to change what //\n" "// is generated here, you should use the CMake variable //\n" -"// EOS_EGENESIS_JSON to specify an embedded genesis state. //\n" +"// EOS_EGENESIS_JSON to specify an embedded genesis state. //\n" "// //\n" ; diff --git a/libraries/egenesis/include/eos/egenesis/egenesis.hpp b/libraries/egenesis/include/eos/egenesis/egenesis.hpp index 556d1295e578537305a5aac437208aee28839ba1..1e0f010c0533b6bcda4df0bcdd18d1e936a32fe3 100644 --- a/libraries/egenesis/include/eos/egenesis/egenesis.hpp +++ b/libraries/egenesis/include/eos/egenesis/egenesis.hpp @@ -28,7 +28,7 @@ #include #include -#include +#include namespace eos { namespace egenesis { diff --git a/libraries/native_contract/CMakeLists.txt b/libraries/native_contract/CMakeLists.txt index daf73f7b254fbdd526132d60c4112019c42b094a..1f58ce9f733cb41912c2b13fc4ab4c34305d1c6d 100644 --- a/libraries/native_contract/CMakeLists.txt +++ b/libraries/native_contract/CMakeLists.txt @@ -7,6 +7,7 @@ add_library( eos_native_contract staked_balance_objects.cpp system_contract.cpp native_contract_chain_initializer.cpp + genesis_state.cpp ${HEADERS} ) diff --git a/libraries/chain/genesis_state.cpp b/libraries/native_contract/genesis_state.cpp similarity index 87% rename from libraries/chain/genesis_state.cpp rename to libraries/native_contract/genesis_state.cpp index aecf10cf27ce14ccbe96620802718766d7339449..f35db2019d3c20c541e4d3302c22b26eaf399d87 100644 --- a/libraries/chain/genesis_state.cpp +++ b/libraries/native_contract/genesis_state.cpp @@ -22,16 +22,15 @@ * THE SOFTWARE. */ -#include +#include // these are required to serialize a genesis_state #include // required for gcc in release mode -namespace eos { namespace chain { +namespace eos { namespace native_contract { -chain_id_type genesis_state_type::compute_chain_id() const -{ +chain::chain_id_type genesis_state_type::compute_chain_id() const { return initial_chain_id; } -} } // eos::chain +} } // eos::native_contract diff --git a/libraries/chain/include/eos/chain/genesis_state.hpp b/libraries/native_contract/include/eos/native_contract/genesis_state.hpp similarity index 75% rename from libraries/chain/include/eos/chain/genesis_state.hpp rename to libraries/native_contract/include/eos/native_contract/genesis_state.hpp index 5db38d2d7b84bd3bba57a9ab89ac8d0bf92e9ba6..54c7adf2fee5232669afa0f4a660be96a60e26e3 100644 --- a/libraries/chain/include/eos/chain/genesis_state.hpp +++ b/libraries/native_contract/include/eos/native_contract/genesis_state.hpp @@ -32,40 +32,43 @@ #include #include -namespace eos { namespace chain { +namespace eos { namespace native_contract { using std::string; using std::vector; +using chain::PublicKey; +using chain::Asset; +using chain::Time; +using chain::BlockchainConfiguration; struct genesis_state_type { struct initial_account_type { initial_account_type(const string& name = string(), uint64_t staking_bal = 0, uint64_t liquid_bal = 0, - const public_key_type& owner_key = public_key_type(), - const public_key_type& active_key = public_key_type()) + const PublicKey& owner_key = PublicKey(), + const PublicKey& active_key = PublicKey()) : name(name), staking_balance(staking_bal), liquid_balance(liquid_bal), owner_key(owner_key), - active_key(active_key == public_key_type()? owner_key : active_key) + active_key(active_key == PublicKey()? owner_key : active_key) {} string name; Asset staking_balance; Asset liquid_balance; - public_key_type owner_key; - public_key_type active_key; + PublicKey owner_key; + PublicKey active_key; }; struct initial_producer_type { initial_producer_type(const string& name = string(), - const public_key_type& signing_key = public_key_type()) + const PublicKey& signing_key = PublicKey()) : owner_name(name), block_signing_key(signing_key) {} /// Must correspond to one of the initial accounts string owner_name; - public_key_type block_signing_key; + PublicKey block_signing_key; }; - time_point_sec initial_timestamp; - BlockchainConfiguration initial_configuration = - { + Time initial_timestamp; + BlockchainConfiguration initial_configuration = { config::DefaultMaxBlockSize, config::DefaultTargetBlockSize, config::DefaultMaxStorageSize, @@ -80,23 +83,23 @@ struct genesis_state_type { /** * Temporary, will be moved elsewhere. */ - chain_id_type initial_chain_id; + chain::chain_id_type initial_chain_id; /** * Get the chain_id corresponding to this genesis state. * * This is the SHA256 serialization of the genesis_state. */ - chain_id_type compute_chain_id() const; + chain::chain_id_type compute_chain_id() const; }; -} } // namespace eos::chain +} } // namespace eos::native_contract -FC_REFLECT(eos::chain::genesis_state_type::initial_account_type, +FC_REFLECT(eos::native_contract::genesis_state_type::initial_account_type, (name)(staking_balance)(liquid_balance)(owner_key)(active_key)) -FC_REFLECT(eos::chain::genesis_state_type::initial_producer_type, (owner_name)(block_signing_key)) +FC_REFLECT(eos::native_contract::genesis_state_type::initial_producer_type, (owner_name)(block_signing_key)) -FC_REFLECT(eos::chain::genesis_state_type, +FC_REFLECT(eos::native_contract::genesis_state_type, (initial_timestamp)(initial_configuration)(initial_accounts) (initial_producers)(initial_chain_id)) diff --git a/libraries/native_contract/include/eos/native_contract/native_contract_chain_initializer.hpp b/libraries/native_contract/include/eos/native_contract/native_contract_chain_initializer.hpp index cf95d1c8526a29d870529f99fda50459e9a3a7f0..35b93b3b1a9a3a2abe6f946455d78ab246ebc9a7 100644 --- a/libraries/native_contract/include/eos/native_contract/native_contract_chain_initializer.hpp +++ b/libraries/native_contract/include/eos/native_contract/native_contract_chain_initializer.hpp @@ -1,13 +1,15 @@ #pragma once +#include + #include namespace eos { namespace native_contract { class native_contract_chain_initializer : public chain::chain_initializer { - chain::genesis_state_type genesis; + genesis_state_type genesis; public: - native_contract_chain_initializer(const chain::genesis_state_type& genesis) : genesis(genesis) {} + native_contract_chain_initializer(const genesis_state_type& genesis) : genesis(genesis) {} virtual ~native_contract_chain_initializer() {} virtual std::vector prepare_database(chain::chain_controller& chain, chainbase::database& db); diff --git a/plugins/chain_plugin/chain_plugin.cpp b/plugins/chain_plugin/chain_plugin.cpp index 2331bc28f5faeb80fb28e8b5bc02ca8b625312c8..42bb4b48db9cfa2dde92933d4e7e5bdb3597a9c5 100644 --- a/plugins/chain_plugin/chain_plugin.cpp +++ b/plugins/chain_plugin/chain_plugin.cpp @@ -2,10 +2,10 @@ #include #include #include -#include #include #include +#include #include #include @@ -94,7 +94,7 @@ void chain_plugin::plugin_initialize(const variables_map& options) { void chain_plugin::plugin_startup() { auto& db = app().get_plugin().db(); - auto genesis = fc::json::from_file(my->genesis_file).as(); + auto genesis = fc::json::from_file(my->genesis_file).as(); native_contract::native_contract_chain_initializer initializer(genesis); my->fork_db = fork_database(); diff --git a/tests/common/database_fixture.cpp b/tests/common/database_fixture.cpp index a20ff0e84fcb00b04d8ed49c249c8182e64c21dd..cfe56dbfe4ad437430dd3580f3f382708835d75c 100644 --- a/tests/common/database_fixture.cpp +++ b/tests/common/database_fixture.cpp @@ -72,11 +72,11 @@ fc::path testing_fixture::get_temp_dir(std::string id) { return named_temp_dirs.emplace(std::make_pair(id, fc::temp_directory())).first->second.path(); } -const genesis_state_type&testing_fixture::genesis_state() const { +const native_contract::genesis_state_type& testing_fixture::genesis_state() const { return default_genesis_state; } -genesis_state_type&testing_fixture::genesis_state() { +native_contract::genesis_state_type& testing_fixture::genesis_state() { return default_genesis_state; } diff --git a/tests/common/database_fixture.hpp b/tests/common/database_fixture.hpp index b822ffff04d7c0796ec1d7787b8aef8847de6246..3604fee68b995c1496efa670094fb55ffa7405f6 100644 --- a/tests/common/database_fixture.hpp +++ b/tests/common/database_fixture.hpp @@ -55,11 +55,11 @@ extern uint32_t EOS_TESTING_GENESIS_TIMESTAMP; ("exc_type", #exc_type) \ ); \ if( fc::enable_record_assert_trip ) \ - std::cout << "EOS_REQUIRE_THROW begin " \ + std::cout << "EOS_REQUIRE_THROW begin " \ << req_throw_info << std::endl; \ BOOST_REQUIRE_THROW( expr, exc_type ); \ if( fc::enable_record_assert_trip ) \ - std::cout << "EOS_REQUIRE_THROW end " \ + std::cout << "EOS_REQUIRE_THROW end " \ << req_throw_info << std::endl; \ } @@ -73,11 +73,11 @@ extern uint32_t EOS_TESTING_GENESIS_TIMESTAMP; ("exc_type", #exc_type) \ ); \ if( fc::enable_record_assert_trip ) \ - std::cout << "EOS_CHECK_THROW begin " \ + std::cout << "EOS_CHECK_THROW begin " \ << req_throw_info << std::endl; \ BOOST_CHECK_THROW( expr, exc_type ); \ if( fc::enable_record_assert_trip ) \ - std::cout << "EOS_CHECK_THROW end " \ + std::cout << "EOS_CHECK_THROW end " \ << req_throw_info << std::endl; \ } @@ -109,8 +109,8 @@ public: */ fc::path get_temp_dir(std::string id = std::string()); - const genesis_state_type& genesis_state() const; - genesis_state_type& genesis_state(); + const native_contract::genesis_state_type& genesis_state() const; + native_contract::genesis_state_type& genesis_state(); private_key_type get_private_key(const public_key_type& public_key) const; @@ -118,7 +118,7 @@ protected: std::vector anonymous_temp_dirs; std::map named_temp_dirs; std::map key_ring; - genesis_state_type default_genesis_state; + native_contract::genesis_state_type default_genesis_state; }; /**