@bitgo-beta/abstract-utxo 1.6.1-alpha.258 → 1.6.1-alpha.259

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/package.json +10 -7
  2. package/.eslintignore +0 -5
  3. package/.eslintrc.js +0 -6
  4. package/CHANGELOG.md +0 -1222
  5. package/dist/test/core/descriptor/descriptor.utils.d.ts +0 -11
  6. package/dist/test/core/descriptor/descriptor.utils.d.ts.map +0 -1
  7. package/dist/test/core/descriptor/descriptor.utils.js +0 -63
  8. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts +0 -2
  9. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts.map +0 -1
  10. package/dist/test/core/descriptor/psbt/VirtualSize.js +0 -78
  11. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts +0 -2
  12. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts.map +0 -1
  13. package/dist/test/core/descriptor/psbt/assertSatisfiable.js +0 -56
  14. package/dist/test/core/descriptor/psbt/createPsbt.d.ts +0 -2
  15. package/dist/test/core/descriptor/psbt/createPsbt.d.ts.map +0 -1
  16. package/dist/test/core/descriptor/psbt/createPsbt.js +0 -85
  17. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts +0 -2
  18. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts.map +0 -1
  19. package/dist/test/core/descriptor/psbt/findDescriptors.js +0 -66
  20. package/dist/test/core/descriptor/psbt/mock.utils.d.ts +0 -34
  21. package/dist/test/core/descriptor/psbt/mock.utils.d.ts.map +0 -1
  22. package/dist/test/core/descriptor/psbt/mock.utils.js +0 -87
  23. package/dist/test/core/descriptor/psbt/parse.d.ts +0 -2
  24. package/dist/test/core/descriptor/psbt/parse.d.ts.map +0 -1
  25. package/dist/test/core/descriptor/psbt/parse.js +0 -32
  26. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts +0 -4
  27. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts.map +0 -1
  28. package/dist/test/core/descriptor/psbt/psbt.utils.js +0 -20
  29. package/dist/test/core/fixtures.utils.d.ts +0 -15
  30. package/dist/test/core/fixtures.utils.d.ts.map +0 -1
  31. package/dist/test/core/fixtures.utils.js +0 -114
  32. package/dist/test/core/key.utils.d.ts +0 -16
  33. package/dist/test/core/key.utils.d.ts.map +0 -1
  34. package/dist/test/core/key.utils.js +0 -59
  35. package/dist/test/core/toPlainObject.utils.d.ts +0 -11
  36. package/dist/test/core/toPlainObject.utils.d.ts.map +0 -1
  37. package/dist/test/core/toPlainObject.utils.js +0 -75
  38. package/dist/test/descriptor/NamedDescriptor.d.ts +0 -2
  39. package/dist/test/descriptor/NamedDescriptor.d.ts.map +0 -1
  40. package/dist/test/descriptor/NamedDescriptor.js +0 -19
  41. package/dist/test/descriptor/builder.d.ts +0 -2
  42. package/dist/test/descriptor/builder.d.ts.map +0 -1
  43. package/dist/test/descriptor/builder.js +0 -72
  44. package/dist/test/descriptor/createWallet/createDescriptors.d.ts +0 -2
  45. package/dist/test/descriptor/createWallet/createDescriptors.d.ts.map +0 -1
  46. package/dist/test/descriptor/createWallet/createDescriptors.js +0 -21
  47. package/dist/test/descriptor/descriptorWallet.d.ts +0 -2
  48. package/dist/test/descriptor/descriptorWallet.d.ts.map +0 -1
  49. package/dist/test/descriptor/descriptorWallet.js +0 -28
  50. package/dist/test/offlineVault/halfSigned.d.ts +0 -2
  51. package/dist/test/offlineVault/halfSigned.d.ts.map +0 -1
  52. package/dist/test/offlineVault/halfSigned.js +0 -124
  53. package/dist/test/transaction/descriptor/explainPsbt.d.ts +0 -2
  54. package/dist/test/transaction/descriptor/explainPsbt.d.ts.map +0 -1
  55. package/dist/test/transaction/descriptor/explainPsbt.js +0 -29
  56. package/dist/test/transaction/descriptor/fixtures.utils.d.ts +0 -6
  57. package/dist/test/transaction/descriptor/fixtures.utils.d.ts.map +0 -1
  58. package/dist/test/transaction/descriptor/fixtures.utils.js +0 -17
  59. package/dist/test/transaction/descriptor/outputDifference.d.ts +0 -2
  60. package/dist/test/transaction/descriptor/outputDifference.d.ts.map +0 -1
  61. package/dist/test/transaction/descriptor/outputDifference.js +0 -76
  62. package/dist/test/transaction/descriptor/parse.d.ts +0 -2
  63. package/dist/test/transaction/descriptor/parse.d.ts.map +0 -1
  64. package/dist/test/transaction/descriptor/parse.js +0 -79
  65. package/dist/test/transaction/descriptor/sign.d.ts +0 -2
  66. package/dist/test/transaction/descriptor/sign.d.ts.map +0 -1
  67. package/dist/test/transaction/descriptor/sign.js +0 -33
  68. package/dist/test/transaction/descriptor/validatePolicy.d.ts +0 -2
  69. package/dist/test/transaction/descriptor/validatePolicy.d.ts.map +0 -1
  70. package/dist/test/transaction/descriptor/validatePolicy.js +0 -40
  71. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,124 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const fs = __importStar(require("fs"));
