diff --git a/mempool/mempool.go b/mempool/mempool.go index e7cbb28d..d401f37f 100644 --- a/mempool/mempool.go +++ b/mempool/mempool.go @@ -8,7 +8,6 @@ import ( comettypes "github.com/cometbft/cometbft/types" dbm "github.com/cosmos/cosmos-db" - "github.com/polymerdao/monomer" "github.com/polymerdao/monomer/utils" ) @@ -39,13 +38,6 @@ func (p *Pool) Enqueue(userTxn comettypes.Tx) (err error) { // Unfortunately, comet's DB interface doesn't support it. // Moving to a different DB interface is left for future work. - // Attempt to adapt the Cosmos transaction to an Ethereum deposit transaction. - // If the adaptation succeeds, it indicates that the - // user transaction is a deposit transaction, which is not allowed in the pool. - if _, err := monomer.GetDepositTxs(userTxn); err == nil { - return errors.New("deposit txs are not allowed in the pool") - } - batch := p.db.NewBatch() defer func() { err = utils.WrapCloseErr(err, batch) diff --git a/mempool/mempool_test.go b/mempool/mempool_test.go index deadac62..e3bc57be 100644 --- a/mempool/mempool_test.go +++ b/mempool/mempool_test.go @@ -4,8 +4,6 @@ import ( "testing" comettypes "github.com/cometbft/cometbft/types" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/polymerdao/monomer" "github.com/polymerdao/monomer/mempool" "github.com/polymerdao/monomer/testutils" "github.com/stretchr/testify/assert" @@ -24,18 +22,6 @@ func TestMempool(t *testing.T) { require.Error(t, err) }) - t.Run("deposit transaction", func(t *testing.T) { - l1AttributesTx, depositTx, _ := testutils.GenerateEthTxs(t) - l1AttributesTxBytes, err := l1AttributesTx.MarshalBinary() - require.NoError(t, err) - depositTxBytes, err := depositTx.MarshalBinary() - require.NoError(t, err) - - cosmosTxs, err := monomer.AdaptPayloadTxsToCosmosTxs([]hexutil.Bytes{l1AttributesTxBytes, depositTxBytes}) - require.NoError(t, err) - require.ErrorContains(t, pool.Enqueue(cosmosTxs[0]), "deposit txs are not allowed in the pool") - }) - // enqueue multiple to empty for i := byte(0); i < 3; i++ { require.NoError(t, pool.Enqueue(comettypes.Tx([]byte{i}))) diff --git a/x/rollup/tx/helpers/ante.go b/x/rollup/tx/helpers/ante.go index eb1a20ab..29f87cc4 100644 --- a/x/rollup/tx/helpers/ante.go +++ b/x/rollup/tx/helpers/ante.go @@ -1,6 +1,7 @@ package helpers import ( + "errors" "fmt" sdktypes "github.com/cosmos/cosmos-sdk/types" @@ -43,6 +44,12 @@ func (a *AnteHandler) AnteHandle( } return newCtx, err default: // Unfortunately, the Cosmos SDK does not export its default tx type. + for _, msg := range tx.GetMsgs() { + if _, ok := msg.(rolluptypes.DepositMsg); ok { + return ctx, errors.New("transaction contains deposit message") + } + } + newCtx, err := a.authAnteHandler(ctx, tx, simulate) if err != nil { return newCtx, fmt.Errorf("auth ante handle: %v", err) diff --git a/x/rollup/types/deposit_msg.go b/x/rollup/types/deposit_msg.go new file mode 100644 index 00000000..ef2effb9 --- /dev/null +++ b/x/rollup/types/deposit_msg.go @@ -0,0 +1,8 @@ +package types + +type DepositMsg interface { + isDeposit() +} + +func (*MsgSetL1Attributes) isDeposit() {} +func (*MsgApplyUserDeposit) isDeposit() {}