#pragma once ///////// /// @brief forward declaration, using as a hack to generate a genesis.json file /// for testing ///////// namespace graphene { namespace app { namespace detail { graphene::chain::genesis_state_type create_example_genesis(); } } } // graphene::app::detail ///////// /// @brief create a genesis_json file /// @param directory the directory to place the file "genesis.json" /// @returns the full path to the file //////// boost::filesystem::path create_genesis_file(fc::temp_directory& directory) { boost::filesystem::path genesis_path = boost::filesystem::path{directory.path().generic_string()} / "genesis.json"; fc::path genesis_out = genesis_path; graphene::chain::genesis_state_type genesis_state = graphene::app::detail::create_example_genesis(); /* Work In Progress: Place some accounts in the Genesis file so as to pre-make some accounts to play with std::string test_prefix = "test"; // helper lambda auto get_test_key = [&]( std::string prefix, uint32_t i ) -> public_key_type { return fc::ecc::private_key::regenerate( fc::sha256::hash( test_prefix + prefix + std::to_string(i) ) ).get_public_key(); }; // create 2 accounts to use for (int i = 1; i <= 2; ++i ) { genesis_state_type::initial_account_type dev_account( test_prefix + std::to_string(i), get_test_key("owner-", i), get_test_key("active-", i), false); genesis_state.initial_accounts.push_back(dev_account); // give her some coin } */ fc::json::save_to_file(genesis_state, genesis_out); return genesis_path; }