Ethereum  PoC-8
The C++ Implementation of Ethereum
dev::eth Namespace Reference

Namespaces

 validation
 

Classes

class  Account
 
class  AccountMask
 
struct  ActivityReport
 
class  BasicAuthority
 
class  BasicGasPricer
 
class  Block
 Active model of a block within the block chain. Keeps track of all transactions, receipts and state for a particular block. Can apply all needed transforms of the state for rewards and contains logic for sealing the block. More...
 
class  BlockChain
 Implements the blockchain database. All data this gives is disk-backed. @threadsafe. More...
 
class  BlockChainImporterFace
 
class  BlockChainSync
 Base BlockChain synchronization strategy class. Syncs to peers and keeps up to date. Base class handles blocks downloading but does not contain any details on state transfer logic. More...
 
struct  BlockDetails
 
struct  BlockHash
 
class  BlockHeader
 Encapsulation of a block header. Class to contain all of a block header's data. It is able to parse a block header and populate from some given RLP block serialisation with the static fromHeader(), through the method populate(). This will not conduct any verification above basic formating. In this case extra verification can be performed through verify(). More...
 
struct  BlockLogBlooms
 
class  BlockQueue
 A queue of blocks. Sits between network or other I/O and the BlockChain. Sorts them ready for blockchain insertion (with the BlockChain::sync() method). @threadsafe. More...
 
struct  BlockQueueStatus
 
struct  BlockReceipts
 
struct  BlocksBlooms
 
struct  CallParameters
 
struct  CallResult
 
struct  ChainOperationParams
 
struct  ChainParams
 
struct  Change
 An atomic state changelog entry. More...
 
class  Client
 Main API hub for interfacing with Ethereum. More...
 
class  ClientBase
 
class  ClientTest
 
struct  ClientWatch
 
class  CodeSizeCache
 Simple thread-safe cache to store a mapping from code hash to code size. If the cache is full, a random element is removed. More...
 
struct  CreateResult
 
class  EnvInfo
 
class  EthereumCapability
 The EthereumCapability class. More...
 
class  EthereumHostDataFace
 
class  EthereumPeer
 
class  EthereumPeerObserverFace
 
class  EVMC
 The wrapper implementing the VMFace interface with a EVMC VM as a backend. More...
 
struct  EVMSchedule
 
struct  ExecutionResult
 Description of the result of executing a transaction. More...
 
class  Executive
 Message-call/contract-creation executor; useful for executing transactions. More...
 
class  ExtVM
 Externality interface for the Virtual Machine providing access to world state. More...
 
class  ExtVMFace
 Interface and null implementation of the class for specifying VM externalities. More...
 
struct  GasEstimationProgress
 
class  GasPricer
 
class  GenericFarm
 A collective of Miners. Miners ask for work, then submit proofs @threadsafe. More...
 
class  GenericFarmFace
 Class for hosting one or more Miners. More...
 
class  GenericMiner
 A miner - a member and adoptee of the Farm. More...
 
class  ImportPerformanceLogger
 
struct  ImportRequirements
 
struct  ImportRoute
 
struct  InstalledFilter
 
struct  InstructionInfo
 Information structure for a particular instruction. More...
 
struct  InstructionMetric
 
class  Interface
 Main API hub for interfacing with Ethereum. More...
 
struct  InternalVMError
 
struct  KeyInfo
 
class  KeyManager
 High-level manager of password-encrypted keys for Ethereum. Usage: More...
 
class  LastBlockHashesFace
 Interface for getting a list of recent block hashes @threadsafe. More...
 
class  LegacyVM
 
struct  LocalisedLogEntry
 
class  LocalisedTransaction
 
class  LocalisedTransactionReceipt
 
struct  LogEntry
 
class  LogFilter
 
class  NoProof
 
class  owning_bytes_ref
 
class  PasswordUnknown
 
struct  PopulationStatistics
 
class  PrecompiledContract
 
class  PrecompiledRegistrar
 
struct  RevertInstruction
 
class  SealEngineBase
 
class  SealEngineFace
 
class  SealEngineRegistrar
 
class  Signal
 Super-duper signal mechanism. TODO: replace with somthing a bit heavier weight. More...
 
class  SizedBlockMap
 
class  SizedBlockQueue
 
class  SnapshotImporter
 
class  SnapshotStorageFace
 
class  StandardTrace
 
class  State
 
class  StateImporterFace
 
struct  SubState
 
struct  SyncStatus
 
class  Transaction
 Encodes a transaction, ready to be exported to or freshly imported from RLP. More...
 
struct  TransactionAddress
 
class  TransactionBase
 Encodes a transaction, ready to be exported to or freshly imported from RLP. More...
 
class  TransactionQueue
 A queue of Transactions, each stored as RLP. Maintains a transaction queue sorted by nonce diff and gas price. @threadsafe. More...
 
class  TransactionReceipt
 
struct  TransactionSkeleton
 
class  TrivialGasPricer
 
struct  VerifiedBlock
 Verified block info, combines block data and verified info/transactions. More...
 
struct  VerifiedBlockRef
 Verified block info, does not hold block data, but a reference instead. More...
 
class  VersionChecker
 
struct  VMException
 
class  VMFace
 EVM Virtual Machine interface. More...
 
class  VMFactory
 
class  WarpCapability
 
class  WarpPeerObserverFace
 
struct  WarpPeerStatus
 
class  Watch
 
struct  WorkingProgress
 Describes the progress of a mining operation. More...
 

Typedefs

using LogBloom = h2048
 The log bloom's size (2048-bit). More...
 
using LogBlooms = std::vector< LogBloom >
 Many log blooms. More...
 
using Nonce = h64
 
using BlockNumber = unsigned
 
template<class... Args>
using Handler = std::shared_ptr< typename Signal< Args... >::HandlerAux >
 
using errinfo_name = boost::error_info< struct tag_field, std::string >
 
using errinfo_field = boost::error_info< struct tag_field, int >
 
using errinfo_data = boost::error_info< struct tag_data, std::string >
 
using errinfo_nonce = boost::error_info< struct tag_nonce, h64 >
 
using errinfo_difficulty = boost::error_info< struct tag_difficulty, u256 >
 
using errinfo_target = boost::error_info< struct tag_target, h256 >
 
using errinfo_seedHash = boost::error_info< struct tag_seedHash, h256 >
 
using errinfo_mixHash = boost::error_info< struct tag_mixHash, h256 >
 
using errinfo_ethashResult = boost::error_info< struct tag_ethashResult, std::tuple< h256, h256 > >
 
using errinfo_importResult = boost::error_info< struct tag_importResult, ImportResult >
 
using BadFieldError = boost::tuple< errinfo_field, errinfo_data >
 
using LogEntries = std::vector< LogEntry >
 
using LocalisedLogEntries = std::vector< LocalisedLogEntry >
 
using PrecompiledExecutor = std::function< std::pair< bool, bytes >(bytesConstRef _in)>
 
using PrecompiledPricer = std::function< bigint(bytesConstRef _in)>
 
using SealEngineFactory = std::function< SealEngineFace *()>
 
using TransactionBases = std::vector< TransactionBase >
 Nice name for vector of Transaction. More...
 
using AccountMap = std::unordered_map< Address, Account >
 
using AccountMaskMap = std::unordered_map< Address, AccountMask >
 
using PrecompiledContractMap = std::unordered_map< Address, PrecompiledContract >
 
using BlocksHash = std::unordered_map< h256, bytes >
 
using TransactionHashes = h256s
 
using UncleHashes = h256s
 
using ProgressCallback = std::function< void(unsigned, unsigned)>
 
using BlockDetailsHash = std::unordered_map< h256, BlockDetails >
 
using BlockLogBloomsHash = std::unordered_map< h256, BlockLogBlooms >
 
using BlockReceiptsHash = std::unordered_map< h256, BlockReceipts >
 
using TransactionAddressHash = std::unordered_map< h256, TransactionAddress >
 
using BlockHashHash = std::unordered_map< uint64_t, BlockHash >
 
using BlocksBloomsHash = std::unordered_map< h256, BlocksBlooms >
 
using NodeID = p2p::NodeID
 
using GasEstimationCallback = std::function< void(GasEstimationProgress const &)>
 
template<class KeyType , class DB >
using SecureTrieDB = SpecificTrieDB< HashedGenericTrieDB< DB >, KeyType >
 
using errinfo_uncleIndex = boost::error_info< struct tag_uncleIndex, unsigned >
 
using errinfo_currentNumber = boost::error_info< struct tag_currentNumber, u256 >
 
using errinfo_uncleNumber = boost::error_info< struct tag_uncleNumber, u256 >
 
using errinfo_unclesExcluded = boost::error_info< struct tag_unclesExcluded, h256Hash >
 
using errinfo_block = boost::error_info< struct tag_block, bytes >
 
using errinfo_now = boost::error_info< struct tag_now, unsigned >
 
using errinfo_transactionIndex = boost::error_info< struct tag_transactionIndex, unsigned >
 
using errinfo_vmtrace = boost::error_info< struct tag_vmtrace, std::string >
 
using errinfo_receipts = boost::error_info< struct tag_receipts, std::vector< bytes > >
 
using errinfo_transaction = boost::error_info< struct tag_transaction, bytes >
 
using errinfo_phase = boost::error_info< struct tag_phase, unsigned >
 
using errinfo_required_LogBloom = boost::error_info< struct tag_required_LogBloom, LogBloom >
 
using errinfo_got_LogBloom = boost::error_info< struct tag_get_LogBloom, LogBloom >
 
using LogBloomRequirementError = boost::tuple< errinfo_required_LogBloom, errinfo_got_LogBloom >
 
using ChangeLog = std::vector< Change >
 
using Transactions = std::vector< Transaction >
 Nice name for vector of Transaction. More...
 
using TransactionReceipts = std::vector< TransactionReceipt >
 
using VerifiedBlocks = std::vector< VerifiedBlock >
 
using OnOpFunc = std::function< void(uint64_t, uint64_t, Instruction, bigint, bigint, bigint, VMFace const *, ExtVMFace const *)>
 
