Documentation
¶
Index ¶
- type AccessTracker
- type AccessTrackerDatabase
- func (db *AccessTrackerDatabase) ContractCode(addr gethcommon.Address, codeHash gethcommon.Hash) ([]byte, error)
- func (db *AccessTrackerDatabase) ContractCodeSize(addr gethcommon.Address, codeHash gethcommon.Hash) (int, error)
- func (db *AccessTrackerDatabase) Reader(stateRoot gethcommon.Hash) (gethstate.Reader, error)
- type AccessTrackerManager
- func (m *AccessTrackerManager) Clear()
- func (m *AccessTrackerManager) DeleteTracker(stateRoot gethcommon.Hash)
- func (m *AccessTrackerManager) GetAccessTracker(stateRoot gethcommon.Hash) *AccessTracker
- func (m *AccessTrackerManager) SetTracker(stateRoot gethcommon.Hash, tracker *AccessTracker) *AccessTracker
- type NoOpTrie
- func (t *NoOpTrie) Commit(_ bool) (gethcommon.Hash, *trienode.NodeSet)
- func (t *NoOpTrie) DeleteAccount(_ gethcommon.Address) error
- func (t *NoOpTrie) DeleteStorage(_ gethcommon.Address, _ []byte) error
- func (t *NoOpTrie) GetAccount(_ gethcommon.Address) (*gethtypes.StateAccount, error)
- func (t *NoOpTrie) GetKey([]byte) []byte
- func (t *NoOpTrie) GetStorage(_ gethcommon.Address, _ []byte) ([]byte, error)
- func (t *NoOpTrie) Hash() gethcommon.Hash
- func (t *NoOpTrie) IsVerkle() bool
- func (t *NoOpTrie) NodeIterator(_ []byte) (trie.NodeIterator, error)
- func (t *NoOpTrie) Prove(_ []byte, _ ethdb.KeyValueWriter) error
- func (t *NoOpTrie) UpdateAccount(_ gethcommon.Address, _ *gethtypes.StateAccount, _ int) error
- func (t *NoOpTrie) UpdateContractCode(_ gethcommon.Address, _ gethcommon.Hash, _ []byte) error
- func (t *NoOpTrie) UpdateStorage(_ gethcommon.Address, _, _ []byte) error
- func (t *NoOpTrie) Witness() map[string]struct{}
- type RPCDatabase
- func (db *RPCDatabase) ContractCode(addr gethcommon.Address, _ gethcommon.Hash) ([]byte, error)
- func (db *RPCDatabase) ContractCodeSize(addr gethcommon.Address, codeHash gethcommon.Hash) (int, error)
- func (db *RPCDatabase) MarkBlock(header *gethtypes.Header)
- func (db *RPCDatabase) OpenStorageTrie(stateRoot gethcommon.Hash, address gethcommon.Address, root gethcommon.Hash, ...) (gethstate.Trie, error)
- func (db *RPCDatabase) OpenTrie(root gethcommon.Hash) (gethstate.Trie, error)
- func (db *RPCDatabase) Reader(root gethcommon.Hash) (gethstate.Reader, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessTracker ¶
type AccessTracker struct { Accounts map[gethcommon.Address]*gethtypes.StateAccount `json:"accounts"` Storage map[gethcommon.Address]map[gethcommon.Hash]gethcommon.Hash `json:"storage"` }
type AccessTrackerDatabase ¶
StateAccessTracker is a state database that tracks the state access (account, storage, and bytecode) during block execution.
func NewAccessTrackerDatabase ¶
func NewAccessTrackerDatabase(db gethstate.Database, trackers *AccessTrackerManager) *AccessTrackerDatabase
NewAccessTrackerDatabase creates a new state database that tracks the state access during block execution.
func (*AccessTrackerDatabase) ContractCode ¶
func (db *AccessTrackerDatabase) ContractCode(addr gethcommon.Address, codeHash gethcommon.Hash) ([]byte, error)
ContractCode implements the gethstate.Database interface.
func (*AccessTrackerDatabase) ContractCodeSize ¶
func (db *AccessTrackerDatabase) ContractCodeSize(addr gethcommon.Address, codeHash gethcommon.Hash) (int, error)
ContractCodeSize implements the gethstate.Database interface.
func (*AccessTrackerDatabase) Reader ¶
func (db *AccessTrackerDatabase) Reader(stateRoot gethcommon.Hash) (gethstate.Reader, error)
Reader implements the gethstate.Database interface.
type AccessTrackerManager ¶
type AccessTrackerManager struct {
// contains filtered or unexported fields
}
func NewAccessTrackerManager ¶
func NewAccessTrackerManager() *AccessTrackerManager
func (*AccessTrackerManager) Clear ¶
func (m *AccessTrackerManager) Clear()
func (*AccessTrackerManager) DeleteTracker ¶
func (m *AccessTrackerManager) DeleteTracker(stateRoot gethcommon.Hash)
func (*AccessTrackerManager) GetAccessTracker ¶
func (m *AccessTrackerManager) GetAccessTracker(stateRoot gethcommon.Hash) *AccessTracker
func (*AccessTrackerManager) SetTracker ¶
func (m *AccessTrackerManager) SetTracker(stateRoot gethcommon.Hash, tracker *AccessTracker) *AccessTracker
type NoOpTrie ¶
type NoOpTrie struct{}
NoOpTrie is a gethstate.Trie that does nothing.
func (*NoOpTrie) DeleteAccount ¶
func (t *NoOpTrie) DeleteAccount(_ gethcommon.Address) error
func (*NoOpTrie) DeleteStorage ¶
func (t *NoOpTrie) DeleteStorage(_ gethcommon.Address, _ []byte) error
func (*NoOpTrie) GetAccount ¶
func (t *NoOpTrie) GetAccount(_ gethcommon.Address) (*gethtypes.StateAccount, error)
func (*NoOpTrie) GetStorage ¶
func (*NoOpTrie) Hash ¶
func (t *NoOpTrie) Hash() gethcommon.Hash
func (*NoOpTrie) NodeIterator ¶
func (t *NoOpTrie) NodeIterator(_ []byte) (trie.NodeIterator, error)
func (*NoOpTrie) UpdateAccount ¶
func (t *NoOpTrie) UpdateAccount(_ gethcommon.Address, _ *gethtypes.StateAccount, _ int) error
func (*NoOpTrie) UpdateContractCode ¶
func (t *NoOpTrie) UpdateContractCode(_ gethcommon.Address, _ gethcommon.Hash, _ []byte) error
func (*NoOpTrie) UpdateStorage ¶
func (t *NoOpTrie) UpdateStorage(_ gethcommon.Address, _, _ []byte) error
type RPCDatabase ¶
RPCDatabase is a gethstate.Database that reads the state from a remote RPC node.
func NewRPCDatabase ¶
func NewRPCDatabase(db gethstate.Database, remote rpc.Client) *RPCDatabase
NewRPCDatabase creates a new state database that reads the state from a remote RPC node.
func (*RPCDatabase) ContractCode ¶
func (db *RPCDatabase) ContractCode(addr gethcommon.Address, _ gethcommon.Hash) ([]byte, error)
ContractCode implements the gethstate.Database interface.
func (*RPCDatabase) ContractCodeSize ¶
func (db *RPCDatabase) ContractCodeSize(addr gethcommon.Address, codeHash gethcommon.Hash) (int, error)
ContractCodeSize implements the gethstate.Database interface.
func (*RPCDatabase) MarkBlock ¶
func (db *RPCDatabase) MarkBlock(header *gethtypes.Header)
MarkBlock records a mapping from state root to the corresponding block number. This is necessary as the underlying RPC node expects parameters to be block numbers and not a state root.
func (*RPCDatabase) OpenStorageTrie ¶
func (db *RPCDatabase) OpenStorageTrie(stateRoot gethcommon.Hash, address gethcommon.Address, root gethcommon.Hash, tr gethstate.Trie) (gethstate.Trie, error)
OpenStorageTrie implements the gethstate.Database interface.
func (*RPCDatabase) OpenTrie ¶
func (db *RPCDatabase) OpenTrie(root gethcommon.Hash) (gethstate.Trie, error)
OpenTrie implements the gethstate.Database interface.
func (*RPCDatabase) Reader ¶
func (db *RPCDatabase) Reader(root gethcommon.Hash) (gethstate.Reader, error)
Reader implements the gethstate.Database interface.