diff --git a/op-node/rollup/derive/data_source.go b/op-node/rollup/derive/data_source.go index c7f04154ece65..085e2d49b4980 100644 --- a/op-node/rollup/derive/data_source.go +++ b/op-node/rollup/derive/data_source.go @@ -96,11 +96,6 @@ type DataSourceConfig struct { // 2. the transaction type is any of Legacy, ACL, DynamicFee, Blob, or Deposit (for L3s). // 3. the transaction has a To() address that matches the batch inbox address func isValidBatchTx(tx *types.Transaction, receipt *types.Receipt, _ types.Signer, batchInboxAddr, batcherAddr common.Address, logger log.Logger) bool { - if receipt.Status != types.ReceiptStatusSuccessful { - logger.Warn("tx in inbox with invalid status", "hash", tx.Hash(), "status", receipt.Status) - return false - } - // For now, we want to disallow the SetCodeTx type or any future types. if tx.Type() > types.BlobTxType && tx.Type() != types.DepositTxType { return false @@ -111,6 +106,11 @@ func isValidBatchTx(tx *types.Transaction, receipt *types.Receipt, _ types.Signe return false } + if receipt.Status != types.ReceiptStatusSuccessful { + logger.Warn("tx in inbox with invalid status", "hash", tx.Hash(), "status", receipt.Status) + return false + } + // NOTE: contrary to a standard OP batcher, we can safely skip any verification related // to the sender of the transaction. Indeed the Batch Inbox contract takes care of // ensuring the sender of the batch information is a legitimate batcher.