Documentation ¶
Index ¶
- Variables
- func Deserialize(x interface{}, data []byte) error
- func Serialize(d interface{}) ([]byte, error)
- type Account
- func (st *Account) AccountType() int32
- func (st *Account) AddBalance(amount *big.Int) error
- func (st *Account) Clone() *Account
- func (st *Account) ConvertFreshAccountToZeroNonceType(nonce uint64) bool
- func (st *Account) Deserialize(buf []byte) error
- func (st *Account) FromProto(acPb *accountpb.Account)
- func (st *Account) HasSufficientBalance(amount *big.Int) bool
- func (st *Account) IsContract() bool
- func (st *Account) IsLegacyFreshAccount() bool
- func (st *Account) IsNewbieAccount() bool
- func (st *Account) MarkAsCandidate()
- func (st *Account) PendingNonce() uint64
- func (st *Account) PendingNonceConsideringFreshAccount() uint64
- func (st Account) Serialize() ([]byte, error)
- func (st *Account) SetPendingNonce(nonce uint64) error
- func (st *Account) SubBalance(amount *big.Int) error
- func (st *Account) ToProto() *accountpb.Account
- type AccountCreationOption
- type Candidate
- type CandidateList
- func (l *CandidateList) Deserialize(buf []byte) error
- func (l CandidateList) Len() int
- func (l CandidateList) Less(i, j int) bool
- func (l *CandidateList) LoadProto(candList *iotextypes.CandidateList) error
- func (l *CandidateList) Proto() *iotextypes.CandidateList
- func (l *CandidateList) Serialize() ([]byte, error)
- func (l CandidateList) Swap(i, j int)
- type CandidateMap
- type Deserializer
- type Iterator
- type Serializer
- type State
Constants ¶
This section is empty.
Variables ¶
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") )
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") )
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") )
var ErrInConsistentLength = errors.New("keys and states have inconsistent length")
ErrInConsistentLength is an error when keys and states have inconsistent length
var ErrNilValue = errors.New("value is nil")
ErrNilValue is an error when value is nil
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 ¶
Deserialize check if input is Deserializer, if it is, use the input's Deserialize method, otherwise use Gob.
Types ¶
type Account ¶
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 ¶
func NewAccount(opts ...AccountCreationOption) (*Account, error)
NewAccount creates a new account with options
func (*Account) AccountType ¶
AccountType returns the account type
func (*Account) AddBalance ¶
AddBalance adds balance for account state
func (*Account) ConvertFreshAccountToZeroNonceType ¶
ConvertFreshAccountToZeroNonceType converts a fresh legacy account to zero-nonce account
func (*Account) Deserialize ¶
Deserialize deserializes bytes into account state
func (*Account) HasSufficientBalance ¶
HasSufficientBalance returns true if balance is larger than amount
func (*Account) IsContract ¶
IsContract returns true for contract account
func (*Account) IsLegacyFreshAccount ¶
IsLegacyFreshAccount returns true if a legacy account has not sent any actions
func (*Account) IsNewbieAccount ¶
IsNewbieAccount returns true if the account has not sent any actions
func (*Account) MarkAsCandidate ¶
func (st *Account) MarkAsCandidate()
MarkAsCandidate marks the account as a candidate
func (*Account) PendingNonce ¶
PendingNonce returns the pending nonce of the account
func (*Account) PendingNonceConsideringFreshAccount ¶
PendingNonceConsideringFreshAccount return the pending nonce considering fresh legacy account
func (*Account) SetPendingNonce ¶
SetPendingNonce sets the pending nonce
func (*Account) SubBalance ¶
SubBalance subtracts balance for account state
type AccountCreationOption ¶
AccountCreationOption is to create new account with specific settings
func DelegateCandidateOption ¶
func DelegateCandidateOption() AccountCreationOption
DelegateCandidateOption is an option to create a delegate candidate account
func LegacyNonceAccountTypeOption ¶
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) Deserialize ¶
Deserialize deserializes bytes to candidate
type CandidateList ¶
type CandidateList []*Candidate
CandidateList indicates the list of Candidates which is sortable
func MapToCandidates ¶
func MapToCandidates(candidateMap CandidateMap) (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) LoadProto ¶
func (l *CandidateList) LoadProto(candList *iotextypes.CandidateList) error
LoadProto loads candidate list from proto
func (*CandidateList) Proto ¶
func (l *CandidateList) Proto() *iotextypes.CandidateList
Proto converts the candidate list to a protobuf message
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 CandidateMap ¶
CandidateMap is a map of Candidates using Hash160 as key
func CandidatesToMap ¶
func CandidatesToMap(candidates CandidateList) (CandidateMap, error)
CandidatesToMap converts a candidate list to map of cachedCandidates
type Deserializer ¶
Deserializer has Deserialize method to deserialize binary data to struct.
type Iterator ¶
type Iterator interface { // Size returns the size of the iterator Size() int // Next deserializes the next state in the iterator Next(interface{}) ([]byte, error) }
Iterator defines an interator to read a set of states
type Serializer ¶
Serializer has Serialize method to serialize struct to binary data.