@bitgo-beta/utxo-ord 1.0.1-beta.2 → 1.0.1-beta.21
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/inscriptions.d.ts +25 -2
- package/dist/src/inscriptions.d.ts.map +1 -1
- package/dist/src/inscriptions.js +119 -8
- package/dist/src/psbt.d.ts +5 -1
- package/dist/src/psbt.d.ts.map +1 -1
- package/dist/src/psbt.js +8 -3
- package/dist/tsconfig.tsbuildinfo +3816 -89
- package/package.json +7 -4
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import { Network } from '@bitgo-beta/utxo-lib';
|
|
3
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
4
|
+
import { PreparedInscriptionRevealData } from '@bitgo-beta/sdk-core';
|
|
2
5
|
/**
|
|
3
|
-
* @param
|
|
6
|
+
* @param pubkey
|
|
7
|
+
* @param contentType
|
|
8
|
+
* @param inscriptionData
|
|
9
|
+
* @param network
|
|
10
|
+
* @returns PreparedInscriptionRevealData
|
|
11
|
+
*/
|
|
12
|
+
export declare function createInscriptionRevealData(pubkey: Buffer, contentType: string, inscriptionData: Buffer, network: Network): PreparedInscriptionRevealData;
|
|
13
|
+
/**
|
|
14
|
+
* @param pubkey
|
|
4
15
|
* @param contentType
|
|
5
16
|
* @param inscriptionData
|
|
6
17
|
* @returns inscription address
|
|
7
18
|
*/
|
|
8
|
-
export declare function createOutputScriptForInscription(
|
|
19
|
+
export declare function createOutputScriptForInscription(pubkey: Buffer, contentType: string, inscriptionData: Buffer): Buffer;
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param privateKey
|
|
23
|
+
* @param tapLeafScript
|
|
24
|
+
* @param commitAddress
|
|
25
|
+
* @param recipientAddress
|
|
26
|
+
* @param unsignedCommitTx
|
|
27
|
+
* @param network
|
|
28
|
+
*
|
|
29
|
+
* @return a fully signed reveal transaction
|
|
30
|
+
*/
|
|
31
|
+
export declare function signRevealTransaction(privateKey: Buffer, tapLeafScript: utxolib.bitgo.TapLeafScript, commitAddress: string, recipientAddress: string, unsignedCommitTx: Buffer, network: Network): utxolib.bitgo.UtxoPsbt;
|
|
9
32
|
//# sourceMappingURL=inscriptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inscriptions.d.ts","sourceRoot":"","sources":["../../src/inscriptions.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"inscriptions.d.ts","sourceRoot":"","sources":["../../src/inscriptions.ts"],"names":[],"mappings":";AAOA,OAAO,EAKL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAoGrE;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,OAAO,GACf,6BAA6B,CAuB/B;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAKrH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAC1C,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,KAAK,CAAC,QAAQ,CA2BxB"}
|
package/dist/src/inscriptions.js
CHANGED
|
@@ -5,9 +5,10 @@ Functions for dealing with inscriptions.
|
|
|
5
5
|
See https://docs.ordinals.com/inscriptions.html
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.createOutputScriptForInscription = void 0;
|
|
8
|
+
exports.signRevealTransaction = exports.createOutputScriptForInscription = exports.createInscriptionRevealData = void 0;
|
|
9
9
|
const assert = require("assert");
|
|
10
10
|
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
11
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
11
12
|
const OPS = utxo_lib_1.script.OPS;
|
|
12
13
|
const MAX_LENGTH_TAP_DATA_PUSH = 520;
|
|
13
14
|
/**
|
|
@@ -25,15 +26,16 @@ function splitBuffer(inscriptionData, chunkSize) {
|
|
|
25
26
|
return pushDataBuffers;
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
28
|
-
*
|
|
29
|
+
*
|
|
30
|
+
* @returns inscription payment object
|
|
31
|
+
* @param pubkey
|
|
29
32
|
* @param contentType
|
|
30
33
|
* @param inscriptionData
|
|
31
|
-
* @returns inscription address
|
|
32
34
|
*/
|
|
33
|
-
function
|
|
35
|
+
function createPaymentForInscription(pubkey, contentType, inscriptionData) {
|
|
34
36
|
const dataPushBuffers = splitBuffer(inscriptionData, MAX_LENGTH_TAP_DATA_PUSH);
|
|
35
37
|
const uncompiledScript = [
|
|
36
|
-
|
|
38
|
+
pubkey,
|
|
37
39
|
OPS.OP_CHECKSIG,
|
|
38
40
|
OPS.OP_FALSE,
|
|
39
41
|
OPS.OP_IF,
|
|
@@ -42,16 +44,125 @@ function createOutputScriptForInscription(userPubkey, contentType, inscriptionDa
|
|
|
42
44
|
Buffer.from(contentType, 'ascii'),
|
|
43
45
|
OPS.OP_0,
|
|
44
46
|
...dataPushBuffers,
|
|
45
|
-
OPS.
|
|
47
|
+
OPS.OP_ENDIF,
|
|
46
48
|
];
|
|
47
49
|
const compiledScript = utxo_lib_1.script.compile(uncompiledScript);
|
|
48
50
|
const redeem = {
|
|
49
51
|
output: compiledScript,
|
|
50
52
|
depth: 0,
|
|
51
53
|
};
|
|
52
|
-
|
|
54
|
+
return utxo_lib_1.p2trPayments.p2tr({ redeems: [redeem], redeemIndex: 0 }, { eccLib: utxo_lib_1.ecc });
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @param payment
|
|
58
|
+
* @param controlBlock
|
|
59
|
+
* @param commitOutput
|
|
60
|
+
* @param network
|
|
61
|
+
* @return virtual size of a transaction with a single inscription reveal input and a single commitOutput
|
|
62
|
+
*/
|
|
63
|
+
function getInscriptionRevealSize(payment, controlBlock, commitOutput, network) {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network });
|
|
66
|
+
const parsedControlBlock = utxo_lib_1.taproot.parseControlBlock(utxo_lib_1.ecc, controlBlock);
|
|
67
|
+
const leafHash = utxo_lib_1.taproot.getTapleafHash(utxo_lib_1.ecc, parsedControlBlock, (_a = payment.redeem) === null || _a === void 0 ? void 0 : _a.output);
|
|
68
|
+
psbt.addInput({
|
|
69
|
+
hash: Buffer.alloc(32),
|
|
70
|
+
index: 0,
|
|
71
|
+
witnessUtxo: { script: commitOutput, value: BigInt(100000) },
|
|
72
|
+
tapLeafScript: [
|
|
73
|
+
{
|
|
74
|
+
controlBlock,
|
|
75
|
+
script: (_b = payment.redeem) === null || _b === void 0 ? void 0 : _b.output,
|
|
76
|
+
leafVersion: utxo_lib_1.taproot.INITIAL_TAPSCRIPT_VERSION,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
});
|
|
80
|
+
psbt.addOutput({ script: commitOutput, value: BigInt(10000) });
|
|
81
|
+
psbt.signTaprootInput(0, {
|
|
82
|
+
publicKey: Buffer.alloc(32),
|
|
83
|
+
signSchnorr(hash) {
|
|
84
|
+
// dummy schnorr-sized signature
|
|
85
|
+
return Buffer.alloc(64);
|
|
86
|
+
},
|
|
87
|
+
}, [leafHash]);
|
|
88
|
+
psbt.finalizeTapInputWithSingleLeafScriptAndSignature(0);
|
|
89
|
+
return psbt.extractTransaction(/* disableFeeCheck */ true).virtualSize();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @param pubkey
|
|
93
|
+
* @param contentType
|
|
94
|
+
* @param inscriptionData
|
|
95
|
+
* @param network
|
|
96
|
+
* @returns PreparedInscriptionRevealData
|
|
97
|
+
*/
|
|
98
|
+
function createInscriptionRevealData(pubkey, contentType, inscriptionData, network) {
|
|
99
|
+
var _a, _b;
|
|
100
|
+
const payment = createPaymentForInscription(pubkey, contentType, inscriptionData);
|
|
101
|
+
const { output: commitOutput, controlBlock } = payment;
|
|
102
|
+
assert(commitOutput);
|
|
103
|
+
assert(controlBlock);
|
|
104
|
+
assert((_a = payment.redeem) === null || _a === void 0 ? void 0 : _a.output);
|
|
105
|
+
const commitAddress = utxo_lib_1.address.fromOutputScript(commitOutput, network);
|
|
106
|
+
const tapLeafScript = [
|
|
107
|
+
{
|
|
108
|
+
controlBlock,
|
|
109
|
+
script: (_b = payment.redeem) === null || _b === void 0 ? void 0 : _b.output,
|
|
110
|
+
leafVersion: utxo_lib_1.taproot.INITIAL_TAPSCRIPT_VERSION,
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
const revealTransactionVSize = getInscriptionRevealSize(payment, controlBlock, commitOutput, network);
|
|
114
|
+
return {
|
|
115
|
+
address: commitAddress,
|
|
116
|
+
revealTransactionVSize,
|
|
117
|
+
tapLeafScript: tapLeafScript[0],
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
exports.createInscriptionRevealData = createInscriptionRevealData;
|
|
121
|
+
/**
|
|
122
|
+
* @param pubkey
|
|
123
|
+
* @param contentType
|
|
124
|
+
* @param inscriptionData
|
|
125
|
+
* @returns inscription address
|
|
126
|
+
*/
|
|
127
|
+
function createOutputScriptForInscription(pubkey, contentType, inscriptionData) {
|
|
128
|
+
const payment = createPaymentForInscription(pubkey, contentType, inscriptionData);
|
|
53
129
|
assert(payment.output, 'Failed to create inscription output script');
|
|
54
130
|
return payment.output;
|
|
55
131
|
}
|
|
56
132
|
exports.createOutputScriptForInscription = createOutputScriptForInscription;
|
|
57
|
-
|
|
133
|
+
/**
|
|
134
|
+
*
|
|
135
|
+
* @param privateKey
|
|
136
|
+
* @param tapLeafScript
|
|
137
|
+
* @param commitAddress
|
|
138
|
+
* @param recipientAddress
|
|
139
|
+
* @param unsignedCommitTx
|
|
140
|
+
* @param network
|
|
141
|
+
*
|
|
142
|
+
* @return a fully signed reveal transaction
|
|
143
|
+
*/
|
|
144
|
+
function signRevealTransaction(privateKey, tapLeafScript, commitAddress, recipientAddress, unsignedCommitTx, network) {
|
|
145
|
+
const unserCommitTxn = utxolib.bitgo.createTransactionFromBuffer(unsignedCommitTx, network);
|
|
146
|
+
const hash = unserCommitTxn.getHash();
|
|
147
|
+
const commitOutput = utxolib.address.toOutputScript(commitAddress, network);
|
|
148
|
+
const vout = unserCommitTxn.outs.findIndex((out) => out.script.equals(commitOutput));
|
|
149
|
+
if (vout === -1) {
|
|
150
|
+
throw new Error('Invalid commit transaction');
|
|
151
|
+
}
|
|
152
|
+
const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network });
|
|
153
|
+
psbt.addInput({
|
|
154
|
+
hash,
|
|
155
|
+
index: vout,
|
|
156
|
+
witnessUtxo: { script: commitOutput, value: BigInt(unserCommitTxn.outs[vout].value) },
|
|
157
|
+
tapLeafScript: [tapLeafScript],
|
|
158
|
+
});
|
|
159
|
+
const recipientOutput = utxo_lib_1.address.toOutputScript(recipientAddress, network);
|
|
160
|
+
psbt.addOutput({ script: recipientOutput, value: BigInt(10000) });
|
|
161
|
+
const signer = utxo_lib_1.ECPair.fromPrivateKey(privateKey);
|
|
162
|
+
const parsedControlBlock = utxo_lib_1.taproot.parseControlBlock(utxo_lib_1.ecc, tapLeafScript.controlBlock);
|
|
163
|
+
const leafHash = utxo_lib_1.taproot.getTapleafHash(utxo_lib_1.ecc, parsedControlBlock, tapLeafScript.script);
|
|
164
|
+
psbt.signTaprootInput(0, signer, [leafHash]);
|
|
165
|
+
return psbt;
|
|
166
|
+
}
|
|
167
|
+
exports.signRevealTransaction = signRevealTransaction;
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luc2NyaXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTs7O0FBRUYsaUNBQWlDO0FBQ2pDLG1EQVU4QjtBQUM5QixnREFBZ0Q7QUFHaEQsTUFBTSxHQUFHLEdBQUcsaUJBQU8sQ0FBQyxHQUFHLENBQUM7QUFDeEIsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFckM7Ozs7OztHQU1HO0FBQ0gsU0FBUyxXQUFXLENBQUMsZUFBdUIsRUFBRSxTQUFpQjtJQUM3RCxNQUFNLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRTtRQUMxRCxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQy9EO0lBRUQsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsMkJBQTJCLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsZUFBdUI7SUFDL0YsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sZ0JBQWdCLEdBQUc7UUFDdkIsTUFBTTtRQUNOLEdBQUcsQ0FBQyxXQUFXO1FBQ2YsR0FBRyxDQUFDLFFBQVE7UUFDWixHQUFHLENBQUMsS0FBSztRQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztRQUMzQixHQUFHLENBQUMsSUFBSTtRQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQztRQUNqQyxHQUFHLENBQUMsSUFBSTtRQUNSLEdBQUcsZUFB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SUFFN0MsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBbENELHNEQWtDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5GdW5jdGlvbnMgZm9yIGRlYWxpbmcgd2l0aCBpbnNjcmlwdGlvbnMuXG5cblNlZSBodHRwczovL2RvY3Mub3JkaW5hbHMuY29tL2luc2NyaXB0aW9ucy5odG1sXG4qL1xuXG5pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7XG4gIHAydHJQYXltZW50cyBhcyBwYXltZW50cyxcbiAgZWNjIGFzIGVjY0xpYixcbiAgc2NyaXB0IGFzIGJzY3JpcHQsXG4gIFBheW1lbnQsXG4gIE5ldHdvcmssXG4gIGJpdGdvLFxuICBhZGRyZXNzLFxuICB0YXByb290LFxuICBFQ1BhaXIsXG59IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgUHJlcGFyZWRJbnNjcmlwdGlvblJldmVhbERhdGEgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmNvbnN0IE9QUyA9IGJzY3JpcHQuT1BTO1xuY29uc3QgTUFYX0xFTkdUSF9UQVBfREFUQV9QVVNIID0gNTIwO1xuXG4vKipcbiAqIFRoZSBtYXggc2l6ZSBvZiBhbiBpbmRpdmlkdWFsIE9QX1BVU0ggaW4gYSBUYXByb290IHNjcmlwdCBpcyA1MjAgYnl0ZXMuIFRoaXNcbiAqIGZ1bmN0aW9uIHNwbGl0cyBpbnNjcmlwdGlvbkRhdGEgaW50byBhbiBhcnJheSBidWZmZXIgb2YgNTIwIGJ5dGVzIGxlbmd0aC5cbiAqIGh0dHBzOi8vZG9jcy5vcmRpbmFscy5jb20vaW5zY3JpcHRpb25zLmh0bWxcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbkRhdGFcbiAqIEBwYXJhbSBjaHVua1NpemVcbiAqL1xuZnVuY3Rpb24gc3BsaXRCdWZmZXIoaW5zY3JpcHRpb25EYXRhOiBCdWZmZXIsIGNodW5rU2l6ZTogbnVtYmVyKSB7XG4gIGNvbnN0IHB1c2hEYXRhQnVmZmVyczogQnVmZmVyW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnNjcmlwdGlvbkRhdGEubGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xuICAgIHB1c2hEYXRhQnVmZmVycy5wdXNoKGluc2NyaXB0aW9uRGF0YS5zbGljZShpLCBpICsgY2h1bmtTaXplKSk7XG4gIH1cblxuICByZXR1cm4gcHVzaERhdGFCdWZmZXJzO1xufVxuXG4vKipcbiAqXG4gKiBAcmV0dXJucyBpbnNjcmlwdGlvbiBwYXltZW50IG9iamVjdFxuICogQHBhcmFtIHB1YmtleVxuICogQHBhcmFtIGNvbnRlbnRUeXBlXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVBheW1lbnRGb3JJbnNjcmlwdGlvbihwdWJrZXk6IEJ1ZmZlciwgY29udGVudFR5cGU6IHN0cmluZywgaW5zY3JpcHRpb25EYXRhOiBCdWZmZXIpOiBQYXltZW50IHtcbiAgY29uc3QgZGF0YVB1c2hCdWZmZXJzID0gc3BsaXRCdWZmZXIoaW5zY3JpcHRpb25EYXRhLCBNQVhfTEVOR1RIX1RBUF9EQVRBX1BVU0gpO1xuXG4gIGNvbnN0IHVuY29tcGlsZWRTY3JpcHQgPSBbXG4gICAgcHVia2V5LFxuICAgIE9QUy5PUF9DSEVDS1NJRyxcbiAgICBPUFMuT1BfRkFMU0UsXG4gICAgT1BTLk9QX0lGLFxuICAgIEJ1ZmZlci5mcm9tKCdvcmQnLCAnYXNjaWknKSxcbiAgICBPUFMuT1BfMSxcbiAgICBCdWZmZXIuZnJvbShjb250ZW50VHlwZSwgJ2FzY2lpJyksXG4gICAgT1BTLk9QXzAsXG4gICAgLi4uZGF0YVB1c2hCdWZmZXJzLFxuICAgIE9QUy5PUF9FTkRJRixcbiAgXTtcblxuICBjb25zdCBjb21waWxlZFNjcmlwdCA9IGJzY3JpcHQuY29tcGlsZSh1bmNvbXBpbGVkU2NyaXB0KTtcbiAgY29uc3QgcmVkZWVtOiBQYXltZW50ID0ge1xuICAgIG91dHB1dDogY29tcGlsZWRTY3JpcHQsXG4gICAgZGVwdGg6IDAsXG4gIH07XG5cbiAgcmV0dXJuIHBheW1lbnRzLnAydHIoeyByZWRlZW1zOiBbcmVkZWVtXSwgcmVkZWVtSW5kZXg6IDAgfSwgeyBlY2NMaWIgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHBheW1lbnRcbiAqIEBwYXJhbSBjb250cm9sQmxvY2tcbiAqIEBwYXJhbSBjb21taXRPdXRwdXRcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIHZpcnR1YWwgc2l6ZSBvZiBhIHRyYW5zYWN0aW9uIHdpdGggYSBzaW5nbGUgaW5zY3JpcHRpb24gcmV2ZWFsIGlucHV0IGFuZCBhIHNpbmdsZSBjb21taXRPdXRwdXRcbiAqL1xuZnVuY3Rpb24gZ2V0SW5zY3JpcHRpb25SZXZlYWxTaXplKFxuICBwYXltZW50OiBQYXltZW50LFxuICBjb250cm9sQmxvY2s6IEJ1ZmZlcixcbiAgY29tbWl0T3V0cHV0OiBCdWZmZXIsXG4gIG5ldHdvcms6IE5ldHdvcmtcbik6IG51bWJlciB7XG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIGNvbnN0IHBhcnNlZENvbnRyb2xCbG9jayA9IHRhcHJvb3QucGFyc2VDb250cm9sQmxvY2soZWNjTGliLCBjb250cm9sQmxvY2spO1xuICBjb25zdCBsZWFmSGFzaCA9IHRhcHJvb3QuZ2V0VGFwbGVhZkhhc2goZWNjTGliLCBwYXJzZWRDb250cm9sQmxvY2ssIHBheW1lbnQucmVkZWVtPy5vdXRwdXQgYXMgQnVmZmVyKTtcblxuICBwc2J0LmFkZElucHV0KHtcbiAgICBoYXNoOiBCdWZmZXIuYWxsb2MoMzIpLFxuICAgIGluZGV4OiAwLFxuICAgIHdpdG5lc3NVdHhvOiB7IHNjcmlwdDogY29tbWl0T3V0cHV0LCB2YWx1ZTogQmlnSW50KDEwMF8wMDApIH0sXG4gICAgdGFwTGVhZlNjcmlwdDogW1xuICAgICAge1xuICAgICAgICBjb250cm9sQmxvY2ssXG4gICAgICAgIHNjcmlwdDogcGF5bWVudC5yZWRlZW0/Lm91dHB1dCBhcyBCdWZmZXIsXG4gICAgICAgIGxlYWZWZXJzaW9uOiB0YXByb290LklOSVRJQUxfVEFQU0NSSVBUX1ZFUlNJT04sXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xuICBwc2J0LmFkZE91dHB1dCh7IHNjcmlwdDogY29tbWl0T3V0cHV0LCB2YWx1ZTogQmlnSW50KDEwXzAwMCkgfSk7XG5cbiAgcHNidC5zaWduVGFwcm9vdElucHV0KFxuICAgIDAsXG4gICAge1xuICAgICAgcHVibGljS2V5OiBCdWZmZXIuYWxsb2MoMzIpLFxuICAgICAgc2lnblNjaG5vcnIoaGFzaDogQnVmZmVyKTogQnVmZmVyIHtcbiAgICAgICAgLy8gZHVtbXkgc2Nobm9yci1zaXplZCBzaWduYXR1cmVcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5hbGxvYyg2NCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgW2xlYWZIYXNoXVxuICApO1xuXG4gIHBzYnQuZmluYWxpemVUYXBJbnB1dFdpdGhTaW5nbGVMZWFmU2NyaXB0QW5kU2lnbmF0dXJlKDApO1xuICByZXR1cm4gcHNidC5leHRyYWN0VHJhbnNhY3Rpb24oLyogZGlzYWJsZUZlZUNoZWNrICovIHRydWUpLnZpcnR1YWxTaXplKCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHB1YmtleVxuICogQHBhcmFtIGNvbnRlbnRUeXBlXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHJldHVybnMgUHJlcGFyZWRJbnNjcmlwdGlvblJldmVhbERhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluc2NyaXB0aW9uUmV2ZWFsRGF0YShcbiAgcHVia2V5OiBCdWZmZXIsXG4gIGNvbnRlbnRUeXBlOiBzdHJpbmcsXG4gIGluc2NyaXB0aW9uRGF0YTogQnVmZmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrXG4pOiBQcmVwYXJlZEluc2NyaXB0aW9uUmV2ZWFsRGF0YSB7XG4gIGNvbnN0IHBheW1lbnQgPSBjcmVhdGVQYXltZW50Rm9ySW5zY3JpcHRpb24ocHVia2V5LCBjb250ZW50VHlwZSwgaW5zY3JpcHRpb25EYXRhKTtcblxuICBjb25zdCB7IG91dHB1dDogY29tbWl0T3V0cHV0LCBjb250cm9sQmxvY2sgfSA9IHBheW1lbnQ7XG4gIGFzc2VydChjb21taXRPdXRwdXQpO1xuICBhc3NlcnQoY29udHJvbEJsb2NrKTtcbiAgYXNzZXJ0KHBheW1lbnQucmVkZWVtPy5vdXRwdXQpO1xuICBjb25zdCBjb21taXRBZGRyZXNzID0gYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KGNvbW1pdE91dHB1dCwgbmV0d29yayk7XG5cbiAgY29uc3QgdGFwTGVhZlNjcmlwdDogdXR4b2xpYi5iaXRnby5UYXBMZWFmU2NyaXB0W10gPSBbXG4gICAge1xuICAgICAgY29udHJvbEJsb2NrLFxuICAgICAgc2NyaXB0OiBwYXltZW50LnJlZGVlbT8ub3V0cHV0LFxuICAgICAgbGVhZlZlcnNpb246IHRhcHJvb3QuSU5JVElBTF9UQVBTQ1JJUFRfVkVSU0lPTixcbiAgICB9LFxuICBdO1xuICBjb25zdCByZXZlYWxUcmFuc2FjdGlvblZTaXplID0gZ2V0SW5zY3JpcHRpb25SZXZlYWxTaXplKHBheW1lbnQsIGNvbnRyb2xCbG9jaywgY29tbWl0T3V0cHV0LCBuZXR3b3JrKTtcblxuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IGNvbW1pdEFkZHJlc3MsXG4gICAgcmV2ZWFsVHJhbnNhY3Rpb25WU2l6ZSxcbiAgICB0YXBMZWFmU2NyaXB0OiB0YXBMZWFmU2NyaXB0WzBdLFxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSBwdWJrZXlcbiAqIEBwYXJhbSBjb250ZW50VHlwZVxuICogQHBhcmFtIGluc2NyaXB0aW9uRGF0YVxuICogQHJldHVybnMgaW5zY3JpcHRpb24gYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT3V0cHV0U2NyaXB0Rm9ySW5zY3JpcHRpb24ocHVia2V5OiBCdWZmZXIsIGNvbnRlbnRUeXBlOiBzdHJpbmcsIGluc2NyaXB0aW9uRGF0YTogQnVmZmVyKTogQnVmZmVyIHtcbiAgY29uc3QgcGF5bWVudCA9IGNyZWF0ZVBheW1lbnRGb3JJbnNjcmlwdGlvbihwdWJrZXksIGNvbnRlbnRUeXBlLCBpbnNjcmlwdGlvbkRhdGEpO1xuXG4gIGFzc2VydChwYXltZW50Lm91dHB1dCwgJ0ZhaWxlZCB0byBjcmVhdGUgaW5zY3JpcHRpb24gb3V0cHV0IHNjcmlwdCcpO1xuICByZXR1cm4gcGF5bWVudC5vdXRwdXQ7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBwcml2YXRlS2V5XG4gKiBAcGFyYW0gdGFwTGVhZlNjcmlwdFxuICogQHBhcmFtIGNvbW1pdEFkZHJlc3NcbiAqIEBwYXJhbSByZWNpcGllbnRBZGRyZXNzXG4gKiBAcGFyYW0gdW5zaWduZWRDb21taXRUeFxuICogQHBhcmFtIG5ldHdvcmtcbiAqXG4gKiBAcmV0dXJuIGEgZnVsbHkgc2lnbmVkIHJldmVhbCB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnblJldmVhbFRyYW5zYWN0aW9uKFxuICBwcml2YXRlS2V5OiBCdWZmZXIsXG4gIHRhcExlYWZTY3JpcHQ6IHV0eG9saWIuYml0Z28uVGFwTGVhZlNjcmlwdCxcbiAgY29tbWl0QWRkcmVzczogc3RyaW5nLFxuICByZWNpcGllbnRBZGRyZXNzOiBzdHJpbmcsXG4gIHVuc2lnbmVkQ29tbWl0VHg6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29ya1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHVuc2VyQ29tbWl0VHhuID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIodW5zaWduZWRDb21taXRUeCwgbmV0d29yayk7XG4gIGNvbnN0IGhhc2ggPSB1bnNlckNvbW1pdFR4bi5nZXRIYXNoKCk7XG4gIGNvbnN0IGNvbW1pdE91dHB1dCA9IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChjb21taXRBZGRyZXNzLCBuZXR3b3JrKTtcbiAgY29uc3Qgdm91dCA9IHVuc2VyQ29tbWl0VHhuLm91dHMuZmluZEluZGV4KChvdXQpID0+IG91dC5zY3JpcHQuZXF1YWxzKGNvbW1pdE91dHB1dCkpO1xuXG4gIGlmICh2b3V0ID09PSAtMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb21taXQgdHJhbnNhY3Rpb24nKTtcbiAgfVxuXG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIHBzYnQuYWRkSW5wdXQoe1xuICAgIGhhc2gsXG4gICAgaW5kZXg6IHZvdXQsXG4gICAgd2l0bmVzc1V0eG86IHsgc2NyaXB0OiBjb21taXRPdXRwdXQsIHZhbHVlOiBCaWdJbnQodW5zZXJDb21taXRUeG4ub3V0c1t2b3V0XS52YWx1ZSkgfSxcbiAgICB0YXBMZWFmU2NyaXB0OiBbdGFwTGVhZlNjcmlwdF0sXG4gIH0pO1xuXG4gIGNvbnN0IHJlY2lwaWVudE91dHB1dCA9IGFkZHJlc3MudG9PdXRwdXRTY3JpcHQocmVjaXBpZW50QWRkcmVzcywgbmV0d29yayk7XG4gIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0OiByZWNpcGllbnRPdXRwdXQsIHZhbHVlOiBCaWdJbnQoMTBfMDAwKSB9KTtcblxuICBjb25zdCBzaWduZXIgPSBFQ1BhaXIuZnJvbVByaXZhdGVLZXkocHJpdmF0ZUtleSk7XG4gIGNvbnN0IHBhcnNlZENvbnRyb2xCbG9jayA9IHRhcHJvb3QucGFyc2VDb250cm9sQmxvY2soZWNjTGliLCB0YXBMZWFmU2NyaXB0LmNvbnRyb2xCbG9jayk7XG4gIGNvbnN0IGxlYWZIYXNoID0gdGFwcm9vdC5nZXRUYXBsZWFmSGFzaChlY2NMaWIsIHBhcnNlZENvbnRyb2xCbG9jaywgdGFwTGVhZlNjcmlwdC5zY3JpcHQgYXMgQnVmZmVyKTtcbiAgcHNidC5zaWduVGFwcm9vdElucHV0KDAsIHNpZ25lciwgW2xlYWZIYXNoXSk7XG5cbiAgcmV0dXJuIHBzYnQ7XG59XG4iXX0=
|
package/dist/src/psbt.d.ts
CHANGED
|
@@ -18,10 +18,14 @@ export declare type InscriptionOutputs = {
|
|
|
18
18
|
export declare type InscriptionTransactionConstraints = {
|
|
19
19
|
feeRateSatKB: number;
|
|
20
20
|
minChangeOutput?: bigint;
|
|
21
|
-
maxChangeOutput?: bigint;
|
|
22
21
|
minInscriptionOutput?: bigint;
|
|
23
22
|
maxInscriptionOutput?: bigint;
|
|
24
23
|
};
|
|
24
|
+
export declare const DefaultInscriptionConstraints: {
|
|
25
|
+
minChangeOutput: bigint;
|
|
26
|
+
minInscriptionOutput: bigint;
|
|
27
|
+
maxInscriptionOutput: bigint;
|
|
28
|
+
};
|
|
25
29
|
export declare function createPsbtFromOutputLayout(network: Network, inputBuilder: WalletInputBuilder, unspents: bitgo.WalletUnspent<bigint>[], outputs: InscriptionOutputs, outputLayout: OutputLayout): bitgo.UtxoPsbt;
|
|
26
30
|
export declare function findOutputLayoutForWalletUnspents(inputs: bitgo.WalletUnspent<bigint>[], satPoint: SatPoint, outputs: InscriptionOutputs, constraints: InscriptionTransactionConstraints): OutputLayout | undefined;
|
|
27
31
|
export declare function createPsbtForSingleInscriptionPassingTransaction(network: Network, inputBuilder: WalletInputBuilder, unspents: bitgo.WalletUnspent<bigint>[], satPoint: SatPoint, outputs: InscriptionOutputs, constraints: InscriptionTransactionConstraints): bitgo.UtxoPsbt;
|
package/dist/src/psbt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../src/psbt.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAW,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAA0B,YAAY,EAA6B,MAAM,gBAAgB,CAAC;AAEjG,oBAAY,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,oBAAY,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../src/psbt.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAW,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAA0B,YAAY,EAA6B,MAAM,gBAAgB,CAAC;AAEjG,oBAAY,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,oBAAY,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;CAIzC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACvC,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,YAAY,GACzB,KAAK,CAAC,QAAQ,CA+ChB;AAWD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iCAAiC,GAC7C,YAAY,GAAG,SAAS,CA+B1B;AAED,wBAAgB,gDAAgD,CAC9D,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iCAAiC,GAC7C,KAAK,CAAC,QAAQ,CAMhB"}
|
package/dist/src/psbt.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createPsbtForSingleInscriptionPassingTransaction = exports.findOutputLayoutForWalletUnspents = exports.createPsbtFromOutputLayout = void 0;
|
|
3
|
+
exports.createPsbtForSingleInscriptionPassingTransaction = exports.findOutputLayoutForWalletUnspents = exports.createPsbtFromOutputLayout = exports.DefaultInscriptionConstraints = void 0;
|
|
4
4
|
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
5
5
|
const unspents_1 = require("@bitgo-beta/unspents");
|
|
6
6
|
const OrdOutput_1 = require("./OrdOutput");
|
|
7
7
|
const SatPoint_1 = require("./SatPoint");
|
|
8
8
|
const SatRange_1 = require("./SatRange");
|
|
9
9
|
const OutputLayout_1 = require("./OutputLayout");
|
|
10
|
+
exports.DefaultInscriptionConstraints = {
|
|
11
|
+
minChangeOutput: BigInt(10000),
|
|
12
|
+
minInscriptionOutput: BigInt(10000),
|
|
13
|
+
maxInscriptionOutput: BigInt(20000),
|
|
14
|
+
};
|
|
10
15
|
function createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, outputLayout) {
|
|
11
16
|
const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network: network });
|
|
12
17
|
if (unspents.length !== 1) {
|
|
@@ -61,7 +66,7 @@ function findOutputLayoutForWalletUnspents(inputs, satPoint, outputs, constraint
|
|
|
61
66
|
// otherwise our fee calc is too complicated
|
|
62
67
|
throw new Error(`wallet outputs must be on same chain`);
|
|
63
68
|
}
|
|
64
|
-
const { minChangeOutput =
|
|
69
|
+
const { minChangeOutput = exports.DefaultInscriptionConstraints.minChangeOutput, minInscriptionOutput = exports.DefaultInscriptionConstraints.minInscriptionOutput, maxInscriptionOutput = exports.DefaultInscriptionConstraints.maxInscriptionOutput, } = constraints;
|
|
65
70
|
const [input] = inputs;
|
|
66
71
|
const inscriptionOutput = new OrdOutput_1.OrdOutput(input.value, [toSatRange(satPoint)]);
|
|
67
72
|
return OutputLayout_1.findOutputLayout(inscriptionOutput, {
|
|
@@ -81,4 +86,4 @@ function createPsbtForSingleInscriptionPassingTransaction(network, inputBuilder,
|
|
|
81
86
|
return createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, layout);
|
|
82
87
|
}
|
|
83
88
|
exports.createPsbtForSingleInscriptionPassingTransaction = createPsbtForSingleInscriptionPassingTransaction;
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUErRDtBQUMvRCxtREFBZ0U7QUFFaEUsMkNBQXdDO0FBQ3hDLHlDQUFxRDtBQUNyRCx5Q0FBc0M7QUFDdEMsaURBQWlHO0FBMEJqRyxTQUFnQiwwQkFBMEIsQ0FDeEMsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBdUMsRUFDdkMsT0FBMkIsRUFDM0IsWUFBMEI7SUFFMUIsTUFBTSxJQUFJLEdBQUcsZ0JBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLGdCQUFLLENBQUMsc0JBQXNCLENBQzFCLElBQUksRUFDSixDQUFDLEVBQ0QsWUFBWSxDQUFDLFVBQVUsRUFDdkIsWUFBWSxDQUFDLE1BQU0sRUFDbkIsWUFBWSxDQUFDLFFBQVEsRUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLHFDQUFzQixDQUFDLElBQUkscUJBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEYsc0JBQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUN4QyxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsUUFBUSxTQUFTLEVBQUU7WUFDakIsZ0RBQWdEO1lBQ2hELEtBQUss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TUFBTSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQ2xGLFdBQVcsQ0FBQyxZQUFZLENBQ3pCO1FBQ0QsWUFBWSxFQUFFLE1BQU0sQ0FDbEIscUJBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUM5RSxXQUFXLENBQUMsWUFBWSxDQUN6QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFwQ0QsOEVBb0NDO0FBRUQsU0FBZ0IsZ0RBQWdELENBQzlELE9BQWdCLEVBQ2hCLFlBQWdDLEVBQ2hDLFFBQXVDLEVBQ3ZDLFFBQWtCLEVBQ2xCLE9BQTJCLEVBQzNCLFdBQThDO0lBRTlDLE1BQU0sTUFBTSxHQUFHLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNGLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7S0FDaEY7SUFDRCxPQUFPLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBYkQsNEdBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXR3b3JrLCBiaXRnbywgYWRkcmVzcyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMsIFZpcnR1YWxTaXplcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Vuc3BlbnRzJztcblxuaW1wb3J0IHsgT3JkT3V0cHV0IH0gZnJvbSAnLi9PcmRPdXRwdXQnO1xuaW1wb3J0IHsgcGFyc2VTYXRQb2ludCwgU2F0UG9pbnQgfSBmcm9tICcuL1NhdFBvaW50JztcbmltcG9ydCB7IFNhdFJhbmdlIH0gZnJvbSAnLi9TYXRSYW5nZSc7XG5pbXBvcnQgeyBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0LCBPdXRwdXRMYXlvdXQsIHRvQXJyYXksIGZpbmRPdXRwdXRMYXlvdXQgfSBmcm9tICcuL091dHB1dExheW91dCc7XG5cbmV4cG9ydCB0eXBlIFdhbGxldE91dHB1dFBhdGggPSB7XG4gIGNoYWluOiBiaXRnby5DaGFpbkNvZGU7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBXYWxsZXRJbnB1dEJ1aWxkZXIgPSB7XG4gIHdhbGxldEtleXM6IGJpdGdvLlJvb3RXYWxsZXRLZXlzO1xuICBzaWduZXI6IGJpdGdvLktleU5hbWU7XG4gIGNvc2lnbmVyOiBiaXRnby5LZXlOYW1lO1xufTtcblxuZXhwb3J0IHR5cGUgSW5zY3JpcHRpb25PdXRwdXRzID0ge1xuICBpbnNjcmlwdGlvblJlY2lwaWVudDogc3RyaW5nIHwgQnVmZmVyO1xuICBjaGFuZ2VPdXRwdXRzOiBbV2FsbGV0T3V0cHV0UGF0aCwgV2FsbGV0T3V0cHV0UGF0aF07XG59O1xuXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHMgPSB7XG4gIGZlZVJhdGVTYXRLQjogbnVtYmVyO1xuICBtaW5DaGFuZ2VPdXRwdXQ/OiBiaWdpbnQ7XG4gIG1heENoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgbWluSW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gIG1heEluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBpbnB1dEJ1aWxkZXI6IFdhbGxldElucHV0QnVpbGRlcixcbiAgdW5zcGVudHM6IGJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIG91dHB1dExheW91dDogT3V0cHV0TGF5b3V0XG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcms6IG5ldHdvcmsgfSk7XG4gIGlmICh1bnNwZW50cy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11bHRpcGxlIHVuc3BlbnRzIG5vdCBzdXBwb3J0ZWQgeWV0YCk7XG4gIH1cbiAgdW5zcGVudHMuZm9yRWFjaCgodSkgPT5cbiAgICBiaXRnby5hZGRXYWxsZXRVbnNwZW50VG9Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIHUsXG4gICAgICBpbnB1dEJ1aWxkZXIud2FsbGV0S2V5cyxcbiAgICAgIGlucHV0QnVpbGRlci5zaWduZXIsXG4gICAgICBpbnB1dEJ1aWxkZXIuY29zaWduZXIsXG4gICAgICBwc2J0Lm5ldHdvcmtcbiAgICApXG4gICk7XG4gIGNvbnN0IFtpbnB1dF0gPSB1bnNwZW50cztcbiAgY29uc3Qgb3JkT3V0cHV0cyA9IGdldE9yZE91dHB1dHNGb3JMYXlvdXQobmV3IE9yZE91dHB1dChpbnB1dC52YWx1ZSksIG91dHB1dExheW91dCk7XG4gIHRvQXJyYXkob3JkT3V0cHV0cykuZm9yRWFjaCgob3JkT3V0cHV0KSA9PiB7XG4gICAgaWYgKG9yZE91dHB1dCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKG9yZE91dHB1dCkge1xuICAgICAgLy8gc2tpcCBwYWRkaW5nIG91dHB1dHMgYW5kIGZlZSBvdXRwdXQgKHZpcnR1YWwpXG4gICAgICBjYXNlIG51bGw6XG4gICAgICBjYXNlIG9yZE91dHB1dHMuZmVlT3V0cHV0OlxuICAgICAgICByZXR1cm47XG4gICAgICAvLyBhZGQgcGFkZGluZyBvdXRwdXRzXG4gICAgICBjYXNlIG9yZE91dHB1dHMuZmlyc3RDaGFuZ2VPdXRwdXQ6XG4gICAgICBjYXNlIG9yZE91dHB1dHMuc2Vjb25kQ2hhbmdlT3V0cHV0OlxuICAgICAgICBjb25zdCB7IGNoYWluLCBpbmRleCB9ID1cbiAgICAgICAgICBvcmRPdXRwdXQgPT09IG9yZE91dHB1dHMuZmlyc3RDaGFuZ2VPdXRwdXQgPyBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0gOiBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMV07XG4gICAgICAgIGJpdGdvLmFkZFdhbGxldE91dHB1dFRvUHNidChwc2J0LCBpbnB1dEJ1aWxkZXIud2FsbGV0S2V5cywgY2hhaW4sIGluZGV4LCBvcmRPdXRwdXQudmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGFkZCBhY3R1YWwgaW5zY3JpcHRpb24gb3V0cHV0XG4gICAgICBjYXNlIG9yZE91dHB1dHMuaW5zY3JpcHRpb25PdXRwdXQ6XG4gICAgICAgIGxldCB7IGluc2NyaXB0aW9uUmVjaXBpZW50IH0gPSBvdXRwdXRzO1xuICAgICAgICBpZiAodHlwZW9mIGluc2NyaXB0aW9uUmVjaXBpZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGluc2NyaXB0aW9uUmVjaXBpZW50ID0gYWRkcmVzcy50b091dHB1dFNjcmlwdChpbnNjcmlwdGlvblJlY2lwaWVudCwgbmV0d29yayk7XG4gICAgICAgIH1cbiAgICAgICAgcHNidC5hZGRPdXRwdXQoe1xuICAgICAgICAgIHNjcmlwdDogaW5zY3JpcHRpb25SZWNpcGllbnQsXG4gICAgICAgICAgdmFsdWU6IG9yZE91dHB1dC52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBwc2J0O1xufVxuXG5mdW5jdGlvbiB0b1NhdFJhbmdlKHA6IFNhdFBvaW50KSB7XG4gIGNvbnN0IHsgb2Zmc2V0IH0gPSBwYXJzZVNhdFBvaW50KHApO1xuICByZXR1cm4gbmV3IFNhdFJhbmdlKG9mZnNldCwgb2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gZ2V0RmVlKHZzaXplOiBudW1iZXIsIHJhdGVTYXRQZXJLQjogbnVtYmVyKTogYmlnaW50IHtcbiAgcmV0dXJuIEJpZ0ludChNYXRoLmNlaWwoKHZzaXplICogcmF0ZVNhdFBlcktCKSAvIDEwMDApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhcbiAgaW5wdXRzOiBiaXRnby5XYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIGNvbnN0cmFpbnRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHNcbik6IE91dHB1dExheW91dCB8IHVuZGVmaW5lZCB7XG4gIGlmIChpbnB1dHMubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBvbmx5IHNpbmdsZSBpbnB1dCBzdXBwb3J0ZWQgY3VycmVudGx5YCk7XG4gIH1cblxuICBpZiAob3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzBdLmNoYWluICE9PSBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMV0uY2hhaW4pIHtcbiAgICAvLyBvdGhlcndpc2Ugb3VyIGZlZSBjYWxjIGlzIHRvbyBjb21wbGljYXRlZFxuICAgIHRocm93IG5ldyBFcnJvcihgd2FsbGV0IG91dHB1dHMgbXVzdCBiZSBvbiBzYW1lIGNoYWluYCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgbWluQ2hhbmdlT3V0cHV0ID0gQmlnSW50KDEwXzAwMCksXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQgPSBCaWdJbnQoMTBfMDAwKSxcbiAgICBtYXhJbnNjcmlwdGlvbk91dHB1dCA9IEJpZ0ludCgyMF8wMDApLFxuICB9ID0gY29uc3RyYWludHM7XG5cbiAgY29uc3QgW2lucHV0XSA9IGlucHV0cztcbiAgY29uc3QgaW5zY3JpcHRpb25PdXRwdXQgPSBuZXcgT3JkT3V0cHV0KGlucHV0LnZhbHVlLCBbdG9TYXRSYW5nZShzYXRQb2ludCldKTtcbiAgcmV0dXJuIGZpbmRPdXRwdXRMYXlvdXQoaW5zY3JpcHRpb25PdXRwdXQsIHtcbiAgICBtaW5DaGFuZ2VPdXRwdXQsXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQsXG4gICAgbWF4SW5zY3JpcHRpb25PdXRwdXQsXG4gICAgZmVlRml4ZWQ6IGdldEZlZShcbiAgICAgIFZpcnR1YWxTaXplcy50eFNlZ092ZXJoZWFkVlNpemUgKyBEaW1lbnNpb25zLmZyb21VbnNwZW50cyhpbnB1dHMpLmdldElucHV0c1ZTaXplKCksXG4gICAgICBjb25zdHJhaW50cy5mZWVSYXRlU2F0S0JcbiAgICApLFxuICAgIGZlZVBlck91dHB1dDogZ2V0RmVlKFxuICAgICAgRGltZW5zaW9ucy5mcm9tT3V0cHV0T25DaGFpbihvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4pLmdldE91dHB1dHNWU2l6ZSgpLFxuICAgICAgY29uc3RyYWludHMuZmVlUmF0ZVNhdEtCXG4gICAgKSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24oXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIGlucHV0QnVpbGRlcjogV2FsbGV0SW5wdXRCdWlsZGVyLFxuICB1bnNwZW50czogYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzLFxuICBjb25zdHJhaW50czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzXG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IGxheW91dCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyh1bnNwZW50cywgc2F0UG9pbnQsIG91dHB1dHMsIGNvbnN0cmFpbnRzKTtcbiAgaWYgKCFsYXlvdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBvdXRwdXQgbGF5b3V0IGZvciBpbnNjcmlwdGlvbiBwYXNzaW5nIHRyYW5zYWN0aW9uYCk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KG5ldHdvcmssIGlucHV0QnVpbGRlciwgdW5zcGVudHMsIG91dHB1dHMsIGxheW91dCk7XG59XG4iXX0=
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUErRDtBQUMvRCxtREFBZ0U7QUFFaEUsMkNBQXdDO0FBQ3hDLHlDQUFxRDtBQUNyRCx5Q0FBc0M7QUFDdEMsaURBQWlHO0FBeUJwRixRQUFBLDZCQUE2QixHQUFHO0lBQzNDLGVBQWUsRUFBRSxNQUFNLENBQUMsS0FBTSxDQUFDO0lBQy9CLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxLQUFNLENBQUM7SUFDcEMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLEtBQU0sQ0FBQztDQUNyQyxDQUFDO0FBRUYsU0FBZ0IsMEJBQTBCLENBQ3hDLE9BQWdCLEVBQ2hCLFlBQWdDLEVBQ2hDLFFBQXVDLEVBQ3ZDLE9BQTJCLEVBQzNCLFlBQTBCO0lBRTFCLE1BQU0sSUFBSSxHQUFHLGdCQUFLLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztLQUN4RDtJQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNyQixnQkFBSyxDQUFDLHNCQUFzQixDQUMxQixJQUFJLEVBQ0osQ0FBQyxFQUNELFlBQVksQ0FBQyxVQUFVLEVBQ3ZCLFlBQVksQ0FBQyxNQUFNLEVBQ25CLFlBQVksQ0FBQyxRQUFRLEVBQ3JCLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FDRixDQUFDO0lBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUN6QixNQUFNLFVBQVUsR0FBRyxxQ0FBc0IsQ0FBQyxJQUFJLHFCQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BGLHNC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QUM3RSxPQUFPLCtCQUFnQixDQUFDLGlCQUFpQixFQUFFO1FBQ3pDLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQ2QsdUJBQVksQ0FBQyxrQkFBa0IsR0FBRyxxQkFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFDbEYsV0FBVyxDQUFDLFlBQVksQ0FDekI7UUFDRCxZQUFZLEVBQUUsTUFBTSxDQUNsQixxQkFBVSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQzlFLFdBQVcsQ0FBQyxZQUFZLENBQ3pCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXBDRCw4RUFvQ0M7QUFFRCxTQUFnQixnREFBZ0QsQ0FDOUQsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBdUMsRUFDdkMsUUFBa0IsRUFDbEIsT0FBMkIsRUFDM0IsV0FBOEM7SUFFOUMsTUFBTSxNQUFNLEdBQUcsaUNBQWlDLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0YsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztLQUNoRjtJQUNELE9BQU8sMEJBQTBCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFiRCw0R0FhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5ldHdvcmssIGJpdGdvLCBhZGRyZXNzIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgRGltZW5zaW9ucywgVmlydHVhbFNpemVzIH0gZnJvbSAnQGJpdGdvLWJldGEvdW5zcGVudHMnO1xuXG5pbXBvcnQgeyBPcmRPdXRwdXQgfSBmcm9tICcuL09yZE91dHB1dCc7XG5pbXBvcnQgeyBwYXJzZVNhdFBvaW50LCBTYXRQb2ludCB9IGZyb20gJy4vU2F0UG9pbnQnO1xuaW1wb3J0IHsgU2F0UmFuZ2UgfSBmcm9tICcuL1NhdFJhbmdlJztcbmltcG9ydCB7IGdldE9yZE91dHB1dHNGb3JMYXlvdXQsIE91dHB1dExheW91dCwgdG9BcnJheSwgZmluZE91dHB1dExheW91dCB9IGZyb20gJy4vT3V0cHV0TGF5b3V0JztcblxuZXhwb3J0IHR5cGUgV2FsbGV0T3V0cHV0UGF0aCA9IHtcbiAgY2hhaW46IGJpdGdvLkNoYWluQ29kZTtcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFdhbGxldElucHV0QnVpbGRlciA9IHtcbiAgd2FsbGV0S2V5czogYml0Z28uUm9vdFdhbGxldEtleXM7XG4gIHNpZ25lcjogYml0Z28uS2V5TmFtZTtcbiAgY29zaWduZXI6IGJpdGdvLktleU5hbWU7XG59O1xuXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvbk91dHB1dHMgPSB7XG4gIGluc2NyaXB0aW9uUmVjaXBpZW50OiBzdHJpbmcgfCBCdWZmZXI7XG4gIGNoYW5nZU91dHB1dHM6IFtXYWxsZXRPdXRwdXRQYXRoLCBXYWxsZXRPdXRwdXRQYXRoXTtcbn07XG5cbmV4cG9ydCB0eXBlIEluc2NyaXB0aW9uVHJhbnNhY3Rpb25Db25zdHJhaW50cyA9IHtcbiAgZmVlUmF0ZVNhdEtCOiBudW1iZXI7XG4gIG1pbkNoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgbWluSW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gIG1heEluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRJbnNjcmlwdGlvbkNvbnN0cmFpbnRzID0ge1xuICBtaW5DaGFuZ2VPdXRwdXQ6IEJpZ0ludCgxMF8wMDApLFxuICBtaW5JbnNjcmlwdGlvbk91dHB1dDogQmlnSW50KDEwXzAwMCksXG4gIG1heEluc2NyaXB0aW9uT3V0cHV0OiBCaWdJbnQoMjBfMDAwKSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0RnJvbU91dHB1dExheW91dChcbiAgbmV0d29yazogTmV0d29yayxcbiAgaW5wdXRCdWlsZGVyOiBXYWxsZXRJbnB1dEJ1aWxkZXIsXG4gIHVuc3BlbnRzOiBiaXRnby5XYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzLFxuICBvdXRwdXRMYXlvdXQ6IE91dHB1dExheW91dFxuKTogYml0Z28uVXR4b1BzYnQge1xuICBjb25zdCBwc2J0ID0gYml0Z28uY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrOiBuZXR3b3JrIH0pO1xuICBpZiAodW5zcGVudHMubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtdWx0aXBsZSB1bnNwZW50cyBub3Qgc3VwcG9ydGVkIHlldGApO1xuICB9XG4gIHVuc3BlbnRzLmZvckVhY2goKHUpID0+XG4gICAgYml0Z28uYWRkV2FsbGV0VW5zcGVudFRvUHNidChcbiAgICAgIHBzYnQsXG4gICAgICB1LFxuICAgICAgaW5wdXRCdWlsZGVyLndhbGxldEtleXMsXG4gICAgICBpbnB1dEJ1aWxkZXIuc2lnbmVyLFxuICAgICAgaW5wdXRCdWlsZGVyLmNvc2lnbmVyLFxuICAgICAgcHNidC5uZXR3b3JrXG4gICAgKVxuICApO1xuICBjb25zdCBbaW5wdXRdID0gdW5zcGVudHM7XG4gIGNvbnN0IG9yZE91dHB1dHMgPSBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KG5ldyBPcmRPdXRwdXQoaW5wdXQudmFsdWUpLCBvdXRwdXRMYXlvdXQpO1xuICB0b0FycmF5KG9yZE91dHB1dHMpLmZvckVhY2goKG9yZE91dHB1dCkgPT4ge1xuICAgIGlmIChvcmRPdXRwdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChvcmRPdXRwdXQpIHtcbiAgICAgIC8vIHNraXAgcGFkZGluZyBvdXRwdXRzIGFuZCBmZWUgb3V0cHV0ICh2aXJ0dWFsKVxuICAgICAgY2FzZSBudWxsOlxuICAgICAgY2FzZSBvcmRPdXRwdXRzLmZlZU91dHB1dDpcbiAgICAgICAgcmV0dXJuO1xuICAgICAgLy8gYWRkIHBhZGRpbmcgb3V0cHV0c1xuICAgICAgY2FzZSBvcmRPdXRwdXRzLmZpcnN0Q2hhbmdlT3V0cHV0OlxuICAgICAgY2FzZSBvcmRPdXRwdXRzLnNlY29uZENoYW5nZU91dHB1dDpcbiAgICAgICAgY29uc3QgeyBjaGFpbiwgaW5kZXggfSA9XG4gICAgICAgICAgb3JkT3V0cHV0ID09PSBvcmRPdXRwdXRzLmZpcnN0Q2hhbmdlT3V0cHV0ID8gb3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzBdIDogb3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzFdO1xuICAgICAgICBiaXRnby5hZGRXYWxsZXRPdXRwdXRUb1BzYnQocHNidCwgaW5wdXRCdWlsZGVyLndhbGxldEtleXMsIGNoYWluLCBpbmRleCwgb3JkT3V0cHV0LnZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBhZGQgYWN0dWFsIGluc2NyaXB0aW9uIG91dHB1dFxuICAgICAgY2FzZSBvcmRPdXRwdXRzLmluc2NyaXB0aW9uT3V0cHV0OlxuICAgICAgICBsZXQgeyBpbnNjcmlwdGlvblJlY2lwaWVudCB9ID0gb3V0cHV0cztcbiAgICAgICAgaWYgKHR5cGVvZiBpbnNjcmlwdGlvblJlY2lwaWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpbnNjcmlwdGlvblJlY2lwaWVudCA9IGFkZHJlc3MudG9PdXRwdXRTY3JpcHQoaW5zY3JpcHRpb25SZWNpcGllbnQsIG5ldHdvcmspO1xuICAgICAgICB9XG4gICAgICAgIHBzYnQuYWRkT3V0cHV0KHtcbiAgICAgICAgICBzY3JpcHQ6IGluc2NyaXB0aW9uUmVjaXBpZW50LFxuICAgICAgICAgIHZhbHVlOiBvcmRPdXRwdXQudmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcHNidDtcbn1cblxuZnVuY3Rpb24gdG9TYXRSYW5nZShwOiBTYXRQb2ludCkge1xuICBjb25zdCB7IG9mZnNldCB9ID0gcGFyc2VTYXRQb2ludChwKTtcbiAgcmV0dXJuIG5ldyBTYXRSYW5nZShvZmZzZXQsIG9mZnNldCk7XG59XG5cbmZ1bmN0aW9uIGdldEZlZSh2c2l6ZTogbnVtYmVyLCByYXRlU2F0UGVyS0I6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoTWF0aC5jZWlsKCh2c2l6ZSAqIHJhdGVTYXRQZXJLQikgLyAxMDAwKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0TGF5b3V0Rm9yV2FsbGV0VW5zcGVudHMoXG4gIGlucHV0czogYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzLFxuICBjb25zdHJhaW50czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzXG4pOiBPdXRwdXRMYXlvdXQgfCB1bmRlZmluZWQge1xuICBpZiAoaW5wdXRzLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgb25seSBzaW5nbGUgaW5wdXQgc3VwcG9ydGVkIGN1cnJlbnRseWApO1xuICB9XG5cbiAgaWYgKG91dHB1dHMuY2hhbmdlT3V0cHV0c1swXS5jaGFpbiAhPT0gb3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzFdLmNoYWluKSB7XG4gICAgLy8gb3RoZXJ3aXNlIG91ciBmZWUgY2FsYyBpcyB0b28gY29tcGxpY2F0ZWRcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHdhbGxldCBvdXRwdXRzIG11c3QgYmUgb24gc2FtZSBjaGFpbmApO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIG1pbkNoYW5nZU91dHB1dCA9IERlZmF1bHRJbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1pbkNoYW5nZU91dHB1dCxcbiAgICBtaW5JbnNjcmlwdGlvbk91dHB1dCA9IERlZmF1bHRJbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1pbkluc2NyaXB0aW9uT3V0cHV0LFxuICAgIG1heEluc2NyaXB0aW9uT3V0cHV0ID0gRGVmYXVsdEluc2NyaXB0aW9uQ29uc3RyYWludHMubWF4SW5zY3JpcHRpb25PdXRwdXQsXG4gIH0gPSBjb25zdHJhaW50cztcblxuICBjb25zdCBbaW5wdXRdID0gaW5wdXRzO1xuICBjb25zdCBpbnNjcmlwdGlvbk91dHB1dCA9IG5ldyBPcmRPdXRwdXQoaW5wdXQudmFsdWUsIFt0b1NhdFJhbmdlKHNhdFBvaW50KV0pO1xuICByZXR1cm4gZmluZE91dHB1dExheW91dChpbnNjcmlwdGlvbk91dHB1dCwge1xuICAgIG1pbkNoYW5nZU91dHB1dCxcbiAgICBtaW5JbnNjcmlwdGlvbk91dHB1dCxcbiAgICBtYXhJbnNjcmlwdGlvbk91dHB1dCxcbiAgICBmZWVGaXhlZDogZ2V0RmVlKFxuICAgICAgVmlydHVhbFNpemVzLnR4U2VnT3ZlcmhlYWRWU2l6ZSArIERpbWVuc2lvbnMuZnJvbVVuc3BlbnRzKGlucHV0cykuZ2V0SW5wdXRzVlNpemUoKSxcbiAgICAgIGNvbnN0cmFpbnRzLmZlZVJhdGVTYXRLQlxuICAgICksXG4gICAgZmVlUGVyT3V0cHV0OiBnZXRGZWUoXG4gICAgICBEaW1lbnNpb25zLmZyb21PdXRwdXRPbkNoYWluKG91dHB1dHMuY2hhbmdlT3V0cHV0c1swXS5jaGFpbikuZ2V0T3V0cHV0c1ZTaXplKCksXG4gICAgICBjb25zdHJhaW50cy5mZWVSYXRlU2F0S0JcbiAgICApLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGb3JTaW5nbGVJbnNjcmlwdGlvblBhc3NpbmdUcmFuc2FjdGlvbihcbiAgbmV0d29yazogTmV0d29yayxcbiAgaW5wdXRCdWlsZGVyOiBXYWxsZXRJbnB1dEJ1aWxkZXIsXG4gIHVuc3BlbnRzOiBiaXRnby5XYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIGNvbnN0cmFpbnRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHNcbik6IGJpdGdvLlV0eG9Qc2J0IHtcbiAgY29uc3QgbGF5b3V0ID0gZmluZE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzKHVuc3BlbnRzLCBzYXRQb2ludCwgb3V0cHV0cywgY29uc3RyYWludHMpO1xuICBpZiAoIWxheW91dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY291bGQgbm90IG91dHB1dCBsYXlvdXQgZm9yIGluc2NyaXB0aW9uIHBhc3NpbmcgdHJhbnNhY3Rpb25gKTtcbiAgfVxuICByZXR1cm4gY3JlYXRlUHNidEZyb21PdXRwdXRMYXlvdXQobmV0d29yaywgaW5wdXRCdWlsZGVyLCB1bnNwZW50cywgb3V0cHV0cywgbGF5b3V0KTtcbn1cbiJdfQ==
|