@bitgo-beta/utxo-lib 8.0.3-beta.52 → 8.0.3-beta.521
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/README.md +19 -16
- package/dist/src/address.js +5 -5
- package/dist/src/addressFormat.d.ts +1 -1
- package/dist/src/addressFormat.d.ts.map +1 -1
- package/dist/src/addressFormat.js +9 -9
- package/dist/src/bitgo/Musig2.js +19 -19
- package/dist/src/bitgo/PsbtUtil.d.ts +17 -0
- package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -1
- package/dist/src/bitgo/PsbtUtil.js +57 -3
- package/dist/src/bitgo/Unspent.d.ts +2 -2
- package/dist/src/bitgo/Unspent.d.ts.map +1 -1
- package/dist/src/bitgo/Unspent.js +3 -3
- package/dist/src/bitgo/UtxoPsbt.d.ts +16 -4
- package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoPsbt.js +118 -76
- package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoTransaction.js +9 -9
- package/dist/src/bitgo/bitcoincash/address.js +6 -6
- package/dist/src/bitgo/bitcoincash/index.js +6 -2
- package/dist/src/bitgo/dash/DashTransaction.js +3 -3
- package/dist/src/bitgo/dash/index.js +6 -2
- package/dist/src/bitgo/index.d.ts +3 -1
- package/dist/src/bitgo/index.d.ts.map +1 -1
- package/dist/src/bitgo/index.js +9 -3
- package/dist/src/bitgo/keyutil.d.ts +9 -0
- package/dist/src/bitgo/keyutil.d.ts.map +1 -1
- package/dist/src/bitgo/keyutil.js +24 -2
- package/dist/src/bitgo/legacysafe/index.d.ts +15 -0
- package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
- package/dist/src/bitgo/legacysafe/index.js +61 -0
- package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts +1 -1
- package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/litecoin/LitecoinTransaction.js +2 -2
- package/dist/src/bitgo/litecoin/index.js +6 -2
- package/dist/src/bitgo/outputScripts.d.ts +7 -6
- package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
- package/dist/src/bitgo/outputScripts.js +29 -14
- package/dist/src/bitgo/parseInput.d.ts +11 -7
- package/dist/src/bitgo/parseInput.d.ts.map +1 -1
- package/dist/src/bitgo/parseInput.js +23 -7
- package/dist/src/bitgo/psbt/fromHalfSigned.js +5 -5
- package/dist/src/bitgo/signature.d.ts +2 -2
- package/dist/src/bitgo/signature.d.ts.map +1 -1
- package/dist/src/bitgo/signature.js +17 -8
- package/dist/src/bitgo/transaction.d.ts +13 -0
- package/dist/src/bitgo/transaction.d.ts.map +1 -1
- package/dist/src/bitgo/transaction.js +31 -11
- package/dist/src/bitgo/transactionAmounts.d.ts +9 -0
- package/dist/src/bitgo/transactionAmounts.d.ts.map +1 -0
- package/dist/src/bitgo/transactionAmounts.js +33 -0
- package/dist/src/bitgo/types.d.ts +9 -2
- package/dist/src/bitgo/types.d.ts.map +1 -1
- package/dist/src/bitgo/types.js +11 -2
- package/dist/src/bitgo/wallet/Psbt.d.ts +48 -18
- package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/Psbt.js +129 -29
- package/dist/src/bitgo/wallet/Unspent.d.ts +23 -15
- package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/Unspent.js +59 -54
- package/dist/src/bitgo/wallet/WalletKeys.d.ts +1 -1
- package/dist/src/bitgo/wallet/WalletKeys.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/WalletOutput.d.ts +17 -1
- package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/WalletOutput.js +68 -27
- package/dist/src/bitgo/wallet/WalletScripts.js +2 -2
- package/dist/src/bitgo/wallet/WalletUnspentSigner.js +7 -7
- package/dist/src/bitgo/wallet/chains.d.ts +2 -2
- package/dist/src/bitgo/wallet/chains.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/index.d.ts +2 -0
- package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/index.js +8 -2
- package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts +50 -0
- package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/psbt/PsbtOutputs.js +87 -0
- package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts +32 -0
- package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/psbt/RootNodes.js +125 -0
- package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +0 -1
- package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashPsbt.js +5 -14
- package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +1 -1
- package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashTransaction.js +15 -15
- package/dist/src/bitgo/zcash/ZcashTransactionBuilder.js +4 -4
- package/dist/src/bitgo/zcash/address.js +3 -3
- package/dist/src/bitgo/zcash/hashZip0244.d.ts +1 -1
- package/dist/src/bitgo/zcash/hashZip0244.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/hashZip0244.js +3 -3
- package/dist/src/bitgo/zcash/index.js +6 -2
- package/dist/src/index.js +6 -2
- package/dist/src/networks.d.ts +2 -2
- package/dist/src/networks.d.ts.map +1 -1
- package/dist/src/networks.js +47 -1
- package/dist/src/noble_ecc.d.ts +7 -7
- package/dist/src/noble_ecc.d.ts.map +1 -1
- package/dist/src/noble_ecc.js +4 -4
- package/dist/src/testutil/index.js +6 -2
- package/dist/src/testutil/keys.d.ts +4 -1
- package/dist/src/testutil/keys.d.ts.map +1 -1
- package/dist/src/testutil/keys.js +18 -3
- package/dist/src/testutil/mock.d.ts +1 -1
- package/dist/src/testutil/mock.d.ts.map +1 -1
- package/dist/src/testutil/mock.js +15 -15
- package/dist/src/testutil/psbt.d.ts +37 -15
- package/dist/src/testutil/psbt.d.ts.map +1 -1
- package/dist/src/testutil/psbt.js +41 -31
- package/dist/src/testutil/transaction.d.ts +15 -6
- package/dist/src/testutil/transaction.d.ts.map +1 -1
- package/dist/src/testutil/transaction.js +20 -20
- package/dist/src/transaction_builder.d.ts.map +1 -1
- package/dist/src/transaction_builder.js +12 -17
- package/package.json +7 -7
|
@@ -24,7 +24,20 @@ export declare function createTransactionFromHex(hex: string, network: Network,
|
|
|
24
24
|
export declare function createTransactionFromHex<TNumber extends number | bigint = number>(hex: string, network: Network, p?: {
|
|
25
25
|
amountType?: 'number' | 'bigint';
|
|
26
26
|
} | 'number' | 'bigint'): UtxoTransaction<TNumber>;
|
|
27
|
+
/**
|
|
28
|
+
* @param buf - must start with the PSBT magic bytes
|
|
29
|
+
* @param network
|
|
30
|
+
* @param bip32PathsAbsolute
|
|
31
|
+
*/
|
|
27
32
|
export declare function createPsbtFromBuffer(buf: Buffer, network: Network, bip32PathsAbsolute?: boolean): UtxoPsbt;
|
|
33
|
+
/**
|
|
34
|
+
* Like createPsbtFromBuffer, but attempts hex and base64 decoding as well.
|
|
35
|
+
*
|
|
36
|
+
* @param buf
|
|
37
|
+
* @param network
|
|
38
|
+
* @param bip32PathsAbsolute
|
|
39
|
+
*/
|
|
40
|
+
export declare function createPsbtDecode(buf: Buffer | string, network: Network, bip32PathsAbsolute?: boolean): UtxoPsbt;
|
|
28
41
|
export declare function createPsbtFromHex(hex: string, network: Network, bip32PathsAbsolute?: boolean): UtxoPsbt;
|
|
29
42
|
export declare function createPsbtFromTransaction(tx: UtxoTransaction<bigint>, prevOuts: TxOutput<bigint>[]): UtxoPsbt;
|
|
30
43
|
export declare function getDefaultTransactionVersion(network: Network): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/bitgo/transaction.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAY,OAAO,EAAc,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/bitgo/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createTransactionBuilderFromTransaction = exports.createTransactionBuilderForNetwork = exports.createPsbtForNetwork = exports.setPsbtDefaults = exports.setTransactionBuilderDefaults = exports.getDefaultTransactionVersion = exports.createPsbtFromTransaction = exports.createPsbtFromHex = exports.createPsbtFromBuffer = exports.createTransactionFromHex = exports.createTransactionFromBuffer = void 0;
|
|
3
|
+
exports.createTransactionBuilderFromTransaction = exports.createTransactionBuilderForNetwork = exports.createPsbtForNetwork = exports.setPsbtDefaults = exports.setTransactionBuilderDefaults = exports.getDefaultTransactionVersion = exports.createPsbtFromTransaction = exports.createPsbtFromHex = exports.createPsbtDecode = exports.createPsbtFromBuffer = exports.createTransactionFromHex = exports.createTransactionFromBuffer = void 0;
|
|
4
4
|
const networks_1 = require("../networks");
|
|
5
5
|
const UtxoPsbt_1 = require("./UtxoPsbt");
|
|
6
6
|
const UtxoTransaction_1 = require("./UtxoTransaction");
|
|
@@ -12,6 +12,7 @@ const ZcashPsbt_1 = require("./zcash/ZcashPsbt");
|
|
|
12
12
|
const ZcashTransactionBuilder_1 = require("./zcash/ZcashTransactionBuilder");
|
|
13
13
|
const ZcashTransaction_1 = require("./zcash/ZcashTransaction");
|
|
14
14
|
const litecoin_1 = require("./litecoin");
|
|
15
|
+
const PsbtUtil_1 = require("./PsbtUtil");
|
|
15
16
|
function createTransactionFromBuffer(buf, network, { version, amountType } = {}, deprecatedAmountType) {
|
|
16
17
|
if (amountType) {
|
|
17
18
|
if (deprecatedAmountType && amountType !== deprecatedAmountType) {
|
|
@@ -26,7 +27,7 @@ function createTransactionFromBuffer(buf, network, { version, amountType } = {},
|
|
|
26
27
|
amountType = 'number';
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
switch (networks_1.getMainnet(network)) {
|
|
30
|
+
switch ((0, networks_1.getMainnet)(network)) {
|
|
30
31
|
case networks_1.networks.bitcoin:
|
|
31
32
|
case networks_1.networks.bitcoincash:
|
|
32
33
|
case networks_1.networks.bitcoinsv:
|
|
@@ -52,8 +53,16 @@ function createTransactionFromHex(hex, network, p) {
|
|
|
52
53
|
return createTransactionFromBuffer(Buffer.from(hex, 'hex'), network, p);
|
|
53
54
|
}
|
|
54
55
|
exports.createTransactionFromHex = createTransactionFromHex;
|
|
56
|
+
/**
|
|
57
|
+
* @param buf - must start with the PSBT magic bytes
|
|
58
|
+
* @param network
|
|
59
|
+
* @param bip32PathsAbsolute
|
|
60
|
+
*/
|
|
55
61
|
function createPsbtFromBuffer(buf, network, bip32PathsAbsolute = false) {
|
|
56
|
-
|
|
62
|
+
if (!(0, PsbtUtil_1.isPsbt)(buf)) {
|
|
63
|
+
throw new Error(`invalid psbt (does not start with 'psbt' magic bytes)`);
|
|
64
|
+
}
|
|
65
|
+
switch ((0, networks_1.getMainnet)(network)) {
|
|
57
66
|
case networks_1.networks.bitcoin:
|
|
58
67
|
case networks_1.networks.bitcoincash:
|
|
59
68
|
case networks_1.networks.bitcoinsv:
|
|
@@ -72,12 +81,23 @@ function createPsbtFromBuffer(buf, network, bip32PathsAbsolute = false) {
|
|
|
72
81
|
throw new Error(`invalid network`);
|
|
73
82
|
}
|
|
74
83
|
exports.createPsbtFromBuffer = createPsbtFromBuffer;
|
|
84
|
+
/**
|
|
85
|
+
* Like createPsbtFromBuffer, but attempts hex and base64 decoding as well.
|
|
86
|
+
*
|
|
87
|
+
* @param buf
|
|
88
|
+
* @param network
|
|
89
|
+
* @param bip32PathsAbsolute
|
|
90
|
+
*/
|
|
91
|
+
function createPsbtDecode(buf, network, bip32PathsAbsolute = false) {
|
|
92
|
+
return createPsbtFromBuffer((0, PsbtUtil_1.toPsbtBuffer)(buf), network, bip32PathsAbsolute);
|
|
93
|
+
}
|
|
94
|
+
exports.createPsbtDecode = createPsbtDecode;
|
|
75
95
|
function createPsbtFromHex(hex, network, bip32PathsAbsolute = false) {
|
|
76
96
|
return createPsbtFromBuffer(Buffer.from(hex, 'hex'), network, bip32PathsAbsolute);
|
|
77
97
|
}
|
|
78
98
|
exports.createPsbtFromHex = createPsbtFromHex;
|
|
79
99
|
function createPsbtFromTransaction(tx, prevOuts) {
|
|
80
|
-
switch (networks_1.getMainnet(tx.network)) {
|
|
100
|
+
switch ((0, networks_1.getMainnet)(tx.network)) {
|
|
81
101
|
case networks_1.networks.bitcoin:
|
|
82
102
|
case networks_1.networks.bitcoincash:
|
|
83
103
|
case networks_1.networks.bitcoinsv:
|
|
@@ -97,7 +117,7 @@ function createPsbtFromTransaction(tx, prevOuts) {
|
|
|
97
117
|
}
|
|
98
118
|
exports.createPsbtFromTransaction = createPsbtFromTransaction;
|
|
99
119
|
function getDefaultTransactionVersion(network) {
|
|
100
|
-
switch (networks_1.getMainnet(network)) {
|
|
120
|
+
switch ((0, networks_1.getMainnet)(network)) {
|
|
101
121
|
case networks_1.networks.bitcoincash:
|
|
102
122
|
case networks_1.networks.bitcoinsv:
|
|
103
123
|
case networks_1.networks.bitcoingold:
|
|
@@ -111,7 +131,7 @@ function getDefaultTransactionVersion(network) {
|
|
|
111
131
|
}
|
|
112
132
|
exports.getDefaultTransactionVersion = getDefaultTransactionVersion;
|
|
113
133
|
function setTransactionBuilderDefaults(txb, network, { version = getDefaultTransactionVersion(network) } = {}) {
|
|
114
|
-
switch (networks_1.getMainnet(network)) {
|
|
134
|
+
switch ((0, networks_1.getMainnet)(network)) {
|
|
115
135
|
case networks_1.networks.bitcoincash:
|
|
116
136
|
case networks_1.networks.bitcoinsv:
|
|
117
137
|
case networks_1.networks.bitcoingold:
|
|
@@ -132,7 +152,7 @@ function setTransactionBuilderDefaults(txb, network, { version = getDefaultTrans
|
|
|
132
152
|
}
|
|
133
153
|
exports.setTransactionBuilderDefaults = setTransactionBuilderDefaults;
|
|
134
154
|
function setPsbtDefaults(psbt, network, { version = getDefaultTransactionVersion(network) } = {}) {
|
|
135
|
-
switch (networks_1.getMainnet(network)) {
|
|
155
|
+
switch ((0, networks_1.getMainnet)(network)) {
|
|
136
156
|
case networks_1.networks.bitcoincash:
|
|
137
157
|
case networks_1.networks.bitcoinsv:
|
|
138
158
|
case networks_1.networks.bitcoingold:
|
|
@@ -163,7 +183,7 @@ function setPsbtDefaults(psbt, network, { version = getDefaultTransactionVersion
|
|
|
163
183
|
exports.setPsbtDefaults = setPsbtDefaults;
|
|
164
184
|
function createPsbtForNetwork(psbtOpts, { version } = {}) {
|
|
165
185
|
let psbt;
|
|
166
|
-
switch (networks_1.getMainnet(psbtOpts.network)) {
|
|
186
|
+
switch ((0, networks_1.getMainnet)(psbtOpts.network)) {
|
|
167
187
|
case networks_1.networks.bitcoin:
|
|
168
188
|
case networks_1.networks.bitcoincash:
|
|
169
189
|
case networks_1.networks.bitcoinsv:
|
|
@@ -194,7 +214,7 @@ function createPsbtForNetwork(psbtOpts, { version } = {}) {
|
|
|
194
214
|
exports.createPsbtForNetwork = createPsbtForNetwork;
|
|
195
215
|
function createTransactionBuilderForNetwork(network, { version } = {}) {
|
|
196
216
|
let txb;
|
|
197
|
-
switch (networks_1.getMainnet(network)) {
|
|
217
|
+
switch ((0, networks_1.getMainnet)(network)) {
|
|
198
218
|
case networks_1.networks.bitcoin:
|
|
199
219
|
case networks_1.networks.bitcoincash:
|
|
200
220
|
case networks_1.networks.bitcoinsv:
|
|
@@ -223,7 +243,7 @@ function createTransactionBuilderForNetwork(network, { version } = {}) {
|
|
|
223
243
|
}
|
|
224
244
|
exports.createTransactionBuilderForNetwork = createTransactionBuilderForNetwork;
|
|
225
245
|
function createTransactionBuilderFromTransaction(tx, prevOutputs) {
|
|
226
|
-
switch (networks_1.getMainnet(tx.network)) {
|
|
246
|
+
switch ((0, networks_1.getMainnet)(tx.network)) {
|
|
227
247
|
case networks_1.networks.bitcoin:
|
|
228
248
|
case networks_1.networks.bitcoincash:
|
|
229
249
|
case networks_1.networks.bitcoinsv:
|
|
@@ -241,4 +261,4 @@ function createTransactionBuilderFromTransaction(tx, prevOutputs) {
|
|
|
241
261
|
throw new Error(`invalid network`);
|
|
242
262
|
}
|
|
243
263
|
exports.createTransactionBuilderFromTransaction = createTransactionBuilderFromTransaction;
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMENBQTREO0FBRTVELHlDQUFnRDtBQUNoRCx1REFBb0Q7QUFDcEQscUVBQWtFO0FBQ2xFLDhDQUEyQztBQUMzQyw0REFBeUQ7QUFDekQsMEVBQXVFO0FBQ3ZFLGlEQUE4QztBQUM5Qyw2RUFBMEU7QUFDMUUsK0RBQTBFO0FBQzFFLHlDQUEyRjtBQVkzRixTQUFnQiwyQkFBMkIsQ0FDekMsR0FBVyxFQUNYLE9BQWdCLEVBQ2hCLEVBQUUsT0FBTyxFQUFFLFVBQVUsS0FBNkQsRUFBRSxFQUNwRixvQkFBMEM7SUFFMUMsSUFBSSxVQUFVLEVBQUU7UUFDZCxJQUFJLG9CQUFvQixJQUFJLFVBQVUsS0FBSyxvQkFBb0IsRUFBRTtZQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdEM7S0FDRjtTQUFNO1FBQ0wsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixVQUFVLEdBQUcsb0JBQW9CLENBQUM7U0FDbkM7YUFBTTtZQUNMLFVBQVUsR0FBRyxRQUFRLENBQUM7U0FDdkI7S0FDRjtJQUNELFFBQVEscUJBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLG1CQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssbUJBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxtQkFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFLLG1CQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssbUJBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkIsS0FBSyxtQkFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxpQ0FBZSxDQUFDLFVBQVUsQ0FBVSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RSxLQUFLLG1CQUFRLENB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LElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDckMsQ0FBQztBQWpDRCwwRkFpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tcmVkZWNsYXJlOiAwICovXG5pbXBvcnQgeyBUeE91dHB1dCB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5pbXBvcnQgeyBuZXR3b3JrcywgTmV0d29yaywgZ2V0TWFpbm5ldCB9IGZyb20gJy4uL25ldHdvcmtzJztcblxuaW1wb3J0IHsgVXR4b1BzYnQsIFBzYnRPcHRzIH0gZnJvbSAnLi9VdHhvUHNidCc7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24gfSBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IERhc2hQc2J0IH0gZnJvbSAnLi9kYXNoL0Rhc2hQc2J0JztcbmltcG9ydCB7IERhc2hUcmFuc2FjdGlvbiB9IGZyb20gJy4vZGFzaC9EYXNoVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGFzaFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vZGFzaC9EYXNoVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFpjYXNoUHNidCB9IGZyb20gJy4vemNhc2gvWmNhc2hQc2J0JztcbmltcG9ydCB7IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBaY2FzaE5ldHdvcmssIFpjYXNoVHJhbnNhY3Rpb24gfSBmcm9tICcuL3pjYXNoL1pjYXNoVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgTGl0ZWNvaW5Qc2J0LCBMaXRlY29pblRyYW5zYWN0aW9uLCBMaXRlY29pblRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vbGl0ZWNvaW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyKFxuICBidWY6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgcGFyYW1zOiB7IHZlcnNpb24/OiBudW1iZXI7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH1cbik6IFV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgYnVmOiBCdWZmZXIsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHBhcmFtcz86IHsgdmVyc2lvbj86IG51bWJlcjsgYW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCcgfVxuKTogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgYnVmOiBCdWZmZXIsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHsgdmVyc2lvbiwgYW1vdW50VHlwZSB9OiB7IHZlcnNpb24/OiBudW1iZXI7IGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnIH0gPSB7fSxcbiAgZGVwcmVjYXRlZEFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnXG4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICBpZiAoYW1vdW50VHlwZSkge1xuICAgIGlmIChkZXByZWNhdGVkQW1vdW50VHlwZSAmJiBhbW91bnRUeXBlICE9PSBkZXByZWNhdGVkQW1vdW50VHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoZGVwcmVjYXRlZEFtb3VudFR5cGUpIHtcbiAgICAgIGFtb3VudFR5cGUgPSBkZXByZWNhdGVkQW1vdW50VHlwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgYW1vdW50VHlwZSA9ICdudW1iZXInO1xuICAgIH1cbiAgfVxuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcjxUTnVtYmVyPihidWYsIGZhbHNlLCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luOlxuICAgICAgcmV0dXJuIExpdGVjb2luVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcjxUTnVtYmVyPihidWYsIGZhbHNlLCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICByZXR1cm4gRGFzaFRyYW5zYWN0aW9uLmZyb21CdWZmZXI8VE51bWJlcj4oYnVmLCBmYWxzZSwgYW1vdW50VHlwZSwgbmV0d29yayk7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uLmZyb21CdWZmZXJXaXRoVmVyc2lvbjxUTnVtYmVyPihidWYsIG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrLCB2ZXJzaW9uLCBhbW91bnRUeXBlKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4vKiogQGRlcHJlY2F0ZWQgLSB1c2UgY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyIGluc3RlYWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoXG4gIGhleDogc3RyaW5nLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBwOiB7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH1cbik6IFV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+O1xuLyoqIEBkZXByZWNhdGVkIC0gdXNlIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlciBpbnN0ZWFkICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4KGhleDogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrLCBwOiB7IGFtb3VudFR5cGU6ICdudW1iZXInIH0pOiBVdHhvVHJhbnNhY3Rpb247XG4vKiogQGRlcHJlY2F0ZWQgLSB1c2UgY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyIGluc3RlYWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21IZXg8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIGhleDogc3RyaW5nLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBwPzogeyBhbW91bnRUeXBlPzogJ251bWJlcicgfCAnYmlnaW50JyB9IHwgJ251bWJlcicgfCAnYmlnaW50J1xuKTogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgaGV4OiBzdHJpbmcsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHA/OiB7IGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnIH0gfCAnbnVtYmVyJyB8ICdiaWdpbnQnXG4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICBpZiAodHlwZW9mIHAgPT09ICdzdHJpbmcnKSB7XG4gICAgcCA9IHsgYW1vdW50VHlwZTogcCB9O1xuICB9XG4gIHJldHVybiBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXI8VE51bWJlcj4oQnVmZmVyLmZyb20oaGV4LCAnaGV4JyksIG5ldHdvcmssIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21CdWZmZXIoYnVmOiBCdWZmZXIsIG5ldHdvcms6IE5ldHdvcmssIGJpcDMyUGF0aHNBYnNvbHV0ZSA9IGZhbHNlKTogVXR4b1BzYnQge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvUHNidC5mcm9tQnVmZmVyKGJ1ZiwgeyBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgfSk7XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBMaXRlY29pblBzYnQuZnJvbUJ1ZmZlcihidWYsIHsgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlIH0pO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoUHNidC5mcm9tQnVmZmVyKGJ1ZiwgeyBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgfSk7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFBzYnQuZnJvbUJ1ZmZlcihidWYsIHsgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlIH0pO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tSGV4KGhleDogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgPSBmYWxzZSk6IFV0eG9Qc2J0IHtcbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpLCBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21UcmFuc2FjdGlvbih0eDogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sIHByZXZPdXRzOiBUeE91dHB1dDxiaWdpbnQ+W10pOiBVdHhvUHNidCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldCh0eC5uZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5kb2dlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgcmV0dXJuIFV0eG9Qc2J0LmZyb21UcmFuc2FjdGlvbih0eCwgcHJldk91dHMpO1xuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46XG4gICAgICByZXR1cm4gTGl0ZWNvaW5Qc2J0LmZyb21UcmFuc2FjdGlvbih0eCwgcHJldk91dHMpO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoUHNidC5mcm9tVHJhbnNhY3Rpb24odHgsIHByZXZPdXRzKTtcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFpjYXNoUHNidC5mcm9tVHJhbnNhY3Rpb24odHgsIHByZXZPdXRzKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0VHJhbnNhY3Rpb25WZXJzaW9uKG5ldHdvcms6IE5ldHdvcmspOiBudW1iZXIge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiAyO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU1O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gMTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VHJhbnNhY3Rpb25CdWlsZGVyRGVmYXVsdHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4YjogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPixcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uID0gZ2V0RGVmYXVsdFRyYW5zYWN0aW9uVmVyc2lvbihuZXR3b3JrKSB9OiB7IHZlcnNpb24/OiBudW1iZXIgfSA9IHt9XG4pOiB2b2lkIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZWNhc2g6XG4gICAgICBpZiAodmVyc2lvbiAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbmApO1xuICAgICAgfVxuICAgICAgdHhiLnNldFZlcnNpb24odmVyc2lvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgKHR4YiBhcyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPikuc2V0RGVmYXVsdHNGb3JWZXJzaW9uKG5ldHdvcmssIHZlcnNpb24pO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh2ZXJzaW9uICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCB2ZXJzaW9uYCk7XG4gICAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFBzYnREZWZhdWx0cyhcbiAgcHNidDogVXR4b1BzYnQsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHsgdmVyc2lvbiA9IGdldERlZmF1bHRUcmFuc2FjdGlvblZlcnNpb24obmV0d29yaykgfTogeyB2ZXJzaW9uPzogbnVtYmVyIH0gPSB7fVxuKTogdm9pZCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgaWYgKHZlcnNpb24gIT09IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb25gKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICBpZiAoXG4gICAgICAgICFbXG4gICAgICAgICAgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfQ0FOT1BZLFxuICAgICAgICAgIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX05VNSxcbiAgICAgICAgICBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTUsXG4gICAgICAgIF0uaW5jbHVkZXModmVyc2lvbilcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbmApO1xuICAgICAgfVxuICAgICAgKHBzYnQgYXMgWmNhc2hQc2J0KS5zZXREZWZhdWx0c0ZvclZlcnNpb24obmV0d29yaywgdmVyc2lvbik7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb25gKTtcbiAgICAgIH1cbiAgICAgIC8vIEZJWE1FOiBzZXQgdmVyc2lvbiBoZXJlLCBiZWNhdXNlIHRoZXJlJ3MgYSBidWcgaW4gdGhlIHVwc3RyZWFtIFBTQlRcbiAgICAgIC8vIHRoYXQgZGVmYXVsdHMgdHJhbnNhY3Rpb25zIHRvIHYyLlxuICAgICAgcHNidC5zZXRWZXJzaW9uKHZlcnNpb24pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yTmV0d29yayhwc2J0T3B0czogUHNidE9wdHMsIHsgdmVyc2lvbiB9OiB7IHZlcnNpb24/OiBudW1iZXIgfSA9IHt9KTogVXR4b1BzYnQge1xuICBsZXQgcHNidDtcblxuICBzd2l0Y2ggKGdldE1haW5uZXQocHNidE9wdHMubmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDoge1xuICAgICAgcHNidCA9IFV0eG9Qc2J0LmNyZWF0ZVBzYnQocHNidE9wdHMpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46IHtcbiAgICAgIHBzYnQgPSBMaXRlY29pblBzYnQuY3JlYXRlUHNidChwc2J0T3B0cyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOiB7XG4gICAgICBwc2J0ID0gRGFzaFBzYnQuY3JlYXRlUHNidChwc2J0T3B0cyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgcHNidCA9IFpjYXNoUHNidC5jcmVhdGVQc2J0KHBzYnRPcHRzKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cblxuICBzZXRQc2J0RGVmYXVsdHMocHNidCwgcHNidE9wdHMubmV0d29yaywgeyB2ZXJzaW9uIH0pO1xuXG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRm9yTmV0d29yazxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uIH06IHsgdmVyc2lvbj86IG51bWJlciB9ID0ge31cbik6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBsZXQgdHhiO1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDoge1xuICAgICAgdHhiID0gbmV3IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4obmV0d29yayk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjoge1xuICAgICAgdHhiID0gbmV3IExpdGVjb2luVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHR4YiA9IG5ldyBEYXNoVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgdHhiID0gbmV3IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cblxuICBzZXRUcmFuc2FjdGlvbkJ1aWxkZXJEZWZhdWx0czxUTnVtYmVyPih0eGIsIG5ldHdvcmssIHsgdmVyc2lvbiB9KTtcblxuICByZXR1cm4gdHhiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRnJvbVRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBwcmV2T3V0cHV0cz86IFR4T3V0cHV0PFROdW1iZXI+W11cbik6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBzd2l0Y2ggKGdldE1haW5uZXQodHgubmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLmZyb21UcmFuc2FjdGlvbjxUTnVtYmVyPih0eCwgdW5kZWZpbmVkLCBwcmV2T3V0cHV0cyk7XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBMaXRlY29pblRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgICAgIHR4IGFzIExpdGVjb2luVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcHJldk91dHB1dHMgYXMgVHhPdXRwdXQ8VE51bWJlcj5bXVxuICAgICAgKTtcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICByZXR1cm4gRGFzaFRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgICAgIHR4IGFzIERhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBwcmV2T3V0cHV0cyBhcyBUeE91dHB1dDxUTnVtYmVyPltdXG4gICAgICApO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIuZnJvbVRyYW5zYWN0aW9uPFROdW1iZXI+KFxuICAgICAgICB0eCBhcyBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+LFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHByZXZPdXRwdXRzIGFzIFR4T3V0cHV0PFROdW1iZXI+W11cbiAgICAgICk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xufVxuIl19
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMENBQTREO0FBRTVELHlDQUFnRDtBQUNoRCx1REFBb0Q7QUFDcEQscUVBQWtFO0FBQ2xFLDhDQUEyQztBQUMzQyw0REFBeUQ7QUFDekQsMEVBQXVFO0FBQ3ZFLGlEQUE4QztBQUM5Qyw2RUFBMEU7QUFDMUUsK0RBQTBFO0FBQzFFLHlDQUEyRjtBQUMzRix5Q0FBa0Q7QUFZbEQsU0FBZ0IsMkJBQTJCLENBQ3pDLEdBQVcsRUFDWCxPQUFnQixFQUNoQixFQUFFLE9BQU8sRUFBRSxVQUFVLEtBQTZELEVBQUUsRUFDcEYsb0JBQTBDO0lBRTFDLElBQUksVUFBVSxFQUFFO1FBQ2QsSUFBSSxvQkFBb0IsSUFBSSxVQUFVLEtBQUssb0JBQW9CLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3RDO0tBQ0Y7U0FBTTtRQUNMLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsVUFBVSxHQUFHLG9CQUFvQixDQUFDO1NBQ25DO2FBQU07WUFDTCxVQUFVLEdBQUcsUUFBUSxDQUFDO1NBQ3ZCO0tBQ0Y7SUFDRCxRQUFRLElBQUEscUJBQVUsRUFBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLG1CQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssbUJBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxtQkFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFLLG1CQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssbUJBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkIsS0FBSyxtQkFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxpQ0FBZSxDQUFDLFVBQVUsQ0FBVSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztR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QUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JGLEtBQUssbUJBQVEsQ0FBQyxRQUFRO1lBQ3BCLE9BQU8scUNBQTBCLENBQUMsZUFBZSxDQUMvQyxFQUFrQyxFQUNsQyxTQUFTLEVBQ1QsV0FBa0MsQ0FDbkMsQ0FBQztRQUNKLEtBQUssbUJBQVEsQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sK0NBQXNCLENBQUMsZUFBZSxDQUMzQyxFQUE4QixFQUM5QixTQUFTLEVBQ1QsV0FBa0MsQ0FDbkMsQ0FBQztRQUNKLEtBQUssbUJBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8saURBQXVCLENBQUMsZUFBZSxDQUM1QyxFQUErQixFQUMvQixTQUFTLEVBQ1QsV0FBa0MsQ0FDbkMsQ0FBQztLQUNMO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFqQ0QsMEZBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLXJlZGVjbGFyZTogMCAqL1xuaW1wb3J0IHsgVHhPdXRwdXQgfSBmcm9tICdiaXRjb2luanMtbGliJztcblxuaW1wb3J0IHsgbmV0d29ya3MsIE5ldHdvcmssIGdldE1haW5uZXQgfSBmcm9tICcuLi9uZXR3b3Jrcyc7XG5cbmltcG9ydCB7IFV0eG9Qc2J0LCBQc2J0T3B0cyB9IGZyb20gJy4vVXR4b1BzYnQnO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vVXR4b1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBEYXNoUHNidCB9IGZyb20gJy4vZGFzaC9EYXNoUHNidCc7XG5pbXBvcnQgeyBEYXNoVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Rhc2gvRGFzaFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IERhc2hUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2Rhc2gvRGFzaFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBaY2FzaFBzYnQgfSBmcm9tICcuL3pjYXNoL1pjYXNoUHNidCc7XG5pbXBvcnQgeyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vemNhc2gvWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgWmNhc2hOZXR3b3JrLCBaY2FzaFRyYW5zYWN0aW9uIH0gZnJvbSAnLi96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IExpdGVjb2luUHNidCwgTGl0ZWNvaW5UcmFuc2FjdGlvbiwgTGl0ZWNvaW5UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpdGVjb2luJztcbmltcG9ydCB7IGlzUHNidCwgdG9Qc2J0QnVmZmVyIH0gZnJvbSAnLi9Qc2J0VXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIoXG4gIGJ1ZjogQnVmZmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBwYXJhbXM6IHsgdmVyc2lvbj86IG51bWJlcjsgYW1vdW50VHlwZTogJ2JpZ2ludCcgfVxuKTogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBidWY6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgcGFyYW1zPzogeyB2ZXJzaW9uPzogbnVtYmVyOyBhbW91bnRUeXBlPzogJ251bWJlcicgfCAnYmlnaW50JyB9XG4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBidWY6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uLCBhbW91bnRUeXBlIH06IHsgdmVyc2lvbj86IG51bWJlcjsgYW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCcgfSA9IHt9LFxuICBkZXByZWNhdGVkQW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCdcbik6IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gIGlmIChhbW91bnRUeXBlKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBbW91bnRUeXBlICYmIGFtb3VudFR5cGUgIT09IGRlcHJlY2F0ZWRBbW91bnRUeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXJndW1lbnRzYCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChkZXByZWNhdGVkQW1vdW50VHlwZSkge1xuICAgICAgYW1vdW50VHlwZSA9IGRlcHJlY2F0ZWRBbW91bnRUeXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbW91bnRUeXBlID0gJ251bWJlcic7XG4gICAgfVxuICB9XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5kb2dlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgcmV0dXJuIFV0eG9UcmFuc2FjdGlvbi5mcm9tQnVmZmVyPFROdW1iZXI+KGJ1ZiwgZmFsc2UsIGFtb3VudFR5cGUsIG5ldHdvcmspO1xuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46XG4gICAgICByZXR1cm4gTGl0ZWNvaW5UcmFuc2FjdGlvbi5mcm9tQnVmZmVyPFROdW1iZXI+KGJ1ZiwgZmFsc2UsIGFtb3VudFR5cGUsIG5ldHdvcmspO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcjxUTnVtYmVyPihidWYsIGZhbHNlLCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFpjYXNoVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcldpdGhWZXJzaW9uPFROdW1iZXI+KGJ1ZiwgbmV0d29yayBhcyBaY2FzaE5ldHdvcmssIHZlcnNpb24sIGFtb3VudFR5cGUpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbi8qKiBAZGVwcmVjYXRlZCAtIHVzZSBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIgaW5zdGVhZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleChcbiAgaGV4OiBzdHJpbmcsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHA6IHsgYW1vdW50VHlwZTogJ2JpZ2ludCcgfVxuKTogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD47XG4vKiogQGRlcHJlY2F0ZWQgLSB1c2UgY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyIGluc3RlYWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoaGV4OiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmssIHA6IHsgYW1vdW50VHlwZTogJ251bWJlcicgfSk6IFV0eG9UcmFuc2FjdGlvbjtcbi8qKiBAZGVwcmVjYXRlZCAtIHVzZSBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIgaW5zdGVhZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgaGV4OiBzdHJpbmcsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHA/OiB7IGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnIH0gfCAnbnVtYmVyJyB8ICdiaWdpbnQnXG4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBoZXg6IHN0cmluZyxcbiAgbmV0d29yazogTmV0d29yayxcbiAgcD86IHsgYW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCcgfSB8ICdudW1iZXInIHwgJ2JpZ2ludCdcbik6IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gIGlmICh0eXBlb2YgcCA9PT0gJ3N0cmluZycpIHtcbiAgICBwID0geyBhbW91bnRUeXBlOiBwIH07XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyPihCdWZmZXIuZnJvbShoZXgsICdoZXgnKSwgbmV0d29yaywgcCk7XG59XG5cbi8qKlxuICogQHBhcmFtIGJ1ZiAtIG11c3Qgc3RhcnQgd2l0aCB0aGUgUFNCVCBtYWdpYyBieXRlc1xuICogQHBhcmFtIG5ldHdvcmtcbiAqIEBwYXJhbSBiaXAzMlBhdGhzQWJzb2x1dGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tQnVmZmVyKGJ1ZjogQnVmZmVyLCBuZXR3b3JrOiBOZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgPSBmYWxzZSk6IFV0eG9Qc2J0IHtcbiAgaWYgKCFpc1BzYnQoYnVmKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBwc2J0IChkb2VzIG5vdCBzdGFydCB3aXRoICdwc2J0JyBtYWdpYyBieXRlcylgKTtcbiAgfVxuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvUHNidC5mcm9tQnVmZmVyKGJ1ZiwgeyBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgfSk7XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBMaXRlY29pblBzYnQuZnJvbUJ1ZmZlcihidWYsIHsgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlIH0pO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoUHNidC5mcm9tQnVmZmVyKGJ1ZiwgeyBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgfSk7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFBzYnQuZnJvbUJ1ZmZlcihidWYsIHsgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlIH0pO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbn1cblxuLyoqXG4gKiBMaWtlIGNyZWF0ZVBzYnRGcm9tQnVmZmVyLCBidXQgYXR0ZW1wdHMgaGV4IGFuZCBiYXNlNjQgZGVjb2RpbmcgYXMgd2VsbC5cbiAqXG4gKiBAcGFyYW0gYnVmXG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHBhcmFtIGJpcDMyUGF0aHNBYnNvbHV0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidERlY29kZShidWY6IEJ1ZmZlciB8IHN0cmluZywgbmV0d29yazogTmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlID0gZmFsc2UpOiBVdHhvUHNidCB7XG4gIHJldHVybiBjcmVhdGVQc2J0RnJvbUJ1ZmZlcih0b1BzYnRCdWZmZXIoYnVmKSwgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tSGV4KGhleDogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgPSBmYWxzZSk6IFV0eG9Qc2J0IHtcbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpLCBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21UcmFuc2FjdGlvbih0eDogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sIHByZXZPdXRzOiBUeE91dHB1dDxiaWdpbnQ+W10pOiBVdHhvUHNidCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldCh0eC5uZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5kb2dlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgcmV0dXJuIFV0eG9Qc2J0LmZyb21UcmFuc2FjdGlvbih0eCwgcHJldk91dHMpO1xuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46XG4gICAgICByZXR1cm4gTGl0ZWNvaW5Qc2J0LmZyb21UcmFuc2FjdGlvbih0eCwgcHJldk91dHMpO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoUHNidC5mcm9tVHJhbnNhY3Rpb24odHgsIHByZXZPdXRzKTtcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFpjYXNoUHNidC5mcm9tVHJhbnNhY3Rpb24odHgsIHByZXZPdXRzKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0VHJhbnNhY3Rpb25WZXJzaW9uKG5ldHdvcms6IE5ldHdvcmspOiBudW1iZXIge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiAyO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU1O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gMTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VHJhbnNhY3Rpb25CdWlsZGVyRGVmYXVsdHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4YjogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPixcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uID0gZ2V0RGVmYXVsdFRyYW5zYWN0aW9uVmVyc2lvbihuZXR3b3JrKSB9OiB7IHZlcnNpb24/OiBudW1iZXIgfSA9IHt9XG4pOiB2b2lkIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZWNhc2g6XG4gICAgICBpZiAodmVyc2lvbiAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbmApO1xuICAgICAgfVxuICAgICAgdHhiLnNldFZlcnNpb24odmVyc2lvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgKHR4YiBhcyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPikuc2V0RGVmYXVsdHNGb3JWZXJzaW9uKG5ldHdvcmssIHZlcnNpb24pO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh2ZXJzaW9uICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCB2ZXJzaW9uYCk7XG4gICAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFBzYnREZWZhdWx0cyhcbiAgcHNidDogVXR4b1BzYnQsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHsgdmVyc2lvbiA9IGdldERlZmF1bHRUcmFuc2FjdGlvblZlcnNpb24obmV0d29yaykgfTogeyB2ZXJzaW9uPzogbnVtYmVyIH0gPSB7fVxuKTogdm9pZCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgaWYgKHZlcnNpb24gIT09IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb25gKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICBpZiAoXG4gICAgICAgICFbXG4gICAgICAgICAgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfQ0FOT1BZLFxuICAgICAgICAgIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX05VNSxcbiAgICAgICAgICBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTUsXG4gICAgICAgIF0uaW5jbHVkZXModmVyc2lvbilcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbmApO1xuICAgICAgfVxuICAgICAgKHBzYnQgYXMgWmNhc2hQc2J0KS5zZXREZWZhdWx0c0ZvclZlcnNpb24obmV0d29yaywgdmVyc2lvbik7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb25gKTtcbiAgICAgIH1cbiAgICAgIC8vIEZJWE1FOiBzZXQgdmVyc2lvbiBoZXJlLCBiZWNhdXNlIHRoZXJlJ3MgYSBidWcgaW4gdGhlIHVwc3RyZWFtIFBTQlRcbiAgICAgIC8vIHRoYXQgZGVmYXVsdHMgdHJhbnNhY3Rpb25zIHRvIHYyLlxuICAgICAgcHNidC5zZXRWZXJzaW9uKHZlcnNpb24pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yTmV0d29yayhwc2J0T3B0czogUHNidE9wdHMsIHsgdmVyc2lvbiB9OiB7IHZlcnNpb24/OiBudW1iZXIgfSA9IHt9KTogVXR4b1BzYnQge1xuICBsZXQgcHNidDtcblxuICBzd2l0Y2ggKGdldE1haW5uZXQocHNidE9wdHMubmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDoge1xuICAgICAgcHNidCA9IFV0eG9Qc2J0LmNyZWF0ZVBzYnQocHNidE9wdHMpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46IHtcbiAgICAgIHBzYnQgPSBMaXRlY29pblBzYnQuY3JlYXRlUHNidChwc2J0T3B0cyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOiB7XG4gICAgICBwc2J0ID0gRGFzaFBzYnQuY3JlYXRlUHNidChwc2J0T3B0cyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgcHNidCA9IFpjYXNoUHNidC5jcmVhdGVQc2J0KHBzYnRPcHRzKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cblxuICBzZXRQc2J0RGVmYXVsdHMocHNidCwgcHNidE9wdHMubmV0d29yaywgeyB2ZXJzaW9uIH0pO1xuXG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRm9yTmV0d29yazxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uIH06IHsgdmVyc2lvbj86IG51bWJlciB9ID0ge31cbik6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBsZXQgdHhiO1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDoge1xuICAgICAgdHhiID0gbmV3IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4obmV0d29yayk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjoge1xuICAgICAgdHhiID0gbmV3IExpdGVjb2luVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHR4YiA9IG5ldyBEYXNoVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgdHhiID0gbmV3IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cblxuICBzZXRUcmFuc2FjdGlvbkJ1aWxkZXJEZWZhdWx0czxUTnVtYmVyPih0eGIsIG5ldHdvcmssIHsgdmVyc2lvbiB9KTtcblxuICByZXR1cm4gdHhiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRnJvbVRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBwcmV2T3V0cHV0cz86IFR4T3V0cHV0PFROdW1iZXI+W11cbik6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBzd2l0Y2ggKGdldE1haW5uZXQodHgubmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLmZyb21UcmFuc2FjdGlvbjxUTnVtYmVyPih0eCwgdW5kZWZpbmVkLCBwcmV2T3V0cHV0cyk7XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBMaXRlY29pblRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgICAgIHR4IGFzIExpdGVjb2luVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcHJldk91dHB1dHMgYXMgVHhPdXRwdXQ8VE51bWJlcj5bXVxuICAgICAgKTtcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICByZXR1cm4gRGFzaFRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgICAgIHR4IGFzIERhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBwcmV2T3V0cHV0cyBhcyBUeE91dHB1dDxUTnVtYmVyPltdXG4gICAgICApO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIuZnJvbVRyYW5zYWN0aW9uPFROdW1iZXI+KFxuICAgICAgICB0eCBhcyBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+LFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHByZXZPdXRwdXRzIGFzIFR4T3V0cHV0PFROdW1iZXI+W11cbiAgICAgICk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UtxoPsbt } from './UtxoPsbt';
|
|
2
|
+
export declare function getTransactionAmountsFromPsbt(psbt: UtxoPsbt): {
|
|
3
|
+
inputCount: number;
|
|
4
|
+
outputCount: number;
|
|
5
|
+
inputAmount: bigint;
|
|
6
|
+
outputAmount: bigint;
|
|
7
|
+
fee: bigint;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=transactionAmounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionAmounts.d.ts","sourceRoot":"","sources":["../../../src/bitgo/transactionAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,QAAQ,GAAG;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb,CA2BA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTransactionAmountsFromPsbt = void 0;
|
|
4
|
+
const transaction_1 = require("./transaction");
|
|
5
|
+
function getTransactionAmountsFromPsbt(psbt) {
|
|
6
|
+
const inputCount = psbt.data.inputs.length;
|
|
7
|
+
const outputCount = psbt.data.outputs.length;
|
|
8
|
+
const txInputs = psbt.txInputs;
|
|
9
|
+
const txOutputs = psbt.txOutputs;
|
|
10
|
+
const inputAmount = psbt.data.inputs.reduce((acc, input, inputIndex) => {
|
|
11
|
+
if (input.witnessUtxo) {
|
|
12
|
+
return acc + BigInt(input.witnessUtxo.value);
|
|
13
|
+
}
|
|
14
|
+
else if (input.nonWitnessUtxo) {
|
|
15
|
+
const tx = (0, transaction_1.createTransactionFromBuffer)(input.nonWitnessUtxo, psbt.network, { amountType: 'bigint' });
|
|
16
|
+
return acc + tx.outs[txInputs[inputIndex].index].value;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
throw new Error('missing witnessUtxo and nonWitnessUtxo');
|
|
20
|
+
}
|
|
21
|
+
}, BigInt(0));
|
|
22
|
+
const outputAmount = psbt.data.outputs.reduce((acc, output, outputIndex) => acc + txOutputs[outputIndex].value, BigInt(0));
|
|
23
|
+
const fee = inputAmount - outputAmount;
|
|
24
|
+
return {
|
|
25
|
+
inputCount,
|
|
26
|
+
outputCount,
|
|
27
|
+
inputAmount,
|
|
28
|
+
outputAmount,
|
|
29
|
+
fee,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
exports.getTransactionAmountsFromPsbt = getTransactionAmountsFromPsbt;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25BbW91bnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL3RyYW5zYWN0aW9uQW1vdW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBNEQ7QUFFNUQsU0FBZ0IsNkJBQTZCLENBQUMsSUFBYztJQU8xRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO1FBQ3JFLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUNyQixPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QzthQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTtZQUMvQixNQUFNLEVBQUUsR0FBRyxJQUFBLHlDQUEyQixFQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUN4RDthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUMzQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFDaEUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNWLENBQUM7SUFDRixNQUFNLEdBQUcsR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUFDO0lBQ3ZDLE9BQU87UUFDTCxVQUFVO1FBQ1YsV0FBVztRQUNYLFdBQVc7UUFDWCxZQUFZO1FBQ1osR0FBRztLQUNKLENBQUM7QUFDSixDQUFDO0FBakNELHNFQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFV0eG9Qc2J0IH0gZnJvbSAnLi9VdHhvUHNidCc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uQW1vdW50c0Zyb21Qc2J0KHBzYnQ6IFV0eG9Qc2J0KToge1xuICBpbnB1dENvdW50OiBudW1iZXI7XG4gIG91dHB1dENvdW50OiBudW1iZXI7XG4gIGlucHV0QW1vdW50OiBiaWdpbnQ7XG4gIG91dHB1dEFtb3VudDogYmlnaW50O1xuICBmZWU6IGJpZ2ludDtcbn0ge1xuICBjb25zdCBpbnB1dENvdW50ID0gcHNidC5kYXRhLmlucHV0cy5sZW5ndGg7XG4gIGNvbnN0IG91dHB1dENvdW50ID0gcHNidC5kYXRhLm91dHB1dHMubGVuZ3RoO1xuICBjb25zdCB0eElucHV0cyA9IHBzYnQudHhJbnB1dHM7XG4gIGNvbnN0IHR4T3V0cHV0cyA9IHBzYnQudHhPdXRwdXRzO1xuICBjb25zdCBpbnB1dEFtb3VudCA9IHBzYnQuZGF0YS5pbnB1dHMucmVkdWNlKChhY2MsIGlucHV0LCBpbnB1dEluZGV4KSA9PiB7XG4gICAgaWYgKGlucHV0LndpdG5lc3NVdHhvKSB7XG4gICAgICByZXR1cm4gYWNjICsgQmlnSW50KGlucHV0LndpdG5lc3NVdHhvLnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGlucHV0Lm5vbldpdG5lc3NVdHhvKSB7XG4gICAgICBjb25zdCB0eCA9IGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcihpbnB1dC5ub25XaXRuZXNzVXR4bywgcHNidC5uZXR3b3JrLCB7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH0pO1xuICAgICAgcmV0dXJuIGFjYyArIHR4Lm91dHNbdHhJbnB1dHNbaW5wdXRJbmRleF0uaW5kZXhdLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3Npbmcgd2l0bmVzc1V0eG8gYW5kIG5vbldpdG5lc3NVdHhvJyk7XG4gICAgfVxuICB9LCBCaWdJbnQoMCkpO1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSBwc2J0LmRhdGEub3V0cHV0cy5yZWR1Y2UoXG4gICAgKGFjYywgb3V0cHV0LCBvdXRwdXRJbmRleCkgPT4gYWNjICsgdHhPdXRwdXRzW291dHB1dEluZGV4XS52YWx1ZSxcbiAgICBCaWdJbnQoMClcbiAgKTtcbiAgY29uc3QgZmVlID0gaW5wdXRBbW91bnQgLSBvdXRwdXRBbW91bnQ7XG4gIHJldHVybiB7XG4gICAgaW5wdXRDb3VudCxcbiAgICBvdXRwdXRDb3VudCxcbiAgICBpbnB1dEFtb3VudCxcbiAgICBvdXRwdXRBbW91bnQsXG4gICAgZmVlLFxuICB9O1xufVxuIl19
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { TapLeafScript } from 'bip174/src/lib/interfaces';
|
|
2
3
|
export { TapLeafScript };
|
|
3
|
-
export
|
|
4
|
+
export type Tuple<T> = [T, T];
|
|
4
5
|
export declare function isTuple<T>(arr: T[]): arr is Tuple<T>;
|
|
5
|
-
export
|
|
6
|
+
export type Triple<T> = [T, T, T];
|
|
6
7
|
export declare function isTriple<T>(arr: T[]): arr is Triple<T>;
|
|
8
|
+
/**
|
|
9
|
+
* Checks if the given value is an array of Buffer objects.
|
|
10
|
+
* @param v - The value to check.
|
|
11
|
+
* @returns A boolean indicating whether v is an array of Buffer objects.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isBufferArray(v: unknown): v is Buffer[];
|
|
7
14
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/bitgo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/bitgo/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9B,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAEpD;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAElC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,EAAE,CAEvD"}
|
package/dist/src/bitgo/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isTriple = exports.isTuple = void 0;
|
|
3
|
+
exports.isBufferArray = exports.isTriple = exports.isTuple = void 0;
|
|
4
4
|
function isTuple(arr) {
|
|
5
5
|
return arr.length === 2;
|
|
6
6
|
}
|
|
@@ -9,4 +9,13 @@ function isTriple(arr) {
|
|
|
9
9
|
return arr.length === 3;
|
|
10
10
|
}
|
|
11
11
|
exports.isTriple = isTriple;
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Checks if the given value is an array of Buffer objects.
|
|
14
|
+
* @param v - The value to check.
|
|
15
|
+
* @returns A boolean indicating whether v is an array of Buffer objects.
|
|
16
|
+
*/
|
|
17
|
+
function isBufferArray(v) {
|
|
18
|
+
return Array.isArray(v) && v.every((e) => Buffer.isBuffer(e));
|
|
19
|
+
}
|
|
20
|
+
exports.isBufferArray = isBufferArray;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsU0FBZ0IsT0FBTyxDQUFJLEdBQVE7SUFDakMsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRkQsMEJBRUM7QUFJRCxTQUFnQixRQUFRLENBQUksR0FBUTtJQUNsQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFGRCw0QkFFQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixhQUFhLENBQUMsQ0FBVTtJQUN0QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFGRCxzQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhcExlYWZTY3JpcHQgfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9pbnRlcmZhY2VzJztcbmV4cG9ydCB7IFRhcExlYWZTY3JpcHQgfTtcblxuZXhwb3J0IHR5cGUgVHVwbGU8VD4gPSBbVCwgVF07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R1cGxlPFQ+KGFycjogVFtdKTogYXJyIGlzIFR1cGxlPFQ+IHtcbiAgcmV0dXJuIGFyci5sZW5ndGggPT09IDI7XG59XG5cbmV4cG9ydCB0eXBlIFRyaXBsZTxUPiA9IFtULCBULCBUXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVHJpcGxlPFQ+KGFycjogVFtdKTogYXJyIGlzIFRyaXBsZTxUPiB7XG4gIHJldHVybiBhcnIubGVuZ3RoID09PSAzO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gYXJyYXkgb2YgQnVmZmVyIG9iamVjdHMuXG4gKiBAcGFyYW0gdiAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdiBpcyBhbiBhcnJheSBvZiBCdWZmZXIgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQnVmZmVyQXJyYXkodjogdW5rbm93bik6IHYgaXMgQnVmZmVyW10ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2KSAmJiB2LmV2ZXJ5KChlKSA9PiBCdWZmZXIuaXNCdWZmZXIoZSkpO1xufVxuIl19
|
|
@@ -3,55 +3,56 @@ import { PsbtInput } from 'bip174/src/lib/interfaces';
|
|
|
3
3
|
import { BIP32Interface } from 'bip32';
|
|
4
4
|
import { UtxoPsbt } from '../UtxoPsbt';
|
|
5
5
|
import { UtxoTransaction } from '../UtxoTransaction';
|
|
6
|
+
import { ScriptType2Of3 } from '../outputScripts';
|
|
6
7
|
import { RootWalletKeys } from './WalletKeys';
|
|
7
8
|
import { WalletUnspent } from './Unspent';
|
|
8
|
-
import { ParsedPubScriptP2ms, ParsedPubScriptTaprootScriptPath, ParsedPubScriptTaprootKeyPath, ParsedPubScriptP2shP2pk, ParsedScriptType } from '../parseInput';
|
|
9
|
+
import { ParsedPubScriptP2ms, ParsedPubScriptTaprootScriptPath, ParsedPubScriptTaprootKeyPath, ParsedPubScriptP2shP2pk, ParsedScriptType, ParsedScriptType2Of3 } from '../parseInput';
|
|
9
10
|
import { Triple } from '../types';
|
|
10
11
|
import { TxInput } from 'bitcoinjs-lib';
|
|
11
|
-
|
|
12
|
+
type BaseSignatureContainer<T> = {
|
|
12
13
|
signatures: T;
|
|
13
14
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
type UnsignedSignatureContainer = BaseSignatureContainer<undefined>;
|
|
16
|
+
type HalfSignedSignatureContainer = BaseSignatureContainer<[Buffer]>;
|
|
17
|
+
type FullSignedSignatureContainer = BaseSignatureContainer<[Buffer, Buffer]>;
|
|
18
|
+
type SignatureContainer = UnsignedSignatureContainer | HalfSignedSignatureContainer | FullSignedSignatureContainer;
|
|
18
19
|
/**
|
|
19
20
|
* Contents of a pre-finalized PSBT Input for p2trMusig2 key path in the non-finalized state.
|
|
20
21
|
* T is [Buffer] for first signature, [Buffer, Buffer] for both signatures and `undefined` for no signatures.
|
|
21
22
|
*/
|
|
22
|
-
|
|
23
|
+
type BaseTaprootKeyPathSignatureContainer<T> = {
|
|
23
24
|
signatures: T;
|
|
24
25
|
/** Only contains participants that have added a signature */
|
|
25
26
|
participantPublicKeys: T;
|
|
26
27
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
type UnsignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<undefined>;
|
|
29
|
+
type HalfSignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<[Buffer]>;
|
|
30
|
+
type FullSignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<[Buffer, Buffer]>;
|
|
31
|
+
type TaprootKeyPathSignatureContainer = UnsignedTaprootKeyPathSignatureContainer | HalfSignedTaprootKeyPathSignatureContainer | FullSignedTaprootKeyPathSignatureContainer;
|
|
31
32
|
/**
|
|
32
33
|
* To hold parsed psbt data for p2ms based script types - p2sh, p2wsh, and p2shP2wsh
|
|
33
34
|
*/
|
|
34
|
-
export
|
|
35
|
+
export type ParsedPsbtP2ms = ParsedPubScriptP2ms & SignatureContainer;
|
|
35
36
|
/**
|
|
36
37
|
* To hold parsed psbt data for TaprootKeyPathSpend script type.
|
|
37
38
|
*/
|
|
38
|
-
export
|
|
39
|
+
export type ParsedPsbtTaprootKeyPath = ParsedPubScriptTaprootKeyPath & TaprootKeyPathSignatureContainer;
|
|
39
40
|
/**
|
|
40
41
|
* To hold parsed psbt data for TaprootScriptPathSpend script path script type.
|
|
41
42
|
*/
|
|
42
|
-
export
|
|
43
|
+
export type ParsedPsbtTaprootScriptPath = ParsedPubScriptTaprootScriptPath & SignatureContainer & {
|
|
43
44
|
controlBlock: Buffer;
|
|
44
45
|
leafVersion: number;
|
|
45
46
|
/** Indicates the level inside the taptree. */
|
|
46
47
|
scriptPathLevel: number;
|
|
47
48
|
};
|
|
48
|
-
export
|
|
49
|
-
|
|
50
|
-
export
|
|
49
|
+
export type ParsedPsbtTaproot = ParsedPsbtTaprootKeyPath | ParsedPsbtTaprootScriptPath;
|
|
50
|
+
type P2shP2pkSignatureContainer = UnsignedSignatureContainer | HalfSignedSignatureContainer;
|
|
51
|
+
export type ParsedPsbtP2shP2pk = ParsedPubScriptP2shP2pk & P2shP2pkSignatureContainer;
|
|
51
52
|
/**
|
|
52
53
|
* psbt input index and its user, backup, bitgo signatures status
|
|
53
54
|
*/
|
|
54
|
-
export
|
|
55
|
+
export type SignatureValidation = [index: number, sigTriple: Triple<boolean>];
|
|
55
56
|
/**
|
|
56
57
|
* @return PSBT filled with metatdata as per input params tx, unspents and rootWalletKeys.
|
|
57
58
|
* Unsigned PSBT for taproot input with witnessUtxo
|
|
@@ -86,6 +87,12 @@ export declare function getPsbtInputScriptType(input: PsbtInput): ParsedScriptTy
|
|
|
86
87
|
* public key (tapOutputkey), signatures (partial signer sigs).
|
|
87
88
|
*/
|
|
88
89
|
export declare function parsePsbtInput(input: PsbtInput): ParsedPsbtP2ms | ParsedPsbtTaproot | ParsedPsbtP2shP2pk;
|
|
90
|
+
/**
|
|
91
|
+
* Converts a parsed script type into an array of script types.
|
|
92
|
+
* @param parsedScriptType - The parsed script type.
|
|
93
|
+
* @returns An array of ScriptType2Of3 values corresponding to the parsed script type.
|
|
94
|
+
*/
|
|
95
|
+
export declare function toScriptType2Of3s(parsedScriptType: ParsedScriptType2Of3): ScriptType2Of3[];
|
|
89
96
|
/**
|
|
90
97
|
* @returns strictly parse the input and get signature count.
|
|
91
98
|
* unsigned(0), half-signed(1) or fully-signed(2)
|
|
@@ -121,5 +128,28 @@ export declare function addXpubsToPsbt(psbt: UtxoPsbt, rootWalletKeys: RootWalle
|
|
|
121
128
|
* For p2shP2pk input, [false, false, false] is returned since it is not a 2 of 3 sig input.
|
|
122
129
|
*/
|
|
123
130
|
export declare function getSignatureValidationArrayPsbt(psbt: UtxoPsbt, rootWalletKeys: RootWalletKeys): SignatureValidation[];
|
|
131
|
+
/**
|
|
132
|
+
* Extracts the half signed transaction from the psbt for p2ms based script types - p2sh, p2wsh, and p2shP2wsh.
|
|
133
|
+
* The purpose is to provide backward compatibility to keyternal (KRS) that only supports network transaction and p2ms script types.
|
|
134
|
+
*/
|
|
135
|
+
export declare function extractP2msOnlyHalfSignedTx(psbt: UtxoPsbt): UtxoTransaction<bigint>;
|
|
136
|
+
/**
|
|
137
|
+
* Clones the psbt without nonWitnessUtxo for non-segwit inputs and witnessUtxo is added instead.
|
|
138
|
+
* It is not BIP-174 compliant, so use it carefully.
|
|
139
|
+
*/
|
|
140
|
+
export declare function clonePsbtWithoutNonWitnessUtxo(psbt: UtxoPsbt): UtxoPsbt;
|
|
141
|
+
/**
|
|
142
|
+
* Returns true if there are non-segwit inputs in the PSBT that do not contain the
|
|
143
|
+
* nonWitnessUtxo.
|
|
144
|
+
*
|
|
145
|
+
* isPsbtLite(clonePsbtWithoutNonWitnessUtxo(psbt)) === true
|
|
146
|
+
*
|
|
147
|
+
* @param psbt
|
|
148
|
+
*/
|
|
149
|
+
export declare function isPsbtLite(psbt: UtxoPsbt): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Deletes witnessUtxo for non-segwit inputs to make the PSBT BIP-174 compliant.
|
|
152
|
+
*/
|
|
153
|
+
export declare function deleteWitnessUtxoForNonSegwitInputs(psbt: UtxoPsbt): void;
|
|
124
154
|
export {};
|
|
125
155
|
//# sourceMappingURL=Psbt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Psbt.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/Psbt.ts"],"names":[],"mappings":";AAEA,OAAO,EAA0B,SAAS,EAAgB,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Psbt.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/Psbt.ts"],"names":[],"mappings":"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"}
|