 |
Ethereum
PoC-8
The C++ Implementation of Ethereum
|
Go to the documentation of this file.
23 #include <json/json.h>
72 (*this)(_steps, _PC, _inst, _newMemSize, _gasCost, _gas, _vm, _extVM);
77 bool m_showMnemonics =
false;
78 std::vector<Instruction> m_lastInst;
80 DebugOptions m_options;
196 std::shared_ptr<ExtVM> m_ext;
200 unsigned m_depth = 0;
202 int64_t m_baseGasRequired;
211 bool m_isCreation =
false;
213 size_t m_savepoint = 0;
std::function< void(uint64_t, uint64_t, Instruction, bigint, bigint, bigint, VMFace const *, ExtVMFace const *)> OnOpFunc
bool go(OnOpFunc const &_onOp=OnOpFunc())
void setOptions(DebugOptions _options)
Encodes a transaction, ready to be exported to or freshly imported from RLP.
Json::Value jsonValue() const
TransactionException getException() const noexcept
bool create(Address const &_txSender, u256 const &_endowment, u256 const &_gasPrice, u256 const &_gas, bytesConstRef _code, Address const &_originAddress)
EVM Virtual Machine interface.
Interface and null implementation of the class for specifying VM externalities.
bool call(Address const &_receiveAddress, Address const &_txSender, u256 const &_txValue, u256 const &_gasPrice, bytesConstRef _txData, u256 const &_gas)
void initialize(bytesConstRef _transaction)
Initializes the executive for evaluating a transaction. You must call finalize() at some point follow...
OnOpFunc simpleTrace()
Operation function for providing a simple trace of the VM execution.
void setResultRecipient(ExecutionResult &_res)
Collect execution results in the result storage provided.
void revert()
Revert all changes made to the state by this execution.
void operator=(Executive)=delete
LogEntries const & logs() const
std::string multilineTrace() const
Executive(Executive const &)=delete
boost::log::sources::severity_channel_logger<> Logger
std::string styledJson() const
std::vector< LogEntry > LogEntries
Logger createLogger(int _severity, std::string const &_channel)
Message-call/contract-creation executor; useful for executing transactions.
Implements the blockchain database. All data this gives is disk-backed. @threadsafe.
Address newAddress() const
Instruction
Virtual machine bytecode instruction.
boost::multiprecision::number< boost::multiprecision::cpp_int_backend<> > bigint
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u256
bool create2Opcode(Address const &_sender, u256 const &_endowment, u256 const &_gasPrice, u256 const &_gas, bytesConstRef _code, Address const &_originAddress, u256 const &_salt)
Description of the result of executing a transaction.
Transaction const & t() const
void accrueSubState(SubState &_parentContext)
Finalise an operation through accruing the substate into the parent context.
bool createOpcode(Address const &_sender, u256 const &_endowment, u256 const &_gasPrice, u256 const &_gas, bytesConstRef _code, Address const &_originAddress)
Interface for getting a list of recent block hashes @threadsafe.
Active model of a block within the block chain. Keeps track of all transactions, receipts and state f...
owning_bytes_ref takeOutput()
Executive(State &_s, EnvInfo const &_envInfo, SealEngineFace const &_sealEngine, unsigned _level=0)
Simple constructor; executive will operate on given state, with the given environment info.
void operator()(uint64_t _steps, uint64_t _PC, Instruction _inst, bigint _newMemSize, bigint _gasCost, bigint _gas, VMFace const *_vm, ExtVMFace const *_extVM)