48 lines
2.2 KiB
Go
48 lines
2.2 KiB
Go
package types
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
|
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
|
|
"github.com/ethereum/go-ethereum/common"
|
|
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
|
)
|
|
|
|
// AccountKeeper defines the expected account keeper interface
|
|
type AccountKeeper interface {
|
|
NewAccountWithAddress(ctx sdk.Context, addr sdk.AccAddress) authtypes.AccountI
|
|
GetModuleAddress(moduleName string) sdk.AccAddress
|
|
GetAllAccounts(ctx sdk.Context) (accounts []authtypes.AccountI)
|
|
IterateAccounts(ctx sdk.Context, cb func(account authtypes.AccountI) bool)
|
|
GetSequence(sdk.Context, sdk.AccAddress) (uint64, error)
|
|
GetAccount(ctx sdk.Context, addr sdk.AccAddress) authtypes.AccountI
|
|
SetAccount(ctx sdk.Context, account authtypes.AccountI)
|
|
RemoveAccount(ctx sdk.Context, account authtypes.AccountI)
|
|
GetParams(ctx sdk.Context) (params authtypes.Params)
|
|
}
|
|
|
|
// BankKeeper defines the expected interface needed to retrieve account balances.
|
|
type BankKeeper interface {
|
|
GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin
|
|
SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
|
|
// SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, 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
|
|
}
|
|
|
|
// StakingKeeper returns the historical headers kept in store.
|
|
type StakingKeeper interface {
|
|
GetHistoricalInfo(ctx sdk.Context, height int64) (stakingtypes.HistoricalInfo, bool)
|
|
GetValidatorByConsAddr(ctx sdk.Context, consAddr sdk.ConsAddress) (validator stakingtypes.Validator, found bool)
|
|
}
|
|
|
|
// Event Hooks
|
|
// These can be utilized to customize evm transaction processing.
|
|
|
|
// EvmHooks event hooks for evm tx processing
|
|
type EvmHooks interface {
|
|
// Must be called after tx is processed successfully, if return an error, the whole transaction is reverted.
|
|
PostTxProcessing(ctx sdk.Context, txHash common.Hash, logs []*ethtypes.Log) error
|
|
}
|