一个用于 smoldot 基于 Rust 的 Polkadot 轻客户端的 Swift 封装。
将软件包声明添加到您的项目的 manifest dependencies 数组中
.package(url: "https://github.com/finsig/smoldot-swift.git", from: "0.1.0")
必须提供链规范文件来初始化链。 链规范是一个 JSON 对象,它描述了基于 Polkadot 的区块链网络。
Polkadot、Kusama、Rococo 和 Westend 的链规范 JSON 示例文件可以从 /Tests/SmoldotSwiftTests/Resources 复制以供使用。
从规范文件初始化链
var chain = Chain(specificationFile: {Resource file URL})
将链添加到客户端以连接到网络
try Client.shared.add(chain: &chain)
RPC 请求必须符合 JSON-RPC 2.0 协议。 可以通过编程方式构建请求
let request = try JSONRPC2Request(method: "chain_getHeader", identifier: .int(1))
或从 JSON 数据格式的字符串初始化
let request = try JSONRPC2Request(string: "{\"id\":1,\"jsonrpc\":\"2.0\",\"method\":\"chain_getHeader\",\"params\":[]}")
要发送请求,请使用
try Client.shared.send(request: request, to: chain)
要等待响应,请使用
try await Client.shared.response(from: chain)
或者,可以使用以下方式读取异步响应流
try await Client.shared.responses(from: chain)
要断开客户端与网络的连接,请使用
try Client.shared.remove(chain: &chain)
有关使用方法的更多信息,请参阅 参考文档。
您可以在运行时使用环境变量 (RUST_LOG
) 启用 smoldot Rust FFI 库的日志记录。 该库使用 Rust 的 env_logger
框架,可以相应地设置级别。
仓库中有一个 build_xcframework.sh 脚本,可用于从 smoldot Rust FFI 库构建 XCode Framework 目标。
$ zsh build_xcframework.sh dev
省略 dev
参数将修改包设置以使用远程二进制目标,并创建一个压缩的框架文件(以及校验和值)。
除了单元测试外,请参阅此 项目 以进行内存使用情况分析。
有关日志噪声,请参阅 GitHub issues。