types

package
v0.0.0-...-17765ca Latest Latest
Warning

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

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

Documentation

Overview

nolint

Index

Constants

View Source
const (
	DefaultCodespace string = ModuleName

	CodeNoValidatorFound                uint32 = 67000
	CodeInvalidDelegation               uint32 = 67001
	CodeNilValidatorAddr                uint32 = 67002
	CodeBadValidatorAddr                uint32 = 67003
	CodeMoreMinSelfDelegation           uint32 = 67004
	CodeProxyNotFound                   uint32 = 67005
	CodeEmptyValidators                 uint32 = 67006
	CodeProxyAlreadyExist               uint32 = 67007
	CodeAddressNotEqual                 uint32 = 67009
	CodeDescriptionIsEmpty              uint32 = 67010
	CodeGetConsPubKeyBech32Failed       uint32 = 67011
	CodeUnknownStakingQueryType         uint32 = 67012
	CodeValidatorOwnerExists            uint32 = 67013
	CodeValidatorPubKeyExists           uint32 = 67014
	CodeValidatorPubKeyTypeNotSupported uint32 = 67015
	CodeBondedPoolOrNotBondedIsNotExist uint32 = 67016
	CodeInvalidDescriptionLength        uint32 = 67017
	CodeCommissionNegative              uint32 = 67018
	CodeCommissionHuge                  uint32 = 67019
	CodeCommissionGTMaxRate             uint32 = 67020
	CodeCommissionUpdateTime            uint32 = 67021
	CodeCommissionChangeRateNegative    uint32 = 67022
	CodeCommissionChangeRateGTMaxRate   uint32 = 67023
	CodeCommissionGTMaxChangeRate       uint32 = 67024
	CodeMinSelfDelegationInvalid        uint32 = 67025
	CodeNilDelegatorAddr                uint32 = 67026
	CodeDelegatorEqualToProxyAddr       uint32 = 67027
	CodeBadDenom                        uint32 = 67028
	CodeBadDelegationAmount             uint32 = 67029
	CodeNoUnbondingDelegation           uint32 = 67030
	CodeAddSharesToDismission           uint32 = 67031
	CodeAddSharesDuringProxy            uint32 = 67032
	CodeDoubleProxy                     uint32 = 67033
	CodeExceedValidatorAddrs            uint32 = 67034
	CodeNoDelegationToAddShares         uint32 = 67035
	CodeNotInDelegating                 uint32 = 67036
	CodeInsufficientDelegation          uint32 = 67037
	CodeInsufficientQuantity            uint32 = 67038
	CodeInvalidMinSelfDelegation        uint32 = 67039
	CodeBadUnDelegationAmount           uint32 = 67040
	CodeInvalidProxyUpdating            uint32 = 67041
	CodeInvalidProxyWithdrawTotal       uint32 = 67042
	CodeAlreadyAddedShares              uint32 = 67043
	CodeNoDelegatorExisted              uint32 = 67044
	CodeTargetValsDuplicate             uint32 = 67045
	CodeAlreadyBound                    uint32 = 67046
)
View Source
const (
	EventTypeCompleteUnbonding = "complete_unbonding"
	EventTypeCreateValidator   = "create_validator"
	EventTypeEditValidator     = "edit_validator"
	EventTypeDelegate          = "delegate"
	EventTypeUnbond            = "unbond"

	AttributeKeyValidator         = "validator"
	AttributeKeyCommissionRate    = "commission_rate"
	AttributeKeyMinSelfDelegation = "min_self_delegation"
	AttributeKeyDelegator         = "delegator"
	AttributeKeyCompletionTime    = "completion_time"
	AttributeValueCategory        = ModuleName

	EventTypeAddShares = "add_shares"

	AttributeKeyValidatorToAddShares = "validator_to_add_shares"
	AttributeKeyShares               = "shares"
)

staking module event types

View Source
const (
	// ModuleName is the name of the staking module
	ModuleName = "staking"

	// StoreKey is the string store representation
	StoreKey = ModuleName

	// TStoreKey is the string transient store representation
	TStoreKey = "transient_" + ModuleName

	// QuerierRoute is the querier route for the staking module
	QuerierRoute = ModuleName

	// RouterKey is the msg router key for the staking module
	RouterKey = ModuleName
)
View Source
const (
	// Update the validator set every 252 blocks by default
	DefaultBlocksPerEpoch = 252

	// Default maximum number of validators to vote
	DefaultMaxValsToVote = 30

	// Default validate rate update interval by hours
	DefaultValidateRateUpdateInterval = 24
)
View Source
const (

	// Default unbonding duration, 14 days
	DefaultUnbondingTime time.Duration = time.Hour * 24 * 7 * 2

	// Default maximum number of bonded validators
	DefaultMaxValidators uint16 = 21

	DefaultEpoch              uint16 = DefaultBlocksPerEpoch
	DefaultMaxValsToAddShares uint16 = DefaultMaxValsToVote
)

Staking params default values

View Source
const (
	NotBondedPoolName = "not_bonded_tokens_pool"
	BondedPoolName    = "bonded_tokens_pool"
)

names used as root for pool module accounts:

- NotBondedPool -> "not_bonded_tokens_pool"

- BondedPool -> "bonded_tokens_pool"

View Source
const (
	QueryValidators          = "validators"
	QueryValidator           = "validator"
	QueryUnbondingDelegation = "unbondingDelegation"
	QueryPool                = "pool"
	QueryParameters          = "parameters"
	QueryAddress             = "address"
	QueryForAddress          = "validatorAddress"
	QueryForAccAddress       = "validatorAccAddress"
	QueryProxy               = "proxy"
	QueryValidatorAllShares  = "validatorAllShares"
	QueryDelegator           = "delegator"
)

query endpoints supported by the staking Querier

View Source
const (
	// TODO: Why can't we just have one string description which can be JSON by convention
	MaxMonikerLength  = 70
	MaxIdentityLength = 3000
	MaxWebsiteLength  = 140
	MaxDetailsLength  = 280
)

nolint

View Source
const DoNotModifyDesc = "[do-not-modify]"

DoNotModifyDesc is the constant used in flags to indicate that description field should not be updated

Variables

View Source
var (
	// Keys for store prefixes
	// Last* values are constant during a block.
	LastValidatorPowerKey = []byte{0x11} // prefix for each key to a validator index, for bonded validators
	LastTotalPowerKey     = []byte{0x12} // prefix for the total power

	ValidatorsKey             = []byte{0x21} // prefix for each key to a validator
	ValidatorsByConsAddrKey   = []byte{0x22} // prefix for each key to a validator index, by pubkey
	ValidatorsByPowerIndexKey = []byte{0x23} // prefix for each key to a validator index, sorted by power

	ValidatorQueueKey = []byte{0x43} // prefix for the timestamps in validator queue

	SharesKey           = []byte{0x51}
	DelegatorKey        = []byte{0x52}
	UnDelegationInfoKey = []byte{0x53}
	UnDelegateQueueKey  = []byte{0x54}
	ProxyKey            = []byte{0x55}

	// prefix key for vals info to enforce the update of validator-set
	ValidatorAbandonedKey = []byte{0x60}
)

nolint