using errinfo_evmcStatusCode = boost::error_info< struct tag_evmcStatusCode, evmc_status_code >
 Error info for EVMC status code. More...
 
using VMPtr = std::unique_ptr< VMFace, void(*)(VMFace *)>
 

Enumerations

enum  IncludeSeal { WithoutSeal = 0, WithSeal = 1, OnlySeal = 2 }
 
enum  Strictness { CheckEverything, QuickNonce, IgnoreSeal, CheckNothingNew }
 
enum  BlockDataType { HeaderData, BlockData }
 
enum  RelativeBlock : BlockNumber { RelativeBlock::Latest = LatestBlock, RelativeBlock::Pending = PendingBlock }
 
enum  BlockPolarity { BlockPolarity::Unknown, BlockPolarity::Dead, BlockPolarity::Live }
 
enum  ImportResult {
  Success = 0, ImportResult::UnknownParent, ImportResult::FutureTimeKnown, ImportResult::FutureTimeUnknown,
  ImportResult::AlreadyInChain, ImportResult::AlreadyKnown, ImportResult::Malformed, ImportResult::OverbidGasPrice,
  ImportResult::BadChain, ImportResult::ZeroSignature
}
 
enum  IfDropped { IfDropped::Ignore, IfDropped::Retry }
 Import transaction policy. More...
 
enum  AlethErrors {
  Success = 0, Success = 0, UnrecognizedPeerset, ArgumentProcessingFailure,
  UnknownArgument, UnknownMiningOption, ConfigFileEmptyOrNotFound, ConfigFileInvalid,
  UnknownNetworkType, BadNetworkIdOption, BadConfigOption, BadExtraDataOption,
  BadAskOption, BadBidOption, BadFormatOption, BadUpnpOption,
  BadAddressOption, BadHexValueInAddressOption, BadBlockNumberHashOption, KeyManagerInitializationFailure,
  SnapshotImportFailure, NetworkStartFailure, BadRlp, RlpDataNotAList,
  UnsupportedJsonType, InvalidJson
}
 Errors returned from main. More...
 
enum  SemanticPassword { SemanticPassword::Existing, SemanticPassword::Master }
 
enum  IncludeSignature { WithoutSignature = 0, WithSignature = 1 }
 Named-boolean type to encode whether a signature be included in the serialisation process. More...
 
enum  CheckTransaction { CheckTransaction::None, CheckTransaction::Cheap, CheckTransaction::Everything }
 
enum  {
  ExtraDetails = 0, ExtraBlockHash, ExtraTransactionAddress, ExtraLogBlooms,
  ExtraReceipts, ExtraBlocksBlooms
}
 
enum  QueueStatus {
  QueueStatus::Ready, QueueStatus::Importing, QueueStatus::UnknownParent, QueueStatus::Bad,
  QueueStatus::Unknown
}
 
enum  ClientWorkState { Active = 0, Deleting, Deleted }
 
enum  SubprotocolPacketType : byte {
  StatusPacket = 0x00, NewBlockHashesPacket = 0x01, TransactionsPacket = 0x02, GetBlockHeadersPacket = 0x03,
  BlockHeadersPacket = 0x04, GetBlockBodiesPacket = 0x05, BlockBodiesPacket = 0x06, NewBlockPacket = 0x07,
  GetNodeDataPacket = 0x0d, NodeDataPacket = 0x0e, GetReceiptsPacket = 0x0f, ReceiptsPacket = 0x10,
  PacketCount
}
 
enum  Asking {
  Asking::State, Asking::BlockHeaders, Asking::BlockBodies, Asking::NodeData,
  Asking::Receipts, Asking::WarpManifest, Asking::WarpData, Asking::Nothing
}
 
enum  SyncState {
  SyncState::NotSynced, SyncState::Idle, SyncState::Waiting, SyncState::Blocks,
  SyncState::State, SyncState::Size
}
 
enum  TransactionPriority {
  TransactionPriority::Lowest = 0, TransactionPriority::Low = 2, TransactionPriority::Medium = 4, TransactionPriority::High = 6,
  TransactionPriority::Highest = 8
}
 
enum  Reaping { Reaping::Automatic, Reaping::Manual }
 
enum  FudgeFactor { FudgeFactor::Strict, FudgeFactor::Lenient }
 
enum  BaseState { BaseState::PreExisting, BaseState::Empty }
 
enum  Permanence { Permanence::Reverted, Permanence::Committed, Permanence::Uncommitted }
 
enum  TransactionException {
  TransactionException::None = 0, TransactionException::Unknown, TransactionException::BadRLP, TransactionException::InvalidFormat,
  TransactionException::OutOfGasIntrinsic, TransactionException::InvalidSignature, TransactionException::InvalidNonce, TransactionException::NotEnoughCash,
  TransactionException::OutOfGasBase, TransactionException::BlockGasLimitReached, TransactionException::BadInstruction, TransactionException::BadJumpDestination,
  TransactionException::OutOfGas, TransactionException::OutOfStack, TransactionException::StackUnderflow, TransactionException::RevertInstruction,
  TransactionException::InvalidZeroSignatureFormat, TransactionException::AddressAlreadyUsed
}
 
enum  CodeDeposit { CodeDeposit::None = 0, CodeDeposit::Failed, CodeDeposit::Success }
 
enum  WarpSubprotocolPacketType : byte {
  WarpStatusPacket = 0x00, GetSnapshotManifest = 0x11, SnapshotManifest = 0x12, GetSnapshotData = 0x13,
  SnapshotData = 0x14, WarpSubprotocolPacketCount
}
 
enum  Instruction : uint8_t {
  Instruction::STOP = 0x00, Instruction::ADD, Instruction::MUL, Instruction::SUB,
  Instruction::DIV, Instruction::SDIV, Instruction::MOD, Instruction::SMOD,
  Instruction::ADDMOD, Instruction::MULMOD, Instruction::EXP, Instruction::SIGNEXTEND,
  Instruction::LT = 0x10, Instruction::GT, Instruction::SLT, Instruction::SGT,
  Instruction::EQ, Instruction::ISZERO, Instruction::AND, Instruction::OR,
  Instruction::XOR, Instruction::NOT, Instruction::BYTE, Instruction::SHL,
  Instruction::SHR, Instruction::SAR, Instruction::SHA3 = 0x20, Instruction::ADDRESS = 0x30,
  Instruction::BALANCE, Instruction::ORIGIN, Instruction::CALLER, Instruction::CALLVALUE,
  Instruction::CALLDATALOAD, Instruction::CALLDATASIZE, Instruction::CALLDATACOPY, Instruction::CODESIZE,
  Instruction::CODECOPY, Instruction::GASPRICE, Instruction::EXTCODESIZE, Instruction::EXTCODECOPY,
  Instruction::RETURNDATASIZE = 0x3d, Instruction::RETURNDATACOPY = 0x3e, Instruction::EXTCODEHASH = 0x3f, Instruction::BLOCKHASH = 0x40,
  Instruction::COINBASE, Instruction::TIMESTAMP, Instruction::NUMBER, Instruction::DIFFICULTY,
  Instruction::GASLIMIT, Instruction::POP = 0x50, Instruction::MLOAD, Instruction::MSTORE,
  Instruction::MSTORE8, Instruction::SLOAD, Instruction::SSTORE, Instruction::JUMP,
  Instruction::JUMPI, Instruction::PC, Instruction::MSIZE, Instruction::GAS,
  Instruction::JUMPDEST, Instruction::PUSH1 = 0x60, Instruction::PUSH2, Instruction::PUSH3,
  Instruction::PUSH4, Instruction::PUSH5, Instruction::PUSH6, Instruction::PUSH7,
  Instruction::PUSH8, Instruction::PUSH9, Instruction::PUSH10, Instruction::PUSH11,
  Instruction::PUSH12, Instruction::PUSH13, Instruction::PUSH14, Instruction::PUSH15,
  Instruction::PUSH16, Instruction::PUSH17, Instruction::PUSH18, Instruction::PUSH19,
  Instruction::PUSH20, Instruction::PUSH21, Instruction::PUSH22, Instruction::PUSH23,
  Instruction::PUSH24, Instruction::PUSH25, Instruction::PUSH26, Instruction::PUSH27,
  Instruction::PUSH28, Instruction::PUSH29, Instruction::PUSH30, Instruction::PUSH31,
  Instruction::PUSH32, Instruction::DUP1 = 0x80, Instruction::DUP2, Instruction::DUP3,
  Instruction::DUP4, Instruction::DUP5, Instruction::DUP6, Instruction::DUP7,
  Instruction::DUP8, Instruction::DUP9, Instruction::DUP10, Instruction::DUP11,
  Instruction::DUP12, Instruction::DUP13, Instruction::DUP14, Instruction::DUP15,
  Instruction::DUP16, Instruction::SWAP1 = 0x90, Instruction::SWAP2, Instruction::SWAP3,
  Instruction::SWAP4, Instruction::SWAP5, Instruction::SWAP6, Instruction::SWAP7,
  Instruction::SWAP8, Instruction::SWAP9, Instruction::SWAP10, Instruction::SWAP11,
  Instruction::SWAP12, Instruction::SWAP13, Instruction::SWAP14, Instruction::SWAP15,
  Instruction::SWAP16, Instruction::LOG0 = 0xa0, Instruction::LOG1, Instruction::LOG2,
  Instruction::LOG3, Instruction::LOG4, Instruction::PUSHC = 0xac, Instruction::JUMPC,
  Instruction::JUMPCI, Instruction::JUMPTO = 0xb0, Instruction::JUMPIF, Instruction::JUMPSUB,
  Instruction::JUMPV, Instruction::JUMPSUBV, Instruction::BEGINSUB, Instruction::BEGINDATA,
  Instruction::RETURNSUB, Instruction::PUTLOCAL, Instruction::GETLOCAL, Instruction::XADD = 0xc1,
  Instruction::XMUL, Instruction::XSUB, Instruction::XDIV, Instruction::XSDIV,
  Instruction::XMOD, Instruction::XSMOD, Instruction::XLT = 0xd0, Instruction::XGT,
  Instruction::XSLT, Instruction::XSGT, Instruction::XEQ, Instruction::XISZERO,
  Instruction::XAND, Instruction::XOOR, Instruction::XXOR, Instruction::XNOT,
  Instruction::XSHL = 0xdb, Instruction::XSHR, Instruction::XSAR, Instruction::XROL,
  Instruction::XROR, Instruction::XPUSH = 0xe0, Instruction::XMLOAD, Instruction::XMSTORE,
  Instruction::XSLOAD = 0xe4, Instruction::XSSTORE, Instruction::XVTOWIDE, Instruction::XWIDETOV,
  Instruction::XGET, Instruction::XPUT, Instruction::XSWIZZLE, Instruction::XSHUFFLE,
  Instruction::CREATE = 0xf0, Instruction::CALL, Instruction::CALLCODE, Instruction::RETURN,
  Instruction::DELEGATECALL, Instruction::CREATE2 = 0xf5, Instruction::STATICCALL = 0xfa, Instruction::REVERT = 0xfd,
  Instruction::INVALID = 0xfe, Instruction::SUICIDE = 0xff
}
 Virtual machine bytecode instruction. More...
 
