@bitgo/abstract-utxo 11.3.0 → 11.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/descriptor/builder/builder.d.ts +5 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/builder/builder.js +18 -1
- package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/builder/parse.js +34 -2
- package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/validatePolicy.js +3 -1
- package/dist/cjs/test/unit/descriptor/builder.js +15 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/descriptor/builder/builder.d.ts +5 -0
- package/dist/esm/descriptor/builder/builder.d.ts.map +1 -1
- package/dist/esm/descriptor/builder/builder.js +18 -1
- package/dist/esm/descriptor/builder/parse.d.ts.map +1 -1
- package/dist/esm/descriptor/builder/parse.js +34 -2
- package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -1
- package/dist/esm/descriptor/validatePolicy.js +3 -1
- package/package.json +9 -8
|
@@ -6,6 +6,11 @@ type DescriptorWithKeys<TName extends string> = {
|
|
|
6
6
|
};
|
|
7
7
|
export type DescriptorBuilder = DescriptorWithKeys<'Wsh2Of2'> | DescriptorWithKeys<'Wsh2Of3'> | (DescriptorWithKeys<'ShWsh2Of3CltvDrop' | 'Wsh2Of3CltvDrop'> & {
|
|
8
8
|
locktime: number;
|
|
9
|
+
}) | (DescriptorWithKeys<'SbtcDeposit'> & {
|
|
10
|
+
lockTime: number;
|
|
11
|
+
maxFee: bigint;
|
|
12
|
+
stacksRecipient: Buffer;
|
|
13
|
+
signersAggregateKey: Buffer;
|
|
9
14
|
});
|
|
10
15
|
export declare function getDescriptorFromBuilder(builder: DescriptorBuilder): Descriptor;
|
|
11
16
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../../src/descriptor/builder/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../../src/descriptor/builder/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErD,KAAK,kBAAkB,CAAC,KAAK,SAAS,MAAM,IAAI;IAC9C,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,CAAC,SAAS,CAAC,GAC7B,kBAAkB,CAAC,SAAS,CAAC,GAM7B,CAAC,kBAAkB,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GAYpF,CAAC,kBAAkB,CAAC,aAAa,CAAC,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC,CAAC;AAkDP,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAE/E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getDescriptorFromBuilder = getDescriptorFromBuilder;
|
|
4
|
+
const utxo_descriptors_1 = require("@bitgo/utxo-descriptors");
|
|
4
5
|
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
5
6
|
function toXPub(k) {
|
|
6
7
|
if (typeof k === 'string') {
|
|
@@ -28,10 +29,26 @@ function getDescriptorString(builder) {
|
|
|
28
29
|
return `wsh(and_v(r:after(${builder.locktime}),${multi(2, 3, builder.keys, builder.path)}))`;
|
|
29
30
|
case 'ShWsh2Of3CltvDrop':
|
|
30
31
|
return `sh(${getDescriptorString({ ...builder, name: 'Wsh2Of3CltvDrop' })})`;
|
|
32
|
+
case 'SbtcDeposit':
|
|
33
|
+
// The reclaim leaf always uses `/*` wildcard derivation; `createSbtcDepositDescriptor`
|
|
34
|
+
// hardcodes that suffix when given BIP32 keys, so reject any other path here.
|
|
35
|
+
if (builder.path !== '*') {
|
|
36
|
+
throw new Error(`SbtcDeposit path must be '*', got '${builder.path}'`);
|
|
37
|
+
}
|
|
38
|
+
if (builder.keys.length !== 3) {
|
|
39
|
+
throw new Error(`SbtcDeposit needs exactly 3 reclaim keys, got ${builder.keys.length}`);
|
|
40
|
+
}
|
|
41
|
+
return utxo_descriptors_1.sbtc.createSbtcDepositDescriptor({
|
|
42
|
+
walletKeys: [builder.keys[0], builder.keys[1], builder.keys[2]],
|
|
43
|
+
lockTime: builder.lockTime,
|
|
44
|
+
maxFee: builder.maxFee,
|
|
45
|
+
stacksRecipient: builder.stacksRecipient,
|
|
46
|
+
signersAggregateKey: builder.signersAggregateKey,
|
|
47
|
+
});
|
|
31
48
|
}
|
|
32
49
|
throw new Error(`Unknown descriptor template: ${builder}`);
|
|
33
50
|
}
|
|
34
51
|
function getDescriptorFromBuilder(builder) {
|
|
35
52
|
return wasm_utxo_1.Descriptor.fromString(getDescriptorString(builder), 'derivable');
|
|
36
53
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2J1aWxkZXIvYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9GQSw0REFFQztBQXRGRCw4REFBK0M7QUFDL0MsZ0RBQXFEO0FBbUNyRCxTQUFTLE1BQU0sQ0FBQyxDQUFnQztJQUM5QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ2pDLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLElBQXVDLEVBQUUsSUFBWTtJQUN4RixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEIsT0FBTyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQzVFLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLE9BQTBCO0lBQ3JELFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLEtBQUssU0FBUztZQUNaLE9BQU8sT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzNELEtBQUssU0FBUztZQUNaLE9BQU8sT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzNELEtBQUssaUJBQWlCO1lBQ3BCLE9BQU8scUJBQXFCLE9BQU8sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvRixLQUFLLG1CQUFtQjtZQUN0QixPQUFPLE1BQU0sbUJBQW1CLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDL0UsS0FBSyxhQUFhO1lBQ2hCLHVGQUF1RjtZQUN2Riw4RUFBOEU7WUFDOUUsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUN6RSxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzFGLENBQUM7WUFDRCxPQUFPLHVCQUFJLENBQUMsMkJBQTJCLENBQUM7Z0JBQ3RDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO2dCQUN4QyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsbUJBQW1CO2FBQ2pELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxPQUEwQjtJQUNqRSxPQUFPLHNCQUFVLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzYnRjIH0gZnJvbSAnQGJpdGdvL3V0eG8tZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHsgYmlwMzIsIERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxudHlwZSBEZXNjcmlwdG9yV2l0aEtleXM8VE5hbWUgZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBuYW1lOiBUTmFtZTtcbiAga2V5czogYmlwMzIuQklQMzJJbnRlcmZhY2VbXTtcbiAgcGF0aDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRGVzY3JpcHRvckJ1aWxkZXIgPVxuICB8IERlc2NyaXB0b3JXaXRoS2V5czwnV3NoMk9mMic+XG4gIHwgRGVzY3JpcHRvcldpdGhLZXlzPCdXc2gyT2YzJz5cbiAgLypcbiAgICogVGhpcyBpcyBhIHNlZ3dpdCAod3JhcHBlZCBvciBuYXRpdmUpIDJvZjMgbXVsdGlzaWcgdGhhdCBhbHNvIHVzZXMgYVxuICAgKiByZWxhdGl2ZSBsb2NrdGltZSB3aXRoIGFuIE9QX0RST1AgKHJlcXVpcmluZyBhIG1pbmlzY3JpcHQgZXh0ZW5zaW9uKS5cbiAgICogSXQgaXMgYmFzaWNhbGx5IHdoYXQgaXMgdXNlZCBpbiBDb3JlRGFvIHN0YWtpbmcgdHJhbnNhY3Rpb25zLlxuICAgKi9cbiAgfCAoRGVzY3JpcHRvcldpdGhLZXlzPCdTaFdzaDJPZjNDbHR2RHJvcCcgfCAnV3NoMk9mM0NsdHZEcm9wJz4gJiB7IGxvY2t0aW1lOiBudW1iZXIgfSlcbiAgLypcbiAgICogc0JUQyBwZWctaW4gZGVwb3NpdCBUYXByb290IGRlc2NyaXB0b3I6XG4gICAqICAgdHIoPFVOU1BFTkRBQkxFPixcbiAgICogICAgIHtcbiAgICogICAgICAgYzphbmRfdihwYXlsb2FkX2Ryb3AoPGZlZUJFfHxyZWNpcGllbnQ+KSwgcGtfayg8c2lnbmVyc0tleT4pKSxcbiAgICogICAgICAgYW5kX3YocjpvbGRlcig8bG9ja1RpbWU+KSwgbXVsdGlfYSgyLCBrMS8qLCBrMi8qLCBrMy8qKSlcbiAgICogICAgIH1cbiAgICogICApXG4gICAqXG4gICAqIGBrZXlzYCBhcmUgdGhlIHRocmVlIHJlY2xhaW0ga2V5cyB1c2VkIGluIHRoZSByZWNsYWltLWxlYWYgbXVsdGlfYS5cbiAgICovXG4gIHwgKERlc2NyaXB0b3JXaXRoS2V5czwnU2J0Y0RlcG9zaXQnPiAmIHtcbiAgICAgIGxvY2tUaW1lOiBudW1iZXI7XG4gICAgICBtYXhGZWU6IGJpZ2ludDtcbiAgICAgIHN0YWNrc1JlY2lwaWVudDogQnVmZmVyO1xuICAgICAgc2lnbmVyc0FnZ3JlZ2F0ZUtleTogQnVmZmVyO1xuICAgIH0pO1xuXG5mdW5jdGlvbiB0b1hQdWIoazogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGsgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGs7XG4gIH1cbiAgcmV0dXJuIGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xufVxuXG5mdW5jdGlvbiBtdWx0aShtOiBudW1iZXIsIG46IG51bWJlciwga2V5czogYmlwMzIuQklQMzJJbnRlcmZhY2VbXSB8IHN0cmluZ1tdLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAobiA8IG0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjcmVhdGUgJHttfSBvZiAke259IG11bHRpc2lnYCk7XG4gIH1cbiAgaWYgKGtleXMubGVuZ3RoIDwgbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm90IGVub3VnaCBrZXlzIGZvciAke219IG9mICR7bn0gbXVsdGlzaWc6IGtleXMubGVuZ3RoPSR7a2V5cy5sZW5ndGh9YCk7XG4gIH1cbiAga2V5cyA9IGtleXMuc2xpY2UoMCwgbik7XG4gIHJldHVybiBgbXVsdGkoJHttfSwke2tleXMubWFwKChrKSA9PiBgJHt0b1hQdWIoayl9LyR7cGF0aH1gKS5qb2luKCcsJyl9KWA7XG59XG5cbmZ1bmN0aW9uIGdldERlc2NyaXB0b3JTdHJpbmcoYnVpbGRlcjogRGVzY3JpcHRvckJ1aWxkZXIpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGJ1aWxkZXIubmFtZSkge1xuICAgIGNhc2UgJ1dzaDJPZjMnOlxuICAgICAgcmV0dXJuIGB3c2goJHttdWx0aSgyLCAzLCBidWlsZGVyLmtleXMsIGJ1aWxkZXIucGF0aCl9KWA7XG4gICAgY2FzZSAnV3NoMk9mMic6XG4gICAgICByZXR1cm4gYHdzaCgke211bHRpKDIsIDIsIGJ1aWxkZXIua2V5cywgYnVpbGRlci5wYXRoKX0pYDtcbiAgICBjYXNlICdXc2gyT2YzQ2x0dkRyb3AnOlxuICAgICAgcmV0dXJuIGB3c2goYW5kX3YocjphZnRlcigke2J1aWxkZXIubG9ja3RpbWV9KSwke211bHRpKDIsIDMsIGJ1aWxkZXIua2V5cywgYnVpbGRlci5wYXRoKX0pKWA7XG4gICAgY2FzZSAnU2hXc2gyT2YzQ2x0dkRyb3AnOlxuICAgICAgcmV0dXJuIGBzaCgke2dldERlc2NyaXB0b3JTdHJpbmcoeyAuLi5idWlsZGVyLCBuYW1lOiAnV3NoMk9mM0NsdHZEcm9wJyB9KX0pYDtcbiAgICBjYXNlICdTYnRjRGVwb3NpdCc6XG4gICAgICAvLyBUaGUgcmVjbGFpbSBsZWFmIGFsd2F5cyB1c2VzIGAvKmAgd2lsZGNhcmQgZGVyaXZhdGlvbjsgYGNyZWF0ZVNidGNEZXBvc2l0RGVzY3JpcHRvcmBcbiAgICAgIC8vIGhhcmRjb2RlcyB0aGF0IHN1ZmZpeCB3aGVuIGdpdmVuIEJJUDMyIGtleXMsIHNvIHJlamVjdCBhbnkgb3RoZXIgcGF0aCBoZXJlLlxuICAgICAgaWYgKGJ1aWxkZXIucGF0aCAhPT0gJyonKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2J0Y0RlcG9zaXQgcGF0aCBtdXN0IGJlICcqJywgZ290ICcke2J1aWxkZXIucGF0aH0nYCk7XG4gICAgICB9XG4gICAgICBpZiAoYnVpbGRlci5rZXlzLmxlbmd0aCAhPT0gMykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNidGNEZXBvc2l0IG5lZWRzIGV4YWN0bHkgMyByZWNsYWltIGtleXMsIGdvdCAke2J1aWxkZXIua2V5cy5sZW5ndGh9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2J0Yy5jcmVhdGVTYnRjRGVwb3NpdERlc2NyaXB0b3Ioe1xuICAgICAgICB3YWxsZXRLZXlzOiBbYnVpbGRlci5rZXlzWzBdLCBidWlsZGVyLmtleXNbMV0sIGJ1aWxkZXIua2V5c1syXV0sXG4gICAgICAgIGxvY2tUaW1lOiBidWlsZGVyLmxvY2tUaW1lLFxuICAgICAgICBtYXhGZWU6IGJ1aWxkZXIubWF4RmVlLFxuICAgICAgICBzdGFja3NSZWNpcGllbnQ6IGJ1aWxkZXIuc3RhY2tzUmVjaXBpZW50LFxuICAgICAgICBzaWduZXJzQWdncmVnYXRlS2V5OiBidWlsZGVyLnNpZ25lcnNBZ2dyZWdhdGVLZXksXG4gICAgICB9KTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZGVzY3JpcHRvciB0ZW1wbGF0ZTogJHtidWlsZGVyfWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyKGJ1aWxkZXI6IERlc2NyaXB0b3JCdWlsZGVyKTogRGVzY3JpcHRvciB7XG4gIHJldHVybiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoZ2V0RGVzY3JpcHRvclN0cmluZyhidWlsZGVyKSwgJ2Rlcml2YWJsZScpO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../src/descriptor/builder/parse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../src/descriptor/builder/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAA4B,MAAM,WAAW,CAAC;AA4IxE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CASpE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,iBAAiB,CAQzE"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseDescriptorNode = parseDescriptorNode;
|
|
4
4
|
exports.parseDescriptor = parseDescriptor;
|
|
5
|
+
const utxo_descriptors_1 = require("@bitgo/utxo-descriptors");
|
|
5
6
|
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
6
7
|
const builder_1 = require("./builder");
|
|
7
8
|
function isUnaryNode(node, key) {
|
|
@@ -72,6 +73,35 @@ function parseWshMulti(node) {
|
|
|
72
73
|
};
|
|
73
74
|
}
|
|
74
75
|
}
|
|
76
|
+
function parseSbtcDeposit(descriptor) {
|
|
77
|
+
const parsed = utxo_descriptors_1.sbtc.parseSbtcDepositDescriptor(descriptor);
|
|
78
|
+
if (!parsed) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
// For wallet descriptors the reclaim leaf is a derivable `multi_a` with
|
|
82
|
+
// `xpub.../*` entries; split each into xpub + path. Definite descriptors
|
|
83
|
+
// produce raw hex strings here, which `BIP32.fromBase58` rejects — that
|
|
84
|
+
// matches our intent, since a definite descriptor isn't a wallet descriptor.
|
|
85
|
+
const keyWithPath = parsed.reclaimKeyStrings.map((k) => {
|
|
86
|
+
const [xpub, ...rest] = k.split('/');
|
|
87
|
+
return { xpub, path: rest.join('/') };
|
|
88
|
+
});
|
|
89
|
+
const paths = keyWithPath.map((k) => k.path);
|
|
90
|
+
paths.forEach((p) => {
|
|
91
|
+
if (p !== paths[0]) {
|
|
92
|
+
throw new Error(`Expected all multi_a paths to be the same: ${p} !== ${paths[0]}`);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
name: 'SbtcDeposit',
|
|
97
|
+
keys: keyWithPath.map((k) => wasm_utxo_1.BIP32.fromBase58(k.xpub)),
|
|
98
|
+
path: paths[0],
|
|
99
|
+
lockTime: parsed.lockTime,
|
|
100
|
+
maxFee: parsed.maxFee,
|
|
101
|
+
stacksRecipient: parsed.stacksRecipient,
|
|
102
|
+
signersAggregateKey: parsed.signersAggregateKey,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
75
105
|
function parseCltvDrop(node, name, wrapping) {
|
|
76
106
|
const unwrapped = unwrapNode(node, wrapping);
|
|
77
107
|
if (!unwrapped) {
|
|
@@ -107,10 +137,12 @@ function parseDescriptorNode(node) {
|
|
|
107
137
|
return parsed;
|
|
108
138
|
}
|
|
109
139
|
function parseDescriptor(descriptor) {
|
|
110
|
-
|
|
140
|
+
// sBTC peg-in uses a Taproot `tr(...)` descriptor that the raw-node parsers
|
|
141
|
+
// don't recognize; match it against the ast form first.
|
|
142
|
+
const builder = parseSbtcDeposit(descriptor) ?? parseDescriptorNode(descriptor.node());
|
|
111
143
|
if ((0, builder_1.getDescriptorFromBuilder)(builder).toString() !== descriptor.toString()) {
|
|
112
144
|
throw new Error('Failed to parse descriptor');
|
|
113
145
|
}
|
|
114
146
|
return builder;
|
|
115
147
|
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9idWlsZGVyL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBOEdBLGtEQVNDO0FBRUQsMENBTUM7QUEvSEQsZ0RBQTREO0FBRTVELHVDQUF3RTtBQUl4RSxTQUFTLFdBQVcsQ0FBc0IsSUFBYSxFQUFFLEdBQVM7SUFDaEUsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO0FBQzlDLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFhLEVBQUUsSUFBYztJQUMvQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDbkIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYTtJQUsvQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLFFBQVEs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QUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsVUFBc0I7SUFDcEQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsSUFBSSxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMyLCBiaXAzMiwgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yQnVpbGRlciwgZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyIH0gZnJvbSAnLi9idWlsZGVyJztcblxudHlwZSBOb2RlVW5hcnk8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHsgW2sgaW4gS2V5XTogdW5rbm93biB9O1xuXG5mdW5jdGlvbiBpc1VuYXJ5Tm9kZTxUS2V5IGV4dGVuZHMgc3RyaW5nPihub2RlOiB1bmtub3duLCBrZXk6IFRLZXkpOiBub2RlIGlzIE5vZGVVbmFyeTxUS2V5PiB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcgfHwgbm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMobm9kZSk7XG4gIHJldHVybiBrZXlzLmxlbmd0aCA9PT0gMSAmJiBrZXlzWzBdID09PSBrZXk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcE5vZGUobm9kZTogdW5rbm93biwgcGF0aDogc3RyaW5nW10pOiB1bmtub3duIHtcbiAgbGV0IGN1cnJlbnQgPSBub2RlO1xuICBmb3IgKGNvbnN0IGtleSBvZiBwYXRoKSB7XG4gICAgaWYgKCFpc1VuYXJ5Tm9kZShjdXJyZW50LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuXG5mdW5jdGlvbiBwYXJzZU11bHRpKG5vZGU6IHVua25vd24pOiB7XG4gIHRocmVzaG9sZDogbnVtYmVyO1xuICBrZXlzOiBiaXAzMi5CSVAzMkludGVyZmFjZVtdO1xuICBwYXRoOiBzdHJpbmc7XG59IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIG5vZGUnKTtcbiAgfVxuICBjb25zdCBbdGhyZXNob2xkLCAuLi5rZXlOb2Rlc10gPSBub2RlO1xuICBpZiAodHlwZW9mIHRocmVzaG9sZCAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRocmVzaG9sZCBudW1iZXInKTtcbiAgfVxuICBjb25zdCBrZXlXaXRoUGF0aCA9IGtleU5vZGVzLm1hcCgoa2V5Tm9kZSkgPT4ge1xuICAgIGlmICghaXNVbmFyeU5vZGUoa2V5Tm9kZSwgJ1hQdWInKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBYUHViIG5vZGUnKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBrZXlOb2RlLlhQdWIgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIFhQdWIgc3RyaW5nJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnRzID0ga2V5Tm9kZS5YUHViLnNwbGl0KCcvJyk7XG4gICAgcmV0dXJuIHsgeHB1YjogcGFydHNbMF0sIHBhdGg6IHBhcnRzLnNsaWNlKDEpLmpvaW4oJy8nKSB9O1xuICB9KTtcbiAgY29uc3QgcGF0aHMgPSBrZXlXaXRoUGF0aC5tYXAoKGspID0+IGsucGF0aCk7XG4gIHBhdGhzLmZvckVhY2goKHBhdGgsIGkpID0+IHtcbiAgICBpZiAocGF0aCAhPT0gcGF0aHNbMF0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYWxsIHBhdGhzIHRvIGJlIHRoZSBzYW1lOiAke3BhdGh9ICE9PSAke3BhdGhzWzBdfWApO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB7XG4gICAgdGhyZXNob2xkLFxuICAgIGtleXM6IGtleVdpdGhQYXRoLm1hcCgoaykgPT4gQklQMzIuZnJvbUJhc2U1OChrLnhwdWIpKSxcbiAgICBwYXRoOiBwYXRoc1swXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VXc2hNdWx0aShub2RlOiB1bmtub3duKTogRGVzY3JpcHRvckJ1aWxkZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCB3c2hNc011bHRpID0gdW53cmFwTm9kZShub2RlLCBbJ1dzaCcsICdNcycsICdNdWx0aSddKTtcbiAgaWYgKHdzaE1zTXVsdGkpIHtcbiAgICBjb25zdCB7IHRocmVzaG9sZCwga2V5cywgcGF0aCB9ID0gcGFyc2VNdWx0aSh3c2hNc011bHRpKTtcbiAgICBsZXQgbmFtZTtcbiAgICBpZiAodGhyZXNob2xkID09PSAyICYmIGtleXMubGVuZ3RoID09PSAyKSB7XG4gICAgICBuYW1lID0gJ1dzaDJPZjInO1xuICAgIH0gZWxzZSBpZiAodGhyZXNob2xkID09PSAyICYmIGtleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICBuYW1lID0gJ1dzaDJPZjMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgbXVsdGlzaWcnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBrZXlzLFxuICAgICAgcGF0aCxcbiAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ2x0dkRyb3AoXG4gIG5vZGU6IHVua25vd24sXG4gIG5hbWU6ICdXc2gyT2YzQ2x0dkRyb3AnIHwgJ1NoV3NoMk9mM0NsdHZEcm9wJyxcbiAgd3JhcHBpbmc6IHN0cmluZ1tdXG4pOiBEZXNjcmlwdG9yQnVpbGRlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHVud3JhcHBlZCA9IHVud3JhcE5vZGUobm9kZSwgd3JhcHBpbmcpO1xuICBpZiAoIXVud3JhcHBlZCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh1bndyYXBwZWQpICYmIHVud3JhcHBlZC5sZW5ndGggPT09IDIpIHtcbiAgICBjb25zdCBbYSwgYl0gPSB1bndyYXBwZWQ7XG4gICAgY29uc3QgZHJvcEFmdGVyQWJzTG9ja3RpbWUgPSB1bndyYXBOb2RlKGEsIFsnRHJvcCcsICdBZnRlcicsICdhYnNMb2NrVGltZSddKTtcbiAgICBpZiAodHlwZW9mIGRyb3BBZnRlckFic0xvY2t0aW1lICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhYnNMb2NrVGltZSBudW1iZXInKTtcbiAgICB9XG4gICAgaWYgKCFpc1VuYXJ5Tm9kZShiLCAnTXVsdGknKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBNdWx0aSBub2RlJyk7XG4gICAgfVxuICAgIGNvbnN0IG11bHRpID0gcGFyc2VNdWx0aShiLk11bHRpKTtcbiAgICBpZiAobXVsdGkudGhyZXNob2xkID09PSAyICYmIG11bHRpLmtleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBsb2NrdGltZTogZHJvcEFmdGVyQWJzTG9ja3RpbWUsXG4gICAgICAgIGtleXM6IG11bHRpLmtleXMsXG4gICAgICAgIHBhdGg6IG11bHRpLnBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZXNjcmlwdG9yTm9kZShub2RlOiB1bmtub3duKTogRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdCBwYXJzZWQgPVxuICAgIHBhcnNlV3NoTXVsdGkobm9kZSkgPz9cbiAgICBwYXJzZUNsdHZEcm9wKG5vZGUsICdTaFdzaDJPZjNDbHR2RHJvcCcsIFsnU2gnLCAnV3NoJywgJ01zJywgJ0FuZFYnXSkgPz9cbiAgICBwYXJzZUNsdHZEcm9wKG5vZGUsICdXc2gyT2YzQ2x0dkRyb3AnLCBbJ1dzaCcsICdNcycsICdBbmRWJ10pO1xuICBpZiAoIXBhcnNlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHBhcnNlIGRlc2NyaXB0b3Igbm9kZScpO1xuICB9XG4gIHJldHVybiBwYXJzZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvcik6IERlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3QgYnVpbGRlciA9IHBhcnNlRGVzY3JpcHRvck5vZGUoZGVzY3JpcHRvci5ub2RlKCkpO1xuICBpZiAoZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyKGJ1aWxkZXIpLnRvU3RyaW5nKCkgIT09IGRlc2NyaXB0b3IudG9TdHJpbmcoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHBhcnNlIGRlc2NyaXB0b3InKTtcbiAgfVxuICByZXR1cm4gYnVpbGRlcjtcbn1cbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9idWlsZGVyL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBK0lBLGtEQVNDO0FBRUQsMENBUUM7QUFsS0QsOERBQStDO0FBQy9DLGdEQUE0RDtBQUU1RCx1Q0FBd0U7QUFJeEUsU0FBUyxXQUFXLENBQXNCLElBQWEsRUFBRSxHQUFTO0lBQ2hFLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYSxFQUFFLElBQWM7SUFDL0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ25CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQWE7SUFLL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE1BQU0sQ0FBQyxTQUFTLEVB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QUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFhO0lBQy9DLE1BQU0sTUFBTSxHQUNWLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDbkIsYUFBYSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLFVBQXNCO0lBQ3BELDRFQUE0RTtJQUM1RSx3REFBd0Q7SUFDeEQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkYsSUFBSSxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNidGMgfSBmcm9tICdAYml0Z28vdXR4by1kZXNjcmlwdG9ycyc7XG5pbXBvcnQgeyBCSVAzMiwgYmlwMzIsIERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgRGVzY3JpcHRvckJ1aWxkZXIsIGdldERlc2NyaXB0b3JGcm9tQnVpbGRlciB9IGZyb20gJy4vYnVpbGRlcic7XG5cbnR5cGUgTm9kZVVuYXJ5PEtleSBleHRlbmRzIHN0cmluZz4gPSB7IFtrIGluIEtleV06IHVua25vd24gfTtcblxuZnVuY3Rpb24gaXNVbmFyeU5vZGU8VEtleSBleHRlbmRzIHN0cmluZz4obm9kZTogdW5rbm93biwga2V5OiBUS2V5KTogbm9kZSBpcyBOb2RlVW5hcnk8VEtleT4ge1xuICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnIHx8IG5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG5vZGUpO1xuICByZXR1cm4ga2V5cy5sZW5ndGggPT09IDEgJiYga2V5c1swXSA9PT0ga2V5O1xufVxuXG5mdW5jdGlvbiB1bndyYXBOb2RlKG5vZGU6IHVua25vd24sIHBhdGg6IHN0cmluZ1tdKTogdW5rbm93biB7XG4gIGxldCBjdXJyZW50ID0gbm9kZTtcbiAgZm9yIChjb25zdCBrZXkgb2YgcGF0aCkge1xuICAgIGlmICghaXNVbmFyeU5vZGUoY3VycmVudCwga2V5KSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcbiAgfVxuICByZXR1cm4gY3VycmVudDtcbn1cblxuZnVuY3Rpb24gcGFyc2VNdWx0aShub2RlOiB1bmtub3duKToge1xuICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAga2V5czogYmlwMzIuQklQMzJJbnRlcmZhY2VbXTtcbiAgcGF0aDogc3RyaW5nO1xufSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBub2RlJyk7XG4gIH1cbiAgY29uc3QgW3RocmVzaG9sZCwgLi4ua2V5Tm9kZXNdID0gbm9kZTtcbiAgaWYgKHR5cGVvZiB0aHJlc2hvbGQgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0aHJlc2hvbGQgbnVtYmVyJyk7XG4gIH1cbiAgY29uc3Qga2V5V2l0aFBhdGggPSBrZXlOb2Rlcy5tYXAoKGtleU5vZGUpID0+IHtcbiAgICBpZiAoIWlzVW5hcnlOb2RlKGtleU5vZGUsICdYUHViJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgWFB1YiBub2RlJyk7XG4gICAgfVxuICAgIGlmICh0eXBlb2Yga2V5Tm9kZS5YUHViICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBYUHViIHN0cmluZycpO1xuICAgIH1cbiAgICBjb25zdCBwYXJ0cyA9IGtleU5vZGUuWFB1Yi5zcGxpdCgnLycpO1xuICAgIHJldHVybiB7IHhwdWI6IHBhcnRzWzBdLCBwYXRoOiBwYXJ0cy5zbGljZSgxKS5qb2luKCcvJykgfTtcbiAgfSk7XG4gIGNvbnN0IHBhdGhzID0ga2V5V2l0aFBhdGgubWFwKChrKSA9PiBrLnBhdGgpO1xuICBwYXRocy5mb3JFYWNoKChwYXRoLCBpKSA9PiB7XG4gICAgaWYgKHBhdGggIT09IHBhdGhzWzBdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGFsbCBwYXRocyB0byBiZSB0aGUgc2FtZTogJHtwYXRofSAhPT0gJHtwYXRoc1swXX1gKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHRocmVzaG9sZCxcbiAgICBrZXlzOiBrZXlXaXRoUGF0aC5tYXAoKGspID0+IEJJUDMyLmZyb21CYXNlNTgoay54cHViKSksXG4gICAgcGF0aDogcGF0aHNbMF0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlV3NoTXVsdGkobm9kZTogdW5rbm93bik6IERlc2NyaXB0b3JCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgd3NoTXNNdWx0aSA9IHVud3JhcE5vZGUobm9kZSwgWydXc2gnLCAnTXMnLCAnTXVsdGknXSk7XG4gIGlmICh3c2hNc011bHRpKSB7XG4gICAgY29uc3QgeyB0aHJlc2hvbGQsIGtleXMsIHBhdGggfSA9IHBhcnNlTXVsdGkod3NoTXNNdWx0aSk7XG4gICAgbGV0IG5hbWU6ICdXc2gyT2YyJyB8ICdXc2gyT2YzJztcbiAgICBpZiAodGhyZXNob2xkID09PSAyICYmIGtleXMubGVuZ3RoID09PSAyKSB7XG4gICAgICBuYW1lID0gJ1dzaDJPZjInO1xuICAgIH0gZWxzZSBpZiAodGhyZXNob2xkID09PSAyICYmIGtleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICBuYW1lID0gJ1dzaDJPZjMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgbXVsdGlzaWcnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBrZXlzLFxuICAgICAgcGF0aCxcbiAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlU2J0Y0RlcG9zaXQoZGVzY3JpcHRvcjogRGVzY3JpcHRvcik6IERlc2NyaXB0b3JCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyc2VkID0gc2J0Yy5wYXJzZVNidGNEZXBvc2l0RGVzY3JpcHRvcihkZXNjcmlwdG9yKTtcbiAgaWYgKCFwYXJzZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBGb3Igd2FsbGV0IGRlc2NyaXB0b3JzIHRoZSByZWNsYWltIGxlYWYgaXMgYSBkZXJpdmFibGUgYG11bHRpX2FgIHdpdGhcbiAgLy8gYHhwdWIuLi4vKmAgZW50cmllczsgc3BsaXQgZWFjaCBpbnRvIHhwdWIgKyBwYXRoLiBEZWZpbml0ZSBkZXNjcmlwdG9yc1xuICAvLyBwcm9kdWNlIHJhdyBoZXggc3RyaW5ncyBoZXJlLCB3aGljaCBgQklQMzIuZnJvbUJhc2U1OGAgcmVqZWN0cyDigJQgdGhhdFxuICAvLyBtYXRjaGVzIG91ciBpbnRlbnQsIHNpbmNlIGEgZGVmaW5pdGUgZGVzY3JpcHRvciBpc24ndCBhIHdhbGxldCBkZXNjcmlwdG9yLlxuICBjb25zdCBrZXlXaXRoUGF0aCA9IHBhcnNlZC5yZWNsYWltS2V5U3RyaW5ncy5tYXAoKGspID0+IHtcbiAgICBjb25zdCBbeHB1YiwgLi4ucmVzdF0gPSBrLnNwbGl0KCcvJyk7XG4gICAgcmV0dXJuIHsgeHB1YiwgcGF0aDogcmVzdC5qb2luKCcvJykgfTtcbiAgfSk7XG4gIGNvbnN0IHBhdGhzID0ga2V5V2l0aFBhdGgubWFwKChrKSA9PiBrLnBhdGgpO1xuICBwYXRocy5mb3JFYWNoKChwKSA9PiB7XG4gICAgaWYgKHAgIT09IHBhdGhzWzBdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGFsbCBtdWx0aV9hIHBhdGhzIHRvIGJlIHRoZSBzYW1lOiAke3B9ICE9PSAke3BhdGhzWzBdfWApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU2J0Y0RlcG9zaXQnLFxuICAgIGtleXM6IGtleVdpdGhQYXRoLm1hcCgoaykgPT4gQklQMzIuZnJvbUJhc2U1OChrLnhwdWIpKSxcbiAgICBwYXRoOiBwYXRoc1swXSxcbiAgICBsb2NrVGltZTogcGFyc2VkLmxvY2tUaW1lLFxuICAgIG1heEZlZTogcGFyc2VkLm1heEZlZSxcbiAgICBzdGFja3NSZWNpcGllbnQ6IHBhcnNlZC5zdGFja3NSZWNpcGllbnQsXG4gICAgc2lnbmVyc0FnZ3JlZ2F0ZUtleTogcGFyc2VkLnNpZ25lcnNBZ2dyZWdhdGVLZXksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ2x0dkRyb3AoXG4gIG5vZGU6IHVua25vd24sXG4gIG5hbWU6ICdXc2gyT2YzQ2x0dkRyb3AnIHwgJ1NoV3NoMk9mM0NsdHZEcm9wJyxcbiAgd3JhcHBpbmc6IHN0cmluZ1tdXG4pOiBEZXNjcmlwdG9yQnVpbGRlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHVud3JhcHBlZCA9IHVud3JhcE5vZGUobm9kZSwgd3JhcHBpbmcpO1xuICBpZiAoIXVud3JhcHBlZCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh1bndyYXBwZWQpICYmIHVud3JhcHBlZC5sZW5ndGggPT09IDIpIHtcbiAgICBjb25zdCBbYSwgYl0gPSB1bndyYXBwZWQ7XG4gICAgY29uc3QgZHJvcEFmdGVyQWJzTG9ja3RpbWUgPSB1bndyYXBOb2RlKGEsIFsnRHJvcCcsICdBZnRlcicsICdhYnNMb2NrVGltZSddKTtcbiAgICBpZiAodHlwZW9mIGRyb3BBZnRlckFic0xvY2t0aW1lICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhYnNMb2NrVGltZSBudW1iZXInKTtcbiAgICB9XG4gICAgaWYgKCFpc1VuYXJ5Tm9kZShiLCAnTXVsdGknKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBNdWx0aSBub2RlJyk7XG4gICAgfVxuICAgIGNvbnN0IG11bHRpID0gcGFyc2VNdWx0aShiLk11bHRpKTtcbiAgICBpZiAobXVsdGkudGhyZXNob2xkID09PSAyICYmIG11bHRpLmtleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBsb2NrdGltZTogZHJvcEFmdGVyQWJzTG9ja3RpbWUsXG4gICAgICAgIGtleXM6IG11bHRpLmtleXMsXG4gICAgICAgIHBhdGg6IG11bHRpLnBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZXNjcmlwdG9yTm9kZShub2RlOiB1bmtub3duKTogRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdCBwYXJzZWQgPVxuICAgIHBhcnNlV3NoTXVsdGkobm9kZSkgPz9cbiAgICBwYXJzZUNsdHZEcm9wKG5vZGUsICdTaFdzaDJPZjNDbHR2RHJvcCcsIFsnU2gnLCAnV3NoJywgJ01zJywgJ0FuZFYnXSkgPz9cbiAgICBwYXJzZUNsdHZEcm9wKG5vZGUsICdXc2gyT2YzQ2x0dkRyb3AnLCBbJ1dzaCcsICdNcycsICdBbmRWJ10pO1xuICBpZiAoIXBhcnNlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHBhcnNlIGRlc2NyaXB0b3Igbm9kZScpO1xuICB9XG4gIHJldHVybiBwYXJzZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvcik6IERlc2NyaXB0b3JCdWlsZGVyIHtcbiAgLy8gc0JUQyBwZWctaW4gdXNlcyBhIFRhcHJvb3QgYHRyKC4uLilgIGRlc2NyaXB0b3IgdGhhdCB0aGUgcmF3LW5vZGUgcGFyc2Vyc1xuICAvLyBkb24ndCByZWNvZ25pemU7IG1hdGNoIGl0IGFnYWluc3QgdGhlIGFzdCBmb3JtIGZpcnN0LlxuICBjb25zdCBidWlsZGVyID0gcGFyc2VTYnRjRGVwb3NpdChkZXNjcmlwdG9yKSA/PyBwYXJzZURlc2NyaXB0b3JOb2RlKGRlc2NyaXB0b3Iubm9kZSgpKTtcbiAgaWYgKGdldERlc2NyaXB0b3JGcm9tQnVpbGRlcihidWlsZGVyKS50b1N0cmluZygpICE9PSBkZXNjcmlwdG9yLnRvU3RyaW5nKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSBkZXNjcmlwdG9yJyk7XG4gIH1cbiAgcmV0dXJuIGJ1aWxkZXI7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validatePolicy.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/validatePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAoB,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAqB,eAAe,EAAE,qBAAqB,EAA2B,MAAM,mBAAmB,CAAC;AAEvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,GAAG,EAAE,qBAAqB,EAAE,EAAE,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;CACxE;AAED,eAAO,MAAM,cAAc,EAAE,0BAG5B,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAcvF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,0BAA0B,EAAE,GAAG,0BAA0B,CAOtG;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,EAAE,GAAG,0BAA0B,CAOrG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAEtF;AAED,wBAAgB,2BAA2B,IAAI,0BAA0B,CAQxE;AAED,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,EAAE,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,0BAA0B;CAG5E;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,qBAAqB,EAAE,EACpC,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,SAAS,GACpB,IAAI,CAIN;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,eAAe,EAAE,EAC9B,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,0BAA0B,GACjC,aAAa,CAMf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,0BAA0B,
|
|
1
|
+
{"version":3,"file":"validatePolicy.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/validatePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAoB,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAqB,eAAe,EAAE,qBAAqB,EAA2B,MAAM,mBAAmB,CAAC;AAEvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,GAAG,EAAE,qBAAqB,EAAE,EAAE,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;CACxE;AAED,eAAO,MAAM,cAAc,EAAE,0BAG5B,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAcvF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,0BAA0B,EAAE,GAAG,0BAA0B,CAOtG;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,EAAE,GAAG,0BAA0B,CAOrG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAEtF;AAED,wBAAgB,2BAA2B,IAAI,0BAA0B,CAQxE;AAED,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,EAAE,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,0BAA0B;CAG5E;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,qBAAqB,EAAE,EACpC,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,SAAS,GACpB,IAAI,CAIN;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,eAAe,EAAE,EAC9B,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,0BAA0B,GACjC,aAAa,CAMf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,0BAA0B,CAiBhF"}
|
|
@@ -82,6 +82,8 @@ function getPolicyForEnv(env) {
|
|
|
82
82
|
getValidatorDescriptorTemplate('Wsh2Of3'),
|
|
83
83
|
// allow descriptor groups where all keys match the wallet keys plus OP_DROP (coredao staking)
|
|
84
84
|
getValidatorDescriptorTemplate('Wsh2Of3CltvDrop'),
|
|
85
|
+
// allow sBTC peg-in deposit descriptors where the reclaim keys match the wallet keys
|
|
86
|
+
getValidatorDescriptorTemplate('SbtcDeposit'),
|
|
85
87
|
// allow all descriptors signed by the user key
|
|
86
88
|
getValidatorSignedByUserKey(),
|
|
87
89
|
]);
|
|
@@ -89,4 +91,4 @@ function getPolicyForEnv(env) {
|
|
|
89
91
|
return exports.policyAllowAll;
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci92YWxpZGF0ZVBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQkEsd0VBY0M7QUFFRCw4Q0FPQztBQUVELDRDQU9DO0FBRUQsZ0VBRUM7QUFFRCxrRUFRQztBQVFELHdEQVFDO0FBRUQsMERBVUM7QUFFRCwwQ0FpQkM7QUFqSEQsZ0RBQTJEO0FBRTNELHVDQUE0QztBQUM1Qyx1REFBdUg7QUFZMUcsUUFBQSxjQUFjLEdBQStCO0lBQ3hELElBQUksRUFBRSxVQUFVO0lBQ2hCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO0NBQ3JCLENBQUM7QUFFRixTQUFnQiw4QkFBOEIsQ0FBQyxJQUFZO0lBQ3pELE9BQU87UUFDTCxJQUFJLEVBQUUscUJBQXFCLEdBQUcsSUFBSSxHQUFHLEdBQUc7UUFDeEMsUUFBUSxDQUFDLEdBQTRCLEVBQUUsVUFBcUI7WUFDMUQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUEseUJBQWUsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sQ0FDTCxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUk7b0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNO29CQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDbEYsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQs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RSxDQUFDO1FBQ1osS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxNQUFNO1lBQ1QsT0FBTyxnQkFBZ0IsQ0FBQztnQkFDdEIsMEVBQTBFO2dCQUMxRSw4QkFBOEIsQ0FBQyxTQUFTLENBQUM7Z0JBQ3pDLDhGQUE4RjtnQkFDOUYsOEJBQThCLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2pELHFGQUFxRjtnQkFDckYsOEJBQThCLENBQUMsYUFBYSxDQUFDO2dCQUM3QywrQ0FBK0M7Z0JBQy9DLDJCQUEyQixFQUFFO2FBQzlCLENBQUMsQ0FBQztRQUNMO1lBQ0UsT0FBTyxzQkFBYyxDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnROYW1lLCBUcmlwbGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgYmlwMzIsIGRlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgcGFyc2VEZXNjcmlwdG9yIH0gZnJvbSAnLi9idWlsZGVyJztcbmltcG9ydCB7IGhhc1ZhbGlkU2lnbmF0dXJlLCBOYW1lZERlc2NyaXB0b3IsIE5hbWVkRGVzY3JpcHRvck5hdGl2ZSwgdG9OYW1lZERlc2NyaXB0b3JOYXRpdmUgfSBmcm9tICcuL05hbWVkRGVzY3JpcHRvcic7XG5cbmltcG9ydCB0eXBlIHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgdHlwZSBLZXlUcmlwbGUgPSBUcmlwbGU8YmlwMzIuQklQMzJJbnRlcmZhY2U+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgbmFtZTogc3RyaW5nO1xuXG4gIHZhbGlkYXRlKGFycjogTmFtZWREZXNjcmlwdG9yTmF0aXZlW10sIHdhbGxldEtleXM6IEtleVRyaXBsZSk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBwb2xpY3lBbGxvd0FsbDogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kgPSB7XG4gIG5hbWU6ICdhbGxvd0FsbCcsXG4gIHZhbGlkYXRlOiAoKSA9PiB0cnVlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvckRlc2NyaXB0b3JUZW1wbGF0ZShuYW1lOiBzdHJpbmcpOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2Rlc2NyaXB0b3JUZW1wbGF0ZSgnICsgbmFtZSArICcpJyxcbiAgICB2YWxpZGF0ZShhcnI6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdLCB3YWxsZXRLZXlzOiBLZXlUcmlwbGUpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBhcnIuZXZlcnkoKGQpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VEZXNjcmlwdG9yKGQudmFsdWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHBhcnNlZC5uYW1lID09PSBuYW1lICYmXG4gICAgICAgICAgcGFyc2VkLmtleXMubGVuZ3RoID09PSB3YWxsZXRLZXlzLmxlbmd0aCAmJlxuICAgICAgICAgIHBhcnNlZC5rZXlzLmV2ZXJ5KChrLCBpKSA9PiBrLnRvQmFzZTU4KCkgPT09IHdhbGxldEtleXNbaV0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvckV2ZXJ5KHZhbGlkYXRvcnM6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5W10pOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2V2ZXJ5KCcgKyB2YWxpZGF0b3JzLm1hcCgodikgPT4gdi5uYW1lKS5qb2luKCcsJykgKyAnKScsXG4gICAgdmFsaWRhdGUoYXJyOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgd2FsbGV0S2V5czogS2V5VHJpcGxlKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdmFsaWRhdG9ycy5ldmVyeSgodikgPT4gdi52YWxpZGF0ZShhcnIsIHdhbGxldEtleXMpKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yU29tZSh2YWxpZGF0b3JzOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeVtdKTogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdzb21lKCcgKyB2YWxpZGF0b3JzLm1hcCgodikgPT4gdi5uYW1lKS5qb2luKCcsJykgKyAnKScsXG4gICAgdmFsaWRhdGUoYXJyOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgd2FsbGV0S2V5czogS2V5VHJpcGxlKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdmFsaWRhdG9ycy5zb21lKCh2KSA9PiB2LnZhbGlkYXRlKGFyciwgd2FsbGV0S2V5cykpO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0b3JPbmVPZlRlbXBsYXRlcyhuYW1lczogc3RyaW5nW10pOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiBnZXRWYWxpZGF0b3JTb21lKG5hbWVzLm1hcChnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvclNpZ25lZEJ5VXNlcktleSgpOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NpZ25lZEJ5VXNlcicsXG4gICAgdmFsaWRhdGUoYXJyOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgd2FsbGV0S2V5czogS2V5VHJpcGxlKTogYm9vbGVhbiB7XG4gICAgICAvLyB0aGUgZmlyc3Qga2V5IGlzIHRoZSB1c2VyIGtleSwgYnkgY29udmVudGlvblxuICAgICAgcmV0dXJuIGFyci5ldmVyeSgoZCkgPT4gaGFzVmFsaWRTaWduYXR1cmUoZC52YWx1ZSwgd2FsbGV0S2V5c1swXSwgZC5zaWduYXR1cmVzID8/IFtdKSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIERlc2NyaXB0b3JQb2xpY3lWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGRzOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSkge1xuICAgIHN1cGVyKGBEZXNjcmlwdG9ycyAke2RzLm1hcCgoZCkgPT4gZC52YWx1ZS50b1N0cmluZygpKX0gZG9lcyBub3QgbWF0Y2ggcG9saWN5ICR7cG9saWN5Lm5hbWV9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydERlc2NyaXB0b3JQb2xpY3koXG4gIGRlc2NyaXB0b3JzOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSxcbiAgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSxcbiAgd2FsbGV0S2V5czogS2V5VHJpcGxlXG4pOiB2b2lkIHtcbiAgaWYgKCFwb2xpY3kudmFsaWRhdGUoZGVzY3JpcHRvcnMsIHdhbGxldEtleXMpKSB7XG4gICAgdGhyb3cgbmV3IERlc2NyaXB0b3JQb2xpY3lWYWxpZGF0aW9uRXJyb3IoZGVzY3JpcHRvcnMsIHBvbGljeSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvRGVzY3JpcHRvck1hcFZhbGlkYXRlKFxuICBkZXNjcmlwdG9yczogTmFtZWREZXNjcmlwdG9yW10sXG4gIHdhbGxldEtleXM6IEtleVRyaXBsZSxcbiAgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeVxuKTogRGVzY3JpcHRvck1hcCB7XG4gIGNvbnN0IG5hbWVkRGVzY3JpcHRvcnNOYXRpdmU6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdID0gZGVzY3JpcHRvcnMubWFwKCh2KSA9PlxuICAgIHRvTmFtZWREZXNjcmlwdG9yTmF0aXZlKHYsICdkZXJpdmFibGUnKVxuICApO1xuICBhc3NlcnREZXNjcmlwdG9yUG9saWN5KG5hbWVkRGVzY3JpcHRvcnNOYXRpdmUsIHBvbGljeSwgd2FsbGV0S2V5cyk7XG4gIHJldHVybiBkZXNjcmlwdG9yV2FsbGV0LnRvRGVzY3JpcHRvck1hcChuYW1lZERlc2NyaXB0b3JzTmF0aXZlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvbGljeUZvckVudihlbnY6IEVudmlyb25tZW50TmFtZSk6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgc3dpdGNoIChlbnYpIHtcbiAgICBjYXNlICdhZG1pblByb2QnOlxuICAgIGNhc2UgJ3Byb2QnOlxuICAgICAgcmV0dXJuIGdldFZhbGlkYXRvclNvbWUoW1xuICAgICAgICAvLyBhbGxvdyAyLW9mLTMtaXNoIGRlc2NyaXB0b3IgZ3JvdXBzIHdoZXJlIHRoZSBrZXlzIG1hdGNoIHRoZSB3YWxsZXQga2V5c1xuICAgICAgICBnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjMnKSxcbiAgICAgICAgLy8gYWxsb3cgZGVzY3JpcHRvciBncm91cHMgd2hlcmUgYWxsIGtleXMgbWF0Y2ggdGhlIHdhbGxldCBrZXlzIHBsdXMgT1BfRFJPUCAoY29yZWRhbyBzdGFraW5nKVxuICAgICAgICBnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjNDbHR2RHJvcCcpLFxuICAgICAgICAvLyBhbGxvdyBzQlRDIHBlZy1pbiBkZXBvc2l0IGRlc2NyaXB0b3JzIHdoZXJlIHRoZSByZWNsYWltIGtleXMgbWF0Y2ggdGhlIHdhbGxldCBrZXlzXG4gICAgICAgIGdldFZhbGlkYXRvckRlc2NyaXB0b3JUZW1wbGF0ZSgnU2J0Y0RlcG9zaXQnKSxcbiAgICAgICAgLy8gYWxsb3cgYWxsIGRlc2NyaXB0b3JzIHNpZ25lZCBieSB0aGUgdXNlciBrZXlcbiAgICAgICAgZ2V0VmFsaWRhdG9yU2lnbmVkQnlVc2VyS2V5KCksXG4gICAgICBdKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHBvbGljeUFsbG93QWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -36,6 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
const assert = __importStar(require("assert"));
|
|
37
37
|
const testutils = __importStar(require("@bitgo/wasm-utxo/testutils"));
|
|
38
38
|
const builder_1 = require("../../../src/descriptor/builder");
|
|
39
|
+
const SBTC_SIGNERS_AGGREGATE_KEY = Buffer.from('c9c2312ca406dcb8eed50b829b5292f5fb3e846db0a556af61cc53834ce75421', 'hex');
|
|
40
|
+
const SBTC_STACKS_RECIPIENT = Buffer.from('05' + '16' + '6d'.repeat(20), 'hex');
|
|
39
41
|
function getDescriptorBuilderForType(name) {
|
|
40
42
|
const keys = testutils.getKeyTriple('default').map((k) => k.neutered());
|
|
41
43
|
switch (name) {
|
|
@@ -54,6 +56,17 @@ function getDescriptorBuilderForType(name) {
|
|
|
54
56
|
path: '0/*',
|
|
55
57
|
locktime: 1,
|
|
56
58
|
};
|
|
59
|
+
case 'SbtcDeposit':
|
|
60
|
+
return {
|
|
61
|
+
name,
|
|
62
|
+
keys,
|
|
63
|
+
// sBTC reclaim leaf uses bare `/*` wildcard (no chain prefix).
|
|
64
|
+
path: '*',
|
|
65
|
+
lockTime: 950,
|
|
66
|
+
maxFee: 80000n,
|
|
67
|
+
stacksRecipient: SBTC_STACKS_RECIPIENT,
|
|
68
|
+
signersAggregateKey: SBTC_SIGNERS_AGGREGATE_KEY,
|
|
69
|
+
};
|
|
57
70
|
}
|
|
58
71
|
}
|
|
59
72
|
function toComparable(builder) {
|
|
@@ -75,4 +88,5 @@ describeForName('Wsh2Of2');
|
|
|
75
88
|
describeForName('Wsh2Of3');
|
|
76
89
|
describeForName('Wsh2Of3CltvDrop');
|
|
77
90
|
describeForName('ShWsh2Of3CltvDrop');
|
|
78
|
-
|
|
91
|
+
describeForName('SbtcDeposit');
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9kZXNjcmlwdG9yL2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFFakMsc0VBQXdEO0FBRXhELDZEQUErRztBQUUvRyxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzVDLGtFQUFrRSxFQUNsRSxLQUFLLENBQ04sQ0FBQztBQUNGLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFaEYsU0FBUywyQkFBMkIsQ0FBQyxJQUErQjtJQUNsRSxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEUsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxTQUFTO1lBQ1osT0FBTztnQkFDTCxJQUFJO2dCQUNKLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxFQUFFLEtBQUs7YUFDWixDQUFDO1FBQ0osS0FBSyxpQkFBaUIsQ0FBQztRQUN2QixLQUFLLG1CQUFtQjtZQUN0QixPQUFPO2dCQUNMLElBQUk7Z0JBQ0osSUFBSTtnQkFDSixJQUFJLEVBQUUsS0FBSztnQkFDWCxRQUFRLEVBQUUsQ0FBQzthQUNaLENBQUM7UUFDSixLQUFLLGFBQWE7WUFDaEIsT0FBTztnQkFDTCxJQUFJO2dCQUNKLElBQUk7Z0JBQ0osK0RBQStEO2dCQUMvRCxJQUFJLEVBQUUsR0FBRztnQkFDVCxRQUFRLEVBQUUsR0FBRztnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxlQUFlLEVBQUUscUJBQXFCO2dCQUN0QyxtQkFBbUIsRUFBRSwwQkFBMEI7YUFDaEQsQ0FBQztJQUNOLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsT0FBMEI7SUFDOUMsT0FBTztRQUNMLEdBQUcsT0FBTztRQUNWLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQzVDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsQ0FBNEI7SUFDbkQsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUU7UUFDdEMsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtZQUNwQyxNQUFNLE9BQU8sR0FBRywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLFVBQVUsR0FBRyxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQyxJQUFBLHlCQUFlLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNCLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMzQixlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNuQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUNyQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdGVzdHV0aWxzIGZyb20gJ0BiaXRnby93YXNtLXV0eG8vdGVzdHV0aWxzJztcblxuaW1wb3J0IHsgcGFyc2VEZXNjcmlwdG9yLCBEZXNjcmlwdG9yQnVpbGRlciwgZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvYnVpbGRlcic7XG5cbmNvbnN0IFNCVENfU0lHTkVSU19BR0dSRUdBVEVfS0VZID0gQnVmZmVyLmZyb20oXG4gICdjOWMyMzEyY2E0MDZkY2I4ZWVkNTBiODI5YjUyOTJmNWZiM2U4NDZkYjBhNTU2YWY2MWNjNTM4MzRjZTc1NDIxJyxcbiAgJ2hleCdcbik7XG5jb25zdCBTQlRDX1NUQUNLU19SRUNJUElFTlQgPSBCdWZmZXIuZnJvbSgnMDUnICsgJzE2JyArICc2ZCcucmVwZWF0KDIwKSwgJ2hleCcpO1xuXG5mdW5jdGlvbiBnZXREZXNjcmlwdG9yQnVpbGRlckZvclR5cGUobmFtZTogRGVzY3JpcHRvckJ1aWxkZXJbJ25hbWUnXSk6IERlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3Qga2V5cyA9IHRlc3R1dGlscy5nZXRLZXlUcmlwbGUoJ2RlZmF1bHQnKS5tYXAoKGspID0+IGsubmV1dGVyZWQoKSk7XG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ1dzaDJPZjInOlxuICAgIGNhc2UgJ1dzaDJPZjMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAga2V5czoga2V5cy5zbGljZSgwLCBuYW1lID09PSAnV3NoMk9mMycgPyAzIDogMiksXG4gICAgICAgIHBhdGg6ICcwLyonLFxuICAgICAgfTtcbiAgICBjYXNlICdXc2gyT2YzQ2x0dkRyb3AnOlxuICAgIGNhc2UgJ1NoV3NoMk9mM0NsdHZEcm9wJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGtleXMsXG4gICAgICAgIHBhdGg6ICcwLyonLFxuICAgICAgICBsb2NrdGltZTogMSxcbiAgICAgIH07XG4gICAgY2FzZSAnU2J0Y0RlcG9zaXQnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAga2V5cyxcbiAgICAgICAgLy8gc0JUQyByZWNsYWltIGxlYWYgdXNlcyBiYXJlIGAvKmAgd2lsZGNhcmQgKG5vIGNoYWluIHByZWZpeCkuXG4gICAgICAgIHBhdGg6ICcqJyxcbiAgICAgICAgbG9ja1RpbWU6IDk1MCxcbiAgICAgICAgbWF4RmVlOiA4MDAwMG4sXG4gICAgICAgIHN0YWNrc1JlY2lwaWVudDogU0JUQ19TVEFDS1NfUkVDSVBJRU5ULFxuICAgICAgICBzaWduZXJzQWdncmVnYXRlS2V5OiBTQlRDX1NJR05FUlNfQUdHUkVHQVRFX0tFWSxcbiAgICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9Db21wYXJhYmxlKGJ1aWxkZXI6IERlc2NyaXB0b3JCdWlsZGVyKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4ge1xuICAgIC4uLmJ1aWxkZXIsXG4gICAga2V5czogYnVpbGRlci5rZXlzLm1hcCgoaykgPT4gay50b0Jhc2U1OCgpKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVGb3JOYW1lKG46IERlc2NyaXB0b3JCdWlsZGVyWyduYW1lJ10pIHtcbiAgZGVzY3JpYmUoYERlc2NyaXB0b3JCdWlsZGVyICR7bn1gLCAoKSA9PiB7XG4gICAgaXQoJ3BhcnNlcyBkZXNjcmlwdG9yIHRlbXBsYXRlJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGdldERlc2NyaXB0b3JCdWlsZGVyRm9yVHlwZShuKTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBnZXREZXNjcmlwdG9yRnJvbUJ1aWxkZXIoYnVpbGRlcik7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRvQ29tcGFyYWJsZShidWlsZGVyKSwgdG9Db21wYXJhYmxlKHBhcnNlRGVzY3JpcHRvcihkZXNjcmlwdG9yKSkpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZGVzY3JpYmVGb3JOYW1lKCdXc2gyT2YyJyk7XG5kZXNjcmliZUZvck5hbWUoJ1dzaDJPZjMnKTtcbmRlc2NyaWJlRm9yTmFtZSgnV3NoMk9mM0NsdHZEcm9wJyk7XG5kZXNjcmliZUZvck5hbWUoJ1NoV3NoMk9mM0NsdHZEcm9wJyk7XG5kZXNjcmliZUZvck5hbWUoJ1NidGNEZXBvc2l0Jyk7XG4iXX0=
|