View Source
var (
	// DefaultMinDelegation is the limit value of delegation or undelegation
	DefaultMinDelegation = sdk.NewDecWithPrec(1, 4)
	// DefaultMinSelfDelegation is the default value of each validator's msd (hard code)
	DefaultMinSelfDelegation = sdk.NewDec(10000)
)
View Source
var (
	KeyUnbondingTime     = []byte("UnbondingTime")
	KeyMaxValidators     = []byte("MaxValidators")
	KeyBondDenom         = []byte("BondDenom")
	KeyEpoch             = []byte("BlocksPerEpoch")    // how many blocks each epoch has
	KeyTheEndOfLastEpoch = []byte("TheEndOfLastEpoch") // a block height that is the end of last epoch

	KeyMaxValsToAddShares = []byte("MaxValsToAddShares")
	KeyMinDelegation      = []byte("MinDelegation")
	KeyMinSelfDelegation  = []byte("MinSelfDelegation")
)

nolint - Keys for parameter access

View Source
var ModuleCdc *codec.Codec

ModuleCdc is generic sealed codec to be used throughout this module

Functions

func AddressFromLastValidatorPowerKey

func AddressFromLastValidatorPowerKey(key []byte) []byte

AddressFromLastValidatorPowerKey gets the validator operator address from LastValidatorPowerKey

func Bech32ifyConsPub

func Bech32ifyConsPub(pub crypto.PubKey) (string, error)

Bech32ifyConsPub returns a Bech32 encoded string containing the Bech32PrefixConsPub prefixfor a given consensus node's PubKey.

func ErrAddSharesDuringProxy

func ErrAddSharesDuringProxy(delegator string, proxy string) sdk.EnvelopedErr

ErrAddSharesDuringProxy returns an error when a delegator who has bound tries to add shares to validators by itself

func ErrAddSharesToDismission

func ErrAddSharesToDismission(valAddr string) sdk.Error

ErrAddSharesToDismission returns an error when a zero-msd validator becomes the shares adding target

func ErrAlreadyAddedShares

func ErrAlreadyAddedShares(delAddr string) sdk.EnvelopedErr

ErrAlreadyAddedShares returns an error when a delegator tries to bind proxy after adding shares

func ErrAlreadyBound

func ErrAlreadyBound(delAddr string) sdk.EnvelopedErr

ErrAlreadyBound returns an error when a delegator keeps binding a proxy before proxy register

func ErrBadDelegationAmount

func ErrBadDelegationAmount() sdk.Error

ErrBadDelegationAmount returns an error when the amount of delegation isn't positive

func ErrBadDenom

func ErrBadDenom() sdk.EnvelopedErr

ErrBadDenom returns an error when the coin denomination is invalid

func ErrBadUnDelegationAmount

func ErrBadUnDelegationAmount() sdk.Error

ErrBadUnDelegationAmount returns an error when the amount of delegation is not positive

func ErrBadValidatorAddr

func ErrBadValidatorAddr() sdk.Error

ErrBadValidatorAddr returns an error when an invalid validator address appears

func ErrBondedPoolOrNotBondedIsNotExist

func ErrBondedPoolOrNotBondedIsNotExist() sdk.Error

ErrBondedPoolOrNotBondedIsNotExist returns an error when bonded pool or not bonded pool is empty.

func ErrCommissionChangeRateGTMaxRate

func ErrCommissionChangeRateGTMaxRate() sdk.Error

ErrCommissionChangeRateGTMaxRate returns an error when the commission change rate is greater than the max rate

func ErrCommissionChangeRateNegative

func ErrCommissionChangeRateNegative() sdk.Error

ErrCommissionChangeRateNegative returns an error when the commission change rate is not positive

func ErrCommissionGTMaxChangeRate

func ErrCommissionGTMaxChangeRate() sdk.Error

ErrCommissionGTMaxChangeRate returns an error when the new rate % points change is greater than the max change rate

func ErrCommissionGTMaxRate

func ErrCommissionGTMaxRate() sdk.Error

ErrCommissionGTMaxRate returns an error when the commission rate is greater than the max rate

func ErrCommissionHuge

func ErrCommissionHuge() sdk.Error

ErrCommissionHuge returns an error when the commission is greater than 100%

func ErrCommissionNegative

func ErrCommissionNegative() sdk.Error

ErrCommissionNegative returns an error when the commission is not positive

func ErrCommissionUpdateTime

func ErrCommissionUpdateTime() sdk.Error

ErrCommissionUpdateTime returns an error when the commission is remodified within 24 hours

func ErrDelegatorEqualToProxyAddr

func ErrDelegatorEqualToProxyAddr() sdk.Error

ErrDelegatorEqualToProxyAddr returns an error when the address is not expected

func ErrDescriptionIsEmpty

func ErrDescriptionIsEmpty() sdk.Error

ErrDescriptionIsEmpty returns an error when description is empty.

func ErrDescriptionLength

func ErrDescriptionLength(descriptor string, got, max int) sdk.Error

ErrDescriptionLength returns an error when the description of validator has a wrong length

func ErrDoubleProxy

func ErrDoubleProxy(delegator string) sdk.EnvelopedErr

ErrDoubleProxy returns an error when a delegator trys to bind more than one proxy

func ErrEmptyValidators

func ErrEmptyValidators() sdk.Error

ErrEmptyValidators returns an error when none of the validators in shares adding list is available

func ErrExceedValidatorAddrs

func ErrExceedValidatorAddrs(num int) sdk.EnvelopedErr

ErrExceedValidatorAddrs returns an error when the number of target validators exceeds the max limit

func ErrGetConsPubKeyBech32

func ErrGetConsPubKeyBech32() sdk.Error

ErrGetConsPubKeyBech32 returns an error when get bech32 consensus public key failed.

func ErrInsufficientDelegation

func ErrInsufficientDelegation(quantity, delLeft string) sdk.Error

ErrInsufficientDelegation returns an error when the delegation left is not enough for unbonding

func ErrInsufficientQuantity

func ErrInsufficientQuantity(quantity, minLimit string) sdk.Error

ErrInsufficientQuantity returns an error when the quantity is less than the min delegation limit

func ErrInvalidDelegation

func ErrInvalidDelegation(delegator string) sdk.EnvelopedErr

ErrInvalidDelegation returns an error when the delegation is invalid

func ErrInvalidProxyUpdating

func ErrInvalidProxyUpdating() sdk.Error

ErrInvalidProxyUpdating returns an error when the total delegated tokens on a proxy are going to be negative

func ErrInvalidProxyWithdrawTotal

func ErrInvalidProxyWithdrawTotal(addr string) sdk.Error

ErrInvalidProxyWithdrawTotal returns an error when proxy withdraws total tokens

func ErrMinSelfDelegationInvalid

func ErrMinSelfDelegationInvalid() sdk.Error

ErrMinSelfDelegationInvalid returns an error when the msd isn't positive

func ErrMoreMinSelfDelegation

func ErrMoreMinSelfDelegation(valAddr string) sdk.Error

ErrMoreMinSelfDelegation returns an error when the msd doesn't match the rest of shares on a validator

func ErrNilDelegatorAddr

func ErrNilDelegatorAddr() sdk.Error

ErrNilDelegatorAddr returns an error when the delegator address is nil

func ErrNilValidatorAddr

func ErrNilValidatorAddr() sdk.Error

ErrNilValidatorAddr returns an error when an empty validator address appears

func ErrNoDelegationToAddShares

func ErrNoDelegationToAddShares(delegator string) sdk.EnvelopedErr

ErrNoDelegationToAddShares returns an error when there's no delegation to support adding shares to validators

func ErrNoDelegatorExisted

func ErrNoDelegatorExisted(delAddr string) sdk.Error

ErrNoDelegatorExisted returns an error when the info if a certain delegator doesn't exist

func ErrNoMinSelfDelegation

func ErrNoMinSelfDelegation(valAddr string) sdk.Error

ErrNoMinSelfDelegation returns an error when the msd has already been unbonded

func ErrNoUnbondingDelegation

