state

package
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

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

type AccessTrackerDatabase struct {
	gethstate.Database
	// contains filtered or unexported fields
}

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) Commit

func (t *NoOpTrie) Commit(_ bool) (gethcommon.Hash, *trienode.NodeSet)

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) GetKey

func (t *NoOpTrie) GetKey([]byte) []byte

func (*NoOpTrie) GetStorage

func (t *NoOpTrie) GetStorage(_ gethcommon.Address, _ []byte) ([]byte, error)

func (*NoOpTrie) Hash

func (t *NoOpTrie) Hash() gethcommon.Hash

func (*NoOpTrie) IsVerkle

func (t *NoOpTrie) IsVerkle() bool

func (*NoOpTrie) NodeIterator

func (t *NoOpTrie) NodeIterator(_ []byte) (trie.NodeIterator, error)

func (*NoOpTrie) Prove

func (t *NoOpTrie) Prove(_ []byte, _ ethdb.KeyValueWriter) 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

func (*NoOpTrie) Witness

func (t *NoOpTrie) Witness() map[string]struct{}

type RPCDatabase

type RPCDatabase struct {
	gethstate.Database
	// contains filtered or unexported fields
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL