Documentation ¶
Index ¶
- Constants
- Variables
- func CheckOperatingThreshold(blockNumber uint64, blockHash common.Hash, balance *big.Int) (bool, *big.Int)
- func CheckStakeThreshold(blockNumber uint64, blockHash common.Hash, stake *big.Int) (bool, *big.Int)
- func Decimal(value float64) int
- func GetBlockNumberByEpoch(epoch uint64) uint64
- func GetHistoryCumulativeIssue(state xcom.StateDB, year uint32) *big.Int
- func GetYearEndBalance(state xcom.StateDB, year uint32) *big.Int
- func SetYearEndBalance(state xcom.StateDB, year uint32, balance *big.Int)
- func SetYearEndCumulativeIssue(state xcom.StateDB, year uint32, total *big.Int)
- func VerifyTxData(input []byte, command map[uint16]interface{}) (cnCode uint16, fn interface{}, FnParams []reflect.Value, err error)
- type BasePlugin
- type GovPlugin
- func (govPlugin *GovPlugin) BeginBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (govPlugin *GovPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (govPlugin *GovPlugin) EndBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- type RestrictingPlugin
- func (rp *RestrictingPlugin) AddRestrictingRecord(from, account common.Address, blockNum uint64, ...) error
- func (rp *RestrictingPlugin) BeginBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
- func (rp *RestrictingPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (rp *RestrictingPlugin) EndBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
- func (rp *RestrictingPlugin) GetRestrictingInfo(account common.Address, state xcom.StateDB) (*restricting.Result, *common.BizError)
- func (rp *RestrictingPlugin) PledgeLockFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
- func (rp *RestrictingPlugin) ReturnLockFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
- func (rp *RestrictingPlugin) SlashingNotify(account common.Address, amount *big.Int, state xcom.StateDB) error
- type RewardMgrPlugin
- func (rmp *RewardMgrPlugin) BeginBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
- func (rmp *RewardMgrPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (rmp *RewardMgrPlugin) EndBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
- type SlashingPlugin
- func (sp *SlashingPlugin) BeginBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sp *SlashingPlugin) CheckDuplicateSign(addr common.Address, blockNumber uint64, dupType consensus.EvidenceType, ...) ([]byte, error)
- func (sp *SlashingPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (sp *SlashingPlugin) DecodeEvidence(dupType consensus.EvidenceType, data string) (consensus.Evidence, error)
- func (sp *SlashingPlugin) EndBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sp *SlashingPlugin) GetPrePackAmount(blockNumber uint64, parentHash common.Hash) (map[discover.NodeID]uint32, error)
- func (sp *SlashingPlugin) SetDecodeEvidenceFun(...)
- func (sp *SlashingPlugin) SetPrivateKey(privateKey *ecdsa.PrivateKey)
- func (sp *SlashingPlugin) Slash(evidence consensus.Evidence, blockHash common.Hash, blockNumber uint64, ...) error
- type StakingPlugin
- func (sk *StakingPlugin) BeginBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sk *StakingPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (sk *StakingPlugin) CreateCandidate(state xcom.StateDB, blockHash common.Hash, blockNumber, amount *big.Int, ...) error
- func (sk *StakingPlugin) DeclarePromoteNotify(blockHash common.Hash, blockNumber uint64, nodeId discover.NodeID, ...) error
- func (sk *StakingPlugin) Delegate(state xcom.StateDB, blockHash common.Hash, blockNumber *big.Int, ...) error
- func (sk *StakingPlugin) EditCandidate(blockHash common.Hash, blockNumber *big.Int, canAddr common.Address, ...) error
- func (sk *StakingPlugin) ElectNextVerifierList(blockHash common.Hash, blockNumber uint64, state xcom.StateDB) error
- func (sk *StakingPlugin) Election(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sk *StakingPlugin) EndBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sk *StakingPlugin) GetCanBase(blockHash common.Hash, addr common.Address) (*staking.CandidateBase, error)
- func (sk *StakingPlugin) GetCanBaseByIrr(addr common.Address) (*staking.CandidateBase, error)
- func (sk *StakingPlugin) GetCanBaseList(blockHash common.Hash, blockNumber uint64) (staking.CandidateBaseQueue, error)
- func (sk *StakingPlugin) GetCanMutable(blockHash common.Hash, addr common.Address) (*staking.CandidateMutable, error)
- func (sk *StakingPlugin) GetCanMutableByIrr(addr common.Address) (*staking.CandidateMutable, error)
- func (sk *StakingPlugin) GetCandidateCompactInfo(blockHash common.Hash, blockNumber uint64, addr common.Address) (*staking.CandidateHex, error)
- func (sk *StakingPlugin) GetCandidateInfo(blockHash common.Hash, addr common.Address) (*staking.Candidate, error)
- func (sk *StakingPlugin) GetCandidateInfoByIrr(addr common.Address) (*staking.Candidate, error)
- func (sk *StakingPlugin) GetCandidateList(blockHash common.Hash, blockNumber uint64) (staking.CandidateHexQueue, error)
- func (sk *StakingPlugin) GetCandidateONEpoch(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.CandidateQueue, error)
- func (sk *StakingPlugin) GetCandidateONRound(blockHash common.Hash, blockNumber uint64, flag uint, isCommit bool) (staking.CandidateQueue, error)
- func (sk *StakingPlugin) GetDelegateExCompactInfo(blockHash common.Hash, blockNumber uint64, delAddr common.Address, ...) (*staking.DelegationEx, error)
- func (sk *StakingPlugin) GetDelegateExInfo(blockHash common.Hash, delAddr common.Address, nodeId discover.NodeID, ...) (*staking.DelegationEx, error)
- func (sk *StakingPlugin) GetDelegateExInfoByIrr(delAddr common.Address, nodeId discover.NodeID, stakeBlockNumber uint64) (*staking.DelegationEx, error)
- func (sk *StakingPlugin) GetDelegateInfo(blockHash common.Hash, delAddr common.Address, nodeId discover.NodeID, ...) (*staking.Delegation, error)
- func (sk *StakingPlugin) GetDelegateInfoByIrr(delAddr common.Address, nodeId discover.NodeID, stakeBlockNumber uint64) (*staking.Delegation, error)
- func (sk *StakingPlugin) GetLastNumber(blockNumber uint64) uint64
- func (sk *StakingPlugin) GetRelatedListByDelAddr(blockHash common.Hash, addr common.Address) (staking.DelRelatedQueue, error)
- func (sk *StakingPlugin) GetValidator(blockNumber uint64) (*cbfttypes.Validators, error)
- func (sk *StakingPlugin) GetValidatorList(blockHash common.Hash, blockNumber uint64, flag uint, isCommit bool) (staking.ValidatorExQueue, error)
- func (sk *StakingPlugin) GetVerifierList(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.ValidatorExQueue, error)
- func (sk *StakingPlugin) HandleUnCandidateItem(state xcom.StateDB, blockNumber uint64, blockHash common.Hash, epoch uint64) error
- func (sk *StakingPlugin) HasStake(blockHash common.Hash, addr common.Address) (bool, error)
- func (sk *StakingPlugin) IncreaseStaking(state xcom.StateDB, blockHash common.Hash, blockNumber, amount *big.Int, ...) error
- func (sk *StakingPlugin) IsCandidate(blockHash common.Hash, nodeId discover.NodeID, isCommit bool) (bool, error)
- func (sk *StakingPlugin) IsCandidateNode(nodeID discover.NodeID) bool
- func (sk *StakingPlugin) IsCurrValidator(blockHash common.Hash, blockNumber uint64, nodeId discover.NodeID, ...) (bool, error)
- func (sk *StakingPlugin) IsCurrVerifier(blockHash common.Hash, blockNumber uint64, nodeId discover.NodeID, ...) (bool, error)
- func (sk *StakingPlugin) ListCurrentValidatorID(blockHash common.Hash, blockNumber uint64) ([]discover.NodeID, error)
- func (sk *StakingPlugin) ListVerifierNodeID(blockHash common.Hash, blockNumber uint64) ([]discover.NodeID, error)
- func (sk *StakingPlugin) ProposalPassedNotify(blockHash common.Hash, blockNumber uint64, nodeIds []discover.NodeID, ...) error
- func (sk *StakingPlugin) RollBackStaking(state xcom.StateDB, blockHash common.Hash, blockNumber *big.Int, ...) error
- func (sk *StakingPlugin) SetEventMux(eventMux *event.TypeMux)
- func (sk *StakingPlugin) SlashCandidates(state xcom.StateDB, blockHash common.Hash, blockNumber uint64, ...) error
- func (sk *StakingPlugin) WithdrewDelegate(state xcom.StateDB, blockHash common.Hash, blockNumber, amount *big.Int, ...) error
- func (sk *StakingPlugin) WithdrewStaking(state xcom.StateDB, blockHash common.Hash, blockNumber *big.Int, ...) error
Constants ¶
const ( LessThanFoundationYearDeveloperRate = 100 AfterFoundationYearDeveloperRewardRate = 50 AfterFoundationYearFoundRewardRate = 50 IncreaseIssue = 40 RewardPoolIncreaseRate = 80 // 80% of fixed-issued tokens are allocated to reward pool each year )
const ( HundredDenominator = 100 TenThousandDenominator = 10000 )
Variables ¶
Functions ¶
func CheckOperatingThreshold ¶ added in v0.7.4
func CheckStakeThreshold ¶ added in v0.7.4
func GetBlockNumberByEpoch ¶
func GetHistoryCumulativeIssue ¶
GetHistoryCumulativeIssue used for get the cumulative issuance of a certain year in history
func SetYearEndCumulativeIssue ¶
SetYearEndCumulativeIssue used for set historical cumulative increase at the end of the year
Types ¶
type BasePlugin ¶
type GovPlugin ¶
type GovPlugin struct { }
func GovPluginInstance ¶
func GovPluginInstance() *GovPlugin
func (*GovPlugin) BeginBlock ¶
func (govPlugin *GovPlugin) BeginBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
implement BasePlugin
type RestrictingPlugin ¶
type RestrictingPlugin struct {
// contains filtered or unexported fields
}
func RestrictingInstance ¶
func RestrictingInstance() *RestrictingPlugin
func (*RestrictingPlugin) AddRestrictingRecord ¶
func (rp *RestrictingPlugin) AddRestrictingRecord(from, account common.Address, blockNum uint64, plans []restricting.RestrictingPlan, state xcom.StateDB) error
AddRestrictingRecord stores four K-V record in StateDB: RestrictingInfo: the account info to be released ReleaseEpoch: the number of accounts to be released on the epoch corresponding to the target block height ReleaseAccount: the account on the index on the target epoch ReleaseAmount: the amount of the account to be released on the target epoch
func (*RestrictingPlugin) BeginBlock ¶
func (rp *RestrictingPlugin) BeginBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
BeginBlock does something like check input params before execute transactions, in RestrictingPlugin it does nothing.
func (*RestrictingPlugin) EndBlock ¶
func (rp *RestrictingPlugin) EndBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
EndBlock invoke releaseRestricting
func (*RestrictingPlugin) GetRestrictingInfo ¶
func (rp *RestrictingPlugin) GetRestrictingInfo(account common.Address, state xcom.StateDB) (*restricting.Result, *common.BizError)
func (*RestrictingPlugin) PledgeLockFunds ¶
func (rp *RestrictingPlugin) PledgeLockFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
PledgeLockFunds transfer the money from the restricting contract account to the staking contract account
func (*RestrictingPlugin) ReturnLockFunds ¶
func (rp *RestrictingPlugin) ReturnLockFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
ReturnLockFunds transfer the money from the staking contract account to the restricting contract account
func (*RestrictingPlugin) SlashingNotify ¶
func (rp *RestrictingPlugin) SlashingNotify(account common.Address, amount *big.Int, state xcom.StateDB) error
SlashingNotify modify Debt of restricting account
type RewardMgrPlugin ¶ added in v0.7.3
type RewardMgrPlugin struct {
// contains filtered or unexported fields
}
func RewardMgrInstance ¶
func RewardMgrInstance() *RewardMgrPlugin
func (*RewardMgrPlugin) BeginBlock ¶ added in v0.7.3
func (rmp *RewardMgrPlugin) BeginBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
BeginBlock does something like check input params before execute transactions, in RewardMgrPlugin it does nothing.
func (*RewardMgrPlugin) EndBlock ¶ added in v0.7.3
func (rmp *RewardMgrPlugin) EndBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
EndBlock will handle reward work, if it's time to settle, reward staking. Then reward worker for create new block, this is necessary. At last if current block is the last block at the end of year, increasing issuance.
type SlashingPlugin ¶
type SlashingPlugin struct {
// contains filtered or unexported fields
}
func SlashInstance ¶
func SlashInstance() *SlashingPlugin
func (*SlashingPlugin) BeginBlock ¶
func (*SlashingPlugin) CheckDuplicateSign ¶
func (sp *SlashingPlugin) CheckDuplicateSign(addr common.Address, blockNumber uint64, dupType consensus.EvidenceType, stateDB xcom.StateDB) ([]byte, error)
func (*SlashingPlugin) DecodeEvidence ¶
func (sp *SlashingPlugin) DecodeEvidence(dupType consensus.EvidenceType, data string) (consensus.Evidence, error)
func (*SlashingPlugin) GetPrePackAmount ¶ added in v0.7.3
func (sp *SlashingPlugin) GetPrePackAmount(blockNumber uint64, parentHash common.Hash) (map[discover.NodeID]uint32, error)
Get the consensus rate of all nodes in the previous round
func (*SlashingPlugin) SetDecodeEvidenceFun ¶
func (sp *SlashingPlugin) SetDecodeEvidenceFun(f func(dupType consensus.EvidenceType, data string) (consensus.Evidence, error))
func (*SlashingPlugin) SetPrivateKey ¶
func (sp *SlashingPlugin) SetPrivateKey(privateKey *ecdsa.PrivateKey)
type StakingPlugin ¶
type StakingPlugin struct {
// contains filtered or unexported fields
}
func (*StakingPlugin) BeginBlock ¶
func (*StakingPlugin) CreateCandidate ¶
func (*StakingPlugin) DeclarePromoteNotify ¶
func (*StakingPlugin) EditCandidate ¶
func (*StakingPlugin) ElectNextVerifierList ¶
func (*StakingPlugin) GetCanBase ¶ added in v0.7.4
func (sk *StakingPlugin) GetCanBase(blockHash common.Hash, addr common.Address) (*staking.CandidateBase, error)
func (*StakingPlugin) GetCanBaseByIrr ¶ added in v0.7.4
func (sk *StakingPlugin) GetCanBaseByIrr(addr common.Address) (*staking.CandidateBase, error)
func (*StakingPlugin) GetCanBaseList ¶ added in v0.7.4
func (sk *StakingPlugin) GetCanBaseList(blockHash common.Hash, blockNumber uint64) (staking.CandidateBaseQueue, error)
func (*StakingPlugin) GetCanMutable ¶ added in v0.7.4
func (sk *StakingPlugin) GetCanMutable(blockHash common.Hash, addr common.Address) (*staking.CandidateMutable, error)
func (*StakingPlugin) GetCanMutableByIrr ¶ added in v0.7.4
func (sk *StakingPlugin) GetCanMutableByIrr(addr common.Address) (*staking.CandidateMutable, error)
func (*StakingPlugin) GetCandidateCompactInfo ¶
func (sk *StakingPlugin) GetCandidateCompactInfo(blockHash common.Hash, blockNumber uint64, addr common.Address) (*staking.CandidateHex, error)
func (*StakingPlugin) GetCandidateInfo ¶
func (*StakingPlugin) GetCandidateInfoByIrr ¶
func (*StakingPlugin) GetCandidateList ¶
func (sk *StakingPlugin) GetCandidateList(blockHash common.Hash, blockNumber uint64) (staking.CandidateHexQueue, error)
func (*StakingPlugin) GetCandidateONEpoch ¶
func (sk *StakingPlugin) GetCandidateONEpoch(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.CandidateQueue, error)
func (*StakingPlugin) GetCandidateONRound ¶
func (sk *StakingPlugin) GetCandidateONRound(blockHash common.Hash, blockNumber uint64, flag uint, isCommit bool) (staking.CandidateQueue, error)
func (*StakingPlugin) GetDelegateExCompactInfo ¶
func (*StakingPlugin) GetDelegateExInfo ¶
func (*StakingPlugin) GetDelegateExInfoByIrr ¶
func (sk *StakingPlugin) GetDelegateExInfoByIrr(delAddr common.Address, nodeId discover.NodeID, stakeBlockNumber uint64) (*staking.DelegationEx, error)
func (*StakingPlugin) GetDelegateInfo ¶
func (*StakingPlugin) GetDelegateInfoByIrr ¶
func (sk *StakingPlugin) GetDelegateInfoByIrr(delAddr common.Address, nodeId discover.NodeID, stakeBlockNumber uint64) (*staking.Delegation, error)
func (*StakingPlugin) GetLastNumber ¶
func (sk *StakingPlugin) GetLastNumber(blockNumber uint64) uint64
func (*StakingPlugin) GetRelatedListByDelAddr ¶
func (sk *StakingPlugin) GetRelatedListByDelAddr(blockHash common.Hash, addr common.Address) (staking.DelRelatedQueue, error)
func (*StakingPlugin) GetValidator ¶
func (sk *StakingPlugin) GetValidator(blockNumber uint64) (*cbfttypes.Validators, error)
func (*StakingPlugin) GetValidatorList ¶
func (sk *StakingPlugin) GetValidatorList(blockHash common.Hash, blockNumber uint64, flag uint, isCommit bool) ( staking.ValidatorExQueue, error)
flag:NOTE 0: Query previous round consensus validator 1: Query current round consensus validaor 2: Query next round consensus validator
func (*StakingPlugin) GetVerifierList ¶
func (sk *StakingPlugin) GetVerifierList(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.ValidatorExQueue, error)
func (*StakingPlugin) HandleUnCandidateItem ¶
func (*StakingPlugin) IncreaseStaking ¶
func (*StakingPlugin) IsCandidate ¶
func (*StakingPlugin) IsCandidateNode ¶
func (sk *StakingPlugin) IsCandidateNode(nodeID discover.NodeID) bool
NOTE: Verify that it is the validator of the current Epoch
func (*StakingPlugin) IsCurrValidator ¶
func (*StakingPlugin) IsCurrVerifier ¶
func (*StakingPlugin) ListCurrentValidatorID ¶
func (*StakingPlugin) ListVerifierNodeID ¶
func (*StakingPlugin) ProposalPassedNotify ¶
func (*StakingPlugin) RollBackStaking ¶
func (sk *StakingPlugin) RollBackStaking(state xcom.StateDB, blockHash common.Hash, blockNumber *big.Int, addr common.Address, typ uint16) error
/ This method may only be called when creatStaking
func (*StakingPlugin) SetEventMux ¶
func (sk *StakingPlugin) SetEventMux(eventMux *event.TypeMux)
func (*StakingPlugin) SlashCandidates ¶
func (sk *StakingPlugin) SlashCandidates(state xcom.StateDB, blockHash common.Hash, blockNumber uint64, queue ...*staking.SlashNodeItem) error
NotifyPunishedVerifiers