HeliosKit

Swift 5.7 Platforms Swift Package Manager License: MIT GitHub tag

Helios 是一个完全无需信任、高效且可移植的以太坊轻客户端,使用 Rust 编写。

Helios 将不受信任的中心化 RPC 端点转换为安全且不可篡改的本地 RPC,供其用户使用。它可以在几秒钟内完成同步,无需存储空间,并且足够轻巧,可以在移动设备上运行。

这个 Swift Package 是 Helios Rust 库的包装器。

安装

将 package declaration 添加到您的项目 manifest dependencies 数组中

.package(url: "https://github.com/rkreutz/HeliosKit.git", from: "0.1.0")

用法

您可以使用以下代码启动客户端:

let rpcURL = // URL to the unsafe RPC
try await Helios.shared.start(rpcURL: rpcURL)

请记住,任何时候只能运行一个客户端。

一旦客户端启动并运行,您就可以开始对其进行 RPC 调用,它将监听 127.0.0.1:8545

您也可以使用该库通过以下方式调用 RPC 方法:

let (data, _) = try await Helios.shared.call(method: "eth_getBalance", params: ["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"])
let response = String(data: data, encoding: .utf8)!
print(response) // {"jsonrpc":"2.0","result":"0x0000000000000000000000000000000000000000000000000000000000000000","id":...}

要优雅地关闭客户端,请使用 shutdown() 方法

await Helios.shared.shutdown()

日志记录

您可以在运行时使用环境变量 (RUST_LOG) 启用 Rust lib 的日志记录。该库使用 Rust 的 env_logger 框架,因此您可以根据需要设置所需的日志级别。

Screen Shot 2022-12-13 at 18 31 46

本地构建

仓库中有一个 build_xcframework.sh 脚本,可以用来为 helios rust 库 构建 xcframework,这将创建 XCFramework 并将其(连同 Swift 桥接文件和校验和)放置在 .build/helios-rs/build 目录中。您可以指定您想要构建的版本,并为脚本提供一个额外的参数来构建 debugrelease 框架。

> zsh build_xcframework.sh 0.1.3 debug # .build/helios-rs/build/0.1.3/debug/helios.xcframework

> zsh build_xcframework.sh 0.1.3 # .build/helios-rs/build/0.1.3/debug/helios.xcframework

> zsh build_xcframework.sh debug # No version specified, defaults to latest

> zsh build_xcframework.sh # No version specified, defaults to latest

运行测试目标

要能够编译测试目标,您必须创建一个 Config.swift 文件(您可以直接复制并重命名 Config.swift.example),并添加您用于主网的 RPC URL。

您可以选择性地提供 rawTransaction 数据来测试 sendRawTransaction(_:)