| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #!/usr/bin/env node
- /**
- * Debug Pacifica API 连接问题
- */
- import { PacificaProxyClient } from './src/exchanges/pacifica/PacificaProxyClient.js'
- import { logger } from './src/utils/logger.js'
- import * as dotenv from 'dotenv'
- // 加载环境变量
- dotenv.config()
- async function debugApiConnection() {
- console.log('🔍 Debug Pacifica API 连接...')
- // 检查环境变量
- const account1 = process.env.PACIFICA_ACCOUNT_1
- const privateKey1 = process.env.PACIFICA_PRIVATE_KEY_1
- const account2 = process.env.PACIFICA_ACCOUNT_2
- const privateKey2 = process.env.PACIFICA_PRIVATE_KEY_2
- console.log('📋 环境变量检查:')
- console.log(`PACIFICA_ACCOUNT_1: ${account1 ? '✅ 已设置' : '❌ 未设置'}`)
- console.log(`PACIFICA_PRIVATE_KEY_1: ${privateKey1 ? '✅ 已设置' : '❌ 未设置'}`)
- console.log(`PACIFICA_ACCOUNT_2: ${account2 ? '✅ 已设置' : '❌ 未设置'}`)
- console.log(`PACIFICA_PRIVATE_KEY_2: ${privateKey2 ? '✅ 已设置' : '❌ 未设置'}`)
- console.log()
- if (!account1 || !privateKey1) {
- console.error('❌ 缺少必要的环境变量')
- return
- }
- // 代理配置
- const proxyConfig = {
- protocol: process.env.PROXY_PROTOCOL || 'http',
- host: process.env.PROXY_HOST || 'geo.iproyal.com',
- port: parseInt(process.env.PROXY_PORT || '12321'),
- auth: {
- username: process.env.ASTER_PROXY_USER || '',
- password: `${process.env.ASTER_PROXY_SESSION_PREFIX || ''}12345678${
- process.env.ASTER_PROXY_SESSION_SUFFIX || ''
- }`,
- },
- }
- console.log('🔧 代理配置:')
- console.log(`代理: ${proxyConfig.protocol}://${proxyConfig.host}:${proxyConfig.port}`)
- console.log(`用户: ${proxyConfig.auth.username}`)
- console.log()
- try {
- // 测试账户1
- console.log('🧪 测试账户1...')
- const client1 = new PacificaProxyClient({
- baseURL: process.env.PACIFICA_BASE_URL || 'https://api.pacifica.fi',
- privateKey: privateKey1,
- account: account1,
- proxyConfig: process.env.PROXY_ENABLED === 'true' ? proxyConfig : null,
- })
- console.log(`📍 账户地址: ${account1}`)
- console.log(`🔑 私钥长度: ${privateKey1.length} 字符`)
- console.log()
- // 测试基本连接
- console.log('📡 测试 API 连接...')
- const balanceResult = await client1.getBalances(account1)
- console.log('📊 API 响应:')
- console.log(`成功: ${balanceResult.success}`)
- if (balanceResult.success) {
- console.log('✅ 连接成功!')
- console.log('📋 账户数据:')
- console.log(JSON.stringify(balanceResult.data, null, 2))
- } else {
- console.log('❌ 连接失败!')
- console.log(`错误: ${balanceResult.error}`)
- // 详细错误分析
- if (balanceResult.error?.includes('Invalid address')) {
- console.log()
- console.log('🔍 地址格式分析:')
- console.log(`地址长度: ${account1.length}`)
- console.log(
- `地址格式: ${/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(account1) ? '✅ 符合Base58格式' : '❌ 不符合Base58格式'}`,
- )
- // 检查是否是有效的Solana地址
- try {
- const bs58 = await import('bs58')
- const decoded = bs58.default.decode(account1)
- console.log(`解码长度: ${decoded.length} 字节 (期望32字节)`)
- console.log(`有效地址: ${decoded.length === 32 ? '✅' : '❌'}`)
- } catch (e) {
- console.log(`地址解码失败: ${e}`)
- }
- }
- }
- // 如果有第二个账户,也测试一下
- if (account2 && privateKey2) {
- console.log()
- console.log('🧪 测试账户2...')
- const client2 = new PacificaProxyClient({
- baseURL: process.env.PACIFICA_BASE_URL || 'https://api.pacifica.fi',
- privateKey: privateKey2,
- account: account2,
- proxyConfig: process.env.PROXY_ENABLED === 'true' ? proxyConfig : null,
- })
- const balanceResult2 = await client2.getBalances(account2)
- console.log(`账户2连接: ${balanceResult2.success ? '✅' : '❌'}`)
- if (!balanceResult2.success) {
- console.log(`错误: ${balanceResult2.error}`)
- }
- }
- } catch (error: any) {
- console.error('💥 Debug 过程出错:', error.message)
- logger.error('Debug 失败', { error: error.message, stack: error.stack })
- }
- }
- // 运行debug
- debugApiConnection().catch(console.error)
|