Skip to content

fix(tests): exclude & reject type 3 transactions on Monad - #58

Merged
pdobacz merged 2 commits into
forks/monad_ninefrom
fix/type3-not-valid-for
Sep 7, 2026
Merged

fix(tests): exclude & reject type 3 transactions on Monad#58
pdobacz merged 2 commits into
forks/monad_ninefrom
fix/type3-not-valid-for

Conversation

@pdobacz

@pdobacz pdobacz commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Small tweak to properly "unsupport" blob txs in Monad forks.

Selectively mark tx type 3 tests as excluded on Monad forks to fill a small coverage gap.

Surfaced during #53 and cherry-picked there

Greptile Summary

The PR consistently removes type-3 blob transaction support from Monad forks and updates fixture selection and exception mapping accordingly.

  • Rejects encoded type-3 transactions as unknown during decoding.
  • Rejects constructed blob transactions before generic transaction validation.
  • Adds focused coverage for both sufficient-gas and insufficient-intrinsic-gas cases.
  • Replaces unconditional skips with Monad-specific validity markers, retaining upstream coverage.

Confidence Score: 5/5

The PR appears safe to merge; no actionable correctness, security, or repository-rule issues remain.

The prior inconsistency is fully fixed because constructed blob transactions are now rejected before intrinsic-gas and other generic checks, while encoded type-3 transactions are rejected during decoding. The updated exception mapping and Monad-specific test markers are consistent with those paths.

Important Files Changed

Filename Overview
packages/testing/src/execution_testing/client_clis/clis/execution_specs.py Maps unsupported transaction-type failures to the specification's TransactionTypeError output.
src/ethereum/forks/monad_eight/transactions.py Rejects encoded and constructed blob transactions before secondary validation can change their error classification.
src/ethereum/forks/monad_nine/transactions.py Applies the same type-3 rejection behavior to Monad Nine.
src/ethereum/forks/monad_ten/transactions.py Applies the same type-3 rejection behavior to Monad Ten.
src/ethereum/forks/monad_next/transactions.py Applies the same type-3 rejection behavior to Monad Next.
tests/monad_eight/typed_transactions/test_blob_transaction.py Verifies unsupported-type precedence for blob transactions with both sufficient and insufficient intrinsic gas.
tests/istanbul/eip1344_chainid/test_chainid.py Narrows type-3 exclusion to Monad forks instead of skipping valid upstream coverage.
tests/prague/eip7623_increase_calldata_cost/test_execution_gas.py Uses Monad-specific validity markers for unsupported type-3 cases.
tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py Restricts the type-3 validity exclusion to Monad Eight and its descendants.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Transaction input] --> B{Encoded bytes?}
    B -->|Yes| C{Type byte is 3?}
    C -->|Yes| D[Raise TransactionTypeError]
    C -->|No| E[Decode supported transaction]
    B -->|No| F{Constructed BlobTransaction?}
    F -->|Yes| D
    F -->|No| G[Run generic transaction validation]
    E --> G
Loading

Reviews (2): Last reviewed commit: "feat(monad): reject blob transactions on..." | Re-trigger Greptile

@pdobacz
pdobacz requested review from QEDK and mijovic as code owners September 7, 2026 14:05
Comment thread src/ethereum/forks/monad_eight/fork.py Outdated
@pdobacz
pdobacz force-pushed the fix/type3-not-valid-for branch from 1cbfb0d to 89b33d3 Compare September 7, 2026 14:14
A skip drops the case on every fork; `not_valid_for` drops it only on
the forks without blob transactions, so the non-Monad forks keep the
coverage.

Co-Authored-By: Claude <claude-opus-5>
The forks advertise no blob schedule and fix the blob header fields at
zero, so the type EIP-4844 assigns is unknown to them rather than
merely unused. The type is checked ahead of the generic transaction
validation, so that a transaction failing both reports the type.

Co-Authored-By: Claude <claude-opus-5>
@pdobacz
pdobacz force-pushed the fix/type3-not-valid-for branch from 89b33d3 to 5887754 Compare September 7, 2026 14:15
@pdobacz pdobacz changed the title test(monad): exclude & reject type 3 transactions on Monad fix(tests): exclude & reject type 3 transactions on Monad Sep 7, 2026

@QEDK QEDK left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@pdobacz
pdobacz merged commit 50753aa into forks/monad_nine Sep 7, 2026
10 of 11 checks passed
@pdobacz
pdobacz deleted the fix/type3-not-valid-for branch September 7, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants