Thanks to visit codestin.com
Credit goes to pkg.go.dev

state

package
v0.15.9 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ClassTrieHeight           = 251
	ContractTrieHeight        = 251
	ContractStorageTrieHeight = 251
)
View Source
const DefaultMaxLayers = 128

DefaultMaxLayers is the default maximum number of layers to keep in the cache

Variables

View Source
var (
	ErrContractNotDeployed        = errors.New("contract not deployed")
	ErrContractAlreadyDeployed    = errors.New("contract already deployed")
	ErrNoHistoryValue             = errors.New("no history value found")
	ErrHistoricalTrieNotSupported = errors.New("cannot support historical trie")
)

Functions

func DeleteClass

func DeleteClass(w db.KeyValueWriter, classHash *felt.Felt) error

func DeleteClassHashHistory

func DeleteClassHashHistory(w db.KeyValueWriter, addr *felt.Felt, blockNum uint64) error

func DeleteContract

func DeleteContract(w db.KeyValueWriter, addr *felt.Felt) error

func DeleteNonceHistory

func DeleteNonceHistory(w db.KeyValueWriter, addr *felt.Felt, blockNum uint64) error

func DeleteStorageHistory

func DeleteStorageHistory(w db.KeyValueWriter, addr, key *felt.Felt, blockNum uint64) error

func GetClass

func GetClass(r db.KeyValueReader, classHash *felt.Felt) (*core.DeclaredClassDefinition, error)

func GetContract

func GetContract(r db.KeyValueReader, addr *felt.Felt) (stateContract, error)

Gets a contract instance from the database. If it doesn't exist returns a contract not deployed error

func GetStateObject

func GetStateObject(r db.KeyValueReader, state *State, addr *felt.Felt) (*stateObject, error)

func HasClass

func HasClass(r db.KeyValueReader, classHash *felt.Felt) (bool, error)

func HasContract

func HasContract(r db.KeyValueReader, addr *felt.Felt) (bool, error)

func WriteClass

func WriteClass(
	w db.KeyValueWriter,
	classHash *felt.Felt,
	class core.ClassDefinition,
	declaredAt uint64,
) error

func WriteClassHashHistory

func WriteClassHashHistory(w db.KeyValueWriter, addr *felt.Felt, blockNum uint64, classHash *felt.Felt) error

func WriteContract

func WriteContract(w db.KeyValueWriter, addr *felt.Felt, contract *stateContract) error

func WriteNonceHistory

func WriteNonceHistory(w db.KeyValueWriter, addr *felt.Felt, blockNum uint64, nonce *felt.Felt) error

func WriteStorageHistory

func WriteStorageHistory(w db.KeyValueWriter, addr, key *felt.Felt, blockNum uint64, value *felt.Felt) error

Types

type ClassReader

type ClassReader interface {
	Class(classHash *felt.Felt) (*core.DeclaredClassDefinition, error)
}

type ContractReader

type ContractReader interface {
	ContractClassHash(addr *felt.Felt) (felt.Felt, error)
	ContractNonce(addr *felt.Felt) (felt.Felt, error)
	ContractStorage(addr, key *felt.Felt) (felt.Felt, error)
}

type State

type State struct {
	// contains filtered or unexported fields
}

func New

func New(stateRoot *felt.Felt, db *StateDB) (*State, error)

func (*State) Class

func (s *State) Class(classHash *felt.Felt) (*core.DeclaredClassDefinition, error)

func (*State) ClassTrie

func (s *State) ClassTrie() (*trie2.Trie, error)

func (*State) Commitment

func (s *State) Commitment() (felt.Felt, error)

Returns the state commitment

func (*State) ContractClassHash

func (s *State) ContractClassHash(addr *felt.Felt) (felt.Felt, error)

func (*State) ContractClassHashAt

func (s *State) ContractClassHashAt(addr *felt.Felt, blockNum uint64) (felt.Felt, error)

Returns the class hash of a contract at a given block number.

func (*State) ContractDeployedAt

