Skip to content

fix(monad): keep blob header fields on MONAD_EIGHT#21

Open
haythemsellami wants to merge 1 commit intomonad-developers:forks/monad_ninefrom
haythemsellami:monad_eight_disable_blobs_keep_headers
Open

fix(monad): keep blob header fields on MONAD_EIGHT#21
haythemsellami wants to merge 1 commit intomonad-developers:forks/monad_ninefrom
haythemsellami:monad_eight_disable_blobs_keep_headers

Conversation

@haythemsellami
Copy link
Copy Markdown

@haythemsellami haythemsellami commented Apr 8, 2026

Summary

  • keep MONAD_EIGHT blob transaction support disabled without dropping blob-related header fields
  • preserve Cancun/Prague header layout by inheriting the default blob header field requirements
  • update the fork test to document that MONAD_EIGHT rejects blob tx behavior but still keeps blob header fields

Context

PR #15 disabled both blob transactions and blob header fields for MONAD_EIGHT.

PR #20 identified that this was too broad: Monad still expects the blob-related header fields in the RLP header layout, so omitting them can shift later fields and cause header decoding failures.

This change keeps the original intent of #15 for transaction behavior, but stops overriding:

  • header_excess_blob_gas_required()
  • header_blob_gas_used_required()

@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Apr 8, 2026

Greptile Summary

This PR corrects an overly broad blob-disabling change from PR #15 by restoring the Cancun/Prague header field requirements (header_excess_blob_gas_required and header_blob_gas_used_required) for the MONAD_EIGHT fork, while continuing to reject blob transactions at the transaction-type level. The fix ensures the RLP header layout remains compatible with the rest of the chain, preventing header decoding failures that would occur if blob-related fields were removed from the header layout.

Key changes:

  • Removes the header_excess_blob_gas_required() and header_blob_gas_used_required() overrides from MONAD_EIGHT, allowing inheritance of True from Cancun
  • supports_blobs(), tx_types() (no type-3), blob_schedule(), engine_get_blobs_version(), and engine_new_payload_blob_hashes() all remain correctly overridden to disable actual blob transaction behavior
  • Test renamed from test_monad_eight_disables_blob_support to test_monad_eight_disables_blob_transactions_not_headers with updated assertions (is True for both header field methods)

Confidence Score: 5/5

This PR is safe to merge — it makes a minimal, well-scoped correction that restores correct header field inheritance for MONAD_EIGHT.

The change removes two method overrides that were incorrectly stripping blob header fields from MONAD_EIGHT. The inheritance chain from Cancun correctly provides True for both header_excess_blob_gas_required and header_blob_gas_used_required. All other blob-disabling overrides remain intact and correct. The updated test accurately documents the intended behavior. No logic errors, no missing cases.

No files require special attention.

Vulnerabilities

No security concerns identified.

Important Files Changed

Filename Overview
packages/testing/src/execution_testing/forks/forks/forks.py Removes two method overrides from MONAD_EIGHT that incorrectly suppressed blob header fields; MONAD_EIGHT now correctly inherits True from Cancun for both header field requirements while keeping blob transactions disabled.
packages/testing/src/execution_testing/forks/tests/test_forks.py Test renamed and assertions updated to match the new intended behavior: header fields required (is True), blob transactions still disabled (is False, None, absent from tx_types).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[MONAD_EIGHT fork] -->|inherits from| B[Prague]
    B -->|inherits from| C[Cancun]

    C -->|header_excess_blob_gas_required| D["returns True ✓"]
    C -->|header_blob_gas_used_required| E["returns True ✓"]

    A -->|overrides supports_blobs| F["returns False ✓"]
    A -->|overrides tx_types| G["excludes type-3 ✓"]
    A -->|overrides blob_schedule| H["returns None ✓"]
    A -->|overrides engine_get_blobs_version| I["returns None ✓"]
    A -->|overrides engine_new_payload_blob_hashes| J["returns False ✓"]
    A -->|overrides full_blob_tx_wrapper_version| K["returns None ✓"]
Loading

Reviews (1): Last reviewed commit: "fix(monad): keep blob header fields on M..." | Re-trigger Greptile

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.

1 participant