github.com/Finschia/finschia-sdk@v0.48.1/x/staking/types/exported.go (about)

     1  package types
     2  
     3  import (
     4  	tmprotocrypto "github.com/tendermint/tendermint/proto/tendermint/crypto"
     5  
     6  	cryptotypes "github.com/Finschia/finschia-sdk/crypto/types"
     7  	sdk "github.com/Finschia/finschia-sdk/types"
     8  )
     9  
    10  // DelegationI delegation bond for a delegated proof of stake system
    11  type DelegationI interface {
    12  	GetDelegatorAddr() sdk.AccAddress // delegator sdk.AccAddress for the bond
    13  	GetValidatorAddr() sdk.ValAddress // validator operator address
    14  	GetShares() sdk.Dec               // amount of validator's shares held in this delegation
    15  }
    16  
    17  // ValidatorI expected validator functions
    18  type ValidatorI interface {
    19  	IsJailed() bool                                         // whether the validator is jailed
    20  	GetMoniker() string                                     // moniker of the validator
    21  	GetStatus() BondStatus                                  // status of the validator
    22  	IsBonded() bool                                         // check if has a bonded status
    23  	IsUnbonded() bool                                       // check if has status unbonded
    24  	IsUnbonding() bool                                      // check if has status unbonding
    25  	GetOperator() sdk.ValAddress                            // operator address to receive/return validators coins
    26  	ConsPubKey() (cryptotypes.PubKey, error)                // validation consensus pubkey (cryptotypes.PubKey)
    27  	OcConsPublicKey() (tmprotocrypto.PublicKey, error)      // validation consensus pubkey (Ostracon)
    28  	GetConsAddr() (sdk.ConsAddress, error)                  // validation consensus address
    29  	GetTokens() sdk.Int                                     // validation tokens
    30  	GetBondedTokens() sdk.Int                               // validator bonded tokens
    31  	GetConsensusPower(sdk.Int) int64                        // validation power in tendermint
    32  	GetCommission() sdk.Dec                                 // validator commission rate
    33  	GetMinSelfDelegation() sdk.Int                          // validator minimum self delegation
    34  	GetDelegatorShares() sdk.Dec                            // total outstanding delegator shares
    35  	TokensFromShares(sdk.Dec) sdk.Dec                       // token worth of provided delegator shares
    36  	TokensFromSharesTruncated(sdk.Dec) sdk.Dec              // token worth of provided delegator shares, truncated
    37  	TokensFromSharesRoundUp(sdk.Dec) sdk.Dec                // token worth of provided delegator shares, rounded up
    38  	SharesFromTokens(amt sdk.Int) (sdk.Dec, error)          // shares worth of delegator's bond
    39  	SharesFromTokensTruncated(amt sdk.Int) (sdk.Dec, error) // truncated shares worth of delegator's bond
    40  }