Testnet
測試網地址在資源管理器中失敗
我已經生成了一個這樣的測試網地址:
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