scripts/
├── 01-deploy-contracts.ts # 部署合约
├── 02-distribute-tokens.ts # 分发测试代币
├── 03-init-sale.ts # 初始化销售
├── 04-test-contributions.ts # 测试参与
├── 05-test-claiming.ts # 测试领取
├── deploy-bsctest.ts # 完整部署脚本(旧版本)
├── set-merkle-root.ts # 设置默克尔树
├── testAccount/
│ └── BLaunchpadTest.json # 测试账户文件
└── README.md # 本文档
01-deploy-contracts.ts
- 部署合约功能: 部署所有必需的智能合约到 BSC 测试网
contract-addresses.json
输出文件: contract-addresses.json
02-distribute-tokens.ts
- 分发测试代币功能: 给所有测试账户分发测试代币和 gas 费
BLaunchpadTest.json
读取测试账户依赖: contract-addresses.json
, BLaunchpadTest.json
03-init-sale.ts
- 初始化销售功能: 创建众筹销售并设置白名单
step2-data.json
环境变量:
SCENARIO=0
- 未满募场景(目标50K,用户限额30K)SCENARIO=1
- 超募场景(目标5K,用户限额6K)输出文件: step2-data.json
04-test-contributions.ts
- 测试参与功能: 测试用户参与众筹
step3-data.json
依赖: step2-data.json
输出文件: step3-data.json
05-test-claiming.ts
- 测试领取功能: 测试用户领取代币和退款
final-data.json
依赖: step3-data.json
输出文件: final-data.json
# 设置私钥环境变量
export PRIVATE_KEY=your_private_key_here
# 方式1: 逐步执行
npm run 01:deploy
npm run 02:distribute
npm run 03:init-undersubscribed
npm run 04:contribute
npm run 05:claim
# 方式2: 一键执行
npm run test:undersubscribed
# 方式1: 逐步执行
npm run 01:deploy
npm run 02:distribute
npm run 03:init-oversubscribed
npm run 04:contribute
npm run 05:claim
# 方式2: 一键执行
npm run test:oversubscribed
# 部署合约
npm run 01:deploy
# 分发代币
npm run 02:distribute
# 初始化销售(指定场景)
npm run 03:init-undersubscribed # 未满募
npm run 03:init-oversubscribed # 超募
# 测试参与
npm run 04:contribute
# 测试领取
npm run 05:claim
参数 | 未满募场景 | 超募场景 |
---|---|---|
目标金额 | 50K USD1 | 5K USD1 |
用户1限额 | 15K USD1 | 3K USD1 |
用户2限额 | 10K USD1 | 2K USD1 |
用户3限额 | 5K USD1 | 1K USD1 |
总限额 | 30K USD1 | 6K USD1 |
结果 | 未达到目标 | 超过目标 |
contract-addresses.json
{
"mockUSD1": "0x...",
"saleToken": "0x...",
"launchpad": "0x...",
"deployer": "0x...",
"testBNB": "0x..."
}
step2-data.json
{
"mockUSDT": "0x...",
"saleToken": "0x...",
"launchpad": "0x...",
"testUsers": {
"user1": "0x...",
"user2": "0x...",
"user3": "0x..."
},
"merkleRoot": "0x...",
"whitelistData": [...],
"saleParams": {...}
}
step3-data.json
{
// 包含 step2 的所有数据
"contributions": {
"total": "45000",
"user1": "15000",
"user2": "10000",
"user3": "5000"
}
}
final-data.json
{
// 包含 step3 的所有数据
"claiming": {
"user1Tokens": "14250",
"user2Tokens": "9500",
"user3Tokens": "4750",
"ownerReceivedUSD1": "42750",
"remainingTokens": "800000"
}
}
PRIVATE_KEY 未设置
export PRIVATE_KEY=your_private_key_here
余额不足
文件不存在
时间问题
如果需要重新开始测试:
# 删除所有输出文件
rm -f contract-addresses.json step2-data.json step3-data.json final-data.json
# 重新执行流程
npm run 01:deploy
npm run 02:distribute
# ... 继续其他步骤