@bitgo-beta/utxo-core 1.0.1-alpha.5 → 1.0.1-alpha.51
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/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/index.d.ts +8 -8
- package/dist/src/descriptor/index.d.ts.map +1 -1
- package/dist/src/descriptor/index.js +12 -36
- package/dist/src/descriptor/psbt/createPsbt.d.ts +6 -2
- package/dist/src/descriptor/psbt/createPsbt.d.ts.map +1 -1
- package/dist/src/descriptor/psbt/createPsbt.js +2 -2
- 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 +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -2
- package/dist/src/testutil/descriptor/descriptors.d.ts +1 -1
- package/dist/src/testutil/descriptor/descriptors.d.ts.map +1 -1
- package/dist/src/testutil/descriptor/descriptors.js +28 -6
- package/dist/src/testutil/descriptor/mock.utils.d.ts +3 -3
- package/dist/src/testutil/descriptor/mock.utils.d.ts.map +1 -1
- package/dist/src/testutil/descriptor/mock.utils.js +9 -5
- package/dist/src/testutil/descriptor/psbt.utils.js +8 -8
- 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 +5 -5
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getDustThresholdSat = getDustThresholdSat;
|
|
37
|
+
exports.getDustThresholdSatForOutputScript = getDustThresholdSatForOutputScript;
|
|
38
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
39
|
+
/**
|
|
40
|
+
* Checks if the output script is a witness script or not
|
|
41
|
+
* @param script
|
|
42
|
+
* @returns true if the script is a witness script
|
|
43
|
+
*/
|
|
44
|
+
function isWitnessOutputScript(script) {
|
|
45
|
+
/**
|
|
46
|
+
* Source: https://github.com/bitcoin/bitcoin/blob/v28.1/src/script/script.cpp#L241-L257
|
|
47
|
+
* A witness program is any valid CScript that consists of a 1-byte push opcode
|
|
48
|
+
* followed by a data push between 2 and 40 bytes.
|
|
49
|
+
*/
|
|
50
|
+
if (script.length < 4 || script.length > 42) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (script[0] !== utxolib.opcodes.OP_0 && (script[0] < utxolib.opcodes.OP_1 || script[0] > utxolib.opcodes.OP_16)) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
return script[1] + 2 === script.length;
|
|
57
|
+
}
|
|
58
|
+
function getDustRelayLimit(network) {
|
|
59
|
+
network = utxolib.getMainnet(network);
|
|
60
|
+
switch (network) {
|
|
61
|
+
case utxolib.networks.bitcoin:
|
|
62
|
+
case utxolib.networks.bitcoingold:
|
|
63
|
+
case utxolib.networks.dash:
|
|
64
|
+
// btc: https://github.com/bitcoin/bitcoin/blob/v28.0/src/policy/policy.h#L50-L55
|
|
65
|
+
// btg: https://github.com/BTCGPU/BTCGPU/blob/v0.17.3/src/policy/policy.h#L48
|
|
66
|
+
// dash: https://github.com/dashpay/dash/blob/v22.0.0-beta.1/src/policy/policy.h#L41-L46
|
|
67
|
+
return { feeRateSatKB: 3000 };
|
|
68
|
+
case utxolib.networks.bitcoincash:
|
|
69
|
+
// https://github.com/bitcoin-cash-node/bitcoin-cash-node/blob/v27.1.0/src/policy/policy.h#L76-L83
|
|
70
|
+
// I actually haven't looked at BSV and am depressed that I still need to handle the case here
|
|
71
|
+
return { feeRateSatKB: 1000 };
|
|
72
|
+
case utxolib.networks.dogecoin:
|
|
73
|
+
// https://github.com/dogecoin/dogecoin/blob/v1.14.8/src/policy/policy.h#L65-L81
|
|
74
|
+
// (COIN / 100) / 10;
|
|
75
|
+
return { satAmount: 1000000 };
|
|
76
|
+
case utxolib.networks.litecoin:
|
|
77
|
+
// https://github.com/litecoin-project/litecoin/blob/master/src/policy/policy.h#L47-L52
|
|
78
|
+
return { feeRateSatKB: 30000 };
|
|
79
|
+
case utxolib.networks.zcash:
|
|
80
|
+
// https://github.com/zcash/zcash/blob/master/src/primitives/transaction.h#L396-L399
|
|
81
|
+
// https://github.com/zcash/zcash/blob/v6.0.0/src/policy/policy.h#L43-L89 (I don't quite get it)
|
|
82
|
+
return { satAmount: 300 };
|
|
83
|
+
case utxolib.networks.bitcoinsv:
|
|
84
|
+
throw new Error('deprecated coin');
|
|
85
|
+
default:
|
|
86
|
+
throw new Error('unsupported network');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function getSpendSize(network, outputSize, isWitness) {
|
|
90
|
+
network = utxolib.getMainnet(network);
|
|
91
|
+
switch (network) {
|
|
92
|
+
case utxolib.networks.bitcoin:
|
|
93
|
+
case utxolib.networks.bitcoincash:
|
|
94
|
+
case utxolib.networks.bitcoingold:
|
|
95
|
+
case utxolib.networks.litecoin:
|
|
96
|
+
/*
|
|
97
|
+
btc: https://github.com/bitcoin/bitcoin/blob/v28.0/src/policy/policy.cpp#L26-L68
|
|
98
|
+
bch: https://github.com/bitcoin-cash-node/bitcoin-cash-node/blob/v27.1.0/src/policy/policy.cpp#L18-L36 (btc-ish)
|
|
99
|
+
btg: https://github.com/BTCGPU/BTCGPU/blob/v0.17.3/src/policy/policy.cpp#L18-L50 (btc-ish)
|
|
100
|
+
ltc: https://github.com/litecoin-project/litecoin/blob/v0.21.4/src/policy/policy.cpp#L15-L47 (btc-ish)
|
|
101
|
+
|
|
102
|
+
The fixed component here is 69.75 for isWitness=true and 150 for isWitness=false.
|
|
103
|
+
*/
|
|
104
|
+
return outputSize + 32 + 4 + 1 + 107 / (isWitness ? 4 : 1) + 4;
|
|
105
|
+
case utxolib.networks.dash:
|
|
106
|
+
// dash: https://github.com/dashpay/dash/blob/v21.1.1/src/policy/policy.cpp#L14-L30 (btc-ish)
|
|
107
|
+
// how did they end up with 148? I don't know
|
|
108
|
+
return outputSize + 148;
|
|
109
|
+
case utxolib.networks.dogecoin:
|
|
110
|
+
case utxolib.networks.zcash:
|
|
111
|
+
// doge: https://github.com/dogecoin/dogecoin/blob/v1.14.8/src/policy/policy.h#L65-L81 (hardcoded)
|
|
112
|
+
// zec: https://github.com/zcash/zcash/blob/v6.0.0/src/policy/policy.h#L43-L89 (some weird other thing, doge-ish)
|
|
113
|
+
throw new Error('dust limit is size-independent');
|
|
114
|
+
case utxolib.networks.bitcoinsv:
|
|
115
|
+
throw new Error('deprecated coin');
|
|
116
|
+
default:
|
|
117
|
+
throw new Error('unsupported network');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function getDustThresholdSat(network, outputSize, isWitness) {
|
|
121
|
+
const dustLimit = getDustRelayLimit(network);
|
|
122
|
+
if ('satAmount' in dustLimit) {
|
|
123
|
+
return dustLimit.satAmount;
|
|
124
|
+
}
|
|
125
|
+
if ('feeRateSatKB' in dustLimit) {
|
|
126
|
+
const spendSize = getSpendSize(network, outputSize, isWitness);
|
|
127
|
+
return Math.ceil((dustLimit.feeRateSatKB * spendSize) / 1000);
|
|
128
|
+
}
|
|
129
|
+
throw new Error('unexpected dustLimit');
|
|
130
|
+
}
|
|
131
|
+
function getDustThresholdSatForOutputScript(network, script) {
|
|
132
|
+
return getDustThresholdSat(network, script.length, isWitnessOutputScript(script));
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVzdFRocmVzaG9sZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kdXN0VGhyZXNob2xkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOElBLGtEQVVDO0FBRUQsZ0ZBRUM7QUE1SkQsOERBQWdEO0FBRWhEOzs7O0dBSUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLE1BQWM7SUFDM0M7Ozs7T0FJRztJQUNILElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUM1QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ3pDLENBQUM7QUEwREQsU0FBUyxpQkFBaUIsQ0FBQyxPQUF3QjtJQUNqRCxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDOUIsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUNsQyxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUN4QixrRkFBa0Y7WUFDbEYsOEVBQThFO1lB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TSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCxTQUFnQixrQ0FBa0MsQ0FBQyxPQUF3QixFQUFFLE1BQWM7SUFDekYsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIG91dHB1dCBzY3JpcHQgaXMgYSB3aXRuZXNzIHNjcmlwdCBvciBub3RcbiAqIEBwYXJhbSBzY3JpcHRcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHNjcmlwdCBpcyBhIHdpdG5lc3Mgc2NyaXB0XG4gKi9cbmZ1bmN0aW9uIGlzV2l0bmVzc091dHB1dFNjcmlwdChzY3JpcHQ6IEJ1ZmZlcik6IGJvb2xlYW4ge1xuICAvKipcbiAgICogU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI4LjEvc3JjL3NjcmlwdC9zY3JpcHQuY3BwI0wyNDEtTDI1N1xuICAgKiBBIHdpdG5lc3MgcHJvZ3JhbSBpcyBhbnkgdmFsaWQgQ1NjcmlwdCB0aGF0IGNvbnNpc3RzIG9mIGEgMS1ieXRlIHB1c2ggb3Bjb2RlXG4gICAqIGZvbGxvd2VkIGJ5IGEgZGF0YSBwdXNoIGJldHdlZW4gMiBhbmQgNDAgYnl0ZXMuXG4gICAqL1xuICBpZiAoc2NyaXB0Lmxlbmd0aCA8IDQgfHwgc2NyaXB0Lmxlbmd0aCA+IDQyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChzY3JpcHRbMF0gIT09IHV0eG9saWIub3Bjb2Rlcy5PUF8wICYmIChzY3JpcHRbMF0gPCB1dHhvbGliLm9wY29kZXMuT1BfMSB8fCBzY3JpcHRbMF0gPiB1dHhvbGliLm9wY29kZXMuT1BfMTYpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBzY3JpcHRbMV0gKyAyID09PSBzY3JpcHQubGVuZ3RoO1xufVxuXG4vKlxuXG5UaGUgZHVzdCB0aHJlc2hvbGQgZm9yIG1vc3QgVVRYTyBjb2lucyBpcyBkZXBlbmRlbnQgb24gbXVsdGlwbGUgZmFjdG9yczpcblxuKDEpIHNwZW5kYWJpbGl0eSBvZiB0aGUgb3V0cHV0IChPUF9SRVRVUk5zIGFyZSBhbGxvd2VkIHRvIGJlIDAgc2l6ZWQpXG4oMikgd2hldGhlciBpdCBpcyBhIHdpdG5lc3Mgb3Igbm9uLXdpdG5lc3Mgb3V0cHV0XG4oMykgYSBwYXJ0aWN1bGFyIGZlZSByYXRlIChHZXREaXNjYXJkUmF0ZSgpKVxuXG5JIHdpbGwgZG8gdGhlIGFuYWx5c2lzIG1vc3RseSBmb3IgYml0Y29pbiBoZXJlIGFuZCB0aGVuIGdlbmVyYWxpemUuXG5cbk9uIHRoZSBpbmRleGVyIHdlIHVzZSBgc2VuZHJhd3RyYW5zYWN0aW9uYCwgd2hpY2ggY2FsbHMgYElzU3RhbmRhcmRUeGAgbGlrZSB0aGlzXG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi92MjguMC9zcmMva2VybmVsL21lbXBvb2xfb3B0aW9ucy5oI0w0N1xuXG5gYGBcbmlmIChcbiAgbV9wb29sLm1fb3B0cy5yZXF1aXJlX3N0YW5kYXJkICYmXG4gICAhSXNTdGFuZGFyZFR4KHR4LFxuICAgbV9wb29sLm1fb3B0cy5tYXhfZGF0YWNhcnJpZXJfYnl0ZXMsXG4gICBtX3Bvb2wubV9vcHRzLnBlcm1pdF9iYXJlX211bHRpc2lnLFxuICAgbV9wb29sLm1fb3B0cy5kdXN0X3JlbGF5X2ZlZXJhdGUsIHJlYXNvbikpXG5gYGBcblxuVGhlIGBkdXN0X3JlbGF5X2ZlZXJhdGVgIGluIHRoaXMgY29udGV4dCBpcyBhIGhhcmRjb2RlZCBjb25zdGFudDpcbmh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi92MjguMC9zcmMvcG9saWN5L3BvbGljeS5oI0w1MC1MNTVcblxuKHRoYXQgY2FuIGFjdHVhbGx5IGJlIG92ZXJyaWRkZW4gd2l0aCBhIGhpZGRlbiBjb21tYW5kXG5saW5lIHBhcmFtZXRlcjogaHR0cHM6Ly9iaXRjb2luLnN0YWNrZXhjaGFuZ2UuY29tL2EvNDEwODIvMTM3NjAxKVxuXG5UaGVyZSB3ZSBjYWxsIGBJc0R1c3RgXG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi92MjguMC9zcmMvcG9saWN5L3BvbGljeS5jcHAjTDE0NC1MMTQ2XG5cbmBgYFxuaWYgKElzRHVzdCh0eG91dCwgZHVzdF9yZWxheV9mZWUpKSB7XG4gICAgcmVhc29uID0gXCJkdXN0XCI7XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuYGBgXG5cbldoaWNoIGNhbGxzIGBHZXREdXN0VGhyZXNob2xkYCxcblxuaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9ibG9iL3YyOC4wL3NyYy9wb2xpY3kvcG9saWN5LmNwcCNMNjdcblxuVGhlIGltcGxlbWVudGF0aW9uIG9mIGBHZXREdXN0VGhyZXNob2xkYCBjb21wdXRlcyB0aGUgbWluaW1hbCB0cmFuc2FjdGlvbiBzaXplIHRoYXQgY2FuIHNwZW5kIHRoZSBvdXRwdXQsIGFuZCBjb21wdXRlc1xuYSBtaW5pbXVtIGZlZSBmb3IgdGhhdCB0cmFuc2FjdGlvbiBzaXplIGJhc2VkIG9uIHRoZSBgZHVzdF9yZWxheV9mZWVgIChGZWVSYXRlKSBwYXJhbWV0ZXIuXG5cblRoZSBkaWZmZXJlbnQgdXR4byBpbXBsZW1lbnRhdGlvbnMgZGlmZmVyIGluIHRoZXNlIHdheXM6XG5cbi0gc29tZSBoYXZlIGEgZml4ZWQsIHNhdG9zaGkgYW1vdW50IGR1c3QgbGltaXQgKGRvZ2UsIHplYylcbi0gc29tZSBoYXZlIGEgZGlmZmVyZW50IGR1c3RfcmVsYXlfZmVlXG5cbiovXG5cbnR5cGUgRHVzdExpbWl0ID0geyBmZWVSYXRlU2F0S0I6IG51bWJlciB9IHwgeyBzYXRBbW91bnQ6IG51bWJlciB9O1xuXG5mdW5jdGlvbiBnZXREdXN0UmVsYXlMaW1pdChuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBEdXN0TGltaXQge1xuICBuZXR3b3JrID0gdXR4b2xpYi5nZXRNYWlubmV0KG5ldHdvcmspO1xuICBzd2l0Y2ggKG5ldHdvcmspIHtcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmRhc2g6XG4gICAgICAvLyBidGM6ICBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI4LjAvc3JjL3BvbGljeS9wb2xpY3kuaCNMNTAtTDU1XG4gICAgICAvLyBidGc6ICBodHRwczovL2dpdGh1Yi5jb20vQlRDR1BVL0JUQ0dQVS9ibG9iL3YwLjE3LjMvc3JjL3BvbGljeS9wb2xpY3kuaCNMNDhcbiAgICAgIC8vIGRhc2g6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXNocGF5L2Rhc2gvYmxvYi92MjIuMC4wLWJldGEuMS9zcmMvcG9saWN5L3BvbGljeS5oI0w0MS1MNDZcbiAgICAgIHJldHVybiB7IGZlZVJhdGVTYXRLQjogMzAwMCB9O1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luLWNhc2gtbm9kZS9iaXRjb2luLWNhc2gtbm9kZS9ibG9iL3YyNy4xLjAvc3JjL3BvbGljeS9wb2xpY3kuaCNMNzYtTDgzXG4gICAgICAvLyBJIGFjdHVhbGx5IGhhdmVuJ3QgbG9va2VkIGF0IEJTViBhbmQgYW0gZGVwcmVzc2VkIHRoYXQgSSBzdGlsbCBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSBoZXJlXG4gICAgICByZXR1cm4geyBmZWVSYXRlU2F0S0I6IDEwMDAgfTtcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuZG9nZWNvaW46XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZG9nZWNvaW4vZG9nZWNvaW4vYmxvYi92MS4xNC44L3NyYy9wb2xpY3kvcG9saWN5LmgjTDY1LUw4MVxuICAgICAgLy8gKENPSU4gLyAxMDApIC8gMTA7XG4gICAgICByZXR1cm4geyBzYXRBbW91bnQ6IDFfMDAwXzAwMCB9O1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIC8vICBodHRwczovL2dpdGh1Yi5jb20vbGl0ZWNvaW4tcHJvamVjdC9saXRlY29pbi9ibG9iL21hc3Rlci9zcmMvcG9saWN5L3BvbGljeS5oI0w0Ny1MNTJcbiAgICAgIHJldHVybiB7IGZlZVJhdGVTYXRLQjogMzBfMDAwIH07XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLnpjYXNoOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvbWFzdGVyL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDM5Ni1MMzk5XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92Ni4wLjAvc3JjL3BvbGljeS9wb2xpY3kuaCNMNDMtTDg5IChJIGRvbid0IHF1aXRlIGdldCBpdClcbiAgICAgIHJldHVybiB7IHNhdEFtb3VudDogMzAwIH07XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICAgIHRocm93IG5ldyBFcnJvcignZGVwcmVjYXRlZCBjb2luJyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFNwZW5kU2l6ZShuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssIG91dHB1dFNpemU6IG51bWJlciwgaXNXaXRuZXNzOiBib29sZWFuKTogbnVtYmVyIHtcbiAgbmV0d29yayA9IHV0eG9saWIuZ2V0TWFpbm5ldChuZXR3b3JrKTtcbiAgc3dpdGNoIChuZXR3b3JrKSB7XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MubGl0ZWNvaW46XG4gICAgICAvKlxuICAgICAgICBidGM6ICBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI4LjAvc3JjL3BvbGljeS9wb2xpY3kuY3BwI0wyNi1MNjhcbiAgICAgICAgYmNoOiAgaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4tY2FzaC1ub2RlL2JpdGNvaW4tY2FzaC1ub2RlL2Jsb2IvdjI3LjEuMC9zcmMvcG9saWN5L3BvbGljeS5jcHAjTDE4LUwzNiAoYnRjLWlzaClcbiAgICAgICAgYnRnOiAgaHR0cHM6Ly9naXRodWIuY29tL0JUQ0dQVS9CVENHUFUvYmxvYi92MC4xNy4zL3NyYy9wb2xpY3kvcG9saWN5LmNwcCNMMTgtTDUwIChidGMtaXNoKVxuICAgICAgICBsdGM6ICBodHRwczovL2dpdGh1Yi5jb20vbGl0ZWNvaW4tcHJvamVjdC9saXRlY29pbi9ibG9iL3YwLjIxLjQvc3JjL3BvbGljeS9wb2xpY3kuY3BwI0wxNS1MNDcgKGJ0Yy1pc2gpXG5cbiAgICAgICAgVGhlIGZpeGVkIGNvbXBvbmVudCBoZXJlIGlzIDY5Ljc1IGZvciBpc1dpdG5lc3M9dHJ1ZSBhbmQgMTUwIGZvciBpc1dpdG5lc3M9ZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIHJldHVybiBvdXRwdXRTaXplICsgMzIgKyA0ICsgMSArIDEwNyAvIChpc1dpdG5lc3MgPyA0IDogMSkgKyA0O1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5kYXNoOlxuICAgICAgLy8gZGFzaDogaHR0cHM6Ly9naXRodWIuY29tL2Rhc2hwYXkvZGFzaC9ibG9iL3YyMS4xLjEvc3JjL3BvbGljeS9wb2xpY3kuY3BwI0wxNC1MMzAgKGJ0Yy1pc2gpXG4gICAgICAvLyBob3cgZGlkIHRoZXkgZW5kIHVwIHdpdGggMTQ4PyBJIGRvbid0IGtub3dcbiAgICAgIHJldHVybiBvdXRwdXRTaXplICsgMTQ4O1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5kb2dlY29pbjpcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuemNhc2g6XG4gICAgICAvLyBkb2dlOiBodHRwczovL2dpdGh1Yi5jb20vZG9nZWNvaW4vZG9nZWNvaW4vYmxvYi92MS4xNC44L3NyYy9wb2xpY3kvcG9saWN5LmgjTDY1LUw4MSAoaGFyZGNvZGVkKVxuICAgICAgLy8gemVjOiAgaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjYuMC4wL3NyYy9wb2xpY3kvcG9saWN5LmgjTDQzLUw4OSAoc29tZSB3ZWlyZCBvdGhlciB0aGluZywgZG9nZS1pc2gpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2R1c3QgbGltaXQgaXMgc2l6ZS1pbmRlcGVuZGVudCcpO1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlcHJlY2F0ZWQgY29pbicpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIG5ldHdvcmsnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RHVzdFRocmVzaG9sZFNhdChuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssIG91dHB1dFNpemU6IG51bWJlciwgaXNXaXRuZXNzOiBib29sZWFuKTogbnVtYmVyIHtcbiAgY29uc3QgZHVzdExpbWl0ID0gZ2V0RHVzdFJlbGF5TGltaXQobmV0d29yayk7XG4gIGlmICgnc2F0QW1vdW50JyBpbiBkdXN0TGltaXQpIHtcbiAgICByZXR1cm4gZHVzdExpbWl0LnNhdEFtb3VudDtcbiAgfVxuICBpZiAoJ2ZlZVJhdGVTYXRLQicgaW4gZHVzdExpbWl0KSB7XG4gICAgY29uc3Qgc3BlbmRTaXplID0gZ2V0U3BlbmRTaXplKG5ldHdvcmssIG91dHB1dFNpemUsIGlzV2l0bmVzcyk7XG4gICAgcmV0dXJuIE1hdGguY2VpbCgoZHVzdExpbWl0LmZlZVJhdGVTYXRLQiAqIHNwZW5kU2l6ZSkgLyAxMDAwKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgZHVzdExpbWl0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREdXN0VGhyZXNob2xkU2F0Rm9yT3V0cHV0U2NyaXB0KG5ldHdvcms6IHV0eG9saWIuTmV0d29yaywgc2NyaXB0OiBCdWZmZXIpOiBudW1iZXIge1xuICByZXR1cm4gZ2V0RHVzdFRocmVzaG9sZFNhdChuZXR3b3JrLCBzY3JpcHQubGVuZ3RoLCBpc1dpdG5lc3NPdXRwdXRTY3JpcHQoc2NyaXB0KSk7XG59XG4iXX0=
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -32,8 +32,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.testutil = exports.descriptor = void 0;
|
|
39
|
+
exports.testutil = exports.descriptor = exports.bip65 = void 0;
|
|
40
|
+
exports.bip65 = __importStar(require("./bip65"));
|
|
37
41
|
exports.descriptor = __importStar(require("./descriptor"));
|
|
38
42
|
exports.testutil = __importStar(require("./testutil"));
|
|
39
|
-
|
|
43
|
+
__exportStar(require("./dustThreshold"), exports);
|
|
44
|
+
__exportStar(require("./Output"), exports);
|
|
45
|
+
__exportStar(require("./xOnlyPubkey"), exports);
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWlDO0FBQ2pDLDJEQUEyQztBQUMzQyx1REFBdUM7QUFDdkMsa0RBQWdDO0FBQ2hDLDJDQUF5QjtBQUN6QixnREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBiaXA2NSBmcm9tICcuL2JpcDY1JztcbmV4cG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGFzIHRlc3R1dGlsIGZyb20gJy4vdGVzdHV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kdXN0VGhyZXNob2xkJztcbmV4cG9ydCAqIGZyb20gJy4vT3V0cHV0JztcbmV4cG9ydCAqIGZyb20gJy4veE9ubHlQdWJrZXknO1xuIl19
|
|
@@ -3,7 +3,7 @@ import { DescriptorMap, PsbtParams } from '../../descriptor';
|
|
|
3
3
|
import { Triple, KeyTriple } from '../key.utils';
|
|
4
4
|
export declare function getDefaultXPubs(seed?: string): Triple<string>;
|
|
5
5
|
export declare function getUnspendableKey(): string;
|
|
6
|
-
export type DescriptorTemplate = 'Wsh2Of3' | 'Tr2Of3-NoKeyPath' | 'Wsh2Of2' | 'Wsh2Of3CltvDrop';
|
|
6
|
+
export type DescriptorTemplate = 'Wsh2Of3' | 'Tr1Of3-NoKeyPath-Tree' | 'Tr1Of3-NoKeyPath-Tree-Plain' | 'Tr2Of3-NoKeyPath' | 'Wsh2Of2' | 'Wsh2Of3CltvDrop';
|
|
7
7
|
export declare function getPsbtParams(t: DescriptorTemplate): Partial<PsbtParams>;
|
|
8
8
|
export declare function getDescriptor(template: DescriptorTemplate, keys?: KeyTriple | string[], path?: string): Descriptor;
|
|
9
9
|
export declare function getDescriptorMap(template: DescriptorTemplate, keys?: KeyTriple | string[]): DescriptorMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../../../../src/testutil/descriptor/descriptors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAO,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAgB,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/D,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAE7D;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAsB1C;AAMD,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,kBAAkB,GAClB,SAAS,GAMT,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../../../../src/testutil/descriptor/descriptors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAO,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAgB,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/D,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAE7D;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAsB1C;AAMD,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,uBAAuB,GAEvB,6BAA6B,GAC7B,kBAAkB,GAClB,SAAS,GAMT,iBAAiB,CAAC;AAkCtB,wBAAgB,aAAa,CAAC,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAOxE;AA2CD,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAM,EAAsB,EAC9C,IAAI,SAAQ,GACX,UAAU,CAEZ;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAM,EAAsB,GAC7C,aAAa,CAKf"}
|
|
@@ -10,6 +10,7 @@ exports.getDescriptor = getDescriptor;
|
|
|
10
10
|
exports.getDescriptorMap = getDescriptorMap;
|
|
11
11
|
const assert_1 = __importDefault(require("assert"));
|
|
12
12
|
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
13
|
+
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
13
14
|
const key_utils_1 = require("../key.utils");
|
|
14
15
|
function getDefaultXPubs(seed) {
|
|
15
16
|
return (0, key_utils_1.getKeyTriple)(seed).map((k) => k.neutered().toBase58());
|
|
@@ -46,6 +47,18 @@ function toXPub(k, path) {
|
|
|
46
47
|
}
|
|
47
48
|
return k.neutered().toBase58() + '/' + path;
|
|
48
49
|
}
|
|
50
|
+
function toPlain(k, { xonly = false } = {}) {
|
|
51
|
+
if (typeof k === 'string') {
|
|
52
|
+
if (k.startsWith('xpub') || k.startsWith('xprv')) {
|
|
53
|
+
return toPlain(utxo_lib_1.bip32.fromBase58(k), { xonly });
|
|
54
|
+
}
|
|
55
|
+
return k;
|
|
56
|
+
}
|
|
57
|
+
return k.publicKey.subarray(xonly ? 1 : 0).toString('hex');
|
|
58
|
+
}
|
|
59
|
+
function toXOnly(k) {
|
|
60
|
+
return toPlain(k, { xonly: true });
|
|
61
|
+
}
|
|
49
62
|
function multiArgs(m, n, keys, path) {
|
|
50
63
|
if (n < m) {
|
|
51
64
|
throw new Error(`Cannot create ${m} of ${n} multisig`);
|
|
@@ -58,12 +71,10 @@ function multiArgs(m, n, keys, path) {
|
|
|
58
71
|
}
|
|
59
72
|
function getPsbtParams(t) {
|
|
60
73
|
switch (t) {
|
|
61
|
-
case 'Wsh2Of3':
|
|
62
|
-
case 'Wsh2Of2':
|
|
63
|
-
case 'Tr2Of3-NoKeyPath':
|
|
64
|
-
return {};
|
|
65
74
|
case 'Wsh2Of3CltvDrop':
|
|
66
75
|
return { locktime: 1 };
|
|
76
|
+
default:
|
|
77
|
+
return {};
|
|
67
78
|
}
|
|
68
79
|
}
|
|
69
80
|
function getDescriptorNode(template, keys = getDefaultXPubs(), path = '0/*') {
|
|
@@ -88,11 +99,22 @@ function getDescriptorNode(template, keys = getDefaultXPubs(), path = '0/*') {
|
|
|
88
99
|
return {
|
|
89
100
|
tr: [getUnspendableKey(), { multi_a: multiArgs(2, 3, keys, path) }],
|
|
90
101
|
};
|
|
102
|
+
case 'Tr1Of3-NoKeyPath-Tree':
|
|
103
|
+
return {
|
|
104
|
+
tr: [
|
|
105
|
+
getUnspendableKey(),
|
|
106
|
+
[{ pk: toXPub(keys[0], path) }, [{ pk: toXPub(keys[1], path) }, { pk: toXPub(keys[2], path) }]],
|
|
107
|
+
],
|
|
108
|
+
};
|
|
109
|
+
case 'Tr1Of3-NoKeyPath-Tree-Plain':
|
|
110
|
+
return {
|
|
111
|
+
tr: [getUnspendableKey(), [{ pk: toXOnly(keys[0]) }, [{ pk: toXOnly(keys[1]) }, { pk: toXOnly(keys[2]) }]]],
|
|
112
|
+
};
|
|
91
113
|
}
|
|
92
114
|
throw new Error(`Unknown descriptor template: ${template}`);
|
|
93
115
|
}
|
|
94
116
|
function getDescriptor(template, keys = getDefaultXPubs(), path = '0/*') {
|
|
95
|
-
return wasm_miniscript_1.Descriptor.
|
|
117
|
+
return wasm_miniscript_1.Descriptor.fromStringDetectType(wasm_miniscript_1.ast.formatNode(getDescriptorNode(template, keys, path)));
|
|
96
118
|
}
|
|
97
119
|
function getDescriptorMap(template, keys = getDefaultXPubs()) {
|
|
98
120
|
return toDescriptorMap({
|
|
@@ -100,4 +122,4 @@ function getDescriptorMap(template, keys = getDefaultXPubs()) {
|
|
|
100
122
|
internal: getDescriptor(template, keys, '1/*').toString(),
|
|
101
123
|
});
|
|
102
124
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdHV0aWwvZGVzY3JpcHRvci9kZXNjcmlwdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVFBLDBDQUVDO0FBRUQsOENBc0JDO0FBbUNELHNDQVNDO0FBZ0NELHNDQU1DO0FBRUQsNENBUUM7QUE5SEQsb0RBQTRCO0FBRTVCLDREQUF5RDtBQUl6RCw0Q0FBK0Q7QUFFL0QsU0FBZ0IsZUFBZSxDQUFDLElBQWE7SUFDM0MsT0FBTyxJQUFBLHdCQUFZLEVBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQW1CLENBQUM7QUFDbEYsQ0FBQztBQUVELFNBQWdCLGlCQUFpQjtJQUMvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQW1CRTtJQUNGLE9BQU8sa0VBQWtFLENBQUM7QUFDNUUsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLENBQXlCO0lBQ2hELE9BQU8sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsNEJBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hHLENBQUM7QUFhRCxTQUFTLE1BQU0sQ0FBQyxDQUEwQixFQUFFLElBQVk7SUFDdEQsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdB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QzlCLFFBQTRCLEVBQzVCLE9BQTZCLGVBQWUsRUFBRTtJQUU5QyxPQUFPLGVBQWUsQ0FBQztRQUNyQixRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ3pELFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7S0FDMUQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgRGVzY3JpcHRvciwgYXN0IH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCwgUHNidFBhcmFtcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlLCBUcmlwbGUsIEtleVRyaXBsZSB9IGZyb20gJy4uL2tleS51dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0WFB1YnMoc2VlZD86IHN0cmluZyk6IFRyaXBsZTxzdHJpbmc+IHtcbiAgcmV0dXJuIGdldEtleVRyaXBsZShzZWVkKS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVuc3BlbmRhYmxlS2V5KCk6IHN0cmluZyB7XG4gIC8qXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAzNDEubWVkaWF3aWtpI2NvbnN0cnVjdGluZy1hbmQtc3BlbmRpbmctdGFwcm9vdC1vdXRwdXRzXG5cbiAgYGBgXG4gIElmIG9uZSBvciBtb3JlIG9mIHRoZSBzcGVuZGluZyBjb25kaXRpb25zIGNvbnNpc3Qgb2YganVzdCBhIHNpbmdsZSBrZXkgKGFmdGVyIGFnZ3JlZ2F0aW9uKSwgdGhlIG1vc3QgbGlrZWx5IG9uZSBzaG91bGRcbiAgYmUgbWFkZSB0aGUgaW50ZXJuYWwga2V5LiBJZiBubyBzdWNoIGNvbmRpdGlvbiBleGlzdHMsIGl0IG1heSBiZSB3b3J0aHdoaWxlIGFkZGluZyBvbmUgdGhhdCBjb25zaXN0cyBvZiBhbiBhZ2dyZWdhdGlvblxuICBvZiBhbGwga2V5cyBwYXJ0aWNpcGF0aW5nIGluIGFsbCBzY3JpcHRzIGNvbWJpbmVkOyBlZmZlY3RpdmVseSBhZGRpbmcgYW4gXCJldmVyeW9uZSBhZ3JlZXNcIiBicmFuY2guIElmIHRoYXQgaXNcbiAgaW5hY2NlcHRhYmxlLCBwaWNrIGFzIGludGVybmFsIGtleSBhIFwiTm90aGluZyBVcCBNeSBTbGVldmVcIiAoTlVNUykgcG9pbnQsIGkuZS4sIGEgcG9pbnQgd2l0aCB1bmtub3duIGRpc2NyZXRlXG4gIGxvZ2FyaXRobS5cblxuICBPbmUgZXhhbXBsZSBvZiBzdWNoIGEgcG9pbnQgaXMgSCA9IGxpZnRfeCgweDUwOTI5Yjc0YzFhMDQ5NTRiNzhiNGI2MDM1ZTk3YTVlMDc4YTVhMGYyOGVjOTZkNTQ3YmZlZTlhY2U4MDNhYzApIHdoaWNoIGlzXG4gIGNvbnN0cnVjdGVkIGJ5IHRha2luZyB0aGUgaGFzaCBvZiB0aGUgc3RhbmRhcmQgdW5jb21wcmVzc2VkIGVuY29kaW5nIG9mIHRoZSBzZWNwMjU2azEgYmFzZSBwb2ludCBHIGFzIFggY29vcmRpbmF0ZS5cbiAgSW4gb3JkZXIgdG8gYXZvaWQgbGVha2luZyB0aGUgaW5mb3JtYXRpb24gdGhhdCBrZXkgcGF0aCBzcGVuZGluZyBpcyBub3QgcG9zc2libGUgaXQgaXMgcmVjb21tZW5kZWQgdG8gcGljayBhIGZyZXNoXG4gIGludGVnZXIgciBpbiB0aGUgcmFuZ2UgMC4uLm4tMSB1bmlmb3JtbHkgYXQgcmFuZG9tIGFuZCB1c2UgSCArIHJHIGFzIGludGVybmFsIGtleS4gSXQgaXMgcG9zc2libGUgdG8gcHJvdmUgdGhhdCB0aGlzXG4gIGludGVybmFsIGtleSBkb2VzIG5vdCBoYXZlIGEga25vd24gZGlzY3JldGUgbG9nYXJpdGhtIHdpdGggcmVzcGVjdCB0byBHIGJ5IHJldmVhbGluZyByIHRvIGEgdmVyaWZpZXIgd2hvIGNhbiB0aGVuXG4gIHJlY29uc3RydWN0IGhvdyB0aGUgaW50ZXJuYWwga2V5IHdhcyBjcmVhdGVkLlxuICBgYGBcblxuICBXZSBjb3VsZCBkbyB0aGUgcmFuZG9tIGludGVnZXIgdHJpY2sgaGVyZSwgYnV0IGZvciBpbnRlcm5hbCB0ZXN0aW5nIGl0IGlzIHN1ZmZpY2llbnQgdG8gdXNlIHRoZSBmaXhlZCBwb2ludC5cbiAgKi9cbiAgcmV0dXJuICc1MDkyOWI3NGMxYTA0OTU0Yjc4YjRiNjAzNWU5N2E1ZTA3OGE1YTBmMjhlYzk2ZDU0N2JmZWU5YWNlODAzYWMwJztcbn1cblxuZnVuY3Rpb24gdG9EZXNjcmlwdG9yTWFwKHY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBEZXNjcmlwdG9yTWFwIHtcbiAgcmV0dXJuIG5ldyBNYXAoT2JqZWN0LmVudHJpZXModikubWFwKChbaywgdl0pID0+IFtrLCBEZXNjcmlwdG9yLmZyb21TdHJpbmcodiwgJ2Rlcml2YWJsZScpXSkpO1xufVxuXG5leHBvcnQgdHlwZSBEZXNjcmlwdG9yVGVtcGxhdGUgPVxuICB8ICdXc2gyT2YzJ1xuICB8ICdUcjJPZjMtTm9LZXlQYXRoJ1xuICB8ICdXc2gyT2YyJ1xuICAvKlxuICAgKiBUaGlzIGlzIGEgd3JhcHBlZCBzZWd3aXQgMm9mMyBtdWx0aXNpZyB0aGF0IGFsc28gdXNlcyBhIHJlbGF0aXZlIGxvY2t0aW1lIHdpdGhcbiAgICogYW4gT1BfRFJPUCAocmVxdWlyaW5nIGEgbWluaXNjcmlwdCBleHRlbnNpb24pLlxuICAgKiBJdCBpcyBiYXNpY2FsbHkgd2hhdCBpcyB1c2VkIGluIENvcmVEYW8gc3Rha2luZyB0cmFuc2FjdGlvbnMuXG4gICAqL1xuICB8ICdXc2gyT2YzQ2x0dkRyb3AnO1xuXG5mdW5jdGlvbiB0b1hQdWIoazogQklQMzJJbnRlcmZhY2UgfCBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgayA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gayArICcvJyArIHBhdGg7XG4gIH1cbiAgcmV0dXJuIGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpICsgJy8nICsgcGF0aDtcbn1cblxuZnVuY3Rpb24gbXVsdGlBcmdzKG06IG51bWJlciwgbjogbnVtYmVyLCBrZXlzOiBCSVAzMkludGVyZmFjZVtdIHwgc3RyaW5nW10sIHBhdGg6IHN0cmluZyk6IFtudW1iZXIsIC4uLnN0cmluZ1tdXSB7XG4gIGlmIChuIDwgbSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNyZWF0ZSAke219IG9mICR7bn0gbXVsdGlzaWdgKTtcbiAgfVxuICBpZiAoa2V5cy5sZW5ndGggPCBuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBOb3QgZW5vdWdoIGtleXMgZm9yICR7bX0gb2YgJHtufSBtdWx0aXNpZzoga2V5cy5sZW5ndGg9JHtrZXlzLmxlbmd0aH1gKTtcbiAgfVxuICBrZXlzID0ga2V5cy5zbGljZSgwLCBuKTtcbiAgcmV0dXJuIFttLCAuLi5rZXlzLm1hcCgoaykgPT4gdG9YUHViKGssIHBhdGgpKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQc2J0UGFyYW1zKHQ6IERlc2NyaXB0b3JUZW1wbGF0ZSk6IFBhcnRpYWw8UHNidFBhcmFtcz4ge1xuICBzd2l0Y2ggKHQpIHtcbiAgICBjYXNlICdXc2gyT2YzJzpcbiAgICBjYXNlICdXc2gyT2YyJzpcbiAgICBjYXNlICdUcjJPZjMtTm9LZXlQYXRoJzpcbiAgICAgIHJldHVybiB7fTtcbiAgICBjYXNlICdXc2gyT2YzQ2x0dkRyb3AnOlxuICAgICAgcmV0dXJuIHsgbG9ja3RpbWU6IDEgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZXNjcmlwdG9yTm9kZShcbiAgdGVtcGxhdGU6IERlc2NyaXB0b3JUZW1wbGF0ZSxcbiAga2V5czogS2V5VHJpcGxlIHwgc3RyaW5nW10gPSBnZXREZWZhdWx0WFB1YnMoKSxcbiAgcGF0aCA9ICcwLyonXG4pOiBhc3QuRGVzY3JpcHRvck5vZGUge1xuICBzd2l0Y2ggKHRlbXBsYXRlKSB7XG4gICAgY2FzZSAnV3NoMk9mMyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3c2g6IHsgbXVsdGk6IG11bHRpQXJncygyLCAzLCBrZXlzLCBwYXRoKSB9LFxuICAgICAgfTtcbiAgICBjYXNlICdXc2gyT2YzQ2x0dkRyb3AnOlxuICAgICAgY29uc3QgeyBsb2NrdGltZSB9ID0gZ2V0UHNidFBhcmFtcyh0ZW1wbGF0ZSk7XG4gICAgICBhc3NlcnQobG9ja3RpbWUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd3NoOiB7XG4gICAgICAgICAgYW5kX3Y6IFt7ICdyOmFmdGVyJzogbG9ja3RpbWUgfSwgeyBtdWx0aTogbXVsdGlBcmdzKDIsIDMsIGtleXMsIHBhdGgpIH1dLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlICdXc2gyT2YyJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdzaDogeyBtdWx0aTogbXVsdGlBcmdzKDIsIDIsIGtleXMsIHBhdGgpIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ1RyMk9mMy1Ob0tleVBhdGgnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHI6IFtnZXRVbnNwZW5kYWJsZUtleSgpLCB7IG11bHRpX2E6IG11bHRpQXJncygyLCAzLCBrZXlzLCBwYXRoKSB9XSxcbiAgICAgIH07XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGRlc2NyaXB0b3IgdGVtcGxhdGU6ICR7dGVtcGxhdGV9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yKFxuICB0ZW1wbGF0ZTogRGVzY3JpcHRvclRlbXBsYXRlLFxuICBrZXlzOiBLZXlUcmlwbGUgfCBzdHJpbmdbXSA9IGdldERlZmF1bHRYUHVicygpLFxuICBwYXRoID0gJzAvKidcbik6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKGdldERlc2NyaXB0b3JOb2RlKHRlbXBsYXRlLCBrZXlzLCBwYXRoKSksICdkZXJpdmFibGUnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JNYXAoXG4gIHRlbXBsYXRlOiBEZXNjcmlwdG9yVGVtcGxhdGUsXG4gIGtleXM6IEtleVRyaXBsZSB8IHN0cmluZ1tdID0gZ2V0RGVmYXVsdFhQdWJzKClcbik6IERlc2NyaXB0b3JNYXAge1xuICByZXR1cm4gdG9EZXNjcmlwdG9yTWFwKHtcbiAgICBleHRlcm5hbDogZ2V0RGVzY3JpcHRvcih0ZW1wbGF0ZSwga2V5cywgJzAvKicpLnRvU3RyaW5nKCksXG4gICAgaW50ZXJuYWw6IGdldERlc2NyaXB0b3IodGVtcGxhdGUsIGtleXMsICcxLyonKS50b1N0cmluZygpLFxuICB9KTtcbn1cbiJdfQ==
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdHV0aWwvZGVzY3JpcHRvci9kZXNjcmlwdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVFBLDBDQUVDO0FBRUQsOENBc0JDO0FBb0RELHNDQU9DO0FBMkNELHNDQU1DO0FBRUQsNENBUUM7QUF4SkQsb0RBQTRCO0FBRTVCLDREQUF5RDtBQUN6RCxtREFBNkQ7QUFHN0QsNENBQStEO0FBRS9ELFNBQWdCLGVBQWUsQ0FBQyxJQUFhO0lBQzNDLE9BQU8sSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFtQixDQUFDO0FBQ2xGLENBQUM7QUFFRCxTQUFnQixpQkFBaUI7SUFDL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFtQkU7SUFDRixPQUFPLGtFQUFrRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxDQUF5QjtJQUNoRCxPQUFPLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLDRCQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBZ0JELFNBQVMsTUFBTSxDQUFDLENBQTBCLEVBQUUsSUFBWTtJQUN0RCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFB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UUFBNEIsRUFDNUIsT0FBNkIsZUFBZSxFQUFFLEVBQzlDLElBQUksR0FBRyxLQUFLO0lBRVosT0FBTyw0QkFBVSxDQUFDLG9CQUFvQixDQUFDLHFCQUFHLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xHLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDOUIsUUFBNEIsRUFDNUIsT0FBNkIsZUFBZSxFQUFFO0lBRTlDLE9BQU8sZUFBZSxDQUFDO1FBQ3JCLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDekQsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRTtLQUMxRCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yLCBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IGJpcDMyLCBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCwgUHNidFBhcmFtcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlLCBUcmlwbGUsIEtleVRyaXBsZSB9IGZyb20gJy4uL2tleS51dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0WFB1YnMoc2VlZD86IHN0cmluZyk6IFRyaXBsZTxzdHJpbmc+IHtcbiAgcmV0dXJuIGdldEtleVRyaXBsZShzZWVkKS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVuc3BlbmRhYmxlS2V5KCk6IHN0cmluZyB7XG4gIC8qXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAzNDEubWVkaWF3aWtpI2NvbnN0cnVjdGluZy1hbmQtc3BlbmRpbmctdGFwcm9vdC1vdXRwdXRzXG5cbiAgYGBgXG4gIElmIG9uZSBvciBtb3JlIG9mIHRoZSBzcGVuZGluZyBjb25kaXRpb25zIGNvbnNpc3Qgb2YganVzdCBhIHNpbmdsZSBrZXkgKGFmdGVyIGFnZ3JlZ2F0aW9uKSwgdGhlIG1vc3QgbGlrZWx5IG9uZSBzaG91bGRcbiAgYmUgbWFkZSB0aGUgaW50ZXJuYWwga2V5LiBJZiBubyBzdWNoIGNvbmRpdGlvbiBleGlzdHMsIGl0IG1heSBiZSB3b3J0aHdoaWxlIGFkZGluZyBvbmUgdGhhdCBjb25zaXN0cyBvZiBhbiBhZ2dyZWdhdGlvblxuICBvZiBhbGwga2V5cyBwYXJ0aWNpcGF0aW5nIGluIGFsbCBzY3JpcHRzIGNvbWJpbmVkOyBlZmZlY3RpdmVseSBhZGRpbmcgYW4gXCJldmVyeW9uZSBhZ3JlZXNcIiBicmFuY2guIElmIHRoYXQgaXNcbiAgaW5hY2NlcHRhYmxlLCBwaWNrIGFzIGludGVybmFsIGtleSBhIFwiTm90aGluZyBVcCBNeSBTbGVldmVcIiAoTlVNUykgcG9pbnQsIGkuZS4sIGEgcG9pbnQgd2l0aCB1bmtub3duIGRpc2NyZXRlXG4gIGxvZ2FyaXRobS5cblxuICBPbmUgZXhhbXBsZSBvZiBzdWNoIGEgcG9pbnQgaXMgSCA9IGxpZnRfeCgweDUwOTI5Yjc0YzFhMDQ5NTRiNzhiNGI2MDM1ZTk3YTVlMDc4YTVhMGYyOGVjOTZkNTQ3YmZlZTlhY2U4MDNhYzApIHdoaWNoIGlzXG4gIGNvbnN0cnVjdGVkIGJ5IHRha2luZyB0aGUgaGFzaCBvZiB0aGUgc3RhbmRhcmQgdW5jb21wcmVzc2VkIGVuY29kaW5nIG9mIHRoZSBzZWNwMjU2azEgYmFzZSBwb2ludCBHIGFzIFggY29vcmRpbmF0ZS5cbiAgSW4gb3JkZXIgdG8gYXZvaWQgbGVha2luZyB0aGUgaW5mb3JtYXRpb24gdGhhdCBrZXkgcGF0aCBzcGVuZGluZyBpcyBub3QgcG9zc2libGUgaXQgaXMgcmVjb21tZW5kZWQgdG8gcGljayBhIGZyZXNoXG4gIGludGVnZXIgciBpbiB0aGUgcmFuZ2UgMC4uLm4tMSB1bmlmb3JtbHkgYXQgcmFuZG9tIGFuZCB1c2UgSCArIHJHIGFzIGludGVybmFsIGtleS4gSXQgaXMgcG9zc2libGUgdG8gcHJvdmUgdGhhdCB0aGlzXG4gIGludGVybmFsIGtleSBkb2VzIG5vdCBoYXZlIGEga25vd24gZGlzY3JldGUgbG9nYXJpdGhtIHdpdGggcmVzcGVjdCB0byBHIGJ5IHJldmVhbGluZyByIHRvIGEgdmVyaWZpZXIgd2hvIGNhbiB0aGVuXG4gIHJlY29uc3RydWN0IGhvdyB0aGUgaW50ZXJuYWwga2V5IHdhcyBjcmVhdGVkLlxuICBgYGBcblxuICBXZSBjb3VsZCBkbyB0aGUgcmFuZG9tIGludGVnZXIgdHJpY2sgaGVyZSwgYnV0IGZvciBpbnRlcm5hbCB0ZXN0aW5nIGl0IGlzIHN1ZmZpY2llbnQgdG8gdXNlIHRoZSBmaXhlZCBwb2ludC5cbiAgKi9cbiAgcmV0dXJuICc1MDkyOWI3NGMxYTA0OTU0Yjc4YjRiNjAzNWU5N2E1ZTA3OGE1YTBmMjhlYzk2ZDU0N2JmZWU5YWNlODAzYWMwJztcbn1cblxuZnVuY3Rpb24gdG9EZXNjcmlwdG9yTWFwKHY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBEZXNjcmlwdG9yTWFwIHtcbiAgcmV0dXJuIG5ldyBNYXAoT2JqZWN0LmVudHJpZXModikubWFwKChbaywgdl0pID0+IFtrLCBEZXNjcmlwdG9yLmZyb21TdHJpbmcodiwgJ2Rlcml2YWJsZScpXSkpO1xufVxuXG5leHBvcnQgdHlwZSBEZXNjcmlwdG9yVGVtcGxhdGUgPVxuICB8ICdXc2gyT2YzJ1xuICB8ICdUcjFPZjMtTm9LZXlQYXRoLVRyZWUnXG4gIC8vIG5vIHhwdWJzLCBqdXN0IHBsYWluIGtleXNcbiAgfCAnVHIxT2YzLU5vS2V5UGF0aC1UcmVlLVBsYWluJ1xuICB8ICdUcjJPZjMtTm9LZXlQYXRoJ1xuICB8ICdXc2gyT2YyJ1xuICAvKlxuICAgKiBUaGlzIGlzIGEgd3JhcHBlZCBzZWd3aXQgMm9mMyBtdWx0aXNpZyB0aGF0IGFsc28gdXNlcyBhIHJlbGF0aXZlIGxvY2t0aW1lIHdpdGhcbiAgICogYW4gT1BfRFJPUCAocmVxdWlyaW5nIGEgbWluaXNjcmlwdCBleHRlbnNpb24pLlxuICAgKiBJdCBpcyBiYXNpY2FsbHkgd2hhdCBpcyB1c2VkIGluIENvcmVEYW8gc3Rha2luZyB0cmFuc2FjdGlvbnMuXG4gICAqL1xuICB8ICdXc2gyT2YzQ2x0dkRyb3AnO1xuXG5mdW5jdGlvbiB0b1hQdWIoazogQklQMzJJbnRlcmZhY2UgfCBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgayA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gayArICcvJyArIHBhdGg7XG4gIH1cbiAgcmV0dXJuIGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpICsgJy8nICsgcGF0aDtcbn1cblxuZnVuY3Rpb24gdG9QbGFpbihrOiBCSVAzMkludGVyZmFjZSB8IHN0cmluZywgeyB4b25seSA9IGZhbHNlIH0gPSB7fSk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgayA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoay5zdGFydHNXaXRoKCd4cHViJykgfHwgay5zdGFydHNXaXRoKCd4cHJ2JykpIHtcbiAgICAgIHJldHVybiB0b1BsYWluKGJpcDMyLmZyb21CYXNlNTgoayksIHsgeG9ubHkgfSk7XG4gICAgfVxuICAgIHJldHVybiBrO1xuICB9XG4gIHJldHVybiBrLnB1YmxpY0tleS5zdWJhcnJheSh4b25seSA/IDEgOiAwKS50b1N0cmluZygnaGV4Jyk7XG59XG5cbmZ1bmN0aW9uIHRvWE9ubHkoazogQklQMzJJbnRlcmZhY2UgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdG9QbGFpbihrLCB7IHhvbmx5OiB0cnVlIH0pO1xufVxuXG5mdW5jdGlvbiBtdWx0aUFyZ3MobTogbnVtYmVyLCBuOiBudW1iZXIsIGtleXM6IEJJUDMySW50ZXJmYWNlW10gfCBzdHJpbmdbXSwgcGF0aDogc3RyaW5nKTogW251bWJlciwgLi4uc3RyaW5nW11dIHtcbiAgaWYgKG4gPCBtKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY3JlYXRlICR7bX0gb2YgJHtufSBtdWx0aXNpZ2ApO1xuICB9XG4gIGlmIChrZXlzLmxlbmd0aCA8IG4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBlbm91Z2gga2V5cyBmb3IgJHttfSBvZiAke259IG11bHRpc2lnOiBrZXlzLmxlbmd0aD0ke2tleXMubGVuZ3RofWApO1xuICB9XG4gIGtleXMgPSBrZXlzLnNsaWNlKDAsIG4pO1xuICByZXR1cm4gW20sIC4uLmtleXMubWFwKChrKSA9PiB0b1hQdWIoaywgcGF0aCkpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBzYnRQYXJhbXModDogRGVzY3JpcHRvclRlbXBsYXRlKTogUGFydGlhbDxQc2J0UGFyYW1zPiB7XG4gIHN3aXRjaCAodCkge1xuICAgIGNhc2UgJ1dzaDJPZjNDbHR2RHJvcCc6XG4gICAgICByZXR1cm4geyBsb2NrdGltZTogMSB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge307XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVzY3JpcHRvck5vZGUoXG4gIHRlbXBsYXRlOiBEZXNjcmlwdG9yVGVtcGxhdGUsXG4gIGtleXM6IEtleVRyaXBsZSB8IHN0cmluZ1tdID0gZ2V0RGVmYXVsdFhQdWJzKCksXG4gIHBhdGggPSAnMC8qJ1xuKTogYXN0LkRlc2NyaXB0b3JOb2RlIHtcbiAgc3dpdGNoICh0ZW1wbGF0ZSkge1xuICAgIGNhc2UgJ1dzaDJPZjMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd3NoOiB7IG11bHRpOiBtdWx0aUFyZ3MoMiwgMywga2V5cywgcGF0aCkgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnV3NoMk9mM0NsdHZEcm9wJzpcbiAgICAgIGNvbnN0IHsgbG9ja3RpbWUgfSA9IGdldFBzYnRQYXJhbXModGVtcGxhdGUpO1xuICAgICAgYXNzZXJ0KGxvY2t0aW1lKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdzaDoge1xuICAgICAgICAgIGFuZF92OiBbeyAncjphZnRlcic6IGxvY2t0aW1lIH0sIHsgbXVsdGk6IG11bHRpQXJncygyLCAzLCBrZXlzLCBwYXRoKSB9XSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnV3NoMk9mMic6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3c2g6IHsgbXVsdGk6IG11bHRpQXJncygyLCAyLCBrZXlzLCBwYXRoKSB9LFxuICAgICAgfTtcbiAgICBjYXNlICdUcjJPZjMtTm9LZXlQYXRoJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyOiBbZ2V0VW5zcGVuZGFibGVLZXkoKSwgeyBtdWx0aV9hOiBtdWx0aUFyZ3MoMiwgMywga2V5cywgcGF0aCkgfV0sXG4gICAgICB9O1xuICAgIGNhc2UgJ1RyMU9mMy1Ob0tleVBhdGgtVHJlZSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cjogW1xuICAgICAgICAgIGdldFVuc3BlbmRhYmxlS2V5KCksXG4gICAgICAgICAgW3sgcGs6IHRvWFB1YihrZXlzWzBdLCBwYXRoKSB9LCBbeyBwazogdG9YUHViKGtleXNbMV0sIHBhdGgpIH0sIHsgcGs6IHRvWFB1YihrZXlzWzJdLCBwYXRoKSB9XV0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIGNhc2UgJ1RyMU9mMy1Ob0tleVBhdGgtVHJlZS1QbGFpbic6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cjogW2dldFVuc3BlbmRhYmxlS2V5KCksIFt7IHBrOiB0b1hPbmx5KGtleXNbMF0pIH0sIFt7IHBrOiB0b1hPbmx5KGtleXNbMV0pIH0sIHsgcGs6IHRvWE9ubHkoa2V5c1syXSkgfV1dXSxcbiAgICAgIH07XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGRlc2NyaXB0b3IgdGVtcGxhdGU6ICR7dGVtcGxhdGV9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yKFxuICB0ZW1wbGF0ZTogRGVzY3JpcHRvclRlbXBsYXRlLFxuICBrZXlzOiBLZXlUcmlwbGUgfCBzdHJpbmdbXSA9IGdldERlZmF1bHRYUHVicygpLFxuICBwYXRoID0gJzAvKidcbik6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nRGV0ZWN0VHlwZShhc3QuZm9ybWF0Tm9kZShnZXREZXNjcmlwdG9yTm9kZSh0ZW1wbGF0ZSwga2V5cywgcGF0aCkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JNYXAoXG4gIHRlbXBsYXRlOiBEZXNjcmlwdG9yVGVtcGxhdGUsXG4gIGtleXM6IEtleVRyaXBsZSB8IHN0cmluZ1tdID0gZ2V0RGVmYXVsdFhQdWJzKClcbik6IERlc2NyaXB0b3JNYXAge1xuICByZXR1cm4gdG9EZXNjcmlwdG9yTWFwKHtcbiAgICBleHRlcm5hbDogZ2V0RGVzY3JpcHRvcih0ZW1wbGF0ZSwga2V5cywgJzAvKicpLnRvU3RyaW5nKCksXG4gICAgaW50ZXJuYWw6IGdldERlc2NyaXB0b3IodGVtcGxhdGUsIGtleXMsICcxLyonKS50b1N0cmluZygpLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
2
2
|
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
3
|
-
import { PsbtParams } from '../../descriptor';
|
|
4
|
-
import { DerivedDescriptorWalletOutput } from '../../descriptor/Output';
|
|
3
|
+
import { PsbtParams, DerivedDescriptorTransactionInput } from '../../descriptor';
|
|
5
4
|
import { DescriptorTemplate } from './descriptors';
|
|
6
5
|
type MockOutputIdParams = {
|
|
7
6
|
hash?: string;
|
|
@@ -11,8 +10,9 @@ type BaseMockDescriptorOutputParams = {
|
|
|
11
10
|
id?: MockOutputIdParams;
|
|
12
11
|
index?: number;
|
|
13
12
|
value?: bigint;
|
|
13
|
+
sequence?: number;
|
|
14
14
|
};
|
|
15
|
-
export declare function mockDerivedDescriptorWalletOutput(descriptor: Descriptor, outputParams?: BaseMockDescriptorOutputParams):
|
|
15
|
+
export declare function mockDerivedDescriptorWalletOutput(descriptor: Descriptor, outputParams?: BaseMockDescriptorOutputParams): DerivedDescriptorTransactionInput;
|
|
16
16
|
type MockInput = BaseMockDescriptorOutputParams & {
|
|
17
17
|
index: number;
|
|
18
18
|
descriptor: Descriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.utils.d.ts","sourceRoot":"","sources":["../../../../src/testutil/descriptor/mock.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,
|
|
1
|
+
{"version":3,"file":"mock.utils.d.ts","sourceRoot":"","sources":["../../../../src/testutil/descriptor/mock.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EACL,UAAU,EAGV,iCAAiC,EAClC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAkC,MAAM,eAAe,CAAC;AAEnF,KAAK,kBAAkB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,KAAK,8BAA8B,GAAG;IACpC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAWF,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,EACtB,YAAY,GAAE,8BAAmC,GAChD,iCAAiC,CAanC;AAED,KAAK,SAAS,GAAG,8BAA8B,GAAG;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAMF,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAaxB;AAED,wBAAgB,eAAe,CAAC,EAC9B,cAA+D,EAC/D,eAAgE,EAChE,MAAW,GACZ,GAAE;IACD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACzB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAY9B;AAED,wBAAgB,qCAAqC,CACnD,CAAC,EAAE,kBAAkB,EACrB,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAMxB"}
|
|
@@ -52,17 +52,21 @@ function mockDerivedDescriptorWalletOutput(descriptor, outputParams = {}) {
|
|
|
52
52
|
hash,
|
|
53
53
|
index: vout,
|
|
54
54
|
witnessUtxo: {
|
|
55
|
-
script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(descriptor),
|
|
55
|
+
script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(descriptor, undefined),
|
|
56
56
|
value,
|
|
57
57
|
},
|
|
58
58
|
descriptor,
|
|
59
|
+
sequence: outputParams.sequence,
|
|
59
60
|
};
|
|
60
61
|
}
|
|
62
|
+
function tryDeriveAtIndex(descriptor, index) {
|
|
63
|
+
return descriptor.hasWildcard() ? descriptor.atDerivationIndex(index) : descriptor;
|
|
64
|
+
}
|
|
61
65
|
function mockPsbt(inputs, outputs, params = {}) {
|
|
62
|
-
return (0, descriptor_1.createPsbt)({ ...params, network: params.network ?? utxolib.networks.bitcoin }, inputs.map((i) => mockDerivedDescriptorWalletOutput(i.descriptor
|
|
63
|
-
const derivedDescriptor = o.descriptor
|
|
66
|
+
return (0, descriptor_1.createPsbt)({ ...params, network: params.network ?? utxolib.networks.bitcoin }, inputs.map((i) => mockDerivedDescriptorWalletOutput(tryDeriveAtIndex(i.descriptor, i.index), i)), outputs.map((o) => {
|
|
67
|
+
const derivedDescriptor = tryDeriveAtIndex(o.descriptor, o.index);
|
|
64
68
|
return {
|
|
65
|
-
script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(derivedDescriptor),
|
|
69
|
+
script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(derivedDescriptor, undefined),
|
|
66
70
|
value: o.value,
|
|
67
71
|
descriptor: o.external ? undefined : derivedDescriptor,
|
|
68
72
|
};
|
|
@@ -84,4 +88,4 @@ function mockPsbtDefaultWithDescriptorTemplate(t, params = {}) {
|
|
|
84
88
|
params,
|
|
85
89
|
});
|
|
86
90
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0dXRpbC9kZXNjcmlwdG9yL21vY2sudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkEsOEVBZ0JDO0FBa0JELDRCQWlCQztBQUVELDBDQW9CQztBQUVELHNGQVNDO0FBakhELDhEQUFnRDtBQUVoRCxpREFLMEI7QUFFMUIsK0NBQW1GO0FBV25GLFNBQVMsWUFBWSxDQUFDLEVBQXVCO0lBSTNDLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQWdCLGlDQUFpQyxDQUMvQyxVQUFzQixFQUN0QixlQUErQyxFQUFFO0lBRWpELE1BQU0sRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDO0lBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLEtBQUssRUFBRSxJQUFJO1FBQ1gsV0FBVyxFQUFFO1lBQ1gsTUFBTSxFQUFFLElBQUEsNkNBQWdDLEVBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQztZQUMvRCxLQUFLO1NBQ047UUFDRCxVQUFVO1FBQ1YsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBY0QsU0FBUyxnQkFBZ0IsQ0FBQyxVQUFzQixFQUFFLEtBQWE7SUFDN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFnQixRQUFRLENBQ3RCLE1BQW1CLEVBQ25CLE9BQXFCLEVBQ3JCLFNBQThCLEVBQUU7SUFFaEMsT0FBTyxJQUFBLHVCQUFVLEVBQ2YsRUFBRSxHQUFHLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUNsRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNoRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDaEIsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRSxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUEsNkNBQWdDLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO1lBQ3RFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztZQUNkLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtTQUN2RCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsRUFDOUIsY0FBYyxHQUFHLElBQUEsMkJBQWEsRUFBQyxTQUFTLEVBQUUsSUFBQSw2QkFBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQy9ELGVBQWUsR0FBRyxJQUFBLDJCQUFhLEVBQUMsU0FBUyxFQUFFLElBQUEsNkJBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxFQUNoRSxNQUFNLEdBQUcsRUFBRSxNQUtULEVBQUU7SUFDSixPQUFPLFFBQVEsQ0FDYjtRQUNFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3hDLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtLQUMxRCxFQUNEO1FBQ0UsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQzdFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7S0FDN0QsRUFDRCxNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixxQ0FBcUMsQ0FDbkQsQ0FBcUIsRUFDckIsU0FBOEIsRUFBRTtJQUVoQyxPQUFPLGVBQWUsQ0FBQztRQUNyQixjQUFjLEVBQUUsSUFBQSwyQkFBYSxFQUFDLENBQUMsRUFBRSxJQUFBLDZCQUFlLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsZUFBZSxFQUFFLElBQUEsMkJBQWEsRUFBQyxDQUFDLEVBQUUsSUFBQSw2QkFBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU07S0FDUCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7XG4gIFBzYnRQYXJhbXMsXG4gIGNyZWF0ZVBzYnQsXG4gIGNyZWF0ZVNjcmlwdFB1YktleUZyb21EZXNjcmlwdG9yLFxuICBEZXJpdmVkRGVzY3JpcHRvclRyYW5zYWN0aW9uSW5wdXQsXG59IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yVGVtcGxhdGUsIGdldERlZmF1bHRYUHVicywgZ2V0RGVzY3JpcHRvciB9IGZyb20gJy4vZGVzY3JpcHRvcnMnO1xuXG50eXBlIE1vY2tPdXRwdXRJZFBhcmFtcyA9IHsgaGFzaD86IHN0cmluZzsgdm91dD86IG51bWJlciB9O1xuXG50eXBlIEJhc2VNb2NrRGVzY3JpcHRvck91dHB1dFBhcmFtcyA9IHtcbiAgaWQ/OiBNb2NrT3V0cHV0SWRQYXJhbXM7XG4gIGluZGV4PzogbnVtYmVyO1xuICB2YWx1ZT86IGJpZ2ludDtcbiAgc2VxdWVuY2U/OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBtb2NrT3V0cHV0SWQoaWQ/OiBNb2NrT3V0cHV0SWRQYXJhbXMpOiB7XG4gIGhhc2g6IHN0cmluZztcbiAgdm91dDogbnVtYmVyO1xufSB7XG4gIGNvbnN0IGhhc2ggPSBpZD8uaGFzaCA/PyBCdWZmZXIuYWxsb2MoMzIsIDEpLnRvU3RyaW5nKCdoZXgnKTtcbiAgY29uc3Qgdm91dCA9IGlkPy52b3V0ID8/IDA7XG4gIHJldHVybiB7IGhhc2gsIHZvdXQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dChcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgb3V0cHV0UGFyYW1zOiBCYXNlTW9ja0Rlc2NyaXB0b3JPdXRwdXRQYXJhbXMgPSB7fVxuKTogRGVyaXZlZERlc2NyaXB0b3JUcmFuc2FjdGlvbklucHV0IHtcbiAgY29uc3QgeyB2YWx1ZSA9IEJpZ0ludCgxZTYpIH0gPSBvdXRwdXRQYXJhbXM7XG4gIGNvbnN0IHsgaGFzaCwgdm91dCB9ID0gbW9ja091dHB1dElkKG91dHB1dFBhcmFtcy5pZCk7XG4gIHJldHVybiB7XG4gICAgaGFzaCxcbiAgICBpbmRleDogdm91dCxcbiAgICB3aXRuZXNzVXR4bzoge1xuICAgICAgc2NyaXB0OiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXNjcmlwdG9yLCB1bmRlZmluZWQpLFxuICAgICAgdmFsdWUsXG4gICAgfSxcbiAgICBkZXNjcmlwdG9yLFxuICAgIHNlcXVlbmNlOiBvdXRwdXRQYXJhbXMuc2VxdWVuY2UsXG4gIH07XG59XG5cbnR5cGUgTW9ja0lucHV0ID0gQmFzZU1vY2tEZXNjcmlwdG9yT3V0cHV0UGFyYW1zICYge1xuICBpbmRleDogbnVtYmVyO1xuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yO1xufTtcblxudHlwZSBNb2NrT3V0cHV0ID0ge1xuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yO1xuICBpbmRleDogbnVtYmVyO1xuICB2YWx1ZTogYmlnaW50O1xuICBleHRlcm5hbD86IGJvb2xlYW47XG59O1xuXG5mdW5jdGlvbiB0cnlEZXJpdmVBdEluZGV4KGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsIGluZGV4OiBudW1iZXIpOiBEZXNjcmlwdG9yIHtcbiAgcmV0dXJuIGRlc2NyaXB0b3IuaGFzV2lsZGNhcmQoKSA/IGRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgoaW5kZXgpIDogZGVzY3JpcHRvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQc2J0KFxuICBpbnB1dHM6IE1vY2tJbnB1dFtdLFxuICBvdXRwdXRzOiBNb2NrT3V0cHV0W10sXG4gIHBhcmFtczogUGFydGlhbDxQc2J0UGFyYW1zPiA9IHt9XG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgcmV0dXJuIGNyZWF0ZVBzYnQoXG4gICAgeyAuLi5wYXJhbXMsIG5ldHdvcms6IHBhcmFtcy5uZXR3b3JrID8/IHV0eG9saWIubmV0d29ya3MuYml0Y29pbiB9LFxuICAgIGlucHV0cy5tYXAoKGkpID0+IG1vY2tEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dCh0cnlEZXJpdmVBdEluZGV4KGkuZGVzY3JpcHRvciwgaS5pbmRleCksIGkpKSxcbiAgICBvdXRwdXRzLm1hcCgobykgPT4ge1xuICAgICAgY29uc3QgZGVyaXZlZERlc2NyaXB0b3IgPSB0cnlEZXJpdmVBdEluZGV4KG8uZGVzY3JpcHRvciwgby5pbmRleCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzY3JpcHQ6IGNyZWF0ZVNjcmlwdFB1YktleUZyb21EZXNjcmlwdG9yKGRlcml2ZWREZXNjcmlwdG9yLCB1bmRlZmluZWQpLFxuICAgICAgICB2YWx1ZTogby52YWx1ZSxcbiAgICAgICAgZGVzY3JpcHRvcjogby5leHRlcm5hbCA/IHVuZGVmaW5lZCA6IGRlcml2ZWREZXNjcmlwdG9yLFxuICAgICAgfTtcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1BzYnREZWZhdWx0KHtcbiAgZGVzY3JpcHRvclNlbGYgPSBnZXREZXNjcmlwdG9yKCdXc2gyT2YzJywgZ2V0RGVmYXVsdFhQdWJzKCdhJykpLFxuICBkZXNjcmlwdG9yT3RoZXIgPSBnZXREZXNjcmlwdG9yKCdXc2gyT2YzJywgZ2V0RGVmYXVsdFhQdWJzKCdiJykpLFxuICBwYXJhbXMgPSB7fSxcbn06IHtcbiAgZGVzY3JpcHRvclNlbGY/OiBEZXNjcmlwdG9yO1xuICBkZXNjcmlwdG9yT3RoZXI/OiBEZXNjcmlwdG9yO1xuICBwYXJhbXM/OiBQYXJ0aWFsPFBzYnRQYXJhbXM+O1xufSA9IHt9KTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIHJldHVybiBtb2NrUHNidChcbiAgICBbXG4gICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JTZWxmLCBpbmRleDogMCB9LFxuICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yU2VsZiwgaW5kZXg6IDEsIGlkOiB7IHZvdXQ6IDEgfSB9LFxuICAgIF0sXG4gICAgW1xuICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yT3RoZXIsIGluZGV4OiAwLCB2YWx1ZTogQmlnSW50KDRlNSksIGV4dGVybmFsOiB0cnVlIH0sXG4gICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JTZWxmLCBpbmRleDogMCwgdmFsdWU6IEJpZ0ludCg0ZTUpIH0sXG4gICAgXSxcbiAgICBwYXJhbXNcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUoXG4gIHQ6IERlc2NyaXB0b3JUZW1wbGF0ZSxcbiAgcGFyYW1zOiBQYXJ0aWFsPFBzYnRQYXJhbXM+ID0ge31cbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICByZXR1cm4gbW9ja1BzYnREZWZhdWx0KHtcbiAgICBkZXNjcmlwdG9yU2VsZjogZ2V0RGVzY3JpcHRvcih0LCBnZXREZWZhdWx0WFB1YnMoJ2EnKSksXG4gICAgZGVzY3JpcHRvck90aGVyOiBnZXREZXNjcmlwdG9yKHQsIGdldERlZmF1bHRYUHVicygnYicpKSxcbiAgICBwYXJhbXMsXG4gIH0pO1xufVxuIl19
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toPlainObjectFromPsbt = toPlainObjectFromPsbt;
|
|
4
4
|
exports.toPlainObjectFromTx = toPlainObjectFromTx;
|
|
5
|
-
const
|
|
5
|
+
const testutil_1 = require("../../../src/testutil");
|
|
6
6
|
function toPlainObjectFromPsbt(v) {
|
|
7
|
-
return (0,
|
|
7
|
+
return (0, testutil_1.toPlainObject)(v, {
|
|
8
8
|
propertyDescriptors: true,
|
|
9
9
|
ignorePaths(path) {
|
|
10
|
-
return ((0,
|
|
11
|
-
(0,
|
|
12
|
-
(0,
|
|
13
|
-
(0,
|
|
10
|
+
return ((0, testutil_1.matchPath)(path, ['__CACHE']) ||
|
|
11
|
+
(0, testutil_1.matchPath)(path, ['opts', 'network']) ||
|
|
12
|
+
(0, testutil_1.matchPath)(path, ['data', 'globalMap', 'unsignedTx', 'tx', 'network']) ||
|
|
13
|
+
(0, testutil_1.matchPath)(path, ['network']));
|
|
14
14
|
},
|
|
15
15
|
}, []);
|
|
16
16
|
}
|
|
17
17
|
function toPlainObjectFromTx(v) {
|
|
18
|
-
return (0,
|
|
18
|
+
return (0, testutil_1.toPlainObject)(v, {}, []);
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0dXRpbC9kZXNjcmlwdG9yL3BzYnQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzREFnQkM7QUFFRCxrREFFQztBQXRCRCxvREFBOEU7QUFFOUUsU0FBZ0IscUJBQXFCLENBQUMsQ0FBZTtJQUNuRCxPQUFPLElBQUEsd0JBQWEsRUFDbEIsQ0FBQyxFQUNEO1FBQ0UsbUJBQW1CLEVBQUUsSUFBSTtRQUN6QixXQUFXLENBQUMsSUFBbUI7WUFDN0IsT0FBTyxDQUNMLElBQUEsb0JBQVMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUIsSUFBQSxvQkFBUyxFQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDcEMsSUFBQSxvQkFBUyxFQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDckUsSUFBQSxvQkFBUyxFQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzdCLENBQUM7UUFDSixDQUFDO0tBQ0YsRUFDRCxFQUFFLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxDQUFzQjtJQUN4RCxPQUFPLElBQUEsd0JBQWEsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgbWF0Y2hQYXRoLCBQYXRoRWxlbWVudCwgdG9QbGFpbk9iamVjdCB9IGZyb20gJy4uLy4uLy4uL3NyYy90ZXN0dXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVBzYnQodjogdXR4b2xpYi5Qc2J0KTogdW5rbm93biB7XG4gIHJldHVybiB0b1BsYWluT2JqZWN0KFxuICAgIHYsXG4gICAge1xuICAgICAgcHJvcGVydHlEZXNjcmlwdG9yczogdHJ1ZSxcbiAgICAgIGlnbm9yZVBhdGhzKHBhdGg6IFBhdGhFbGVtZW50W10pIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaFBhdGgocGF0aCwgWydfX0NBQ0hFJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnb3B0cycsICduZXR3b3JrJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnZGF0YScsICdnbG9iYWxNYXAnLCAndW5zaWduZWRUeCcsICd0eCcsICduZXR3b3JrJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnbmV0d29yayddKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9LFxuICAgIFtdXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVR4KHY6IHV0eG9saWIuVHJhbnNhY3Rpb24pOiB1bmtub3duIHtcbiAgcmV0dXJuIHRvUGxhaW5PYmplY3Qodiwge30sIFtdKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xOnlyPubkey.d.ts","sourceRoot":"","sources":["../../src/xOnlyPubkey.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAclD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toXOnlyPublicKey = toXOnlyPublicKey;
|
|
4
|
+
function toXOnlyPublicKey(b) {
|
|
5
|
+
if (b.length === 33) {
|
|
6
|
+
if (b[0] === 0x02 || b[0] === 0x03) {
|
|
7
|
+
return b.subarray(1);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
throw new Error(`invalid pubkey leading byte ${b.subarray(0, 1).toString('hex')}`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (b.length === 32) {
|
|
14
|
+
return b;
|
|
15
|
+
}
|
|
16
|
+
throw new Error(`invalid pubkey buffer length ${b.length}`);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieE9ubHlQdWJrZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveE9ubHlQdWJrZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FjQztBQWRELFNBQWdCLGdCQUFnQixDQUFDLENBQVM7SUFDeEMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHRvWE9ubHlQdWJsaWNLZXkoYjogQnVmZmVyKTogQnVmZmVyIHtcbiAgaWYgKGIubGVuZ3RoID09PSAzMykge1xuICAgIGlmIChiWzBdID09PSAweDAyIHx8IGJbMF0gPT09IDB4MDMpIHtcbiAgICAgIHJldHVybiBiLnN1YmFycmF5KDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgcHVia2V5IGxlYWRpbmcgYnl0ZSAke2Iuc3ViYXJyYXkoMCwgMSkudG9TdHJpbmcoJ2hleCcpfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChiLmxlbmd0aCA9PT0gMzIpIHtcbiAgICByZXR1cm4gYjtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBwdWJrZXkgYnVmZmVyIGxlbmd0aCAke2IubGVuZ3RofWApO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/utxo-core",
|
|
3
|
-
"version": "1.0.1-alpha.
|
|
3
|
+
"version": "1.0.1-alpha.51",
|
|
4
4
|
"description": "BitGo UTXO Core types",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -51,10 +51,10 @@
|
|
|
51
51
|
]
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@bitgo-beta/unspents": "0.11.3-alpha.
|
|
55
|
-
"@bitgo-beta/utxo-lib": "4.0.1-alpha.
|
|
56
|
-
"@bitgo/wasm-miniscript": "2.0.0-beta.
|
|
54
|
+
"@bitgo-beta/unspents": "0.11.3-alpha.321",
|
|
55
|
+
"@bitgo-beta/utxo-lib": "4.0.1-alpha.321",
|
|
56
|
+
"@bitgo/wasm-miniscript": "2.0.0-beta.7",
|
|
57
57
|
"bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "4fafdf05d42ddbd55acef5a752a34648bc864a71"
|
|
60
60
|
}
|