Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(fungible): define interface for EVM keeper reference #900

Merged
merged 10 commits into from
Aug 7, 2023
2 changes: 1 addition & 1 deletion app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ func New(
keys[fungibleModuleTypes.MemStoreKey],
app.GetSubspace(fungibleModuleTypes.ModuleName),
app.AccountKeeper,
*app.EvmKeeper,
app.EvmKeeper,
app.BankKeeper,
app.ZetaObserverKeeper,
)
Expand Down
2 changes: 1 addition & 1 deletion testutil/keeper/fungible.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func FungibleKeeper(t testing.TB) (*keeper.Keeper, sdk.Context) {

bankkeeper := bankkeeper2.BaseKeeper{}
authkeeper := authkeeper2.AccountKeeper{}
evmKeeper := evmkeeper.Keeper{}
evmKeeper := &evmkeeper.Keeper{}
zetaObserverKeeper := zetaObserverModuleKeeper.Keeper{}
keeper := keeper.NewKeeper(
codec.NewProtoCodec(registry),
Expand Down
14 changes: 6 additions & 8 deletions x/fungible/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@ package keeper

import (
"fmt"

storetypes "github.com/cosmos/cosmos-sdk/store/types"
"github.com/tendermint/tendermint/libs/log"


"github.com/cosmos/cosmos-sdk/codec"
storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
evmkeeper "github.com/evmos/ethermint/x/evm/keeper"
"github.com/tendermint/tendermint/libs/log"

"github.com/zeta-chain/zetacore/x/fungible/types"
)

Expand All @@ -20,7 +19,7 @@ type (
memKey storetypes.StoreKey
paramstore paramtypes.Subspace
authKeeper types.AccountKeeper
evmKeeper evmkeeper.Keeper
evmKeeper types.EVMKeeper
bankKeeper types.BankKeeper
zetaobserverKeeper types.ZetaObserverKeeper
}
Expand All @@ -32,7 +31,7 @@ func NewKeeper(
memKey storetypes.StoreKey,
ps paramtypes.Subspace,
authKeeper types.AccountKeeper,
evmKeeper evmkeeper.Keeper,
evmKeeper types.EVMKeeper,
bankKeeper types.BankKeeper,
zetacobservKeeper types.ZetaObserverKeeper,
) *Keeper {
Expand All @@ -42,7 +41,6 @@ func NewKeeper(
}

return &Keeper{

cdc: cdc,
storeKey: storeKey,
memKey: memKey,
Expand Down
24 changes: 23 additions & 1 deletion x/fungible/types/expected_keepers.go
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
package types

import (
"context"
"math/big"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/vm"
evmtypes "github.com/evmos/ethermint/x/evm/types"

"github.com/zeta-chain/zetacore/common"
zetaObserverTypes "github.com/zeta-chain/zetacore/x/observer/types"
)

// AccountKeeper defines the expected account keeper used for simulations (noalias)
type AccountKeeper interface {
GetAccount(ctx sdk.Context, addr sdk.AccAddress) types.AccountI
// Methods imported from account should be defined here
GetSequence(ctx sdk.Context, addr sdk.AccAddress) (uint64, error)
GetModuleAccount(ctx sdk.Context, name string) types.ModuleAccountI
}
Expand Down Expand Up @@ -39,3 +45,19 @@ type ZetaObserverKeeper interface {
GetParams(ctx sdk.Context) (params zetaObserverTypes.Params)
GetCoreParamsByChainID(ctx sdk.Context, chainID int64) (params *zetaObserverTypes.CoreParams, found bool)
}

type EVMKeeper interface {
ChainID() *big.Int
GetBlockBloomTransient(ctx sdk.Context) *big.Int
GetLogSizeTransient(ctx sdk.Context) uint64
WithChainID(ctx sdk.Context)
SetBlockBloomTransient(ctx sdk.Context, bloom *big.Int)
SetLogSizeTransient(ctx sdk.Context, logSize uint64)
EstimateGas(c context.Context, req *evmtypes.EthCallRequest) (*evmtypes.EstimateGasResponse, error)
ApplyMessage(
ctx sdk.Context,
msg core.Message,
tracer vm.EVMLogger,
commit bool,
) (*evmtypes.MsgEthereumTxResponse, error)
}