Introduction to Sourcify
Sourcify is a powerful tool that simplifies the deployment and verification of smart contracts. Developers can easily manage their contracts and ensure they are correctly verified on the Ethereum blockchain. In this guide, we will explore the various APIs provided by Sourcify, complete with code snippets and a sample app implementation.
Sourcify API Overview
The Sourcify API enables developers to interact programmatically with the Sourcify service. Below are some of the essential APIs:
1. Verify Contract API
POST /api/v1/verify { "contractName": "MyContract", "sourceCode": "pragma solidity ^0.8.0; contract MyContract { ... }", "compilerVersion": "v0.8.0+commit.c7dfd78e", "optimizationUsed": 1 }
2. Check Verification Status API
GET /api/v1/verify/:chain/:address { "status": "success", "message": "Contract verified." }
3. Fetch Contract Metadata API
GET /api/v1/metadata/:chain/:address { "name": "MyContract", "address": "0x12345...", "abi": {...}, "deployedBytecode": "0x..." }
4. Retrieve Source Code API
GET /api/v1/source/:chain/:address { "sourceCode": "pragma solidity ^0.8.0; ..." }
5. Verification Using Sourcify Files API
POST /api/v1/verify-sourcify { "files": [ { "name": "MyContract.sol", "content": "pragma solidity ^0.8.0; contract MyContract { ... }" } ], "compiler": "0.8.0" }
Sample Application using Sourcify APIs
Let’s create a sample application that interacts with the Sourcify API to deploy and verify a smart contract:
Deploy and Verify Contract
const axios = require('axios'); async function deployAndVerifyContract() { // Deploying the contract using web3 or ethers.js const deployedContract = await deployContract(); // Verifying the contract with Sourcify const verificationResponse = await axios.post('https://sourcify.dev/api/v1/verify', { contractName: 'MyContract', sourceCode: 'pragma solidity ^0.8.0; contract MyContract { ... }', compilerVersion: 'v0.8.0+commit.c7dfd78e', optimizationUsed: 1 }); console.log('Verification Status:', verificationResponse.data.status); } deployAndVerifyContract();
In this example, after deploying the contract, we verify it using the Sourcify Verify API and log the verification status to the console. This simple application showcases how you can ensure your contracts are correctly deployed and verified using Sourcify.
Hash: 598a25fab4b696e4db5d9d792c4f506d9955c38b7eef0ba0fef44d8c2e73afba