首先,我使用 BIP32 和助记符创建高清电子钱包。
现在,我想为每次接收使用 xpub 和 xpriv 使用私钥生成新的子地址。
然后,例如,我在2个子地址(即3 BTC和2 BTC)中收到了BTC。
现在,我必须向某人发送4个BTC,然后我必须在 utxo 的另一个帐户中以3个BTC的方式发送它。
如何管理这些帐户和交易,以及如何向用户显示总余额?
因此,我不知道如何使用 bitcoinjs-lib BIP32来实现此功能。
答案 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。