недопустимый префикс с bitcoinjs -lib - PullRequest
0 голосов
/ 02 августа 2020

У меня есть этот код:

var bitcoin = require('bitcoinjs-lib')

var testnet=bitcoin.networks.testnet;
var bitcoin = require('bitcoinjs-lib')
var privateKey = 'cV1hT8dqY6T3UnFjKk883N3nr895JeBVFjMMqi6VbPgDZyfVfzAF'
var keyPair = bitcoin.ECPair.fromWIF(privateKey, testnet);
const RawTransaction = new bitcoin.Psbt(testnet)
RawTransaction.addInput({hash:'9412f5e46f63a65ae140d36cbe6fe137e7f6b047759a8487a73abd5f25727bff', index:0})
RawTransaction.addOutput({address:'tb1q8selj8yz0yh79esajd77x3r6ea5q0vf8svjev4', value:0.00001})


RawTransaction.sign(0, keyPair)
    
var Transaction = RawTransaction.build().toHex();
console.log(Transaction)

У меня такая ошибка:

Error: tb1q8selj8yz0yh79esajd77x3r6ea5q0vf8svjev4 has an invalid prefix

Я не понимаю, что случилось. Адрес назначения генерируется кошельком Electrum и кажется правильным. Я использую tes tnet.

1 Ответ

0 голосов
/ 04 августа 2020

Вот код , проверяющий адрес:

if (decodeBech32.prefix !== network.bech32)
    throw new Error(address + ' has an invalid prefix');

По умолчанию библиотека использует сеть mai nnet, и проверка не выполняется из-за префикса адреса tes tnet.

Попробуйте это:

const RawTransaction = new bitcoin.Psbt({ network: testnet })
...