28 lines
971 B
Go
28 lines
971 B
Go
package gov
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/x/staking/exported"
|
|
)
|
|
|
|
// expected bank keeper
|
|
type BankKeeper interface {
|
|
GetCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
|
|
|
|
// TODO remove once governance doesn't require use of accounts
|
|
SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) sdk.Error
|
|
SetSendEnabled(ctx sdk.Context, enabled bool)
|
|
}
|
|
|
|
// StakingKeeper expected staking keeper (Validator and Delegator sets)
|
|
type StakingKeeper interface {
|
|
// iterate through bonded validators by operator address, execute func for each validator
|
|
IterateBondedValidatorsByPower(sdk.Context,
|
|
func(index int64, validator exported.ValidatorI) (stop bool))
|
|
|
|
TotalBondedTokens(sdk.Context) sdk.Int // total bonded tokens within the validator set
|
|
|
|
IterateDelegations(ctx sdk.Context, delegator sdk.AccAddress,
|
|
fn func(index int64, delegation exported.DelegationI) (stop bool))
|
|
}
|