state

package
v0.4.4 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2019 License: Apache-2.0 Imports: 8 Imported by: 0

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")
	// EmptyAccount indicates an empty account
	// This is a read-only variable for comparison purpose. Caller should not modify it.
	EmptyAccount = &Account{
		Balance:      big.NewInt(0),
		VotingWeight: big.NewInt(0),
	}
)
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")
)

Functions

func CandidatesToMap

func CandidatesToMap(candidates CandidateList) (map[hash.PKHash]*Candidate, error)

CandidatesToMap converts a candidate list to map of cachedCandidates

func Deserialize

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

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

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.Hash32B // storage trie root for contract account
	CodeHash     []byte       // hash of the smart contract byte-code for contract account
	IsCandidate  bool
	VotingWeight *big.Int
	Votee        string
}

Account is the canonical representation of an account.

func (*Account) AddBalance

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

AddBalance adds balance for account state

func (*Account) Clone

func (st *Account) Clone() *Account

Clone clones the account state

func (*Account) Deserialize

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

Deserialize deserializes bytes into account state

func (*Account) FromProto

func (st *Account) FromProto(acPb *iproto.AccountPb)

FromProto converts from protobuf's AccountPb

func (Account) Serialize

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

Serialize serializes account state into bytes

func (*Account) SubBalance

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

SubBalance subtracts balance for account state

func (*Account) ToProto

func (st *Account) ToProto() *iproto.AccountPb

ToProto converts to protobuf's AccountPb

type Candidate

type Candidate struct {
	Address          string
	Votes            *big.Int
	PublicKey        keypair.PublicKey
	CreationHeight   uint64
	LastUpdateHeight uint64
}

Candidate indicates the structure of a candidate

type CandidateList

type CandidateList []*Candidate

CandidateList indicates the list of Candidates which is sortable

func MapToCandidates

func MapToCandidates(candidateMap map[hash.PKHash]*Candidate) (CandidateList, error)

MapToCandidates converts a map of cachedCandidates to candidate list

func (*CandidateList) Deserialize

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

Deserialize deserializes bytes to list of Candidates

func (CandidateList) Len

func (l CandidateList) Len() int

func (CandidateList) Less

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

func (*CandidateList) Serialize

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

Serialize serializes a list of Candidates to bytes

func (CandidateList) Swap

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

type Deserializer

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

Deserializer has Deserialize method to deserialize binary data to struct.

type Serializer

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