state

package
v1.11.0-rc3 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2023 License: Apache-2.0 Imports: 8 Imported by: 41

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNotEnoughBalance is the error that the balance is not enough
	ErrNotEnoughBalance = errors.New("not enough balance")
	// ErrInvalidAmount is the error that the amount to add is negative
	ErrInvalidAmount = errors.New("invalid amount")
	// ErrAccountCollision is the error that the account already exists
	ErrAccountCollision = errors.New("account already exists")
	// ErrInvalidNonce is the error that the nonce to set is invalid
	ErrInvalidNonce = errors.New("invalid nonce")
	// ErrUnknownAccountType is the error that the account type is unknown
	ErrUnknownAccountType = errors.New("unknown account type")
	// ErrNonceOverflow is the error that the nonce overflow
	ErrNonceOverflow = errors.New("nonce overflow")
)
View Source
var (
	// ErrCandidate indicates the error of candidate
	ErrCandidate = errors.New("invalid candidate")
	// ErrCandidatePb indicates the error of protobuf's candidate message
	ErrCandidatePb = errors.New("invalid protobuf's candidate message")
	// ErrCandidateMap indicates the error of candidate map
	ErrCandidateMap = errors.New("invalid candidate map")
	// ErrCandidateList indicates the error of candidate list
	ErrCandidateList = errors.New("invalid candidate list")
)
View Source
var (
	// ErrStateSerialization is the error that the state marshaling is failed
	ErrStateSerialization = errors.New("failed to marshal state")

	// ErrStateDeserialization is the error that the state un-marshaling is failed
	ErrStateDeserialization = errors.New("failed to unmarshal state")

	// ErrStateNotExist is the error that the state does not exist
	ErrStateNotExist = errors.New("state does not exist")
)
View Source
var ErrNilValue = errors.New("value is nil")

ErrNilValue is an error when value is nil

View Source
var ErrOutOfBoundary = errors.New("index is out of boundary")

ErrOutOfBoundary defines an error when the index in the iterator is out of boundary

Functions

func Deserialize added in v0.3.0

func Deserialize(x interface{}, data []byte) error

Deserialize check if input is Deserializer, if it is, use the input's Deserialize method, otherwise use Gob.

func Serialize added in v0.3.0

func Serialize(d interface{}) ([]byte, error)

Serialize check if input is Serializer, if it is, use the input's Serialize method, otherwise use Gob.

Types

type Account added in v0.4.0

type Account struct {
	Balance  *big.Int
	Root     hash.Hash256 // storage trie root for contract account
	CodeHash []byte       // hash of the smart contract byte-code for contract account
	// contains filtered or unexported fields
}

Account is the canonical representation of an account.

func NewAccount added in v1.9.0

func NewAccount(opts ...AccountCreationOption) (*Account, error)

NewAccount creates a new account with options

func (*Account) AccountType added in v1.9.0

func (st *Account) AccountType() int32

AccountType returns the account type

func (*Account) AddBalance added in v0.4.0

func (st *Account) AddBalance(amount *big.Int) error

AddBalance adds balance for account state

func (*Account) Clone added in v0.4.4

func (st *Account) Clone() *Account

Clone clones the account state

func (*Account) Deserialize added in v0.4.0

func (st *Account) Deserialize(buf []byte) error

Deserialize deserializes bytes into account state

func (*Account) FromProto added in v0.4.0

func (st *Account) FromProto(acPb *accountpb.Account)

FromProto converts from protobuf's Account

func (*Account) HasSufficientBalance added in v1.9.0

func (st *Account) HasSufficientBalance(amount *big.Int) bool

HasSufficientBalance returns true if balance is larger than amount

func (*Account) IsContract added in v0.5.0

func (st *Account) IsContract() bool

IsContract returns true for contract account

func (*Account) IsNewbieAccount added in v1.9.0

func (st *Account) IsNewbieAccount() bool

IsNewbieAccount returns true if the account has not sent any actions

func (*Account) MarkAsCandidate added in v1.9.0

func (st *Account) MarkAsCandidate()

MarkAsCandidate marks the account as a candidate

func (*Account) PendingNonce added in v1.9.0

func (st *Account) PendingNonce() uint64

PendingNonce returns the pending nonce of the account

