Documentation ¶
Overview ¶
Package state provides a caching layer atop the Ethereum state trie.
Index ¶
- func IsGasLimitErr(err error) bool
- type Account
- type Code
- type GasLimitErr
- type Log
- type LogForStorage
- type Logs
- type ManagedState
- func (ms *ManagedState) GetNonce(addr common.Address) uint64
- func (ms *ManagedState) HasAccount(addr common.Address) bool
- func (ms *ManagedState) NewNonce(addr common.Address) uint64
- func (ms *ManagedState) RemoveNonce(addr common.Address, n uint64)
- func (ms *ManagedState) SetNonce(addr common.Address, nonce uint64)
- func (ms *ManagedState) SetState(statedb *StateDB)
- type StateDB
- func (self *StateDB) AddBalance(addr common.Address, amount *big.Int)
- func (self *StateDB) AddLog(log *Log)
- func (s *StateDB) Cmp(other *StateDB) bool
- func (self *StateDB) Copy() *StateDB
- func (self *StateDB) CreateAccount(addr common.Address) *StateObject
- func (self *StateDB) CreateOutputForDiff()
- func (self *StateDB) Delete(addr common.Address) bool
- func (self *StateDB) DeleteStateObject(stateObject *StateObject)
- func (self *StateDB) Dump() []byte
- func (self *StateDB) Empty()
- func (self *StateDB) GetBalance(addr common.Address) *big.Int
- func (self *StateDB) GetCode(addr common.Address) []byte
- func (self *StateDB) GetLogs(hash common.Hash) Logs
- func (self *StateDB) GetNonce(addr common.Address) uint64
- func (self *StateDB) GetOrNewStateObject(addr common.Address) *StateObject
- func (self *StateDB) GetState(a common.Address, b common.Hash) common.Hash
- func (self *StateDB) GetStateObject(addr common.Address) *StateObject
- func (self *StateDB) HasAccount(addr common.Address) bool
- func (self *StateDB) IsDeleted(addr common.Address) bool
- func (self *StateDB) Logs() Logs
- func (self *StateDB) PrintRoot()
- func (self *StateDB) RawDump() World
- func (self *StateDB) Refund(gas *big.Int)
- func (self *StateDB) Refunds() *big.Int
- func (s *StateDB) Reset()
- func (s *StateDB) Root() common.Hash
- func (self *StateDB) Set(state *StateDB)
- func (self *StateDB) SetCode(addr common.Address, code []byte)
- func (self *StateDB) SetNonce(addr common.Address, nonce uint64)
- func (self *StateDB) SetState(addr common.Address, key common.Hash, value common.Hash)
- func (self *StateDB) SetStateObject(object *StateObject)
- func (self *StateDB) StartRecord(thash, bhash common.Hash, ti int)
- func (s *StateDB) Sync()
- func (self *StateDB) SyncIntermediate()
- func (self *StateDB) SyncObjects()
- func (s *StateDB) Trie() *trie.SecureTrie
- func (self *StateDB) UpdateStateObject(stateObject *StateObject)
- type StateObject
- func (c *StateObject) AddBalance(amount *big.Int)
- func (self *StateObject) AddGas(gas, price *big.Int)
- func (c *StateObject) Address() common.Address
- func (self *StateObject) Balance() *big.Int
- func (self *StateObject) Code() []byte
- func (c *StateObject) CodeHash() common.Bytes
- func (self *StateObject) Copy() *StateObject
- func (self *StateObject) CreateOutputForDiff()
- func (self *StateObject) EachStorage(cb func(key, value []byte))
- func (c *StateObject) GetInstr(pc *big.Int) *common.Value
- func (self *StateObject) GetState(key common.Hash) common.Hash
- func (c *StateObject) Init() Code
- func (self *StateObject) MarkForDeletion()
- func (c *StateObject) N() *big.Int
- func (self *StateObject) Nonce() uint64
- func (self *StateObject) Reset()
- func (c *StateObject) ReturnGas(gas, price *big.Int)
- func (c *StateObject) RlpDecode(data []byte)
- func (c *StateObject) RlpEncode() []byte
- func (self *StateObject) Root() []byte
- func (self *StateObject) Set(stateObject *StateObject)
- func (c *StateObject) SetBalance(amount *big.Int)
- func (self *StateObject) SetCode(code []byte)
- func (self *StateObject) SetGasLimit(gasLimit *big.Int)
- func (self *StateObject) SetInitCode(code []byte)
- func (self *StateObject) SetNonce(nonce uint64)
- func (self *StateObject) SetState(k, value common.Hash)
- func (c *StateObject) St() Storage
- func (self *StateObject) Storage() Storage
- func (c *StateObject) SubBalance(amount *big.Int)
- func (self *StateObject) SubGas(gas, price *big.Int) error
- func (self *StateObject) Trie() *trie.SecureTrie
- func (self *StateObject) Update()
- type Storage
- type StorageState
- type World
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsGasLimitErr ¶ added in v0.9.39
Types ¶
type GasLimitErr ¶ added in v0.9.39
func GasLimitError ¶ added in v0.9.39
func GasLimitError(is, max *big.Int) *GasLimitErr
func (*GasLimitErr) Error ¶ added in v0.9.39
func (err *GasLimitErr) Error() string
type Log ¶ added in v0.9.39
type Log struct { Address common.Address Topics []common.Hash Data []byte Number uint64 TxHash common.Hash TxIndex uint BlockHash common.Hash Index uint }
type LogForStorage ¶ added in v0.9.39
type LogForStorage Log
type ManagedState ¶
type ManagedState struct { *StateDB // contains filtered or unexported fields }
func ManageState ¶
func ManageState(statedb *StateDB) *ManagedState
ManagedState returns a new managed state with the statedb as it's backing layer
func (*ManagedState) GetNonce ¶
func (ms *ManagedState) GetNonce(addr common.Address) uint64
GetNonce returns the canonical nonce for the managed or unmanged account
func (*ManagedState) HasAccount ¶
func (ms *ManagedState) HasAccount(addr common.Address) bool
HasAccount returns whether the given address is managed or not
func (*ManagedState) NewNonce ¶
func (ms *ManagedState) NewNonce(addr common.Address) uint64
NewNonce returns the new canonical nonce for the managed account
func (*ManagedState) RemoveNonce ¶
func (ms *ManagedState) RemoveNonce(addr common.Address, n uint64)
RemoveNonce removed the nonce from the managed state and all future pending nonces
func (*ManagedState) SetNonce ¶
func (ms *ManagedState) SetNonce(addr common.Address, nonce uint64)
SetNonce sets the new canonical nonce for the managed state
func (*ManagedState) SetState ¶
func (ms *ManagedState) SetState(statedb *StateDB)
SetState sets the backing layer of the managed state
type StateDB ¶
type StateDB struct {
// contains filtered or unexported fields
}
StateDBs within the ethereum protocol are used to store anything within the merkle trie. StateDBs take care of caching and storing nested states. It's the general query interface to retrieve: * Contracts * Accounts
func (*StateDB) CreateAccount ¶
func (self *StateDB) CreateAccount(addr common.Address) *StateObject
Creates creates a new state object and takes ownership. This is different from "NewStateObject"
func (*StateDB) CreateOutputForDiff ¶ added in v0.9.39
func (self *StateDB) CreateOutputForDiff()
Debug stuff
func (*StateDB) DeleteStateObject ¶ added in v0.9.39
func (self *StateDB) DeleteStateObject(stateObject *StateObject)
Delete the given state object and delete it from the state trie
func (*StateDB) GetBalance ¶
Retrieve the balance from the given address or 0 if object not found
func (*StateDB) GetOrNewStateObject ¶
func (self *StateDB) GetOrNewStateObject(addr common.Address) *StateObject
Retrieve a state object or create a new state object if nil
func (*StateDB) GetStateObject ¶ added in v0.9.39
func (self *StateDB) GetStateObject(addr common.Address) *StateObject
Retrieve a state object given my the address. Nil if not found
func (*StateDB) HasAccount ¶ added in v0.9.39
func (*StateDB) SetStateObject ¶ added in v0.9.39
func (self *StateDB) SetStateObject(object *StateObject)
func (*StateDB) StartRecord ¶ added in v0.9.39
func (*StateDB) SyncIntermediate ¶ added in v0.9.39
func (self *StateDB) SyncIntermediate()
SyncIntermediate updates the intermediate state and all mid steps
func (*StateDB) SyncObjects ¶ added in v0.9.39
func (self *StateDB) SyncObjects()
SyncObjects syncs the changed objects to the trie
func (*StateDB) Trie ¶ added in v0.9.39
func (s *StateDB) Trie() *trie.SecureTrie
func (*StateDB) UpdateStateObject ¶ added in v0.9.39
func (self *StateDB) UpdateStateObject(stateObject *StateObject)
Update the given state object and apply it to state trie
type StateObject ¶ added in v0.9.39
type StateObject struct {
// contains filtered or unexported fields
}
func NewStateObject ¶ added in v0.9.39
func NewStateObject(address common.Address, db common.Database) *StateObject
func NewStateObjectFromBytes ¶ added in v0.9.39
func (*StateObject) AddBalance ¶ added in v0.9.39
func (c *StateObject) AddBalance(amount *big.Int)
func (*StateObject) AddGas ¶ added in v0.9.39
func (self *StateObject) AddGas(gas, price *big.Int)
func (*StateObject) Address ¶ added in v0.9.39
func (c *StateObject) Address() common.Address
Returns the address of the contract/account
func (*StateObject) Balance ¶ added in v0.9.39
func (self *StateObject) Balance() *big.Int
func (*StateObject) Code ¶ added in v0.9.39
func (self *StateObject) Code() []byte
func (*StateObject) CodeHash ¶ added in v0.9.39
func (c *StateObject) CodeHash() common.Bytes
func (*StateObject) Copy ¶ added in v0.9.39
func (self *StateObject) Copy() *StateObject
func (*StateObject) CreateOutputForDiff ¶ added in v0.9.39
func (self *StateObject) CreateOutputForDiff()
Debug stuff
func (*StateObject) EachStorage ¶ added in v0.9.39
func (self *StateObject) EachStorage(cb func(key, value []byte))
func (*StateObject) GetInstr ¶ added in v0.9.39
func (c *StateObject) GetInstr(pc *big.Int) *common.Value
func (*StateObject) GetState ¶ added in v0.9.39
func (self *StateObject) GetState(key common.Hash) common.Hash
func (*StateObject) Init ¶ added in v0.9.39
func (c *StateObject) Init() Code
Returns the initialization Code
func (*StateObject) MarkForDeletion ¶ added in v0.9.39
func (self *StateObject) MarkForDeletion()
func (*StateObject) N ¶ added in v0.9.39
func (c *StateObject) N() *big.Int
func (*StateObject) Nonce ¶ added in v0.9.39
func (self *StateObject) Nonce() uint64
func (*StateObject) Reset ¶ added in v0.9.39
func (self *StateObject) Reset()
func (*StateObject) ReturnGas ¶ added in v0.9.39
func (c *StateObject) ReturnGas(gas, price *big.Int)
Return the gas back to the origin. Used by the Virtual machine or Closures
func (*StateObject) RlpDecode ¶ added in v0.9.39
func (c *StateObject) RlpDecode(data []byte)
func (*StateObject) RlpEncode ¶ added in v0.9.39
func (c *StateObject) RlpEncode() []byte
State object encoding methods
func (*StateObject) Root ¶ added in v0.9.39
func (self *StateObject) Root() []byte
func (*StateObject) Set ¶ added in v0.9.39
func (self *StateObject) Set(stateObject *StateObject)
func (*StateObject) SetBalance ¶ added in v0.9.39
func (c *StateObject) SetBalance(amount *big.Int)
func (*StateObject) SetCode ¶ added in v0.9.39
func (self *StateObject) SetCode(code []byte)
func (*StateObject) SetGasLimit ¶ added in v0.9.39
func (self *StateObject) SetGasLimit(gasLimit *big.Int)
func (*StateObject) SetInitCode ¶ added in v0.9.39
func (self *StateObject) SetInitCode(code []byte)
func (*StateObject) SetNonce ¶ added in v0.9.39
func (self *StateObject) SetNonce(nonce uint64)
func (*StateObject) SetState ¶ added in v0.9.39
func (self *StateObject) SetState(k, value common.Hash)
func (*StateObject) St ¶ added in v0.9.39
func (c *StateObject) St() Storage
func (*StateObject) Storage ¶ added in v0.9.39
func (self *StateObject) Storage() Storage
func (*StateObject) SubBalance ¶ added in v0.9.39
func (c *StateObject) SubBalance(amount *big.Int)
func (*StateObject) SubGas ¶ added in v0.9.39
func (self *StateObject) SubGas(gas, price *big.Int) error
func (*StateObject) Trie ¶ added in v0.9.39
func (self *StateObject) Trie() *trie.SecureTrie
func (*StateObject) Update ¶ added in v0.9.39
func (self *StateObject) Update()
Update updates the current cached storage to the trie
type StorageState ¶ added in v0.9.39
Storage change object. Used by the manifest for notifying changes to the sub channels.