Files
assetxContracts/scripts/deploy/01-deployWUSD.ts

78 lines
2.2 KiB
TypeScript
Raw Permalink Normal View History

2025-12-18 13:07:35 +08:00
import { ethers, upgrades } from "hardhat";
/**
* WUSD代币
*/
async function main() {
console.log("开始部署WUSD代币...\n");
const [deployer] = await ethers.getSigners();
console.log("部署账户:", deployer.address);
console.log("账户余额:", ethers.formatEther(await ethers.provider.getBalance(deployer.address)), "ETH\n");
// ===== 部署WUSD (可升级) =====
console.log("===== 部署WUSD (可升级) =====");
const WUSD = await ethers.getContractFactory("WUSD");
console.log("部署WUSD代理...");
const wusd = await upgrades.deployProxy(
WUSD,
["Wrapped USD", "WUSD"],
{
initializer: "initialize",
kind: "uups",
}
);
await wusd.waitForDeployment();
const wusdAddress = await wusd.getAddress();
console.log("✅ WUSD代理部署到:", wusdAddress);
const wusdImplAddress = await upgrades.erc1967.getImplementationAddress(wusdAddress);
console.log("✅ WUSD实现地址:", wusdImplAddress);
// 验证部署
const name = await wusd.name();
const symbol = await wusd.symbol();
const decimals = await wusd.decimals();
console.log("\n代币信息:");
console.log(" 名称:", name);
console.log(" 符号:", symbol);
console.log(" 精度:", decimals.toString());
// ===== 显示部署摘要 =====
console.log("\n===== 部署摘要 =====");
console.log("WUSD代理:", wusdAddress);
console.log("WUSD实现:", wusdImplAddress);
// 保存到JSON文件
const deploymentInfo = {
network: (await ethers.provider.getNetwork()).name,
chainId: (await ethers.provider.getNetwork()).chainId.toString(),
deployer: deployer.address,
timestamp: new Date().toISOString(),
contracts: {
WUSD: {
proxy: wusdAddress,
implementation: wusdImplAddress,
name: name,
symbol: symbol,
decimals: Number(decimals)
}
}
};
const fs = require("fs");
fs.writeFileSync(
"./deployments-wusd.json",
JSON.stringify(deploymentInfo, null, 2)
);
console.log("\n✅ 部署信息已保存到 deployments-wusd.json");
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});