enum  Tier : unsigned {
  Tier::Zero = 0, Tier::Base, Tier::VeryLow, Tier::Low,
  Tier::Mid, Tier::High, Tier::Ext, Tier::Special,
  Tier::Invalid
}
 
enum  VMKind { VMKind::Interpreter, VMKind::Legacy, VMKind::DLL }
 

Functions

 DEV_SIMPLE_EXCEPTION (NoHashRecorded)
 
 DEV_SIMPLE_EXCEPTION (GenesisBlockCannotBeCalculated)
 
std::ostream & operator<< (std::ostream &_out, BlockHeader const &_bi)
 
const bytes c_blockhashContractCode (fromHex("0x600073fffffffffffffffffffffffffffffffffffffffe33141561005957600143035b60011561005357600035610100820683015561010081061561004057005b6101008104905061010082019150610022565b506100e0565b4360003512156100d4576000356001814303035b61010081121515610085576000610100830614610088565b60005b156100a75761010083019250610100820491506101008104905061006d565b610100811215156100bd57600060a052602060a0f35b610100820683015460c052602060c0f350506100df565b600060e052602060e0f35b5b50"))
 
Address toAddress (std::string const &_s)
 Convert the given string into an address. More...
 
vector< pair< u256, string > > const & units ()
 Get information concerning the currency denominations. More...
 
std::string formatBalance (bigint const &_b)
 User-friendly string representation of the amount _b in wei. More...
 
void badBlock (bytesConstRef _block, string const &_err)
 
 DEV_SIMPLE_EXCEPTION (InvalidAddress)
 
void badBlock (bytesConstRef _header, std::string const &_err)
 
void badBlock (bytes const &_header, std::string const &_err)
 
BlockNumber jsToBlockNumber (std::string const &_js)
 Convert to a block number, a bit like jsToInt, except that it correctly recognises "pending" and "latest". More...
 
 DEV_SIMPLE_EXCEPTION (OutOfGasBase)
 
 DEV_SIMPLE_EXCEPTION (OutOfGasIntrinsic)
 
 DEV_SIMPLE_EXCEPTION (NotEnoughAvailableSpace)
 
 DEV_SIMPLE_EXCEPTION (NotEnoughCash)
 
 DEV_SIMPLE_EXCEPTION (GasPriceTooLow)
 
 DEV_SIMPLE_EXCEPTION (BlockGasLimitReached)
 
 DEV_SIMPLE_EXCEPTION (FeeTooSmall)
 
 DEV_SIMPLE_EXCEPTION (TooMuchGasUsed)
 
 DEV_SIMPLE_EXCEPTION (ExtraDataTooBig)
 
 DEV_SIMPLE_EXCEPTION (ExtraDataIncorrect)
 
 DEV_SIMPLE_EXCEPTION (TransactionIsUnsigned)
 
 DEV_SIMPLE_EXCEPTION (InvalidSignature)
 
 DEV_SIMPLE_EXCEPTION (InvalidTransactionFormat)
 
 DEV_SIMPLE_EXCEPTION (InvalidBlockFormat)
 
 DEV_SIMPLE_EXCEPTION (InvalidUnclesHash)
 
 DEV_SIMPLE_EXCEPTION (TooManyUncles)
 
 DEV_SIMPLE_EXCEPTION (UncleTooOld)
 
 DEV_SIMPLE_EXCEPTION (UncleIsBrother)
 
 DEV_SIMPLE_EXCEPTION (UncleInChain)
 
 DEV_SIMPLE_EXCEPTION (UncleParentNotInChain)
 
 DEV_SIMPLE_EXCEPTION (InvalidStateRoot)
 
 DEV_SIMPLE_EXCEPTION (InvalidGasUsed)
 
 DEV_SIMPLE_EXCEPTION (InvalidTransactionsRoot)
 
 DEV_SIMPLE_EXCEPTION (InvalidDifficulty)
 
 DEV_SIMPLE_EXCEPTION (InvalidGasLimit)
 
 DEV_SIMPLE_EXCEPTION (InvalidReceiptsStateRoot)
 
 DEV_SIMPLE_EXCEPTION (InvalidTimestamp)
 
 DEV_SIMPLE_EXCEPTION (InvalidLogBloom)
 
 DEV_SIMPLE_EXCEPTION (InvalidNonce)
 
 DEV_SIMPLE_EXCEPTION (InvalidBlockHeaderItemCount)
 
 DEV_SIMPLE_EXCEPTION (InvalidBlockNonce)
 
 DEV_SIMPLE_EXCEPTION (InvalidParentHash)
 
 DEV_SIMPLE_EXCEPTION (InvalidUncleParentHash)
 
 DEV_SIMPLE_EXCEPTION (InvalidNumber)
 
 DEV_SIMPLE_EXCEPTION (InvalidZeroSignatureTransaction)
 
 DEV_SIMPLE_EXCEPTION (InvalidTransactionReceiptFormat)
 
 DEV_SIMPLE_EXCEPTION (TransactionReceiptVersionError)
 
 DEV_SIMPLE_EXCEPTION (PendingTransactionAlreadyExists)
 
 DEV_SIMPLE_EXCEPTION (TransactionAlreadyInChain)
 
 DEV_SIMPLE_EXCEPTION (BlockNotFound)
 
 DEV_SIMPLE_EXCEPTION (UnknownParent)
 
 DEV_SIMPLE_EXCEPTION (AddressAlreadyUsed)
 
 DEV_SIMPLE_EXCEPTION (ZeroSignatureTransaction)
 
 DEV_SIMPLE_EXCEPTION (UnknownTransactionValidationError)
 
 DEV_SIMPLE_EXCEPTION (UnknownError)
 
 DEV_SIMPLE_EXCEPTION (InvalidDatabaseKind)
 
 DEV_SIMPLE_EXCEPTION (DatabaseAlreadyOpen)
 
 DEV_SIMPLE_EXCEPTION (DAGCreationFailure)
 
 DEV_SIMPLE_EXCEPTION (DAGComputeFailure)
 
 DEV_SIMPLE_EXCEPTION (UnsupportedSnapshotManifestVersion)
 
 DEV_SIMPLE_EXCEPTION (InvalidSnapshotManifest)
 
 DEV_SIMPLE_EXCEPTION (StateTrieReconstructionFailed)
 
 DEV_SIMPLE_EXCEPTION (InvalidStateChunkData)
 
 DEV_SIMPLE_EXCEPTION (InvalidBlockChunkData)
 
 DEV_SIMPLE_EXCEPTION (AccountAlreadyImported)
 
 DEV_SIMPLE_EXCEPTION (InvalidWarpStatusPacket)
 
 DEV_SIMPLE_EXCEPTION (FailedToDownloadManifest)
 
 DEV_SIMPLE_EXCEPTION (FailedToDownloadDaoForkBlockHeader)
 
 DEV_SIMPLE_EXCEPTION (AccountLocked)
 
 DEV_SIMPLE_EXCEPTION (TransactionRefused)
 
 DEV_SIMPLE_EXCEPTION (UnknownAccount)
 
 DEV_SIMPLE_EXCEPTION (PeerDisconnected)
 
LogBloom bloom (LogEntries const &_logs)
 
 DEV_SIMPLE_EXCEPTION (ExecutorNotFound)
 
 DEV_SIMPLE_EXCEPTION (PricerNotFound)
 
u256 calculateEthashDifficulty (ChainOperationParams const &_chainParams, BlockHeader const &_bi, BlockHeader const &_parent)
 
u256 calculateGasLimit (ChainOperationParams const &_chainParams, BlockHeader const &_bi, u256 const &_gasFloorTarget)
 
std::ostream & operator<< (std::ostream &_out, TransactionBase const &_t)
 Simple human-readable stream-shift operator. More...
 
AccountMap jsonToAccountMap (std::string const &_json, u256 const &_defaultNonce=0, AccountMaskMap *o_mask=nullptr, PrecompiledContractMap *o_precompiled=nullptr, const boost::filesystem::path &_configPath={})
 
 DEV_SIMPLE_EXCEPTION (ChainOperationWithUnknownBlockChain)
 
 DEV_SIMPLE_EXCEPTION (InvalidOperationOnSealedBlock)
 
 DEV_SIMPLE_EXCEPTION (AlreadyHaveBlock)
 
 DEV_SIMPLE_EXCEPTION (FutureTime)
 
 DEV_SIMPLE_EXCEPTION (TransientError)
 
 DEV_SIMPLE_EXCEPTION (FailedToWriteChainStart)
 
 DEV_SIMPLE_EXCEPTION (UnknownBlockNumber)
 
std::unordered_map< Address, Account > const & genesisState ()
 
db::Slice toSlice (h256 const &_h, unsigned _sub=0)
 
db::Slice toSlice (uint64_t _n, unsigned _sub=0)
 
std::ostream & operator<< (std::ostream &_out, BlockChain const &_bc)
 
std::unique_ptr< BlockChainImporterFacecreateBlockChainImporter (BlockChain &_blockChain)
 
std::ostream & operator<< (std::ostream &_out, SyncStatus const &_sync)
 
