mirror of
https://github.com/selfxyz/self.git
synced 2026-01-12 08:08:15 -05:00
* update scripts * deploy vc and disclose id * fix the deployment scripts on staging * update yarn.lock
119 lines
4.4 KiB
TypeScript
119 lines
4.4 KiB
TypeScript
import { ethers } from "ethers";
|
|
import * as dotenv from "dotenv";
|
|
import * as fs from "fs";
|
|
import * as path from "path";
|
|
import { RegisterVerifierId, DscVerifierId } from "../../common/src/constants/constants";
|
|
|
|
dotenv.config();
|
|
|
|
// Debug logs for paths and files
|
|
console.log("Current directory:", __dirname);
|
|
console.log(
|
|
"Deployed addresses path:",
|
|
path.join(__dirname, "../ignition/deployments/chain-42220/deployed_addresses.json"),
|
|
);
|
|
console.log(
|
|
"Contract ABI path:",
|
|
path.join(__dirname, "../ignition/deployments/chain-42220/artifacts/DeployHub#IdentityVerificationHubImplV1.json"),
|
|
);
|
|
|
|
// Debug logs for environment variables (redacted for security)
|
|
console.log("CELO_RPC_URL configured:", !!process.env.CELO_RPC_URL);
|
|
console.log("PRIVATE_KEY configured:", !!process.env.PRIVATE_KEY);
|
|
|
|
try {
|
|
const deployedAddresses = JSON.parse(
|
|
fs.readFileSync(path.join(__dirname, "../ignition/deployments/chain-42220/deployed_addresses.json"), "utf-8"),
|
|
);
|
|
console.log("Deployed addresses loaded:", deployedAddresses);
|
|
|
|
const identityVerificationHubAbiFile = fs.readFileSync(
|
|
path.join(__dirname, "../ignition/deployments/prod/artifacts/DeployHub#IdentityVerificationHubImplV1.json"),
|
|
"utf-8",
|
|
);
|
|
console.log("ABI file loaded");
|
|
|
|
const identityVerificationHubAbi = JSON.parse(identityVerificationHubAbiFile).abi;
|
|
console.log("ABI parsed");
|
|
|
|
const contractAbiPath = path.join(__dirname, "../ignition/deployments/chain-11155111/artifacts");
|
|
|
|
function getContractAddressByPartialName(partialName: string): string | unknown {
|
|
for (const [key, value] of Object.entries(deployedAddresses)) {
|
|
if (key.includes(partialName)) {
|
|
return value;
|
|
}
|
|
}
|
|
return undefined;
|
|
}
|
|
|
|
async function main() {
|
|
const provider = new ethers.JsonRpcProvider(process.env.CELO_RPC_URL as string);
|
|
console.log("Provider created");
|
|
|
|
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY as string, provider);
|
|
console.log("Wallet created");
|
|
|
|
// const hubAddress = deployedAddresses["DeployHub#IdentityVerificationHub"];
|
|
const hubAddress = "0x77117D60eaB7C044e785D68edB6C7E0e134970Ea";
|
|
console.log("Hub address:", hubAddress);
|
|
|
|
if (!hubAddress) {
|
|
throw new Error("Hub address not found in deployed_addresses.json");
|
|
}
|
|
|
|
const identityVerificationHub = new ethers.Contract(hubAddress, identityVerificationHubAbi, wallet);
|
|
console.log("Contract instance created");
|
|
|
|
// Debug verifier addresses before updating
|
|
const registerVerifierKeys = Object.keys(RegisterVerifierId).filter((key) => isNaN(Number(key)));
|
|
for (const key of registerVerifierKeys) {
|
|
const verifierName = `Verifier_${key}`;
|
|
const verifierAddress = getContractAddressByPartialName(verifierName);
|
|
console.log(`${verifierName} address:`, verifierAddress);
|
|
}
|
|
|
|
for (const key of registerVerifierKeys) {
|
|
const verifierName = `Verifier_${key}`;
|
|
const verifierAddress = getContractAddressByPartialName(verifierName);
|
|
if (!verifierAddress) {
|
|
console.log(`Skipping ${verifierName} because no deployed address was found.`);
|
|
continue;
|
|
}
|
|
console.log(`Updating for ${verifierName}`);
|
|
const verifierId = RegisterVerifierId[key as keyof typeof RegisterVerifierId];
|
|
|
|
try {
|
|
const tx = await identityVerificationHub.updateRegisterCircuitVerifier(verifierId, verifierAddress);
|
|
const receipt = await tx.wait();
|
|
console.log(`${verifierName} is updated with tx: ${receipt.hash}`);
|
|
} catch (error) {
|
|
console.error(`Error updating ${verifierName}:`, error);
|
|
}
|
|
}
|
|
|
|
const dscKeys = Object.keys(DscVerifierId).filter((key) => isNaN(Number(key)));
|
|
for (const key of dscKeys) {
|
|
const verifierName = `Verifier_${key}`;
|
|
const verifierAddress = getContractAddressByPartialName(verifierName);
|
|
if (!verifierAddress) {
|
|
console.log(`Skipping ${verifierName} because no deployed address was found.`);
|
|
continue;
|
|
}
|
|
const verifierId = DscVerifierId[key as keyof typeof DscVerifierId];
|
|
|
|
const tx = await identityVerificationHub.updateDscVerifier(verifierId, verifierAddress);
|
|
const receipt = await tx.wait();
|
|
console.log(`${verifierName} is updated wit this tx: ${receipt.hash}`);
|
|
}
|
|
}
|
|
|
|
main().catch((error) => {
|
|
console.error("Execution error:", error);
|
|
process.exitCode = 1;
|
|
});
|
|
} catch (error) {
|
|
console.error("Initial setup error:", error);
|
|
process.exitCode = 1;
|
|
}
|