chore(contracts): set EVM version to paris for OP Stack compatibility#173
Conversation
- Fix: Remove outdated .nvmrc reference in README (now using mise) - Fix: Update PoseidonT3.sol Solidity version from ^0.8.24 to ^0.8.25 - Docs: Update CHANGELOG with recent merged PRs (#170, #169, #168, #163) - Refactor: Move documentation to docs/ directory for better organization - CONTRIBUTING.md -> docs/CONTRIBUTING.md - BRANCHING.md -> docs/BRANCHING.md - DEPLOYMENT.md -> docs/DEPLOYMENT.md - TROUBLESHOOTING.md -> docs/TROUBLESHOOTING.md - Copy THREAT_MODEL.md, KNOWN_ISSUES.md, ARCHITECTURE.md to docs/ - Update README links to reflect new docs/ structure
- Add evm_version = "paris" to foundry.toml - Ensures bytecode compatibility with Optimism Superchain - Paris is the EVM version used by OP Mainnet and OP Sepolia - All 148 tests pass with Paris EVM
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Greptile SummaryThis PR sets
Confidence Score: 5/5Safe to merge — configuration-only change with all 148 tests passing and gas snapshots updated consistently. The change is limited to adding evm_version = "paris" in two Foundry profile blocks. No contract logic is modified, both profiles are updated consistently, and the regenerated gas snapshot confirms all tests still pass. The uniform gas increase across every test is the expected consequence of the compiler no longer emitting the PUSH0 opcode under the Paris target. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[foundry.toml] --> B[profile.default]
A --> C[profile.integration]
B --> D["evm_version = paris\nvia_ir = true\nremappings ..."]
C --> E["evm_version = paris"]
D --> F[Solidity Compiler]
E --> F
F --> G["Paris EVM Bytecode\n(no PUSH0, no MCOPY/TLOAD/TSTORE)"]
G --> H["OP Stack Compatible\n(Optimism Mainnet / OP Sepolia)"]
Reviews (2): Last reviewed commit: "chore: update gas snapshot for paris EVM..." | Re-trigger Greptile |
Gas costs increased by ~3-5% after switching to paris EVM target. This is expected behavior for OP Stack compatibility.
…#173) * chore: fix typo, bug, update docs, and reorganize project structure - Fix: Remove outdated .nvmrc reference in README (now using mise) - Fix: Update PoseidonT3.sol Solidity version from ^0.8.24 to ^0.8.25 - Docs: Update CHANGELOG with recent merged PRs (#170, #169, #168, #163) - Refactor: Move documentation to docs/ directory for better organization - CONTRIBUTING.md -> docs/CONTRIBUTING.md - BRANCHING.md -> docs/BRANCHING.md - DEPLOYMENT.md -> docs/DEPLOYMENT.md - TROUBLESHOOTING.md -> docs/TROUBLESHOOTING.md - Copy THREAT_MODEL.md, KNOWN_ISSUES.md, ARCHITECTURE.md to docs/ - Update README links to reflect new docs/ structure * chore(contracts): set EVM version to paris for OP Stack compatibility - Add evm_version = "paris" to foundry.toml - Ensures bytecode compatibility with Optimism Superchain - Paris is the EVM version used by OP Mainnet and OP Sepolia - All 148 tests pass with Paris EVM * chore: update gas snapshot for paris EVM version Gas costs increased by ~3-5% after switching to paris EVM target. This is expected behavior for OP Stack compatibility.
Summary
Configures Foundry to use Paris EVM version for Optimism Superchain compatibility.
Why Paris?
1. OP Stack Compatibility ⭐
prague(default) may generate incompatible bytecode2. Stability
3. Opcodes
PUSH0(0x5f) - gas efficientMCOPY,TLOAD,TSTORE- not yet on OP StackChanges
evm_version = "paris"to[profile.default]evm_version = "paris"to[profile.integration]Verification
Impact
Risk
Low - configuration only, all tests pass.
Summary by CodeRabbit