icstate

package
v0.9.7 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2021 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InitialIRep = 50_000 // in icx, not loop
	MinIRep     = 10_000
)
View Source
const (
	VarIRep                                  = "irep"
	VarRRep                                  = "rrep"
	VarMainPRepCount                         = "main_prep_count"
	VarSubPRepCount                          = "sub_prep_count"
	VarTotalStake                            = "total_stake"
	VarIISSVersion                           = "iiss_version"
	VarTermPeriod                            = "term_period"
	VarBondRequirement                       = "bond_requirement"
	VarUnbondingPeriodMultiplier             = "unbonding_period_multiplier"
	VarLockMinMultiplier                     = "lockMinMultiplier"
	VarLockMaxMultiplier                     = "lockMaxMultiplier"
	VarRewardFund                            = "reward_fund"
	VarUnbondingMax                          = "unbonding_max"
	VarValidationPenaltyCondition            = "validation_penalty_condition"
	VarConsistentValidationPenaltyCondition  = "consistent_validation_penalty_condition"
	VarConsistentValidationPenaltyMask       = "consistent_validation_penalty_mask"
	VarConsistentValidationPenaltySlashRatio = "consistent_validation_penalty_slashRatio"
	VarDelegationSlotMax                     = "delegation_slot_max"
)
View Source
const (
	IISSVersion2 int = iota + 2
	IISSVersion3
)
View Source
const (
	TypeAccount int = iota
	TypePRepBase
	TypePRepStatus
	TypeTimer
	TypeIssue
	TypeTerm
	TypeRewardCalcInfo
	TypeValidators
)
View Source
const DecentralizedHeight = 10362083

Variables

View Source
var (
	BigIntZero        = new(big.Int)
	BigIntInitialIRep = new(big.Int).Mul(new(big.Int).SetInt64(InitialIRep), icutils.BigIntICX)
	BigIntMinIRep     = new(big.Int).Mul(new(big.Int).SetInt64(MinIRep), icutils.BigIntICX)
)
View Source
var (
	IssueKey          = containerdb.ToKey(containerdb.HashBuilder, "issue_icx").Build()
	RewardCalcInfoKey = containerdb.ToKey(containerdb.HashBuilder, "reward_calc_info").Build()
	ValidatorsKey     = containerdb.ToKey(
		containerdb.HashBuilder, scoredb.VarDBPrefix, "validators",
	)
	UnstakeSlotMaxKey = containerdb.ToKey(
		containerdb.HashBuilder, scoredb.VarDBPrefix, "unstake_slot_max",
	)
	TotalDelegationKey = containerdb.ToKey(
		containerdb.HashBuilder, scoredb.VarDBPrefix, "total_delegation",
	)
	TotalBondKey = containerdb.ToKey(
		containerdb.HashBuilder, scoredb.VarDBPrefix, "total_bond",
	)
)
View Source
var AccountDictPrefix = containerdb.ToKey(
	containerdb.HashBuilder,
	scoredb.DictDBPrefix,
	"account_db",
)

Functions

func NetworkValueToJSON

func NetworkValueToJSON(s *State) map[string]interface{}

func NewObjectImpl

func NewObjectImpl(tag icobject.Tag) (icobject.Impl, error)

func NewVotingIterator

func NewVotingIterator(votings []Voting) *votingIterator

func ScheduleTimerJob

func ScheduleTimerJob(t *TimerState, info TimerJobInfo, address module.Address) error

Types

type AccountCache

type AccountCache struct {
	// contains filtered or unexported fields
}

func (*AccountCache) Clear

func (c *AccountCache) Clear()

func (*AccountCache) Flush

func (c *AccountCache) Flush()

func (*AccountCache) Get

func (c *AccountCache) Get(owner module.Address, createIfNotExist bool) *AccountState

func (*AccountCache) GetSnapshot added in v0.9.7

func (c *AccountCache) GetSnapshot(owner module.Address) *AccountSnapshot

func (*AccountCache) Reset

func (c *AccountCache) Reset()

type AccountSnapshot added in v0.9.7

type AccountSnapshot struct {
	icobject.NoDatabase
	// contains filtered or unexported fields
}

func GetEmptyAccountSnapshot added in v0.9.7

func GetEmptyAccountSnapshot() *AccountSnapshot

func ToAccount

func ToAccount(object trie.Object) *AccountSnapshot

func (*AccountSnapshot) Bond added in v0.9.7

func (a *AccountSnapshot) Bond() *big.Int

func (*AccountSnapshot) Bonds added in v0.9.7

func (a *AccountSnapshot) Bonds() Bonds

func (*AccountSnapshot) Delegating added in v0.9.7

func (a *AccountSnapshot) Delegating() *big.Int

func (*AccountSnapshot) Delegations added in v0.9.7

func (a *AccountSnapshot) Delegations() Delegations

func (*AccountSnapshot) Equal added in v0.9.7

func (a *AccountSnapshot) Equal(object icobject.Impl) bool

func (*AccountSnapshot) Format added in v0.9.7

func (a *AccountSnapshot) Format(f fmt.State, c rune)

func (*AccountSnapshot) GetBondsInJSON added in v0.9.7

func (a *AccountSnapshot) GetBondsInJSON() []interface{}

func (AccountSnapshot) GetDelegationInJSON added in v0.9.7

func (a AccountSnapshot) GetDelegationInJSON() map[string]interface{}

func (AccountSnapshot) GetStakeInJSON added in v0.9.7

func (a AccountSnapshot) GetStakeInJSON(blockHeight int64) map[string]interface{}

func (AccountSnapshot) GetTotalStake added in v0.9.7

func (a AccountSnapshot) GetTotalStake() *big.Int

func (*AccountSnapshot) GetUnbondsInJSON added in v0.9.7

func (a *AccountSnapshot) GetUnbondsInJSON() []interface{}

func (AccountSnapshot) GetUnstakeAmount added in v0.9.7

func (a AccountSnapshot) GetUnstakeAmount() *big.Int

func (*AccountSnapshot) GetVoting added in v0.9.7

func (a *AccountSnapshot) GetVoting() *big.Int

func (*AccountSnapshot) GetVotingPower added in v0.9.7

func (a *AccountSnapshot) GetVotingPower() *big.Int

func (AccountSnapshot) IsEmpty added in v0.9.7

func (a AccountSnapshot) IsEmpty() bool

func (*AccountSnapshot) RLPDecodeFields added in v0.9.7

func (a *AccountSnapshot) RLPDecodeFields(decoder codec.Decoder) error

func (*AccountSnapshot) RLPEncodeFields added in v0.9.7

func (a *AccountSnapshot) RLPEncodeFields(encoder codec.Encoder) error

func (AccountSnapshot) Stake added in v0.9.7

func (a AccountSnapshot) Stake() *big.Int

func (*AccountSnapshot) String added in v0.9.7

func (a *AccountSnapshot) String() string

func (*AccountSnapshot) Unbond added in v0.9.7

func (a *AccountSnapshot) Unbond() *big.Int

func (*AccountSnapshot) Unbonds added in v0.9.7

func (a *AccountSnapshot) Unbonds() Unbonds

func (*AccountSnapshot) UsingStake added in v0.9.7

func (a *AccountSnapshot) UsingStake() *big.Int

func (*AccountSnapshot) Version added in v0.9.7

func (a *AccountSnapshot) Version() int

type AccountState added in v0.9.7

type AccountState struct {
	// contains filtered or unexported fields
}

func (*AccountState) Bond added in v0.9.7

func (a *AccountState) Bond() *big.Int

func (*AccountState) Bonds added in v0.9.7

func (a *AccountState) Bonds() Bonds

func (*AccountState) Clear added in v0.9.7

func (a *AccountState) Clear()

func (*AccountState) DecreaseUnstake added in v0.9.7

func (a *AccountState) DecreaseUnstake(stakeInc *big.Int, expireHeight int64, revision int) ([]TimerJobInfo, error)

func (*AccountState) Delegating added in v0.9.7

func (a *AccountState) Delegating() *big.Int

func (*AccountState) Delegations added in v0.9.7

func (a *AccountState) Delegations() Delegations

func (*AccountState) Format added in v0.9.7

func (a *AccountState) Format(f fmt.State, c rune)

func (*AccountState) GetBondsInJSON added in v0.9.7

func (a *AccountState) GetBondsInJSON() []interface{}

func (AccountState) GetDelegationInJSON added in v0.9.7

func (a AccountState) GetDelegationInJSON() map[string]interface{}

func (*AccountState) GetSnapshot added in v0.9.7

func (a *AccountState) GetSnapshot() *AccountSnapshot

func (AccountState) GetStakeInJSON added in v0.9.7

func (a AccountState) GetStakeInJSON(blockHeight int64) map[string]interface{}

func (AccountState) GetTotalStake added in v0.9.7

func (a AccountState) GetTotalStake() *big.Int

func (*AccountState) GetUnbondsInJSON added in v0.9.7

func (a *AccountState) GetUnbondsInJSON() []interface{}

func (AccountState) GetUnstakeAmount added in v0.9.7

func (a AccountState) GetUnstakeAmount() *big.Int