func ErrNoUnbondingDelegation() sdk.Error

ErrNoUnbondingDelegation returns an error when the unbonding delegation doesn't exist

func ErrNoValidatorFound

func ErrNoValidatorFound(valAddr string) sdk.EnvelopedErr

ErrNoValidatorFound returns an error when a validator doesn't exist

func ErrNotInDelegating

func ErrNotInDelegating(addr string) sdk.Error

ErrNotInDelegating returns an error when the UndelegationInfo doesn't exist during it's unbonding period

func ErrProxyAlreadyExist

func ErrProxyAlreadyExist(delegator string) sdk.EnvelopedErr

ErrProxyAlreadyExist returns an error when a proxy tries to reg the second time

func ErrProxyNotFound

func ErrProxyNotFound(delegator string) sdk.EnvelopedErr

ErrProxyNotFound returns an error when a delegator who's not a proxy tries to unreg

func ErrTargetValsDuplicate

func ErrTargetValsDuplicate() sdk.Error

ErrTargetValsDuplicate returns an error when the target validators in voting list are duplicate

func ErrUnknownStakingQueryType

func ErrUnknownStakingQueryType() sdk.Error

ErrUnknownStakingQueryType returns an error when encounter unknown staking query type.

func ErrValidatorOwnerExists

func ErrValidatorOwnerExists() sdk.Error

ErrValidatorOwnerExists returns an error when the validator address has been registered

func ErrValidatorPubKeyExists

func ErrValidatorPubKeyExists() sdk.Error

ErrValidatorPubKeyExists returns an error when the validator consensus pubkey has been registered

func ErrValidatorPubKeyTypeNotSupported

func ErrValidatorPubKeyTypeNotSupported(keyType string,
	supportedTypes []string) sdk.Error

ErrValidatorPubKeyTypeNotSupported returns an error when the type of pubkey was not supported

func GetCompleteTimeKey

func GetCompleteTimeKey(timestamp time.Time) []byte

GetCompleteTimeKey get the key for the prefix of time

func GetCompleteTimeWithAddrKey

func GetCompleteTimeWithAddrKey(timestamp time.Time, delAddr sdk.AccAddress) []byte

GetCompleteTimeWithAddrKey get the key for the complete time with delegator address

func GetConsPubKeyBech32

func GetConsPubKeyBech32(pubkey string) (pk crypto.PubKey, err error)

GetConsPubKeyBech32 creates a PubKey for a consensus node with a given public key string using the Bech32 Bech32PrefixConsPub prefix.

func GetDelegatorKey

func GetDelegatorKey(delAddr sdk.AccAddress) []byte

GetDelegatorKey gets the key for Delegator

func GetLastValidatorPowerKey

func GetLastValidatorPowerKey(operator sdk.ValAddress) []byte

GetLastValidatorPowerKey gets the bonded validator index key for an operator address

func GetProxyDelegatorKey

func GetProxyDelegatorKey(proxyAddr, delAddr sdk.AccAddress) []byte

GetProxyDelegatorKey gets the key for the relationship between delegator and proxy

func GetSharesKey

func GetSharesKey(valAddr sdk.ValAddress, delAddr sdk.AccAddress) []byte

GetSharesKey gets the whole key for an item of shares info

func GetSharesToValidatorsKey

func GetSharesToValidatorsKey(valAddr sdk.ValAddress) []byte

GetSharesToValidatorsKey gets the first-prefix for an item of shares info

func GetUndelegationInfoKey

func GetUndelegationInfoKey(delAddr sdk.AccAddress) []byte

GetUndelegationInfoKey gets the key for UndelegationInfo

func GetValidatorByConsAddrKey

func GetValidatorByConsAddrKey(addr sdk.ConsAddress) []byte

GetValidatorByConsAddrKey gets the key for the validator with pubkey VALUE: validator operator address ([]byte)

func GetValidatorKey

func GetValidatorKey(operatorAddr sdk.ValAddress) []byte

GetValidatorKey gets the key for the validator with address VALUE: staking/Validator

func GetValidatorQueueTimeKey

func GetValidatorQueueTimeKey(timestamp time.Time) []byte

GetValidatorQueueTimeKey gets the prefix for all unbonding delegations from a delegator

func GetValidatorsByPowerIndexKey

func GetValidatorsByPowerIndexKey(validator Validator) []byte

GetValidatorsByPowerIndexKey gets the validator by power index Power index is the key used in the power-store, and represents the relative power ranking of the validator VALUE: validator operator address ([]byte)

func MustBech32ifyConsPub

func MustBech32ifyConsPub(pub crypto.PubKey) string

func MustGetConsPubKeyBech32

func MustGetConsPubKeyBech32(pubkey string) (pk crypto.PubKey)

MustGetConsPubKeyBech32 returns the result of GetConsPubKeyBech32 panicing on failure.

func MustMarshalValidator

func MustMarshalValidator(cdc *codec.Codec, validator Validator) []byte

MustMarshalValidator must return the marshaling bytes of a validator

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

RegisterCodec registers concrete types for codec

func SplitCompleteTimeWithAddrKey

func SplitCompleteTimeWithAddrKey(key []byte) (time.Time, sdk.AccAddress)

SplitCompleteTimeWithAddrKey splits the key and returns the endtime and delegator address

Types

type AccountKeeper

type AccountKeeper interface {
	IterateAccounts(ctx sdk.Context, process func(authexported.Account) (stop bool))
}

AccountKeeper defines the expected account keeper (noalias)

type Commission

type Commission struct {
	CommissionRates `json:"commission_rates" yaml:"commission_rates"`
	UpdateTime      time.Time `json:"update_time" yaml:"update_time"` // the last time the commission rate was changed
}

Commission defines a commission parameters for a given validator

func NewCommission

func NewCommission(rate, maxRate, maxChangeRate sdk.Dec) Commission

NewCommission returns an initialized validator commission.

func NewCommissionWithTime

func NewCommissionWithTime(rate, maxRate, maxChangeRate sdk.Dec, updatedAt time.Time) Commission

NewCommissionWithTime returns an initialized validator commission with a specified update time which should be the current block BFT time

func (Commission) Equal

func (c Commission) Equal(c2 Commission) bool

Equal checks if the given Commission object is equal to the receiving Commission object

func (Commission) String

func (c Commission) String() string

String implements the Stringer interface for a Commission

func (Commission) ValidateNewRate

func (c Commission) ValidateNewRate(newRate sdk.Dec, blockTime time.Time) sdk.Error

ValidateNewRate performs basic sanity validation checks of a new commission rate If validation fails, an SDK error is returned.

type CommissionRates

type CommissionRates struct {
	// the commission rate charged to delegators, as a fraction
	Rate sdk.Dec `json:"rate" yaml:"rate"`
	// maximum commission rate which validator can ever charge, as a fraction
	MaxRate sdk.Dec `json:"max_rate" yaml:"max_rate"`
	// maximum daily increase of the validator commission, as a fraction
	MaxChangeRate sdk.Dec `json:"max_change_rate" yaml:"max_change_rate"`
}

CommissionRates defines the initial commission rates to be used for creating a validator

func NewCommissionRates

func NewCommissionRates(rate, maxRate, maxChangeRate sdk.Dec) CommissionRates

NewCommissionRates returns an initialized validator commission rates

func (CommissionRates) Validate

func (c CommissionRates) Validate() sdk.Error

Validate performs basic sanity validation checks of initial commission parameters If validation fails, an SDK error is returned

type Delegator

