Javascript

Bitcoinja-lib。bitcoin.payments 為空

  • December 3, 2021

我使用命令安裝了 bitcoinjs-lib:meteor npm install bitcoinjs-lib。安裝命令“flow-typed install -f 0.27 bitcoinjs-lib@2.2.0”不起作用。不知道什麼是流類型以及它的影響。

這是我正在執行的程式碼:

 import bip39 from 'bip39';
 import bip32 from 'bip32';
 import crypto from 'crypto';
 import bitcoin from 'bitcoinjs-lib';
 let randomBytes = crypto.randomBytes(32);
 this.mnemonic = "praise you muffin lion enable neck grocery crumble super myself license ghost"; //bip39.entropyToMnemonic(randomBytes.toString('hex'))
 this.seed = bip39.mnemonicToSeed(this.mnemonic); 
 console.log("seed:", bip39.mnemonicToSeed(this.mnemonic));

 let bitcoinNetwork = bitcoin.networks.bitcoin;
 var hdMaster = bip32.fromSeed(this.seed, bitcoinNetwork);

 const path = "m/0'/0/0";
 const child1 = hdMaster.derivePath(path);
 const { address } = bitcoin.payments.p2sh({
   redeem: bitcoin.payments.p2wpkh({ pubkey: child.publicKey, network: bitcoinNetwork }),
   network: bitcoinNetwork
 })
 console.log("address: ", address);

不幸的是 bitcoin.payments 是未定義的。bitcoin.networks.bitcoin 工作正常。

為什麼付款未定義?謝謝。

由於某種原因,安裝的 bitcoinjs-lib 沒有包含整個支付文件夾。我粘貼了它,然後我修改了 index.js 以包含它,現在它可以工作了。我不明白為什麼安裝會出錯。

原因是您使用的是 2.2.0 版本,並且payments是版本 4 中新添加的功能

引用自:https://bitcoin.stackexchange.com/questions/77168