Rusty Kaspa SDK 的 WASM32 绑定
Rusty-Kaspa WASM32 绑定提供 Rust 代码和 Rusty-Kaspa 的直接集成 JavaScript 和 TypeScript 环境(如 Node.js 和 Web 浏览器)中的代码库。
文档
请注意,虽然 WASM 直接绑定 JavaScript 和 Rust 资源,但它们的名称在 JavaScript 端 与它们在 Rust 中的名称不同,因为它们符合 JavaScript 中的“camelCase”约定和 到 Rust 中的“snake_case”约定。
WASM32 绑定可以在 TypeScript 和 JavaScript 环境中使用,其中在 JavaScript 中 类型将不受 TypeScript 类型定义的约束。
接口
SDK 目前分为以下顶级类别:
RPC API — 使用 WebSockets 的 Kaspa 节点的 RPC API。
Wallet SDK — 与密钥管理和交易相关的基元绑定。
Wallet API — 用于 Rusty Kaspa 钱包框架的 API。
WASM32 SDK 发布包
SDK 构建为 4 个用于 Web 浏览器的包,如下所示:
KeyGen - 密钥和地址生成
RPC - 仅 RPC
核心 - RPC + 密钥和地址生成 + 钱包 SDK
完整 - 完整 SDK + 集成钱包 对于 NodeJS,SDK 构建为包含所有功能的单个包。
SDK 文件夹结构
以下是 SDK 文件夹结构的简要概述(如版本中所述):
web/kaspa
- 满用于 Web 浏览器的 Rusty Kaspa WASM32 SDK 绑定。web/kaspa-rpc
- 仅用于 Web 浏览器的 RPC 绑定(减小了 WASM 二进制文件大小)。nodejs/kaspa
- 满用于 NodeJS 的 Rusty Kaspa WASM32 SDK 绑定。docs
- Rusty Kaspa WASM32 SDK 文档。examples
文件夹包含 NodeJS 和 Web 浏览器的示例。examples/data
- 文件夹用户通过示例进行配置和钱包数据存储。examples/javascript
examples/javascript/general
- 通用SDK示例(密钥和派生,地址,加密等)。examples/javascript/transactions
- 创建、发送和接收交易。examples/javascript/wallet
- 与 Rusty Kaspa 钱包框架对接。examples/typescript
jsconfig.json
可以通过在 Web 浏览器中加载文件来访问版本中包含的文档。docs/kaspa/index.html
从源代码构建
要从源代码构建 WASM32 SDK,您需要安装 Rust 环境。为此, 按照 Rusty Kaspa README 中的说明进行操作。
安装 Rust 后,您可以按如下方式构建 WASM32 SDK:
./build-release
- 构建 WASM32 SDK + Docs 的发布版本。发行版还包含库的构建版本。debug
./build-web
- 构建 Web 包(ES6 模块)./build-node
- 构建 NodeJS 包(CommonJS 模块)./build-docs
- 运行,然后从生成的构建生成 TypeDoc 文档。build-web
请注意,要从源代码构建,您需要通过以下方式全局安装 TypeDoc(见下文)。npm install -g typedoc
运行 Web 示例
重要:要查看 Web 示例,您需要从本地 Web 服务器提供它们,并且 从 SDK 文件夹的根目录提供它们(如果使用可再发行组件或从源代码构建)。这是因为示例使用相对路径。 WASM32 目前无法使用该协议加载。kaspa-wasm32-sdk
rusty-kaspa/wasm
file://
您可以使用您选择的任何 Web 服务器。如果没有,可以按如下方式运行:
cargo install http-server http-server
访问 http://localhost:7878/examples/web/index.html 中的示例。 (如果您使用的是其他服务器,请确保更改端口。默认情况下,许多服务器将在 http://localhost:8000/examples/web/index.html 上提供服务)
如果从源代码生成,则必须在运行示例之前运行 or 脚本。build-release
build-web
运行 NodeJs 示例
这适用于从源代码生成项目时运行示例,因为某些依赖项是作为生成过程的一部分实例化的。您只需要运行即可初始化本地配置。node init
笔记:
npm install
npm install -g typedoc
是发布版本生成文档所必需的node init
创建一个本地,其中包含跨 NodeJS 示例使用的私钥(助记符)。您可以通过将地址指定为命令行参数来覆盖某些示例中使用的地址。examples/data/config.json
大多数示例将接受以下参数:.
node <script> [address] [mainnet|testnet-10|testnet-11] [--address <address>] [--network <mainnet|testnet-10|testnet-11>] [--encoding <borsh|json>]
默认情况下,所有 wRPC 连接都使用 Borsh 二进制编码。
例:
cd wasm ./build-release cd examples npm install node init node nodejs/javascript/general/rpc.js
使用 RPC
有多种方法可以使用 RPC:
控制 WebSocket 框架的 JSON-RPC 协议(必须手动处理序列化)
使用自动处理连接并以异步函数调用形式提供 RPC 接口的类。
RpcClient
节点:要在 Node.js 环境中使用 WASM RPC 客户端,您需要引入一个 W3C WebSocket 对象 在加载 WASM32 库之前。兼容的 WebSocket 库是 WebSocket,包含在 NPM 包中。 package 是一个包装器,用于在对象中导入并安装此 WebSocket 填充码,然后重新导出导出。kaspa
kaspa
kaspa-wasm
globalThis
kaspa-wasm
在 Web 应用程序中加载
<html> <head> <script type="module"> import * as kaspa from './kaspa/kaspa-wasm.js'; (async () => { await kaspa.default('./kaspa/kaspa-wasm_bg.wasm'); console.log(kaspa.version()); // ... })(); </script> </head> <body></body> </html>
在 Node.js 应用程序中加载
// // W3C WebSocket module shim // this is provided by NPM `kaspa` module and is only needed // if you are building WASM libraries for NodeJS from source // // @ts-ignore // globalThis.WebSocket = require('websocket').w3cwebsocket; // let { RpcClient, Encoding, initConsolePanicHook } = require('./kaspa'); // enabling console panic hooks allows WASM to print panic details to console // initConsolePanicHook(); // enabling browser panic hooks will create a full-page DIV with panic details // this is useful for mobile devices where console is not available // initBrowserPanicHook();
// if port is not specified, it will use the default port for the specified network const rpc = new RpcClient({ url: "127.0.0.1", encoding: Encoding.Borsh, network : "testnet-10" }); (async () => { try { await rpc.connect(); let info = await rpc.getInfo(); console.log(info); } finally { await rpc.disconnect(); } })();
有关更多详细信息,请遵循与 Kaspa 集成指南。
创建文档
请注意,要从源代码构建文档,您需要安装 Rust 环境。 构建脚本将首先构建 WASM32 SDK,然后从中生成 typedoc 文档。
您可以按如下方式从源代码构建文档:
npm install -g typedoc ./build-docs
生成的文档将位于docs/typedoc/
感动 | 同情 | 无聊 | 愤怒 | 搞笑 | 难过 | 高兴 | 路过 |
- 上一篇:Kaspa升级Rust时旧的助记符操作指引
- 下一篇:Kaspa钱包框架(go版)
相关文章
-
没有相关内容