# 实施任务清单：多平台账户凭据管理与签名服务

**功能**: 多平台账户凭据管理与签名服务
**分支**: `002-credential-manager`
**预计工期**: 3周（简化版）
**任务总数**: 16个

---

## Phase A：核心功能实现 [2周]

### 📦 A1: 项目基础设置

**任务**: 设置项目基础结构和依赖
**优先级**: P0 (阻塞)
**预计时间**: 0.5天

**交付物**:
- 安装核心依赖：bs58, tweetnacl, ethers, winston, dotenv
- 创建项目目录结构 (src/core/, src/api/, __tests__/)
- 配置TypeScript 5.1和Jest 29.7测试环境
- 设置ESLint和Prettier代码规范

**验收标准**:
- `yarn install` 成功执行
- `yarn test` 运行通过（空测试套件）
- `yarn build` 编译成功

**依赖**: 无

---

### 🏗️ A2: 类型定义和常量

**任务**: 实现核心类型定义和常量
**优先级**: P0 (阻塞)
**预计时间**: 0.5天

**交付物**:
- `src/shared/types.ts` - PlatformAccount、SignatureAdapter、ConfigManager接口
- `src/shared/constants.ts` - 平台常量、错误代码、配置默认值
- `src/shared/utils.ts` - 通用工具函数

**验收标准**:
- 所有接口符合data-model.md规范
- 支持4个平台类型：pacifica、aster、binance、okx
- TypeScript类型检查通过

**依赖**: A1

---

### 🔧 A3: 配置管理器实现

**任务**: 实现ConfigManager配置加载和热重载
**优先级**: P0 (阻塞)
**预计时间**: 1天

**交付物**:
- `src/core/config-loader.ts` - 配置文件加载、验证、热重载
- 支持JSON格式配置文件解析
- 文件监控和变化检测（fs.watch）
- 配置验证和错误处理

**验收标准**:
- 配置文件加载成功率100%
- 热重载响应时间 <5秒
- 无效配置文件正确拒绝并保持旧配置
- 配置变化触发相应事件

**依赖**: A2

**契约测试**:
```bash
yarn test:config-loader
# 验证：配置加载、热重载、错误处理
```

---

### 🔐 A4: Pacifica签名适配器

**任务**: 实现Pacifica平台Ed25519签名适配器
**优先级**: P1
**预计时间**: 1天

**交付物**:
- `src/core/signature-adapters/pacifica.ts` - Ed25519签名实现
- 使用tweetnacl库进行签名
- base58私钥解码和公钥派生
- 签名结果base58编码

**验收标准**:
- Ed25519签名算法正确实现
- 签名时间 <50ms
- 支持标准Pacifica订单数据格式
- 单元测试覆盖率 >90%

**依赖**: A2

**契约测试**:
```bash
curl -X POST "http://localhost:3000/api/v1/sign" \
  -d '{"platformId":"pacifica","accountId":"pac-test-001","data":{"instruction":{"type":"place_order"}}}'
# 预期：base58签名，algorithm="ed25519"
```

---

### 🌐 A5: Aster签名适配器

**任务**: 实现Aster平台EIP-191签名适配器
**优先级**: P1
**预计时间**: 1天

**交付物**:
- `src/core/signature-adapters/aster.ts` - EIP-191签名实现
- 使用ethers库进行以太坊签名
- 支持个人消息签名（\x19Ethereum Signed Message前缀）
- 签名结果十六进制编码

**验收标准**:
- EIP-191签名算法正确实现
- 签名时间 <50ms
- 支持标准Aster消息数据格式
- 可通过ethers.js验证签名者地址

**依赖**: A2

**契约测试**:
```bash
curl -X POST "http://localhost:3000/api/v1/sign" \
  -d '{"platformId":"aster","accountId":"ast-test-001","data":{"message":{"action":"place_order"}}}'
# 预期：0x开头的十六进制签名，algorithm="eip191"
```

---

### 🏦 A6: Binance签名适配器

**任务**: 实现Binance平台HMAC-SHA256签名适配器
**优先级**: P1
**预计时间**: 0.5天

**交付物**:
- `src/core/signature-adapters/binance.ts` - HMAC-SHA256签名实现
- 使用Node.js内置crypto模块
- 支持标准Binance API签名流程
- 查询字符串参数排序和编码

**验收标准**:
- HMAC-SHA256签名算法正确实现
- 签名时间 <50ms
- 支持Binance REST API参数格式
- 签名可用于实际Binance API认证

**依赖**: A2

**契约测试**:
```bash
curl -X POST "http://localhost:3000/api/v1/sign" \
  -d '{"platformId":"binance","accountId":"bn-test-001","data":{"method":"POST","endpoint":"/api/v3/order","params":{"symbol":"BTCUSDT"}}}'
# 预期：HMAC-SHA256哈希，algorithm="hmac-sha256"
```

---

### 🔄 A7: OKX签名适配器

**任务**: 实现OKX平台签名适配器
**优先级**: P2
**预计时间**: 0.5天

**交付物**:
- `src/core/signature-adapters/okx.ts` - OKX特有签名实现
- 支持三元组认证（API Key + Secret + Passphrase）
- 特定的请求头格式和时间戳处理
- Base64编码签名结果

**验收标准**:
- OKX签名算法正确实现
- 签名时间 <50ms
- 支持OKX API v5格式
- 三元组认证信息正确处理

**依赖**: A2