std::ostream & operator<< (std::ostream &os, QueueStatus const &obj)
 
std::ostream & operator<< (std::ostream &_out, BlockQueueStatus const &_s)
 
std::ostream & operator<< (std::ostream &_out, ActivityReport const &_r)
 
 DEV_SIMPLE_EXCEPTION (ChainParamsInvalid)
 
 DEV_SIMPLE_EXCEPTION (ImportBlockFailed)
 
ClientTestasClientTest (Interface &_c)
 
ClientTestasClientTest (Interface *_c)
 
std::ostream & operator<< (std::ostream &_out, WorkingProgress _p)
 
dev::Addresses childDaos ()
 
std::ostream & operator<< (std::ostream &_out, dev::eth::LogFilter const &_s)
 Simple stream output for the StateDiff. More...
 
std::unique_ptr< SnapshotStorageFacecreateSnapshotStorage (fs::path const &_snapshotDirPath)
 
fs::path importedSnapshotPath (fs::path const &_dataDir, h256 const &_genesisHash)
 
 DEV_SIMPLE_EXCEPTION (FailedToReadSnapshotManifestFile)
 
 DEV_SIMPLE_EXCEPTION (FailedToReadChunkFile)
 
 DEV_SIMPLE_EXCEPTION (ChunkIsTooBig)
 
 DEV_SIMPLE_EXCEPTION (ChunkDataCorrupted)
 
 DEV_SIMPLE_EXCEPTION (FailedToGetUncompressedLength)
 
 DEV_SIMPLE_EXCEPTION (FailedToUncompressedSnapshotChunk)
 
std::unique_ptr< SnapshotStorageFacecreateSnapshotStorage (boost::filesystem::path const &_snapshotDirPath)
 
boost::filesystem::path importedSnapshotPath (boost::filesystem::path const &_dataDir, h256 const &_genesisHash)
 
 DEV_SIMPLE_EXCEPTION (InvalidAccountStartNonceInState)
 
 DEV_SIMPLE_EXCEPTION (IncorrectAccountStartNonceInState)
 
std::ostream & operator<< (std::ostream &_out, State const &_s)
 
StatecreateIntermediateState (State &o_s, Block const &_block, unsigned _txIndex, BlockChain const &_bc)
 
template<class DB >
AddressHash commit (AccountMap const &_cache, SecureTrieDB< Address, DB > &_state)
 
std::unique_ptr< StateImporterFacecreateStateImporter (OverlayDB &_stateDb)
 
 DEV_SIMPLE_EXCEPTION (InvalidAccountInTheDatabase)
 
TransactionException toTransactionException (Exception const &_e)
 
std::ostream & operator<< (std::ostream &_out, TransactionException const &_er)
 
std::ostream & operator<< (std::ostream &_out, ExecutionResult const &_er)
 
std::ostream & operator<< (std::ostream &_out, eth::TransactionReceipt const &_r)
 
evmc_address toEvmC (Address const &_addr)
 
evmc_uint256be toEvmC (h256 const &_h)
 
u256 fromEvmC (evmc_uint256be const &_n)
 
Address fromEvmC (evmc_address const &_addr)
 
InstructionInfo instructionInfo (Instruction _inst)
 Information on all the instructions. More...
 
 ETH_SIMPLE_EXCEPTION_VM (BadInstruction)
 
 ETH_SIMPLE_EXCEPTION_VM (BadJumpDestination)
 
 ETH_SIMPLE_EXCEPTION_VM (OutOfGas)
 
 ETH_SIMPLE_EXCEPTION_VM (OutOfStack)
 
 ETH_SIMPLE_EXCEPTION_VM (StackUnderflow)
 
 ETH_SIMPLE_EXCEPTION_VM (DisallowedStateChange)
 
 ETH_SIMPLE_EXCEPTION_VM (BufferOverrun)
 
Address asAddress (u256 _item)
 Helpers: More...
 
u256 fromAddress (Address _a)
 
std::vector< std::pair< std::string, std::string > > & evmcOptions () noexcept
 Returns the EVMC options parsed from command line. More...
 
po::options_description vmProgramOptions (unsigned _lineLength)
 

Variables

constexpr int64_t c_infiniteBlockNumber = std::numeric_limits<int64_t>::max()
 
const unsigned c_protocolVersion = 63
 Current protocol version. More...
 
const unsigned c_minorProtocolVersion = 2
 Current minor protocol version. More...
 
const unsigned c_databaseBaseVersion = 9
 
const unsigned c_databaseVersionModifier = 0
 
const unsigned c_databaseVersion = c_databaseBaseVersion + (c_databaseVersionModifier << 8) + (23 << 9)
 Current database version. More...
 
const Address c_blockhashContractAddress (0xf0)
 Address of the special contract for block hash storage defined in EIP96. More...
 
const bytes c_blockhashContractCode
 Code of the special contract for block hash storage defined in EIP96. More...
 
std::string const c_genesisInfoTestBasicAuthority
 
unsigned const c_WarpProtocolVersion = 1
 

Typedef Documentation

◆ AccountMap

using dev::eth::AccountMap = typedef std::unordered_map<Address, Account>

Definition at line 267 of file Account.h.

◆ AccountMaskMap

using dev::eth::AccountMaskMap = typedef std::unordered_map<Address, AccountMask>

Definition at line 268 of file Account.h.

◆ BadFieldError

using dev::eth::BadFieldError = typedef boost::tuple<errinfo_field, errinfo_data>

Definition at line 43 of file Exceptions.h.

◆ BlockDetailsHash

using dev::eth::BlockDetailsHash = typedef std::unordered_map<h256, BlockDetails>

Definition at line 114 of file BlockDetails.h.

◆ BlockHashHash

using dev::eth::BlockHashHash = typedef std::unordered_map<uint64_t, BlockHash>

Definition at line 118 of file BlockDetails.h.

◆ BlockLogBloomsHash

using dev::eth::BlockLogBloomsHash = typedef std::unordered_map<h256, BlockLogBlooms>

Definition at line 115 of file BlockDetails.h.

◆ BlockNumber

using dev::eth::BlockNumber = typedef unsigned

Definition at line 64 of file Common.h.

◆ BlockReceiptsHash

using dev::eth::BlockReceiptsHash = typedef std::unordered_map<h256, BlockReceipts>

Definition at line 116 of file BlockDetails.h.

◆ BlocksBloomsHash

using dev::eth::BlocksBloomsHash = typedef std::unordered_map<h256, BlocksBlooms>

Definition at line 119 of file BlockDetails.h.

◆ BlocksHash

using dev::eth::BlocksHash = typedef std::unordered_map<h256, bytes>

Definition at line 79 of file BlockChain.h.

◆ ChangeLog

using dev::eth::ChangeLog = typedef std::vector<Change>

Definition at line 144 of file State.h.

◆ errinfo_block

using dev::eth::errinfo_block = typedef boost::error_info<struct tag_block, bytes>

Definition at line 48 of file State.h.

◆ errinfo_currentNumber

using dev::eth::errinfo_currentNumber = typedef boost::error_info<struct tag_currentNumber, u256>

Definition at line 45 of file State.h.

◆ errinfo_data

using dev::eth::errinfo_data = typedef boost::error_info<struct tag_data, std::string>

Definition at line 35 of file Exceptions.h.

◆ errinfo_difficulty

using dev::eth::errinfo_difficulty = typedef boost::error_info<struct tag_difficulty, u256>

Definition at line 37 of file Exceptions.h.

◆ errinfo_ethashResult

using dev::eth::errinfo_ethashResult = typedef boost::error_info<struct tag_ethashResult, std::tuple<h256, h256> >

Definition at line 41 of file Exceptions.h.

◆ errinfo_evmcStatusCode

using dev::eth::errinfo_evmcStatusCode = typedef boost::error_info<struct tag_evmcStatusCode, evmc_status_code>

Error info for EVMC status code.

Definition at line 43 of file VMFace.h.

◆ errinfo_field

using dev::eth::errinfo_field = typedef boost::error_info<struct tag_field, int>

Definition at line 34 of file Exceptions.h.

◆ errinfo_got_LogBloom

using dev::eth::errinfo_got_LogBloom = typedef boost::error_info<struct tag_get_LogBloom, LogBloom>

Definition at line 58 of file State.h.

◆ errinfo_importResult

using dev::eth::errinfo_importResult = typedef boost::error_info<struct tag_importResult, ImportResult>

Definition at line 42 of file Exceptions.h.

◆ errinfo_mixHash

using dev::eth::errinfo_mixHash = typedef boost::error_info<struct tag_mixHash, h256>

Definition at line 40 of file Exceptions.h.

◆ errinfo_name

using dev::eth::errinfo_name = typedef boost::error_info<struct tag_field, std::string>

Definition at line 33 of file Exceptions.h.

◆ errinfo_nonce

using dev::eth::errinfo_nonce = typedef boost::error_info<struct tag_nonce, h64>

Definition at line 36 of file Exceptions.h.

◆ errinfo_now

using dev::eth::errinfo_now = typedef boost::error_info<struct tag_now, unsigned>

Definition at line 49 of file State.h.

◆ errinfo_phase

using dev::eth::errinfo_phase = typedef boost::error_info<struct tag_phase, unsigned>

Definition at line 56 of file State.h.

◆ errinfo_receipts

using dev::eth::errinfo_receipts = typedef boost::error_info<struct tag_receipts, std::vector<bytes> >

Definition at line 54 of file State.h.

◆ errinfo_required_LogBloom

using dev::eth::errinfo_required_LogBloom = typedef boost::error_info<struct tag_required_LogBloom, LogBloom>

Definition at line 57 of file State.h.

◆ errinfo_seedHash

using dev::eth::errinfo_seedHash = typedef boost::error_info<struct tag_seedHash, h256>

Definition at line 39 of file Exceptions.h.

◆ errinfo_target

using dev::eth::errinfo_target = typedef boost::error_info<struct tag_target, h256>

Definition at line 38 of file Exceptions.h.

◆ errinfo_transaction

using dev::eth::errinfo_transaction = typedef boost::error_info<struct tag_transaction, bytes>