func (*AccountState) GetVoting added in v0.9.7

func (a *AccountState) GetVoting() *big.Int

func (*AccountState) GetVotingPower added in v0.9.7

func (a *AccountState) GetVotingPower() *big.Int

func (*AccountState) IncreaseUnstake added in v0.9.7

func (a *AccountState) IncreaseUnstake(stakeInc *big.Int, expireHeight int64, slotMax, revision int) ([]TimerJobInfo, error)

func (AccountState) IsEmpty added in v0.9.7

func (a AccountState) IsEmpty() bool

func (*AccountState) RemoveUnbond added in v0.9.7

func (a *AccountState) RemoveUnbond(height int64) error

func (*AccountState) RemoveUnstake added in v0.9.7

func (a *AccountState) RemoveUnstake(height int64) (ra *big.Int, err error)

func (*AccountState) Reset added in v0.9.7

func (a *AccountState) Reset(s *AccountSnapshot)

func (*AccountState) SetBonds added in v0.9.7

func (a *AccountState) SetBonds(bonds Bonds)

func (*AccountState) SetDelegation added in v0.9.7

func (a *AccountState) SetDelegation(ds Delegations)

func (*AccountState) SetStake added in v0.9.7

func (a *AccountState) SetStake(v *big.Int) error

func (*AccountState) SlashBond added in v0.9.7

func (a *AccountState) SlashBond(address module.Address, ratio int) *big.Int

func (*AccountState) SlashStake added in v0.9.7

func (a *AccountState) SlashStake(amount *big.Int) error

func (*AccountState) SlashUnbond added in v0.9.7

func (a *AccountState) SlashUnbond(address module.Address, ratio int) (*big.Int, int64)

func (AccountState) Stake added in v0.9.7

func (a AccountState) Stake() *big.Int

func (*AccountState) String added in v0.9.7

func (a *AccountState) String() string

func (*AccountState) Unbond added in v0.9.7

func (a *AccountState) Unbond() *big.Int

func (*AccountState) Unbonds added in v0.9.7

func (a *AccountState) Unbonds() Unbonds

func (*AccountState) UpdateUnbonds added in v0.9.7

func (a *AccountState) UpdateUnbonds(bondDelta map[string]*big.Int, expireHeight int64) ([]TimerJobInfo, error)

func (*AccountState) UsingStake added in v0.9.7

func (a *AccountState) UsingStake() *big.Int

type ActivePRepCache

type ActivePRepCache struct {
	// contains filtered or unexported fields
}

func (*ActivePRepCache) Add

func (c *ActivePRepCache) Add(owner module.Address)

A new PRep is registered

func (*ActivePRepCache) Clear

func (c *ActivePRepCache) Clear()

func (*ActivePRepCache) Flush

func (c *ActivePRepCache) Flush()

func (*ActivePRepCache) Get

func (c *ActivePRepCache) Get(i int) module.Address

func (*ActivePRepCache) Remove

func (c *ActivePRepCache) Remove(owner module.Address) error

An active PRep is removed

func (*ActivePRepCache) Reset

func (c *ActivePRepCache) Reset()

Reset recovers data which is in the list of Map as of now

func (*ActivePRepCache) Size

func (c *ActivePRepCache) Size() int

type Arrayable added in v0.9.7

type Arrayable interface {
	IndexOf(value interface{}) int
	Get(i int) interface{}
	Len() int
}

type Bond

type Bond struct {
	Address *common.Address `json:"address"`
	Value   *common.HexInt  `json:"value"`
}

func NewBond

func NewBond(addr *common.Address, v *big.Int) *Bond

func (*Bond) Amount

func (b *Bond) Amount() *big.Int

func (*Bond) Clone

func (b *Bond) Clone() *Bond

func (*Bond) Equal

func (b *Bond) Equal(b2 *Bond) bool

func (*Bond) Format added in v0.9.7

func (b *Bond) Format(f fmt.State, c rune)

func (*Bond) Slash

func (b *Bond) Slash(ratio int) *big.Int

func (*Bond) String

func (b *Bond) String() string

func (*Bond) To

func (b *Bond) To() module.Address

func (*Bond) ToJSON

func (b *Bond) ToJSON() map[string]interface{}

type BonderList

type BonderList []*common.Address

func NewBonderList

func NewBonderList(param []interface{}) (BonderList, error)

func (BonderList) Clone

func (bl BonderList) Clone() BonderList

func (BonderList) Contains

func (bl BonderList) Contains(a module.Address) bool

func (BonderList) Equal

func (bl BonderList) Equal(bl2 BonderList) bool

func (BonderList) ToJSON

func (bl BonderList) ToJSON() []interface{}

type Bonds

type Bonds []*Bond

func NewBonds

func NewBonds(param []interface{}) (Bonds, error)

func (*Bonds) Clone

func (bs *Bonds) Clone() Bonds

func (*Bonds) Delete

func (bs *Bonds) Delete(i int) error

func (*Bonds) Equal

func (bs *Bonds) Equal(bl2 Bonds) bool

func (*Bonds) GetBondAmount

func (bs *Bonds) GetBondAmount() *big.Int

func (*Bonds) Has

func (bs *Bonds) Has() bool

func (*Bonds) Iterator

func (bs *Bonds) Iterator() VotingIterator

func (*Bonds) Slash

func (bs *Bonds) Slash(address module.Address, ratio int) (Bonds, *big.Int)

func (*Bonds) ToJSON

func (bs *Bonds) ToJSON(v module.JSONVersion) []interface{}

func (*Bonds) ToMap added in v0.9.7

func (bs *Bonds) ToMap() map[string]*Bond

type Delegation

type Delegation struct {
	Address *common.Address `json:"address"`
	Value   *common.HexInt  `json:"value"`
}

func NewDelegation

func NewDelegation(addr *common.Address, v *big.Int) *Delegation

func (*Delegation) Amount

func (dg *Delegation) Amount() *big.Int

func (*Delegation) Clone

func (dg *Delegation) Clone() *Delegation

func (*Delegation) Equal

func (dg *Delegation) Equal(d2 *Delegation) bool

func (*Delegation) Format added in v0.9.7

func (dg *Delegation) Format(f fmt.State, c rune)

func (*Delegation) String added in v0.9.7

func (dg *Delegation) String() string

func (*Delegation) To

func (dg *Delegation) To() module.Address

func (*Delegation) ToJSON

func (dg *Delegation) ToJSON() map[string]interface{}

type Delegations

type Delegations []*Delegation

func NewDelegations

func NewDelegations(param []interface{}, max int) (Delegations, error)

func (Delegations) Clone

func (ds Delegations) Clone() Delegations

func (*Delegations) Delete

func (ds *Delegations) Delete(i int) error

func (Delegations) Equal

func (ds Delegations) Equal(ds2 Delegations) bool

func (Delegations) GetDelegationAmount

func (ds Delegations) GetDelegationAmount() *big.Int

func (Delegations) Has

func (ds Delegations) Has() bool

func (*Delegations) Iterator

func (ds *Delegations) Iterator() VotingIterator

func (Delegations) ToJSON

func (ds Delegations) ToJSON(_ module.JSONVersion) []interface{}

func (*Delegations) ToMap added in v0.9.7

func (ds *Delegations) ToMap() map[string]*Delegation

type Grade

type Grade int
const (
	Main Grade = iota
	Sub
	Candidate
)

func (Grade) String

func (g Grade) String() string

type Issue

type Issue struct {
	icobject.NoDatabase
	// contains filtered or unexported fields
}

func NewIssue

func NewIssue() *Issue

func ToIssue

func ToIssue(object trie.Object) *Issue

func (*Issue) Clone

func (i *Issue) Clone() *Issue

func (*Issue) Equal

func (i *Issue) Equal(o icobject.Impl) bool

func (*Issue) Format added in v0.9.7

func (i *Issue) Format(f fmt.State, c rune)

func (*Issue) IScoreRemains

func (i *Issue) IScoreRemains() *big.Int

func (*Issue) OverIssued

func (i *Issue) OverIssued() *big.Int

func (*Issue) PrevBlockFee

func (i *Issue) PrevBlockFee() *big.Int

func (*Issue) PrevTotalIssued

func (i *Issue) PrevTotalIssued() *big.Int

func (*Issue) RLPDecodeFields

func (i *Issue) RLPDecodeFields(decoder codec.Decoder) error

func (*Issue) RLPEncodeFields

func (i *Issue) RLPEncodeFields(encoder codec.Encoder) error

func (*Issue) ResetTotalIssued

func (i *Issue) ResetTotalIssued()

func (*Issue) SetIScoreRemains added in v0.9.7

func (i *Issue) SetIScoreRemains(v *big.Int)

func (*Issue) SetOverIssued added in v0.9.7

func (i *Issue) SetOverIssued(v *big.Int)

func (*Issue) SetPrevBlockFee added in v0.9.7

func (i *Issue) SetPrevBlockFee(v *big.Int)

func (*Issue) SetPrevTotalIssued added in v0.9.7

func (i *Issue) SetPrevTotalIssued(v *big.Int)

func (*Issue) SetTotalIssued added in v0.9.7

