Fabcoin Core  0.16.2
P2P Digital Currency
Public Member Functions | Public Attributes | Protected Member Functions | Private Attributes | List of all members
dev::eth::SealEngineFace Class Referenceabstract

#include <SealEngine.h>

Inheritance diagram for dev::eth::SealEngineFace:
[legend]
Collaboration diagram for dev::eth::SealEngineFace:
[legend]

Public Member Functions

virtual ~SealEngineFace ()
 
virtual std::string name () const =0
 
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 &_bi) 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 (EnvInfo const &) 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
 
void setFascSchedule (EVMSchedule _fascSchedule) const
 
EVMSchedulegetFascSchedule () const
 

Public Attributes

std::set< AddressdeleteAddresses
 

Protected Member Functions

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

Private Attributes

Mutex x_options
 
std::unordered_map< std::string, bytesm_options
 
EVMSchedule fascSchedule
 
ChainOperationParams m_params
 

Detailed Description

Definition at line 45 of file SealEngine.h.

Constructor & Destructor Documentation

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

Definition at line 48 of file SealEngine.h.

Here is the call graph for this function:

Member Function Documentation

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

Reimplemented in dev::eth::Ethash.

Definition at line 73 of file SealEngine.h.

Here is the caller graph for this function:

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

Definition at line 75 of file SealEngine.h.

Here is the caller graph for this function:

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

Definition at line 84 of file SealEngine.h.

Here is the caller graph for this function:

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

Implemented in dev::eth::SealEngineBase.

Here is the caller graph for this function:

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

Definition at line 85 of file SealEngine.h.

Here is the caller graph for this function:

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

Implemented in dev::eth::SealEngineBase, dev::eth::Ethash, and dev::eth::BasicAuthority.

Here is the caller graph for this function:

EVMSchedule& dev::eth::SealEngineFace::getFascSchedule ( ) const
inline

Definition at line 90 of file SealEngine.h.

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

Definition at line 80 of file SealEngine.h.

Here is the caller graph for this function:

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

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

Definition at line 54 of file SealEngine.h.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual std::string dev::eth::SealEngineFace::name ( ) const
pure virtual

Implemented in dev::eth::NoProof, dev::eth::Ethash, and dev::eth::BasicAuthority.

Here is the caller graph for this function:

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

Reimplemented in dev::eth::BasicAuthority.

Definition at line 100 of file SealEngine.h.

Here is the caller graph for this function:

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

Here is the caller graph for this function:

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

Definition at line 63 of file SealEngine.h.

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

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

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

Definition at line 41 of file SealEngine.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

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

Definition at line 51 of file SealEngine.h.

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

Reimplemented in dev::eth::Ethash.

Definition at line 67 of file SealEngine.h.

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

Reimplemented in dev::eth::Ethash.

Definition at line 66 of file SealEngine.h.

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

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

Definition at line 52 of file SealEngine.h.

Here is the caller graph for this function:

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

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

Definition at line 53 of file SealEngine.h.

Here is the caller graph for this function:

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

Definition at line 76 of file SealEngine.h.

Here is the caller graph for this function:

void dev::eth::SealEngineFace::setFascSchedule ( EVMSchedule  _fascSchedule) const
inline

Definition at line 88 of file SealEngine.h.

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

Definition at line 64 of file SealEngine.h.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Reimplemented in dev::eth::Ethash.

Definition at line 68 of file SealEngine.h.

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

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

Definition at line 70 of file SealEngine.h.

Here is the call graph for this function:

void 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::Ethash, and dev::eth::BasicAuthority.

Definition at line 36 of file SealEngine.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void SealEngineFace::verifyTransaction ( ImportRequirements::value  _ir,
TransactionBase const &  _t,
BlockHeader const &  _bi 
) const
virtual

Additional verification for transactions in blocks.

Reimplemented in dev::eth::Ethash.

Definition at line 46 of file SealEngine.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 77 of file SealEngine.h.

Here is the call graph for this function:

Member Data Documentation

std::set<Address> dev::eth::SealEngineFace::deleteAddresses
mutable

Definition at line 96 of file SealEngine.h.

EVMSchedule dev::eth::SealEngineFace::fascSchedule
mutableprivate

Definition at line 106 of file SealEngine.h.

std::unordered_map<std::string, bytes> dev::eth::SealEngineFace::m_options
private

Definition at line 104 of file SealEngine.h.

ChainOperationParams dev::eth::SealEngineFace::m_params
private

Definition at line 108 of file SealEngine.h.

Mutex dev::eth::SealEngineFace::x_options
mutableprivate

Definition at line 103 of file SealEngine.h.


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