forked from cerc-io/laconicd-deprecated
ante: remove unused AccessListDecorator (#797)
This commit is contained in:
parent
841c93cd65
commit
ee72632582
@ -385,63 +385,6 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate
|
|||||||
return next(ctx, 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.
|
// EthIncrementSenderSequenceDecorator increments the sequence of the signers.
|
||||||
type EthIncrementSenderSequenceDecorator struct {
|
type EthIncrementSenderSequenceDecorator struct {
|
||||||
ak evmtypes.AccountKeeper
|
ak evmtypes.AccountKeeper
|
||||||
|
@ -9,7 +9,6 @@ import (
|
|||||||
"github.com/tharsis/ethermint/tests"
|
"github.com/tharsis/ethermint/tests"
|
||||||
evmtypes "github.com/tharsis/ethermint/x/evm/types"
|
evmtypes "github.com/tharsis/ethermint/x/evm/types"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
|
||||||
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
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() {
|
func (suite AnteTestSuite) TestEthIncrementSenderSequenceDecorator() {
|
||||||
dec := ante.NewEthIncrementSenderSequenceDecorator(suite.app.AccountKeeper)
|
dec := ante.NewEthIncrementSenderSequenceDecorator(suite.app.AccountKeeper)
|
||||||
addr, privKey := tests.NewAddrKey()
|
addr, privKey := tests.NewAddrKey()
|
||||||
|
Loading…
Reference in New Issue
Block a user