Decentralised Art Server
High-performance C++ backend that exposes HTML interface and a secure REST API for managing Performative Transactions entities
Loading...
Searching...
No Matches
dcn::evm::EVMStorage Class Reference

#include <evm_storage.hpp>

Inheritance diagram for dcn::evm::EVMStorage:

Classes

struct  Account
struct  EmittedLogRecord

Public Member Functions

 EVMStorage (evmc::VM &vm, evmc_revision rev)
bool add_account (const evmc::address &addr)
void set_balance (const evmc::address &addr, std::uint64_t x) noexcept
bool account_exists (const evmc::address &addr) const noexcept override
evmc::bytes32 get_storage (const evmc::address &addr, const evmc::bytes32 &key) const noexcept override
evmc_storage_status set_storage (const evmc::address &address, const evmc::bytes32 &key, const evmc::bytes32 &value) noexcept override
evmc::uint256be get_balance (const evmc::address &addr) const noexcept override
std::size_t get_code_size (const evmc::address &addr) const noexcept override
evmc::bytes32 get_code_hash (const evmc::address &addr) const noexcept override
std::size_t copy_code (const evmc::address &addr, std::size_t code_offset, std::uint8_t *buffer_data, std::size_t buffer_size) const noexcept override
bool selfdestruct (const evmc::address &addr, const evmc::address &beneficiary) noexcept override
evmc::Result call (const evmc_message &msg) noexcept override
evmc_tx_context get_tx_context () const noexcept override
evmc::bytes32 get_block_hash (int64_t block_number) const noexcept override
void emit_log (const evmc::address &addr, const std::uint8_t *data, size_t data_size, const evmc::bytes32 topics[], size_t num_topics) noexcept override
evmc_access_status access_account (const evmc::address &addr) noexcept override
evmc_access_status access_storage (const evmc::address &addr, const evmc::bytes32 &key) noexcept override
evmc::bytes32 get_transient_storage (const evmc::address &addr, const evmc::bytes32 &key) const noexcept override
void set_transient_storage (const evmc::address &addr, const evmc::bytes32 &key, const evmc::bytes32 &value) noexcept override
std::vector< EmittedLogRecordget_logs_since (std::uint64_t after_seq, std::size_t limit) const
std::int64_t head_block_number () const noexcept

Protected Member Functions

std::string to_key (const evmc::address &addr) const
evmc_address derive_create_address (const evmc::address &sender, std::uint64_t nonce)
evmc_address derive_create2_address (const evmc::address &sender, const evmc::bytes32 &salt, const std::vector< std::uint8_t > &code)
void deploy_contract (evmc::address addr, std::vector< std::uint8_t > &&code, evmc_uint256be value, evmc::address creator, std::uint64_t nonce)

Constructor & Destructor Documentation

◆ EVMStorage()

dcn::evm::EVMStorage::EVMStorage ( evmc::VM & vm,
evmc_revision rev )

Member Function Documentation

◆ access_account()

evmc_access_status dcn::evm::EVMStorage::access_account ( const evmc::address & addr)
overridenoexcept

◆ access_storage()

evmc_access_status dcn::evm::EVMStorage::access_storage ( const evmc::address & addr,
const evmc::bytes32 & key )
overridenoexcept

◆ account_exists()

bool dcn::evm::EVMStorage::account_exists ( const evmc::address & addr) const
overridenoexcept

◆ add_account()

bool dcn::evm::EVMStorage::add_account ( const evmc::address & addr)
inline

◆ call()

evmc::Result dcn::evm::EVMStorage::call ( const evmc_message & msg)
overridenoexcept

◆ copy_code()

std::size_t dcn::evm::EVMStorage::copy_code ( const evmc::address & addr,
std::size_t code_offset,
std::uint8_t * buffer_data,
std::size_t buffer_size ) const
overridenoexcept

◆ deploy_contract()

void dcn::evm::EVMStorage::deploy_contract ( evmc::address addr,
std::vector< std::uint8_t > && code,
evmc_uint256be value,
evmc::address creator,
std::uint64_t nonce )
protected

◆ derive_create2_address()

evmc_address dcn::evm::EVMStorage::derive_create2_address ( const evmc::address & sender,
const evmc::bytes32 & salt,
const std::vector< std::uint8_t > & code )
protected

◆ derive_create_address()

evmc_address dcn::evm::EVMStorage::derive_create_address ( const evmc::address & sender,
std::uint64_t nonce )
protected

◆ emit_log()

void dcn::evm::EVMStorage::emit_log ( const evmc::address & addr,
const std::uint8_t * data,
size_t data_size,
const evmc::bytes32 topics[],
size_t num_topics )
overridenoexcept

◆ get_balance()

evmc::uint256be dcn::evm::EVMStorage::get_balance ( const evmc::address & addr) const
overridenoexcept

◆ get_block_hash()

evmc::bytes32 dcn::evm::EVMStorage::get_block_hash ( int64_t block_number) const
overridenoexcept

◆ get_code_hash()

evmc::bytes32 dcn::evm::EVMStorage::get_code_hash ( const evmc::address & addr) const
overridenoexcept

◆ get_code_size()

std::size_t dcn::evm::EVMStorage::get_code_size ( const evmc::address & addr) const
overridenoexcept

◆ get_logs_since()

std::vector< EVMStorage::EmittedLogRecord > dcn::evm::EVMStorage::get_logs_since ( std::uint64_t after_seq,
std::size_t limit ) const

◆ get_storage()

evmc::bytes32 dcn::evm::EVMStorage::get_storage ( const evmc::address & addr,
const evmc::bytes32 & key ) const
overridenoexcept

◆ get_transient_storage()

evmc::bytes32 dcn::evm::EVMStorage::get_transient_storage ( const evmc::address & addr,
const evmc::bytes32 & key ) const
overridenoexcept

◆ get_tx_context()

evmc_tx_context dcn::evm::EVMStorage::get_tx_context ( ) const
overridenoexcept

◆ head_block_number()

std::int64_t dcn::evm::EVMStorage::head_block_number ( ) const
noexcept

◆ selfdestruct()

bool dcn::evm::EVMStorage::selfdestruct ( const evmc::address & addr,
const evmc::address & beneficiary )
overridenoexcept

◆ set_balance()

void dcn::evm::EVMStorage::set_balance ( const evmc::address & addr,
std::uint64_t x )
inlinenoexcept

◆ set_storage()

evmc_storage_status dcn::evm::EVMStorage::set_storage ( const evmc::address & address,
const evmc::bytes32 & key,
const evmc::bytes32 & value )
overridenoexcept

◆ set_transient_storage()

void dcn::evm::EVMStorage::set_transient_storage ( const evmc::address & addr,
const evmc::bytes32 & key,
const evmc::bytes32 & value )
overridenoexcept

◆ to_key()

std::string dcn::evm::EVMStorage::to_key ( const evmc::address & addr) const
protected

The documentation for this class was generated from the following files: