stake

package
v0.1.0-rc.3 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2018 License: GPL-3.0 Imports: 29 Imported by: 15

Documentation

Overview

nolint

Index

Constants

View Source
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 CheckTx

func CheckTx(ctx types.Context, store state.SimpleDB, tx sdk.Tx) (res sdk.CheckResult, err error)

CheckTx checks if the tx is properly structured

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 HandlePendingUnstakeRequests

func HandlePendingUnstakeRequests(height int64, store state.SimpleDB) error

func InitState

func InitState(key string, value interface{}, store state.SimpleDB) error

InitState - set genesis parameters for staking

func NewAwardDistributor

func NewAwardDistributor(height int64, validators, backupValidators Validators, transactionFees *big.Int, logger log.Logger) *awardDistributor

func NewTxActivateCandidacy

func NewTxActivateCandidacy() sdk.Tx

func NewTxDeclareCandidacy

func NewTxDeclareCandidacy(pubKey types.PubKey, maxAmount, compRate string, descrpition Description) sdk.Tx

func NewTxDelegate

func NewTxDelegate(validatorAddress common.Address, amount, cubeBatch, sig string) sdk.Tx

func NewTxUpdateCandidacy

func NewTxUpdateCandidacy(maxAmount string, description Description) sdk.Tx

func NewTxVerifyCandidacy

func NewTxVerifyCandidacy(candidateAddress common.Address, verified bool) sdk.Tx

func NewTxWithdraw

func NewTxWithdraw(validatorAddress common.Address, amount string) sdk.Tx

func NewTxWithdrawCandidacy

func NewTxWithdrawCandidacy() sdk.Tx

func PunishAbsentValidator

func PunishAbsentValidator(pubKey types.PubKey, absence *Absence) (err error)

func PunishByzantineValidator

func PunishByzantineValidator(pubKey types.PubKey) (err error)

func RemoveAbsentValidator

func RemoveAbsentValidator(pubKey types.PubKey) (err error)

func RemoveDelegation

func RemoveDelegation(delegation *Delegation)

func RemoveDelegator

func RemoveDelegator(delegator *Delegator)

func SaveCandidate

func SaveCandidate(candidate *Candidate)

func SaveDelegation

func SaveDelegation(d *Delegation)

func SaveDelegator

func SaveDelegator(delegator *Delegator)

func SetValidator

func SetValidator(val types.GenesisValidator, store state.SimpleDB) error

func UpdateDelegation

func UpdateDelegation(d *Delegation)

func UpdateValidatorSet

func UpdateValidatorSet(store state.SimpleDB) (change []abci.Validator, err error)

UpdateValidatorSet - Updates the voting power for the candidate set and returns the subset of validators which have changed for Tendermint

func VerifyCubeSignature

func VerifyCubeSignature(address common.Address, nonce uint64, cubeBatch string, sig string) error

Types

type Absence

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

func (*Absence) Accumulate

func (a *Absence) Accumulate()

func (Absence) GetCount

func (a Absence) GetCount() int16

type AbsentValidators

type AbsentValidators struct {
	Validators map[types.PubKey]*Absence
}

func NewAbsentValidators

func NewAbsentValidators() *AbsentValidators

func (AbsentValidators) Add

func (av AbsentValidators) Add(pk types.PubKey, height int64)

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
	Shares       string       `json:"shares"`        // Total number of delegated shares to this candidate, equivalent to coins held in bond account
	VotingPower  int64        `json:"voting_power"`  // Voting power if pubKey is a considered a validator
	RankingPower int64        `json:"ranking_power"` // Ranking power if pubKey is a considered a validator
	MaxShares    string       `json:"max_shares"`
	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 GetCandidateByAddress(address common.Address) *Candidate

func GetCandidateByPubKey

func GetCandidateByPubKey(pubKey string) *Candidate

func (*Candidate) AddShares

func (c *Candidate) AddShares(value *big.Int) *big.Int

func (*Candidate) CalcRankingPower

func (c *Candidate) CalcRankingPower()

func (*Candidate) Hash

func (c *Candidate) Hash() []byte

func (*Candidate) ParseCompRate

func (c *Candidate) ParseCompRate() float64

func (*Candidate) ParseMaxShares

func (c *Candidate) ParseMaxShares() *big.Int

func (*Candidate) ParseShares

func (c *Candidate) ParseShares() *big.Int

func (*Candidate) SelfStakingAmount

func (c *Candidate) SelfStakingAmount(ratio string) (result *big.Int)

func (*Candidate) Validator

func (c *Candidate) Validator() Validator

Validator returns a copy of the Candidate as a Validator. Should only be called when the Candidate qualifies as a validator.

type Candidates

type Candidates []*Candidate

func GetBackupValidators

func GetBackupValidators() (candidates Candidates)

func GetCandidates

func GetCandidates() (candidates Candidates)

func (Candidates) Len

func (cs Candidates) Len() int

nolint - sort interface functions

func (Candidates) Less

func (cs Candidates) Less(i, j int) bool

func (Candidates) Sort

func (cs Candidates) Sort()

Sort - Sort the array of bonded values

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 DelegateHistory struct {
	Id               int64
	DelegatorAddress common.Address
	PubKey           types.PubKey
	Amount           *big.Int
	OpCode           string
	CreatedAt        string
}

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

type Delegator struct {
	Address   common.Address
	CreatedAt string
}

func GetDelegator

func GetDelegator(address string) *Delegator

type Description

type Description struct {
	Name     string `json:"name"`
	Website  string `json:"website"`
	Location string `json:"location"`
	Email    string `json:"email"`
	Profile  string `json:"profile"`
}

type PunishHistory

type PunishHistory struct {
	PubKey        types.PubKey
	SlashingRatio float64
	SlashAmount   *big.Int
	Reason        string
	CreatedAt     string
}

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

func (TxDelegate) Wrap

func (tx TxDelegate) Wrap() sdk.Tx

Wrap - Wrap a Tx as a Travis Tx

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

func (TxWithdraw) Wrap

func (tx TxWithdraw) Wrap() sdk.Tx

Wrap - Wrap a Tx as a Travis Tx

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

func (v Validator) ABCIValidator() abci.Validator

ABCIValidator - Get the validator from a bond value

type Validators

type Validators []Validator

Validators - list of Validators

func (Validators) Len

func (vs Validators) Len() int

nolint - sort interface functions

func (Validators) Less

func (vs Validators) Less(i, j int) bool

func (Validators) Remove

func (vs Validators) Remove(i int) Validators

func (Validators) Sort

func (vs Validators) Sort()

Sort - Sort validators by pubkey

func (Validators) Swap

func (vs Validators) Swap(i, j int)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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