From ee72632582a8ac5a11aaae259cd722354190a294 Mon Sep 17 00:00:00 2001 From: yihuang Date: Tue, 30 Nov 2021 16:06:34 +0800 Subject: [PATCH] ante: remove unused AccessListDecorator (#797) --- app/ante/eth.go | 57 ----------------------------------------- app/ante/eth_test.go | 60 -------------------------------------------- 2 files changed, 117 deletions(-) diff --git a/app/ante/eth.go b/app/ante/eth.go index 226d644a..c51b53fb 100644 --- a/app/ante/eth.go +++ b/app/ante/eth.go @@ -385,63 +385,6 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate return next(ctx, tx, simulate) } -// AccessListDecorator prepare an access list for the sender if Yolov3/Berlin/EIPs 2929 and 2930 are -// applicable at the current block number. -type AccessListDecorator struct { - evmKeeper EVMKeeper -} - -// NewAccessListDecorator creates a new AccessListDecorator. -func NewAccessListDecorator(evmKeeper EVMKeeper) AccessListDecorator { - return AccessListDecorator{ - evmKeeper: evmKeeper, - } -} - -// AnteHandle handles the preparatory steps for executing an EVM state transition with -// regards to both EIP-2929 and EIP-2930: -// -// - Add sender to access list (2929) -// - Add destination to access list (2929) -// - Add precompiles to access list (2929) -// - Add the contents of the optional tx access list (2930) -// -// The AnteHandler will only prepare the access list if Yolov3/Berlin/EIPs 2929 and 2930 are applicable at the current number. -func (ald AccessListDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) { - params := ald.evmKeeper.GetParams(ctx) - ethCfg := params.ChainConfig.EthereumConfig(ald.evmKeeper.ChainID()) - - rules := ethCfg.Rules(big.NewInt(ctx.BlockHeight())) - - // we don't need to prepare the access list if the chain is not currently on the Berlin upgrade - if !rules.IsBerlin { - return next(ctx, tx, simulate) - } - - // setup the keeper context before setting the access list - ald.evmKeeper.WithContext(ctx) - - for _, msg := range tx.GetMsgs() { - msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) - if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid transaction type %T, expected %T", tx, (*evmtypes.MsgEthereumTx)(nil)) - } - - sender := common.BytesToAddress(msgEthTx.GetFrom()) - - txData, err := evmtypes.UnpackTxData(msgEthTx.Data) - if err != nil { - return ctx, sdkerrors.Wrap(err, "failed to unpack tx data") - } - - ald.evmKeeper.PrepareAccessList(sender, txData.GetTo(), vm.ActivePrecompiles(rules), txData.GetAccessList()) - } - - // set the original gas meter - ald.evmKeeper.WithContext(ctx) - return next(ctx, tx, simulate) -} - // EthIncrementSenderSequenceDecorator increments the sequence of the signers. type EthIncrementSenderSequenceDecorator struct { ak evmtypes.AccountKeeper diff --git a/app/ante/eth_test.go b/app/ante/eth_test.go index 5b4bebea..8df7b074 100644 --- a/app/ante/eth_test.go +++ b/app/ante/eth_test.go @@ -9,7 +9,6 @@ import ( "github.com/tharsis/ethermint/tests" evmtypes "github.com/tharsis/ethermint/x/evm/types" - "github.com/ethereum/go-ethereum/common" ethtypes "github.com/ethereum/go-ethereum/core/types" ) @@ -377,65 +376,6 @@ func (suite AnteTestSuite) TestCanTransferDecorator() { } } -func (suite AnteTestSuite) TestAccessListDecorator() { - dec := ante.NewAccessListDecorator(suite.app.EvmKeeper) - - addr := tests.GenerateAddress() - al := ðtypes.AccessList{ - {Address: addr, StorageKeys: []common.Hash{{}}}, - } - - tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil) - tx2 := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, al) - - tx.From = addr.Hex() - tx2.From = addr.Hex() - - testCases := []struct { - name string - tx sdk.Tx - malleate func() - expPass bool - }{ - {"invalid transaction type", &invalidTx{}, func() {}, false}, - { - "success - no access list", - tx, - func() { - acc := suite.app.AccountKeeper.NewAccountWithAddress(suite.ctx, addr.Bytes()) - suite.app.AccountKeeper.SetAccount(suite.ctx, acc) - - suite.app.EvmKeeper.AddBalance(addr, big.NewInt(1000000)) - }, - true, - }, - { - "success - with access list", - tx2, - func() { - acc := suite.app.AccountKeeper.NewAccountWithAddress(suite.ctx, addr.Bytes()) - suite.app.AccountKeeper.SetAccount(suite.ctx, acc) - - suite.app.EvmKeeper.AddBalance(addr, big.NewInt(1000000)) - }, - true, - }, - } - - for _, tc := range testCases { - suite.Run(tc.name, func() { - tc.malleate() - _, err := dec.AnteHandle(suite.ctx.WithIsCheckTx(true), tc.tx, false, nextFn) - - if tc.expPass { - suite.Require().NoError(err) - } else { - suite.Require().Error(err) - } - }) - } -} - func (suite AnteTestSuite) TestEthIncrementSenderSequenceDecorator() { dec := ante.NewEthIncrementSenderSequenceDecorator(suite.app.AccountKeeper) addr, privKey := tests.NewAddrKey()