hailin
|
9cac91b5f0
|
feat(blockchain): 将提现转账从私钥签名改为 MPC 签名
背景:
- 原实现使用 HOT_WALLET_PRIVATE_KEY 进行热钱包签名
- 私钥直接存储存在安全风险
- 系统已有 MPC 基础设施,应该复用
改动内容:
1. 新增 MPC 签名客户端
- infrastructure/mpc/mpc-signing.client.ts: 调用 mpc-service 的签名 API
- 支持创建签名会话、轮询等待、获取签名结果
2. 重构 ERC20 转账服务
- domain/services/erc20-transfer.service.ts: 从私钥签名改为 MPC 签名
- 移除 Wallet 依赖,改用 Transaction 手动构建交易
- 使用 MPC 签名后广播已签名交易
3. 新增初始化服务
- mpc-transfer-initializer.service.ts: 启动时注入 MPC 客户端
- 解决 Domain 层和 Infrastructure 层的循环依赖
4. 新增热钱包初始化脚本
- scripts/init-hot-wallet.sh: 便捷创建系统热钱包的 MPC 密钥
- 支持配置门限值、用户名等参数
5. 更新配置
- 移除 HOT_WALLET_PRIVATE_KEY 依赖
- 新增 MPC_SERVICE_URL, HOT_WALLET_USERNAME, HOT_WALLET_ADDRESS
- 更新 docker-compose.yml 和 .env.example
部署前需要:
1. 运行 init-hot-wallet.sh 初始化热钱包
2. 配置 HOT_WALLET_USERNAME 和 HOT_WALLET_ADDRESS
3. 向热钱包充值 USDT 和原生币(gas)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-15 08:04:17 -08:00 |