Ethereum  PoC-8
The C++ Implementation of Ethereum
dev::eth::SealEngineFace Class Referenceabstract

#include <SealEngine.h>

Inheritance diagram for dev::eth::SealEngineFace:
dev::eth::SealEngineBase dev::eth::BasicAuthority dev::eth::NoProof

Public Member Functions

virtual ~SealEngineFace ()
 
virtual std::tuple< h256, h256, h256getWork (BlockHeader const &)
 
virtual bool isMining () const
 
virtual unsigned revision () const
 
virtual unsigned sealFields () const
 
virtual bytes sealRLP () const
 
virtual StringHashMap jsInfo (BlockHeader const &) const
 
virtual void verify (Strictness _s, BlockHeader const &_bi, BlockHeader const &_parent=BlockHeader(), bytesConstRef _block=bytesConstRef()) const
 Don't forget to call Super::verify when subclassing & overriding. More...
 
virtual void verifyTransaction (ImportRequirements::value _ir, TransactionBase const &_t, BlockHeader const &_header, u256 const &_startGasUsed) const
 Additional verification for transactions in blocks. More...
 
virtual void populateFromParent (BlockHeader &_bi, BlockHeader const &_parent) const
 Don't forget to call Super::populateFromParent when subclassing & overriding. More...
 
bytes option (std::string const &_name) const
 
bool setOption (std::string const &_name, bytes const &_value)
 
virtual strings sealers () const
 
virtual std::string sealer () const
 
virtual void setSealer (std::string const &)
 
virtual bool shouldSeal (Interface *)
 
virtual void generateSeal (BlockHeader const &_bi)=0
 
virtual void onSealGenerated (std::function< void(bytes const &s)> const &_f)=0
 
virtual void cancelGeneration ()
 
ChainOperationParams const & chainParams () const
 
void setChainParams (ChainOperationParams const &_params)
 
SealEngineFacewithChainParams (ChainOperationParams const &_params)
 
virtual EVMSchedule const & evmSchedule (u256 const &_blockNumber) const =0
 
virtual u256 blockReward (u256 const &_blockNumber) const =0
 
virtual bool isPrecompiled (Address const &_a, u256 const &_blockNumber) const
 
virtual bigint costOfPrecompiled (Address const &_a, bytesConstRef _in, u256 const &) const
 
virtual std::pair< bool, bytesexecutePrecompiled (Address const &_a, bytesConstRef _in, u256 const &) const
 

Protected Member Functions

virtual bool onOptionChanging (std::string const &, bytes const &)
 

Detailed Description

Definition at line 45 of file SealEngine.h.

Constructor & Destructor Documentation

◆ ~SealEngineFace()

virtual dev::eth::SealEngineFace::~SealEngineFace ( )
inlinevirtual

Definition at line 48 of file SealEngine.h.

Member Function Documentation

◆ blockReward()

virtual u256 dev::eth::SealEngineFace::blockReward ( u256 const &  _blockNumber) const
pure virtual

Implemented in dev::eth::SealEngineBase.

◆ cancelGeneration()

virtual void dev::eth::SealEngineFace::cancelGeneration ( )
inlinevirtual

Definition at line 78 of file SealEngine.h.

◆ chainParams()

ChainOperationParams const& dev::eth::SealEngineFace::chainParams ( ) const
inline

Definition at line 80 of file SealEngine.h.

◆ costOfPrecompiled()

virtual bigint dev::eth::SealEngineFace::costOfPrecompiled ( Address const &  _a,
bytesConstRef  _in,
u256 const &   
) const
inlinevirtual

Definition at line 90 of file SealEngine.h.

◆ evmSchedule()

virtual EVMSchedule const& dev::eth::SealEngineFace::evmSchedule ( u256 const &  _blockNumber) const
pure virtual

Implemented in dev::eth::SealEngineBase.

◆ executePrecompiled()

virtual std::pair<bool, bytes> dev::eth::SealEngineFace::executePrecompiled ( Address const &  _a,
bytesConstRef  _in,
u256 const &   
) const
inlinevirtual

Definition at line 91 of file SealEngine.h.

◆ generateSeal()

virtual void dev::eth::SealEngineFace::generateSeal ( BlockHeader const &  _bi)
pure virtual

◆ getWork()

virtual std::tuple<h256, h256, h256> dev::eth::SealEngineFace::getWork ( BlockHeader const &  )
inlinevirtual
Returns
Tuple of hash of the current block to be mined minus nonce, seed hash, target boundary.

