— 目标与范围 —
— 核心术语 —
ExchangeAdapter
:各交易所适配器统一接口,已定义于 src/exchanges/ExchangeAdapter.ts
。AccountManager
:集中式账户管理器,见 src/accounts/accountManager.ts
。RegisteredAccount
:注册实体,包含 exchange/accountId/adapter/meta
。— 架构与职责 —
(exchange, accountId)
管理适配器实例;幂等。balances()
与 positions()
,并附加来源标签 { exchange, accountId }
。placeOrder/cancel/cancelAll/getOrder/openOrders/leverage/depth
等。ws()
,转发常见事件(depth/orders/trades/balance/account_info/account_positions
等),并附 { exchange, accountId }
标签。— 统一数据模型(归一化) —
Balance
: { asset, total, free }
Position
: { symbol, side: 'LONG'|'SHORT', qty, entryPrice, unrealizedPnl, leverage? }
Order
: { id, symbol, status, side, type, price?, origQty, executedQty, updateTime }
Depth
: { bids: [{price,qty}], asks: [{price,qty}], ts }
BTC
)。— AccountManager API(对上暴露) —
register({ exchange, accountId, adapter, meta? })
list()
、balancesAll()
、positionsAll()
getAdapter()
、placeOrderOn()
、cancelOrderOn()
、cancelAllOn()
、openOrdersOn()
、leverageOn()
、depthOn()
cancelAllByExchange(exchange, symbol)
ws()
(聚合 EventEmitter)— Pacifica 账户相关(REST/WS) —
PacificaClient
):
/api/v1/account/info
(POST)/api/v1/account
(GET)或文档对应的 settings 页面/api/v1/account_equity_history
、/api/v1/account_balance_history
(见 docs 镜像 HTML)/api/v1/account/update-leverage
、/api/v1/account/update-margin-mode
/api/v1/subaccounts/create
、/api/v1/subaccounts/transfer
tweetnacl+bs58
),按 signing/implementation
组装 {timestamp, expiry_window, type, data}
紧凑 JSON 后签名。prices
、book
、trades
、account_info
、account_balance
、account_positions
、account_orders
。{"method":"ping"}
,服务端返回 { "channel": "pong" }
。— Aster 账户相关(REST/HMAC) —
X-MBX-APIKEY
+ sha256(signature)
;/fapi/v2/balance
、/fapi/v2/positionRisk
、/fapi/v3/openOrders
;/fapi/v3/positionSide/dual
;/fapi/v3/leverage
、/fapi/v3/marginType
;/fapi/v3/order
(x-www-form-urlencoded,链上 personal_sign 参与签名字符串)。— 错误处理与重试 —
PacificaClient
实装。— 安全与密钥管理 —
PACIFICA_DEBUG=1
时)。— 持久化(后续) —
— 测试与回归 —
examples/pacifica_test.ts
、examples/pacifica_ws_example.ts
、examples/aster_adapter_smoke.ts
;ExchangeAdapter
市价/限价/撤单/全撤/深度/持仓/余额。— 路线图 —
— 启动自检(Init Check,Fail-fast) —
PACIFICA_ACCOUNT
、PACIFICA_ACCOUNT_PRIVATE_KEY
(或 PACIFICA_PRIVATE_KEY
);如启用代理单:PACIFICA_AGENT_WALLET
、PACIFICA_AGENT_PRIVATE_KEY
;ASTER_API_KEY/ASTER_API_SECRET
(查询必需);ASTER_ORDER_USER/ASTER_ORDER_SIGNER/PRIVATE_KEY
(下单必需)。PACIFICA_ACCOUNT
;否则 fail-fast;ASTER_ORDER_USER/ASTER_ORDER_SIGNER
为合法 EVM 地址;私钥 0x 前缀、长度正确;GET /api/v1/book?symbol=BTC
、Aster GET /fapi/v3/exchangeInfo
;wss://.../ws
并发送 ping
,收到 pong
;docs/accounts/ENV_VARS.md
与接入文档;/api/v1/account/info
(POST)在账户环境完整时应成功;/fapi/v2/balance
//fapi/v2/positionRisk
应成功;推荐在装配层提供
--init-check
开关,或默认执行;并将失败详情写入日志与控制台,方便快速排障。