-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
System information
Erigon version: 2.60.0
OS & Version: Linux
Commit hash: see tag
Erigon Command (with flags/config): irrelevant
Consensus Layer: irrelevant
Consensus Layer Command (with flags/config): irrelevant
Chain/Network: Sepolia
Expected behaviour
Erigon accepts publishing a non-create transaction with large calldata size.
Actual behaviour
Erigon returns an error when submitting a non-create transaction with large calldata size with INVALID: initcode too large
.
See also EIP-3860, which only applies to create transactions.
Steps to reproduce the behaviour
This happened while our OP Sepolia batcher tried to submit batcher transactions via our enterprise Ankr endpoint, which runs Erigon (cc @PeaStew from Ankr). One example transaction that we could eventually submit with geth but not with Erigon is 0x15b19a10870fb3a8c62c82abf7e1004f795c57dbe54cee133ab2a7cc5b1c02dc.
You can reproduce this error with the following steps
export ETH_RPC_URL=https://<your-Sepolia-Erigon-RPC>
export TX=$(cast tx --raw 0x15b19a10870fb3a8c62c82abf7e1004f795c57dbe54cee133ab2a7cc5b1c02dc)
cast publish $TX # resubmitting also triggers error
# Error: server returned an error response: error code -32000: INVALID: initcode too large
The error is returned here https://github.com/ledgerwatch/erigon/blob/aed04b258dfc489921a05a745f922177bf0de49f/erigon-lib/txpool/pool.go#L837-L839
I believe this if
should add a check for the tx's To
field being the zero address.