# @dynamic-labs/spark 中文文档

规范地址：https://npmcn.com/package/%40dynamic-labs/spark/

版本：5\.16\.1
npm 元数据更新时间：2026-11-13T08:39:17.637Z
中文译文更新时间：2026-11-13T02:24:01.848Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40dynamic-labs/spark
原文对照：https://npmcn.com/package/%40dynamic-labs/spark/?lang=original
项目主页：https://www.dynamic.xyz/

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

- 包体积（解压后）：666 kB，43 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：5 个
- 首次发布：2025-09-02T22:11:55.260Z
- 最新版本发布：2026-11-13T08:39:17.440Z
- 近 30 天下载量：4832（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：216（近 12 个月 179 个）

## 中文简介

对您网站执行钱包网络3认证和授权的 SDK 反应 .

## 安装

```sh
npm install @dynamic-labs/spark
```

也可以使用：`pnpm add @dynamic-labs/spark`、`yarn add @dynamic-labs/spark`、`bun add @dynamic-labs/spark`

## README

# @ difficial- labs/ spark (英语)

用于动态 SDK 的 Spark 钱包连接软件包,可以与 Spark 网络钱包进行无缝集成.

## 特征

-   **弹性提供者接口** - 方便为额外的 Spark 钱包添加支持
-   **比特币传输** - 在可选的磁盘支持下将比特币送到 Spark 地址
-   **调试** - 在 Spark 地址之间传送令牌
-   **信件签名** - 在可选的磁盘支持下签名认证信件
-   **主网支助** - 目前支持Spark主网(链式ID 301)

## 安装

```bash
npm install @dynamic-labs/spark
```

## 建筑

### 基础连接器类

这个 `SparkWalletConnector` 为所有 Spark 钱包集成提供坚实的基础 :

-   **摘要执行** - 处理普通钱包操作
-   **处理错误** - 综合错误处理和记录
-   **主网焦点** - 目前优化用于主网

### 提供者接口

所有 Spark 钱包提供者必须执行 `ISparkProvider` 接口 :

```typescript
interface ISparkProvider {
  isConnected: boolean;
  chainId?: string;
  network?: string;

  connect(): Promise<SparkConnectionResult | string>;
  disconnect(): Promise<void>;
  getAddress(): Promise<SparkAddressResult>;
  signMessage(
    message: string | SparkSignMessageRequest,
  ): Promise<SparkSignatureResult>;
  signMessageWithTaproot(message: string): Promise<SparkSignatureResult>;
  transferBitcoin(params: {
    receiverSparkAddress: string;
    amountSats: bigint;
    isTaproot?: boolean;
  }): Promise<string>;
  transferTokens(params: {
    tokenPublicKey: string;
    receiverSparkAddress: string;
    tokenAmount: number;
    isTaproot?: boolean;
  }): Promise<string>;
  request(method: string, params?: unknown): Promise<unknown>;

  [key: string]: unknown; // Extensible for additional properties
}
```

## ++ 支持的网络

