Skip to main content

客户端初始化

使用环境变量

不要把配置写进源码:

使用单例客户端

只创建一个客户端实例,并在整个应用中复用:

错误处理

始终处理错误

把 SDK 调用包在 try/catch 中,并针对具体错误类型分别处理。下面给出的是最起码值得区分的几类;完整版本见 错误处理

检查是否可重试

不要盲目重试。每个错误都提供 isRetryable() / is_retryable(),其中已经编码了哪些失败在第二次尝试时可能成功 —— 请使用它,而不要自己去匹配状态码。 完整的异常层级结构、按状态码划分的可重试性表格,以及现成的指数退避封装,见 错误处理

异步模式

TypeScript:并行请求

对互不依赖的请求使用 Promise.all
当你希望拿到部分结果时,使用 Promise.allSettled

Python:串行执行并从错误中恢复

金额处理

调用 API 时一律使用原始单位

API 使用原始(最小单位)金额。发送前请先转换展示金额:

多资产应用请使用 PrecisionHandler

处理多种资产时,使用 PrecisionHandler 避免精度错误:

节点操作

使用 RLN 前先检查节点

务必确认节点已配置:

WebSocket

用完后取消订阅

务必清理 WebSocket 订阅:

处理重连

WSClient 会自行以指数退避重连,因此你这边要做的是把状态呈现给用户:收到 disconnected 时显示「正在重连」提示,收到 connected 时重新请求报价,并把 maxReconnectExceeded 当作硬性错误而非短暂抖动来处理。 事件列表与重连配置见 WebSocket

安全

切勿在客户端代码中暴露 API 密钥

API 密钥只应在服务端使用。浏览器应用请通过你自己的后端代理 API 调用。

校验用户输入

发送到 API 之前,务必校验金额和地址:
订单规模限额位于每个资产的 endpoints 列表中(按层给出的 TradingLimits);pair.routes 只告诉你存在哪些 from_layer -> to_layer 组合。

性能

缓存静态数据

资产和交易对很少变化。缓存它们以减少 API 调用: