diff --git a/CHANGELOG.md b/CHANGELOG.md index df7636ba7e..77c84f6fcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ * (e2ee)[#1415](https://github.com/crypto-org-chain/cronos/pull/1415) Add batch keys query for e2ee module. * (e2ee)[#1421](https://github.com/crypto-org-chain/cronos/pull/1421) Validate e2ee key when register. * [#1437](https://github.com/crypto-org-chain/cronos/pull/1437) Update cometbft and cosmos-sdk dependencies. +* (rpc) [#1467](https://github.com/crypto-org-chain/cronos/pull/1467) Avoid unnecessary tx decode in tx listener. ### Bug Fixes diff --git a/app/app.go b/app/app.go index 7447c0ba95..6570986a76 100644 --- a/app/app.go +++ b/app/app.go @@ -126,7 +126,6 @@ import ( icaauthtypes "github.com/crypto-org-chain/cronos/v2/x/icaauth/types" clientflags "github.com/cosmos/cosmos-sdk/client/flags" - evmapp "github.com/evmos/ethermint/app" evmante "github.com/evmos/ethermint/app/ante" srvflags "github.com/evmos/ethermint/server/flags" ethermint "github.com/evmos/ethermint/types" @@ -158,6 +157,7 @@ import ( "github.com/crypto-org-chain/cronos/v2/client/docs" // Force-load the tracer engines to trigger registration + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/vm" _ "github.com/ethereum/go-ethereum/eth/tracers/js" _ "github.com/ethereum/go-ethereum/eth/tracers/native" @@ -331,7 +331,7 @@ type App struct { invCheckPeriod uint - pendingTxListeners []evmapp.PendingTxListener + pendingTxListeners []evmante.PendingTxListener // keys to access the substores keys map[string]*storetypes.KVStoreKey @@ -1039,7 +1039,8 @@ func (app *App) setAnteHandler(txConfig client.TxConfig, maxGasWanted uint64, bl sdk.MsgTypeURL(&evmtypes.MsgEthereumTx{}), sdk.MsgTypeURL(&vestingtypes.MsgCreateVestingAccount{}), }, - ExtraDecorators: []sdk.AnteDecorator{blockAddressDecorator}, + ExtraDecorators: []sdk.AnteDecorator{blockAddressDecorator}, + PendingTxListener: app.onPendingTx, } anteHandler, err := evmante.NewAnteHandler(options) @@ -1215,19 +1216,15 @@ func (app *App) RegisterTendermintService(clientCtx client.Context) { ) } -// RegisterPendingTxListener is used by json-rpc server to listen to pending transactions in CheckTx. -func (app *App) RegisterPendingTxListener(listener evmapp.PendingTxListener) { +// RegisterPendingTxListener is used by json-rpc server to listen to pending transactions callback. +func (app *App) RegisterPendingTxListener(listener evmante.PendingTxListener) { app.pendingTxListeners = append(app.pendingTxListeners, listener) } -func (app *App) CheckTx(req abci.RequestCheckTx) abci.ResponseCheckTx { - res := app.BaseApp.CheckTx(req) - if res.Code == 0 && req.Type == abci.CheckTxType_New { - for _, listener := range app.pendingTxListeners { - listener(req.Tx) - } +func (app *App) onPendingTx(hash common.Hash) { + for _, listener := range app.pendingTxListeners { + listener(hash) } - return res } func (app *App) RegisterNodeService(clientCtx client.Context) { diff --git a/go.mod b/go.mod index 1b32c7bbbd..266671174e 100644 --- a/go.mod +++ b/go.mod @@ -250,7 +250,7 @@ replace ( // TODO: remove it: https://github.com/cosmos/cosmos-sdk/issues/13134 github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2 github.com/ethereum/go-ethereum => github.com/crypto-org-chain/go-ethereum v1.10.20-0.20231207063621-43cf32d91c3e - github.com/evmos/ethermint => github.com/crypto-org-chain/ethermint v0.6.1-0.20240607015522-b82677bb231c + github.com/evmos/ethermint => github.com/crypto-org-chain/ethermint v0.6.1-0.20240610034402-a4e82cc4e8ed // Fix upstream GHSA-h395-qcrw-5vmq and GHSA-3vp4-m3rf-835h vulnerabilities. // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.9.0 diff --git a/go.sum b/go.sum index aad5950edf..40429aec67 100644 --- a/go.sum +++ b/go.sum @@ -491,8 +491,8 @@ github.com/crypto-org-chain/cometbft-db v0.0.0-20231011055109-57922ac52a63 h1:R1 github.com/crypto-org-chain/cometbft-db v0.0.0-20231011055109-57922ac52a63/go.mod h1:rocwIfnS+kA060x64gkSIRvWB9StSppIkJuo5MWzL24= github.com/crypto-org-chain/cosmos-sdk v0.46.0-beta2.0.20240517084251-5ba20d99ec23 h1:pmpedXv3cd18uDwv62mfevmEVa0KCMgR/hlsTRU9p8g= github.com/crypto-org-chain/cosmos-sdk v0.46.0-beta2.0.20240517084251-5ba20d99ec23/go.mod h1:vdMQLvLSGh56GqAAQP/w2R389j+g+hHOIwKcUNt9yAc= -github.com/crypto-org-chain/ethermint v0.6.1-0.20240607015522-b82677bb231c h1:e4xx2GLWubmY2q+rNOoWHXF+TSGswndENtPiXrO/DqM= -github.com/crypto-org-chain/ethermint v0.6.1-0.20240607015522-b82677bb231c/go.mod h1:zJYmx1D+tDggzvXmdJ0/I62TeIykdCMfJBjBxOcniAU= +github.com/crypto-org-chain/ethermint v0.6.1-0.20240610034402-a4e82cc4e8ed h1:L4V/v5abZuEvI4tpFMpy6QVKoyrghTOuDKb8+utxDjc= +github.com/crypto-org-chain/ethermint v0.6.1-0.20240610034402-a4e82cc4e8ed/go.mod h1:zJYmx1D+tDggzvXmdJ0/I62TeIykdCMfJBjBxOcniAU= github.com/crypto-org-chain/go-ethereum v1.10.20-0.20231207063621-43cf32d91c3e h1:vnyepPQ/m25+19xcTuBUdRxmltZ/EjVWNqEjhg7Ummk= github.com/crypto-org-chain/go-ethereum v1.10.20-0.20231207063621-43cf32d91c3e/go.mod h1:+a8pUj1tOyJ2RinsNQD4326YS+leSoKGiG/uVVb0x6Y= github.com/crypto-org-chain/gravity-bridge/module/v2 v2.0.1-0.20230825054824-75403cd90c6e h1:rSTc35OBjjCBx47rHPWBCIHNGPbMnEj8f7fNcK2TjVI= diff --git a/gomod2nix.toml b/gomod2nix.toml index 8ad7dd0fc7..b6ab378949 100644 --- a/gomod2nix.toml +++ b/gomod2nix.toml @@ -219,8 +219,8 @@ schema = 3 hash = "sha256-lDIqRLUrXYCb9mmFBY/+WW+ee69+IkxOgqjHVyo4ij0=" replaced = "github.com/crypto-org-chain/go-ethereum" [mod."github.com/evmos/ethermint"] - version = "v0.6.1-0.20240607015522-b82677bb231c" - hash = "sha256-oqCaXw7pQb8yKh2NUAKv+R+Ogc6+VLE156Jb+nQrK2g=" + version = "v0.6.1-0.20240610034402-a4e82cc4e8ed" + hash = "sha256-ExXxUCaFb9vPug+nI6J/7PwU4fLw4dsWIWt3Vj7b4pc=" replaced = "github.com/crypto-org-chain/ethermint" [mod."github.com/felixge/httpsnoop"] version = "v1.0.4"