# @dfns/kaspa-wasm 中文文档

规范地址：https://npmcn.com/package/%40dfns/kaspa-wasm/

版本：0\.14\.1
npm 元数据更新时间：2026-04-10T16:14:15.218Z
中文译文更新时间：2026-11-12T05:26:20.868Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dfns/kaspa-wasm
原文对照：https://npmcn.com/package/%40dfns/kaspa-wasm/?lang=original
项目主页：https://github.com/kaspanet/rusty-kaspa#readme
源码仓库：https://github.com/kaspanet/rusty-kaspa

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：10.1 MB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2024-08-21T12:16:12.861Z
- 最新版本发布：2024-08-21T12:16:13.207Z
- 近 30 天下载量：10324（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

KSPA 瓦斯装订

## 安装

```sh
npm install @dfns/kaspa-wasm
```

也可以使用：`pnpm add @dfns/kaspa-wasm`、`yarn add @dfns/kaspa-wasm`、`bun add @dfns/kaspa-wasm`

## README

## WASM32 为 Rusty Kaspa SDK 装订

[![github](https://img.shields.io/badge/github-kaspanet/rusty--kaspa-8da0cb?style=for-the-badge&labelColor=555555&color=8da0cb&logo=github)](https://github.com/kaspanet/rusty-kaspa/tree/master/wasm) [![crates.io](https://img.shields.io/crates/v/kaspa-wasm.svg?maxAge=2592000&style=for-the-badge&color=fc8d62&logo=rust)](https://crates.io/crates/kaspa-wasm) [![docs.rs](https://img.shields.io/badge/docs.rs-kaspa--wasm-56c2a5?maxAge=2592000&style=for-the-badge&logo=docs.rs)](https://docs.rs/kaspa-wasm) ![license](https://img.shields.io/crates/l/kaspa-wasm.svg?maxAge=2592000&color=6ac&style=for-the-badge&logoColor=fff)

Rusty-Kaspa WASM32装订可直接整合Rust码和Rusty-Kaspa javaScript和TypeScript环境中的代码库,如Node.js和Web浏览器.

## 文档

-   [**与Kaspa合并** 指南](https://kaspa.aspectron.org/)
-   [**锈** 文档](https://docs.rs/kaspa-wasm/latest/kaspa_wasm/index.html)
-   [**类型脚本** 文档](https://kaspa.aspectron.org/docs/)

请注意,虽然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环境. 为了做到这一点, 遵循 [罗斯提·卡斯帕](https://github.com/kaspanet/rusty-kaspa)。 。 。 .

一旦安装了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://` 协议.

您可以使用您选择的任何网络服务器 。 如果没有一个,可以运行如下:

```bash
cargo install http-server
http-server
```

访问实例 [http://localhost:7878/examples/web/index.html (中文(简体) )](http://localhost:7878/examples/web/index.html)。 。 。 . (如果使用不同的服务器, 请确定更改端口 。 许多服务器将服务于 [http://localhost:8000/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 二进制编码.
    

示例

```bash
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 库是 [网络安全套](https://www.npmjs.com/package/websocket) 并列入 `kaspa` 国家防范机制一揽子计划. `kaspa` 软件包是一个包装包 `kaspa-wasm` 导入并安装此 WebSocket shim 在 `globalThis` 对象然后再导出 `kaspa-wasm` 出口.

## 正在装入 Web App

```html
<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

```javascript
//
// 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();
```

```javascript
// 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合并**](https://kaspa.aspectron.org/) 向导.

## 创建文档

请注意,要从源头构建文档,需要安装 Rust 环境. 构建脚本首先会构建出WASM32 SDK,再从中生成类型道克文档.

您可以从以下来源构建文档:

```bash
npm install -g typedoc
./build-docs
```

由此产生的文件将设在 `docs/typedoc/`

## 常见问题

### @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 和提交记录判断。

