-
Notifications
You must be signed in to change notification settings - Fork 13
/
interfaces.go
56 lines (48 loc) · 2.54 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
package crosschain
import (
"context"
"time"
sdkmath "cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
bank "github.com/cosmos/cosmos-sdk/x/bank/types"
ibctransfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types"
"github.com/ethereum/go-ethereum/common"
evmtypes "github.com/evmos/ethermint/x/evm/types"
tmbytes "github.com/tendermint/tendermint/libs/bytes"
fxtypes "github.com/functionx/fx-core/v4/types"
"github.com/functionx/fx-core/v4/x/erc20/types"
)
type Erc20Keeper interface {
ModuleAddress() common.Address
GetTokenPairByAddress(ctx sdk.Context, address common.Address) (types.TokenPair, bool)
ConvertDenomToTarget(ctx sdk.Context, from sdk.AccAddress, coin sdk.Coin, fxTarget fxtypes.FxTarget) (sdk.Coin, error)
ConvertERC20NativeCoin(ctx sdk.Context, pair types.TokenPair, sender common.Address, receiver sdk.AccAddress, amount sdkmath.Int) error
GetIbcTimeout(ctx sdk.Context) time.Duration
SetIBCTransferRelation(ctx sdk.Context, channel string, sequence uint64)
HasOutgoingTransferRelation(ctx sdk.Context, moduleName string, txID uint64) bool
ToTargetDenom(ctx sdk.Context, denom, base string, aliases []string, fxTarget fxtypes.FxTarget) string
GetTokenPair(ctx sdk.Context, tokenOrDenom string) (types.TokenPair, bool)
IsOriginDenom(ctx sdk.Context, denom string) bool
HasDenomAlias(ctx sdk.Context, denom string) (bank.Metadata, bool)
}
type EvmKeeper interface {
GetParams(ctx sdk.Context) (params evmtypes.Params)
}
type BankKeeper interface {
GetSupply(ctx sdk.Context, denom string) sdk.Coin
GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin
GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
MintCoins(ctx sdk.Context, moduleName string, amounts sdk.Coins) error
BurnCoins(ctx sdk.Context, moduleName string, amounts sdk.Coins) error
SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error
GetDenomMetaData(ctx sdk.Context, denom string) (bank.Metadata, bool)
}
type IBCTransferKeeper interface {
Transfer(goCtx context.Context, msg *ibctransfertypes.MsgTransfer) (*ibctransfertypes.MsgTransferResponse, error)
GetDenomTrace(ctx sdk.Context, denomTraceHash tmbytes.HexBytes) (ibctransfertypes.DenomTrace, bool)
}
type AccountKeeper interface {
GetModuleAddress(moduleName string) sdk.AccAddress
}