# TSS Party Android

Android 版本的 TSS (Threshold Signature Scheme) Party 应用，用于多方共管钱包的密钥生成和签名。

## 项目结构

```
service-party-android/
├── app/                          # Android 应用模块
│   ├── src/main/
│   │   ├── java/com/durian/tssparty/
│   │   │   ├── data/             # 数据层
│   │   │   │   ├── local/        # 本地存储 (Room, TSS Bridge)
│   │   │   │   ├── remote/       # 远程通信 (gRPC)
│   │   │   │   └── repository/   # 数据仓库
│   │   │   ├── domain/model/     # 领域模型
│   │   │   ├── presentation/     # UI 层
│   │   │   │   ├── screens/      # Compose 屏幕
│   │   │   │   └── viewmodel/    # ViewModels
│   │   │   ├── di/               # Hilt 依赖注入
│   │   │   ├── ui/theme/         # Material Theme
│   │   │   └── util/             # 工具类
│   │   ├── proto/                # gRPC Proto 文件
│   │   └── res/                  # Android 资源
│   └── libs/                     # TSS 原生库 (.aar)
├── tsslib/                       # Go TSS 库源码
│   ├── tsslib.go                 # gomobile 绑定
│   ├── go.mod
│   ├── build.sh                  # Linux/macOS 构建脚本
│   └── build.bat                 # Windows 构建脚本
└── gradle/                       # Gradle Wrapper
```

## 技术栈

- **UI**: Jetpack Compose + Material 3
- **架构**: MVVM + Repository Pattern
- **依赖注入**: Hilt
- **数据库**: Room
- **网络**: gRPC (protobuf-lite)
- **TSS 核心**: Go + gomobile (BnB Chain tss-lib v2)

## 构建步骤

### 1. 构建 TSS 原生库 (可选，需要 Go 环境)

```bash
# 安装 gomobile
go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init

# 构建 Android AAR
cd tsslib
./build.sh  # Linux/macOS
# 或
build.bat   # Windows
```

这将在 `app/libs/` 生成 `tsslib.aar`。

> **注意**: 当前版本使用 Kotlin stub 实现，无需编译 Go 库即可构建 APK。
> 实际运行需要真正的 `tsslib.aar`。

### 2. 构建 APK

```bash
# Debug 版本
./gradlew assembleDebug

# Release 版本 (需要签名配置)
./gradlew assembleRelease
```

APK 输出路径: `app/build/outputs/apk/debug/app-debug.apk`

## 功能

1. **加入 Keygen 会话** - 扫描/输入邀请码，参与多方密钥生成
2. **查看钱包** - 显示已创建的共管钱包列表
3. **签名交易** - 使用密钥份额参与多方签名
4. **设置** - 配置 Message Router 服务器地址

## 配置

默认服务器配置:
- Message Router: `localhost:50051`
- Kava RPC: `https://evm.kava.io`

## 与 Electron 版本的对应关系

| Electron 版本 | Android 版本 |
|---------------|--------------|
| `electron/main.ts` | `TssNativeBridge.kt` + `GrpcClient.kt` |
| `electron/preload.ts` | `TssRepository.kt` |
| `src/pages/*.tsx` | `presentation/screens/*.kt` |
| `tss-party/` (Go 子进程) | `tsslib/` (gomobile .aar) |
| sql.js | Room Database |

## 许可证

MIT
