state

package
v1.6.4 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2022 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")
	// ErrAccountCollision is the error that the account already exists
	ErrAccountCollision = errors.New("account already exists")
)
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 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 {
	// 0 is reserved from actions in genesis block and coinbase transfers nonces
	// other actions' nonces start from 1
	Nonce        uint64
	Balance      *big.Int
	Root         hash.Hash256 // storage trie root for contract account
	CodeHash     []byte       // hash of the smart contract byte-code for contract account
	IsCandidate  bool
	VotingWeight *big.Int
}

Account is the canonical representation of an account.

func EmptyAccount added in v0.4.2

func EmptyAccount() Account

EmptyAccount returns an empty account

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) IsContract added in v0.5.0

func (st *Account) IsContract() bool

IsContract returns true for contract account

func (Account) Serialize added in v0.4.0

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

Serialize serializes account state into bytes

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