type Delegator struct {
	DelegatorAddress     sdk.AccAddress   `json:"delegator_address" yaml:"delegator_address"`
	ValidatorAddresses   []sdk.ValAddress `json:"validator_address" yaml:"validator_address"`
	Shares               sdk.Dec          `json:"shares" yaml:"shares"`
	Tokens               sdk.Dec          `json:"tokens" yaml:"tokens"` // self-delegated tokens
	IsProxy              bool             `json:"is_proxy" yaml:"is_proxy"`
	TotalDelegatedTokens sdk.Dec          `json:"total_delegated_tokens" yaml:"total_delegated_tokens"` // total tokens delegated by other delegators
	ProxyAddress         sdk.AccAddress   `json:"proxy_address" yaml:"proxy_address"`
}

Delegator is the struct of delegator info

func MustUnMarshalDelegator

func MustUnMarshalDelegator(cdc *codec.Codec, value []byte) (delegator Delegator)

MustUnMarshalDelegator must return a delegator entity by unmarshalling

func NewDelegator

func NewDelegator(delAddr sdk.AccAddress) Delegator

NewDelegator creates a new Delegator object

func (*Delegator) BindProxy

func (d *Delegator) BindProxy(proxyAddr sdk.AccAddress)

BindProxy sets relationship between a delegator and proxy

func (Delegator) GetLastAddedShares

func (d Delegator) GetLastAddedShares() sdk.Dec

GetLastAddedShares gets the last shares added to validators of a delegator for other module

func (Delegator) GetShareAddedValidatorAddresses

func (d Delegator) GetShareAddedValidatorAddresses() []sdk.ValAddress

GetShareAddedValidatorAddresses gets validator address that the delegator added shares to for other module

func (Delegator) HasProxy

func (d Delegator) HasProxy() bool

HasProxy tells whether the delegator has bound a proxy

func (*Delegator) RegProxy

func (d *Delegator) RegProxy(reg bool)

RegProxy registers or deregisters the identity of proxy

func (*Delegator) UnbindProxy

func (d *Delegator) UnbindProxy()

UnbindProxy clears the proxy address on a delegator

type Description

type Description struct {
	Moniker  string `json:"moniker" yaml:"moniker"`   // name
	Identity string `json:"identity" yaml:"identity"` // optional identity signature (ex. UPort or Keybase)
	Website  string `json:"website" yaml:"website"`   // optional website link
	Details  string `json:"details" yaml:"details"`   // optional details
}

Description - description fields for a validator

func NewDescription

func NewDescription(moniker, identity, website, details string) Description

NewDescription returns a new Description with the provided values.

func (Description) EnsureLength

func (d Description) EnsureLength() (Description, error)

EnsureLength ensures the length of a validator's description.

func (Description) UpdateDescription

func (d Description) UpdateDescription(d2 Description) (Description, error)

UpdateDescription updates the fields of a given description. An error is returned if the resulting description contains an invalid length.

type GenesisState

type GenesisState struct {
	Params               Params                      `json:"params" yaml:"params"`
	LastTotalPower       sdk.Int                     `json:"last_total_power" yaml:"last_total_power"`
	LastValidatorPowers  []LastValidatorPower        `json:"last_validator_powers" yaml:"last_validator_powers"`
	Validators           []ValidatorExported         `json:"validators" yaml:"validators"`
	Delegators           []Delegator                 `json:"delegators" yaml:"delegators"`
	UnbondingDelegations []UndelegationInfo          `json:"unbonding_delegations" yaml:"unbonding_delegations"`
	AllShares            []SharesExported            `json:"all_shares" yaml:"all_shares"`
	ProxyDelegatorKeys   []ProxyDelegatorKeyExported `json:"proxy_delegator_keys" yaml:"proxy_delegator_keys"`
	Exported             bool                        `json:"exported" yaml:"exported"`
}

GenesisState - all staking state that must be provided at genesis

func DefaultGenesisState

func DefaultGenesisState() GenesisState

DefaultGenesisState gets the default genesis state

func NewGenesisState

func NewGenesisState(params Params, validators Validators, delegators []Delegator) GenesisState

NewGenesisState creates a new object of GenesisState

type LastValidatorPower

type LastValidatorPower struct {
	Address sdk.ValAddress
	Power   int64
}

LastValidatorPower is needed for validator set update logic

func NewLastValidatorPower

func NewLastValidatorPower(valAddr sdk.ValAddress, power int64) LastValidatorPower

NewLastValidatorPower creates a new instance of LastValidatorPower

type MsgAddShares

type MsgAddShares struct {
	DelAddr  sdk.AccAddress   `json:"delegator_address" yaml:"delegator_address"`
	ValAddrs []sdk.ValAddress `json:"validator_addresses" yaml:"validator_addresses"`
}

MsgAddShares - struct for adding-shares transaction

func NewMsgAddShares

func NewMsgAddShares(delAddr sdk.AccAddress, valAddrs []sdk.ValAddress) MsgAddShares

NewMsgAddShares creates a msg of adding shares to vals

func (MsgAddShares) GetSignBytes

func (msg MsgAddShares) GetSignBytes() []byte

GetSignBytes returns the message bytes to sign over

func (MsgAddShares) GetSigners

func (msg MsgAddShares) GetSigners() []sdk.AccAddress

func (MsgAddShares) Route

func (MsgAddShares) Route() string

nolint

func (MsgAddShares) Type

func (MsgAddShares) Type() string

func (MsgAddShares) ValidateBasic

func (msg MsgAddShares) ValidateBasic() error

ValidateBasic gives a quick validity check

type MsgBindProxy

type MsgBindProxy struct {
	DelAddr      sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
	ProxyAddress sdk.AccAddress `json:"proxy_address" yaml:"proxy_address"`
}

MsgBindProxy - structure for bind proxy relationship between the delegator and the proxy

func NewMsgBindProxy

func NewMsgBindProxy(delAddr sdk.AccAddress, ProxyDelAddr sdk.AccAddress) MsgBindProxy

NewMsgBindProxy creates a msg of binding proxy

func (MsgBindProxy) GetSignBytes

func (msg MsgBindProxy) GetSignBytes() []byte

GetSignBytes returns the message bytes to sign over

func (MsgBindProxy) GetSigners

func (msg MsgBindProxy) GetSigners() []sdk.AccAddress

func (MsgBindProxy) Route

func (MsgBindProxy) Route() string

nolint

func (MsgBindProxy) Type

func (MsgBindProxy) Type() string

func (MsgBindProxy) ValidateBasic

func (msg MsgBindProxy) ValidateBasic() error

ValidateBasic gives a quick validity check

type MsgCreateValidator

type MsgCreateValidator struct {
	Description Description `json:"description" yaml:"description"`
	//Commission        CommissionRates `json:"commission" yaml:"commission"`
	MinSelfDelegation sdk.SysCoin    `json:"min_self_delegation" yaml:"min_self_delegation"`
	DelegatorAddress  sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
	ValidatorAddress  sdk.ValAddress `json:"validator_address" yaml:"validator_address"`
	PubKey            crypto.PubKey  `json:"pubkey" yaml:"pubkey"`
}

MsgCreateValidator - struct for bonding transactions

func NewMsgCreateValidator

func NewMsgCreateValidator(
	valAddr sdk.ValAddress, pubKey crypto.PubKey,
	description Description, minSelfDelegation sdk.SysCoin,
) MsgCreateValidator

NewMsgCreateValidator creates a msg of create-validator Delegator address and validator address are the same

func (MsgCreateValidator) GetSignBytes

func (msg MsgCreateValidator) GetSignBytes() []byte

GetSignBytes returns the message bytes to sign over

func (MsgCreateValidator) GetSigners

