/
expected_keepers.go
63 lines (54 loc) · 2.11 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package types
import (
sdk "github.com/cosmos/cosmos-sdk/types"
gammtypes "github.com/percosis-labs/percosis/v16/x/gamm/types"
poolmanagertypes "github.com/percosis-labs/percosis/v16/x/poolmanager/types"
epochtypes "github.com/percosis-labs/percosis/x/epochs/types"
)
// AccountKeeper defines the account contract that must be fulfilled when
// creating a x/protorev keeper.
type AccountKeeper interface {
GetModuleAddress(moduleName string) sdk.AccAddress
}
// BankKeeper defines the banking contract that must be fulfilled when
// creating a x/protorev keeper.
type BankKeeper interface {
SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
BurnCoins(ctx sdk.Context, name string, amt sdk.Coins) error
}
// GAMMKeeper defines the Gamm contract that must be fulfilled when
// creating a x/protorev keeper.
type GAMMKeeper interface {
GetPoolAndPoke(ctx sdk.Context, poolId uint64) (gammtypes.CFMMPoolI, error)
}
// PoolManagerKeeper defines the PoolManager contract that must be fulfilled when
// creating a x/protorev keeper.
type PoolManagerKeeper interface {
RouteExactAmountIn(
ctx sdk.Context,
sender sdk.AccAddress,
routes []poolmanagertypes.SwapAmountInRoute,
tokenIn sdk.Coin,
tokenOutMinAmount sdk.Int) (tokenOutAmount sdk.Int, err error)
MultihopEstimateOutGivenExactAmountIn(
ctx sdk.Context,
routes []poolmanagertypes.SwapAmountInRoute,
tokenIn sdk.Coin,
) (tokenOutAmount sdk.Int, err error)
AllPools(
ctx sdk.Context,
) ([]poolmanagertypes.PoolI, error)
GetPool(
ctx sdk.Context,
poolId uint64,
) (poolmanagertypes.PoolI, error)
GetPoolModule(ctx sdk.Context, poolId uint64) (poolmanagertypes.PoolModuleI, error)
GetTotalPoolLiquidity(ctx sdk.Context, poolId uint64) (sdk.Coins, error)
RouteGetPoolDenoms(ctx sdk.Context, poolId uint64) ([]string, error)
}
// EpochKeeper defines the Epoch contract that must be fulfilled when
// creating a x/protorev keeper.
type EpochKeeper interface {
GetEpochInfo(ctx sdk.Context, identifier string) epochtypes.EpochInfo
}