关于
这个 bdk-wasm 图书馆旨在提供访问优秀的 比特币DevKit (以及任何支持WebAssembly的设备).
它专门编译BDK wasm32-unknown-unknown 目标与使用 wasm-bindgen 以创建 TypeScript 绑定.
这回波处理包装和出版 bdk-wallet-web (用于浏览器)和 bdk-wallet-node (针对节点.js)国家防范机制一揽子计划,使用 wasm-pack。 。 。 .
此库提供所有想要的功能, 用于在框外构建比特币钱包 :
- UTXO 管理系统
- 硬币选择
- 通过同步和扫描链条数据来提升钱包
- Bitcoin在定义支出条件时为灵活性做了描述. 支持从遗产到Taproot的所有地址类型.
- 国家最新情况和持久性
- 交易的创建、签署和广播
- 动态地址
- 还要多得多
关于提供无国籍公用功能的轻量级图书馆,参见 bitcoinjs。 。 。 .
安装
浏览器/网络
yarn add @bitcoindevkit/bdk-wallet-web
节点.js
yarn add @bitcoindevkit/bdk-wallet-node
关于WASM具体考虑因素的说明
[尖叫声] 在WASM中使用BDK有几个限制. 基本上任何需要OS标准库的功能都不直接在WASM中提供. 不过,下面有可行的变通办法。 一些关键限制包括:
- 无法访问文件系统
- 网络访问限于 http(s)
WASM 考虑概述
无法访问文件系统
由于无法直接访问文件系统,持久性无法由BDK直接处理. 相反,在WASM环境中必须使用内存钱包,并且必须使用 wallet.take_staged()。 这将导出钱包状态更新的更改器, 然后必须合并到 JS 的当前钱包状态( 取决于您的持续策略 ) 。 顽固不化 ChangeSet 可以传递给 wallet.load() 以收回钱包.
网络访问限于 http(s)
这基本上意味着库只支持 埃斯波罗拉 作为块链客户端. RPC和Electrum客户端都需要套接字,不会在盒外WASM环境中为BDK工作.
发展环境
所需资源
MacOS 特殊要求
指 本节。 。 。 .
以 wasm-pack build
[大 你需要那个
wasm32-unknown-unknown要安装的工具链 :rustup target add wasm32-unknown-unknown
要构建浏览器/网络:
wasm-pack build --target bundler --features "esplora"
为Node.js建造:
wasm-pack build --target nodejs --all-features
无头浏览器中的测试 wasm-pack test
wasm-pack test --headless --firefox
与
--firefox, (中文(简体) ),--chrome或者说--safari。 。 。 .
许可证
根据其中任何一项颁发的许可证
- Apache 许可证,2.0版本, (自由主义 或者说 https://www.apache.org/licenses/LICENSE-2.0(中文(简体) )
- 麻省理工学院许可证利马 或者说 https://opensource.org/licenses/MIT (中文(简体) )(中文(简体) )
随便你.
捐款
除非你们另有明确声明,否则任何捐款都是有意的 按照Apache-2.0的定义提交供您纳入工作 许可证,应具有上述双重许可证,不附加任何条件 条件.