func (Account) Serialize added in v0.4.0

func (st Account) Serialize() ([]byte, error)

Serialize serializes account state into bytes

func (*Account) SetPendingNonce added in v1.9.0

func (st *Account) SetPendingNonce(nonce uint64) error

SetPendingNonce sets the pending nonce

func (*Account) SubBalance added in v0.4.0

func (st *Account) SubBalance(amount *big.Int) error

SubBalance subtracts balance for account state

func (*Account) ToProto added in v0.4.0

func (st *Account) ToProto() *accountpb.Account

ToProto converts to protobuf's Account

type AccountCreationOption added in v1.9.0

type AccountCreationOption func(*Account) error

AccountCreationOption is to create new account with specific settings

func DelegateCandidateOption added in v1.9.0

func DelegateCandidateOption() AccountCreationOption

DelegateCandidateOption is an option to create a delegate candidate account

func LegacyNonceAccountTypeOption added in v1.9.0

func LegacyNonceAccountTypeOption() AccountCreationOption

LegacyNonceAccountTypeOption is an option to create account with new account type

type Candidate

type Candidate struct {
	Address       string
	Votes         *big.Int
	RewardAddress string
	CanName       []byte // used as identifier to merge with native staking result, not part of protobuf
}

Candidate indicates the structure of a candidate

func (*Candidate) Clone added in v0.8.4

func (c *Candidate) Clone() *Candidate

Clone makes a copy of the candidate

func (*Candidate) Deserialize added in v1.0.0

func (c *Candidate) Deserialize(buf []byte) error

Deserialize deserializes bytes to candidate

func (*Candidate) Equal added in v0.5.0

func (c *Candidate) Equal(d *Candidate) bool

Equal compares two candidate instances

func (*Candidate) Serialize added in v1.0.0

func (c *Candidate) Serialize() ([]byte, error)

Serialize serializes candidate to bytes

type CandidateList added in v0.3.0

type CandidateList []*Candidate

CandidateList indicates the list of Candidates which is sortable

func MapToCandidates added in v0.3.0

func MapToCandidates(candidateMap CandidateMap) (CandidateList, error)

MapToCandidates converts a map of cachedCandidates to candidate list

func (*CandidateList) Deserialize added in v0.4.0

func (l *CandidateList) Deserialize(buf []byte) error

Deserialize deserializes bytes to list of Candidates

func (CandidateList) Len added in v0.3.0

func (l CandidateList) Len() int

func (CandidateList) Less added in v0.3.0

func (l CandidateList) Less(i, j int) bool

func (*CandidateList) LoadProto added in v0.5.0

func (l *CandidateList) LoadProto(candList *iotextypes.CandidateList) error

LoadProto loads candidate list from proto

func (*CandidateList) Proto added in v0.5.0

Proto converts the candidate list to a protobuf message

func (*CandidateList) Serialize added in v0.4.0

func (l *CandidateList) Serialize() ([]byte, error)

Serialize serializes a list of Candidates to bytes

func (CandidateList) Swap added in v0.3.0

func (l CandidateList) Swap(i, j int)

type CandidateMap added in v0.11.0

type CandidateMap map[hash.Hash160]*Candidate

CandidateMap is a map of Candidates using Hash160 as key

func CandidatesToMap added in v0.3.0

func CandidatesToMap(candidates CandidateList) (CandidateMap, error)

CandidatesToMap converts a candidate list to map of cachedCandidates

type Deserializer added in v0.4.4

type Deserializer interface {
	Deserialize(data []byte) error
}

Deserializer has Deserialize method to deserialize binary data to struct.

type Iterator added in v0.11.0

type Iterator interface {
	// Size returns the size of the iterator
	Size() int
	// Next deserializes the next state in the iterator
	Next(interface{}) error
}

Iterator defines an interator to read a set of states

func NewIterator added in v0.11.0

func NewIterator(states [][]byte) Iterator

NewIterator returns an interator given a list of serialized states

type Serializer added in v0.4.4

type Serializer interface {
	Serialize() ([]byte, error)
}

Serializer has Serialize method to serialize struct to binary data.

type State

type State interface {
	Serialize() ([]byte, error)
	Deserialize(data []byte) error
}

State is the interface, which defines the common methods for state struct to be handled by state factory

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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