/** * T029 演示:账户管理器桥接服务 * 演示如何集成现有的 AccountManager 与新的 AccountSyncService */ import { SystemOrchestrator } from '../src/modules/SystemOrchestrator.js' import { logger } from '../src/utils/logger.js' async function main() { logger.info('=== T029 账户管理器桥接演示 ===') try { // 1. 创建系统协调器 const orchestrator = new SystemOrchestrator() // 2. 模拟账户配置 const mockAccounts = [ { id: '1', name: 'Pacifica Account 1', account: '0x1234567890abcdef1234567890abcdef12345678', privateKey: 'mock_private_key_1' }, { id: '2', name: 'Pacifica Account 2', account: '0xabcdef1234567890abcdef1234567890abcdef12', privateKey: 'mock_private_key_2' } ] // 3. 初始化系统(启用控制平面模式) logger.info('初始化系统(启用控制平面模式)...') await orchestrator.initialize({ accounts: mockAccounts, enableTrading: false, enableDashboard: false, enableControlPlane: true }) // 4. 启动系统 logger.info('启动系统...') await orchestrator.start() // 5. 检查桥接器状态 const bridgeStats = orchestrator.getBridgeStats() logger.info('桥接统计信息:', bridgeStats) // 6. 获取统一系统状态 const unifiedStatus = orchestrator.getUnifiedSystemStatus() logger.info('统一系统状态:', { legacyServices: Object.keys(unifiedStatus.legacy), controlPlaneStatus: unifiedStatus.controlPlane?.status, bridgeStatus: unifiedStatus.bridge?.isRunning }) // 7. 手动触发账户同步 logger.info('手动触发账户同步...') const syncResult = await orchestrator.triggerAccountSync() logger.info('同步结果:', syncResult) // 8. 等待一段时间让自动同步运行 logger.info('等待 35 秒让自动同步运行...') await new Promise(resolve => setTimeout(resolve, 35000)) // 9. 再次检查统计信息 const updatedStats = orchestrator.getBridgeStats() logger.info('更新后的桥接统计:', updatedStats) // 10. 获取控制平面服务详情 const controlPlaneService = orchestrator.getControlPlaneService() if (controlPlaneService) { const healthMetrics = controlPlaneService.getHealthMetrics() logger.info('控制平面健康指标:', healthMetrics) const systemStats = controlPlaneService.getSystemStatus() logger.info('控制平面系统统计:', systemStats) } // 11. 停止系统 logger.info('停止系统...') await orchestrator.stop() logger.info('=== T029 演示完成 ===') } catch (error: any) { logger.error('T029 演示失败:', { error: error.message, stack: error.stack }) process.exit(1) } } // 优雅关闭处理 process.on('SIGINT', async () => { logger.info('收到 SIGINT 信号,正在优雅关闭...') process.exit(0) }) process.on('SIGTERM', async () => { logger.info('收到 SIGTERM 信号,正在优雅关闭...') process.exit(0) }) // 运行演示 if (import.meta.url === `file://${process.argv[1]}`) { main().catch(error => { logger.error('演示运行失败:', error) process.exit(1) }) }