Documentation ¶
Overview ¶
nolint
Index ¶
- Constants
- func CheckTx(ctx types.Context, store state.SimpleDB, tx sdk.Tx) (res sdk.CheckResult, err error)
- func DeliverTx(ctx types.Context, store state.SimpleDB, tx sdk.Tx, hash []byte) (res sdk.DeliverResult, err error)
- func ErrBadAmount() error
- func ErrBadValidatorAddr() error
- func ErrBondNotNominated() error
- func ErrCandidateExistsAddr() error
- func ErrCandidateWithdrawalDisallowed() error
- func ErrDelegationNotExists() error
- func ErrInsufficientFunds() error
- func ErrInvalidCubeSignature() error
- func ErrInvalidWithdrawalAmount() error
- func ErrMissingSignature() error
- func ErrNoCandidateForAddress() error
- func ErrReachMaxAmount() error
- func ErrVerificationDisallowed() error
- func ErrVerifiedAlready() error
- func HandlePendingUnstakeRequests(height int64, store state.SimpleDB) error
- func InitState(key string, value interface{}, store state.SimpleDB) error
- func NewAwardDistributor(height int64, validators, backupValidators Validators, ...) *awardDistributor
- func NewTxActivateCandidacy() sdk.Tx
- func NewTxDeclareCandidacy(pubKey types.PubKey, maxAmount, compRate string, descrpition Description) sdk.Tx
- func NewTxDelegate(validatorAddress common.Address, amount, cubeBatch, sig string) sdk.Tx
- func NewTxUpdateCandidacy(maxAmount string, description Description) sdk.Tx
- func NewTxVerifyCandidacy(candidateAddress common.Address, verified bool) sdk.Tx
- func NewTxWithdraw(validatorAddress common.Address, amount string) sdk.Tx
- func NewTxWithdrawCandidacy() sdk.Tx
- func PunishAbsentValidator(pubKey types.PubKey, absence *Absence) (err error)
- func PunishByzantineValidator(pubKey types.PubKey) (err error)
- func RemoveAbsentValidator(pubKey types.PubKey) (err error)
- func RemoveDelegation(delegation *Delegation)
- func RemoveDelegator(delegator *Delegator)
- func ResetDeliverSqlTx()
- func SaveCandidate(candidate *Candidate)
- func SaveDelegation(d *Delegation)
- func SaveDelegator(delegator *Delegator)
- func SetDeliverSqlTx(tx *sql.Tx)
- func SetValidator(val types.GenesisValidator, store state.SimpleDB) error
- func UpdateDelegation(d *Delegation)
- func UpdateValidatorSet(store state.SimpleDB) (change []abci.Validator, err error)
- func VerifyCubeSignature(address common.Address, nonce uint64, cubeBatch string, sig string) error
- type Absence
- type AbsentValidators
- type Candidate
- func (c *Candidate) AddShares(value *big.Int) *big.Int
- func (c *Candidate) Hash() []byte
- func (c *Candidate) ParseCompRate() float64
- func (c *Candidate) ParseMaxShares() *big.Int
- func (c *Candidate) ParseShares() *big.Int
- func (c *Candidate) SelfStakingAmount(ratio string) (result *big.Int)
- func (c *Candidate) Validator() Validator
- type Candidates
- type DelegateHistory
- type Delegation
- func (d *Delegation) AddAwardAmount(value *big.Int) *big.Int
- func (d *Delegation) AddDelegateAmount(value *big.Int) *big.Int
- func (d *Delegation) AddSlashAmount(value *big.Int) *big.Int
- func (d *Delegation) AddWithdrawAmount(value *big.Int) *big.Int
- func (d *Delegation) Hash() []byte
- func (d *Delegation) ParseAwardAmount() *big.Int
- func (d *Delegation) ParseDelegateAmount() *big.Int
- func (d *Delegation) ParseSlashAmount() *big.Int
- func (d *Delegation) ParseWithdrawAmount() *big.Int
- func (d *Delegation) Shares() (shares *big.Int)
- type Delegator
- type Description
- type PunishHistory
- type SqlTxWrapper
- type TxActivateCandidacy
- type TxDeclareCandidacy
- type TxDelegate
- type TxUpdateCandidacy
- type TxVerifyCandidacy
- type TxWithdraw
- type TxWithdrawCandidacy
- type UnstakeRequest
- type Validator
- type Validators
Constants ¶
const ( ByteTxDeclareCandidacy = 0x55 ByteTxUpdateCandidacy = 0x56 ByteTxWithdrawCandidacy = 0x57 ByteTxVerifyCandidacy = 0x58 ByteTxActivateCandidacy = 0x59 ByteTxDelegate = 0x60 ByteTxWithdraw = 0x61 TypeTxDeclareCandidacy = stakingModuleName + "/declareCandidacy" TypeTxUpdateCandidacy = stakingModuleName + "/updateCandidacy" TypeTxVerifyCandidacy = stakingModuleName + "/verifyCandidacy" TypeTxWithdrawCandidacy = stakingModuleName + "/withdrawCandidacy" TypeTxActivateCandidacy = stakingModuleName + "/activateCandidacy" TypeTxDelegate = stakingModuleName + "/delegate" TypeTxWithdraw = stakingModuleName + "/withdraw" )
register the tx type with its validation logic make sure to use the name of the handler as the prefix in the tx type, so it gets routed properly
Variables ¶
This section is empty.
Functions ¶
func DeliverTx ¶
func DeliverTx(ctx types.Context, store state.SimpleDB, tx sdk.Tx, hash []byte) (res sdk.DeliverResult, err error)
DeliverTx executes the tx if valid
func ErrBadAmount ¶
func ErrBadAmount() error
func ErrBadValidatorAddr ¶
func ErrBadValidatorAddr() error
func ErrBondNotNominated ¶
func ErrBondNotNominated() error
func ErrCandidateExistsAddr ¶
func ErrCandidateExistsAddr() error
func ErrCandidateWithdrawalDisallowed ¶
func ErrCandidateWithdrawalDisallowed() error
func ErrDelegationNotExists ¶
func ErrDelegationNotExists() error
func ErrInsufficientFunds ¶
func ErrInsufficientFunds() error
func ErrInvalidCubeSignature ¶
func ErrInvalidCubeSignature() error
func ErrInvalidWithdrawalAmount ¶
func ErrInvalidWithdrawalAmount() error
func ErrMissingSignature ¶
func ErrMissingSignature() error
func ErrNoCandidateForAddress ¶
func ErrNoCandidateForAddress() error
func ErrReachMaxAmount ¶
func ErrReachMaxAmount() error
func ErrVerificationDisallowed ¶
func ErrVerificationDisallowed() error
func ErrVerifiedAlready ¶
func ErrVerifiedAlready() error
func NewAwardDistributor ¶
func NewTxActivateCandidacy ¶
func NewTxDeclareCandidacy ¶
func NewTxDelegate ¶
func NewTxUpdateCandidacy ¶
func NewTxUpdateCandidacy(maxAmount string, description Description) sdk.Tx
func NewTxVerifyCandidacy ¶
func NewTxWithdrawCandidacy ¶
func PunishAbsentValidator ¶
func RemoveAbsentValidator ¶
func RemoveDelegation ¶
func RemoveDelegation(delegation *Delegation)
func RemoveDelegator ¶
func RemoveDelegator(delegator *Delegator)
func ResetDeliverSqlTx ¶
func ResetDeliverSqlTx()
func SaveCandidate ¶
func SaveCandidate(candidate *Candidate)
func SaveDelegation ¶
func SaveDelegation(d *Delegation)
func SaveDelegator ¶
func SaveDelegator(delegator *Delegator)
func SetDeliverSqlTx ¶
func SetValidator ¶
func SetValidator(val types.GenesisValidator, store state.SimpleDB) error
func UpdateDelegation ¶
func UpdateDelegation(d *Delegation)
func UpdateValidatorSet ¶
UpdateValidatorSet - Updates the voting power for the candidate set and returns the subset of validators which have changed for Tendermint
Types ¶
type Absence ¶
type Absence struct {
// contains filtered or unexported fields
}
func (*Absence) Accumulate ¶
func (a *Absence) Accumulate()
type AbsentValidators ¶
func NewAbsentValidators ¶
func NewAbsentValidators() *AbsentValidators
func (AbsentValidators) Clear ¶
func (av AbsentValidators) Clear(currentBlockHeight int64)
func (AbsentValidators) Remove ¶
func (av AbsentValidators) Remove(pk types.PubKey)
type Candidate ¶
type Candidate struct { PubKey types.PubKey `json:"pub_key"` // Pubkey of candidate OwnerAddress string `json:"owner_address"` // Sender of BondTx - UnbondTx returns here VotingPower int64 `json:"voting_power"` // Voting power if pubKey is a considered a validator CompRate string `json:"comp_rate"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` Description Description `json:"description"` Verified string `json:"verified"` Active string `json:"active"` BlockHeight int64 `json:"block_height"` Rank int64 `json:"rank"` State string `json:"state"` }
Candidate defines the total Amount of bond shares and their exchange rate to coins. Accumulation of interest is modelled as an in increase in the exchange rate, and slashing as a decrease. When coins are delegated to this candidate, the candidate is credited with a DelegatorBond whose number of bond shares is based on the Amount of coins delegated divided by the current exchange rate. Voting power can be calculated as total bonds multiplied by exchange rate. NOTE if the Owner.Empty() == true then this is a candidate who has revoked candidacy
func GetCandidateByAddress ¶
func GetCandidateByPubKey ¶
func (*Candidate) ParseCompRate ¶
func (*Candidate) ParseMaxShares ¶
func (*Candidate) ParseShares ¶
func (*Candidate) SelfStakingAmount ¶
type Candidates ¶
type Candidates []*Candidate
func GetBackupValidators ¶
func GetBackupValidators() (candidates Candidates)
func GetCandidates ¶
func GetCandidates() (candidates Candidates)
func (Candidates) Less ¶
func (cs Candidates) Less(i, j int) bool
func (Candidates) Swap ¶
func (cs Candidates) Swap(i, j int)
func (Candidates) Validators ¶
func (cs Candidates) Validators() Validators
Validators - get the most recent updated validator set from the Candidates. These bonds are already sorted by VotingPower from the UpdateVotingPower function which is the only function which is to modify the VotingPower
type DelegateHistory ¶
type Delegation ¶
type Delegation struct { DelegatorAddress common.Address `json:"delegator_address"` PubKey types.PubKey `json:"pub_key"` DelegateAmount string `json:"delegate_amount"` AwardAmount string `json:"award_amount"` WithdrawAmount string `json:"withdraw_amount"` SlashAmount string `json:"slash_amount"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` }
func GetDelegation ¶
func GetDelegation(delegatorAddress common.Address, pubKey types.PubKey) *Delegation
func GetDelegationsByDelegator ¶
func GetDelegationsByDelegator(delegatorAddress common.Address) (delegations []*Delegation)
func GetDelegationsByPubKey ¶
func GetDelegationsByPubKey(pubKey types.PubKey) (delegations []*Delegation)
func (*Delegation) AddAwardAmount ¶
func (d *Delegation) AddAwardAmount(value *big.Int) *big.Int
func (*Delegation) AddDelegateAmount ¶
func (d *Delegation) AddDelegateAmount(value *big.Int) *big.Int
func (*Delegation) AddSlashAmount ¶
func (d *Delegation) AddSlashAmount(value *big.Int) *big.Int
func (*Delegation) AddWithdrawAmount ¶
func (d *Delegation) AddWithdrawAmount(value *big.Int) *big.Int
func (*Delegation) Hash ¶
func (d *Delegation) Hash() []byte
func (*Delegation) ParseAwardAmount ¶
func (d *Delegation) ParseAwardAmount() *big.Int
func (*Delegation) ParseDelegateAmount ¶
func (d *Delegation) ParseDelegateAmount() *big.Int
func (*Delegation) ParseSlashAmount ¶
func (d *Delegation) ParseSlashAmount() *big.Int
func (*Delegation) ParseWithdrawAmount ¶
func (d *Delegation) ParseWithdrawAmount() *big.Int
func (*Delegation) Shares ¶
func (d *Delegation) Shares() (shares *big.Int)
type Delegator ¶
func GetDelegator ¶
type Description ¶
type PunishHistory ¶
type SqlTxWrapper ¶
type SqlTxWrapper struct {
// contains filtered or unexported fields
}
func (*SqlTxWrapper) Commit ¶
func (wrapper *SqlTxWrapper) Commit()
func (*SqlTxWrapper) Rollback ¶
func (wrapper *SqlTxWrapper) Rollback()
type TxActivateCandidacy ¶
type TxActivateCandidacy struct{}
func (TxActivateCandidacy) ValidateBasic ¶
func (tx TxActivateCandidacy) ValidateBasic() error
ValidateBasic - Check for non-empty candidate, and valid coins
func (TxActivateCandidacy) Wrap ¶
func (tx TxActivateCandidacy) Wrap() sdk.Tx
Wrap - Wrap a Tx as a Basecoin Tx
type TxDeclareCandidacy ¶
type TxDeclareCandidacy struct { PubKey string `json:"pub_key"` MaxAmount string `json:"max_amount"` CompRate string `json:"comp_rate"` Description Description `json:"description"` }
func (TxDeclareCandidacy) SelfStakingAmount ¶
func (tx TxDeclareCandidacy) SelfStakingAmount(ratio string) (amount *big.Int)
func (TxDeclareCandidacy) ValidateBasic ¶
func (tx TxDeclareCandidacy) ValidateBasic() error
func (TxDeclareCandidacy) Wrap ¶
func (tx TxDeclareCandidacy) Wrap() sdk.Tx
type TxDelegate ¶
type TxDelegate struct { ValidatorAddress common.Address `json:"validator_address"` Amount string `json:"amount"` CubeBatch string `json:"cube_batch"` Sig string `json:"sig"` }
TxDelegate - struct for bonding or unbonding transactions
func (TxDelegate) ValidateBasic ¶
func (tx TxDelegate) ValidateBasic() error
type TxUpdateCandidacy ¶
type TxUpdateCandidacy struct { MaxAmount string `json:"max_amount"` Description Description `json:"description"` }
func (TxUpdateCandidacy) ValidateBasic ¶
func (tx TxUpdateCandidacy) ValidateBasic() error
func (TxUpdateCandidacy) Wrap ¶
func (tx TxUpdateCandidacy) Wrap() sdk.Tx
type TxVerifyCandidacy ¶
type TxVerifyCandidacy struct { CandidateAddress common.Address `json:"candidate_address"` Verified bool `json:"verified"` }
func (TxVerifyCandidacy) ValidateBasic ¶
func (tx TxVerifyCandidacy) ValidateBasic() error
ValidateBasic - Check for non-empty candidate, and valid coins
func (TxVerifyCandidacy) Wrap ¶
func (tx TxVerifyCandidacy) Wrap() sdk.Tx
Wrap - Wrap a Tx as a Basecoin Tx
type TxWithdraw ¶
type TxWithdraw struct { ValidatorAddress common.Address `json:"validator_address"` Amount string `json:"amount"` }
func (TxWithdraw) ValidateBasic ¶
func (tx TxWithdraw) ValidateBasic() error
type TxWithdrawCandidacy ¶
type TxWithdrawCandidacy struct{}
func (TxWithdrawCandidacy) ValidateBasic ¶
func (tx TxWithdrawCandidacy) ValidateBasic() error
ValidateBasic - Check for non-empty candidate, and valid coins
func (TxWithdrawCandidacy) Wrap ¶
func (tx TxWithdrawCandidacy) Wrap() sdk.Tx
Wrap - Wrap a Tx as a Basecoin Tx
type UnstakeRequest ¶
type UnstakeRequest struct { Id string DelegatorAddress common.Address PubKey types.PubKey InitiatedBlockHeight int64 PerformedBlockHeight int64 Amount string State string CreatedAt string UpdatedAt string }
func GetUnstakeRequests ¶
func GetUnstakeRequests(height int64) (reqs []*UnstakeRequest)
func (*UnstakeRequest) GenId ¶
func (r *UnstakeRequest) GenId() []byte
func (*UnstakeRequest) Hash ¶
func (r *UnstakeRequest) Hash() []byte
type Validator ¶
type Validator Candidate
Validator is one of the top Candidates
func (Validator) ABCIValidator ¶
ABCIValidator - Get the validator from a bond value
type Validators ¶
type Validators []Validator
Validators - list of Validators
func (Validators) Less ¶
func (vs Validators) Less(i, j int) bool
func (Validators) Remove ¶
func (vs Validators) Remove(i int) Validators
func (Validators) Swap ¶
func (vs Validators) Swap(i, j int)