 |
Ethereum
PoC-8
The C++ Implementation of Ethereum
|
Go to the documentation of this file.
46 :
ExtVMFace(_envInfo, _myAddress, _caller, _origin, _value, _gasPrice, _data, _code.toBytes(),
47 _codeHash, _depth, _isCreate, _staticCall),
49 m_sealEngine(_sealEngine)
82 CallResult
call(CallParameters& _params)
final;
std::function< void(uint64_t, uint64_t, Instruction, bigint, bigint, bigint, VMFace const *, ExtVMFace const *)> OnOpFunc
bool addressInUse(Address const &_address) const
Check if the address is in use.
void setStore(u256 _n, u256 _v) final
Write a value in storage.
bytes const & code(Address const &_addr) const
void suicide(Address _a) final
Suicide the associated contract to the given address.
Interface and null implementation of the class for specifying VM externalities.
EVMSchedule const & evmSchedule() const final
Return the EVM gas-price schedule for this execution context.
bool accountNonemptyAndExisting(Address const &_address) const
u256 balance(Address _a) final
Read address's balance.
Address myAddress
Address associated with executing code (a contract, or contract-to-be).
bool exists(Address _a) final
Does the account exist?
std::vector< byte > bytes
Externality interface for the Virtual Machine providing access to world state.
ExtVM(State &_s, EnvInfo const &_envInfo, SealEngineFace const &_sealEngine, Address _myAddress, Address _caller, Address _origin, u256 _value, u256 _gasPrice, bytesConstRef _data, bytesConstRef _code, h256 const &_codeHash, unsigned _depth, bool _isCreate, bool _staticCall)
Full constructor.
size_t codeSizeAt(Address _a) final
Instruction
Virtual machine bytecode instruction.
CallResult call(CallParameters &_params) final
Create a new message call.
bytes const & codeAt(Address _a) final
Read address's code.
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u256
h256 codeHashAt(Address _a) final
u256 originalStorageValue(Address const &_contract, u256 const &_key) const
u256 originalStorageValue(u256 const &_key) final
Read original storage value (before modifications in the current transaction).
h256 blockHash(u256 _number) final
Hash of a block if within the last 256 blocks, or h256() otherwise.
CreateResult create(u256 _endowment, u256 &io_gas, bytesConstRef _code, Instruction _op, u256 _salt, OnOpFunc const &_onOp={}) final
Create a new contract.
State const & state() const
u256 balance(Address const &_id) const
u256 store(u256 _n) final
Read storage location.
EnvInfo const & envInfo() const
Get the execution environment information.
virtual EVMSchedule const & evmSchedule(u256 const &_blockNumber) const =0
u256 storage(Address const &_contract, u256 const &_memory) const