Fabcoin Core  0.16.2
P2P Digital Currency
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
dev::eth Namespace Reference

Namespaces

 detail
 
 jit
 

Classes

struct  ABIDeserialiser
 
struct  ABIDeserialiser< FixedHash< N > >
 
struct  ABIDeserialiser< std::string >
 
struct  ABIDeserialiser< string32 >
 
struct  ABIDeserialiser< u160 >
 
struct  ABIDeserialiser< u256 >
 
struct  ABISerialiser
 
struct  ABISerialiser< FixedHash< N > >
 
struct  ABISerialiser< std::string >
 
struct  ABISerialiser< string32 >
 
struct  ABISerialiser< u160 >
 
struct  ABISerialiser< u256 >
 
class  Account
 Models the state of a single Ethereum account. More...
 
class  AccountHolder
 Manages real accounts (where we know the secret key) and proxy accounts (where transactions to be sent from these accounts are forwarded to a proxy on the other side). More...
 
class  AccountMask
 
struct  ActivityReport
 
class  AddressResolver
 
class  BasicAuthority
 
class  BasicGasPricer
 
class  Block
 Active model of a block within the block chain. More...
 
class  BlockChain
 Implements the blockchain database. More...
 
struct  BlockChainChat
 
struct  BlockChainDebug
 
struct  BlockChainNote
 
class  BlockChainSync
 Base BlockChain synchronization strategy class. More...
 
struct  BlockChainWarn
 
struct  BlockChat
 
struct  BlockDetail
 
struct  BlockDetails
 
struct  BlockHash
 
class  BlockHeader
 Encapsulation of a block header. More...
 
struct  BlockLogBlooms
 
class  BlockQueue
 A queue of blocks. More...
 
struct  BlockQueueChannel
 
struct  BlockQueueStatus
 
struct  BlockQueueTraceChannel
 
struct  BlockReceipts
 
struct  BlockSafeExceptions
 
struct  BlocksBlooms
 
struct  BlockTrace
 
struct  CallParameters
 
struct  ChainOperationParams
 
struct  ChainParams
 
class  Client
 Main API hub for interfacing with Ethereum. More...
 
class  ClientBase
 
struct  ClientChat
 
struct  ClientDetail
 
struct  ClientNote
 
class  ClientTest
 
struct  ClientTrace
 
struct  ClientWatch
 
class  CodeSizeCache
 Simple thread-safe cache to store a mapping from code hash to code size. More...
 
struct  DAGChannel
 
struct  Defaults
 
class  EnvInfo
 
class  Ethash
 
class  EthashAux
 
class  EthashClient
 
class  EthashCPUMiner
 
struct  EthashProofOfWork
 Proof of work definition for Ethash. More...
 
class  EthereumHost
 The EthereumHost class. More...
 
class  EthereumHostDataFace
 
struct  EthereumHostTrace
 
class  EthereumPeer
 The EthereumPeer class. More...
 
class  EthereumPeerObserverFace
 
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...
 
struct  ExecutiveWarnChannel
 
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...
 
class  FixedAccountHolder
 
struct  GasEstimationProgress
 
class  GasPricer
 
class  GenericFarm
 A collective of Miners. More...
 
class  GenericFarmFace
 Class for hosting one or more Miners. More...
 
class  GenericMiner
 A miner - a member and adoptee of the Farm. More...
 
class  ICAP
 Encapsulation of an ICAP address. More...
 
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...
 
class  JitVM
 
struct  KeyInfo
 
class  KeyManager
 High-level manager of password-encrypted keys for Ethereum. More...
 
struct  LocalisedLogEntry
 
class  LocalisedTransaction
 
class  LocalisedTransactionReceipt
 
struct  LogEntry
 
class  LogFilter
 
struct  MineInfo
 
class  NoProof
 
class  owning_bytes_ref
 Reference to a slice of buffer that also owns the buffer. More...
 
class  PasswordUnknown
 
struct  PopulationStatistics
 
class  PrecompiledContract
 
class  PrecompiledRegistrar
 
class  SealEngineBase
 
class  SealEngineFace
 
class  SealEngineRegistrar
 
class  Signal
 Super-duper signal mechanism. TODO: replace with somthing a bit heavier weight. More...
 
class  SimpleAccountHolder
 
class  SizedBlockMap
 
class  SizedBlockQueue
 
class  SmartVM
 Smart VM proxy. More...
 
class  StandardTrace
 
class  State
 Model of an Ethereum state, essentially a facade for the trie. More...
 
