Files
aitbc/contracts/scripts/deploy-mainnet.js
oib 864ef4343e refactor(contracts): remove deprecated AIPowerRental contract in favor of bounty system
- Delete AIPowerRental.sol (566 lines) - replaced by AgentBounty.sol
- Remove rental agreement system with provider/consumer model
- Remove performance metrics and SLA tracking
- Remove dispute resolution mechanism
- Remove ZK-proof verification for performance
- Remove provider/consumer authorization system
- Bounty system provides superior developer incentive structure
2026-02-27 21:46:54 +01:00

101 lines
4.3 KiB
JavaScript

import hardhat from "hardhat";
const { ethers } = hardhat;
import fs from "fs";
async function main() {
console.log("🚀 Deploying AITBC Smart Contracts to Mainnet");
console.log("==============================================");
const [deployer] = await ethers.getSigners();
const balance = await ethers.provider.getBalance(deployer.address);
console.log(`Deployer: ${deployer.address}`);
console.log(`Balance: ${ethers.formatEther(balance)} ETH`);
if (balance < ethers.parseEther("1")) {
throw new Error("Insufficient ETH balance. Minimum 1 ETH recommended for deployment.");
}
console.log("");
console.log("Proceeding with contract deployment...");
// Deployment configuration
const deployedContracts = {
network: hardhat.network.name,
deployer: deployer.address,
timestamp: new Date().toISOString(),
contracts: {}
};
try {
// Deploy core contracts
console.log("📦 Deploying AgentWallet...");
const AgentWallet = await ethers.getContractFactory("AgentWallet");
const agentWallet = await AgentWallet.deploy();
await agentWallet.waitForDeployment();
const agentWalletAddr = await agentWallet.getAddress();
deployedContracts.contracts.AgentWallet = agentWalletAddr;
console.log(`✅ AgentWallet deployed: ${agentWalletAddr}`);
console.log("📦 Deploying AIPowerRental...");
const AIPowerRental = await ethers.getContractFactory("AIPowerRental");
const aiPowerRental = await AIPowerRental.deploy();
await aiPowerRental.waitForDeployment();
const aiPowerRentalAddr = await aiPowerRental.getAddress();
deployedContracts.contracts.AIPowerRental = aiPowerRentalAddr;
console.log(`✅ AIPowerRental deployed: ${aiPowerRentalAddr}`);
console.log("📦 Deploying AgentServiceMarketplace...");
const AgentServiceMarketplace = await ethers.getContractFactory("AgentServiceMarketplace");
const agentServiceMarketplace = await AgentServiceMarketplace.deploy();
await agentServiceMarketplace.waitForDeployment();
const agentServiceMarketplaceAddr = await agentServiceMarketplace.getAddress();
deployedContracts.contracts.AgentServiceMarketplace = agentServiceMarketplaceAddr;
console.log(`✅ AgentServiceMarketplace deployed: ${agentServiceMarketplaceAddr}`);
console.log("📦 Deploying DynamicPricing...");
const DynamicPricing = await ethers.getContractFactory("DynamicPricing");
const dynamicPricing = await DynamicPricing.deploy();
await dynamicPricing.waitForDeployment();
const dynamicPricingAddr = await dynamicPricing.getAddress();
deployedContracts.contracts.DynamicPricing = dynamicPricingAddr;
console.log(`✅ DynamicPricing deployed: ${dynamicPricingAddr}`);
console.log("📦 Deploying AgentStaking...");
const AgentStaking = await ethers.getContractFactory("AgentStaking");
const agentStaking = await AgentStaking.deploy();
await agentStaking.waitForDeployment();
const agentStakingAddr = await agentStaking.getAddress();
deployedContracts.contracts.AgentStaking = agentStakingAddr;
console.log(`✅ AgentStaking deployed: ${agentStakingAddr}`);
// Save deployment info
fs.writeFileSync("deployments.json", JSON.stringify(deployedContracts, null, 2));
console.log("");
console.log("🎉 Deployment Summary:");
console.log("====================");
console.log(`Network: ${deployedContracts.network}`);
console.log(`Deployer: ${deployedContracts.deployer}`);
console.log(`Timestamp: ${deployedContracts.timestamp}`);
console.log("");
console.log("Deployed Contracts:");
for (const [name, address] of Object.entries(deployedContracts.contracts)) {
console.log(` ${name}: ${address}`);
}
console.log("");
console.log("✅ All contracts deployed successfully!");
console.log("📁 Deployment saved to: deployments.json");
} catch (error) {
console.error("❌ Deployment failed:", error);
process.exitCode = 1;
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});