javascript - 如何使用 bitcoinjs-lib 发送和接收比特币?
问题描述
首先,我使用BIP32使用助记符创建 HD 钱包。
现在我想为每次接收使用xpub和xpriv生成带有私钥的新子地址。
然后,例如,我在 2 个子地址中收到了 BTC,即 3 BTC 和 2 BTC。
现在,我必须将 4 BTC 发送给某人,然后我如何发送它,因为我有 3 BTC 但在一个单独的帐户中使用utxo。
我如何管理这些账户和交易,以及如何向用户显示总余额?
所以,我不知道如何使用bitcoinjs-lib,BIP32 来实现它。
解决方案
创建 2 个地址,例如:
const path = "m/0'/0/0"
const mnemonic = 'praise you muffin lion enable neck grocery crumble super myself license ghost'
const seed = bip39.mnemonicToSeed(mnemonic)
const root = bip32.fromSeed(seed)
const child1 = root.derivePath("m/0'/0")
const child2 = root.derivePath("m/0'/1")
const child1Address = bitcoin.payments.p2pkh({ pubkey: child1.publicKey }).address
const child2Address = bitcoin.payments.p2pkh({ pubkey: child2.publicKey }).address
接下来,为了管理这些账户并向用户显示余额,您必须创建一个使用其地址发生的每笔交易的数据库。这意味着您必须扫描每个区块以查找使用其地址的任何交易并跟踪该交易是否已花费,就像构建区块浏览器一样。Bitcoinjs-lib 不会为您执行此操作,它为您提供创建自己的钱包应用程序的原始构建块。
为了花费两个地址的输出,您必须从数据库中获取未花费的输出,并使用您创建的密钥创建交易和签名。有关更多示例,请参阅自述文件。
推荐阅读
- aes - Python和C中的AES时间有什么区别?
- javascript - 道具在反应中解构
- jquery - ms-access 查询 sql :为每个客户端选择一行
- php - 在 jQuery attr 中使用 wp_localize_script 图像路径
- python - 按会话匹配一个 Python 列表中的项目
- laravel - 使用带有不同列名的 whereIn (Eloquent)
- javascript - 如何使用这个 json
- autodesk-forge - 关闭剖面视图中的阴影/阴影功能
- javascript - 如何在 html 脚本标签之间导入请求模块?
- swift - 保持计时器和位置在后台 Swift 中运行