 |
Ethereum
PoC-8
The C++ Implementation of Ethereum
|
Go to the documentation of this file.
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
RevertInstruction & operator=(RevertInstruction const &)=delete
boost::error_info< struct tag_evmcStatusCode, evmc_status_code > errinfo_evmcStatusCode
Error info for EVMC status code.
RevertInstruction(owning_bytes_ref &&_output)
ETH_SIMPLE_EXCEPTION_VM(BadInstruction)
RevertInstruction & operator=(RevertInstruction &&)=default
EVM Virtual Machine interface.
Interface and null implementation of the class for specifying VM externalities.
VMFace & operator=(VMFace const &)=delete
h160 right160(h256 const &_t)
Convert the given value into h160 (160-bit unsigned integer) using the right 20 bytes.
Base class for all exceptions.
RevertInstruction(RevertInstruction const &)=delete
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 160, 160, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u160
virtual ~VMFace()=default
char const * what() const noexcept override
owning_bytes_ref && output()
u256 fromAddress(Address _a)
virtual owning_bytes_ref exec(u256 &io_gas, ExtVMFace &_ext, OnOpFunc const &_onOp)=0
VM implementation.
Address asAddress(u256 _item)
Helpers:
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u256
VMFace(VMFace const &)=delete
RevertInstruction(RevertInstruction &&)=default