struct  StateChat
 
struct  StateDetail
 
struct  StateSafeExceptions
 
struct  StateTrace
 
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...
 
struct  TransactionNotification
 
class  TransactionQueue
 A queue of Transactions, each stored as RLP. More...
 
struct  TransactionQueueChannel
 
struct  TransactionQueueTraceChannel
 
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
 
class  VM
 
struct  VMException
 
class  VMFace
 EVM Virtual Machine interface. More...
 
class  VMFactory
 
struct  VMTraceChannel
 
class  Watch
 
struct  WatchChannel
 
struct  WorkChannel
 
struct  WorkInChannel
 
struct  WorkingProgress
 Describes the progress of a mining operation. More...
 
struct  WorkOutChannel
 

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 BadFieldError = boost::tuple< errinfo_field, errinfo_data >
 
using PrecompiledExecutor = std::function< std::pair< bool, bytes >(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 GasEstimationCallback = std::function< void(GasEstimationProgress const &)>
 
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 >
 
template<class KeyType , class DB >
using SecureTrieDB = SpecificTrieDB< HashedGenericTrieDB< DB >, KeyType >
 
using Transactions = std::vector< Transaction >
 Nice name for vector of Transaction. More...
 
using TransactionReceipts = std::vector< TransactionReceipt >
 
using VerifiedBlocks = std::vector< VerifiedBlock >
 
using LogEntries = std::vector< LogEntry >
 
using LocalisedLogEntries = std::vector< LocalisedLogEntry >
 
using LastHashes = std::vector< h256 >
 
using OnOpFunc = std::function< void(uint64_t, uint64_t, Instruction, bigint, bigint, bigint, VM *, ExtVMFace const *)>
 

Enumerations

enum  Network {
  Network::MainNetwork = 1, Network::Ropsten = 3, Network::MainNetworkTest = 69, Network::TransitionnetTest = 70,
  Network::FrontierTest = 71, Network::HomesteadTest = 72, Network::EIP150Test = 73, Network::EIP158Test = 74,
  Network::MetropolisTest = 75, Network::Special = 0xff, Network::fascMainNetwork = 9, Network::fascTestNetwork = 10
}
 The network id. More...
 
enum  IncludeSeal { WithoutSeal = 0, WithSeal = 1, OnlySeal = 2 }
 
enum  Strictness {
  CheckEverything, JustSeal, QuickNonce, IgnoreSeal,
  CheckNothingNew
}
 
enum  BlockDataType { HeaderData, BlockData }
 
enum  RelativeBlock : BlockNumber { RelativeBlock::Latest = LatestBlock, RelativeBlock::Pending = PendingBlock }
 
enum  ImportResult {
  ImportResult::Success = 0, ImportResult::UnknownParent, ImportResult::FutureTimeKnown, ImportResult::FutureTimeUnknown,
  ImportResult::AlreadyInChain, ImportResult::AlreadyKnown, ImportResult::Malformed, ImportResult::OverbidGasPrice,
  ImportResult::BadChain
}
 
enum  IfDropped { IfDropped::Ignore, IfDropped::Retry }
 Import transaction policy. 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::Nothing
}
 
enum  SyncState {
  SyncState::NotSynced, SyncState::Idle, SyncState::Waiting, SyncState::Blocks,
  SyncState::State, SyncState::NewBlocks, 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 }
 
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::CreateWithValue,
  TransactionException::NoInformation
}
 
enum  CodeDeposit { CodeDeposit::None = 0, CodeDeposit::Failed, CodeDeposit::Success }
 
enum  BlockPolarity { BlockPolarity::Unknown, BlockPolarity::Dead, BlockPolarity::Live }
 
enum  VMKind { VMKind::Interpreter, VMKind::JIT, VMKind::Smart }
 
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::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::BLOCKHASH = 0x40, Instruction::COINBASE, Instruction::TIMESTAMP,
  Instruction::NUMBER, Instruction::DIFFICULTY, Instruction::GASLIMIT, Instruction::JUMPTO = 0x4a,
  Instruction::JUMPIF, Instruction::JUMPV, Instruction::JUMPSUB, Instruction::JUMPSUBV,
  Instruction::RETURNSUB, 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::BEGINSUB, Instruction::BEGINDATA, 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::BAD,
  Instruction::CREATE = 0xf0, Instruction::CALL, Instruction::CALLCODE, Instruction::RETURN,
  Instruction::DELEGATECALL, 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  TransactionRepercussion {
  TransactionRepercussion::Unknown, TransactionRepercussion::UnknownAccount, TransactionRepercussion::Locked, TransactionRepercussion::Refused,
  TransactionRepercussion::ProxySuccess, TransactionRepercussion::Success
}
 

