Repository navigation
Conversation
Turns the ad-hoc rollup verification script into a reusable tool: - resolve rollups by address or by rollupID through AgglayerManager - read implementation/admin from ERC-1967 slots and verify the PolygonTransparentProxy with [impl, admin, '0x'] - optionally verify the implementation with configurable contract and constructor args - treat "already verified" as success, continue on errors, print a summary and exit non-zero on failures - fail fast if the Etherscan API key of the selected network is missing - dryRun mode to print the verification args without calling Etherscan Refs agglayer/protocol-team-kanban#512 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Add optional proxyContract (global and per entry) and document that the proxy bytecode comes from the rollup manager version that created the rollup, with per-tag source paths and compiler settings; print a hint on compiler/bytecode mismatch errors - Check Etherscan isVerified before verifying, since hardhat-verify does not throw for already verified contracts - Fail an entry when rollupAddress and rollupID disagree (warn when no rollupManagerAddress is set) - Use placeholder values in verifyRollup.json.example - Note in README that the tool is not yet validated end to end and how to use the Etherscan V2 API through customChains Refs agglayer/protocol-team-kanban#512 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add sepolia and mainnet customChains using the Etherscan V2 API, restore the chainid query parameter that hardhat-verify 1.1.1 drops in its GET requests, resolve the API key with the matched chain config network, add a hint for Etherscan "Unable to verify" failures and document the v10 compiler exceptions and the Sepolia validation. Refs agglayer/protocol-team-kanban#512 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
Superseded by #614 (branch renamed to |
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.
Summary
Adds
tools/verifyRollup/, a reusable Hardhat tool that verifies rollup (aggchain) proxies on Etherscan.Older and upgraded rollups
proxyConstructorImplementation.proxyContractfrom a checkout of the matching tag. When a compiler or bytecode mismatch occurs, the error message points to that section.Etherscan V2
hardhat.config.ts: addscustomChainsforsepoliaandmainnetwith the V2 endpoint (https://api.etherscan.io/v2/api?chainid=…), following the existingopSepoliaentry. This switches every Sepolia and mainnet verification in the repo from the deprecated V1 API to V2.@nomicfoundation/hardhat-verify1.1.1 drops the query string on GET requests, so V2'schainidis lost. This breaks the already-verified check and the status polling after a submission. The tool wraps the plugin's internalsendGetRequestand adds the API URL's query parameters back, only for requests to that API URL.🤖 Generated with Claude Code