func (i *Issue) SetTotalIssued(v *big.Int)

func (*Issue) TotalIssued

func (i *Issue) TotalIssued() *big.Int

func (*Issue) Update added in v0.9.7

func (i *Issue) Update(totalReward *big.Int, byFee *big.Int, byOverIssued *big.Int) *Issue

func (*Issue) Version

func (i *Issue) Version() int

type JobType

type JobType int
const (
	JobTypeAdd JobType = iota + 1
	JobTypeRemove
)

type Mappable added in v0.9.7

type Mappable interface {
	Has(key interface{}) bool
	Get(key interface{}) interface{}
	Len() int
}

type NodeOwnerCache

type NodeOwnerCache struct {
	// contains filtered or unexported fields
}

TODO: Remove old nodes which is not used anymore

func (*NodeOwnerCache) Add

func (c *NodeOwnerCache) Add(node, owner module.Address) error

func (*NodeOwnerCache) Clear

func (c *NodeOwnerCache) Clear()

func (*NodeOwnerCache) Contains added in v0.9.7

func (c *NodeOwnerCache) Contains(node module.Address) bool

func (*NodeOwnerCache) Flush

func (c *NodeOwnerCache) Flush()

func (*NodeOwnerCache) Get

func (*NodeOwnerCache) Reset

func (c *NodeOwnerCache) Reset()

type OwnerToNodeMappable added in v0.9.7

type OwnerToNodeMappable interface {
	GetNodeByOwner(owner module.Address) module.Address
}

type PRep added in v0.9.7

type PRep struct {
	*PRepBase
	*PRepStatusState
	// contains filtered or unexported fields
}

func (PRep) Bonded added in v0.9.7

func (ps PRep) Bonded() *big.Int

func (PRep) Delegated added in v0.9.7

func (ps PRep) Delegated() *big.Int

func (PRep) GetBondedDelegation added in v0.9.7

func (ps PRep) GetBondedDelegation(bondRequirement int64) *big.Int

GetBondedDelegation return amount of bonded delegation Bonded delegation formula totalVoted = bond + delegation bondRatio = bond / totalVoted * 100 bondedDelegation = totalVoted * (bondRatio / bondRequirement)

= bond * 100 / bondRequirement

if bondedDelegation > totalVoted

bondedDelegation = totalVoted

func (*PRep) GetNode added in v0.9.7

func (p *PRep) GetNode() module.Address

func (PRep) GetStatsInJSON added in v0.9.7

func (ps PRep) GetStatsInJSON(blockHeight int64) map[string]interface{}

func (PRep) GetVFail added in v0.9.7

func (ps PRep) GetVFail(blockHeight int64) int64

GetVFail returns the calculated number of validation failures

func (PRep) GetVFailCont added in v0.9.7

func (ps PRep) GetVFailCont(blockHeight int64) int64

GetVFailCont returns the number of consecutive validation failures

func (PRep) GetVPenaltyCount added in v0.9.7

func (ps PRep) GetVPenaltyCount() int

func (PRep) GetVTotal added in v0.9.7

func (ps PRep) GetVTotal(blockHeight int64) int64

GetVTotal returns the calculated number of validation

func (PRep) GetVoted added in v0.9.7

func (ps PRep) GetVoted() *big.Int

func (PRep) Grade added in v0.9.7

func (ps PRep) Grade() Grade

func (PRep) IsActive added in v0.9.7

func (ps PRep) IsActive() bool

func (PRep) IsAlreadyPenalized added in v0.9.7

func (ps PRep) IsAlreadyPenalized() bool

IsAlreadyPenalized returns true if this PRep got penalized during this term

func (PRep) LastHeight added in v0.9.7

func (ps PRep) LastHeight() int64

func (PRep) LastState added in v0.9.7

func (ps PRep) LastState() ValidationState

func (*PRep) Owner added in v0.9.7

func (p *PRep) Owner() module.Address

func (PRep) Status added in v0.9.7

func (ps PRep) Status() Status

func (*PRep) ToJSON added in v0.9.7

func (p *PRep) ToJSON(blockHeight int64, bondRequirement int64) map[string]interface{}

func (PRep) VFail added in v0.9.7

func (ps PRep) VFail() int64

func (PRep) VTotal added in v0.9.7

func (ps PRep) VTotal() int64

type PRepBase

type PRepBase struct {
	icobject.NoDatabase
	StateAndSnapshot
	// database variables
	RegInfo
	// contains filtered or unexported fields
}

func NewPRepBase

func NewPRepBase() *PRepBase

func ToPRepBase

func ToPRepBase(object trie.Object) *PRepBase

func (*PRepBase) ApplyRegInfo added in v0.9.7

func (p *PRepBase) ApplyRegInfo(ri *RegInfo) error

func (*PRepBase) BonderList

func (p *PRepBase) BonderList() BonderList

func (*PRepBase) Clear

func (p *PRepBase) Clear()

func (*PRepBase) Clone

func (p *PRepBase) Clone() *PRepBase

func (*PRepBase) Equal

func (p *PRepBase) Equal(object icobject.Impl) bool

func (*PRepBase) GetBonderListInJSON

func (p *PRepBase) GetBonderListInJSON() []interface{}

func (*PRepBase) GetNode

func (p *PRepBase) GetNode(owner module.Address) module.Address

func (*PRepBase) IRep

func (p *PRepBase) IRep() *big.Int

func (*PRepBase) IRepHeight

func (p *PRepBase) IRepHeight() int64

func (*PRepBase) IsEmpty

func (p *PRepBase) IsEmpty() bool

func (*PRepBase) RLPDecodeFields

func (p *PRepBase) RLPDecodeFields(d codec.Decoder) error

func (*PRepBase) RLPEncodeFields

func (p *PRepBase) RLPEncodeFields(e codec.Encoder) error

func (*PRepBase) Set

func (p *PRepBase) Set(other *PRepBase)

func (*PRepBase) SetBonderList

func (p *PRepBase) SetBonderList(bonderList BonderList)

func (*PRepBase) SetIrep

func (p *PRepBase) SetIrep(irep *big.Int, irepHeight int64)

func (*PRepBase) SetNode added in v0.9.7

func (p *PRepBase) SetNode(node module.Address)

func (*PRepBase) SetRegInfo added in v0.9.7

func (p *PRepBase) SetRegInfo(ri *RegInfo) error

func (*PRepBase) ToJSON

func (p *PRepBase) ToJSON() map[string]interface{}

func (*PRepBase) Version

func (p *PRepBase) Version() int

type PRepBaseCache

type PRepBaseCache struct {
	// contains filtered or unexported fields
}

func (*PRepBaseCache) Clear

func (c *PRepBaseCache) Clear()

func (*PRepBaseCache) Flush

func (c *PRepBaseCache) Flush()

func (*PRepBaseCache) Get

func (c *PRepBaseCache) Get(owner module.Address, createIfNotExist bool) (*PRepBase, bool)

func (*PRepBaseCache) Reset

func (c *PRepBaseCache) Reset()

type PRepSnapshot

type PRepSnapshot struct {
	// contains filtered or unexported fields
}

func NewPRepSnapshot added in v0.9.7

func NewPRepSnapshot(owner module.Address, bondedDelegation *big.Int) *PRepSnapshot

func (*PRepSnapshot) BondedDelegation

func (pss *PRepSnapshot) BondedDelegation() *big.Int

func (*PRepSnapshot) Clone

func (pss *PRepSnapshot) Clone() *PRepSnapshot

func (*PRepSnapshot) Equal

func (pss *PRepSnapshot) Equal(other *PRepSnapshot) bool

func (*PRepSnapshot) Owner

func (pss *PRepSnapshot) Owner() module.Address

func (*PRepSnapshot) RLPDecodeSelf

func (pss *PRepSnapshot) RLPDecodeSelf(d codec.Decoder) error

func (*PRepSnapshot) RLPEncodeSelf

func (pss *PRepSnapshot) RLPEncodeSelf(e codec.Encoder) error

func (*PRepSnapshot) ToJSON

func (pss *PRepSnapshot) ToJSON() map[string]interface{}

type PRepSnapshots

type PRepSnapshots struct {
	// contains filtered or unexported fields
}

func NewEmptyPRepSnapshots added in v0.9.7

func NewEmptyPRepSnapshots() *PRepSnapshots

func NewPRepSnapshots added in v0.9.7

func NewPRepSnapshots(preps *PReps, electedPRepCount int, br int64) *PRepSnapshots

func (*PRepSnapshots) Clone

func (p *PRepSnapshots) Clone() *PRepSnapshots

func (*PRepSnapshots) Equal

func (p *PRepSnapshots) Equal(other *PRepSnapshots) bool

func (*PRepSnapshots) Get added in v0.9.7

func (p *PRepSnapshots) Get(i int) interface{}

func (*PRepSnapshots) IndexOf added in v0.9.7

func (p *PRepSnapshots) IndexOf(value interface{}) int

func (*PRepSnapshots) Len added in v0.9.7

func (p *PRepSnapshots) Len() int

func (*PRepSnapshots) RLPDecodeSelf added in v0.9.7

