commit
This commit is contained in:
77
scripts/deploy/01-deployWUSD.ts
Normal file
77
scripts/deploy/01-deployWUSD.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
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);
|
||||
});
|
||||
Reference in New Issue
Block a user