Definition at line 55 of file State.h.

◆ errinfo_transactionIndex

using dev::eth::errinfo_transactionIndex = typedef boost::error_info<struct tag_transactionIndex, unsigned>

Definition at line 51 of file State.h.

◆ errinfo_uncleIndex

using dev::eth::errinfo_uncleIndex = typedef boost::error_info<struct tag_uncleIndex, unsigned>

Definition at line 44 of file State.h.

◆ errinfo_uncleNumber

using dev::eth::errinfo_uncleNumber = typedef boost::error_info<struct tag_uncleNumber, u256>

Definition at line 46 of file State.h.

◆ errinfo_unclesExcluded

using dev::eth::errinfo_unclesExcluded = typedef boost::error_info<struct tag_unclesExcluded, h256Hash>

Definition at line 47 of file State.h.

◆ errinfo_vmtrace

using dev::eth::errinfo_vmtrace = typedef boost::error_info<struct tag_vmtrace, std::string>

Definition at line 53 of file State.h.

◆ GasEstimationCallback

using dev::eth::GasEstimationCallback = typedef std::function<void(GasEstimationProgress const&)>

Definition at line 62 of file Interface.h.

◆ Handler

template<class... Args>
using dev::eth::Handler = typedef std::shared_ptr<typename Signal<Args...>::HandlerAux>

Definition at line 181 of file Common.h.

◆ LocalisedLogEntries

using dev::eth::LocalisedLogEntries = typedef std::vector<LocalisedLogEntry>

Definition at line 94 of file LogEntry.h.

◆ LogBloom

using dev::eth::LogBloom = typedef h2048

The log bloom's size (2048-bit).

Definition at line 50 of file Common.h.

◆ LogBloomRequirementError

Definition at line 59 of file State.h.

◆ LogBlooms

using dev::eth::LogBlooms = typedef std::vector<LogBloom>

Many log blooms.

Definition at line 53 of file Common.h.

◆ LogEntries

using dev::eth::LogEntries = typedef std::vector<LogEntry>

Definition at line 51 of file LogEntry.h.

◆ NodeID

using dev::eth::NodeID = typedef p2p::NodeID

Definition at line 105 of file CommonNet.h.

◆ Nonce

using dev::eth::Nonce = typedef h64

Definition at line 62 of file Common.h.

◆ OnOpFunc

using dev::eth::OnOpFunc = typedef std::function<void(uint64_t , uint64_t , Instruction , bigint , bigint , bigint , VMFace const*, ExtVMFace const*)>

Definition at line 115 of file ExtVMFace.h.

◆ PrecompiledContractMap

using dev::eth::PrecompiledContractMap = typedef std::unordered_map<Address, PrecompiledContract>

Definition at line 271 of file Account.h.

◆ PrecompiledExecutor

using dev::eth::PrecompiledExecutor = typedef std::function<std::pair<bool, bytes>(bytesConstRef _in)>

Definition at line 34 of file Precompiled.h.

◆ PrecompiledPricer

using dev::eth::PrecompiledPricer = typedef std::function<bigint(bytesConstRef _in)>

Definition at line 35 of file Precompiled.h.

◆ ProgressCallback

using dev::eth::ProgressCallback = typedef std::function<void(unsigned, unsigned)>

Definition at line 92 of file BlockChain.h.

◆ SealEngineFactory

using dev::eth::SealEngineFactory = typedef std::function<SealEngineFace*()>

Definition at line 119 of file SealEngine.h.

◆ SecureTrieDB

template<class KeyType , class DB >
using dev::eth::SecureTrieDB = typedef SpecificTrieDB<HashedGenericTrieDB<DB>, KeyType>

Definition at line 31 of file SecureTrieDB.h.

◆ TransactionAddressHash

using dev::eth::TransactionAddressHash = typedef std::unordered_map<h256, TransactionAddress>

Definition at line 117 of file BlockDetails.h.

◆ TransactionBases

using dev::eth::TransactionBases = typedef std::vector<TransactionBase>

Nice name for vector of Transaction.

Definition at line 191 of file TransactionBase.h.

◆ TransactionHashes

Definition at line 80 of file BlockChain.h.

◆ TransactionReceipts

using dev::eth::TransactionReceipts = typedef std::vector<TransactionReceipt>

Definition at line 69 of file TransactionReceipt.h.

◆ Transactions

using dev::eth::Transactions = typedef std::vector<Transaction>

Nice name for vector of Transaction.

Definition at line 122 of file Transaction.h.

◆ UncleHashes

Definition at line 81 of file BlockChain.h.

◆ VerifiedBlocks

using dev::eth::VerifiedBlocks = typedef std::vector<VerifiedBlock>

Definition at line 76 of file VerifiedBlock.h.

◆ VMPtr

using dev::eth::VMPtr = typedef std::unique_ptr<VMFace, void (*)(VMFace*)>

Definition at line 44 of file VMFactory.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ExtraDetails 
ExtraBlockHash 
ExtraTransactionAddress 
ExtraLogBlooms 
ExtraReceipts 
ExtraBlocksBlooms 

Definition at line 83 of file BlockChain.h.

◆ AlethErrors

Errors returned from main.

Enumerator
Success 
Success 
UnrecognizedPeerset 
ArgumentProcessingFailure 
UnknownArgument 
UnknownMiningOption 
ConfigFileEmptyOrNotFound 
ConfigFileInvalid 
UnknownNetworkType 
BadNetworkIdOption 
BadConfigOption 
BadExtraDataOption 
BadAskOption 
BadBidOption 
BadFormatOption 
BadUpnpOption 
BadAddressOption 
BadHexValueInAddressOption 
BadBlockNumberHashOption 
KeyManagerInitializationFailure 
SnapshotImportFailure 
NetworkStartFailure 
BadRlp 
RlpDataNotAList 
UnsupportedJsonType 
InvalidJson 

Definition at line 221 of file Common.h.

◆ Asking

enum dev::eth::Asking
strong
Enumerator
State 
BlockHeaders 
BlockBodies 
NodeData 
Receipts 
WarpManifest 
WarpData 
Nothing 

Definition at line 72 of file CommonNet.h.

◆ BaseState

enum dev::eth::BaseState
strong
Enumerator
PreExisting 
Empty 

Definition at line 66 of file State.h.

◆ BlockDataType

Enumerator
HeaderData 
BlockData 

Definition at line 67 of file BlockHeader.h.

◆ BlockPolarity

Enumerator
Unknown 
Dead 
Live 

Definition at line 80 of file Common.h.

◆ CheckTransaction

Enumerator
None 
Cheap 
Everything 

Definition at line 41 of file TransactionBase.h.

◆ ClientWorkState

Enumerator
Active 
Deleting 
Deleted 

Definition at line 58 of file Client.h.

◆ CodeDeposit

enum dev::eth::CodeDeposit
strong
Enumerator
None 
Failed 
Success 

Definition at line 57 of file Transaction.h.

◆ FudgeFactor

enum dev::eth::FudgeFactor
strong
Enumerator
Strict 
Lenient 

Definition at line 50 of file Interface.h.

◆ IfDropped

enum dev::eth::IfDropped
strong

Import transaction policy.

Enumerator
Ignore 

Don't import transaction that was previously dropped.

Retry 

Import transaction even if it was dropped before.

Definition at line 214 of file Common.h.

◆ ImportResult

Enumerator
Success 
UnknownParent 
FutureTimeKnown 
FutureTimeUnknown 
AlreadyInChain 
AlreadyKnown 
Malformed 
OverbidGasPrice 
BadChain 
ZeroSignature 

Definition at line 96 of file Common.h.

◆ IncludeSeal

Enumerator
WithoutSeal 
WithSeal 
OnlySeal 

Definition at line 39 of file BlockHeader.h.

◆ IncludeSignature

Named-boolean type to encode whether a signature be included in the serialisation process.

Enumerator
WithoutSignature 

Do not include a signature.

WithSignature 

Do include a signature.

Definition at line 35 of file TransactionBase.h.

◆ Instruction

enum dev::eth::Instruction : uint8_t
strong

Virtual machine bytecode instruction.

Enumerator
STOP 

halts execution

ADD 

addition operation

MUL 

mulitplication operation

SUB 

subtraction operation

DIV 

integer division operation

SDIV 

signed integer division operation

MOD 

modulo remainder operation

SMOD 

signed modulo remainder operation

ADDMOD 

unsigned modular addition

MULMOD 

unsigned modular multiplication

EXP 

exponential operation

SIGNEXTEND 

extend length of signed integer

LT 

less-than comparision

GT 

greater-than comparision

SLT 

signed less-than comparision

SGT 

signed greater-than comparision

EQ 

equality comparision

ISZERO 

simple not operator

AND 

bitwise AND operation

OR 

bitwise OR operation

XOR 

bitwise XOR operation

NOT 

bitwise NOT operation

BYTE 

retrieve single byte from word

SHL 

logical shift left operation

SHR 

logical shift right operation

SAR 

arithmetic shift right operation

SHA3 

compute SHA3-256 hash

ADDRESS 

get address of currently executing account

BALANCE 

get balance of the given account

ORIGIN 

get execution origination address

CALLER 

get caller address

CALLVALUE 

get deposited value by the instruction/transaction responsible for this execution

CALLDATALOAD 

get input data of current environment

CALLDATASIZE 

get size of input data in current environment

CALLDATACOPY 

copy input data in current environment to memory

CODESIZE 

get size of code running in current environment

CODECOPY 

copy code running in current environment to memory

GASPRICE 

get price of gas in current environment

EXTCODESIZE 

get external code size (from another contract)

EXTCODECOPY 

copy external code (from another contract)

RETURNDATASIZE 

size of data returned from previous call

RETURNDATACOPY 

copy data returned from previous call to memory

EXTCODEHASH 

get external code hash

BLOCKHASH 

get hash of most recent complete block

COINBASE 

get the block's coinbase address

TIMESTAMP 

get the block's timestamp

NUMBER 

get the block's number

DIFFICULTY 

get the block's difficulty

GASLIMIT 

get the block's gas limit

POP 

remove item from stack

MLOAD 

