Draft
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests.
Additional details and impacted files@@ Coverage Diff @@
## develop #20031 +/- ##
===========================================
- Coverage 11.7% 0.0% -11.8%
===========================================
Files 676 1 -675
Lines 71049 6 -71043
===========================================
- Hits 8322 0 -8322
+ Misses 62583 6 -62577
+ Partials 144 0 -144
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Wire up the Karst OP fork through the Rust EL stack so that EIP-7823 (modexp precompile input upper bounds of 1024 bytes) takes effect when Karst activates. Karst remains at SpecId::PRAGUE to avoid unsupported fork errors in reth v2.0.0; the modexp limit is enforced via a custom karst() precompile set that swaps modexp::BERLIN for modexp::OSAKA. Changes: - Add OpSpecId::KARST variant mapped to SpecId::PRAGUE - Add karst() precompile set with modexp::OSAKA (EIP-7823 limits) - Add karst_time to OpGenesisInfo, HardforkConfig, ChainConfigExtraFields - Wire is_karst_active_at_timestamp into spec_by_timestamp_after_bedrock - Register OpHardfork::Karst in chainspec From<Genesis>, DEV_HARDFORKS, devnet config, and OpChainSpecBuilder - Add KarstTime to Go RollupConfig() output (was missing) - Add acceptance test TestEIP7823UpperBoundModExp verifying pre/post fork behavior Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1d6d650 to
8daae0a
Compare
Add TestEIP7939CLZ to verify the CLZ opcode (0x1e) is available after the Karst fork and unavailable before it. The test uses eth_call with init code that computes CLZ(1) = 255, asserting an invalid opcode error pre-fork and the correct result post-fork. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add TestEIP7883ModExpGasCostIncrease to verify the modexp precompile gas floor increases from 200 to 500 after the Karst fork. Uses empty calldata (precompile zero-pads missing input) to avoid EIP-7623 calldata cost inflation, allowing precise control of execution gas via the eth_call gas limit. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add TestEIP7825TxGasLimitCap to verify the 2^24 transaction gas limit cap is enforced after Karst. Uses txplan to send real transactions since EIP-7825 is a tx validity rule not enforced by eth_call or eth_simulateV1. Tests both pre-karst (gas above cap allowed) and post-karst (gas above cap rejected, gas at cap succeeds). Also adds WithKarstAtGenesis deployer option and fixes the tx manager gas estimator to set callMsg.Gas to params.MaxTxGas before calling EstimateGas, which is required post-Osaka. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8daae0a to
58c5664
Compare
…test Assert that the P256VERIFY precompile gas cost increases from 3,450 (RIP-7212) to 6,900 (EIP-7951) at Karst activation. Also update the karst() precompile set in op-revm to swap secp256r1::P256VERIFY for secp256r1::P256VERIFY_OSAKA. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Assert that OP Stack chains can build blocks exceeding the EIP-7934 10 MiB RLP block size limit. Submits many transactions with large calldata under a 200M gas limit and verifies a single block exceeds 10 MiB in total transaction data. Also adds WithGasLimit to L2Configurator and WithL2GasLimit deployer option to support custom L2 block gas limits in tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.