func (p *PRepSnapshots) RLPDecodeSelf(d codec.Decoder) error

func (*PRepSnapshots) RLPEncodeSelf added in v0.9.7

func (p *PRepSnapshots) RLPEncodeSelf(e codec.Encoder) error

func (*PRepSnapshots) TotalBondedDelegation added in v0.9.7

func (p *PRepSnapshots) TotalBondedDelegation() *big.Int

type PRepStatusCache

type PRepStatusCache struct {
	// contains filtered or unexported fields
}

func (*PRepStatusCache) Clear

func (c *PRepStatusCache) Clear()

func (*PRepStatusCache) Flush

func (c *PRepStatusCache) Flush()

func (*PRepStatusCache) Get

func (c *PRepStatusCache) Get(owner module.Address, createIfNotExist bool) (*PRepStatusState, bool)

func (*PRepStatusCache) Reset

func (c *PRepStatusCache) Reset()

type PRepStatusSnapshot added in v0.9.7

type PRepStatusSnapshot struct {
	icobject.NoDatabase
	// contains filtered or unexported fields
}

func ToPRepStatus

func ToPRepStatus(object trie.Object) *PRepStatusSnapshot

func (*PRepStatusSnapshot) Bonded added in v0.9.7

func (ps *PRepStatusSnapshot) Bonded() *big.Int

func (*PRepStatusSnapshot) Delegated added in v0.9.7

func (ps *PRepStatusSnapshot) Delegated() *big.Int

func (*PRepStatusSnapshot) Equal added in v0.9.7

func (ps *PRepStatusSnapshot) Equal(o icobject.Impl) bool

func (*PRepStatusSnapshot) Format added in v0.9.7

func (ps *PRepStatusSnapshot) Format(f fmt.State, c rune)

func (*PRepStatusSnapshot) GetBondedDelegation added in v0.9.7

func (ps *PRepStatusSnapshot) GetBondedDelegation(bondRequirement int64) *big.Int

GetBondedDelegation return amount of bonded delegation Bonded delegation formula totalVoted = bond + delegation bondRatio = bond / totalVoted * 100 bondedDelegation = totalVoted * (bondRatio / bondRequirement)

= bond * 100 / bondRequirement

if bondedDelegation > totalVoted

bondedDelegation = totalVoted

func (*PRepStatusSnapshot) GetStatsInJSON added in v0.9.7

func (ps *PRepStatusSnapshot) GetStatsInJSON(blockHeight int64) map[string]interface{}

func (*PRepStatusSnapshot) GetVFail added in v0.9.7

func (ps *PRepStatusSnapshot) GetVFail(blockHeight int64) int64

GetVFail returns the calculated number of validation failures

func (*PRepStatusSnapshot) GetVFailCont added in v0.9.7

func (ps *PRepStatusSnapshot) GetVFailCont(blockHeight int64) int64

GetVFailCont returns the number of consecutive validation failures

func (*PRepStatusSnapshot) GetVPenaltyCount added in v0.9.7

func (ps *PRepStatusSnapshot) GetVPenaltyCount() int

func (*PRepStatusSnapshot) GetVTotal added in v0.9.7

func (ps *PRepStatusSnapshot) GetVTotal(blockHeight int64) int64

GetVTotal returns the calculated number of validation

func (*PRepStatusSnapshot) GetVoted added in v0.9.7

func (ps *PRepStatusSnapshot) GetVoted() *big.Int

func (*PRepStatusSnapshot) Grade added in v0.9.7

func (ps *PRepStatusSnapshot) Grade() Grade

func (*PRepStatusSnapshot) IsActive added in v0.9.7

func (ps *PRepStatusSnapshot) IsActive() bool

func (*PRepStatusSnapshot) IsAlreadyPenalized added in v0.9.7

func (ps *PRepStatusSnapshot) IsAlreadyPenalized() bool

IsAlreadyPenalized returns true if this PRep got penalized during this term

func (*PRepStatusSnapshot) IsEmpty added in v0.9.7

func (ps *PRepStatusSnapshot) IsEmpty() bool

func (*PRepStatusSnapshot) LastHeight added in v0.9.7

func (ps *PRepStatusSnapshot) LastHeight() int64

func (*PRepStatusSnapshot) LastState added in v0.9.7

func (ps *PRepStatusSnapshot) LastState() ValidationState

func (*PRepStatusSnapshot) RLPDecodeFields added in v0.9.7

func (ps *PRepStatusSnapshot) RLPDecodeFields(decoder codec.Decoder) error

func (*PRepStatusSnapshot) RLPEncodeFields added in v0.9.7

func (ps *PRepStatusSnapshot) RLPEncodeFields(encoder codec.Encoder) error

func (*PRepStatusSnapshot) Status added in v0.9.7

func (ps *PRepStatusSnapshot) Status() Status

func (*PRepStatusSnapshot) String added in v0.9.7

func (ps *PRepStatusSnapshot) String() string

func (*PRepStatusSnapshot) ToJSON added in v0.9.7

func (ps *PRepStatusSnapshot) ToJSON(blockHeight int64, bondRequirement int64) map[string]interface{}

func (*PRepStatusSnapshot) VFail added in v0.9.7

func (ps *PRepStatusSnapshot) VFail() int64

func (*PRepStatusSnapshot) VTotal added in v0.9.7

func (ps *PRepStatusSnapshot) VTotal() int64

func (*PRepStatusSnapshot) Version added in v0.9.7

func (ps *PRepStatusSnapshot) Version() int

type PRepStatusState added in v0.9.7

type PRepStatusState struct {
	// contains filtered or unexported fields
}

func NewPRepStatus

func NewPRepStatus() *PRepStatusState

func NewPRepStatusWithSnapshot added in v0.9.7

func NewPRepStatusWithSnapshot(snapshot *PRepStatusSnapshot) *PRepStatusState

func (*PRepStatusState) Bonded added in v0.9.7

func (ps *PRepStatusState) Bonded() *big.Int

func (*PRepStatusState) ChangeGrade added in v0.9.7

func (ps *PRepStatusState) ChangeGrade(newGrade Grade, blockHeight int64, penaltyMask int) error

func (*PRepStatusState) Clear added in v0.9.7

func (ps *PRepStatusState) Clear()

func (*PRepStatusState) Delegated added in v0.9.7

func (ps *PRepStatusState) Delegated() *big.Int

func (*PRepStatusState) Format added in v0.9.7

func (ps *PRepStatusState) Format(f fmt.State, c rune)

func (*PRepStatusState) GetBondedDelegation added in v0.9.7

func (ps *PRepStatusState) GetBondedDelegation(bondRequirement int64) *big.Int

GetBondedDelegation return amount of bonded delegation Bonded delegation formula totalVoted = bond + delegation bondRatio = bond / totalVoted * 100 bondedDelegation = totalVoted * (bondRatio / bondRequirement)

= bond * 100 / bondRequirement

if bondedDelegation > totalVoted

bondedDelegation = totalVoted

func (*PRepStatusState) GetSnapshot added in v0.9.7

func (ps *PRepStatusState) GetSnapshot() *PRepStatusSnapshot

func (*PRepStatusState) GetStatsInJSON added in v0.9.7

func (ps *PRepStatusState) GetStatsInJSON(blockHeight int64) map[string]interface{}

func (*PRepStatusState) GetVFail added in v0.9.7

func (ps *PRepStatusState) GetVFail(blockHeight int64) int64

GetVFail returns the calculated number of validation failures

func (*PRepStatusState) GetVFailCont added in v0.9.7

func (ps *PRepStatusState) GetVFailCont(blockHeight int64) int64

GetVFailCont returns the number of consecutive validation failures

func (*PRepStatusState) GetVPenaltyCount added in v0.9.7

func (ps *PRepStatusState) GetVPenaltyCount() int

func (*PRepStatusState) GetVTotal added in v0.9.7

func (ps *PRepStatusState) GetVTotal(blockHeight int64) int64

GetVTotal returns the calculated number of validation

func (*PRepStatusState) GetVoted added in v0.9.7

func (ps *PRepStatusState) GetVoted() *big.Int

func (*PRepStatusState) Grade added in v0.9.7

func (ps *PRepStatusState) Grade() Grade

func (*PRepStatusState) ImposePenalty added in v0.9.7

func (ps *PRepStatusState) ImposePenalty(blockHeight int64) error

func (*PRepStatusState) IsActive added in v0.9.7

func (ps *PRepStatusState) IsActive() bool

func (*PRepStatusState) IsAlreadyPenalized added in v0.9.7

func (ps *PRepStatusState) IsAlreadyPenalized() bool

IsAlreadyPenalized returns true if this PRep got penalized during this term

func (*PRepStatusState) IsEmpty added in v0.9.7

func (ps *PRepStatusState) IsEmpty() bool

func (*PRepStatusState) LastHeight added in v0.9.7

func (ps *PRepStatusState) LastHeight() int64

func (*PRepStatusState) LastState added in v0.9.7

func (ps *PRepStatusState) LastState() ValidationState

func (*PRepStatusState) Reset added in v0.9.7

