【问题标题】:How to send & receive bitcoin using bitcoinjs-lib?如何使用 bitcoinjs-lib 发送和接收比特币?
【发布时间】:2019-11-23 19:21:15
【问题描述】:

首先我使用助记符使用BIP32创建HD Wallet。

现在我想为每次接收使用 xpubxpriv 生成带有私钥的新子地址。

然后,例如,我在 2 个子地址中收到了 BTC,即 3 BTC 和 2 BTC。

现在,我必须向某人发送 4 个 BTC,那么我如何发送它,因为我有 3 个 BTC,但在 utxo 的单独帐户中。

我如何管理这些账户和交易,以及如何向用户显示总余额?

所以,我不知道如何使用 bitcoinjs-lib、BIP32 来实现。

【问题讨论】:

    标签: javascript node.js blockchain bitcoin bitcoinjs-lib


    【解决方案1】:

    创建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 不会为你做这些,它为你提供原始的构建块来创建你自己的钱包应用程序。

    为了花费两个地址的输出,您必须从数据库中获取未花费的输出,并使用您创建的密钥创建交易和签名。有关更多示例,请参阅README

    【讨论】:

    猜你喜欢
    • 2017-05-31
    • 2017-05-03
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    相关资源
    最近更新 更多