github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/staking/exported/exported.go (about)

     1  package exported
     2  
     3  import (
     4  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     5  	"github.com/fibonacci-chain/fbc/libs/tendermint/crypto"
     6  )
     7  
     8  // DelegatorI expected delegator functions
     9  type DelegatorI interface {
    10  	GetShareAddedValidatorAddresses() []sdk.ValAddress
    11  	GetLastAddedShares() sdk.Dec
    12  	GetDelegatorAddress() sdk.AccAddress
    13  }
    14  
    15  // ValidatorI expected validator functions
    16  type ValidatorI interface {
    17  	IsJailed() bool                                         // whether the validator is jailed
    18  	GetMoniker() string                                     // moniker of the validator
    19  	GetStatus() sdk.BondStatus                              // status of the validator
    20  	IsBonded() bool                                         // check if has a bonded status
    21  	IsUnbonded() bool                                       // check if has status unbonded
    22  	IsUnbonding() bool                                      // check if has status unbonding
    23  	GetOperator() sdk.ValAddress                            // operator address to receive/return validators coins
    24  	GetConsPubKey() crypto.PubKey                           // validation consensus pubkey
    25  	GetConsAddr() sdk.ConsAddress                           // validation consensus address
    26  	GetTokens() sdk.Int                                     // validation tokens
    27  	GetBondedTokens() sdk.Int                               // validator bonded tokens
    28  	GetConsensusPower() int64                               // validation power in tendermint
    29  	GetCommission() sdk.Dec                                 // validator commission rate
    30  	GetMinSelfDelegation() sdk.Dec                          // validator minimum self delegation
    31  	GetDelegatorShares() sdk.Dec                            // total outstanding delegator shares
    32  	TokensFromShares(sdk.Dec) sdk.Dec                       // token worth of provided delegator shares
    33  	TokensFromSharesTruncated(sdk.Dec) sdk.Dec              // token worth of provided delegator shares, truncated
    34  	TokensFromSharesRoundUp(sdk.Dec) sdk.Dec                // token worth of provided delegator shares, rounded up
    35  	SharesFromTokens(amt sdk.Int) (sdk.Dec, error)          // shares worth of delegator's bond
    36  	SharesFromTokensTruncated(amt sdk.Int) (sdk.Dec, error) // truncated shares worth of delegator's bond
    37  }