func (*PRepStatusState) ResetVFailContOffset added in v0.9.7

func (ps *PRepStatusState) ResetVFailContOffset()

func (*PRepStatusState) SetBonded added in v0.9.7

func (ps *PRepStatusState) SetBonded(v *big.Int)

func (*PRepStatusState) SetDelegated added in v0.9.7

func (ps *PRepStatusState) SetDelegated(delegated *big.Int)

func (*PRepStatusState) SetGrade added in v0.9.7

func (ps *PRepStatusState) SetGrade(g Grade)

func (*PRepStatusState) SetStatus added in v0.9.7

func (ps *PRepStatusState) SetStatus(s Status)

func (*PRepStatusState) SetVFail added in v0.9.7

func (ps *PRepStatusState) SetVFail(f int64)

func (*PRepStatusState) SetVTotal added in v0.9.7

func (ps *PRepStatusState) SetVTotal(t int64)

func (*PRepStatusState) Status added in v0.9.7

func (ps *PRepStatusState) Status() Status

func (*PRepStatusState) String added in v0.9.7

func (ps *PRepStatusState) String() string

func (*PRepStatusState) ToJSON added in v0.9.7

func (ps *PRepStatusState) ToJSON(blockHeight int64, bondRequirement int64) map[string]interface{}

func (*PRepStatusState) UpdateBlockVoteStats added in v0.9.7

func (ps *PRepStatusState) UpdateBlockVoteStats(blockHeight int64, voted bool) error

UpdateBlockVoteStats updates Penalty-related info based on ConsensusInfo

func (*PRepStatusState) VFail added in v0.9.7

func (ps *PRepStatusState) VFail() int64

func (*PRepStatusState) VTotal added in v0.9.7

func (ps *PRepStatusState) VTotal() int64

type PReps added in v0.9.7

type PReps struct {
	// contains filtered or unexported fields
}

func (*PReps) GetPRepByIndex added in v0.9.7

func (p *PReps) GetPRepByIndex(i int) *PRep

func (*PReps) GetPRepSize added in v0.9.7

func (p *PReps) GetPRepSize(grade Grade) int

func (*PReps) GetTotalBondedDelegation added in v0.9.7

func (p *PReps) GetTotalBondedDelegation(br int64) *big.Int

func (*PReps) ResetAllStatus added in v0.9.7

func (p *PReps) ResetAllStatus(blockHeight int64, mainPRepCount, subPRepCount, penaltyMask int) error

ResetAllStatus initializes all prep status including grade on term end

func (*PReps) Size added in v0.9.7

func (p *PReps) Size() int

func (*PReps) TotalBonded added in v0.9.7

func (p *PReps) TotalBonded() *big.Int

func (*PReps) TotalDelegated added in v0.9.7

func (p *PReps) TotalDelegated() *big.Int

type RegInfo added in v0.9.7

type RegInfo struct {
	// contains filtered or unexported fields
}

func NewRegInfo added in v0.9.7

func NewRegInfo(city, country, details, email, name, p2pEndpoint, website string, node module.Address) *RegInfo

func (*RegInfo) Clear added in v0.9.7

func (r *RegInfo) Clear()

func (*RegInfo) Clone added in v0.9.7

func (r *RegInfo) Clone() *RegInfo

func (*RegInfo) Equal added in v0.9.7

func (r *RegInfo) Equal(other *RegInfo) bool

func (*RegInfo) Format added in v0.9.7

func (r *RegInfo) Format(f fmt.State, c rune)

func (*RegInfo) IsEmpty added in v0.9.7

func (r *RegInfo) IsEmpty() bool

func (*RegInfo) Node added in v0.9.7

func (r *RegInfo) Node() module.Address

func (*RegInfo) Set added in v0.9.7

func (r *RegInfo) Set(other *RegInfo)

func (*RegInfo) SetNode added in v0.9.7

func (r *RegInfo) SetNode(node module.Address)

func (*RegInfo) String added in v0.9.7

func (r *RegInfo) String() string

func (*RegInfo) Update added in v0.9.7

func (r *RegInfo) Update(other *RegInfo)

func (*RegInfo) Validate added in v0.9.7

func (r *RegInfo) Validate(revision int) error

type RewardCalcInfo

type RewardCalcInfo struct {
	icobject.NoDatabase
	// contains filtered or unexported fields
}

func NewRewardCalcInfo

func NewRewardCalcInfo() *RewardCalcInfo

func ToRewardCalcInfo

func ToRewardCalcInfo(object trie.Object) *RewardCalcInfo

func (*RewardCalcInfo) Clone

func (rc *RewardCalcInfo) Clone() *RewardCalcInfo

func (*RewardCalcInfo) Equal

func (rc *RewardCalcInfo) Equal(o icobject.Impl) bool

func (*RewardCalcInfo) Format added in v0.9.7

func (rc *RewardCalcInfo) Format(f fmt.State, c rune)

func (*RewardCalcInfo) GetResultInJSON added in v0.9.7

func (rc *RewardCalcInfo) GetResultInJSON() map[string]interface{}

func (*RewardCalcInfo) PrevCalcReward

func (rc *RewardCalcInfo) PrevCalcReward() *big.Int

func (*RewardCalcInfo) PrevHash added in v0.9.7

func (rc *RewardCalcInfo) PrevHash() []byte

func (*RewardCalcInfo) PrevHeight

func (rc *RewardCalcInfo) PrevHeight() int64

func (*RewardCalcInfo) PrevPeriod added in v0.9.7

func (rc *RewardCalcInfo) PrevPeriod() int64

func (*RewardCalcInfo) RLPDecodeFields

func (rc *RewardCalcInfo) RLPDecodeFields(decoder codec.Decoder) error

func (*RewardCalcInfo) RLPEncodeFields

func (rc *RewardCalcInfo) RLPEncodeFields(encoder codec.Encoder) error

func (*RewardCalcInfo) SetPrevCalcReward added in v0.9.7

func (rc *RewardCalcInfo) SetPrevCalcReward(v *big.Int)

func (*RewardCalcInfo) SetPrevHash added in v0.9.7

func (rc *RewardCalcInfo) SetPrevHash(hash []byte)

func (*RewardCalcInfo) SetPrevHeight added in v0.9.7

func (rc *RewardCalcInfo) SetPrevHeight(height int64)

func (*RewardCalcInfo) SetStartHeight added in v0.9.7

func (rc *RewardCalcInfo) SetStartHeight(height int64)

func (*RewardCalcInfo) StartHeight

func (rc *RewardCalcInfo) StartHeight() int64

func (*RewardCalcInfo) Update added in v0.9.7

func (rc *RewardCalcInfo) Update(blockHeight int64, reward *big.Int, hash []byte)

func (*RewardCalcInfo) Version

func (rc *RewardCalcInfo) Version() int

type RewardFund

type RewardFund struct {
	Iglobal *big.Int
	Iprep   *big.Int
	Icps    *big.Int
	Irelay  *big.Int
	Ivoter  *big.Int
}

func NewRewardFund

func NewRewardFund() *RewardFund

func (*RewardFund) Bytes

func (rf *RewardFund) Bytes() []byte

func (*RewardFund) Clone

func (rf *RewardFund) Clone() *RewardFund

func (*RewardFund) Equal

func (rf *RewardFund) Equal(rc2 *RewardFund) bool

func (*RewardFund) Format added in v0.9.7

func (rf *RewardFund) Format(f fmt.State, c rune)

func (*RewardFund) GetPRepFund

func (rf *RewardFund) GetPRepFund() *big.Int

func (*RewardFund) GetVoterFund

func (rf *RewardFund) GetVoterFund() *big.Int

func (*RewardFund) IsEmpty

func (rf *RewardFund) IsEmpty() bool

func (*RewardFund) RLPDecodeSelf

func (rf *RewardFund) RLPDecodeSelf(d codec.Decoder) error

func (*RewardFund) RLPEncodeSelf

func (rf *RewardFund) RLPEncodeSelf(e codec.Encoder) error

func (*RewardFund) ToJSON

func (rf *RewardFund) ToJSON() map[string]interface{}

type Snapshot

type Snapshot struct {
	// contains filtered or unexported fields
}

func NewSnapshot

func NewSnapshot(dbase db.Database, h []byte) *Snapshot

func NewSnapshotWithBuilder

func NewSnapshotWithBuilder(builder merkle.Builder, h []byte) *Snapshot

func (*Snapshot) Bytes

func (ss *Snapshot) Bytes() []byte

func (*Snapshot) Flush

func (ss *Snapshot) Flush() error

func (*Snapshot) GetRewardCalcInfo

func (ss *Snapshot) GetRewardCalcInfo() (*RewardCalcInfo, error)

func (*Snapshot) GetValue

func (ss *Snapshot) GetValue(key []byte) ([]byte, error)

func (*Snapshot) NewState

func (ss *Snapshot) NewState(readonly bool) *State

type State

type State struct {
	// contains filtered or unexported fields
}

func NewStateFromSnapshot

func NewStateFromSnapshot(ss *Snapshot, readonly bool, logger log.Logger) *State

func NewStateFromTrie