func (msg MsgCreateValidator) GetSigners() []sdk.AccAddress

GetSigners returns address(es) that must sign over msg.GetSignBytes()

func (MsgCreateValidator) MarshalJSON

func (msg MsgCreateValidator) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface to provide custom JSON serialization

func (MsgCreateValidator) Route

func (msg MsgCreateValidator) Route() string

nolint

func (MsgCreateValidator) Type

func (msg MsgCreateValidator) Type() string

func (*MsgCreateValidator) UnmarshalJSON

func (msg *MsgCreateValidator) UnmarshalJSON(bz []byte) error

UnmarshalJSON implements the json.Unmarshaler interface to provide custom JSON deserialization

func (MsgCreateValidator) ValidateBasic

func (msg MsgCreateValidator) ValidateBasic() error

ValidateBasic gives a quick validity check

type MsgDeposit

type MsgDeposit struct {
	DelegatorAddress sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
	Amount           sdk.SysCoin    `json:"quantity" yaml:"quantity"`
}

MsgDeposit - structure for depositing to the delegator account

func NewMsgDeposit

func NewMsgDeposit(delAddr sdk.AccAddress, amount sdk.SysCoin) MsgDeposit

NewMsgDeposit creates a new instance of MsgDeposit

func (MsgDeposit) GetSignBytes

func (msg MsgDeposit) GetSignBytes() []byte

GetSignBytes returns the message bytes to sign over

func (MsgDeposit) GetSigners

func (msg MsgDeposit) GetSigners() []sdk.AccAddress

func (MsgDeposit) Route

func (msg MsgDeposit) Route() string

nolint

func (MsgDeposit) Type

func (msg MsgDeposit) Type() string

func (MsgDeposit) ValidateBasic

func (msg MsgDeposit) ValidateBasic() error

ValidateBasic gives a quick validity check

type MsgDestroyValidator

type MsgDestroyValidator struct {
	DelAddr sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
}

MsgDestroyValidator - struct for transactions to deregister a validator

func NewMsgDestroyValidator

func NewMsgDestroyValidator(delAddr sdk.AccAddress) MsgDestroyValidator

NewMsgDestroyValidator creates a msg of destroy-validator

func (MsgDestroyValidator) GetSignBytes

func (msg MsgDestroyValidator) GetSignBytes() []byte

GetSignBytes returns the message bytes to sign over

func (MsgDestroyValidator) GetSigners

func (msg MsgDestroyValidator) GetSigners() []sdk.AccAddress

func (MsgDestroyValidator) Route

func (MsgDestroyValidator) Route() string

nolint

func (MsgDestroyValidator) Type

func (MsgDestroyValidator) Type() string

func (MsgDestroyValidator) ValidateBasic

func (msg MsgDestroyValidator) ValidateBasic() error

ValidateBasic gives a quick validity check

type MsgEditValidator

type MsgEditValidator struct {
	Description
	ValidatorAddress sdk.ValAddress `json:"address" yaml:"address"`
}

MsgEditValidator - struct for editing a validator

func NewMsgEditValidator

func NewMsgEditValidator(valAddr sdk.ValAddress, description Description) MsgEditValidator

NewMsgEditValidator creates a msg of edit-validator

func (MsgEditValidator) GetSignBytes

func (msg MsgEditValidator) GetSignBytes() []byte

GetSignBytes gets the bytes for the message signer to sign on

func (MsgEditValidator) GetSigners

func (msg MsgEditValidator) GetSigners() []sdk.AccAddress

func (MsgEditValidator) Route

func (msg MsgEditValidator) Route() string

nolint

func (MsgEditValidator) Type

func (msg MsgEditValidator) Type() string

func (MsgEditValidator) ValidateBasic

func (msg MsgEditValidator) ValidateBasic() error

ValidateBasic gives a quick validity check

type MsgRegProxy

type MsgRegProxy struct {
	ProxyAddress sdk.AccAddress `json:"proxy_address" yaml:"proxy_address"`
	Reg          bool           `json:"reg" yaml:"reg"`
}

MsgRegProxy - register delegator as proxy or unregister proxy to delegator if Reg == true, action is reg, otherwise action is unreg

func NewMsgRegProxy

func NewMsgRegProxy(proxyAddress sdk.AccAddress, reg bool) MsgRegProxy

NewMsgRegProxy creates a msg of registering proxy

func (MsgRegProxy) GetSignBytes

func (msg MsgRegProxy) GetSignBytes() []byte

GetSignBytes returns the message bytes to sign over

func (MsgRegProxy) GetSigners

func (msg MsgRegProxy) GetSigners() []sdk.AccAddress

func (MsgRegProxy) Route

func (MsgRegProxy) Route() string

nolint

func (MsgRegProxy) Type

func (MsgRegProxy) Type() string

func (MsgRegProxy) ValidateBasic

func (msg MsgRegProxy) ValidateBasic() error

ValidateBasic gives a quick validity check

type MsgUnbindProxy

type MsgUnbindProxy struct {
	DelAddr sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
}

MsgUnbindProxy - structure for unbinding proxy relationship between the delegator and the proxy

func NewMsgUnbindProxy

func NewMsgUnbindProxy(delAddr sdk.AccAddress) MsgUnbindProxy

NewMsgUnbindProxy creates a msg of unbinding proxy

func (MsgUnbindProxy) GetSignBytes

func (msg MsgUnbindProxy) GetSignBytes() []byte

GetSignBytes returns the message bytes to sign over

func (MsgUnbindProxy) GetSigners

func (msg MsgUnbindProxy) GetSigners() []sdk.AccAddress

func (MsgUnbindProxy) Route

func (MsgUnbindProxy) Route() string

nolint

func (MsgUnbindProxy) Type

func (MsgUnbindProxy) Type() string

func (MsgUnbindProxy) ValidateBasic

func (msg MsgUnbindProxy) ValidateBasic() error

ValidateBasic gives a quick validity check

type MsgWithdraw

type MsgWithdraw struct {
	DelegatorAddress sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
	Amount           sdk.SysCoin    `json:"quantity" yaml:"quantity"`
}

MsgWithdraw - structure for withdrawing okt and the corresponding shares from all validators

func NewMsgWithdraw

func NewMsgWithdraw(delAddr sdk.AccAddress, amount sdk.SysCoin) MsgWithdraw

NewMsgWithdraw creates a new instance of MsgWithdraw

func (MsgWithdraw) GetSignBytes

func (msg MsgWithdraw) GetSignBytes() []byte

GetSignBytes returns the message bytes to sign over

func (MsgWithdraw) GetSigners

func (msg MsgWithdraw) GetSigners() []sdk.AccAddress

func (MsgWithdraw) Route

func (msg MsgWithdraw) Route() string

nolint

func (MsgWithdraw) Type

func (msg MsgWithdraw) Type() string

func (MsgWithdraw) ValidateBasic

func (msg MsgWithdraw) ValidateBasic() error

ValidateBasic gives a quick validity check

type MultiStakingHooks

type MultiStakingHooks []StakingHooks

MultiStakingHooks combines multiple staking hooks, all hook functions are run in array sequence TODO:need to trim the staking hooks as the blockchain design

func NewMultiStakingHooks

func NewMultiStakingHooks(hooks ...StakingHooks) MultiStakingHooks

NewMultiStakingHooks creates a new object of MultiStakingHooks

func (MultiStakingHooks) AfterValidatorBeginUnbonding

func (h MultiStakingHooks) AfterValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress,
	valAddr sdk.ValAddress)

AfterValidatorBeginUnbonding handles the hooks after the validator began the unbonding

