github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/gov/keeper/expected_keepers.go (about) 1 package keeper 2 3 import ( 4 supplyexported "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/supply/exported" 5 stakingexported "github.com/fibonacci-chain/fbc/x/staking/exported" 6 7 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 8 ) 9 10 // BankKeeper defines expected bank keeper 11 type BankKeeper interface { 12 GetCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins 13 14 // TODO remove once governance doesn't require use of accounts 15 SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) sdk.Error 16 SetSendEnabled(ctx sdk.Context, enabled bool) 17 SubtractCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) (sdk.Coins, sdk.Error) 18 } 19 20 // StakingKeeper defines expected staking keeper (Validator and Delegator sets) 21 type StakingKeeper interface { 22 // iterate through bonded validators by operator address, execute func for each validator 23 // gov use it for getting votes of validator 24 IterateBondedValidatorsByPower(sdk.Context, 25 func(index int64, validator stakingexported.ValidatorI) (stop bool)) 26 27 // gov use it for getting votes of delegator which has been voted to validator 28 Delegator(ctx sdk.Context, delAddr sdk.AccAddress) stakingexported.DelegatorI 29 } 30 31 // SupplyKeeper defines the supply Keeper for module accounts 32 type SupplyKeeper interface { 33 GetModuleAddress(name string) sdk.AccAddress 34 GetModuleAccount(ctx sdk.Context, name string) supplyexported.ModuleAccountI 35 36 // TODO remove with genesis 2-phases refactor https://github.com/cosmos/cosmos-sdk/issues/2862 37 SetModuleAccount(sdk.Context, supplyexported.ModuleAccountI) 38 39 SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) sdk.Error 40 SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) sdk.Error 41 SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) sdk.Error 42 BurnCoins(ctx sdk.Context, name string, amt sdk.Coins) sdk.Error 43 }