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::EVMStorage Class Reference

#include <evm_storage.hpp>

Inheritance diagram for dcn::EVMStorage:

Classes

struct  Account
 

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
 

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::EVMStorage::EVMStorage ( evmc::VM &  vm,
evmc_revision  rev 
)

Member Function Documentation

◆ access_account()

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

◆ access_storage()

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

◆ account_exists()

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

◆ add_account()

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

◆ call()

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

◆ copy_code()

std::size_t dcn::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::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::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::EVMStorage::derive_create_address ( const evmc::address &  sender,
std::uint64_t  nonce 
)
protected

◆ emit_log()

void dcn::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::EVMStorage::get_balance ( const evmc::address &  addr) const
overridenoexcept

◆ get_block_hash()

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

◆ get_code_hash()

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

◆ get_code_size()

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

◆ get_storage()

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

◆ get_transient_storage()

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

◆ get_tx_context()

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

◆ selfdestruct()

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

◆ set_balance()

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

◆ set_storage()

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

◆ set_transient_storage()

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

◆ to_key()

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

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