跳转到主要内容

安装

构建客户端

下面是设置了所有选项的客户端:
大多数选项都有合理的默认值。最小化设置:
每个方法都接收一个 context.Context,因此可传入带截止时间的 context 来限定单次调用:

构建器方法

.URL(url) - 发送请求的主端点。若未设置,SDK 会读取 ORBITFLARE_RPC_URL 环境变量。
.URLs(urls...) - 一次性设置主端点及全部回退端点。第一个为主端点,其余为回退端点。
.FallbackURL(url) - 添加单个回退端点。可多次调用以添加多个。当主端点失败时,SDK 会按顺序尝试回退端点。
.FallbackURLs(urls...) - 与 FallbackURL 相同,但可一次传入多个。
.APIKey(key) - 你的 OrbitFlare 许可证密钥。若未设置,SDK 会读取环境变量 ORBITFLARE_LICENSE_KEY。密钥在请求时注入 URL,绝不存储于端点,也绝不出现在日志或错误信息中。
.Commitment(level) - 所有类型化辅助方法使用的默认承诺级别。可选:"processed""confirmed""finalized"。默认 "confirmed"
.Retry(policy) - 控制 SDK 如何重试失败的请求。InitialDelay 是首次重试前的等待时间。Multiplier 在每次尝试时缩放延迟。MaxDelay 为退避上限。MaxAttempts 限制总重试次数(0 表示无限)。默认:100ms 初始、30s 上限、2 倍系数、无限次。
.Timeout(duration) - 每次请求的 HTTP 超时。默认 30 秒。
.Logger(logger) - 用于请求重试与故障转移的 *slog.Logger。未设置时,日志由 ORBITFLARE_LOG 环境变量控制(trace|debug|info|warn|error|silent,默认 silent)。

可用 RPC 方法

类型化辅助方法返回 Go 值;其余方法返回可自行反序列化为你自己类型的 json.RawMessage

GetSlot(ctx)

返回当前槽位号。

GetBalance(ctx, address)

返回账户余额(以 lamports 计)。

GetAccountInfo(ctx, address)

返回完整账户数据(json.RawMessage),账户不存在时为 nil。数据为 base64 编码。

GetMultipleAccounts(ctx, addresses)

一次调用获取多个账户。自动按每批 100 个分块(Solana 的单请求上限),因此可传入任意数量的地址。

GetLatestBlockhash(ctx)

返回最新的 blockhash 及其有效的最后区块高度。

GetTransaction(ctx, signature)

按签名获取已确认交易。返回带元数据的完整交易(json.RawMessage)。

GetSignaturesForAddress(ctx, address, limit)

返回某地址最近的交易签名,最新的在前。

GetProgramAccounts(ctx, programID)

返回某程序拥有的全部账户。数据量可能很大。

GetRecentPrioritizationFees(ctx, addresses)

返回一组账户的近期优先费。可用于估算计算单元定价。

SendTransaction(ctx, txBase64)

向网络发送已签名交易。接收 base64 编码的序列化交易。返回交易签名。

SimulateTransaction(ctx, txBase64)

在不提交的情况下模拟交易。返回日志、消耗的计算单元以及任何错误(json.RawMessage)。

GetTokenAccountsByOwner(ctx, owner, mint, programID)

返回钱包的代币账户。传入特定 mint 或代币程序 ID。若两者均为空字符串,则默认使用 SPL Token 程序。

GetTransactionsForAddress(ctx, address, options)

OrbitFlare 专属方法,将 getSignaturesForAddressgetTransaction 合并为一次调用。返回带 Data 切片及可选 PaginationToken(用于翻页)的 GetTransactionsResult 支持四种详情级别(signaturesnoneaccountsfull)、双向排序、时间/槽位过滤、状态过滤以及代币账户包含。options 可为 nil 以使用默认值。

Request(ctx, method, params)

按名称调用任意 RPC 方法。SDK 构建 JSON-RPC 信封、处理重试与故障转移,并返回 result 字段(json.RawMessage)。

RequestRaw(ctx, body)

发送原始 JSON-RPC 主体字符串。与其他方法一样具备重试与故障转移。

完整示例

一个检查网络状态、获取钱包 SOL 余额并查询近期交易的程序。