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

- 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:
aitbc
2026-04-29 10:51:42 +02:00
parent 58cc6676fa
commit d826318aab
4 changed files with 34 additions and 71 deletions

View File

@@ -0,0 +1,6 @@
{
"AIToken": "0xCD8a1C3ba11CF5ECfa6267617243239504a98d90",
"ContractRegistry": "0x82e01223d51Eb87e16A03E24687EDF0F294da6f1",
"TreasuryManager": "0x2bdCC0de6bE1f7D2ee689a0342D76F52E8EFABa3",
"AgentMarketplaceV2": "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0"
}

View File

@@ -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()

View File

@@ -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 ===");

View File

@@ -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 ===");