# Functions
New creates a trie with an existing root node from db.
NewDatabase creates a new trie database to store ephemeral trie content before its written out to disk or garbage collected.
NewDatabaseWithConfig creates a new trie database to store ephemeral trie content before its written out to disk or garbage collected.
NewDifferenceIterator constructs a NodeIterator that iterates over elements in b that are not in a.
NewEmpty is a shortcut to create empty tree.
NewIterator creates a new key-value iterator from a node iterator.
NewKeyValueNotary wraps a key-value database with an access notary to track which items have bene accessed.
NewSecure creates a new StateTrie.
NewStackTrie allocates and initializes an empty trie.
NewSecure creates a trie with an existing root node from a backing database and optional intermediate in-memory node pool.
NewSync creates a new trie data download scheduler.
NewSyncBloom creates a new bloom filter of the given size (in megabytes) and initializes it from the database.
NewUnionIterator constructs a NodeIterator that iterates over elements in the union of the provided NodeIterators.
StateTrieID constructs an identifier for state trie with the provided state root.
StorageTrieID constructs an identifier for storage trie which belongs to a certain state and contract specified by the stateRoot and owner.
TrieID constructs an identifier for a standard trie(not a second-layer trie) with provided root.
VerifyProof checks merkle proofs.
VerifyRangeProof checks whether the given leaf nodes and edge proof can prove the given trie leaves range is matched with the specific root.
# Variables
ErrAlreadyProcessed is returned by the trie sync when it's requested to process a node it already processed previously.
ErrNotRequested is returned by the trie sync when it's requested to process a node it did not request.
# Structs
Config defines all necessary options for database.
Database is an intermediate write layer between the trie data structures and the disk database.
ID is the identifier for uniquely identifying a trie.
Iterator is a key-value trie iterator that traverses a Trie.
KeyValueNotary tracks which keys have been accessed through a key-value reader with te scope of verifying if certain proof datasets are maliciously bloated.
MissingNodeError is returned by the trie functions (TryGet, Update, TryDelete) in the case where a trie node is not present in the local database.
StackTrie is a trie implementation that expects keys to be inserted in order.
StateTrie wraps a trie with key hashing.
Sync is the main state trie synchronisation scheduler, which provides yet unknown trie hashes to retrieve, accepts node data associated with said hashes and reconstructs the trie step by step until all is done.
SyncBloom is a bloom filter used during fast sync to quickly decide if a trie node or contract code already exists on disk or not.
SyncResult is a response with requested data along with it's hash.
Trie is a Merkle Patricia Trie.
# Interfaces
NodeIterator is an iterator to traverse the trie pre-order.
# Type aliases
LeafCallback is a callback type invoked when a trie operation reaches a leaf node.
OnTrieNode is a callback method invoked when a trie node is committed by the stack trie.
StateTrie is the old name of StateTrie.
SyncPath is a path tuple identifying a particular trie node either in a single trie (account) or a layered trie (account -> storage).