29 #define ETH_SIMPLE_EXCEPTION_VM(X) struct X: VMException { const char* what() const noexcept override { return #X; } } 53 char const*
what() const noexcept
override {
return "Revert instruction"; }
std::function< void(uint64_t, uint64_t, Instruction, bigint, bigint, bigint, VMFace const *, ExtVMFace const *)> OnOpFunc
h160 right160(h256 const &_t)
Convert the given value into h160 (160-bit unsigned integer) using the right 20 bytes.
RevertInstruction(owning_bytes_ref &&_output)
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 160, 160, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u160
ETH_SIMPLE_EXCEPTION_VM(BadInstruction)
u256 fromAddress(Address _a)
VMFace & operator=(VMFace const &)=delete
RevertInstruction & operator=(RevertInstruction const &)=delete
Base class for all exceptions.
virtual ~VMFace()=default
EVM Virtual Machine interface.
Interface and null implementation of the class for specifying VM externalities.
char const * what() const noexcept override
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u256
owning_bytes_ref && output()
boost::error_info< struct tag_evmcStatusCode, evmc_status_code > errinfo_evmcStatusCode
Error info for EVMC status code.
Address asAddress(u256 _item)
Helpers:
virtual owning_bytes_ref exec(u256 &io_gas, ExtVMFace &_ext, OnOpFunc const &_onOp)=0
VM implementation.