/
interfaces.go
62 lines (50 loc) · 2.49 KB
/
interfaces.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
package types
import (
"time"
"github.com/ethereum/go-ethereum/common"
"github.com/tendermint/tendermint/libs/log"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
"github.com/evmos/ethermint/x/evm/statedb"
evmtypes "github.com/evmos/ethermint/x/evm/types"
inflationtypes "github.com/evmos/evmos/v6/x/inflation/types"
)
// AccountKeeper defines the expected interface needed to retrieve account info.
type AccountKeeper interface {
GetModuleAddress(moduleName string) sdk.AccAddress
GetSequence(sdk.Context, sdk.AccAddress) (uint64, error)
GetAccount(ctx sdk.Context, addr sdk.AccAddress) authtypes.AccountI
}
// BankKeeper defines the expected interface needed to retrieve account balances.
type BankKeeper interface {
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
MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
IsSendEnabledCoin(ctx sdk.Context, coin sdk.Coin) bool
GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin
GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
HasSupply(ctx sdk.Context, denom string) bool
IterateAccountBalances(ctx sdk.Context, addr sdk.AccAddress, cb func(sdk.Coin) bool)
}
// GovKeeper defines the expected governance keeper interface used on incentives
type GovKeeper interface {
Logger(sdk.Context) log.Logger
GetVotingParams(ctx sdk.Context) govtypes.VotingParams
GetProposal(ctx sdk.Context, proposalID uint64) (govtypes.Proposal, bool)
InsertActiveProposalQueue(ctx sdk.Context, proposalID uint64, timestamp time.Time)
RemoveFromActiveProposalQueue(ctx sdk.Context, proposalID uint64, timestamp time.Time)
SetProposal(ctx sdk.Context, proposal govtypes.Proposal)
}
// InflationKeeper defines the expected mint keeper interface used on incentives
type InflationKeeper interface {
GetParams(ctx sdk.Context) (params inflationtypes.Params)
}
// EVMKeeper defines the expected EVM keeper interface used on erc20
type EVMKeeper interface {
GetParams(ctx sdk.Context) evmtypes.Params
GetAccountWithoutBalance(ctx sdk.Context, addr common.Address) *statedb.Account
}
// Stakekeeper defines the expected staking keeper interface used on incentives
type StakeKeeper interface{}