state

package
v0.9.28 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2015 License: LGPL-2.1-or-later Imports: 12 Imported by: 5,222

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsGasLimitErr

func IsGasLimitErr(err error) bool

Types

type Account

type Account struct {
	Balance  string            `json:"balance"`
	Nonce    uint64            `json:"nonce"`
	Root     string            `json:"root"`
	CodeHash string            `json:"codeHash"`
	Storage  map[string]string `json:"storage"`
}

type Code

type Code []byte

func (Code) String

func (self Code) String() string

type GasLimitErr

type GasLimitErr struct {
	Message string
	Is, Max *big.Int
}

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
}

func NewLog

func NewLog(address common.Address, topics []common.Hash, data []byte, number uint64) *Log

func (*Log) EncodeRLP

func (self *Log) EncodeRLP(w io.Writer) error

func (*Log) String

func (self *Log) String() string

type LogForStorage added in v0.9.26

type LogForStorage Log

func (*LogForStorage) EncodeRLP added in v0.9.26

func (self *LogForStorage) EncodeRLP(w io.Writer) error

type Logs

type Logs []*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 New

func New(root common.Hash, db common.Database) *StateDB

Create a new state from a given trie

func (*StateDB) AddBalance

func (self *StateDB) AddBalance(addr common.Address, amount *big.Int)

func (*StateDB) AddLog

func (self *StateDB) AddLog(log *Log)

func (*StateDB) Cmp

func (s *StateDB) Cmp(other *StateDB) bool

func (*StateDB) Copy

func (self *StateDB) Copy() *StateDB

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

func (self *StateDB) CreateOutputForDiff()

Debug stuff

func (*StateDB) Delete

func (self *StateDB) Delete(addr common.Address) bool

func (*StateDB) DeleteStateObject

func (self *StateDB) DeleteStateObject(stateObject *StateObject)

Delete the given state object and delete it from the state trie

func (*StateDB) Dump

func (self *StateDB) Dump() []byte

func (*StateDB) Empty

func (self *StateDB) Empty()

func (*StateDB) GetBalance

func (self *StateDB) GetBalance(addr common.Address) *big.Int

Retrieve the balance from the given address or 0 if object not found

func (*StateDB) GetCode

func (self *StateDB) GetCode(addr common.Address) []byte

func (*StateDB) GetLogs

func (self *StateDB) GetLogs(hash common.Hash) Logs

func (*StateDB) GetNonce

func (self *StateDB) GetNonce(addr common.Address) uint64

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

func (self *StateDB) GetState(a common.Address, b common.Hash) []byte

func (*StateDB) GetStateObject

func (self *StateDB) GetStateObject(addr common.Address) *StateObject

Retrieve a state object given my the address. Nil if not found

func (*StateDB) HasAccount

func (self *StateDB) HasAccount(addr common.Address) bool

func (*StateDB) IsDeleted

func (self *StateDB) IsDeleted(addr common.Address) bool

func (*StateDB) Logs

func (self *StateDB) Logs() Logs

func (*StateDB) PrintRoot

func (self *StateDB) PrintRoot()

func (*StateDB) RawDump

func (self *StateDB) RawDump() World

func (*StateDB) Refund

func (self *StateDB) Refund(address common.Address, gas *big.Int)

func (*StateDB) Refunds

func (self *StateDB) Refunds() map[string]*big.Int

func (*StateDB) Reset

func (s *StateDB) Reset()

Resets the trie and all siblings

func (*StateDB) Root

func (s *StateDB) Root() common.Hash

func (*StateDB) Set

func (self *StateDB) Set(state *StateDB)

func (*StateDB) SetCode

func (self *StateDB) SetCode(addr common.Address, code []byte)

func (*StateDB) SetNonce

func (self *StateDB) SetNonce(addr common.Address, nonce uint64)

func (*StateDB) SetState

func (self *StateDB) SetState(addr common.Address, key common.Hash, value interface{})

func (*StateDB) SetStateObject

func (self *StateDB) SetStateObject(object *StateObject)

func (*StateDB) StartRecord

func (self *StateDB) StartRecord(thash, bhash common.Hash, ti int)

func (*StateDB) Sync

func (s *StateDB) Sync()

Syncs the trie and all siblings

func (*StateDB) Trie

func (s *StateDB) Trie() *trie.SecureTrie

func (*StateDB) Update

func (self *StateDB) Update()

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 {

	// The state object
	State *StateDB
	// contains filtered or unexported fields
}

func NewStateObject

func NewStateObject(address common.Address, db common.Database) *StateObject

func NewStateObjectFromBytes

func NewStateObjectFromBytes(address common.Address, data []byte, db common.Database) *StateObject

func (*StateObject) AddBalance

func (c *StateObject) AddBalance(amount *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) BuyGas

func (self *StateObject) BuyGas(gas, price *big.Int) error

func (*StateObject) Code

func (self *StateObject) Code() []byte

func (*StateObject) CodeHash

func (c *StateObject) CodeHash() common.Bytes

func (*StateObject) ConvertGas

func (c *StateObject) ConvertGas(gas, price *big.Int) error

func (*StateObject) Copy

func (self *StateObject) Copy() *StateObject

func (*StateObject) CreateOutputForDiff

func (self *StateObject) CreateOutputForDiff()

Debug stuff

func (*StateObject) GetInstr

func (c *StateObject) GetInstr(pc *big.Int) *common.Value

func (*StateObject) GetState

func (self *StateObject) GetState(key common.Hash) *common.Value

func (*StateObject) GetStorage

func (self *StateObject) GetStorage(key *big.Int) *common.Value

func (*StateObject) Init

func (c *StateObject) Init() Code

Returns the initialization Code

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

func (self *StateObject) RefundGas(gas, price *big.Int)

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

func (self *StateObject) SetGasPool(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 common.Hash, value *common.Value)

func (*StateObject) SetStorage

func (self *StateObject) SetStorage(key *big.Int, value *common.Value)

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

func (self *StateObject) Sync()

func (*StateObject) Trie

func (self *StateObject) Trie() *trie.SecureTrie

type Storage

type Storage map[string]*common.Value

func (Storage) Copy

func (self Storage) Copy() Storage

func (Storage) String

func (self Storage) String() (str string)

type StorageState

type StorageState struct {
	StateAddress []byte
	Address      []byte
	Value        *big.Int
}

Storage change object. Used by the manifest for notifying changes to the sub channels.

type World

type World struct {
	Root     string             `json:"root"`
	Accounts map[string]Account `json:"accounts"`
}

Jump to

Keyboard shortcuts

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