Skip to content

Commit ce7d076

Browse files
committed
Call antehandlers for traceBlock
1 parent 49ba7bd commit ce7d076

File tree

13 files changed

+99
-52
lines changed

13 files changed

+99
-52
lines changed

app/ante.go

+20-13
Original file line numberDiff line numberDiff line change
@@ -37,39 +37,39 @@ type HandlerOptions struct {
3737
TracingInfo *tracing.Info
3838
}
3939

40-
func NewAnteHandlerAndDepGenerator(options HandlerOptions) (sdk.AnteHandler, sdk.AnteDepGenerator, error) {
40+
func NewAnteHandlerAndDepGenerator(options HandlerOptions) (sdk.AnteHandler, sdk.AnteHandler, sdk.AnteDepGenerator, error) {
4141
if options.AccountKeeper == nil {
42-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "account keeper is required for AnteHandler")
42+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "account keeper is required for AnteHandler")
4343
}
4444
if options.BankKeeper == nil {
45-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "bank keeper is required for AnteHandler")
45+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "bank keeper is required for AnteHandler")
4646
}
4747
if options.SignModeHandler == nil {
48-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for ante builder")
48+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for ante builder")
4949
}
5050
if options.WasmConfig == nil {
51-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "wasm config is required for ante builder")
51+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "wasm config is required for ante builder")
5252
}
5353
if options.WasmKeeper == nil {
54-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "wasm keeper is required for ante builder")
54+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "wasm keeper is required for ante builder")
5555
}
5656
if options.OracleKeeper == nil {
57-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "oracle keeper is required for ante builder")
57+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "oracle keeper is required for ante builder")
5858
}
5959
if options.AccessControlKeeper == nil {
60-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "accesscontrol keeper is required for ante builder")
60+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "accesscontrol keeper is required for ante builder")
6161
}
6262
if options.ParamsKeeper == nil {
63-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "params keeper is required for ante builder")
63+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "params keeper is required for ante builder")
6464
}
6565
if options.TracingInfo == nil {
66-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "tracing info is required for ante builder")
66+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "tracing info is required for ante builder")
6767
}
6868
if options.EVMKeeper == nil {
69-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "evm keeper is required for ante builder")
69+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "evm keeper is required for ante builder")
7070
}
7171
if options.LatestCtxGetter == nil {
72-
return nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "latest context getter is required for ante builder")
72+
return nil, nil, nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "latest context getter is required for ante builder")
7373
}
7474

7575
sigGasConsumer := options.SigGasConsumer
@@ -117,5 +117,12 @@ func NewAnteHandlerAndDepGenerator(options HandlerOptions) (sdk.AnteHandler, sdk
117117

118118
router := evmante.NewEVMRouterDecorator(anteHandler, evmAnteHandler, anteDepGenerator, evmAnteDepGenerator)
119119

120-
return router.AnteHandle, router.AnteDeps, nil
120+
tracerAnteDecorators := []sdk.AnteFullDecorator{
121+
evmante.NewEVMPreprocessDecorator(options.EVMKeeper, options.EVMKeeper.AccountKeeper()),
122+
sdk.DefaultWrappedAnteDecorator(evmante.NewBasicDecorator(options.EVMKeeper)),
123+
sdk.DefaultWrappedAnteDecorator(evmante.NewEVMSigVerifyDecorator(options.EVMKeeper, options.LatestCtxGetter)),
124+
}
125+
tracerAnteHandler, _ := sdk.ChainAnteDecorators(tracerAnteDecorators...)
126+
127+
return router.AnteHandle, tracerAnteHandler, router.AnteDeps, nil
121128
}

