102 lines
3.1 KiB
Markdown
102 lines
3.1 KiB
Markdown
# 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
|