func (MultiStakingHooks) AfterValidatorBonded

func (h MultiStakingHooks) AfterValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress)

AfterValidatorBonded handles the hooks after the validator was bonded

func (MultiStakingHooks) AfterValidatorCreated

func (h MultiStakingHooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress)

AfterValidatorCreated handles the hooks after the validator created

func (MultiStakingHooks) AfterValidatorDestroyed

func (h MultiStakingHooks) AfterValidatorDestroyed(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress)

AfterValidatorDestroyed handles the hooks after the validator was destroyed by tx

func (MultiStakingHooks) AfterValidatorRemoved

func (h MultiStakingHooks) AfterValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress)

AfterValidatorRemoved handles the hooks after the validator was removed

func (MultiStakingHooks) BeforeValidatorModified

func (h MultiStakingHooks) BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress)

BeforeValidatorModified handles the hooks before the validator modified

type OVPair

type OVPair struct {
	OperAddr sdk.ValAddress `json:"operator_address"`
	ValAddr  string         `json:"validator_address"`
}

OVPair is designed for querying validators by rest

type OVPairs

type OVPairs []OVPair

OVPairs is the alias of the OVPair slice

func (OVPairs) String

func (ovPairs OVPairs) String() (out string)

String returns a human readable string representation of OVPairs

type Params

type Params struct {
	// time duration of unbonding
	UnbondingTime time.Duration `json:"unbonding_time" yaml:"unbonding_time"`
	// note: we need to be a bit careful about potential overflow here, since this is user-determined
	// maximum number of validators (max uint16 = 65535)
	MaxValidators uint16 `json:"max_bonded_validators" yaml:"max_bonded_validators"`
	// epoch for validator update
	Epoch              uint16 `json:"epoch" yaml:"epoch"`
	MaxValsToAddShares uint16 `json:"max_validators_to_add_shares" yaml:"max_validators_to_add_shares"`
	// bondable coin denomination
	BondDenom string `json:"bond_denom" yaml:"bond_denom"`
	// limited amount of delegate
	MinDelegation sdk.Dec `json:"min_delegation" yaml:"min_delegation"`
	// validator's self declared minimum self delegation
	MinSelfDelegation sdk.Dec `json:"min_self_delegation" yaml:"min_self_delegation"`
}

Params defines the high level settings for staking

func DefaultParams

func DefaultParams() Params

DefaultParams returns a default set of parameters

func NewParams

func NewParams(unbondingTime time.Duration, maxValidators uint16, bondDenom string, epoch uint16, maxValsToAddShares uint16,
	minDelegation sdk.Dec, minSelfDelegation sdk.Dec) Params

NewParams creates a new Params instance

func (Params) Equal

func (p Params) Equal(p2 Params) bool

Equal returns a boolean determining if two Param types are identical TODO: This is slower than comparing struct fields directly

func (*Params) ParamSetPairs

func (p *Params) ParamSetPairs() params.ParamSetPairs

ParamSetPairs is the implements params.ParamSet

func (Params) String

func (p Params) String() string

String returns a human readable string representation of the Params

func (Params) Validate

func (p Params) Validate() error

Validate gives a quick validity check for a set of params

type Pool

type Pool struct {
	// tokens which are not bonded to a validator (unbonded or unbonding)
	NotBondedTokens sdk.Dec `json:"not_bonded_tokens" yaml:"not_bonded_tokens"`
	// tokens which are currently bonded to a validator
	BondedTokens sdk.Dec `json:"bonded_tokens" yaml:"bonded_tokens"`
}

Pool - tracking bonded and not-bonded token supply of the bond denomination

func NewPool

func NewPool(notBonded, bonded sdk.Dec) Pool

NewPool creates a new Pool instance used for queries

func (Pool) String

func (p Pool) String() string

String returns a human readable string representation of Pool

type ProxyDelegatorKeyExported

type ProxyDelegatorKeyExported struct {
	DelAddr   sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
	ProxyAddr sdk.AccAddress `json:"proxy_address" yaml:"proxy_address"`
}

ProxyDelegatorKeyExported is designed for ProxyDelegatorKey export

func NewProxyDelegatorKeyExported

func NewProxyDelegatorKeyExported(delAddr, proxyAddr sdk.AccAddress) ProxyDelegatorKeyExported

NewProxyDelegatorKeyExported creates a new object of ProxyDelegatorKeyExported

type QueryDelegatorParams

type QueryDelegatorParams struct {
	DelegatorAddr sdk.AccAddress
}

QueryDelegatorParams defines the params for the following queries: - 'custom/staking/delegatorDelegations' - 'custom/staking/delegatorUnbondingDelegations' - 'custom/staking/delegatorValidators'

func NewQueryDelegatorParams

func NewQueryDelegatorParams(delegatorAddr sdk.AccAddress) QueryDelegatorParams

NewQueryDelegatorParams creates a new instance of QueryDelegatorParams

type QueryValidatorParams

type QueryValidatorParams struct {
	ValidatorAddr sdk.ValAddress
}

QueryValidatorParams defines the params for the following queries: - 'custom/staking/validator' - 'custom/staking/validatorDelegations' - 'custom/staking/validatorUnbondingDelegations' - 'custom/staking/validatorRedelegations'

func NewQueryValidatorParams

func NewQueryValidatorParams(validatorAddr sdk.ValAddress) QueryValidatorParams

NewQueryValidatorParams creates a new instance of QueryValidatorParams

type QueryValidatorsParams

type QueryValidatorsParams struct {
	Page, Limit int
	Status      string
}

QueryValidatorsParams defines the params for the following queries: - 'custom/staking/validators'

func NewQueryValidatorsParams

func NewQueryValidatorsParams(page, limit int, status string) QueryValidatorsParams

NewQueryValidatorsParams creates a new instance of QueryValidatorsParams

type Shares

type Shares = sdk.Dec

Shares is the alias of sdk.Dec to represent the amount of shares for adding shares to validators

func MustUnmarshalShares

func MustUnmarshalShares(cdc *codec.Codec, bytes []byte) Shares

MustUnmarshalShares unmarshals the shares bytes and return it

type SharesExported

type SharesExported struct {
	DelAddress       sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
	ValidatorAddress sdk.ValAddress `json:"validator_address" yaml:"validator_address"`
	Shares           Shares         `json:"shares" yaml:"shares"`
}

SharesExported is designed for types.Shares export

func NewSharesExported

func NewSharesExported(delAddr sdk.AccAddress, valAddr sdk.ValAddress, shares Shares) SharesExported

NewSharesExported creates a new object of SharesExported

type SharesResponse

type SharesResponse struct {
	DelAddr sdk.AccAddress `json:"delegator_address"`
	Shares  sdk.Dec        `json:"shares"`
}

SharesResponse is the struct for query all the shares on a validator

func NewSharesResponse

func NewSharesResponse(delAddr sdk.AccAddress, shares Shares) SharesResponse

NewSharesResponse creates a new instance of sharesResponse

func (SharesResponse) String

func (sr SharesResponse) String() string

String returns a human readable string representation of SharesResponse

type SharesResponses

type SharesResponses []SharesResponse

SharesResponses is the type alias of SharesResponse slice

func (SharesResponses) String

func (srs SharesResponses) String() (strFormat string)

String returns a human readable string representation of SharesResponses

type StakingHooks

type StakingHooks interface {
	// Must be called when a validator is created
	AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress)
	// Must be called when a validator's state changes
	BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress)
	// Must be called when a validator is deleted
	AfterValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress)
	// Must be called when a validator is bonded
	AfterValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress)
	// Must be called when a validator begins unbonding
	AfterValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress)

	// required by blockchain
	// Must be called when a validator is destroyed by tx
	AfterValidatorDestroyed(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress)
}

