Fabcoin Core
0.16.2
P2P Digital Currency
|
#include <fascstate.h>
Public Member Functions | |
FascState () | |
FascState (dev::u256 const &_accountStartNonce, dev::OverlayDB const &_db, const std::string &_path, dev::eth::BaseState _bs=dev::eth::BaseState::PreExisting) | |
ResultExecute | execute (dev::eth::EnvInfo const &_envInfo, dev::eth::SealEngineFace const &_sealEngine, FascTransaction const &_t, dev::eth::Permanence _p=dev::eth::Permanence::Committed, dev::eth::OnOpFunc const &_onOp=OnOpFunc()) |
void | setRootUTXO (dev::h256 const &_r) |
void | setCacheUTXO (dev::Address const &address, Vin const &vin) |
dev::h256 | rootHashUTXO () const |
std::unordered_map< dev::Address, Vin > | vins () const |
dev::OverlayDB const & | dbUtxo () const |
dev::OverlayDB & | dbUtxo () |
virtual | ~FascState () |
Public Member Functions inherited from dev::eth::State | |
State (u256 const &_accountStartNonce) | |
Default constructor; creates with a blank database prepopulated with the genesis block. More... | |
State (u256 const &_accountStartNonce, OverlayDB const &_db, BaseState _bs=BaseState::PreExisting) | |
Basic state object from database. More... | |
State (NullType) | |
State (State const &_s) | |
Copy state object. More... | |
State & | operator= (State const &_s) |
Copy state object. More... | |
OverlayDB const & | db () const |
OverlayDB & | db () |
void | populateFrom (AccountMap const &_map) |
Populate the state from the given AccountMap. Just uses dev::eth::commit(). More... | |
std::unordered_map< Address, u256 > | addresses () const |
std::pair< ExecutionResult, TransactionReceipt > | execute (EnvInfo const &_envInfo, SealEngineFace const &_sealEngine, Transaction const &_t, Permanence _p=Permanence::Committed, OnOpFunc const &_onOp=OnOpFunc()) |
Execute a given transaction. More... | |
bool | addressInUse (Address const &_address) const |
Check if the address is in use. More... | |
bool | accountNonemptyAndExisting (Address const &_address) const |
Check if the account exists in the state and is non empty (nonce > 0 || balance > 0 || code nonempty). More... | |
bool | addressHasCode (Address const &_address) const |
Check if the address contains executable code. More... | |
u256 | balance (Address const &_id) const |
Get an account's balance. More... | |
void | subBalance (Address const &_addr, u256 const &_value) |
Subtract the _value amount from the balance of _addr account. More... | |
h256 | storageRoot (Address const &_contract) const |
Get the root of the storage of an account. More... | |
u256 | storage (Address const &_contract, u256 const &_memory) const |
Get the value of a storage position of an account. More... | |
void | setStorage (Address const &_contract, u256 const &_location, u256 const &_value) |
Set the value of a storage position of an account. More... | |
void | createContract (Address const &_address) |
Create a contract at the given address (with unset code and unchanged balance). More... | |
void | setNewCode (Address const &_address, bytes &&_code) |
Sets the code of the account. Must only be called during / after contract creation. More... | |
std::map< h256, std::pair< u256, u256 > > | storage (Address const &_contract) const |
Get the storage of an account. More... | |
bytes const & | code (Address const &_addr) const |
Get the code of an account. More... | |
h256 | codeHash (Address const &_contract) const |
Get the code hash of an account. More... | |
size_t | codeSize (Address const &_contract) const |
Get the byte-size of the code of an account. More... | |
void | incNonce (Address const &_id) |
Increament the account nonce. More... | |
u256 | getNonce (Address const &_addr) const |
Get the account nonce – the number of transactions it has sent. More... | |
h256 | rootHash () const |
The hash of the root of our state tree. More... | |
void | commit (CommitBehaviour _commitBehaviour) |
Commit all changes waiting in the address cache to the DB. More... | |
void | setRoot (h256 const &_root) |
Resets any uncommitted changes to the cache. More... | |
u256 const & | accountStartNonce () const |
Get the account start nonce. May be required. More... | |
u256 const & | requireAccountStartNonce () const |
void | noteAccountStartNonce (u256 const &_actual) |
size_t | savepoint () const |
Create a savepoint in the state changelog. More... | |
void | rollback (size_t _savepoint) |
Revert all recent changes up to the given _savepoint savepoint. More... | |
virtual | ~State () |
Public Attributes | |
friend | CondensingTX |
Private Member Functions | |
void | transferBalance (dev::Address const &_from, dev::Address const &_to, dev::u256 const &_value) |
Transfers "the balance _value between two accounts. More... | |
Vin const * | vin (dev::Address const &_a) const |
Vin * | vin (dev::Address const &_addr) |
void | kill (dev::Address _addr) |
Delete an account (used for processing suicides). More... | |
void | addBalance (dev::Address const &_id, dev::u256 const &_amount) |
Add some amount to balance. More... | |
dev::Address | createFascAddress (dev::h256 hashTx, uint32_t voutNumber) |
void | deleteAccounts (std::set< dev::Address > &addrs) |
void | updateUTXO (const std::unordered_map< dev::Address, Vin > &vins) |
void | printfErrorLog (const dev::eth::TransactionException er) |
Private Attributes | |
dev::Address | newAddress |
std::vector< TransferInfo > | transfers |
dev::OverlayDB | dbUTXO |
dev::eth::SecureTrieDB< dev::Address, dev::OverlayDB > | stateUTXO |
std::unordered_map< dev::Address, Vin > | cacheUTXO |
Additional Inherited Members | |
Public Types inherited from dev::eth::State | |
enum | CommitBehaviour { CommitBehaviour::KeepEmptyAccounts, CommitBehaviour::RemoveEmptyAccounts } |
enum | NullType { Null } |
Static Public Member Functions inherited from dev::eth::State | |
static OverlayDB | openDB (std::string const &_path, h256 const &_genesisHash, WithExisting _we=WithExisting::Trust) |
Open a DB - useful for passing into the constructor & keeping for other states that are necessary. More... | |
Protected Member Functions inherited from dev::eth::State | |
void | removeEmptyAccounts () |
Turns all "touched" empty accounts into non-alive accounts. More... | |
Account const * | account (Address const &_addr) const |
Account * | account (Address const &_addr) |
void | clearCacheIfTooLarge () const |
Purges non-modified entries in m_cache if it grows too large. More... | |
void | createAccount (Address const &_address, Account const &&_account) |
Protected Attributes inherited from dev::eth::State | |
OverlayDB | m_db |
Our overlay for the state tree. More... | |
SecureTrieDB< Address, OverlayDB > | m_state |
Our state tree, as an OverlayDB DB. More... | |
std::unordered_map< Address, Account > | m_cache |
Our address cache. This stores the states of each address that has (or at least might have) been changed. More... | |
std::vector< Address > | m_unchangedCacheEntries |
Tracks entries in m_cache that can potentially be purged if it grows too large. More... | |
std::set< Address > | m_nonExistingAccountsCache |
Tracks addresses that are known to not exist. More... | |
AddressHash | m_touched |
Tracks all addresses touched so far. More... | |
u256 | m_accountStartNonce |
std::vector< detail::Change > | m_changeLog |
Definition at line 59 of file fascstate.h.
FascState::FascState | ( | ) |
Definition at line 17 of file fascstate.cpp.
FascState::FascState | ( | dev::u256 const & | _accountStartNonce, |
dev::OverlayDB const & | _db, | ||
const std::string & | _path, | ||
dev::eth::BaseState | _bs = dev::eth::BaseState::PreExisting |
||
) |
|
inlinevirtual |
Definition at line 92 of file fascstate.h.
|
privatevirtual |
Add some amount to balance.
Will initialise the address if it has never been used.
Reimplemented from dev::eth::State.
Definition at line 198 of file fascstate.cpp.
|
private |
Definition at line 229 of file fascstate.cpp.
|
inline |
Definition at line 84 of file fascstate.h.
|
inline |
Definition at line 88 of file fascstate.h.
|
private |
Definition at line 246 of file fascstate.cpp.
ResultExecute FascState::execute | ( | dev::eth::EnvInfo const & | _envInfo, |
dev::eth::SealEngineFace const & | _sealEngine, | ||
FascTransaction const & | _t, | ||
dev::eth::Permanence | _p = dev::eth::Permanence::Committed , |
||
dev::eth::OnOpFunc const & | _onOp = OnOpFunc() |
||
) |
|
privatevirtual |
Delete an account (used for processing suicides).
Reimplemented from dev::eth::State.
Definition at line 189 of file fascstate.cpp.
|
private |
|
inline |
Definition at line 78 of file fascstate.h.
|
inline |
Definition at line 74 of file fascstate.h.
|
inline |
Definition at line 69 of file fascstate.h.
|
privatevirtual |
Transfers "the balance _value between two accounts.
_from | Account from which _value will be deducted. |
_to | Account to which _value will be added. |
_value | Amount to be transferred. |
Reimplemented from dev::eth::State.
Definition at line 144 of file fascstate.cpp.
|
private |
Definition at line 257 of file fascstate.cpp.
|
private |
|
private |
std::unordered_map< dev::Address, Vin > FascState::vins | ( | ) | const |
Definition at line 130 of file fascstate.cpp.
|
private |
Definition at line 126 of file fascstate.h.
friend FascState::CondensingTX |
Definition at line 94 of file fascstate.h.
|
private |
Definition at line 122 of file fascstate.h.
|
private |
Definition at line 118 of file fascstate.h.
|
private |
Definition at line 124 of file fascstate.h.
|
private |
Definition at line 120 of file fascstate.h.