feat: implement contract verification script for Etherscan (fixes #165)#288
Merged
Adeswalla merged 2 commits intoAdeswalla:mainfrom Mar 30, 2026
Merged
feat: implement contract verification script for Etherscan (fixes #165)#288Adeswalla merged 2 commits intoAdeswalla:mainfrom
Adeswalla merged 2 commits intoAdeswalla:mainfrom
Conversation
…swalla#165) - Added robust scripts/verify.ts to programmatically verify AjoCircle and AjoFactory - Extracted verified addresses and constructor arguments automatically from deploy manifest - Updated hardhat config with multi-chain Etherscan & Sourcify support - Added NPM scripts deploy:verify:sepolia to streamline full deployment loop - Rewrote CONTRACT_VERIFICATION.md with clear community steps
|
@Josetic224 is attempting to deploy a commit to the adeswalla's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@Josetic224 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
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.
feat: automated block explorer verification & ABI tracking (fixes #165)
Description
This PR resolves issue #165 by implementing an automated Block Explorer verification pipeline for our Ethereum-compatible contracts. This ensures our on-chain logic is universally transparent and instantly exposes our ABIs on Etherscan so the community can natively track and interact with the Ajo contracts through graphical explorer interfaces.
Key Changes
Automated Verification Script (
scripts/verify.ts
): Built a robust programmatic verification script bypassing manual ABI entry and constructor string encoding. The script automatically reads the deployment manifest (deployed-.json) to accurately extract deployed addresses and their exact, dynamically-injected constructor arguments in sync with the chain state.
Etherscan & Sourcify Configurations: Updated the root
hardhat.config.ts
and sub-project config to correctly map ETHERSCAN_API_KEY to multi-chain configurations natively supported by the @nomicfoundation/hardhat-verify plugin. Integrated a sourcify fallback for decentralized, IPFS-backed alternative verification.
Streamlined Workflow: Added foundational NPM scripts (verify:sepolia and a chained deploy:verify:sepolia) yielding a single-command loop for compiling, deploying, saving metadata, and publishing verification requests seamlessly.
Documentation Overhaul: Rewrote
CONTRACT_VERIFICATION.md
to offer crystal-clear, actionable steps detailing both Etherscan (EVM) and Stellar Expert (Soroban) workflows, with added troubleshooting guidance for developers.
Typescript Context Isolation: Configured a dedicated
tsconfig.scripts.json
to process utility scripts exactly right for the Hardhat runtime (CommonJS + Node types), sidestepping module-resolution conflicts with our Next.js frontend architecture.
closes #165