@dynamic-labs/spark

中文文档
5.16.1发布于 2026/11/13MITTypeScriptESM + CJS近 30 天下载 4832

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

中文使用文档
文档目录25 节
  1. 特征
  2. 安装
  3. 建筑
  4. 基础连接器类
  5. 提供者接口
  6. ++ 支持的网络
  7. 使用量
  8. 基本融合
  9. 使用 SparkWallet
  10. 自定义连接符执行
  11. 类型检查
  12. 测试
  13. 运行测试
  14. 构建软件包
  15. Demo App 测试
  16. API 参考
  17. 核心出口
  18. 火花钱包方法
  19. 类型定义
  20. 有关软件包
  21. 捐款
  22. 开发设置
  23. 添加新钱包
  24. 许可证
  25. ++ 辅助

@ difficial- labs/ spark (英语)

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

特征

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

安装

npm install @dynamic-labs/spark

建筑

基础连接器类

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

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

提供者接口

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

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. 空间

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

使用量

基本融合

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

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 钱包的支持 :

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 钱包安全工作的类型守护 :

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',
    });
  }
}

测试

运行测试

npx nx test spark

构建软件包

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- 连接器- 核心 - 基本钱包连接器类
  • @ 动态数据/ 类型 - 通用类型定义

捐款

我们欢迎捐款! 请看我们的 提供指南 详细情况.

开发设置

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

添加新钱包

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

许可证

这个软件包是动态SDK的一部分,并遵循同样的许可证条款. 见 自由主义 详细情况.

++ 辅助


由动态实验室团队建造

版本与发布记录

@dynamic-labs/spark 共发布 216 个版本,首次发布于 2025/09/03;过去 12 个月发布了 179 个版本。

版本发布日期距今
5.16.1latest2026/11/13今天
5.16.02026/11/112 天前
5.15.12026/11/103 天前
5.15.02026/11/103 天前
4.104.0v4-lts2026/11/0310 天前
5.14.02026/10/3013 天前

其他发布通道:alpha → 4.83.2-alpha.0,rc → 5.0.0-rc.4,v4-lts → 4.104.0。

关于 @dynamic-labs/spark 的常见问题

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