From 24040f49b2cbd25791ee28a143a6908b932214ac Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Tue, 4 Jun 2019 18:16:28 +0700 Subject: [PATCH] Test there is no data loss when going from toPsbt() => fromPsbt() --- test/fixtures/transaction.json | 1 + test/transaction.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/test/fixtures/transaction.json b/test/fixtures/transaction.json index 0ff4aca..26bef80 100644 --- a/test/fixtures/transaction.json +++ b/test/fixtures/transaction.json @@ -2,6 +2,7 @@ "valid": [ { "description": "Standard unsigned transaction (1:2)", + "incomplete": true, "id": "af2cac1e0e33d896d9d0751d66fcb2fa54b737c7a13199281fb57e4f497bb652", "hash": "52b67b494f7eb51f289931a1c737b754fab2fc661d75d0d996d8330e1eac2caf", "hex": "0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf60000000000feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e1300", diff --git a/test/transaction.js b/test/transaction.js index e20c309..dbb70c6 100644 --- a/test/transaction.js +++ b/test/transaction.js @@ -3,6 +3,7 @@ const assert = require('assert') const bscript = require('../src/script') const fixtures = require('./fixtures/transaction') const Transaction = require('..').Transaction +const TransactionBuilder = require('..').TransactionBuilder describe('Transaction', () => { function fromRaw (raw, noWitness) { @@ -128,6 +129,14 @@ describe('Transaction', () => { const actual = fromRaw(f.raw, true) assert.strictEqual(actual.toPsbt(), f.psbt) }) + + it('doesn\'t loose transaction data when cycling through toPsbt() => fromPsbt(), with: ' + f.description + ' (' + f.id + ')', () => { + const tx = fromRaw(f.raw, true) + const psbt = tx.toPsbt() + const txbFromPsbt = TransactionBuilder.fromPsbt(Buffer.from(psbt, 'hex')) + const txFromPsbt = f.incomplete ? txbFromPsbt.buildIncomplete() : txbFromPsbt.build() + assert.strictEqual(tx.toHex(), txFromPsbt.toHex()) + }) }) })