Functions

 DEV_SIMPLE_EXCEPTION (InvalidSealEngine)
 
EthashClientasEthashClient (Interface &_c)
 
EthashClientasEthashClient (Interface *_c)
 
std::string const & genesisInfo (Network _n)
 
h256 const & genesisStateRoot (Network _n)
 
string32 toString32 (std::string const &_s)
 
bytes abiInAux ()
 
template<class T , class... U>
bytes abiInAux (T const &_t, U const &..._u)
 
template<class... T>
bytes abiIn (std::string _id, T const &..._t)
 
template<class T >
T abiOut (bytes const &_data)
 
template<class T >
T abiOut (bytesConstRef &_data)
 
 DEV_SIMPLE_EXCEPTION (NoHashRecorded)
 
 DEV_SIMPLE_EXCEPTION (GenesisBlockCannotBeCalculated)
 
std::ostream & operator<< (std::ostream &_out, BlockHeader const &_bi)
 
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 (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 (BlockNotFound)
 
 DEV_SIMPLE_EXCEPTION (UnknownParent)
 
 DEV_SIMPLE_EXCEPTION (DatabaseAlreadyOpen)
 
 DEV_SIMPLE_EXCEPTION (DAGCreationFailure)
 
 DEV_SIMPLE_EXCEPTION (DAGComputeFailure)
 
 DEV_SIMPLE_EXCEPTION (InvalidICAP)
 
 DEV_SIMPLE_EXCEPTION (ExecutorNotFound)
 
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)
 
 DEV_SIMPLE_EXCEPTION (ChainOperationWithUnknownBlockChain)
 
 DEV_SIMPLE_EXCEPTION (InvalidOperationOnSealedBlock)
 
std::ostream & operator<< (std::ostream &_out, Block const &_s)
 
 DEV_SIMPLE_EXCEPTION (AlreadyHaveBlock)
 
 DEV_SIMPLE_EXCEPTION (FutureTime)
 
 DEV_SIMPLE_EXCEPTION (TransientError)
 
std::unordered_map< Address, Account > const & genesisState ()
 
ldb::Slice toSlice (h256 const &_h, unsigned _sub=0)
 
ldb::Slice toSlice (uint64_t _n, unsigned _sub=0)
 
std::ostream & operator<< (std::ostream &_out, BlockChain const &_bc)
 
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 (ChainParamsNotNoProof)
 
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...
 
 DEV_SIMPLE_EXCEPTION (InvalidAccountStartNonceInState)
 
 DEV_SIMPLE_EXCEPTION (IncorrectAccountStartNonceInState)
 
std::ostream & operator<< (std::ostream &_out, State const &_s)
 
template<class DB >
AddressHash commit (AccountMap const &_cache, SecureTrieDB< Address, DB > &_state)
 
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)
 
LogBloom bloom (LogEntries const &_logs)
 
Address asAddress (u256 _item)
 
u256 fromAddress (Address _a)
 
 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 (CreateWithValue)
 
 DEV_SIMPLE_EXCEPTION (InvalidDeposit)
 
 DEV_SIMPLE_EXCEPTION (InvalidOpcode)
 
unsigned getPushNumber (Instruction _inst)
 
unsigned getDupNumber (Instruction _inst)
 
unsigned getSwapNumber (Instruction _inst)
 
Instruction pushInstruction (unsigned _number)
 
Instruction dupInstruction (unsigned _number)
 
Instruction swapInstruction (unsigned _number)
 
Instruction logInstruction (unsigned _number)
 
InstructionInfo instructionInfo (Instruction _inst)
 Information on all the instructions. More...
 
bool isValidInstruction (Instruction _inst)
 check whether instructions exists More...
 
void eachInstruction (bytes const &_mem, std::function< void(Instruction, u256 const &)> const &_onInstruction)
 Iterate through EVM code and call a function on each instruction. More...
 
std::string disassemble (bytes const &_mem)
 Convert from EVM code to simple EVM assembly language. More...
 
Json::Value toJson (dev::eth::BlockHeader const &_bi, SealEngineFace *_sealer)
 
Json::Value toJson (dev::eth::Transaction const &_t, std::pair< h256, unsigned > _location, BlockNumber _blockNumber)
 
Json::Value toJson (dev::eth::BlockHeader const &_bi, BlockDetails const &_bd, UncleHashes const &_us, Transactions const &_ts, SealEngineFace *_face)
 
