18#include <evmc/evmc.hpp>
19#include <evmc/mocked_host.hpp>
21#include <evmc/hex.hpp>
23#include <evmone/evmone.h>
26 #define interface __STRUCT__
31#include <spdlog/spdlog.h>
32#include <absl/container/flat_hash_map.h>
57 asio::awaitable<bool>
setGas(evmc::address
address, std::uint64_t
gas)
noexcept;
62 std::filesystem::path
includes = {})
const noexcept;
64 asio::awaitable<std::expected<evmc::address, evmc_status_code>>
deploy(
69 std::uint64_t value)
noexcept;
71 asio::awaitable<std::expected<evmc::address, evmc_status_code>>
deploy(
76 std::uint64_t value)
noexcept;
83 std::uint64_t value)
noexcept;
89 asio::awaitable<bool>
loadPT();
92 asio::strand<asio::io_context::executor_type> _strand;
97 std::filesystem::path _solc_path;
101 evmc::address _genesis_address;
102 evmc::address _console_log_address;
104 evmc::address _registry_address;
105 evmc::address _runner_address;
asio::awaitable< bool > setGas(evmc::address address, std::uint64_t gas) noexcept
Definition evm.cpp:330
asio::awaitable< std::expected< std::vector< std::uint8_t >, evmc_status_code > > execute(evmc::address sender, evmc::address recipient, std::vector< std::uint8_t > input_bytes, std::uint64_t gas_limit, std::uint64_t value) noexcept
Definition evm.cpp:481
asio::awaitable< std::expected< evmc::address, evmc_status_code > > deploy(std::istream &code_stream, evmc::address sender, std::vector< std::uint8_t > constructor_args, std::uint64_t gas_limit, std::uint64_t value) noexcept
Definition evm.cpp:392
asio::awaitable< bool > addAccount(evmc::address address, std::uint64_t initial_gas) noexcept
Definition evm.cpp:308
evmc::address getRegistryAddress() const
Definition evm.cpp:298
evmc::address getRunnerAddress() const
Definition evm.cpp:303
EVM & operator=(EVM &&)=delete
asio::awaitable< bool > loadPT()
Definition evm.cpp:535
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
Definition evm.cpp:344
EVM & operator=(const EVM &)=delete
Definition decentralised_art.hpp:30
asio::awaitable< std::expected< std::vector< std::uint8_t >, evmc_status_code > > fetchOwner(EVM &evm, const evmc::address &address)
Definition evm.cpp:264
std::vector< std::uint8_t > encodeAsArg(const T &val)
T decodeReturnedValue(const std::vector< std::uint8_t > &bytes)
std::vector< std::uint8_t > encodeAsArg< std::string >(const std::string &str)
Definition evm.cpp:104
std::vector< std::uint8_t > constructFunctionSelector(std::string signature)
Definition evm.cpp:5
std::vector< std::uint8_t > encodeAsArg< evmc::address >(const evmc::address &address)
Definition evm.cpp:13
std::vector< std::uint8_t > encodeAsArg< std::uint32_t >(const std::uint32_t &value)
Definition evm.cpp:21