StakingHooks event hooks for staking validator object (noalias)

type StandardizedValidator

type StandardizedValidator struct {
	OperatorAddress         sdk.ValAddress `json:"operator_address" yaml:"operator_address"`
	ConsPubKey              crypto.PubKey  `json:"consensus_pubkey" yaml:"consensus_pubkey"`
	Jailed                  bool           `json:"jailed" yaml:"jailed"`
	Status                  sdk.BondStatus `json:"status" yaml:"status"`
	DelegatorShares         sdk.Dec        `json:"delegator_shares" yaml:"delegator_shares"`
	Description             Description    `json:"description" yaml:"description"`
	UnbondingHeight         int64          `json:"unbonding_height" yaml:"unbonding_height"`
	UnbondingCompletionTime time.Time      `json:"unbonding_time" yaml:"unbonding_time"`
	MinSelfDelegation       sdk.Dec        `json:"min_self_delegation" yaml:"min_self_delegation"`
}

StandardizedValidator is just a copy of Validator in cosmos sdk The field "DelegatorShares"/"MinSelfDelegation" is treated by descending power 8 to decimal

func (StandardizedValidator) MarshalYAML

func (sv StandardizedValidator) MarshalYAML() (interface{}, error)

MarshalYAML implememts the text format for yaml marshaling

func (StandardizedValidator) String

func (sv StandardizedValidator) String() string

String returns a human readable string representation of a StandardizeValidator

type StandardizedValidators

type StandardizedValidators []StandardizedValidator

StandardizedValidators is the type alias of the StandardizedValidator slice

func (StandardizedValidators) MarshalYAML

func (svs StandardizedValidators) MarshalYAML() (interface{}, error)

MarshalYAML implememts the text format for yaml marshaling

func (StandardizedValidators) String

func (svs StandardizedValidators) String() string

String returns a human readable string representation of StandardizeValidators

type SupplyKeeper

type SupplyKeeper interface {
	GetSupplyByDenom(ctx sdk.Context, denom string) sdk.Dec

	GetModuleAddress(name string) sdk.AccAddress
	GetModuleAccount(ctx sdk.Context, moduleName string) supplyexported.ModuleAccountI

	// TODO remove with genesis 2-phases refactor https://github.com/cosmos/cosmos-sdk/issues/2862
	SetModuleAccount(sdk.Context, supplyexported.ModuleAccountI)

	SendCoinsFromModuleToModule(ctx sdk.Context, senderPool, recipientPool string, amt sdk.Coins) error
	UndelegateCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress,
		amt sdk.SysCoins) error
	DelegateCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string,
		amt sdk.SysCoins) error

	BurnCoins(ctx sdk.Context, name string, amt sdk.Coins) error
}

SupplyKeeper defines the expected supply Keeper (noalias)

type UndelegationInfo

type UndelegationInfo struct {
	DelegatorAddress sdk.AccAddress `json:"delegator_address" yaml:"delegator_address"`
	Quantity         sdk.Dec        `json:"quantity" yaml:"quantity"`
	CompletionTime   time.Time      `json:"completion_time"`
}

UndelegationInfo is the struct of the undelegation info

func DefaultUndelegation

func DefaultUndelegation() UndelegationInfo

DefaultUndelegation returns default entity for UndelegationInfo

func MustUnMarshalUndelegationInfo

func MustUnMarshalUndelegationInfo(cdc *codec.Codec, value []byte) UndelegationInfo

MustUnMarshalUndelegationInfo must return the UndelegationInfo object by unmarshaling

func NewUndelegationInfo

func NewUndelegationInfo(delegatorAddr sdk.AccAddress, sharesQuantity Shares, completionTime time.Time) UndelegationInfo

NewUndelegationInfo creates a new delegation object

func UnmarshalUndelegationInfo

func UnmarshalUndelegationInfo(cdc *codec.Codec, value []byte) (undelegationInfo UndelegationInfo, err error)

UnmarshalUndelegationInfo returns the UndelegationInfo object by unmarshaling

func (UndelegationInfo) String

func (ud UndelegationInfo) String() string

String returns a human readable string representation of UndelegationInfo

type Validator

type Validator struct {
	// address of the validator's operator; bech encoded in JSON
	OperatorAddress sdk.ValAddress `json:"operator_address" yaml:"operator_address"`
	// the consensus public key of the validator; bech encoded in JSON
	ConsPubKey crypto.PubKey `json:"consensus_pubkey" yaml:"consensus_pubkey"`
	// has the validator been jailed from bonded status?
	Jailed bool `json:"jailed" yaml:"jailed"`
	// validator status (bonded/unbonding/unbonded)
	Status sdk.BondStatus `json:"status" yaml:"status"`
	// delegated tokens (incl. self-delegation)
	Tokens sdk.Int `json:"tokens" yaml:"tokens"`
	// total shares added to a validator
	DelegatorShares sdk.Dec `json:"delegator_shares" yaml:"delegator_shares"`
	// description terms for the validator
	Description Description `json:"description" yaml:"description"`
	// if unbonding, height at which this validator has begun unbonding
	UnbondingHeight int64 `json:"unbonding_height" yaml:"unbonding_height"`
	// if unbonding, min time for the validator to complete unbonding
	UnbondingCompletionTime time.Time `json:"unbonding_time" yaml:"unbonding_time"`
	// commission parameters
	Commission Commission `json:"commission" yaml:"commission"`
	// validator's self declared minimum self delegation
	MinSelfDelegation sdk.Dec `json:"min_self_delegation" yaml:"min_self_delegation"`
}

Validator defines the total amount of bond shares and their exchange rate to coins. Slashing results in a decrease in the exchange rate, allowing correct calculation of future undelegations without iterating over delegators. When coins are delegated to this validator, the validator is credited with a delegation 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 bonded shares multiplied by exchange rate.

func MustUnmarshalValidator

func MustUnmarshalValidator(cdc *codec.Codec, value []byte) Validator

MustUnmarshalValidator must return the validator entity by unmarshaling

func NewValidator

func NewValidator(operator sdk.ValAddress, pubKey crypto.PubKey, description Description, minSelfDelegation sdk.Dec) Validator

NewValidator initializes a new validator

func UnmarshalValidator

func UnmarshalValidator(cdc *codec.Codec, value []byte) (validator Validator, err error)

UnmarshalValidator unmarshals a validator from a store value

func (Validator) ABCIValidatorUpdate

func (v Validator) ABCIValidatorUpdate() abci.ValidatorUpdate

ABCIValidatorUpdate returns an abci.ValidatorUpdate from a staking validator type with the full validator power

func (Validator) ABCIValidatorUpdateByShares

func (v Validator) ABCIValidatorUpdateByShares() abci.ValidatorUpdate

ABCIValidatorUpdateByShares returns an abci.ValidatorUpdate from a staking validator type with the full validator power based on shares

func (Validator) ABCIValidatorUpdateZero

func (v Validator) ABCIValidatorUpdateZero() abci.ValidatorUpdate

ABCIValidatorUpdateZero returns an abci.ValidatorUpdate from a staking validator type with zero power used for validator updates.

func (Validator) BondedTokens

func (v Validator) BondedTokens() sdk.Int

BondedTokens gets the bonded tokens which the validator holds

func (Validator) ConsAddress

func (v Validator) ConsAddress() sdk.ConsAddress

ConsAddress returns the TM validator address

func (Validator) ConsensusPower

func (v Validator) ConsensusPower() int64