func (s *State) ContractDeployedAt(addr *felt.Felt, blockNum uint64) (bool, error)

func (*State) ContractNonce

func (s *State) ContractNonce(addr *felt.Felt) (felt.Felt, error)

func (*State) ContractNonceAt

func (s *State) ContractNonceAt(addr *felt.Felt, blockNum uint64) (felt.Felt, error)

Returns the nonce of a contract at a given block number.

func (*State) ContractStorage

func (s *State) ContractStorage(addr, key *felt.Felt) (felt.Felt, error)

func (*State) ContractStorageAt

func (s *State) ContractStorageAt(addr, key *felt.Felt, blockNum uint64) (felt.Felt, error)

Returns the storage value of a contract at a given storage key at a given block number.

func (*State) ContractStorageTrie

func (s *State) ContractStorageTrie(addr *felt.Felt) (*trie2.Trie, error)

func (*State) ContractTrie

func (s *State) ContractTrie() (*trie2.Trie, error)

func (*State) GetReverseStateDiff

func (s *State) GetReverseStateDiff(blockNum uint64, diff *core.StateDiff) (core.StateDiff, error)

func (*State) Revert

func (s *State) Revert(blockNum uint64, update *core.StateUpdate) error

Revert a given state update. The block number is the block number of the state update.

func (*State) Update

func (s *State) Update(
	blockNum uint64,
	update *core.StateUpdate,
	declaredClasses map[felt.Felt]core.ClassDefinition,
) error

Applies a state update to a given state. If any error is encountered, state is not updated. After a state update is applied, the root of the state must match the given new root in the state update. TODO(weiihann): deal with flush atomicity

type StateDB

type StateDB struct {
	// contains filtered or unexported fields
}

func NewStateDB

func NewStateDB(disk db.KeyValueStore, triedb *triedb.Database) *StateDB

func (*StateDB) ClassTrie

func (s *StateDB) ClassTrie(stateComm *felt.Felt) (*trie2.Trie, error)

Opens a class trie for the given state root

func (*StateDB) ContractStorageTrie

func (s *StateDB) ContractStorageTrie(stateComm, owner *felt.Felt) (*trie2.Trie, error)

Opens a contract storage trie for the given state root and contract address

func (*StateDB) ContractTrie

func (s *StateDB) ContractTrie(stateComm *felt.Felt) (*trie2.Trie, error)

Opens a contract trie for the given state root

type StateHistory

type StateHistory struct {
	// contains filtered or unexported fields
}

StateHistory represents a snapshot of the blockchain state at a specific block number.

func NewStateHistory

func NewStateHistory(blockNum uint64, stateRoot *felt.Felt, db *StateDB) (StateHistory, error)

func (*StateHistory) Class

func (s *StateHistory) Class(classHash *felt.Felt) (*core.DeclaredClassDefinition, error)

func (*StateHistory) ClassTrie

func (s *StateHistory) ClassTrie() (*trie2.Trie, error)

func (*StateHistory) ContractClassHash

func (s *StateHistory) ContractClassHash(addr *felt.Felt) (felt.Felt, error)

func (*StateHistory) ContractNonce

func (s *StateHistory) ContractNonce(addr *felt.Felt) (felt.Felt, error)

func (*StateHistory) ContractStorage

func (s *StateHistory) ContractStorage(addr, key *felt.Felt) (felt.Felt, error)

func (*StateHistory) ContractStorageTrie

func (s *StateHistory) ContractStorageTrie(addr *felt.Felt) (*trie2.Trie, error)

func (*StateHistory) ContractTrie

func (s *StateHistory) ContractTrie() (*trie2.Trie, error)

type StateReader

type StateReader interface {
	ContractReader
	ClassReader
	TrieProvider
}

type Storage

type Storage map[felt.Felt]*felt.Felt

type TrieProvider

type TrieProvider interface {
	ClassTrie() (*trie2.Trie, error)
	ContractTrie() (*trie2.Trie, error)
	ContractStorageTrie(addr *felt.Felt) (*trie2.Trie, error)
}

Jump to

Keyboard shortcuts

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