This is a simple contract that verifies signatures from a given notary.
The contract is deployed on Base Sepolia at 0xeB3Ba25400A4d716d091090942705aD51d04B7ea
This command will deploy the contract and automatically verify it on Basescan.
-
Set your Private Key: This is required to sign the deployment transaction.
export PRIVATE_KEY="<YOUR_PRIVATE_KEY>"
-
Set your Basescan API Key: You need an API key from Etherscan (which works for Basescan) to publish the source code. You can get one for free from the Etherscan website.
export ETHERSCAN_API_KEY="<YOUR_ETHERSCAN_API_KEY>"
-
Run the deployment script:
forge script script/SignatureChecker.s.sol:VerifierScript \ --rpc-url https://sepolia.base.org \ --private-key $PRIVATE_KEY \ --broadcast \ --verify \ --verifier etherscan \ --etherscan-api-key $ETHERSCAN_API_KEY \ -vvvv
If the deployment script succeeds but verification fails for some reason, you can verify it manually.
-
Find your contract address and constructor arguments: After a successful deployment, Foundry saves a receipt in the
broadcast/
directory. Look insidebroadcast/SignatureChecker.s.sol/84532/run-latest.json
.- The contract address is under
receipts[0].contractAddress
. - The constructor arguments are the long hex string under
transactions[0].constructorArguments
.
- The contract address is under
-
Run the verify command:
forge verify-contract <CONTRACT_ADDRESS> src/Verifier.sol:PlutoAttestationVerifier \ --chain base-sepolia \ --verifier etherscan \ --etherscan-api-key $ETHERSCAN_API_KEY \ --constructor-args <CONSTRUCTOR_ARGS>