**契约测试**:
```bash
curl -X POST "http://localhost:3000/api/v1/sign" \
  -d '{"platformId":"okx","accountId":"okx-test-001","data":{"method":"POST","path":"/api/v5/trade/order","body":{"instId":"BTC-USDT"}}}'
# 预期：Base64签名，algorithm="hmac-sha256"
```

---

### 🎯 A8: 主服务实现

**任务**: 实现CredentialManager主服务
**优先级**: P0 (阻塞)
**预计时间**: 1.5天

**交付物**:
- `src/core/credential-manager.ts` - 主凭据管理服务
- 集成ConfigManager和所有SignatureAdapter
- 统一签名接口实现
- 账户查询和状态管理
- 错误处理和日志记录

**验收标准**:
- 支持所有4个平台的签名操作
- 统一的错误处理和响应格式
- 完整的审计日志记录
- 服务初始化和优雅关闭

**依赖**: A3, A4, A5, A6, A7

---

### 🌐 A9: HTTP API接口

**任务**: 实现REST API接口层
**优先级**: P1
**预计时间**: 1天

**交付物**:
- `src/api/routes.ts` - API路由定义
- `src/api/handlers.ts` - 请求处理器
- `src/app/main.ts` - HTTP服务器和中间件
- 符合contracts/signature-service.md规范的所有端点

**验收标准**:
- 实现所有契约定义的API端点
- 统一的错误响应格式
- 请求参数验证和sanitization
- API文档和OpenAPI规范

**依赖**: A8

**契约测试**:
```bash
# 核心签名接口
POST /api/v1/sign
POST /api/v1/sign/batch

# 账户管理
GET /api/v1/accounts
GET /api/v1/accounts/{platformId}/{accountId}

# 配置管理
POST /api/v1/config/reload
GET /api/v1/status
```

---

## Phase B：集成测试和验证 [1周]

### 🧪 B1: 单元测试实现

**任务**: 实现所有核心模块的单元测试
**优先级**: P1
**预计时间**: 2天

**交付物**:
- `__tests__/unit/` - 各模块单元测试
- ConfigManager测试套件
- 4个SignatureAdapter测试套件
- CredentialManager核心功能测试
- Mock和fixture数据

**验收标准**:
- 单元测试覆盖率 >90%
- 所有测试用例通过
- 测试执行时间 <30秒
- 包含错误场景和边界条件测试

**依赖**: A1-A9

**执行命令**:
```bash
yarn test:unit
yarn test:coverage
```

---

### 🔗 B2: 集成测试实现

**任务**: 实现端到端集成测试
**优先级**: P1
**预计时间**: 1.5天

**交付物**:
- `__tests__/integration/` - 集成测试套件
- 基于quickstart.md的7个测试场景
- 测试数据和配置文件
- 自动化测试脚本

**验收标准**:
- 7个quickstart场景100%通过
- 配置热重载无服务中断
- 批量签名处理正确
- 故障恢复机制有效

**依赖**: A9, B1

**执行命令**:
```bash
yarn test:integration
yarn test:quickstart
```

**测试场景**:
1. 配置文件加载与账户注入
2. Pacifica Ed25519签名测试
3. Aster EIP-191签名测试
4. Binance HMAC签名测试
5. 配置热重载测试
6. 批量签名测试
7. 故障恢复测试

---

### ⚡ B3: 性能优化和验证

**任务**: 性能测试和优化
**优先级**: P2
**预计时间**: 1天

**交付物**:
- 性能基准测试脚本
- 签名操作性能优化
- 并发处理能力验证
- 性能监控和报告

**验收标准**:
- 单次签名 <50ms
- 批量签名 <200ms (10个请求)
- 支持100 QPS并发请求
- 内存使用稳定，无泄露

**依赖**: B2

**执行命令**:
```bash
yarn test:performance
yarn test:load
```

---

### 📋 B4: 文档和部署准备

**任务**: 完善文档和部署配置
**优先级**: P2
**预计时间**: 0.5天

**交付物**:
- API使用文档
- 部署配置和脚本
- 运维监控配置
- 故障排除指南

**验收标准**:
- 完整的API文档
- Docker化部署配置
- 生产环境配置模板
- 监控和告警配置

**依赖**: B3

---

## 📊 任务依赖关系

```
A1 → A2 → A3 → A8 → A9
       ↓     ↗
     A4,A5,A6,A7

B1 ← A1-A9
B2 ← A9, B1
B3 ← B2
B4 ← B3
```

## 🎯 关键里程碑

**Week 1 完成**: A1-A4 (项目基础+Pacifica/Aster适配器)
**Week 2 完成**: A5-A9 (Binance/OKX适配器+主服务+API)
**Week 3 完成**: B1-B4 (完整测试+性能优化+文档)

## ✅ 质量门控

### Phase A 完成标准
- [ ] 所有4个平台签名适配器实现完成
- [ ] 配置热重载功能正常工作
- [ ] 主服务和API接口响应正确
- [ ] 基础单元测试通过

### Phase B 完成标准
- [ ] quickstart.md中7个场景100%通过
- [ ] 单元测试覆盖率 >90%
- [ ] 性能指标满足要求（<50ms签名）
- [ ] 完整的API文档和部署配置

### 最终验收标准
- [ ] 支持4个平台的完整签名功能
- [ ] 配置热重载 <5秒，无服务中断
- [ ] 签名性能 <50ms，支持100 QPS
- [ ] 完整的测试覆盖和文档

---

**生成时间**: 2025-09-28
**基于设计**: plan.md v1.0.0 (简化版)
**预计完成**: 2025-10-19 (3周工期)