WASM32 为 Rusty Kaspa SDK 装订
Rusty-Kaspa WASM32装订可直接整合Rust码和Rusty-Kaspa javaScript和TypeScript环境中的代码库,如Node.js和Web浏览器.
文档
请注意,虽然WASM直接绑定了JavaScript和Rust资源,但他们在JavaScript一侧的名字 与它们在Rust中的名字不同,因为它们符合JavaScript和JavaScript中的“骆驼Case”公约 到“ snake case” 的 Rust 公约.
WASM32绑定可以同时用于 TypeScript 和 JavaScript 环境, 在 JavaScript 中 类型将不受 TypeScript 类型定义的限制.
接口
SDK目前分离为以下顶级类别:
- RPC API (英语) ——使用WebSockets为Kaspa节点的RPC API.
- 钱包 SDK ——与关键管理和交易有关的原始人的约束.
- 钱包 API ——"鲁斯地"卡斯帕钱包框架API.
WASM32 SDK 发布包
SDK为Web浏览器的4个软件包构建如下:
- KeyGen - 只生成密钥和地址
- RPC - 仅RPC
- 核心 - RPC + 密钥和地址生成+钱包 SDK
- 完整 - 完整 SDK + 综合钱包 对于NodeJS,SDK是作为一个包含所有特性的单一包来构建的.
SDK 文件夹结构
以下是SDK文件夹结构的简要概述(见发布稿):
web/kaspa- 说吧 满 Rusty Kaspa WASM32 SDK绑定,用于网页浏览器.web/kaspa-rpc- 仅用于网页浏览器的RPC绑定(已减少的WASM 二进制大小).nodejs/kaspa- 说吧 满 Rusty Kaspa WASM32 SDK捆绑与NodeJS一起使用.docs- Rusty Kaspa WASM32 SDK文档.examples文件夹包含节点JS和网页浏览器的示例.examples/data- 按配置和钱包数据存储实例分列的文件夹用户.examples/javascript- JavaScript 实例.examples/javascript/general- 通用SDK实例(钥匙和衍生、地址、加密等).examples/javascript/transactions- 创建、发送和接收交易.examples/javascript/wallet- 与Rusty Kaspa钱包框架接口.examples/typescript- TypeScript 示例.
如果您正在使用 JavaScript 和 Visual Studio 代码, 高度推荐您复制
页:1 jsconfig.json sDK 示例中的配置文件 。 此文件允许
Visual Studio提供类似TypeScript的代码补全,类型检查和文档.
包含的文档可通过加载 docs/kaspa/index.html
在网页浏览器中的文件.
来源建筑
要从源头构建出WASM32 SDK,需要安装Rust环境. 为了做到这一点, 遵循 罗斯提·卡斯帕。 。 。 .
一旦安装了Rust,可以将WASM32 SDK建造如下:
./build-release- 构建WASM32 SDK + Docs的发布版本. 发行版本还包含debug建立图书馆../build-web建立网页软件包(ES6模块)./build-node- 构建节点JS软件包(CommonJS模块)./build-docs- 运行build-web,然后从产生的构建中生成 TypeDoc 文档.
请注意,要从源头构建,您需要在全球安装TypeDoc,通过 npm install -g typedoc (见下文).
运行网络示例
关键是: 要查看网络实例,您需要从本地网络服务器和
从 SDK 文件夹的根端为它们服务( S)kaspa-wasm32-sdk 使用可再分配或
rusty-kaspa/wasm 如果从源头建起). 这是因为实例使用相对路径.
目前无法使用 WASM32 装入 file:// 协议.
您可以使用您选择的任何网络服务器 。 如果没有一个,可以运行如下:
cargo install http-server
http-server
访问实例 http://localhost:7878/examples/web/index.html (中文(简体) )。 。 。 . (如果使用不同的服务器, 请确定更改端口 。 许多服务器将服务于 http://localhost:8000/examples/web/index.html (中文(简体) ) (默认)
如果从源头建起, 你必须运行 build-release 或者说 build-web 运行实例前的脚本 .
运行节点Js 示例
这适用于从源头构建项目时运行的例子,因为一些依赖性作为构建过程的一部分被即时化. 璶禲 node init 以初始化本地配置.
注:
-
npm install将为 TypeScript 和 W3C 网络锁模块安装节点J 类型 -
npm install -g typedoc需要用于创建发布文件 -
node init创建本地examples/data/config.json它包含一个跨节点JS实例的私钥(mnemonic)使用. 您可以通过指定地址为命令行参数来覆盖一些示例中使用的地址 . -
大部分例子将接受以下论点:
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-framed JSON-RPC 协议(您必须手动处理序列)
- 使用
RpcClient类可以自动处理连接,并以ASync函数调用的形式提供RPC接口.
诺德杰斯: 要在 Node.js 环境中使用 WASM RPC 客户端, 您需要引入 W3C WebSocket 对象
在装入 WASM32 库之前。 兼容的 WebSocket 库是 网络安全套 并列入 kaspa 国家防范机制一揽子计划. kaspa 软件包是一个包装包 kaspa-wasm 导入并安装此 WebSocket shim 在 globalThis 对象然后再导出 kaspa-wasm 出口.
正在装入 Web App
<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>
正在装入一个节点.js App
//
// 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,再从中生成类型道克文档.
您可以从以下来源构建文档:
npm install -g typedoc
./build-docs
由此产生的文件将设在 docs/typedoc/