func NewStateFromTrie(t trie.MutableForObject, readonly bool, logger log.Logger) *State

func (*State) CheckConsistentValidationPenalty added in v0.9.7

func (s *State) CheckConsistentValidationPenalty(ps *PRepStatusState) bool

func (*State) CheckValidationPenalty added in v0.9.7

func (s *State) CheckValidationPenalty(ps *PRepStatusState, blockHeight int64) bool

func (*State) ClearCache added in v0.9.7

func (s *State) ClearCache()

func (*State) DisablePRep added in v0.9.7

func (s *State) DisablePRep(owner module.Address, status Status, blockHeight int64) error

func (*State) Flush

func (s *State) Flush() error

func (*State) GetAccountSnapshot added in v0.9.7

func (s *State) GetAccountSnapshot(addr module.Address) *AccountSnapshot

func (*State) GetAccountState added in v0.9.7

func (s *State) GetAccountState(addr module.Address) *AccountState

func (*State) GetActivePRepSize

func (s *State) GetActivePRepSize() int

func (*State) GetBondRequirement

func (s *State) GetBondRequirement() int64

func (*State) GetConsistentValidationPenaltyCondition

func (s *State) GetConsistentValidationPenaltyCondition() int64

func (*State) GetConsistentValidationPenaltyMask

func (s *State) GetConsistentValidationPenaltyMask() int

func (*State) GetConsistentValidationPenaltySlashRatio

func (s *State) GetConsistentValidationPenaltySlashRatio() int

func (*State) GetDelegationSlotMax added in v0.9.7

func (s *State) GetDelegationSlotMax() int

func (*State) GetIISSVersion

func (s *State) GetIISSVersion() int

func (*State) GetIRep

func (s *State) GetIRep() *big.Int

func (*State) GetIssue

func (s *State) GetIssue() (*Issue, error)

func (*State) GetLockMaxMultiplier

func (s *State) GetLockMaxMultiplier() *big.Int

func (*State) GetLockMinMultiplier

func (s *State) GetLockMinMultiplier() *big.Int

func (*State) GetMainPRepCount

func (s *State) GetMainPRepCount() int64

MainPrepCount

func (*State) GetNodeByOwner added in v0.9.7

func (s *State) GetNodeByOwner(owner module.Address) module.Address

func (*State) GetOrderedPReps added in v0.9.7

func (s *State) GetOrderedPReps() (*PReps, error)

func (*State) GetOwnerByNode

func (s *State) GetOwnerByNode(node module.Address) module.Address

func (*State) GetPRepBaseByNode added in v0.9.7

func (s *State) GetPRepBaseByNode(node module.Address) *PRepBase

func (*State) GetPRepBaseByOwner added in v0.9.7

func (s *State) GetPRepBaseByOwner(owner module.Address, createIfNotExist bool) (*PRepBase, bool)

func (*State) GetPRepByOwner added in v0.9.7

func (s *State) GetPRepByOwner(owner module.Address) *PRep

func (*State) GetPRepCount

func (s *State) GetPRepCount() int64

GetPRepCount returns the number of mainPReps and subPReps based on ICON Network Value

func (*State) GetPRepManagerInJSON added in v0.9.7

func (s *State) GetPRepManagerInJSON() map[string]interface{}

func (*State) GetPRepStatsInJSON added in v0.9.7

func (s *State) GetPRepStatsInJSON(blockHeight int64) (map[string]interface{}, error)

func (*State) GetPRepStatusByOwner added in v0.9.7

func (s *State) GetPRepStatusByOwner(owner module.Address, createIfNotExist bool) (*PRepStatusState, bool)

func (*State) GetPRepStatuses added in v0.9.7

func (s *State) GetPRepStatuses() ([]*PRepStatusState, error)

GetPRepStatuses returns PRepStatus list ordered by bonded delegation

func (*State) GetPRepsInJSON added in v0.9.7

func (s *State) GetPRepsInJSON(blockHeight int64, start, end int) (map[string]interface{}, error)

func (*State) GetRRep

func (s *State) GetRRep() *big.Int

func (*State) GetRewardCalcInfo

func (s *State) GetRewardCalcInfo() (*RewardCalcInfo, error)

func (*State) GetRewardFund

func (s *State) GetRewardFund() *RewardFund

func (*State) GetSnapshot

func (s *State) GetSnapshot() *Snapshot

func (*State) GetSubPRepCount

func (s *State) GetSubPRepCount() int64

SubPrepCount

func (*State) GetTerm

func (s *State) GetTerm() *Term

func (*State) GetTermPeriod

func (s *State) GetTermPeriod() int64

func (*State) GetTotalBond added in v0.9.7

func (s *State) GetTotalBond() *big.Int

func (*State) GetTotalDelegation added in v0.9.7

func (s *State) GetTotalDelegation() *big.Int

func (*State) GetTotalStake

func (s *State) GetTotalStake() *big.Int

func (*State) GetUnbondingMax

func (s *State) GetUnbondingMax() int64

func (*State) GetUnbondingPeriodMultiplier

func (s *State) GetUnbondingPeriodMultiplier() int64

func (*State) GetUnbondingTimerSnapshot added in v0.9.7

func (s *State) GetUnbondingTimerSnapshot(height int64) *TimerSnapshot

func (*State) GetUnbondingTimerState added in v0.9.7

func (s *State) GetUnbondingTimerState(height int64) *TimerState

func (*State) GetUnstakeSlotMax

func (s *State) GetUnstakeSlotMax() int64

func (*State) GetUnstakingTimerSnapshot added in v0.9.7

func (s *State) GetUnstakingTimerSnapshot(height int64) *TimerSnapshot

func (*State) GetUnstakingTimerState added in v0.9.7

func (s *State) GetUnstakingTimerState(height int64) *TimerState

func (*State) GetValidationPenaltyCondition

func (s *State) GetValidationPenaltyCondition() int64

func (*State) GetValidatorsSnapshot added in v0.9.7

func (s *State) GetValidatorsSnapshot() *ValidatorsSnapshot

func (*State) ImposePenalty added in v0.9.7

func (s *State) ImposePenalty(owner module.Address, ps *PRepStatusState, blockHeight int64) error

ImposePenalty changes grade change and set LastState to icstate.None

func (*State) IsDecentralizationConditionMet added in v0.9.7

func (s *State) IsDecentralizationConditionMet(revision int, totalSupply *big.Int, preps *PReps) bool

func (*State) RegisterPRep added in v0.9.7

func (s *State) RegisterPRep(owner module.Address, ri *RegInfo, irep *big.Int) error

func (*State) RemoveActivePRep

func (s *State) RemoveActivePRep(owner module.Address) error

func (*State) Reset

func (s *State) Reset(ss *Snapshot) error

func (*State) SetBondRequirement

func (s *State) SetBondRequirement(value int64) error

func (*State) SetConsistentValidationPenaltyCondition

func (s *State) SetConsistentValidationPenaltyCondition(value int64) error

func (*State) SetConsistentValidationPenaltyMask

func (s *State) SetConsistentValidationPenaltyMask(value int64) error

func (*State) SetConsistentValidationPenaltySlashRatio

func (s *State) SetConsistentValidationPenaltySlashRatio(value int) error

func (*State) SetDelegationSlotMax added in v0.9.7

func (s *State) SetDelegationSlotMax(value int64) error

func (*State) SetIISSVersion

func (s *State) SetIISSVersion(value int) error

func (*State) SetIRep

func (s *State) SetIRep(value *big.Int) error

func (*State) SetIssue

func (s *State) SetIssue(issue *Issue) error

func (*State) SetLockVariables

func (s *State) SetLockVariables(lockMin *big.Int, lockMax *big.Int) error

func (*State) SetMainPRepCount

func (s *State) SetMainPRepCount(value int64) error

func (*State) SetPRep added in v0.9.7

func (s *State) SetPRep(blockHeight int64, owner module.Address, ri *RegInfo) error

func (*State) SetRRep

func (s *State) SetRRep(value *big.Int) error

func (*State) SetRewardCalcInfo

func (s *State) SetRewardCalcInfo(rc *RewardCalcInfo) error

func (*State) SetRewardFund

func (s *State) SetRewardFund(rc *RewardFund) error

func (*State) SetSubPRepCount

func (s *State) SetSubPRepCount(value int64) error

func (*State) SetTerm

func (s *State) SetTerm(term *Term) error

func (*State) SetTermPeriod

func (s *State) SetTermPeriod(value int64) error

func (*State) SetTotalBond added in v0.9.7

func (s *State) SetTotalBond(value *big.Int) error

func (*State) SetTotalDelegation added in v0.9.7

func (s *State) SetTotalDelegation(value *big.Int) error

func (*State) SetTotalStake

func (s *State) SetTotalStake(value *big.Int) error

func (*State) SetUnbondingMax

func (s *State) SetUnbondingMax(value int64) error

func (*State) SetUnbondingPeriodMultiplier

func (s *State) SetUnbondingPeriodMultiplier(value int64) error

func (*State) SetUnstakeSlotMax

func (s *State) SetUnstakeSlotMax(v int64) error

func (*State) SetValidationPenaltyCondition

