hailin
83384acdac
fix(mining-service): Redis DB 11 冲突修复,迁移至 DB 16
...
问题:
mining-service (2.0) 与 blockchain-service (1.0) 共用 Redis DB 11,
存在数据污染和资源抢占风险。虽然当前 Key 前缀不同
(mining:* vs blockchain:*),但缺乏结构性隔离保障。
方案:
- 将 mining-service Redis DB 从 11 迁移到 16 (超出默认 0-15 范围)
- Redis 基础设施配置增加 --databases 20,支持 DB 16+
- 同步修正 .env.example 与代码默认值不一致的问题 (原 .env=1, 代码=11)
修改清单:
- mining-service/infrastructure.module.ts: 代码默认值 11 → 16
- mining-service/redis.service.ts: fallback 默认值 1 → 16
- mining-service/.env.example: REDIS_DB=1 → REDIS_DB=16
- docker-compose.2.0.yml: mining-service REDIS_DB 11 → 16 + 注释
- docker-compose.yml: Redis 添加 --databases 20
- docker-compose.infra.yml: Redis 添加 --databases 20
- docker-compose.windows.yml: Redis 添加 --databases 20
部署注意:
1. 需重启 Redis 容器使 --databases 20 生效
2. 需重启 mining-service 使新 DB 16 生效
3. 旧 DB 11 中 mining-service 的残留数据可手动清理:
redis-cli -n 11 KEYS "mining:*" | xargs redis-cli -n 11 DEL
Redis DB 分配表 (修改后):
1.0: DB 0-11 (identity=0, wallet=1, ..., blockchain=11)
2.0: DB 8,10,12-16 (blockchain=8, contribution=10, trading=12,
admin=13, auth=14, wallet=15, mining=16)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 02:22:20 -08:00
hailin
454b379f6c
feat(mining-blockchain-service): mining_ 前缀隔离,与 blockchain-service 100% 资源分离
...
mining-blockchain-service 的所有共享资源全部加上 mining_ 前缀,
确保与 1.0 blockchain-service 完全隔离,互不干扰。
## Kafka Topic 隔离 — 生产者 (event-publisher.service.ts)
- source header: 'blockchain-service' → 'mining-blockchain-service'
- topic 映射全部加 mining_ 前缀:
- blockchain.deposits → mining_blockchain.deposits
- blockchain.wallets → mining_blockchain.wallets
- blockchain.transactions → mining_blockchain.transactions
- mpc.SigningRequested → mining_mpc.SigningRequested
- blockchain.market_maker.deposits → mining_blockchain.market_maker.deposits
- 默认 fallback: blockchain.events → mining_blockchain.events
## Domain Event eventType 隔离 (5 个事件类)
- deposit-detected.event.ts: mining_blockchain.deposit.detected
- deposit-confirmed.event.ts: mining_blockchain.deposit.confirmed
- wallet-address-created.event.ts: mining_blockchain.wallet.address.created
- transaction-broadcasted.event.ts: mining_blockchain.transaction.broadcasted
- market-maker-deposit-confirmed.event.ts: mining_blockchain.market_maker.deposit.confirmed
## Kafka Topic 隔离 — 消费者 (3 个 consumer)
- mpc-event-consumer: mining_mpc.KeygenCompleted / SigningCompleted / SessionFailed
- withdrawal-event-consumer: mining_wallet.withdrawals / mining_wallet.system-withdrawals
- 事件类型检查: mining_wallet.withdrawal.requested / mining_wallet.system-withdrawal.requested
- deposit-ack-consumer: mining_wallet.acks
- 事件类型检查: mining_wallet.deposit.credited
- outbox ACK 匹配: mining_blockchain.deposit.confirmed
## Kafka 事件类型 — Event Handlers
- mpc-signing.client.ts:
- MPC_SIGNING_TOPIC → mining_mpc.SigningRequested
- eventType → mining_blockchain.mpc.signing.requested
- withdrawal-requested.handler.ts:
- mining_blockchain.withdrawal.confirmed / failed / status
- system-withdrawal-requested.handler.ts:
- mining_blockchain.system-withdrawal.confirmed / failed
## Redis Key 前缀隔离
- address-cache: blockchain:monitored_addresses: → mining_blockchain:monitored_addresses:
- hot-wallet-balance: hot_wallet:dusdt_balance: → mining_hot_wallet:dusdt_balance:
- hot-wallet-balance: hot_wallet:native_balance: → mining_hot_wallet:native_balance:
## 数据库名称隔离
- docker-compose.yml: rwa_blockchain → rwa_mining_blockchain
- docker-compose.2.0.yml: rwa_blockchain → rwa_mining_blockchain
- deploy-mining.sh: MINING_DATABASES + SERVICE_DB 映射 → rwa_mining_blockchain
## 下游服务需配套更新 (不在本次修改范围)
- mpc-service: 消费 mining_mpc.SigningRequested, 发布 mining_mpc.* 结果
- mining-wallet-service: 发布 mining_wallet.*, 消费 mining_blockchain.*
- trading-service: 消费 mining_blockchain.market_maker.deposits
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 01:58:45 -08:00
hailin
08cf4681f2
fix: migration 使用 IF NOT EXISTS 防止重复创建 + clean 去掉 --remove-orphans
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:37:29 -08:00
hailin
4a803ea008
feat(deploy): 添加 clean 命令清除 2.0 所有 Docker 资源
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 23:36:35 -08:00
hailin
6b92ab0dd8
Revert "fix(2.0): 所有 Kafka consumer 改为 fromBeginning: true 确保 full-reset 全量同步"
...
This reverts commit 534d4ce70c .
2026-01-29 22:41:40 -08:00
hailin
a41feb841f
fix(mining-service): 添加 ManualMiningRecord 缺失的 migration 0004
...
schema 中定义的 manual_mining_records 表缺少对应的 migration 文件,
导致 schema 与 migration 不一致。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:30:04 -08:00
hailin
534d4ce70c
fix(2.0): 所有 Kafka consumer 改为 fromBeginning: true 确保 full-reset 全量同步
...
- mining-blockchain-service: withdrawal/mpc/deposit-ack consumer 改为 fromBeginning: true
- trading-service: cdc-consumer/market-maker-deposit consumer 改为 fromBeginning: true
- mining-service: contribution-event handler 改为 fromBeginning: true
- deploy-mining.sh: CDC_CONSUMER_GROUPS 补充所有 2.0 服务的 consumer group ID
确保 ./deploy-mining.sh full-reset 可以 100% 从 0 开始同步所有 1.0 数据。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:20:23 -08:00
hailin
830d99a504
feat(mining-app): 分离发送/接收记录 + 隐藏买入待开启
...
- 发送页右上角"转出记录"只显示转出明细
- 接收页右上角新增"接收记录"只显示转入明细
- P2pTransferRecordsPage 支持 filterDirection 参数过滤方向
- 兑换页隐藏"买入待开启" Tab(_showBuyTab=false,保留代码备启用)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:10:47 -08:00
hailin
99dbce2053
feat(mining-app): 添加自动版本号增长机制
...
mining-app 的 versionCode 写死为 1,导致版本升级检测永远无法触发。
参照 mobile-app 实现,添加 Gradle 层自增 + 构建脚本两层机制:
- build.gradle.kts: version.properties 自增 versionCode
- scripts/build.sh: 自动 bump pubspec.yaml buildNumber
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 21:32:15 -08:00
hailin
5dc37e24d2
fix(deploy): cdc_resnapshot 清空 rwa_auth 的 processed_cdc_events
...
cdc_resnapshot 之前只清空 rwa_contribution 的幂等表,遗漏了 rwa_auth,
导致 wallet address CDC 重新快照后消息被幂等检查跳过,KAVA 地址无法重新同步。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:24:59 -08:00
hailin
f2b83650b5
fix(deploy): full-reset 添加 wallet CDC consumer group 和修复 cdc-resnapshot
...
- CDC_CONSUMER_GROUPS 添加 auth-service-cdc-group-wallet
- cdc_resnapshot 同时停止 auth-service(之前只停了 contribution-service)
- cdc_resnapshot 完成后同时启动 auth-service
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:12:45 -08:00
hailin
6f01892945
fix(debezium): identity connector 添加 wallet_addresses 表
...
Debezium identity-connector 之前只捕获 user_accounts 表,
导致 auth-service 的 WalletAddressCdcConsumer 收不到任何事件。
添加 public.wallet_addresses 到 table.include.list。
需要重新注册 connector 才能生效。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:06:42 -08:00
hailin
dc51c19dfd
fix(mining-admin): 修复 APK 解析 adbkit-apkreader 导入方式
...
adbkit-apkreader 是 CJS 模块,直接导出 class(module.exports = ApkReader),
不存在 .default 属性。将 dynamic import 改为 require 直接调用 ApkReader.open()。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:45:25 -08:00
hailin
3ff38ca9c2
fix(mining-admin): 添加 buildNumber 到版本检查返回结果
...
mining-app VersionInfo.fromJson 要求 buildNumber 字段,
CheckUpdateResult 接口和 checkUpdate 方法之前未包含该字段。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:29:53 -08:00
hailin
96e1fa4534
fix(mining-admin): 适配 mining-app 版本检查 API 格式
...
- CheckUpdateDto: current_version_code 改为 versionCode 匹配 mining-app 请求参数
- MobileVersionController: 响应格式改为 { hasUpdate, latestVersion: {...} } 匹配 mining-app 解析
- TransformInterceptor: 添加 @SkipTransform() 装饰器,移动端版本检查接口跳过响应包装
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:26:13 -08:00
hailin
f595c6f26d
fix(mining-admin): 将 upload DTO 的 changelog 改为可选
...
前端 upload-modal 在用户未填写更新日志时不发送 changelog 字段,
导致 DTO 校验失败返回 400。将 changelog 改为 @IsOptional(),
与前端行为一致。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:13:57 -08:00
hailin
35fc957eaf
fix(mobile-upgrade): 自动解包 mining-admin-service TransformInterceptor 响应
...
mining-admin-service 的 TransformInterceptor 将所有响应包装为
{ success, data, timestamp } 格式,导致前端 .map() 调用崩溃。
在 API client 的 response interceptor 中自动检测并解包,
对不包装响应的 admin-service (1.0) 无影响。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:01:12 -08:00
hailin
4112b45b9e
feat(mining-admin): 新建公开版本管理接口供 mobile-upgrade 前端使用
...
mining-admin-service 有全局 AdminAuthGuard,导致 mobile-upgrade 前端
调用版本接口返回 401。新建 UpgradeVersionController (@Public) 作为
独立的公开接口,路径为 /api/v2/upgrade-versions,不影响现有需认证的
/api/v2/versions 接口。前端 apiPrefix 同步更新。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:53:29 -08:00
hailin
c6137078ff
feat(api-gateway): 添加 mining-admin-upgrade 路由支持股行App版本管理
...
mobile-upgrade 前端通过 /mining-admin/api/v2/versions 访问股行App版本接口,
新增独立的 Kong service 将该路径正确转发到 mining-admin-service:3023。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:37:39 -08:00
hailin
7b7c9cd9f6
Revert "fix(mobile-upgrade): 修复股行App版本管理API路径匹配Kong路由"
...
This reverts commit 5ef0992448 .
2026-01-29 12:30:52 -08:00
hailin
5ef0992448
fix(mobile-upgrade): 修复股行App版本管理API路径匹配Kong路由
...
NEXT_PUBLIC_MINING_API_URL 从 /mining-admin 改为 /api/v2/mining-admin,
apiPrefix 从 /api/v2/versions 改为 /versions,使最终URL匹配Kong路由
/api/v2/mining-admin/*
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:29:39 -08:00
hailin
7e289430ae
feat(auth-service): CDC 同步 wallet_addresses 并提供内部 API
...
- auth-service: 新增 SyncedWalletAddress Prisma model 和 migration
- auth-service: 新增 WalletAddressCdcConsumer 消费 1.0 钱包地址变更
- auth-service: 新增 InternalController 提供 kava 地址查询 API
- trading-service: IdentityClient 改调 auth-service 内部 API
- docker-compose.2.0.yml: 添加 CDC_TOPIC_WALLET_ADDRESSES 和 AUTH_SERVICE_URL
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:20:23 -08:00
hailin
83fa6bec74
feat(c2c): 支持绿积分(GREEN_POINTS)作为默认支付方式
...
- 后端 paymentMethod 字段从 PostgreSQL 枚举改为 String,支持逗号分隔多种支付方式
- 添加数据库迁移将 C2cPaymentMethod 枚举列转为 TEXT 类型
- DTO 验证改为 @IsString() 接受 GREEN_POINTS 及其组合
- 前端保持发送完整的支付方式列表(含 GREEN_POINTS)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:39:00 -08:00
hailin
263f1ecf8e
feat(c2c): 卖单自动获取账户ID和Kava地址,移除手动输入
...
后端创建卖单时自动从 identity-service 获取卖家 Kava 地址并存入订单,
前端发布页面自动展示 accountSequence(只读),不再需要手动输入1.0系统ID。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:08:56 -08:00
hailin
2b7a30983e
fix(mining-app): 修复贡献值明细筛选栏溢出问题
...
使用 SingleChildScrollView 包装筛选栏,支持横向滚动
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:52:37 -08:00
hailin
c02d0b4c3c
fix(mining-app): 移除遗留的 kDebugMode 调试代码
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:48:51 -08:00
hailin
7560940e14
fix(mining-app): 修复贡献值明细页面筛选和文字溢出问题
...
- 将贡献值记录筛选从客户端过滤改为服务端过滤,解决同伴上贡献值记录无法显示的问题
- 使用 FittedBox 包装三栏统计标签文字,防止"同伴上贡献值"溢出
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:44:12 -08:00
hailin
776d181ef3
fix(trading-service): 修复P2P转账API响应双重包装问题
...
- 移除controller中的手动包装,由TransformInterceptor统一处理
- 前端增加类型检查防止解析错误
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:11:59 -08:00
hailin
28c73136a8
fix(trading-service): 修复P2P转账历史查询参数解析
...
确保 page 和 pageSize 是有效数字,避免 skip: NaN 错误
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:00:28 -08:00
hailin
dcc83b9f79
fix(trading-service): 使用Docker容器名调用auth-service
...
改为使用 auth-service:3024 替代 IP 地址
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:56:24 -08:00
hailin
8b459dd33f
fix(trading-service): 修复P2P转账AUTH_SERVICE_URL默认值
...
默认值从localhost改为内网IP,解决Docker环境中调用auth-service失败的问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:49:54 -08:00
hailin
1448435b06
chore(mining-app): 移除发送页面调试日志
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:40:37 -08:00
hailin
6ebc1f8767
fix(mining-app): 添加收款方验证成功提示和调试日志
...
- 验证成功时显示绿色 SnackBar 提示
- 添加调试日志帮助诊断可用余额问题
- 温馨提示中添加积分值获取方式说明
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:26:22 -08:00
hailin
8fe38525a2
fix(mining-app): 验证收款方失败时显示提示信息
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:19:39 -08:00
hailin
40389fcfc7
feat(trading-service, mining-admin-web): 支持在管理后台配置做市商钱包地址
...
- 后端: 在 UpdateConfigDto 和 updateConfig 方法中添加 kavaWalletAddress 字段
- 前端: 在充值对话框中添加钱包地址配置输入框
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:53:04 -08:00
hailin
6bcfa18b01
fix(mining-app): 修复转账二维码扫描无效问题
...
- 修改二维码生成格式为 durian://transfer/?phone=xxx (添加路径分隔符)
- 更新解析函数使用正则匹配,兼容新旧格式
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:39:42 -08:00
hailin
7a8a3a8fd1
feat(trading-service): 初始化做市商时自动读取环境变量配置钱包地址
...
- 从 FUSDT_MARKET_MAKER_ADDRESS 环境变量读取做市商钱包地址
- 初始化时自动设置 kavaWalletAddress
- 如果做市商已存在但钱包地址为空,也会从环境变量更新
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:31:16 -08:00
hailin
812b127ace
fix(trading-service): 添加缺失的数据库字段迁移
...
Schema 中有但 migration 中缺失的字段:
- market_maker_configs: kava_wallet_address, mpc_username
- c2c_orders: seller_kava_address, bot_purchased, payment_tx_hash
这些字段缺失导致 500 错误:
"The column `market_maker_configs.kava_wallet_address` does not exist"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:20:21 -08:00
hailin
6be4775506
fix(service-party-android): 导出钱包时自动从后端获取空的 partyId
...
旧版本钱包(MIGRATION_2_3 之前创建的)partyId 为空,导出时会导致备份文件
中 partyId 字段为空。现在导出时检测到 partyId 为空会自动从后端 session
状态 API 获取正确的 partyId,并同时更新本地数据库。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:00:01 -08:00
hailin
b4afc4615c
fix(mining-admin-service): 修复 APK 解析和添加 AppVersion migration
...
1. 修复 package-parser.service.ts:
- ApkReader.open 需要文件路径,改为先写入临时文件再解析
- 添加 fs/path/os 模块导入
- 完成后自动清理临时文件
2. 添加 AppVersion 表 migration:
- 创建 Platform 枚举类型 (ANDROID, IOS)
- 创建 app_versions 表
- 添加必要索引
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:24:45 -08:00
hailin
fd64903841
fix(mining-admin-service): 添加 adbkit-apkreader 类型声明
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:21:18 -08:00
hailin
8314dda670
fix(mining-admin-service): 更新 package-lock.json
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:17:01 -08:00
hailin
4ce43c20cc
fix(mining-admin-service): 添加 APK/IPA 解析依赖包
...
添加版本管理所需的包解析依赖:
- adbkit-apkreader: 解析 Android APK 文件
- jszip: 解压 iOS IPA 文件
- plist: 解析 iOS Info.plist 文件
- @types/plist: TypeScript 类型声明
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:15:43 -08:00
hailin
edc0ea46c9
fix: 修复 mining-blockchain-service Kafka consumer group 冲突
...
- mining-blockchain-service 使用独立的 consumer group ID,避免与 blockchain-service 冲突
- withdrawal-event-consumer: blockchain-service-withdrawal-events -> mining-blockchain-service-withdrawal-events
- mpc-event-consumer: blockchain-service-mpc-events -> mining-blockchain-service-mpc-events
- deposit-ack-consumer: blockchain-service-deposit-acks -> mining-blockchain-service-deposit-acks
- 更新 docker-compose.yml 和 kafka.config.ts 的默认配置
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:05:55 -08:00
hailin
76d566d145
feat: 集成 mining-app 升级和遥测功能,扩展 mobile-upgrade 支持多应用
...
## mining-app (Flutter)
- 新增 updater 模块: 版本检查、APK下载(断点续传+SHA256校验)、安装
- 新增 telemetry 模块: 事件上报、会话追踪、心跳检测(DAU统计)
- 集成原生 MethodChannel 实现 APK 安装
- 在关于页面添加"检查更新"功能入口
## mining-admin-service (NestJS)
- 新增版本管理 API (/api/v2/versions)
- 实现 DDD 架构: Entity, Value Objects, Repository
- 支持 APK/IPA 解析 (需安装 adbkit-apkreader, jszip, plist)
- 支持文件上传和静态文件服务
## mobile-upgrade (Next.js)
- 扩展支持多后端: 榴莲 App (admin-service) + 股行 App (mining-admin-service)
- 添加应用选择器 UI
- 配置独立的 API 端点
## 修复
- 移除未使用的 _apiBaseUrl 字段 (Flutter)
- 替换废弃的 WillPopScope 为 PopScope (Flutter)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:03:26 -08:00
hailin
219fb7bb69
fix(mining-blockchain): 移除旧的 MARKET_MAKER_* 变量名引用
...
- main.ts: 使用 EUSDT/FUSDT_MARKET_MAKER_* 验证配置
- blockchain.config.ts: 使用 eusdtMarketMaker/fusdtMarketMaker 配置
- market-maker-deposit-detection.service.ts: 每种代币使用独立的做市商钱包地址
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:20:48 -08:00
hailin
3b95a8a332
feat(mining-blockchain): 支持 eUSDT 和 fUSDT 独立做市商钱包
...
- 新增 EUSDT_MARKET_MAKER_USERNAME/ADDRESS 配置
- 新增 FUSDT_MARKET_MAKER_USERNAME/ADDRESS 配置
- mpc-signing.client.ts: 分离 eUSDT 和 fUSDT 做市商签名方法
- erc20-transfer.service.ts: 根据代币类型选择对应钱包转账
- transfer.controller.ts: 更新余额查询和状态接口
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:05:15 -08:00
hailin
aa33803d08
fix(mining-blockchain): 修正做市商钱包配置项顺序
...
统一 USERNAME 在前,ADDRESS 在后的格式,与 HOT_WALLET 保持一致
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:33:16 -08:00
hailin
cfdcd9352a
feat(mining-blockchain-service): 支持做市商独立MPC钱包签名
...
- MpcSigningClient 支持两个钱包: C2C Bot 和做市商
- HOT_WALLET_USERNAME/ADDRESS: C2C Bot 热钱包
- MARKET_MAKER_MPC_USERNAME/WALLET_ADDRESS: 做市商钱包
- Erc20TransferService 新增 transferTokenAsMarketMaker() 方法
- eUSDT/fUSDT 转账使用做市商钱包签名和转账
- 新增 /transfer/market-maker/status 状态检查接口
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:27:09 -08:00
hailin
4283a369ae
fix(mining-blockchain-service): 修复Redis DB配置超出范围问题
...
- 将 REDIS_DB 从 16 改为 8(Redis 仅支持 0-15)
- 更新 .env.example 添加做市商钱包配置说明
- 添加 eUSDT/fUSDT 合约地址配置
- 添加区块扫描配置项
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:16:38 -08:00