# 凭证管理器 (Credential Manager) 一个高性能的多平台加密货币交易账户凭证管理库,支持热加载、智能平台识别和安全签名功能。 ## ✨ 特性 - 🔐 **多平台支持**: Pacifica、Aster、Binance等主流交易平台 - 🔄 **热加载**: 支持JSON配置文件实时监听和重载 - 🎯 **智能检测**: 自动识别账户所属平台 - ⚡ **高性能**: 签名操作 <50ms,配置加载 <100ms - 🛡️ **类型安全**: 完整的TypeScript类型定义 - 🧪 **测试驱动**: 全面的契约测试和性能测试 ## 🚀 快速开始 ### 安装 ```bash npm install @binance-api/credential-manager ``` ### 基本使用 ```typescript import { CredentialManagerFactory, Platform } from '@binance-api/credential-manager'; // 创建管理器 const factory = new CredentialManagerFactory(); const manager = await factory.create(); // 添加账户 await manager.addAccount({ id: 'my-pacifica-account', platform: Platform.PACIFICA, credentials: { type: 'pacifica', privateKey: 'your-private-key-here' }, metadata: { alias: '我的Pacifica账户' } }); // 执行签名 const message = new TextEncoder().encode('Hello, Pacifica!'); const result = await manager.sign('my-pacifica-account', message); if (result.success) { console.log('签名成功:', result.signature); console.log('执行时间:', result.executionTime, 'ms'); } // 清理资源 await manager.destroy(); ``` ### 从配置文件加载 ```typescript // 加载JSON配置文件 const loadResult = await manager.loadConfig('./accounts.json'); if (loadResult.success) { console.log(`成功加载 ${loadResult.accounts.length} 个账户`); console.log(`加载时间: ${loadResult.loadTime}ms`); } // 监听配置文件变化 manager.watchConfig('./accounts.json', (accounts) => { console.log('配置文件已更新,重新加载账户'); }); ``` ### 配置文件格式 ```json { "version": "1.0.0", "accounts": [ { "id": "pacifica-main", "platform": "pacifica", "credentials": { "type": "pacifica", "privateKey": "your-64-char-hex-private-key" }, "metadata": { "alias": "主交易账户", "description": "用于主要交易的Pacifica账户" } } ] } ``` ## 📊 性能指标 凭证管理器经过性能优化,满足高频交易需求: - ✅ **签名操作**: < 50ms (NFR-002) - ✅ **配置加载**: < 100ms (NFR-001) - ✅ **并发支持**: 多账户并发签名 - ✅ **内存效率**: 最小化内存占用 ## 🏗️ 架构设计 ### 核心组件 - **CredentialManager**: 主要管理器,协调所有功能 - **ConfigLoader**: 配置文件加载和监听 - **PlatformDetector**: 智能平台识别 - **Signer**: 统一签名接口和策略管理 - **PacificaSigner**: Pacifica平台Ed25519签名实现 ### 设计模式 - **工厂模式**: CredentialManagerFactory统一创建 - **策略模式**: 多平台签名策略 - **观察者模式**: 配置文件变化监听 - **适配器模式**: 平台特定接口适配 ## 🧪 测试 ```bash # 运行所有测试 npm test # 性能测试 npm run test:performance # 覆盖率测试 npm run test:coverage ``` ## 📖 API 文档 ### 主要接口 #### CredentialManager ```typescript interface ICredentialManager { // 配置管理 loadConfig(configPath: string): Promise; watchConfig(configPath: string, callback?: (accounts: Account[]) => void): void; stopWatching(): void; // 账户管理 addAccount(accountConfig: AccountConfig): Promise; removeAccount(accountId: string): Promise; getAccount(accountId: string): Account | null; listAccounts(): Account[]; // 签名操作 sign(accountId: string, message: Uint8Array): Promise; verify(accountId: string, message: Uint8Array, signature: string): Promise; // 统计和管理 getStats(): Promise; destroy(): Promise; } ``` #### 签名结果 ```typescript interface SignResult { success: boolean; signature?: string; algorithm: string; timestamp: Date; executionTime?: number; error?: string; } ``` ## 🛠️ 开发 ### 项目结构 ``` src/ ├── core/ # 核心组件 │ ├── types.ts # 类型定义 │ ├── CredentialManager.ts │ ├── Signer.ts │ └── PlatformDetector.ts ├── loaders/ # 配置加载器 │ └── ConfigLoader.ts ├── platforms/ # 平台特定实现 │ ├── pacifica/ │ ├── aster/ │ └── binance/ └── index.ts # 主入口 ``` ### 开发命令 ```bash # 开发模式 npm run dev # 类型检查 npm run typecheck # 代码格式化 npm run format # 代码检查 npm run lint ``` ## 🔒 安全考虑 - ✅ 私钥仅存储在内存中 - ✅ 支持加密凭证存储 - ✅ 签名操作隔离 - ✅ 输入验证和错误处理 - ✅ 无密钥泄露到日志 ## 📝 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📞 支持 如有问题,请通过以下方式联系: - 提交 [GitHub Issue](https://github.com/your-repo/issues) - 查看 [文档](https://docs.your-domain.com)