Definition at line 51 of file SealEngine.h.

◆ isMining()

virtual bool dev::eth::SealEngineFace::isMining ( ) const
inlinevirtual

Definition at line 55 of file SealEngine.h.

◆ isPrecompiled()

virtual bool dev::eth::SealEngineFace::isPrecompiled ( Address const &  _a,
u256 const &  _blockNumber 
) const
inlinevirtual

Definition at line 86 of file SealEngine.h.

◆ jsInfo()

virtual StringHashMap dev::eth::SealEngineFace::jsInfo ( BlockHeader const &  ) const
inlinevirtual

Reimplemented in dev::eth::NoProof, and dev::eth::BasicAuthority.

Definition at line 59 of file SealEngine.h.

◆ onOptionChanging()

virtual bool dev::eth::SealEngineFace::onOptionChanging ( std::string const &  ,
bytes const &   
)
inlineprotectedvirtual

Definition at line 94 of file SealEngine.h.

◆ onSealGenerated()

virtual void dev::eth::SealEngineFace::onSealGenerated ( std::function< void(bytes const &s)> const &  _f)
pure virtual

◆ option()

bytes dev::eth::SealEngineFace::option ( std::string const &  _name) const
inline

Definition at line 68 of file SealEngine.h.

◆ populateFromParent()

void dev::eth::SealEngineFace::populateFromParent ( BlockHeader _bi,
BlockHeader const &  _parent 
) const
virtual

Don't forget to call Super::populateFromParent when subclassing & overriding.

Reimplemented in dev::eth::NoProof, and dev::eth::BasicAuthority.

Definition at line 126 of file SealEngine.cpp.

◆ revision()

virtual unsigned dev::eth::SealEngineFace::revision ( ) const
inlinevirtual

Reimplemented in dev::eth::BasicAuthority.

Definition at line 56 of file SealEngine.h.

◆ sealer()

virtual std::string dev::eth::SealEngineFace::sealer ( ) const
inlinevirtual

Definition at line 72 of file SealEngine.h.

◆ sealers()

virtual strings dev::eth::SealEngineFace::sealers ( ) const
inlinevirtual

Definition at line 71 of file SealEngine.h.

◆ sealFields()

virtual unsigned dev::eth::SealEngineFace::sealFields ( ) const
inlinevirtual

Reimplemented in dev::eth::BasicAuthority.

Definition at line 57 of file SealEngine.h.

◆ sealRLP()

virtual bytes dev::eth::SealEngineFace::sealRLP ( ) const
inlinevirtual

Reimplemented in dev::eth::BasicAuthority.

Definition at line 58 of file SealEngine.h.

◆ setChainParams()

void dev::eth::SealEngineFace::setChainParams ( ChainOperationParams const &  _params)
inline

Definition at line 81 of file SealEngine.h.

◆ setOption()

bool dev::eth::SealEngineFace::setOption ( std::string const &  _name,
bytes const &  _value 
)
inline

Definition at line 69 of file SealEngine.h.

◆ setSealer()

virtual void dev::eth::SealEngineFace::setSealer ( std::string const &  )
inlinevirtual

Definition at line 73 of file SealEngine.h.

◆ shouldSeal()

virtual bool dev::eth::SealEngineFace::shouldSeal ( Interface )
inlinevirtual

Reimplemented in dev::eth::BasicAuthority.

Definition at line 75 of file SealEngine.h.

◆ verify()

void dev::eth::SealEngineFace::verify ( Strictness  _s,
BlockHeader const &  _bi,
BlockHeader const &  _parent = BlockHeader(),
bytesConstRef  _block = bytesConstRef() 
) const
virtual

Don't forget to call Super::verify when subclassing & overriding.

Reimplemented in dev::eth::NoProof, and dev::eth::BasicAuthority.

Definition at line 71 of file SealEngine.cpp.

◆ verifyTransaction()

void dev::eth::SealEngineFace::verifyTransaction ( ImportRequirements::value  _ir,
TransactionBase const &  _t,
BlockHeader const &  _header,
u256 const &  _startGasUsed 
) const
virtual

Additional verification for transactions in blocks.

Definition at line 131 of file SealEngine.cpp.

◆ withChainParams()

SealEngineFace* dev::eth::SealEngineFace::withChainParams ( ChainOperationParams const &  _params)
inline

Definition at line 82 of file SealEngine.h.


The documentation for this class was generated from the following files: