def create_new_genesis_params_and_state(): # # GENESIS STATE, HEADER PARAMS # new_genesis_private_key = genesis_private_key print("Ceating new genesis params and state for genesis wallet address:") print(new_genesis_private_key.public_key.to_canonical_address()) total_supply = 350000000 * 10**18 new_mainnet_genesis_params = { 'chain_address': new_genesis_private_key.public_key.to_canonical_address(), 'parent_hash': constants.GENESIS_PARENT_HASH, 'transaction_root': constants.BLANK_ROOT_HASH, 'receive_transaction_root': constants.BLANK_ROOT_HASH, 'receipt_root': constants.BLANK_ROOT_HASH, 'bloom': 0, 'block_number': constants.GENESIS_BLOCK_NUMBER, 'gas_limit': constants.GENESIS_GAS_LIMIT, 'gas_used': 0, 'timestamp': 1556733839, 'extra_data': constants.GENESIS_EXTRA_DATA, 'reward_hash': constants.GENESIS_REWARD_HASH, 'account_balance': total_supply, } new_genesis_state = { new_genesis_private_key.public_key.to_canonical_address(): { "balance": total_supply, "code": b"", "nonce": 0, "storage": {} } } testdb1 = MemoryDB() genesis_header = MainnetChain.create_genesis_header( testdb1, new_genesis_private_key.public_key.to_canonical_address(), new_genesis_private_key, new_mainnet_genesis_params, new_genesis_state) print() print("New completed and signed genesis header params") parameter_names = list(dict(genesis_header._meta.fields).keys()) header_params = {} for parameter_name in parameter_names: header_params[parameter_name] = getattr(genesis_header, parameter_name) print(header_params) print()
def create_new_genesis_params_and_state(private_key, total_supply = 100000000 * 10 ** 18, timestamp = int(time.time())): print("CREATING GENESIS BLOCK WITH TOTAL SUPPLY = ", total_supply) new_genesis_private_key = private_key print("Ceating new genesis params and state for genesis wallet address:") print(new_genesis_private_key.public_key.to_canonical_address()) new_mainnet_genesis_params = { 'chain_address': new_genesis_private_key.public_key.to_canonical_address(), 'parent_hash': constants.GENESIS_PARENT_HASH, 'transaction_root': constants.BLANK_ROOT_HASH, 'receive_transaction_root': constants.BLANK_ROOT_HASH, 'receipt_root': constants.BLANK_ROOT_HASH, 'bloom': 0, 'block_number': constants.GENESIS_BLOCK_NUMBER, 'gas_limit': constants.GENESIS_GAS_LIMIT, 'gas_used': 0, 'timestamp': timestamp, 'extra_data': constants.GENESIS_EXTRA_DATA, 'reward_hash': constants.GENESIS_REWARD_HASH, 'account_balance': total_supply, } new_genesis_state = { new_genesis_private_key.public_key.to_canonical_address(): { "balance": total_supply, "code": b"", "nonce": 0, "storage": {} } } testdb1 = MemoryDB() genesis_header = MainnetChain.create_genesis_header(testdb1, new_genesis_private_key.public_key.to_canonical_address(), new_genesis_private_key, new_mainnet_genesis_params, new_genesis_state) parameter_names = list(dict(genesis_header._meta.fields).keys()) header_params = {} for parameter_name in parameter_names: header_params[parameter_name] = getattr(genesis_header, parameter_name) return header_params, new_genesis_state