/
expected_keepers.go
91 lines (79 loc) · 3.23 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package types
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/osmosis-labs/osmosis/osmomath"
gammtypes "github.com/osmosis-labs/osmosis/v24/x/gamm/types"
poolmanagertypes "github.com/osmosis-labs/osmosis/v24/x/poolmanager/types"
epochtypes "github.com/osmosis-labs/osmosis/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
GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin
}
// 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 osmomath.Int) (tokenOutAmount osmomath.Int, err error)
MultihopEstimateOutGivenExactAmountInNoTakerFee(
ctx sdk.Context,
routes []poolmanagertypes.SwapAmountInRoute,
tokenIn sdk.Coin,
) (tokenOutAmount osmomath.Int, err error)
MultihopEstimateInGivenExactAmountOut(
ctx sdk.Context,
routes []poolmanagertypes.SwapAmountOutRoute,
tokenOut sdk.Coin) (tokenInAmount osmomath.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)
GetTakerFeeTrackerForStakers(ctx sdk.Context) []sdk.Coin
GetTakerFeeTrackerForCommunityPool(ctx sdk.Context) []sdk.Coin
GetTakerFeeTrackerStartHeight(ctx sdk.Context) int64
}
// 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
}
// ConcentratedLiquidityKeeper defines the ConcentratedLiquidity contract that must be fulfilled when
// creating a x/protorev keeper.
type ConcentratedLiquidityKeeper interface {
ComputeMaxInAmtGivenMaxTicksCrossed(
ctx sdk.Context,
poolId uint64,
tokenInDenom string,
maxTicksCrossed uint64,
) (maxTokenIn, resultingTokenOut sdk.Coin, err error)
}
// DistributionKeeper defines the distribution contract that must be fulfilled when
// creating a x/protorev keeper.
type DistributionKeeper interface {
FundCommunityPool(ctx sdk.Context, amount sdk.Coins, sender sdk.AccAddress) error
}