helium3@sina.com 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
..
examples 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
src 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
tests 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
.eslintrc.js 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
.gitignore 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
.prettierrc 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
README.md 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
jest.config.js 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
package.json 551193aa6b feat: implement credential manager library with TypeScript 1 week ago
tsconfig.json 551193aa6b feat: implement credential manager library with TypeScript 1 week ago

README.md

凭证管理器 (Credential Manager)

一个高性能的多平台加密货币交易账户凭证管理库,支持热加载、智能平台识别和安全签名功能。

✨ 特性

  • 🔐 多平台支持: Pacifica、Aster、Binance等主流交易平台
  • 🔄 热加载: 支持JSON配置文件实时监听和重载
  • 🎯 智能检测: 自动识别账户所属平台
  • 高性能: 签名操作 <50ms,配置加载 <100ms
  • 🛡️ 类型安全: 完整的TypeScript类型定义
  • 🧪 测试驱动: 全面的契约测试和性能测试

🚀 快速开始

安装

npm install @binance-api/credential-manager

基本使用

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();

从配置文件加载

// 加载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('配置文件已更新,重新加载账户');
});

配置文件格式

{
  "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统一创建
  • 策略模式: 多平台签名策略
  • 观察者模式: 配置文件变化监听
  • 适配器模式: 平台特定接口适配

🧪 测试

# 运行所有测试
npm test

# 性能测试
npm run test:performance

# 覆盖率测试
npm run test:coverage

📖 API 文档

主要接口

CredentialManager

interface ICredentialManager {
  // 配置管理
  loadConfig(configPath: string): Promise<LoadResult>;
  watchConfig(configPath: string, callback?: (accounts: Account[]) => void): void;
  stopWatching(): void;

  // 账户管理
  addAccount(accountConfig: AccountConfig): Promise<boolean>;
  removeAccount(accountId: string): Promise<boolean>;
  getAccount(accountId: string): Account | null;
  listAccounts(): Account[];

  // 签名操作
  sign(accountId: string, message: Uint8Array): Promise<SignResult>;
  verify(accountId: string, message: Uint8Array, signature: string): Promise<boolean>;

  // 统计和管理
  getStats(): Promise<ManagerStats>;
  destroy(): Promise<void>;
}

签名结果

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            # 主入口

开发命令

# 开发模式
npm run dev

# 类型检查
npm run typecheck

# 代码格式化
npm run format

# 代码检查
npm run lint

🔒 安全考虑

  • ✅ 私钥仅存储在内存中
  • ✅ 支持加密凭证存储
  • ✅ 签名操作隔离
  • ✅ 输入验证和错误处理
  • ✅ 无密钥泄露到日志

📝 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📞 支持

如有问题,请通过以下方式联系: