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 }