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 *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 ¶
Types ¶
type GasLimitErr ¶
func GasLimitError ¶
func GasLimitError(is, max *big.Int) *GasLimitErr
func (*GasLimitErr) Error ¶
func (err *GasLimitErr) Error() string
type Log ¶
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 ¶
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) DeleteStateObject ¶
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 ¶
func (self *StateDB) GetStateObject(addr common.Address) (stateObject *StateObject)
Retrieve a state object given my the address. Nil if not found
func (*StateDB) SetStateObject ¶
func (self *StateDB) SetStateObject(object *StateObject)
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 ¶
func (s *StateDB) Trie() *trie.SecureTrie
func (*StateDB) UpdateStateObject ¶
func (self *StateDB) UpdateStateObject(stateObject *StateObject)
Update the given state object and apply it to state trie
type StateObject ¶
type StateObject struct {
// contains filtered or unexported fields
}
func NewStateObject ¶
func NewStateObject(address common.Address, db common.Database) *StateObject
func NewStateObjectFromBytes ¶
func (*StateObject) AddBalance ¶
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 ¶
func (c *StateObject) Address() common.Address
Returns the address of the contract/account
func (*StateObject) Balance ¶
func (self *StateObject) Balance() *big.Int
func (*StateObject) Code ¶
func (self *StateObject) Code() []byte
func (*StateObject) CodeHash ¶
func (c *StateObject) CodeHash() common.Bytes
func (*StateObject) Copy ¶
func (self *StateObject) Copy() *StateObject
func (*StateObject) CreateOutputForDiff ¶
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) MarkForDeletion ¶
func (self *StateObject) MarkForDeletion()
func (*StateObject) N ¶
func (c *StateObject) N() *big.Int
func (*StateObject) Nonce ¶
func (self *StateObject) Nonce() uint64
func (*StateObject) Reset ¶
func (self *StateObject) Reset()
func (*StateObject) ReturnGas ¶
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 ¶
func (c *StateObject) RlpDecode(data []byte)
func (*StateObject) RlpEncode ¶
func (c *StateObject) RlpEncode() []byte
State object encoding methods
func (*StateObject) Root ¶
func (self *StateObject) Root() []byte
func (*StateObject) Set ¶
func (self *StateObject) Set(stateObject *StateObject)
func (*StateObject) SetBalance ¶
func (c *StateObject) SetBalance(amount *big.Int)
func (*StateObject) SetCode ¶
func (self *StateObject) SetCode(code []byte)
func (*StateObject) SetGasLimit ¶ added in v0.9.39
func (self *StateObject) SetGasLimit(gasLimit *big.Int)
func (*StateObject) SetInitCode ¶
func (self *StateObject) SetInitCode(code []byte)
func (*StateObject) SetNonce ¶
func (self *StateObject) SetNonce(nonce uint64)
func (*StateObject) SetState ¶
func (self *StateObject) SetState(k, value common.Hash)
func (*StateObject) St ¶
func (c *StateObject) St() Storage
func (*StateObject) Storage ¶
func (self *StateObject) Storage() Storage
func (*StateObject) SubBalance ¶
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 ¶
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 ¶
Storage change object. Used by the manifest for notifying changes to the sub channels.