@babylonlabs-io/ts-sdk (英语)
无信任比特币跳伞的脚本 SDK 类型
概览
巴比伦TypeScript SDK是将无信比特币跳伞整合到您的应用程序中的工具包. 它提供金库生命周期管理(peg-in,激活,退款,支付签名)和上建的应用程序集成,从Aave v4开始.
什么是无信的比特币断层?
无信的比特币沃特斯(TBV)允许您锁定比特币并在支持的链上(如出借协议)的应用中使用而无需放弃监管. 金库协议允许:
这个SDK处理复杂的比特币和埃特鲁姆相互作用来创建和管理这些金库.
关键特性
- 空洞管理 - 破损制造(Pegin)、保险库救赎(Pegout)和保险库生命周期业务
- QQ 应用程序集成 - 从Aave(DeFi贷款)开始的预建集成
- 框架不可知论 - 与React、Vue、Angular、Node.js或香草JavaScript合作
- QQ 类型安全 - 具有全部IDE支持的全面类型脚本
- 模块设计 - 仅通过子路径输出使用您需要的东西
- * 广泛 - 易于建立定制一体化
平台
这个SDK运行 无论是Node.js后端还是浏览器/反应前端 - 那个
整个库都是框架不可知的。 这个 仅限 两者之间的差别
环境是您如何提供两个东西: 比特币钱包和伊特鲁姆
钱包。 SDK提供接口(BitcoinWallet维埃姆的 WalletClient(中文(简体) )
并调整平台上可用的钱包.
| 关切 | 节点.js后端 | 浏览器/ 反应 |
|---|---|---|
BitcoinWallet | 从种子通过 bitcoinjs-lib + 键 bip32 (或称KMS/HSM) | 调整一个被注入的钱包( Unisat, OKX, Xverse, 皮革) |
维姆 WalletClient | createWalletClient({ account: privateKeyToAccount(pk), chain, transport: http(RPC_URL) }) | createWalletClient({ account, chain, transport: custom(window.ethereum) }) 通过wagmi |
| 秘密存储 | 您的 DB / KMS( 稍后需要激活) | 会话/本地存储或用户提供 |
| 正在装入 | 自动( SDK 读取) .wasm 关闭磁盘 node:fs(中文(简体) ) | 自动( SDK 获取) .wasm 通过捆绑) |
如果您使用捆绑器( Vite, webpack, Next.js),请确保配置到
控件 .wasm 资产和资产 Buffer 可在全球浏览器中查阅
目标——见 解决问题指南。 。 。 .
安装
所需资源
- 节点.js 20.3.0 ——支持的基线. 工作在节点20 LTS,22 LTS,24 LTS上.
- 软件包管理器: npm、 纱线或 pnpm
安装
viem ^2.38.2 是唯一需要的对等方。 只有Etereum 消费者安装
sDK和Viem: (英语)
pnpm add @babylonlabs-io/ts-sdk viem
比特币同行是可选的. 在您面前添加他们支持的精确版本 导入根或比特币条目 :
pnpm add [email protected] @bitcoin-js/[email protected]
WASM引擎也是可选的. 仅用于比特币建造和 签名路径 :
pnpm add @babylonlabs-io/babylon-tbv-rust-wasm
源代码表使用 workspace:* 为WASM对等。 释放过程
取而代之的是发行排练中使用的确切引擎版本.
loadRawTbvWasm() 删除
使用守卫的建筑工 @babylonlabs-io/ts-sdk/tbv/core/primitives。 。 。 .
升级 @babylonlabs-io/babylon-tbv-rust-wasm 还有这个SDK 发动机
第0.1.7-0.19.0号决定 /raw 输入, 不导出分类
从包根。 有了这些释放之一, buildRefundPsbt() 失败.
如果你需要低级班,打电话 loadTbvWasm() 从
@babylonlabs-io/ts-sdk/tbv/core/wasm它返回初始化引擎
模块。 检查一下"WASM级"
@babylonlabs-io/babylon-tbv-rust-wasm 读取我描述.
ECC 库初始化(仅Bitcoin流量)
仅限ETH的消费者不需要ECC图书馆. 如果您的应用程序使用
SDK的比特币/塔普罗特操作,呼叫 initEccLib() 一次 在SDK呼叫之前
创建 PSBT 或获取比特币地址数字 :
import * as ecc from "@bitcoin-js/tiny-secp256k1-asmjs";
import { initEccLib } from "bitcoinjs-lib";
initEccLib(ecc);
- 节点.js:请在您的切入点上方拨打此选项(
index.ts/CLI条目). - 反应: 调用它
main.tsx编号 :app.tsx在此之前createRoot()。 。 。 .
未初始化产生运行时间错误 : "No ECC Library provided"。 。 。 .
内部使用的WASM软件包(@babylonlabs-io/babylon-tbv-rust-wasm(中文(简体) )
草率地初始化——不需要额外呼叫.
验证安装
import { buildPrePeginPsbt } from "@babylonlabs-io/ts-sdk/tbv/core/primitives";
console.log("✅ SDK installed successfully!");
console.log("buildPrePeginPsbt type:", typeof buildPrePeginPsbt);
运行方式 : npx tsx verify-install.ts
找麻烦? 见 解决问题指南 用于缓冲多填充、WASM设置和捆绑器配置.
软件包结构
SDK使用子路径导出硬依赖边界以及
树摇. 仅 EH 代码应导入专用 /eth 条目相对
宽相容管:
// High-level managers (recommended for most users)
import { PeginManager, PayoutManager } from "@babylonlabs-io/ts-sdk/tbv/core";
// Ethereum-only readers and prepared peg-in registration (no BTC wallet,
// bitcoinjs-lib, tiny-secp256k1, or WASM required)
import {
ViemProtocolParamsReader,
ViemVaultRegistryReader,
ViemPeginRegistrationClient,
} from "@babylonlabs-io/ts-sdk/tbv/core/clients/eth";
// Ethereum-only transaction receipt helper
import { waitForTransactionReceiptSmartAware } from "@babylonlabs-io/ts-sdk/tbv/core/utils/eth";
// Unauthenticated VP polling without the Bitcoin-auth implementation
import {
VaultProviderRpcClient,
batchPollByProvider,
DaemonStatus,
} from "@babylonlabs-io/ts-sdk/tbv/core/clients/vault-provider/status";
// Mempool reads without bitcoinjs-lib, tiny-secp256k1, or WASM
import { getTxInfo } from "@babylonlabs-io/ts-sdk/tbv/core/clients/mempool";
// Low-level primitives (advanced use cases)
import {
buildPrePeginPsbt,
buildPeginTxFromFundedPrePegin,
buildPayoutPsbt,
buildNoPayoutPsbt,
buildChallengeAssertPsbt,
buildRefundPsbt,
formatSatoshisToBtc,
} from "@babylonlabs-io/ts-sdk/tbv/core/primitives";
// Services (activation, deposit validation, protocol state)
import {
activateVault,
getPeginProtocolState,
ContractStatus,
validateDepositAmount,
isPegoutTerminalStatus,
} from "@babylonlabs-io/ts-sdk/tbv/core/services";
// Utilities
import {
selectUtxosForPegin,
validateUtxosAvailable,
} from "@babylonlabs-io/ts-sdk/tbv/core";
// Shared wallet interfaces
import { BitcoinWallet } from "@babylonlabs-io/ts-sdk/shared";
// UTXO type lives in the core utils module
import { UTXO } from "@babylonlabs-io/ts-sdk/tbv/core";
// Contract ABIs (also dependency-clean for ETH consumers)
import { BTCVaultRegistryABI } from "@babylonlabs-io/ts-sdk/tbv/core/contracts";
// Protocol integrations (Aave)
import {
buildBorrowTx,
buildRepayTx,
getUserAccountData,
calculateHealthFactor,
} from "@babylonlabs-io/ts-sdk/tbv/integrations/aave";
ViemPeginRegistrationClient 只拥有 Ethereum 提交文件的一半
佩克内。 它接受一个签名的PegIn交易,PoP,
depositorPayoutScriptPubKey,以及 depositorBtcPubkeyRaw 提前准备。 这个
从来没有要求一个 BTC 钱包。 以原始密钥验证支付脚本
在任何合同读取或钱包呼叫之前, 使用 PoP 键. PeginManager (单位:千美元)
在代表ETH客户端之前, 请检查钱包地址 .
从哪里开始
SDK暴露出几个同行切入点—— 管理人员, (中文(简体) ), 服务, (中文(简体) ), 原始人, (中文(简体) ), 倾斜, (中文(简体) ), 客户,以及 整合 -你来作你需要的作品 新一体化的两个最常见的起点是:
管理人员(高级别)
- 什麽: 用于完整金库工作流程的预建钱包管弦
- 最好还是: Web 应用程序,浏览器钱包(MetaMask, Unisat)
- 你提供: 钱包接口
- SDK 手柄: 交易大楼、签署协调、合同呼叫
初级( 低等, 高级)
- 什麽: 用于构建 Bitcoin PSBT 的纯函数
- 最好还是:后端服务,自定义签名(KMS/HSM),全控
- 你提供:一切(签名逻辑,合同电话,广播)
- SDK 手柄: 仅具有PSBT建设和公用事业功能
对于如何 services, (中文(简体) ), utils, (中文(简体) ), clients,以及 integrations 符合和属于哪个层次的任务,读取 开始 向导.
文档
从这里开始
- 开始 ——5分钟取向:什么是TBV,SDK的地层布局,先决条件,配置来源,词汇表,地库寿命周期,以及决定表将你引向正确的快速启动. 如果你是新来的,先读这个.
QQ 快速启动
分步辅导:
指南
- 钱包接口 - 将任何BTC/ETH钱包(浏览器、节点、KMS/HSM)适用于SDK的接口
QQ 应用程序集成
在 DeFi 协议和应用程序中使用 BTC 金库 :
- 保存 v4 - 利用金库作为抵押贷款资产
API 参考
使用 TSDoc 注释自动生成 类型文件数字 :
- API 参考 - 完成自动生成的API文档
* 解决问题
- 解决问题指南 - 共同问题和解决办法