github.com/cosmos/cosmos-sdk@v0.50.10/x/mint/types/expected_keepers.go (about)

     1  package types // noalias
     2  
     3  import (
     4  	context "context"
     5  
     6  	"cosmossdk.io/math"
     7  
     8  	sdk "github.com/cosmos/cosmos-sdk/types"
     9  )
    10  
    11  // StakingKeeper defines the expected staking keeper
    12  type StakingKeeper interface {
    13  	StakingTokenSupply(ctx context.Context) (math.Int, error)
    14  	BondedRatio(ctx context.Context) (math.LegacyDec, error)
    15  }
    16  
    17  // AccountKeeper defines the contract required for account APIs.
    18  type AccountKeeper interface {
    19  	GetModuleAddress(name string) sdk.AccAddress
    20  
    21  	// TODO remove with genesis 2-phases refactor https://github.com/cosmos/cosmos-sdk/issues/2862
    22  	SetModuleAccount(context.Context, sdk.ModuleAccountI)
    23  	GetModuleAccount(ctx context.Context, moduleName string) sdk.ModuleAccountI
    24  }
    25  
    26  // BankKeeper defines the contract needed to be fulfilled for banking and supply
    27  // dependencies.
    28  type BankKeeper interface {
    29  	SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
    30  	SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error
    31  	MintCoins(ctx context.Context, name string, amt sdk.Coins) error
    32  }