Json::Value toJson (dev::eth::BlockHeader const &_bi, BlockDetails const &_bd, UncleHashes const &_us, TransactionHashes const &_ts, SealEngineFace *_face)
 
Json::Value toJson (dev::eth::TransactionSkeleton const &_t)
 
Json::Value toJson (dev::eth::TransactionReceipt const &_t)
 
Json::Value toJson (dev::eth::LocalisedTransactionReceipt const &_t)
 
Json::Value toJson (dev::eth::Transaction const &_t)
 
Json::Value toJson (dev::eth::LocalisedTransaction const &_t)
 
Json::Value toJson (dev::eth::LocalisedLogEntry const &_e)
 
Json::Value toJson (dev::eth::LogEntry const &_e)
 
Json::Value toJson (std::unordered_map< h256, dev::eth::LocalisedLogEntries > const &_entriesByBlock, vector< h256 > const &_order)
 
Json::Value toJsonByBlock (LocalisedLogEntries const &_entries)
 
TransactionSkeleton toTransactionSkeleton (Json::Value const &_json)
 
dev::eth::LogFilter toLogFilter (Json::Value const &_json)
 
dev::eth::LogFilter toLogFilter (Json::Value const &_json, Interface const &_client)
 
Json::Value toJson (std::unordered_map< h256, LocalisedLogEntries > const &_entriesByBlock)
 
void mine (Client &c, int numBlocks)
 
void connectClients (Client &c1, Client &c2)
 
void mine (Block &s, BlockChain const &_bc, SealEngineFace *_sealer)
 
void mine (BlockHeader &_bi, SealEngineFace *_sealer, bool _verify)
 

Variables

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...
 
std::string const c_genesisInfoTestBasicAuthority
 
const std::map< std::string, Instructionc_instructions
 Convert from string mnemonic to Instruction type. More...
 

Typedef Documentation

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

Definition at line 239 of file Account.h.

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

Definition at line 240 of file Account.h.

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

Definition at line 42 of file Exceptions.h.

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

Definition at line 114 of file BlockDetails.h.

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

Definition at line 118 of file BlockDetails.h.

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

Definition at line 115 of file BlockDetails.h.

using dev::eth::BlockNumber = typedef unsigned

Definition at line 72 of file Common.h.

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

Definition at line 116 of file BlockDetails.h.

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

Definition at line 119 of file BlockDetails.h.

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

Definition at line 80 of file BlockChain.h.

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

Definition at line 53 of file State.h.

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

Definition at line 50 of file State.h.

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

Definition at line 35 of file Exceptions.h.

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

Definition at line 37 of file Exceptions.h.

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

Definition at line 41 of file Exceptions.h.

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

Definition at line 34 of file Exceptions.h.

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

Definition at line 63 of file State.h.

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

Definition at line 40 of file Exceptions.h.

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

Definition at line 33 of file Exceptions.h.

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

Definition at line 36 of file Exceptions.h.

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

Definition at line 54 of file State.h.

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

Definition at line 61 of file State.h.

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

Definition at line 59 of file State.h.

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

Definition at line 62 of file State.h.

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

Definition at line 39 of file Exceptions.h.

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

Definition at line 38 of file Exceptions.h.

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

Definition at line 60 of file State.h.

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

Definition at line 56 of file State.h.

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

Definition at line 49 of file State.h.

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

Definition at line 51 of file State.h.

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

Definition at line 52 of file State.h.

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

Definition at line 58 of file State.h.

Definition at line 62 of file Interface.h.

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

Definition at line 181 of file Common.h.

using dev::eth::LastHashes = typedef std::vector<h256>

Definition at line 191 of file ExtVMFace.h.

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

Definition at line 156 of file ExtVMFace.h.

using dev::eth::LogBloom = typedef h2048

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

Definition at line 58 of file Common.h.

Definition at line 64 of file State.h.

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

Many log blooms.

Definition at line 61 of file Common.h.

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

Definition at line 110 of file ExtVMFace.h.

using dev::eth::Nonce = typedef h64

Definition at line 70 of file Common.h.

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

Definition at line 193 of file ExtVMFace.h.

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

Definition at line 243 of file Account.h.

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

Definition at line 34 of file Precompiled.h.

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

Definition at line 93 of file BlockChain.h.

Definition at line 128 of file SealEngine.h.

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

Definition at line 91 of file State.h.

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

Definition at line 117 of file BlockDetails.h.

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