| 网络 | 链式标识 | 说明 | 块浏览器 |
| --- | --- | --- | --- |
| **主要网** | 301国道 | 生产网络 | [mempool. 空间](https://mempool.space/) |

> **说明**:目前仅支持主网. 未来版本中可能会添加Testnet,signet,和regtest支持.

## 使用量

### 基本融合

```typescript
import { DynamicContextProvider } from '@dynamic-labs/sdk-react-core';
import { SparkWalletConnectors } from '@dynamic-labs/spark';

function App() {
  return (
    <DynamicContextProvider
      settings={{
        environmentId: 'your-environment-id',
        walletConnectors: [SparkWalletConnectors()],
      }}
    >
      {/* Your app content */}
    </DynamicContextProvider>
  );
}
```

### 使用 SparkWallet

```typescript
import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { SparkWallet } from '@dynamic-labs/spark';

function MyComponent() {
  const { primaryWallet } = useDynamicContext();

  const handleSendBitcoin = async () => {
    if (primaryWallet instanceof SparkWallet) {
      // Send Bitcoin
      const txHash = await primaryWallet.sendBalance({
        amount: '100000', // 100,000 satoshis
        toAddress: 'sp1recipient123456789abcdef',
        isTaproot: false,
      });

      // Or use the direct transferBitcoin method
      const txHash2 = await primaryWallet.transferBitcoin({
        amount: '50000',
        toAddress: 'sp1recipient123456789abcdef',
        isTaproot: true,
      });
    }
  };

  const handleSendTokens = async () => {
    if (primaryWallet instanceof SparkWallet) {
      const txHash = await primaryWallet.transferTokens({
        tokenPublicKey: 'token123',
        receiverSparkAddress: 'sp1recipient123456789abcdef',
        tokenAmount: 1000,
        isTaproot: false,
      });
    }
  };

  return (
    <div>
      <button onClick={handleSendBitcoin}>Send Bitcoin</button>
      <button onClick={handleSendTokens}>Send Tokens</button>
    </div>
  );
}
```

### 自定义连接符执行

要添加对新 Spark 钱包的支持 :

```typescript
import { SparkWalletConnector } from '@dynamic-labs/spark';

export class YourSparkConnector extends SparkWalletConnector {
  override name = 'Your Spark Wallet';
  override overrideKey = 'yourspark';

  public override getProvider(): ISparkProvider | undefined {
    return window.yourProvider;
  }
}
```

### 类型检查

使用 `isSparkWallet` 用 Spark 钱包安全工作的类型守护 :

```typescript
import { isSparkWallet } from '@dynamic-labs/spark';

function handleWallet(wallet: Wallet) {
  if (isSparkWallet(wallet)) {
    // TypeScript now knows this is a SparkWallet
    wallet.transferBitcoin({
      amount: '100000',
      toAddress: 'sp1recipient123456789abcdef',
    });
  }
}
```

## 测试

### 运行测试

```bash
npx nx test spark
```

### 构建软件包

```bash
npx nx build spark
```

### Demo App 测试

1.  启动演示应用 : `npm run start`
2.  导航到 Spark 钱包区域
3.  测试连接、地址检索和信件签名

## API 参考

### 核心出口

-   `SparkWalletConnectors()` - 工厂函数返回所有可用的连接器
-   `SparkWalletConnector` - 自定义执行的基本类别
-   `SparkWallet` - 带有比特币和代币转让方法的钱包类
-   `ISparkProvider` - 钱包提供者的接口
-   `isSparkWallet` - 火花钱包的护卫类型

### 火花钱包方法

-   `sendBalance(params)` - 发送比特币(别名用于转移比特币)
-   `transferBitcoin(params)` - 把比特币送到火花地址
-   `transferTokens(params)` - 向Spark地址发送信号

### 类型定义

-   `SparkConnectionResult` - 钱包连接的结果
-   `SparkAddressResult` - 地址检索的结果
-   `SparkSignMessageRequest` - 信件签名请求选项
-   `SparkSignatureResult` - 消息签名的结果

## 有关软件包

-   **@ 动态- labs/ sdk- react- core** - 反应SDK核心功能
-   **@ distractive- labs/ wallet- 连接器- 核心** - 基本钱包连接器类
-   **@ 动态数据/ 类型** - 通用类型定义

## 捐款

我们欢迎捐款! 请看我们的 [提供指南](https://github.com/dynamic-labs/dynamic-sdk/blob/main/CONTRIBUTING.md) 详细情况.

### 开发设置

1.  清除仓库
2.  安装依赖性 : `npm install`
3.  运行测试 : `npx nx test spark`
4.  构建软件包 : `npx nx build spark`

### 添加新钱包

1.  创建新的连接器类扩展 `SparkWalletConnector`
2.  执行 `getProvider()` 方法
3.  添加综合测试
4.  更新 `SparkWalletConnectors()` 工厂函数

## 许可证

这个软件包是动态SDK的一部分,并遵循同样的许可证条款. 见 [自由主义](https://github.com/dynamic-labs/dynamic-sdk/blob/main/LICENSE) 详细情况.

## ++ 辅助

-   **文档**数字 : [维基文库中相关的原始文献: 通訊通訊通訊通訊通訊通訊通訊通訊通報](https://docs.dynamic.xyz/)
-   **GitHub 问题**数字 : [报告错误或请求特性](https://github.com/dynamic-labs/dynamic-sdk/issues)
-   **解析器**数字 : [加入我们的社区](https://discord.gg/dynamic)

* * *

**由动态实验室团队建造**

## 常见问题

### @dynamic-labs/spark 是什么？

对您网站执行钱包网络3认证和授权的 SDK 反应 \.

### 如何安装 @dynamic-labs/spark？

在项目目录运行 npm install @dynamic-labs/spark，或使用 pnpm add / yarn add / bun add。

### @dynamic-labs/spark 支持 TypeScript 吗？

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

### @dynamic-labs/spark 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @dynamic-labs/spark 可以商用吗？

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

### @dynamic-labs/spark 的下载量有多少？

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

### @dynamic-labs/spark 还在维护吗？

最新版本 5\.16\.1 发布于 2026/11/13（今天）；至今共发布 216 个版本，其中过去 12 个月发布了 179 个；首次发布于 2025/09/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

