@bitgo/abstract-utxo 9.5.0 → 9.8.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/.eslintrc.js +6 -0
- package/CHANGELOG.md +33 -0
- package/dist/src/abstractUtxoCoin.d.ts +36 -39
- package/dist/src/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/src/abstractUtxoCoin.js +9 -139
- package/dist/src/core/descriptor/psbt/assertSatisfiable.js +2 -3
- package/dist/src/core/descriptor/psbt/createPsbt.js +4 -5
- package/dist/src/core/descriptor/psbt/findDescriptors.js +2 -3
- package/dist/src/core/descriptor/psbt/parse.d.ts.map +1 -1
- package/dist/src/core/descriptor/psbt/parse.js +1 -1
- package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
- package/dist/src/descriptor/assertDescriptorWalletAddress.js +1 -1
- package/dist/src/descriptor/builder/builder.d.ts +1 -1
- package/dist/src/descriptor/builder/builder.d.ts.map +1 -1
- package/dist/src/descriptor/builder/builder.js +4 -2
- package/dist/src/descriptor/builder/parse.d.ts.map +1 -1
- package/dist/src/descriptor/builder/parse.js +34 -23
- package/dist/src/descriptor/descriptorWallet.d.ts +5 -5
- package/dist/src/descriptor/descriptorWallet.d.ts.map +1 -1
- package/dist/src/descriptor/descriptorWallet.js +1 -1
- package/dist/src/descriptor/index.d.ts +1 -0
- package/dist/src/descriptor/index.d.ts.map +1 -1
- package/dist/src/descriptor/index.js +4 -2
- package/dist/src/descriptor/validatePolicy.d.ts +1 -1
- package/dist/src/descriptor/validatePolicy.d.ts.map +1 -1
- package/dist/src/descriptor/validatePolicy.js +3 -3
- package/dist/src/index.d.ts +1 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -6
- package/dist/src/keychains.d.ts +43 -9
- package/dist/src/keychains.d.ts.map +1 -1
- package/dist/src/keychains.js +52 -9
- package/dist/src/recovery/RecoveryProvider.d.ts.map +1 -1
- package/dist/src/recovery/RecoveryProvider.js +1 -1
- package/dist/src/recovery/backupKeyRecovery.d.ts +4 -4
- package/dist/src/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/src/recovery/backupKeyRecovery.js +6 -7
- package/dist/src/recovery/crossChainRecovery.d.ts +1 -1
- package/dist/src/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/src/recovery/crossChainRecovery.js +4 -4
- package/dist/src/sign.d.ts.map +1 -1
- package/dist/src/sign.js +1 -1
- package/dist/src/transaction/common/verifyPayGoAmount.d.ts +1 -0
- package/dist/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
- package/dist/src/transaction/common/verifyPayGoAmount.js +1 -0
- package/dist/src/transaction/descriptor/index.d.ts +4 -0
- package/dist/src/transaction/descriptor/index.d.ts.map +1 -1
- package/dist/src/transaction/descriptor/index.js +10 -2
- package/dist/src/transaction/descriptor/outputDifference.d.ts +9 -9
- package/dist/src/transaction/descriptor/outputDifference.d.ts.map +1 -1
- package/dist/src/transaction/descriptor/outputDifference.js +1 -1
- package/dist/src/transaction/descriptor/parse.d.ts +10 -0
- package/dist/src/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/parse.js +115 -0
- package/dist/src/transaction/descriptor/parseToAmountType.d.ts +13 -0
- package/dist/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/parseToAmountType.js +57 -0
- package/dist/src/transaction/descriptor/recipient.d.ts +5 -0
- package/dist/src/transaction/descriptor/recipient.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/recipient.js +3 -0
- package/dist/src/transaction/descriptor/signPsbt.d.ts +25 -0
- package/dist/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/signPsbt.js +43 -0
- package/dist/src/transaction/descriptor/verifyTransaction.d.ts +33 -0
- package/dist/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/verifyTransaction.js +105 -0
- package/dist/src/transaction/explainTransaction.d.ts +1 -1
- package/dist/src/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/src/transaction/explainTransaction.js +15 -3
- package/dist/src/transaction/fetchInputs.js +2 -3
- package/dist/src/transaction/fixedScript/explainTransaction.js +7 -11
- package/dist/src/transaction/fixedScript/index.d.ts +2 -1
- package/dist/src/transaction/fixedScript/index.d.ts.map +1 -1
- package/dist/src/transaction/fixedScript/index.js +4 -2
- package/dist/src/transaction/fixedScript/parseOutput.d.ts +8 -4
- package/dist/src/transaction/fixedScript/parseOutput.d.ts.map +1 -1
- package/dist/src/transaction/fixedScript/parseOutput.js +2 -3
- package/dist/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/src/transaction/fixedScript/parseTransaction.js +8 -9
- package/dist/src/transaction/fixedScript/signTransaction.d.ts +17 -0
- package/dist/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/signTransaction.js +138 -0
- package/dist/src/transaction/fixedScript/verifyTransaction.js +2 -3
- package/dist/src/transaction/parseTransaction.js +3 -2
- package/dist/src/transaction/recipient.d.ts +1 -0
- package/dist/src/transaction/recipient.d.ts.map +1 -1
- package/dist/src/transaction/recipient.js +9 -1
- package/dist/src/transaction/signTransaction.d.ts +6 -0
- package/dist/src/transaction/signTransaction.d.ts.map +1 -0
- package/dist/src/transaction/signTransaction.js +102 -0
- package/dist/src/transaction/verifyTransaction.d.ts.map +1 -1
- package/dist/src/transaction/verifyTransaction.js +5 -2
- package/dist/src/verifyKey.d.ts +3 -2
- package/dist/src/verifyKey.d.ts.map +1 -1
- package/dist/src/verifyKey.js +3 -7
- package/dist/src/wallet.d.ts +12 -0
- package/dist/src/wallet.d.ts.map +1 -0
- package/dist/src/wallet.js +3 -0
- package/dist/test/core/descriptor/psbt/mock.utils.js +4 -6
- package/dist/test/core/descriptor/psbt/parse.js +3 -3
- package/dist/test/core/key.utils.d.ts.map +1 -1
- package/dist/test/core/key.utils.js +1 -1
- package/dist/test/core/toPlainObject.utils.d.ts +1 -1
- package/dist/test/core/toPlainObject.utils.d.ts.map +1 -1
- package/dist/test/core/toPlainObject.utils.js +3 -4
- package/dist/test/descriptor/builder.js +3 -1
- package/dist/test/descriptor/descriptorWallet.js +1 -1
- package/dist/test/transaction/descriptor/explainPsbt.js +3 -6
- package/dist/test/transaction/descriptor/fixtures.utils.d.ts +2 -0
- package/dist/test/transaction/descriptor/fixtures.utils.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/fixtures.utils.js +12 -0
- package/dist/test/transaction/descriptor/parse.d.ts +2 -0
- package/dist/test/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/parse.js +65 -0
- package/dist/test/transaction/descriptor/sign.d.ts +2 -0
- package/dist/test/transaction/descriptor/sign.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/sign.js +33 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPlainObject.utils.d.ts","sourceRoot":"","sources":["../../../test/core/toPlainObject.utils.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC;CACtD,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAErE;AA0CD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"toPlainObject.utils.d.ts","sourceRoot":"","sources":["../../../test/core/toPlainObject.utils.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC;CACtD,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAErE;AA0CD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,iBAAsB,EAAE,IAAI,GAAE,WAAW,EAAO,GAAG,OAAO,CAyCzG"}
|
|
@@ -15,11 +15,10 @@ function includePath(opts, path) {
|
|
|
15
15
|
return !opts.ignorePaths.some((ignorePath) => matchPath(path, ignorePath.split('.')));
|
|
16
16
|
}
|
|
17
17
|
function toPlainEntries(key, value, opts, path) {
|
|
18
|
-
var _a;
|
|
19
18
|
if (!includePath(opts, [...path, key])) {
|
|
20
19
|
return [];
|
|
21
20
|
}
|
|
22
|
-
if (value === undefined && (
|
|
21
|
+
if (value === undefined && (opts.skipUndefinedValues ?? true)) {
|
|
23
22
|
return [];
|
|
24
23
|
}
|
|
25
24
|
return [[key, toPlainObject(value, opts, [...path, key])]];
|
|
@@ -36,7 +35,7 @@ function toPlainObjectFromPropertyDescriptors(v, opts, path) {
|
|
|
36
35
|
return [];
|
|
37
36
|
}));
|
|
38
37
|
}
|
|
39
|
-
function toPlainObject(v, opts, path) {
|
|
38
|
+
function toPlainObject(v, opts = {}, path = []) {
|
|
40
39
|
if (opts.apply) {
|
|
41
40
|
const result = opts.apply(v, path);
|
|
42
41
|
if (result !== undefined) {
|
|
@@ -73,4 +72,4 @@ function toPlainObject(v, opts, path) {
|
|
|
73
72
|
}
|
|
74
73
|
throw new Error(`unknown v ${typeof v}`);
|
|
75
74
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9QbGFpbk9iamVjdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvY29yZS90b1BsYWluT2JqZWN0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsOEJBRUM7QUEwQ0Qsc0NBeUNDO0FBckZELFNBQWdCLFNBQVMsQ0FBQyxDQUFnQixFQUFFLENBQWdCO0lBQzFELE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQXVCLEVBQUUsSUFBbUI7SUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsR0FBVyxFQUNYLEtBQWEsRUFDYixJQUF1QixFQUN2QixJQUFtQjtJQUVuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxvQ0FBb0MsQ0FBQyxDQUFVLEVBQUUsSUFBdUIsRUFBRSxJQUFtQjtJQUNwRyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7UUFDeEQsSUFBSSxVQUFVLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsSUFBSSxPQUFPLFVBQVUsQ0FBQyxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDekMsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxDQUFVLEVBQUUsT0FBMEIsRUFBRSxFQUFFLE9BQXNCLEVBQUU7SUFDOUYsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6QixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNqQixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFdBQVc7WUFDZCxPQUFPLENBQUMsQ0FBQztRQUNYLEtBQUssUUFBUTtZQUNYLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssUUFBUTtZQUNYLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQ3BGLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLG9DQUFvQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgVG9QbGFpbk9iamVjdE9wdHMgPSB7XG4gIHByb3BlcnR5RGVzY3JpcHRvcnM/OiBib29sZWFuO1xuICBza2lwVW5kZWZpbmVkVmFsdWVzPzogYm9vbGVhbjtcbiAgaWdub3JlUGF0aHM/OiBzdHJpbmdbXSB8ICgocGF0aDogUGF0aEVsZW1lbnRbXSkgPT4gYm9vbGVhbik7XG4gIGFwcGx5PzogKHY6IHVua25vd24sIHBhdGg6IFBhdGhFbGVtZW50W10pID0+IHVua25vd247XG59O1xuZXhwb3J0IHR5cGUgUGF0aEVsZW1lbnQgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFBhdGgoYTogUGF0aEVsZW1lbnRbXSwgYjogUGF0aEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKGUsIGkpID0+IGUgPT09IGJbaV0pO1xufVxuXG5mdW5jdGlvbiBpbmNsdWRlUGF0aChvcHRzOiBUb1BsYWluT2JqZWN0T3B0cywgcGF0aDogUGF0aEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICBpZiAoIW9wdHMuaWdub3JlUGF0aHMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIG9wdHMuaWdub3JlUGF0aHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gIW9wdHMuaWdub3JlUGF0aHMocGF0aCk7XG4gIH1cbiAgcmV0dXJuICFvcHRzLmlnbm9yZVBhdGhzLnNvbWUoKGlnbm9yZVBhdGgpID0+IG1hdGNoUGF0aChwYXRoLCBpZ25vcmVQYXRoLnNwbGl0KCcuJykpKTtcbn1cblxuZnVuY3Rpb24gdG9QbGFpbkVudHJpZXMoXG4gIGtleTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nLFxuICBvcHRzOiBUb1BsYWluT2JqZWN0T3B0cyxcbiAgcGF0aDogUGF0aEVsZW1lbnRbXVxuKTogW10gfCBbW3N0cmluZywgdW5rbm93bl1dIHtcbiAgaWYgKCFpbmNsdWRlUGF0aChvcHRzLCBbLi4ucGF0aCwga2V5XSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgKG9wdHMuc2tpcFVuZGVmaW5lZFZhbHVlcyA/PyB0cnVlKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW1trZXksIHRvUGxhaW5PYmplY3QodmFsdWUsIG9wdHMsIFsuLi5wYXRoLCBrZXldKV1dO1xufVxuXG5mdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVByb3BlcnR5RGVzY3JpcHRvcnModjogdW5rbm93biwgb3B0czogVG9QbGFpbk9iamVjdE9wdHMsIHBhdGg6IFBhdGhFbGVtZW50W10pIHtcbiAgY29uc3QgZGVzY3JpcHRvcnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh2KTtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhkZXNjcmlwdG9ycykuZmxhdE1hcCgoW2tleSwgZGVzY3JpcHRvcl0pID0+IHtcbiAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRvUGxhaW5FbnRyaWVzKGtleSwgZGVzY3JpcHRvci52YWx1ZSwgb3B0cywgcGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IuZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0b1BsYWluRW50cmllcyhrZXksIGRlc2NyaXB0b3IuZ2V0LmNhbGwodiksIG9wdHMsIHBhdGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0KHY6IHVua25vd24sIG9wdHM6IFRvUGxhaW5PYmplY3RPcHRzID0ge30sIHBhdGg6IFBhdGhFbGVtZW50W10gPSBbXSk6IHVua25vd24ge1xuICBpZiAob3B0cy5hcHBseSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IG9wdHMuYXBwbHkodiwgcGF0aCk7XG4gICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAodHlwZW9mIHYpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgIHJldHVybiB2O1xuICAgIGNhc2UgJ2JpZ2ludCc6XG4gICAgICByZXR1cm4gdi50b1N0cmluZygpO1xuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh2ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHYpKSB7XG4gICAgcmV0dXJuIHYudG9TdHJpbmcoJ2hleCcpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgcmV0dXJuIHYubWFwKChlLCBpKSA9PiB0b1BsYWluT2JqZWN0KGUsIG9wdHMsIFsuLi5wYXRoLCBpXSkpO1xuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh2KS5mbGF0TWFwKChba2V5LCB2YWx1ZV0pID0+IHRvUGxhaW5FbnRyaWVzKGtleSwgdmFsdWUsIG9wdHMsIHBhdGgpKVxuICAgICk7XG4gICAgaWYgKG9wdHMucHJvcGVydHlEZXNjcmlwdG9ycykge1xuICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIHRvUGxhaW5PYmplY3RGcm9tUHJvcGVydHlEZXNjcmlwdG9ycyh2LCBvcHRzLCBwYXRoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIHYgJHt0eXBlb2Ygdn1gKTtcbn1cbiJdfQ==
|
|
@@ -46,6 +46,7 @@ function getDescriptorBuilderForType(name) {
|
|
|
46
46
|
keys: keys.slice(0, name === 'Wsh2Of3' ? 3 : 2),
|
|
47
47
|
path: '0/*',
|
|
48
48
|
};
|
|
49
|
+
case 'Wsh2Of3CltvDrop':
|
|
49
50
|
case 'ShWsh2Of3CltvDrop':
|
|
50
51
|
return {
|
|
51
52
|
name,
|
|
@@ -66,5 +67,6 @@ function describeForName(n) {
|
|
|
66
67
|
}
|
|
67
68
|
describeForName('Wsh2Of2');
|
|
68
69
|
describeForName('Wsh2Of3');
|
|
70
|
+
describeForName('Wsh2Of3CltvDrop');
|
|
69
71
|
describeForName('ShWsh2Of3CltvDrop');
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZGVzY3JpcHRvci9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDBEQUE0RztBQUM1RyxpREFBaUQ7QUFFakQsU0FBUywyQkFBMkIsQ0FBQyxJQUErQjtJQUNsRSxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFZLEdBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNaLE9BQU87Z0JBQ0wsSUFBSTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLElBQUksRUFBRSxLQUFLO2FBQ1osQ0FBQztRQUNKLEtBQUssaUJBQWlCLENBQUM7UUFDdkIsS0FBSyxtQkFBbUI7WUFDdEIsT0FBTztnQkFDTCxJQUFJO2dCQUNKLElBQUk7Z0JBQ0osSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsUUFBUSxFQUFFLENBQUM7YUFDWixDQUFDO0lBQ04sQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxDQUE0QjtJQUNuRCxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtRQUN0QyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUEsa0NBQXdCLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBQSx5QkFBZSxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDM0IsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNCLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ25DLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IHBhcnNlRGVzY3JpcHRvciwgRGVzY3JpcHRvckJ1aWxkZXIsIGdldERlc2NyaXB0b3JGcm9tQnVpbGRlciB9IGZyb20gJy4uLy4uL3NyYy9kZXNjcmlwdG9yL2J1aWxkZXInO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi4vY29yZS9rZXkudXRpbHMnO1xuXG5mdW5jdGlvbiBnZXREZXNjcmlwdG9yQnVpbGRlckZvclR5cGUobmFtZTogRGVzY3JpcHRvckJ1aWxkZXJbJ25hbWUnXSk6IERlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3Qga2V5cyA9IGdldEtleVRyaXBsZSgpLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpKTtcbiAgc3dpdGNoIChuYW1lKSB7XG4gICAgY2FzZSAnV3NoMk9mMic6XG4gICAgY2FzZSAnV3NoMk9mMyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBrZXlzOiBrZXlzLnNsaWNlKDAsIG5hbWUgPT09ICdXc2gyT2YzJyA/IDMgOiAyKSxcbiAgICAgICAgcGF0aDogJzAvKicsXG4gICAgICB9O1xuICAgIGNhc2UgJ1dzaDJPZjNDbHR2RHJvcCc6XG4gICAgY2FzZSAnU2hXc2gyT2YzQ2x0dkRyb3AnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAga2V5cyxcbiAgICAgICAgcGF0aDogJzAvKicsXG4gICAgICAgIGxvY2t0aW1lOiAxLFxuICAgICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZXNjcmliZUZvck5hbWUobjogRGVzY3JpcHRvckJ1aWxkZXJbJ25hbWUnXSkge1xuICBkZXNjcmliZShgRGVzY3JpcHRvckJ1aWxkZXIgJHtufWAsICgpID0+IHtcbiAgICBpdCgncGFyc2VzIGRlc2NyaXB0b3IgdGVtcGxhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JUeXBlKG4pO1xuICAgICAgY29uc3QgZGVzY3JpcHRvciA9IGdldERlc2NyaXB0b3JGcm9tQnVpbGRlcihidWlsZGVyKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRlciwgcGFyc2VEZXNjcmlwdG9yKGRlc2NyaXB0b3IpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmRlc2NyaWJlRm9yTmFtZSgnV3NoMk9mMicpO1xuZGVzY3JpYmVGb3JOYW1lKCdXc2gyT2YzJyk7XG5kZXNjcmliZUZvck5hbWUoJ1dzaDJPZjNDbHR2RHJvcCcpO1xuZGVzY3JpYmVGb3JOYW1lKCdTaFdzaDJPZjNDbHR2RHJvcCcpO1xuIl19
|
|
@@ -24,4 +24,4 @@ describe('isDescriptorWalletData', function () {
|
|
|
24
24
|
assert_1.default.strictEqual((0, descriptor_1.getDescriptorMapFromWallet)(wallet, (0, keychains_1.toBip32Triple)((0, descriptor_utils_1.getDefaultXPubs)()), 'allowAll').size, descriptorMap.size);
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvcldhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZGVzY3JpcHRvci9kZXNjcmlwdG9yV2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLHFEQUFzRjtBQUV0RiwwRUFBd0Y7QUFDeEYsbURBQW9EO0FBRXBELFFBQVEsQ0FBQyx3QkFBd0IsRUFBRTtJQUNqQyxNQUFNLGFBQWEsR0FBRyxJQUFBLG1DQUFnQixFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtRQUN0RCxNQUFNLE1BQU0sR0FBZTtZQUN6QixZQUFZO2dCQUNWLE9BQU87b0JBQ0wsV0FBVyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDckUsSUFBSTt3QkFDSixLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRTtxQkFDN0IsQ0FBQyxDQUFDO2lCQUNKLENBQUM7WUFDSixDQUFDO1NBQ3VCLENBQUM7UUFFM0IsSUFBQSxnQkFBTSxFQUFDLElBQUEsK0JBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuQyxnQkFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBQSx1Q0FBMEIsRUFBQyxNQUFNLEVBQUUsSUFBQSx5QkFBYSxFQUFDLElBQUEsa0NBQWUsR0FBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUNyRixhQUFhLENBQUMsSUFBSSxDQUNuQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGlzRGVzY3JpcHRvcldhbGxldCB9IGZyb20gJy4uLy4uL3NyYy9kZXNjcmlwdG9yJztcbmltcG9ydCB7IFV0eG9XYWxsZXQgfSBmcm9tICcuLi8uLi9zcmMvd2FsbGV0JztcbmltcG9ydCB7IGdldERlZmF1bHRYUHVicywgZ2V0RGVzY3JpcHRvck1hcCB9IGZyb20gJy4uL2NvcmUvZGVzY3JpcHRvci9kZXNjcmlwdG9yLnV0aWxzJztcbmltcG9ydCB7IHRvQmlwMzJUcmlwbGUgfSBmcm9tICcuLi8uLi9zcmMva2V5Y2hhaW5zJztcblxuZGVzY3JpYmUoJ2lzRGVzY3JpcHRvcldhbGxldERhdGEnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwKCdXc2gyT2YzJyk7XG4gIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgZm9yIHZhbGlkIERlc2NyaXB0b3JXYWxsZXREYXRhJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldDogVXR4b1dhbGxldCA9IHtcbiAgICAgIGNvaW5TcGVjaWZpYygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkZXNjcmlwdG9yczogWy4uLmRlc2NyaXB0b3JNYXAuZW50cmllcygpXS5tYXAoKFtuYW1lLCBkZXNjcmlwdG9yXSkgPT4gKHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogZGVzY3JpcHRvci50b1N0cmluZygpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSBhcyB1bmtub3duIGFzIFV0eG9XYWxsZXQ7XG5cbiAgICBhc3NlcnQoaXNEZXNjcmlwdG9yV2FsbGV0KHdhbGxldCkpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgIGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0KHdhbGxldCwgdG9CaXAzMlRyaXBsZShnZXREZWZhdWx0WFB1YnMoKSksICdhbGxvd0FsbCcpLnNpemUsXG4gICAgICBkZXNjcmlwdG9yTWFwLnNpemVcbiAgICApO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -7,11 +7,8 @@ const assert_1 = __importDefault(require("assert"));
|
|
|
7
7
|
const descriptor_1 = require("../../../src/transaction/descriptor");
|
|
8
8
|
const mock_utils_1 = require("../../core/descriptor/psbt/mock.utils");
|
|
9
9
|
const descriptor_utils_1 = require("../../core/descriptor/descriptor.utils");
|
|
10
|
-
const fixtures_utils_1 = require("../../core/fixtures.utils");
|
|
11
10
|
const key_utils_1 = require("../../core/key.utils");
|
|
12
|
-
|
|
13
|
-
assert_1.default.deepStrictEqual(v, await (0, fixtures_utils_1.getFixture)(__dirname + '/fixtures/' + name, v));
|
|
14
|
-
}
|
|
11
|
+
const fixtures_utils_1 = require("./fixtures.utils");
|
|
15
12
|
function assertSignatureCount(expl, signatures, inputSignatures) {
|
|
16
13
|
assert_1.default.deepStrictEqual(expl.signatures, signatures);
|
|
17
14
|
assert_1.default.deepStrictEqual(expl.inputSignatures, inputSignatures);
|
|
@@ -21,11 +18,11 @@ describe('explainPsbt', function () {
|
|
|
21
18
|
const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)('Wsh2Of3');
|
|
22
19
|
const keys = (0, key_utils_1.getKeyTriple)('a');
|
|
23
20
|
const descriptorMap = (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3', keys);
|
|
24
|
-
await assertEqualFixture('explainPsbt.a.json', (0, descriptor_1.explainPsbt)(psbt, descriptorMap));
|
|
21
|
+
await (0, fixtures_utils_1.assertEqualFixture)('explainPsbt.a.json', (0, descriptor_1.explainPsbt)(psbt, descriptorMap));
|
|
25
22
|
psbt.signAllInputsHD(keys[0]);
|
|
26
23
|
assertSignatureCount((0, descriptor_1.explainPsbt)(psbt, descriptorMap), 1, [1, 1]);
|
|
27
24
|
psbt.signAllInputsHD(keys[1]);
|
|
28
25
|
assertSignatureCount((0, descriptor_1.explainPsbt)(psbt, descriptorMap), 2, [2, 2]);
|
|
29
26
|
});
|
|
30
27
|
});
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZXhwbGFpblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFHNUIsb0VBQWtFO0FBQ2xFLHNFQUE4RjtBQUM5Riw2RUFBMEU7QUFDMUUsb0RBQW9EO0FBRXBELHFEQUFzRDtBQUV0RCxTQUFTLG9CQUFvQixDQUFDLElBQTRCLEVBQUUsVUFBa0IsRUFBRSxlQUF5QjtJQUN2RyxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUs7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBQSxrREFBcUMsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFZLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxhQUFhLEdBQUcsSUFBQSxtQ0FBZ0IsRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFBLG1DQUFrQixFQUFDLG9CQUFvQixFQUFFLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLG9CQUFvQixDQUFDLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixvQkFBb0IsQ0FBQyxJQUFBLHdCQUFXLEVBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgZXhwbGFpblBzYnQgfSBmcm9tICcuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscyc7XG5pbXBvcnQgeyBnZXREZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi4vLi4vY29yZS9rZXkudXRpbHMnO1xuXG5pbXBvcnQgeyBhc3NlcnRFcXVhbEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzLnV0aWxzJztcblxuZnVuY3Rpb24gYXNzZXJ0U2lnbmF0dXJlQ291bnQoZXhwbDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiwgc2lnbmF0dXJlczogbnVtYmVyLCBpbnB1dFNpZ25hdHVyZXM6IG51bWJlcltdKSB7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZXhwbC5zaWduYXR1cmVzLCBzaWduYXR1cmVzKTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChleHBsLmlucHV0U2lnbmF0dXJlcywgaW5wdXRTaWduYXR1cmVzKTtcbn1cblxuZGVzY3JpYmUoJ2V4cGxhaW5Qc2J0JywgZnVuY3Rpb24gKCkge1xuICBpdCgnaGFzIGV4cGVjdGVkIHZhbHVlcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwc2J0ID0gbW9ja1BzYnREZWZhdWx0V2l0aERlc2NyaXB0b3JUZW1wbGF0ZSgnV3NoMk9mMycpO1xuICAgIGNvbnN0IGtleXMgPSBnZXRLZXlUcmlwbGUoJ2EnKTtcbiAgICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcCgnV3NoMk9mMycsIGtleXMpO1xuICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZSgnZXhwbGFpblBzYnQuYS5qc29uJywgZXhwbGFpblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCkpO1xuICAgIHBzYnQuc2lnbkFsbElucHV0c0hEKGtleXNbMF0pO1xuICAgIGFzc2VydFNpZ25hdHVyZUNvdW50KGV4cGxhaW5Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXApLCAxLCBbMSwgMV0pO1xuICAgIHBzYnQuc2lnbkFsbElucHV0c0hEKGtleXNbMV0pO1xuICAgIGFzc2VydFNpZ25hdHVyZUNvdW50KGV4cGxhaW5Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXApLCAyLCBbMiwgMl0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.utils.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/fixtures.utils.ts"],"names":[],"mappings":"AAIA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
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.assertEqualFixture = assertEqualFixture;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
const fixtures_utils_1 = require("../../core/fixtures.utils");
|
|
9
|
+
async function assertEqualFixture(name, v) {
|
|
10
|
+
assert_1.default.deepStrictEqual(v, await (0, fixtures_utils_1.getFixture)(__dirname + '/fixtures/' + name, v));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZml4dHVyZXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSxnREFFQztBQU5ELG9EQUE0QjtBQUU1Qiw4REFBdUQ7QUFFaEQsS0FBSyxVQUFVLGtCQUFrQixDQUFDLElBQVksRUFBRSxDQUFVO0lBQy9ELGdCQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUEsMkJBQVUsRUFBQyxTQUFTLEdBQUcsWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGdldEZpeHR1cmUgfSBmcm9tICcuLi8uLi9jb3JlL2ZpeHR1cmVzLnV0aWxzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzc2VydEVxdWFsRml4dHVyZShuYW1lOiBzdHJpbmcsIHY6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh2LCBhd2FpdCBnZXRGaXh0dXJlKF9fZGlybmFtZSArICcvZml4dHVyZXMvJyArIG5hbWUsIHYpKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/parse.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
function toBaseOutput(output, amountType) {
|
|
15
|
+
(0, assert_1.default)(output.address);
|
|
16
|
+
return {
|
|
17
|
+
address: output.address,
|
|
18
|
+
amount: (0, parseToAmountType_1.toAmountType)(output.value, amountType),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function toBaseOutputBigInt(output) {
|
|
22
|
+
return toBaseOutput(output, 'bigint');
|
|
23
|
+
}
|
|
24
|
+
function toBaseOutputString(output) {
|
|
25
|
+
return toBaseOutput(output, 'string');
|
|
26
|
+
}
|
|
27
|
+
describe('parse', function () {
|
|
28
|
+
const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)('Wsh2Of3');
|
|
29
|
+
function getBaseParsedTransaction(recipients) {
|
|
30
|
+
return (0, parse_1.toBaseParsedTransactionOutputsFromPsbt)(psbt, (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('a')), recipients.map(toBaseOutputString), psbt.network);
|
|
31
|
+
}
|
|
32
|
+
describe('toBase', function () {
|
|
33
|
+
it('should return the correct BaseParsedTransactionOutputs', async function () {
|
|
34
|
+
await (0, fixtures_utils_1.assertEqualFixture)('parseWithoutRecipients.json', (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([])));
|
|
35
|
+
await (0, fixtures_utils_1.assertEqualFixture)('parseWithRecipient.json', (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([psbt.txOutputs[0]])));
|
|
36
|
+
});
|
|
37
|
+
function assertEqualValidationError(actual, expected) {
|
|
38
|
+
if (actual instanceof verifyTransaction_1.AggregateValidationError) {
|
|
39
|
+
assert_1.default.deepStrictEqual(actual.errors, expected.errors);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
throw new Error('unexpected error type');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function assertValidationError(f, expected) {
|
|
46
|
+
assert_1.default.throws(f, (err) => {
|
|
47
|
+
assertEqualValidationError(err, expected);
|
|
48
|
+
return true;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
it('should throw expected errors', function () {
|
|
52
|
+
assertValidationError(() => (0, verifyTransaction_1.assertExpectedOutputDifference)(getBaseParsedTransaction([])), new verifyTransaction_1.AggregateValidationError([
|
|
53
|
+
new verifyTransaction_1.ErrorImplicitExternalOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[0]), external: true }]),
|
|
54
|
+
]));
|
|
55
|
+
assertValidationError(() => (0, verifyTransaction_1.assertExpectedOutputDifference)(getBaseParsedTransaction([])), new verifyTransaction_1.AggregateValidationError([
|
|
56
|
+
new verifyTransaction_1.ErrorImplicitExternalOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[0]), external: true }]),
|
|
57
|
+
]));
|
|
58
|
+
assertValidationError(() => (0, verifyTransaction_1.assertExpectedOutputDifference)(getBaseParsedTransaction([psbt.txOutputs[1]])), new verifyTransaction_1.AggregateValidationError([
|
|
59
|
+
new verifyTransaction_1.ErrorMissingOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[1]), external: true }]),
|
|
60
|
+
new verifyTransaction_1.ErrorImplicitExternalOutputs([{ ...toBaseOutputBigInt(psbt.txOutputs[0]), external: true }]),
|
|
61
|
+
]));
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFJNUIsc0VBQThGO0FBQzlGLHFFQUF3SDtBQUN4SCw2RUFBMkY7QUFDM0Ysd0VBQStEO0FBQy9ELDZGQUsrRDtBQUMvRCw2RkFBcUY7QUFHckYscURBQXNEO0FBRXRELFNBQVMsWUFBWSxDQUFVLE1BQTRCLEVBQUUsVUFBK0I7SUFDMUYsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sRUFBRSxJQUFBLGdDQUFZLEVBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQVk7S0FDMUQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQTRCO0lBQ3RELE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxNQUE0QjtJQUN0RCxPQUFPLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFFBQVEsQ0FBQyxPQUFPLEVBQUU7SUFDaEIsTUFBTSxJQUFJLEdBQUcsSUFBQSxrREFBcUMsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUU5RCxTQUFTLHdCQUF3QixDQUFDLFVBQWtDO1FBQ2xFLE9BQU8sSUFBQSw4Q0FBc0MsRUFDM0MsSUFBSSxFQUNKLElBQUEsbUNBQWdCLEVBQUMsU0FBUyxFQUFFLElBQUEsa0NBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxFQUNqRCxVQUFVLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQ2xDLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBUSxFQUFFO1FBQ2pCLEVBQUUsQ0FBQyx3REFBd0QsRUFBRSxLQUFLO1lBQ2hFLE1BQU0sSUFBQSxtQ0FBa0IsRUFBQyw2QkFBNkIsRUFBRSxJQUFBLG1DQUFhLEVBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JHLE1BQU0sSUFBQSxtQ0FBa0IsRUFBQyx5QkFBeUIsRUFBRSxJQUFBLG1DQUFhLEVBQUMsd0JBQXdCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEgsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLDBCQUEwQixDQUFDLE1BQWUsRUFBRSxRQUFrQztZQUNyRixJQUFJLE1BQU0sWUFBWSw0Q0FBd0IsRUFBRSxDQUFDO2dCQUMvQyxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDO1FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxDQUFhLEVBQUUsUUFBa0M7WUFDOUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3ZCLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxFQUFFLENBQUMsOEJBQThCLEVBQUU7WUFDakMscUJBQXFCLENBQ25CLEdBQUcsRUFBRSxDQUFDLElBQUEsa0RBQThCLEVBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDbEUsSUFBSSw0Q0FBd0IsQ0FBQztnQkFDM0IsSUFBSSxnREFBNEIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDakcsQ0FBQyxDQUNILENBQUM7WUFFRixxQkFBcUIsQ0FDbkIsR0FBRyxFQUFFLENBQUMsSUFBQSxrREFBOEIsRUFBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNsRSxJQUFJLDRDQUF3QixDQUFDO2dCQUMzQixJQUFJLGdEQUE0QixDQUFDLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNqRyxDQUFDLENBQ0gsQ0FBQztZQUVGLHFCQUFxQixDQUNuQixHQUFHLEVBQUUsQ0FBQyxJQUFBLGtEQUE4QixFQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkYsSUFBSSw0Q0FBd0IsQ0FBQztnQkFDM0IsSUFBSSx1Q0FBbUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3ZGLElBQUksZ0RBQTRCLENBQUMsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2pHLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2Rlc2NyaXB0b3IvcHNidC9tb2NrLnV0aWxzJztcbmltcG9ydCB7IFBhcnNlZE91dHB1dHNCaWdJbnQsIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0IH0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2UnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFhQdWJzLCBnZXREZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgdG9QbGFpbk9iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvdG9QbGFpbk9iamVjdC51dGlscyc7XG5pbXBvcnQge1xuICBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IsXG4gIGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZSxcbiAgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyxcbiAgRXJyb3JNaXNzaW5nT3V0cHV0cyxcbn0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvdmVyaWZ5VHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgdG9BbW91bnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2VUb0Ftb3VudFR5cGUnO1xuaW1wb3J0IHsgQmFzZU91dHB1dCB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7IGFzc2VydEVxdWFsRml4dHVyZSB9IGZyb20gJy4vZml4dHVyZXMudXRpbHMnO1xuXG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXQ8VE51bWJlcj4ob3V0cHV0OiB1dHhvbGliLlBzYnRUeE91dHB1dCwgYW1vdW50VHlwZTogJ2JpZ2ludCcgfCAnc3RyaW5nJyk6IEJhc2VPdXRwdXQ8VE51bWJlcj4ge1xuICBhc3NlcnQob3V0cHV0LmFkZHJlc3MpO1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgIGFtb3VudDogdG9BbW91bnRUeXBlKG91dHB1dC52YWx1ZSwgYW1vdW50VHlwZSkgYXMgVE51bWJlcixcbiAgfTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0QmlnSW50KG91dHB1dDogdXR4b2xpYi5Qc2J0VHhPdXRwdXQpOiBCYXNlT3V0cHV0PGJpZ2ludD4ge1xuICByZXR1cm4gdG9CYXNlT3V0cHV0KG91dHB1dCwgJ2JpZ2ludCcpO1xufVxuXG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRTdHJpbmcob3V0cHV0OiB1dHhvbGliLlBzYnRUeE91dHB1dCk6IEJhc2VPdXRwdXQ8c3RyaW5nPiB7XG4gIHJldHVybiB0b0Jhc2VPdXRwdXQob3V0cHV0LCAnc3RyaW5nJyk7XG59XG5cbmRlc2NyaWJlKCdwYXJzZScsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgcHNidCA9IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjMnKTtcblxuICBmdW5jdGlvbiBnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24ocmVjaXBpZW50czogdXR4b2xpYi5Qc2J0VHhPdXRwdXRbXSk6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICAgIHJldHVybiB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidChcbiAgICAgIHBzYnQsXG4gICAgICBnZXREZXNjcmlwdG9yTWFwKCdXc2gyT2YzJywgZ2V0RGVmYXVsdFhQdWJzKCdhJykpLFxuICAgICAgcmVjaXBpZW50cy5tYXAodG9CYXNlT3V0cHV0U3RyaW5nKSxcbiAgICAgIHBzYnQubmV0d29ya1xuICAgICk7XG4gIH1cblxuICBkZXNjcmliZSgndG9CYXNlJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBjb3JyZWN0IEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbEZpeHR1cmUoJ3BhcnNlV2l0aG91dFJlY2lwaWVudHMuanNvbicsIHRvUGxhaW5PYmplY3QoZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKFtdKSkpO1xuICAgICAgYXdhaXQgYXNzZXJ0RXF1YWxGaXh0dXJlKCdwYXJzZVdpdGhSZWNpcGllbnQuanNvbicsIHRvUGxhaW5PYmplY3QoZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKFtwc2J0LnR4T3V0cHV0c1swXV0pKSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRFcXVhbFZhbGlkYXRpb25FcnJvcihhY3R1YWw6IHVua25vd24sIGV4cGVjdGVkOiBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIGlmIChhY3R1YWwgaW5zdGFuY2VvZiBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhY3R1YWwuZXJyb3JzLCBleHBlY3RlZC5lcnJvcnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGVjdGVkIGVycm9yIHR5cGUnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoZjogKCkgPT4gdm9pZCwgZXhwZWN0ZWQ6IEFnZ3JlZ2F0ZVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgYXNzZXJ0LnRocm93cyhmLCAoZXJyKSA9PiB7XG4gICAgICAgIGFzc2VydEVxdWFsVmFsaWRhdGlvbkVycm9yKGVyciwgZXhwZWN0ZWQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZXhwZWN0ZWQgZXJyb3JzJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAoKSA9PiBhc3NlcnRFeHBlY3RlZE91dHB1dERpZmZlcmVuY2UoZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKFtdKSksXG4gICAgICAgIG5ldyBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IoW1xuICAgICAgICAgIG5ldyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKFt7IC4uLnRvQmFzZU91dHB1dEJpZ0ludChwc2J0LnR4T3V0cHV0c1swXSksIGV4dGVybmFsOiB0cnVlIH1dKSxcbiAgICAgICAgXSlcbiAgICAgICk7XG5cbiAgICAgIGFzc2VydFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgKCkgPT4gYXNzZXJ0RXhwZWN0ZWRPdXRwdXREaWZmZXJlbmNlKGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbXSkpLFxuICAgICAgICBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgICAgICBuZXcgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyhbeyAuLi50b0Jhc2VPdXRwdXRCaWdJbnQocHNidC50eE91dHB1dHNbMF0pLCBleHRlcm5hbDogdHJ1ZSB9XSksXG4gICAgICAgIF0pXG4gICAgICApO1xuXG4gICAgICBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICgpID0+IGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZShnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24oW3BzYnQudHhPdXRwdXRzWzFdXSkpLFxuICAgICAgICBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgICAgICBuZXcgRXJyb3JNaXNzaW5nT3V0cHV0cyhbeyAuLi50b0Jhc2VPdXRwdXRCaWdJbnQocHNidC50eE91dHB1dHNbMV0pLCBleHRlcm5hbDogdHJ1ZSB9XSksXG4gICAgICAgICAgbmV3IEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMoW3sgLi4udG9CYXNlT3V0cHV0QmlnSW50KHBzYnQudHhPdXRwdXRzWzBdKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICBdKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/sign.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
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=
|