TypeScript Apex 客户端是
@orbitflare/sdk 的一部分,而不是单独的包。它仅通过 HTTP JSON-RPC 与 Apex 通信。TypeScript 目前还没有 QUIC 传输,因为 Node 没有足够可靠、可用于发送的 QUIC 实现。如需通过 QUIC 获得最低延迟的路径,请使用 Rust 客户端或 Go 客户端。安装
@solana/kit 和这两个程序包用于构建和签名交易。Apex 客户端本身只需要 @orbitflare/sdk。
设置您的 Apex API 密钥、一个有余额的密钥对,以及用于获取 blockhash 和确认交易的 Solana RPC 端点。示例使用 OrbitFlare RPC 和您的许可证密钥:
快速开始
该程序以最低小费向您选择的地址(默认是它自己)发送 1,000 lamports,然后等待交易上链。将其保存为send.ts,并使用 npx tsx send.ts 运行。
apex、solana 以及已签名的交易字节(wire)。
发送
有两个方法用于发送单笔交易。两者都会在端点接受交易后立即返回签名。mevProtect(跳过 Shield 黑名单上的领导者,参见 MEV 保护)和 maxRetries(限制 Apex 重新提交的次数),它们会在该次调用中覆盖构建器的默认值。交易大小必须在 1 到 4,096 字节之间(APEX_MAX_TRANSACTION_SIZE)。
批量发送
sendBatch 在一个请求中发送最多 16 笔交易(APEX_MAX_BATCH)。每笔交易都会被单独检查和竞速发送,因此一笔有问题的交易不会影响其他交易。
捆绑包
sendBundle 发送 1 到 4 笔交易(APEX_MAX_BUNDLE),它们要么一起上链,要么都不上链,并且只通过 Jito 领导者发送。捆绑包中恰好有一笔交易携带小费。
state 为 Pending、Landed、Failed 或 Invalid。捆绑包状态可能落后于链上状态,因此请使用 waitForConfirmation 确认捆绑包的 signatures,而不要只等待状态。规则和速率限制参见捆绑包。
小费与确认
小费规则参见小费页面。
区域与故障转移
fra、ams、dub、lon、nyc、slc、sgp、tyo、sqq 和 global(最近的健康端点)。未设置区域时,客户端依次使用 ORBITFLARE_APEX_URL、ORBITFLARE_APEX_REGION,最后是法兰克福。参见端点与区域。
选项
默认情况下,客户端对每个端点只尝试一次,然后直接转向下一个备用端点,而不是重试。这是有意为之:重新发送 Apex 已接受的交易会浪费您的速率限制,而且 Apex 自己会持续重新提交已接受的交易。
保持连接预热
apex.ping() 调用 GET /ping,并在端点应答 pong 时完成。每隔几秒调用一次可保持 HTTP 连接打开,这样下一次发送就能跳过 TCP 握手。
错误
每个失败都是一个带有kind 的 OrbitflareError:
Apex 错误码和速率限制列于错误与速率限制。