@bitgo/utxo-staking 1.17.0 → 1.18.1
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/babylon/delegationMessage.d.ts +2 -2
- package/dist/src/babylon/delegationMessage.d.ts.map +1 -1
- package/dist/src/babylon/delegationMessage.js +14 -16
- package/dist/src/babylon/stakingManager.d.ts.map +1 -1
- package/dist/src/babylon/stakingManager.js +2 -2
- package/dist/src/babylon/stakingParams.js +3 -3
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -5
- package/package.json +5 -6
- package/dist/src/transaction.d.ts +0 -32
- package/dist/src/transaction.d.ts.map +0 -1
- package/dist/src/transaction.js +0 -89
|
@@ -32,7 +32,7 @@ export declare function toStakerInfo(stakingKey: utxolib.ECPairInterface | Buffe
|
|
|
32
32
|
export declare function createStaking(network: BabylonNetworkLike, blockHeight: number, stakerBtcInfo: vendor.StakerInfo, stakingInput: vendor.StakingInputs, versionedParams?: vendor.VersionedStakingParams[]): vendor.Staking;
|
|
33
33
|
type TransactionLike = bitcoinjslib.Psbt | bitcoinjslib.Transaction | utxolib.Transaction | utxolib.bitgo.UtxoTransaction<bigint | number> | utxolib.Psbt | utxolib.bitgo.UtxoPsbt;
|
|
34
34
|
export declare function toStakingTransaction(tx: TransactionLike): bitcoinjslib.Transaction;
|
|
35
|
-
export declare function createDelegationMessageWithTransaction(manager: vendor.BabylonBtcStakingManager, staking: vendor.Staking, stakingAmountSat: number, transaction: TransactionLike, babylonAddress: string): Promise<ValueWithTypeUrl<babylonProtobuf.btcstakingtx.MsgCreateBTCDelegation>>;
|
|
36
|
-
export declare function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider(btcProvider: vendor.BtcProvider, network: bitcoinjslib.Network, stakerBtcInfo: vendor.StakerInfo, stakingInput: vendor.StakingInputs, babylonBtcTipHeight: number, inputUTXOs: vendor.UTXO[], feeRateSatB: number, babylonAddress: string, stakingParams?: vendor.VersionedStakingParams[]): Promise<Result>;
|
|
35
|
+
export declare function createDelegationMessageWithTransaction(channel: 'delegation:create' | 'delegation:register', manager: vendor.BabylonBtcStakingManager, staking: vendor.Staking, stakingAmountSat: number, transaction: TransactionLike, babylonAddress: string): Promise<ValueWithTypeUrl<babylonProtobuf.btcstakingtx.MsgCreateBTCDelegation>>;
|
|
36
|
+
export declare function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider(btcProvider: vendor.BtcProvider, network: bitcoinjslib.Network, stakerBtcInfo: vendor.StakerInfo, stakingInput: vendor.StakingInputs, babylonBtcTipHeight: number, inputUTXOs: vendor.UTXO[], feeRateSatB: number, babylonAddress: string, channel: 'delegation:create' | 'delegation:register', stakingParams?: vendor.VersionedStakingParams[]): Promise<Result>;
|
|
37
37
|
export {};
|
|
38
38
|
//# sourceMappingURL=delegationMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegationMessage.d.ts","sourceRoot":"","sources":["../../../src/babylon/delegationMessage.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAC;AAC/D,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAsB,MAAM,WAAW,CAAC;AAEnE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAkChE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,EAClC,EAAE,QAAgB,EAAE;;CAAA,GACnB,YAAY,CAAC,IAAI,CAmBnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAC5C,OAAO,EAAE,kBAAkB,GAC1B,YAAY,CAAC,IAAI,CAWnB;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,wBAAwB,EAC3C,SAAS,EAAE,OAAO,CAAC,eAAe,GACjC,MAAM,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"delegationMessage.d.ts","sourceRoot":"","sources":["../../../src/babylon/delegationMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,31 +161,29 @@ function getBtcProviderForECKey(descriptorBuilder, stakerKey) {
|
|
|
161
161
|
}
|
|
162
162
|
return {
|
|
163
163
|
/**
|
|
164
|
-
* @param signingStep
|
|
165
164
|
* @param message
|
|
166
165
|
* @param type
|
|
167
166
|
* @returns Base64 encoded string
|
|
168
167
|
*/
|
|
169
|
-
async signMessage(
|
|
170
|
-
(0, assert_1.default)(signingStep === 'proof-of-possession');
|
|
168
|
+
async signMessage(message, type) {
|
|
171
169
|
switch (type) {
|
|
172
170
|
case 'ecdsa':
|
|
173
171
|
return toBase64(stakerKey.sign(Buffer.from(message, 'hex')));
|
|
174
172
|
case 'bip322-simple':
|
|
175
173
|
return toBase64(signBip322Simple(message));
|
|
176
174
|
default:
|
|
177
|
-
throw new Error(`unexpected
|
|
175
|
+
throw new Error(`unexpected type: ${type}`);
|
|
178
176
|
}
|
|
179
177
|
},
|
|
180
|
-
async signPsbt(
|
|
178
|
+
async signPsbt(psbtHex, options) {
|
|
181
179
|
const psbt = bitcoinjslib.Psbt.fromHex(psbtHex);
|
|
182
|
-
switch (
|
|
183
|
-
case '
|
|
180
|
+
switch (options.action.name) {
|
|
181
|
+
case 'sign-btc-slashing-transaction':
|
|
184
182
|
return signWithDescriptor(psbt, descriptorBuilder.getStakingDescriptor(), stakerKey).toHex();
|
|
185
|
-
case 'unbonding-slashing':
|
|
183
|
+
case 'sign-btc-unbonding-slashing-transaction':
|
|
186
184
|
return signWithDescriptor(psbt, descriptorBuilder.getUnbondingDescriptor(), stakerKey).toHex();
|
|
187
185
|
default:
|
|
188
|
-
throw new Error(`unexpected signing step: ${
|
|
186
|
+
throw new Error(`unexpected signing step: ${options.action.name}`);
|
|
189
187
|
}
|
|
190
188
|
},
|
|
191
189
|
};
|
|
@@ -212,7 +210,7 @@ function createStaking(network, blockHeight, stakerBtcInfo, stakingInput, versio
|
|
|
212
210
|
}
|
|
213
211
|
// Get the Babylon params based on the BTC tip height from Babylon chain
|
|
214
212
|
const params = vendor.getBabylonParamByBtcHeight(blockHeight, versionedParams);
|
|
215
|
-
return new vendor.Staking((0, network_1.toBitcoinJsNetwork)(network), stakerBtcInfo, params, stakingInput.
|
|
213
|
+
return new vendor.Staking((0, network_1.toBitcoinJsNetwork)(network), stakerBtcInfo, params, stakingInput.finalityProviderPksNoCoordHex, stakingInput.stakingTimelock);
|
|
216
214
|
}
|
|
217
215
|
function toStakingTransactionFromPsbt(psbt) {
|
|
218
216
|
if (!(psbt instanceof utxolib.bitgo.UtxoPsbt)) {
|
|
@@ -236,18 +234,18 @@ function toStakingTransaction(tx) {
|
|
|
236
234
|
*
|
|
237
235
|
* The difference is that here we are returning an _unsigned_ delegation message.
|
|
238
236
|
*/
|
|
239
|
-
async function createDelegationMessageWithTransaction(manager, staking, stakingAmountSat, transaction, babylonAddress) {
|
|
237
|
+
async function createDelegationMessageWithTransaction(channel, manager, staking, stakingAmountSat, transaction, babylonAddress) {
|
|
240
238
|
if (!vendor.isValidBabylonAddress(babylonAddress)) {
|
|
241
239
|
throw new Error('Invalid Babylon address');
|
|
242
240
|
}
|
|
243
241
|
// Create delegation message without including inclusion proof
|
|
244
|
-
return manager.createBtcDelegationMsg(staking, {
|
|
242
|
+
return manager.createBtcDelegationMsg(channel, staking, {
|
|
245
243
|
stakingTimelock: staking.stakingTimelock,
|
|
246
|
-
|
|
244
|
+
finalityProviderPksNoCoordHex: staking.finalityProviderPksNoCoordHex,
|
|
247
245
|
stakingAmountSat,
|
|
248
246
|
}, toStakingTransaction(transaction), babylonAddress, staking.stakerInfo, staking.params);
|
|
249
247
|
}
|
|
250
|
-
async function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider(btcProvider, network, stakerBtcInfo, stakingInput, babylonBtcTipHeight, inputUTXOs, feeRateSatB, babylonAddress, stakingParams = (0, stakingParams_1.getStakingParams)(network)) {
|
|
248
|
+
async function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider(btcProvider, network, stakerBtcInfo, stakingInput, babylonBtcTipHeight, inputUTXOs, feeRateSatB, babylonAddress, channel, stakingParams = (0, stakingParams_1.getStakingParams)(network)) {
|
|
251
249
|
if (inputUTXOs.length === 0) {
|
|
252
250
|
throw new Error('No input UTXOs provided');
|
|
253
251
|
}
|
|
@@ -255,7 +253,7 @@ async function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvid
|
|
|
255
253
|
const staking = createStaking(network, babylonBtcTipHeight, stakerBtcInfo, stakingInput, stakingParams);
|
|
256
254
|
// Create unsigned staking transaction
|
|
257
255
|
const { transaction } = staking.createStakingTransaction(stakingInput.stakingAmountSat, inputUTXOs, feeRateSatB);
|
|
258
|
-
const unsignedDelegationMsg = await createDelegationMessageWithTransaction(manager, staking, stakingInput.stakingAmountSat, transaction, babylonAddress);
|
|
256
|
+
const unsignedDelegationMsg = await createDelegationMessageWithTransaction(channel, manager, staking, stakingInput.stakingAmountSat, transaction, babylonAddress);
|
|
259
257
|
return { unsignedDelegationMsg, stakingTx: transaction };
|
|
260
258
|
}
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9kZWxlZ2F0aW9uTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFEQSxzQ0F3QkM7QUFRRCw4Q0FjQztBQUVELHdEQWtGQztBQVVELG9DQWNDO0FBRUQsc0NBcUJDO0FBdUJELG9EQUtDO0FBUUQsd0ZBdUJDO0FBRUQsa0pBMEJDO0FBN1REOztHQUVHO0FBQ0gsb0RBQTRCO0FBRTVCLHlDQUFtQztBQUNuQyw2RUFBK0Q7QUFFL0QsNERBQThDO0FBQzlDLHlEQUEyQztBQUUzQyxnREFBb0Q7QUFDcEQsNERBQXlFO0FBR3pFLHFEQUF3RDtBQUN4RCxtREFBbUQ7QUFDbkQsdUNBQW1FO0FBSW5FOzs7O0dBSUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxDQUFTLEVBQUUsUUFBMEI7SUFDeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLFFBQVEsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFFBQVEsQ0FBQyxDQUFrQjtJQUNsQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFVLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxR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LEVBQ1gsY0FBYyxDQUNmLENBQUM7SUFDRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9iYWJ5bG9uL2Jsb2IvdjEuOTkuMC1zbmFwc2hvdC4yNTAyMTEveC9idGNzdGFraW5nL3R5cGVzL3ZhbGlkYXRlX3BhcnNlZF9tZXNzYWdlLmdvXG4gKi9cbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgQklQMzIyIH0gZnJvbSAnYmlwMzIyLWpzJztcbmltcG9ydCAqIGFzIHZlbmRvciBmcm9tICdAYml0Z28vYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuaW1wb3J0ICogYXMgYmFieWxvblByb3RvYnVmIGZyb20gJ0BiYWJ5bG9ubGFicy1pby9iYWJ5bG9uLXByb3RvLXRzJztcbmltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IHRvWE9ubHlQdWJsaWNLZXkgfSBmcm9tICdAYml0Z28vdXR4by1jb3JlJztcbmltcG9ydCB7IHNpZ25XaXRoS2V5LCB0b1dyYXBwZWRQc2J0IH0gZnJvbSAnQGJpdGdvL3V0eG8tY29yZS9kZXNjcmlwdG9yJztcblxuaW1wb3J0IHsgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIH0gZnJvbSAnLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IGNyZWF0ZVN0YWtpbmdNYW5hZ2VyIH0gZnJvbSAnLi9zdGFraW5nTWFuYWdlcic7XG5pbXBvcnQgeyBnZXRTdGFraW5nUGFyYW1zIH0gZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcbmltcG9ydCB7IEJhYnlsb25OZXR3b3JrTGlrZSwgdG9CaXRjb2luSnNOZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrJztcblxuZXhwb3J0IHR5cGUgVmFsdWVXaXRoVHlwZVVybDxUPiA9IHsgdHlwZVVybDogc3RyaW5nOyB2YWx1ZTogVCB9O1xuXG4vKipcbiAqIERlY29kZSBhIGhleCBvciBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgYW5kIGNoZWNrIGlmIHRoZSBsZW5ndGggaXMgdmFsaWQuXG4gKiBAcGFyYW0gdlxuICogQHBhcmFtIGVuY29kaW5nXG4gKi9cbmZ1bmN0aW9uIGRlY29kZUNoZWNrKHY6IHN0cmluZywgZW5jb2Rpbmc6ICdoZXgnIHwgJ2Jhc2U2NCcpIHtcbiAgY29uc3QgcmVzdWx0ID0gQnVmZmVyLmZyb20odiwgZW5jb2RpbmcpO1xuICBpZiAocmVzdWx0LnRvU3RyaW5nKGVuY29kaW5nKS5sZW5ndGggIT09IHYubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7ZW5jb2Rpbmd9IGVuY29kaW5nYCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgQnVmZmVyIG9yIHN0cmluZyB0byBhIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cbiAqIEBwYXJhbSB2XG4gKi9cbmZ1bmN0aW9uIHRvQmFzZTY0KHY6IEJ1ZmZlciB8IHN0cmluZykge1xuICBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XG4gICAgZm9yIChjb25zdCBlbmNvZGluZyBvZiBbJ2Jhc2U2NCcsICdoZXgnXSBhcyBjb25zdCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRvQmFzZTY0KGRlY29kZUNoZWNrKHYsIGVuY29kaW5nKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIHRyeSBuZXh0XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBiYXNlNjQgb3IgaGV4IGVuY29kaW5nOiAke3Z9YCk7XG4gIH1cblxuICByZXR1cm4gdi50b1N0cmluZygnYmFzZTY0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaWduZWRQc2J0KFxuICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCxcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgc2lnbmVyczogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2VbXSxcbiAgeyBmaW5hbGl6ZSA9IGZhbHNlIH1cbik6IGJpdGNvaW5qc2xpYi5Qc2J0IHtcbiAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHBzYnQudG9CdWZmZXIoKSk7XG4gIGNvbnN0IHNpZ25lZElucHV0cyA9IHBzYnQuZGF0YS5pbnB1dHMuZmxhdE1hcCgoaW5wdXQsIGkpID0+IHtcbiAgICBhc3NlcnQoaW5wdXQud2l0bmVzc1V0eG8pO1xuICAgIGlmIChCdWZmZXIuZnJvbShkZXNjcmlwdG9yLnNjcmlwdFB1YmtleSgpKS5lcXVhbHMoaW5wdXQud2l0bmVzc1V0eG8uc2NyaXB0KSkge1xuICAgICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcihpLCBkZXNjcmlwdG9yKTtcbiAgICAgIGNvbnN0IHNpZ25SZXN1bHRzID0gc2lnbmVycy5tYXAoKHNpZ25lcikgPT4ge1xuICAgICAgICBhc3NlcnQoc2lnbmVyLnByaXZhdGVLZXkpO1xuICAgICAgICByZXR1cm4gd3JhcHBlZFBzYnQuc2lnbldpdGhQcnYoc2lnbmVyLnByaXZhdGVLZXkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gW1tpLCBzaWduUmVzdWx0c11dO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0pO1xuICBhc3NlcnQoc2lnbmVkSW5wdXRzLmxlbmd0aCA+IDApO1xuICBpZiAoZmluYWxpemUpIHtcbiAgICB3cmFwcGVkUHNidC5maW5hbGl6ZSgpO1xuICB9XG4gIHJldHVybiBiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHdyYXBwZWRQc2J0LnNlcmlhbGl6ZSgpKSk7XG59XG5cbi8qKlxuICogVXRpbGl0eSBtZXRob2QgdG8gd29yayBhcm91bmQgYSBidWcgaW4gYnRjLXN0YWtpbmctdHNcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9idGMtc3Rha2luZy10cy9pc3N1ZXMvNzFcbiAqIEBwYXJhbSB2XG4gKiBAcGFyYW0gbmV0d29ya1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9yY2VGaW5hbGl6ZVBzYnQoXG4gIHY6IEJ1ZmZlciB8IHV0eG9saWIuUHNidCB8IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICBuZXR3b3JrOiBCYWJ5bG9uTmV0d29ya0xpa2Vcbik6IGJpdGNvaW5qc2xpYi5Qc2J0IHtcbiAgaWYgKHYgaW5zdGFuY2VvZiB1dHhvbGliLlBzYnQpIHtcbiAgICB2ID0gdi50b0J1ZmZlcigpO1xuICB9XG4gIGlmICh2IGluc3RhbmNlb2YgYml0Y29pbmpzbGliLlBzYnQpIHtcbiAgICB2ID0gdi50b0J1ZmZlcigpO1xuICB9XG4gIGNvbnN0IHBzYnQgPSBiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKHYsIHsgbmV0d29yazogdG9CaXRjb2luSnNOZXR3b3JrKG5ldHdvcmspIH0pO1xuICAvLyB0aGlzIG9ubHkgd29ya3Mgd2l0aCBjZXJ0YWluIGJpdGNvaW5qc2xpYiB2ZXJzaW9uc1xuICBwc2J0LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnRjUHJvdmlkZXJGb3JFQ0tleShcbiAgZGVzY3JpcHRvckJ1aWxkZXI6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlcixcbiAgc3Rha2VyS2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZVxuKTogdmVuZG9yLkJ0Y1Byb3ZpZGVyIHtcbiAgZnVuY3Rpb24gc2lnbldpdGhEZXNjcmlwdG9yKFxuICAgIHBzYnQ6IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICAgIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gICAga2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZVxuICApOiBiaXRjb2luanNsaWIuUHNidCB7XG4gICAgcHNidCA9IGdldFNpZ25lZFBzYnQocHNidCwgZGVzY3JpcHRvciwgW2tleV0sIHsgZmluYWxpemU6IGZhbHNlIH0pO1xuICAgIC8vIEJVRzogd2UgbmVlZCB0byBibGluZGx5IGZpbmFsaXplIGhlcmUgZXZlbiB0aG91Z2ggd2UgaGF2ZSBub3QgZnVsbHkgc2lnbmVkXG4gICAgcHNidC5maW5hbGl6ZUFsbElucHV0cygpO1xuICAgIHJldHVybiBwc2J0O1xuICB9XG5cbiAgZnVuY3Rpb24gc2lnbkJpcDMyMlNpbXBsZShtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIEdldCB0aGUgc2NyaXB0IHB1YmxpYyBrZXkgZnJvbSB0aGUgc3Rha2luZyBkZXNjcmlwdG9yXG4gICAgY29uc3Qgc2NyaXB0UHViS2V5ID0gQnVmZmVyLmZyb20oZGVzY3JpcHRvckJ1aWxkZXIuZ2V0U3Rha2luZ0Rlc2NyaXB0b3IoKS5zY3JpcHRQdWJrZXkoKSk7XG4gICAgY29uc3QgdG9TcGVuZFR4ID0gQklQMzIyLmJ1aWxkVG9TcGVuZFR4KG1lc3NhZ2UsIHNjcmlwdFB1YktleSk7XG5cbiAgICAvLyBHZXQgdGhlIHRvX3NwZW5kIHR4aWRcbiAgICBjb25zdCB0b1NwZW5kVHhJZCA9IHRvU3BlbmRUeC5nZXRJZCgpO1xuXG4gICAgLy8gQ3JlYXRlIFBTQlQgb2JqZWN0IGZvciBjb25zdHJ1Y3RpbmcgdGhlIHRyYW5zYWN0aW9uXG4gICAgY29uc3QgdG9TaWduUHNidCA9IG5ldyBiaXRjb2luanNsaWIuUHNidCgpO1xuICAgIHRvU2lnblBzYnQuc2V0VmVyc2lvbigyKTsgLy8gblZlcnNpb24gPSAwXG4gICAgdG9TaWduUHNidC5zZXRMb2NrdGltZSgwKTsgLy8gbkxvY2tUaW1lID0gMFxuICAgIHRvU2lnblBzYnQuYWRkSW5wdXQoe1xuICAgICAgaGFzaDogdG9TcGVuZFR4SWQsXG4gICAgICBpbmRleDogMCxcbiAgICAgIHNlcXVlbmNlOiBkZXNjcmlwdG9yQnVpbGRlci5zdGFraW5nVGltZUxvY2ssXG4gICAgICB3aXRuZXNzVXR4bzoge1xuICAgICAgICBzY3JpcHQ6IHNjcmlwdFB1YktleSxcbiAgICAgICAgdmFsdWU6IDAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gU2lnbiB0aGUgUFNCVCB3aXRoIHRoZSBzdGFrZXIga2V5XG4gICAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHRvU2lnblBzYnQudG9CdWZmZXIoKSk7XG4gICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcigwLCBkZXNjcmlwdG9yQnVpbGRlci5nZXRTdGFraW5nRGVzY3JpcHRvcigpKTtcbiAgICBzaWduV2l0aEtleSh3cmFwcGVkUHNidCwgc3Rha2VyS2V5KTtcbiAgICB3cmFwcGVkUHNidC5maW5hbGl6ZSgpO1xuXG4gICAgLy8gRW5jb2RlIHRoZSB3aXRuZXNzIGRhdGEgYW5kIHJldHVyblxuICAgIHJldHVybiBCSVAzMjIuZW5jb2RlV2l0bmVzcyhiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHdyYXBwZWRQc2J0LnNlcmlhbGl6ZSgpKSkpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gc2lnbmluZ1N0ZXBcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqIEBwYXJhbSB0eXBlXG4gICAgICogQHJldHVybnMgQmFzZTY0IGVuY29kZWQgc3RyaW5nXG4gICAgICovXG4gICAgYXN5bmMgc2lnbk1lc3NhZ2UoXG4gICAgICBzaWduaW5nU3RlcDogdmVuZG9yLlNpZ25pbmdTdGVwLFxuICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgdHlwZTogJ2VjZHNhJyB8ICdiaXAzMjItc2ltcGxlJ1xuICAgICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICBhc3NlcnQoc2lnbmluZ1N0ZXAgPT09ICdwcm9vZi1vZi1wb3NzZXNzaW9uJyk7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnZWNkc2EnOlxuICAgICAgICAgIHJldHVybiB0b0Jhc2U2NChzdGFrZXJLZXkuc2lnbihCdWZmZXIuZnJvbShtZXNzYWdlLCAnaGV4JykpKTtcbiAgICAgICAgY2FzZSAnYmlwMzIyLXNpbXBsZSc6XG4gICAgICAgICAgcmV0dXJuIHRvQmFzZTY0KHNpZ25CaXAzMjJTaW1wbGUobWVzc2FnZSkpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBzaWduaW5nIHN0ZXA6ICR7c2lnbmluZ1N0ZXB9YCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFzeW5jIHNpZ25Qc2J0KHNpZ25pbmdTdGVwOiB2ZW5kb3IuU2lnbmluZ1N0ZXAsIHBzYnRIZXg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICBjb25zdCBwc2J0ID0gYml0Y29pbmpzbGliLlBzYnQuZnJvbUhleChwc2J0SGV4KTtcbiAgICAgIHN3aXRjaCAoc2lnbmluZ1N0ZXApIHtcbiAgICAgICAgY2FzZSAnc3Rha2luZy1zbGFzaGluZyc6XG4gICAgICAgICAgcmV0dXJuIHNpZ25XaXRoRGVzY3JpcHRvcihwc2J0LCBkZXNjcmlwdG9yQnVpbGRlci5nZXRTdGFraW5nRGVzY3JpcHRvcigpLCBzdGFrZXJLZXkpLnRvSGV4KCk7XG4gICAgICAgIGNhc2UgJ3VuYm9uZGluZy1zbGFzaGluZyc6XG4gICAgICAgICAgcmV0dXJuIHNpZ25XaXRoRGVzY3JpcHRvcihwc2J0LCBkZXNjcmlwdG9yQnVpbGRlci5nZXRVbmJvbmRpbmdEZXNjcmlwdG9yKCksIHN0YWtlcktleSkudG9IZXgoKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgc2lnbmluZyBzdGVwOiAke3NpZ25pbmdTdGVwfWApO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG50eXBlIFJlc3VsdCA9IHtcbiAgdW5zaWduZWREZWxlZ2F0aW9uTXNnOiBWYWx1ZVdpdGhUeXBlVXJsPGJhYnlsb25Qcm90b2J1Zi5idGNzdGFraW5ndHguTXNnQ3JlYXRlQlRDRGVsZWdhdGlvbj47XG4gIHN0YWtpbmdUeDogYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uO1xufTtcblxuLyoqXG4gKiBAcGFyYW0gc3Rha2luZ0tleSAtIHRoaXMgaXMgdGhlIHNpbmdsZS1zaWcga2V5IHRoYXQgaXMgdXNlZCBmb3IgY28tc2lnbmluZyB0aGUgc3Rha2luZyBvdXRwdXRcbiAqIEBwYXJhbSBjaGFuZ2VBZGRyZXNzIC0gdGhpcyBpcyB1bnJlbGF0ZWQgdG8gdGhlIHN0YWtpbmcga2V5IGFuZCBpcyB1c2VkIGZvciB0aGUgY2hhbmdlIG91dHB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9TdGFrZXJJbmZvKFxuICBzdGFraW5nS2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlciB8IHN0cmluZyxcbiAgY2hhbmdlQWRkcmVzczogc3RyaW5nXG4pOiB2ZW5kb3IuU3Rha2VySW5mbyB7XG4gIGlmICh0eXBlb2Ygc3Rha2luZ0tleSA9PT0gJ29iamVjdCcgJiYgJ3B1YmxpY0tleScgaW4gc3Rha2luZ0tleSkge1xuICAgIHN0YWtpbmdLZXkgPSBzdGFraW5nS2V5LnB1YmxpY0tleTtcbiAgfVxuICBpZiAodHlwZW9mIHN0YWtpbmdLZXkgPT09ICdzdHJpbmcnKSB7XG4gICAgc3Rha2luZ0tleSA9IEJ1ZmZlci5mcm9tKHN0YWtpbmdLZXksICdoZXgnKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHB1YmxpY0tleU5vQ29vcmRIZXg6IHRvWE9ubHlQdWJsaWNLZXkoc3Rha2luZ0tleSkudG9TdHJpbmcoJ2hleCcpLFxuICAgIGFkZHJlc3M6IGNoYW5nZUFkZHJlc3MsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdGFraW5nKFxuICBuZXR3b3JrOiBCYWJ5bG9uTmV0d29ya0xpa2UsXG4gIGJsb2NrSGVpZ2h0OiBudW1iZXIsXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICB2ZXJzaW9uZWRQYXJhbXM6IHZlbmRvci5WZXJzaW9uZWRTdGFraW5nUGFyYW1zW10gPSBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcmspXG4pOiB2ZW5kb3IuU3Rha2luZyB7XG4gIGlmIChibG9ja0hlaWdodCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQmFieWxvbiBCVEMgdGlwIGhlaWdodCBjYW5ub3QgYmUgMCcpO1xuICB9XG5cbiAgLy8gR2V0IHRoZSBCYWJ5bG9uIHBhcmFtcyBiYXNlZCBvbiB0aGUgQlRDIHRpcCBoZWlnaHQgZnJvbSBCYWJ5bG9uIGNoYWluXG4gIGNvbnN0IHBhcmFtcyA9IHZlbmRvci5nZXRCYWJ5bG9uUGFyYW1CeUJ0Y0hlaWdodChibG9ja0hlaWdodCwgdmVyc2lvbmVkUGFyYW1zKTtcblxuICByZXR1cm4gbmV3IHZlbmRvci5TdGFraW5nKFxuICAgIHRvQml0Y29pbkpzTmV0d29yayhuZXR3b3JrKSxcbiAgICBzdGFrZXJCdGNJbmZvLFxuICAgIHBhcmFtcyxcbiAgICBzdGFraW5nSW5wdXQuZmluYWxpdHlQcm92aWRlclBrTm9Db29yZEhleCxcbiAgICBzdGFraW5nSW5wdXQuc3Rha2luZ1RpbWVsb2NrXG4gICk7XG59XG5cbnR5cGUgVHJhbnNhY3Rpb25MaWtlID1cbiAgfCBiaXRjb2luanNsaWIuUHNidFxuICB8IGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvblxuICB8IHV0eG9saWIuVHJhbnNhY3Rpb25cbiAgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+XG4gIHwgdXR4b2xpYi5Qc2J0XG4gIHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcblxuZnVuY3Rpb24gdG9TdGFraW5nVHJhbnNhY3Rpb25Gcm9tUHNidChcbiAgcHNidDogYml0Y29pbmpzbGliLlBzYnQgfCB1dHhvbGliLlBzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0XG4pOiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb24ge1xuICBpZiAoIShwc2J0IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkpIHtcbiAgICBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUJ1ZmZlcihwc2J0LnRvQnVmZmVyKCksIHV0eG9saWIubmV0d29ya3MuYml0Y29pbik7XG4gIH1cbiAgaWYgKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgLy8gb25seSB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IGhhcyB0aGUgZ2V0VW5zaWduZWRUeCBtZXRob2RcbiAgICByZXR1cm4gYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uLmZyb21IZXgocHNidC5nZXRVbnNpZ25lZFR4KCkudG9IZXgoKSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdpbGxlZ2FsIHN0YXRlJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1N0YWtpbmdUcmFuc2FjdGlvbih0eDogVHJhbnNhY3Rpb25MaWtlKTogYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uIHtcbiAgaWYgKHR4IGluc3RhbmNlb2YgYml0Y29pbmpzbGliLlBzYnQgfHwgdHggaW5zdGFuY2VvZiB1dHhvbGliLlBzYnQpIHtcbiAgICByZXR1cm4gdG9TdGFraW5nVHJhbnNhY3Rpb25Gcm9tUHNidCh0eCk7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvbi5mcm9tSGV4KHR4LnRvSGV4KCkpO1xufVxuXG4vKlxuICogVGhpcyBpcyBtb3N0bHkgbGlmdGVkIGZyb21cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9idGMtc3Rha2luZy10cy9ibG9iL3YwLjQuMC1yYy4yL3NyYy9zdGFraW5nL21hbmFnZXIudHMjTDEwMC1MMTcyXG4gKlxuICogVGhlIGRpZmZlcmVuY2UgaXMgdGhhdCBoZXJlIHdlIGFyZSByZXR1cm5pbmcgYW4gX3Vuc2lnbmVkXyBkZWxlZ2F0aW9uIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVEZWxlZ2F0aW9uTWVzc2FnZVdpdGhUcmFuc2FjdGlvbihcbiAgbWFuYWdlcjogdmVuZG9yLkJhYnlsb25CdGNTdGFraW5nTWFuYWdlcixcbiAgc3Rha2luZzogdmVuZG9yLlN0YWtpbmcsXG4gIHN0YWtpbmdBbW91bnRTYXQ6IG51bWJlcixcbiAgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uTGlrZSxcbiAgYmFieWxvbkFkZHJlc3M6IHN0cmluZ1xuKTogUHJvbWlzZTxWYWx1ZVdpdGhUeXBlVXJsPGJhYnlsb25Qcm90b2J1Zi5idGNzdGFraW5ndHguTXNnQ3JlYXRlQlRDRGVsZWdhdGlvbj4+IHtcbiAgaWYgKCF2ZW5kb3IuaXNWYWxpZEJhYnlsb25BZGRyZXNzKGJhYnlsb25BZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBCYWJ5bG9uIGFkZHJlc3MnKTtcbiAgfVxuICAvLyBDcmVhdGUgZGVsZWdhdGlvbiBtZXNzYWdlIHdpdGhvdXQgaW5jbHVkaW5nIGluY2x1c2lvbiBwcm9vZlxuICByZXR1cm4gbWFuYWdlci5jcmVhdGVCdGNEZWxlZ2F0aW9uTXNnKFxuICAgIHN0YWtpbmcsXG4gICAge1xuICAgICAgc3Rha2luZ1RpbWVsb2NrOiBzdGFraW5nLnN0YWtpbmdUaW1lbG9jayxcbiAgICAgIGZpbmFsaXR5UHJvdmlkZXJQa05vQ29vcmRIZXg6IHN0YWtpbmcuZmluYWxpdHlQcm92aWRlclBrTm9Db29yZEhleCxcbiAgICAgIHN0YWtpbmdBbW91bnRTYXQsXG4gICAgfSxcbiAgICB0b1N0YWtpbmdUcmFuc2FjdGlvbih0cmFuc2FjdGlvbiksXG4gICAgYmFieWxvbkFkZHJlc3MsXG4gICAgc3Rha2luZy5zdGFrZXJJbmZvLFxuICAgIHN0YWtpbmcucGFyYW1zXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVVbnNpZ25lZFByZVN0YWtlUmVnaXN0cmF0aW9uQmFieWxvblRyYW5zYWN0aW9uV2l0aEJ0Y1Byb3ZpZGVyKFxuICBidGNQcm92aWRlcjogdmVuZG9yLkJ0Y1Byb3ZpZGVyLFxuICBuZXR3b3JrOiBiaXRjb2luanNsaWIuTmV0d29yayxcbiAgc3Rha2VyQnRjSW5mbzogdmVuZG9yLlN0YWtlckluZm8sXG4gIHN0YWtpbmdJbnB1dDogdmVuZG9yLlN0YWtpbmdJbnB1dHMsXG4gIGJhYnlsb25CdGNUaXBIZWlnaHQ6IG51bWJlcixcbiAgaW5wdXRVVFhPczogdmVuZG9yLlVUWE9bXSxcbiAgZmVlUmF0ZVNhdEI6IG51bWJlcixcbiAgYmFieWxvbkFkZHJlc3M6IHN0cmluZyxcbiAgc3Rha2luZ1BhcmFtczogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IGdldFN0YWtpbmdQYXJhbXMobmV0d29yaylcbik6IFByb21pc2U8UmVzdWx0PiB7XG4gIGlmIChpbnB1dFVUWE9zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gaW5wdXQgVVRYT3MgcHJvdmlkZWQnKTtcbiAgfVxuICBjb25zdCBtYW5hZ2VyID0gY3JlYXRlU3Rha2luZ01hbmFnZXIobmV0d29yaywgYnRjUHJvdmlkZXIsIHN0YWtpbmdQYXJhbXMpO1xuICBjb25zdCBzdGFraW5nID0gY3JlYXRlU3Rha2luZyhuZXR3b3JrLCBiYWJ5bG9uQnRjVGlwSGVpZ2h0LCBzdGFrZXJCdGNJbmZvLCBzdGFraW5nSW5wdXQsIHN0YWtpbmdQYXJhbXMpO1xuICAvLyBDcmVhdGUgdW5zaWduZWQgc3Rha2luZyB0cmFuc2FjdGlvblxuICBjb25zdCB7IHRyYW5zYWN0aW9uIH0gPSBzdGFraW5nLmNyZWF0ZVN0YWtpbmdUcmFuc2FjdGlvbihzdGFraW5nSW5wdXQuc3Rha2luZ0Ftb3VudFNhdCwgaW5wdXRVVFhPcywgZmVlUmF0ZVNhdEIpO1xuICBjb25zdCB1bnNpZ25lZERlbGVnYXRpb25Nc2cgPSBhd2FpdCBjcmVhdGVEZWxlZ2F0aW9uTWVzc2FnZVdpdGhUcmFuc2FjdGlvbihcbiAgICBtYW5hZ2VyLFxuICAgIHN0YWtpbmcsXG4gICAgc3Rha2luZ0lucHV0LnN0YWtpbmdBbW91bnRTYXQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmFieWxvbkFkZHJlc3NcbiAgKTtcbiAgcmV0dXJuIHsgdW5zaWduZWREZWxlZ2F0aW9uTXNnLCBzdGFraW5nVHg6IHRyYW5zYWN0aW9uIH07XG59XG4iXX0=
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9kZWxlZ2F0aW9uTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFEQSxzQ0F3QkM7QUFRRCw4Q0FjQztBQUVELHdEQTRFQztBQVVELG9DQWNDO0FBRUQsc0NBcUJDO0FBdUJELG9EQUtDO0FBUUQsd0ZBeUJDO0FBRUQsa0pBNEJDO0FBM1REOztHQUVHO0FBQ0gsb0RBQTRCO0FBRTVCLHlDQUFtQztBQUNuQyw2RUFBK0Q7QUFFL0QsNERBQThDO0FBQzlDLHlEQUEyQztBQUUzQyxnREFBb0Q7QUFDcEQsNERBQXlFO0FBR3pFLHFEQUF3RDtBQUN4RCxtREFBbUQ7QUFDbkQsdUNBQW1FO0FBSW5FOzs7O0dBSUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxDQUFTLEVBQUUsUUFBMEI7SUFDeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLFFBQVEsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFFBQVEsQ0FBQyxDQUFrQjtJQUNsQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFVLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxR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Q0FBQyxnQkFBZ0IsRUFDN0IsV0FBVyxFQUNYLGNBQWMsQ0FDZixDQUFDO0lBQ0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYmFieWxvbi9ibG9iL3YxLjk5LjAtc25hcHNob3QuMjUwMjExL3gvYnRjc3Rha2luZy90eXBlcy92YWxpZGF0ZV9wYXJzZWRfbWVzc2FnZS5nb1xuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IEJJUDMyMiB9IGZyb20gJ2JpcDMyMi1qcyc7XG5pbXBvcnQgKiBhcyB2ZW5kb3IgZnJvbSAnQGJpdGdvL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcbmltcG9ydCAqIGFzIGJhYnlsb25Qcm90b2J1ZiBmcm9tICdAYmFieWxvbmxhYnMtaW8vYmFieWxvbi1wcm90by10cyc7XG5pbXBvcnQgKiBhcyBiaXRjb2luanNsaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5pbXBvcnQgeyB0b1hPbmx5UHVibGljS2V5IH0gZnJvbSAnQGJpdGdvL3V0eG8tY29yZSc7XG5pbXBvcnQgeyBzaWduV2l0aEtleSwgdG9XcmFwcGVkUHNidCB9IGZyb20gJ0BiaXRnby91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBjcmVhdGVTdGFraW5nTWFuYWdlciB9IGZyb20gJy4vc3Rha2luZ01hbmFnZXInO1xuaW1wb3J0IHsgZ2V0U3Rha2luZ1BhcmFtcyB9IGZyb20gJy4vc3Rha2luZ1BhcmFtcyc7XG5pbXBvcnQgeyBCYWJ5bG9uTmV0d29ya0xpa2UsIHRvQml0Y29pbkpzTmV0d29yayB9IGZyb20gJy4vbmV0d29yayc7XG5cbmV4cG9ydCB0eXBlIFZhbHVlV2l0aFR5cGVVcmw8VD4gPSB7IHR5cGVVcmw6IHN0cmluZzsgdmFsdWU6IFQgfTtcblxuLyoqXG4gKiBEZWNvZGUgYSBoZXggb3IgYmFzZTY0IGVuY29kZWQgc3RyaW5nIGFuZCBjaGVjayBpZiB0aGUgbGVuZ3RoIGlzIHZhbGlkLlxuICogQHBhcmFtIHZcbiAqIEBwYXJhbSBlbmNvZGluZ1xuICovXG5mdW5jdGlvbiBkZWNvZGVDaGVjayh2OiBzdHJpbmcsIGVuY29kaW5nOiAnaGV4JyB8ICdiYXNlNjQnKSB7XG4gIGNvbnN0IHJlc3VsdCA9IEJ1ZmZlci5mcm9tKHYsIGVuY29kaW5nKTtcbiAgaWYgKHJlc3VsdC50b1N0cmluZyhlbmNvZGluZykubGVuZ3RoICE9PSB2Lmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCAke2VuY29kaW5nfSBlbmNvZGluZ2ApO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29udmVydCBhIEJ1ZmZlciBvciBzdHJpbmcgdG8gYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcuXG4gKiBAcGFyYW0gdlxuICovXG5mdW5jdGlvbiB0b0Jhc2U2NCh2OiBCdWZmZXIgfCBzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuICAgIGZvciAoY29uc3QgZW5jb2Rpbmcgb2YgWydiYXNlNjQnLCAnaGV4J10gYXMgY29uc3QpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0b0Jhc2U2NChkZWNvZGVDaGVjayh2LCBlbmNvZGluZykpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyB0cnkgbmV4dFxuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmFzZTY0IG9yIGhleCBlbmNvZGluZzogJHt2fWApO1xuICB9XG5cbiAgcmV0dXJuIHYudG9TdHJpbmcoJ2Jhc2U2NCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lnbmVkUHNidChcbiAgcHNidDogYml0Y29pbmpzbGliLlBzYnQsXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIHNpZ25lcnM6IHV0eG9saWIuRUNQYWlySW50ZXJmYWNlW10sXG4gIHsgZmluYWxpemUgPSBmYWxzZSB9XG4pOiBiaXRjb2luanNsaWIuUHNidCB7XG4gIGNvbnN0IHdyYXBwZWRQc2J0ID0gdG9XcmFwcGVkUHNidChwc2J0LnRvQnVmZmVyKCkpO1xuICBjb25zdCBzaWduZWRJbnB1dHMgPSBwc2J0LmRhdGEuaW5wdXRzLmZsYXRNYXAoKGlucHV0LCBpKSA9PiB7XG4gICAgYXNzZXJ0KGlucHV0LndpdG5lc3NVdHhvKTtcbiAgICBpZiAoQnVmZmVyLmZyb20oZGVzY3JpcHRvci5zY3JpcHRQdWJrZXkoKSkuZXF1YWxzKGlucHV0LndpdG5lc3NVdHhvLnNjcmlwdCkpIHtcbiAgICAgIHdyYXBwZWRQc2J0LnVwZGF0ZUlucHV0V2l0aERlc2NyaXB0b3IoaSwgZGVzY3JpcHRvcik7XG4gICAgICBjb25zdCBzaWduUmVzdWx0cyA9IHNpZ25lcnMubWFwKChzaWduZXIpID0+IHtcbiAgICAgICAgYXNzZXJ0KHNpZ25lci5wcml2YXRlS2V5KTtcbiAgICAgICAgcmV0dXJuIHdyYXBwZWRQc2J0LnNpZ25XaXRoUHJ2KHNpZ25lci5wcml2YXRlS2V5KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFtbaSwgc2lnblJlc3VsdHNdXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9KTtcbiAgYXNzZXJ0KHNpZ25lZElucHV0cy5sZW5ndGggPiAwKTtcbiAgaWYgKGZpbmFsaXplKSB7XG4gICAgd3JhcHBlZFBzYnQuZmluYWxpemUoKTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzbGliLlBzYnQuZnJvbUJ1ZmZlcihCdWZmZXIuZnJvbSh3cmFwcGVkUHNidC5zZXJpYWxpemUoKSkpO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgbWV0aG9kIHRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIGJ0Yy1zdGFraW5nLXRzXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYnRjLXN0YWtpbmctdHMvaXNzdWVzLzcxXG4gKiBAcGFyYW0gdlxuICogQHBhcmFtIG5ldHdvcmtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcmNlRmluYWxpemVQc2J0KFxuICB2OiBCdWZmZXIgfCB1dHhvbGliLlBzYnQgfCBiaXRjb2luanNsaWIuUHNidCxcbiAgbmV0d29yazogQmFieWxvbk5ldHdvcmtMaWtlXG4pOiBiaXRjb2luanNsaWIuUHNidCB7XG4gIGlmICh2IGluc3RhbmNlb2YgdXR4b2xpYi5Qc2J0KSB7XG4gICAgdiA9IHYudG9CdWZmZXIoKTtcbiAgfVxuICBpZiAodiBpbnN0YW5jZW9mIGJpdGNvaW5qc2xpYi5Qc2J0KSB7XG4gICAgdiA9IHYudG9CdWZmZXIoKTtcbiAgfVxuICBjb25zdCBwc2J0ID0gYml0Y29pbmpzbGliLlBzYnQuZnJvbUJ1ZmZlcih2LCB7IG5ldHdvcms6IHRvQml0Y29pbkpzTmV0d29yayhuZXR3b3JrKSB9KTtcbiAgLy8gdGhpcyBvbmx5IHdvcmtzIHdpdGggY2VydGFpbiBiaXRjb2luanNsaWIgdmVyc2lvbnNcbiAgcHNidC5maW5hbGl6ZUFsbElucHV0cygpO1xuICByZXR1cm4gcHNidDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ0Y1Byb3ZpZGVyRm9yRUNLZXkoXG4gIGRlc2NyaXB0b3JCdWlsZGVyOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIsXG4gIHN0YWtlcktleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2Vcbik6IHZlbmRvci5CdGNQcm92aWRlciB7XG4gIGZ1bmN0aW9uIHNpZ25XaXRoRGVzY3JpcHRvcihcbiAgICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCxcbiAgICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICAgIGtleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2VcbiAgKTogYml0Y29pbmpzbGliLlBzYnQge1xuICAgIHBzYnQgPSBnZXRTaWduZWRQc2J0KHBzYnQsIGRlc2NyaXB0b3IsIFtrZXldLCB7IGZpbmFsaXplOiBmYWxzZSB9KTtcbiAgICAvLyBCVUc6IHdlIG5lZWQgdG8gYmxpbmRseSBmaW5hbGl6ZSBoZXJlIGV2ZW4gdGhvdWdoIHdlIGhhdmUgbm90IGZ1bGx5IHNpZ25lZFxuICAgIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNpZ25CaXAzMjJTaW1wbGUobWVzc2FnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBHZXQgdGhlIHNjcmlwdCBwdWJsaWMga2V5IGZyb20gdGhlIHN0YWtpbmcgZGVzY3JpcHRvclxuICAgIGNvbnN0IHNjcmlwdFB1YktleSA9IEJ1ZmZlci5mcm9tKGRlc2NyaXB0b3JCdWlsZGVyLmdldFN0YWtpbmdEZXNjcmlwdG9yKCkuc2NyaXB0UHVia2V5KCkpO1xuICAgIGNvbnN0IHRvU3BlbmRUeCA9IEJJUDMyMi5idWlsZFRvU3BlbmRUeChtZXNzYWdlLCBzY3JpcHRQdWJLZXkpO1xuXG4gICAgLy8gR2V0IHRoZSB0b19zcGVuZCB0eGlkXG4gICAgY29uc3QgdG9TcGVuZFR4SWQgPSB0b1NwZW5kVHguZ2V0SWQoKTtcblxuICAgIC8vIENyZWF0ZSBQU0JUIG9iamVjdCBmb3IgY29uc3RydWN0aW5nIHRoZSB0cmFuc2FjdGlvblxuICAgIGNvbnN0IHRvU2lnblBzYnQgPSBuZXcgYml0Y29pbmpzbGliLlBzYnQoKTtcbiAgICB0b1NpZ25Qc2J0LnNldFZlcnNpb24oMik7IC8vIG5WZXJzaW9uID0gMFxuICAgIHRvU2lnblBzYnQuc2V0TG9ja3RpbWUoMCk7IC8vIG5Mb2NrVGltZSA9IDBcbiAgICB0b1NpZ25Qc2J0LmFkZElucHV0KHtcbiAgICAgIGhhc2g6IHRvU3BlbmRUeElkLFxuICAgICAgaW5kZXg6IDAsXG4gICAgICBzZXF1ZW5jZTogZGVzY3JpcHRvckJ1aWxkZXIuc3Rha2luZ1RpbWVMb2NrLFxuICAgICAgd2l0bmVzc1V0eG86IHtcbiAgICAgICAgc2NyaXB0OiBzY3JpcHRQdWJLZXksXG4gICAgICAgIHZhbHVlOiAwLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFNpZ24gdGhlIFBTQlQgd2l0aCB0aGUgc3Rha2VyIGtleVxuICAgIGNvbnN0IHdyYXBwZWRQc2J0ID0gdG9XcmFwcGVkUHNidCh0b1NpZ25Qc2J0LnRvQnVmZmVyKCkpO1xuICAgIHdyYXBwZWRQc2J0LnVwZGF0ZUlucHV0V2l0aERlc2NyaXB0b3IoMCwgZGVzY3JpcHRvckJ1aWxkZXIuZ2V0U3Rha2luZ0Rlc2NyaXB0b3IoKSk7XG4gICAgc2lnbldpdGhLZXkod3JhcHBlZFBzYnQsIHN0YWtlcktleSk7XG4gICAgd3JhcHBlZFBzYnQuZmluYWxpemUoKTtcblxuICAgIC8vIEVuY29kZSB0aGUgd2l0bmVzcyBkYXRhIGFuZCByZXR1cm5cbiAgICByZXR1cm4gQklQMzIyLmVuY29kZVdpdG5lc3MoYml0Y29pbmpzbGliLlBzYnQuZnJvbUJ1ZmZlcihCdWZmZXIuZnJvbSh3cmFwcGVkUHNidC5zZXJpYWxpemUoKSkpKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gdHlwZVxuICAgICAqIEByZXR1cm5zIEJhc2U2NCBlbmNvZGVkIHN0cmluZ1xuICAgICAqL1xuICAgIGFzeW5jIHNpZ25NZXNzYWdlKG1lc3NhZ2U6IHN0cmluZywgdHlwZTogJ2VjZHNhJyB8ICdiaXAzMjItc2ltcGxlJyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnZWNkc2EnOlxuICAgICAgICAgIHJldHVybiB0b0Jhc2U2NChzdGFrZXJLZXkuc2lnbihCdWZmZXIuZnJvbShtZXNzYWdlLCAnaGV4JykpKTtcbiAgICAgICAgY2FzZSAnYmlwMzIyLXNpbXBsZSc6XG4gICAgICAgICAgcmV0dXJuIHRvQmFzZTY0KHNpZ25CaXAzMjJTaW1wbGUobWVzc2FnZSkpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCB0eXBlOiAke3R5cGV9YCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFzeW5jIHNpZ25Qc2J0KHBzYnRIZXg6IHN0cmluZywgb3B0aW9uczogdmVuZG9yLlNpZ25Qc2J0T3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICBjb25zdCBwc2J0ID0gYml0Y29pbmpzbGliLlBzYnQuZnJvbUhleChwc2J0SGV4KTtcbiAgICAgIHN3aXRjaCAob3B0aW9ucy5hY3Rpb24ubmFtZSkge1xuICAgICAgICBjYXNlICdzaWduLWJ0Yy1zbGFzaGluZy10cmFuc2FjdGlvbic6XG4gICAgICAgICAgcmV0dXJuIHNpZ25XaXRoRGVzY3JpcHRvcihwc2J0LCBkZXNjcmlwdG9yQnVpbGRlci5nZXRTdGFraW5nRGVzY3JpcHRvcigpLCBzdGFrZXJLZXkpLnRvSGV4KCk7XG4gICAgICAgIGNhc2UgJ3NpZ24tYnRjLXVuYm9uZGluZy1zbGFzaGluZy10cmFuc2FjdGlvbic6XG4gICAgICAgICAgcmV0dXJuIHNpZ25XaXRoRGVzY3JpcHRvcihwc2J0LCBkZXNjcmlwdG9yQnVpbGRlci5nZXRVbmJvbmRpbmdEZXNjcmlwdG9yKCksIHN0YWtlcktleSkudG9IZXgoKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgc2lnbmluZyBzdGVwOiAke29wdGlvbnMuYWN0aW9uLm5hbWV9YCk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cbnR5cGUgUmVzdWx0ID0ge1xuICB1bnNpZ25lZERlbGVnYXRpb25Nc2c6IFZhbHVlV2l0aFR5cGVVcmw8YmFieWxvblByb3RvYnVmLmJ0Y3N0YWtpbmd0eC5Nc2dDcmVhdGVCVENEZWxlZ2F0aW9uPjtcbiAgc3Rha2luZ1R4OiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb247XG59O1xuXG4vKipcbiAqIEBwYXJhbSBzdGFraW5nS2V5IC0gdGhpcyBpcyB0aGUgc2luZ2xlLXNpZyBrZXkgdGhhdCBpcyB1c2VkIGZvciBjby1zaWduaW5nIHRoZSBzdGFraW5nIG91dHB1dFxuICogQHBhcmFtIGNoYW5nZUFkZHJlc3MgLSB0aGlzIGlzIHVucmVsYXRlZCB0byB0aGUgc3Rha2luZyBrZXkgYW5kIGlzIHVzZWQgZm9yIHRoZSBjaGFuZ2Ugb3V0cHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1N0YWtlckluZm8oXG4gIHN0YWtpbmdLZXk6IHV0eG9saWIuRUNQYWlySW50ZXJmYWNlIHwgQnVmZmVyIHwgc3RyaW5nLFxuICBjaGFuZ2VBZGRyZXNzOiBzdHJpbmdcbik6IHZlbmRvci5TdGFrZXJJbmZvIHtcbiAgaWYgKHR5cGVvZiBzdGFraW5nS2V5ID09PSAnb2JqZWN0JyAmJiAncHVibGljS2V5JyBpbiBzdGFraW5nS2V5KSB7XG4gICAgc3Rha2luZ0tleSA9IHN0YWtpbmdLZXkucHVibGljS2V5O1xuICB9XG4gIGlmICh0eXBlb2Ygc3Rha2luZ0tleSA9PT0gJ3N0cmluZycpIHtcbiAgICBzdGFraW5nS2V5ID0gQnVmZmVyLmZyb20oc3Rha2luZ0tleSwgJ2hleCcpO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHVibGljS2V5Tm9Db29yZEhleDogdG9YT25seVB1YmxpY0tleShzdGFraW5nS2V5KS50b1N0cmluZygnaGV4JyksXG4gICAgYWRkcmVzczogY2hhbmdlQWRkcmVzcyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0YWtpbmcoXG4gIG5ldHdvcms6IEJhYnlsb25OZXR3b3JrTGlrZSxcbiAgYmxvY2tIZWlnaHQ6IG51bWJlcixcbiAgc3Rha2VyQnRjSW5mbzogdmVuZG9yLlN0YWtlckluZm8sXG4gIHN0YWtpbmdJbnB1dDogdmVuZG9yLlN0YWtpbmdJbnB1dHMsXG4gIHZlcnNpb25lZFBhcmFtczogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IGdldFN0YWtpbmdQYXJhbXMobmV0d29yaylcbik6IHZlbmRvci5TdGFraW5nIHtcbiAgaWYgKGJsb2NrSGVpZ2h0ID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCYWJ5bG9uIEJUQyB0aXAgaGVpZ2h0IGNhbm5vdCBiZSAwJyk7XG4gIH1cblxuICAvLyBHZXQgdGhlIEJhYnlsb24gcGFyYW1zIGJhc2VkIG9uIHRoZSBCVEMgdGlwIGhlaWdodCBmcm9tIEJhYnlsb24gY2hhaW5cbiAgY29uc3QgcGFyYW1zID0gdmVuZG9yLmdldEJhYnlsb25QYXJhbUJ5QnRjSGVpZ2h0KGJsb2NrSGVpZ2h0LCB2ZXJzaW9uZWRQYXJhbXMpO1xuXG4gIHJldHVybiBuZXcgdmVuZG9yLlN0YWtpbmcoXG4gICAgdG9CaXRjb2luSnNOZXR3b3JrKG5ldHdvcmspLFxuICAgIHN0YWtlckJ0Y0luZm8sXG4gICAgcGFyYW1zLFxuICAgIHN0YWtpbmdJbnB1dC5maW5hbGl0eVByb3ZpZGVyUGtzTm9Db29yZEhleCxcbiAgICBzdGFraW5nSW5wdXQuc3Rha2luZ1RpbWVsb2NrXG4gICk7XG59XG5cbnR5cGUgVHJhbnNhY3Rpb25MaWtlID1cbiAgfCBiaXRjb2luanNsaWIuUHNidFxuICB8IGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvblxuICB8IHV0eG9saWIuVHJhbnNhY3Rpb25cbiAgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+XG4gIHwgdXR4b2xpYi5Qc2J0XG4gIHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcblxuZnVuY3Rpb24gdG9TdGFraW5nVHJhbnNhY3Rpb25Gcm9tUHNidChcbiAgcHNidDogYml0Y29pbmpzbGliLlBzYnQgfCB1dHhvbGliLlBzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0XG4pOiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb24ge1xuICBpZiAoIShwc2J0IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkpIHtcbiAgICBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUJ1ZmZlcihwc2J0LnRvQnVmZmVyKCksIHV0eG9saWIubmV0d29ya3MuYml0Y29pbik7XG4gIH1cbiAgaWYgKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgLy8gb25seSB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IGhhcyB0aGUgZ2V0VW5zaWduZWRUeCBtZXRob2RcbiAgICByZXR1cm4gYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uLmZyb21IZXgocHNidC5nZXRVbnNpZ25lZFR4KCkudG9IZXgoKSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdpbGxlZ2FsIHN0YXRlJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1N0YWtpbmdUcmFuc2FjdGlvbih0eDogVHJhbnNhY3Rpb25MaWtlKTogYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uIHtcbiAgaWYgKHR4IGluc3RhbmNlb2YgYml0Y29pbmpzbGliLlBzYnQgfHwgdHggaW5zdGFuY2VvZiB1dHhvbGliLlBzYnQpIHtcbiAgICByZXR1cm4gdG9TdGFraW5nVHJhbnNhY3Rpb25Gcm9tUHNidCh0eCk7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvbi5mcm9tSGV4KHR4LnRvSGV4KCkpO1xufVxuXG4vKlxuICogVGhpcyBpcyBtb3N0bHkgbGlmdGVkIGZyb21cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9idGMtc3Rha2luZy10cy9ibG9iL3YwLjQuMC1yYy4yL3NyYy9zdGFraW5nL21hbmFnZXIudHMjTDEwMC1MMTcyXG4gKlxuICogVGhlIGRpZmZlcmVuY2UgaXMgdGhhdCBoZXJlIHdlIGFyZSByZXR1cm5pbmcgYW4gX3Vuc2lnbmVkXyBkZWxlZ2F0aW9uIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVEZWxlZ2F0aW9uTWVzc2FnZVdpdGhUcmFuc2FjdGlvbihcbiAgY2hhbm5lbDogJ2RlbGVnYXRpb246Y3JlYXRlJyB8ICdkZWxlZ2F0aW9uOnJlZ2lzdGVyJyxcbiAgbWFuYWdlcjogdmVuZG9yLkJhYnlsb25CdGNTdGFraW5nTWFuYWdlcixcbiAgc3Rha2luZzogdmVuZG9yLlN0YWtpbmcsXG4gIHN0YWtpbmdBbW91bnRTYXQ6IG51bWJlcixcbiAgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uTGlrZSxcbiAgYmFieWxvbkFkZHJlc3M6IHN0cmluZ1xuKTogUHJvbWlzZTxWYWx1ZVdpdGhUeXBlVXJsPGJhYnlsb25Qcm90b2J1Zi5idGNzdGFraW5ndHguTXNnQ3JlYXRlQlRDRGVsZWdhdGlvbj4+IHtcbiAgaWYgKCF2ZW5kb3IuaXNWYWxpZEJhYnlsb25BZGRyZXNzKGJhYnlsb25BZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBCYWJ5bG9uIGFkZHJlc3MnKTtcbiAgfVxuICAvLyBDcmVhdGUgZGVsZWdhdGlvbiBtZXNzYWdlIHdpdGhvdXQgaW5jbHVkaW5nIGluY2x1c2lvbiBwcm9vZlxuICByZXR1cm4gbWFuYWdlci5jcmVhdGVCdGNEZWxlZ2F0aW9uTXNnKFxuICAgIGNoYW5uZWwsXG4gICAgc3Rha2luZyxcbiAgICB7XG4gICAgICBzdGFraW5nVGltZWxvY2s6IHN0YWtpbmcuc3Rha2luZ1RpbWVsb2NrLFxuICAgICAgZmluYWxpdHlQcm92aWRlclBrc05vQ29vcmRIZXg6IHN0YWtpbmcuZmluYWxpdHlQcm92aWRlclBrc05vQ29vcmRIZXgsXG4gICAgICBzdGFraW5nQW1vdW50U2F0LFxuICAgIH0sXG4gICAgdG9TdGFraW5nVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pLFxuICAgIGJhYnlsb25BZGRyZXNzLFxuICAgIHN0YWtpbmcuc3Rha2VySW5mbyxcbiAgICBzdGFraW5nLnBhcmFtc1xuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbldpdGhCdGNQcm92aWRlcihcbiAgYnRjUHJvdmlkZXI6IHZlbmRvci5CdGNQcm92aWRlcixcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICBiYWJ5bG9uQnRjVGlwSGVpZ2h0OiBudW1iZXIsXG4gIGlucHV0VVRYT3M6IHZlbmRvci5VVFhPW10sXG4gIGZlZVJhdGVTYXRCOiBudW1iZXIsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmcsXG4gIGNoYW5uZWw6ICdkZWxlZ2F0aW9uOmNyZWF0ZScgfCAnZGVsZWdhdGlvbjpyZWdpc3RlcicsXG4gIHN0YWtpbmdQYXJhbXM6IHZlbmRvci5WZXJzaW9uZWRTdGFraW5nUGFyYW1zW10gPSBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcmspXG4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICBpZiAoaW5wdXRVVFhPcy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGlucHV0IFVUWE9zIHByb3ZpZGVkJyk7XG4gIH1cbiAgY29uc3QgbWFuYWdlciA9IGNyZWF0ZVN0YWtpbmdNYW5hZ2VyKG5ldHdvcmssIGJ0Y1Byb3ZpZGVyLCBzdGFraW5nUGFyYW1zKTtcbiAgY29uc3Qgc3Rha2luZyA9IGNyZWF0ZVN0YWtpbmcobmV0d29yaywgYmFieWxvbkJ0Y1RpcEhlaWdodCwgc3Rha2VyQnRjSW5mbywgc3Rha2luZ0lucHV0LCBzdGFraW5nUGFyYW1zKTtcbiAgLy8gQ3JlYXRlIHVuc2lnbmVkIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgY29uc3QgeyB0cmFuc2FjdGlvbiB9ID0gc3Rha2luZy5jcmVhdGVTdGFraW5nVHJhbnNhY3Rpb24oc3Rha2luZ0lucHV0LnN0YWtpbmdBbW91bnRTYXQsIGlucHV0VVRYT3MsIGZlZVJhdGVTYXRCKTtcbiAgY29uc3QgdW5zaWduZWREZWxlZ2F0aW9uTXNnID0gYXdhaXQgY3JlYXRlRGVsZWdhdGlvbk1lc3NhZ2VXaXRoVHJhbnNhY3Rpb24oXG4gICAgY2hhbm5lbCxcbiAgICBtYW5hZ2VyLFxuICAgIHN0YWtpbmcsXG4gICAgc3Rha2luZ0lucHV0LnN0YWtpbmdBbW91bnRTYXQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmFieWxvbkFkZHJlc3NcbiAgKTtcbiAgcmV0dXJuIHsgdW5zaWduZWREZWxlZ2F0aW9uTXNnLCBzdGFraW5nVHg6IHRyYW5zYWN0aW9uIH07XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stakingManager.d.ts","sourceRoot":"","sources":["../../../src/babylon/stakingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"stakingManager.d.ts","sourceRoot":"","sources":["../../../src/babylon/stakingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAC;AA2E/D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAIxC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAC/C,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,aAAa,CAAC,EAAE,MAAM,CAAC,sBAAsB,EAAE,EAC/C,eAAe,yBAAsB,GACpC,MAAM,CAAC,wBAAwB,CAiBjC"}
|
|
@@ -60,7 +60,7 @@ class BitGoStakingManager extends vendor.BabylonBtcStakingManager {
|
|
|
60
60
|
* @returns The proof of possession.
|
|
61
61
|
*/
|
|
62
62
|
async createProofOfPossessionWithSigType(bech32Address, stakerBtcAddress, sigType) {
|
|
63
|
-
const signedBabylonAddress = await this.btcProvider.signMessage(
|
|
63
|
+
const signedBabylonAddress = await this.btcProvider.signMessage(bech32Address, sigType === pop_1.BTCSigType.BIP322 ? 'bip322-simple' : 'ecdsa');
|
|
64
64
|
let btcSig;
|
|
65
65
|
if (sigType === pop_1.BTCSigType.BIP322) {
|
|
66
66
|
const bip322Sig = pop_1.BIP322Sig.fromPartial({
|
|
@@ -113,4 +113,4 @@ function createStakingManager(network, btcProvider, stakingParams, babylonProvid
|
|
|
113
113
|
}
|
|
114
114
|
return new BitGoStakingManager(network, stakingParams ?? (0, stakingParams_1.getStakingParams)(network), btcProvider, babylonProvider);
|
|
115
115
|
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9zdGFraW5nTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtRkEsb0RBc0JDO0FBekdELDREQUE4QztBQUM5Qyx5REFBMkM7QUFDM0MsNkVBQStEO0FBQy9ELG1HQUltRjtBQUVuRixtREFBbUQ7QUFFbkQ7OztHQUdHO0FBQ0gsTUFBTSxtQkFBb0IsU0FBUSxNQUFNLENBQUMsd0JBQXdCO0lBQy9ELFlBQ0UsT0FBNkIsRUFDN0IsYUFBOEMsRUFDOUMsV0FBK0IsRUFDL0IsZUFBdUM7UUFFdkMsS0FBSyxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLGtDQUFrQyxDQUN0QyxhQUFxQixFQUNyQixnQkFBd0IsRUFDeEIsT0FBbUI7UUFFbkIsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUM3RCxhQUFhLEVBQ2IsT0FBTyxLQUFLLGdCQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDMUQsQ0FBQztRQUVGLElBQUksTUFBa0IsQ0FBQztRQUN2QixJQUFJLE9BQU8sS0FBSyxnQkFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLGVBQVMsQ0FBQyxXQUFXLENBQUM7Z0JBQ3RDLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQzthQUNqRCxDQUFDLENBQUM7WUFDSCxxREFBcUQ7WUFDckQsTUFBTSxHQUFHLGVBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTiw2Q0FBNkM7WUFDN0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELE9BQU87WUFDTCxVQUFVLEVBQUUsT0FBTztZQUNuQixNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxhQUFxQixFQUFFLGdCQUF3QjtRQUMzRSxpQ0FBaUM7UUFDakMsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGdCQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEcsQ0FBQztDQUNGO0FBRVksUUFBQSxtQkFBbUIsR0FBMkI7SUFDekQsZUFBZTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQWdCLG9CQUFvQixDQUNsQyxPQUErQyxFQUMvQyxXQUErQixFQUMvQixhQUErQyxFQUMvQyxlQUFlLEdBQUcsMkJBQW1CO0lBRXJDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsT0FBTyxFQUFFLENBQUM7WUFDaEIsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU87Z0JBQzNCLE9BQU8sR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDeEMsTUFBTTtZQUNSLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDOUIsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7Z0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztZQUNwRixLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CO2dCQUN2QyxPQUFPLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3hDLE1BQU07WUFDUjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksbUJBQW1CLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxJQUFBLGdDQUFnQixFQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNwSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYml0Y29pbmpzbGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0ICogYXMgdmVuZG9yIGZyb20gJ0BiaXRnby9iYWJ5bG9ubGFicy1pby1idGMtc3Rha2luZy10cyc7XG5pbXBvcnQge1xuICBCSVAzMjJTaWcsXG4gIEJUQ1NpZ1R5cGUsXG4gIFByb29mT2ZQb3NzZXNzaW9uQlRDLFxufSBmcm9tICdAYmFieWxvbmxhYnMtaW8vYmFieWxvbi1wcm90by10cy9kaXN0L2dlbmVyYXRlZC9iYWJ5bG9uL2J0Y3N0YWtpbmcvdjEvcG9wJztcblxuaW1wb3J0IHsgZ2V0U3Rha2luZ1BhcmFtcyB9IGZyb20gJy4vc3Rha2luZ1BhcmFtcyc7XG5cbi8qKlxuICogU3ViY2xhc3Mgb2YgQmFieWxvbkJ0Y1N0YWtpbmdNYW5hZ2VyIHdpdGggdGhlIHNvbGUgcHVycG9zZSBvZiBmb3JjaW5nXG4gKiBhIEVDRFNBIHNpZ25hdHVyZS5cbiAqL1xuY2xhc3MgQml0R29TdGFraW5nTWFuYWdlciBleHRlbmRzIHZlbmRvci5CYWJ5bG9uQnRjU3Rha2luZ01hbmFnZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBuZXR3b3JrOiBiaXRjb2luanNsaWIuTmV0d29yayxcbiAgICBzdGFraW5nUGFyYW1zOiB2ZW5kb3IuVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdLFxuICAgIGJ0Y1Byb3ZpZGVyOiB2ZW5kb3IuQnRjUHJvdmlkZXIsXG4gICAgYmFieWxvblByb3ZpZGVyOiB2ZW5kb3IuQmFieWxvblByb3ZpZGVyXG4gICkge1xuICAgIHN1cGVyKG5ldHdvcmssIHN0YWtpbmdQYXJhbXMsIGJ0Y1Byb3ZpZGVyLCBiYWJ5bG9uUHJvdmlkZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwcm9vZiBvZiBwb3NzZXNzaW9uIGZvciB0aGUgc3Rha2VyIGJhc2VkIG9uIEVDRFNBIHNpZ25hdHVyZS5cbiAgICpcbiAgICogVGhpcyBpcyBhIHBhcmFtZXRlcml6ZWQgdmVyc2lvbiBvZiB0aGUgc3VwZXJjbGFzcyBtZXRob2Qgd2hpY2ggaW5mZXJzXG4gICAqIHRoZSBzaWduYXR1cmUgdHlwZSBmcm9tIHRoZSBzdGFrZXJCdGNBZGRyZXNzLlxuICAgKlxuICAgKiBAcGFyYW0gYmVjaDMyQWRkcmVzcyAtIFRoZSBzdGFrZXIncyBiZWNoMzIgYWRkcmVzcyBvbiB0aGUgYmFieWxvbiBuZXR3b3JrLlxuICAgKiBAcGFyYW0gc3Rha2VyQnRjQWRkcmVzcyAtIFRoZSBzdGFrZXIncyBCVEMgYWRkcmVzcy5cbiAgICogQHBhcmFtIHNpZ1R5cGUgLSBUaGUgc2lnbmF0dXJlIHR5cGUgKEJJUDMyMiBvciBFQ0RTQSkuXG4gICAqIEByZXR1cm5zIFRoZSBwcm9vZiBvZiBwb3NzZXNzaW9uLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlUHJvb2ZPZlBvc3Nlc3Npb25XaXRoU2lnVHlwZShcbiAgICBiZWNoMzJBZGRyZXNzOiBzdHJpbmcsXG4gICAgc3Rha2VyQnRjQWRkcmVzczogc3RyaW5nLFxuICAgIHNpZ1R5cGU6IEJUQ1NpZ1R5cGVcbiAgKTogUHJvbWlzZTxQcm9vZk9mUG9zc2Vzc2lvbkJUQz4ge1xuICAgIGNvbnN0IHNpZ25lZEJhYnlsb25BZGRyZXNzID0gYXdhaXQgdGhpcy5idGNQcm92aWRlci5zaWduTWVzc2FnZShcbiAgICAgIGJlY2gzMkFkZHJlc3MsXG4gICAgICBzaWdUeXBlID09PSBCVENTaWdUeXBlLkJJUDMyMiA/ICdiaXAzMjItc2ltcGxlJyA6ICdlY2RzYSdcbiAgICApO1xuXG4gICAgbGV0IGJ0Y1NpZzogVWludDhBcnJheTtcbiAgICBpZiAoc2lnVHlwZSA9PT0gQlRDU2lnVHlwZS5CSVAzMjIpIHtcbiAgICAgIGNvbnN0IGJpcDMyMlNpZyA9IEJJUDMyMlNpZy5mcm9tUGFydGlhbCh7XG4gICAgICAgIGFkZHJlc3M6IHN0YWtlckJ0Y0FkZHJlc3MsXG4gICAgICAgIHNpZzogQnVmZmVyLmZyb20oc2lnbmVkQmFieWxvbkFkZHJlc3MsICdiYXNlNjQnKSxcbiAgICAgIH0pO1xuICAgICAgLy8gRW5jb2RlIHRoZSBCSVAzMjIgcHJvdG9idWYgbWVzc2FnZSB0byBhIFVpbnQ4QXJyYXlcbiAgICAgIGJ0Y1NpZyA9IEJJUDMyMlNpZy5lbmNvZGUoYmlwMzIyU2lnKS5maW5pc2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRW5jb2RlIHRoZSBFQ0RTQSBzaWduYXR1cmUgdG8gYSBVaW50OEFycmF5XG4gICAgICBidGNTaWcgPSBCdWZmZXIuZnJvbShzaWduZWRCYWJ5bG9uQWRkcmVzcywgJ2Jhc2U2NCcpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBidGNTaWdUeXBlOiBzaWdUeXBlLFxuICAgICAgYnRjU2lnLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHByb29mIG9mIHBvc3Nlc3Npb24gZm9yIHRoZSBzdGFrZXIgYmFzZWQgb24gRUNEU0Egc2lnbmF0dXJlLlxuICAgKiBAcGFyYW0gYmVjaDMyQWRkcmVzcyAtIFRoZSBzdGFrZXIncyBiZWNoMzIgYWRkcmVzcyBvbiB0aGUgYmFieWxvbiBuZXR3b3JrLlxuICAgKiBAcGFyYW0gc3Rha2VyQnRjQWRkcmVzc1xuICAgKiBAcmV0dXJucyBUaGUgcHJvb2Ygb2YgcG9zc2Vzc2lvbi5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVByb29mT2ZQb3NzZXNzaW9uKGJlY2gzMkFkZHJlc3M6IHN0cmluZywgc3Rha2VyQnRjQWRkcmVzczogc3RyaW5nKTogUHJvbWlzZTxQcm9vZk9mUG9zc2Vzc2lvbkJUQz4ge1xuICAgIC8vIGZvcmNlIHRoZSBFQ0RTQSBzaWduYXR1cmUgdHlwZVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVByb29mT2ZQb3NzZXNzaW9uV2l0aFNpZ1R5cGUoYmVjaDMyQWRkcmVzcywgc3Rha2VyQnRjQWRkcmVzcywgQlRDU2lnVHlwZS5FQ0RTQSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1vY2tCYWJ5bG9uUHJvdmlkZXI6IHZlbmRvci5CYWJ5bG9uUHJvdmlkZXIgPSB7XG4gIHNpZ25UcmFuc2FjdGlvbigpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Z1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdGFraW5nTWFuYWdlcihcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmsgfCB1dHhvbGliLk5ldHdvcmssXG4gIGJ0Y1Byb3ZpZGVyOiB2ZW5kb3IuQnRjUHJvdmlkZXIsXG4gIHN0YWtpbmdQYXJhbXM/OiB2ZW5kb3IuVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdLFxuICBiYWJ5bG9uUHJvdmlkZXIgPSBtb2NrQmFieWxvblByb3ZpZGVyXG4pOiB2ZW5kb3IuQmFieWxvbkJ0Y1N0YWtpbmdNYW5hZ2VyIHtcbiAgaWYgKHV0eG9saWIuaXNWYWxpZE5ldHdvcmsobmV0d29yaykpIHtcbiAgICBzd2l0Y2ggKG5ldHdvcmspIHtcbiAgICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luOlxuICAgICAgICBuZXR3b3JrID0gYml0Y29pbmpzbGliLm5ldHdvcmtzLmJpdGNvaW47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQ6XG4gICAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pblRlc3RuZXQ0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGJpdGNvaW4gdGVzdG5ldCBuZXR3b3JrIC0gb25seSBzaWduZXQgaXMgc3VwcG9ydGVkJyk7XG4gICAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pblB1YmxpY1NpZ25ldDpcbiAgICAgICAgbmV0d29yayA9IGJpdGNvaW5qc2xpYi5uZXR3b3Jrcy50ZXN0bmV0O1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3IEJpdEdvU3Rha2luZ01hbmFnZXIobmV0d29yaywgc3Rha2luZ1BhcmFtcyA/PyBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcmspLCBidGNQcm92aWRlciwgYmFieWxvblByb3ZpZGVyKTtcbn1cbiJdfQ==
|
|
@@ -123,10 +123,10 @@ function getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingTim
|
|
|
123
123
|
}
|
|
124
124
|
function getDescriptorProviderForStakingParams(stakerBtcInfo, stakingInput, stakingParams) {
|
|
125
125
|
const userKey = Buffer.from(stakerBtcInfo.publicKeyNoCoordHex, 'hex');
|
|
126
|
-
const
|
|
127
|
-
return getDescriptorBuilderForParams(userKey,
|
|
126
|
+
const finalityProviderKeys = stakingInput.finalityProviderPksNoCoordHex.map((pk) => Buffer.from(pk, 'hex'));
|
|
127
|
+
return getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingInput.stakingTimelock, stakingParams);
|
|
128
128
|
}
|
|
129
129
|
function getTestnetDescriptorBuilder(userKey, { finalityProviderKeys = [exports.testnetFinalityProvider0], params = (0, babylonlabs_io_btc_staking_ts_1.getBabylonParamByVersion)(5, getStakingParams('testnet')), stakingTimelock = params.minStakingTimeBlocks, } = {}) {
|
|
130
130
|
return getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingTimelock, params);
|
|
131
131
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1BhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL3N0YWtpbmdQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0NBLDhDQWtCQztBQXVCRCw0Q0FTQztBQWFELHNFQWlCQztBQUVELHNGQVFDO0FBRUQsa0VBYUM7QUFqSkQseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyx5Q0FBc0M7QUFDdEMseURBQXNEO0FBRXRELHdGQU04QztBQUM5QyxzRkFBNEc7QUFBbkcseUlBQUEsd0JBQXdCLE9BQUE7QUFBRSwySUFBQSwwQkFBMEIsT0FBQTtBQUU3RCw2Q0FBd0Q7QUFDeEQsZ0ZBQXNEO0FBQ3RELGdGQUFzRDtBQUN0RCx1Q0FBaUU7QUFFakUsZ0VBQWdFO0FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvQixZQUFZLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUN6QixxQkFBcUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQzFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDMUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDNUIsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUM1QyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkIscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDL0IsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUN0QyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQ3hDLGdDQUFnQyxF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cG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0ICogYXMgdHQgZnJvbSAnaW8tdHMtdHlwZXMnO1xuaW1wb3J0IHsgaXNMZWZ0IH0gZnJvbSAnZnAtdHMvRWl0aGVyJztcbmltcG9ydCB7IFBhdGhSZXBvcnRlciB9IGZyb20gJ2lvLXRzL2xpYi9QYXRoUmVwb3J0ZXInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHtcbiAgZ2V0QmFieWxvblBhcmFtQnlWZXJzaW9uLFxuICBTdGFrZXJJbmZvLFxuICBTdGFraW5nSW5wdXRzLFxuICBTdGFraW5nUGFyYW1zLFxuICBWZXJzaW9uZWRTdGFraW5nUGFyYW1zLFxufSBmcm9tICdAYml0Z28vYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuZXhwb3J0IHsgZ2V0QmFieWxvblBhcmFtQnlWZXJzaW9uLCBnZXRCYWJ5bG9uUGFyYW1CeUJ0Y0hlaWdodCB9IGZyb20gJ0BiaXRnby9iYWJ5bG9ubGFicy1pby1idGMtc3Rha2luZy10cyc7XG5cbmltcG9ydCB7IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5pbXBvcnQganNvbk1haW5uZXRQYXJhbXMgZnJvbSAnLi9wYXJhbXMubWFpbm5ldC5qc29uJztcbmltcG9ydCBqc29uVGVzdG5ldFBhcmFtcyBmcm9tICcuL3BhcmFtcy50ZXN0bmV0Lmpzb24nO1xuaW1wb3J0IHsgQmFieWxvbk5ldHdvcmtMaWtlLCB0b0JhYnlsb25OZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrJztcblxuLyoqIEBzZWUgaHR0cHM6Ly9kb2NzLmJhYnlsb25sYWJzLmlvL2FwaS9iYWJ5bG9uLWdSUEMvcGFyYW1zLyAqL1xuY29uc3QgQmFieWxvblBhcmFtc0pTT04gPSB0LnR5cGUoe1xuICBjb3ZlbmFudF9wa3M6IHQuYXJyYXkodC5zdHJpbmcpLFxuICBjb3ZlbmFudF9xdW9ydW06IHQubnVtYmVyLFxuICBtaW5fc3Rha2luZ192YWx1ZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIG1heF9zdGFraW5nX3ZhbHVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgbWluX3N0YWtpbmdfdGltZV9ibG9ja3M6IHQubnVtYmVyLFxuICBtYXhfc3Rha2luZ190aW1lX2Jsb2NrczogdC5udW1iZXIsXG4gIHNsYXNoaW5nX3BrX3NjcmlwdDogdC5zdHJpbmcsXG4gIG1pbl9zbGFzaGluZ190eF9mZWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBzbGFzaGluZ19yYXRlOiB0LnN0cmluZyxcbiAgdW5ib25kaW5nX3RpbWVfYmxvY2tzOiB0Lm51bWJlcixcbiAgdW5ib25kaW5nX2ZlZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIG1pbl9jb21taXNzaW9uX3JhdGU6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIGRlbGVnYXRpb25fY3JlYXRpb25fYmFzZV9nYXNfZmVlOiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBhbGxvd19saXN0X2V4cGlyYXRpb25faGVpZ2h0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBidGNfYWN0aXZhdGlvbl9oZWlnaHQ6IHQubnVtYmVyLFxufSk7XG5cbnR5cGUgQmFieWxvblBhcmFtc0pTT04gPSB0LlR5cGVPZjx0eXBlb2YgQmFieWxvblBhcmFtc0pTT04+O1xuXG5leHBvcnQgZnVuY3Rpb24gdG9WZXJzaW9uZWRQYXJhbXMocHM6IEJhYnlsb25QYXJhbXNKU09OW10pOiBWZXJzaW9uZWRTdGFraW5nUGFyYW1zW10ge1xuICByZXR1cm4gcHMubWFwKChwLCB2ZXJzaW9uKSA9PiAoe1xuICAgIHZlcnNpb24sXG4gICAgYnRjQWN0aXZhdGlvbkhlaWdodDogcC5idGNfYWN0aXZhdGlvbl9oZWlnaHQsXG4gICAgY292ZW5hbnROb0Nvb3JkUGtzOiBwLmNvdmVuYW50X3BrcyxcbiAgICBjb3ZlbmFudFF1b3J1bTogcC5jb3ZlbmFudF9xdW9ydW0sXG4gICAgdW5ib25kaW5nVGltZTogcC51bmJvbmRpbmdfdGltZV9ibG9ja3MsXG4gICAgdW5ib25kaW5nRmVlU2F0OiBwLnVuYm9uZGluZ19mZWVfc2F0LFxuICAgIG1heFN0YWtpbmdBbW91bnRTYXQ6IHAubWF4X3N0YWtpbmdfdmFsdWVfc2F0LFxuICAgIG1pblN0YWtpbmdBbW91bnRTYXQ6IHAubWluX3N0YWtpbmdfdmFsdWVfc2F0LFxuICAgIG1heFN0YWtpbmdUaW1lQmxvY2tzOiBwLm1heF9zdGFraW5nX3RpbWVfYmxvY2tzLFxuICAgIG1pblN0YWtpbmdUaW1lQmxvY2tzOiBwLm1pbl9zdGFraW5nX3RpbWVfYmxvY2tzLFxuICAgIHNsYXNoaW5nOiB7XG4gICAgICBzbGFzaGluZ1BrU2NyaXB0SGV4OiBCdWZmZXIuZnJvbShwLnNsYXNoaW5nX3BrX3NjcmlwdCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHNsYXNoaW5nUmF0ZTogcGFyc2VGbG9hdChwLnNsYXNoaW5nX3JhdGUpLFxuICAgICAgbWluU2xhc2hpbmdUeEZlZVNhdDogcC5taW5fc2xhc2hpbmdfdHhfZmVlX3NhdCxcbiAgICB9LFxuICB9KSk7XG59XG5cbmZ1bmN0aW9uIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvblBhcmFtczogdW5rbm93bltdKTogVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdIHtcbiAgcmV0dXJuIHRvVmVyc2lvbmVkUGFyYW1zKFxuICAgIGpzb25QYXJhbXMubWFwKChwKTogQmFieWxvblBhcmFtc0pTT04gPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdC50eXBlKHsgcGFyYW1zOiBCYWJ5bG9uUGFyYW1zSlNPTiB9KS5kZWNvZGUocCk7XG4gICAgICBpZiAoaXNMZWZ0KHJlc3VsdCkpIHtcbiAgICAgICAgY29uc3QgbXNnID0gUGF0aFJlcG9ydGVyLnJlcG9ydChyZXN1bHQpLmpvaW4oJ1xcbicpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFyYW1zOiAke21zZ31gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQucmlnaHQucGFyYW1zO1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCBtYWlubmV0U3Rha2luZ1BhcmFtczogcmVhZG9ubHkgVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gT2JqZWN0LmZyZWV6ZShcbiAgdG9WZXJzaW9uZWRQYXJhbXNGcm9tSnNvbihqc29uTWFpbm5ldFBhcmFtcylcbik7XG5cbmV4cG9ydCBjb25zdCB0ZXN0bmV0U3Rha2luZ1BhcmFtczogcmVhZG9ubHkgVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gT2JqZWN0LmZyZWV6ZShcbiAgdG9WZXJzaW9uZWRQYXJhbXNGcm9tSnNvbihqc29uVGVzdG5ldFBhcmFtcylcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcms6IEJhYnlsb25OZXR3b3JrTGlrZSk6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSB7XG4gIHN3aXRjaCAodG9CYWJ5bG9uTmV0d29yayhuZXR3b3JrKSkge1xuICAgIGNhc2UgJ21haW5uZXQnOlxuICAgICAgcmV0dXJuIFsuLi5tYWlubmV0U3Rha2luZ1BhcmFtc107XG4gICAgY2FzZSAndGVzdG5ldCc6XG4gICAgICByZXR1cm4gWy4uLnRlc3RuZXRTdGFraW5nUGFyYW1zXTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBuZXR3b3JrJyk7XG4gIH1cbn1cblxuLy8gU291cmNlOiBodHRwczovL2J0Y3N0YWtpbmcudGVzdG5ldC5iYWJ5bG9ubGFicy5pby8gXCJCYWJ5bG9uIEZvdW5kYXRpb24gMFwiXG5leHBvcnQgY29uc3QgdGVzdG5ldEZpbmFsaXR5UHJvdmlkZXIwID0gQnVmZmVyLmZyb20oXG4gICdkMjNjMmMyNWUxZmNmOGZkMWMyMWI5YTQwMmMxOWUyZTMwOWU1MzFlNDVlOTJmYjFlOTgwNWI2MDU2YjBjYzc2JyxcbiAgJ2hleCdcbik7XG5cbnR5cGUgRGVzY3JpcHRvclN0YWtpbmdQYXJhbXMgPSBQaWNrPFxuICBTdGFraW5nUGFyYW1zLFxuICAnY292ZW5hbnROb0Nvb3JkUGtzJyB8ICdjb3ZlbmFudFF1b3J1bScgfCAnbWluU3Rha2luZ1RpbWVCbG9ja3MnIHwgJ3VuYm9uZGluZ1RpbWUnXG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JQYXJhbXMoXG4gIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UgfCB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlcixcbiAgZmluYWxpdHlQcm92aWRlcktleXM6IEJ1ZmZlcltdLFxuICBzdGFraW5nVGltZWxvY2s6IG51bWJlcixcbiAgcGFyYW1zOiBEZXNjcmlwdG9yU3Rha2luZ1BhcmFtc1xuKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodXNlcktleSkpIHtcbiAgICB1c2VyS2V5ID0gdXNlcktleS5wdWJsaWNLZXk7XG4gIH1cbiAgcmV0dXJuIG5ldyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIoXG4gICAgdXNlcktleSxcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyxcbiAgICBwYXJhbXMuY292ZW5hbnROb0Nvb3JkUGtzLm1hcCgocGspID0+IEJ1ZmZlci5mcm9tKHBrLCAnaGV4JykpLFxuICAgIHBhcmFtcy5jb3ZlbmFudFF1b3J1bSxcbiAgICBzdGFraW5nVGltZWxvY2ssXG4gICAgcGFyYW1zLnVuYm9uZGluZ1RpbWVcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JQcm92aWRlckZvclN0YWtpbmdQYXJhbXMoXG4gIHN0YWtlckJ0Y0luZm86IFBpY2s8U3Rha2VySW5mbywgJ3B1YmxpY0tleU5vQ29vcmRIZXgnPixcbiAgc3Rha2luZ0lucHV0OiBTdGFraW5nSW5wdXRzLFxuICBzdGFraW5nUGFyYW1zOiBEZXNjcmlwdG9yU3Rha2luZ1BhcmFtc1xuKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3QgdXNlcktleSA9IEJ1ZmZlci5mcm9tKHN0YWtlckJ0Y0luZm8ucHVibGljS2V5Tm9Db29yZEhleCwgJ2hleCcpO1xuICBjb25zdCBmaW5hbGl0eVByb3ZpZGVyS2V5ID0gQnVmZmVyLmZyb20oc3Rha2luZ0lucHV0LmZpbmFsaXR5UHJvdmlkZXJQa05vQ29vcmRIZXgsICdoZXgnKTtcbiAgcmV0dXJuIGdldERlc2NyaXB0b3JCdWlsZGVyRm9yUGFyYW1zKHVzZXJLZXksIFtmaW5hbGl0eVByb3ZpZGVyS2V5XSwgc3Rha2luZ0lucHV0LnN0YWtpbmdUaW1lbG9jaywgc3Rha2luZ1BhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXN0bmV0RGVzY3JpcHRvckJ1aWxkZXIoXG4gIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UgfCB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlcixcbiAge1xuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzID0gW3Rlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMF0sXG4gICAgcGFyYW1zID0gZ2V0QmFieWxvblBhcmFtQnlWZXJzaW9uKDUsIGdldFN0YWtpbmdQYXJhbXMoJ3Rlc3RuZXQnKSksXG4gICAgc3Rha2luZ1RpbWVsb2NrID0gcGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzLFxuICB9OiB7XG4gICAgZmluYWxpdHlQcm92aWRlcktleXM/OiBCdWZmZXJbXTtcbiAgICBwYXJhbXM/OiBTdGFraW5nUGFyYW1zO1xuICAgIHN0YWtpbmdUaW1lbG9jaz86IG51bWJlcjtcbiAgfSA9IHt9XG4pOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICByZXR1cm4gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JQYXJhbXModXNlcktleSwgZmluYWxpdHlQcm92aWRlcktleXMsIHN0YWtpbmdUaW1lbG9jaywgcGFyYW1zKTtcbn1cbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1BhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL3N0YWtpbmdQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0NBLDhDQWtCQztBQXVCRCw0Q0FTQztBQWFELHNFQWlCQztBQUVELHNGQVFDO0FBRUQsa0VBYUM7QUFqSkQseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyx5Q0FBc0M7QUFDdEMseURBQXNEO0FBRXRELHdGQU04QztBQUM5QyxzRkFBNEc7QUFBbkcseUlBQUEsd0JBQXdCLE9BQUE7QUFBRSwySUFBQSwwQkFBMEIsT0FBQTtBQUU3RCw2Q0FBd0Q7QUFDeEQsZ0ZBQXNEO0FBQ3RELGdGQUFzRDtBQUN0RCx1Q0FBaUU7QUFFakUsZ0VBQWdFO0FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvQixZQUFZLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUN6QixxQkFBcUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQzFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDMUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDNUIsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUM1QyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkIscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDL0IsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUN0QyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQ3hDLGdDQUFnQyxF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QyxDQUFDO0FBQy9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCAqIGFzIHR0IGZyb20gJ2lvLXRzLXR5cGVzJztcbmltcG9ydCB7IGlzTGVmdCB9IGZyb20gJ2ZwLXRzL0VpdGhlcic7XG5pbXBvcnQgeyBQYXRoUmVwb3J0ZXIgfSBmcm9tICdpby10cy9saWIvUGF0aFJlcG9ydGVyJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7XG4gIGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbixcbiAgU3Rha2VySW5mbyxcbiAgU3Rha2luZ0lucHV0cyxcbiAgU3Rha2luZ1BhcmFtcyxcbiAgVmVyc2lvbmVkU3Rha2luZ1BhcmFtcyxcbn0gZnJvbSAnQGJpdGdvL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcbmV4cG9ydCB7IGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbiwgZ2V0QmFieWxvblBhcmFtQnlCdGNIZWlnaHQgfSBmcm9tICdAYml0Z28vYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuXG5pbXBvcnQgeyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIgfSBmcm9tICcuL2Rlc2NyaXB0b3InO1xuaW1wb3J0IGpzb25NYWlubmV0UGFyYW1zIGZyb20gJy4vcGFyYW1zLm1haW5uZXQuanNvbic7XG5pbXBvcnQganNvblRlc3RuZXRQYXJhbXMgZnJvbSAnLi9wYXJhbXMudGVzdG5ldC5qc29uJztcbmltcG9ydCB7IEJhYnlsb25OZXR3b3JrTGlrZSwgdG9CYWJ5bG9uTmV0d29yayB9IGZyb20gJy4vbmV0d29yayc7XG5cbi8qKiBAc2VlIGh0dHBzOi8vZG9jcy5iYWJ5bG9ubGFicy5pby9hcGkvYmFieWxvbi1nUlBDL3BhcmFtcy8gKi9cbmNvbnN0IEJhYnlsb25QYXJhbXNKU09OID0gdC50eXBlKHtcbiAgY292ZW5hbnRfcGtzOiB0LmFycmF5KHQuc3RyaW5nKSxcbiAgY292ZW5hbnRfcXVvcnVtOiB0Lm51bWJlcixcbiAgbWluX3N0YWtpbmdfdmFsdWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBtYXhfc3Rha2luZ192YWx1ZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIG1pbl9zdGFraW5nX3RpbWVfYmxvY2tzOiB0Lm51bWJlcixcbiAgbWF4X3N0YWtpbmdfdGltZV9ibG9ja3M6IHQubnVtYmVyLFxuICBzbGFzaGluZ19wa19zY3JpcHQ6IHQuc3RyaW5nLFxuICBtaW5fc2xhc2hpbmdfdHhfZmVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgc2xhc2hpbmdfcmF0ZTogdC5zdHJpbmcsXG4gIHVuYm9uZGluZ190aW1lX2Jsb2NrczogdC5udW1iZXIsXG4gIHVuYm9uZGluZ19mZWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBtaW5fY29tbWlzc2lvbl9yYXRlOiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBkZWxlZ2F0aW9uX2NyZWF0aW9uX2Jhc2VfZ2FzX2ZlZTogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgYWxsb3dfbGlzdF9leHBpcmF0aW9uX2hlaWdodDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgYnRjX2FjdGl2YXRpb25faGVpZ2h0OiB0Lm51bWJlcixcbn0pO1xuXG50eXBlIEJhYnlsb25QYXJhbXNKU09OID0gdC5UeXBlT2Y8dHlwZW9mIEJhYnlsb25QYXJhbXNKU09OPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvVmVyc2lvbmVkUGFyYW1zKHBzOiBCYWJ5bG9uUGFyYW1zSlNPTltdKTogVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdIHtcbiAgcmV0dXJuIHBzLm1hcCgocCwgdmVyc2lvbikgPT4gKHtcbiAgICB2ZXJzaW9uLFxuICAgIGJ0Y0FjdGl2YXRpb25IZWlnaHQ6IHAuYnRjX2FjdGl2YXRpb25faGVpZ2h0LFxuICAgIGNvdmVuYW50Tm9Db29yZFBrczogcC5jb3ZlbmFudF9wa3MsXG4gICAgY292ZW5hbnRRdW9ydW06IHAuY292ZW5hbnRfcXVvcnVtLFxuICAgIHVuYm9uZGluZ1RpbWU6IHAudW5ib25kaW5nX3RpbWVfYmxvY2tzLFxuICAgIHVuYm9uZGluZ0ZlZVNhdDogcC51bmJvbmRpbmdfZmVlX3NhdCxcbiAgICBtYXhTdGFraW5nQW1vdW50U2F0OiBwLm1heF9zdGFraW5nX3ZhbHVlX3NhdCxcbiAgICBtaW5TdGFraW5nQW1vdW50U2F0OiBwLm1pbl9zdGFraW5nX3ZhbHVlX3NhdCxcbiAgICBtYXhTdGFraW5nVGltZUJsb2NrczogcC5tYXhfc3Rha2luZ190aW1lX2Jsb2NrcyxcbiAgICBtaW5TdGFraW5nVGltZUJsb2NrczogcC5taW5fc3Rha2luZ190aW1lX2Jsb2NrcyxcbiAgICBzbGFzaGluZzoge1xuICAgICAgc2xhc2hpbmdQa1NjcmlwdEhleDogQnVmZmVyLmZyb20ocC5zbGFzaGluZ19wa19zY3JpcHQsICdiYXNlNjQnKS50b1N0cmluZygnaGV4JyksXG4gICAgICBzbGFzaGluZ1JhdGU6IHBhcnNlRmxvYXQocC5zbGFzaGluZ19yYXRlKSxcbiAgICAgIG1pblNsYXNoaW5nVHhGZWVTYXQ6IHAubWluX3NsYXNoaW5nX3R4X2ZlZV9zYXQsXG4gICAgfSxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiB0b1ZlcnNpb25lZFBhcmFtc0Zyb21Kc29uKGpzb25QYXJhbXM6IHVua25vd25bXSk6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSB7XG4gIHJldHVybiB0b1ZlcnNpb25lZFBhcmFtcyhcbiAgICBqc29uUGFyYW1zLm1hcCgocCk6IEJhYnlsb25QYXJhbXNKU09OID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHQudHlwZSh7IHBhcmFtczogQmFieWxvblBhcmFtc0pTT04gfSkuZGVjb2RlKHApO1xuICAgICAgaWYgKGlzTGVmdChyZXN1bHQpKSB7XG4gICAgICAgIGNvbnN0IG1zZyA9IFBhdGhSZXBvcnRlci5yZXBvcnQocmVzdWx0KS5qb2luKCdcXG4nKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcmFtczogJHttc2d9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0LnJpZ2h0LnBhcmFtcztcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgY29uc3QgbWFpbm5ldFN0YWtpbmdQYXJhbXM6IHJlYWRvbmx5IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IE9iamVjdC5mcmVlemUoXG4gIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvbk1haW5uZXRQYXJhbXMpXG4pO1xuXG5leHBvcnQgY29uc3QgdGVzdG5ldFN0YWtpbmdQYXJhbXM6IHJlYWRvbmx5IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IE9iamVjdC5mcmVlemUoXG4gIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvblRlc3RuZXRQYXJhbXMpXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Rha2luZ1BhcmFtcyhuZXR3b3JrOiBCYWJ5bG9uTmV0d29ya0xpa2UpOiBWZXJzaW9uZWRTdGFraW5nUGFyYW1zW10ge1xuICBzd2l0Y2ggKHRvQmFieWxvbk5ldHdvcmsobmV0d29yaykpIHtcbiAgICBjYXNlICdtYWlubmV0JzpcbiAgICAgIHJldHVybiBbLi4ubWFpbm5ldFN0YWtpbmdQYXJhbXNdO1xuICAgIGNhc2UgJ3Rlc3RuZXQnOlxuICAgICAgcmV0dXJuIFsuLi50ZXN0bmV0U3Rha2luZ1BhcmFtc107XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICB9XG59XG5cbi8vIFNvdXJjZTogaHR0cHM6Ly9idGNzdGFraW5nLnRlc3RuZXQuYmFieWxvbmxhYnMuaW8vIFwiQmFieWxvbiBGb3VuZGF0aW9uIDBcIlxuZXhwb3J0IGNvbnN0IHRlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMCA9IEJ1ZmZlci5mcm9tKFxuICAnZDIzYzJjMjVlMWZjZjhmZDFjMjFiOWE0MDJjMTllMmUzMDllNTMxZTQ1ZTkyZmIxZTk4MDViNjA1NmIwY2M3NicsXG4gICdoZXgnXG4pO1xuXG50eXBlIERlc2NyaXB0b3JTdGFraW5nUGFyYW1zID0gUGljazxcbiAgU3Rha2luZ1BhcmFtcyxcbiAgJ2NvdmVuYW50Tm9Db29yZFBrcycgfCAnY292ZW5hbnRRdW9ydW0nIHwgJ21pblN0YWtpbmdUaW1lQmxvY2tzJyB8ICd1bmJvbmRpbmdUaW1lJ1xuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JCdWlsZGVyRm9yUGFyYW1zKFxuICB1c2VyS2V5OiB1dHhvbGliLkJJUDMySW50ZXJmYWNlIHwgdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2UgfCBCdWZmZXIsXG4gIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXSxcbiAgc3Rha2luZ1RpbWVsb2NrOiBudW1iZXIsXG4gIHBhcmFtczogRGVzY3JpcHRvclN0YWtpbmdQYXJhbXNcbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHVzZXJLZXkpKSB7XG4gICAgdXNlcktleSA9IHVzZXJLZXkucHVibGljS2V5O1xuICB9XG4gIHJldHVybiBuZXcgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyKFxuICAgIHVzZXJLZXksXG4gICAgZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgcGFyYW1zLmNvdmVuYW50Tm9Db29yZFBrcy5tYXAoKHBrKSA9PiBCdWZmZXIuZnJvbShwaywgJ2hleCcpKSxcbiAgICBwYXJhbXMuY292ZW5hbnRRdW9ydW0sXG4gICAgc3Rha2luZ1RpbWVsb2NrLFxuICAgIHBhcmFtcy51bmJvbmRpbmdUaW1lXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yUHJvdmlkZXJGb3JTdGFraW5nUGFyYW1zKFxuICBzdGFrZXJCdGNJbmZvOiBQaWNrPFN0YWtlckluZm8sICdwdWJsaWNLZXlOb0Nvb3JkSGV4Jz4sXG4gIHN0YWtpbmdJbnB1dDogU3Rha2luZ0lucHV0cyxcbiAgc3Rha2luZ1BhcmFtczogRGVzY3JpcHRvclN0YWtpbmdQYXJhbXNcbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIGNvbnN0IHVzZXJLZXkgPSBCdWZmZXIuZnJvbShzdGFrZXJCdGNJbmZvLnB1YmxpY0tleU5vQ29vcmRIZXgsICdoZXgnKTtcbiAgY29uc3QgZmluYWxpdHlQcm92aWRlcktleXMgPSBzdGFraW5nSW5wdXQuZmluYWxpdHlQcm92aWRlclBrc05vQ29vcmRIZXgubWFwKChwaykgPT4gQnVmZmVyLmZyb20ocGssICdoZXgnKSk7XG4gIHJldHVybiBnZXREZXNjcmlwdG9yQnVpbGRlckZvclBhcmFtcyh1c2VyS2V5LCBmaW5hbGl0eVByb3ZpZGVyS2V5cywgc3Rha2luZ0lucHV0LnN0YWtpbmdUaW1lbG9jaywgc3Rha2luZ1BhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXN0bmV0RGVzY3JpcHRvckJ1aWxkZXIoXG4gIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UgfCB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlcixcbiAge1xuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzID0gW3Rlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMF0sXG4gICAgcGFyYW1zID0gZ2V0QmFieWxvblBhcmFtQnlWZXJzaW9uKDUsIGdldFN0YWtpbmdQYXJhbXMoJ3Rlc3RuZXQnKSksXG4gICAgc3Rha2luZ1RpbWVsb2NrID0gcGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzLFxuICB9OiB7XG4gICAgZmluYWxpdHlQcm92aWRlcktleXM/OiBCdWZmZXJbXTtcbiAgICBwYXJhbXM/OiBTdGFraW5nUGFyYW1zO1xuICAgIHN0YWtpbmdUaW1lbG9jaz86IG51bWJlcjtcbiAgfSA9IHt9XG4pOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICByZXR1cm4gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JQYXJhbXModXNlcktleSwgZmluYWxpdHlQcm92aWRlcktleXMsIHN0YWtpbmdUaW1lbG9jaywgcGFyYW1zKTtcbn1cbiJdfQ==
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -32,12 +32,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
exports.babylon = exports.coreDao = void 0;
|
|
40
37
|
exports.coreDao = __importStar(require("./coreDao"));
|
|
41
38
|
exports.babylon = __importStar(require("./babylon"));
|
|
42
|
-
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXFDO0FBQ3JDLHFEQUFxQztBQUVyQyxnREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBjb3JlRGFvIGZyb20gJy4vY29yZURhbyc7XG5leHBvcnQgKiBhcyBiYWJ5bG9uIGZyb20gJy4vYmFieWxvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuIl19
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXFDO0FBQ3JDLHFEQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGNvcmVEYW8gZnJvbSAnLi9jb3JlRGFvJztcbmV4cG9ydCAqIGFzIGJhYnlsb24gZnJvbSAnLi9iYWJ5bG9uJztcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo/utxo-staking",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.1",
|
|
4
4
|
"description": "BitGo SDK for build UTXO staking transactions",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -43,10 +43,9 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@babylonlabs-io/babylon-proto-ts": "1.0.0",
|
|
46
|
-
"@bitgo/babylonlabs-io-btc-staking-ts": "^
|
|
47
|
-
"@bitgo/
|
|
48
|
-
"@bitgo/utxo-
|
|
49
|
-
"@bitgo/utxo-lib": "^11.6.1",
|
|
46
|
+
"@bitgo/babylonlabs-io-btc-staking-ts": "^2.4.0",
|
|
47
|
+
"@bitgo/utxo-core": "^1.12.1",
|
|
48
|
+
"@bitgo/utxo-lib": "^11.6.3",
|
|
50
49
|
"@bitgo/wasm-miniscript": "2.0.0-beta.7",
|
|
51
50
|
"bip322-js": "^2.0.0",
|
|
52
51
|
"bitcoinjs-lib": "^6.1.7",
|
|
@@ -57,5 +56,5 @@
|
|
|
57
56
|
"devDependencies": {
|
|
58
57
|
"yargs": "^17.7.2"
|
|
59
58
|
},
|
|
60
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "5fa00d142055b7f97f7453491fa7208fac115062"
|
|
61
60
|
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import * as utxolib from '@bitgo/utxo-lib';
|
|
2
|
-
/**
|
|
3
|
-
* Build a staking transaction for a wallet that assumes 2-of-3 multisig for the inputs
|
|
4
|
-
*
|
|
5
|
-
* Given the inputs and the staking outputs, we will create the PSBT with the desired fee rate.
|
|
6
|
-
* We always add the change address as the last output.
|
|
7
|
-
*
|
|
8
|
-
* @param rootWalletKeys
|
|
9
|
-
* @param unspents
|
|
10
|
-
* @param createStakingOutputs
|
|
11
|
-
* @param changeAddressInfo
|
|
12
|
-
* @param feeRateSatKB
|
|
13
|
-
* @param network
|
|
14
|
-
*/
|
|
15
|
-
export declare function buildFixedWalletStakingPsbt({ rootWalletKeys, unspents, outputs, changeAddressInfo, feeRateSatKB, network, skipNonWitnessUtxo, dustAmount, }: {
|
|
16
|
-
rootWalletKeys: utxolib.bitgo.RootWalletKeys;
|
|
17
|
-
unspents: utxolib.bitgo.WalletUnspent<bigint>[];
|
|
18
|
-
outputs: {
|
|
19
|
-
script: Buffer;
|
|
20
|
-
value: bigint;
|
|
21
|
-
}[];
|
|
22
|
-
changeAddressInfo: {
|
|
23
|
-
chain: utxolib.bitgo.ChainCode;
|
|
24
|
-
index: number;
|
|
25
|
-
address: string;
|
|
26
|
-
};
|
|
27
|
-
feeRateSatKB: number;
|
|
28
|
-
network: utxolib.Network;
|
|
29
|
-
skipNonWitnessUtxo?: boolean;
|
|
30
|
-
dustAmount?: bigint;
|
|
31
|
-
}): utxolib.bitgo.UtxoPsbt;
|
|
32
|
-
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAM3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,cAAc,EACd,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,kBAAkB,EAClB,UAAsB,GACvB,EAAE;IACD,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CA0DzB"}
|
package/dist/src/transaction.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.buildFixedWalletStakingPsbt = buildFixedWalletStakingPsbt;
|
|
37
|
-
const utxolib = __importStar(require("@bitgo/utxo-lib"));
|
|
38
|
-
const unspents_1 = require("@bitgo/unspents");
|
|
39
|
-
const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
|
|
40
|
-
bitcoinjslib.initEccLib(utxolib.ecc);
|
|
41
|
-
/**
|
|
42
|
-
* Build a staking transaction for a wallet that assumes 2-of-3 multisig for the inputs
|
|
43
|
-
*
|
|
44
|
-
* Given the inputs and the staking outputs, we will create the PSBT with the desired fee rate.
|
|
45
|
-
* We always add the change address as the last output.
|
|
46
|
-
*
|
|
47
|
-
* @param rootWalletKeys
|
|
48
|
-
* @param unspents
|
|
49
|
-
* @param createStakingOutputs
|
|
50
|
-
* @param changeAddressInfo
|
|
51
|
-
* @param feeRateSatKB
|
|
52
|
-
* @param network
|
|
53
|
-
*/
|
|
54
|
-
function buildFixedWalletStakingPsbt({ rootWalletKeys, unspents, outputs, changeAddressInfo, feeRateSatKB, network, skipNonWitnessUtxo, dustAmount = BigInt(0), }) {
|
|
55
|
-
if (feeRateSatKB < 1000) {
|
|
56
|
-
throw new Error('Fee rate must be at least 1 sat/vbyte');
|
|
57
|
-
}
|
|
58
|
-
if (unspents.length === 0 || outputs.length === 0) {
|
|
59
|
-
throw new Error('Must have at least one input and one output');
|
|
60
|
-
}
|
|
61
|
-
// Check the change address info
|
|
62
|
-
const changeScript = utxolib.bitgo.outputScripts.createOutputScript2of3(rootWalletKeys.deriveForChainAndIndex(changeAddressInfo.chain, changeAddressInfo.index).publicKeys, utxolib.bitgo.scriptTypeForChain(changeAddressInfo.chain), network).scriptPubKey;
|
|
63
|
-
if (!changeScript.equals(utxolib.addressFormat.toOutputScriptTryFormats(changeAddressInfo.address, network))) {
|
|
64
|
-
throw new Error('Change address info does not match the derived change script');
|
|
65
|
-
}
|
|
66
|
-
const psbt = utxolib.bitgo.createPsbtForNetwork({ network });
|
|
67
|
-
utxolib.bitgo.addXpubsToPsbt(psbt, rootWalletKeys);
|
|
68
|
-
const inputAmount = unspents.reduce((sum, unspent) => sum + unspent.value, BigInt(0));
|
|
69
|
-
const outputAmount = outputs.reduce((sum, output) => sum + output.value, BigInt(0));
|
|
70
|
-
unspents.forEach((unspent) => utxolib.bitgo.addWalletUnspentToPsbt(psbt, unspent, rootWalletKeys, 'user', 'bitgo', {
|
|
71
|
-
isReplaceableByFee: true,
|
|
72
|
-
skipNonWitnessUtxo,
|
|
73
|
-
}));
|
|
74
|
-
outputs.forEach((output) => psbt.addOutput(output));
|
|
75
|
-
const fee = Math.ceil((unspents_1.Dimensions.fromPsbt(psbt)
|
|
76
|
-
.plus(unspents_1.Dimensions.fromOutput({ script: changeScript }))
|
|
77
|
-
.getVSize() *
|
|
78
|
-
feeRateSatKB) /
|
|
79
|
-
1000);
|
|
80
|
-
const changeAmount = inputAmount - (outputAmount + BigInt(fee));
|
|
81
|
-
if (changeAmount < BigInt(0)) {
|
|
82
|
-
throw new Error(`Input amount ${inputAmount.toString()} cannot cover the staking amount ${outputAmount} and the fee: ${fee}`);
|
|
83
|
-
}
|
|
84
|
-
if (changeAmount > dustAmount) {
|
|
85
|
-
utxolib.bitgo.addWalletOutputToPsbt(psbt, rootWalletKeys, changeAddressInfo.chain, changeAddressInfo.index, changeAmount);
|
|
86
|
-
}
|
|
87
|
-
return psbt;
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsa0VBbUZDO0FBdEdELHlEQUEyQztBQUMzQyw4Q0FBNkM7QUFDN0MsNERBQThDO0FBRTlDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXJDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLDJCQUEyQixDQUFDLEVBQzFDLGNBQWMsRUFDZCxRQUFRLEVBQ1IsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osT0FBTyxFQUNQLGtCQUFrQixFQUNsQixVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQWlCdkI7SUFDQyxJQUFJLFlBQVksR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FDckUsY0FBYyxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQ2xHLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQ3pELE9BQU8sQ0FDUixDQUFDLFlBQVksQ0FBQztJQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RyxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUVuRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBGLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7UUFDbkYsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixrQkFBa0I7S0FDbkIsQ0FBQyxDQUNILENBQUM7SUFDRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFcEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDbkIsQ0FBQyxxQkFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdkIsSUFBSSxDQUFDLHFCQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDckQsUUFBUSxFQUFFO1FBQ1gsWUFBWSxDQUFDO1FBQ2IsSUFBSSxDQUNQLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxXQUFXLEdBQUcsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FDYixnQkFBZ0IsV0FBVyxDQUFDLFFBQVEsRUFBRSxvQ0FBb0MsWUFBWSxrQkFBa0IsR0FBRyxFQUFFLENBQzlHLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFZLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FDakMsSUFBSSxFQUNKLGNBQWMsRUFDZCxpQkFBaUIsQ0FBQyxLQUFLLEVBQ3ZCLGlCQUFpQixDQUFDLEtBQUssRUFDdkIsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJ0BiaXRnby91bnNwZW50cyc7XG5pbXBvcnQgKiBhcyBiaXRjb2luanNsaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbmJpdGNvaW5qc2xpYi5pbml0RWNjTGliKHV0eG9saWIuZWNjKTtcblxuLyoqXG4gKiBCdWlsZCBhIHN0YWtpbmcgdHJhbnNhY3Rpb24gZm9yIGEgd2FsbGV0IHRoYXQgYXNzdW1lcyAyLW9mLTMgbXVsdGlzaWcgZm9yIHRoZSBpbnB1dHNcbiAqXG4gKiBHaXZlbiB0aGUgaW5wdXRzIGFuZCB0aGUgc3Rha2luZyBvdXRwdXRzLCB3ZSB3aWxsIGNyZWF0ZSB0aGUgUFNCVCB3aXRoIHRoZSBkZXNpcmVkIGZlZSByYXRlLlxuICogV2UgYWx3YXlzIGFkZCB0aGUgY2hhbmdlIGFkZHJlc3MgYXMgdGhlIGxhc3Qgb3V0cHV0LlxuICpcbiAqIEBwYXJhbSByb290V2FsbGV0S2V5c1xuICogQHBhcmFtIHVuc3BlbnRzXG4gKiBAcGFyYW0gY3JlYXRlU3Rha2luZ091dHB1dHNcbiAqIEBwYXJhbSBjaGFuZ2VBZGRyZXNzSW5mb1xuICogQHBhcmFtIGZlZVJhdGVTYXRLQlxuICogQHBhcmFtIG5ldHdvcmtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRml4ZWRXYWxsZXRTdGFraW5nUHNidCh7XG4gIHJvb3RXYWxsZXRLZXlzLFxuICB1bnNwZW50cyxcbiAgb3V0cHV0cyxcbiAgY2hhbmdlQWRkcmVzc0luZm8sXG4gIGZlZVJhdGVTYXRLQixcbiAgbmV0d29yayxcbiAgc2tpcE5vbldpdG5lc3NVdHhvLFxuICBkdXN0QW1vdW50ID0gQmlnSW50KDApLFxufToge1xuICByb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cztcbiAgdW5zcGVudHM6IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W107XG4gIG91dHB1dHM6IHtcbiAgICBzY3JpcHQ6IEJ1ZmZlcjtcbiAgICB2YWx1ZTogYmlnaW50O1xuICB9W107XG4gIGNoYW5nZUFkZHJlc3NJbmZvOiB7XG4gICAgY2hhaW46IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlO1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICB9O1xuICBmZWVSYXRlU2F0S0I6IG51bWJlcjtcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrO1xuICBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuO1xuICBkdXN0QW1vdW50PzogYmlnaW50O1xufSk6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICBpZiAoZmVlUmF0ZVNhdEtCIDwgMTAwMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmVlIHJhdGUgbXVzdCBiZSBhdCBsZWFzdCAxIHNhdC92Ynl0ZScpO1xuICB9XG4gIGlmICh1bnNwZW50cy5sZW5ndGggPT09IDAgfHwgb3V0cHV0cy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgaGF2ZSBhdCBsZWFzdCBvbmUgaW5wdXQgYW5kIG9uZSBvdXRwdXQnKTtcbiAgfVxuXG4gIC8vIENoZWNrIHRoZSBjaGFuZ2UgYWRkcmVzcyBpbmZvXG4gIGNvbnN0IGNoYW5nZVNjcmlwdCA9IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5jcmVhdGVPdXRwdXRTY3JpcHQyb2YzKFxuICAgIHJvb3RXYWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhbmdlQWRkcmVzc0luZm8uY2hhaW4sIGNoYW5nZUFkZHJlc3NJbmZvLmluZGV4KS5wdWJsaWNLZXlzLFxuICAgIHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGNoYW5nZUFkZHJlc3NJbmZvLmNoYWluKSxcbiAgICBuZXR3b3JrXG4gICkuc2NyaXB0UHViS2V5O1xuICBpZiAoIWNoYW5nZVNjcmlwdC5lcXVhbHModXR4b2xpYi5hZGRyZXNzRm9ybWF0LnRvT3V0cHV0U2NyaXB0VHJ5Rm9ybWF0cyhjaGFuZ2VBZGRyZXNzSW5mby5hZGRyZXNzLCBuZXR3b3JrKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NoYW5nZSBhZGRyZXNzIGluZm8gZG9lcyBub3QgbWF0Y2ggdGhlIGRlcml2ZWQgY2hhbmdlIHNjcmlwdCcpO1xuICB9XG5cbiAgY29uc3QgcHNidCA9IHV0eG9saWIuYml0Z28uY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrIH0pO1xuICB1dHhvbGliLmJpdGdvLmFkZFhwdWJzVG9Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzKTtcblxuICBjb25zdCBpbnB1dEFtb3VudCA9IHVuc3BlbnRzLnJlZHVjZSgoc3VtLCB1bnNwZW50KSA9PiBzdW0gKyB1bnNwZW50LnZhbHVlLCBCaWdJbnQoMCkpO1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSBvdXRwdXRzLnJlZHVjZSgoc3VtLCBvdXRwdXQpID0+IHN1bSArIG91dHB1dC52YWx1ZSwgQmlnSW50KDApKTtcblxuICB1bnNwZW50cy5mb3JFYWNoKCh1bnNwZW50KSA9PlxuICAgIHV0eG9saWIuYml0Z28uYWRkV2FsbGV0VW5zcGVudFRvUHNidChwc2J0LCB1bnNwZW50LCByb290V2FsbGV0S2V5cywgJ3VzZXInLCAnYml0Z28nLCB7XG4gICAgICBpc1JlcGxhY2VhYmxlQnlGZWU6IHRydWUsXG4gICAgICBza2lwTm9uV2l0bmVzc1V0eG8sXG4gICAgfSlcbiAgKTtcbiAgb3V0cHV0cy5mb3JFYWNoKChvdXRwdXQpID0+IHBzYnQuYWRkT3V0cHV0KG91dHB1dCkpO1xuXG4gIGNvbnN0IGZlZSA9IE1hdGguY2VpbChcbiAgICAoRGltZW5zaW9ucy5mcm9tUHNidChwc2J0KVxuICAgICAgLnBsdXMoRGltZW5zaW9ucy5mcm9tT3V0cHV0KHsgc2NyaXB0OiBjaGFuZ2VTY3JpcHQgfSkpXG4gICAgICAuZ2V0VlNpemUoKSAqXG4gICAgICBmZWVSYXRlU2F0S0IpIC9cbiAgICAgIDEwMDBcbiAgKTtcblxuICBjb25zdCBjaGFuZ2VBbW91bnQgPSBpbnB1dEFtb3VudCAtIChvdXRwdXRBbW91bnQgKyBCaWdJbnQoZmVlKSk7XG4gIGlmIChjaGFuZ2VBbW91bnQgPCBCaWdJbnQoMCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW5wdXQgYW1vdW50ICR7aW5wdXRBbW91bnQudG9TdHJpbmcoKX0gY2Fubm90IGNvdmVyIHRoZSBzdGFraW5nIGFtb3VudCAke291dHB1dEFtb3VudH0gYW5kICB0aGUgZmVlOiAke2ZlZX1gXG4gICAgKTtcbiAgfVxuXG4gIGlmIChjaGFuZ2VBbW91bnQgPiBkdXN0QW1vdW50KSB7XG4gICAgdXR4b2xpYi5iaXRnby5hZGRXYWxsZXRPdXRwdXRUb1BzYnQoXG4gICAgICBwc2J0LFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICBjaGFuZ2VBZGRyZXNzSW5mby5jaGFpbixcbiAgICAgIGNoYW5nZUFkZHJlc3NJbmZvLmluZGV4LFxuICAgICAgY2hhbmdlQW1vdW50XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBwc2J0O1xufVxuIl19
|