load word from memory

MSTORE 

save word to memory

MSTORE8 

save byte to memory

SLOAD 

load word from storage

SSTORE 

save word to storage

JUMP 

alter the program counter to a jumpdest

JUMPI 

conditionally alter the program counter

PC 

get the program counter

MSIZE 

get the size of active memory

GAS 

get the amount of available gas

JUMPDEST 

set a potential jump destination

PUSH1 

place 1 byte item on stack

PUSH2 

place 2 byte item on stack

PUSH3 

place 3 byte item on stack

PUSH4 

place 4 byte item on stack

PUSH5 

place 5 byte item on stack

PUSH6 

place 6 byte item on stack

PUSH7 

place 7 byte item on stack

PUSH8 

place 8 byte item on stack

PUSH9 

place 9 byte item on stack

PUSH10 

place 10 byte item on stack

PUSH11 

place 11 byte item on stack

PUSH12 

place 12 byte item on stack

PUSH13 

place 13 byte item on stack

PUSH14 

place 14 byte item on stack

PUSH15 

place 15 byte item on stack

PUSH16 

place 16 byte item on stack

PUSH17 

place 17 byte item on stack

PUSH18 

place 18 byte item on stack

PUSH19 

place 19 byte item on stack

PUSH20 

place 20 byte item on stack

PUSH21 

place 21 byte item on stack

PUSH22 

place 22 byte item on stack

PUSH23 

place 23 byte item on stack

PUSH24 

place 24 byte item on stack

PUSH25 

place 25 byte item on stack

PUSH26 

place 26 byte item on stack

PUSH27 

place 27 byte item on stack

PUSH28 

place 28 byte item on stack

PUSH29 

place 29 byte item on stack

PUSH30 

place 30 byte item on stack

PUSH31 

place 31 byte item on stack

PUSH32 

place 32 byte item on stack

DUP1 

copies the highest item in the stack to the top of the stack

DUP2 

copies the second highest item in the stack to the top of the stack

DUP3 

copies the third highest item in the stack to the top of the stack

DUP4 

copies the 4th highest item in the stack to the top of the stack

DUP5 

copies the 5th highest item in the stack to the top of the stack

DUP6 

copies the 6th highest item in the stack to the top of the stack

DUP7 

copies the 7th highest item in the stack to the top of the stack

DUP8 

copies the 8th highest item in the stack to the top of the stack

DUP9 

copies the 9th highest item in the stack to the top of the stack

DUP10 

copies the 10th highest item in the stack to the top of the stack

DUP11 

copies the 11th highest item in the stack to the top of the stack

DUP12 

copies the 12th highest item in the stack to the top of the stack

DUP13 

copies the 13th highest item in the stack to the top of the stack

DUP14 

copies the 14th highest item in the stack to the top of the stack

DUP15 

copies the 15th highest item in the stack to the top of the stack

DUP16 

copies the 16th highest item in the stack to the top of the stack

SWAP1 

swaps the highest and second highest value on the stack

SWAP2 

swaps the highest and third highest value on the stack

SWAP3 

swaps the highest and 4th highest value on the stack

SWAP4 

swaps the highest and 5th highest value on the stack

SWAP5 

swaps the highest and 6th highest value on the stack

SWAP6 

swaps the highest and 7th highest value on the stack

SWAP7 

swaps the highest and 8th highest value on the stack

SWAP8 

swaps the highest and 9th highest value on the stack

SWAP9 

swaps the highest and 10th highest value on the stack

SWAP10 

swaps the highest and 11th highest value on the stack

SWAP11 

swaps the highest and 12th highest value on the stack

SWAP12 

swaps the highest and 13th highest value on the stack

SWAP13 

swaps the highest and 14th highest value on the stack

SWAP14 

swaps the highest and 15th highest value on the stack

SWAP15 

swaps the highest and 16th highest value on the stack

SWAP16 

swaps the highest and 17th highest value on the stack

LOG0 

Makes a log entry; no topics.

LOG1 

Makes a log entry; 1 topic.

LOG2 

Makes a log entry; 2 topics.

LOG3 

Makes a log entry; 3 topics.

LOG4 

Makes a log entry; 4 topics.

PUSHC 

push value from constant pool

JUMPC 

alter the program counter - pre-verified

JUMPCI 

conditionally alter the program counter - pre-verified

JUMPTO 

alter the program counter to a jumpdest

JUMPIF 

conditionally alter the program counter

JUMPSUB 

alter the program counter to a beginsub

JUMPV 

alter the program counter to a jumpdest

JUMPSUBV 

alter the program counter to a beginsub

BEGINSUB 

set a potential jumpsub destination

BEGINDATA 

begine the data section

RETURNSUB 

return to subroutine jumped from

PUTLOCAL 

pop top of stack to local variable

GETLOCAL 

push local variable to top of stack

XADD 

addition operation

XMUL 

mulitplication operation

XSUB 

subtraction operation

XDIV 

integer division operation

XSDIV 

signed integer division operation

XMOD 

modulo remainder operation

XSMOD 

signed modulo remainder operation

XLT 

less-than comparision

XGT 

greater-than comparision

XSLT 

signed less-than comparision

XSGT 

signed greater-than comparision

XEQ 

equality comparision

XISZERO 

simple not operator

XAND 

bitwise AND operation

XOOR 

bitwise OR operation

XXOR 

bitwise XOR operation

XNOT 

bitwise NOT opertation

XSHL 

shift left opertation

XSHR 

shift right opertation

XSAR 

shift arithmetic right opertation

XROL 

rotate left opertation

XROR 

rotate right opertation

XPUSH 

push vector to stack

XMLOAD 

load vector from memory

XMSTORE 

save vector to memory

XSLOAD 

load vector from storage

XSSTORE 

save vector to storage

XVTOWIDE 

convert vector to wide integer

XWIDETOV 

convert wide integer to vector

XGET 

get data from vector

XPUT 

put data in vector

XSWIZZLE 

permute data in vector

XSHUFFLE 

permute data in two vectors

CREATE 

create a new account with associated code

CALL 

message-call into an account

CALLCODE 

message-call with another account's code only

RETURN 

halt execution returning output data

DELEGATECALL 

like CALLCODE but keeps caller's value and sender

CREATE2 

