refactor: simplify deployment automation and convert to ES modules
Some checks failed
Contract Performance Benchmarks / benchmark-gas-usage (push) Has been cancelled
Contract Performance Benchmarks / benchmark-execution-time (push) Has been cancelled
Contract Performance Benchmarks / benchmark-throughput (push) Has been cancelled
Contract Performance Benchmarks / compare-benchmarks (push) Has been cancelled
Cross-Chain Functionality Tests / test-cross-chain-sync (push) Has been cancelled
Cross-Chain Functionality Tests / test-cross-chain-transactions (push) Has been cancelled
Cross-Chain Functionality Tests / test-cross-chain-bridge (push) Has been cancelled
Cross-Chain Functionality Tests / test-multi-chain-consensus (push) Has been cancelled
Cross-Chain Functionality Tests / aggregate-results (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Deploy to Testnet / notify-deployment (push) Has been cancelled
Some checks failed
Contract Performance Benchmarks / benchmark-gas-usage (push) Has been cancelled
Contract Performance Benchmarks / benchmark-execution-time (push) Has been cancelled
Contract Performance Benchmarks / benchmark-throughput (push) Has been cancelled
Contract Performance Benchmarks / compare-benchmarks (push) Has been cancelled
Cross-Chain Functionality Tests / test-cross-chain-sync (push) Has been cancelled
Cross-Chain Functionality Tests / test-cross-chain-transactions (push) Has been cancelled
Cross-Chain Functionality Tests / test-cross-chain-bridge (push) Has been cancelled
Cross-Chain Functionality Tests / test-multi-chain-consensus (push) Has been cancelled
Cross-Chain Functionality Tests / aggregate-results (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Deploy to Testnet / notify-deployment (push) Has been cancelled
- Remove deployment of RewardDistributor, PerformanceAggregator, StakingPoolFactory, and DAOGovernanceEnhanced contracts - Reorder initialization to register contracts before initializing TreasuryManager - Add error handling for duplicate contract registration - Convert require() to ES module imports in deploy-automation.js, monitor-contracts.js, and verify-deployment.js - Move fs import to top of deploy-automation.js
This commit is contained in:
6
contracts/deployments-localhost-1777452614032.json
Normal file
6
contracts/deployments-localhost-1777452614032.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"AIToken": "0xCD8a1C3ba11CF5ECfa6267617243239504a98d90",
|
||||
"ContractRegistry": "0x82e01223d51Eb87e16A03E24687EDF0F294da6f1",
|
||||
"TreasuryManager": "0x2bdCC0de6bE1f7D2ee689a0342D76F52E8EFABa3",
|
||||
"AgentMarketplaceV2": "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0"
|
||||
}
|
||||
@@ -3,7 +3,9 @@
|
||||
* Supports deployment to local, testnet, and mainnet environments
|
||||
*/
|
||||
|
||||
const { ethers } = require("hardhat");
|
||||
import hardhat from "hardhat";
|
||||
const { ethers } = hardhat;
|
||||
import fs from "fs";
|
||||
|
||||
async function main() {
|
||||
console.log("=== AITBC Smart Contract Deployment ===");
|
||||
@@ -44,62 +46,7 @@ async function main() {
|
||||
deployments.TreasuryManager = await treasuryManager.getAddress();
|
||||
console.log("TreasuryManager deployed to:", deployments.TreasuryManager);
|
||||
|
||||
// Initialize TreasuryManager
|
||||
await treasuryManager.initialize(deployments.ContractRegistry);
|
||||
console.log("TreasuryManager initialized");
|
||||
|
||||
// 4. Deploy RewardDistributor
|
||||
console.log("\n--- Deploying RewardDistributor ---");
|
||||
const RewardDistributor = await ethers.getContractFactory("RewardDistributor");
|
||||
const rewardDistributor = await RewardDistributor.deploy();
|
||||
await rewardDistributor.waitForDeployment();
|
||||
deployments.RewardDistributor = await rewardDistributor.getAddress();
|
||||
console.log("RewardDistributor deployed to:", deployments.RewardDistributor);
|
||||
|
||||
// Initialize RewardDistributor
|
||||
await rewardDistributor.initialize(deployments.ContractRegistry);
|
||||
console.log("RewardDistributor initialized");
|
||||
|
||||
// 5. Deploy PerformanceAggregator
|
||||
console.log("\n--- Deploying PerformanceAggregator ---");
|
||||
const PerformanceAggregator = await ethers.getContractFactory("PerformanceAggregator");
|
||||
const performanceAggregator = await PerformanceAggregator.deploy();
|
||||
await performanceAggregator.waitForDeployment();
|
||||
deployments.PerformanceAggregator = await performanceAggregator.getAddress();
|
||||
console.log("PerformanceAggregator deployed to:", deployments.PerformanceAggregator);
|
||||
|
||||
// Initialize PerformanceAggregator
|
||||
await performanceAggregator.initialize(deployments.ContractRegistry);
|
||||
console.log("PerformanceAggregator initialized");
|
||||
|
||||
// 6. Deploy StakingPoolFactory
|
||||
console.log("\n--- Deploying StakingPoolFactory ---");
|
||||
const StakingPoolFactory = await ethers.getContractFactory("StakingPoolFactory");
|
||||
const stakingPoolFactory = await StakingPoolFactory.deploy(deployments.AIToken);
|
||||
await stakingPoolFactory.waitForDeployment();
|
||||
deployments.StakingPoolFactory = await stakingPoolFactory.getAddress();
|
||||
console.log("StakingPoolFactory deployed to:", deployments.StakingPoolFactory);
|
||||
|
||||
// Initialize StakingPoolFactory
|
||||
await stakingPoolFactory.initialize(deployments.ContractRegistry);
|
||||
console.log("StakingPoolFactory initialized");
|
||||
|
||||
// 7. Deploy DAOGovernanceEnhanced
|
||||
console.log("\n--- Deploying DAOGovernanceEnhanced ---");
|
||||
const DAOGovernanceEnhanced = await ethers.getContractFactory("DAOGovernanceEnhanced");
|
||||
const daoGovernanceEnhanced = await DAOGovernanceEnhanced.deploy(
|
||||
deployments.AIToken,
|
||||
ethers.parseEther("100") // MIN_STAKE
|
||||
);
|
||||
await daoGovernanceEnhanced.waitForDeployment();
|
||||
deployments.DAOGovernanceEnhanced = await daoGovernanceEnhanced.getAddress();
|
||||
console.log("DAOGovernanceEnhanced deployed to:", deployments.DAOGovernanceEnhanced);
|
||||
|
||||
// Initialize DAOGovernanceEnhanced
|
||||
await daoGovernanceEnhanced.initialize(deployments.ContractRegistry);
|
||||
console.log("DAOGovernanceEnhanced initialized");
|
||||
|
||||
// 8. Deploy AgentMarketplaceV2
|
||||
// 4. Deploy AgentMarketplaceV2
|
||||
console.log("\n--- Deploying AgentMarketplaceV2 ---");
|
||||
const AgentMarketplaceV2 = await ethers.getContractFactory("AgentMarketplaceV2");
|
||||
const agentMarketplace = await AgentMarketplaceV2.deploy(deployments.AIToken);
|
||||
@@ -107,17 +54,18 @@ async function main() {
|
||||
deployments.AgentMarketplaceV2 = await agentMarketplace.getAddress();
|
||||
console.log("AgentMarketplaceV2 deployed to:", deployments.AgentMarketplaceV2);
|
||||
|
||||
// 9. Register all contracts in registry
|
||||
// 5. Register contracts in registry
|
||||
console.log("\n--- Registering Contracts ---");
|
||||
await registerContract(contractRegistry, "TreasuryManager", deployments.TreasuryManager);
|
||||
await registerContract(contractRegistry, "RewardDistributor", deployments.RewardDistributor);
|
||||
await registerContract(contractRegistry, "PerformanceAggregator", deployments.PerformanceAggregator);
|
||||
await registerContract(contractRegistry, "StakingPoolFactory", deployments.StakingPoolFactory);
|
||||
await registerContract(contractRegistry, "DAOGovernanceEnhanced", deployments.DAOGovernanceEnhanced);
|
||||
await registerContract(contractRegistry, "AgentMarketplaceV2", deployments.AgentMarketplaceV2);
|
||||
console.log("All contracts registered");
|
||||
console.log("Contracts registered");
|
||||
|
||||
// 10. Transfer tokens to TreasuryManager
|
||||
// 6. Initialize TreasuryManager
|
||||
console.log("\n--- Initializing TreasuryManager ---");
|
||||
await treasuryManager.initialize(deployments.ContractRegistry);
|
||||
console.log("TreasuryManager initialized");
|
||||
|
||||
// 7. Transfer tokens to TreasuryManager
|
||||
console.log("\n--- Funding Treasury ---");
|
||||
const treasuryFunding = ethers.parseEther("100000");
|
||||
await aiToken.transfer(deployments.TreasuryManager, treasuryFunding);
|
||||
@@ -128,7 +76,6 @@ async function main() {
|
||||
console.log(JSON.stringify(deployments, null, 2));
|
||||
|
||||
// Write to file
|
||||
const fs = require("fs");
|
||||
const deploymentFile = `deployments-${network.name}-${Date.now()}.json`;
|
||||
fs.writeFileSync(deploymentFile, JSON.stringify(deployments, null, 2));
|
||||
console.log(`Deployment addresses saved to: ${deploymentFile}`);
|
||||
@@ -145,8 +92,16 @@ async function main() {
|
||||
|
||||
async function registerContract(registry, name, address) {
|
||||
const contractId = ethers.keccak256(ethers.toUtf8Bytes(name));
|
||||
try {
|
||||
await registry.registerContract(contractId, address);
|
||||
console.log(`Registered ${name}: ${address}`);
|
||||
} catch (error) {
|
||||
if (error.message.includes("ContractAlreadyRegistered")) {
|
||||
console.log(`${name} already registered, skipping`);
|
||||
} else {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
* Monitors contract health, balances, and key metrics
|
||||
*/
|
||||
|
||||
const { ethers } = require("hardhat");
|
||||
const fs = require("fs");
|
||||
import hardhat from "hardhat";
|
||||
const { ethers } = hardhat;
|
||||
import fs from "fs";
|
||||
|
||||
async function main() {
|
||||
console.log("=== AITBC Smart Contract Monitoring ===");
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
* Verifies contract deployments and performs basic health checks
|
||||
*/
|
||||
|
||||
const { ethers } = require("hardhat");
|
||||
const fs = require("fs");
|
||||
import hardhat from "hardhat";
|
||||
const { ethers } = hardhat;
|
||||
import fs from "fs";
|
||||
|
||||
async function main() {
|
||||
console.log("=== AITBC Smart Contract Deployment Verification ===");
|
||||
|
||||
Reference in New Issue
Block a user