如何使用bitcoinjs-lib发送和接收比特币?

时间:2019-07-15 05:47:26

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

首先,我使用 BIP32 助记符创建高清电子钱包。

现在,我想为每次接收使用 xpub xpriv 使用私钥生成新的子地址。

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

现在,我必须向某人发送4个BTC,然后我必须在 utxo 的另一个帐户中以3个BTC的方式发送它。

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

因此,我不知道如何使用 bitcoinjs-lib BIP32来实现此功能。

1 个答案:

答案 0 :(得分:0)

要创建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