@bitgo-beta/utxo-core 1.0.1-alpha.10 → 1.0.1-alpha.101
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/Output.d.ts +43 -0
- package/dist/src/Output.d.ts.map +1 -0
- package/dist/src/Output.js +60 -0
- package/dist/src/bip322/index.d.ts +4 -0
- package/dist/src/bip322/index.d.ts.map +1 -0
- package/dist/src/bip322/index.js +20 -0
- package/dist/src/bip322/toSign.d.ts +19 -0
- package/dist/src/bip322/toSign.d.ts.map +1 -0
- package/dist/src/bip322/toSign.js +61 -0
- package/dist/src/bip322/toSpend.d.ts +22 -0
- package/dist/src/bip322/toSpend.d.ts.map +1 -0
- package/dist/src/bip322/toSpend.js +76 -0
- package/dist/src/bip322/utils.d.ts +6 -0
- package/dist/src/bip322/utils.d.ts.map +1 -0
- package/dist/src/bip322/utils.js +71 -0
- package/dist/src/bip32utils.d.ts +16 -0
- package/dist/src/bip32utils.d.ts.map +1 -0
- package/dist/src/bip32utils.js +71 -0
- package/dist/src/bip65/index.d.ts +2 -0
- package/dist/src/bip65/index.d.ts.map +1 -0
- package/dist/src/bip65/index.js +18 -0
- package/dist/src/bip65/locktime.d.ts +8 -0
- package/dist/src/bip65/locktime.d.ts.map +1 -0
- package/dist/src/bip65/locktime.js +37 -0
- package/dist/src/descriptor/DescriptorMap.d.ts.map +1 -1
- package/dist/src/descriptor/DescriptorMap.js +2 -5
- package/dist/src/descriptor/Output.d.ts +2 -43
- package/dist/src/descriptor/Output.d.ts.map +1 -1
- package/dist/src/descriptor/Output.js +12 -66
- package/dist/src/descriptor/VirtualSize.d.ts +2 -0
- package/dist/src/descriptor/VirtualSize.d.ts.map +1 -1
- package/dist/src/descriptor/VirtualSize.js +14 -1
- package/dist/src/descriptor/address.d.ts +1 -1
- package/dist/src/descriptor/address.d.ts.map +1 -1
- package/dist/src/descriptor/address.js +2 -2
- package/dist/src/descriptor/derive.d.ts +13 -0
- package/dist/src/descriptor/derive.d.ts.map +1 -0
- package/dist/src/descriptor/derive.js +45 -0
- package/dist/src/descriptor/fromFixedScriptWallet.d.ts +16 -0
- package/dist/src/descriptor/fromFixedScriptWallet.d.ts.map +1 -0
- package/dist/src/descriptor/fromFixedScriptWallet.js +88 -0
- package/dist/src/descriptor/index.d.ts +10 -8
- package/dist/src/descriptor/index.d.ts.map +1 -1
- package/dist/src/descriptor/index.js +14 -36
- package/dist/src/descriptor/parse/PatternMatcher.d.ts +14 -0
- package/dist/src/descriptor/parse/PatternMatcher.d.ts.map +1 -0
- package/dist/src/descriptor/parse/PatternMatcher.js +60 -0
- package/dist/src/descriptor/psbt/createPsbt.d.ts +10 -2
- package/dist/src/descriptor/psbt/createPsbt.d.ts.map +1 -1
- package/dist/src/descriptor/psbt/createPsbt.js +35 -10
- package/dist/src/descriptor/psbt/findDescriptors.d.ts +6 -2
- package/dist/src/descriptor/psbt/findDescriptors.d.ts.map +1 -1
- package/dist/src/descriptor/psbt/findDescriptors.js +24 -11
- package/dist/src/descriptor/psbt/index.d.ts +1 -0
- package/dist/src/descriptor/psbt/index.d.ts.map +1 -1
- package/dist/src/descriptor/psbt/index.js +2 -1
- package/dist/src/descriptor/psbt/parse.d.ts +1 -1
- package/dist/src/descriptor/psbt/parse.d.ts.map +1 -1
- package/dist/src/descriptor/psbt/parse.js +8 -8
- package/dist/src/descriptor/psbt/sign.d.ts +26 -0
- package/dist/src/descriptor/psbt/sign.d.ts.map +1 -0
- package/dist/src/descriptor/psbt/sign.js +42 -0
- package/dist/src/dustThreshold.d.ts +4 -0
- package/dist/src/dustThreshold.d.ts.map +1 -0
- package/dist/src/dustThreshold.js +134 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -2
- package/dist/src/paygo/attestation.d.ts +11 -0
- package/dist/src/paygo/attestation.d.ts.map +1 -0
- package/dist/src/paygo/attestation.js +58 -0
- package/dist/src/paygo/index.d.ts +3 -0
- package/dist/src/paygo/index.d.ts.map +1 -0
- package/dist/src/paygo/index.js +19 -0
- package/dist/src/paygo/parsePayGoAttestation.d.ts +16 -0
- package/dist/src/paygo/parsePayGoAttestation.d.ts.map +1 -0
- package/dist/src/paygo/parsePayGoAttestation.js +50 -0
- package/dist/src/paygo/psbt/Errors.d.ts +22 -0
- package/dist/src/paygo/psbt/Errors.d.ts.map +1 -0
- package/dist/src/paygo/psbt/Errors.js +44 -0
- package/dist/src/paygo/psbt/index.d.ts +2 -0
- package/dist/src/paygo/psbt/index.d.ts.map +1 -0
- package/dist/src/paygo/psbt/index.js +18 -0
- package/dist/src/paygo/psbt/payGoAddressProof.d.ts +29 -0
- package/dist/src/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
- package/dist/src/paygo/psbt/payGoAddressProof.js +124 -0
- package/dist/src/testutil/descriptor/descriptors.d.ts +5 -2
- package/dist/src/testutil/descriptor/descriptors.d.ts.map +1 -1
- package/dist/src/testutil/descriptor/descriptors.js +58 -7
- package/dist/src/testutil/descriptor/mock.utils.d.ts +6 -4
- package/dist/src/testutil/descriptor/mock.utils.d.ts.map +1 -1
- package/dist/src/testutil/descriptor/mock.utils.js +10 -5
- package/dist/src/testutil/descriptor/psbt.utils.d.ts.map +1 -1
- package/dist/src/testutil/descriptor/psbt.utils.js +9 -8
- package/dist/src/testutil/generatePayGoAttestationProof.utils.d.ts +12 -0
- package/dist/src/testutil/generatePayGoAttestationProof.utils.d.ts.map +1 -0
- package/dist/src/testutil/generatePayGoAttestationProof.utils.js +38 -0
- package/dist/src/testutil/index.d.ts +2 -0
- package/dist/src/testutil/index.d.ts.map +1 -1
- package/dist/src/testutil/index.js +3 -1
- package/dist/src/testutil/toPlainObject.utils.d.ts.map +1 -1
- package/dist/src/testutil/toPlainObject.utils.js +16 -2
- package/dist/src/testutil/trimMessagePrefix.d.ts +11 -0
- package/dist/src/testutil/trimMessagePrefix.d.ts.map +1 -0
- package/dist/src/testutil/trimMessagePrefix.js +60 -0
- package/dist/src/xOnlyPubkey.d.ts +2 -0
- package/dist/src/xOnlyPubkey.d.ts.map +1 -0
- package/dist/src/xOnlyPubkey.js +18 -0
- package/package.json +11 -8
|
@@ -10,40 +10,18 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
}
|
|
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
|
-
})();
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
35
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var Output_1 = require("./Output");
|
|
48
|
-
Object.defineProperty(exports, "toDerivedDescriptorWalletOutput", { enumerable: true, get: function () { return Output_1.toDerivedDescriptorWalletOutput; } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSwrQ0FBK0I7QUFHL0IscUNBQTBGO0FBQWpGLHNIQUFBLDJCQUEyQixPQUFBO0FBQUUsMkhBQUEsZ0NBQWdDLE9BQUE7QUFDdEUsK0JBQXlEO0FBQWhELGtHQUFBLFVBQVUsT0FBQTtBQUFFLG9HQUFBLFlBQVksT0FBQTtBQUFFLDZGQUFBLEtBQUssT0FBQTtBQUN4QyxpREFBa0Q7QUFBekMsZ0hBQUEsZUFBZSxPQUFBO0FBQ3hCLG1DQUEyRDtBQUFsRCx5SEFBQSwrQkFBK0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgT3V0cHV0LCBEZXNjcmlwdG9yV2FsbGV0T3V0cHV0LCBXaXRoRGVzY3JpcHRvciwgV2l0aE9wdERlc2NyaXB0b3IgfSBmcm9tICcuL091dHB1dCc7XG5leHBvcnQgdHlwZSB7IERlc2NyaXB0b3JNYXAgfSBmcm9tICcuL0Rlc2NyaXB0b3JNYXAnO1xuZXhwb3J0ICogYXMgcHNidCBmcm9tICcuL3BzYnQnO1xuZXhwb3J0IHR5cGUgeyBQc2J0UGFyYW1zIH0gZnJvbSAnLi9wc2J0JztcblxuZXhwb3J0IHsgY3JlYXRlQWRkcmVzc0Zyb21EZXNjcmlwdG9yLCBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvciB9IGZyb20gJy4vYWRkcmVzcyc7XG5leHBvcnQgeyBjcmVhdGVQc2J0LCBmaW5hbGl6ZVBzYnQsIHBhcnNlIH0gZnJvbSAnLi9wc2J0JztcbmV4cG9ydCB7IHRvRGVzY3JpcHRvck1hcCB9IGZyb20gJy4vRGVzY3JpcHRvck1hcCc7XG5leHBvcnQgeyB0b0Rlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0IH0gZnJvbSAnLi9PdXRwdXQnO1xuIl19
|
|
17
|
+
__exportStar(require("./psbt"), exports);
|
|
18
|
+
__exportStar(require("./address"), exports);
|
|
19
|
+
__exportStar(require("./DescriptorMap"), exports);
|
|
20
|
+
__exportStar(require("./derive"), exports);
|
|
21
|
+
__exportStar(require("./Output"), exports);
|
|
22
|
+
__exportStar(require("./VirtualSize"), exports);
|
|
23
|
+
__exportStar(require("./fromFixedScriptWallet"), exports);
|
|
24
|
+
__exportStar(require("./parse/PatternMatcher"), exports);
|
|
25
|
+
/** @deprecated - import from @bitgo-beta/utxo-core directly instead */
|
|
26
|
+
__exportStar(require("../Output"), exports);
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6QixnREFBOEI7QUFDOUIsMERBQXdDO0FBQ3hDLHlEQUF1QztBQUV2Qyx1RUFBdUU7QUFDdkUsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wc2J0JztcbmV4cG9ydCAqIGZyb20gJy4vYWRkcmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL0Rlc2NyaXB0b3JNYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXJpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9PdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9WaXJ0dWFsU2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zyb21GaXhlZFNjcmlwdFdhbGxldCc7XG5leHBvcnQgKiBmcm9tICcuL3BhcnNlL1BhdHRlcm5NYXRjaGVyJztcblxuLyoqIEBkZXByZWNhdGVkIC0gaW1wb3J0IGZyb20gQGJpdGdvLWJldGEvdXR4by1jb3JlIGRpcmVjdGx5IGluc3RlYWQgKi9cbmV4cG9ydCAqIGZyb20gJy4uL091dHB1dCc7XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type PatternVar = {
|
|
2
|
+
$var: string;
|
|
3
|
+
};
|
|
4
|
+
export type Pattern = PatternVar | string | number | {
|
|
5
|
+
[key: string]: Pattern | Pattern[];
|
|
6
|
+
} | Pattern[];
|
|
7
|
+
export type ExtractedVars = Record<string, unknown>;
|
|
8
|
+
export declare class PatternMatcher {
|
|
9
|
+
match(node: unknown, pattern: Pattern): ExtractedVars | null;
|
|
10
|
+
private matchNode;
|
|
11
|
+
private isPatternVar;
|
|
12
|
+
private deepEqual;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=PatternMatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternMatcher.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/parse/PatternMatcher.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1C,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,CAAA;CAAE,GAAG,OAAO,EAAE,CAAC;AAExG,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,qBAAa,cAAc;IACzB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI;IAK5D,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;CAgBlB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PatternMatcher = void 0;
|
|
4
|
+
class PatternMatcher {
|
|
5
|
+
match(node, pattern) {
|
|
6
|
+
const vars = {};
|
|
7
|
+
return this.matchNode(node, pattern, vars) ? vars : null;
|
|
8
|
+
}
|
|
9
|
+
matchNode(node, pattern, vars) {
|
|
10
|
+
// Variable placeholder
|
|
11
|
+
if (this.isPatternVar(pattern)) {
|
|
12
|
+
const varName = pattern.$var;
|
|
13
|
+
if (varName in vars) {
|
|
14
|
+
return this.deepEqual(vars[varName], node);
|
|
15
|
+
}
|
|
16
|
+
vars[varName] = node;
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
// Primitive values
|
|
20
|
+
if (typeof node !== typeof pattern)
|
|
21
|
+
return false;
|
|
22
|
+
if (typeof node === 'string' || typeof node === 'number') {
|
|
23
|
+
return node === pattern;
|
|
24
|
+
}
|
|
25
|
+
// Arrays
|
|
26
|
+
if (Array.isArray(node) && Array.isArray(pattern)) {
|
|
27
|
+
return node.length === pattern.length && node.every((item, i) => this.matchNode(item, pattern[i], vars));
|
|
28
|
+
}
|
|
29
|
+
// Objects
|
|
30
|
+
if (typeof node === 'object' && typeof pattern === 'object' && node !== null && pattern !== null) {
|
|
31
|
+
const nodeKeys = Object.keys(node);
|
|
32
|
+
const patternKeys = Object.keys(pattern);
|
|
33
|
+
return (nodeKeys.length === patternKeys.length &&
|
|
34
|
+
nodeKeys.every((key) => patternKeys.includes(key) &&
|
|
35
|
+
this.matchNode(node[key], pattern[key], vars)));
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
isPatternVar(value) {
|
|
40
|
+
return value !== null && typeof value === 'object' && '$var' in value;
|
|
41
|
+
}
|
|
42
|
+
deepEqual(a, b) {
|
|
43
|
+
if (a === b)
|
|
44
|
+
return true;
|
|
45
|
+
if (typeof a !== typeof b)
|
|
46
|
+
return false;
|
|
47
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
48
|
+
return a.length === b.length && a.every((item, i) => this.deepEqual(item, b[i]));
|
|
49
|
+
}
|
|
50
|
+
if (typeof a === 'object' && a !== null && typeof b === 'object' && b !== null) {
|
|
51
|
+
const keysA = Object.keys(a);
|
|
52
|
+
const keysB = Object.keys(b);
|
|
53
|
+
return (keysA.length === keysB.length &&
|
|
54
|
+
keysA.every((key) => this.deepEqual(a[key], b[key])));
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.PatternMatcher = PatternMatcher;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGF0dGVybk1hdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9wYXJzZS9QYXR0ZXJuTWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxNQUFhLGNBQWM7SUFDekIsS0FBSyxDQUFDLElBQWEsRUFBRSxPQUFnQjtRQUNuQyxNQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBRU8sU0FBUyxDQUFDLElBQWEsRUFBRSxPQUFnQixFQUFFLElBQW1CO1FBQ3BFLHVCQUF1QjtRQUN2QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixJQUFJLE9BQU8sSUFBSSxLQUFLLE9BQU8sT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pELE9BQU8sSUFBSSxLQUFLLE9BQU8sQ0FBQztRQUMxQixDQUFDO1FBRUQsU0FBUztRQUNULElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFFRCxVQUFVO1FBQ1YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pHLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6QyxPQUFPLENBQ0wsUUFBUSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTTtnQkFDdEMsUUFBUSxDQUFDLEtBQUssQ0FDWixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ04sV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUUsSUFBZ0MsQ0FBQyxHQUFHLENBQUMsRUFBRyxPQUFtQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUMxRyxDQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWM7UUFDakMsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxTQUFTLENBQUMsQ0FBVSxFQUFFLENBQVU7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pCLElBQUksT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQy9FLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixPQUFPLENBQ0wsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtnQkFDN0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRSxDQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFHLENBQTZCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUMvRyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBbEVELHdDQWtFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFBhdHRlcm4gbWF0Y2hpbmcgdHlwZXNcbmV4cG9ydCB0eXBlIFBhdHRlcm5WYXIgPSB7ICR2YXI6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgUGF0dGVybiA9IFBhdHRlcm5WYXIgfCBzdHJpbmcgfCBudW1iZXIgfCB7IFtrZXk6IHN0cmluZ106IFBhdHRlcm4gfCBQYXR0ZXJuW10gfSB8IFBhdHRlcm5bXTtcblxuZXhwb3J0IHR5cGUgRXh0cmFjdGVkVmFycyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgY2xhc3MgUGF0dGVybk1hdGNoZXIge1xuICBtYXRjaChub2RlOiB1bmtub3duLCBwYXR0ZXJuOiBQYXR0ZXJuKTogRXh0cmFjdGVkVmFycyB8IG51bGwge1xuICAgIGNvbnN0IHZhcnM6IEV4dHJhY3RlZFZhcnMgPSB7fTtcbiAgICByZXR1cm4gdGhpcy5tYXRjaE5vZGUobm9kZSwgcGF0dGVybiwgdmFycykgPyB2YXJzIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgbWF0Y2hOb2RlKG5vZGU6IHVua25vd24sIHBhdHRlcm46IFBhdHRlcm4sIHZhcnM6IEV4dHJhY3RlZFZhcnMpOiBib29sZWFuIHtcbiAgICAvLyBWYXJpYWJsZSBwbGFjZWhvbGRlclxuICAgIGlmICh0aGlzLmlzUGF0dGVyblZhcihwYXR0ZXJuKSkge1xuICAgICAgY29uc3QgdmFyTmFtZSA9IHBhdHRlcm4uJHZhcjtcbiAgICAgIGlmICh2YXJOYW1lIGluIHZhcnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVlcEVxdWFsKHZhcnNbdmFyTmFtZV0sIG5vZGUpO1xuICAgICAgfVxuICAgICAgdmFyc1t2YXJOYW1lXSA9IG5vZGU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBQcmltaXRpdmUgdmFsdWVzXG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSB0eXBlb2YgcGF0dGVybikgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gbm9kZSA9PT0gcGF0dGVybjtcbiAgICB9XG5cbiAgICAvLyBBcnJheXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSAmJiBBcnJheS5pc0FycmF5KHBhdHRlcm4pKSB7XG4gICAgICByZXR1cm4gbm9kZS5sZW5ndGggPT09IHBhdHRlcm4ubGVuZ3RoICYmIG5vZGUuZXZlcnkoKGl0ZW0sIGkpID0+IHRoaXMubWF0Y2hOb2RlKGl0ZW0sIHBhdHRlcm5baV0sIHZhcnMpKTtcbiAgICB9XG5cbiAgICAvLyBPYmplY3RzXG4gICAgaWYgKHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcGF0dGVybiA9PT0gJ29iamVjdCcgJiYgbm9kZSAhPT0gbnVsbCAmJiBwYXR0ZXJuICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlS2V5cyA9IE9iamVjdC5rZXlzKG5vZGUpO1xuICAgICAgY29uc3QgcGF0dGVybktleXMgPSBPYmplY3Qua2V5cyhwYXR0ZXJuKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgbm9kZUtleXMubGVuZ3RoID09PSBwYXR0ZXJuS2V5cy5sZW5ndGggJiZcbiAgICAgICAgbm9kZUtleXMuZXZlcnkoXG4gICAgICAgICAgKGtleSkgPT5cbiAgICAgICAgICAgIHBhdHRlcm5LZXlzLmluY2x1ZGVzKGtleSkgJiZcbiAgICAgICAgICAgIHRoaXMubWF0Y2hOb2RlKChub2RlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldLCAocGF0dGVybiBhcyBSZWNvcmQ8c3RyaW5nLCBQYXR0ZXJuPilba2V5XSwgdmFycylcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzUGF0dGVyblZhcih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFBhdHRlcm5WYXIge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICckdmFyJyBpbiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZGVlcEVxdWFsKGE6IHVua25vd24sIGI6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikpIHtcbiAgICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgoaXRlbSwgaSkgPT4gdGhpcy5kZWVwRXF1YWwoaXRlbSwgYltpXSkpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGEgPT09ICdvYmplY3QnICYmIGEgIT09IG51bGwgJiYgdHlwZW9mIGIgPT09ICdvYmplY3QnICYmIGIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGtleXNBID0gT2JqZWN0LmtleXMoYSk7XG4gICAgICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAga2V5c0EubGVuZ3RoID09PSBrZXlzQi5sZW5ndGggJiZcbiAgICAgICAga2V5c0EuZXZlcnkoKGtleSkgPT4gdGhpcy5kZWVwRXF1YWwoKGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV0sIChiIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -1,15 +1,23 @@
|
|
|
1
|
+
import { TapLeafScript } from 'bip174/src/lib/interfaces';
|
|
1
2
|
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
-
import {
|
|
3
|
+
import { Miniscript } from '@bitgo/wasm-miniscript';
|
|
4
|
+
import { DerivedDescriptorWalletOutput, WithOptDescriptor } from '../Output';
|
|
5
|
+
import { Output } from '../../Output';
|
|
3
6
|
/**
|
|
4
7
|
* Non-Final (Replaceable)
|
|
5
8
|
* Reference: https://github.com/bitcoin/bitcoin/blob/v25.1/src/rpc/rawtransaction_util.cpp#L49
|
|
6
9
|
* */
|
|
7
10
|
export declare const MAX_BIP125_RBF_SEQUENCE: number;
|
|
11
|
+
export declare function findTapLeafScript(input: TapLeafScript[], script: Buffer | Miniscript): TapLeafScript;
|
|
8
12
|
export type PsbtParams = {
|
|
9
13
|
network: utxolib.Network;
|
|
10
14
|
version?: number;
|
|
11
15
|
locktime?: number;
|
|
12
16
|
sequence?: number;
|
|
13
17
|
};
|
|
14
|
-
export
|
|
18
|
+
export type DerivedDescriptorTransactionInput = DerivedDescriptorWalletOutput & {
|
|
19
|
+
selectTapLeafScript?: Miniscript;
|
|
20
|
+
sequence?: number;
|
|
21
|
+
};
|
|
22
|
+
export declare function createPsbt(params: PsbtParams, inputs: DerivedDescriptorTransactionInput[], outputs: WithOptDescriptor<Output>[]): utxolib.bitgo.UtxoPsbt;
|
|
15
23
|
//# sourceMappingURL=createPsbt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPsbt.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/createPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"createPsbt.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/createPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAc,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC;;;KAGK;AACL,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAcpG;AAuCD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,6BAA6B,GAAG;IAC9E,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,iCAAiC,EAAE,EAC3C,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,GACnC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAexB"}
|
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.MAX_BIP125_RBF_SEQUENCE = void 0;
|
|
37
|
+
exports.findTapLeafScript = findTapLeafScript;
|
|
37
38
|
exports.createPsbt = createPsbt;
|
|
38
39
|
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
39
40
|
const wrap_1 = require("./wrap");
|
|
@@ -43,18 +44,39 @@ const assertSatisfiable_1 = require("./assertSatisfiable");
|
|
|
43
44
|
* Reference: https://github.com/bitcoin/bitcoin/blob/v25.1/src/rpc/rawtransaction_util.cpp#L49
|
|
44
45
|
* */
|
|
45
46
|
exports.MAX_BIP125_RBF_SEQUENCE = 0xffffffff - 2;
|
|
46
|
-
function
|
|
47
|
-
if (
|
|
48
|
-
|
|
47
|
+
function findTapLeafScript(input, script) {
|
|
48
|
+
if (!Buffer.isBuffer(script)) {
|
|
49
|
+
script = Buffer.from(script.encode());
|
|
50
|
+
}
|
|
51
|
+
const matches = input.filter((leaf) => {
|
|
52
|
+
return leaf.script.equals(script);
|
|
53
|
+
});
|
|
54
|
+
if (matches.length === 0) {
|
|
55
|
+
throw new Error(`No tapLeafScript found for script: ${script.toString('hex')}`);
|
|
56
|
+
}
|
|
57
|
+
if (matches.length > 1) {
|
|
58
|
+
throw new Error(`Multiple tapLeafScripts found for script: ${script.toString('hex')}`);
|
|
59
|
+
}
|
|
60
|
+
return matches[0];
|
|
61
|
+
}
|
|
62
|
+
function updateInputsWithDescriptors(psbt, inputParams) {
|
|
63
|
+
if (psbt.txInputs.length !== inputParams.length) {
|
|
64
|
+
throw new Error(`Input count mismatch (psbt=${psbt.txInputs.length}, inputParams=${inputParams.length})`);
|
|
49
65
|
}
|
|
50
66
|
const wrappedPsbt = (0, wrap_1.toWrappedPsbt)(psbt);
|
|
51
|
-
for (const [inputIndex,
|
|
52
|
-
(0, assertSatisfiable_1.assertSatisfiable)(psbt, inputIndex, descriptor);
|
|
53
|
-
wrappedPsbt.updateInputWithDescriptor(inputIndex, descriptor);
|
|
67
|
+
for (const [inputIndex, v] of inputParams.entries()) {
|
|
68
|
+
(0, assertSatisfiable_1.assertSatisfiable)(psbt, inputIndex, v.descriptor);
|
|
69
|
+
wrappedPsbt.updateInputWithDescriptor(inputIndex, v.descriptor);
|
|
54
70
|
}
|
|
55
71
|
const unwrappedPsbt = (0, wrap_1.toUtxoPsbt)(wrappedPsbt, psbt.network);
|
|
56
72
|
for (const inputIndex in psbt.txInputs) {
|
|
57
|
-
|
|
73
|
+
const preparedInput = unwrappedPsbt.data.inputs[inputIndex];
|
|
74
|
+
const v = inputParams[inputIndex];
|
|
75
|
+
if (v.selectTapLeafScript && preparedInput.tapLeafScript) {
|
|
76
|
+
const selected = findTapLeafScript(preparedInput.tapLeafScript, v.selectTapLeafScript);
|
|
77
|
+
preparedInput.tapLeafScript = [selected];
|
|
78
|
+
}
|
|
79
|
+
psbt.data.inputs[inputIndex] = preparedInput;
|
|
58
80
|
}
|
|
59
81
|
}
|
|
60
82
|
function updateOutputsWithDescriptors(psbt, descriptors) {
|
|
@@ -73,10 +95,13 @@ function createPsbt(params, inputs, outputs) {
|
|
|
73
95
|
const psbt = utxolib.bitgo.UtxoPsbt.createPsbt({ network: params.network });
|
|
74
96
|
psbt.setVersion(params.version ?? 2);
|
|
75
97
|
psbt.setLocktime(params.locktime ?? 0);
|
|
76
|
-
psbt.addInputs(inputs.map((i) => ({ ...i, sequence: params.sequence ?? exports.MAX_BIP125_RBF_SEQUENCE })));
|
|
98
|
+
psbt.addInputs(inputs.map((i) => ({ ...i, sequence: i.sequence ?? params.sequence ?? exports.MAX_BIP125_RBF_SEQUENCE })));
|
|
77
99
|
psbt.addOutputs(outputs);
|
|
78
|
-
updateInputsWithDescriptors(psbt, inputs.map((
|
|
100
|
+
updateInputsWithDescriptors(psbt, inputs.map(({ descriptor, selectTapLeafScript }) => ({
|
|
101
|
+
descriptor,
|
|
102
|
+
selectTapLeafScript,
|
|
103
|
+
})));
|
|
79
104
|
updateOutputsWithDescriptors(psbt, outputs);
|
|
80
105
|
return psbt;
|
|
81
106
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL3BzYnQvY3JlYXRlUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsOENBY0M7QUFtREQsZ0NBbUJDO0FBbkdELDhEQUFnRDtBQU1oRCxpQ0FBbUQ7QUFDbkQsMkRBQXdEO0FBRXhEOzs7S0FHSztBQUNRLFFBQUEsdUJBQXVCLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUV0RCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFzQixFQUFFLE1BQTJCO0lBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNwQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUNsQyxJQUE0QixFQUM1QixXQUFnRjtJQUVoRixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0saUJBQWlCLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3BELElBQUEscUNBQWlCLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsV0FBVyxDQUFDLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELE1BQU0sYUFBYSxHQUFHLElBQUEsaUJBQVUsRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVELEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekQsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN2RixhQUFhLENBQUMsYUFBYSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLGFBQWEsQ0FBQztJQUMvQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsNEJBQTRCLENBQUMsSUFBNEIsRUFBRSxXQUF3QztJQUMxRyxNQUFNLFdBQVcsR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsS0FBSyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNsRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsV0FBVyxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRSxDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sYUFBYSxHQUFHLElBQUEsaUJBQVUsRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVELEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNFLENBQUM7QUFDSCxDQUFDO0FBY0QsU0FBZ0IsVUFBVSxDQUN4QixNQUFrQixFQUNsQixNQUEyQyxFQUMzQyxPQUFvQztJQUVwQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLCtCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QiwyQkFBMkIsQ0FDekIsSUFBSSxFQUNKLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELFVBQVU7UUFDVixtQkFBbUI7S0FDcEIsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNGLDRCQUE0QixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXBMZWFmU2NyaXB0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IsIE1pbmlzY3JpcHQgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuaW1wb3J0IHsgRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQsIFdpdGhPcHREZXNjcmlwdG9yIH0gZnJvbSAnLi4vT3V0cHV0JztcbmltcG9ydCB7IE91dHB1dCB9IGZyb20gJy4uLy4uL091dHB1dCc7XG5cbmltcG9ydCB7IHRvVXR4b1BzYnQsIHRvV3JhcHBlZFBzYnQgfSBmcm9tICcuL3dyYXAnO1xuaW1wb3J0IHsgYXNzZXJ0U2F0aXNmaWFibGUgfSBmcm9tICcuL2Fzc2VydFNhdGlzZmlhYmxlJztcblxuLyoqXG4gKiBOb24tRmluYWwgKFJlcGxhY2VhYmxlKVxuICogUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI1LjEvc3JjL3JwYy9yYXd0cmFuc2FjdGlvbl91dGlsLmNwcCNMNDlcbiAqICovXG5leHBvcnQgY29uc3QgTUFYX0JJUDEyNV9SQkZfU0VRVUVOQ0UgPSAweGZmZmZmZmZmIC0gMjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRUYXBMZWFmU2NyaXB0KGlucHV0OiBUYXBMZWFmU2NyaXB0W10sIHNjcmlwdDogQnVmZmVyIHwgTWluaXNjcmlwdCk6IFRhcExlYWZTY3JpcHQge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihzY3JpcHQpKSB7XG4gICAgc2NyaXB0ID0gQnVmZmVyLmZyb20oc2NyaXB0LmVuY29kZSgpKTtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gaW5wdXQuZmlsdGVyKChsZWFmKSA9PiB7XG4gICAgcmV0dXJuIGxlYWYuc2NyaXB0LmVxdWFscyhzY3JpcHQpO1xuICB9KTtcbiAgaWYgKG1hdGNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyB0YXBMZWFmU2NyaXB0IGZvdW5kIGZvciBzY3JpcHQ6ICR7c2NyaXB0LnRvU3RyaW5nKCdoZXgnKX1gKTtcbiAgfVxuICBpZiAobWF0Y2hlcy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSB0YXBMZWFmU2NyaXB0cyBmb3VuZCBmb3Igc2NyaXB0OiAke3NjcmlwdC50b1N0cmluZygnaGV4Jyl9YCk7XG4gIH1cbiAgcmV0dXJuIG1hdGNoZXNbMF07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUlucHV0c1dpdGhEZXNjcmlwdG9ycyhcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgaW5wdXRQYXJhbXM6IEFycmF5PHsgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjsgc2VsZWN0VGFwTGVhZlNjcmlwdD86IE1pbmlzY3JpcHQgfT5cbikge1xuICBpZiAocHNidC50eElucHV0cy5sZW5ndGggIT09IGlucHV0UGFyYW1zLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW5wdXQgY291bnQgbWlzbWF0Y2ggKHBzYnQ9JHtwc2J0LnR4SW5wdXRzLmxlbmd0aH0sIGlucHV0UGFyYW1zPSR7aW5wdXRQYXJhbXMubGVuZ3RofSlgKTtcbiAgfVxuICBjb25zdCB3cmFwcGVkUHNidCA9IHRvV3JhcHBlZFBzYnQocHNidCk7XG4gIGZvciAoY29uc3QgW2lucHV0SW5kZXgsIHZdIG9mIGlucHV0UGFyYW1zLmVudHJpZXMoKSkge1xuICAgIGFzc2VydFNhdGlzZmlhYmxlKHBzYnQsIGlucHV0SW5kZXgsIHYuZGVzY3JpcHRvcik7XG4gICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcihpbnB1dEluZGV4LCB2LmRlc2NyaXB0b3IpO1xuICB9XG4gIGNvbnN0IHVud3JhcHBlZFBzYnQgPSB0b1V0eG9Qc2J0KHdyYXBwZWRQc2J0LCBwc2J0Lm5ldHdvcmspO1xuICBmb3IgKGNvbnN0IGlucHV0SW5kZXggaW4gcHNidC50eElucHV0cykge1xuICAgIGNvbnN0IHByZXBhcmVkSW5wdXQgPSB1bndyYXBwZWRQc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdO1xuICAgIGNvbnN0IHYgPSBpbnB1dFBhcmFtc1tpbnB1dEluZGV4XTtcbiAgICBpZiAodi5zZWxlY3RUYXBMZWFmU2NyaXB0ICYmIHByZXBhcmVkSW5wdXQudGFwTGVhZlNjcmlwdCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBmaW5kVGFwTGVhZlNjcmlwdChwcmVwYXJlZElucHV0LnRhcExlYWZTY3JpcHQsIHYuc2VsZWN0VGFwTGVhZlNjcmlwdCk7XG4gICAgICBwcmVwYXJlZElucHV0LnRhcExlYWZTY3JpcHQgPSBbc2VsZWN0ZWRdO1xuICAgIH1cbiAgICBwc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdID0gcHJlcGFyZWRJbnB1dDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVPdXRwdXRzV2l0aERlc2NyaXB0b3JzKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIGRlc2NyaXB0b3JzOiBXaXRoT3B0RGVzY3JpcHRvcjxPdXRwdXQ+W10pIHtcbiAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHBzYnQpO1xuICBmb3IgKGNvbnN0IFtvdXRwdXRJbmRleCwgeyBkZXNjcmlwdG9yIH1dIG9mIGRlc2NyaXB0b3JzLmVudHJpZXMoKSkge1xuICAgIGlmIChkZXNjcmlwdG9yKSB7XG4gICAgICB3cmFwcGVkUHNidC51cGRhdGVPdXRwdXRXaXRoRGVzY3JpcHRvcihvdXRwdXRJbmRleCwgZGVzY3JpcHRvcik7XG4gICAgfVxuICB9XG4gIGNvbnN0IHVud3JhcHBlZFBzYnQgPSB0b1V0eG9Qc2J0KHdyYXBwZWRQc2J0LCBwc2J0Lm5ldHdvcmspO1xuICBmb3IgKGNvbnN0IG91dHB1dEluZGV4IGluIHBzYnQudHhPdXRwdXRzKSB7XG4gICAgcHNidC5kYXRhLm91dHB1dHNbb3V0cHV0SW5kZXhdID0gdW53cmFwcGVkUHNidC5kYXRhLm91dHB1dHNbb3V0cHV0SW5kZXhdO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFBzYnRQYXJhbXMgPSB7XG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgdmVyc2lvbj86IG51bWJlcjtcbiAgbG9ja3RpbWU/OiBudW1iZXI7XG4gIHNlcXVlbmNlPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgRGVyaXZlZERlc2NyaXB0b3JUcmFuc2FjdGlvbklucHV0ID0gRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQgJiB7XG4gIHNlbGVjdFRhcExlYWZTY3JpcHQ/OiBNaW5pc2NyaXB0O1xuICBzZXF1ZW5jZT86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0KFxuICBwYXJhbXM6IFBzYnRQYXJhbXMsXG4gIGlucHV0czogRGVyaXZlZERlc2NyaXB0b3JUcmFuc2FjdGlvbklucHV0W10sXG4gIG91dHB1dHM6IFdpdGhPcHREZXNjcmlwdG9yPE91dHB1dD5bXVxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LmNyZWF0ZVBzYnQoeyBuZXR3b3JrOiBwYXJhbXMubmV0d29yayB9KTtcbiAgcHNidC5zZXRWZXJzaW9uKHBhcmFtcy52ZXJzaW9uID8/IDIpO1xuICBwc2J0LnNldExvY2t0aW1lKHBhcmFtcy5sb2NrdGltZSA/PyAwKTtcbiAgcHNidC5hZGRJbnB1dHMoaW5wdXRzLm1hcCgoaSkgPT4gKHsgLi4uaSwgc2VxdWVuY2U6IGkuc2VxdWVuY2UgPz8gcGFyYW1zLnNlcXVlbmNlID8/IE1BWF9CSVAxMjVfUkJGX1NFUVVFTkNFIH0pKSk7XG4gIHBzYnQuYWRkT3V0cHV0cyhvdXRwdXRzKTtcbiAgdXBkYXRlSW5wdXRzV2l0aERlc2NyaXB0b3JzKFxuICAgIHBzYnQsXG4gICAgaW5wdXRzLm1hcCgoeyBkZXNjcmlwdG9yLCBzZWxlY3RUYXBMZWFmU2NyaXB0IH0pID0+ICh7XG4gICAgICBkZXNjcmlwdG9yLFxuICAgICAgc2VsZWN0VGFwTGVhZlNjcmlwdCxcbiAgICB9KSlcbiAgKTtcbiAgdXBkYXRlT3V0cHV0c1dpdGhEZXNjcmlwdG9ycyhwc2J0LCBvdXRwdXRzKTtcbiAgcmV0dXJuIHBzYnQ7XG59XG4iXX0=
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { PsbtInput, PsbtOutput } from 'bip174/src/lib/interfaces';
|
|
2
2
|
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
3
3
|
import { DescriptorMap } from '../DescriptorMap';
|
|
4
|
+
type DescriptorWithoutIndex = {
|
|
5
|
+
descriptor: Descriptor;
|
|
6
|
+
index: undefined;
|
|
7
|
+
};
|
|
4
8
|
type DescriptorWithIndex = {
|
|
5
9
|
descriptor: Descriptor;
|
|
6
10
|
index: number;
|
|
@@ -10,13 +14,13 @@ type DescriptorWithIndex = {
|
|
|
10
14
|
* @param descriptorMap
|
|
11
15
|
* @returns DescriptorWithIndex for the input if found, undefined otherwise
|
|
12
16
|
*/
|
|
13
|
-
export declare function findDescriptorForInput(input: PsbtInput, descriptorMap: DescriptorMap): DescriptorWithIndex | undefined;
|
|
17
|
+
export declare function findDescriptorForInput(input: PsbtInput, descriptorMap: DescriptorMap): DescriptorWithIndex | DescriptorWithoutIndex | undefined;
|
|
14
18
|
/**
|
|
15
19
|
* @param script - the output script
|
|
16
20
|
* @param output - the PSBT output
|
|
17
21
|
* @param descriptorMap
|
|
18
22
|
* @returns DescriptorWithIndex for the output if found, undefined otherwise
|
|
19
23
|
*/
|
|
20
|
-
export declare function findDescriptorForOutput(script: Buffer, output: PsbtOutput, descriptorMap: DescriptorMap): DescriptorWithIndex | undefined;
|
|
24
|
+
export declare function findDescriptorForOutput(script: Buffer, output: PsbtOutput, descriptorMap: DescriptorMap): DescriptorWithIndex | DescriptorWithoutIndex | undefined;
|
|
21
25
|
export {};
|
|
22
26
|
//# sourceMappingURL=findDescriptors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findDescriptors.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/findDescriptors.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,KAAK,mBAAmB,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAsErE;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,aAAa,GAC3B,mBAAmB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"findDescriptors.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/findDescriptors.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,KAAK,sBAAsB,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAsB3E,KAAK,mBAAmB,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAsErE;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,aAAa,GAC3B,mBAAmB,GAAG,sBAAsB,GAAG,SAAS,CAU1D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,aAAa,GAC3B,mBAAmB,GAAG,sBAAsB,GAAG,SAAS,CAQ1D"}
|
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findDescriptorForInput = findDescriptorForInput;
|
|
4
4
|
exports.findDescriptorForOutput = findDescriptorForOutput;
|
|
5
|
+
/**
|
|
6
|
+
* Find a definite descriptor in the descriptor map that matches the given script.
|
|
7
|
+
* @param script
|
|
8
|
+
* @param descriptorMap
|
|
9
|
+
*/
|
|
10
|
+
function findDescriptorWithoutDerivation(script, descriptorMap) {
|
|
11
|
+
for (const descriptor of descriptorMap.values()) {
|
|
12
|
+
if (!descriptor.hasWildcard()) {
|
|
13
|
+
if (Buffer.from(descriptor.scriptPubkey()).equals(script)) {
|
|
14
|
+
return { descriptor, index: undefined };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
5
20
|
/**
|
|
6
21
|
* Find a descriptor in the descriptor map that matches the given script and derivation index.
|
|
7
22
|
* @param script
|
|
@@ -11,7 +26,7 @@ exports.findDescriptorForOutput = findDescriptorForOutput;
|
|
|
11
26
|
*/
|
|
12
27
|
function findDescriptorForDerivationIndex(script, index, descriptorMap) {
|
|
13
28
|
for (const descriptor of descriptorMap.values()) {
|
|
14
|
-
if (Buffer.from(descriptor.atDerivationIndex(index).scriptPubkey()).equals(script)) {
|
|
29
|
+
if (descriptor.hasWildcard() && Buffer.from(descriptor.atDerivationIndex(index).scriptPubkey()).equals(script)) {
|
|
15
30
|
return { descriptor, index };
|
|
16
31
|
}
|
|
17
32
|
}
|
|
@@ -63,11 +78,9 @@ function findDescriptorForInput(input, descriptorMap) {
|
|
|
63
78
|
if (!script) {
|
|
64
79
|
throw new Error('Missing script');
|
|
65
80
|
}
|
|
66
|
-
const derivationPaths = getDerivationPaths(input);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
return findDescriptorForAnyDerivationPath(script, derivationPaths, descriptorMap);
|
|
81
|
+
const derivationPaths = getDerivationPaths(input) ?? [];
|
|
82
|
+
return (findDescriptorWithoutDerivation(script, descriptorMap) ??
|
|
83
|
+
findDescriptorForAnyDerivationPath(script, derivationPaths, descriptorMap));
|
|
71
84
|
}
|
|
72
85
|
/**
|
|
73
86
|
* @param script - the output script
|
|
@@ -77,9 +90,9 @@ function findDescriptorForInput(input, descriptorMap) {
|
|
|
77
90
|
*/
|
|
78
91
|
function findDescriptorForOutput(script, output, descriptorMap) {
|
|
79
92
|
const derivationPaths = getDerivationPaths(output);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
93
|
+
return (findDescriptorWithoutDerivation(script, descriptorMap) ??
|
|
94
|
+
(derivationPaths === undefined
|
|
95
|
+
? undefined
|
|
96
|
+
: findDescriptorForAnyDerivationPath(script, derivationPaths, descriptorMap)));
|
|
84
97
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZERlc2NyaXB0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvcHNidC9maW5kRGVzY3JpcHRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEyRkEsd0RBYUM7QUFRRCwwREFVQztBQXhHRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLGdDQUFnQyxDQUN2QyxNQUFjLEVBQ2QsS0FBYSxFQUNiLGFBQTRCO0lBRTVCLEtBQUssTUFBTSxVQUFVLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDaEQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25GLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxJQUFZO0lBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsa0NBQWtDLENBQ3pDLE1BQWMsRUFDZCxlQUF5QixFQUN6QixhQUE0QjtJQUU1QixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RixLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsZ0NBQWdDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM1RSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFLRCxTQUFTLGtCQUFrQixDQUFDLENBQStDO0lBQ3pFLElBQUksaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELElBQUksb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQ3BDLEtBQWdCLEVBQ2hCLGFBQTRCO0lBRTVCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsT0FBTyxrQ0FBa0MsQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHVCQUF1QixDQUNyQyxNQUFjLEVBQ2QsTUFBa0IsRUFDbEIsYUFBNEI7SUFFNUIsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLGtDQUFrQyxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5cblV0aWxpdGllcyBmb3IgbWFwcGluZyBiYWNrIGZyb20gUFNCVCBpbnB1dHMgdG8gZGVzY3JpcHRvcnMuXG5cblRoaXMgaXMgYSBzb21ld2hhdCBicnV0ZS1mb3JjZSBhdHRlbXB0IHRoYXQgcmVsaWVzIG9uIHRoZSBgYmlwMzJEZXJpdmF0aW9uYCBmaWVsZCB0byBiZSBzZXQuXG5cbkl0IHdpbGwgcHJvYmFibHkgb25seSB3b3JrIGNvcnJlY3RseSBpZiBhbGwgeHB1YnMgaW4gdGhlIGRlc2NyaXB0b3IgYXJlIGRlcml2YWJsZS5cblxuV2Ugc2hvdWxkIHRha2UgYSBsb29rIGF0IGEgbW9yZSByb2J1c3QgYW5kIHN0YW5kYXJkIGFwcHJvYWNoIGxpa2UgdGhpczogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9wdWxsLzE1NDhcblxuICovXG5pbXBvcnQgeyBQc2J0SW5wdXQsIFBzYnRPdXRwdXQgfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4uL0Rlc2NyaXB0b3JNYXAnO1xuXG50eXBlIERlc2NyaXB0b3JXaXRoSW5kZXggPSB7IGRlc2NyaXB0b3I6IERlc2NyaXB0b3I7IGluZGV4OiBudW1iZXIgfTtcblxuLyoqXG4gKiBGaW5kIGEgZGVzY3JpcHRvciBpbiB0aGUgZGVzY3JpcHRvciBtYXAgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBzY3JpcHQgYW5kIGRlcml2YXRpb24gaW5kZXguXG4gKiBAcGFyYW0gc2NyaXB0XG4gKiBAcGFyYW0gaW5kZXhcbiAqIEBwYXJhbSBkZXNjcmlwdG9yTWFwXG4gKiBAcmV0dXJucyBEZXNjcmlwdG9yV2l0aEluZGV4IGlmIGZvdW5kLCB1bmRlZmluZWQgb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGZpbmREZXNjcmlwdG9yRm9yRGVyaXZhdGlvbkluZGV4KFxuICBzY3JpcHQ6IEJ1ZmZlcixcbiAgaW5kZXg6IG51bWJlcixcbiAgZGVzY3JpcHRvck1hcDogRGVzY3JpcHRvck1hcFxuKTogRGVzY3JpcHRvcldpdGhJbmRleCB8IHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3QgZGVzY3JpcHRvciBvZiBkZXNjcmlwdG9yTWFwLnZhbHVlcygpKSB7XG4gICAgaWYgKEJ1ZmZlci5mcm9tKGRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgoaW5kZXgpLnNjcmlwdFB1YmtleSgpKS5lcXVhbHMoc2NyaXB0KSkge1xuICAgICAgcmV0dXJuIHsgZGVzY3JpcHRvciwgaW5kZXggfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXREZXJpdmF0aW9uSW5kZXhGcm9tUGF0aChwYXRoOiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCBpbmRleFN0ciA9IHBhdGguc3BsaXQoJy8nKS5wb3AoKTtcbiAgaWYgKCFpbmRleFN0cikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkZXJpdmF0aW9uIHBhdGggJHtwYXRofWApO1xuICB9XG4gIGNvbnN0IGluZGV4ID0gcGFyc2VJbnQoaW5kZXhTdHIsIDEwKTtcbiAgaWYgKGluZGV4LnRvU3RyaW5nKCkgIT09IGluZGV4U3RyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlcml2YXRpb24gcGF0aCAke3BhdGh9YCk7XG4gIH1cbiAgcmV0dXJuIGluZGV4O1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIGZpbmREZXNjcmlwdG9yRm9yRGVyaXZhdGlvblBhdGggdGhhdCB0cmllcyBtdWx0aXBsZSBkZXJpdmF0aW9uIHBhdGhzLlxuICogQHBhcmFtIHNjcmlwdFxuICogQHBhcmFtIGRlcml2YXRpb25QYXRoc1xuICogQHBhcmFtIGRlc2NyaXB0b3JNYXBcbiAqL1xuZnVuY3Rpb24gZmluZERlc2NyaXB0b3JGb3JBbnlEZXJpdmF0aW9uUGF0aChcbiAgc2NyaXB0OiBCdWZmZXIsXG4gIGRlcml2YXRpb25QYXRoczogc3RyaW5nW10sXG4gIGRlc2NyaXB0b3JNYXA6IERlc2NyaXB0b3JNYXBcbik6IERlc2NyaXB0b3JXaXRoSW5kZXggfCB1bmRlZmluZWQge1xuICBjb25zdCBkZXJpdmF0aW9uSW5kZXhTZXQgPSBuZXcgU2V0KGRlcml2YXRpb25QYXRocy5tYXAoKHApID0+IGdldERlcml2YXRpb25JbmRleEZyb21QYXRoKHApKSk7XG4gIGZvciAoY29uc3QgaW5kZXggb2YgWy4uLmRlcml2YXRpb25JbmRleFNldF0pIHtcbiAgICBjb25zdCBkZXNjID0gZmluZERlc2NyaXB0b3JGb3JEZXJpdmF0aW9uSW5kZXgoc2NyaXB0LCBpbmRleCwgZGVzY3JpcHRvck1hcCk7XG4gICAgaWYgKGRlc2MpIHtcbiAgICAgIHJldHVybiBkZXNjO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbnR5cGUgV2l0aEJpcDMyRGVyaXZhdGlvbiA9IHsgYmlwMzJEZXJpdmF0aW9uPzogeyBwYXRoOiBzdHJpbmcgfVtdIH07XG50eXBlIFdpdGhUYXBCaXAzMkRlcml2YXRpb24gPSB7IHRhcEJpcDMyRGVyaXZhdGlvbj86IHsgcGF0aDogc3RyaW5nIH1bXSB9O1xuXG5mdW5jdGlvbiBnZXREZXJpdmF0aW9uUGF0aHModjogV2l0aEJpcDMyRGVyaXZhdGlvbiB8IFdpdGhUYXBCaXAzMkRlcml2YXRpb24pOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gIGlmICgnYmlwMzJEZXJpdmF0aW9uJyBpbiB2ICYmIHYuYmlwMzJEZXJpdmF0aW9uKSB7XG4gICAgcmV0dXJuIHYuYmlwMzJEZXJpdmF0aW9uLm1hcCgodikgPT4gdi5wYXRoKTtcbiAgfVxuICBpZiAoJ3RhcEJpcDMyRGVyaXZhdGlvbicgaW4gdiAmJiB2LnRhcEJpcDMyRGVyaXZhdGlvbikge1xuICAgIHJldHVybiB2LnRhcEJpcDMyRGVyaXZhdGlvbi5tYXAoKHYpID0+IHYucGF0aCkuZmlsdGVyKCh2KSA9PiB2ICE9PSAnJyAmJiB2ICE9PSAnbScpO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQHBhcmFtIGlucHV0XG4gKiBAcGFyYW0gZGVzY3JpcHRvck1hcFxuICogQHJldHVybnMgRGVzY3JpcHRvcldpdGhJbmRleCBmb3IgdGhlIGlucHV0IGlmIGZvdW5kLCB1bmRlZmluZWQgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRGVzY3JpcHRvckZvcklucHV0KFxuICBpbnB1dDogUHNidElucHV0LFxuICBkZXNjcmlwdG9yTWFwOiBEZXNjcmlwdG9yTWFwXG4pOiBEZXNjcmlwdG9yV2l0aEluZGV4IHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2NyaXB0ID0gaW5wdXQud2l0bmVzc1V0eG8/LnNjcmlwdDtcbiAgaWYgKCFzY3JpcHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgc2NyaXB0Jyk7XG4gIH1cbiAgY29uc3QgZGVyaXZhdGlvblBhdGhzID0gZ2V0RGVyaXZhdGlvblBhdGhzKGlucHV0KTtcbiAgaWYgKCFkZXJpdmF0aW9uUGF0aHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgZGVyaXZhdGlvbiBwYXRocycpO1xuICB9XG4gIHJldHVybiBmaW5kRGVzY3JpcHRvckZvckFueURlcml2YXRpb25QYXRoKHNjcmlwdCwgZGVyaXZhdGlvblBhdGhzLCBkZXNjcmlwdG9yTWFwKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gc2NyaXB0IC0gdGhlIG91dHB1dCBzY3JpcHRcbiAqIEBwYXJhbSBvdXRwdXQgLSB0aGUgUFNCVCBvdXRwdXRcbiAqIEBwYXJhbSBkZXNjcmlwdG9yTWFwXG4gKiBAcmV0dXJucyBEZXNjcmlwdG9yV2l0aEluZGV4IGZvciB0aGUgb3V0cHV0IGlmIGZvdW5kLCB1bmRlZmluZWQgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRGVzY3JpcHRvckZvck91dHB1dChcbiAgc2NyaXB0OiBCdWZmZXIsXG4gIG91dHB1dDogUHNidE91dHB1dCxcbiAgZGVzY3JpcHRvck1hcDogRGVzY3JpcHRvck1hcFxuKTogRGVzY3JpcHRvcldpdGhJbmRleCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlcml2YXRpb25QYXRocyA9IGdldERlcml2YXRpb25QYXRocyhvdXRwdXQpO1xuICBpZiAoIWRlcml2YXRpb25QYXRocykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIGZpbmREZXNjcmlwdG9yRm9yQW55RGVyaXZhdGlvblBhdGgoc2NyaXB0LCBkZXJpdmF0aW9uUGF0aHMsIGRlc2NyaXB0b3JNYXApO1xufVxuIl19
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZERlc2NyaXB0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvcHNidC9maW5kRGVzY3JpcHRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpSEEsd0RBYUM7QUFRRCwwREFZQztBQWhJRDs7OztHQUlHO0FBQ0gsU0FBUywrQkFBK0IsQ0FDdEMsTUFBYyxFQUNkLGFBQTRCO0lBRTVCLEtBQUssTUFBTSxVQUFVLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUlEOzs7Ozs7R0FNRztBQUNILFNBQVMsZ0NBQWdDLENBQ3ZDLE1BQWMsRUFDZCxLQUFhLEVBQ2IsYUFBNEI7SUFFNUIsS0FBSyxNQUFNLFVBQVUsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9HLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUywwQkFB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WUFDNUIsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsa0NBQWtDLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUNoRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5cblV0aWxpdGllcyBmb3IgbWFwcGluZyBiYWNrIGZyb20gUFNCVCBpbnB1dHMgdG8gZGVzY3JpcHRvcnMuXG5cblRoaXMgaXMgYSBzb21ld2hhdCBicnV0ZS1mb3JjZSBhdHRlbXB0IHRoYXQgcmVsaWVzIG9uIHRoZSBgYmlwMzJEZXJpdmF0aW9uYCBmaWVsZCB0byBiZSBzZXQuXG5cbkl0IHdpbGwgcHJvYmFibHkgb25seSB3b3JrIGNvcnJlY3RseSBpZiBhbGwgeHB1YnMgaW4gdGhlIGRlc2NyaXB0b3IgYXJlIGRlcml2YWJsZS5cblxuV2Ugc2hvdWxkIHRha2UgYSBsb29rIGF0IGEgbW9yZSByb2J1c3QgYW5kIHN0YW5kYXJkIGFwcHJvYWNoIGxpa2UgdGhpczogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9wdWxsLzE1NDhcblxuICovXG5pbXBvcnQgeyBQc2J0SW5wdXQsIFBzYnRPdXRwdXQgfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4uL0Rlc2NyaXB0b3JNYXAnO1xuXG50eXBlIERlc2NyaXB0b3JXaXRob3V0SW5kZXggPSB7IGRlc2NyaXB0b3I6IERlc2NyaXB0b3I7IGluZGV4OiB1bmRlZmluZWQgfTtcblxuLyoqXG4gKiBGaW5kIGEgZGVmaW5pdGUgZGVzY3JpcHRvciBpbiB0aGUgZGVzY3JpcHRvciBtYXAgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBzY3JpcHQuXG4gKiBAcGFyYW0gc2NyaXB0XG4gKiBAcGFyYW0gZGVzY3JpcHRvck1hcFxuICovXG5mdW5jdGlvbiBmaW5kRGVzY3JpcHRvcldpdGhvdXREZXJpdmF0aW9uKFxuICBzY3JpcHQ6IEJ1ZmZlcixcbiAgZGVzY3JpcHRvck1hcDogRGVzY3JpcHRvck1hcFxuKTogRGVzY3JpcHRvcldpdGhvdXRJbmRleCB8IHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3QgZGVzY3JpcHRvciBvZiBkZXNjcmlwdG9yTWFwLnZhbHVlcygpKSB7XG4gICAgaWYgKCFkZXNjcmlwdG9yLmhhc1dpbGRjYXJkKCkpIHtcbiAgICAgIGlmIChCdWZmZXIuZnJvbShkZXNjcmlwdG9yLnNjcmlwdFB1YmtleSgpKS5lcXVhbHMoc2NyaXB0KSkge1xuICAgICAgICByZXR1cm4geyBkZXNjcmlwdG9yLCBpbmRleDogdW5kZWZpbmVkIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxudHlwZSBEZXNjcmlwdG9yV2l0aEluZGV4ID0geyBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yOyBpbmRleDogbnVtYmVyIH07XG5cbi8qKlxuICogRmluZCBhIGRlc2NyaXB0b3IgaW4gdGhlIGRlc2NyaXB0b3IgbWFwIHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gc2NyaXB0IGFuZCBkZXJpdmF0aW9uIGluZGV4LlxuICogQHBhcmFtIHNjcmlwdFxuICogQHBhcmFtIGluZGV4XG4gKiBAcGFyYW0gZGVzY3JpcHRvck1hcFxuICogQHJldHVybnMgRGVzY3JpcHRvcldpdGhJbmRleCBpZiBmb3VuZCwgdW5kZWZpbmVkIG90aGVyd2lzZVxuICovXG5mdW5jdGlvbiBmaW5kRGVzY3JpcHRvckZvckRlcml2YXRpb25JbmRleChcbiAgc2NyaXB0OiBCdWZmZXIsXG4gIGluZGV4OiBudW1iZXIsXG4gIGRlc2NyaXB0b3JNYXA6IERlc2NyaXB0b3JNYXBcbik6IERlc2NyaXB0b3JXaXRoSW5kZXggfCB1bmRlZmluZWQge1xuICBmb3IgKGNvbnN0IGRlc2NyaXB0b3Igb2YgZGVzY3JpcHRvck1hcC52YWx1ZXMoKSkge1xuICAgIGlmIChkZXNjcmlwdG9yLmhhc1dpbGRjYXJkKCkgJiYgQnVmZmVyLmZyb20oZGVzY3JpcHRvci5hdERlcml2YXRpb25JbmRleChpbmRleCkuc2NyaXB0UHVia2V5KCkpLmVxdWFscyhzY3JpcHQpKSB7XG4gICAgICByZXR1cm4geyBkZXNjcmlwdG9yLCBpbmRleCB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldERlcml2YXRpb25JbmRleEZyb21QYXRoKHBhdGg6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IGluZGV4U3RyID0gcGF0aC5zcGxpdCgnLycpLnBvcCgpO1xuICBpZiAoIWluZGV4U3RyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlcml2YXRpb24gcGF0aCAke3BhdGh9YCk7XG4gIH1cbiAgY29uc3QgaW5kZXggPSBwYXJzZUludChpbmRleFN0ciwgMTApO1xuICBpZiAoaW5kZXgudG9TdHJpbmcoKSAhPT0gaW5kZXhTdHIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGVyaXZhdGlvbiBwYXRoICR7cGF0aH1gKTtcbiAgfVxuICByZXR1cm4gaW5kZXg7XG59XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgZmluZERlc2NyaXB0b3JGb3JEZXJpdmF0aW9uUGF0aCB0aGF0IHRyaWVzIG11bHRpcGxlIGRlcml2YXRpb24gcGF0aHMuXG4gKiBAcGFyYW0gc2NyaXB0XG4gKiBAcGFyYW0gZGVyaXZhdGlvblBhdGhzXG4gKiBAcGFyYW0gZGVzY3JpcHRvck1hcFxuICovXG5mdW5jdGlvbiBmaW5kRGVzY3JpcHRvckZvckFueURlcml2YXRpb25QYXRoKFxuICBzY3JpcHQ6IEJ1ZmZlcixcbiAgZGVyaXZhdGlvblBhdGhzOiBzdHJpbmdbXSxcbiAgZGVzY3JpcHRvck1hcDogRGVzY3JpcHRvck1hcFxuKTogRGVzY3JpcHRvcldpdGhJbmRleCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlcml2YXRpb25JbmRleFNldCA9IG5ldyBTZXQoZGVyaXZhdGlvblBhdGhzLm1hcCgocCkgPT4gZ2V0RGVyaXZhdGlvbkluZGV4RnJvbVBhdGgocCkpKTtcbiAgZm9yIChjb25zdCBpbmRleCBvZiBbLi4uZGVyaXZhdGlvbkluZGV4U2V0XSkge1xuICAgIGNvbnN0IGRlc2MgPSBmaW5kRGVzY3JpcHRvckZvckRlcml2YXRpb25JbmRleChzY3JpcHQsIGluZGV4LCBkZXNjcmlwdG9yTWFwKTtcbiAgICBpZiAoZGVzYykge1xuICAgICAgcmV0dXJuIGRlc2M7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxudHlwZSBXaXRoQmlwMzJEZXJpdmF0aW9uID0geyBiaXAzMkRlcml2YXRpb24/OiB7IHBhdGg6IHN0cmluZyB9W10gfTtcbnR5cGUgV2l0aFRhcEJpcDMyRGVyaXZhdGlvbiA9IHsgdGFwQmlwMzJEZXJpdmF0aW9uPzogeyBwYXRoOiBzdHJpbmcgfVtdIH07XG5cbmZ1bmN0aW9uIGdldERlcml2YXRpb25QYXRocyh2OiBXaXRoQmlwMzJEZXJpdmF0aW9uIHwgV2l0aFRhcEJpcDMyRGVyaXZhdGlvbik6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCdiaXAzMkRlcml2YXRpb24nIGluIHYgJiYgdi5iaXAzMkRlcml2YXRpb24pIHtcbiAgICByZXR1cm4gdi5iaXAzMkRlcml2YXRpb24ubWFwKCh2KSA9PiB2LnBhdGgpO1xuICB9XG4gIGlmICgndGFwQmlwMzJEZXJpdmF0aW9uJyBpbiB2ICYmIHYudGFwQmlwMzJEZXJpdmF0aW9uKSB7XG4gICAgcmV0dXJuIHYudGFwQmlwMzJEZXJpdmF0aW9uLm1hcCgodikgPT4gdi5wYXRoKS5maWx0ZXIoKHYpID0+IHYgIT09ICcnICYmIHYgIT09ICdtJyk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0gaW5wdXRcbiAqIEBwYXJhbSBkZXNjcmlwdG9yTWFwXG4gKiBAcmV0dXJucyBEZXNjcmlwdG9yV2l0aEluZGV4IGZvciB0aGUgaW5wdXQgaWYgZm91bmQsIHVuZGVmaW5lZCBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmREZXNjcmlwdG9yRm9ySW5wdXQoXG4gIGlucHV0OiBQc2J0SW5wdXQsXG4gIGRlc2NyaXB0b3JNYXA6IERlc2NyaXB0b3JNYXBcbik6IERlc2NyaXB0b3JXaXRoSW5kZXggfCBEZXNjcmlwdG9yV2l0aG91dEluZGV4IHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2NyaXB0ID0gaW5wdXQud2l0bmVzc1V0eG8/LnNjcmlwdDtcbiAgaWYgKCFzY3JpcHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgc2NyaXB0Jyk7XG4gIH1cbiAgY29uc3QgZGVyaXZhdGlvblBhdGhzID0gZ2V0RGVyaXZhdGlvblBhdGhzKGlucHV0KSA/PyBbXTtcbiAgcmV0dXJuIChcbiAgICBmaW5kRGVzY3JpcHRvcldpdGhvdXREZXJpdmF0aW9uKHNjcmlwdCwgZGVzY3JpcHRvck1hcCkgPz9cbiAgICBmaW5kRGVzY3JpcHRvckZvckFueURlcml2YXRpb25QYXRoKHNjcmlwdCwgZGVyaXZhdGlvblBhdGhzLCBkZXNjcmlwdG9yTWFwKVxuICApO1xufVxuXG4vKipcbiAqIEBwYXJhbSBzY3JpcHQgLSB0aGUgb3V0cHV0IHNjcmlwdFxuICogQHBhcmFtIG91dHB1dCAtIHRoZSBQU0JUIG91dHB1dFxuICogQHBhcmFtIGRlc2NyaXB0b3JNYXBcbiAqIEByZXR1cm5zIERlc2NyaXB0b3JXaXRoSW5kZXggZm9yIHRoZSBvdXRwdXQgaWYgZm91bmQsIHVuZGVmaW5lZCBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmREZXNjcmlwdG9yRm9yT3V0cHV0KFxuICBzY3JpcHQ6IEJ1ZmZlcixcbiAgb3V0cHV0OiBQc2J0T3V0cHV0LFxuICBkZXNjcmlwdG9yTWFwOiBEZXNjcmlwdG9yTWFwXG4pOiBEZXNjcmlwdG9yV2l0aEluZGV4IHwgRGVzY3JpcHRvcldpdGhvdXRJbmRleCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlcml2YXRpb25QYXRocyA9IGdldERlcml2YXRpb25QYXRocyhvdXRwdXQpO1xuICByZXR1cm4gKFxuICAgIGZpbmREZXNjcmlwdG9yV2l0aG91dERlcml2YXRpb24oc2NyaXB0LCBkZXNjcmlwdG9yTWFwKSA/P1xuICAgIChkZXJpdmF0aW9uUGF0aHMgPT09IHVuZGVmaW5lZFxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogZmluZERlc2NyaXB0b3JGb3JBbnlEZXJpdmF0aW9uUGF0aChzY3JpcHQsIGRlcml2YXRpb25QYXRocywgZGVzY3JpcHRvck1hcCkpXG4gICk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
|
@@ -19,4 +19,5 @@ __exportStar(require("./createPsbt"), exports);
|
|
|
19
19
|
__exportStar(require("./parse"), exports);
|
|
20
20
|
__exportStar(require("./findDescriptors"), exports);
|
|
21
21
|
__exportStar(require("./wrap"), exports);
|
|
22
|
-
|
|
22
|
+
__exportStar(require("./sign"), exports);
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9wc2J0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsK0NBQTZCO0FBQzdCLDBDQUF3QjtBQUN4QixvREFBa0M7QUFDbEMseUNBQXVCO0FBQ3ZCLHlDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXNzZXJ0U2F0aXNmaWFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVQc2J0JztcbmV4cG9ydCAqIGZyb20gJy4vcGFyc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maW5kRGVzY3JpcHRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi93cmFwJztcbmV4cG9ydCAqIGZyb20gJy4vc2lnbic7XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjD,MAAM,MAAM,QAAQ,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjD,MAAM,MAAM,QAAQ,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE7E,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAMF,wBAAgB,KAAK,CACnB,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,2BAA2B,CA0C7B"}
|
|
@@ -49,32 +49,32 @@ function parse(psbt, descriptorMap, network) {
|
|
|
49
49
|
if (!input.witnessUtxo.value) {
|
|
50
50
|
throw new Error('invalid input: no value');
|
|
51
51
|
}
|
|
52
|
-
const
|
|
53
|
-
if (!
|
|
52
|
+
const scriptId = (0, findDescriptors_1.findDescriptorForInput)(input, descriptorMap);
|
|
53
|
+
if (!scriptId) {
|
|
54
54
|
throw new Error('invalid input: no descriptor found');
|
|
55
55
|
}
|
|
56
|
-
(0, assertSatisfiable_1.assertSatisfiable)(psbt, inputIndex,
|
|
56
|
+
(0, assertSatisfiable_1.assertSatisfiable)(psbt, inputIndex, scriptId.descriptor);
|
|
57
57
|
return {
|
|
58
58
|
address: utxolib.address.fromOutputScript(input.witnessUtxo.script, network),
|
|
59
59
|
value: input.witnessUtxo.value,
|
|
60
|
-
scriptId
|
|
60
|
+
scriptId,
|
|
61
61
|
};
|
|
62
62
|
});
|
|
63
63
|
const outputs = psbt.txOutputs.map((output, i) => {
|
|
64
64
|
if (output.value === undefined) {
|
|
65
65
|
throw new Error('invalid output: no value');
|
|
66
66
|
}
|
|
67
|
-
const
|
|
67
|
+
const scriptId = (0, findDescriptors_1.findDescriptorForOutput)(output.script, psbt.data.outputs[i], descriptorMap);
|
|
68
68
|
return {
|
|
69
69
|
address: output.address,
|
|
70
70
|
script: output.script,
|
|
71
71
|
value: output.value,
|
|
72
|
-
scriptId
|
|
72
|
+
scriptId,
|
|
73
73
|
};
|
|
74
74
|
});
|
|
75
75
|
const inputAmount = sum(...inputs.map((input) => input.value));
|
|
76
76
|
const outputSum = sum(...outputs.map((output) => output.value));
|
|
77
|
-
const spendAmount = sum(...outputs.filter((output) => !
|
|
77
|
+
const spendAmount = sum(...outputs.filter((output) => !output.scriptId).map((output) => output.value));
|
|
78
78
|
const minerFee = inputAmount - outputSum;
|
|
79
79
|
return {
|
|
80
80
|
inputs,
|
|
@@ -84,4 +84,4 @@ function parse(psbt, descriptorMap, network) {
|
|
|
84
84
|
virtualSize: (0, VirtualSize_1.getVirtualSize)({ inputs: inputs.map((i) => i.scriptId.descriptor), outputs }),
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9wc2J0L3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0NBLHNCQThDQztBQWpGRCw4REFBZ0Q7QUFHaEQsZ0RBQWdEO0FBRWhELHVEQUFvRjtBQUNwRiwyREFBd0Q7QUF5QnhELFNBQVMsR0FBRyxDQUFDLEdBQUcsTUFBZ0I7SUFDOUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsU0FBZ0IsS0FBSyxDQUNuQixJQUFrQixFQUNsQixhQUE0QixFQUM1QixPQUF3QjtJQUV4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFlLEVBQUU7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBQSx3Q0FBc0IsRUFBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFBLHFDQUFpQixFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELE9BQU87WUFDTCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFDNUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSztZQUM5QixRQUFRO1NBQ1QsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFnQixFQUFFO1FBQzdELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUEseUNBQXVCLEVBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3RixPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUNyQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsUUFBUTtTQUNULENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkcsTUFBTSxRQUFRLEdBQUcsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUN6QyxPQUFPO1FBQ0wsTUFBTTtRQUNOLE9BQU87UUFDUCxXQUFXO1FBQ1gsUUFBUTtRQUNSLFdBQVcsRUFBRSxJQUFBLDRCQUFjLEVBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztLQUMzRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vRGVzY3JpcHRvck1hcCc7XG5pbXBvcnQgeyBnZXRWaXJ0dWFsU2l6ZSB9IGZyb20gJy4uL1ZpcnR1YWxTaXplJztcblxuaW1wb3J0IHsgZmluZERlc2NyaXB0b3JGb3JJbnB1dCwgZmluZERlc2NyaXB0b3JGb3JPdXRwdXQgfSBmcm9tICcuL2ZpbmREZXNjcmlwdG9ycyc7XG5pbXBvcnQgeyBhc3NlcnRTYXRpc2ZpYWJsZSB9IGZyb20gJy4vYXNzZXJ0U2F0aXNmaWFibGUnO1xuXG5leHBvcnQgdHlwZSBTY3JpcHRJZCA9IHsgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjsgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCB9O1xuXG5leHBvcnQgdHlwZSBQYXJzZWRJbnB1dCA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZTogYmlnaW50O1xuICBzY3JpcHRJZDogU2NyaXB0SWQ7XG59O1xuXG5leHBvcnQgdHlwZSBQYXJzZWRPdXRwdXQgPSB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIHNjcmlwdDogQnVmZmVyO1xuICB2YWx1ZTogYmlnaW50O1xuICBzY3JpcHRJZD86IFNjcmlwdElkO1xufTtcblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uID0ge1xuICBpbnB1dHM6IFBhcnNlZElucHV0W107XG4gIG91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xuICBzcGVuZEFtb3VudDogYmlnaW50O1xuICBtaW5lckZlZTogYmlnaW50O1xuICB2aXJ0dWFsU2l6ZTogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gc3VtKC4uLnZhbHVlczogYmlnaW50W10pOiBiaWdpbnQge1xuICByZXR1cm4gdmFsdWVzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIEJpZ0ludCgwKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShcbiAgcHNidDogdXR4b2xpYi5Qc2J0LFxuICBkZXNjcmlwdG9yTWFwOiBEZXNjcmlwdG9yTWFwLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IGlucHV0cyA9IHBzYnQuZGF0YS5pbnB1dHMubWFwKChpbnB1dCwgaW5wdXRJbmRleCk6IFBhcnNlZElucHV0ID0+IHtcbiAgICBpZiAoIWlucHV0LndpdG5lc3NVdHhvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgaW5wdXQ6IG5vIHdpdG5lc3NVdHhvJyk7XG4gICAgfVxuICAgIGlmICghaW5wdXQud2l0bmVzc1V0eG8udmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBpbnB1dDogbm8gdmFsdWUnKTtcbiAgICB9XG4gICAgY29uc3Qgc2NyaXB0SWQgPSBmaW5kRGVzY3JpcHRvckZvcklucHV0KGlucHV0LCBkZXNjcmlwdG9yTWFwKTtcbiAgICBpZiAoIXNjcmlwdElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgaW5wdXQ6IG5vIGRlc2NyaXB0b3IgZm91bmQnKTtcbiAgICB9XG4gICAgYXNzZXJ0U2F0aXNmaWFibGUocHNidCwgaW5wdXRJbmRleCwgc2NyaXB0SWQuZGVzY3JpcHRvcik7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHJlc3M6IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KGlucHV0LndpdG5lc3NVdHhvLnNjcmlwdCwgbmV0d29yayksXG4gICAgICB2YWx1ZTogaW5wdXQud2l0bmVzc1V0eG8udmFsdWUsXG4gICAgICBzY3JpcHRJZCxcbiAgICB9O1xuICB9KTtcbiAgY29uc3Qgb3V0cHV0cyA9IHBzYnQudHhPdXRwdXRzLm1hcCgob3V0cHV0LCBpKTogUGFyc2VkT3V0cHV0ID0+IHtcbiAgICBpZiAob3V0cHV0LnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBvdXRwdXQ6IG5vIHZhbHVlJyk7XG4gICAgfVxuICAgIGNvbnN0IHNjcmlwdElkID0gZmluZERlc2NyaXB0b3JGb3JPdXRwdXQob3V0cHV0LnNjcmlwdCwgcHNidC5kYXRhLm91dHB1dHNbaV0sIGRlc2NyaXB0b3JNYXApO1xuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcyxcbiAgICAgIHNjcmlwdDogb3V0cHV0LnNjcmlwdCxcbiAgICAgIHZhbHVlOiBvdXRwdXQudmFsdWUsXG4gICAgICBzY3JpcHRJZCxcbiAgICB9O1xuICB9KTtcbiAgY29uc3QgaW5wdXRBbW91bnQgPSBzdW0oLi4uaW5wdXRzLm1hcCgoaW5wdXQpID0+IGlucHV0LnZhbHVlKSk7XG4gIGNvbnN0IG91dHB1dFN1bSA9IHN1bSguLi5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiBvdXRwdXQudmFsdWUpKTtcbiAgY29uc3Qgc3BlbmRBbW91bnQgPSBzdW0oLi4ub3V0cHV0cy5maWx0ZXIoKG91dHB1dCkgPT4gIW91dHB1dC5zY3JpcHRJZCkubWFwKChvdXRwdXQpID0+IG91dHB1dC52YWx1ZSkpO1xuICBjb25zdCBtaW5lckZlZSA9IGlucHV0QW1vdW50IC0gb3V0cHV0U3VtO1xuICByZXR1cm4ge1xuICAgIGlucHV0cyxcbiAgICBvdXRwdXRzLFxuICAgIHNwZW5kQW1vdW50LFxuICAgIG1pbmVyRmVlLFxuICAgIHZpcnR1YWxTaXplOiBnZXRWaXJ0dWFsU2l6ZSh7IGlucHV0czogaW5wdXRzLm1hcCgoaSkgPT4gaS5zY3JpcHRJZC5kZXNjcmlwdG9yKSwgb3V0cHV0cyB9KSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { Psbt as WasmPsbt } from '@bitgo/wasm-miniscript';
|
|
3
|
+
/** These can be replaced when @bitgo/wasm-miniscript is updated */
|
|
4
|
+
export type SignPsbtInputResult = {
|
|
5
|
+
Schnorr: string[];
|
|
6
|
+
} | {
|
|
7
|
+
Ecdsa: string[];
|
|
8
|
+
};
|
|
9
|
+
export type SignPsbtResult = {
|
|
10
|
+
[inputIndex: number]: SignPsbtInputResult;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* @param signResult
|
|
14
|
+
* @return the number of new signatures created by the signResult for a single input
|
|
15
|
+
*/
|
|
16
|
+
export declare function getNewSignatureCountForInput(signResult: SignPsbtInputResult): number;
|
|
17
|
+
/**
|
|
18
|
+
* @param signResult
|
|
19
|
+
* @return the number of new signatures created by the signResult
|
|
20
|
+
*/
|
|
21
|
+
export declare function getNewSignatureCount(signResult: SignPsbtResult): number;
|
|
22
|
+
type Key = Buffer | utxolib.BIP32Interface | utxolib.ECPairInterface;
|
|
23
|
+
/** Convenience function to sign a PSBT with a key */
|
|
24
|
+
export declare function signWithKey(psbt: WasmPsbt, key: Key): SignPsbtResult;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=sign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/sign.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE1D,mEAAmE;AACnE,MAAM,MAAM,mBAAmB,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAC9E,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAQpF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAEvE;AAED,KAAK,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;AAErE,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,cAAc,CAUpE"}
|