func (s *State) SetValidationPenaltyCondition(value int) error

func (*State) SetValidatorsSnapshot added in v0.9.7

func (s *State) SetValidatorsSnapshot(vss *ValidatorsSnapshot) error

func (*State) ShiftVPenaltyMaskByNode added in v0.9.7

func (s *State) ShiftVPenaltyMaskByNode(node module.Address) error

func (*State) Slash added in v0.9.7

func (s *State) Slash(owner module.Address, amount *big.Int) error

Slash handles to reduce PRepStatus.bonded and PRepManager.totalBonded Do not change PRep grade here Caution: amount should not include the amount from unbonded

func (*State) UpdateBlockVoteStats added in v0.9.7

func (s *State) UpdateBlockVoteStats(owner module.Address, voted bool, blockHeight int64) error

type StateAndSnapshot

type StateAndSnapshot struct {
	// contains filtered or unexported fields
}

func (*StateAndSnapshot) IsReadonly

func (s *StateAndSnapshot) IsReadonly() bool

type Status

type Status int
const (
	Active Status = iota
	Unregistered
	Disqualified
	NotReady
)

func (Status) String

func (s Status) String() string

type Term

type Term struct {
	icobject.NoDatabase
	StateAndSnapshot
	// contains filtered or unexported fields
}

func GenesisTerm

func GenesisTerm(
	state *State,
	startHeight int64,
	revision int,
) *Term

func NewNextTerm

func NewNextTerm(state *State, totalSupply *big.Int, revision int) *Term

func NewTerm added in v0.9.7

func NewTerm(startHeight, termPeriod int64) *Term

func NewTermWithTag added in v0.9.7

func NewTermWithTag(_ icobject.Tag) *Term

func ToTerm

func ToTerm(object trie.Object) *Term

func (*Term) BondRequirement

func (term *Term) BondRequirement() int

func (*Term) Clone

func (term *Term) Clone() *Term

func (*Term) Equal

func (term *Term) Equal(o icobject.Impl) bool

func (*Term) Format added in v0.9.7

func (term *Term) Format(f fmt.State, c rune)

func (*Term) GetElectedPRepCount

func (term *Term) GetElectedPRepCount() int

func (*Term) GetEndHeight added in v0.9.7

func (term *Term) GetEndHeight() int64

func (*Term) GetFlag

func (term *Term) GetFlag() TermFlag

func (*Term) GetIISSVersion

func (term *Term) GetIISSVersion() int

func (*Term) GetPRepSnapshotByIndex

func (term *Term) GetPRepSnapshotByIndex(index int) *PRepSnapshot

func (*Term) GetPRepSnapshotByOwner

func (term *Term) GetPRepSnapshotByOwner(owner module.Address) *PRepSnapshot

func (*Term) GetPRepSnapshotCount

func (term *Term) GetPRepSnapshotCount() int

func (*Term) GetSnapshot

func (term *Term) GetSnapshot(store *icobject.ObjectStoreState) error

func (*Term) GetVoteStartHeight added in v0.9.7

func (term *Term) GetVoteStartHeight() int64

func (*Term) Icps

func (term *Term) Icps() *big.Int

func (*Term) Iglobal

func (term *Term) Iglobal() *big.Int

func (*Term) Iprep

func (term *Term) Iprep() *big.Int

func (*Term) Irelay

func (term *Term) Irelay() *big.Int

func (*Term) Irep

func (term *Term) Irep() *big.Int

func (*Term) IsAnyFlagOn

func (term *Term) IsAnyFlagOn(flags TermFlag) bool

func (*Term) IsDecentralized

func (term *Term) IsDecentralized() bool

func (*Term) IsFirstBlockOnDecentralized added in v0.9.7

func (term *Term) IsFirstBlockOnDecentralized(blockHeight int64) bool

func (*Term) IsUpdated

func (term *Term) IsUpdated() bool

func (*Term) Ivoter

func (term *Term) Ivoter() *big.Int

func (*Term) MainPRepCount

func (term *Term) MainPRepCount() int

func (*Term) Period

func (term *Term) Period() int64

func (*Term) RLPDecodeFields

func (term *Term) RLPDecodeFields(decoder codec.Decoder) error

func (*Term) RLPEncodeFields

func (term *Term) RLPEncodeFields(encoder codec.Encoder) error

func (*Term) ResetFlag

func (term *Term) ResetFlag()

func (*Term) ResetSequence

func (term *Term) ResetSequence()

func (*Term) Revision

func (term *Term) Revision() int

func (*Term) RewardFund

func (term *Term) RewardFund() *RewardFund

func (*Term) Rrep

func (term *Term) Rrep() *big.Int

func (*Term) Sequence

func (term *Term) Sequence() int

func (*Term) Set

func (term *Term) Set(other *Term)

func (*Term) SetFlag

func (term *Term) SetFlag(flags TermFlag, on bool)

func (*Term) SetIrep

func (term *Term) SetIrep(irep *big.Int)

func (*Term) SetIsDecentralized added in v0.9.7

func (term *Term) SetIsDecentralized(value bool)

func (*Term) SetMainPRepCount

func (term *Term) SetMainPRepCount(mainPRepCount int)

func (*Term) SetPRepSnapshots

func (term *Term) SetPRepSnapshots(prepSnapshots *PRepSnapshots)

func (*Term) SetRevision added in v0.9.7

func (term *Term) SetRevision(revision int)

func (*Term) SetRrep

func (term *Term) SetRrep(rrep *big.Int)

func (*Term) StartHeight

func (term *Term) StartHeight() int64

func (*Term) String

func (term *Term) String() string

func (*Term) ToJSON

func (term *Term) ToJSON() map[string]interface{}

func (*Term) TotalBondedDelegation added in v0.9.7

func (term *Term) TotalBondedDelegation() *big.Int

func (*Term) TotalDelegated

func (term *Term) TotalDelegated() *big.Int

func (*Term) TotalSupply

func (term *Term) TotalSupply() *big.Int

func (*Term) Version

func (term *Term) Version() int

type TermFlag

type TermFlag int
const (
	FlagNextTerm TermFlag = 1 << iota
	FlagValidator

	FlagNone TermFlag = 0
	FlagAll  TermFlag = 0xFFFFFFFF
)

type TimerCache

type TimerCache struct {
	// contains filtered or unexported fields
}

func (*TimerCache) Clear

func (c *TimerCache) Clear()

func (*TimerCache) Flush

func (c *TimerCache) Flush()

func (*TimerCache) Get

func (c *TimerCache) Get(height int64) *TimerState

func (*TimerCache) GetSnapshot added in v0.9.7

func (c *TimerCache) GetSnapshot(height int64) *TimerSnapshot

func (*TimerCache) Reset

func (c *TimerCache) Reset()

type TimerIterator added in v0.9.7

type TimerIterator interface {
	Get() (module.Address, bool)
	Next()
	Has() bool
}

type TimerJobInfo

type TimerJobInfo struct {
	Type   JobType
	Height int64
}

type TimerSnapshot added in v0.9.7

type TimerSnapshot struct {
	icobject.NoDatabase
	// contains filtered or unexported fields
}

func ToTimer

func ToTimer(object trie.Object) *TimerSnapshot

func (TimerSnapshot) Contains added in v0.9.7

func (t TimerSnapshot) Contains(addr module.Address) bool

func (*TimerSnapshot) Equal added in v0.9.7

func (t *TimerSnapshot) Equal(object icobject.Impl) bool

func (TimerSnapshot) IndexOf added in v0.9.7

func (t TimerSnapshot) IndexOf(addr module.Address) int

func (TimerSnapshot) IsEmpty added in v0.9.7

func (t TimerSnapshot) IsEmpty() bool

func (TimerSnapshot) Iterator added in v0.9.7

func (t TimerSnapshot) Iterator() TimerIterator

func (*TimerSnapshot) RLPDecodeFields added in v0.9.7

func (t *TimerSnapshot) RLPDecodeFields(decoder codec.Decoder) error

func (*TimerSnapshot) RLPEncodeFields added in v0.9.7

func (t *TimerSnapshot) RLPEncodeFields(encoder codec.Encoder) error

func (*TimerSnapshot) Version added in v0.9.7

func (t *TimerSnapshot) Version() int

type TimerState added in v0.9.7

type TimerState struct {
	// contains filtered or unexported fields
}

func NewTimerWithSnapshot added in v0.9.7

func NewTimerWithSnapshot(tss *TimerSnapshot) *TimerState

func (*TimerState) Add added in v0.9.7

func (t *TimerState) Add(address module.Address)

func (TimerState) Contains added in v0.9.7

func (t TimerState) Contains(addr module.Address) bool

func (*TimerState) Delete added in v0.9.7

func (t *TimerState) Delete(address module.Address) error

func (*TimerState) GetSnapshot added in v0.9.7

func (t *TimerState) GetSnapshot() *TimerSnapshot

func (TimerState) IndexOf added in v0.9.7

func (t TimerState) IndexOf(addr module.Address) int

func (TimerState) IsEmpty added in v0.9.7

func (t TimerState) IsEmpty() bool

func (TimerState) Iterator added in v0.9.7

