|
1 | 1 | import * as assert from 'assert'; |
2 | 2 |
|
3 | | -import { getDefaultXPubs, getDescriptor } from '../descriptor.utils'; |
| 3 | +import { DescriptorTemplate, getDefaultXPubs, getDescriptor } from '../descriptor.utils'; |
4 | 4 | import { findDescriptorForInput, findDescriptorForOutput } from '../../../../src/core/descriptor/psbt/findDescriptors'; |
5 | 5 |
|
6 | 6 | import { mockPsbt } from './mock.utils'; |
7 | 7 |
|
8 | | -describe('parsePsbt', function () { |
9 | | - const descriptorA = getDescriptor('Wsh2Of3', getDefaultXPubs('a')); |
10 | | - const descriptorB = getDescriptor('Wsh2Of3', getDefaultXPubs('b')); |
11 | | - const descriptorMap = new Map([ |
12 | | - ['a', descriptorA], |
13 | | - ['b', descriptorB], |
14 | | - ]); |
| 8 | +function describeWithTemplates(tA: DescriptorTemplate, tB: DescriptorTemplate) { |
| 9 | + describe(`parsePsbt [${tA},${tB}]`, function () { |
| 10 | + const descriptorA = getDescriptor(tA, getDefaultXPubs('a')); |
| 11 | + const descriptorB = getDescriptor(tB, getDefaultXPubs('b')); |
| 12 | + const descriptorMap = new Map([ |
| 13 | + ['a', descriptorA], |
| 14 | + ['b', descriptorB], |
| 15 | + ]); |
15 | 16 |
|
16 | | - it('finds descriptors for PSBT inputs/outputs', function () { |
17 | | - const psbt = mockPsbt( |
18 | | - [ |
19 | | - { descriptor: descriptorA, index: 0 }, |
20 | | - { descriptor: descriptorB, index: 1, id: { vout: 1 } }, |
21 | | - ], |
22 | | - [{ descriptor: descriptorA, index: 2, value: BigInt(1e6) }] |
23 | | - ); |
| 17 | + it('finds descriptors for PSBT inputs/outputs', function () { |
| 18 | + const psbt = mockPsbt( |
| 19 | + [ |
| 20 | + { descriptor: descriptorA, index: 0 }, |
| 21 | + { descriptor: descriptorB, index: 1, id: { vout: 1 } }, |
| 22 | + ], |
| 23 | + [{ descriptor: descriptorA, index: 2, value: BigInt(1e6) }] |
| 24 | + ); |
24 | 25 |
|
25 | | - assert.deepStrictEqual(findDescriptorForInput(psbt.data.inputs[0], descriptorMap), { |
26 | | - descriptor: descriptorA, |
27 | | - index: 0, |
28 | | - }); |
29 | | - assert.deepStrictEqual(findDescriptorForInput(psbt.data.inputs[1], descriptorMap), { |
30 | | - descriptor: descriptorB, |
31 | | - index: 1, |
32 | | - }); |
33 | | - assert.deepStrictEqual(findDescriptorForOutput(psbt.txOutputs[0].script, psbt.data.outputs[0], descriptorMap), { |
34 | | - descriptor: descriptorA, |
35 | | - index: 2, |
| 26 | + assert.deepStrictEqual(findDescriptorForInput(psbt.data.inputs[0], descriptorMap), { |
| 27 | + descriptor: descriptorA, |
| 28 | + index: 0, |
| 29 | + }); |
| 30 | + assert.deepStrictEqual(findDescriptorForInput(psbt.data.inputs[1], descriptorMap), { |
| 31 | + descriptor: descriptorB, |
| 32 | + index: 1, |
| 33 | + }); |
| 34 | + assert.deepStrictEqual(findDescriptorForOutput(psbt.txOutputs[0].script, psbt.data.outputs[0], descriptorMap), { |
| 35 | + descriptor: descriptorA, |
| 36 | + index: 2, |
| 37 | + }); |
36 | 38 | }); |
37 | 39 | }); |
38 | | -}); |
| 40 | +} |
| 41 | + |
| 42 | +describeWithTemplates('Wsh2Of3', 'Wsh2Of3'); |
| 43 | +describeWithTemplates('Wsh2Of3', 'Tr2Of3-NoKeyPath'); |
0 commit comments