def geth_bare_genesis(genesis_path, private_keys, random_marker): """Writes a bare genesis to `genesis_path`. Args: genesis_path (str): the path in which the genesis block is written. private_keys list(str): iterable list of privatekeys whose corresponding accounts will have a premined balance available. """ account_addresses = [ privatekey_to_address(key) for key in sorted(set(private_keys)) ] alloc = { address_encoder(address): { 'balance': DEFAULT_BALANCE_BIN, } for address in account_addresses } genesis = GENESIS_STUB.copy() genesis['alloc'].update(alloc) genesis['config']['clique'] = {'period': 1, 'epoch': 30000} genesis['extraData'] = clique_extradata( random_marker, address_encoder(account_addresses[0])[2:], ) with open(genesis_path, 'w') as handler: json.dump(genesis, handler)
def ethereum_accounts(private_keys) -> List[typing.EthAddress]: return [ to_checksum_address(address_encoder(privatekey_to_address(key))) for key in sorted(set(private_keys)) ]