create a new account with associated code. sha3((sender + salt + code)

STATICCALL 

like CALL except state changing operation are not permitted (will throw)

REVERT 

stop execution and revert state changes, without consuming all provided gas

INVALID 

dedicated invalid instruction

SUICIDE 

halt execution and register account for later deletion

Definition at line 28 of file Instruction.h.

◆ Permanence

enum dev::eth::Permanence
strong
Enumerator
Reverted 
Committed 
Uncommitted 

Uncommitted state for change log readings in tests.

Definition at line 72 of file State.h.

◆ QueueStatus

enum dev::eth::QueueStatus
strong
Enumerator
Ready 
Importing 
UnknownParent 
Bad 
Unknown 

Definition at line 54 of file BlockQueue.h.

◆ Reaping

enum dev::eth::Reaping
strong
Enumerator
Automatic 
Manual 

Definition at line 44 of file Interface.h.

◆ RelativeBlock

Enumerator
Latest 
Pending 

Definition at line 74 of file Common.h.

◆ SemanticPassword

Enumerator
Existing 
Master 

Definition at line 55 of file KeyManager.h.

◆ Strictness

Enumerator
CheckEverything 
QuickNonce 
IgnoreSeal 
CheckNothingNew 

Definition at line 46 of file BlockHeader.h.

◆ SubprotocolPacketType

Enumerator
StatusPacket 
NewBlockHashesPacket 
TransactionsPacket 
GetBlockHeadersPacket 
BlockHeadersPacket 
GetBlockBodiesPacket 
BlockBodiesPacket 
NewBlockPacket 
GetNodeDataPacket 
NodeDataPacket 
GetReceiptsPacket 
ReceiptsPacket 
PacketCount 

Definition at line 53 of file CommonNet.h.

◆ SyncState

enum dev::eth::SyncState
strong
Enumerator
NotSynced 

Initial chain sync has not started yet.

Idle 

Initial chain sync complete. Waiting for new packets.

Waiting 

Block downloading paused. Waiting for block queue to process blocks and free space.

Blocks 

Downloading blocks.

State 

Downloading state.

Size 

Must be kept last.

Definition at line 84 of file CommonNet.h.

◆ Tier

enum dev::eth::Tier : unsigned
strong
Enumerator
Zero 
Base 
VeryLow 
Low 
Mid 
High 
Ext 
Special 
Invalid 

Definition at line 234 of file Instruction.h.

◆ TransactionException

Enumerator
None 
Unknown 
BadRLP 
InvalidFormat 
OutOfGasIntrinsic 

Too little gas to pay for the base transaction cost.

InvalidSignature 
InvalidNonce 
NotEnoughCash 
OutOfGasBase 

Too little gas to pay for the base transaction cost.

BlockGasLimitReached 
BadInstruction 
BadJumpDestination 
OutOfGas 

Ran out of gas executing code of the transaction.

OutOfStack 

Ran out of stack executing code of the transaction.

StackUnderflow 
RevertInstruction 
InvalidZeroSignatureFormat 
AddressAlreadyUsed 

Definition at line 35 of file Transaction.h.

◆ TransactionPriority

Enumerator
Lowest 
Low 
Medium 
High 
Highest 

Definition at line 34 of file GasPricer.h.

◆ VMKind

enum dev::eth::VMKind
strong
Enumerator
Interpreter 
Legacy 
DLL 

Definition at line 27 of file VMFactory.h.

◆ WarpSubprotocolPacketType

Enumerator
WarpStatusPacket 
GetSnapshotManifest 
SnapshotManifest 
GetSnapshotData 
SnapshotData 
WarpSubprotocolPacketCount 

Definition at line 19 of file WarpCapability.h.

Function Documentation

◆ asAddress()

Address dev::eth::asAddress ( u256  _item)
inline

Helpers:

Definition at line 79 of file VMFace.h.

◆ asClientTest() [1/2]

ClientTest & dev::eth::asClientTest ( Interface _c)

Definition at line 35 of file ClientTest.cpp.

◆ asClientTest() [2/2]

ClientTest * dev::eth::asClientTest ( Interface _c)

Definition at line 40 of file ClientTest.cpp.

◆ badBlock() [1/3]

void dev::eth::badBlock ( bytes const &  _header,
std::string const &  _err 
)
inline

Definition at line 199 of file Common.h.

◆ badBlock() [2/3]

void dev::eth::badBlock ( bytesConstRef  _block,
string const &  _err 
)

Definition at line 141 of file Common.cpp.

◆ badBlock() [3/3]

void dev::eth::badBlock ( bytesConstRef  _header,
std::string const &  _err 
)

◆ bloom()

LogBloom dev::eth::bloom ( LogEntries const &  _logs)
inline

Definition at line 96 of file LogEntry.h.

◆ c_blockhashContractCode()

const bytes dev::eth::c_blockhashContractCode ( fromHex("0x600073fffffffffffffffffffffffffffffffffffffffe33141561005957600143035b60011561005357600035610100820683015561010081061561004057005b6101008104905061010082019150610022565b506100e0565b4360003512156100d4576000356001814303035b61010081121515610085576000610100830614610088565b60005b156100a75761010083019250610100820491506101008104905061006d565b610100811215156100bd57600060a052602060a0f35b610100820683015460c052602060c0f350506100df565b600060e052602060e0f35b5b50")  )

◆ calculateEthashDifficulty()

u256 dev::eth::calculateEthashDifficulty ( ChainOperationParams const &  _chainParams,
BlockHeader const &  _bi,
BlockHeader const &  _parent 
)

Definition at line 183 of file SealEngine.cpp.

◆ calculateGasLimit()

u256 dev::eth::calculateGasLimit ( ChainOperationParams const &  _chainParams,
BlockHeader const &  _bi,
u256 const &  _gasFloorTarget 
)

Definition at line 241 of file SealEngine.cpp.

◆ childDaos()

dev::Addresses dev::eth::childDaos ( )

Definition at line 303 of file GenesisInfo.cpp.

◆ commit()

template<class DB >
AddressHash dev::eth::commit ( AccountMap const &  _cache,
SecureTrieDB< Address, DB > &  _state 
)

Definition at line 759 of file State.cpp.

◆ createBlockChainImporter()

std::unique_ptr< BlockChainImporterFace > dev::eth::createBlockChainImporter ( BlockChain _blockChain)

Definition at line 60 of file BlockChainImporter.cpp.

◆ createIntermediateState()

State & dev::eth::createIntermediateState ( State o_s,
Block const &  _block,
unsigned  _txIndex,
BlockChain const &  _bc 
)

Definition at line 744 of file State.cpp.

◆ createSnapshotStorage() [1/2]

std::unique_ptr<SnapshotStorageFace> dev::eth::createSnapshotStorage ( boost::filesystem::path const &  _snapshotDirPath)

◆ createSnapshotStorage() [2/2]

std::unique_ptr<SnapshotStorageFace> dev::eth::createSnapshotStorage ( fs::path const &  _snapshotDirPath)

Definition at line 98 of file SnapshotStorage.cpp.

◆ createStateImporter()

std::unique_ptr< StateImporterFace > dev::eth::createStateImporter ( OverlayDB _stateDb)

Definition at line 93 of file StateImporter.cpp.

◆ DEV_SIMPLE_EXCEPTION() [1/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( AccountAlreadyImported  )

◆ DEV_SIMPLE_EXCEPTION() [2/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( AccountLocked  )

◆ DEV_SIMPLE_EXCEPTION() [3/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( AddressAlreadyUsed  )

◆ DEV_SIMPLE_EXCEPTION() [4/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( AlreadyHaveBlock  )

◆ DEV_SIMPLE_EXCEPTION() [5/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( BlockGasLimitReached  )

◆ DEV_SIMPLE_EXCEPTION() [6/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( BlockNotFound  )

◆ DEV_SIMPLE_EXCEPTION() [7/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ChainOperationWithUnknownBlockChain  )

◆ DEV_SIMPLE_EXCEPTION() [8/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ChainParamsInvalid  )

◆ DEV_SIMPLE_EXCEPTION() [9/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ChunkDataCorrupted  )

◆ DEV_SIMPLE_EXCEPTION() [10/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ChunkIsTooBig  )

◆ DEV_SIMPLE_EXCEPTION() [11/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( DAGComputeFailure  )

◆ DEV_SIMPLE_EXCEPTION() [12/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( DAGCreationFailure  )

◆ DEV_SIMPLE_EXCEPTION() [13/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( DatabaseAlreadyOpen  )

◆ DEV_SIMPLE_EXCEPTION() [14/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ExecutorNotFound  )

◆ DEV_SIMPLE_EXCEPTION() [15/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ExtraDataIncorrect  )

◆ DEV_SIMPLE_EXCEPTION() [16/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ExtraDataTooBig  )

◆ DEV_SIMPLE_EXCEPTION() [17/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FailedToDownloadDaoForkBlockHeader  )

◆ DEV_SIMPLE_EXCEPTION() [18/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FailedToDownloadManifest  )

◆ DEV_SIMPLE_EXCEPTION() [19/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FailedToGetUncompressedLength  )

◆ DEV_SIMPLE_EXCEPTION() [20/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FailedToReadChunkFile  )

◆ DEV_SIMPLE_EXCEPTION() [21/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FailedToReadSnapshotManifestFile  )

◆ DEV_SIMPLE_EXCEPTION() [22/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FailedToUncompressedSnapshotChunk  )

◆ DEV_SIMPLE_EXCEPTION() [23/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FailedToWriteChainStart  )

◆ DEV_SIMPLE_EXCEPTION() [24/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FeeTooSmall  )

◆ DEV_SIMPLE_EXCEPTION() [25/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( FutureTime  )

◆ DEV_SIMPLE_EXCEPTION() [26/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( GasPriceTooLow  )

◆ DEV_SIMPLE_EXCEPTION() [27/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( GenesisBlockCannotBeCalculated  )

◆ DEV_SIMPLE_EXCEPTION() [28/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ImportBlockFailed  )

◆ DEV_SIMPLE_EXCEPTION() [29/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( IncorrectAccountStartNonceInState  )

◆ DEV_SIMPLE_EXCEPTION() [30/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidAccountInTheDatabase  )

◆ DEV_SIMPLE_EXCEPTION() [31/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidAccountStartNonceInState  )

◆ DEV_SIMPLE_EXCEPTION() [32/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidAddress  )

◆ DEV_SIMPLE_EXCEPTION() [33/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidBlockChunkData  )

◆ DEV_SIMPLE_EXCEPTION() [34/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidBlockFormat  )

◆ DEV_SIMPLE_EXCEPTION() [35/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidBlockHeaderItemCount  )

◆ DEV_SIMPLE_EXCEPTION() [36/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidBlockNonce  )

◆ DEV_SIMPLE_EXCEPTION() [37/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidDatabaseKind  )

◆ DEV_SIMPLE_EXCEPTION() [38/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidDifficulty  )

◆ DEV_SIMPLE_EXCEPTION() [39/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidGasLimit  )

◆ DEV_SIMPLE_EXCEPTION() [40/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidGasUsed  )

◆ DEV_SIMPLE_EXCEPTION() [41/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidLogBloom  )

◆ DEV_SIMPLE_EXCEPTION() [42/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidNonce  )

◆ DEV_SIMPLE_EXCEPTION() [43/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidNumber  )

◆ DEV_SIMPLE_EXCEPTION() [44/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidOperationOnSealedBlock  )

◆ DEV_SIMPLE_EXCEPTION() [45/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidParentHash  )

◆ DEV_SIMPLE_EXCEPTION() [46/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidReceiptsStateRoot  )

◆ DEV_SIMPLE_EXCEPTION() [47/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidSignature  )

◆ DEV_SIMPLE_EXCEPTION() [48/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidSnapshotManifest  )

◆ DEV_SIMPLE_EXCEPTION() [49/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidStateChunkData  )

◆ DEV_SIMPLE_EXCEPTION() [50/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidStateRoot  )

◆ DEV_SIMPLE_EXCEPTION() [51/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidTimestamp  )

◆ DEV_SIMPLE_EXCEPTION() [52/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidTransactionFormat  )

◆ DEV_SIMPLE_EXCEPTION() [53/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidTransactionReceiptFormat  )

◆ DEV_SIMPLE_EXCEPTION() [54/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidTransactionsRoot  )

◆ DEV_SIMPLE_EXCEPTION() [55/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidUncleParentHash  )

◆ DEV_SIMPLE_EXCEPTION() [56/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidUnclesHash  )

◆ DEV_SIMPLE_EXCEPTION() [57/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidWarpStatusPacket  )

◆ DEV_SIMPLE_EXCEPTION() [58/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidZeroSignatureTransaction  )

◆ DEV_SIMPLE_EXCEPTION() [59/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( NoHashRecorded  )

◆ DEV_SIMPLE_EXCEPTION() [60/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( NotEnoughAvailableSpace  )

◆ DEV_SIMPLE_EXCEPTION() [61/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( NotEnoughCash  )

◆ DEV_SIMPLE_EXCEPTION() [62/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( OutOfGasBase  )

◆ DEV_SIMPLE_EXCEPTION() [63/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( OutOfGasIntrinsic  )

◆ DEV_SIMPLE_EXCEPTION() [64/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( PeerDisconnected  )

◆ DEV_SIMPLE_EXCEPTION() [65/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( PendingTransactionAlreadyExists  )

◆ DEV_SIMPLE_EXCEPTION() [66/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( PricerNotFound  )

◆ DEV_SIMPLE_EXCEPTION() [67/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( StateTrieReconstructionFailed  )

◆ DEV_SIMPLE_EXCEPTION() [68/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( TooManyUncles  )

◆ DEV_SIMPLE_EXCEPTION() [69/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( TooMuchGasUsed  )

◆ DEV_SIMPLE_EXCEPTION() [70/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( TransactionAlreadyInChain  )

◆ DEV_SIMPLE_EXCEPTION() [71/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( TransactionIsUnsigned  )

◆ DEV_SIMPLE_EXCEPTION() [72/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( TransactionReceiptVersionError  )

◆ DEV_SIMPLE_EXCEPTION() [73/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( TransactionRefused  )

◆ DEV_SIMPLE_EXCEPTION() [74/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( TransientError  )

◆ DEV_SIMPLE_EXCEPTION() [75/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UncleInChain  )

◆ DEV_SIMPLE_EXCEPTION() [76/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UncleIsBrother  )

◆ DEV_SIMPLE_EXCEPTION() [77/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UncleParentNotInChain  )

◆ DEV_SIMPLE_EXCEPTION() [78/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UncleTooOld  )

◆ DEV_SIMPLE_EXCEPTION() [79/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UnknownAccount  )

◆ DEV_SIMPLE_EXCEPTION() [80/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UnknownBlockNumber  )

◆ DEV_SIMPLE_EXCEPTION() [81/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UnknownError  )

◆ DEV_SIMPLE_EXCEPTION() [82/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UnknownParent  )

◆ DEV_SIMPLE_EXCEPTION() [83/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UnknownTransactionValidationError  )

◆ DEV_SIMPLE_EXCEPTION() [84/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( UnsupportedSnapshotManifestVersion  )

◆ DEV_SIMPLE_EXCEPTION() [85/85]

dev::eth::DEV_SIMPLE_EXCEPTION ( ZeroSignatureTransaction  )

◆ ETH_SIMPLE_EXCEPTION_VM() [1/7]

dev::eth::ETH_SIMPLE_EXCEPTION_VM ( BadInstruction  )

◆ ETH_SIMPLE_EXCEPTION_VM() [2/7]

dev::eth::ETH_SIMPLE_EXCEPTION_VM ( BadJumpDestination  )

◆ ETH_SIMPLE_EXCEPTION_VM() [3/7]

dev::eth::ETH_SIMPLE_EXCEPTION_VM ( BufferOverrun  )

◆ ETH_SIMPLE_EXCEPTION_VM() [4/7]

dev::eth::ETH_SIMPLE_EXCEPTION_VM ( DisallowedStateChange  )

◆ ETH_SIMPLE_EXCEPTION_VM() [5/7]

dev::eth::ETH_SIMPLE_EXCEPTION_VM ( OutOfGas  )

◆ ETH_SIMPLE_EXCEPTION_VM() [6/7]

dev::eth::ETH_SIMPLE_EXCEPTION_VM ( OutOfStack  )

◆ ETH_SIMPLE_EXCEPTION_VM() [7/7]

dev::eth::ETH_SIMPLE_EXCEPTION_VM ( StackUnderflow  )

◆ evmcOptions()

std::vector< std::pair< std::string, std::string > > & dev::eth::evmcOptions ( )
noexcept

Returns the EVMC options parsed from command line.

Definition at line 136 of file VMFactory.cpp.

◆ formatBalance()

std::string dev::eth::formatBalance ( bigint const &  _b)

User-friendly string representation of the amount _b in wei.

Definition at line 96 of file Common.cpp.

◆ fromAddress()

u256 dev::eth::fromAddress ( Address  _a)
inline

Definition at line 84 of file VMFace.h.

◆ fromEvmC() [1/2]

Address dev::eth::fromEvmC ( evmc_address const &  _addr)
inline

Definition at line 296 of file ExtVMFace.h.

◆ fromEvmC() [2/2]

u256 dev::eth::fromEvmC ( evmc_uint256be const &  _n)
inline

Definition at line 291 of file ExtVMFace.h.

◆ genesisState()

std::unordered_map<Address, Account> const& dev::eth::genesisState ( )

◆ importedSnapshotPath() [1/2]

boost::filesystem::path dev::eth::importedSnapshotPath ( boost::filesystem::path const &  _dataDir,
h256 const &  _genesisHash 
)

◆ importedSnapshotPath() [2/2]

fs::path dev::eth::importedSnapshotPath ( fs::path const &  _dataDir,
h256 const &  _genesisHash 
)

Definition at line 103 of file SnapshotStorage.cpp.

◆ instructionInfo()

InstructionInfo dev::eth::instructionInfo ( Instruction  _inst)

Information on all the instructions.

Definition at line 220 of file Instruction.cpp.

◆ jsonToAccountMap()

AccountMap dev::eth::jsonToAccountMap ( std::string const &  _json,
u256 const &  _defaultNonce = 0,
AccountMaskMap o_mask = nullptr,
PrecompiledContractMap o_precompiled = nullptr,
const boost::filesystem::path &  _configPath = {} 
)

◆ jsToBlockNumber()

BlockNumber dev::eth::jsToBlockNumber ( std::string const &  _js)

Convert to a block number, a bit like jsToInt, except that it correctly recognises "pending" and "latest".

Definition at line 62 of file CommonJS.cpp.

◆ operator<<() [1/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
ActivityReport const &  _r 
)

Definition at line 66 of file Client.cpp.

◆ operator<<() [2/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
BlockChain const &  _bc 
)

Definition at line 54 of file BlockChain.cpp.

◆ operator<<() [3/13]

std::ostream& dev::eth::operator<< ( std::ostream &  _out,
BlockHeader const &  _bi 
)
inline

Definition at line 217 of file BlockHeader.h.

◆ operator<<() [4/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
BlockQueueStatus const &  _s 
)

Definition at line 517 of file BlockQueue.cpp.

◆ operator<<() [5/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
dev::eth::LogFilter const &  _s 
)

Simple stream output for the StateDiff.

Definition at line 30 of file LogFilter.cpp.

◆ operator<<() [6/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
eth::TransactionReceipt const &  _r 
)

Definition at line 102 of file TransactionReceipt.cpp.

◆ operator<<() [7/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
ExecutionResult const &  _er 
)

Definition at line 36 of file Transaction.cpp.

◆ operator<<() [8/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
State const &  _s 
)

Definition at line 668 of file State.cpp.

◆ operator<<() [9/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
SyncStatus const &  _sync 
)

Definition at line 21 of file BlockChainSync.cpp.

◆ operator<<() [10/13]

std::ostream& dev::eth::operator<< ( std::ostream &  _out,
TransactionBase const &  _t 
)
inline

Simple human-readable stream-shift operator.

Definition at line 194 of file TransactionBase.h.

◆ operator<<() [11/13]

std::ostream & dev::eth::operator<< ( std::ostream &  _out,
TransactionException const &  _er 
)

Definition at line 76 of file Transaction.cpp.

◆ operator<<() [12/13]

std::ostream& dev::eth::operator<< ( std::ostream &  _out,
WorkingProgress  _p 
)
inline

Definition at line 35 of file GenericMiner.h.

◆ operator<<() [13/13]

std::ostream & dev::eth::operator<< ( std::ostream &  os,
QueueStatus const &  obj 
)

Definition at line 546 of file BlockQueue.cpp.

◆ toAddress()

Address dev::eth::toAddress ( std::string const &  _s)

Convert the given string into an address.

Definition at line 56 of file Common.cpp.

◆ toEvmC() [1/2]

evmc_address dev::eth::toEvmC ( Address const &  _addr)
inline

Definition at line 281 of file ExtVMFace.h.

◆ toEvmC() [2/2]

evmc_uint256be dev::eth::toEvmC ( h256 const &  _h)
inline

Definition at line 286 of file ExtVMFace.h.

◆ toSlice() [1/2]

db::Slice dev::eth::toSlice ( h256 const &  _h,
unsigned  _sub = 0 
)

Definition at line 78 of file BlockChain.cpp.

◆ toSlice() [2/2]

db::Slice dev::eth::toSlice ( uint64_t  _n,
unsigned  _sub = 0 
)

Definition at line 94 of file BlockChain.cpp.

◆ toTransactionException()

TransactionException dev::eth::toTransactionException ( Exception const &  _e)

Definition at line 42 of file Transaction.cpp.

◆ units()

std::vector< std::pair< u256, std::string > > const & dev::eth::units ( )

Get information concerning the currency denominations.

Definition at line 68 of file Common.cpp.

◆ vmProgramOptions()

boost::program_options::options_description dev::eth::vmProgramOptions ( unsigned  _lineLength = boost::program_options::options_description::m_default_line_length)

Provide a set of program options related to VMs.

Parameters
_lineLengthThe line length for description text wrapping, the same as in boost::program_options::options_description::options_description().

Definition at line 141 of file VMFactory.cpp.

Variable Documentation

◆ c_blockhashContractAddress

const Address dev::eth::c_blockhashContractAddress

Address of the special contract for block hash storage defined in EIP96.

Definition at line 34 of file Common.h.

◆ c_blockhashContractCode

const bytes dev::eth::c_blockhashContractCode

Code of the special contract for block hash storage defined in EIP96.

◆ c_databaseBaseVersion

const unsigned dev::eth::c_databaseBaseVersion = 9

Definition at line 47 of file Common.cpp.

◆ c_databaseVersion

const unsigned dev::eth::c_databaseVersion = c_databaseBaseVersion + (c_databaseVersionModifier << 8) + (23 << 9)

Current database version.

Definition at line 51 of file Common.cpp.

◆ c_databaseVersionModifier

const unsigned dev::eth::c_databaseVersionModifier = 0

Definition at line 48 of file Common.cpp.

◆ c_genesisInfoTestBasicAuthority

std::string const dev::eth::c_genesisInfoTestBasicAuthority

Definition at line 29 of file GenesisInfo.cpp.

◆ c_infiniteBlockNumber

constexpr int64_t dev::eth::c_infiniteBlockNumber = std::numeric_limits<int64_t>::max()
constexpr

Definition at line 66 of file ChainOperationParams.h.

◆ c_minorProtocolVersion

const unsigned dev::eth::c_minorProtocolVersion = 2

Current minor protocol version.

Definition at line 46 of file Common.cpp.

◆ c_protocolVersion

const unsigned dev::eth::c_protocolVersion = 63

Current protocol version.

Definition at line 40 of file Common.cpp.

◆ c_WarpProtocolVersion

unsigned const dev::eth::c_WarpProtocolVersion = 1

Definition at line 17 of file WarpCapability.h.