app/ante_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (suite *AnteTestSuite) SetupTest(isCheckTx bool) {
8484
Tracer: &tr,
8585
}
8686
tracingInfo.SetContext(context.Background())
87-
antehandler, anteDepGenerator, err := app.NewAnteHandlerAndDepGenerator(
87+
antehandler, _, anteDepGenerator, err := app.NewAnteHandlerAndDepGenerator(
8888
app.HandlerOptions{
8989
HandlerOptions: ante.HandlerOptions{
9090
AccountKeeper: suite.App.AccountKeeper,

app/app.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -365,8 +365,9 @@ type App struct {
365365
optimisticProcessingInfo *OptimisticProcessingInfo
366366

367367
// batchVerifier *ante.SR25519BatchVerifier
368-
txDecoder sdk.TxDecoder
369-
AnteHandler sdk.AnteHandler
368+
txDecoder sdk.TxDecoder
369+
AnteHandler sdk.AnteHandler
370+
TracerAnteHandler sdk.AnteHandler
370371

371372
versionInfo version.Info
372373

@@ -924,7 +925,7 @@ func New(
924925
signModeHandler := encodingConfig.TxConfig.SignModeHandler()
925926
// app.batchVerifier = ante.NewSR25519BatchVerifier(app.AccountKeeper, signModeHandler)
926927

927-
anteHandler, anteDepGenerator, err := NewAnteHandlerAndDepGenerator(
928+
anteHandler, tracerAnteHandler, anteDepGenerator, err := NewAnteHandlerAndDepGenerator(
928929
HandlerOptions{
929930
HandlerOptions: ante.HandlerOptions{
930931
AccountKeeper: app.AccountKeeper,
@@ -952,6 +953,7 @@ func New(
952953
panic(err)
953954
}
954955
app.AnteHandler = anteHandler
956+
app.TracerAnteHandler = tracerAnteHandler
955957

956958
app.SetAnteHandler(anteHandler)
957959
app.SetAnteDepGenerator(anteDepGenerator)
@@ -1875,7 +1877,7 @@ func (app *App) RegisterTendermintService(clientCtx client.Context) {
18751877
tmservice.RegisterTendermintService(app.BaseApp.GRPCQueryRouter(), clientCtx, app.interfaceRegistry)
18761878

18771879
if app.evmRPCConfig.HTTPEnabled {
1878-
evmHTTPServer, err := evmrpc.NewEVMHTTPServer(app.Logger(), app.evmRPCConfig, clientCtx.Client, &app.EvmKeeper, app.BaseApp, app.AnteHandler, app.RPCContextProvider, app.encodingConfig.TxConfig, DefaultNodeHome, nil)
1880+
evmHTTPServer, err := evmrpc.NewEVMHTTPServer(app.Logger(), app.evmRPCConfig, clientCtx.Client, &app.EvmKeeper, app.BaseApp, app.TracerAnteHandler, app.RPCContextProvider, app.encodingConfig.TxConfig, DefaultNodeHome, nil)
18791881
if err != nil {
18801882
panic(err)
18811883
}
@@ -1885,7 +1887,7 @@ func (app *App) RegisterTendermintService(clientCtx client.Context) {
18851887
}
18861888

18871889
if app.evmRPCConfig.WSEnabled {
1888-
evmWSServer, err := evmrpc.NewEVMWebSocketServer(app.Logger(), app.evmRPCConfig, clientCtx.Client, &app.EvmKeeper, app.BaseApp, app.AnteHandler, app.RPCContextProvider, app.encodingConfig.TxConfig, DefaultNodeHome)
1890+
evmWSServer, err := evmrpc.NewEVMWebSocketServer(app.Logger(), app.evmRPCConfig, clientCtx.Client, &app.EvmKeeper, app.BaseApp, app.TracerAnteHandler, app.RPCContextProvider, app.encodingConfig.TxConfig, DefaultNodeHome)
18891891
if err != nil {
18901892
panic(err)
18911893
}

evmrpc/send.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func NewSendAPI(tmClient rpcclient.Client, txConfig client.TxConfig, sendConfig
4747
keeper: k,
4848
ctxProvider: ctxProvider,
4949
homeDir: homeDir,
50-
backend: NewBackend(ctxProvider, k, txConfig.TxDecoder(), tmClient, simulateConfig, app, antehandler),
50+
backend: NewBackend(ctxProvider, k, txConfig, tmClient, simulateConfig, app, antehandler),
5151
connectionType: connectionType,
5252
}
5353
}

evmrpc/server.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ func NewEVMHTTPServer(
5353
ctx := ctxProvider(LatestCtxHeight)
5454

5555
txAPI := NewTransactionAPI(tmClient, k, ctxProvider, txConfig, homeDir, ConnectionTypeHTTP)
56-
debugAPI := NewDebugAPI(tmClient, k, ctxProvider, txConfig.TxDecoder(), simulateConfig, app, antehandler, ConnectionTypeHTTP)
56+
debugAPI := NewDebugAPI(tmClient, k, ctxProvider, txConfig, simulateConfig, app, antehandler, ConnectionTypeHTTP)
5757
if isPanicOrSyntheticTxFunc == nil {
5858
isPanicOrSyntheticTxFunc = func(ctx context.Context, hash common.Hash) (bool, error) {
5959
return debugAPI.isPanicOrSyntheticTx(ctx, hash)
6060
}
6161
}
6262
seiTxAPI := NewSeiTransactionAPI(tmClient, k, ctxProvider, txConfig, homeDir, ConnectionTypeHTTP, isPanicOrSyntheticTxFunc)
63-
seiDebugAPI := NewSeiDebugAPI(tmClient, k, ctxProvider, txConfig.TxDecoder(), simulateConfig, app, antehandler, ConnectionTypeHTTP)
63+
seiDebugAPI := NewSeiDebugAPI(tmClient, k, ctxProvider, txConfig, simulateConfig, app, antehandler, ConnectionTypeHTTP)
6464

6565
apis := []rpc.API{
6666
{
@@ -101,7 +101,7 @@ func NewEVMHTTPServer(
101101
},
102102
{
103103
Namespace: "eth",
104-
Service: NewSimulationAPI(ctxProvider, k, txConfig.TxDecoder(), tmClient, simulateConfig, app, antehandler, ConnectionTypeHTTP),
104+
Service: NewSimulationAPI(ctxProvider, k, txConfig, tmClient, simulateConfig, app, antehandler, ConnectionTypeHTTP),
105105
},
106106
{
107107
Namespace: "net",
@@ -204,7 +204,7 @@ func NewEVMWebSocketServer(
204204
},
205205
{
206206
Namespace: "eth",
207-
Service: NewSimulationAPI(ctxProvider, k, txConfig.TxDecoder(), tmClient, simulateConfig, app, antehandler, ConnectionTypeWS),
207+
Service: NewSimulationAPI(ctxProvider, k, txConfig, tmClient, simulateConfig, app, antehandler, ConnectionTypeWS),
208208
},
209209
{
210210
Namespace: "net",

evmrpc/setup_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ func init() {
553553
if err != nil {
554554
panic(err)
555555
}
556-
HttpServer, err := evmrpc.NewEVMHTTPServer(infoLog, goodConfig, &MockClient{}, EVMKeeper, testApp.BaseApp, testApp.AnteHandler, ctxProvider, TxConfig, "", isPanicTxFunc)
556+
HttpServer, err := evmrpc.NewEVMHTTPServer(infoLog, goodConfig, &MockClient{}, EVMKeeper, testApp.BaseApp, testApp.TracerAnteHandler, ctxProvider, TxConfig, "", isPanicTxFunc)
557557
if err != nil {
558558
panic(err)
559559
}
@@ -565,7 +565,7 @@ func init() {
565565
badConfig := evmrpc.DefaultConfig
566566
badConfig.HTTPPort = TestBadPort
567567
badConfig.FilterTimeout = 500 * time.Millisecond
568-
badHTTPServer, err := evmrpc.NewEVMHTTPServer(infoLog, badConfig, &MockBadClient{}, EVMKeeper, testApp.BaseApp, testApp.AnteHandler, ctxProvider, TxConfig, "", nil)
568+
badHTTPServer, err := evmrpc.NewEVMHTTPServer(infoLog, badConfig, &MockBadClient{}, EVMKeeper, testApp.BaseApp, testApp.TracerAnteHandler, ctxProvider, TxConfig, "", nil)
569569
if err != nil {
570570
panic(err)
571571
}
@@ -574,7 +574,7 @@ func init() {
574574
}
575575

576576
// Start ws server
577-
wsServer, err := evmrpc.NewEVMWebSocketServer(infoLog, goodConfig, &MockClient{}, EVMKeeper, testApp.BaseApp, testApp.AnteHandler, ctxProvider, TxConfig, "")
577+
wsServer, err := evmrpc.NewEVMWebSocketServer(infoLog, goodConfig, &MockClient{}, EVMKeeper, testApp.BaseApp, testApp.TracerAnteHandler, ctxProvider, TxConfig, "")
578578
if err != nil {
579579
panic(err)
580580
}

evmrpc/simulate.go

+42-14
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/sei-protocol/sei-chain/precompiles/wasmd"
1313

1414
"github.com/cosmos/cosmos-sdk/baseapp"
15+
"github.com/cosmos/cosmos-sdk/client"
1516
sdk "github.com/cosmos/cosmos-sdk/types"
1617
"github.com/ethereum/go-ethereum/accounts/abi"
1718
"github.com/ethereum/go-ethereum/common"
@@ -31,6 +32,7 @@ import (
3132
"github.com/sei-protocol/sei-chain/x/evm/keeper"
3233
"github.com/sei-protocol/sei-chain/x/evm/state"
3334
"github.com/sei-protocol/sei-chain/x/evm/types"
35+
"github.com/sei-protocol/sei-chain/x/evm/types/ethtx"
3436
abci "github.com/tendermint/tendermint/abci/types"
3537
rpcclient "github.com/tendermint/tendermint/rpc/client"
3638
"github.com/tendermint/tendermint/rpc/coretypes"
@@ -48,15 +50,15 @@ type SimulationAPI struct {
4850
func NewSimulationAPI(
4951
ctxProvider func(int64) sdk.Context,
5052
keeper *keeper.Keeper,
51-
txDecoder sdk.TxDecoder,
53+
txConfig client.TxConfig,
5254
tmClient rpcclient.Client,
5355
config *SimulateConfig,
5456
app *baseapp.BaseApp,
5557
antehandler sdk.AnteHandler,
5658
connectionType ConnectionType,
5759
) *SimulationAPI {
5860
return &SimulationAPI{
59-
backend: NewBackend(ctxProvider, keeper, txDecoder, tmClient, config, app, antehandler),
61+
backend: NewBackend(ctxProvider, keeper, txConfig, tmClient, config, app, antehandler),
6062
connectionType: connectionType,
6163
}
6264
}
@@ -178,19 +180,19 @@ var _ tracers.Backend = (*Backend)(nil)
178180
type Backend struct {
179181
*eth.EthAPIBackend
180182
ctxProvider func(int64) sdk.Context
181-
txDecoder sdk.TxDecoder
183+
txConfig client.TxConfig
182184
keeper *keeper.Keeper
183185
tmClient rpcclient.Client
184186
config *SimulateConfig
185187
app *baseapp.BaseApp
186188
antehandler sdk.AnteHandler
187189
}
188190

189-
func NewBackend(ctxProvider func(int64) sdk.Context, keeper *keeper.Keeper, txDecoder sdk.TxDecoder, tmClient rpcclient.Client, config *SimulateConfig, app *baseapp.BaseApp, antehandler sdk.AnteHandler) *Backend {
191+
func NewBackend(ctxProvider func(int64) sdk.Context, keeper *keeper.Keeper, txConfig client.TxConfig, tmClient rpcclient.Client, config *SimulateConfig, app *baseapp.BaseApp, antehandler sdk.AnteHandler) *Backend {
190192
return &Backend{
191193
ctxProvider: ctxProvider,
192194
keeper: keeper,
193-
txDecoder: txDecoder,
195+
txConfig: txConfig,
194196
tmClient: tmClient,
195197
config: config,
196198
app: app,
@@ -224,7 +226,7 @@ func (b *Backend) GetTransaction(ctx context.Context, txHash common.Hash) (tx *e
224226
}
225227
txIndex := hexutil.Uint(receipt.TransactionIndex)
226228
tmTx := block.Block.Txs[int(txIndex)]
227-
tx = getEthTxForTxBz(tmTx, b.txDecoder)
229+
tx = getEthTxForTxBz(tmTx, b.txConfig.TxDecoder())
228230
blockHash = common.BytesToHash(block.Block.Header.Hash().Bytes())
229231
return tx, blockHash, uint64(txHeight), uint64(txIndex), nil
230232
}
@@ -262,7 +264,7 @@ func (b Backend) BlockByNumber(ctx context.Context, bn rpc.BlockNumber) (*ethtyp
262264
}
263265
var txs []*ethtypes.Transaction
264266
for i := range blockRes.TxsResults {
265-
decoded, err := b.txDecoder(tmBlock.Block.Txs[i])
267+
decoded, err := b.txConfig.TxDecoder()(tmBlock.Block.Txs[i])
266268
if err != nil {
267269
return nil, err
268270
}
@@ -347,17 +349,11 @@ func (b *Backend) StateAtTransaction(ctx context.Context, block *ethtypes.Block,
347349
return nil, vm.BlockContext{}, nil, emptyRelease, err
348350
}
349351
for idx, tx := range tmBlock.Block.Txs {
350-
sdkTx, err := b.txDecoder(tx)
352+
sdkTx, err := b.txConfig.TxDecoder()(tx)
351353
if err != nil {
352354
panic(err)
353355
}
354356
if idx == txIndex {
355-
// Only run antehandlers as Geth will perform the actual execution
356-
newCtx, err := b.antehandler(sdkCtx, sdkTx, false)
357-
if err != nil {
358-
return nil, vm.BlockContext{}, nil, emptyRelease, fmt.Errorf("transaction failed ante handler due to %s", err)
359-
}
360-
sdkCtx = newCtx
361357
var evmMsg *types.MsgEVMTransaction
362358
if msgs := sdkTx.GetMsgs(); len(msgs) != 1 {
363359
return nil, vm.BlockContext{}, nil, emptyRelease, fmt.Errorf("cannot replay non-EVM transaction %d at block %d", idx, blockNumber)
@@ -446,6 +442,38 @@ func (b *Backend) GetCustomPrecompiles(h int64) map[common.Address]vm.Precompile
446442
return b.keeper.CustomPrecompiles(b.ctxProvider(h))
447443
}
448444

445+
func (b *Backend) PrepareTx(statedb vm.StateDB, tx *ethtypes.Transaction) error {
446+
if noSignatureSet(tx) {
447+
// skip ante if no signature is set
448+
return nil
449+
}
450+
typedStateDB := statedb.(*state.DBImpl)
451+
txData, err := ethtx.NewTxDataFromTx(tx)
452+
if err != nil {
453+
return fmt.Errorf("transaction cannot be converted to TxData due to %s", err)
454+
}
455+
msg, err := types.NewMsgEVMTransaction(txData)
456+
if err != nil {
457+
return fmt.Errorf("transaction cannot be converted to MsgEVMTransaction due to %s", err)
458+
}
459+
tb := b.txConfig.NewTxBuilder()
460+
_ = tb.SetMsgs(msg)
461+
newCtx, err := b.antehandler(typedStateDB.Ctx(), tb.GetTx(), false)
462+
if err != nil {
463+
return fmt.Errorf("transaction failed ante handler due to %s", err)
464+
}
465+
typedStateDB.WithCtx(newCtx)
466+
return nil
467+
}
468+
469+
func noSignatureSet(tx *ethtypes.Transaction) bool {
470+
isBigIntEmpty := func(b *big.Int) bool {
471+
return b == nil || b.Cmp(utils.Big0) == 0 || b.Cmp(&big.Int{}) == 0
472+
}
473+
v, r, s := tx.RawSignatureValues()
474+
return isBigIntEmpty(v) && isBigIntEmpty(r) && isBigIntEmpty(s)
475+
}
476+
449477
type Engine struct {
450478
*ethash.Ethash
451479
ctxProvider func(int64) sdk.Context

evmrpc/tests/utils.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func SetupTestServer(
9090
&mockClient,
9191
&a.EvmKeeper,
9292
a.BaseApp,
93-
a.AnteHandler,
93+
a.TracerAnteHandler,
9494
a.RPCContextProvider,
9595
a.GetTxConfig(),
9696
"",

evmrpc/tracers.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"time"
77

88
"github.com/cosmos/cosmos-sdk/baseapp"
9+
"github.com/cosmos/cosmos-sdk/client"
910
sdk "github.com/cosmos/cosmos-sdk/types"
1011
"github.com/ethereum/go-ethereum/common"
1112
"github.com/ethereum/go-ethereum/eth/tracers"
@@ -37,9 +38,9 @@ type SeiDebugAPI struct {
3738
*DebugAPI
3839
}
3940

40-
func NewDebugAPI(tmClient rpcclient.Client, k *keeper.Keeper, ctxProvider func(int64) sdk.Context, txDecoder sdk.TxDecoder, config *SimulateConfig, app *baseapp.BaseApp,
41+
func NewDebugAPI(tmClient rpcclient.Client, k *keeper.Keeper, ctxProvider func(int64) sdk.Context, txConfig client.TxConfig, config *SimulateConfig, app *baseapp.BaseApp,
4142
antehandler sdk.AnteHandler, connectionType ConnectionType) *DebugAPI {
42-
backend := NewBackend(ctxProvider, k, txDecoder, tmClient, config, app, antehandler)
43+
backend := NewBackend(ctxProvider, k, txConfig, tmClient, config, app, antehandler)
4344
tracersAPI := tracers.NewAPI(backend)
4445
evictCallback := func(key common.Hash, value bool) {}
4546
isPanicCache := expirable.NewLRU[common.Hash, bool](IsPanicCacheSize, evictCallback, IsPanicCacheTTL)
@@ -48,7 +49,7 @@ func NewDebugAPI(tmClient rpcclient.Client, k *keeper.Keeper, ctxProvider func(i
4849
tmClient: tmClient,
4950
keeper: k,
5051
ctxProvider: ctxProvider,
51-
txDecoder: txDecoder,
52+
txDecoder: txConfig.TxDecoder(),
5253
connectionType: connectionType,
5354
isPanicCache: isPanicCache,
5455
}
@@ -58,16 +59,16 @@ func NewSeiDebugAPI(
5859
tmClient rpcclient.Client,
5960
k *keeper.Keeper,
6061
ctxProvider func(int64) sdk.Context,
61-
txDecoder sdk.TxDecoder,
62+
txConfig client.TxConfig,
6263
config *SimulateConfig,
6364
app *baseapp.BaseApp,
6465
antehandler sdk.AnteHandler,
6566
connectionType ConnectionType,
6667
) *SeiDebugAPI {
67-
backend := NewBackend(ctxProvider, k, txDecoder, tmClient, config, app, antehandler)
68+
backend := NewBackend(ctxProvider, k, txConfig, tmClient, config, app, antehandler)
6869
tracersAPI := tracers.NewAPI(backend)
6970
return &SeiDebugAPI{
70-
DebugAPI: &DebugAPI{tracersAPI: tracersAPI, tmClient: tmClient, keeper: k, ctxProvider: ctxProvider, txDecoder: txDecoder, connectionType: connectionType},
71+
DebugAPI: &DebugAPI{tracersAPI: tracersAPI, tmClient: tmClient, keeper: k, ctxProvider: ctxProvider, txDecoder: txConfig.TxDecoder(), connectionType: connectionType},
7172
}
7273
}
7374

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ replace (
360360
github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.3.57
361361
github.com/cosmos/iavl => github.com/sei-protocol/sei-iavl v0.2.0
362362
github.com/cosmos/ibc-go/v3 => github.com/sei-protocol/sei-ibc-go/v3 v3.3.6
363-
github.com/ethereum/go-ethereum => github.com/sei-protocol/go-ethereum v1.13.5-sei-32
363+
github.com/ethereum/go-ethereum => github.com/sei-protocol/go-ethereum v1.13.5-sei-33
364364
github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1
365365
github.com/sei-protocol/sei-db => github.com/sei-protocol/sei-db v0.0.48
366366
// Latest goleveldb is broken, we have to stick to this version

0 commit comments

Comments
 (0)