@bitgo-beta/abstract-utxo 1.1.1-beta.1813 → 1.1.1-beta.1815
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/abstractUtxoCoin.d.ts +1 -0
- package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/cjs/src/abstractUtxoCoin.js +2 -2
- package/dist/cjs/src/address/fixedScript.d.ts +1 -5
- package/dist/cjs/src/address/fixedScript.d.ts.map +1 -1
- package/dist/cjs/src/address/fixedScript.js +3 -5
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +3 -3
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/cjs/src/recovery/backupKeyRecovery.js +31 -69
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts +5 -5
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/cjs/src/recovery/crossChainRecovery.js +22 -121
- package/dist/cjs/src/recovery/psbt.d.ts +8 -31
- package/dist/cjs/src/recovery/psbt.d.ts.map +1 -1
- package/dist/cjs/src/recovery/psbt.js +14 -126
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseOutput.js +6 -11
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.js +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +2 -2
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +4 -4
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +41 -6
- package/dist/cjs/src/unspent.d.ts +7 -0
- package/dist/cjs/src/unspent.d.ts.map +1 -1
- package/dist/cjs/src/unspent.js +10 -1
- package/dist/cjs/test/unit/prebuildAndSign.d.ts +0 -4
- package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -1
- package/dist/cjs/test/unit/prebuildAndSign.js +12 -32
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +17 -14
- package/dist/cjs/test/unit/recovery/crossChainRecovery.js +13 -4
- package/dist/cjs/test/unit/signTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/signTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/signTransaction.js +244 -0
- package/dist/cjs/test/unit/transaction.js +4 -224
- package/dist/cjs/test/unit/util/transaction.d.ts +3 -0
- package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/transaction.js +19 -1
- package/dist/cjs/test/unit/util/utxoCoins.d.ts +13 -0
- package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/utxoCoins.js +33 -2
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/abstractUtxoCoin.d.ts +1 -0
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/esm/abstractUtxoCoin.js +2 -2
- package/dist/esm/address/fixedScript.d.ts +1 -5
- package/dist/esm/address/fixedScript.d.ts.map +1 -1
- package/dist/esm/address/fixedScript.js +3 -5
- package/dist/esm/recovery/backupKeyRecovery.d.ts +3 -3
- package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/esm/recovery/backupKeyRecovery.js +34 -39
- package/dist/esm/recovery/crossChainRecovery.d.ts +5 -5
- package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/esm/recovery/crossChainRecovery.js +24 -90
- package/dist/esm/recovery/psbt.d.ts +8 -31
- package/dist/esm/recovery/psbt.d.ts.map +1 -1
- package/dist/esm/recovery/psbt.js +14 -91
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/parseOutput.js +6 -11
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.js +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +2 -2
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +4 -4
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.js +9 -7
- package/dist/esm/unspent.d.ts +7 -0
- package/dist/esm/unspent.d.ts.map +1 -1
- package/dist/esm/unspent.js +8 -2
- package/package.json +9 -10
|
@@ -102,4 +102,4 @@ async function signPsbtWithMusig2ParticipantWasm(coin, tx, signerKeychain, rootW
|
|
|
102
102
|
(0, assert_1.default)(signerKeychain);
|
|
103
103
|
return signAndVerifyPsbtWasm(tx, signerKeychain, rootWalletKeys, params.replayProtection);
|
|
104
104
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9DQSxzREEwQ0M7QUFFRCw4RUEyREM7QUEzSUQsb0RBQTRCO0FBSzVCLDZDQUE2QztBQUU3QyxpREFBOEY7QUFPOUY7Ozs7O0dBS0c7QUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztBQUV2RSxTQUFTLG9CQUFvQixDQUMzQixFQUErQixFQUMvQixjQUFnRCxFQUNoRCxnQkFBc0M7SUFFdEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25GLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssbUJBQW1CLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLHFCQUFxQixDQUNuQyxFQUErQixFQUMvQixjQUE4QixFQUM5QixjQUFnRCxFQUNoRCxnQkFBc0M7SUFFdEMsTUFBTSxVQUFVLEdBQUcsSUFBQSxzQkFBVyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9DLG9GQUFvRjtJQUNwRixJQUFJLENBQUM7UUFDSCxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLCtCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx5RkFBeUY7SUFDekYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25GLE1BQU0sWUFB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Z0JBQU0sRUFBQyxNQUFNLENBQUMsUUFBUSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUEsZ0JBQU0sRUFBQyxVQUFVLENBQUMsQ0FBQztnQkFDbkIsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqQyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsS0FBSyxhQUFhLENBQUM7WUFDbkIsS0FBSyxlQUFlO2dCQUNsQjs7O21CQUdHO2dCQUNILE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFBLGdCQUFNLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkIsT0FBTyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUM1RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IEVDUGFpciwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgdG9XYXNtQklQMzIgfSBmcm9tICcuLi8uLi93YXNtVXRpbCc7XG5cbmltcG9ydCB7IEJ1bGtTaWduaW5nRXJyb3IsIElucHV0U2lnbmluZ0Vycm9yLCBUcmFuc2FjdGlvblNpZ25pbmdFcnJvciB9IGZyb20gJy4vU2lnbmluZ0Vycm9yJztcbmltcG9ydCB7IE11c2lnMlBhcnRpY2lwYW50IH0gZnJvbSAnLi9tdXNpZzInO1xuXG5leHBvcnQgdHlwZSBSZXBsYXlQcm90ZWN0aW9uS2V5cyA9IHtcbiAgcHVibGljS2V5czogKFVpbnQ4QXJyYXkgfCBFQ1BhaXIpW107XG59O1xuXG4vKipcbiAqIEtleSBWYWx1ZTogVW5zaWduZWQgdHggaWQgPT4gUFNCVFxuICogSXQgaXMgdXNlZCB0byBjYWNoZSBQU0JUcyB3aXRoIHRhcHJvb3Qga2V5IHBhdGggKE11U2lnMikgaW5wdXRzIGR1cmluZyBleHRlcm5hbCBleHByZXNzIHNpZ25lciBpcyBhY3RpdmF0ZWQuXG4gKiBSZWFzb246IE11U2lnMiBzaWduZXIgc2VjdXJlIG5vbmNlIGlzIGNhY2hlZCBpbiB0aGUgQml0R29Qc2J0IG9iamVjdC4gSXQgd2lsbCBiZSByZXF1aXJlZCBkdXJpbmcgdGhlIHNpZ25pbmcgc3RlcC5cbiAqIEZvciBtb3JlIGluZm8sIGNoZWNrIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMuc2lnbmluZ1N0ZXBcbiAqL1xuY29uc3QgUFNCVF9DQUNIRV9XQVNNID0gbmV3IE1hcDxzdHJpbmcsIGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4oKTtcblxuZnVuY3Rpb24gaGFzS2V5UGF0aFNwZW5kSW5wdXQoXG4gIHR4OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXNcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwYXJzZWQgPSB0eC5wYXJzZVRyYW5zYWN0aW9uV2l0aFdhbGxldEtleXMocm9vdFdhbGxldEtleXMsIHJlcGxheVByb3RlY3Rpb24pO1xuICByZXR1cm4gcGFyc2VkLmlucHV0cy5zb21lKChpbnB1dCkgPT4gaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzJLZXlQYXRoJyk7XG59XG5cbi8qKlxuICogU2lnbiBhbGwgaW5wdXRzIG9mIGEgUFNCVCBhbmQgdmVyaWZ5IHNpZ25hdHVyZXMgYWZ0ZXIgc2lnbmluZy5cbiAqIFVzZXMgYnVsayBzaWduaW5nIGZvciBwZXJmb3JtYW5jZSAoc2lnbnMgYWxsIG1hdGNoaW5nIGlucHV0cyBpbiBvbmUgcGFzcykuXG4gKiBDb2xsZWN0cyBhbmQgbG9ncyBzaWduaW5nIGVycm9ycyBhbmQgdmVyaWZpY2F0aW9uIGVycm9ycywgdGhyb3dzIGVycm9yIGluIHRoZSBlbmQgaWYgYW55IG9mIHRoZW0gZmFpbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXNcbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGNvbnN0IHdhc21TaWduZXIgPSB0b1dhc21CSVAzMihzaWduZXJLZXljaGFpbik7XG5cbiAgLy8gQnVsayBzaWduIGFsbCB3YWxsZXQgaW5wdXRzIChFQ0RTQSArIE11U2lnMikgLSBtdWNoIGZhc3RlciB0aGFuIHBlci1pbnB1dCBzaWduaW5nXG4gIHRyeSB7XG4gICAgdHguc2lnbih3YXNtU2lnbmVyKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBCdWxrU2lnbmluZ0Vycm9yKGUpO1xuICB9XG5cbiAgLy8gVmVyaWZ5IHNpZ25hdHVyZXMgZm9yIGFsbCBzaWduZWQgaW5wdXRzIChzdGlsbCBwZXItaW5wdXQgZm9yIGdyYW51bGFyIGVycm9yIHJlcG9ydGluZylcbiAgY29uc3QgcGFyc2VkID0gdHgucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHJvb3RXYWxsZXRLZXlzLCByZXBsYXlQcm90ZWN0aW9uKTtcbiAgY29uc3QgdmVyaWZ5RXJyb3JzOiBJbnB1dFNpZ25pbmdFcnJvcjxiaWdpbnQ+W10gPSBbXTtcblxuICBwYXJzZWQuaW5wdXRzLmZvckVhY2goKGlucHV0LCBpbnB1dEluZGV4KSA9PiB7XG4gICAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIC8vIFNraXAgcmVwbGF5IHByb3RlY3Rpb24gaW5wdXRzIC0gdGhleSBhcmUgcGxhdGZvcm0gc2lnbmVkIG9ubHlcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXRJZCA9IGAke2lucHV0LnByZXZpb3VzT3V0cHV0LnR4aWR9OiR7aW5wdXQucHJldmlvdXNPdXRwdXQudm91dH1gO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXR4LnZlcmlmeVNpZ25hdHVyZShpbnB1dEluZGV4LCB3YXNtU2lnbmVyKSkge1xuICAgICAgICB2ZXJpZnlFcnJvcnMucHVzaChcbiAgICAgICAgICBuZXcgSW5wdXRTaWduaW5nRXJyb3IoaW5wdXRJbmRleCwgaW5wdXQuc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgbmV3IEVycm9yKCdpbnZhbGlkIHNpZ25hdHVyZScpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHZlcmlmeUVycm9ycy5wdXNoKG5ldyBJbnB1dFNpZ25pbmdFcnJvcjxiaWdpbnQ+KGlucHV0SW5kZXgsIGlucHV0LnNjcmlwdFR5cGUsIHsgaWQ6IG91dHB1dElkIH0sIGUpKTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh2ZXJpZnlFcnJvcnMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFRyYW5zYWN0aW9uU2lnbmluZ0Vycm9yKFtdLCB2ZXJpZnlFcnJvcnMpO1xuICB9XG5cbiAgcmV0dXJuIHR4O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRXYXNtKFxuICBjb2luOiBNdXNpZzJQYXJ0aWNpcGFudDxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+LFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcGFyYW1zOiB7XG4gICAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXM7XG4gICAgc2lnbmluZ1N0ZXA6ICdzaWduZXJOb25jZScgfCAnY29zaWduZXJOb25jZScgfCAnc2lnbmVyU2lnbmF0dXJlJyB8IHVuZGVmaW5lZDtcbiAgICB3YWxsZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG4pOiBQcm9taXNlPGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4ge1xuICBjb25zdCB3YXNtU2lnbmVyID0gc2lnbmVyS2V5Y2hhaW4gPyB0b1dhc21CSVAzMihzaWduZXJLZXljaGFpbikgOiB1bmRlZmluZWQ7XG5cbiAgaWYgKGhhc0tleVBhdGhTcGVuZElucHV0KHR4LCByb290V2FsbGV0S2V5cywgcGFyYW1zLnJlcGxheVByb3RlY3Rpb24pKSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHdhc21TaWduZXIpO1xuICAgICAgICB0eC5nZW5lcmF0ZU11c2lnMk5vbmNlcyh3YXNtU2lnbmVyKTtcbiAgICAgICAgUFNCVF9DQUNIRV9XQVNNLnNldCh0eC51bnNpZ25lZFR4aWQoKSwgdHgpO1xuICAgICAgICByZXR1cm4gdHg7XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHBhcmFtcy53YWxsZXRJZCwgJ3dhbGxldElkIGlzIHJlcXVpcmVkIGZvciBNdVNpZzIgYml0Z28gbm9uY2UnKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNvaW4uZ2V0TXVzaWcyTm9uY2VzKHR4LCBwYXJhbXMud2FsbGV0SWQpO1xuICAgICAgY2FzZSAnc2lnbmVyU2lnbmF0dXJlJzoge1xuICAgICAgICBjb25zdCB0eElkID0gdHgudW5zaWduZWRUeGlkKCk7XG4gICAgICAgIGNvbnN0IGNhY2hlZFBzYnQgPSBQU0JUX0NBQ0hFX1dBU00uZ2V0KHR4SWQpO1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgY2FjaGVkUHNidCxcbiAgICAgICAgICBgUHNidCBpcyBtaXNzaW5nIGZyb20gdHhDYWNoZSAoY2FjaGUgc2l6ZSAke1BTQlRfQ0FDSEVfV0FTTS5zaXplfSkuXG4gICAgICAgICAgICBUaGlzIG1heSBiZSBkdWUgdG8gdGhlIHJlcXVlc3QgYmVpbmcgcm91dGVkIHRvIGEgZGlmZmVyZW50IEJpdEdvLUV4cHJlc3MgaW5zdGFuY2UgdGhhdCBmb3Igc2lnbmluZyBzdGVwICdzaWduZXJOb25jZScuYFxuICAgICAgICApO1xuICAgICAgICBQU0JUX0NBQ0hFX1dBU00uZGVsZXRlKHR4SWQpO1xuICAgICAgICBjYWNoZWRQc2J0LmNvbWJpbmVNdXNpZzJOb25jZXModHgpO1xuICAgICAgICB0eCA9IGNhY2hlZFBzYnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gdGhpcyBpbnN0YW5jZSBpcyBub3QgYW4gZXh0ZXJuYWwgc2lnbmVyXG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIGFzc2VydCh3YXNtU2lnbmVyKTtcbiAgICAgICAgdHguZ2VuZXJhdGVNdXNpZzJOb25jZXMod2FzbVNpZ25lcik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29pbi5nZXRNdXNpZzJOb25jZXModHgsIHBhcmFtcy53YWxsZXRJZCk7XG4gICAgICAgIHR4LmNvbWJpbmVNdXNpZzJOb25jZXMocmVzcG9uc2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgIGNhc2UgJ2Nvc2lnbmVyTm9uY2UnOlxuICAgICAgICAvKipcbiAgICAgICAgICogSW4gY2VydGFpbiBjYXNlcywgdGhlIGNhbGxlciBvZiB0aGlzIG1ldGhvZCBtYXkgbm90IGtub3cgd2hldGhlciB0aGUgdHhIZXggY29udGFpbnMgYSBwc2J0IHdpdGggdGFwcm9vdCBrZXkgcGF0aCBzcGVuZCBpbnB1dChzKS5cbiAgICAgICAgICogSW5zdGVhZCBvZiB0aHJvd2luZyBlcnJvciwgbm8tb3AgYW5kIHJldHVybiB0aGUgdHhIZXguIFNvIHRoYXQgdGhlIGNhbGxlciBjYW4gY2FsbCB0aGlzIG1ldGhvZCBpbiB0aGUgc2FtZSBzZXF1ZW5jZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0eDtcbiAgICB9XG4gIH1cblxuICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKHR4LCBzaWduZXJLZXljaGFpbiwgcm9vdFdhbGxldEtleXMsIHBhcmFtcy5yZXBsYXlQcm90ZWN0aW9uKTtcbn1cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9DQSxzREEwQ0M7QUFFRCw4RUEyREM7QUEzSUQsb0RBQTRCO0FBSzVCLDZDQUE2QztBQUU3QyxpREFBOEY7QUFPOUY7Ozs7O0dBS0c7QUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztBQUV2RSxTQUFTLG9CQUFvQixDQUMzQixFQUErQixFQUMvQixjQUFnRCxFQUNoRCxnQkFBc0M7SUFFdEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25GLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssbUJBQW1CLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLHFCQUFxQixDQUNuQyxFQUErQixFQUMvQixjQUFzQyxFQUN0QyxjQUFnRCxFQUNoRCxnQkFBc0M7SUFFdEMsTUFBTSxVQUFVLEdBQUcsSUFBQSxzQkFBVyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9DLG9GQUFvRjtJQUNwRixJQUFJLENBQUM7UUFDSCxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLCtCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx5RkFBeUY7SUFDekYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25GLE1BQU0sWUFB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Z0JBQU0sRUFBQyxNQUFNLENBQUMsUUFBUSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUEsZ0JBQU0sRUFBQyxVQUFVLENBQUMsQ0FBQztnQkFDbkIsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqQyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsS0FBSyxhQUFhLENBQUM7WUFDbkIsS0FBSyxlQUFlO2dCQUNsQjs7O21CQUdHO2dCQUNILE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFBLGdCQUFNLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkIsT0FBTyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUM1RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMyLCBFQ1BhaXIsIGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IHRvV2FzbUJJUDMyIH0gZnJvbSAnLi4vLi4vd2FzbVV0aWwnO1xuXG5pbXBvcnQgeyBCdWxrU2lnbmluZ0Vycm9yLCBJbnB1dFNpZ25pbmdFcnJvciwgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IgfSBmcm9tICcuL1NpZ25pbmdFcnJvcic7XG5pbXBvcnQgeyBNdXNpZzJQYXJ0aWNpcGFudCB9IGZyb20gJy4vbXVzaWcyJztcblxuZXhwb3J0IHR5cGUgUmVwbGF5UHJvdGVjdGlvbktleXMgPSB7XG4gIHB1YmxpY0tleXM6IChVaW50OEFycmF5IHwgRUNQYWlyKVtdO1xufTtcblxuLyoqXG4gKiBLZXkgVmFsdWU6IFVuc2lnbmVkIHR4IGlkID0+IFBTQlRcbiAqIEl0IGlzIHVzZWQgdG8gY2FjaGUgUFNCVHMgd2l0aCB0YXByb290IGtleSBwYXRoIChNdVNpZzIpIGlucHV0cyBkdXJpbmcgZXh0ZXJuYWwgZXhwcmVzcyBzaWduZXIgaXMgYWN0aXZhdGVkLlxuICogUmVhc29uOiBNdVNpZzIgc2lnbmVyIHNlY3VyZSBub25jZSBpcyBjYWNoZWQgaW4gdGhlIEJpdEdvUHNidCBvYmplY3QuIEl0IHdpbGwgYmUgcmVxdWlyZWQgZHVyaW5nIHRoZSBzaWduaW5nIHN0ZXAuXG4gKiBGb3IgbW9yZSBpbmZvLCBjaGVjayBTaWduVHJhbnNhY3Rpb25PcHRpb25zLnNpZ25pbmdTdGVwXG4gKi9cbmNvbnN0IFBTQlRfQ0FDSEVfV0FTTSA9IG5ldyBNYXA8c3RyaW5nLCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+KCk7XG5cbmZ1bmN0aW9uIGhhc0tleVBhdGhTcGVuZElucHV0KFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcGFyc2VkID0gdHgucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHJvb3RXYWxsZXRLZXlzLCByZXBsYXlQcm90ZWN0aW9uKTtcbiAgcmV0dXJuIHBhcnNlZC5pbnB1dHMuc29tZSgoaW5wdXQpID0+IGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyS2V5UGF0aCcpO1xufVxuXG4vKipcbiAqIFNpZ24gYWxsIGlucHV0cyBvZiBhIFBTQlQgYW5kIHZlcmlmeSBzaWduYXR1cmVzIGFmdGVyIHNpZ25pbmcuXG4gKiBVc2VzIGJ1bGsgc2lnbmluZyBmb3IgcGVyZm9ybWFuY2UgKHNpZ25zIGFsbCBtYXRjaGluZyBpbnB1dHMgaW4gb25lIHBhc3MpLlxuICogQ29sbGVjdHMgYW5kIGxvZ3Mgc2lnbmluZyBlcnJvcnMgYW5kIHZlcmlmaWNhdGlvbiBlcnJvcnMsIHRocm93cyBlcnJvciBpbiB0aGUgZW5kIGlmIGFueSBvZiB0aGVtIGZhaWxlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbmRWZXJpZnlQc2J0V2FzbShcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IEJJUDMySW50ZXJmYWNlIHwgQklQMzIsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXNcbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGNvbnN0IHdhc21TaWduZXIgPSB0b1dhc21CSVAzMihzaWduZXJLZXljaGFpbik7XG5cbiAgLy8gQnVsayBzaWduIGFsbCB3YWxsZXQgaW5wdXRzIChFQ0RTQSArIE11U2lnMikgLSBtdWNoIGZhc3RlciB0aGFuIHBlci1pbnB1dCBzaWduaW5nXG4gIHRyeSB7XG4gICAgdHguc2lnbih3YXNtU2lnbmVyKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBCdWxrU2lnbmluZ0Vycm9yKGUpO1xuICB9XG5cbiAgLy8gVmVyaWZ5IHNpZ25hdHVyZXMgZm9yIGFsbCBzaWduZWQgaW5wdXRzIChzdGlsbCBwZXItaW5wdXQgZm9yIGdyYW51bGFyIGVycm9yIHJlcG9ydGluZylcbiAgY29uc3QgcGFyc2VkID0gdHgucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHJvb3RXYWxsZXRLZXlzLCByZXBsYXlQcm90ZWN0aW9uKTtcbiAgY29uc3QgdmVyaWZ5RXJyb3JzOiBJbnB1dFNpZ25pbmdFcnJvcjxiaWdpbnQ+W10gPSBbXTtcblxuICBwYXJzZWQuaW5wdXRzLmZvckVhY2goKGlucHV0LCBpbnB1dEluZGV4KSA9PiB7XG4gICAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIC8vIFNraXAgcmVwbGF5IHByb3RlY3Rpb24gaW5wdXRzIC0gdGhleSBhcmUgcGxhdGZvcm0gc2lnbmVkIG9ubHlcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXRJZCA9IGAke2lucHV0LnByZXZpb3VzT3V0cHV0LnR4aWR9OiR7aW5wdXQucHJldmlvdXNPdXRwdXQudm91dH1gO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXR4LnZlcmlmeVNpZ25hdHVyZShpbnB1dEluZGV4LCB3YXNtU2lnbmVyKSkge1xuICAgICAgICB2ZXJpZnlFcnJvcnMucHVzaChcbiAgICAgICAgICBuZXcgSW5wdXRTaWduaW5nRXJyb3IoaW5wdXRJbmRleCwgaW5wdXQuc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgbmV3IEVycm9yKCdpbnZhbGlkIHNpZ25hdHVyZScpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHZlcmlmeUVycm9ycy5wdXNoKG5ldyBJbnB1dFNpZ25pbmdFcnJvcjxiaWdpbnQ+KGlucHV0SW5kZXgsIGlucHV0LnNjcmlwdFR5cGUsIHsgaWQ6IG91dHB1dElkIH0sIGUpKTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh2ZXJpZnlFcnJvcnMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFRyYW5zYWN0aW9uU2lnbmluZ0Vycm9yKFtdLCB2ZXJpZnlFcnJvcnMpO1xuICB9XG5cbiAgcmV0dXJuIHR4O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRXYXNtKFxuICBjb2luOiBNdXNpZzJQYXJ0aWNpcGFudDxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+LFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcGFyYW1zOiB7XG4gICAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXM7XG4gICAgc2lnbmluZ1N0ZXA6ICdzaWduZXJOb25jZScgfCAnY29zaWduZXJOb25jZScgfCAnc2lnbmVyU2lnbmF0dXJlJyB8IHVuZGVmaW5lZDtcbiAgICB3YWxsZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG4pOiBQcm9taXNlPGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4ge1xuICBjb25zdCB3YXNtU2lnbmVyID0gc2lnbmVyS2V5Y2hhaW4gPyB0b1dhc21CSVAzMihzaWduZXJLZXljaGFpbikgOiB1bmRlZmluZWQ7XG5cbiAgaWYgKGhhc0tleVBhdGhTcGVuZElucHV0KHR4LCByb290V2FsbGV0S2V5cywgcGFyYW1zLnJlcGxheVByb3RlY3Rpb24pKSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHdhc21TaWduZXIpO1xuICAgICAgICB0eC5nZW5lcmF0ZU11c2lnMk5vbmNlcyh3YXNtU2lnbmVyKTtcbiAgICAgICAgUFNCVF9DQUNIRV9XQVNNLnNldCh0eC51bnNpZ25lZFR4aWQoKSwgdHgpO1xuICAgICAgICByZXR1cm4gdHg7XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHBhcmFtcy53YWxsZXRJZCwgJ3dhbGxldElkIGlzIHJlcXVpcmVkIGZvciBNdVNpZzIgYml0Z28gbm9uY2UnKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNvaW4uZ2V0TXVzaWcyTm9uY2VzKHR4LCBwYXJhbXMud2FsbGV0SWQpO1xuICAgICAgY2FzZSAnc2lnbmVyU2lnbmF0dXJlJzoge1xuICAgICAgICBjb25zdCB0eElkID0gdHgudW5zaWduZWRUeGlkKCk7XG4gICAgICAgIGNvbnN0IGNhY2hlZFBzYnQgPSBQU0JUX0NBQ0hFX1dBU00uZ2V0KHR4SWQpO1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgY2FjaGVkUHNidCxcbiAgICAgICAgICBgUHNidCBpcyBtaXNzaW5nIGZyb20gdHhDYWNoZSAoY2FjaGUgc2l6ZSAke1BTQlRfQ0FDSEVfV0FTTS5zaXplfSkuXG4gICAgICAgICAgICBUaGlzIG1heSBiZSBkdWUgdG8gdGhlIHJlcXVlc3QgYmVpbmcgcm91dGVkIHRvIGEgZGlmZmVyZW50IEJpdEdvLUV4cHJlc3MgaW5zdGFuY2UgdGhhdCBmb3Igc2lnbmluZyBzdGVwICdzaWduZXJOb25jZScuYFxuICAgICAgICApO1xuICAgICAgICBQU0JUX0NBQ0hFX1dBU00uZGVsZXRlKHR4SWQpO1xuICAgICAgICBjYWNoZWRQc2J0LmNvbWJpbmVNdXNpZzJOb25jZXModHgpO1xuICAgICAgICB0eCA9IGNhY2hlZFBzYnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gdGhpcyBpbnN0YW5jZSBpcyBub3QgYW4gZXh0ZXJuYWwgc2lnbmVyXG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIGFzc2VydCh3YXNtU2lnbmVyKTtcbiAgICAgICAgdHguZ2VuZXJhdGVNdXNpZzJOb25jZXMod2FzbVNpZ25lcik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29pbi5nZXRNdXNpZzJOb25jZXModHgsIHBhcmFtcy53YWxsZXRJZCk7XG4gICAgICAgIHR4LmNvbWJpbmVNdXNpZzJOb25jZXMocmVzcG9uc2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgIGNhc2UgJ2Nvc2lnbmVyTm9uY2UnOlxuICAgICAgICAvKipcbiAgICAgICAgICogSW4gY2VydGFpbiBjYXNlcywgdGhlIGNhbGxlciBvZiB0aGlzIG1ldGhvZCBtYXkgbm90IGtub3cgd2hldGhlciB0aGUgdHhIZXggY29udGFpbnMgYSBwc2J0IHdpdGggdGFwcm9vdCBrZXkgcGF0aCBzcGVuZCBpbnB1dChzKS5cbiAgICAgICAgICogSW5zdGVhZCBvZiB0aHJvd2luZyBlcnJvciwgbm8tb3AgYW5kIHJldHVybiB0aGUgdHhIZXguIFNvIHRoYXQgdGhlIGNhbGxlciBjYW4gY2FsbCB0aGlzIG1ldGhvZCBpbiB0aGUgc2FtZSBzZXF1ZW5jZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0eDtcbiAgICB9XG4gIH1cblxuICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKHR4LCBzaWduZXJLZXljaGFpbiwgcm9vdFdhbGxldEtleXMsIHBhcmFtcy5yZXBsYXlQcm90ZWN0aW9uKTtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BIP32Interface } from '@bitgo-beta/secp256k1';
|
|
2
2
|
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
3
|
-
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
3
|
+
import { BIP32, fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
4
4
|
import { UtxoCoinName } from '../../names';
|
|
5
5
|
import type { Unspent } from '../../unspent';
|
|
6
6
|
import { Musig2Participant } from './musig2';
|
|
@@ -8,9 +8,9 @@ import { ReplayProtectionKeys } from './signPsbtWasm';
|
|
|
8
8
|
/**
|
|
9
9
|
* Sign and verify a PSBT using either utxolib or wasm-utxo depending on the PSBT type.
|
|
10
10
|
*/
|
|
11
|
-
export declare function signAndVerifyPsbt(psbt: utxolib.bitgo.UtxoPsbt, signerKeychain: BIP32Interface, rootWalletKeys: fixedScriptWallet.RootWalletKeys | undefined, replayProtection: ReplayProtectionKeys | undefined): utxolib.bitgo.UtxoPsbt;
|
|
12
|
-
export declare function signAndVerifyPsbt(psbt: fixedScriptWallet.BitGoPsbt, signerKeychain: BIP32Interface, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys): fixedScriptWallet.BitGoPsbt;
|
|
13
|
-
export declare function signAndVerifyPsbt(psbt: utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt, signerKeychain: BIP32Interface, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys): utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt;
|
|
11
|
+
export declare function signAndVerifyPsbt(psbt: utxolib.bitgo.UtxoPsbt, signerKeychain: BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys | undefined, replayProtection: ReplayProtectionKeys | undefined): utxolib.bitgo.UtxoPsbt;
|
|
12
|
+
export declare function signAndVerifyPsbt(psbt: fixedScriptWallet.BitGoPsbt, signerKeychain: BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys): fixedScriptWallet.BitGoPsbt;
|
|
13
|
+
export declare function signAndVerifyPsbt(psbt: utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt, signerKeychain: BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys): utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt;
|
|
14
14
|
export declare function signTransaction<T extends utxolib.bitgo.UtxoPsbt | utxolib.bitgo.UtxoTransaction<bigint | number> | fixedScriptWallet.BitGoPsbt>(coin: Musig2Participant<utxolib.bitgo.UtxoPsbt> | Musig2Participant<fixedScriptWallet.BitGoPsbt>, tx: T, signerKeychain: BIP32Interface | undefined, coinName: UtxoCoinName, params: {
|
|
15
15
|
walletId: string | undefined;
|
|
16
16
|
txInfo: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAA4D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGhH;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,cAAc,EAAE,cAAc,GAAG,KAAK,EACtC,cAAc,EAAE,iBAAiB,CAAC,cAAc,GAAG,SAAS,EAC5D,gBAAgB,EAAE,oBAAoB,GAAG,SAAS,GACjD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC1B,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,KAAK,EACtC,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,GACrC,iBAAiB,CAAC,SAAS,CAAC;AAC/B,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAC1D,cAAc,EAAE,cAAc,GAAG,KAAK,EACtC,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,GACrC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAkBxD,wBAAsB,eAAe,CACnC,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAE/G,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAChG,EAAE,EAAE,CAAC,EACL,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,iBAAiB;IACjB,kCAAkC,EAAE,OAAO,CAAC;IAC5C,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACA,OAAO,CACR,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAC/G,CAqDA"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
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
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -9,6 +42,7 @@ const assert_1 = __importDefault(require("assert"));
|
|
|
9
42
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
43
|
const lodash_1 = __importDefault(require("lodash"));
|
|
11
44
|
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
45
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
12
46
|
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
13
47
|
const signLegacyTransaction_1 = require("./signLegacyTransaction");
|
|
14
48
|
const signPsbtUtxolib_1 = require("./signPsbtUtxolib");
|
|
@@ -16,13 +50,14 @@ const signPsbtWasm_1 = require("./signPsbtWasm");
|
|
|
16
50
|
const replayProtection_1 = require("./replayProtection");
|
|
17
51
|
function signAndVerifyPsbt(psbt, signerKeychain, rootWalletKeys, replayProtection) {
|
|
18
52
|
if (psbt instanceof utxo_lib_1.bitgo.UtxoPsbt) {
|
|
53
|
+
if (signerKeychain instanceof wasm_utxo_1.BIP32) {
|
|
54
|
+
signerKeychain = utxolib.bip32.fromBase58(signerKeychain.toBase58());
|
|
55
|
+
}
|
|
19
56
|
return (0, signPsbtUtxolib_1.signAndVerifyPsbt)(psbt, signerKeychain);
|
|
20
57
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return (0, signPsbtWasm_1.signAndVerifyPsbtWasm)(psbt, signerKeychain, rootWalletKeys, replayProtection);
|
|
25
|
-
}
|
|
58
|
+
(0, assert_1.default)(rootWalletKeys, 'rootWalletKeys required for wasm-utxo signing');
|
|
59
|
+
(0, assert_1.default)(replayProtection, 'replayProtection required for wasm-utxo signing');
|
|
60
|
+
return (0, signPsbtWasm_1.signAndVerifyPsbtWasm)(psbt, signerKeychain, rootWalletKeys, replayProtection);
|
|
26
61
|
}
|
|
27
62
|
async function signTransaction(coin, tx, signerKeychain, coinName, params) {
|
|
28
63
|
let isLastSignature = false;
|
|
@@ -66,4 +101,4 @@ async function signTransaction(coin, tx, signerKeychain, coinName, params) {
|
|
|
66
101
|
cosignerPub: params.cosignerPub,
|
|
67
102
|
});
|
|
68
103
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVDQSw4Q0FhQztBQUVELDBDQXdFQztBQTlIRCxvREFBNEI7QUFFNUIsbURBQWdEO0FBQ2hELG9EQUF1QjtBQUV2QixtREFBNkM7QUFFN0MsZ0RBQXFEO0FBTXJELG1FQUFnRTtBQUNoRSx1REFBd0g7QUFDeEgsaURBQWdIO0FBQ2hILHlEQUFnRTtBQXVCaEUsU0FBZ0IsaUJBQWlCLENBQy9CLElBQTBELEVBQzFELGNBQThCLEVBQzlCLGNBQTRELEVBQzVELGdCQUFrRDtJQUVsRCxJQUFJLElBQUksWUFBWSxnQkFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBQSxtQ0FBd0IsRUFBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFBLGdCQUFNLEVBQUMsY0FBYyxFQUFFLCtDQUErQyxDQUFDLENBQUM7UUFDeEUsSUFBQSxnQkFBTSxFQUFDLGdCQUFnQixFQUFFLGlEQUFpRCxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFBLG9DQUFxQixFQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDdkYsQ0FBQztBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUduQyxJQUFnRyxFQUNoRyxFQUFLLEVBQ0wsY0FBMEMsRUFDMUMsUUFBc0IsRUFDdEIsTUFTQztJQUlELElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztJQUM1QixJQUFJLGdCQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3hDLHNHQUFzRztRQUN0RyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxFQUFFLFlBQVksZ0JBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsc0RBQW9DLEVBQzNELElBQWlELEVBQ2pELEVBQUUsRUFDRixjQUFjLEVBQ2Q7WUFDRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1NBQzFCLENBQ0YsQ0FBQztRQUNGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0IsT0FBTyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztTQUFNLElBQUksRUFBRSxZQUFZLDZCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7UUFDbEUsSUFBQSxnQkFBTSxFQUFDLElBQUEsbUJBQVEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUN2RCxNQUFNLGNBQWMsR0FBRyw2QkFBaUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsZ0RBQWlDLEVBQ3hELElBQXNELEVBQ3RELEVBQUUsRUFDRixjQUFjLEVBQ2QsY0FBYyxFQUNkO1lBQ0UsZ0JBQWdCLEVBQUU7Z0JBQ2hCLFVBQVUsRUFBRSxJQUFBLDZDQUEwQixFQUFDLFFBQVEsQ0FBQzthQUNqRDtZQUNELFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7U0FDMUIsQ0FDRixDQUFDO1FBQ0YsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU8sSUFBQSw2Q0FBcUIsRUFBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRTtRQUN6RCxlQUFlO1FBQ2YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQy9CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtRQUNyQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO0tBQ2hDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGlzVHJpcGxlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCB7IGJpdGdvIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBmaXhlZFNjcmlwdFdhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi9uYW1lcyc7XG5pbXBvcnQgdHlwZSB7IFVuc3BlbnQgfSBmcm9tICcuLi8uLi91bnNwZW50JztcblxuaW1wb3J0IHsgTXVzaWcyUGFydGljaXBhbnQgfSBmcm9tICcuL211c2lnMic7XG5pbXBvcnQgeyBzaWduTGVnYWN5VHJhbnNhY3Rpb24gfSBmcm9tICcuL3NpZ25MZWdhY3lUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFV0eG9saWIsIHNpZ25BbmRWZXJpZnlQc2J0IGFzIHNpZ25BbmRWZXJpZnlQc2J0VXR4b2xpYiB9IGZyb20gJy4vc2lnblBzYnRVdHhvbGliJztcbmltcG9ydCB7IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbSwgc2lnbkFuZFZlcmlmeVBzYnRXYXNtLCBSZXBsYXlQcm90ZWN0aW9uS2V5cyB9IGZyb20gJy4vc2lnblBzYnRXYXNtJztcbmltcG9ydCB7IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzIH0gZnJvbSAnLi9yZXBsYXlQcm90ZWN0aW9uJztcblxuLyoqXG4gKiBTaWduIGFuZCB2ZXJpZnkgYSBQU0JUIHVzaW5nIGVpdGhlciB1dHhvbGliIG9yIHdhc20tdXR4byBkZXBlbmRpbmcgb24gdGhlIFBTQlQgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbmRWZXJpZnlQc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyB8IHVuZGVmaW5lZCxcbiAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXMgfCB1bmRlZmluZWRcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQ7XG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnQoXG4gIHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IEJJUDMySW50ZXJmYWNlLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzXG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHNpZ25lcktleWNoYWluOiBCSVAzMkludGVyZmFjZSxcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbmV4cG9ydCBmdW5jdGlvbiBzaWduQW5kVmVyaWZ5UHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IEJJUDMySW50ZXJmYWNlLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMgfCB1bmRlZmluZWQsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzIHwgdW5kZWZpbmVkXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgaWYgKHBzYnQgaW5zdGFuY2VvZiBiaXRnby5VdHhvUHNidCkge1xuICAgIHJldHVybiBzaWduQW5kVmVyaWZ5UHNidFV0eG9saWIocHNidCwgc2lnbmVyS2V5Y2hhaW4pO1xuICB9IGVsc2Uge1xuICAgIGFzc2VydChyb290V2FsbGV0S2V5cywgJ3Jvb3RXYWxsZXRLZXlzIHJlcXVpcmVkIGZvciB3YXNtLXV0eG8gc2lnbmluZycpO1xuICAgIGFzc2VydChyZXBsYXlQcm90ZWN0aW9uLCAncmVwbGF5UHJvdGVjdGlvbiByZXF1aXJlZCBmb3Igd2FzbS11dHhvIHNpZ25pbmcnKTtcbiAgICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKHBzYnQsIHNpZ25lcktleWNoYWluLCByb290V2FsbGV0S2V5cywgcmVwbGF5UHJvdGVjdGlvbik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25UcmFuc2FjdGlvbjxcbiAgVCBleHRlbmRzIHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0XG4+KFxuICBjb2luOiBNdXNpZzJQYXJ0aWNpcGFudDx1dHhvbGliLmJpdGdvLlV0eG9Qc2J0PiB8IE11c2lnMlBhcnRpY2lwYW50PGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4sXG4gIHR4OiBULFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUsXG4gIHBhcmFtczoge1xuICAgIHdhbGxldElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdHhJbmZvOiB7IHVuc3BlbnRzPzogVW5zcGVudDxiaWdpbnQgfCBudW1iZXI+W10gfSB8IHVuZGVmaW5lZDtcbiAgICBpc0xhc3RTaWduYXR1cmU6IGJvb2xlYW47XG4gICAgc2lnbmluZ1N0ZXA6ICdzaWduZXJOb25jZScgfCAnY29zaWduZXJOb25jZScgfCAnc2lnbmVyU2lnbmF0dXJlJyB8IHVuZGVmaW5lZDtcbiAgICAvKiogZGVwcmVjYXRlZCAqL1xuICAgIGFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHg6IGJvb2xlYW47XG4gICAgcHViczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgY29zaWduZXJQdWI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfVxuKTogUHJvbWlzZTxcbiAgdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludCB8IG51bWJlcj4gfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQgfCBCdWZmZXJcbj4ge1xuICBsZXQgaXNMYXN0U2lnbmF0dXJlID0gZmFsc2U7XG4gIGlmIChfLmlzQm9vbGVhbihwYXJhbXMuaXNMYXN0U2lnbmF0dXJlKSkge1xuICAgIC8vIGlmIGJ1aWxkIGlzIGNhbGxlZCBpbnN0ZWFkIG9mIGJ1aWxkSW5jb21wbGV0ZSwgbm8gc2lnbmF0dXJlIHBsYWNlaG9sZGVycyBhcmUgbGVmdCBpbiB0aGUgc2lnIHNjcmlwdFxuICAgIGlzTGFzdFNpZ25hdHVyZSA9IHBhcmFtcy5pc0xhc3RTaWduYXR1cmU7XG4gIH1cblxuICBpZiAodHggaW5zdGFuY2VvZiBiaXRnby5VdHhvUHNidCkge1xuICAgIGNvbnN0IHNpZ25lZFBzYnQgPSBhd2FpdCBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFV0eG9saWIoXG4gICAgICBjb2luIGFzIE11c2lnMlBhcnRpY2lwYW50PHV0eG9saWIuYml0Z28uVXR4b1BzYnQ+LFxuICAgICAgdHgsXG4gICAgICBzaWduZXJLZXljaGFpbixcbiAgICAgIHtcbiAgICAgICAgc2lnbmluZ1N0ZXA6IHBhcmFtcy5zaWduaW5nU3RlcCxcbiAgICAgICAgd2FsbGV0SWQ6IHBhcmFtcy53YWxsZXRJZCxcbiAgICAgIH1cbiAgICApO1xuICAgIGlmIChpc0xhc3RTaWduYXR1cmUpIHtcbiAgICAgIHNpZ25lZFBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICAgIHJldHVybiBzaWduZWRQc2J0LmV4dHJhY3RUcmFuc2FjdGlvbigpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmVkUHNidDtcbiAgfSBlbHNlIGlmICh0eCBpbnN0YW5jZW9mIGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCkge1xuICAgIGFzc2VydChwYXJhbXMucHVicywgJ3B1YnMgYXJlIHJlcXVpcmVkIGZvciBmaXhlZCBzY3JpcHQgc2lnbmluZycpO1xuICAgIGFzc2VydChpc1RyaXBsZShwYXJhbXMucHVicyksICdwdWJzIG11c3QgYmUgYSB0cmlwbGUnKTtcbiAgICBjb25zdCByb290V2FsbGV0S2V5cyA9IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLmZyb21YcHVicyhwYXJhbXMucHVicyk7XG4gICAgY29uc3Qgc2lnbmVkUHNidCA9IGF3YWl0IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbShcbiAgICAgIGNvaW4gYXMgTXVzaWcyUGFydGljaXBhbnQ8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PixcbiAgICAgIHR4LFxuICAgICAgc2lnbmVyS2V5Y2hhaW4sXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIHtcbiAgICAgICAgcmVwbGF5UHJvdGVjdGlvbjoge1xuICAgICAgICAgIHB1YmxpY0tleXM6IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzKGNvaW5OYW1lKSxcbiAgICAgICAgfSxcbiAgICAgICAgc2lnbmluZ1N0ZXA6IHBhcmFtcy5zaWduaW5nU3RlcCxcbiAgICAgICAgd2FsbGV0SWQ6IHBhcmFtcy53YWxsZXRJZCxcbiAgICAgIH1cbiAgICApO1xuICAgIGlmIChpc0xhc3RTaWduYXR1cmUpIHtcbiAgICAgIHNpZ25lZFBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShzaWduZWRQc2J0LmV4dHJhY3RUcmFuc2FjdGlvbigpLnRvQnl0ZXMoKSk7XG4gICAgfVxuICAgIHJldHVybiBzaWduZWRQc2J0O1xuICB9XG5cbiAgcmV0dXJuIHNpZ25MZWdhY3lUcmFuc2FjdGlvbih0eCwgc2lnbmVyS2V5Y2hhaW4sIGNvaW5OYW1lLCB7XG4gICAgaXNMYXN0U2lnbmF0dXJlLFxuICAgIHNpZ25pbmdTdGVwOiBwYXJhbXMuc2lnbmluZ1N0ZXAsXG4gICAgdHhJbmZvOiBwYXJhbXMudHhJbmZvLFxuICAgIHB1YnM6IHBhcmFtcy5wdWJzLFxuICAgIGNvc2lnbmVyUHViOiBwYXJhbXMuY29zaWduZXJQdWIsXG4gIH0pO1xufVxuIl19
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVDQSw4Q0FlQztBQUVELDBDQXdFQztBQWhJRCxvREFBNEI7QUFFNUIsbURBQWdEO0FBQ2hELG9EQUF1QjtBQUV2QixtREFBNkM7QUFDN0MsOERBQWdEO0FBQ2hELGdEQUE0RDtBQU01RCxtRUFBZ0U7QUFDaEUsdURBQXdIO0FBQ3hILGlEQUFnSDtBQUNoSCx5REFBZ0U7QUF1QmhFLFNBQWdCLGlCQUFpQixDQUMvQixJQUEwRCxFQUMxRCxjQUFzQyxFQUN0QyxjQUE0RCxFQUM1RCxnQkFBa0Q7SUFFbEQsSUFBSSxJQUFJLFlBQVksZ0JBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxJQUFJLGNBQWMsWUFBWSxpQkFBSyxFQUFFLENBQUM7WUFDcEMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxPQUFPLElBQUEsbUNBQXdCLEVBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFBLGdCQUFNLEVBQUMsY0FBYyxFQUFFLCtDQUErQyxDQUFDLENBQUM7SUFDeEUsSUFBQSxnQkFBTSxFQUFDLGdCQUFnQixFQUFFLGlEQUFpRCxDQUFDLENBQUM7SUFDNUUsT0FBTyxJQUFBLG9DQUFxQixFQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUVNLEtBQUssVUFBVSxlQUFlLENBR25DLElBQWdHLEVBQ2hHLEVBQUssRUFDTCxjQUEwQyxFQUMxQyxRQUFzQixFQUN0QixNQVNDO0lBSUQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksZ0JBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDeEMsc0dBQXNHO1FBQ3RHLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLEVBQUUsWUFBWSxnQkFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxzREFBb0MsRUFDM0QsSUFBaUQsRUFDakQsRUFBRSxFQUNGLGNBQWMsRUFDZDtZQUNFLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7U0FDMUIsQ0FDRixDQUFDO1FBQ0YsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQixPQUFPLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO1NBQU0sSUFBSSxFQUFFLFlBQVksNkJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckQsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsNENBQTRDLENBQUMsQ0FBQztRQUNsRSxJQUFBLGdCQUFNLEVBQUMsSUFBQSxtQkFBUSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLDZCQUFpQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9FLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxnREFBaUMsRUFDeEQsSUFBc0QsRUFDdEQsRUFBRSxFQUNGLGNBQWMsRUFDZCxjQUFjLEVBQ2Q7WUFDRSxnQkFBZ0IsRUFBRTtnQkFDaEIsVUFBVSxFQUFFLElBQUEsNkNBQTBCLEVBQUMsUUFBUSxDQUFDO2FBQ2pEO1lBQ0QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtTQUMxQixDQUNGLENBQUM7UUFDRixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxJQUFBLDZDQUFxQixFQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFO1FBQ3pELGVBQWU7UUFDZixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7S0FDaEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgaXNUcmlwbGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgYml0Z28gfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMyLCBmaXhlZFNjcmlwdFdhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi9uYW1lcyc7XG5pbXBvcnQgdHlwZSB7IFVuc3BlbnQgfSBmcm9tICcuLi8uLi91bnNwZW50JztcblxuaW1wb3J0IHsgTXVzaWcyUGFydGljaXBhbnQgfSBmcm9tICcuL211c2lnMic7XG5pbXBvcnQgeyBzaWduTGVnYWN5VHJhbnNhY3Rpb24gfSBmcm9tICcuL3NpZ25MZWdhY3lUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFV0eG9saWIsIHNpZ25BbmRWZXJpZnlQc2J0IGFzIHNpZ25BbmRWZXJpZnlQc2J0VXR4b2xpYiB9IGZyb20gJy4vc2lnblBzYnRVdHhvbGliJztcbmltcG9ydCB7IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbSwgc2lnbkFuZFZlcmlmeVBzYnRXYXNtLCBSZXBsYXlQcm90ZWN0aW9uS2V5cyB9IGZyb20gJy4vc2lnblBzYnRXYXNtJztcbmltcG9ydCB7IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzIH0gZnJvbSAnLi9yZXBsYXlQcm90ZWN0aW9uJztcblxuLyoqXG4gKiBTaWduIGFuZCB2ZXJpZnkgYSBQU0JUIHVzaW5nIGVpdGhlciB1dHhvbGliIG9yIHdhc20tdXR4byBkZXBlbmRpbmcgb24gdGhlIFBTQlQgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbmRWZXJpZnlQc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzIHwgdW5kZWZpbmVkLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyB8IHVuZGVmaW5lZFxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbmV4cG9ydCBmdW5jdGlvbiBzaWduQW5kVmVyaWZ5UHNidChcbiAgcHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbmRWZXJpZnlQc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbmV4cG9ydCBmdW5jdGlvbiBzaWduQW5kVmVyaWZ5UHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IEJJUDMySW50ZXJmYWNlIHwgQklQMzIsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyB8IHVuZGVmaW5lZCxcbiAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXMgfCB1bmRlZmluZWRcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBpZiAocHNidCBpbnN0YW5jZW9mIGJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgaWYgKHNpZ25lcktleWNoYWluIGluc3RhbmNlb2YgQklQMzIpIHtcbiAgICAgIHNpZ25lcktleWNoYWluID0gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KHNpZ25lcktleWNoYWluLnRvQmFzZTU4KCkpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRVdHhvbGliKHBzYnQsIHNpZ25lcktleWNoYWluKTtcbiAgfVxuICBhc3NlcnQocm9vdFdhbGxldEtleXMsICdyb290V2FsbGV0S2V5cyByZXF1aXJlZCBmb3Igd2FzbS11dHhvIHNpZ25pbmcnKTtcbiAgYXNzZXJ0KHJlcGxheVByb3RlY3Rpb24sICdyZXBsYXlQcm90ZWN0aW9uIHJlcXVpcmVkIGZvciB3YXNtLXV0eG8gc2lnbmluZycpO1xuICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKHBzYnQsIHNpZ25lcktleWNoYWluLCByb290V2FsbGV0S2V5cywgcmVwbGF5UHJvdGVjdGlvbik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVHJhbnNhY3Rpb248XG4gIFQgZXh0ZW5kcyB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50IHwgbnVtYmVyPiB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidFxuPihcbiAgY29pbjogTXVzaWcyUGFydGljaXBhbnQ8dXR4b2xpYi5iaXRnby5VdHhvUHNidD4gfCBNdXNpZzJQYXJ0aWNpcGFudDxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+LFxuICB0eDogVCxcbiAgc2lnbmVyS2V5Y2hhaW46IEJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lLFxuICBwYXJhbXM6IHtcbiAgICB3YWxsZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHR4SW5mbzogeyB1bnNwZW50cz86IFVuc3BlbnQ8YmlnaW50IHwgbnVtYmVyPltdIH0gfCB1bmRlZmluZWQ7XG4gICAgaXNMYXN0U2lnbmF0dXJlOiBib29sZWFuO1xuICAgIHNpZ25pbmdTdGVwOiAnc2lnbmVyTm9uY2UnIHwgJ2Nvc2lnbmVyTm9uY2UnIHwgJ3NpZ25lclNpZ25hdHVyZScgfCB1bmRlZmluZWQ7XG4gICAgLyoqIGRlcHJlY2F0ZWQgKi9cbiAgICBhbGxvd05vblNlZ3dpdFNpZ25pbmdXaXRob3V0UHJldlR4OiBib29sZWFuO1xuICAgIHB1YnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIGNvc2lnbmVyUHViOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH1cbik6IFByb21pc2U8XG4gIHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHwgQnVmZmVyXG4+IHtcbiAgbGV0IGlzTGFzdFNpZ25hdHVyZSA9IGZhbHNlO1xuICBpZiAoXy5pc0Jvb2xlYW4ocGFyYW1zLmlzTGFzdFNpZ25hdHVyZSkpIHtcbiAgICAvLyBpZiBidWlsZCBpcyBjYWxsZWQgaW5zdGVhZCBvZiBidWlsZEluY29tcGxldGUsIG5vIHNpZ25hdHVyZSBwbGFjZWhvbGRlcnMgYXJlIGxlZnQgaW4gdGhlIHNpZyBzY3JpcHRcbiAgICBpc0xhc3RTaWduYXR1cmUgPSBwYXJhbXMuaXNMYXN0U2lnbmF0dXJlO1xuICB9XG5cbiAgaWYgKHR4IGluc3RhbmNlb2YgYml0Z28uVXR4b1BzYnQpIHtcbiAgICBjb25zdCBzaWduZWRQc2J0ID0gYXdhaXQgc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRVdHhvbGliKFxuICAgICAgY29pbiBhcyBNdXNpZzJQYXJ0aWNpcGFudDx1dHhvbGliLmJpdGdvLlV0eG9Qc2J0PixcbiAgICAgIHR4LFxuICAgICAgc2lnbmVyS2V5Y2hhaW4sXG4gICAgICB7XG4gICAgICAgIHNpZ25pbmdTdGVwOiBwYXJhbXMuc2lnbmluZ1N0ZXAsXG4gICAgICAgIHdhbGxldElkOiBwYXJhbXMud2FsbGV0SWQsXG4gICAgICB9XG4gICAgKTtcbiAgICBpZiAoaXNMYXN0U2lnbmF0dXJlKSB7XG4gICAgICBzaWduZWRQc2J0LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gICAgICByZXR1cm4gc2lnbmVkUHNidC5leHRyYWN0VHJhbnNhY3Rpb24oKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ25lZFBzYnQ7XG4gIH0gZWxzZSBpZiAodHggaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQpIHtcbiAgICBhc3NlcnQocGFyYW1zLnB1YnMsICdwdWJzIGFyZSByZXF1aXJlZCBmb3IgZml4ZWQgc2NyaXB0IHNpZ25pbmcnKTtcbiAgICBhc3NlcnQoaXNUcmlwbGUocGFyYW1zLnB1YnMpLCAncHVicyBtdXN0IGJlIGEgdHJpcGxlJyk7XG4gICAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cy5mcm9tWHB1YnMocGFyYW1zLnB1YnMpO1xuICAgIGNvbnN0IHNpZ25lZFBzYnQgPSBhd2FpdCBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFdhc20oXG4gICAgICBjb2luIGFzIE11c2lnMlBhcnRpY2lwYW50PGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4sXG4gICAgICB0eCxcbiAgICAgIHNpZ25lcktleWNoYWluLFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICB7XG4gICAgICAgIHJlcGxheVByb3RlY3Rpb246IHtcbiAgICAgICAgICBwdWJsaWNLZXlzOiBnZXRSZXBsYXlQcm90ZWN0aW9uUHVia2V5cyhjb2luTmFtZSksXG4gICAgICAgIH0sXG4gICAgICAgIHNpZ25pbmdTdGVwOiBwYXJhbXMuc2lnbmluZ1N0ZXAsXG4gICAgICAgIHdhbGxldElkOiBwYXJhbXMud2FsbGV0SWQsXG4gICAgICB9XG4gICAgKTtcbiAgICBpZiAoaXNMYXN0U2lnbmF0dXJlKSB7XG4gICAgICBzaWduZWRQc2J0LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oc2lnbmVkUHNidC5leHRyYWN0VHJhbnNhY3Rpb24oKS50b0J5dGVzKCkpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmVkUHNidDtcbiAgfVxuXG4gIHJldHVybiBzaWduTGVnYWN5VHJhbnNhY3Rpb24odHgsIHNpZ25lcktleWNoYWluLCBjb2luTmFtZSwge1xuICAgIGlzTGFzdFNpZ25hdHVyZSxcbiAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgIHR4SW5mbzogcGFyYW1zLnR4SW5mbyxcbiAgICBwdWJzOiBwYXJhbXMucHVicyxcbiAgICBjb3NpZ25lclB1YjogcGFyYW1zLmNvc2lnbmVyUHViLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -45,4 +45,11 @@ export interface WalletUnspent<TNumber extends number | bigint = number> extends
|
|
|
45
45
|
export interface UnspentWithPrevTx<TNumber extends number | bigint = number> extends Unspent<TNumber> {
|
|
46
46
|
prevTx: Buffer;
|
|
47
47
|
}
|
|
48
|
+
export declare function parseOutputId(id: string): {
|
|
49
|
+
txid: string;
|
|
50
|
+
vout: number;
|
|
51
|
+
};
|
|
52
|
+
export declare function unspentSum(unspents: {
|
|
53
|
+
value: number | bigint;
|
|
54
|
+
}[]): bigint;
|
|
48
55
|
//# sourceMappingURL=unspent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unspent.d.ts","sourceRoot":"","sources":["../../../src/unspent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAC/D;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,OAAO,CAAC,OAAO,CAAC;IAC/F,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,OAAO,CAAC,OAAO,CAAC;IACnG,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"unspent.d.ts","sourceRoot":"","sources":["../../../src/unspent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAC/D;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,OAAO,CAAC,OAAO,CAAC;IAC/F,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,OAAO,CAAC,OAAO,CAAC;IACnG,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAGxE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAEzE"}
|
package/dist/cjs/src/unspent.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.parseOutputId = parseOutputId;
|
|
4
|
+
exports.unspentSum = unspentSum;
|
|
5
|
+
function parseOutputId(id) {
|
|
6
|
+
const [txid, vout] = id.split(':');
|
|
7
|
+
return { txid, vout: Number(vout) };
|
|
8
|
+
}
|
|
9
|
+
function unspentSum(unspents) {
|
|
10
|
+
return unspents.reduce((sum, unspent) => sum + BigInt(unspent.value), 0n);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zcGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bnNwZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbURBLHNDQUdDO0FBRUQsZ0NBRUM7QUFQRCxTQUFnQixhQUFhLENBQUMsRUFBVTtJQUN0QyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxRQUFzQztJQUMvRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbi8qKlxuICogVW5zcGVudCB0cmFuc2FjdGlvbiBvdXRwdXQgKFVUWE8pIHR5cGUgZGVmaW5pdGlvblxuICpcbiAqIFRoaXMgdHlwZSByZXByZXNlbnRzIGFuIHVuc3BlbnQgdHJhbnNhY3Rpb24gb3V0cHV0LCBpbmRlcGVuZGVudCBmcm9tIHV0eG8tbGliLlxuICogVGhlIHN0cnVjdHVyZSBtYXRjaGVzIHV0eG9saWIuYml0Z28uVW5zcGVudCBidXQgaXMgZGVmaW5lZCBsb2NhbGx5LlxuICpcbiAqIEBwcm9wZXJ0eSBpZCAtIEZvcm1hdDogJHt0eGlkfToke3ZvdXR9LiBVc2UgYHBhcnNlT3V0cHV0SWQoaWQpYCB0byBwYXJzZS5cbiAqIEBwcm9wZXJ0eSBhZGRyZXNzIC0gVGhlIG5ldHdvcmstc3BlY2lmaWMgZW5jb2RlZCBhZGRyZXNzLiBVc2UgYHRvT3V0cHV0U2NyaXB0KGFkZHJlc3MsIG5ldHdvcmspYCB0byBvYnRhaW4gc2NyaXB0UHViS2V5LlxuICogQHByb3BlcnR5IHZhbHVlIC0gVGhlIGFtb3VudCBpbiBzYXRvc2hpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4ge1xuICAvKipcbiAgICogRm9ybWF0OiAke3R4aWR9OiR7dm91dH0uXG4gICAqIFVzZSBgcGFyc2VPdXRwdXRJZChpZClgIHRvIHBhcnNlLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuZXR3b3JrLXNwZWNpZmljIGVuY29kZWQgYWRkcmVzcy5cbiAgICogVXNlIGB0b091dHB1dFNjcmlwdChhZGRyZXNzLCBuZXR3b3JrKWAgdG8gb2J0YWluIHNjcmlwdFB1YktleS5cbiAgICovXG4gIGFkZHJlc3M6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgaW4gc2F0b3NoaS5cbiAgICovXG4gIHZhbHVlOiBUTnVtYmVyO1xufVxuXG4vKipcbiAqIFdhbGxldCB1bnNwZW50IHR5cGUgLSBleHRlbmRzIFVuc3BlbnQgd2l0aCB3YWxsZXQtc3BlY2lmaWMgZmllbGRzXG4gKlxuICogVGhpcyB0eXBlIGluY2x1ZGVzIGFsbCBmaWVsZHMgZnJvbSBVbnNwZW50IHBsdXM6XG4gKiAtIGNoYWluOiBDaGFpbkNvZGUgKGNoYWluIGNvZGUgZm9yIHdhbGxldCBkZXJpdmF0aW9uKVxuICogLSBpbmRleDogbnVtYmVyIChpbmRleCBmb3Igd2FsbGV0IGRlcml2YXRpb24pXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiBleHRlbmRzIFVuc3BlbnQ8VE51bWJlcj4ge1xuICBjaGFpbjogdXR4b2xpYi5iaXRnby5DaGFpbkNvZGU7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogVW5zcGVudCB3aXRoIHByZXZpb3VzIHRyYW5zYWN0aW9uIGRhdGFcbiAqXG4gKiBFeHRlbmRzIFVuc3BlbnQgd2l0aDpcbiAqIC0gcHJldlR4OiBCdWZmZXIgKHByZXZpb3VzIHRyYW5zYWN0aW9uIGRhdGEgZm9yIGxlZ2FjeSB0cmFuc2FjdGlvbnMpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5zcGVudFdpdGhQcmV2VHg8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gZXh0ZW5kcyBVbnNwZW50PFROdW1iZXI+IHtcbiAgcHJldlR4OiBCdWZmZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU91dHB1dElkKGlkOiBzdHJpbmcpOiB7IHR4aWQ6IHN0cmluZzsgdm91dDogbnVtYmVyIH0ge1xuICBjb25zdCBbdHhpZCwgdm91dF0gPSBpZC5zcGxpdCgnOicpO1xuICByZXR1cm4geyB0eGlkLCB2b3V0OiBOdW1iZXIodm91dCkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuc3BlbnRTdW0odW5zcGVudHM6IHsgdmFsdWU6IG51bWJlciB8IGJpZ2ludCB9W10pOiBiaWdpbnQge1xuICByZXR1cm4gdW5zcGVudHMucmVkdWNlKChzdW0sIHVuc3BlbnQpID0+IHN1bSArIEJpZ0ludCh1bnNwZW50LnZhbHVlKSwgMG4pO1xufVxuIl19
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
declare const txFormats: readonly ["legacy", "psbt"];
|
|
2
|
-
export type TxFormat = (typeof txFormats)[number];
|
|
3
|
-
declare const scriptTypes: readonly ["p2sh", "p2shP2wsh", "p2wsh", "p2tr", "p2trMusig2", "taprootKeyPathSpend", "p2shP2pk"];
|
|
4
|
-
export type ScriptType = (typeof scriptTypes)[number];
|
|
5
1
|
export {};
|
|
6
2
|
//# sourceMappingURL=prebuildAndSign.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prebuildAndSign.d.ts","sourceRoot":"","sources":["../../../../test/unit/prebuildAndSign.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prebuildAndSign.d.ts","sourceRoot":"","sources":["../../../../test/unit/prebuildAndSign.ts"],"names":[],"mappings":""}
|
|
@@ -38,25 +38,22 @@ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
|
38
38
|
const nock = require("nock");
|
|
39
39
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
40
40
|
const sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
41
|
-
const src_1 = require("../../src");
|
|
42
|
-
const names_1 = require("../../src/names");
|
|
43
41
|
const util_1 = require("./util");
|
|
44
|
-
const txFormats = ['legacy', 'psbt'];
|
|
45
42
|
const walletPassphrase = 'gabagool';
|
|
46
43
|
const webauthnWalletPassPhrase = 'just the gabagool';
|
|
47
|
-
const scriptTypes = [...utxolib.bitgo.outputScripts.scriptTypes2Of3, 'taprootKeyPathSpend', 'p2shP2pk'];
|
|
48
44
|
function assertSignable(psbtHex, inputScripts, network) {
|
|
49
45
|
const psbt = utxolib.bitgo.createPsbtFromHex(psbtHex, network);
|
|
50
46
|
// Make sure that you can sign with bitgo key and extract the transaction
|
|
51
|
-
//
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
psbt.signAllInputsHD(key, { deterministic: true });
|
|
55
|
-
psbt.validateSignaturesOfAllInputs();
|
|
56
|
-
psbt.finalizeAllInputs();
|
|
57
|
-
const tx = psbt.extractTransaction();
|
|
58
|
-
assert.ok(tx);
|
|
47
|
+
// Skip validation for p2shP2pk (single-sig replay protection) and taprootKeyPathSpend (requires musig2 nonce exchange)
|
|
48
|
+
if (inputScripts.includes('p2shP2pk') || inputScripts.includes('taprootKeyPathSpend')) {
|
|
49
|
+
return;
|
|
59
50
|
}
|
|
51
|
+
const key = inputScripts.includes('p2trMusig2') ? rootWalletKeys.backup : rootWalletKeys.bitgo;
|
|
52
|
+
psbt.signAllInputsHD(key, { deterministic: true });
|
|
53
|
+
psbt.validateSignaturesOfAllInputs();
|
|
54
|
+
psbt.finalizeAllInputs();
|
|
55
|
+
const tx = psbt.extractTransaction();
|
|
56
|
+
assert.ok(tx);
|
|
60
57
|
}
|
|
61
58
|
// Build the key objects
|
|
62
59
|
const rootWalletKeys = (0, util_1.getDefaultWalletKeys)();
|
|
@@ -248,24 +245,7 @@ function run(coin, inputScripts, txFormat) {
|
|
|
248
245
|
});
|
|
249
246
|
});
|
|
250
247
|
}
|
|
251
|
-
util_1.
|
|
252
|
-
|
|
253
|
-
.forEach((coin) => {
|
|
254
|
-
scriptTypes
|
|
255
|
-
// Don't iterate over p2shP2pk - in no scenario would a wallet spend two p2shP2pk inputs as these
|
|
256
|
-
// are single signature inputs that are used for replay protection and are added to the transaction
|
|
257
|
-
// by our system from a separate wallet. We do run tests below where one of the inputs is a p2shP2pk and
|
|
258
|
-
// the other is an input spent by the user.
|
|
259
|
-
.filter((scriptType) => scriptType !== 'p2shP2pk')
|
|
260
|
-
.forEach((inputScript) => {
|
|
261
|
-
const inputScriptCleaned = (inputScript === 'taprootKeyPathSpend' ? 'p2trMusig2' : inputScript);
|
|
262
|
-
if (!coin.supportsAddressType(inputScriptCleaned)) {
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
run(coin, [inputScript, inputScript], 'psbt');
|
|
266
|
-
if ((0, src_1.getReplayProtectionAddresses)(coin.name).length) {
|
|
267
|
-
run(coin, ['p2shP2pk', inputScript], 'psbt');
|
|
268
|
-
}
|
|
269
|
-
});
|
|
248
|
+
(0, util_1.getMinUtxoCoins)().forEach((coin) => {
|
|
249
|
+
run(coin, (0, util_1.getScriptTypes)(coin, 'psbt'), 'psbt');
|
|
270
250
|
});
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlYnVpbGRBbmRTaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3ByZWJ1aWxkQW5kU2lnbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyw4REFBZ0Q7QUFDaEQsNkJBQThCO0FBQzlCLG1EQUFpRjtBQUNqRixtREFBK0M7QUFFL0MsbUNBQTJFO0FBQzNFLDJDQUFxRDtBQUVyRCxpQ0FBd0g7QUFFeEgsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFVLENBQUM7QUFXOUMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7QUFDcEMsTUFBTSx3QkFBd0IsR0FBRyxtQkFBbUIsQ0FBQztBQUVyRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBUWpILFNBQVMsY0FBYyxDQUFDLE9BQWUsRUFBRSxZQUEwQixFQUFFLE9BQXdCO0lBQzNGLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELHlFQUF5RTtJQUN6RSwyREFBMkQ7SUFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQy9GLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFD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dCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0IHsgY29tbW9uLCBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uLCBXYWxsZXQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBnZXRSZXBsYXlQcm90ZWN0aW9uQWRkcmVzc2VzIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IGdldE1haW5uZXRDb2luTmFtZSB9IGZyb20gJy4uLy4uL3NyYy9uYW1lcyc7XG5cbmltcG9ydCB7IGRlZmF1bHRCaXRHbywgZW5jcnlwdEtleWNoYWluLCBnZXREZWZhdWx0V2FsbGV0S2V5cywgZ2V0VXR4b1dhbGxldCwga2V5Y2hhaW5zQmFzZTU4LCB1dHhvQ29pbnMgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCB0eEZvcm1hdHMgPSBbJ2xlZ2FjeScsICdwc2J0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBUeEZvcm1hdCA9ICh0eXBlb2YgdHhGb3JtYXRzKVtudW1iZXJdO1xuXG50eXBlIEtleURvYyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgcHViOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBlbmNyeXB0ZWRQcnY6IHN0cmluZztcbiAgY29pblNwZWNpZmljOiBhbnk7XG59O1xuXG5jb25zdCB3YWxsZXRQYXNzcGhyYXNlID0gJ2dhYmFnb29sJztcbmNvbnN0IHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSA9ICdqdXN0IHRoZSBnYWJhZ29vbCc7XG5cbmNvbnN0IHNjcmlwdFR5cGVzID0gWy4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMsICd0YXByb290S2V5UGF0aFNwZW5kJywgJ3Ayc2hQMnBrJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlID0gKHR5cGVvZiBzY3JpcHRUeXBlcylbbnVtYmVyXTtcblxudHlwZSBJbnB1dCA9IHtcbiAgc2NyaXB0VHlwZTogU2NyaXB0VHlwZTtcbiAgdmFsdWU6IGJpZ2ludDtcbn07XG5cbmZ1bmN0aW9uIGFzc2VydFNpZ25hYmxlKHBzYnRIZXg6IHN0cmluZywgaW5wdXRTY3JpcHRzOiBTY3JpcHRUeXBlW10sIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHZvaWQge1xuICBjb25zdCBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUhleChwc2J0SGV4LCBuZXR3b3JrKTtcbiAgLy8gTWFrZSBzdXJlIHRoYXQgeW91IGNhbiBzaWduIHdpdGggYml0Z28ga2V5IGFuZCBleHRyYWN0IHRoZSB0cmFuc2FjdGlvblxuICAvLyBObyBzaWduYXR1cmVzIHNob3VsZCBiZSBwcmVzZW50IGlmIGl0J3MgYSBwMnNoUDJwayBpbnB1dFxuICBpZiAoIWlucHV0U2NyaXB0cy5pbmNsdWRlcygncDJzaFAycGsnKSkge1xuICAgIGNvbnN0IGtleSA9IGlucHV0U2NyaXB0cy5pbmNsdWRlcygncDJ0ck11c2lnMicpID8gcm9vdFdhbGxldEtleXMuYmFja3VwIDogcm9vdFdhbGxldEtleXMuYml0Z287XG4gICAgcHNidC5zaWduQWxsSW5wdXRzSEQoa2V5LCB7IGRldGVybWluaXN0aWM6IHRydWUgfSk7XG4gICAgcHNidC52YWxpZGF0ZVNpZ25hdHVyZXNPZkFsbElucHV0cygpO1xuICAgIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICBjb25zdCB0eCA9IHBzYnQuZXh0cmFjdFRyYW5zYWN0aW9uKCk7XG4gICAgYXNzZXJ0Lm9rKHR4KTtcbiAgfVxufVxuXG4vLyBCdWlsZCB0aGUga2V5IG9iamVjdHNcbmNvbnN0IHJvb3RXYWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcbmNvbnN0IGtleURvY3VtZW50T2JqZWN0cyA9IHJvb3RXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGJpcDMyLCBrZXlJZHgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogZ2V0U2VlZChrZXljaGFpbnNCYXNlNThba2V5SWR4XS5wdWIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBwdWI6IGJpcDMyLm5ldXRlcmVkKCkudG9CYXNlNTgoKSxcbiAgICBzb3VyY2U6IFsndXNlcicsICdiYWNrdXAnLCAnYml0Z28nXVtrZXlJZHhdLFxuICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdEtleWNoYWluKHdhbGxldFBhc3NwaHJhc2UsIGtleWNoYWluc0Jhc2U1OFtrZXlJZHhdKSxcbiAgICB3ZWJhdXRobkRldmljZXM6IFtcbiAgICAgIHtcbiAgICAgICAgb3RwRGV2aWNlSWQ6ICcxMjMnLFxuICAgICAgICBhdXRoZW50aWNhdG9ySW5mbzoge1xuICAgICAgICAgIGNyZWRJRDogJ2NyZWRJRCcsXG4gICAgICAgICAgZm10OiAncGFja2VkJyxcbiAgICAgICAgICBwdWJsaWNLZXk6ICdzb21lIHZhbHVlJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJmU2FsdDogJzQ1NicsXG4gICAgICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdEtleWNoYWluKHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSwga2V5Y2hhaW5zQmFzZTU4W2tleUlkeF0pLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvaW5TcGVjaWZpYzoge30sXG4gIH07XG59KTtcblxuZnVuY3Rpb24gcnVuKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIGlucHV0U2NyaXB0czogU2NyaXB0VHlwZVtdLCB0eEZvcm1hdDogVHhGb3JtYXQpOiB2b2lkIHtcbiAgZnVuY3Rpb24gY3JlYXRlUHJlYnVpbGRQc2J0KGlucHV0czogSW5wdXRbXSwgb3V0cHV0czogeyBzY3JpcHRUeXBlOiAncDJzaCc7IHZhbHVlOiBiaWdpbnQgfVtdKSB7XG4gICAgY29uc3QgcHNidCA9IHV0eG9saWIudGVzdHV0aWwuY29uc3RydWN0UHNidChcbiAgICAgIGlucHV0cyBhcyB1dHhvbGliLnRlc3R1dGlsLklucHV0W10sXG4gICAgICBvdXRwdXRzLFxuICAgICAgY29pbi5uZXR3b3JrLFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICAndW5zaWduZWQnXG4gICAgKTtcbiAgICB1dHhvbGliLmJpdGdvLmFkZFhwdWJzVG9Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzKTtcbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vY2tzKHBhcmFtczoge1xuICAgIGJnVXJsOiBzdHJpbmc7XG4gICAgd2FsbGV0OiBXYWxsZXQ7XG4gICAga2V5RG9jdW1lbnRzOiBLZXlEb2NbXTtcbiAgICBwcmVidWlsZDogdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbiAgICByZWNpcGllbnQ6IHsgYWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB9O1xuICAgIGFkZHJlc3NJbmZvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHJiZlR4SWRzPzogc3RyaW5nW107XG4gICAgZmVlTXVsdGlwbGllcj86IG51bWJlcjtcbiAgICBzZWxmU2VuZD86IGJvb2xlYW47XG4gICAgbm9ja091dHB1dEFkZHJlc3Nlcz86IGJvb2xlYW47XG4gICAgdHhGb3JtYXQ/OiBzdHJpbmc7XG4gIH0pOiBub2NrLlNjb3BlW10ge1xuICAgIGNvbnN0IG5vY2tzOiBub2NrLlNjb3BlW10gPSBbXTtcblxuICAgIC8vIE5vY2sgdGhlIHByZWJ1aWxkIHJvdXRlICgvdHgvYnVpbGQsIGJsb2NraGVpZ2h0KVxuICAgIGNvbnN0IGV4cGVjdGVkX3BhcmFtcyA9IHtcbiAgICAgIHJlY2lwaWVudHM6IFtwYXJhbXMucmVjaXBpZW50XSxcbiAgICAgIHJiZlR4SWRzOiBwYXJhbXMucmJmVHhJZHMsXG4gICAgICBmZWVNdWx0aXBsaWVyOiBwYXJhbXMuZmVlTXVsdGlwbGllcixcbiAgICAgIGNoYW5nZUFkZHJlc3NUeXBlOiBbJ3AydHJNdXNpZzInLCAncDJ3c2gnLCAncDJzaFAyd3NoJywgJ3Ayc2gnLCAncDJ0ciddLFxuICAgIH07XG4gICAgaWYgKHBhcmFtcy50eEZvcm1hdCkge1xuICAgICAgZXhwZWN0ZWRfcGFyYW1zWyd0eEZvcm1hdCddID0gcGFyYW1zLnR4Rm9ybWF0O1xuICAgIH1cbiAgICBub2Nrcy5wdXNoKFxuICAgICAgbm9jayhwYXJhbXMuYmdVcmwpXG4gICAgICAgIC5wb3N0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtwYXJhbXMud2FsbGV0LmlkKCl9L3R4L2J1aWxkYCwgZXhwZWN0ZWRfcGFyYW1zKVxuICAgICAgICAucmVwbHkoMjAwLCB7IHR4SGV4OiBwYXJhbXMucHJlYnVpbGQudG9IZXgoKSwgdHhJbmZvOiB7fSB9KVxuICAgICk7XG4gICAgbm9ja3MucHVzaChub2NrKHBhcmFtcy5iZ1VybCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9wdWJsaWMvYmxvY2svbGF0ZXN0YCkucmVwbHkoMjAwLCB7IGhlaWdodDogMTAwMCB9KSk7XG5cbiAgICAvLyBub2NrIHRoZSBrZXljaGFpbiBmZXRjaCAtIDMgdGltZXMgKHByZWJ1aWxkQW5kU2lnbiwgdmVyaWZ5VHJhbnNhY3Rpb24sIGFuZCBzaWduVHJhbnNhY3Rpb24pXG4gICAgcGFyYW1zLmtleURvY3VtZW50cy5mb3JFYWNoKChrZXlEb2N1bWVudCkgPT4ge1xuICAgICAgbm9ja3MucHVzaChcbiAgICAgICAgbm9jayhwYXJhbXMuYmdVcmwpLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7a2V5RG9jdW1lbnQuaWR9YCkudGltZXMoMykucmVwbHkoMjAwLCBrZXlEb2N1bWVudClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBub2NrIHRoZSBhZGRyZXNzIGluZm8gZmV0Y2hcbiAgICBpZiAocGFyYW1zLm5vY2tPdXRwdXRBZGRyZXNzZXMpIHtcbiAgICAgIG5vY2tzLnB1c2goXG4gICAgICAgIG5vY2socGFyYW1zLmJnVXJsKVxuICAgICAgICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke3BhcmFtcy53YWxsZXQuaWQoKX0vYWRkcmVzcy8ke3BhcmFtcy5hZGRyZXNzSW5mby5hZGRyZXNzfWApXG4gICAgICAgICAgLnJlcGx5KDIwMCwgcGFyYW1zLmFkZHJlc3NJbmZvKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnJiZlR4SWRzKSB7XG4gICAgICBub2Nrcy5wdXNoKFxuICAgICAgICBub2NrKHBhcmFtcy5iZ1VybClcbiAgICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtwYXJhbXMud2FsbGV0LmlkKCl9L3R4LyR7cGFyYW1zLnJiZlR4SWRzWzBdfT9pbmNsdWRlUmJmPXRydWVgKVxuICAgICAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgICAgIG91dHB1dHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6IHBhcmFtcy5yZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogTnVtYmVyKHBhcmFtcy5yZWNpcGllbnQuYW1vdW50KSxcbiAgICAgICAgICAgICAgICB2YWx1ZVN0cmluZzogcGFyYW1zLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICAgICAgICAgICAgd2FsbGV0OiBwYXJhbXMuc2VsZlNlbmQgPyBwYXJhbXMud2FsbGV0LmlkKCkgOiAnc29tZS1vdGhlci13YWxsZXQtaWQnLCAvLyBleHRlcm5hbCBvdXRwdXQgaWYgbm90IGEgc2VsZiBzZW5kXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIER1bW15IGNoYW5nZSBvdXRwdXQgdG8gdGVzdCB0cmFuc2ZlciBlbnRyaWVzIGZpbHRlcmluZ1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogcGFyYW1zLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBOdW1iZXIocGFyYW1zLnJlY2lwaWVudC5hbW91bnQpLFxuICAgICAgICAgICAgICAgIHZhbHVlU3RyaW5nOiBwYXJhbXMucmVjaXBpZW50LmFtb3VudCxcbiAgICAgICAgICAgICAgICB3YWxsZXQ6IHBhcmFtcy53YWxsZXQuaWQoKSwgLy8gaW50ZXJuYWwgb3V0cHV0XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIG5vY2sgdGhlIGRldGVybWluaXN0aWMgbm9uY2UgcmVzcG9uc2VcbiAgICBpZiAoaW5wdXRTY3JpcHRzLmluY2x1ZGVzKCd0YXByb290S2V5UGF0aFNwZW5kJykpIHtcbiAgICAgIGNvbnN0IHBzYnQgPSBwYXJhbXMucHJlYnVpbGQuY2xvbmUoKTtcbiAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5cy51c2VyKTtcbiAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5cy5iaXRnbyk7XG4gICAgICBub2Nrcy5wdXNoKFxuICAgICAgICBub2NrKHBhcmFtcy5iZ1VybClcbiAgICAgICAgICAucG9zdChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7cGFyYW1zLndhbGxldC5pZCgpfS90eC9zaWducHNidGAsIChib2R5KSA9PiBib2R5LnBzYnQpXG4gICAgICAgICAgLnJlcGx5KDIwMCwgeyBwc2J0OiBwc2J0LnRvSGV4KCkgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vY2tzO1xuICB9XG5cbiAgZGVzY3JpYmUoYCR7Y29pbi5nZXRGdWxsTmFtZSgpfS1wcmVidWlsZEFuZFNpZ24tdHhGb3JtYXQ9JHt0eEZvcm1hdH0taW5wdXRTY3JpcHRzPSR7aW5wdXRTY3JpcHRzLmpvaW4oXG4gICAgJywnXG4gICl9YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldCA9IGdldFV0eG9XYWxsZXQoY29pbiwge1xuICAgICAgY29pblNwZWNpZmljOiB7IGFkZHJlc3NWZXJzaW9uOiAnYmFzZTU4JyB9LFxuICAgICAga2V5czoga2V5RG9jdW1lbnRPYmplY3RzLm1hcCgoaykgPT4gay5pZCksXG4gICAgICBpZDogJ3dhbGxldElkJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJnVXJsID0gY29tbW9uLkVudmlyb25tZW50c1tkZWZhdWx0Qml0R28uZ2V0RW52KCldLnVyaTtcbiAgICBsZXQgcHJlYnVpbGQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQ7XG4gICAgbGV0IHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nIH07XG4gICAgbGV0IGFkZHJlc3NJbmZvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0IGZlZSA9IEJpZ0ludCgxMDAwMCk7XG5cbiAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gTWFrZSBvdXRwdXQgYWRkcmVzcyBpbmZvcm1hdGlvblxuICAgICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gQmlnSW50KGlucHV0U2NyaXB0cy5sZW5ndGgpICogQmlnSW50KDFlOCkgLSBmZWU7XG4gICAgICBjb25zdCBvdXRwdXRTY3JpcHRUeXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZSA9ICdwMnNoJztcbiAgICAgIGNvbnN0IG91dHB1dENoYWluID0gdXR4b2xpYi5iaXRnby5nZXRFeHRlcm5hbENoYWluQ29kZShvdXRwdXRTY3JpcHRUeXBlKTtcbiAgICAgIGNvbnN0IG91dHB1dEFkZHJlc3MgPSB1dHhvbGliLmJpdGdvLmdldFdhbGxldEFkZHJlc3Mocm9vdFdhbGxldEtleXMsIG91dHB1dENoYWluLCAwLCBjb2luLm5ldHdvcmspO1xuXG4gICAgICByZWNpcGllbnQgPSB7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dEFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogb3V0cHV0QW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgYWRkcmVzc0luZm8gPSB7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dEFkZHJlc3MsXG4gICAgICAgIGNoYWluOiBvdXRwdXRDaGFpbixcbiAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgd2FsbGV0OiB3YWxsZXQuaWQoKSxcbiAgICAgICAgY29pblNwZWNpZmljOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHByZWJ1aWxkID0gY3JlYXRlUHJlYnVpbGRQc2J0KFxuICAgICAgICBpbnB1dFNjcmlwdHMubWFwKChzKSA9PiAoeyBzY3JpcHRUeXBlOiBzLCB2YWx1ZTogQmlnSW50KDFlOCkgfSkpLFxuICAgICAgICBbeyBzY3JpcHRUeXBlOiBvdXRwdXRTY3JpcHRUeXBlLCB2YWx1ZTogb3V0cHV0QW1vdW50IH1dXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKG5vY2suY2xlYW5BbGwpO1xuXG4gICAgW3RydWUsIGZhbHNlXS5mb3JFYWNoKCh1c2VXZWJhdXRobikgPT4ge1xuICAgICAgaXQoYHNob3VsZCBzdWNjZWVkIHdpdGggJHt1c2VXZWJhdXRobiA/ICd3ZWJhdXRobiBlbmNyeXB0ZWRQcnYnIDogJ2VuY3J5cHRlZFBydid9YCwgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIHdhbGxldC9jb2luIGNvbWJpbmF0aW9uIGRlZmF1bHRzIHRvIHBzYnRcbiAgICAgICAgY29uc3QgZGVmYXVsdFR4Rm9ybWF0ID0gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0KTtcbiAgICAgICAgY29uc3Qgbm9ja3MgPSBjcmVhdGVOb2Nrcyh7XG4gICAgICAgICAgYmdVcmwsXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICAgIGtleURvY3VtZW50czoga2V5RG9jdW1lbnRPYmplY3RzLFxuICAgICAgICAgIHByZWJ1aWxkLFxuICAgICAgICAgIHJlY2lwaWVudCxcbiAgICAgICAgICBhZGRyZXNzSW5mbyxcbiAgICAgICAgICBub2NrT3V0cHV0QWRkcmVzc2VzOiB0eEZvcm1hdCAhPT0gJ3BzYnQnLFxuICAgICAgICAgIHR4Rm9ybWF0OiBkZWZhdWx0VHhGb3JtYXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGNhbGwgcHJlYnVpbGQgYW5kIHNpZ24sIG5vY2tzIHNob3VsZCBiZSBjb25zdW1lZFxuICAgICAgICBjb25zdCByZXMgPSAoYXdhaXQgd2FsbGV0LnByZWJ1aWxkQW5kU2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgICByZWNpcGllbnRzOiBbcmVjaXBpZW50XSxcbiAgICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiB1c2VXZWJhdXRobiA/IHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSA6IHdhbGxldFBhc3NwaHJhc2UsXG4gICAgICAgIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuXG4gICAgICAgIG5vY2tzLmZvckVhY2goKG5vY2spID0+IGFzc2VydC5vayhub2NrLmlzRG9uZSgpKSk7XG5cbiAgICAgICAgYXNzZXJ0U2lnbmFibGUocmVzLnR4SGV4LCBpbnB1dFNjcmlwdHMsIGNvaW4ubmV0d29yayk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSB3YWxsZXQgcGFzc3BocmFzZSBpcyBpbmNvcnJlY3QnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNyZWF0ZU5vY2tzKHtcbiAgICAgICAgICBiZ1VybCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgICAga2V5RG9jdW1lbnRzOiBrZXlEb2N1bWVudE9iamVjdHMsXG4gICAgICAgICAgcHJlYnVpbGQsXG4gICAgICAgICAgcmVjaXBpZW50LFxuICAgICAgICAgIGFkZHJlc3NJbmZvLFxuICAgICAgICAgIG5vY2tPdXRwdXRBZGRyZXNzZXM6IHR4Rm9ybWF0ICE9PSAncHNidCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHdhbGxldFxuICAgICAgICAgIC5wcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgICAgICByZWNpcGllbnRzOiBbcmVjaXBpZW50XSxcbiAgICAgICAgICAgIHdhbGxldFBhc3NwaHJhc2U6IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCd1bmFibGUgdG8gZGVjcnlwdCBrZXljaGFpbiB3aXRoIHRoZSBnaXZlbiB3YWxsZXQgcGFzc3BocmFzZScpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBbdHJ1ZSwgZmFsc2VdLmZvckVhY2goKHNlbGZTZW5kKSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGJlIGFibGUgdG8gYnVpbGQsIHNpZ24sICYgdmVyaWZ5IGEgcmVwbGFjZW1lbnQgdHJhbnNhY3Rpb24gd2l0aCBzZWxmU2VuZDogJHtzZWxmU2VuZH1gLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJiZlR4SWRzID0gWyd0eC10by1iZS1yZXBsYWNlZCddLFxuICAgICAgICAgIGZlZU11bHRpcGxpZXIgPSAxLjU7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgd2FsbGV0L2NvaW4gY29tYmluYXRpb24gZGVmYXVsdHMgdG8gcHNidFxuICAgICAgICBjb25zdCBkZWZhdWx0VHhGb3JtYXQgPSBjb2luLmdldERlZmF1bHRUeEZvcm1hdCh3YWxsZXQpO1xuICAgICAgICBjb25zdCBub2NrcyA9IGNyZWF0ZU5vY2tzKHtcbiAgICAgICAgICBiZ1VybCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgICAga2V5RG9jdW1lbnRzOiBrZXlEb2N1bWVudE9iamVjdHMsXG4gICAgICAgICAgcHJlYnVpbGQsXG4gICAgICAgICAgcmVjaXBpZW50LFxuICAgICAgICAgIGFkZHJlc3NJbmZvLFxuICAgICAgICAgIHJiZlR4SWRzLFxuICAgICAgICAgIGZlZU11bHRpcGxpZXIsXG4gICAgICAgICAgc2VsZlNlbmQsXG4gICAgICAgICAgbm9ja091dHB1dEFkZHJlc3NlczogdHhGb3JtYXQgIT09ICdwc2J0JyxcbiAgICAgICAgICB0eEZvcm1hdDogZGVmYXVsdFR4Rm9ybWF0LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBjYWxsIHByZWJ1aWxkIGFuZCBzaWduLCBub2NrcyBzaG91bGQgYmUgY29uc3VtZWRcbiAgICAgICAgY29uc3QgcmVzID0gKGF3YWl0IHdhbGxldC5wcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgICAgcmVjaXBpZW50czogW3JlY2lwaWVudF0sXG4gICAgICAgICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgICAgICAgICByYmZUeElkcyxcbiAgICAgICAgICBmZWVNdWx0aXBsaWVyLFxuICAgICAgICB9KSkgYXMgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbjtcblxuICAgICAgICBub2Nrcy5mb3JFYWNoKChub2NrKSA9PiBhc3NlcnQub2sobm9jay5pc0RvbmUoKSkpO1xuXG4gICAgICAgIGFzc2VydFNpZ25hYmxlKHJlcy50eEhleCwgaW5wdXRTY3JpcHRzLCBjb2luLm5ldHdvcmspO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG51dHhvQ29pbnNcbiAgLmZpbHRlcigoY29pbikgPT4gZ2V0TWFpbm5ldENvaW5OYW1lKGNvaW4ubmFtZSkgIT09ICdic3YnKVxuICAuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgIHNjcmlwdFR5cGVzXG4gICAgICAvLyBEb24ndCBpdGVyYXRlIG92ZXIgcDJzaFAycGsgLSBpbiBubyBzY2VuYXJpbyB3b3VsZCBhIHdhbGxldCBzcGVuZCB0d28gcDJzaFAycGsgaW5wdXRzIGFzIHRoZXNlXG4gICAgICAvLyBhcmUgc2luZ2xlIHNpZ25hdHVyZSBpbnB1dHMgdGhhdCBhcmUgdXNlZCBmb3IgcmVwbGF5IHByb3RlY3Rpb24gYW5kIGFyZSBhZGRlZCB0byB0aGUgdHJhbnNhY3Rpb25cbiAgICAgIC8vIGJ5IG91ciBzeXN0ZW0gZnJvbSBhIHNlcGFyYXRlIHdhbGxldC4gV2UgZG8gcnVuIHRlc3RzIGJlbG93IHdoZXJlIG9uZSBvZiB0aGUgaW5wdXRzIGlzIGEgcDJzaFAycGsgYW5kXG4gICAgICAvLyB0aGUgb3RoZXIgaXMgYW4gaW5wdXQgc3BlbnQgYnkgdGhlIHVzZXIuXG4gICAgICAuZmlsdGVyKChzY3JpcHRUeXBlKSA9PiBzY3JpcHRUeXBlICE9PSAncDJzaFAycGsnKVxuICAgICAgLmZvckVhY2goKGlucHV0U2NyaXB0KSA9PiB7XG4gICAgICAgIGNvbnN0IGlucHV0U2NyaXB0Q2xlYW5lZCA9IChcbiAgICAgICAgICBpbnB1dFNjcmlwdCA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gJ3AydHJNdXNpZzInIDogaW5wdXRTY3JpcHRcbiAgICAgICAgKSBhcyB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjM7XG5cbiAgICAgICAgaWYgKCFjb2luLnN1cHBvcnRzQWRkcmVzc1R5cGUoaW5wdXRTY3JpcHRDbGVhbmVkKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bihjb2luLCBbaW5wdXRTY3JpcHQsIGlucHV0U2NyaXB0XSwgJ3BzYnQnKTtcbiAgICAgICAgaWYgKGdldFJlcGxheVByb3RlY3Rpb25BZGRyZXNzZXMoY29pbi5uYW1lKS5sZW5ndGgpIHtcbiAgICAgICAgICBydW4oY29pbiwgWydwMnNoUDJwaycsIGlucHV0U2NyaXB0XSwgJ3BzYnQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH0pO1xuIl19
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlYnVpbGRBbmRTaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3ByZWJ1aWxkQW5kU2lnbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyw4REFBZ0Q7QUFFaEQsNkJBQThCO0FBQzlCLG1EQUFpRjtBQUNqRixtREFBK0M7QUFJL0MsaUNBU2dCO0FBWWhCLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLE1BQU0sd0JBQXdCLEdBQUcsbUJBQW1CLENBQUM7QUFPckQsU0FBUyxjQUFjLENBQUMsT0FBZSxFQUFFLFlBQTBCLEVBQUUsT0FBd0I7SUFDM0YsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QseUVBQXlFO0lBQ3pFLHVIQUF1SDtJQUN2SCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7UUFDdEYsT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQy9GLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7SUFDckMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDekIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDckMsTUFBTSxDQUFDLEVBQUUsQ0FB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LENBQUM7QUFFRCxJQUFBLHNCQUFlLEdBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUEscUJBQWMsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyB0ZXN0dXRpbCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0IHsgY29tbW9uLCBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uLCBXYWxsZXQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuaW1wb3J0IHtcbiAgZGVmYXVsdEJpdEdvLFxuICBlbmNyeXB0S2V5Y2hhaW4sXG4gIGdldERlZmF1bHRXYWxsZXRLZXlzLFxuICBnZXRNaW5VdHhvQ29pbnMsXG4gIGdldFV0eG9XYWxsZXQsXG4gIGtleWNoYWluc0Jhc2U1OCxcbiAgZ2V0U2NyaXB0VHlwZXMsXG4gIFR4Rm9ybWF0LFxufSBmcm9tICcuL3V0aWwnO1xuXG50eXBlIFNjcmlwdFR5cGUgPSB0ZXN0dXRpbC5JbnB1dFNjcmlwdFR5cGU7XG5cbnR5cGUgS2V5RG9jID0ge1xuICBpZDogc3RyaW5nO1xuICBwdWI6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xuICBjb2luU3BlY2lmaWM6IGFueTtcbn07XG5cbmNvbnN0IHdhbGxldFBhc3NwaHJhc2UgPSAnZ2FiYWdvb2wnO1xuY29uc3Qgd2ViYXV0aG5XYWxsZXRQYXNzUGhyYXNlID0gJ2p1c3QgdGhlIGdhYmFnb29sJztcblxudHlwZSBJbnB1dCA9IHtcbiAgc2NyaXB0VHlwZTogU2NyaXB0VHlwZTtcbiAgdmFsdWU6IGJpZ2ludDtcbn07XG5cbmZ1bmN0aW9uIGFzc2VydFNpZ25hYmxlKHBzYnRIZXg6IHN0cmluZywgaW5wdXRTY3JpcHRzOiBTY3JpcHRUeXBlW10sIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHZvaWQge1xuICBjb25zdCBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUhleChwc2J0SGV4LCBuZXR3b3JrKTtcbiAgLy8gTWFrZSBzdXJlIHRoYXQgeW91IGNhbiBzaWduIHdpdGggYml0Z28ga2V5IGFuZCBleHRyYWN0IHRoZSB0cmFuc2FjdGlvblxuICAvLyBTa2lwIHZhbGlkYXRpb24gZm9yIHAyc2hQMnBrIChzaW5nbGUtc2lnIHJlcGxheSBwcm90ZWN0aW9uKSBhbmQgdGFwcm9vdEtleVBhdGhTcGVuZCAocmVxdWlyZXMgbXVzaWcyIG5vbmNlIGV4Y2hhbmdlKVxuICBpZiAoaW5wdXRTY3JpcHRzLmluY2x1ZGVzKCdwMnNoUDJwaycpIHx8IGlucHV0U2NyaXB0cy5pbmNsdWRlcygndGFwcm9vdEtleVBhdGhTcGVuZCcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGtleSA9IGlucHV0U2NyaXB0cy5pbmNsdWRlcygncDJ0ck11c2lnMicpID8gcm9vdFdhbGxldEtleXMuYmFja3VwIDogcm9vdFdhbGxldEtleXMuYml0Z287XG4gIHBzYnQuc2lnbkFsbElucHV0c0hEKGtleSwgeyBkZXRlcm1pbmlzdGljOiB0cnVlIH0pO1xuICBwc2J0LnZhbGlkYXRlU2lnbmF0dXJlc09mQWxsSW5wdXRzKCk7XG4gIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgY29uc3QgdHggPSBwc2J0LmV4dHJhY3RUcmFuc2FjdGlvbigpO1xuICBhc3NlcnQub2sodHgpO1xufVxuXG4vLyBCdWlsZCB0aGUga2V5IG9iamVjdHNcbmNvbnN0IHJvb3RXYWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcbmNvbnN0IGtleURvY3VtZW50T2JqZWN0cyA9IHJvb3RXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGJpcDMyLCBrZXlJZHgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogZ2V0U2VlZChrZXljaGFpbnNCYXNlNThba2V5SWR4XS5wdWIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBwdWI6IGJpcDMyLm5ldXRlcmVkKCkudG9CYXNlNTgoKSxcbiAgICBzb3VyY2U6IFsndXNlcicsICdiYWNrdXAnLCAnYml0Z28nXVtrZXlJZHhdLFxuICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdEtleWNoYWluKHdhbGxldFBhc3NwaHJhc2UsIGtleWNoYWluc0Jhc2U1OFtrZXlJZHhdKSxcbiAgICB3ZWJhdXRobkRldmljZXM6IFtcbiAgICAgIHtcbiAgICAgICAgb3RwRGV2aWNlSWQ6ICcxMjMnLFxuICAgICAgICBhdXRoZW50aWNhdG9ySW5mbzoge1xuICAgICAgICAgIGNyZWRJRDogJ2NyZWRJRCcsXG4gICAgICAgICAgZm10OiAncGFja2VkJyxcbiAgICAgICAgICBwdWJsaWNLZXk6ICdzb21lIHZhbHVlJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJmU2FsdDogJzQ1NicsXG4gICAgICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdEtleWNoYWluKHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSwga2V5Y2hhaW5zQmFzZTU4W2tleUlkeF0pLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvaW5TcGVjaWZpYzoge30sXG4gIH07XG59KTtcblxuZnVuY3Rpb24gcnVuKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIGlucHV0U2NyaXB0czogU2NyaXB0VHlwZVtdLCB0eEZvcm1hdDogVHhGb3JtYXQpOiB2b2lkIHtcbiAgZnVuY3Rpb24gY3JlYXRlUHJlYnVpbGRQc2J0KGlucHV0czogSW5wdXRbXSwgb3V0cHV0czogeyBzY3JpcHRUeXBlOiAncDJzaCc7IHZhbHVlOiBiaWdpbnQgfVtdKSB7XG4gICAgY29uc3QgcHNidCA9IHV0eG9saWIudGVzdHV0aWwuY29uc3RydWN0UHNidChcbiAgICAgIGlucHV0cyBhcyB1dHhvbGliLnRlc3R1dGlsLklucHV0W10sXG4gICAgICBvdXRwdXRzLFxuICAgICAgY29pbi5uZXR3b3JrLFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICAndW5zaWduZWQnXG4gICAgKTtcbiAgICB1dHhvbGliLmJpdGdvLmFkZFhwdWJzVG9Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzKTtcbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vY2tzKHBhcmFtczoge1xuICAgIGJnVXJsOiBzdHJpbmc7XG4gICAgd2FsbGV0OiBXYWxsZXQ7XG4gICAga2V5RG9jdW1lbnRzOiBLZXlEb2NbXTtcbiAgICBwcmVidWlsZDogdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbiAgICByZWNpcGllbnQ6IHsgYWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB9O1xuICAgIGFkZHJlc3NJbmZvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHJiZlR4SWRzPzogc3RyaW5nW107XG4gICAgZmVlTXVsdGlwbGllcj86IG51bWJlcjtcbiAgICBzZWxmU2VuZD86IGJvb2xlYW47XG4gICAgbm9ja091dHB1dEFkZHJlc3Nlcz86IGJvb2xlYW47XG4gICAgdHhGb3JtYXQ/OiBzdHJpbmc7XG4gIH0pOiBub2NrLlNjb3BlW10ge1xuICAgIGNvbnN0IG5vY2tzOiBub2NrLlNjb3BlW10gPSBbXTtcblxuICAgIC8vIE5vY2sgdGhlIHByZWJ1aWxkIHJvdXRlICgvdHgvYnVpbGQsIGJsb2NraGVpZ2h0KVxuICAgIGNvbnN0IGV4cGVjdGVkX3BhcmFtcyA9IHtcbiAgICAgIHJlY2lwaWVudHM6IFtwYXJhbXMucmVjaXBpZW50XSxcbiAgICAgIHJiZlR4SWRzOiBwYXJhbXMucmJmVHhJZHMsXG4gICAgICBmZWVNdWx0aXBsaWVyOiBwYXJhbXMuZmVlTXVsdGlwbGllcixcbiAgICAgIGNoYW5nZUFkZHJlc3NUeXBlOiBbJ3AydHJNdXNpZzInLCAncDJ3c2gnLCAncDJzaFAyd3NoJywgJ3Ayc2gnLCAncDJ0ciddLFxuICAgIH07XG4gICAgaWYgKHBhcmFtcy50eEZvcm1hdCkge1xuICAgICAgZXhwZWN0ZWRfcGFyYW1zWyd0eEZvcm1hdCddID0gcGFyYW1zLnR4Rm9ybWF0O1xuICAgIH1cbiAgICBub2Nrcy5wdXNoKFxuICAgICAgbm9jayhwYXJhbXMuYmdVcmwpXG4gICAgICAgIC5wb3N0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtwYXJhbXMud2FsbGV0LmlkKCl9L3R4L2J1aWxkYCwgZXhwZWN0ZWRfcGFyYW1zKVxuICAgICAgICAucmVwbHkoMjAwLCB7IHR4SGV4OiBwYXJhbXMucHJlYnVpbGQudG9IZXgoKSwgdHhJbmZvOiB7fSB9KVxuICAgICk7XG4gICAgbm9ja3MucHVzaChub2NrKHBhcmFtcy5iZ1VybCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9wdWJsaWMvYmxvY2svbGF0ZXN0YCkucmVwbHkoMjAwLCB7IGhlaWdodDogMTAwMCB9KSk7XG5cbiAgICAvLyBub2NrIHRoZSBrZXljaGFpbiBmZXRjaCAtIDMgdGltZXMgKHByZWJ1aWxkQW5kU2lnbiwgdmVyaWZ5VHJhbnNhY3Rpb24sIGFuZCBzaWduVHJhbnNhY3Rpb24pXG4gICAgcGFyYW1zLmtleURvY3VtZW50cy5mb3JFYWNoKChrZXlEb2N1bWVudCkgPT4ge1xuICAgICAgbm9ja3MucHVzaChcbiAgICAgICAgbm9jayhwYXJhbXMuYmdVcmwpLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7a2V5RG9jdW1lbnQuaWR9YCkudGltZXMoMykucmVwbHkoMjAwLCBrZXlEb2N1bWVudClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBub2NrIHRoZSBhZGRyZXNzIGluZm8gZmV0Y2hcbiAgICBpZiAocGFyYW1zLm5vY2tPdXRwdXRBZGRyZXNzZXMpIHtcbiAgICAgIG5vY2tzLnB1c2goXG4gICAgICAgIG5vY2socGFyYW1zLmJnVXJsKVxuICAgICAgICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke3BhcmFtcy53YWxsZXQuaWQoKX0vYWRkcmVzcy8ke3BhcmFtcy5hZGRyZXNzSW5mby5hZGRyZXNzfWApXG4gICAgICAgICAgLnJlcGx5KDIwMCwgcGFyYW1zLmFkZHJlc3NJbmZvKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnJiZlR4SWRzKSB7XG4gICAgICBub2Nrcy5wdXNoKFxuICAgICAgICBub2NrKHBhcmFtcy5iZ1VybClcbiAgICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtwYXJhbXMud2FsbGV0LmlkKCl9L3R4LyR7cGFyYW1zLnJiZlR4SWRzWzBdfT9pbmNsdWRlUmJmPXRydWVgKVxuICAgICAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgICAgIG91dHB1dHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6IHBhcmFtcy5yZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogTnVtYmVyKHBhcmFtcy5yZWNpcGllbnQuYW1vdW50KSxcbiAgICAgICAgICAgICAgICB2YWx1ZVN0cmluZzogcGFyYW1zLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICAgICAgICAgICAgd2FsbGV0OiBwYXJhbXMuc2VsZlNlbmQgPyBwYXJhbXMud2FsbGV0LmlkKCkgOiAnc29tZS1vdGhlci13YWxsZXQtaWQnLCAvLyBleHRlcm5hbCBvdXRwdXQgaWYgbm90IGEgc2VsZiBzZW5kXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIER1bW15IGNoYW5nZSBvdXRwdXQgdG8gdGVzdCB0cmFuc2ZlciBlbnRyaWVzIGZpbHRlcmluZ1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogcGFyYW1zLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBOdW1iZXIocGFyYW1zLnJlY2lwaWVudC5hbW91bnQpLFxuICAgICAgICAgICAgICAgIHZhbHVlU3RyaW5nOiBwYXJhbXMucmVjaXBpZW50LmFtb3VudCxcbiAgICAgICAgICAgICAgICB3YWxsZXQ6IHBhcmFtcy53YWxsZXQuaWQoKSwgLy8gaW50ZXJuYWwgb3V0cHV0XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIG5vY2sgdGhlIGRldGVybWluaXN0aWMgbm9uY2UgcmVzcG9uc2VcbiAgICBpZiAoaW5wdXRTY3JpcHRzLmluY2x1ZGVzKCd0YXByb290S2V5UGF0aFNwZW5kJykpIHtcbiAgICAgIGNvbnN0IHBzYnQgPSBwYXJhbXMucHJlYnVpbGQuY2xvbmUoKTtcbiAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5cy51c2VyKTtcbiAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5cy5iaXRnbyk7XG4gICAgICBub2Nrcy5wdXNoKFxuICAgICAgICBub2NrKHBhcmFtcy5iZ1VybClcbiAgICAgICAgICAucG9zdChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7cGFyYW1zLndhbGxldC5pZCgpfS90eC9zaWducHNidGAsIChib2R5KSA9PiBib2R5LnBzYnQpXG4gICAgICAgICAgLnJlcGx5KDIwMCwgeyBwc2J0OiBwc2J0LnRvSGV4KCkgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vY2tzO1xuICB9XG5cbiAgZGVzY3JpYmUoYCR7Y29pbi5nZXRGdWxsTmFtZSgpfS1wcmVidWlsZEFuZFNpZ24tdHhGb3JtYXQ9JHt0eEZvcm1hdH0taW5wdXRTY3JpcHRzPSR7aW5wdXRTY3JpcHRzLmpvaW4oXG4gICAgJywnXG4gICl9YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldCA9IGdldFV0eG9XYWxsZXQoY29pbiwge1xuICAgICAgY29pblNwZWNpZmljOiB7IGFkZHJlc3NWZXJzaW9uOiAnYmFzZTU4JyB9LFxuICAgICAga2V5czoga2V5RG9jdW1lbnRPYmplY3RzLm1hcCgoaykgPT4gay5pZCksXG4gICAgICBpZDogJ3dhbGxldElkJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJnVXJsID0gY29tbW9uLkVudmlyb25tZW50c1tkZWZhdWx0Qml0R28uZ2V0RW52KCldLnVyaTtcbiAgICBsZXQgcHJlYnVpbGQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQ7XG4gICAgbGV0IHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nIH07XG4gICAgbGV0IGFkZHJlc3NJbmZvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0IGZlZSA9IEJpZ0ludCgxMDAwMCk7XG5cbiAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gTWFrZSBvdXRwdXQgYWRkcmVzcyBpbmZvcm1hdGlvblxuICAgICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gQmlnSW50KGlucHV0U2NyaXB0cy5sZW5ndGgpICogQmlnSW50KDFlOCkgLSBmZWU7XG4gICAgICBjb25zdCBvdXRwdXRTY3JpcHRUeXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZSA9ICdwMnNoJztcbiAgICAgIGNvbnN0IG91dHB1dENoYWluID0gdXR4b2xpYi5iaXRnby5nZXRFeHRlcm5hbENoYWluQ29kZShvdXRwdXRTY3JpcHRUeXBlKTtcbiAgICAgIGNvbnN0IG91dHB1dEFkZHJlc3MgPSB1dHhvbGliLmJpdGdvLmdldFdhbGxldEFkZHJlc3Mocm9vdFdhbGxldEtleXMsIG91dHB1dENoYWluLCAwLCBjb2luLm5ldHdvcmspO1xuXG4gICAgICByZWNpcGllbnQgPSB7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dEFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogb3V0cHV0QW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgYWRkcmVzc0luZm8gPSB7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dEFkZHJlc3MsXG4gICAgICAgIGNoYWluOiBvdXRwdXRDaGFpbixcbiAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgd2FsbGV0OiB3YWxsZXQuaWQoKSxcbiAgICAgICAgY29pblNwZWNpZmljOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHByZWJ1aWxkID0gY3JlYXRlUHJlYnVpbGRQc2J0KFxuICAgICAgICBpbnB1dFNjcmlwdHMubWFwKChzKSA9PiAoeyBzY3JpcHRUeXBlOiBzLCB2YWx1ZTogQmlnSW50KDFlOCkgfSkpLFxuICAgICAgICBbeyBzY3JpcHRUeXBlOiBvdXRwdXRTY3JpcHRUeXBlLCB2YWx1ZTogb3V0cHV0QW1vdW50IH1dXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKG5vY2suY2xlYW5BbGwpO1xuXG4gICAgW3RydWUsIGZhbHNlXS5mb3JFYWNoKCh1c2VXZWJhdXRobikgPT4ge1xuICAgICAgaXQoYHNob3VsZCBzdWNjZWVkIHdpdGggJHt1c2VXZWJhdXRobiA/ICd3ZWJhdXRobiBlbmNyeXB0ZWRQcnYnIDogJ2VuY3J5cHRlZFBydid9YCwgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIHdhbGxldC9jb2luIGNvbWJpbmF0aW9uIGRlZmF1bHRzIHRvIHBzYnRcbiAgICAgICAgY29uc3QgZGVmYXVsdFR4Rm9ybWF0ID0gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0KTtcbiAgICAgICAgY29uc3Qgbm9ja3MgPSBjcmVhdGVOb2Nrcyh7XG4gICAgICAgICAgYmdVcmwsXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICAgIGtleURvY3VtZW50czoga2V5RG9jdW1lbnRPYmplY3RzLFxuICAgICAgICAgIHByZWJ1aWxkLFxuICAgICAgICAgIHJlY2lwaWVudCxcbiAgICAgICAgICBhZGRyZXNzSW5mbyxcbiAgICAgICAgICBub2NrT3V0cHV0QWRkcmVzc2VzOiB0eEZvcm1hdCAhPT0gJ3BzYnQnLFxuICAgICAgICAgIHR4Rm9ybWF0OiBkZWZhdWx0VHhGb3JtYXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGNhbGwgcHJlYnVpbGQgYW5kIHNpZ24sIG5vY2tzIHNob3VsZCBiZSBjb25zdW1lZFxuICAgICAgICBjb25zdCByZXMgPSAoYXdhaXQgd2FsbGV0LnByZWJ1aWxkQW5kU2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgICByZWNpcGllbnRzOiBbcmVjaXBpZW50XSxcbiAgICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiB1c2VXZWJhdXRobiA/IHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSA6IHdhbGxldFBhc3NwaHJhc2UsXG4gICAgICAgIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuXG4gICAgICAgIG5vY2tzLmZvckVhY2goKG5vY2spID0+IGFzc2VydC5vayhub2NrLmlzRG9uZSgpKSk7XG5cbiAgICAgICAgYXNzZXJ0U2lnbmFibGUocmVzLnR4SGV4LCBpbnB1dFNjcmlwdHMsIGNvaW4ubmV0d29yayk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSB3YWxsZXQgcGFzc3BocmFzZSBpcyBpbmNvcnJlY3QnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNyZWF0ZU5vY2tzKHtcbiAgICAgICAgICBiZ1VybCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgICAga2V5RG9jdW1lbnRzOiBrZXlEb2N1bWVudE9iamVjdHMsXG4gICAgICAgICAgcHJlYnVpbGQsXG4gICAgICAgICAgcmVjaXBpZW50LFxuICAgICAgICAgIGFkZHJlc3NJbmZvLFxuICAgICAgICAgIG5vY2tPdXRwdXRBZGRyZXNzZXM6IHR4Rm9ybWF0ICE9PSAncHNidCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHdhbGxldFxuICAgICAgICAgIC5wcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgICAgICByZWNpcGllbnRzOiBbcmVjaXBpZW50XSxcbiAgICAgICAgICAgIHdhbGxldFBhc3NwaHJhc2U6IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCd1bmFibGUgdG8gZGVjcnlwdCBrZXljaGFpbiB3aXRoIHRoZSBnaXZlbiB3YWxsZXQgcGFzc3BocmFzZScpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBbdHJ1ZSwgZmFsc2VdLmZvckVhY2goKHNlbGZTZW5kKSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGJlIGFibGUgdG8gYnVpbGQsIHNpZ24sICYgdmVyaWZ5IGEgcmVwbGFjZW1lbnQgdHJhbnNhY3Rpb24gd2l0aCBzZWxmU2VuZDogJHtzZWxmU2VuZH1gLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJiZlR4SWRzID0gWyd0eC10by1iZS1yZXBsYWNlZCddLFxuICAgICAgICAgIGZlZU11bHRpcGxpZXIgPSAxLjU7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgd2FsbGV0L2NvaW4gY29tYmluYXRpb24gZGVmYXVsdHMgdG8gcHNidFxuICAgICAgICBjb25zdCBkZWZhdWx0VHhGb3JtYXQgPSBjb2luLmdldERlZmF1bHRUeEZvcm1hdCh3YWxsZXQpO1xuICAgICAgICBjb25zdCBub2NrcyA9IGNyZWF0ZU5vY2tzKHtcbiAgICAgICAgICBiZ1VybCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgICAga2V5RG9jdW1lbnRzOiBrZXlEb2N1bWVudE9iamVjdHMsXG4gICAgICAgICAgcHJlYnVpbGQsXG4gICAgICAgICAgcmVjaXBpZW50LFxuICAgICAgICAgIGFkZHJlc3NJbmZvLFxuICAgICAgICAgIHJiZlR4SWRzLFxuICAgICAgICAgIGZlZU11bHRpcGxpZXIsXG4gICAgICAgICAgc2VsZlNlbmQsXG4gICAgICAgICAgbm9ja091dHB1dEFkZHJlc3NlczogdHhGb3JtYXQgIT09ICdwc2J0JyxcbiAgICAgICAgICB0eEZvcm1hdDogZGVmYXVsdFR4Rm9ybWF0LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBjYWxsIHByZWJ1aWxkIGFuZCBzaWduLCBub2NrcyBzaG91bGQgYmUgY29uc3VtZWRcbiAgICAgICAgY29uc3QgcmVzID0gKGF3YWl0IHdhbGxldC5wcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgICAgcmVjaXBpZW50czogW3JlY2lwaWVudF0sXG4gICAgICAgICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgICAgICAgICByYmZUeElkcyxcbiAgICAgICAgICBmZWVNdWx0aXBsaWVyLFxuICAgICAgICB9KSkgYXMgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbjtcblxuICAgICAgICBub2Nrcy5mb3JFYWNoKChub2NrKSA9PiBhc3NlcnQub2sobm9jay5pc0RvbmUoKSkpO1xuXG4gICAgICAgIGFzc2VydFNpZ25hYmxlKHJlcy50eEhleCwgaW5wdXRTY3JpcHRzLCBjb2luLm5ldHdvcmspO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5nZXRNaW5VdHhvQ29pbnMoKS5mb3JFYWNoKChjb2luKSA9PiB7XG4gIHJ1bihjb2luLCBnZXRTY3JpcHRUeXBlcyhjb2luLCAncHNidCcpLCAncHNidCcpO1xufSk7XG4iXX0=
|