-
Notifications
You must be signed in to change notification settings - Fork 55
/
expected_keepers.go
44 lines (38 loc) · 2.24 KB
/
expected_keepers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package types
import (
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
farmtypes "github.com/crescent-network/crescent/v3/x/farm/types"
liquiditytypes "github.com/crescent-network/crescent/v3/x/liquidity/types"
)
// AccountKeeper defines the expected interface needed for the module.
type AccountKeeper interface {
GetModuleAddress(name string) sdk.AccAddress
}
// BankKeeper defines the expected interface needed for the module.
type BankKeeper interface {
GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin
GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
GetSupply(ctx sdk.Context, denom string) sdk.Coin
SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error
InputOutputCoins(ctx sdk.Context, inputs []banktypes.Input, outputs []banktypes.Output) error
MintCoins(ctx sdk.Context, name string, amt sdk.Coins) error
BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
}
// FarmKeeper defines the expected interface needed for the module.
type FarmKeeper interface {
Farm(ctx sdk.Context, farmerAddr sdk.AccAddress, coin sdk.Coin) (withdrawnRewards sdk.Coins, err error)
Unfarm(ctx sdk.Context, farmerAddr sdk.AccAddress, coin sdk.Coin) (withdrawnRewards sdk.Coins, err error)
Harvest(ctx sdk.Context, farmerAddr sdk.AccAddress, denom string) (withdrawnRewards sdk.Coins, err error)
Rewards(ctx sdk.Context, farmerAddr sdk.AccAddress, denom string) sdk.DecCoins
GetFarm(ctx sdk.Context, denom string) (farm farmtypes.Farm, found bool)
GetPosition(ctx sdk.Context, farmerAddr sdk.AccAddress, denom string) (position farmtypes.Position, found bool)
}
// LiquidityKeeper defines the expected interface needed for the module.
type LiquidityKeeper interface {
GetPool(ctx sdk.Context, id uint64) (pool liquiditytypes.Pool, found bool)
Withdraw(ctx sdk.Context, msg *liquiditytypes.MsgWithdraw) (liquiditytypes.WithdrawRequest, error)
}