Nice name for vector of Transaction.

Definition at line 177 of file Transaction.h.

Definition at line 81 of file BlockChain.h.

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

Definition at line 57 of file TransactionReceipt.h.

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

Nice name for vector of Transaction.

Definition at line 121 of file Transaction.h.

Definition at line 82 of file BlockChain.h.

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

Definition at line 76 of file VerifiedBlock.h.

Enumeration Type Documentation

anonymous enum
Enumerator
ExtraDetails 
ExtraBlockHash 
ExtraTransactionAddress 
ExtraLogBlooms 
ExtraReceipts 
ExtraBlocksBlooms 

Definition at line 84 of file BlockChain.h.

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

Definition at line 79 of file CommonNet.h.

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

Definition at line 76 of file State.h.

Enumerator
HeaderData 
BlockData 

Definition at line 66 of file BlockHeader.h.

Enumerator
Unknown 
Dead 
Live 

Definition at line 81 of file ExtVMFace.h.

Enumerator
None 
Cheap 
Everything 

Definition at line 42 of file Transaction.h.

Enumerator
Active 
Deleting 
Deleted 

Definition at line 52 of file Client.h.

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

Definition at line 56 of file Transaction.h.

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

Definition at line 50 of file Interface.h.

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.

Enumerator
Success 
UnknownParent 
FutureTimeKnown 
FutureTimeUnknown 
AlreadyInChain 
AlreadyKnown 
Malformed 
OverbidGasPrice 
BadChain 

Definition at line 97 of file Common.h.

Enumerator
WithoutSeal 
WithSeal 
OnlySeal 

Definition at line 37 of file BlockHeader.h.

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 36 of file Transaction.h.

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 opertation

BYTE 

retrieve single byte from word

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)

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

JUMPTO 

alter the program counter to a jumpdest

JUMPIF 

conditionally alter the program counter

JUMPV 

alter the program counter to a jumpdest

JUMPSUB 

alter the program counter to a beginsub

JUMPSUBV 

alter the program counter to a beginsub

RETURNSUB 

return to subroutine jumped from

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

BEGINSUB 

set a potential jumpsub destination

BEGINDATA 

begine the data section

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

BAD 

placed to force invalid instruction exception

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

SUICIDE 

halt execution and register account for later deletion

Definition at line 39 of file Instruction.h.

enum dev::eth::Network
strong

The network id.

Enumerator
MainNetwork 

Normal Frontier/Homestead/DAO/EIP150/EIP158/Metropolis chain.

Ropsten 

New Ropsten Test Network.

MainNetworkTest 

MainNetwork rules but without genesis accounts (for transaction tests).

TransitionnetTest 

Normal Frontier/Homestead/DAO/EIP150/EIP158 chain without all the premine.

FrontierTest 

Just test the Frontier-era characteristics "forever" (no Homestead portion).

HomesteadTest 

Just test the Homestead-era characteristics "forever" (no Frontier portion).

EIP150Test 

Homestead + EIP150 Rules active from block 0 For BlockchainTests.

EIP158Test 

Homestead + EIP150 + EIP158 Rules active from block 0.

MetropolisTest 

All fork rules + Metropolis active from block 0.

Special 

Something else.

fascMainNetwork 

FASC Homestead + EIP150 + EIP158 Rules active from block 0 to enum class Network.

fascTestNetwork 

Definition at line 34 of file GenesisInfo.h.

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

Definition at line 82 of file State.h.

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

Definition at line 59 of file BlockQueue.h.

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

Definition at line 44 of file Interface.h.

Enumerator
Latest 
Pending 

Definition at line 82 of file Common.h.

Enumerator
Existing 
Master 

Definition at line 53 of file KeyManager.h.

Enumerator
CheckEverything 
JustSeal 
QuickNonce 
IgnoreSeal 
CheckNothingNew 

Definition at line 44 of file BlockHeader.h.

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

Definition at line 60 of file CommonNet.h.

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.

NewBlocks 

Downloading blocks learned from NewHashes packet.

Size 

Must be kept last.

Definition at line 89 of file CommonNet.h.

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

Definition at line 244 of file Instruction.h.

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 
CreateWithValue 
NoInformation 

Definition at line 35 of file Transaction.h.

Enumerator
Lowest 
Low 
Medium 
High 
Highest 

Definition at line 34 of file GasPricer.h.

Enumerator
Unknown 
UnknownAccount 
Locked 
Refused 
ProxySuccess 
Success 

Definition at line 43 of file AccountHolder.h.

