@bitgo/abstract-utxo 9.12.0 → 9.13.0
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.
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -2
- package/dist/src/offlineVault/OfflineVaultHalfSigned.js +3 -3
- package/dist/src/offlineVault/{OfflineVaultUnsigned.d.ts → OfflineVaultSignable.d.ts} +3 -3
- package/dist/src/offlineVault/{OfflineVaultUnsigned.d.ts.map → OfflineVaultSignable.d.ts.map} +1 -1
- package/dist/src/offlineVault/{OfflineVaultUnsigned.js → OfflineVaultSignable.js} +3 -3
- package/dist/src/offlineVault/TransactionExplanation.d.ts +15 -0
- package/dist/src/offlineVault/TransactionExplanation.d.ts.map +1 -0
- package/dist/src/offlineVault/TransactionExplanation.js +16 -0
- package/dist/src/offlineVault/descriptor/transaction.d.ts +2 -0
- package/dist/src/offlineVault/descriptor/transaction.d.ts.map +1 -1
- package/dist/src/offlineVault/descriptor/transaction.js +21 -4
- package/dist/src/offlineVault/index.d.ts +3 -0
- package/dist/src/offlineVault/index.d.ts.map +1 -1
- package/dist/src/offlineVault/index.js +4 -2
- package/package.json +7 -4
- package/.eslintignore +0 -5
- package/.eslintrc.js +0 -6
- package/CHANGELOG.md +0 -1222
- package/dist/test/core/descriptor/descriptor.utils.d.ts +0 -11
- package/dist/test/core/descriptor/descriptor.utils.d.ts.map +0 -1
- package/dist/test/core/descriptor/descriptor.utils.js +0 -63
- package/dist/test/core/descriptor/psbt/VirtualSize.d.ts +0 -2
- package/dist/test/core/descriptor/psbt/VirtualSize.d.ts.map +0 -1
- package/dist/test/core/descriptor/psbt/VirtualSize.js +0 -78
- package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts +0 -2
- package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts.map +0 -1
- package/dist/test/core/descriptor/psbt/assertSatisfiable.js +0 -56
- package/dist/test/core/descriptor/psbt/createPsbt.d.ts +0 -2
- package/dist/test/core/descriptor/psbt/createPsbt.d.ts.map +0 -1
- package/dist/test/core/descriptor/psbt/createPsbt.js +0 -85
- package/dist/test/core/descriptor/psbt/findDescriptors.d.ts +0 -2
- package/dist/test/core/descriptor/psbt/findDescriptors.d.ts.map +0 -1
- package/dist/test/core/descriptor/psbt/findDescriptors.js +0 -66
- package/dist/test/core/descriptor/psbt/mock.utils.d.ts +0 -34
- package/dist/test/core/descriptor/psbt/mock.utils.d.ts.map +0 -1
- package/dist/test/core/descriptor/psbt/mock.utils.js +0 -87
- package/dist/test/core/descriptor/psbt/parse.d.ts +0 -2
- package/dist/test/core/descriptor/psbt/parse.d.ts.map +0 -1
- package/dist/test/core/descriptor/psbt/parse.js +0 -32
- package/dist/test/core/descriptor/psbt/psbt.utils.d.ts +0 -4
- package/dist/test/core/descriptor/psbt/psbt.utils.d.ts.map +0 -1
- package/dist/test/core/descriptor/psbt/psbt.utils.js +0 -20
- package/dist/test/core/fixtures.utils.d.ts +0 -15
- package/dist/test/core/fixtures.utils.d.ts.map +0 -1
- package/dist/test/core/fixtures.utils.js +0 -114
- package/dist/test/core/key.utils.d.ts +0 -16
- package/dist/test/core/key.utils.d.ts.map +0 -1
- package/dist/test/core/key.utils.js +0 -59
- package/dist/test/core/toPlainObject.utils.d.ts +0 -11
- package/dist/test/core/toPlainObject.utils.d.ts.map +0 -1
- package/dist/test/core/toPlainObject.utils.js +0 -75
- package/dist/test/descriptor/NamedDescriptor.d.ts +0 -2
- package/dist/test/descriptor/NamedDescriptor.d.ts.map +0 -1
- package/dist/test/descriptor/NamedDescriptor.js +0 -19
- package/dist/test/descriptor/builder.d.ts +0 -2
- package/dist/test/descriptor/builder.d.ts.map +0 -1
- package/dist/test/descriptor/builder.js +0 -72
- package/dist/test/descriptor/createWallet/createDescriptors.d.ts +0 -2
- package/dist/test/descriptor/createWallet/createDescriptors.d.ts.map +0 -1
- package/dist/test/descriptor/createWallet/createDescriptors.js +0 -21
- package/dist/test/descriptor/descriptorWallet.d.ts +0 -2
- package/dist/test/descriptor/descriptorWallet.d.ts.map +0 -1
- package/dist/test/descriptor/descriptorWallet.js +0 -28
- package/dist/test/offlineVault/halfSigned.d.ts +0 -2
- package/dist/test/offlineVault/halfSigned.d.ts.map +0 -1
- package/dist/test/offlineVault/halfSigned.js +0 -121
- package/dist/test/transaction/descriptor/explainPsbt.d.ts +0 -2
- package/dist/test/transaction/descriptor/explainPsbt.d.ts.map +0 -1
- package/dist/test/transaction/descriptor/explainPsbt.js +0 -28
- package/dist/test/transaction/descriptor/fixtures.utils.d.ts +0 -2
- package/dist/test/transaction/descriptor/fixtures.utils.d.ts.map +0 -1
- package/dist/test/transaction/descriptor/fixtures.utils.js +0 -12
- package/dist/test/transaction/descriptor/outputDifference.d.ts +0 -2
- package/dist/test/transaction/descriptor/outputDifference.d.ts.map +0 -1
- package/dist/test/transaction/descriptor/outputDifference.js +0 -76
- package/dist/test/transaction/descriptor/parse.d.ts +0 -2
- package/dist/test/transaction/descriptor/parse.d.ts.map +0 -1
- package/dist/test/transaction/descriptor/parse.js +0 -78
- package/dist/test/transaction/descriptor/sign.d.ts +0 -2
- package/dist/test/transaction/descriptor/sign.d.ts.map +0 -1
- package/dist/test/transaction/descriptor/sign.js +0 -33
- package/dist/test/transaction/descriptor/validatePolicy.d.ts +0 -2
- package/dist/test/transaction/descriptor/validatePolicy.d.ts.map +0 -1
- package/dist/test/transaction/descriptor/validatePolicy.js +0 -40
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Triple } from '@bitgo/sdk-core';
|
|
2
|
-
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
3
|
-
import { DescriptorMap, PsbtParams } from '../../../src/core/descriptor';
|
|
4
|
-
import { KeyTriple } from '../key.utils';
|
|
5
|
-
export declare function getDefaultXPubs(seed?: string): Triple<string>;
|
|
6
|
-
export type DescriptorTemplate = 'Wsh2Of3' | 'Wsh2Of2' | 'ShWsh2Of3CltvDrop';
|
|
7
|
-
export declare function getPsbtParams(t: DescriptorTemplate): Partial<PsbtParams>;
|
|
8
|
-
export declare function getDescriptorString(template: DescriptorTemplate, keys?: KeyTriple | string[], path?: string): string;
|
|
9
|
-
export declare function getDescriptor(template: DescriptorTemplate, keys?: KeyTriple | string[], path?: string): Descriptor;
|
|
10
|
-
export declare function getDescriptorMap(template: DescriptorTemplate, keys?: KeyTriple | string[]): DescriptorMap;
|
|
11
|
-
//# sourceMappingURL=descriptor.utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.utils.d.ts","sourceRoot":"","sources":["../../../../test/core/descriptor/descriptor.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvD,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAE7D;AAMD,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GAMT,mBAAmB,CAAC;AAoBxB,wBAAgB,aAAa,CAAC,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAQxE;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAM,EAAsB,EAC9C,IAAI,SAAQ,GACX,MAAM,CAYR;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAM,EAAsB,EAC9C,IAAI,SAAQ,GACX,UAAU,CAEZ;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAM,EAAsB,GAC7C,aAAa,CAKf"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDefaultXPubs = getDefaultXPubs;
|
|
4
|
-
exports.getPsbtParams = getPsbtParams;
|
|
5
|
-
exports.getDescriptorString = getDescriptorString;
|
|
6
|
-
exports.getDescriptor = getDescriptor;
|
|
7
|
-
exports.getDescriptorMap = getDescriptorMap;
|
|
8
|
-
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
9
|
-
const key_utils_1 = require("../key.utils");
|
|
10
|
-
function getDefaultXPubs(seed) {
|
|
11
|
-
return (0, key_utils_1.getKeyTriple)(seed).map((k) => k.neutered().toBase58());
|
|
12
|
-
}
|
|
13
|
-
function toDescriptorMap(v) {
|
|
14
|
-
return new Map(Object.entries(v).map(([k, v]) => [k, wasm_miniscript_1.Descriptor.fromString(v, 'derivable')]));
|
|
15
|
-
}
|
|
16
|
-
function toXPub(k) {
|
|
17
|
-
if (typeof k === 'string') {
|
|
18
|
-
return k;
|
|
19
|
-
}
|
|
20
|
-
return k.neutered().toBase58();
|
|
21
|
-
}
|
|
22
|
-
function multi(m, n, keys, path) {
|
|
23
|
-
if (n < m) {
|
|
24
|
-
throw new Error(`Cannot create ${m} of ${n} multisig`);
|
|
25
|
-
}
|
|
26
|
-
if (keys.length < n) {
|
|
27
|
-
throw new Error(`Not enough keys for ${m} of ${n} multisig: keys.length=${keys.length}`);
|
|
28
|
-
}
|
|
29
|
-
keys = keys.slice(0, n);
|
|
30
|
-
return `multi(${m},${keys.map((k) => `${toXPub(k)}/${path}`).join(',')})`;
|
|
31
|
-
}
|
|
32
|
-
function getPsbtParams(t) {
|
|
33
|
-
switch (t) {
|
|
34
|
-
case 'Wsh2Of3':
|
|
35
|
-
case 'Wsh2Of2':
|
|
36
|
-
return {};
|
|
37
|
-
case 'ShWsh2Of3CltvDrop':
|
|
38
|
-
return { locktime: 1 };
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function getDescriptorString(template, keys = getDefaultXPubs(), path = '0/*') {
|
|
42
|
-
switch (template) {
|
|
43
|
-
case 'Wsh2Of3':
|
|
44
|
-
return `wsh(${multi(2, 3, keys, path)})`;
|
|
45
|
-
case 'ShWsh2Of3CltvDrop':
|
|
46
|
-
const { locktime } = getPsbtParams(template);
|
|
47
|
-
return `sh(wsh(and_v(r:after(${locktime}),${multi(2, 3, keys, path)})))`;
|
|
48
|
-
case 'Wsh2Of2': {
|
|
49
|
-
return `wsh(${multi(2, 2, keys, path)})`;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
throw new Error(`Unknown descriptor template: ${template}`);
|
|
53
|
-
}
|
|
54
|
-
function getDescriptor(template, keys = getDefaultXPubs(), path = '0/*') {
|
|
55
|
-
return wasm_miniscript_1.Descriptor.fromString(getDescriptorString(template, keys, path), 'derivable');
|
|
56
|
-
}
|
|
57
|
-
function getDescriptorMap(template, keys = getDefaultXPubs()) {
|
|
58
|
-
return toDescriptorMap({
|
|
59
|
-
external: getDescriptor(template, keys, '0/*').toString(),
|
|
60
|
-
internal: getDescriptor(template, keys, '1/*').toString(),
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvY29yZS9kZXNjcmlwdG9yL2Rlc2NyaXB0b3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSwwQ0FFQztBQWtDRCxzQ0FRQztBQUVELGtEQWdCQztBQUVELHNDQU1DO0FBRUQsNENBUUM7QUF0RkQsNERBQW9EO0FBSXBELDRDQUF1RDtBQUV2RCxTQUFnQixlQUFlLENBQUMsSUFBYTtJQUMzQyxPQUFPLElBQUEsd0JBQVksRUFBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBbUIsQ0FBQztBQUNsRixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsQ0FBeUI7SUFDaEQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQVlELFNBQVMsTUFBTSxDQUFDLENBQTBCO0lBQ3hDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsSUFBaUMsRUFBRSxJQUFZO0lBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQywwQkFBMEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4QixPQUFPLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFDNUUsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxDQUFxQjtJQUNqRCxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ1YsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFNBQVM7WUFDWixPQUFPLEVBQUUsQ0FBQztRQUNaLEtBQUssbUJBQW1CO1lBQ3RCLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FDakMsUUFBNEIsRUFDNUIsT0FBNkIsZUFBZSxFQUFFLEVBQzlDLElBQUksR0FBRyxLQUFLO0lBRVosUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNqQixLQUFLLFNBQVM7WUFDWixPQUFPLE9BQU8sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDM0MsS0FBSyxtQkFBbUI7WUFDdEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxPQUFPLHdCQUF3QixRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDM0UsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2YsT0FBTyxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUMzQixRQUE0QixFQUM1QixPQUE2QixlQUFlLEVBQUUsRUFDOUMsSUFBSSxHQUFHLEtBQUs7SUFFWixPQUFPLDRCQUFVLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUM5QixRQUE0QixFQUM1QixPQUE2QixlQUFlLEVBQUU7SUFFOUMsT0FBTyxlQUFlLENBQUM7UUFDckIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUN6RCxRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFO0tBQzFELENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmlwbGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwLCBQc2J0UGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2NvcmUvZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBnZXRLZXlUcmlwbGUsIEtleVRyaXBsZSB9IGZyb20gJy4uL2tleS51dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0WFB1YnMoc2VlZD86IHN0cmluZyk6IFRyaXBsZTxzdHJpbmc+IHtcbiAgcmV0dXJuIGdldEtleVRyaXBsZShzZWVkKS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPjtcbn1cblxuZnVuY3Rpb24gdG9EZXNjcmlwdG9yTWFwKHY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBEZXNjcmlwdG9yTWFwIHtcbiAgcmV0dXJuIG5ldyBNYXAoT2JqZWN0LmVudHJpZXModikubWFwKChbaywgdl0pID0+IFtrLCBEZXNjcmlwdG9yLmZyb21TdHJpbmcodiwgJ2Rlcml2YWJsZScpXSkpO1xufVxuXG5leHBvcnQgdHlwZSBEZXNjcmlwdG9yVGVtcGxhdGUgPVxuICB8ICdXc2gyT2YzJ1xuICB8ICdXc2gyT2YyJ1xuICAvKlxuICAgKiBUaGlzIGlzIGEgd3JhcHBlZCBzZWd3aXQgMm9mMyBtdWx0aXNpZyB0aGF0IGFsc28gdXNlcyBhIHJlbGF0aXZlIGxvY2t0aW1lIHdpdGhcbiAgICogYW4gT1BfRFJPUCAocmVxdWlyaW5nIGEgbWluaXNjcmlwdCBleHRlbnNpb24pLlxuICAgKiBJdCBpcyBiYXNpY2FsbHkgd2hhdCBpcyB1c2VkIGluIENvcmVEYW8gc3Rha2luZyB0cmFuc2FjdGlvbnMuXG4gICAqL1xuICB8ICdTaFdzaDJPZjNDbHR2RHJvcCc7XG5cbmZ1bmN0aW9uIHRvWFB1YihrOiBCSVAzMkludGVyZmFjZSB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgayA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gaztcbiAgfVxuICByZXR1cm4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCk7XG59XG5cbmZ1bmN0aW9uIG11bHRpKG06IG51bWJlciwgbjogbnVtYmVyLCBrZXlzOiBCSVAzMkludGVyZmFjZVtdIHwgc3RyaW5nW10sIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChuIDwgbSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNyZWF0ZSAke219IG9mICR7bn0gbXVsdGlzaWdgKTtcbiAgfVxuICBpZiAoa2V5cy5sZW5ndGggPCBuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBOb3QgZW5vdWdoIGtleXMgZm9yICR7bX0gb2YgJHtufSBtdWx0aXNpZzoga2V5cy5sZW5ndGg9JHtrZXlzLmxlbmd0aH1gKTtcbiAgfVxuICBrZXlzID0ga2V5cy5zbGljZSgwLCBuKTtcbiAgcmV0dXJuIGBtdWx0aSgke219LCR7a2V5cy5tYXAoKGspID0+IGAke3RvWFB1YihrKX0vJHtwYXRofWApLmpvaW4oJywnKX0pYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBzYnRQYXJhbXModDogRGVzY3JpcHRvclRlbXBsYXRlKTogUGFydGlhbDxQc2J0UGFyYW1zPiB7XG4gIHN3aXRjaCAodCkge1xuICAgIGNhc2UgJ1dzaDJPZjMnOlxuICAgIGNhc2UgJ1dzaDJPZjInOlxuICAgICAgcmV0dXJuIHt9O1xuICAgIGNhc2UgJ1NoV3NoMk9mM0NsdHZEcm9wJzpcbiAgICAgIHJldHVybiB7IGxvY2t0aW1lOiAxIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JTdHJpbmcoXG4gIHRlbXBsYXRlOiBEZXNjcmlwdG9yVGVtcGxhdGUsXG4gIGtleXM6IEtleVRyaXBsZSB8IHN0cmluZ1tdID0gZ2V0RGVmYXVsdFhQdWJzKCksXG4gIHBhdGggPSAnMC8qJ1xuKTogc3RyaW5nIHtcbiAgc3dpdGNoICh0ZW1wbGF0ZSkge1xuICAgIGNhc2UgJ1dzaDJPZjMnOlxuICAgICAgcmV0dXJuIGB3c2goJHttdWx0aSgyLCAzLCBrZXlzLCBwYXRoKX0pYDtcbiAgICBjYXNlICdTaFdzaDJPZjNDbHR2RHJvcCc6XG4gICAgICBjb25zdCB7IGxvY2t0aW1lIH0gPSBnZXRQc2J0UGFyYW1zKHRlbXBsYXRlKTtcbiAgICAgIHJldHVybiBgc2god3NoKGFuZF92KHI6YWZ0ZXIoJHtsb2NrdGltZX0pLCR7bXVsdGkoMiwgMywga2V5cywgcGF0aCl9KSkpYDtcbiAgICBjYXNlICdXc2gyT2YyJzoge1xuICAgICAgcmV0dXJuIGB3c2goJHttdWx0aSgyLCAyLCBrZXlzLCBwYXRoKX0pYDtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGRlc2NyaXB0b3IgdGVtcGxhdGU6ICR7dGVtcGxhdGV9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yKFxuICB0ZW1wbGF0ZTogRGVzY3JpcHRvclRlbXBsYXRlLFxuICBrZXlzOiBLZXlUcmlwbGUgfCBzdHJpbmdbXSA9IGdldERlZmF1bHRYUHVicygpLFxuICBwYXRoID0gJzAvKidcbik6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGdldERlc2NyaXB0b3JTdHJpbmcodGVtcGxhdGUsIGtleXMsIHBhdGgpLCAnZGVyaXZhYmxlJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yTWFwKFxuICB0ZW1wbGF0ZTogRGVzY3JpcHRvclRlbXBsYXRlLFxuICBrZXlzOiBLZXlUcmlwbGUgfCBzdHJpbmdbXSA9IGdldERlZmF1bHRYUHVicygpXG4pOiBEZXNjcmlwdG9yTWFwIHtcbiAgcmV0dXJuIHRvRGVzY3JpcHRvck1hcCh7XG4gICAgZXh0ZXJuYWw6IGdldERlc2NyaXB0b3IodGVtcGxhdGUsIGtleXMsICcwLyonKS50b1N0cmluZygpLFxuICAgIGludGVybmFsOiBnZXREZXNjcmlwdG9yKHRlbXBsYXRlLCBrZXlzLCAnMS8qJykudG9TdHJpbmcoKSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualSize.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/VirtualSize.ts"],"names":[],"mappings":""}
|
|
@@ -1,78 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const assert = __importStar(require("assert"));
|
|
37
|
-
const VirtualSize_1 = require("../../../../src/core/descriptor/VirtualSize");
|
|
38
|
-
const descriptor_utils_1 = require("../descriptor.utils");
|
|
39
|
-
describe('VirtualSize', function () {
|
|
40
|
-
describe('getInputVSizesForDescriptorWallet', function () {
|
|
41
|
-
it('returns the input virtual sizes for a descriptor wallet', function () {
|
|
42
|
-
assert.deepStrictEqual((0, VirtualSize_1.getInputVSizesForDescriptors)(new Map([
|
|
43
|
-
['foo', (0, descriptor_utils_1.getDescriptor)('Wsh2Of2')],
|
|
44
|
-
['bar', (0, descriptor_utils_1.getDescriptor)('Wsh2Of2')],
|
|
45
|
-
])), {
|
|
46
|
-
foo: 96,
|
|
47
|
-
bar: 96,
|
|
48
|
-
});
|
|
49
|
-
assert.deepStrictEqual((0, VirtualSize_1.getInputVSizesForDescriptors)((0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3')), {
|
|
50
|
-
external: 105,
|
|
51
|
-
internal: 105,
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe('getChangeOutputVSizesForDescriptor', function () {
|
|
56
|
-
it('returns the output virtual sizes for a descriptor', function () {
|
|
57
|
-
assert.deepStrictEqual((0, VirtualSize_1.getChangeOutputVSizesForDescriptor)((0, descriptor_utils_1.getDescriptor)('Wsh2Of2')), {
|
|
58
|
-
inputVSize: 96,
|
|
59
|
-
outputVSize: 34,
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
describe('getVirtualSize', function () {
|
|
64
|
-
it('returns expected virtual size', function () {
|
|
65
|
-
assert.deepStrictEqual((0, VirtualSize_1.getVirtualSize)({
|
|
66
|
-
inputs: [{ descriptorName: 'internal' }],
|
|
67
|
-
outputs: [{ script: Buffer.alloc(32) }],
|
|
68
|
-
}, (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3')), 157);
|
|
69
|
-
const descriptor = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3');
|
|
70
|
-
assert.deepStrictEqual((0, VirtualSize_1.getVirtualSize)({
|
|
71
|
-
/* as proof we can pass 10_000 inputs */
|
|
72
|
-
inputs: Array.from({ length: 10000 }).map(() => descriptor),
|
|
73
|
-
outputs: [{ script: Buffer.alloc(32) }],
|
|
74
|
-
}), 1050052);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlydHVhbFNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L2NvcmUvZGVzY3JpcHRvci9wc2J0L1ZpcnR1YWxTaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDZFQUlxRDtBQUNyRCwwREFBc0U7QUFFdEUsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixRQUFRLENBQUMsbUNBQW1DLEVBQUU7UUFDNUMsRUFBRSxDQUFDLHlEQUF5RCxFQUFFO1lBQzVELE1BQU0sQ0FBQyxlQUFlLENBQ3BCLElBQUEsMENBQTRCLEVBQzFCLElBQUksR0FBRyxDQUFDO2dCQUNOLENBQUMsS0FBSyxFQUFFLElBQUEsZ0NBQWEsRUFBQyxTQUFTLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxLQUFLLEVBQUUsSUFBQSxnQ0FBYSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2xDLENBQUMsQ0FDSCxFQUNEO2dCQUNFLEdBQUcsRUFBRSxFQUFFO2dCQUNQLEdBQUcsRUFBRSxFQUFFO2FBQ1IsQ0FDRixDQUFDO1lBQ0YsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLDBDQUE0QixFQUFDLElBQUEsbUNBQWdCLEVBQUMsU0FBUyxDQUFDLENBQUMsRUFBRTtnQkFDaEYsUUFBUSxFQUFFLEdBQUc7Z0JBQ2IsUUFBUSxFQUFFLEdBQUc7YUFDZCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG9DQUFvQyxFQUFFO1FBQzdDLEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtZQUN0RCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsZ0RBQWtDLEVBQUMsSUFBQSxnQ0FBYSxFQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ25GLFVBQVUsRUFBRSxFQUFFO2dCQUNkLFdBQVcsRUFBRSxFQUFFO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsZ0JBQWdCLEVBQUU7UUFDekIsRUFBRSxDQUFDLCtCQUErQixFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxlQUFlLENBQ3BCLElBQUEsNEJBQWMsRUFDWjtnQkFDRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3hDLEVBQ0QsSUFBQSxtQ0FBZ0IsRUFBQyxTQUFTLENBQUMsQ0FDNUIsRUFDRCxHQUFHLENBQ0osQ0FBQztZQUVGLE1BQU0sVUFBVSxHQUFHLElBQUEsZ0NBQWEsRUFBQyxTQUFTLENBQUMsQ0FBQztZQUU1QyxNQUFNLENBQUMsZUFBZSxDQUNwQixJQUFBLDRCQUFjLEVBQUM7Z0JBQ2Isd0NBQXdDO2dCQUN4QyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7Z0JBQzVELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUN4QyxDQUFDLEVBQ0YsT0FBUyxDQUNWLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHtcbiAgZ2V0Q2hhbmdlT3V0cHV0VlNpemVzRm9yRGVzY3JpcHRvcixcbiAgZ2V0SW5wdXRWU2l6ZXNGb3JEZXNjcmlwdG9ycyxcbiAgZ2V0VmlydHVhbFNpemUsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9jb3JlL2Rlc2NyaXB0b3IvVmlydHVhbFNpemUnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvciwgZ2V0RGVzY3JpcHRvck1hcCB9IGZyb20gJy4uL2Rlc2NyaXB0b3IudXRpbHMnO1xuXG5kZXNjcmliZSgnVmlydHVhbFNpemUnLCBmdW5jdGlvbiAoKSB7XG4gIGRlc2NyaWJlKCdnZXRJbnB1dFZTaXplc0ZvckRlc2NyaXB0b3JXYWxsZXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3JldHVybnMgdGhlIGlucHV0IHZpcnR1YWwgc2l6ZXMgZm9yIGEgZGVzY3JpcHRvciB3YWxsZXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgICBnZXRJbnB1dFZTaXplc0ZvckRlc2NyaXB0b3JzKFxuICAgICAgICAgIG5ldyBNYXAoW1xuICAgICAgICAgICAgWydmb28nLCBnZXREZXNjcmlwdG9yKCdXc2gyT2YyJyldLFxuICAgICAgICAgICAgWydiYXInLCBnZXREZXNjcmlwdG9yKCdXc2gyT2YyJyldLFxuICAgICAgICAgIF0pXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICBmb286IDk2LFxuICAgICAgICAgIGJhcjogOTYsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdldElucHV0VlNpemVzRm9yRGVzY3JpcHRvcnMoZ2V0RGVzY3JpcHRvck1hcCgnV3NoMk9mMycpKSwge1xuICAgICAgICBleHRlcm5hbDogMTA1LFxuICAgICAgICBpbnRlcm5hbDogMTA1LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRDaGFuZ2VPdXRwdXRWU2l6ZXNGb3JEZXNjcmlwdG9yJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdyZXR1cm5zIHRoZSBvdXRwdXQgdmlydHVhbCBzaXplcyBmb3IgYSBkZXNjcmlwdG9yJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChnZXRDaGFuZ2VPdXRwdXRWU2l6ZXNGb3JEZXNjcmlwdG9yKGdldERlc2NyaXB0b3IoJ1dzaDJPZjInKSksIHtcbiAgICAgICAgaW5wdXRWU2l6ZTogOTYsXG4gICAgICAgIG91dHB1dFZTaXplOiAzNCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0VmlydHVhbFNpemUnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3JldHVybnMgZXhwZWN0ZWQgdmlydHVhbCBzaXplJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChcbiAgICAgICAgZ2V0VmlydHVhbFNpemUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgaW5wdXRzOiBbeyBkZXNjcmlwdG9yTmFtZTogJ2ludGVybmFsJyB9XSxcbiAgICAgICAgICAgIG91dHB1dHM6IFt7IHNjcmlwdDogQnVmZmVyLmFsbG9jKDMyKSB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldERlc2NyaXB0b3JNYXAoJ1dzaDJPZjMnKVxuICAgICAgICApLFxuICAgICAgICAxNTdcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBnZXREZXNjcmlwdG9yKCdXc2gyT2YzJyk7XG5cbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgICAgIGdldFZpcnR1YWxTaXplKHtcbiAgICAgICAgICAvKiBhcyBwcm9vZiB3ZSBjYW4gcGFzcyAxMF8wMDAgaW5wdXRzICovXG4gICAgICAgICAgaW5wdXRzOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMF8wMDAgfSkubWFwKCgpID0+IGRlc2NyaXB0b3IpLFxuICAgICAgICAgIG91dHB1dHM6IFt7IHNjcmlwdDogQnVmZmVyLmFsbG9jKDMyKSB9XSxcbiAgICAgICAgfSksXG4gICAgICAgIDFfMDUwXzA1MlxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assertSatisfiable.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/assertSatisfiable.ts"],"names":[],"mappings":""}
|
|
@@ -1,56 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const assert = __importStar(require("assert"));
|
|
37
|
-
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
38
|
-
const descriptor_utils_1 = require("../descriptor.utils");
|
|
39
|
-
const assertSatisfiable_1 = require("../../../../src/core/descriptor/psbt/assertSatisfiable");
|
|
40
|
-
function d(s) {
|
|
41
|
-
return wasm_miniscript_1.Descriptor.fromString(s, 'derivable');
|
|
42
|
-
}
|
|
43
|
-
describe('assertSatisfiable', function () {
|
|
44
|
-
describe('getRequiredLocktime', function () {
|
|
45
|
-
const xpubs = (0, descriptor_utils_1.getDefaultXPubs)();
|
|
46
|
-
it('has expected result', function () {
|
|
47
|
-
// OP_DROP
|
|
48
|
-
assert.strictEqual((0, assertSatisfiable_1.getRequiredLocktime)(d(`wsh(and_v(r:after(100),pk(${xpubs[0]})))`)), 100);
|
|
49
|
-
// OP_VERIFY
|
|
50
|
-
assert.strictEqual((0, assertSatisfiable_1.getRequiredLocktime)(d(`wsh(and_v(v:after(100),pk(${xpubs[0]})))`)), 100);
|
|
51
|
-
// no locktime at all
|
|
52
|
-
assert.strictEqual((0, assertSatisfiable_1.getRequiredLocktime)(d(`wsh(pk(${xpubs[0]}))`)), undefined);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0U2F0aXNmaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L2NvcmUvZGVzY3JpcHRvci9wc2J0L2Fzc2VydFNhdGlzZmlhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDREQUFvRDtBQUVwRCwwREFBc0Q7QUFDdEQsOEZBQTZGO0FBRTdGLFNBQVMsQ0FBQyxDQUFDLENBQVM7SUFDbEIsT0FBTyw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtJQUM1QixRQUFRLENBQUMscUJBQXFCLEVBQUU7UUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBQSxrQ0FBZSxHQUFFLENBQUM7UUFDaEMsRUFBRSxDQUFDLHFCQUFxQixFQUFFO1lBQ3hCLFVBQVU7WUFDVixNQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsdUNBQW1CLEVBQUMsQ0FBQyxDQUFDLDZCQUE2QixLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUYsWUFBWTtZQUNaLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBQSx1Q0FBbUIsRUFBQyxDQUFDLENBQUMsNkJBQTZCLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM1RixxQkFBcUI7WUFDckIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLHVDQUFtQixFQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG5pbXBvcnQgeyBnZXREZWZhdWx0WFB1YnMgfSBmcm9tICcuLi9kZXNjcmlwdG9yLnV0aWxzJztcbmltcG9ydCB7IGdldFJlcXVpcmVkTG9ja3RpbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvY29yZS9kZXNjcmlwdG9yL3BzYnQvYXNzZXJ0U2F0aXNmaWFibGUnO1xuXG5mdW5jdGlvbiBkKHM6IHN0cmluZyk6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKHMsICdkZXJpdmFibGUnKTtcbn1cblxuZGVzY3JpYmUoJ2Fzc2VydFNhdGlzZmlhYmxlJywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZ2V0UmVxdWlyZWRMb2NrdGltZScsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB4cHVicyA9IGdldERlZmF1bHRYUHVicygpO1xuICAgIGl0KCdoYXMgZXhwZWN0ZWQgcmVzdWx0JywgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gT1BfRFJPUFxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldFJlcXVpcmVkTG9ja3RpbWUoZChgd3NoKGFuZF92KHI6YWZ0ZXIoMTAwKSxwaygke3hwdWJzWzBdfSkpKWApKSwgMTAwKTtcbiAgICAgIC8vIE9QX1ZFUklGWVxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldFJlcXVpcmVkTG9ja3RpbWUoZChgd3NoKGFuZF92KHY6YWZ0ZXIoMTAwKSxwaygke3hwdWJzWzBdfSkpKWApKSwgMTAwKTtcbiAgICAgIC8vIG5vIGxvY2t0aW1lIGF0IGFsbFxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldFJlcXVpcmVkTG9ja3RpbWUoZChgd3NoKHBrKCR7eHB1YnNbMF19KSlgKSksIHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createPsbt.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/createPsbt.ts"],"names":[],"mappings":""}
|
|
@@ -1,85 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const assert = __importStar(require("assert"));
|
|
37
|
-
const utxolib = __importStar(require("@bitgo/utxo-lib"));
|
|
38
|
-
const descriptor_utils_1 = require("../descriptor.utils");
|
|
39
|
-
const fixtures_utils_1 = require("../../fixtures.utils");
|
|
40
|
-
const descriptor_1 = require("../../../../src/core/descriptor");
|
|
41
|
-
const key_utils_1 = require("../../key.utils");
|
|
42
|
-
const mock_utils_1 = require("./mock.utils");
|
|
43
|
-
const psbt_utils_1 = require("./psbt.utils");
|
|
44
|
-
async function assertEqualsFixture(t, filename, value) {
|
|
45
|
-
filename = __dirname + '/fixtures/' + t + '.' + filename;
|
|
46
|
-
if (value instanceof Buffer) {
|
|
47
|
-
return assert.deepStrictEqual(value.toString('hex'), (await (0, fixtures_utils_1.getFixture)(filename, value)).toString('hex'));
|
|
48
|
-
}
|
|
49
|
-
if (value instanceof utxolib.Psbt) {
|
|
50
|
-
return assert.deepStrictEqual((0, psbt_utils_1.toPlainObjectFromPsbt)(value), await (0, fixtures_utils_1.getFixture)(filename, (0, psbt_utils_1.toPlainObjectFromPsbt)(value)));
|
|
51
|
-
}
|
|
52
|
-
if (value instanceof utxolib.Transaction) {
|
|
53
|
-
return assert.deepStrictEqual((0, psbt_utils_1.toPlainObjectFromTx)(value), await (0, fixtures_utils_1.getFixture)(filename, (0, psbt_utils_1.toPlainObjectFromTx)(value)));
|
|
54
|
-
}
|
|
55
|
-
throw new Error(`unknown value type: ${typeof value}`);
|
|
56
|
-
}
|
|
57
|
-
function describeCreatePsbt(t) {
|
|
58
|
-
describe(`createPsbt ${t}`, function () {
|
|
59
|
-
const keysA = (0, key_utils_1.getKeyTriple)('a');
|
|
60
|
-
function getSignedPsbt(psbt, keys) {
|
|
61
|
-
const cloned = utxolib.bitgo.createPsbtFromBuffer(psbt.toBuffer(), psbt.network);
|
|
62
|
-
for (const key of keys) {
|
|
63
|
-
cloned.signAllInputsHD(key);
|
|
64
|
-
}
|
|
65
|
-
return cloned;
|
|
66
|
-
}
|
|
67
|
-
it('creates psbt with expected properties', async function () {
|
|
68
|
-
const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)(t, (0, descriptor_utils_1.getPsbtParams)(t));
|
|
69
|
-
await assertEqualsFixture(t, 'createPsbt.json', psbt);
|
|
70
|
-
const psbtSignedA = getSignedPsbt(psbt, keysA.slice(0, 1));
|
|
71
|
-
await assertEqualsFixture(t, 'createPsbtSignedA.json', psbtSignedA);
|
|
72
|
-
const psbtSignedAB = getSignedPsbt(psbt, keysA.slice(0, 2));
|
|
73
|
-
await assertEqualsFixture(t, 'createPsbtSignedAB.json', psbtSignedAB);
|
|
74
|
-
const psbtFinal = psbtSignedAB.clone();
|
|
75
|
-
(0, descriptor_1.finalizePsbt)(psbtFinal);
|
|
76
|
-
await assertEqualsFixture(t, 'createPsbtFinal.json', psbtFinal);
|
|
77
|
-
const networkTx = psbtFinal.extractTransaction();
|
|
78
|
-
await assertEqualsFixture(t, 'createPsbtFinalTx.json', networkTx);
|
|
79
|
-
await assertEqualsFixture(t, 'createPsbtFinalTx.hex', networkTx.toBuffer());
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
describeCreatePsbt('Wsh2Of3');
|
|
84
|
-
describeCreatePsbt('ShWsh2Of3CltvDrop');
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvY29yZS9kZXNjcmlwdG9yL3BzYnQvY3JlYXRlUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyx5REFBMkM7QUFHM0MsMERBQXdFO0FBQ3hFLHlEQUFrRDtBQUNsRCxnRUFBK0Q7QUFDL0QsK0NBQStDO0FBRS9DLDZDQUFxRTtBQUNyRSw2Q0FBMEU7QUFFMUUsS0FBSyxVQUFVLG1CQUFtQixDQUFDLENBQXFCLEVBQUUsUUFBZ0IsRUFBRSxLQUFjO0lBQ3hGLFFBQVEsR0FBRyxTQUFTLEdBQUcsWUFBWSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO0lBQ3pELElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO1FBQzVCLE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFBLDJCQUFVLEVBQVMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELElBQUksS0FBSyxZQUFZLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQzNCLElBQUEsa0NBQXFCLEVBQUMsS0FBSyxDQUFDLEVBQzVCLE1BQU0sSUFBQSwyQkFBVSxFQUFDLFFBQVEsRUFBRSxJQUFBLGtDQUFxQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxLQUFLLFlBQVksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLGdDQUFtQixFQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sSUFBQSwyQkFBVSxFQUFDLFFBQVEsRUFBRSxJQUFBLGdDQUFtQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLENBQXFCO0lBQy9DLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUEsd0JBQVksRUFBQyxHQUFHLENBQUMsQ0FBQztRQUVoQyxTQUFTLGFBQWEsQ0FBQyxJQUE0QixFQUFFLElBQXNCO1lBQ3pFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEtBQUs7WUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBQSxrREFBcUMsRUFBQyxDQUFDLEVBQUUsSUFBQSxnQ0FBYSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEUsTUFBTSxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RCxNQUFNLG1CQUFtQixDQUFDLENBQUMsRUFBRSx5QkFBeUIsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN0RSxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkMsSUFBQSx5QkFBWSxFQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2pELE1BQU0sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUIsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IERlc2NyaXB0b3JUZW1wbGF0ZSwgZ2V0UHNidFBhcmFtcyB9IGZyb20gJy4uL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgZ2V0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2ZpeHR1cmVzLnV0aWxzJztcbmltcG9ydCB7IGZpbmFsaXplUHNidCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9jb3JlL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi4vLi4va2V5LnV0aWxzJztcblxuaW1wb3J0IHsgbW9ja1BzYnREZWZhdWx0V2l0aERlc2NyaXB0b3JUZW1wbGF0ZSB9IGZyb20gJy4vbW9jay51dGlscyc7XG5pbXBvcnQgeyB0b1BsYWluT2JqZWN0RnJvbVBzYnQsIHRvUGxhaW5PYmplY3RGcm9tVHggfSBmcm9tICcuL3BzYnQudXRpbHMnO1xuXG5hc3luYyBmdW5jdGlvbiBhc3NlcnRFcXVhbHNGaXh0dXJlKHQ6IERlc2NyaXB0b3JUZW1wbGF0ZSwgZmlsZW5hbWU6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcbiAgZmlsZW5hbWUgPSBfX2Rpcm5hbWUgKyAnL2ZpeHR1cmVzLycgKyB0ICsgJy4nICsgZmlsZW5hbWU7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgIHJldHVybiBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHZhbHVlLnRvU3RyaW5nKCdoZXgnKSwgKGF3YWl0IGdldEZpeHR1cmU8QnVmZmVyPihmaWxlbmFtZSwgdmFsdWUpKS50b1N0cmluZygnaGV4JykpO1xuICB9XG5cbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgdXR4b2xpYi5Qc2J0KSB7XG4gICAgcmV0dXJuIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgICB0b1BsYWluT2JqZWN0RnJvbVBzYnQodmFsdWUpLFxuICAgICAgYXdhaXQgZ2V0Rml4dHVyZShmaWxlbmFtZSwgdG9QbGFpbk9iamVjdEZyb21Qc2J0KHZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgdXR4b2xpYi5UcmFuc2FjdGlvbikge1xuICAgIHJldHVybiBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRvUGxhaW5PYmplY3RGcm9tVHgodmFsdWUpLCBhd2FpdCBnZXRGaXh0dXJlKGZpbGVuYW1lLCB0b1BsYWluT2JqZWN0RnJvbVR4KHZhbHVlKSkpO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIHZhbHVlIHR5cGU6ICR7dHlwZW9mIHZhbHVlfWApO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZUNyZWF0ZVBzYnQodDogRGVzY3JpcHRvclRlbXBsYXRlKSB7XG4gIGRlc2NyaWJlKGBjcmVhdGVQc2J0ICR7dH1gLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3Qga2V5c0EgPSBnZXRLZXlUcmlwbGUoJ2EnKTtcblxuICAgIGZ1bmN0aW9uIGdldFNpZ25lZFBzYnQocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCwga2V5czogQklQMzJJbnRlcmZhY2VbXSkge1xuICAgICAgY29uc3QgY2xvbmVkID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUJ1ZmZlcihwc2J0LnRvQnVmZmVyKCksIHBzYnQubmV0d29yayk7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgIGNsb25lZC5zaWduQWxsSW5wdXRzSEQoa2V5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjbG9uZWQ7XG4gICAgfVxuXG4gICAgaXQoJ2NyZWF0ZXMgcHNidCB3aXRoIGV4cGVjdGVkIHByb3BlcnRpZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwc2J0ID0gbW9ja1BzYnREZWZhdWx0V2l0aERlc2NyaXB0b3JUZW1wbGF0ZSh0LCBnZXRQc2J0UGFyYW1zKHQpKTtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsc0ZpeHR1cmUodCwgJ2NyZWF0ZVBzYnQuanNvbicsIHBzYnQpO1xuICAgICAgY29uc3QgcHNidFNpZ25lZEEgPSBnZXRTaWduZWRQc2J0KHBzYnQsIGtleXNBLnNsaWNlKDAsIDEpKTtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsc0ZpeHR1cmUodCwgJ2NyZWF0ZVBzYnRTaWduZWRBLmpzb24nLCBwc2J0U2lnbmVkQSk7XG4gICAgICBjb25zdCBwc2J0U2lnbmVkQUIgPSBnZXRTaWduZWRQc2J0KHBzYnQsIGtleXNBLnNsaWNlKDAsIDIpKTtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsc0ZpeHR1cmUodCwgJ2NyZWF0ZVBzYnRTaWduZWRBQi5qc29uJywgcHNidFNpZ25lZEFCKTtcbiAgICAgIGNvbnN0IHBzYnRGaW5hbCA9IHBzYnRTaWduZWRBQi5jbG9uZSgpO1xuICAgICAgZmluYWxpemVQc2J0KHBzYnRGaW5hbCk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbHNGaXh0dXJlKHQsICdjcmVhdGVQc2J0RmluYWwuanNvbicsIHBzYnRGaW5hbCk7XG4gICAgICBjb25zdCBuZXR3b3JrVHggPSBwc2J0RmluYWwuZXh0cmFjdFRyYW5zYWN0aW9uKCk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbHNGaXh0dXJlKHQsICdjcmVhdGVQc2J0RmluYWxUeC5qc29uJywgbmV0d29ya1R4KTtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsc0ZpeHR1cmUodCwgJ2NyZWF0ZVBzYnRGaW5hbFR4LmhleCcsIG5ldHdvcmtUeC50b0J1ZmZlcigpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmRlc2NyaWJlQ3JlYXRlUHNidCgnV3NoMk9mMycpO1xuZGVzY3JpYmVDcmVhdGVQc2J0KCdTaFdzaDJPZjNDbHR2RHJvcCcpO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"findDescriptors.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/findDescriptors.ts"],"names":[],"mappings":""}
|
|
@@ -1,66 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const assert = __importStar(require("assert"));
|
|
37
|
-
const descriptor_utils_1 = require("../descriptor.utils");
|
|
38
|
-
const findDescriptors_1 = require("../../../../src/core/descriptor/psbt/findDescriptors");
|
|
39
|
-
const mock_utils_1 = require("./mock.utils");
|
|
40
|
-
describe('parsePsbt', function () {
|
|
41
|
-
const descriptorA = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('a'));
|
|
42
|
-
const descriptorB = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('b'));
|
|
43
|
-
const descriptorMap = new Map([
|
|
44
|
-
['a', descriptorA],
|
|
45
|
-
['b', descriptorB],
|
|
46
|
-
]);
|
|
47
|
-
it('finds descriptors for PSBT inputs/outputs', function () {
|
|
48
|
-
const psbt = (0, mock_utils_1.mockPsbt)([
|
|
49
|
-
{ descriptor: descriptorA, index: 0 },
|
|
50
|
-
{ descriptor: descriptorB, index: 1, id: { vout: 1 } },
|
|
51
|
-
], [{ descriptor: descriptorA, index: 2, value: BigInt(1e6) }]);
|
|
52
|
-
assert.deepStrictEqual((0, findDescriptors_1.findDescriptorForInput)(psbt.data.inputs[0], descriptorMap), {
|
|
53
|
-
descriptor: descriptorA,
|
|
54
|
-
index: 0,
|
|
55
|
-
});
|
|
56
|
-
assert.deepStrictEqual((0, findDescriptors_1.findDescriptorForInput)(psbt.data.inputs[1], descriptorMap), {
|
|
57
|
-
descriptor: descriptorB,
|
|
58
|
-
index: 1,
|
|
59
|
-
});
|
|
60
|
-
assert.deepStrictEqual((0, findDescriptors_1.findDescriptorForOutput)(psbt.txOutputs[0].script, psbt.data.outputs[0], descriptorMap), {
|
|
61
|
-
descriptor: descriptorA,
|
|
62
|
-
index: 2,
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZERlc2NyaXB0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC9jb3JlL2Rlc2NyaXB0b3IvcHNidC9maW5kRGVzY3JpcHRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFFakMsMERBQXFFO0FBQ3JFLDBGQUF1SDtBQUV2SCw2Q0FBd0M7QUFFeEMsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFBLGdDQUFhLEVBQUMsU0FBUyxFQUFFLElBQUEsa0NBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sV0FBVyxHQUFHLElBQUEsZ0NBQWEsRUFBQyxTQUFTLEVBQUUsSUFBQSxrQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDNUIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDO1FBQ2xCLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQztLQUNuQixDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUU7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBQSxxQkFBUSxFQUNuQjtZQUNFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQ3JDLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtTQUN2RCxFQUNELENBQUMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQzVELENBQUM7UUFFRixNQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsd0NBQXNCLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDakYsVUFBVSxFQUFFLFdBQVc7WUFDdkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsd0NBQXNCLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDakYsVUFBVSxFQUFFLFdBQVc7WUFDdkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUEseUNBQXVCLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDN0csVUFBVSxFQUFFLFdBQVc7WUFDdkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGdldERlZmF1bHRYUHVicywgZ2V0RGVzY3JpcHRvciB9IGZyb20gJy4uL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgZmluZERlc2NyaXB0b3JGb3JJbnB1dCwgZmluZERlc2NyaXB0b3JGb3JPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvY29yZS9kZXNjcmlwdG9yL3BzYnQvZmluZERlc2NyaXB0b3JzJztcblxuaW1wb3J0IHsgbW9ja1BzYnQgfSBmcm9tICcuL21vY2sudXRpbHMnO1xuXG5kZXNjcmliZSgncGFyc2VQc2J0JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBkZXNjcmlwdG9yQSA9IGdldERlc2NyaXB0b3IoJ1dzaDJPZjMnLCBnZXREZWZhdWx0WFB1YnMoJ2EnKSk7XG4gIGNvbnN0IGRlc2NyaXB0b3JCID0gZ2V0RGVzY3JpcHRvcignV3NoMk9mMycsIGdldERlZmF1bHRYUHVicygnYicpKTtcbiAgY29uc3QgZGVzY3JpcHRvck1hcCA9IG5ldyBNYXAoW1xuICAgIFsnYScsIGRlc2NyaXB0b3JBXSxcbiAgICBbJ2InLCBkZXNjcmlwdG9yQl0sXG4gIF0pO1xuXG4gIGl0KCdmaW5kcyBkZXNjcmlwdG9ycyBmb3IgUFNCVCBpbnB1dHMvb3V0cHV0cycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwc2J0ID0gbW9ja1BzYnQoXG4gICAgICBbXG4gICAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvckEsIGluZGV4OiAwIH0sXG4gICAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvckIsIGluZGV4OiAxLCBpZDogeyB2b3V0OiAxIH0gfSxcbiAgICAgIF0sXG4gICAgICBbeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yQSwgaW5kZXg6IDIsIHZhbHVlOiBCaWdJbnQoMWU2KSB9XVxuICAgICk7XG5cbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZpbmREZXNjcmlwdG9yRm9ySW5wdXQocHNidC5kYXRhLmlucHV0c1swXSwgZGVzY3JpcHRvck1hcCksIHtcbiAgICAgIGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JBLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmaW5kRGVzY3JpcHRvckZvcklucHV0KHBzYnQuZGF0YS5pbnB1dHNbMV0sIGRlc2NyaXB0b3JNYXApLCB7XG4gICAgICBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yQixcbiAgICAgIGluZGV4OiAxLFxuICAgIH0pO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZmluZERlc2NyaXB0b3JGb3JPdXRwdXQocHNidC50eE91dHB1dHNbMF0uc2NyaXB0LCBwc2J0LmRhdGEub3V0cHV0c1swXSwgZGVzY3JpcHRvck1hcCksIHtcbiAgICAgIGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JBLFxuICAgICAgaW5kZXg6IDIsXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
2
|
-
import * as utxolib from '@bitgo/utxo-lib';
|
|
3
|
-
import { PsbtParams } from '../../../../src/core/descriptor';
|
|
4
|
-
import { DerivedDescriptorWalletOutput } from '../../../../src/core/descriptor/Output';
|
|
5
|
-
import { DescriptorTemplate } from '../descriptor.utils';
|
|
6
|
-
type MockOutputIdParams = {
|
|
7
|
-
hash?: string;
|
|
8
|
-
vout?: number;
|
|
9
|
-
};
|
|
10
|
-
type BaseMockDescriptorOutputParams = {
|
|
11
|
-
id?: MockOutputIdParams;
|
|
12
|
-
index?: number;
|
|
13
|
-
value?: bigint;
|
|
14
|
-
};
|
|
15
|
-
export declare function mockDerivedDescriptorWalletOutput(descriptor: Descriptor, outputParams?: BaseMockDescriptorOutputParams): DerivedDescriptorWalletOutput;
|
|
16
|
-
type MockInput = BaseMockDescriptorOutputParams & {
|
|
17
|
-
index: number;
|
|
18
|
-
descriptor: Descriptor;
|
|
19
|
-
};
|
|
20
|
-
type MockOutput = {
|
|
21
|
-
descriptor: Descriptor;
|
|
22
|
-
index: number;
|
|
23
|
-
value: bigint;
|
|
24
|
-
external?: boolean;
|
|
25
|
-
};
|
|
26
|
-
export declare function mockPsbt(inputs: MockInput[], outputs: MockOutput[], params?: Partial<PsbtParams>): utxolib.bitgo.UtxoPsbt;
|
|
27
|
-
export declare function mockPsbtDefault({ descriptorSelf, descriptorOther, params, }?: {
|
|
28
|
-
descriptorSelf?: Descriptor;
|
|
29
|
-
descriptorOther?: Descriptor;
|
|
30
|
-
params?: Partial<PsbtParams>;
|
|
31
|
-
}): utxolib.bitgo.UtxoPsbt;
|
|
32
|
-
export declare function mockPsbtDefaultWithDescriptorTemplate(t: DescriptorTemplate, params?: Partial<PsbtParams>): utxolib.bitgo.UtxoPsbt;
|
|
33
|
-
export {};
|
|
34
|
-
//# sourceMappingURL=mock.utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock.utils.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/mock.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAgD,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAkC,MAAM,qBAAqB,CAAC;AAEzF,KAAK,kBAAkB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,KAAK,8BAA8B,GAAG;IACpC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAWF,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,EACtB,YAAY,GAAE,8BAAmC,GAChD,6BAA6B,CAY/B;AAED,KAAK,SAAS,GAAG,8BAA8B,GAAG;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAaxB;AAED,wBAAgB,eAAe,CAAC,EAC9B,cAA+D,EAC/D,eAAgE,EAChE,MAAW,GACZ,GAAE;IACD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACzB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAY9B;AAED,wBAAgB,qCAAqC,CACnD,CAAC,EAAE,kBAAkB,EACrB,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAMxB"}
|
|
@@ -1,87 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.mockDerivedDescriptorWalletOutput = mockDerivedDescriptorWalletOutput;
|
|
37
|
-
exports.mockPsbt = mockPsbt;
|
|
38
|
-
exports.mockPsbtDefault = mockPsbtDefault;
|
|
39
|
-
exports.mockPsbtDefaultWithDescriptorTemplate = mockPsbtDefaultWithDescriptorTemplate;
|
|
40
|
-
const utxolib = __importStar(require("@bitgo/utxo-lib"));
|
|
41
|
-
const descriptor_1 = require("../../../../src/core/descriptor");
|
|
42
|
-
const descriptor_utils_1 = require("../descriptor.utils");
|
|
43
|
-
function mockOutputId(id) {
|
|
44
|
-
const hash = id?.hash ?? Buffer.alloc(32, 1).toString('hex');
|
|
45
|
-
const vout = id?.vout ?? 0;
|
|
46
|
-
return { hash, vout };
|
|
47
|
-
}
|
|
48
|
-
function mockDerivedDescriptorWalletOutput(descriptor, outputParams = {}) {
|
|
49
|
-
const { value = BigInt(1e6) } = outputParams;
|
|
50
|
-
const { hash, vout } = mockOutputId(outputParams.id);
|
|
51
|
-
return {
|
|
52
|
-
hash,
|
|
53
|
-
index: vout,
|
|
54
|
-
witnessUtxo: {
|
|
55
|
-
script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(descriptor),
|
|
56
|
-
value,
|
|
57
|
-
},
|
|
58
|
-
descriptor,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
function mockPsbt(inputs, outputs, params = {}) {
|
|
62
|
-
return (0, descriptor_1.createPsbt)({ ...params, network: params.network ?? utxolib.networks.bitcoin }, inputs.map((i) => mockDerivedDescriptorWalletOutput(i.descriptor.atDerivationIndex(i.index), i)), outputs.map((o) => {
|
|
63
|
-
const derivedDescriptor = o.descriptor.atDerivationIndex(o.index);
|
|
64
|
-
return {
|
|
65
|
-
script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(derivedDescriptor),
|
|
66
|
-
value: o.value,
|
|
67
|
-
descriptor: o.external ? undefined : derivedDescriptor,
|
|
68
|
-
};
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
function mockPsbtDefault({ descriptorSelf = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('a')), descriptorOther = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('b')), params = {}, } = {}) {
|
|
72
|
-
return mockPsbt([
|
|
73
|
-
{ descriptor: descriptorSelf, index: 0 },
|
|
74
|
-
{ descriptor: descriptorSelf, index: 1, id: { vout: 1 } },
|
|
75
|
-
], [
|
|
76
|
-
{ descriptor: descriptorOther, index: 0, value: BigInt(4e5), external: true },
|
|
77
|
-
{ descriptor: descriptorSelf, index: 0, value: BigInt(4e5) },
|
|
78
|
-
], params);
|
|
79
|
-
}
|
|
80
|
-
function mockPsbtDefaultWithDescriptorTemplate(t, params = {}) {
|
|
81
|
-
return mockPsbtDefault({
|
|
82
|
-
descriptorSelf: (0, descriptor_utils_1.getDescriptor)(t, (0, descriptor_utils_1.getDefaultXPubs)('a')),
|
|
83
|
-
descriptorOther: (0, descriptor_utils_1.getDescriptor)(t, (0, descriptor_utils_1.getDefaultXPubs)('b')),
|
|
84
|
-
params,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSw4RUFlQztBQWNELDRCQWlCQztBQUVELDBDQW9CQztBQUVELHNGQVNDO0FBdEdELHlEQUEyQztBQUUzQyxnRUFBMkc7QUFFM0csMERBQXlGO0FBVXpGLFNBQVMsWUFBWSxDQUFDLEVBQXVCO0lBSTNDLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQWdCLGlDQUFpQyxDQUMvQyxVQUFzQixFQUN0QixlQUErQyxFQUFFO0lBRWpELE1BQU0sRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDO0lBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLEtBQUssRUFBRSxJQUFJO1FBQ1gsV0FBVyxFQUFFO1lBQ1gsTUFBTSxFQUFFLElBQUEsNkNBQWdDLEVBQUMsVUFBVSxDQUFDO1lBQ3BELEtBQUs7U0FDTjtRQUNELFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQztBQWNELFNBQWdCLFFBQVEsQ0FDdEIsTUFBbUIsRUFDbkIsT0FBcUIsRUFDckIsU0FBOEIsRUFBRTtJQUVoQyxPQUFPLElBQUEsdUJBQVUsRUFDZixFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQ2xFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ2hHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNoQixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBQSw2Q0FBZ0MsRUFBQyxpQkFBaUIsQ0FBQztZQUMzRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7WUFDZCxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7U0FDdkQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLEVBQzlCLGNBQWMsR0FBRyxJQUFBLGdDQUFhLEVBQUMsU0FBUyxFQUFFLElBQUEsa0NBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxFQUMvRCxlQUFlLEdBQUcsSUFBQSxnQ0FBYSxFQUFDLFNBQVMsRUFBRSxJQUFBLGtDQUFlLEVBQUMsR0FBRyxDQUFDLENBQUMsRUFDaEUsTUFBTSxHQUFHLEVBQUUsTUFLVCxFQUFFO0lBQ0osT0FBTyxRQUFRLENBQ2I7UUFDRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUN4QyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDMUQsRUFDRDtRQUNFLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUM3RSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0tBQzdELEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IscUNBQXFDLENBQ25ELENBQXFCLEVBQ3JCLFNBQThCLEVBQUU7SUFFaEMsT0FBTyxlQUFlLENBQUM7UUFDckIsY0FBYyxFQUFFLElBQUEsZ0NBQWEsRUFBQyxDQUFDLEVBQUUsSUFBQSxrQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELGVBQWUsRUFBRSxJQUFBLGdDQUFhLEVBQUMsQ0FBQyxFQUFFLElBQUEsa0NBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQztRQUN2RCxNQUFNO0tBQ1AsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IsIGNyZWF0ZVBzYnQsIFBzYnRQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvY29yZS9kZXNjcmlwdG9yJztcbmltcG9ydCB7IERlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2NvcmUvZGVzY3JpcHRvci9PdXRwdXQnO1xuaW1wb3J0IHsgRGVzY3JpcHRvclRlbXBsYXRlLCBnZXREZWZhdWx0WFB1YnMsIGdldERlc2NyaXB0b3IgfSBmcm9tICcuLi9kZXNjcmlwdG9yLnV0aWxzJztcblxudHlwZSBNb2NrT3V0cHV0SWRQYXJhbXMgPSB7IGhhc2g/OiBzdHJpbmc7IHZvdXQ/OiBudW1iZXIgfTtcblxudHlwZSBCYXNlTW9ja0Rlc2NyaXB0b3JPdXRwdXRQYXJhbXMgPSB7XG4gIGlkPzogTW9ja091dHB1dElkUGFyYW1zO1xuICBpbmRleD86IG51bWJlcjtcbiAgdmFsdWU/OiBiaWdpbnQ7XG59O1xuXG5mdW5jdGlvbiBtb2NrT3V0cHV0SWQoaWQ/OiBNb2NrT3V0cHV0SWRQYXJhbXMpOiB7XG4gIGhhc2g6IHN0cmluZztcbiAgdm91dDogbnVtYmVyO1xufSB7XG4gIGNvbnN0IGhhc2ggPSBpZD8uaGFzaCA/PyBCdWZmZXIuYWxsb2MoMzIsIDEpLnRvU3RyaW5nKCdoZXgnKTtcbiAgY29uc3Qgdm91dCA9IGlkPy52b3V0ID8/IDA7XG4gIHJldHVybiB7IGhhc2gsIHZvdXQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dChcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgb3V0cHV0UGFyYW1zOiBCYXNlTW9ja0Rlc2NyaXB0b3JPdXRwdXRQYXJhbXMgPSB7fVxuKTogRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQge1xuICBjb25zdCB7IHZhbHVlID0gQmlnSW50KDFlNikgfSA9IG91dHB1dFBhcmFtcztcbiAgY29uc3QgeyBoYXNoLCB2b3V0IH0gPSBtb2NrT3V0cHV0SWQob3V0cHV0UGFyYW1zLmlkKTtcbiAgcmV0dXJuIHtcbiAgICBoYXNoLFxuICAgIGluZGV4OiB2b3V0LFxuICAgIHdpdG5lc3NVdHhvOiB7XG4gICAgICBzY3JpcHQ6IGNyZWF0ZVNjcmlwdFB1YktleUZyb21EZXNjcmlwdG9yKGRlc2NyaXB0b3IpLFxuICAgICAgdmFsdWUsXG4gICAgfSxcbiAgICBkZXNjcmlwdG9yLFxuICB9O1xufVxuXG50eXBlIE1vY2tJbnB1dCA9IEJhc2VNb2NrRGVzY3JpcHRvck91dHB1dFBhcmFtcyAmIHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjtcbn07XG5cbnR5cGUgTW9ja091dHB1dCA9IHtcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdmFsdWU6IGJpZ2ludDtcbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQc2J0KFxuICBpbnB1dHM6IE1vY2tJbnB1dFtdLFxuICBvdXRwdXRzOiBNb2NrT3V0cHV0W10sXG4gIHBhcmFtczogUGFydGlhbDxQc2J0UGFyYW1zPiA9IHt9XG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgcmV0dXJuIGNyZWF0ZVBzYnQoXG4gICAgeyAuLi5wYXJhbXMsIG5ldHdvcms6IHBhcmFtcy5uZXR3b3JrID8/IHV0eG9saWIubmV0d29ya3MuYml0Y29pbiB9LFxuICAgIGlucHV0cy5tYXAoKGkpID0+IG1vY2tEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dChpLmRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgoaS5pbmRleCksIGkpKSxcbiAgICBvdXRwdXRzLm1hcCgobykgPT4ge1xuICAgICAgY29uc3QgZGVyaXZlZERlc2NyaXB0b3IgPSBvLmRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgoby5pbmRleCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzY3JpcHQ6IGNyZWF0ZVNjcmlwdFB1YktleUZyb21EZXNjcmlwdG9yKGRlcml2ZWREZXNjcmlwdG9yKSxcbiAgICAgICAgdmFsdWU6IG8udmFsdWUsXG4gICAgICAgIGRlc2NyaXB0b3I6IG8uZXh0ZXJuYWwgPyB1bmRlZmluZWQgOiBkZXJpdmVkRGVzY3JpcHRvcixcbiAgICAgIH07XG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQc2J0RGVmYXVsdCh7XG4gIGRlc2NyaXB0b3JTZWxmID0gZ2V0RGVzY3JpcHRvcignV3NoMk9mMycsIGdldERlZmF1bHRYUHVicygnYScpKSxcbiAgZGVzY3JpcHRvck90aGVyID0gZ2V0RGVzY3JpcHRvcignV3NoMk9mMycsIGdldERlZmF1bHRYUHVicygnYicpKSxcbiAgcGFyYW1zID0ge30sXG59OiB7XG4gIGRlc2NyaXB0b3JTZWxmPzogRGVzY3JpcHRvcjtcbiAgZGVzY3JpcHRvck90aGVyPzogRGVzY3JpcHRvcjtcbiAgcGFyYW1zPzogUGFydGlhbDxQc2J0UGFyYW1zPjtcbn0gPSB7fSk6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICByZXR1cm4gbW9ja1BzYnQoXG4gICAgW1xuICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yU2VsZiwgaW5kZXg6IDAgfSxcbiAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvclNlbGYsIGluZGV4OiAxLCBpZDogeyB2b3V0OiAxIH0gfSxcbiAgICBdLFxuICAgIFtcbiAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvck90aGVyLCBpbmRleDogMCwgdmFsdWU6IEJpZ0ludCg0ZTUpLCBleHRlcm5hbDogdHJ1ZSB9LFxuICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yU2VsZiwgaW5kZXg6IDAsIHZhbHVlOiBCaWdJbnQoNGU1KSB9LFxuICAgIF0sXG4gICAgcGFyYW1zXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlKFxuICB0OiBEZXNjcmlwdG9yVGVtcGxhdGUsXG4gIHBhcmFtczogUGFydGlhbDxQc2J0UGFyYW1zPiA9IHt9XG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgcmV0dXJuIG1vY2tQc2J0RGVmYXVsdCh7XG4gICAgZGVzY3JpcHRvclNlbGY6IGdldERlc2NyaXB0b3IodCwgZ2V0RGVmYXVsdFhQdWJzKCdhJykpLFxuICAgIGRlc2NyaXB0b3JPdGhlcjogZ2V0RGVzY3JpcHRvcih0LCBnZXREZWZhdWx0WFB1YnMoJ2InKSksXG4gICAgcGFyYW1zLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/parse.ts"],"names":[],"mappings":""}
|