State management and VM instance creation
How the AppLayer ecosystem manages the blockchain state alongside an EVM.
ContractHost(
evmc_vm* vm,
DumpManager& manager,
const Storage& storage,
const Hash& randomnessSeed,
const evmc_tx_context& currentTxContext,
boost::unordered_flat_map<Address, std::unique_ptr<BaseContract>, SafeHash>& contracts,
boost::unordered_flat_map<Address, NonNullUniquePtr<Account>, SafeHash>& accounts,
boost::unordered_flat_map<StorageKey, Hash, SafeHash>& vmStorage,
const Hash& txHash,
const uint64_t txIndex,
const Hash& blockHash,
int64_t& txGasLimit
);bool account_exists(const evmc::address& addr) const noexcept final;
evmc::bytes32 get_storage(const evmc::address& addr, const evmc::bytes32& key) const noexcept final;
evmc_storage_status set_storage(const evmc::address& addr, const evmc::bytes32& key, const evmc::bytes32& value) noexcept final;
evmc::uint256be get_balance(const evmc::address& addr) const noexcept final;
size_t get_code_size(const evmc::address& addr) const noexcept final;
evmc::bytes32 get_code_hash(const evmc::address& addr) const noexcept final;
size_t copy_code(const evmc::address& addr, size_t code_offset, uint8_t* buffer_data, size_t buffer_size) const noexcept final;
bool selfdestruct(const evmc::address& addr, const evmc::address& beneficiary) noexcept final;
evmc::Result call(const evmc_message& msg) noexcept final;
evmc_tx_context get_tx_context() const noexcept final;
evmc::bytes32 get_block_hash(int64_t number) const noexcept final;
void emit_log(const evmc::address& addr, const uint8_t* data, size_t data_size, const evmc::bytes32 topics[], size_t topics_count) noexcept final;
evmc_access_status access_account(const evmc::address& addr) noexcept final;
evmc_access_status access_storage(const evmc::address& addr, const evmc::bytes32& key) noexcept final;
evmc::bytes32 get_transient_storage(const evmc::address &addr, const evmc::bytes32 &key) const noexcept final;
void set_transient_storage(const evmc::address &addr, const evmc::bytes32 &key, const evmc::bytes32 &value) noexcept final;Last updated