Erstellen einer Testnet-Bitcoin-Transaktion mit bitcoinjs-lib

Ich versuche, eine einfache Bitcoin-Testnet-Transaktion mit dem npm-Modul bitcoinjs-lib einzurichten. Es scheint, als würde ich die Transaktion korrekt erstellen und ich erhalte den Hex-Code, aber ich glaube, ich kann meine Transaktion aus irgendeinem Grund nicht übertragen. Hier ist mein Code:

const address_1 = 'mzMVV43nRcdGdL9D6xuMez2GkHq8oN1965'; //balance: 130281960 satoshi
const address_2 = 'moCytanji9FNUsDJWVeDGdEFxtGT5psHM6'; //balance: 0 satoshi

const input = {
  sender_prev_txid: 'efc912c7ea9b6eafe129c5fcc64c76d8adc87120bf09196e56c39ced84e6eb36'
};

const output = {
  address: address_2,
  satoshi: 130200000
};

const createTestnetTransaction = (wif, input, output) => {
  const transaction = new bitcoin.TransactionBuilder(bitcoin.networks.testnet);
  const sender = bitcoin.ECPair.fromWIF(wif, bitcoin.networks.testnet);

  transaction.setVersion(1);
  transaction.addInput(input.sender_prev_txid, 0);
  transaction.addOutput(output.address, output.satoshi);
  transaction.sign(0, sender);
  console.log(transaction.build().toHex());
};

createTestnetTransaction(wif_1, input, output);

Verwenden Sie den folgenden Hex-Code:

010000000136ebe684ed9cc3566e1909bf2071c8add8764cc6fcc529e1af6e9beac712c9ef000000006b483045022100ce67916a053e94faf940e81ae665fc81daae226d1a70e7a5bc82adac302a290802207b564151889dd22b9e755297ca502b06f1345106296379762daeae2ac46d0af301210226a0c89db3a526fc5751606bf2592bd1477a4ac0d95616a4dd6b01ba65080a96ffffffff01c0b1c207000000001976a914545ad9c5df8da219b16f8c844498090aa88a764c88ac00000000

Ich erhalte die Fehlermeldung: „Fehler beim Validieren der Transaktion: Transaktion efc912c7ea9b6eafe129c5fcc64c76d8adc87120bf09196e56c39ced84e6eb36 referenziert durch Eingabe 0 von a7f8e0b48c77b5c192f301d655dffcedee1bd8aac2a5a258bb95 wurde bereits ausgegeben.204ff75“

Wenn mir jemand aufzeigen könnte, was ich falsch mache, und mir helfen könnte, die Transaktion abzuschließen, wäre das großartig, danke!

Antworten (1)

Die Eingabe, die Sie auszugeben versuchen, scheint vout 1 im tx zu sein .

Ihr aktueller Code versucht, vout 0 auszugeben, was bereits ausgegeben wurde. Versuchen Sie, transaction.addInput(input.sender_prev_txid, 0);zu wechselntransaction.addInput(input.sender_prev_txid, 1);