47 static const h256 PendingChangedFilter =
u256(0);
48 static const h256 ChainChangedFilter =
u256(1);
59 #if INITIAL_STATE_AS_CHANGES 68 #define cwatch LogOutputStream<WatchChannel, true>() 72 #define cwork LogOutputStream<WorkChannel, true>() 73 #define cworkin LogOutputStream<WorkInChannel, true>() 74 #define cworkout LogOutputStream<WorkOutChannel, true>() 114 virtual std::map<h256, std::pair<u256, u256>> storageAt(
Address _a,
BlockNumber _block)
const override;
123 virtual bool uninstallWatch(
unsigned _watchId)
override;
129 virtual int compareBlockHashes(
h256 _h1,
h256 _h2)
const override;
134 virtual Transaction transaction(
h256 _blockHash,
unsigned _i)
const override;
138 virtual std::pair<h256, unsigned> transactionLocation(
h256 const& _transactionHash)
const override;
141 virtual BlockHeader uncle(
h256 _blockHash,
unsigned _i)
const override;
143 virtual unsigned transactionCount(
h256 _blockHash)
const override;
144 virtual unsigned uncleCount(
h256 _blockHash)
const override;
145 virtual unsigned number()
const override;
147 virtual h256s pendingHashes()
const override;
158 virtual u256 gasLimitRemaining()
const override;
162 virtual Address author()
const override;
164 virtual bool isKnown(
h256 const& _hash)
const override;
165 virtual bool isKnown(
BlockNumber _block)
const override;
166 virtual bool isKnownTransaction(
h256 const& _transactionHash)
const override;
167 virtual bool isKnownTransaction(
h256 const& _blockHash,
unsigned _i)
const override;
182 virtual Block block(
h256 const& _h)
const = 0;
183 virtual Block preSeal()
const = 0;
184 virtual Block postSeal()
const = 0;
185 virtual void prepareForTransaction() = 0;
193 std::unordered_map<h256, h256s> m_specialFilters = std::unordered_map<h256, std::vector<h256>>{{PendingChangedFilter, {}}, {ChainChangedFilter, {}}};
Adapted from code found on http://stackoverflow.com/questions/180947/base64-decode-snippet-in-c Origi...
LocalisedLogEntries changes
A queue of Transactions, each stored as RLP.
u256 countAt(Address _a) const
Implements the blockchain database.
virtual EVMSchedule evmSchedule() const override
InstalledFilter(LogFilter const &_f)
h160 Address
An Ethereum address: 20 bytes.
std::vector< Transaction > Transactions
Nice name for vector of Transaction.
virtual std::pair< h256, Address > submitTransaction(TransactionSkeleton const &_t, Secret const &_secret)=0
Submits a new transaction.
LocalisedLogEntries changes
ClientWatch(h256 _id, Reaping _r)
std::hash for asio::adress
Description of the result of executing a transaction.
h256 codeHashAt(Address _a) const
std::vector< LocalisedLogEntry > LocalisedLogEntries
Active model of a block within the block chain.
virtual Addresses addresses() const
Get a list of all active addresses.
bytes codeAt(Address _a) const
virtual ExecutionResult create(Address const &_from, u256 _value, bytes const &_data, u256 _gas, u256 _gasPrice, BlockNumber _blockNumber, FudgeFactor _ff=FudgeFactor::Strict)=0
Does the given creation.
IfDropped
Import transaction policy.
virtual ExecutionResult call(Address const &_from, u256 _value, Address _dest, bytes const &_data, u256 _gas, u256 _gasPrice, BlockNumber _blockNumber, FudgeFactor _ff=FudgeFactor::Strict)=0
Makes the given call. Nothing is recorded into the state.
ClientBase(TransactionQueue::Limits const &_l=TransactionQueue::Limits{1024, 1024})
u256 balanceAt(Address _a) const
std::vector< byte > bytes
Don't import transaction that was previously dropped.
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void >> u256
h160s Addresses
A vector of Ethereum addresses.
virtual bool wouldSeal() const override
Would we like to be sealing now?
virtual void stopSealing() override
Stop sealing.
Encodes a transaction, ready to be exported to or freshly imported from RLP.
Main API hub for interfacing with Ethereum.
std::function< void(GasEstimationProgress const &)> GasEstimationCallback
u256 stateAt(Address _a, u256 _l) const
virtual SyncStatus syncStatus() const override
Get some information on the block queue.
clock::time_point time_point
virtual ImportResult injectTransaction(bytes const &_rlp, IfDropped _id=IfDropped::Ignore) override
Injects the RLP-encoded transaction given by the _rlp into the transaction queue directly.
std::map< h256, std::pair< u256, u256 > > storageAt(Address _a) const
virtual u256 gasBidPrice() const override
The default logging channels.
virtual void startSealing() override
Start sealing.
Mutex x_filtersWatches
Our lock.
std::vector< h256 > h256s
std::map< unsigned, ClientWatch > m_watches
Each and every watch - these reference a filter.
std::unordered_map< h256, InstalledFilter > m_filters
The dictionary of filters that are active.