40
- const assert_1 = __importDefault(require("assert"));
41
- const crypto_1 = __importDefault(require("crypto"));
42
- const t = __importStar(require("io-ts"));
43
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
44
- const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
45
- const offlineVault_1 = require("../../src/offlineVault");
46
- const descriptor_1 = require("../../src/offlineVault/descriptor");
47
- const fixtures_utils_1 = require("../transaction/descriptor/fixtures.utils");
48
- const { assertEqualFixture } = (0, fixtures_utils_1.getFixtureRoot)(__dirname + '/fixtures');
49
- function getFixturesNames() {
50
- // I'm using sync here because mocha cannot do async setup
51
- // eslint-disable-next-line no-sync
52
- return fs.readdirSync(__dirname + '/fixtures').filter((f) => f.endsWith('.json') && !f.endsWith('.explanation.json'));
53
- }
54
- const KeyPair = t.intersection([t.type({ xpub: t.string }), t.partial({ xprv: t.string })]);
55
- const KeyWithParent = t.intersection([KeyPair, t.partial({ parent: KeyPair })]);
56
- const Fixture = t.type({
57
- walletKeys: t.array(KeyWithParent),
58
- response: t.unknown,
59
- });
60
- async function readFixture(name) {
61
- const data = JSON.parse(await fs.promises.readFile(__dirname + '/fixtures/' + name, 'utf-8'));
62
- return (0, sdk_core_1.decodeOrElse)('Fixture', Fixture, data, (e) => {
63
- throw new Error(`failed to decode fixture ${name}: ${e}`);
64
- });
65
- }
66
- function withRotatedXpubs(tx) {
67
- const { user, backup, bitgo } = tx.xpubsWithDerivationPath;
68
- return {
69
- ...tx,
70
- xpubsWithDerivationPath: {
71
- user: bitgo,
72
- backup: user,
73
- bitgo: backup,
74
- },
75
- };
76
- }
77
- function withRandomXpubs(tx) {
78
- function randomXpub() {
79
- const bytes = crypto_1.default.getRandomValues(new Uint8Array(32));
80
- return utxolib.bip32.fromSeed(Buffer.from(bytes)).neutered().toBase58();
81
- }
82
- return {
83
- ...tx,
84
- xpubsWithDerivationPath: {
85
- user: randomXpub(),
86
- backup: randomXpub(),
87
- bitgo: randomXpub(),
88
- },
89
- };
90
- }
91
- function withoutDescriptors(tx) {
92
- return {
93
- ...tx,
94
- descriptors: [],
95
- };
96
- }
97
- function getDerivationId(v) {
98
- const id = v.user.derivedFromParentWithSeed;
99
- (0, assert_1.default)(id);
100
- return id;
101
- }
102
- function getRootPrv(walletKeys) {
103
- (0, assert_1.default)(walletKeys[0]);
104
- (0, assert_1.default)(walletKeys[0].parent);
105
- (0, assert_1.default)(walletKeys[0].parent.xprv);
106
- return utxolib.bip32.fromBase58(walletKeys[0].parent.xprv);
107
- }
108
- describe('OfflineVaultHalfSigned', function () {
109
- for (const fixtureName of getFixturesNames()) {
110
- it(`can sign fixture ${fixtureName}`, async function () {
111
- const { walletKeys, response } = await readFixture(fixtureName);
112
- (0, assert_1.default)(descriptor_1.DescriptorTransaction.is(response));
113
- const rootPrv = getRootPrv(walletKeys);
114
- const derivationId = getDerivationId(response.xpubsWithDerivationPath);
115
- (0, offlineVault_1.createHalfSigned)('btc', rootPrv, derivationId, response);
116
- const mutations = [withRotatedXpubs(response), withRandomXpubs(response), withoutDescriptors(response)];
117
- for (const mutation of mutations) {
118
- assert_1.default.throws(() => (0, offlineVault_1.createHalfSigned)('btc', rootPrv, derivationId, mutation));
119
- }
120
- await assertEqualFixture(fixtureName.replace(/\.json$/, '.explanation.json'), (0, offlineVault_1.getTransactionExplanation)('btc', response));
121
- });
122
- }
123
- });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFsZlNpZ25lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3Qvb2ZmbGluZVZhdWx0L2hhbGZTaWduZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1Qix5Q0FBMkI7QUFDM0IsbURBQW9EO0FBQ3BELDhEQUFnRDtBQUVoRCx5REFBcUY7QUFDckYsa0VBQTBFO0FBQzFFLDZFQUEwRTtBQUUxRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFBLCtCQUFjLEVBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBRXZFLFNBQVMsZ0JBQWdCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxtQ0FBbUM7SUFDbkMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztBQUN4SCxDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFNUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBR2hGLE1B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QUFXLENBQUMsQ0FBQztZQUNoRSxJQUFBLGdCQUFNLEVBQUMsa0NBQXFCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2RSxJQUFBLCtCQUFnQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sU0FBUyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDeEcsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDakMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSwrQkFBZ0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7WUFDRCxNQUFNLGtCQUFrQixDQUN0QixXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxFQUNuRCxJQUFBLHdDQUF5QixFQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FDM0MsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IGRlY29kZU9yRWxzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBjcmVhdGVIYWxmU2lnbmVkLCBnZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL29mZmxpbmVWYXVsdCc7XG5pbXBvcnQgeyBEZXNjcmlwdG9yVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9zcmMvb2ZmbGluZVZhdWx0L2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZ2V0Rml4dHVyZVJvb3QgfSBmcm9tICcuLi90cmFuc2FjdGlvbi9kZXNjcmlwdG9yL2ZpeHR1cmVzLnV0aWxzJztcblxuY29uc3QgeyBhc3NlcnRFcXVhbEZpeHR1cmUgfSA9IGdldEZpeHR1cmVSb290KF9fZGlybmFtZSArICcvZml4dHVyZXMnKTtcblxuZnVuY3Rpb24gZ2V0Rml4dHVyZXNOYW1lcygpOiBzdHJpbmdbXSB7XG4gIC8vIEknbSB1c2luZyBzeW5jIGhlcmUgYmVjYXVzZSBtb2NoYSBjYW5ub3QgZG8gYXN5bmMgc2V0dXBcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXN5bmNcbiAgcmV0dXJuIGZzLnJlYWRkaXJTeW5jKF9fZGlybmFtZSArICcvZml4dHVyZXMnKS5maWx0ZXIoKGYpID0+IGYuZW5kc1dpdGgoJy5qc29uJykgJiYgIWYuZW5kc1dpdGgoJy5leHBsYW5hdGlvbi5qc29uJykpO1xufVxuXG5jb25zdCBLZXlQYWlyID0gdC5pbnRlcnNlY3Rpb24oW3QudHlwZSh7IHhwdWI6IHQuc3RyaW5nIH0pLCB0LnBhcnRpYWwoeyB4cHJ2OiB0LnN0cmluZyB9KV0pO1xuXG5jb25zdCBLZXlXaXRoUGFyZW50ID0gdC5pbnRlcnNlY3Rpb24oW0tleVBhaXIsIHQucGFydGlhbCh7IHBhcmVudDogS2V5UGFpciB9KV0pO1xudHlwZSBLZXlXaXRoUGFyZW50ID0gdC5UeXBlT2Y8dHlwZW9mIEtleVdpdGhQYXJlbnQ+O1xuXG5jb25zdCBGaXh0dXJlID0gdC50eXBlKHtcbiAgd2FsbGV0S2V5czogdC5hcnJheShLZXlXaXRoUGFyZW50KSxcbiAgcmVzcG9uc2U6IHQudW5rbm93bixcbn0pO1xuXG50eXBlIEZpeHR1cmUgPSB0LlR5cGVPZjx0eXBlb2YgRml4dHVyZT47XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRGaXh0dXJlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8Rml4dHVyZT4ge1xuICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShfX2Rpcm5hbWUgKyAnL2ZpeHR1cmVzLycgKyBuYW1lLCAndXRmLTgnKSk7XG4gIHJldHVybiBkZWNvZGVPckVsc2UoJ0ZpeHR1cmUnLCBGaXh0dXJlLCBkYXRhLCAoZSkgPT4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIGRlY29kZSBmaXh0dXJlICR7bmFtZX06ICR7ZX1gKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdpdGhSb3RhdGVkWHB1YnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbik6IERlc2NyaXB0b3JUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IHsgdXNlciwgYmFja3VwLCBiaXRnbyB9ID0gdHgueHB1YnNXaXRoRGVyaXZhdGlvblBhdGg7XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgeHB1YnNXaXRoRGVyaXZhdGlvblBhdGg6IHtcbiAgICAgIHVzZXI6IGJpdGdvLFxuICAgICAgYmFja3VwOiB1c2VyLFxuICAgICAgYml0Z286IGJhY2t1cCxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRoUmFuZG9tWHB1YnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbikge1xuICBmdW5jdGlvbiByYW5kb21YcHViKCkge1xuICAgIGNvbnN0IGJ5dGVzID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgzMikpO1xuICAgIHJldHVybiB1dHhvbGliLmJpcDMyLmZyb21TZWVkKEJ1ZmZlci5mcm9tKGJ5dGVzKSkubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgeHB1YnNXaXRoRGVyaXZhdGlvblBhdGg6IHtcbiAgICAgIHVzZXI6IHJhbmRvbVhwdWIoKSxcbiAgICAgIGJhY2t1cDogcmFuZG9tWHB1YigpLFxuICAgICAgYml0Z286IHJhbmRvbVhwdWIoKSxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRob3V0RGVzY3JpcHRvcnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbik6IERlc2NyaXB0b3JUcmFuc2FjdGlvbiB7XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgZGVzY3JpcHRvcnM6IFtdLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREZXJpdmF0aW9uSWQodjogRGVzY3JpcHRvclRyYW5zYWN0aW9uWyd4cHVic1dpdGhEZXJpdmF0aW9uUGF0aCddKTogc3RyaW5nIHtcbiAgY29uc3QgaWQgPSB2LnVzZXIuZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZDtcbiAgYXNzZXJ0KGlkKTtcbiAgcmV0dXJuIGlkO1xufVxuXG5mdW5jdGlvbiBnZXRSb290UHJ2KHdhbGxldEtleXM6IEtleVdpdGhQYXJlbnRbXSk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2Uge1xuICBhc3NlcnQod2FsbGV0S2V5c1swXSk7XG4gIGFzc2VydCh3YWxsZXRLZXlzWzBdLnBhcmVudCk7XG4gIGFzc2VydCh3YWxsZXRLZXlzWzBdLnBhcmVudC54cHJ2KTtcbiAgcmV0dXJuIHV0eG9saWIuYmlwMzIuZnJvbUJhc2U1OCh3YWxsZXRLZXlzWzBdLnBhcmVudC54cHJ2KTtcbn1cblxuZGVzY3JpYmUoJ09mZmxpbmVWYXVsdEhhbGZTaWduZWQnLCBmdW5jdGlvbiAoKSB7XG4gIGZvciAoY29uc3QgZml4dHVyZU5hbWUgb2YgZ2V0Rml4dHVyZXNOYW1lcygpKSB7XG4gICAgaXQoYGNhbiBzaWduIGZpeHR1cmUgJHtmaXh0dXJlTmFtZX1gLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB7IHdhbGxldEtleXMsIHJlc3BvbnNlIH0gPSBhd2FpdCByZWFkRml4dHVyZShmaXh0dXJlTmFtZSk7XG4gICAgICBhc3NlcnQoRGVzY3JpcHRvclRyYW5zYWN0aW9uLmlzKHJlc3BvbnNlKSk7XG4gICAgICBjb25zdCByb290UHJ2ID0gZ2V0Um9vdFBydih3YWxsZXRLZXlzKTtcbiAgICAgIGNvbnN0IGRlcml2YXRpb25JZCA9IGdldERlcml2YXRpb25JZChyZXNwb25zZS54cHVic1dpdGhEZXJpdmF0aW9uUGF0aCk7XG4gICAgICBjcmVhdGVIYWxmU2lnbmVkKCdidGMnLCByb290UHJ2LCBkZXJpdmF0aW9uSWQsIHJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IG11dGF0aW9ucyA9IFt3aXRoUm90YXRlZFhwdWJzKHJlc3BvbnNlKSwgd2l0aFJhbmRvbVhwdWJzKHJlc3BvbnNlKSwgd2l0aG91dERlc2NyaXB0b3JzKHJlc3BvbnNlKV07XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGNyZWF0ZUhhbGZTaWduZWQoJ2J0YycsIHJvb3RQcnYsIGRlcml2YXRpb25JZCwgbXV0YXRpb24pKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZShcbiAgICAgICAgZml4dHVyZU5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCAnLmV4cGxhbmF0aW9uLmpzb24nKSxcbiAgICAgICAgZ2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbignYnRjJywgcmVzcG9uc2UpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG59KTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=explainPsbt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":""}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const descriptor_1 = require("../../../src/transaction/descriptor");
8
- const mock_utils_1 = require("../../core/descriptor/psbt/mock.utils");
9
- const descriptor_utils_1 = require("../../core/descriptor/descriptor.utils");
10
- const key_utils_1 = require("../../core/key.utils");
11
- const fixtures_utils_1 = require("./fixtures.utils");
12
- const { assertEqualFixture } = (0, fixtures_utils_1.getFixtureRoot)(__dirname + '/fixtures');
13
- function assertSignatureCount(expl, signatures, inputSignatures) {
14
- assert_1.default.deepStrictEqual(expl.signatures, signatures);
15
- assert_1.default.deepStrictEqual(expl.inputSignatures, inputSignatures);
16
- }
17
- describe('explainPsbt', function () {
18
- it('has expected values', async function () {
19
- const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)('Wsh2Of3');
20
- const keys = (0, key_utils_1.getKeyTriple)('a');
21
- const descriptorMap = (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3', keys);
22
- await assertEqualFixture('explainPsbt.a.json', (0, descriptor_1.explainPsbt)(psbt, descriptorMap));
23
- psbt.signAllInputsHD(keys[0]);
24
- assertSignatureCount((0, descriptor_1.explainPsbt)(psbt, descriptorMap), 1, [1, 1]);
25
- psbt.signAllInputsHD(keys[1]);
26
- assertSignatureCount((0, descriptor_1.explainPsbt)(psbt, descriptorMap), 2, [2, 2]);
27
- });
28
- });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZXhwbGFpblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFHNUIsb0VBQWtFO0FBQ2xFLHNFQUE4RjtBQUM5Riw2RUFBMEU7QUFDMUUsb0RBQW9EO0FBRXBELHFEQUFrRDtBQUVsRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFBLCtCQUFjLEVBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBRXZFLFNBQVMsb0JBQW9CLENBQUMsSUFBNEIsRUFBRSxVQUFrQixFQUFFLGVBQXlCO0lBQ3ZHLGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixFQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFBLGtEQUFxQyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQVksRUFBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFBLG1DQUFnQixFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxNQUFNLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLG9CQUFvQixDQUFDLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixvQkFBb0IsQ0FBQyxJQUFBLHdCQUFXLEVBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgZXhwbGFpblBzYnQgfSBmcm9tICcuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscyc7XG5pbXBvcnQgeyBnZXREZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi4vLi4vY29yZS9rZXkudXRpbHMnO1xuXG5pbXBvcnQgeyBnZXRGaXh0dXJlUm9vdCB9IGZyb20gJy4vZml4dHVyZXMudXRpbHMnO1xuXG5jb25zdCB7IGFzc2VydEVxdWFsRml4dHVyZSB9ID0gZ2V0Rml4dHVyZVJvb3QoX19kaXJuYW1lICsgJy9maXh0dXJlcycpO1xuXG5mdW5jdGlvbiBhc3NlcnRTaWduYXR1cmVDb3VudChleHBsOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBzaWduYXR1cmVzOiBudW1iZXIsIGlucHV0U2lnbmF0dXJlczogbnVtYmVyW10pIHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChleHBsLnNpZ25hdHVyZXMsIHNpZ25hdHVyZXMpO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGV4cGwuaW5wdXRTaWduYXR1cmVzLCBpbnB1dFNpZ25hdHVyZXMpO1xufVxuXG5kZXNjcmliZSgnZXhwbGFpblBzYnQnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdoYXMgZXhwZWN0ZWQgdmFsdWVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHBzYnQgPSBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlKCdXc2gyT2YzJyk7XG4gICAgY29uc3Qga2V5cyA9IGdldEtleVRyaXBsZSgnYScpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwKCdXc2gyT2YzJywga2V5cyk7XG4gICAgYXdhaXQgYXNzZXJ0RXF1YWxGaXh0dXJlKCdleHBsYWluUHNidC5hLmpzb24nLCBleHBsYWluUHNidChwc2J0LCBkZXNjcmlwdG9yTWFwKSk7XG4gICAgcHNidC5zaWduQWxsSW5wdXRzSEQoa2V5c1swXSk7XG4gICAgYXNzZXJ0U2lnbmF0dXJlQ291bnQoZXhwbGFpblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCksIDEsIFsxLCAxXSk7XG4gICAgcHNidC5zaWduQWxsSW5wdXRzSEQoa2V5c1sxXSk7XG4gICAgYXNzZXJ0U2lnbmF0dXJlQ291bnQoZXhwbGFpblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCksIDIsIFsyLCAyXSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,6 +0,0 @@
1
- interface FixtureRoot {
2
- assertEqualFixture(name: string, v: unknown): Promise<void>;
3
- }
4
- export declare function getFixtureRoot(root: string): FixtureRoot;
5
- export {};
6
- //# sourceMappingURL=fixtures.utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixtures.utils.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/fixtures.utils.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAMxD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getFixtureRoot = getFixtureRoot;
7
- const assert_1 = __importDefault(require("assert"));
8
- const path_1 = __importDefault(require("path"));
9
- const fixtures_utils_1 = require("../../core/fixtures.utils");
10
- function getFixtureRoot(root) {
11
- return {
12
- async assertEqualFixture(name, v, normalize = fixtures_utils_1.jsonNormalize) {
13
- assert_1.default.deepStrictEqual(normalize(v), await (0, fixtures_utils_1.getFixture)(path_1.default.join(root, name), normalize(v)));
14
- },
15
- };
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZml4dHVyZXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFXQSx3Q0FNQztBQWpCRCxvREFBNEI7QUFDNUIsZ0RBQXdCO0FBRXhCLDhEQUFzRTtBQVF0RSxTQUFnQixjQUFjLENBQUMsSUFBWTtJQUN6QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQVksRUFBRSxDQUFVLEVBQUUsWUFBdUIsOEJBQWE7WUFDckYsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBQSwyQkFBVSxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IGdldEZpeHR1cmUsIGpzb25Ob3JtYWxpemUgfSBmcm9tICcuLi8uLi9jb3JlL2ZpeHR1cmVzLnV0aWxzJztcblxuaW50ZXJmYWNlIEZpeHR1cmVSb290IHtcbiAgYXNzZXJ0RXF1YWxGaXh0dXJlKG5hbWU6IHN0cmluZywgdjogdW5rbm93bik6IFByb21pc2U8dm9pZD47XG59XG5cbnR5cGUgTm9ybWFsaXplID0gKHY6IHVua25vd24pID0+IHVua25vd247XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXh0dXJlUm9vdChyb290OiBzdHJpbmcpOiBGaXh0dXJlUm9vdCB7XG4gIHJldHVybiB7XG4gICAgYXN5bmMgYXNzZXJ0RXF1YWxGaXh0dXJlKG5hbWU6IHN0cmluZywgdjogdW5rbm93biwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSBqc29uTm9ybWFsaXplKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5vcm1hbGl6ZSh2KSwgYXdhaXQgZ2V0Rml4dHVyZShwYXRoLmpvaW4ocm9vdCwgbmFtZSksIG5vcm1hbGl6ZSh2KSkpO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=outputDifference.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"outputDifference.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/outputDifference.ts"],"names":[],"mappings":""}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const outputDifference_1 = require("../../../src/transaction/outputDifference");
8
- describe('outputDifference', function () {
9
- function output(script, value) {
10
- const scriptBuffer = Buffer.from(script, 'hex');
11
- if (scriptBuffer.toString('hex') !== script) {
12
- throw new Error('invalid script');
13
- }
14
- return {
15
- script: Buffer.from(script, 'hex'),
16
- value: value === 'max' ? 'max' : BigInt(value),
17
- };
18
- }
19
- const a = output('aa', 1);
20
- const a2 = output('aa', 2);
21
- const aMax = output('aa', 'max');
22
- const b = output('bb', 1);
23
- const c = output('cc', 1);
24
- describe('equalOutput', function () {
25
- it('has expected result', function () {
26
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(a, a), true);
27
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(a, a2), false);
28
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(a, b), false);
29
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(aMax, b), false);
30
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(aMax, a), true);
31
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(a, aMax), true);
32
- // this one does not appear in practice but is a valid comparison
33
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(aMax, aMax), true);
34
- });
35
- });
36
- describe('outputDifference', function () {
37
- it('has expected result', function () {
38
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([], []), []);
39
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a], []), [a]);
40
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([aMax], []), [aMax]);
41
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([], [a]), []);
42
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([], [aMax]), []);
43
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a], [a]), []);
44
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a], [aMax]), []);
45
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([aMax], [a]), []);
46
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, a], [a]), [a]);
47
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, a], [aMax]), [a]);
48
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, a, a], [a]), [a, a]);
49
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, b, c], [a, b]), [c]);
50
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, b, c], [aMax, b]), [c]);
51
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, b, c, a], [a, b]), [c, a]);
52
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a], [a2]), [a]);
53
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a2], [a]), [a2]);
54
- });
55
- });
56
- describe('outputDifferencesWithExpected', function () {
57
- function test(outputs, recipients, expected) {
58
- const result = (0, outputDifference_1.outputDifferencesWithExpected)(outputs, recipients);
59
- assert_1.default.deepStrictEqual(result, {
60
- explicitExternalOutputs: expected.explicit,
61
- implicitExternalOutputs: expected.implicit,
62
- missingOutputs: expected.missing,
63
- });
64
- }
65
- it('has expected result', function () {
66
- test([a], [], { missing: [], explicit: [], implicit: [a] });
67
- test([], [a], { missing: [a], explicit: [], implicit: [] });
68
- test([a], [a], { missing: [], explicit: [a], implicit: [] });
69
- test([a], [a2], { missing: [a2], explicit: [], implicit: [a] });
70
- test([b], [a], { missing: [a], explicit: [], implicit: [b] });
71
- test([a, a], [a], { missing: [], explicit: [a], implicit: [a] });
72
- test([a, b], [a], { missing: [], explicit: [a], implicit: [b] });
73
- });
74
- });
75
- });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0RGlmZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9vdXRwdXREaWZmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLGdGQU1tRDtBQUVuRCxRQUFRLENBQUMsa0JBQWtCLEVBQUU7SUFHM0IsU0FBUyxNQUFNLENBQUMsTUFBYyxFQUFFLEtBQThCO1FBQzVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQ2xDLEtBQUssRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFMUIsUUFBUSxDQUFDLGFBQWEsRUFBRTtRQUN0QixFQUFFLENBQUMscUJBQXFCLEVBQUU7WUFDeEIsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxpQ0FBYyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLGlDQUFjLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsaUNBQWMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxpQ0FBYyxFQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUV2RCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLGlDQUFjLEVBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsaUNBQWMsRUFBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEQsaUVBQWlFO1lBQ2pFLGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsaUNBQWMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtRQUMzQixFQUFFLENBQUMscUJBQXFCLEVBQUU7WUFDeEIsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxtQ0FBZ0IsRUFBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxtQ0FBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsbUNBQWdCLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxtQ0FBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsbUNBQWdCLEVBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxtQ0FBZ0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsbUNBQWdCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5RCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLG1D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RUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQge1xuICBBY3R1YWxPdXRwdXQsXG4gIEV4cGVjdGVkT3V0cHV0LFxuICBtYXRjaGluZ091dHB1dCxcbiAgb3V0cHV0RGlmZmVyZW5jZSxcbiAgb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQsXG59IGZyb20gJy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9vdXRwdXREaWZmZXJlbmNlJztcblxuZGVzY3JpYmUoJ291dHB1dERpZmZlcmVuY2UnLCBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIG91dHB1dChzY3JpcHQ6IHN0cmluZywgdmFsdWU6IGJpZ2ludCB8IG51bWJlcik6IEFjdHVhbE91dHB1dDtcbiAgZnVuY3Rpb24gb3V0cHV0KHNjcmlwdDogc3RyaW5nLCB2YWx1ZTogJ21heCcpOiBFeHBlY3RlZE91dHB1dDtcbiAgZnVuY3Rpb24gb3V0cHV0KHNjcmlwdDogc3RyaW5nLCB2YWx1ZTogYmlnaW50IHwgbnVtYmVyIHwgJ21heCcpOiBBY3R1YWxPdXRwdXQgfCBFeHBlY3RlZE91dHB1dCB7XG4gICAgY29uc3Qgc2NyaXB0QnVmZmVyID0gQnVmZmVyLmZyb20oc2NyaXB0LCAnaGV4Jyk7XG4gICAgaWYgKHNjcmlwdEJ1ZmZlci50b1N0cmluZygnaGV4JykgIT09IHNjcmlwdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHNjcmlwdCcpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc2NyaXB0OiBCdWZmZXIuZnJvbShzY3JpcHQsICdoZXgnKSxcbiAgICAgIHZhbHVlOiB2YWx1ZSA9PT0gJ21heCcgPyAnbWF4JyA6IEJpZ0ludCh2YWx1ZSksXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGEgPSBvdXRwdXQoJ2FhJywgMSk7XG4gIGNvbnN0IGEyID0gb3V0cHV0KCdhYScsIDIpO1xuICBjb25zdCBhTWF4ID0gb3V0cHV0KCdhYScsICdtYXgnKTtcbiAgY29uc3QgYiA9IG91dHB1dCgnYmInLCAxKTtcbiAgY29uc3QgYyA9IG91dHB1dCgnY2MnLCAxKTtcblxuICBkZXNjcmliZSgnZXF1YWxPdXRwdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ2hhcyBleHBlY3RlZCByZXN1bHQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1hdGNoaW5nT3V0cHV0KGEsIGEpLCB0cnVlKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobWF0Y2hpbmdPdXRwdXQoYSwgYTIpLCBmYWxzZSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1hdGNoaW5nT3V0cHV0KGEsIGIpLCBmYWxzZSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1hdGNoaW5nT3V0cHV0KGFNYXgsIGIpLCBmYWxzZSk7XG5cbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobWF0Y2hpbmdPdXRwdXQoYU1heCwgYSksIHRydWUpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtYXRjaGluZ091dHB1dChhLCBhTWF4KSwgdHJ1ZSk7XG4gICAgICAvLyB0aGlzIG9uZSBkb2VzIG5vdCBhcHBlYXIgaW4gcHJhY3RpY2UgYnV0IGlzIGEgdmFsaWQgY29tcGFyaXNvblxuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtYXRjaGluZ091dHB1dChhTWF4LCBhTWF4KSwgdHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdvdXRwdXREaWZmZXJlbmNlJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdoYXMgZXhwZWN0ZWQgcmVzdWx0JywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFtdLCBbXSksIFtdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbYV0sIFtdKSwgW2FdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbYU1heF0sIFtdKSwgW2FNYXhdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbXSwgW2FdKSwgW10pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFtdLCBbYU1heF0pLCBbXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2FdLCBbYV0pLCBbXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2FdLCBbYU1heF0pLCBbXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2FNYXhdLCBbYV0pLCBbXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2EsIGFdLCBbYV0pLCBbYV0pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFthLCBhXSwgW2FNYXhdKSwgW2FdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbYSwgYSwgYV0sIFthXSksIFthLCBhXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2EsIGIsIGNdLCBbYSwgYl0pLCBbY10pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFthLCBiLCBjXSwgW2FNYXgsIGJdKSwgW2NdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbYSwgYiwgYywgYV0sIFthLCBiXSksIFtjLCBhXSk7XG5cbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbYV0sIFthMl0pLCBbYV0pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFthMl0sIFthXSksIFthMl0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gdGVzdChcbiAgICAgIG91dHB1dHM6IEFjdHVhbE91dHB1dFtdLFxuICAgICAgcmVjaXBpZW50czogRXhwZWN0ZWRPdXRwdXRbXSxcbiAgICAgIGV4cGVjdGVkOiB7XG4gICAgICAgIG1pc3Npbmc6IEV4cGVjdGVkT3V0cHV0W107XG4gICAgICAgIGV4cGxpY2l0OiBBY3R1YWxPdXRwdXRbXTtcbiAgICAgICAgaW1wbGljaXQ6IEFjdHVhbE91dHB1dFtdO1xuICAgICAgfVxuICAgICkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQob3V0cHV0cywgcmVjaXBpZW50cyk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdCwge1xuICAgICAgICBleHBsaWNpdEV4dGVybmFsT3V0cHV0czogZXhwZWN0ZWQuZXhwbGljaXQsXG4gICAgICAgIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiBleHBlY3RlZC5pbXBsaWNpdCxcbiAgICAgICAgbWlzc2luZ091dHB1dHM6IGV4cGVjdGVkLm1pc3NpbmcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnaGFzIGV4cGVjdGVkIHJlc3VsdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRlc3QoW2FdLCBbXSwgeyBtaXNzaW5nOiBbXSwgZXhwbGljaXQ6IFtdLCBpbXBsaWNpdDogW2FdIH0pO1xuICAgICAgdGVzdChbXSwgW2FdLCB7IG1pc3Npbmc6IFthXSwgZXhwbGljaXQ6IFtdLCBpbXBsaWNpdDogW10gfSk7XG4gICAgICB0ZXN0KFthXSwgW2FdLCB7IG1pc3Npbmc6IFtdLCBleHBsaWNpdDogW2FdLCBpbXBsaWNpdDogW10gfSk7XG4gICAgICB0ZXN0KFthXSwgW2EyXSwgeyBtaXNzaW5nOiBbYTJdLCBleHBsaWNpdDogW10sIGltcGxpY2l0OiBbYV0gfSk7XG4gICAgICB0ZXN0KFtiXSwgW2FdLCB7IG1pc3Npbmc6IFthXSwgZXhwbGljaXQ6IFtdLCBpbXBsaWNpdDogW2JdIH0pO1xuICAgICAgdGVzdChbYSwgYV0sIFthXSwgeyBtaXNzaW5nOiBbXSwgZXhwbGljaXQ6IFthXSwgaW1wbGljaXQ6IFthXSB9KTtcbiAgICAgIHRlc3QoW2EsIGJdLCBbYV0sIHsgbWlzc2luZzogW10sIGV4cGxpY2l0OiBbYV0sIGltcGxpY2l0OiBbYl0gfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=parse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/parse.ts"],"names":[],"mappings":""}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const mock_utils_1 = require("../../core/descriptor/psbt/mock.utils");
8
- const parse_1 = require("../../../src/transaction/descriptor/parse");
9
- const descriptor_utils_1 = require("../../core/descriptor/descriptor.utils");
10
- const toPlainObject_utils_1 = require("../../core/toPlainObject.utils");
11
- const verifyTransaction_1 = require("../../../src/transaction/descriptor/verifyTransaction");
12
- const parseToAmountType_1 = require("../../../src/transaction/descriptor/parseToAmountType");
13
- const fixtures_utils_1 = require("./fixtures.utils");
14
- const { assertEqualFixture } = (0, fixtures_utils_1.getFixtureRoot)(__dirname + '/fixtures');
15
- function toBaseOutput(output, amountType) {
16
- (0, assert_1.default)(output.address);
17
- return {
18
- address: output.address,
19
- amount: (0, parseToAmountType_1.toAmountType)(output.value, amountType),
20
- };
21
- }
22
- function toBaseOutputBigInt(output) {
23
- return toBaseOutput(output, 'bigint');
24
- }
25
- function toBaseOutputString(output) {
26
- return toBaseOutput(output, 'string');
27
- }
28
- function toMaxOutput(output) {
29
- return {
30
- ...output,
31
- value: 'max',
32
- };
33
- }
34
- describe('parse', function () {
35
- const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)('Wsh2Of3');
36
- function getBaseParsedTransaction(recipients) {
37
- return (0, parse_1.toBaseParsedTransactionOutputsFromPsbt)(psbt, (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('a')), recipients.map(toBaseOutputString), psbt.network);
38
- }
39
- describe('toBase', function () {
40
- it('should return the correct BaseParsedTransactionOutputs', async function () {
41
- await assertEqualFixture('parseWithoutRecipients.json', (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([])));
42
- await assertEqualFixture('parseWithRecipient.json', (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([psbt.txOutputs[0]])));
43
- await assertEqualFixture('parseWithRecipient.json',
44
- // max recipient: ignore actual value
45
- (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([toMaxOutput(psbt.txOutputs[0])])));
46
- });
47
- function assertEqualValidationError(actual, expected) {
48
- if (actual instanceof verifyTransaction_1.AggregateValidationError) {
49
- assert_1.default.deepStrictEqual(actual.errors, expected.errors);
50
- }
51
- else {
52
- throw new Error('unexpected error type');
53
- }
54
- }
55
- function assertValidationError(f, expected) {
56
- assert_1.default.throws(f, (err) => {
57
- assertEqualValidationError(err, expected);
58
- return true;
59
- });
60
- }
61
- it('should throw expected errors', function () {
62
- assertValidationError(() => (0, verifyTransaction_1.assertExpectedOutputDifference)(getBaseParsedTransaction([])), new verifyTransaction_1.AggregateValidationError([
63
- new verifyTransaction_1.ErrorImplicitExternalOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[0]), external: true }]),
64
- ]));
65
- assertValidationError(() => (0, verifyTransaction_1.assertExpectedOutputDifference)(getBaseParsedTransaction([])), new verifyTransaction_1.AggregateValidationError([
66
- new verifyTransaction_1.ErrorImplicitExternalOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[0]), external: true }]),
67
- ]));
68
- assertValidationError(() => (0, verifyTransaction_1.assertExpectedOutputDifference)(getBaseParsedTransaction([psbt.txOutputs[1]])), new verifyTransaction_1.AggregateValidationError([
69
- new verifyTransaction_1.ErrorMissingOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[1]), external: true }]),
70
- new verifyTransaction_1.ErrorImplicitExternalOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[0]), external: true }]),
71
- ]));
72
- assertValidationError(() => (0, verifyTransaction_1.assertExpectedOutputDifference)(getBaseParsedTransaction([toMaxOutput(psbt.txOutputs[1])])), new verifyTransaction_1.AggregateValidationError([
73
- new verifyTransaction_1.ErrorMissingOutputs([{ ...toBaseOutputBigInt(toMaxOutput(psbt.txOutputs[1])), external: true }]),
74
- new verifyTransaction_1.ErrorImplicitExternalOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[0]), external: true }]),
75
- ]));
76
- });
77
- });
78
- });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsc0VBQThGO0FBQzlGLHFFQUF3SDtBQUN4SCw2RUFBMkY7QUFDM0Ysd0VBQStEO0FBQy9ELDZGQUsrRDtBQUMvRCw2RkFBcUY7QUFHckYscURBQWtEO0FBRWxELE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUEsK0JBQWMsRUFBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUM7QUFPdkUsU0FBUyxZQUFZLENBQVUsTUFBdUIsRUFBRSxVQUErQjtJQUNyRixJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLE9BQU87UUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsTUFBTSxFQUFFLElBQUEsZ0NBQVksRUFBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBWTtLQUMxRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsTUFBdUI7SUFDakQsT0FBTyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQXVCO0lBQ2pELE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsTUFBdUI7SUFDMUMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULEtBQUssRUFBRSxLQUFLO0tBQ2IsQ0FBQztBQUNKLENBQUM7QUFFRCxRQUFRLENBQUMsT0FBTyxFQUFFO0lBQ2hCLE1BQU0sSUFBSSxHQUFHLElBQUEsa0RBQXFDLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUQsU0FBUyx3QkFBd0IsQ0FBQyxVQUE2QjtRQUM3RCxP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LENBQUM7Z0JBQ3ZGLElBQUksZ0RBQTRCLENBQUMsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2pHLENBQUMsQ0FDSCxDQUFDO1lBRUYscUJBQXFCLENBQ25CLEdBQUcsRUFBRSxDQUFDLElBQUEsa0RBQThCLEVBQUMsd0JBQXdCLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoRyxJQUFJLDRDQUF3QixDQUFDO2dCQUMzQixJQUFJLHVDQUFtQixDQUFDLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDcEcsSUFBSSxnREFBNEIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDakcsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2Rlc2NyaXB0b3IvcHNidC9tb2NrLnV0aWxzJztcbmltcG9ydCB7IFBhcnNlZE91dHB1dHNCaWdJbnQsIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0IH0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2UnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFhQdWJzLCBnZXREZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgdG9QbGFpbk9iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvdG9QbGFpbk9iamVjdC51dGlscyc7XG5pbXBvcnQge1xuICBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IsXG4gIGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZSxcbiAgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyxcbiAgRXJyb3JNaXNzaW5nT3V0cHV0cyxcbn0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvdmVyaWZ5VHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgdG9BbW91bnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2VUb0Ftb3VudFR5cGUnO1xuaW1wb3J0IHsgQmFzZU91dHB1dCB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7IGdldEZpeHR1cmVSb290IH0gZnJvbSAnLi9maXh0dXJlcy51dGlscyc7XG5cbmNvbnN0IHsgYXNzZXJ0RXF1YWxGaXh0dXJlIH0gPSBnZXRGaXh0dXJlUm9vdChfX2Rpcm5hbWUgKyAnL2ZpeHR1cmVzJyk7XG5cbnR5cGUgT3V0cHV0V2l0aFZhbHVlPFQgPSBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmc+ID0ge1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICB2YWx1ZTogVDtcbn07XG5cbmZ1bmN0aW9uIHRvQmFzZU91dHB1dDxUTnVtYmVyPihvdXRwdXQ6IE91dHB1dFdpdGhWYWx1ZSwgYW1vdW50VHlwZTogJ2JpZ2ludCcgfCAnc3RyaW5nJyk6IEJhc2VPdXRwdXQ8VE51bWJlcj4ge1xuICBhc3NlcnQob3V0cHV0LmFkZHJlc3MpO1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgIGFtb3VudDogdG9BbW91bnRUeXBlKG91dHB1dC52YWx1ZSwgYW1vdW50VHlwZSkgYXMgVE51bWJlcixcbiAgfTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0QmlnSW50KG91dHB1dDogT3V0cHV0V2l0aFZhbHVlKTogQmFzZU91dHB1dDxiaWdpbnQ+IHtcbiAgcmV0dXJuIHRvQmFzZU91dHB1dChvdXRwdXQsICdiaWdpbnQnKTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0U3RyaW5nKG91dHB1dDogT3V0cHV0V2l0aFZhbHVlKTogQmFzZU91dHB1dDxzdHJpbmc+IHtcbiAgcmV0dXJuIHRvQmFzZU91dHB1dChvdXRwdXQsICdzdHJpbmcnKTtcbn1cblxuZnVuY3Rpb24gdG9NYXhPdXRwdXQob3V0cHV0OiBPdXRwdXRXaXRoVmFsdWUpOiBPdXRwdXRXaXRoVmFsdWU8J21heCc+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5vdXRwdXQsXG4gICAgdmFsdWU6ICdtYXgnLFxuICB9O1xufVxuXG5kZXNjcmliZSgncGFyc2UnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHBzYnQgPSBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlKCdXc2gyT2YzJyk7XG5cbiAgZnVuY3Rpb24gZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKHJlY2lwaWVudHM6IE91dHB1dFdpdGhWYWx1ZVtdKTogUGFyc2VkT3V0cHV0c0JpZ0ludCB7XG4gICAgcmV0dXJuIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIGdldERlc2NyaXB0b3JNYXAoJ1dzaDJPZjMnLCBnZXREZWZhdWx0WFB1YnMoJ2EnKSksXG4gICAgICByZWNpcGllbnRzLm1hcCh0b0Jhc2VPdXRwdXRTdHJpbmcpLFxuICAgICAgcHNidC5uZXR3b3JrXG4gICAgKTtcbiAgfVxuXG4gIGRlc2NyaWJlKCd0b0Jhc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGNvcnJlY3QgQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZSgncGFyc2VXaXRob3V0UmVjaXBpZW50cy5qc29uJywgdG9QbGFpbk9iamVjdChnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24oW10pKSk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbEZpeHR1cmUoJ3BhcnNlV2l0aFJlY2lwaWVudC5qc29uJywgdG9QbGFpbk9iamVjdChnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24oW3BzYnQudHhPdXRwdXRzWzBdXSkpKTtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZShcbiAgICAgICAgJ3BhcnNlV2l0aFJlY2lwaWVudC5qc29uJyxcbiAgICAgICAgLy8gbWF4IHJlY2lwaWVudDogaWdub3JlIGFjdHVhbCB2YWx1ZVxuICAgICAgICB0b1BsYWluT2JqZWN0KGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbdG9NYXhPdXRwdXQocHNidC50eE91dHB1dHNbMF0pXSkpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gYXNzZXJ0RXF1YWxWYWxpZGF0aW9uRXJyb3IoYWN0dWFsOiB1bmtub3duLCBleHBlY3RlZDogQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYWN0dWFsLmVycm9ycywgZXhwZWN0ZWQuZXJyb3JzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlcnJvciB0eXBlJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0VmFsaWRhdGlvbkVycm9yKGY6ICgpID0+IHZvaWQsIGV4cGVjdGVkOiBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIGFzc2VydC50aHJvd3MoZiwgKGVycikgPT4ge1xuICAgICAgICBhc3NlcnRFcXVhbFZhbGlkYXRpb25FcnJvcihlcnIsIGV4cGVjdGVkKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGV4cGVjdGVkIGVycm9ycycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFzc2VydFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgKCkgPT4gYXNzZXJ0RXhwZWN0ZWRPdXRwdXREaWZmZXJlbmNlKGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbXSkpLFxuICAgICAgICBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgICAgICBuZXcgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyhbeyAuLi50b0Jhc2VPdXRwdXRCaWdJbnQocHNidC50eE91dHB1dHNbMF0pLCBleHRlcm5hbDogdHJ1ZSB9XSksXG4gICAgICAgIF0pXG4gICAgICApO1xuXG4gICAgICBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICgpID0+IGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZShnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24oW10pKSxcbiAgICAgICAgbmV3IEFnZ3JlZ2F0ZVZhbGlkYXRpb25FcnJvcihbXG4gICAgICAgICAgbmV3IEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMoW3sgLi4udG9CYXNlT3V0cHV0QmlnSW50KHBzYnQudHhPdXRwdXRzWzBdKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICBdKVxuICAgICAgKTtcblxuICAgICAgYXNzZXJ0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAoKSA9PiBhc3NlcnRFeHBlY3RlZE91dHB1dERpZmZlcmVuY2UoZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKFtwc2J0LnR4T3V0cHV0c1sxXV0pKSxcbiAgICAgICAgbmV3IEFnZ3JlZ2F0ZVZhbGlkYXRpb25FcnJvcihbXG4gICAgICAgICAgbmV3IEVycm9yTWlzc2luZ091dHB1dHMoW3sgLi4udG9CYXNlT3V0cHV0QmlnSW50KHBzYnQudHhPdXRwdXRzWzFdKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICAgIG5ldyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKFt7IC4uLnRvQmFzZU91dHB1dEJpZ0ludChwc2J0LnR4T3V0cHV0c1swXSksIGV4dGVybmFsOiB0cnVlIH1dKSxcbiAgICAgICAgXSlcbiAgICAgICk7XG5cbiAgICAgIGFzc2VydFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgKCkgPT4gYXNzZXJ0RXhwZWN0ZWRPdXRwdXREaWZmZXJlbmNlKGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbdG9NYXhPdXRwdXQocHNidC50eE91dHB1dHNbMV0pXSkpLFxuICAgICAgICBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgICAgICBuZXcgRXJyb3JNaXNzaW5nT3V0cHV0cyhbeyAuLi50b0Jhc2VPdXRwdXRCaWdJbnQodG9NYXhPdXRwdXQocHNidC50eE91dHB1dHNbMV0pKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICAgIG5ldyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKFt7IC4uLnRvQmFzZU91dHB1dEJpZ0ludChwc2J0LnR4T3V0cHV0c1swXSksIGV4dGVybmFsOiB0cnVlIH1dKSxcbiAgICAgICAgXSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sign.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/sign.ts"],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const mock_utils_1 = require("../../core/descriptor/psbt/mock.utils");
8
- const descriptor_1 = require("../../../src/transaction/descriptor");
9
- const key_utils_1 = require("../../core/key.utils");
10
- const descriptor_utils_1 = require("../../core/descriptor/descriptor.utils");
11
- const signPsbt_1 = require("../../../src/transaction/descriptor/signPsbt");
12
- describe('sign', function () {
13
- const psbtUnsigned = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)('Wsh2Of3');
14
- const keychain = (0, key_utils_1.getKeyTriple)('a');
15
- const descriptorMap = (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3', keychain);
16
- const emptyDescriptorMap = new Map();
17
- it('should sign a transaction', async function () {
18
- const psbt = psbtUnsigned.clone();
19
- (0, descriptor_1.signPsbt)(psbt, descriptorMap, keychain[0], { onUnknownInput: 'throw' });
20
- (0, assert_1.default)(psbt.validateSignaturesOfAllInputs());
21
- });
22
- it('should be sensitive to onUnknownInput', async function () {
23
- const psbt = psbtUnsigned.clone();
24
- assert_1.default.throws(() => {
25
- (0, descriptor_1.signPsbt)(psbt, emptyDescriptorMap, keychain[0], { onUnknownInput: 'throw' });
26
- }, new signPsbt_1.ErrorUnknownInput(0));
27
- (0, descriptor_1.signPsbt)(psbt, emptyDescriptorMap, keychain[0], { onUnknownInput: 'skip' });
28
- (0, assert_1.default)(psbt.data.inputs[0].partialSig === undefined);
29
- (0, descriptor_1.signPsbt)(psbt, emptyDescriptorMap, keychain[0], { onUnknownInput: 'sign' });
30
- (0, assert_1.default)(psbt.validateSignaturesOfAllInputs());
31
- });
32
- });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9zaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLHNFQUE4RjtBQUM5RixvRUFBK0Q7QUFDL0Qsb0RBQW9EO0FBQ3BELDZFQUEwRTtBQUMxRSwyRUFBaUY7QUFFakYsUUFBUSxDQUFDLE1BQU0sRUFBRTtJQUNmLE1BQU0sWUFBWSxHQUFHLElBQUEsa0RBQXFDLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsTUFBTSxRQUFRLEdBQUcsSUFBQSx3QkFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUEsbUNBQWdCLEVBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVyQyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsS0FBSztRQUNuQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsSUFBQSxxQkFBUSxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsS0FBSztRQUMvQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUEscUJBQVEsRUFBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQyxFQUFFLElBQUksNEJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFBLHFCQUFRLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDckQsSUFBQSxxQkFBUSxFQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscyc7XG5pbXBvcnQgeyBzaWduUHNidCB9IGZyb20gJy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IGdldEtleVRyaXBsZSB9IGZyb20gJy4uLy4uL2NvcmUva2V5LnV0aWxzJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXAgfSBmcm9tICcuLi8uLi9jb3JlL2Rlc2NyaXB0b3IvZGVzY3JpcHRvci51dGlscyc7XG5pbXBvcnQgeyBFcnJvclVua25vd25JbnB1dCB9IGZyb20gJy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9kZXNjcmlwdG9yL3NpZ25Qc2J0JztcblxuZGVzY3JpYmUoJ3NpZ24nLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHBzYnRVbnNpZ25lZCA9IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjMnKTtcbiAgY29uc3Qga2V5Y2hhaW4gPSBnZXRLZXlUcmlwbGUoJ2EnKTtcbiAgY29uc3QgZGVzY3JpcHRvck1hcCA9IGdldERlc2NyaXB0b3JNYXAoJ1dzaDJPZjMnLCBrZXljaGFpbik7XG4gIGNvbnN0IGVtcHR5RGVzY3JpcHRvck1hcCA9IG5ldyBNYXAoKTtcblxuICBpdCgnc2hvdWxkIHNpZ24gYSB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwc2J0ID0gcHNidFVuc2lnbmVkLmNsb25lKCk7XG4gICAgc2lnblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCwga2V5Y2hhaW5bMF0sIHsgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycgfSk7XG4gICAgYXNzZXJ0KHBzYnQudmFsaWRhdGVTaWduYXR1cmVzT2ZBbGxJbnB1dHMoKSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgc2Vuc2l0aXZlIHRvIG9uVW5rbm93bklucHV0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHBzYnQgPSBwc2J0VW5zaWduZWQuY2xvbmUoKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IHtcbiAgICAgIHNpZ25Qc2J0KHBzYnQsIGVtcHR5RGVzY3JpcHRvck1hcCwga2V5Y2hhaW5bMF0sIHsgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycgfSk7XG4gICAgfSwgbmV3IEVycm9yVW5rbm93bklucHV0KDApKTtcbiAgICBzaWduUHNidChwc2J0LCBlbXB0eURlc2NyaXB0b3JNYXAsIGtleWNoYWluWzBdLCB7IG9uVW5rbm93bklucHV0OiAnc2tpcCcgfSk7XG4gICAgYXNzZXJ0KHBzYnQuZGF0YS5pbnB1dHNbMF0ucGFydGlhbFNpZyA9PT0gdW5kZWZpbmVkKTtcbiAgICBzaWduUHNidChwc2J0LCBlbXB0eURlc2NyaXB0b3JNYXAsIGtleWNoYWluWzBdLCB7IG9uVW5rbm93bklucHV0OiAnc2lnbicgfSk7XG4gICAgYXNzZXJ0KHBzYnQudmFsaWRhdGVTaWduYXR1cmVzT2ZBbGxJbnB1dHMoKSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=validatePolicy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validatePolicy.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/validatePolicy.ts"],"names":[],"mappings":""}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
8
- const validatePolicy_1 = require("../../../src/descriptor/validatePolicy");
9
- const descriptor_utils_1 = require("../../core/descriptor/descriptor.utils");
10
- const key_utils_1 = require("../../core/key.utils");
11
- const NamedDescriptor_1 = require("../../../src/descriptor/NamedDescriptor");
12
- function testAssertDescriptorPolicy(d, p, k, expectedError) {
13
- const f = () => (0, validatePolicy_1.assertDescriptorPolicy)(wasm_miniscript_1.Descriptor.fromString(d.value, 'derivable'), p, k, d.signatures ?? []);
14
- if (expectedError) {
15
- assert_1.default.throws(f);
16
- }
17
- else {
18
- assert_1.default.doesNotThrow(f);
19
- }
20
- }
21
- describe('assertDescriptorPolicy', function () {
22
- const keys = (0, key_utils_1.getKeyTriple)();
23
- function getNamedDescriptor(name) {
24
- return (0, NamedDescriptor_1.createNamedDescriptorWithSignature)(name, (0, descriptor_utils_1.getDescriptor)(name), keys[0]);
25
- }
26
- function stripSignature(d) {
27
- return { ...d, signatures: undefined };
28
- }
29
- it('has expected result', function () {
30
- testAssertDescriptorPolicy(getNamedDescriptor('Wsh2Of3'), (0, validatePolicy_1.getValidatorDescriptorTemplate)('Wsh2Of3'), keys, null);
31
- // prod does only allow Wsh2Of3-ish descriptors
32
- testAssertDescriptorPolicy(getNamedDescriptor('Wsh2Of3'), (0, validatePolicy_1.getPolicyForEnv)('prod'), keys, null);
33
- // prod only allows other descriptors if they are signed by the user key
34
- testAssertDescriptorPolicy(getNamedDescriptor('Wsh2Of2'), (0, validatePolicy_1.getPolicyForEnv)('prod'), keys, null);
35
- testAssertDescriptorPolicy(stripSignature(getNamedDescriptor('Wsh2Of2')), (0, validatePolicy_1.getPolicyForEnv)('prod'), keys, new validatePolicy_1.DescriptorPolicyValidationError((0, descriptor_utils_1.getDescriptor)('Wsh2Of2'), (0, validatePolicy_1.getPolicyForEnv)('prod')));
36
- // test is very permissive by default
37
- testAssertDescriptorPolicy(stripSignature(getNamedDescriptor('Wsh2Of2')), (0, validatePolicy_1.getPolicyForEnv)('test'), keys, null);
38
- });
39
- });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvdmFsaWRhdGVQb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsNERBQW9EO0FBSXBELDJFQU1nRDtBQUNoRCw2RUFBMkY7QUFDM0Ysb0RBQW9EO0FBRXBELDZFQUE2RjtBQUU3RixTQUFTLDBCQUEwQixDQUNqQyxDQUEwQixFQUMxQixDQUE2QixFQUM3QixDQUF5QixFQUN6QixhQUFxRDtJQUVyRCxNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFBLHVDQUFzQixFQUFDLDRCQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztTQUFNLENBQUM7UUFDTixnQkFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0FBQ0gsQ0FBQztBQUVELFFBQVEsQ0FBQyx3QkFBd0IsRUFBRTtJQUNqQyxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFZLEdBQUUsQ0FBQztJQUM1QixTQUFTLGtCQUFrQixDQUFDLElBQXdCO1FBQ2xELE9BQU8sSUFBQSxvREFBa0MsRUFBQyxJQUFJLEVBQUUsSUFBQSxnQ0FBYSxFQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxTQUFTLGNBQWMsQ0FBQyxDQUFrQjtRQUN4QyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxFQUFFLENBQUMscUJBQXFCLEVBQUU7UUFDeEIsMEJBQTBCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBQSwrQ0FBOEIsRUFBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakgsK0NBQStDO1FBQy9DLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUEsZ0NBQWUsRUFBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFL0Ysd0VBQXdFO1FBQ3hFLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUEsZ0NBQWUsRUFBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0YsMEJBQTBCLENBQ3hCLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUM3QyxJQUFBLGdDQUFlLEVBQUMsTUFBTSxDQUFDLEVBQ3ZCLElBQUksRUFDSixJQUFJLGdEQUErQixDQUFDLElBQUEsZ0NBQWEsRUFBQyxTQUFTLENBQUMsRUFBRSxJQUFBLGdDQUFlLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FDdkYsQ0FBQztRQUVGLHFDQUFxQztRQUNyQywwQkFBMEIsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFBLGdDQUFlLEVBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQge1xuICBhc3NlcnREZXNjcmlwdG9yUG9saWN5LFxuICBEZXNjcmlwdG9yUG9saWN5VmFsaWRhdGlvbkVycm9yLFxuICBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSxcbiAgZ2V0UG9saWN5Rm9yRW52LFxuICBnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUsXG59IGZyb20gJy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL3ZhbGlkYXRlUG9saWN5JztcbmltcG9ydCB7IERlc2NyaXB0b3JUZW1wbGF0ZSwgZ2V0RGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL2NvcmUvZGVzY3JpcHRvci9kZXNjcmlwdG9yLnV0aWxzJztcbmltcG9ydCB7IGdldEtleVRyaXBsZSB9IGZyb20gJy4uLy4uL2NvcmUva2V5LnV0aWxzJztcbmltcG9ydCB7IE5hbWVkRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yJztcbmltcG9ydCB7IGNyZWF0ZU5hbWVkRGVzY3JpcHRvcldpdGhTaWduYXR1cmUgfSBmcm9tICcuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9OYW1lZERlc2NyaXB0b3InO1xuXG5mdW5jdGlvbiB0ZXN0QXNzZXJ0RGVzY3JpcHRvclBvbGljeShcbiAgZDogTmFtZWREZXNjcmlwdG9yPHN0cmluZz4sXG4gIHA6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5LFxuICBrOiBUcmlwbGU8QklQMzJJbnRlcmZhY2U+LFxuICBleHBlY3RlZEVycm9yOiBEZXNjcmlwdG9yUG9saWN5VmFsaWRhdGlvbkVycm9yIHwgbnVsbFxuKSB7XG4gIGNvbnN0IGYgPSAoKSA9PiBhc3NlcnREZXNjcmlwdG9yUG9saWN5KERlc2NyaXB0b3IuZnJvbVN0cmluZyhkLnZhbHVlLCAnZGVyaXZhYmxlJyksIHAsIGssIGQuc2lnbmF0dXJlcyA/PyBbXSk7XG4gIGlmIChleHBlY3RlZEVycm9yKSB7XG4gICAgYXNzZXJ0LnRocm93cyhmKTtcbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuZG9lc05vdFRocm93KGYpO1xuICB9XG59XG5cbmRlc2NyaWJlKCdhc3NlcnREZXNjcmlwdG9yUG9saWN5JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBrZXlzID0gZ2V0S2V5VHJpcGxlKCk7XG4gIGZ1bmN0aW9uIGdldE5hbWVkRGVzY3JpcHRvcihuYW1lOiBEZXNjcmlwdG9yVGVtcGxhdGUpOiBOYW1lZERlc2NyaXB0b3Ige1xuICAgIHJldHVybiBjcmVhdGVOYW1lZERlc2NyaXB0b3JXaXRoU2lnbmF0dXJlKG5hbWUsIGdldERlc2NyaXB0b3IobmFtZSksIGtleXNbMF0pO1xuICB9XG4gIGZ1bmN0aW9uIHN0cmlwU2lnbmF0dXJlKGQ6IE5hbWVkRGVzY3JpcHRvcik6IE5hbWVkRGVzY3JpcHRvciB7XG4gICAgcmV0dXJuIHsgLi4uZCwgc2lnbmF0dXJlczogdW5kZWZpbmVkIH07XG4gIH1cblxuICBpdCgnaGFzIGV4cGVjdGVkIHJlc3VsdCcsIGZ1bmN0aW9uICgpIHtcbiAgICB0ZXN0QXNzZXJ0RGVzY3JpcHRvclBvbGljeShnZXROYW1lZERlc2NyaXB0b3IoJ1dzaDJPZjMnKSwgZ2V0VmFsaWRhdG9yRGVzY3JpcHRvclRlbXBsYXRlKCdXc2gyT2YzJyksIGtleXMsIG51bGwpO1xuXG4gICAgLy8gcHJvZCBkb2VzIG9ubHkgYWxsb3cgV3NoMk9mMy1pc2ggZGVzY3JpcHRvcnNcbiAgICB0ZXN0QXNzZXJ0RGVzY3JpcHRvclBvbGljeShnZXROYW1lZERlc2NyaXB0b3IoJ1dzaDJPZjMnKSwgZ2V0UG9saWN5Rm9yRW52KCdwcm9kJyksIGtleXMsIG51bGwpO1xuXG4gICAgLy8gcHJvZCBvbmx5IGFsbG93cyBvdGhlciBkZXNjcmlwdG9ycyBpZiB0aGV5IGFyZSBzaWduZWQgYnkgdGhlIHVzZXIga2V5XG4gICAgdGVzdEFzc2VydERlc2NyaXB0b3JQb2xpY3koZ2V0TmFtZWREZXNjcmlwdG9yKCdXc2gyT2YyJyksIGdldFBvbGljeUZvckVudigncHJvZCcpLCBrZXlzLCBudWxsKTtcbiAgICB0ZXN0QXNzZXJ0RGVzY3JpcHRvclBvbGljeShcbiAgICAgIHN0cmlwU2lnbmF0dXJlKGdldE5hbWVkRGVzY3JpcHRvcignV3NoMk9mMicpKSxcbiAgICAgIGdldFBvbGljeUZvckVudigncHJvZCcpLFxuICAgICAga2V5cyxcbiAgICAgIG5ldyBEZXNjcmlwdG9yUG9saWN5VmFsaWRhdGlvbkVycm9yKGdldERlc2NyaXB0b3IoJ1dzaDJPZjInKSwgZ2V0UG9saWN5Rm9yRW52KCdwcm9kJykpXG4gICAgKTtcblxuICAgIC8vIHRlc3QgaXMgdmVyeSBwZXJtaXNzaXZlIGJ5IGRlZmF1bHRcbiAgICB0ZXN0QXNzZXJ0RGVzY3JpcHRvclBvbGljeShzdHJpcFNpZ25hdHVyZShnZXROYW1lZERlc2NyaXB0b3IoJ1dzaDJPZjInKSksIGdldFBvbGljeUZvckVudigndGVzdCcpLCBrZXlzLCBudWxsKTtcbiAgfSk7XG59KTtcbiJdfQ==