@dfns/kaspa-wasm

中文文档
0.14.1发布于 2024/08/21ISCTypeScriptCommonJS零依赖近 30 天下载 1万

KSPA 瓦斯装订

中文使用文档
文档目录12 节
  1. WASM32 为 Rusty Kaspa SDK 装订
  2. 文档
  3. 接口
  4. WASM32 SDK 发布包
  5. SDK 文件夹结构
  6. 来源建筑
  7. 运行网络示例
  8. 运行节点Js 示例
  9. 使用 RPC
  10. 正在装入 Web App
  11. 正在装入一个节点.js App
  12. 创建文档

WASM32 为 Rusty Kaspa SDK 装订

github crates.io docs.rs license

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/

版本与发布记录

@dfns/kaspa-wasm 共发布 1 个版本,首次发布于 2024/08/21;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.14.1latest2024/08/212 年前

关于 @dfns/kaspa-wasm 的常见问题

@dfns/kaspa-wasm 是什么?

KSPA 瓦斯装订

如何安装 @dfns/kaspa-wasm?

在项目目录运行 npm install @dfns/kaspa-wasm,或使用 pnpm add / yarn add / bun add。

@dfns/kaspa-wasm 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dfns/kaspa-wasm 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@dfns/kaspa-wasm 可以商用吗?

@dfns/kaspa-wasm 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@dfns/kaspa-wasm 的下载量有多少?

根据 npm 官方下载统计,@dfns/kaspa-wasm 在 2026/10/12 – 2026/11/10 这 30 天内被下载 10,324 次,日均约 344 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dfns/kaspa-wasm 还在维护吗?

最新版本 0.14.1 发布于 2024/08/21(2 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/08/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。