ConsensusPower gets the consensus-engine power

func (Validator) ConsensusPowerByShares

func (v Validator) ConsensusPowerByShares() int64

ConsensusPowerByShares gets the consensus-engine power

func (Validator) Export

func (v Validator) Export() ValidatorExported

Export returns the exported format of validator in genesis export

func (Validator) GetBondedTokens

func (v Validator) GetBondedTokens() sdk.Int

func (Validator) GetCommission

func (v Validator) GetCommission() sdk.Dec

func (Validator) GetConsAddr

func (v Validator) GetConsAddr() sdk.ConsAddress

func (Validator) GetConsPubKey

func (v Validator) GetConsPubKey() crypto.PubKey

func (Validator) GetConsensusPower

func (v Validator) GetConsensusPower() int64

func (Validator) GetDelegatorShares

func (v Validator) GetDelegatorShares() sdk.Dec

func (Validator) GetMinSelfDelegation

func (v Validator) GetMinSelfDelegation() sdk.Dec

func (Validator) GetMoniker

func (v Validator) GetMoniker() string

func (Validator) GetOperator

func (v Validator) GetOperator() sdk.ValAddress

func (Validator) GetStatus

func (v Validator) GetStatus() sdk.BondStatus

func (Validator) GetTokens

func (v Validator) GetTokens() sdk.Int

func (Validator) IsBonded

func (v Validator) IsBonded() bool

IsBonded checks if the validator status equals Bonded

func (Validator) IsJailed

func (v Validator) IsJailed() bool

nolint - for ValidatorI

func (Validator) IsUnbonded

func (v Validator) IsUnbonded() bool

IsUnbonded checks if the validator status equals Unbonded

func (Validator) IsUnbonding

func (v Validator) IsUnbonding() bool

IsUnbonding checks if the validator status equals Unbonding

func (Validator) MarshalJSON

func (v Validator) MarshalJSON() ([]byte, error)

MarshalJSON marshals the validator to JSON using Bech32

func (Validator) MarshalYAML

func (v Validator) MarshalYAML() (interface{}, error)

MarshalYAML implements the text format for yaml marshaling due to consensus pubkey

func (Validator) PotentialConsensusPowerByShares

func (v Validator) PotentialConsensusPowerByShares() int64

PotentialConsensusPowerByShares gets potential consensus-engine power based on shares

func (Validator) SetInitialCommission

func (v Validator) SetInitialCommission(commission Commission) (Validator, error)

SetInitialCommission attempts to set a validator's initial commission. An error is returned if the commission is invalid.

func (Validator) SharesFromTokens

func (v Validator) SharesFromTokens(amt sdk.Int) (sdk.Dec, error)

SharesFromTokens returns the shares of a delegation given a bond amount It returns an error if the validator has no tokens No usage found in All Places

func (Validator) SharesFromTokensTruncated

func (v Validator) SharesFromTokensTruncated(amt sdk.Int) (sdk.Dec, error)

SharesFromTokensTruncated returns the truncated shares of a delegation given a bond amount It returns an error if the validator has no tokens No usage found in All Places

func (Validator) Standardize

func (v Validator) Standardize() StandardizedValidator

Standardize converts inner struct Validator to StandardizedValidator which is used to display

func (Validator) String

func (v Validator) String() string

String returns a human readable string representation of a validator.

func (Validator) TestEquivalent

func (v Validator) TestEquivalent(v2 Validator) bool

TestEquivalent is only for the ut

func (Validator) TokensFromShares

func (v Validator) TokensFromShares(shares sdk.Dec) sdk.Dec

TokensFromShares calculates the token worth of provided shares

func (Validator) TokensFromSharesRoundUp

func (v Validator) TokensFromSharesRoundUp(shares sdk.Dec) sdk.Dec

TokensFromSharesRoundUp returns the token worth of provided shares, rounded up No usage found in All Places

func (Validator) TokensFromSharesTruncated

func (v Validator) TokensFromSharesTruncated(shares sdk.Dec) sdk.Dec

TokensFromSharesTruncated calculates the token worth of provided shares, truncated

func (*Validator) UnmarshalJSON

func (v *Validator) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals the validator from JSON using Bech32

func (Validator) UpdateStatus

func (v Validator) UpdateStatus(newStatus sdk.BondStatus) Validator

UpdateStatus updates the location of the shares within a validator to reflect the new status

type ValidatorExported

type ValidatorExported struct {
	OperatorAddress         sdk.ValAddress `json:"operator_address"`
	ConsPubKey              string         `json:"consensus_pubkey"`
	Jailed                  bool           `json:"jailed"`
	Status                  sdk.BondStatus `json:"status" yaml:"status"`
	DelegatorShares         sdk.Dec        `json:"delegator_shares"`
	Description             Description    `json:"description"`
	UnbondingHeight         int64          `json:"unbonding_height"`
	UnbondingCompletionTime time.Time      `json:"unbonding_time"`
	MinSelfDelegation       sdk.Dec        `json:"min_self_delegation"`
}

ValidatorExported is designed for Validator export

func (ValidatorExported) ConsAddress

func (ve ValidatorExported) ConsAddress() sdk.ConsAddress

ConsAddress returns the TM validator address of exported validator

func (ValidatorExported) Import

func (ve ValidatorExported) Import() Validator

Import converts validator exported format to inner one by filling the zero-value of Tokens and Commission

func (ValidatorExported) IsBonded

func (ve ValidatorExported) IsBonded() bool

IsBonded checks if the exported validator status equals Bonded

type ValidatorSet

type ValidatorSet interface {
	// iterate through validators by operator address, execute func for each validator
	IterateValidators(sdk.Context,
		func(index int64, validator stakingexported.ValidatorI) (stop bool))

	// iterate through bonded validators by operator address, execute func for each validator
	IterateBondedValidatorsByPower(sdk.Context,
		func(index int64, validator stakingexported.ValidatorI) (stop bool))

	// iterate through the consensus validator set of the last block by operator address, execute func for each validator
	IterateLastValidators(sdk.Context,
		func(index int64, validator stakingexported.ValidatorI) (stop bool))
	// get a particular validator by operator address
	Validator(sdk.Context, sdk.ValAddress) stakingexported.ValidatorI
	// get a particular validator by consensus address
	ValidatorByConsAddr(sdk.Context, sdk.ConsAddress) stakingexported.ValidatorI
	// total bonded tokens within the validator set
	TotalBondedTokens(sdk.Context) sdk.Dec
	// total staking token supply
	StakingTokenSupply(sdk.Context) sdk.Dec

	// slash the validator and delegators of the validator, specifying offence height, offence power, and slash fraction
	// jail a validator
	Jail(sdk.Context, sdk.ConsAddress)
	// unjail a validator
	Unjail(sdk.Context, sdk.ConsAddress)

	// MaxValidators returns the maximum amount of bonded validators
	MaxValidators(sdk.Context) uint16
}

ValidatorSet expected properties for the set of all validators (noalias)

type Validators

type Validators []Validator

Validators is a collection of Validator

func (Validators) Export

func (v Validators) Export() []ValidatorExported

Export returns the exported format of Validators in genesis export

func (Validators) Standardize

func (v Validators) Standardize() StandardizedValidators

Standardize converts inner struct Validators to StandardizedValidators which is used to display

func (Validators) String

func (v Validators) String() (out string)

String returns a human readable string representation of Validators

func (Validators) ToSDKValidators

func (v Validators) ToSDKValidators() (validators []exported.ValidatorI)

ToSDKValidators converts []Validators to []sdk.Validators

Jump to

Keyboard shortcuts

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