enum dev::eth::VMKind
strong
Enumerator
Interpreter 
JIT 
Smart 

Definition at line 26 of file VMFactory.h.

Function Documentation

template<class... T>
bytes dev::eth::abiIn ( std::string  _id,
T const &...  _t 
)

Definition at line 64 of file ABI.h.

Here is the caller graph for this function:

bytes dev::eth::abiInAux ( )
inline

Definition at line 58 of file ABI.h.

template<class T , class... U>
bytes dev::eth::abiInAux ( T const &  _t,
U const &...  _u 
)

Definition at line 59 of file ABI.h.

template<class T >
T dev::eth::abiOut ( bytes const &  _data)

Definition at line 88 of file ABI.h.

Here is the caller graph for this function:

template<class T >
T dev::eth::abiOut ( bytesConstRef _data)

Definition at line 94 of file ABI.h.

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

Definition at line 39 of file VM.h.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 30 of file ClientTest.cpp.

Here is the caller graph for this function:

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

Definition at line 35 of file ClientTest.cpp.

EthashClient & dev::eth::asEthashClient ( Interface _c)

Definition at line 29 of file EthashClient.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

EthashClient * dev::eth::asEthashClient ( Interface _c)

Definition at line 36 of file EthashClient.cpp.

Here is the call graph for this function:

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

Definition at line 147 of file Common.cpp.

Here is the caller graph for this function:

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

Definition at line 199 of file Common.h.

Here is the call graph for this function:

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

Definition at line 158 of file ExtVMFace.h.

Here is the caller graph for this function:

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

Definition at line 304 of file GenesisInfo.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 345 of file State.h.

Here is the call graph for this function:

Here is the caller graph for this function:

void dev::eth::connectClients ( Client c1,
Client c2 
)

Definition at line 49 of file TestHelper.cpp.

dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidDeposit  )
dev::eth::DEV_SIMPLE_EXCEPTION ( ChainParamsInvalid  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidOpcode  )
dev::eth::DEV_SIMPLE_EXCEPTION ( ChainParamsNotNoProof  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidSealEngine  )
dev::eth::DEV_SIMPLE_EXCEPTION ( ExecutorNotFound  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidICAP  )
dev::eth::DEV_SIMPLE_EXCEPTION ( OutOfGasBase  )
dev::eth::DEV_SIMPLE_EXCEPTION ( OutOfGasIntrinsic  )
dev::eth::DEV_SIMPLE_EXCEPTION ( NotEnoughAvailableSpace  )
dev::eth::DEV_SIMPLE_EXCEPTION ( NotEnoughCash  )
dev::eth::DEV_SIMPLE_EXCEPTION ( GasPriceTooLow  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidAddress  )
dev::eth::DEV_SIMPLE_EXCEPTION ( BlockGasLimitReached  )
dev::eth::DEV_SIMPLE_EXCEPTION ( FeeTooSmall  )
dev::eth::DEV_SIMPLE_EXCEPTION ( TooMuchGasUsed  )
dev::eth::DEV_SIMPLE_EXCEPTION ( ExtraDataTooBig  )
dev::eth::DEV_SIMPLE_EXCEPTION ( ExtraDataIncorrect  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidSignature  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidTransactionFormat  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidBlockFormat  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidUnclesHash  )
dev::eth::DEV_SIMPLE_EXCEPTION ( TooManyUncles  )
dev::eth::DEV_SIMPLE_EXCEPTION ( UncleTooOld  )
dev::eth::DEV_SIMPLE_EXCEPTION ( UncleIsBrother  )
dev::eth::DEV_SIMPLE_EXCEPTION ( UncleInChain  )
dev::eth::DEV_SIMPLE_EXCEPTION ( UncleParentNotInChain  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidStateRoot  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidGasUsed  )
dev::eth::DEV_SIMPLE_EXCEPTION ( ChainOperationWithUnknownBlockChain  )
dev::eth::DEV_SIMPLE_EXCEPTION ( AlreadyHaveBlock  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidTransactionsRoot  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidOperationOnSealedBlock  )
dev::eth::DEV_SIMPLE_EXCEPTION ( FutureTime  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidDifficulty  )
dev::eth::DEV_SIMPLE_EXCEPTION ( TransientError  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidGasLimit  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidReceiptsStateRoot  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidTimestamp  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidLogBloom  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidNonce  )
dev::eth::DEV_SIMPLE_EXCEPTION ( NoHashRecorded  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidBlockHeaderItemCount  )
dev::eth::DEV_SIMPLE_EXCEPTION ( GenesisBlockCannotBeCalculated  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidBlockNonce  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidParentHash  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidUncleParentHash  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidNumber  )
dev::eth::DEV_SIMPLE_EXCEPTION ( BlockNotFound  )
dev::eth::DEV_SIMPLE_EXCEPTION ( UnknownParent  )
dev::eth::DEV_SIMPLE_EXCEPTION ( DatabaseAlreadyOpen  )
dev::eth::DEV_SIMPLE_EXCEPTION ( DAGCreationFailure  )
dev::eth::DEV_SIMPLE_EXCEPTION ( DAGComputeFailure  )
dev::eth::DEV_SIMPLE_EXCEPTION ( InvalidAccountStartNonceInState  )
dev::eth::DEV_SIMPLE_EXCEPTION ( IncorrectAccountStartNonceInState  )
string dev::eth::disassemble ( bytes const &  _mem)

