Skip to content

Unexpected error INVALID: initcode too large when sending non-create transaction with large calldata size #10607

@sebastianst

Description

@sebastianst

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions