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

#include <evm.hpp>

Public Types

using EmittedLogRecord = EVMStorage::EmittedLogRecord

Public Member Functions

 EVM (asio::io_context &io_context, evmc_revision rev, std::filesystem::path solc_path, std::filesystem::path pt_path)
 ~EVM ()=default
 EVM (const EVM &)=delete
EVMoperator= (const EVM &)=delete
 EVM (EVM &&)=delete
EVMoperator= (EVM &&)=delete
asio::awaitable< bool > addAccount (chain::Address address, std::uint64_t initial_gas) noexcept
asio::awaitable< bool > setGas (chain::Address address, std::uint64_t gas) noexcept
asio::awaitable< bool > compile (std::filesystem::path code_path, std::filesystem::path out_dir, std::filesystem::path base_path={}, std::filesystem::path includes={}) const noexcept
asio::awaitable< std::expected< chain::Address, chain::DeployError > > deploy (std::istream &code_stream, chain::Address sender, std::vector< std::uint8_t > constructor_args, std::uint64_t gas_limit, std::uint64_t value) noexcept
asio::awaitable< std::expected< chain::Address, chain::DeployError > > deploy (std::filesystem::path code_path, chain::Address sender, std::vector< uint8_t > constructor_args, std::uint64_t gas_limit, std::uint64_t value) noexcept
asio::awaitable< std::expected< std::vector< std::uint8_t >, chain::ExecuteError > > execute (chain::Address sender, chain::Address recipient, std::vector< std::uint8_t > input_bytes, std::uint64_t gas_limit, std::uint64_t value) noexcept
asio::awaitable< std::vector< EmittedLogRecord > > getLogsSince (std::uint64_t after_seq, std::size_t limit) noexcept
asio::awaitable< std::int64_t > getHeadBlockNumber () noexcept
chain::Address getRegistryAddress () const
chain::Address getRunnerAddress () const
const std::filesystem::path & getSolcPath () const
const std::filesystem::path & getPTPath () const

Protected Member Functions

asio::awaitable< bool > loadPT ()

Member Typedef Documentation

◆ EmittedLogRecord

Constructor & Destructor Documentation

◆ EVM() [1/3]

dcn::evm::EVM::EVM ( asio::io_context & io_context,
evmc_revision rev,
std::filesystem::path solc_path,
std::filesystem::path pt_path )

◆ ~EVM()

dcn::evm::EVM::~EVM ( )
default

◆ EVM() [2/3]

dcn::evm::EVM::EVM ( const EVM & )
delete

◆ EVM() [3/3]

dcn::evm::EVM::EVM ( EVM && )
delete

Member Function Documentation

◆ addAccount()

asio::awaitable< bool > dcn::evm::EVM::addAccount ( chain::Address address,
std::uint64_t initial_gas )
noexcept

◆ compile()

asio::awaitable< bool > dcn::evm::EVM::compile ( std::filesystem::path code_path,
std::filesystem::path out_dir,
std::filesystem::path base_path = {},
std::filesystem::path includes = {} ) const
noexcept

◆ deploy() [1/2]

asio::awaitable< std::expected< chain::Address, chain::DeployError > > dcn::evm::EVM::deploy ( std::filesystem::path code_path,
chain::Address sender,
std::vector< uint8_t > constructor_args,
std::uint64_t gas_limit,
std::uint64_t value )
noexcept

◆ deploy() [2/2]

asio::awaitable< std::expected< chain::Address, chain::DeployError > > dcn::evm::EVM::deploy ( std::istream & code_stream,
chain::Address sender,
std::vector< std::uint8_t > constructor_args,
std::uint64_t gas_limit,
std::uint64_t value )
noexcept

◆ execute()

asio::awaitable< std::expected< std::vector< std::uint8_t >, chain::ExecuteError > > dcn::evm::EVM::execute ( chain::Address sender,
chain::Address recipient,
std::vector< std::uint8_t > input_bytes,
std::uint64_t gas_limit,
std::uint64_t value )
noexcept

◆ getHeadBlockNumber()

asio::awaitable< std::int64_t > dcn::evm::EVM::getHeadBlockNumber ( )
noexcept

◆ getLogsSince()

asio::awaitable< std::vector< EVM::EmittedLogRecord > > dcn::evm::EVM::getLogsSince ( std::uint64_t after_seq,
std::size_t limit )
noexcept

◆ getPTPath()

const std::filesystem::path & dcn::evm::EVM::getPTPath ( ) const

◆ getRegistryAddress()

chain::Address dcn::evm::EVM::getRegistryAddress ( ) const

◆ getRunnerAddress()

chain::Address dcn::evm::EVM::getRunnerAddress ( ) const

◆ getSolcPath()

const std::filesystem::path & dcn::evm::EVM::getSolcPath ( ) const

◆ loadPT()

asio::awaitable< bool > dcn::evm::EVM::loadPT ( )
protected

◆ operator=() [1/2]

EVM & dcn::evm::EVM::operator= ( const EVM & )
delete

◆ operator=() [2/2]

EVM & dcn::evm::EVM::operator= ( EVM && )
delete

◆ setGas()

asio::awaitable< bool > dcn::evm::EVM::setGas ( chain::Address address,
std::uint64_t gas )
noexcept

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