Skip to content

Karst gas-limit reset — OP Mainnet (055), rotations shift to 056-059#1480

Open
sbvegan wants to merge 6 commits into
mainfrom
sb/gas-limit-op-mainnet
Open

Karst gas-limit reset — OP Mainnet (055), rotations shift to 056-059#1480
sbvegan wants to merge 6 commits into
mainfrom
sb/gas-limit-op-mainnet

Conversation

@sbvegan

@sbvegan sbvegan commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Context

Karst (U19) has an op-node/kona-node bug that leaves the effective L2 block gas limit ~55 MGas above the value stored in the SystemConfig after the activation block (see Notion "P/PS: Karst Gas Limit Bug"). The approved mitigation is a per-chain SystemConfig transaction that re-emits the gas ConfigUpdate, resetting the effective gas limit back to the on-chain value.

Mainnet Karst activates 2026-07-08. This task runs after activation.

What this PR does

Inserts the OP Mainnet gas-limit reset as the new 055-gas-limit-op so it executes first among the post-U19 Foundation Upgrade Safe (FUS) tasks — ahead of the signer rotations — and renumbers the previously-merged rotation tasks (#1479) to run after it.

OP Mainnet's SystemConfig is owned by the FUS, so the gas-limit task is rooted there. Running it before the rotations means it is signed by the current owner set, with no dependency on the rotation onboarding.

Task / nonce ordering (FUS = 0x847B…9D92, FOS = 0x9BA6…6b3A)

Task Safe nonce change
053-U19-op-ink-mmz-soneium FUS 57
054-U19-unichain FUS 58
055-gas-limit-op (this PR) FUS 59 new
056-fus-rotation-1 FUS 60 was 055, nonce 59→60
057-fus-rotation-2 FUS 61 was 056, nonce 60→61
058-fos-rotation-1 FOS 118 was 057, nonce unchanged
059-fos-rotation-2 FOS 119 was 058, nonce unchanged

The FOS nonces are unchanged because the gas-limit task only touches the FUS.

Validation

just simulate-stack eth 059-fos-rotation-2 (full stack) passes end-to-end with no hash mismatches. The regenerated message hashes for the three FUS tasks whose nonce shifted (055, 056, 057) are recorded in their VALIDATION.md files; the FOS task hashes are unchanged. Verify the live FUS/FOS nonces before signing.

Notes

  • Only setGasLimit is called (no setEIP1559Params) — the SystemConfigGasLimit template is used since the EIP-1559 params do not need resetting.
  • OP Mainnet already has gasLimit = 40000000 on chain; the call is a no-op for storage but re-emits the ConfigUpdate event.

🤖 Generated with Claude Code

Uses SystemConfigGasLimit template (setGasLimit only) to re-emit the gas
ConfigUpdate on OP Mainnet after Karst (U19) activation. Rooted at the
Foundation Upgrade Safe (SystemConfigOwner), nonce 61 stacked after
053–054 (U19) and 055–056 (FUS rotation).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sbvegan sbvegan requested review from a team as code owners June 23, 2026 00:06
@sbvegan sbvegan requested a review from mds1 June 23, 2026 00:06
Comment thread src/tasks/eth/059-gas-limit-op/README.md Outdated
sbvegan and others added 3 commits June 22, 2026 23:44
Insert the Karst gas-limit reset for OP Mainnet as 055-gas-limit-op so it
executes first among the post-U19 FUS tasks (FUS nonce 59), ahead of the
signer rotations. The previously-merged rotation tasks move:

  055-fus-rotation-1 -> 056-fus-rotation-1 (FUS nonce 59 -> 60)
  056-fus-rotation-2 -> 057-fus-rotation-2 (FUS nonce 60 -> 61)
  057-fos-rotation-1 -> 058-fos-rotation-1 (FOS nonce 118, unchanged)
  058-fos-rotation-2 -> 059-fos-rotation-2 (FOS nonce 119, unchanged)

Nonce overrides, cross-task references, and per-task READMEs/VALIDATIONs
updated accordingly. Message hashes for the three FUS tasks (055/056/057)
are regenerated separately since their nonces changed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sbvegan sbvegan changed the title Karst gas-limit reset — OP Mainnet (059) Karst gas-limit reset — OP Mainnet (055), rotations shift to 056-059 Jun 24, 2026
Comment on lines +87 to +90
- **Before:** `59`
- **After:** `60`
- **Summary:** Safe nonce increment.
- **Detail:** The Safe nonce is incremented from 59 to 60 after executing the transaction.
- **Detail:** The Safe nonce is incremented from 60 to 61 after executing the transaction.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

There is an inconsistency in the nonce before/after values in the State Changes section. The table header rows (lines 87-88, unchanged) say 'Before: 59' and 'After: 60', but the modified detail line (line 90) now says 'incremented from 60 to 61'. This mismatch means the summary rows and the detail row describe different nonce transitions, which will confuse validators trying to verify the state diff. The 'Before' and 'After' summary values should also be updated to 60 and 61 respectively to be consistent with the new nonce ordering.

Suggested change
- **Before:** `59`
- **After:** `60`
- **Summary:** Safe nonce increment.
- **Detail:** The Safe nonce is incremented from 59 to 60 after executing the transaction.
- **Detail:** The Safe nonce is incremented from 60 to 61 after executing the transaction.
- **Before:** `60`
- **After:** `61`
- **Summary:** Safe nonce increment.
- **Detail:** The Safe nonce is incremented from 60 to 61 after executing the transaction.

Spotted by Graphite (based on custom rule: Superchain Ops task/template review)

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

Comment on lines +91 to +94
- **Before:** `60`
- **After:** `61`
- **Summary:** Safe nonce increment.
- **Detail:** The Safe nonce is incremented from 60 to 61 after executing the transaction.
- **Detail:** The Safe nonce is incremented from 61 to 62 after executing the transaction.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Similar to the issue in 056-fus-rotation-1/VALIDATION.md, the unchanged summary rows (lines 91-92) still show 'Before: 60' and 'After: 61', but the modified detail line (line 94) now says 'incremented from 61 to 62'. This inconsistency between the summary and detail rows will mislead validators checking the state diff. The 'Before' and 'After' values in the summary should be updated to 61 and 62 to match the new nonce ordering introduced by inserting task 055.

Suggested change
- **Before:** `60`
- **After:** `61`
- **Summary:** Safe nonce increment.
- **Detail:** The Safe nonce is incremented from 60 to 61 after executing the transaction.
- **Detail:** The Safe nonce is incremented from 61 to 62 after executing the transaction.
- **Before:** `61`
- **After:** `62`
- **Summary:** Safe nonce increment.
- **Detail:** The Safe nonce is incremented from 61 to 62 after executing the transaction.

Spotted by Graphite (based on custom rule: Superchain Ops task/template review)

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

soyboy vegan and others added 2 commits June 24, 2026 10:06
Address Graphite review: the State Changes nonce Before/After rows were
left at the old values while only the Detail line was updated. Sync them
to the new ordering (056: 60->61, 057: 61->62).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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