Testnet

測試網地址在資源管理器中失敗

  • January 9, 2020

我已經生成了一個這樣的測試網地址:

const btc = require('bitcoinjs-lib');
const bip32 = require('bip32');
const bip39 = require('bip39');

var root = bip32.fromSeed(
   bip39.mnemonicToSeedSync('my-twelve-word-seed...'), 
   btc.networks.testnet
);
var pubkey = root.derivePath("m/44'/1'/0'/0/0").publicKey;
console.log(btc.payments.p2pkh({pubkey}).address);

對於我的麻煩,我最終得到了這個值:14kwGTShacA5hT4uAes7dkNvreuHXuRRf7

但是,當我使用 BlockCypher(或 Blockchain.com 或其他瀏覽器)對其進行測試時,它似乎無法辨識它:

curl https://api.blockcypher.com/v1/btc/test3/addrs/14kwGTShacA5hT4uAes7dkNvreuHXuRRf7/balance

產量

{“錯誤”:“地址 14kwGTShacA5hT4uAes7dkNvreuHXuRRf7 與目前區塊鏈不兼容:BTC.test3”}

請注意,根據 BIP44,測試網硬幣的派生路徑是m/44'/1'm/44/0'主網的

那麼這裡有什麼問題呢?

你在正確的軌道上。地址派生正確,只是沒有用正確的版本編碼。

您還需要將 testnet 網路版本添加到btc.payments.p2pkh呼叫中。

像這樣的東西應該​​工作:

console.log(btc.payments.p2pkh({pubkey, network: btc.networks.testnet}).address);

然後地址應該以m...而不是開頭1...

有關可用參數的更多資訊,請參見:https ://github.com/bitcoinjs/bitcoinjs-lib/blob/master/src/payments/p2pkh.js

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