33 lines
1.4 KiB
Go
33 lines
1.4 KiB
Go
package gov
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
stakingexported "github.com/cosmos/cosmos-sdk/x/staking/exported"
|
|
supplyexported "github.com/cosmos/cosmos-sdk/x/supply/exported"
|
|
)
|
|
|
|
// SupplyKeeper defines the supply Keeper for module accounts
|
|
type SupplyKeeper interface {
|
|
GetModuleAddress(name string) sdk.AccAddress
|
|
GetModuleAccount(ctx sdk.Context, name string) supplyexported.ModuleAccountI
|
|
|
|
// TODO remove with genesis 2-phases refactor https://github.com/cosmos/cosmos-sdk/issues/2862
|
|
SetModuleAccount(sdk.Context, supplyexported.ModuleAccountI)
|
|
|
|
SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) sdk.Error
|
|
SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) sdk.Error
|
|
BurnCoins(ctx sdk.Context, name string, amt sdk.Coins) sdk.Error
|
|
}
|
|
|
|
// 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 stakingexported.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 stakingexported.DelegationI) (stop bool))
|
|
}
|