Go to file
hailin bb6febb46b fix(android): 修复参与者计数竞态条件,使用服务端权威数据 [P1-1]
【架构安全修复 - 防止参与者计数竞态条件】

## 问题背景

原代码在处理 party_joined 事件时使用本地计数器递增来生成参与者名称。

## 存在的风险

1. 事件重放导致重复添加 - 网络重连后事件可能重新发送
2. 事件乱序导致编号错乱 - 网络延迟导致事件乱序到达
3. 状态不一致 - 本地状态与服务端真实状态不同步
4. 并发事件处理 - 多个事件快速连续到达时可能冲突

## 修复方案

使用服务端权威数据构建参与者列表:
- BEFORE: 本地计数器累加 (不可靠)
- AFTER: 使用 event.selectedParties.size 重建列表 (可靠)

核心改变:
val participantCount = event.selectedParties.size  // 来自服务端
val participantList = List(participantCount) { index -> "参与方 ${index + 1}" }
_sessionParticipants.value = participantList  // 直接设置,不累加

## 为什么这样修复有效

1. 单一真实来源: event.selectedParties 来自服务端
2. 幂等性: 无论事件重放多少次结果相同
3. 顺序无关: 无论事件以何种顺序到达最终状态正确
4. 自动去重: 直接设置 value 而非累加

## 影响范围

修改 MainViewModel.kt 的 party_joined 事件处理逻辑,影响 4 个参与者列表:
1. _sessionParticipants - 创建钱包页面
2. _joinKeygenParticipants - 加入密钥生成页面
3. _coSignParticipants - 联合签名加入页面
4. _signParticipants - 转账签名发起页面

行为变化:
- BEFORE: 每个事件递增计数器累加参与者
- AFTER: 每个事件重建整个参与者列表基于服务端数据

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-26 21:42:36 -08:00
.claude fix(android): 使用 Kavascan Etherscan API 同步交易记录 2026-01-26 08:51:40 -08:00
backend fix(android): 修复参与者计数竞态条件,使用服务端权威数据 [P1-1] 2026-01-26 21:42:36 -08:00
contracts feat(blockchain): 部署 eUSDT 和 fUSDT 代币合约 2026-01-19 05:30:25 -08:00
docs docs: 添加 RWADurian 2.0 部署与运维成本方案 2026-01-22 03:29:51 -08:00
frontend feat(batch-mining): 动态获取批量补发计算起始日期 2026-01-23 02:01:40 -08:00
kubernetes . 2025-11-25 10:29:24 +08:00
scripts fix(snapshot): 修改 Services PostgreSQL 用户名为 rwa_user 2026-01-08 09:05:22 -08:00
tests . 2025-11-25 10:29:24 +08:00
.gitignore feat(mining-ecosystem): 添加挖矿生态系统完整微服务与前端 2026-01-10 17:45:46 -08:00
README.md first commit 2025-11-23 21:21:44 -08:00
SEED01-qrcode.png fix: 短信超时返回成功状态避免前端报错 2025-12-21 20:55:31 -08:00
STKAITI.TTF feat(mobile-app): 添加合同签署 API 详细调试日志 2025-12-25 03:14:10 -08:00
contract.docx feat(kyc): 实名认证前检查手机号验证状态 2025-12-24 21:00:53 -08:00
docker-compose.yml first commit 2025-11-23 21:21:44 -08:00
挖矿.xlsx feat(contribution): 添加系统账户算力来源类型字段 2026-01-21 04:23:50 -08:00
榴莲皇后数据.xlsx fix(mobile-app): 修复多账号切换后账号列表只显示一个的问题 2025-12-27 11:12:50 -08:00
联合种植协议董事长_release_form.pdf fix(reporting-service): add /api/v1 prefix to wallet and reward service API calls 2026-01-04 23:18:10 -08:00

README.md