func (t TimerState) Iterator() TimerIterator

func (*TimerState) Reset added in v0.9.7

func (t *TimerState) Reset(ts *TimerSnapshot) *TimerState

type Unbond

type Unbond struct {
	// contains filtered or unexported fields
}

func NewUnbond added in v0.9.7

func NewUnbond(a *common.Address, v *big.Int, e int64) *Unbond

func (*Unbond) Address

func (u *Unbond) Address() *common.Address

func (*Unbond) Clone

func (u *Unbond) Clone() *Unbond

func (*Unbond) Equal

func (u *Unbond) Equal(o *Unbond) bool

func (*Unbond) Expire

func (u *Unbond) Expire() int64

func (*Unbond) Format added in v0.9.7

func (u *Unbond) Format(f fmt.State, c rune)

func (*Unbond) RLPDecodeSelf added in v0.9.7

func (u *Unbond) RLPDecodeSelf(decoder codec.Decoder) error

func (*Unbond) RLPEncodeSelf added in v0.9.7

func (u *Unbond) RLPEncodeSelf(encoder codec.Encoder) error

func (*Unbond) SetExpire added in v0.9.7

func (u *Unbond) SetExpire(e int64)

func (*Unbond) SetValue added in v0.9.7

func (u *Unbond) SetValue(v *big.Int)

func (*Unbond) Slash

func (u *Unbond) Slash(ratio int) *big.Int

func (*Unbond) ToJSON

func (u *Unbond) ToJSON() map[string]interface{}

func (*Unbond) Value

func (u *Unbond) Value() *big.Int

type Unbonds

type Unbonds []*Unbond

func (*Unbonds) Add

func (ul *Unbonds) Add(address module.Address, value *big.Int, expireHeight int64)

func (Unbonds) Clone

func (ul Unbonds) Clone() Unbonds

func (*Unbonds) Delete

func (ul *Unbonds) Delete(i int) error

func (*Unbonds) DeleteByAddress

func (ul *Unbonds) DeleteByAddress(address module.Address) error

func (Unbonds) Equal

func (ul Unbonds) Equal(ul2 Unbonds) bool

func (Unbonds) ExpireRefCount

func (ul Unbonds) ExpireRefCount() map[int64]int

func (Unbonds) GetUnbondAmount

func (ul Unbonds) GetUnbondAmount() *big.Int

func (Unbonds) GetUnbondByAddress

func (ul Unbonds) GetUnbondByAddress(address module.Address) (*Unbond, int)

func (Unbonds) IsEmpty added in v0.9.7

func (ul Unbonds) IsEmpty() bool

func (Unbonds) MapByAddr

func (ul Unbonds) MapByAddr() map[string]*Unbond

func (*Unbonds) Slash

func (ul *Unbonds) Slash(address module.Address, ratio int) (Unbonds, *big.Int, int64)

func (Unbonds) ToJSON

func (ul Unbonds) ToJSON(_ module.JSONVersion) []interface{}

type Unstake

type Unstake struct {
	// contains filtered or unexported fields
}

func NewUnstake added in v0.9.7

func NewUnstake(v *big.Int, e int64) *Unstake

func (*Unstake) Clone

func (u *Unstake) Clone() *Unstake

func (*Unstake) Equal

func (u *Unstake) Equal(u2 *Unstake) bool

func (*Unstake) Expire added in v0.9.7

func (u *Unstake) Expire() int64

func (Unstake) Format

func (u Unstake) Format(f fmt.State, c rune)

func (*Unstake) RLPDecodeSelf added in v0.9.7

func (u *Unstake) RLPDecodeSelf(decoder codec.Decoder) error

func (*Unstake) RLPEncodeSelf added in v0.9.7

func (u *Unstake) RLPEncodeSelf(encoder codec.Encoder) error

func (Unstake) String

func (u Unstake) String() string

func (Unstake) ToJSON

func (u Unstake) ToJSON(_ module.JSONVersion, blockHeight int64) interface{}

func (*Unstake) Value added in v0.9.7

func (u *Unstake) Value() *big.Int

type Unstakes

type Unstakes []*Unstake

func (Unstakes) Clone

func (us Unstakes) Clone() Unstakes

func (Unstakes) Equal

func (us Unstakes) Equal(us2 Unstakes) bool

func (Unstakes) GetUnstakeAmount

func (us Unstakes) GetUnstakeAmount() *big.Int

GetUnstakeAmount return unstake Value

func (Unstakes) IsEmpty added in v0.9.7

func (us Unstakes) IsEmpty() bool

func (Unstakes) ToJSON

func (us Unstakes) ToJSON(v module.JSONVersion, blockHeight int64) []interface{}

type ValidationState

type ValidationState int
const (
	None ValidationState = iota
	Ready
	Success
	Failure
)

func (ValidationState) String

func (vs ValidationState) String() string

type ValidatorsSnapshot added in v0.9.7

type ValidatorsSnapshot struct {
	icobject.NoDatabase
	// contains filtered or unexported fields
}

func NewValidatorsSnapshotWithPRepSnapshot added in v0.9.7

func NewValidatorsSnapshotWithPRepSnapshot(
	prepSnapshot Arrayable, ownerToNodeMapper OwnerToNodeMappable, size int) *ValidatorsSnapshot

func ToValidators added in v0.9.7

func ToValidators(object trie.Object) *ValidatorsSnapshot

func (*ValidatorsSnapshot) Equal added in v0.9.7

func (vss *ValidatorsSnapshot) Equal(object icobject.Impl) bool

func (*ValidatorsSnapshot) Format added in v0.9.7

func (vd *ValidatorsSnapshot) Format(f fmt.State, verb rune)

func (*ValidatorsSnapshot) Get added in v0.9.7

func (vd *ValidatorsSnapshot) Get(i int) module.Address

func (*ValidatorsSnapshot) IndexOf added in v0.9.7

func (vd *ValidatorsSnapshot) IndexOf(node module.Address) int

func (*ValidatorsSnapshot) IsUpdated added in v0.9.7

func (vss *ValidatorsSnapshot) IsUpdated(blockHeight int64) bool

IsUpdated returns true if validatorList is updated at this block

func (*ValidatorsSnapshot) Len added in v0.9.7

func (vd *ValidatorsSnapshot) Len() int

func (*ValidatorsSnapshot) NewValidatorSet added in v0.9.7

func (vd *ValidatorsSnapshot) NewValidatorSet() []module.Validator

func (*ValidatorsSnapshot) NextPRepSnapshotIndex added in v0.9.7

func (vd *ValidatorsSnapshot) NextPRepSnapshotIndex() int

func (*ValidatorsSnapshot) RLPDecodeFields added in v0.9.7

func (vss *ValidatorsSnapshot) RLPDecodeFields(decoder codec.Decoder) error

func (*ValidatorsSnapshot) RLPEncodeFields added in v0.9.7

func (vss *ValidatorsSnapshot) RLPEncodeFields(encoder codec.Encoder) error

func (*ValidatorsSnapshot) String added in v0.9.7

func (vd *ValidatorsSnapshot) String() string

func (*ValidatorsSnapshot) Version added in v0.9.7

func (vss *ValidatorsSnapshot) Version() int

type ValidatorsState added in v0.9.7

type ValidatorsState struct {
	// contains filtered or unexported fields
}

func NewValidatorsStateWithSnapshot added in v0.9.7

func NewValidatorsStateWithSnapshot(vss *ValidatorsSnapshot) *ValidatorsState

func (*ValidatorsState) Format added in v0.9.7

func (vd *ValidatorsState) Format(f fmt.State, verb rune)

func (*ValidatorsState) Get added in v0.9.7

func (vd *ValidatorsState) Get(i int) module.Address

func (*ValidatorsState) GetSnapshot added in v0.9.7

func (vs *ValidatorsState) GetSnapshot() *ValidatorsSnapshot

func (*ValidatorsState) IndexOf added in v0.9.7

func (vd *ValidatorsState) IndexOf(node module.Address) int

func (*ValidatorsState) IsDirty added in v0.9.7

func (vs *ValidatorsState) IsDirty() bool

func (*ValidatorsState) Len added in v0.9.7

func (vd *ValidatorsState) Len() int

func (*ValidatorsState) NewValidatorSet added in v0.9.7

func (vd *ValidatorsState) NewValidatorSet() []module.Validator

func (*ValidatorsState) NextPRepSnapshotIndex added in v0.9.7

func (vd *ValidatorsState) NextPRepSnapshotIndex() int

func (*ValidatorsState) Reset added in v0.9.7

func (vs *ValidatorsState) Reset(vss *ValidatorsSnapshot)

func (*ValidatorsState) Set added in v0.9.7

func (vs *ValidatorsState) Set(blockHeight int64, i, nextPssIdx int, node module.Address)

func (*ValidatorsState) String added in v0.9.7

func (vd *ValidatorsState) String() string

type Voting

type Voting interface {
	To() module.Address
	Amount() *big.Int
}

type VotingIterator

type VotingIterator interface {
	Has() bool
	Next() error
	Get() (Voting, error)
}

Jump to

Keyboard shortcuts

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