Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Apply ¶
func Apply(prevRoot common.Hash, postRoot common.Hash, accounts map[common.Address][]byte, storages map[common.Address]map[common.Hash][]byte, loader TrieLoader) (map[common.Hash]map[string]*trienode.Node, error)
Apply traverses the provided state diffs, apply them in the associated post-state and return the generated dirty trie nodes. The state can be loaded via the provided trie loader.
Types ¶
type Set ¶
type Set struct { Accounts map[common.Address][]byte // Mutated account set, nil means the account was not present Storages map[common.Address]map[common.Hash][]byte // Mutated storage set, nil means the slot was not present Incomplete map[common.Address]struct{} // Indicator whether the storage is incomplete due to large deletion // contains filtered or unexported fields }
Set represents a collection of mutated states during a state transition. The value refers to the original content of state before the transition is made. Nil means that the state was not present previously.
func New ¶
func New(accounts map[common.Address][]byte, storages map[common.Address]map[common.Hash][]byte, incomplete map[common.Address]struct{}) *Set
New constructs the state set with provided data.
func (*Set) Size ¶
func (s *Set) Size() common.StorageSize
Size returns the approximate memory size occupied by the set.
type Trie ¶
type Trie interface { // Get returns the value for key stored in the trie. Get(key []byte) ([]byte, error) // Update associates key with value in the trie. Update(key, value []byte) error // Delete removes any existing value for key from the trie. Delete(key []byte) error // Commit the trie and returns a set of dirty nodes generated along with // the new root hash. Commit(collectLeaf bool) (common.Hash, *trienode.NodeSet, error) }
Trie is an Ethereum state trie, can be implemented by Ethereum Merkle Patricia tree or Verkle tree.
type TrieLoader ¶
type TrieLoader interface { // OpenTrie opens the main account trie. OpenTrie(root common.Hash) (Trie, error) // OpenStorageTrie opens the storage trie of an account. OpenStorageTrie(stateRoot common.Hash, addrHash, root common.Hash) (Trie, error) }
TrieLoader wraps functions to load tries.
Click to show internal directories.
Click to hide internal directories.