Convert from EVM code to simple EVM assembly language.

Definition at line 350 of file Instruction.cpp.

Here is the call graph for this function:

Instruction dev::eth::dupInstruction ( unsigned  _number)
inline
Returns
the DUP<_number> instruction

Definition at line 224 of file Instruction.h.

void dev::eth::eachInstruction ( bytes const &  _mem,
std::function< void(Instruction, u256 const &)> const &  _onInstruction 
)

Iterate through EVM code and call a function on each instruction.

Here is the caller graph for this function:

dev::eth::ETH_SIMPLE_EXCEPTION_VM ( BadInstruction  )
dev::eth::ETH_SIMPLE_EXCEPTION_VM ( BadJumpDestination  )
dev::eth::ETH_SIMPLE_EXCEPTION_VM ( OutOfGas  )
dev::eth::ETH_SIMPLE_EXCEPTION_VM ( OutOfStack  )
dev::eth::ETH_SIMPLE_EXCEPTION_VM ( StackUnderflow  )
dev::eth::ETH_SIMPLE_EXCEPTION_VM ( CreateWithValue  )
std::string dev::eth::formatBalance ( bigint const &  _b)

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

Definition at line 102 of file Common.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 44 of file VM.h.

Here is the caller graph for this function:

std::string const & dev::eth::genesisInfo ( Network  _n)

Definition at line 37 of file GenesisInfo.cpp.

Here is the caller graph for this function:

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

Here is the caller graph for this function:

h256 const & dev::eth::genesisStateRoot ( Network  _n)

Definition at line 57 of file GenesisInfo.cpp.

Here is the caller graph for this function:

unsigned dev::eth::getDupNumber ( Instruction  _inst)
inline
Returns
the number of DUP Instruction _inst

Definition at line 205 of file Instruction.h.

unsigned dev::eth::getPushNumber ( Instruction  _inst)
inline
Returns
the number of PUSH Instruction _inst

Definition at line 199 of file Instruction.h.

unsigned dev::eth::getSwapNumber ( Instruction  _inst)
inline
Returns
the number of SWAP Instruction _inst

Definition at line 211 of file Instruction.h.

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

Information on all the instructions.

Definition at line 367 of file Instruction.cpp.

Here is the caller graph for this function:

bool dev::eth::isValidInstruction ( Instruction  _inst)

check whether instructions exists

Definition at line 375 of file Instruction.cpp.

Here is the caller graph for this function:

AccountMap dev::eth::jsonToAccountMap ( std::string const &  _json,
u256 const &  _defaultNonce = 0,
AccountMaskMap o_mask = nullptr,
PrecompiledContractMap o_precompiled = nullptr 
)

Definition at line 50 of file Account.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Here is the call graph for this function:

Here is the caller graph for this function:

Instruction dev::eth::logInstruction ( unsigned  _number)
inline
Returns
the LOG<_number> instruction

Definition at line 238 of file Instruction.h.

void dev::eth::mine ( Client c,
int  numBlocks 
)

Definition at line 39 of file TestHelper.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void dev::eth::mine ( Block s,
BlockChain const &  _bc,
SealEngineFace _sealer 
)

Definition at line 63 of file TestHelper.cpp.

Here is the call graph for this function:

void dev::eth::mine ( BlockHeader _bi,
SealEngineFace _sealer,
bool  _verify 
)

Definition at line 74 of file TestHelper.cpp.

Here is the call graph for this function:

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

Definition at line 37 of file GenericMiner.h.

Here is the call graph for this function:

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.

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

Definition at line 53 of file TransactionReceipt.cpp.

Here is the call graph for this function:

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

Definition at line 76 of file Transaction.cpp.

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

Definition at line 545 of file BlockQueue.cpp.

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

Definition at line 41 of file Client.cpp.

Here is the call graph for this function:

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

Definition at line 36 of file Transaction.cpp.

Here is the call graph for this function:

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

Definition at line 45 of file BlockChainSync.cpp.

Here is the call graph for this function:

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

Simple human-readable stream-shift operator.

Definition at line 180 of file Transaction.h.

Here is the call graph for this function:

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

Definition at line 194 of file BlockHeader.h.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 516 of file BlockQueue.cpp.

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

Definition at line 913 of file Block.cpp.

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

Definition at line 547 of file State.cpp.

Here is the call graph for this function:

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

Definition at line 63 of file BlockChain.cpp.

Here is the call graph for this function:

Instruction dev::eth::pushInstruction ( unsigned  _number)
inline
Returns
the PUSH<_number> instruction

Definition at line 217 of file Instruction.h.

Instruction dev::eth::swapInstruction ( unsigned  _number)
inline
Returns
the SWAP<_number> instruction

Definition at line 231 of file Instruction.h.

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

Convert the given string into an address.

Definition at line 56 of file Common.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

Json::Value dev::eth::toJson ( std::unordered_map< h256, LocalisedLogEntries > const &  _entriesByBlock)
Json::Value dev::eth::toJson ( dev::eth::BlockHeader const &  _bi,
SealEngineFace _sealer 
)

Definition at line 93 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::Transaction const &  _t,
std::pair< h256, unsigned >  _location,
BlockNumber  _blockNumber 
)

Definition at line 121 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::BlockHeader const &  _bi,
BlockDetails const &  _bd,
UncleHashes const &  _us,
Transactions const &  _ts,
SealEngineFace _face 
)

Definition at line 141 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::BlockHeader const &  _bi,
BlockDetails const &  _bd,
UncleHashes const &  _us,
TransactionHashes const &  _ts,
SealEngineFace _face 
)

Definition at line 157 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::TransactionSkeleton const &  _t)

Definition at line 173 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::TransactionReceipt const &  _t)

Definition at line 185 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::LocalisedTransactionReceipt const &  _t)

Definition at line 195 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::Transaction const &  _t)

Definition at line 209 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::LocalisedTransaction const &  _t)

Definition at line 227 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::LocalisedLogEntry const &  _e)

Definition at line 247 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( dev::eth::LogEntry const &  _e)

Definition at line 279 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJson ( std::unordered_map< h256, dev::eth::LocalisedLogEntries > const &  _entriesByBlock,
vector< h256 > const &  _order 
)

Definition at line 290 of file JsonHelper.cpp.

Here is the call graph for this function:

Json::Value dev::eth::toJsonByBlock ( LocalisedLogEntries const &  _entries)

Definition at line 332 of file JsonHelper.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

LogFilter dev::eth::toLogFilter ( Json::Value const &  _json)

Definition at line 387 of file JsonHelper.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

LogFilter dev::eth::toLogFilter ( Json::Value const &  _json,
Interface const &  _client 
)

Definition at line 422 of file JsonHelper.cpp.

Here is the call graph for this function:

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

Definition at line 82 of file BlockChain.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 98 of file BlockChain.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

string32 dev::eth::toString32 ( std::string const &  _s)
inline

Definition at line 34 of file ABI.h.

Here is the caller graph for this function:

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

Definition at line 42 of file Transaction.cpp.

Here is the caller graph for this function:

TransactionSkeleton dev::eth::toTransactionSkeleton ( Json::Value const &  _json)

Definition at line 354 of file JsonHelper.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Get information concerning the currency denominations.

Definition at line 74 of file Common.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

const unsigned dev::eth::c_databaseBaseVersion = 9

Definition at line 50 of file Common.cpp.

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

Current database version.

Definition at line 54 of file Common.cpp.

const unsigned dev::eth::c_databaseVersionModifier = 0

Definition at line 51 of file Common.cpp.

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

Definition at line 29 of file GenesisInfo.cpp.

const std::map< std::string, Instruction > dev::eth::c_instructions

Convert from string mnemonic to Instruction type.

Definition at line 32 of file Instruction.cpp.

const unsigned dev::eth::c_minorProtocolVersion = 2

Current minor protocol version.

Definition at line 49 of file Common.cpp.

const unsigned dev::eth::c_protocolVersion = 63

Current protocol version.

Peer network protocol version.

Definition at line 43 of file Common.cpp.