@bitgo/abstract-utxo 10.8.0 → 10.9.0

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.
Files changed (101) hide show
  1. package/dist/cjs/src/abstractUtxoCoin.d.ts +10 -2
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/cjs/src/abstractUtxoCoin.js +32 -21
  4. package/dist/cjs/src/index.d.ts +2 -2
  5. package/dist/cjs/src/index.d.ts.map +1 -1
  6. package/dist/cjs/src/index.js +3 -3
  7. package/dist/cjs/src/recovery/backupKeyRecovery.js +4 -4
  8. package/dist/cjs/src/recovery/crossChainRecovery.d.ts +10 -0
  9. package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
  10. package/dist/cjs/src/recovery/crossChainRecovery.js +48 -4
  11. package/dist/cjs/src/transaction/decode.d.ts +10 -0
  12. package/dist/cjs/src/transaction/decode.d.ts.map +1 -0
  13. package/dist/cjs/src/transaction/decode.js +69 -0
  14. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  15. package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +3 -2
  16. package/dist/cjs/src/transaction/explainTransaction.js +2 -2
  17. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +24 -0
  18. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -0
  19. package/dist/cjs/src/transaction/fixedScript/SigningError.js +26 -0
  20. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  21. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +2 -2
  22. package/dist/cjs/src/transaction/fixedScript/index.d.ts +4 -0
  23. package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -1
  24. package/dist/cjs/src/transaction/fixedScript/index.js +18 -1
  25. package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  26. package/dist/cjs/src/{replayProtection.js → transaction/fixedScript/replayProtection.js} +1 -1
  27. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +30 -0
  28. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
  29. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +152 -0
  30. package/dist/cjs/src/transaction/fixedScript/signPsbt.d.ts +32 -0
  31. package/dist/cjs/src/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  32. package/dist/cjs/src/transaction/fixedScript/signPsbt.js +174 -0
  33. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +5 -6
  34. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  35. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +14 -83
  36. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -1
  37. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +3 -2
  38. package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
  39. package/dist/cjs/src/transaction/signTransaction.js +3 -2
  40. package/dist/cjs/src/transaction/types.d.ts +3 -0
  41. package/dist/cjs/src/transaction/types.d.ts.map +1 -1
  42. package/dist/cjs/src/transaction/types.js +1 -1
  43. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +24 -1
  44. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts +2 -0
  45. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  46. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +86 -0
  47. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  48. package/dist/esm/abstractUtxoCoin.d.ts +10 -2
  49. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
  50. package/dist/esm/abstractUtxoCoin.js +33 -22
  51. package/dist/esm/index.d.ts +2 -2
  52. package/dist/esm/index.d.ts.map +1 -1
  53. package/dist/esm/index.js +3 -3
  54. package/dist/esm/recovery/backupKeyRecovery.js +2 -2
  55. package/dist/esm/recovery/crossChainRecovery.d.ts +10 -0
  56. package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
  57. package/dist/esm/recovery/crossChainRecovery.js +46 -3
  58. package/dist/esm/transaction/decode.d.ts +10 -0
  59. package/dist/esm/transaction/decode.d.ts.map +1 -0
  60. package/dist/esm/transaction/decode.js +32 -0
  61. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  62. package/dist/esm/transaction/descriptor/verifyTransaction.js +3 -2
  63. package/dist/esm/transaction/explainTransaction.js +2 -2
  64. package/dist/esm/transaction/fixedScript/SigningError.d.ts +24 -0
  65. package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -0
  66. package/dist/esm/transaction/fixedScript/SigningError.js +21 -0
  67. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  68. package/dist/esm/transaction/fixedScript/explainTransaction.js +2 -2
  69. package/dist/esm/transaction/fixedScript/index.d.ts +4 -0
  70. package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -1
  71. package/dist/esm/transaction/fixedScript/index.js +4 -1
  72. package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  73. package/dist/esm/transaction/fixedScript/replayProtection.js +20 -0
  74. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +30 -0
  75. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
  76. package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +112 -0
  77. package/dist/esm/transaction/fixedScript/signPsbt.d.ts +32 -0
  78. package/dist/esm/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  79. package/dist/esm/transaction/fixedScript/signPsbt.js +134 -0
  80. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +5 -6
  81. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  82. package/dist/esm/transaction/fixedScript/signTransaction.js +14 -83
  83. package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts.map +1 -1
  84. package/dist/esm/transaction/fixedScript/verifyTransaction.js +3 -2
  85. package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
  86. package/dist/esm/transaction/signTransaction.js +3 -2
  87. package/dist/esm/transaction/types.d.ts +3 -0
  88. package/dist/esm/transaction/types.d.ts.map +1 -1
  89. package/dist/esm/transaction/types.js +1 -1
  90. package/package.json +12 -12
  91. package/dist/cjs/src/replayProtection.d.ts.map +0 -1
  92. package/dist/cjs/src/sign.d.ts +0 -54
  93. package/dist/cjs/src/sign.d.ts.map +0 -1
  94. package/dist/cjs/src/sign.js +0 -205
  95. package/dist/esm/replayProtection.d.ts.map +0 -1
  96. package/dist/esm/replayProtection.js +0 -20
  97. package/dist/esm/sign.d.ts +0 -54
  98. package/dist/esm/sign.d.ts.map +0 -1
  99. package/dist/esm/sign.js +0 -162
  100. /package/dist/cjs/src/{replayProtection.d.ts → transaction/fixedScript/replayProtection.d.ts} +0 -0
  101. /package/dist/esm/{replayProtection.d.ts → transaction/fixedScript/replayProtection.d.ts} +0 -0
@@ -78,9 +78,10 @@ function getPayGoLimit(allowPaygoOutput) {
78
78
  */
79
79
  async function verifyTransaction(coin, bitgo, params) {
80
80
  const { txParams, txPrebuild, wallet, verification = {}, reqId } = params;
81
+ const txExplanation = await sdk_core_1.TxIntentMismatchError.tryGetTxExplanation(coin, txPrebuild);
81
82
  // Helper to throw TxIntentMismatchError with consistent context
82
83
  const throwTxMismatch = (message) => {
83
- throw new sdk_core_1.TxIntentMismatchError(message, reqId, [txParams], txPrebuild.txHex);
84
+ throw new sdk_core_1.TxIntentMismatchError(message, reqId, [txParams], txPrebuild.txHex, txExplanation);
84
85
  };
85
86
  if (!lodash_1.default.isUndefined(verification.disableNetworking) && !lodash_1.default.isBoolean(verification.disableNetworking)) {
86
87
  throw new TypeError('verification.disableNetworking must be a boolean');
@@ -195,4 +196,4 @@ async function verifyTransaction(coin, bitgo, params) {
195
196
  }
196
197
  return true;
197
198
  }
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvdmVyaWZ5VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q0EsOENBcUpDO0FBbE1ELGtEQUErQjtBQUMvQixvREFBdUI7QUFDdkIsZ0VBQXFDO0FBQ3JDLDhDQUFtRTtBQUNuRSx5REFBMkM7QUFJM0MsK0NBQTJHO0FBQzNHLGdEQUE4RDtBQUU5RCxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRWxFOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxnQkFBMEI7SUFDL0MsaUdBQWlHO0lBQ2pHLHFEQUFxRDtJQUNyRCxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0Qsa0ZBQWtGO0lBQ2xGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF5QztJQUV6QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUUsZ0VBQWdFO0lBQ2hFLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFTLEVBQUU7UUFDakQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEYs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QyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDeEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNWLENBQUM7SUFDRixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEcsTUFBTSxHQUFHLEdBQUcsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUV2QyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IsdUJBQXVCLFlBQVksOENBQThDLFdBQVcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQ3BILENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJpdEdvQmFzZSwgVHhJbnRlbnRNaXNtYXRjaEVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBPdXRwdXQsIFBhcnNlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgdmVyaWZ5Q3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcywgdmVyaWZ5S2V5U2lnbmF0dXJlLCB2ZXJpZnlVc2VyUHVibGljS2V5IH0gZnJvbSAnLi4vLi4vdmVyaWZ5S2V5JztcbmltcG9ydCB7IGdldFBzYnRUeElucHV0cywgZ2V0VHhJbnB1dHMgfSBmcm9tICcuLi9mZXRjaElucHV0cyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygnYml0Z286YWJzdHJhY3QtdXR4bzp2ZXJpZnlUcmFuc2FjdGlvbicpO1xuXG4vKipcbiAqIEdldCB0aGUgbWF4aW11bSBwZXJjZW50YWdlIGxpbWl0IGZvciBwYXktYXMteW91LWdvIG91dHB1dHNcbiAqXG4gKiBAcHJvdGVjdGVkXG4gKi9cbmZ1bmN0aW9uIGdldFBheUdvTGltaXQoYWxsb3dQYXlnb091dHB1dD86IGJvb2xlYW4pOiBudW1iZXIge1xuICAvLyBhbGxvd2luZyBwYXlnbyBvdXRwdXRzIG5lZWRzIHRvIGJlIHRoZSBkZWZhdWx0IGJlaGF2aW9yLCBzbyBvbmx5IGRpc2FsbG93IHBheWdvIG91dHB1dHMgaWYgdGhlXG4gIC8vIHJlbGV2YW50IHZlcmlmaWNhdGlvbiBvcHRpb24gaXMgYm90aCBzZXQgYW5kIGZhbHNlXG4gIGlmICghXy5pc05pbChhbGxvd1BheWdvT3V0cHV0KSAmJiAhYWxsb3dQYXlnb091dHB1dCkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIC8vIDE1MCBiYXNpcyBwb2ludHMgaXMgdGhlIGFic29sdXRlIHBlcm1pdHRlZCBtYXhpbXVtIGlmIHBheWdvIG91dHB1dHMgYXJlIGFsbG93ZWRcbiAgcmV0dXJuIDAuMDE1O1xufVxuXG4vKipcbiAqIFZlcmlmeSB0aGF0IGEgdHJhbnNhY3Rpb24gcHJlYnVpbGQgY29tcGxpZXMgd2l0aCB0aGUgb3JpZ2luYWwgaW50ZW50aW9uIGZvciBmaXhlZC1zY3JpcHQgd2FsbGV0c1xuICpcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gaGFuZGxlcyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZm9yIHRyYWRpdGlvbmFsIFVUWE8gY29pbnMgdXNpbmcgZml4ZWQgc2NyaXB0c1xuICogKG5vbi1kZXNjcmlwdG9yIHdhbGxldHMpLiBJdCB2YWxpZGF0ZXMga2V5Y2hhaW5zLCBzaWduYXR1cmVzLCBvdXRwdXRzLCBhbmQgYW1vdW50cy5cbiAqXG4gKiBAcGFyYW0gY29pbiAtIFRoZSBVVFhPIGNvaW4gaW5zdGFuY2VcbiAqIEBwYXJhbSBiaXRnbyAtIEJpdEdvIEFQSSBpbnN0YW5jZSBmb3IgbmV0d29yayBjYWxsc1xuICogQHBhcmFtIHBhcmFtcyAtIFZlcmlmaWNhdGlvbiBwYXJhbWV0ZXJzXG4gKiBAcGFyYW0gcGFyYW1zLnR4UGFyYW1zIC0gVHJhbnNhY3Rpb24gcGFyYW1ldGVycyBwYXNzZWQgdG8gc2VuZFxuICogQHBhcmFtIHBhcmFtcy50eFByZWJ1aWxkIC0gUHJlYnVpbGQgb2JqZWN0IHJldHVybmVkIGJ5IHNlcnZlclxuICogQHBhcmFtIHBhcmFtcy53YWxsZXQgLSBXYWxsZXQgb2JqZWN0IHRvIG9idGFpbiBrZXlzIHRvIHZlcmlmeSBhZ2FpbnN0XG4gKiBAcGFyYW0gcGFyYW1zLnZlcmlmaWNhdGlvbiAtIFZlcmlmaWNhdGlvbiBvcHRpb25zIChkaXNhYmxlTmV0d29ya2luZywga2V5Y2hhaW5zLCBhZGRyZXNzZXMpXG4gKiBAcGFyYW0gcGFyYW1zLnJlcUlkIC0gT3B0aW9uYWwgcmVxdWVzdCBJRCBmb3IgbG9nZ2luZ1xuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmVyaWZpY2F0aW9uIHBhc3Nlc1xuICogQHRocm93cyB7VHhJbnRlbnRNaXNtYXRjaEVycm9yfSBpZiB0cmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgYmlnaW50IHwgbnVtYmVyPihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgcGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnM8VE51bWJlcj5cbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7IHR4UGFyYW1zLCB0eFByZWJ1aWxkLCB3YWxsZXQsIHZlcmlmaWNhdGlvbiA9IHt9LCByZXFJZCB9ID0gcGFyYW1zO1xuXG4gIC8vIEhlbHBlciB0byB0aHJvdyBUeEludGVudE1pc21hdGNoRXJyb3Igd2l0aCBjb25zaXN0ZW50IGNvbnRleHRcbiAgY29uc3QgdGhyb3dUeE1pc21hdGNoID0gKG1lc3NhZ2U6IHN0cmluZyk6IG5ldmVyID0+IHtcbiAgICB0aHJvdyBuZXcgVHhJbnRlbnRNaXNtYXRjaEVycm9yKG1lc3NhZ2UsIHJlcUlkLCBbdHhQYXJhbXNdLCB0eFByZWJ1aWxkLnR4SGV4KTtcbiAgfTtcblxuICBpZiAoIV8uaXNVbmRlZmluZWQodmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nKSAmJiAhXy5pc0Jvb2xlYW4odmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZyBtdXN0IGJlIGEgYm9vbGVhbicpO1xuICB9XG4gIGNvbnN0IGlzUHNidCA9IHR4UHJlYnVpbGQudHhIZXggJiYgdXR4b2xpYi5iaXRnby5pc1BzYnQodHhQcmVidWlsZC50eEhleCk7XG4gIGlmIChpc1BzYnQgJiYgdHhQcmVidWlsZC50eEluZm8/LnVuc3BlbnRzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzaG91bGQgbm90IGhhdmUgdW5zcGVudHMgaW4gdHhJbmZvIGZvciBwc2J0Jyk7XG4gIH1cbiAgY29uc3QgZGlzYWJsZU5ldHdvcmtpbmcgPSAhIXZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZztcbiAgY29uc3QgcGFyc2VkVHJhbnNhY3Rpb246IFBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXI+ID0gYXdhaXQgY29pbi5wYXJzZVRyYW5zYWN0aW9uPFROdW1iZXI+KHtcbiAgICB0eFBhcmFtcyxcbiAgICB0eFByZWJ1aWxkLFxuICAgIHdhbGxldCxcbiAgICB2ZXJpZmljYXRpb24sXG4gICAgcmVxSWQsXG4gIH0pO1xuXG4gIGNvbnN0IGtleWNoYWlucyA9IHBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucztcblxuICAvLyB2ZXJpZnkgdGhhdCB0aGUgY2xhaW1lZCB1c2VyIHB1YmxpYyBrZXkgY29ycmVzcG9uZHMgdG8gdGhlIHdhbGxldCdzIHVzZXIgcHJpdmF0ZSBrZXlcbiAgbGV0IHVzZXJQdWJsaWNLZXlWZXJpZmllZCA9IGZhbHNlO1xuICB0cnkge1xuICAgIC8vIHZlcmlmeSB0aGUgdXNlciBwdWJsaWMga2V5IG1hdGNoZXMgdGhlIHByaXZhdGUga2V5IC0gdGhpcyB3aWxsIHRocm93IGlmIHRoZXJlIGlzIG5vIG1hdGNoXG4gICAgdXNlclB1YmxpY0tleVZlcmlmaWVkID0gdmVyaWZ5VXNlclB1YmxpY0tleShiaXRnbywgeyB1c2VyS2V5Y2hhaW46IGtleWNoYWlucy51c2VyLCBkaXNhYmxlTmV0d29ya2luZywgdHhQYXJhbXMgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkZWJ1ZygnZmFpbGVkIHRvIHZlcmlmeSB1c2VyIHB1YmxpYyBrZXkhJywgZSk7XG4gIH1cblxuICAvLyBsZXQncyB2ZXJpZnkgdGhlc2Uga2V5Y2hhaW5zXG4gIGNvbnN0IGtleVNpZ25hdHVyZXMgPSBwYXJzZWRUcmFuc2FjdGlvbi5rZXlTaWduYXR1cmVzO1xuICBpZiAoIV8uaXNFbXB0eShrZXlTaWduYXR1cmVzKSkge1xuICAgIGNvbnN0IHZlcmlmeSA9IChrZXksIHB1YikgPT4ge1xuICAgICAgaWYgKCFrZXljaGFpbnMudXNlciB8fCAha2V5Y2hhaW5zLnVzZXIucHViKSB7XG4gICAgICAgIHRocm93VHhNaXNtYXRjaCgnbWlzc2luZyB1c2VyIGtleWNoYWluJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmVyaWZ5S2V5U2lnbmF0dXJlKHtcbiAgICAgICAgdXNlcktleWNoYWluOiBrZXljaGFpbnMudXNlciBhcyB7IHB1Yjogc3RyaW5nIH0sXG4gICAgICAgIGtleWNoYWluVG9WZXJpZnk6IGtleSxcbiAgICAgICAga2V5U2lnbmF0dXJlOiBwdWIsXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGlzQmFja3VwS2V5U2lnbmF0dXJlVmFsaWQgPSB2ZXJpZnkoa2V5Y2hhaW5zLmJhY2t1cCwga2V5U2lnbmF0dXJlcy5iYWNrdXBQdWIpO1xuICAgIGNvbnN0IGlzQml0Z29LZXlTaWduYXR1cmVWYWxpZCA9IHZlcmlmeShrZXljaGFpbnMuYml0Z28sIGtleVNpZ25hdHVyZXMuYml0Z29QdWIpO1xuICAgIGlmICghaXNCYWNrdXBLZXlTaWduYXR1cmVWYWxpZCB8fCAhaXNCaXRnb0tleVNpZ25hdHVyZVZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlY29uZGFyeSBwdWJsaWMga2V5IHNpZ25hdHVyZXMgaW52YWxpZCcpO1xuICAgIH1cbiAgICBkZWJ1Zygnc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkIGJhY2t1cCBhbmQgYml0Z28ga2V5IHNpZ25hdHVyZXMnKTtcbiAgfSBlbHNlIGlmICghZGlzYWJsZU5ldHdvcmtpbmcpIHtcbiAgICAvLyB0aGVzZSBrZXlzIHdlcmUgb2J0YWluZWQgb25saW5lIGFuZCB0aGVpciBzaWduYXR1cmVzIHdlcmUgbm90IHZlcmlmaWVkXG4gICAgLy8gdGhpcyBjb3VsZCBiZSBkYW5nZXJvdXNcbiAgICBjb25zb2xlLmxvZygndW5zaWduZWQga2V5cyBvYnRhaW5lZCBvbmxpbmUgYXJlIGJlaW5nIHVzZWQgZm9yIGFkZHJlc3MgdmVyaWZpY2F0aW9uJyk7XG4gIH1cblxuICBpZiAocGFyc2VkVHJhbnNhY3Rpb24ubmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24pIHtcbiAgICBpZiAoIWtleWNoYWlucy51c2VyIHx8ICF1c2VyUHVibGljS2V5VmVyaWZpZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHJhbnNhY3Rpb24gcmVxdWlyZXMgdmVyaWZpY2F0aW9uIG9mIHVzZXIgcHVibGljIGtleSwgYnV0IGl0IHdhcyB1bmFibGUgdG8gYmUgdmVyaWZpZWQnKTtcbiAgICB9XG4gICAgY29uc3QgY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlc1ZlcmlmaWVkID0gdmVyaWZ5Q3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcyhwYXJzZWRUcmFuc2FjdGlvbiwga2V5Y2hhaW5zLnVzZXIpO1xuICAgIGlmICghY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlc1ZlcmlmaWVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICd0cmFuc2FjdGlvbiByZXF1aXJlcyB2ZXJpZmljYXRpb24gb2YgY3VzdG9tIGNoYW5nZSBrZXkgc2lnbmF0dXJlcywgYnV0IHRoZXkgd2VyZSB1bmFibGUgdG8gYmUgdmVyaWZpZWQnXG4gICAgICApO1xuICAgIH1cbiAgICBkZWJ1Zygnc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkIHVzZXIgcHVibGljIGtleSBhbmQgY3VzdG9tIGNoYW5nZSBrZXkgc2lnbmF0dXJlcycpO1xuICB9XG5cbiAgY29uc3QgbWlzc2luZ091dHB1dHMgPSBwYXJzZWRUcmFuc2FjdGlvbi5taXNzaW5nT3V0cHV0cztcbiAgaWYgKG1pc3NpbmdPdXRwdXRzLmxlbmd0aCAhPT0gMCkge1xuICAgIC8vIHRoZXJlIGFyZSBzb21lIG91dHB1dHMgaW4gdGhlIHJlY2lwaWVudHMgbGlzdCB0aGF0IGhhdmUgbm90IG1hZGUgaXQgaW50byB0aGUgYWN0dWFsIHRyYW5zYWN0aW9uXG4gICAgdGhyb3dUeE1pc21hdGNoKCdleHBlY3RlZCBvdXRwdXRzIG1pc3NpbmcgaW4gdHJhbnNhY3Rpb24gcHJlYnVpbGQnKTtcbiAgfVxuXG4gIGNvbnN0IGludGVuZGVkRXh0ZXJuYWxTcGVuZCA9IHBhcnNlZFRyYW5zYWN0aW9uLmV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDtcblxuICAvLyB0aGlzIGlzIGEgbGltaXQgd2UgaW1wb3NlIGZvciB0aGUgdG90YWwgdmFsdWUgdGhhdCBpcyBhbWVuZGVkIHRvIHRoZSB0cmFuc2FjdGlvbiBiZXlvbmQgd2hhdCB3YXMgb3JpZ2luYWxseSBpbnRlbmRlZFxuICBjb25zdCBwYXlBc1lvdUdvTGltaXQgPSBuZXcgQmlnTnVtYmVyKGdldFBheUdvTGltaXQodmVyaWZpY2F0aW9uLmFsbG93UGF5Z29PdXRwdXQpKS5tdWx0aXBsaWVkQnkoXG4gICAgaW50ZW5kZWRFeHRlcm5hbFNwZW5kLnRvU3RyaW5nKClcbiAgKTtcblxuICAvKlxuICBTb21lIGV4cGxhbmF0aW9uIGZvciB3aHkgd2UncmUgZG9pbmcgd2hhdCB3ZSdyZSBkb2luZzpcbiAgU29tZSBjdXN0b21lcnMgd2lsbCBoYXZlIGFuIG91dHB1dCB0byBCaXRHbydzIFBBWUdvIHdhbGxldCBhZGRlZCB0byB0aGVpciB0cmFuc2FjdGlvbiwgYW5kIHdlIG5lZWQgdG8gYWNjb3VudCBmb3JcbiAgaXQgaGVyZS4gVG8gcHJvdGVjdCBzb21lb25lIHRhbXBlcmluZyB3aXRoIHRoZSBvdXRwdXQgdG8gbWFrZSBpdCBzZW5kIG1vcmUgdGhhbiBpdCBzaG91bGQgdG8gQml0R28sIHdlIGRlZmluZSBhXG4gIHRocmVzaG9sZCBmb3IgdGhlIG91dHB1dCdzIHZhbHVlIGFib3ZlIHdoaWNoIHdlJ2xsIHRocm93IGFuIGVycm9yLCBiZWNhdXNlIHRoZSBwYXlnbyBvdXRwdXQgc2hvdWxkIG5ldmVyIGJlIHRoYXRcbiAgaGlnaC5cbiAgICovXG5cbiAgLy8gbWFrZSBzdXJlIHRoYXQgYWxsIHRoZSBleHRyYSBhZGRyZXNzZXMgYXJlIGNoYW5nZSBhZGRyZXNzZXNcbiAgLy8gZ2V0IGFsbCB0aGUgYWRkaXRpb25hbCBleHRlcm5hbCBvdXRwdXRzIHRoZSBzZXJ2ZXIgYWRkZWQgYW5kIGNhbGN1bGF0ZSB0aGVpciB2YWx1ZXNcbiAgY29uc3Qgbm9uQ2hhbmdlQW1vdW50ID0gbmV3IEJpZ051bWJlcihwYXJzZWRUcmFuc2FjdGlvbi5pbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQudG9TdHJpbmcoKSk7XG5cbiAgZGVidWcoXG4gICAgJ0ludGVuZGVkIHNwZW5kIGlzICVzLCBOb24tY2hhbmdlIGFtb3VudCBpcyAlcywgcGF5Z28gbGltaXQgaXMgJXMnLFxuICAgIGludGVuZGVkRXh0ZXJuYWxTcGVuZC50b1N0cmluZygpLFxuICAgIG5vbkNoYW5nZUFtb3VudC50b1N0cmluZygpLFxuICAgIHBheUFzWW91R29MaW1pdC50b1N0cmluZygpXG4gICk7XG5cbiAgLy8gVGhlcmUgYXJlIHR3byBpbnN0YW5jZXMgd2hlcmUgd2Ugd2lsbCBnZXQgaW50byB0aGlzIHBvaW50IGhlcmVcbiAgaWYgKG5vbkNoYW5nZUFtb3VudC5ndChwYXlBc1lvdUdvTGltaXQpKSB7XG4gICAgaWYgKGlzUHNidCAmJiBwYXJzZWRUcmFuc2FjdGlvbi5jdXN0b21DaGFuZ2UpIHtcbiAgICAgIC8vIEluIHRoZSBjYXNlIHRoYXQgd2UgaGF2ZSBhIGN1c3RvbSBjaGFuZ2UgYWRkcmVzcyBvbiBhIHdhbGxldCBhbmQgd2UgYXJlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvblxuICAgICAgLy8gd2l0aCBhIFBTQlQsIHdlIGRvIG5vdCBoYXZlIHRoZSBtZXRhZGF0YSB0byB2ZXJpZnkgdGhlIGFkZHJlc3MgZnJvbSB0aGUgY3VzdG9tIGNoYW5nZSB3YWxsZXQsIG5vclxuICAgICAgLy8gY2FuIHdlIGZldGNoIHRoYXQgaW5mb3JtYXRpb24gZnJvbSB0aGUgb3RoZXIgd2FsbGV0IGJlY2F1c2Ugd2UgbWF5IG5vdCBoYXZlIHRoZSBjcmVkZW50aWFscy4gVGhlcmVmb3JlLFxuICAgICAgLy8gd2Ugd2lsbCBub3QgdGhyb3cgYW4gZXJyb3IgaGVyZSwgYnV0IHdlIHdpbGwgbG9nIGEgd2FybmluZy5cbiAgICAgIGRlYnVnKGBjYW5ub3QgdmVyaWZ5IHNvbWUgb2YgdGhlIGFkZHJlc3NlcyBiZWNhdXNlIGl0IGJlbG9uZ3MgdG8gYSBzZXBhcmF0ZSB3YWxsZXRgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhlIGFkZGl0aW9uYWwgZXh0ZXJuYWwgb3V0cHV0cyBjYW4gb25seSBiZSBCaXRHbydzIHBheS1hcy15b3UtZ28gZmVlLCBidXQgd2UgY2Fubm90IHZlcmlmeSB0aGUgd2FsbGV0IGFkZHJlc3NcbiAgICAgIC8vIHRoZXJlIGFyZSBzb21lIGFkZHJlc3NlcyB0aGF0IGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiBpbnRlbmRlZCByZWNpcGllbnRzIHRoYXQgYXJlIG5vdCBjaGFuZ2UgYWRkcmVzc2VzXG4gICAgICB0aHJvd1R4TWlzbWF0Y2goJ3ByZWJ1aWxkIGF0dGVtcHRzIHRvIHNwZW5kIHRvIHVuaW50ZW5kZWQgZXh0ZXJuYWwgcmVjaXBpZW50cycpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFsbE91dHB1dHMgPSBwYXJzZWRUcmFuc2FjdGlvbi5vdXRwdXRzO1xuICBpZiAoIXR4UHJlYnVpbGQudHhIZXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHR4UHJlYnVpbGQudHhIZXggbm90IHNldGApO1xuICB9XG4gIGNvbnN0IGlucHV0cyA9IGlzUHNidFxuICAgID8gZ2V0UHNidFR4SW5wdXRzKHR4UHJlYnVpbGQudHhIZXgsIGNvaW4ubmV0d29yaykubWFwKCh2KSA9PiAoe1xuICAgICAgICAuLi52LFxuICAgICAgICB2YWx1ZTogdXR4b2xpYi5iaXRnby50b1ROdW1iZXIodi52YWx1ZSwgY29pbi5hbW91bnRUeXBlKSxcbiAgICAgIH0pKVxuICAgIDogYXdhaXQgZ2V0VHhJbnB1dHMoeyB0eFByZWJ1aWxkLCBiaXRnbywgY29pbiwgZGlzYWJsZU5ldHdvcmtpbmcsIHJlcUlkIH0pO1xuICAvLyBjb2lucyAoZG9nZSkgdGhhdCBjYW4gZXhjZWVkIG51bWJlciBsaW1pdHMgKGFuZCB0aHVzIHdpbGwgdXNlIGJpZ2ludCkgd2lsbCBoYXZlIHRoZSBgdmFsdWVTdHJpbmdgIGZpZWxkXG4gIGNvbnN0IGlucHV0QW1vdW50ID0gaW5wdXRzLnJlZHVjZShcbiAgICAoc3VtOiBiaWdpbnQsIGkpID0+IHN1bSArIEJpZ0ludChjb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8gaS52YWx1ZVN0cmluZyA6IGkudmFsdWUpLFxuICAgIEJpZ0ludCgwKVxuICApO1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSBhbGxPdXRwdXRzLnJlZHVjZSgoc3VtOiBiaWdpbnQsIG86IE91dHB1dCkgPT4gc3VtICsgQmlnSW50KG8uYW1vdW50KSwgQmlnSW50KDApKTtcbiAgY29uc3QgZmVlID0gaW5wdXRBbW91bnQgLSBvdXRwdXRBbW91bnQ7XG5cbiAgaWYgKGZlZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgYXR0ZW1wdGluZyB0byBzcGVuZCAke291dHB1dEFtb3VudH0gc2F0b3NoaXMsIHdoaWNoIGV4Y2VlZHMgdGhlIGlucHV0IGFtb3VudCAoJHtpbnB1dEFtb3VudH0gc2F0b3NoaXMpIGJ5ICR7LWZlZX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuIl19
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvdmVyaWZ5VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q0EsOENBdUpDO0FBcE1ELGtEQUErQjtBQUMvQixvREFBdUI7QUFDdkIsZ0VBQXFDO0FBQ3JDLDhDQUE4RTtBQUM5RSx5REFBMkM7QUFJM0MsK0NBQTJHO0FBQzNHLGdEQUE4RDtBQUU5RCxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRWxFOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxnQkFBMEI7SUFDL0MsaUdBQWlHO0lBQ2pHLHFEQUFxRDtJQUNyRCxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0Qsa0ZBQWtGO0lBQ2xGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF5QztJQUV6QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUUsTUFBTSxhQUFhLEdBQUcsTUFBTSxnQ0FBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUE0QixFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRWhILGdFQUFnRTtJQUNoRSxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWUsRUFBUyxFQUFFO1FBQ2pELE1BQU0sSUFBSSxnQ0FBcUIs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QUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUN4RixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQ1YsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RyxNQUFNLEdBQUcsR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUFDO0lBRXZDLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYix1QkFBdUIsWUFBWSw4Q0FBOEMsV0FBVyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FDcEgsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgQml0R29CYXNlLCBUeEludGVudE1pc21hdGNoRXJyb3IsIElCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgT3V0cHV0LCBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHZlcmlmeUN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMsIHZlcmlmeUtleVNpZ25hdHVyZSwgdmVyaWZ5VXNlclB1YmxpY0tleSB9IGZyb20gJy4uLy4uL3ZlcmlmeUtleSc7XG5pbXBvcnQgeyBnZXRQc2J0VHhJbnB1dHMsIGdldFR4SW5wdXRzIH0gZnJvbSAnLi4vZmV0Y2hJbnB1dHMnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ2JpdGdvOmFic3RyYWN0LXV0eG86dmVyaWZ5VHJhbnNhY3Rpb24nKTtcblxuLyoqXG4gKiBHZXQgdGhlIG1heGltdW0gcGVyY2VudGFnZSBsaW1pdCBmb3IgcGF5LWFzLXlvdS1nbyBvdXRwdXRzXG4gKlxuICogQHByb3RlY3RlZFxuICovXG5mdW5jdGlvbiBnZXRQYXlHb0xpbWl0KGFsbG93UGF5Z29PdXRwdXQ/OiBib29sZWFuKTogbnVtYmVyIHtcbiAgLy8gYWxsb3dpbmcgcGF5Z28gb3V0cHV0cyBuZWVkcyB0byBiZSB0aGUgZGVmYXVsdCBiZWhhdmlvciwgc28gb25seSBkaXNhbGxvdyBwYXlnbyBvdXRwdXRzIGlmIHRoZVxuICAvLyByZWxldmFudCB2ZXJpZmljYXRpb24gb3B0aW9uIGlzIGJvdGggc2V0IGFuZCBmYWxzZVxuICBpZiAoIV8uaXNOaWwoYWxsb3dQYXlnb091dHB1dCkgJiYgIWFsbG93UGF5Z29PdXRwdXQpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICAvLyAxNTAgYmFzaXMgcG9pbnRzIGlzIHRoZSBhYnNvbHV0ZSBwZXJtaXR0ZWQgbWF4aW11bSBpZiBwYXlnbyBvdXRwdXRzIGFyZSBhbGxvd2VkXG4gIHJldHVybiAwLjAxNTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgdGhhdCBhIHRyYW5zYWN0aW9uIHByZWJ1aWxkIGNvbXBsaWVzIHdpdGggdGhlIG9yaWdpbmFsIGludGVudGlvbiBmb3IgZml4ZWQtc2NyaXB0IHdhbGxldHNcbiAqXG4gKiBUaGlzIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZvciB0cmFkaXRpb25hbCBVVFhPIGNvaW5zIHVzaW5nIGZpeGVkIHNjcmlwdHNcbiAqIChub24tZGVzY3JpcHRvciB3YWxsZXRzKS4gSXQgdmFsaWRhdGVzIGtleWNoYWlucywgc2lnbmF0dXJlcywgb3V0cHV0cywgYW5kIGFtb3VudHMuXG4gKlxuICogQHBhcmFtIGNvaW4gLSBUaGUgVVRYTyBjb2luIGluc3RhbmNlXG4gKiBAcGFyYW0gYml0Z28gLSBCaXRHbyBBUEkgaW5zdGFuY2UgZm9yIG5ldHdvcmsgY2FsbHNcbiAqIEBwYXJhbSBwYXJhbXMgLSBWZXJpZmljYXRpb24gcGFyYW1ldGVyc1xuICogQHBhcmFtIHBhcmFtcy50eFBhcmFtcyAtIFRyYW5zYWN0aW9uIHBhcmFtZXRlcnMgcGFzc2VkIHRvIHNlbmRcbiAqIEBwYXJhbSBwYXJhbXMudHhQcmVidWlsZCAtIFByZWJ1aWxkIG9iamVjdCByZXR1cm5lZCBieSBzZXJ2ZXJcbiAqIEBwYXJhbSBwYXJhbXMud2FsbGV0IC0gV2FsbGV0IG9iamVjdCB0byBvYnRhaW4ga2V5cyB0byB2ZXJpZnkgYWdhaW5zdFxuICogQHBhcmFtIHBhcmFtcy52ZXJpZmljYXRpb24gLSBWZXJpZmljYXRpb24gb3B0aW9ucyAoZGlzYWJsZU5ldHdvcmtpbmcsIGtleWNoYWlucywgYWRkcmVzc2VzKVxuICogQHBhcmFtIHBhcmFtcy5yZXFJZCAtIE9wdGlvbmFsIHJlcXVlc3QgSUQgZm9yIGxvZ2dpbmdcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZlcmlmaWNhdGlvbiBwYXNzZXNcbiAqIEB0aHJvd3Mge1R4SW50ZW50TWlzbWF0Y2hFcnJvcn0gaWYgdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5VHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIGJpZ2ludCB8IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgeyB0eFBhcmFtcywgdHhQcmVidWlsZCwgd2FsbGV0LCB2ZXJpZmljYXRpb24gPSB7fSwgcmVxSWQgfSA9IHBhcmFtcztcblxuICBjb25zdCB0eEV4cGxhbmF0aW9uID0gYXdhaXQgVHhJbnRlbnRNaXNtYXRjaEVycm9yLnRyeUdldFR4RXhwbGFuYXRpb24oY29pbiBhcyB1bmtub3duIGFzIElCYXNlQ29pbiwgdHhQcmVidWlsZCk7XG5cbiAgLy8gSGVscGVyIHRvIHRocm93IFR4SW50ZW50TWlzbWF0Y2hFcnJvciB3aXRoIGNvbnNpc3RlbnQgY29udGV4dFxuICBjb25zdCB0aHJvd1R4TWlzbWF0Y2ggPSAobWVzc2FnZTogc3RyaW5nKTogbmV2ZXIgPT4ge1xuICAgIHRocm93IG5ldyBUeEludGVudE1pc21hdGNoRXJyb3IobWVzc2FnZSwgcmVxSWQsIFt0eFBhcmFtc10sIHR4UHJlYnVpbGQudHhIZXgsIHR4RXhwbGFuYXRpb24pO1xuICB9O1xuXG4gIGlmICghXy5pc1VuZGVmaW5lZCh2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcpICYmICFfLmlzQm9vbGVhbih2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nIG11c3QgYmUgYSBib29sZWFuJyk7XG4gIH1cbiAgY29uc3QgaXNQc2J0ID0gdHhQcmVidWlsZC50eEhleCAmJiB1dHhvbGliLmJpdGdvLmlzUHNidCh0eFByZWJ1aWxkLnR4SGV4KTtcbiAgaWYgKGlzUHNidCAmJiB0eFByZWJ1aWxkLnR4SW5mbz8udW5zcGVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBub3QgaGF2ZSB1bnNwZW50cyBpbiB0eEluZm8gZm9yIHBzYnQnKTtcbiAgfVxuICBjb25zdCBkaXNhYmxlTmV0d29ya2luZyA9ICEhdmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nO1xuICBjb25zdCBwYXJzZWRUcmFuc2FjdGlvbjogUGFyc2VkVHJhbnNhY3Rpb248VE51bWJlcj4gPSBhd2FpdCBjb2luLnBhcnNlVHJhbnNhY3Rpb248VE51bWJlcj4oe1xuICAgIHR4UGFyYW1zLFxuICAgIHR4UHJlYnVpbGQsXG4gICAgd2FsbGV0LFxuICAgIHZlcmlmaWNhdGlvbixcbiAgICByZXFJZCxcbiAgfSk7XG5cbiAgY29uc3Qga2V5Y2hhaW5zID0gcGFyc2VkVHJhbnNhY3Rpb24ua2V5Y2hhaW5zO1xuXG4gIC8vIHZlcmlmeSB0aGF0IHRoZSBjbGFpbWVkIHVzZXIgcHVibGljIGtleSBjb3JyZXNwb25kcyB0byB0aGUgd2FsbGV0J3MgdXNlciBwcml2YXRlIGtleVxuICBsZXQgdXNlclB1YmxpY0tleVZlcmlmaWVkID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgLy8gdmVyaWZ5IHRoZSB1c2VyIHB1YmxpYyBrZXkgbWF0Y2hlcyB0aGUgcHJpdmF0ZSBrZXkgLSB0aGlzIHdpbGwgdGhyb3cgaWYgdGhlcmUgaXMgbm8gbWF0Y2hcbiAgICB1c2VyUHVibGljS2V5VmVyaWZpZWQgPSB2ZXJpZnlVc2VyUHVibGljS2V5KGJpdGdvLCB7IHVzZXJLZXljaGFpbjoga2V5Y2hhaW5zLnVzZXIsIGRpc2FibGVOZXR3b3JraW5nLCB0eFBhcmFtcyB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGRlYnVnKCdmYWlsZWQgdG8gdmVyaWZ5IHVzZXIgcHVibGljIGtleSEnLCBlKTtcbiAgfVxuXG4gIC8vIGxldCdzIHZlcmlmeSB0aGVzZSBrZXljaGFpbnNcbiAgY29uc3Qga2V5U2lnbmF0dXJlcyA9IHBhcnNlZFRyYW5zYWN0aW9uLmtleVNpZ25hdHVyZXM7XG4gIGlmICghXy5pc0VtcHR5KGtleVNpZ25hdHVyZXMpKSB7XG4gICAgY29uc3QgdmVyaWZ5ID0gKGtleSwgcHViKSA9PiB7XG4gICAgICBpZiAoIWtleWNoYWlucy51c2VyIHx8ICFrZXljaGFpbnMudXNlci5wdWIpIHtcbiAgICAgICAgdGhyb3dUeE1pc21hdGNoKCdtaXNzaW5nIHVzZXIga2V5Y2hhaW4nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2ZXJpZnlLZXlTaWduYXR1cmUoe1xuICAgICAgICB1c2VyS2V5Y2hhaW46IGtleWNoYWlucy51c2VyIGFzIHsgcHViOiBzdHJpbmcgfSxcbiAgICAgICAga2V5Y2hhaW5Ub1ZlcmlmeToga2V5LFxuICAgICAgICBrZXlTaWduYXR1cmU6IHB1YixcbiAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgaXNCYWNrdXBLZXlTaWduYXR1cmVWYWxpZCA9IHZlcmlmeShrZXljaGFpbnMuYmFja3VwLCBrZXlTaWduYXR1cmVzLmJhY2t1cFB1Yik7XG4gICAgY29uc3QgaXNCaXRnb0tleVNpZ25hdHVyZVZhbGlkID0gdmVyaWZ5KGtleWNoYWlucy5iaXRnbywga2V5U2lnbmF0dXJlcy5iaXRnb1B1Yik7XG4gICAgaWYgKCFpc0JhY2t1cEtleVNpZ25hdHVyZVZhbGlkIHx8ICFpc0JpdGdvS2V5U2lnbmF0dXJlVmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2Vjb25kYXJ5IHB1YmxpYyBrZXkgc2lnbmF0dXJlcyBpbnZhbGlkJyk7XG4gICAgfVxuICAgIGRlYnVnKCdzdWNjZXNzZnVsbHkgdmVyaWZpZWQgYmFja3VwIGFuZCBiaXRnbyBrZXkgc2lnbmF0dXJlcycpO1xuICB9IGVsc2UgaWYgKCFkaXNhYmxlTmV0d29ya2luZykge1xuICAgIC8vIHRoZXNlIGtleXMgd2VyZSBvYnRhaW5lZCBvbmxpbmUgYW5kIHRoZWlyIHNpZ25hdHVyZXMgd2VyZSBub3QgdmVyaWZpZWRcbiAgICAvLyB0aGlzIGNvdWxkIGJlIGRhbmdlcm91c1xuICAgIGNvbnNvbGUubG9nKCd1bnNpZ25lZCBrZXlzIG9idGFpbmVkIG9ubGluZSBhcmUgYmVpbmcgdXNlZCBmb3IgYWRkcmVzcyB2ZXJpZmljYXRpb24nKTtcbiAgfVxuXG4gIGlmIChwYXJzZWRUcmFuc2FjdGlvbi5uZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbikge1xuICAgIGlmICgha2V5Y2hhaW5zLnVzZXIgfHwgIXVzZXJQdWJsaWNLZXlWZXJpZmllZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiByZXF1aXJlcyB2ZXJpZmljYXRpb24gb2YgdXNlciBwdWJsaWMga2V5LCBidXQgaXQgd2FzIHVuYWJsZSB0byBiZSB2ZXJpZmllZCcpO1xuICAgIH1cbiAgICBjb25zdCBjdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzVmVyaWZpZWQgPSB2ZXJpZnlDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzKHBhcnNlZFRyYW5zYWN0aW9uLCBrZXljaGFpbnMudXNlcik7XG4gICAgaWYgKCFjdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzVmVyaWZpZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3RyYW5zYWN0aW9uIHJlcXVpcmVzIHZlcmlmaWNhdGlvbiBvZiBjdXN0b20gY2hhbmdlIGtleSBzaWduYXR1cmVzLCBidXQgdGhleSB3ZXJlIHVuYWJsZSB0byBiZSB2ZXJpZmllZCdcbiAgICAgICk7XG4gICAgfVxuICAgIGRlYnVnKCdzdWNjZXNzZnVsbHkgdmVyaWZpZWQgdXNlciBwdWJsaWMga2V5IGFuZCBjdXN0b20gY2hhbmdlIGtleSBzaWduYXR1cmVzJyk7XG4gIH1cblxuICBjb25zdCBtaXNzaW5nT3V0cHV0cyA9IHBhcnNlZFRyYW5zYWN0aW9uLm1pc3NpbmdPdXRwdXRzO1xuICBpZiAobWlzc2luZ091dHB1dHMubGVuZ3RoICE9PSAwKSB7XG4gICAgLy8gdGhlcmUgYXJlIHNvbWUgb3V0cHV0cyBpbiB0aGUgcmVjaXBpZW50cyBsaXN0IHRoYXQgaGF2ZSBub3QgbWFkZSBpdCBpbnRvIHRoZSBhY3R1YWwgdHJhbnNhY3Rpb25cbiAgICB0aHJvd1R4TWlzbWF0Y2goJ2V4cGVjdGVkIG91dHB1dHMgbWlzc2luZyBpbiB0cmFuc2FjdGlvbiBwcmVidWlsZCcpO1xuICB9XG5cbiAgY29uc3QgaW50ZW5kZWRFeHRlcm5hbFNwZW5kID0gcGFyc2VkVHJhbnNhY3Rpb24uZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50O1xuXG4gIC8vIHRoaXMgaXMgYSBsaW1pdCB3ZSBpbXBvc2UgZm9yIHRoZSB0b3RhbCB2YWx1ZSB0aGF0IGlzIGFtZW5kZWQgdG8gdGhlIHRyYW5zYWN0aW9uIGJleW9uZCB3aGF0IHdhcyBvcmlnaW5hbGx5IGludGVuZGVkXG4gIGNvbnN0IHBheUFzWW91R29MaW1pdCA9IG5ldyBCaWdOdW1iZXIoZ2V0UGF5R29MaW1pdCh2ZXJpZmljYXRpb24uYWxsb3dQYXlnb091dHB1dCkpLm11bHRpcGxpZWRCeShcbiAgICBpbnRlbmRlZEV4dGVybmFsU3BlbmQudG9TdHJpbmcoKVxuICApO1xuXG4gIC8qXG4gIFNvbWUgZXhwbGFuYXRpb24gZm9yIHdoeSB3ZSdyZSBkb2luZyB3aGF0IHdlJ3JlIGRvaW5nOlxuICBTb21lIGN1c3RvbWVycyB3aWxsIGhhdmUgYW4gb3V0cHV0IHRvIEJpdEdvJ3MgUEFZR28gd2FsbGV0IGFkZGVkIHRvIHRoZWlyIHRyYW5zYWN0aW9uLCBhbmQgd2UgbmVlZCB0byBhY2NvdW50IGZvclxuICBpdCBoZXJlLiBUbyBwcm90ZWN0IHNvbWVvbmUgdGFtcGVyaW5nIHdpdGggdGhlIG91dHB1dCB0byBtYWtlIGl0IHNlbmQgbW9yZSB0aGFuIGl0IHNob3VsZCB0byBCaXRHbywgd2UgZGVmaW5lIGFcbiAgdGhyZXNob2xkIGZvciB0aGUgb3V0cHV0J3MgdmFsdWUgYWJvdmUgd2hpY2ggd2UnbGwgdGhyb3cgYW4gZXJyb3IsIGJlY2F1c2UgdGhlIHBheWdvIG91dHB1dCBzaG91bGQgbmV2ZXIgYmUgdGhhdFxuICBoaWdoLlxuICAgKi9cblxuICAvLyBtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGV4dHJhIGFkZHJlc3NlcyBhcmUgY2hhbmdlIGFkZHJlc3Nlc1xuICAvLyBnZXQgYWxsIHRoZSBhZGRpdGlvbmFsIGV4dGVybmFsIG91dHB1dHMgdGhlIHNlcnZlciBhZGRlZCBhbmQgY2FsY3VsYXRlIHRoZWlyIHZhbHVlc1xuICBjb25zdCBub25DaGFuZ2VBbW91bnQgPSBuZXcgQmlnTnVtYmVyKHBhcnNlZFRyYW5zYWN0aW9uLmltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudC50b1N0cmluZygpKTtcblxuICBkZWJ1ZyhcbiAgICAnSW50ZW5kZWQgc3BlbmQgaXMgJXMsIE5vbi1jaGFuZ2UgYW1vdW50IGlzICVzLCBwYXlnbyBsaW1pdCBpcyAlcycsXG4gICAgaW50ZW5kZWRFeHRlcm5hbFNwZW5kLnRvU3RyaW5nKCksXG4gICAgbm9uQ2hhbmdlQW1vdW50LnRvU3RyaW5nKCksXG4gICAgcGF5QXNZb3VHb0xpbWl0LnRvU3RyaW5nKClcbiAgKTtcblxuICAvLyBUaGVyZSBhcmUgdHdvIGluc3RhbmNlcyB3aGVyZSB3ZSB3aWxsIGdldCBpbnRvIHRoaXMgcG9pbnQgaGVyZVxuICBpZiAobm9uQ2hhbmdlQW1vdW50Lmd0KHBheUFzWW91R29MaW1pdCkpIHtcbiAgICBpZiAoaXNQc2J0ICYmIHBhcnNlZFRyYW5zYWN0aW9uLmN1c3RvbUNoYW5nZSkge1xuICAgICAgLy8gSW4gdGhlIGNhc2UgdGhhdCB3ZSBoYXZlIGEgY3VzdG9tIGNoYW5nZSBhZGRyZXNzIG9uIGEgd2FsbGV0IGFuZCB3ZSBhcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uXG4gICAgICAvLyB3aXRoIGEgUFNCVCwgd2UgZG8gbm90IGhhdmUgdGhlIG1ldGFkYXRhIHRvIHZlcmlmeSB0aGUgYWRkcmVzcyBmcm9tIHRoZSBjdXN0b20gY2hhbmdlIHdhbGxldCwgbm9yXG4gICAgICAvLyBjYW4gd2UgZmV0Y2ggdGhhdCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBvdGhlciB3YWxsZXQgYmVjYXVzZSB3ZSBtYXkgbm90IGhhdmUgdGhlIGNyZWRlbnRpYWxzLiBUaGVyZWZvcmUsXG4gICAgICAvLyB3ZSB3aWxsIG5vdCB0aHJvdyBhbiBlcnJvciBoZXJlLCBidXQgd2Ugd2lsbCBsb2cgYSB3YXJuaW5nLlxuICAgICAgZGVidWcoYGNhbm5vdCB2ZXJpZnkgc29tZSBvZiB0aGUgYWRkcmVzc2VzIGJlY2F1c2UgaXQgYmVsb25ncyB0byBhIHNlcGFyYXRlIHdhbGxldGApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0aGUgYWRkaXRpb25hbCBleHRlcm5hbCBvdXRwdXRzIGNhbiBvbmx5IGJlIEJpdEdvJ3MgcGF5LWFzLXlvdS1nbyBmZWUsIGJ1dCB3ZSBjYW5ub3QgdmVyaWZ5IHRoZSB3YWxsZXQgYWRkcmVzc1xuICAgICAgLy8gdGhlcmUgYXJlIHNvbWUgYWRkcmVzc2VzIHRoYXQgYXJlIG91dHNpZGUgdGhlIHNjb3BlIG9mIGludGVuZGVkIHJlY2lwaWVudHMgdGhhdCBhcmUgbm90IGNoYW5nZSBhZGRyZXNzZXNcbiAgICAgIHRocm93VHhNaXNtYXRjaCgncHJlYnVpbGQgYXR0ZW1wdHMgdG8gc3BlbmQgdG8gdW5pbnRlbmRlZCBleHRlcm5hbCByZWNpcGllbnRzJyk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYWxsT3V0cHV0cyA9IHBhcnNlZFRyYW5zYWN0aW9uLm91dHB1dHM7XG4gIGlmICghdHhQcmVidWlsZC50eEhleCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdHhQcmVidWlsZC50eEhleCBub3Qgc2V0YCk7XG4gIH1cbiAgY29uc3QgaW5wdXRzID0gaXNQc2J0XG4gICAgPyBnZXRQc2J0VHhJbnB1dHModHhQcmVidWlsZC50eEhleCwgY29pbi5uZXR3b3JrKS5tYXAoKHYpID0+ICh7XG4gICAgICAgIC4uLnYsXG4gICAgICAgIHZhbHVlOiB1dHhvbGliLmJpdGdvLnRvVE51bWJlcih2LnZhbHVlLCBjb2luLmFtb3VudFR5cGUpLFxuICAgICAgfSkpXG4gICAgOiBhd2FpdCBnZXRUeElucHV0cyh7IHR4UHJlYnVpbGQsIGJpdGdvLCBjb2luLCBkaXNhYmxlTmV0d29ya2luZywgcmVxSWQgfSk7XG4gIC8vIGNvaW5zIChkb2dlKSB0aGF0IGNhbiBleGNlZWQgbnVtYmVyIGxpbWl0cyAoYW5kIHRodXMgd2lsbCB1c2UgYmlnaW50KSB3aWxsIGhhdmUgdGhlIGB2YWx1ZVN0cmluZ2AgZmllbGRcbiAgY29uc3QgaW5wdXRBbW91bnQgPSBpbnB1dHMucmVkdWNlKFxuICAgIChzdW06IGJpZ2ludCwgaSkgPT4gc3VtICsgQmlnSW50KGNvaW4uYW1vdW50VHlwZSA9PT0gJ2JpZ2ludCcgPyBpLnZhbHVlU3RyaW5nIDogaS52YWx1ZSksXG4gICAgQmlnSW50KDApXG4gICk7XG4gIGNvbnN0IG91dHB1dEFtb3VudCA9IGFsbE91dHB1dHMucmVkdWNlKChzdW06IGJpZ2ludCwgbzogT3V0cHV0KSA9PiBzdW0gKyBCaWdJbnQoby5hbW91bnQpLCBCaWdJbnQoMCkpO1xuICBjb25zdCBmZWUgPSBpbnB1dEFtb3VudCAtIG91dHB1dEFtb3VudDtcblxuICBpZiAoZmVlIDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBhdHRlbXB0aW5nIHRvIHNwZW5kICR7b3V0cHV0QW1vdW50fSBzYXRvc2hpcywgd2hpY2ggZXhjZWVkcyB0aGUgaW5wdXQgYW1vdW50ICgke2lucHV0QW1vdW50fSBzYXRvc2hpcykgYnkgJHstZmVlfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/signTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAwB/E,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyC5B"}
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/signTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAwB/E,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA0C5B"}
@@ -88,7 +88,7 @@ async function signTransaction(coin, bitgo, params) {
88
88
  }
89
89
  }
90
90
  else {
91
- return fixedScript.signTransaction(coin, tx, getSignerKeychain(params.prv), {
91
+ const signedTx = await fixedScript.signTransaction(coin, tx, getSignerKeychain(params.prv), coin.network, {
92
92
  walletId: params.txPrebuild.walletId,
93
93
  txInfo: params.txPrebuild.txInfo,
94
94
  isLastSignature: params.isLastSignature ?? false,
@@ -97,6 +97,7 @@ async function signTransaction(coin, bitgo, params) {
97
97
  pubs: params.pubs,
98
98
  cosignerPub: params.cosignerPub,
99
99
  });
100
+ return { txHex: signedTx.toBuffer().toString('hex') };
100
101
  }
101
102
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSwwQ0E2Q0M7QUEzRUQsb0RBQXVCO0FBRXZCLHlEQUEyQztBQUMzQyxnREFBeUM7QUFDekMsa0RBQStCO0FBRy9CLDhDQUFnRztBQUNoRyw0Q0FBNkQ7QUFFN0QsMkRBQTZDO0FBQzdDLHlEQUEyQztBQUUzQyxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyxpREFBaUQsQ0FBQyxDQUFDO0FBRTVFLFNBQVMsaUJBQWlCLENBQUMsT0FBZ0I7SUFDekMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRSxJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLHdEQUF3RCxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF1QztJQUV2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRXJDLElBQUksZ0JBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsT0FBTyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXJELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUIsSUFBSSxNQUFNLElBQUksSUFBQSwrQkFBa0IsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxNQUFNLElBQUEsMEJBQWMsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRyxJQUFBLHVDQUEwQixFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBQSw0QkFBZSxFQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksRUFBRSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRTtnQkFDckQsY0FBYyxFQUFFLE9BQU87YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUNwQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQ2hDLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLEtBQUs7WUFDaEQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLGtDQUFrQyxFQUFFLE1BQU0sQ0FBQyxrQ0FBa0MsSUFBSSxLQUFLO1lBQ3RGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IGJpcDMyIH0gZnJvbSAnQGJpdGdvL3NlY3AyNTZrMSc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBnZXRQb2xpY3lGb3JFbnYsIGlzRGVzY3JpcHRvcldhbGxldCB9IGZyb20gJy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZmV0Y2hLZXljaGFpbnMsIHRvQmlwMzJUcmlwbGUgfSBmcm9tICcuLi9rZXljaGFpbnMnO1xuXG5pbXBvcnQgKiBhcyBmaXhlZFNjcmlwdCBmcm9tICcuL2ZpeGVkU2NyaXB0JztcbmltcG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCdiaXRnbzphYnN0cmFjdC11dHhvOnRyYW5zYWN0aW9uOnNpZ25UcmFuc2FjdGlvbicpO1xuXG5mdW5jdGlvbiBnZXRTaWduZXJLZXljaGFpbih1c2VyUHJ2OiB1bmtub3duKTogdXR4b2xpYi5CSVAzMkludGVyZmFjZSB8IHVuZGVmaW5lZCB7XG4gIGlmICh1c2VyUHJ2ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmICh0eXBlb2YgdXNlclBydiAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIHVzZXIgcHJpdmF0ZSBrZXkgdG8gYmUgYSBzdHJpbmcnKTtcbiAgfVxuICBjb25zdCBzaWduZXJLZXljaGFpbiA9IGJpcDMyLmZyb21CYXNlNTgodXNlclBydiwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgaWYgKHNpZ25lcktleWNoYWluLmlzTmV1dGVyZWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgdXNlciBwcml2YXRlIGtleSBidXQgcmVjZWl2ZWQgcHVibGljIGtleScpO1xuICB9XG4gIGRlYnVnKGBIZXJlIGlzIHRoZSBwdWJsaWMga2V5IG9mIHRoZSB4cHJ2IHlvdSB1c2VkIHRvIHNpZ246ICR7c2lnbmVyS2V5Y2hhaW4ubmV1dGVyZWQoKS50b0Jhc2U1OCgpfWApO1xuICByZXR1cm4gc2lnbmVyS2V5Y2hhaW47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuKTogUHJvbWlzZTx7IHR4SGV4OiBzdHJpbmcgfT4ge1xuICBjb25zdCB0eFByZWJ1aWxkID0gcGFyYW1zLnR4UHJlYnVpbGQ7XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQodHhQcmVidWlsZCkgfHwgIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodHhQcmVidWlsZCkgJiYgIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdHhQcmVidWlsZCBtdXN0IGJlIGFuIG9iamVjdCwgZ290IHR5cGUgJHt0eXBlb2YgdHhQcmVidWlsZH1gKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHR4UHJlYnVpbGQgcGFyYW1ldGVyJyk7XG4gIH1cblxuICBjb25zdCB0eCA9IGNvaW4uZGVjb2RlVHJhbnNhY3Rpb25Gcm9tUHJlYnVpbGQocGFyYW1zLnR4UHJlYnVpbGQpO1xuXG4gIGNvbnN0IHNpZ25lcktleWNoYWluID0gZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydik7XG5cbiAgY29uc3QgeyB3YWxsZXQgfSA9IHBhcmFtcztcblxuICBpZiAod2FsbGV0ICYmIGlzRGVzY3JpcHRvcldhbGxldCh3YWxsZXQpKSB7XG4gICAgaWYgKCFzaWduZXJLZXljaGFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHNpZ25lcicpO1xuICAgIH1cbiAgICBjb25zdCB3YWxsZXRLZXlzID0gdG9CaXAzMlRyaXBsZShhd2FpdCBmZXRjaEtleWNoYWlucyhjb2luLCB3YWxsZXQpKTtcbiAgICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQod2FsbGV0LCB3YWxsZXRLZXlzLCBnZXRQb2xpY3lGb3JFbnYoYml0Z28uZW52KSk7XG4gICAgaWYgKHR4IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkge1xuICAgICAgZGVzY3JpcHRvci5zaWduUHNidCh0eCwgZGVzY3JpcHRvck1hcCwgc2lnbmVyS2V5Y2hhaW4sIHtcbiAgICAgICAgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7IHR4SGV4OiB0eC50b0hleCgpIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgYSBVdHhvUHNidCBvYmplY3QnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0LnNpZ25UcmFuc2FjdGlvbihjb2luLCB0eCwgZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydiksIHtcbiAgICAgIHdhbGxldElkOiBwYXJhbXMudHhQcmVidWlsZC53YWxsZXRJZCxcbiAgICAgIHR4SW5mbzogcGFyYW1zLnR4UHJlYnVpbGQudHhJbmZvLFxuICAgICAgaXNMYXN0U2lnbmF0dXJlOiBwYXJhbXMuaXNMYXN0U2lnbmF0dXJlID8/IGZhbHNlLFxuICAgICAgc2lnbmluZ1N0ZXA6IHBhcmFtcy5zaWduaW5nU3RlcCxcbiAgICAgIGFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHg6IHBhcmFtcy5hbGxvd05vblNlZ3dpdFNpZ25pbmdXaXRob3V0UHJldlR4ID8/IGZhbHNlLFxuICAgICAgcHViczogcGFyYW1zLnB1YnMsXG4gICAgICBjb3NpZ25lclB1YjogcGFyYW1zLmNvc2lnbmVyUHViLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSwwQ0E4Q0M7QUE1RUQsb0RBQXVCO0FBRXZCLHlEQUEyQztBQUMzQyxnREFBeUM7QUFDekMsa0RBQStCO0FBRy9CLDhDQUFnRztBQUNoRyw0Q0FBNkQ7QUFFN0QsMkRBQTZDO0FBQzdDLHlEQUEyQztBQUUzQyxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyxpREFBaUQsQ0FBQyxDQUFDO0FBRTVFLFNBQVMsaUJBQWlCLENBQUMsT0FBZ0I7SUFDekMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRSxJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLHdEQUF3RCxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF1QztJQUV2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRXJDLElBQUksZ0JBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsT0FBTyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXJELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUIsSUFBSSxNQUFNLElBQUksSUFBQSwrQkFBa0IsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxNQUFNLElBQUEsMEJBQWMsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRyxJQUFBLHVDQUEwQixFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBQSw0QkFBZSxFQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksRUFBRSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRTtnQkFDckQsY0FBYyxFQUFFLE9BQU87YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN4RyxRQUFRLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRO1lBQ3BDLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU07WUFDaEMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksS0FBSztZQUNoRCxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0Isa0NBQWtDLEVBQUUsTUFBTSxDQUFDLGtDQUFrQyxJQUFJLEtBQUs7WUFDdEYsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztTQUNoQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgYmlwMzIgfSBmcm9tICdAYml0Z28vc2VjcDI1NmsxJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGdldFBvbGljeUZvckVudiwgaXNEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBmZXRjaEtleWNoYWlucywgdG9CaXAzMlRyaXBsZSB9IGZyb20gJy4uL2tleWNoYWlucyc7XG5cbmltcG9ydCAqIGFzIGZpeGVkU2NyaXB0IGZyb20gJy4vZml4ZWRTY3JpcHQnO1xuaW1wb3J0ICogYXMgZGVzY3JpcHRvciBmcm9tICcuL2Rlc2NyaXB0b3InO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ2JpdGdvOmFic3RyYWN0LXV0eG86dHJhbnNhY3Rpb246c2lnblRyYW5zYWN0aW9uJyk7XG5cbmZ1bmN0aW9uIGdldFNpZ25lcktleWNoYWluKHVzZXJQcnY6IHVua25vd24pOiB1dHhvbGliLkJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHVzZXJQcnYgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiB1c2VyUHJ2ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgdXNlciBwcml2YXRlIGtleSB0byBiZSBhIHN0cmluZycpO1xuICB9XG4gIGNvbnN0IHNpZ25lcktleWNoYWluID0gYmlwMzIuZnJvbUJhc2U1OCh1c2VyUHJ2LCB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICBpZiAoc2lnbmVyS2V5Y2hhaW4uaXNOZXV0ZXJlZCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCB1c2VyIHByaXZhdGUga2V5IGJ1dCByZWNlaXZlZCBwdWJsaWMga2V5Jyk7XG4gIH1cbiAgZGVidWcoYEhlcmUgaXMgdGhlIHB1YmxpYyBrZXkgb2YgdGhlIHhwcnYgeW91IHVzZWQgdG8gc2lnbjogJHtzaWduZXJLZXljaGFpbi5uZXV0ZXJlZCgpLnRvQmFzZTU4KCl9YCk7XG4gIHJldHVybiBzaWduZXJLZXljaGFpbjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25UcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgcGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4pOiBQcm9taXNlPHsgdHhIZXg6IHN0cmluZyB9PiB7XG4gIGNvbnN0IHR4UHJlYnVpbGQgPSBwYXJhbXMudHhQcmVidWlsZDtcblxuICBpZiAoXy5pc1VuZGVmaW5lZCh0eFByZWJ1aWxkKSB8fCAhXy5pc09iamVjdCh0eFByZWJ1aWxkKSkge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZCh0eFByZWJ1aWxkKSAmJiAhXy5pc09iamVjdCh0eFByZWJ1aWxkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB0eFByZWJ1aWxkIG11c3QgYmUgYW4gb2JqZWN0LCBnb3QgdHlwZSAke3R5cGVvZiB0eFByZWJ1aWxkfWApO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgdHhQcmVidWlsZCBwYXJhbWV0ZXInKTtcbiAgfVxuXG4gIGNvbnN0IHR4ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG5cbiAgY29uc3Qgc2lnbmVyS2V5Y2hhaW4gPSBnZXRTaWduZXJLZXljaGFpbihwYXJhbXMucHJ2KTtcblxuICBjb25zdCB7IHdhbGxldCB9ID0gcGFyYW1zO1xuXG4gIGlmICh3YWxsZXQgJiYgaXNEZXNjcmlwdG9yV2FsbGV0KHdhbGxldCkpIHtcbiAgICBpZiAoIXNpZ25lcktleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3Npbmcgc2lnbmVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKGF3YWl0IGZldGNoS2V5Y2hhaW5zKGNvaW4sIHdhbGxldCkpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCh3YWxsZXQsIHdhbGxldEtleXMsIGdldFBvbGljeUZvckVudihiaXRnby5lbnYpKTtcbiAgICBpZiAodHggaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgICBkZXNjcmlwdG9yLnNpZ25Qc2J0KHR4LCBkZXNjcmlwdG9yTWFwLCBzaWduZXJLZXljaGFpbiwge1xuICAgICAgICBvblVua25vd25JbnB1dDogJ3Rocm93JyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHsgdHhIZXg6IHR4LnRvSGV4KCkgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBhIFV0eG9Qc2J0IG9iamVjdCcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzaWduZWRUeCA9IGF3YWl0IGZpeGVkU2NyaXB0LnNpZ25UcmFuc2FjdGlvbihjb2luLCB0eCwgZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydiksIGNvaW4ubmV0d29yaywge1xuICAgICAgd2FsbGV0SWQ6IHBhcmFtcy50eFByZWJ1aWxkLndhbGxldElkLFxuICAgICAgdHhJbmZvOiBwYXJhbXMudHhQcmVidWlsZC50eEluZm8sXG4gICAgICBpc0xhc3RTaWduYXR1cmU6IHBhcmFtcy5pc0xhc3RTaWduYXR1cmUgPz8gZmFsc2UsXG4gICAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgICAgYWxsb3dOb25TZWd3aXRTaWduaW5nV2l0aG91dFByZXZUeDogcGFyYW1zLmFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHggPz8gZmFsc2UsXG4gICAgICBwdWJzOiBwYXJhbXMucHVicyxcbiAgICAgIGNvc2lnbmVyUHViOiBwYXJhbXMuY29zaWduZXJQdWIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHsgdHhIZXg6IHNpZ25lZFR4LnRvQnVmZmVyKCkudG9TdHJpbmcoJ2hleCcpIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,8 @@
1
+ import * as utxolib from '@bitgo/utxo-lib';
1
2
  import type { UtxoNamedKeychains } from '../keychains';
2
3
  import type { CustomChangeOptions } from './fixedScript';
4
+ export type SdkBackend = 'utxolib' | 'wasm-utxo';
5
+ export type DecodedTransaction<TNumber extends number | bigint> = utxolib.bitgo.UtxoTransaction<TNumber> | utxolib.bitgo.UtxoPsbt;
3
6
  export interface BaseOutput<TAmount = string | number> {
4
7
  address: string;
5
8
  amount: TAmount;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC7F,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEvG,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI;IACnF,8BAA8B;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,iGAAiG;IACjG,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,+FAA+F;IAC/F,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,mGAAmG;IACnG,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,kDAAkD;IAClD,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;IACrC,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI,4BAA4B,CACxG,OAAO,EACP,OAAO,CACR,CAAC,mFAAmF,GAAG;IACtF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,yCAAyC,EAAE,OAAO,CAAC;IACnD,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAEjD,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAC1D,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAE3B,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC7F,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEvG,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI;IACnF,8BAA8B;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,iGAAiG;IACjG,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,+FAA+F;IAC/F,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,mGAAmG;IACnG,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,kDAAkD;IAClD,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;IACrC,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI,4BAA4B,CACxG,OAAO,EACP,OAAO,CACR,CAAC,mFAAmF,GAAG;IACtF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,yCAAyC,EAAE,OAAO,CAAC;IACnD,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVXR4b05hbWVkS2V5Y2hhaW5zIH0gZnJvbSAnLi4va2V5Y2hhaW5zJztcblxuaW1wb3J0IHR5cGUgeyBDdXN0b21DaGFuZ2VPcHRpb25zIH0gZnJvbSAnLi9maXhlZFNjcmlwdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZU91dHB1dDxUQW1vdW50ID0gc3RyaW5nIHwgbnVtYmVyPiB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBUQW1vdW50O1xuICAvLyBFdmVuIHRob3VnaCB0aGlzIGV4dGVybmFsIGZsYWcgaXMgcmVkdW5kYW50IHdpdGggdGhlIGNoYWluIHByb3BlcnR5LCBpdCBpcyBuZWNlc3NhcnkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gIC8vIHdpdGggbGVnYWN5IHRyYW5zYWN0aW9uIGZvcm1hdC5cbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PFRBbW91bnQgPSBzdHJpbmcgfCBudW1iZXI+IGV4dGVuZHMgQmFzZU91dHB1dDxUQW1vdW50PiB7XG4gIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uPzogYm9vbGVhbjtcbiAgY2hhaW46IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgT3V0cHV0PFRBbW91bnQgPSBzdHJpbmcgfCBudW1iZXI+ID0gQmFzZU91dHB1dDxUQW1vdW50PiB8IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PFRBbW91bnQ+O1xuXG5leHBvcnQgdHlwZSBCYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFRPdXRwdXQ+ID0ge1xuICAvKiogYWxsIHRyYW5zYWN0aW9uIG91dHB1dHMgKi9cbiAgb3V0cHV0czogVE91dHB1dFtdO1xuICAvKiogdHJhbnNhY3Rpb24gb3V0cHV0cyB0aGF0IHdlcmUgc3BlY2lmaWVkIGFzIHJlY2lwaWVudHMgYnV0IGFyZSBtaXNzaW5nIGZyb20gdGhlIHRyYW5zYWN0aW9uICovXG4gIG1pc3NpbmdPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgd2VyZSBzcGVjaWZpZWQgYXMgcmVjaXBpZW50cyBhbmQgYXJlIHByZXNlbnQgaW4gdGhlIHRyYW5zYWN0aW9uICovXG4gIGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgd2VyZSBub3Qgc3BlY2lmaWVkIGFzIHJlY2lwaWVudHMgYnV0IGFyZSBwcmVzZW50IGluIHRoZSB0cmFuc2FjdGlvbiAqL1xuICBpbXBsaWNpdEV4dGVybmFsT3V0cHV0czogVE91dHB1dFtdO1xuICAvKiogdHJhbnNhY3Rpb24gb3V0cHV0cyB0aGF0IGFyZSBjaGFuZ2Ugb3V0cHV0cyAqL1xuICBjaGFuZ2VPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiBzdW0gb2YgYWxsIGV4cGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKi9cbiAgZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiBUTnVtYmVyO1xuICAvKiogc3VtIG9mIGFsbCBpbXBsaWNpdCBleHRlcm5hbCBvdXRwdXRzICovXG4gIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogVE51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50LCBUT3V0cHV0PiA9IEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8XG4gIFROdW1iZXIsXG4gIFRPdXRwdXRcbj4gLyoqIFNvbWUgZXh0cmEgcHJvcGVydGllcyB0aGF0IGhhdmUgbm90aGluZyB0byBkbyB3aXRoIGFuIGluZGl2aWR1YWwgdHJhbnNhY3Rpb24gKi8gJiB7XG4gIGtleWNoYWluczogVXR4b05hbWVkS2V5Y2hhaW5zO1xuICBrZXlTaWduYXR1cmVzOiB7XG4gICAgYmFja3VwUHViPzogc3RyaW5nO1xuICAgIGJpdGdvUHViPzogc3RyaW5nO1xuICB9O1xuICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogYm9vbGVhbjtcbiAgY3VzdG9tQ2hhbmdlPzogQ3VzdG9tQ2hhbmdlT3B0aW9ucztcbn07XG5cbi8qKlxuICogVGhpcyB0eXBlIGlzIGEgYml0IHNpbGx5IGJlY2F1c2UgaXQgYWxsb3dzIHRoZSB0eXBlIGZvciB0aGUgYWdncmVnYXRlIGFtb3VudHMgdG8gYmUgZGlmZmVyZW50IGZyb20gdGhlIHR5cGUgb2ZcbiAqIGluZGl2aWR1YWwgYW1vdW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgUGFyc2VkVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSBCYXNlUGFyc2VkVHJhbnNhY3Rpb248VE51bWJlciwgT3V0cHV0PjtcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHR5cGUgeyBVdHhvTmFtZWRLZXljaGFpbnMgfSBmcm9tICcuLi9rZXljaGFpbnMnO1xuXG5pbXBvcnQgdHlwZSB7IEN1c3RvbUNoYW5nZU9wdGlvbnMgfSBmcm9tICcuL2ZpeGVkU2NyaXB0JztcblxuZXhwb3J0IHR5cGUgU2RrQmFja2VuZCA9ICd1dHhvbGliJyB8ICd3YXNtLXV0eG8nO1xuXG5leHBvcnQgdHlwZSBEZWNvZGVkVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gPVxuICB8IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+XG4gIHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlT3V0cHV0PFRBbW91bnQgPSBzdHJpbmcgfCBudW1iZXI+IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IFRBbW91bnQ7XG4gIC8vIEV2ZW4gdGhvdWdoIHRoaXMgZXh0ZXJuYWwgZmxhZyBpcyByZWR1bmRhbnQgd2l0aCB0aGUgY2hhaW4gcHJvcGVydHksIGl0IGlzIG5lY2Vzc2FyeSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgLy8gd2l0aCBsZWdhY3kgdHJhbnNhY3Rpb24gZm9ybWF0LlxuICBleHRlcm5hbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8VEFtb3VudCA9IHN0cmluZyB8IG51bWJlcj4gZXh0ZW5kcyBCYXNlT3V0cHV0PFRBbW91bnQ+IHtcbiAgbmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24/OiBib29sZWFuO1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBPdXRwdXQ8VEFtb3VudCA9IHN0cmluZyB8IG51bWJlcj4gPSBCYXNlT3V0cHV0PFRBbW91bnQ+IHwgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8VEFtb3VudD47XG5cbmV4cG9ydCB0eXBlIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCwgVE91dHB1dD4gPSB7XG4gIC8qKiBhbGwgdHJhbnNhY3Rpb24gb3V0cHV0cyAqL1xuICBvdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgd2VyZSBzcGVjaWZpZWQgYXMgcmVjaXBpZW50cyBidXQgYXJlIG1pc3NpbmcgZnJvbSB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgbWlzc2luZ091dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHRyYW5zYWN0aW9uIG91dHB1dHMgdGhhdCB3ZXJlIHNwZWNpZmllZCBhcyByZWNpcGllbnRzIGFuZCBhcmUgcHJlc2VudCBpbiB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHRyYW5zYWN0aW9uIG91dHB1dHMgdGhhdCB3ZXJlIG5vdCBzcGVjaWZpZWQgYXMgcmVjaXBpZW50cyBidXQgYXJlIHByZXNlbnQgaW4gdGhlIHRyYW5zYWN0aW9uICovXG4gIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgYXJlIGNoYW5nZSBvdXRwdXRzICovXG4gIGNoYW5nZU91dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHN1bSBvZiBhbGwgZXhwbGljaXQgZXh0ZXJuYWwgb3V0cHV0cyAqL1xuICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IFROdW1iZXI7XG4gIC8qKiBzdW0gb2YgYWxsIGltcGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKi9cbiAgaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiBUTnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFRPdXRwdXQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxcbiAgVE51bWJlcixcbiAgVE91dHB1dFxuPiAvKiogU29tZSBleHRyYSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggYW4gaW5kaXZpZHVhbCB0cmFuc2FjdGlvbiAqLyAmIHtcbiAga2V5Y2hhaW5zOiBVdHhvTmFtZWRLZXljaGFpbnM7XG4gIGtleVNpZ25hdHVyZXM6IHtcbiAgICBiYWNrdXBQdWI/OiBzdHJpbmc7XG4gICAgYml0Z29QdWI/OiBzdHJpbmc7XG4gIH07XG4gIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uOiBib29sZWFuO1xuICBjdXN0b21DaGFuZ2U/OiBDdXN0b21DaGFuZ2VPcHRpb25zO1xufTtcblxuLyoqXG4gKiBUaGlzIHR5cGUgaXMgYSBiaXQgc2lsbHkgYmVjYXVzZSBpdCBhbGxvd3MgdGhlIHR5cGUgZm9yIHRoZSBhZ2dyZWdhdGUgYW1vdW50cyB0byBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgdHlwZSBvZlxuICogaW5kaXZpZHVhbCBhbW91bnRzLlxuICovXG5leHBvcnQgdHlwZSBQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyLCBPdXRwdXQ+O1xuIl19
@@ -280,4 +280,27 @@ describe(`Cross-Chain Recovery getWallet`, async function () {
280
280
  }
281
281
  });
282
282
  });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyxpQ0FBa0M7QUFDbEMsNkJBQThCO0FBQzlCLHlEQUEyQztBQUUzQyw4Q0FBMEM7QUFDMUMsNkNBQStCO0FBRS9CLHNDQU9zQjtBQUN0QixrQ0FXaUI7QUFDakIsaURBQThDO0FBQzlDLHFEQUFrRTtBQUNsRSxpREFBa0U7QUFFbEUsaUNBQXdEO0FBSXhELFNBQVMsUUFBUSxDQUFDLENBQWlCO0lBQ2pDLE9BQU8sSUFBQSxrQkFBTyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQXNCLEVBQUUsUUFBZ0IsRUFBRSxVQUFrQztJQUM5RixPQUFPO1FBQ0wsSUFBQSxxQkFBUyxHQUFFO2FBQ1IsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLFFBQVEsRUFBRSxDQUFDO2FBQ3BELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixFQUFFLEVBQUUsUUFBUTtZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QyxDQUFDO2FBQ0QsT0FBTyxFQUFFO1FBQ1osR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsSUFBQSxxQkFBUyxHQUFFO2FBQ1IsR0FBRyxDQUFD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QUNwRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsZUFBUyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTtnQkFDM0UsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgc2hvdWxkID0gcmVxdWlyZSgnc2hvdWxkJyk7XG5pbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RVdHhvQ29pbixcbiAgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkLFxuICBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZCxcbiAgZ2V0V2FsbGV0LFxuICBzdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3ZlcmllcyxcbiAgZ2VuZXJhdGVBZGRyZXNzLFxufSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHtcbiAgZ2V0Rml4dHVyZSxcbiAga2V5Y2hhaW5zQmFzZTU4LFxuICBLZXljaGFpbkJhc2U1OCxcbiAgbW9ja1Vuc3BlbnQsXG4gIHNob3VsZEVxdWFsSlNPTixcbiAgdXR4b0NvaW5zLFxuICB0cmFuc2FjdGlvbkhleFRvT2JqLFxuICBnZXREZWZhdWx0V2FsbGV0S2V5cyxcbiAgZGVmYXVsdEJpdEdvLFxuICBnZXRVdHhvQ29pbixcbn0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBub2NrQml0R28gfSBmcm9tICcuLi91dGlsL25vY2tCaXRHbyc7XG5pbXBvcnQgeyBjcmVhdGVGdWxsU2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi91dGlsL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyIH0gZnJvbSAnLi4vdXRpbC9rZXljaGFpbnMnO1xuXG5pbXBvcnQgeyBNb2NrQ3Jvc3NDaGFpblJlY292ZXJ5UHJvdmlkZXIgfSBmcm9tICcuL21vY2snO1xuXG50eXBlIFdhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8VE51bWJlcj47XG5cbmZ1bmN0aW9uIGdldEtleUlkKGs6IEtleWNoYWluQmFzZTU4KTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFNlZWQoay5wdWIpLnRvU3RyaW5nKCdoZXgnKTtcbn1cblxuZnVuY3Rpb24gbm9ja1dhbGxldChjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXRJZDogc3RyaW5nLCB3YWxsZXRLZXlzOiBUcmlwbGU8S2V5Y2hhaW5CYXNlNTg+KTogbm9jay5TY29wZVtdIHtcbiAgcmV0dXJuIFtcbiAgICBub2NrQml0R28oKVxuICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7d2FsbGV0SWR9YClcbiAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgaWQ6IHdhbGxldElkLFxuICAgICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICAgIGxhYmVsOiAnY3Jvc3NDaGFpblJlY292ZXJ5JyxcbiAgICAgICAga2V5czogd2FsbGV0S2V5cy5tYXAoKGspID0+IGdldEtleUlkKGspKSxcbiAgICAgIH0pXG4gICAgICAucGVyc2lzdCgpLFxuICAgIC4uLndhbGxldEtleXMubWFwKChrKSA9PlxuICAgICAgbm9ja0JpdEdvKClcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7Z2V0S2V5SWQoayl9YClcbiAgICAgICAgLnJlcGx5KDIwMCwgaylcbiAgICAgICAgLnBlcnNpc3QoKVxuICAgICksXG4gIF07XG59XG5cbnR5cGUgQWRkcmVzcyA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gbm9ja1dhbGxldEFkZHJlc3MoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0SWQ6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IG5vY2suU2NvcGUge1xuICByZXR1cm4gbm9ja0JpdEdvKClcbiAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH0vYWRkcmVzcy8ke2FkZHJlc3MuYWRkcmVzc31gKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGFkZHJlc3M6IGFkZHJlc3MuYWRkcmVzcyxcbiAgICAgIGNoYWluOiBhZGRyZXNzLmNoYWluLFxuICAgICAgaW5kZXg6IGFkZHJlc3MuaW5kZXgsXG4gICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICB3YWxsZXQ6IHdhbGxldElkLFxuICAgIH0pXG4gICAgLnBlcnNpc3QoKTtcbn1cblxuLyoqXG4gKiBTZXR1cCB0ZXN0IGZvciBjcm9zcy1jaGFpbiByZWNvdmVyeS5cbiAqXG4gKiBVc2VycyBjYW4gcmVjZWl2ZSBkZXBvc2l0cyBvbiB3YWxsZXQgYWRkcmVzc2VzIHRoYXQgYXJlIG9uIGEgZGlmZmVyZW50IGNoYWluLlxuICpcbiAqIEZvciBpbnN0YW5jZSwgYSB1c2VyIGNhbiByZWNlaXZlIGxpdGVjb2luIG9uIGEgYml0Y29pbiB3YWxsZXQuXG4gKiBUaGlzIG1lYW5zIHRoYXQgdGhlIGxpdGVjb2luIGJsb2NrY2hhaW4gaGFzIGEgdHJhbnNhY3Rpb24gd2l0aCBvdXRwdXRzIHRoYXQgYXJlIHNwZW5kYWJsZVxuICogd2l0aCBrZXlzIHRoYXQgd2VyZSBvcmlnaW5hbGx5IGNyZWF0ZWQgZm9yIGEgQml0R28gQlRDIHdhbGxldC5cbiAqIEluIHRoaXMgZXhhbXBsZSwgTFRDIGlzIHRoZSBcInNvdXJjZSBjb2luXCIgYW5kIEJUQyBpcyB0aGUgXCJyZWNvdmVyeSBjb2luXCJcbiAqIEluIGNhc2VzIGxpa2UgdGhlc2Ugd2UgbXVzdCB1c2UgY29uc3RydWN0IGEgdHJhbnNhY3Rpb24gZm9yIGxpdGVjb2luIG5ldHdvcmsgdXNpbmcga2V5cyBvZiB0aGVcbiAqIGJpdGNvaW4gd2FsbGV0LlxuICpcbiAqIEBwYXJhbSBzb3VyY2VDb2luIC0gdGhlIGNvaW4gdG8gY29uc3RydWN0IHRoZSB0cmFuc2FjdGlvbiBmb3JcbiAqIEBwYXJhbSByZWNvdmVyeUNvaW4gLSB0aGUgY29pbiB0aGUgcmVjZWl2aW5nIHdhbGxldCB3YXMgc2V0IHVwIGZvclxuICovXG5mdW5jdGlvbiBydW48VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gIGRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBbc291cmNlQ29pbj0ke3NvdXJjZUNvaW4uZ2V0Q2hhaW4oKX0gcmVjb3ZlcnlDb2luPSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB3YWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcbiAgICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcbiAgICAvLyB0aGUgYWRkcmVzcyB0aGUgYWNjaWRlbnRhbCBkZXBvc2l0IHdlbnQgdG8sIGluIGJvdGggc291cmNlQ29pbiBhbmQgYWRkcmVzc0NvaW4gZm9ybWF0c1xuICAgIGNvbnN0IFtkZXBvc2l0QWRkcmVzc1NvdXJjZUNvaW4sIGRlcG9zaXRBZGRyZXNzUmVjb3ZlcnlDb2luXSA9IFtzb3VyY2VDb2luLCByZWNvdmVyeUNvaW5dLm1hcCgoY29pbikgPT4gKHtcbiAgICAgIGFkZHJlc3M6IGdlbmVyYXRlQWRkcmVzcyhjb2luLm5ldHdvcmssIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMCB9KSxcbiAgICAgIGNoYWluOiAwLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSkpO1xuICAgIGNvbnN0IGNoYWluID0gMDtcbiAgICBjb25zdCBpbmRleCA9IDE7XG4gICAgLy8gdGhlIGFkZHJlc3Mgd2hlcmUgd2Ugd2FudCB0byByZWNvdmVyIG91ciBmdW5kcyB0b1xuICAgIGNvbnN0IHJlY292ZXJ5QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5ldHdvcmssIHtcbiAgICAgIGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LFxuICAgICAgY2hhaW4sXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCBub2Nrczogbm9jay5TY29wZVtdID0gW107XG5cbiAgICBsZXQgZGVwb3NpdFR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPjtcblxuICAgIGZ1bmN0aW9uIGdldERlcG9zaXRVbnNwZW50cygpOiB1dHhvbGliLmJpdGdvLlVuc3BlbnQ8VE51bWJlcj5bXSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBtb2NrVW5zcGVudDxUTnVtYmVyPihcbiAgICAgICAgICBzb3VyY2VDb2luLm5ldHdvcmssXG4gICAgICAgICAgd2FsbGV0S2V5cyxcbiAgICAgICAgICAncDJzaCcsXG4gICAgICAgICAgMCxcbiAgICAgICAgICAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IEJpZ0ludCgnMTA5OTk5OTk4MDAwMDAwMDEnKSA6IDFlOCkgYXMgVE51bWJlclxuICAgICAgICApLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXREZXBvc2l0VHJhbnNhY3Rpb24oKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZUZ1bGxTaWduZWRUcmFuc2FjdGlvbjxUTnVtYmVyPihcbiAgICAgICAgc291cmNlQ29pbi5uZXR3b3JrLFxuICAgICAgICBnZXREZXBvc2l0VW5zcGVudHMoKSxcbiAgICAgICAgZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsXG4gICAgICAgIGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyKClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYmVmb3JlKCdwcmVwYXJlIGRlcG9zaXQgdHgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBkZXBvc2l0VHggPSBnZXREZXBvc2l0VHJhbnNhY3Rpb24oKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGdldFJlY292ZXJ5VW5zcGVudHMoKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogZGVwb3NpdFR4LmdldElkKCksXG4gICAgICAgICAgYWRkcmVzczogZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsXG4gICAgICAgICAgY2hhaW46IGNoYWluLFxuICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICB2YWx1ZTogZGVwb3NpdFR4Lm91dHNbMF0udmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGJlZm9yZSgnc2V0dXAgbm9ja3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBub2Nrcy5wdXNoKC4uLm5vY2tXYWxsZXQocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBrZXljaGFpbnNCYXNlNTgpKTtcbiAgICAgIG5vY2tzLnB1c2gobm9ja1dhbGxldEFkZHJlc3MocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBkZXBvc2l0QWRkcmVzc1JlY292ZXJ5Q29pbikpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9ja3MuZm9yRWFjaCgobikgPT4gbi5kb25lKCkpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9jay5jbGVhbkFsbCgpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHRlc3RNYXRjaEZpeHR1cmUoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBnZXRSZWNvdmVyeVJlc3VsdDogKCkgPT4gQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+IHwgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj5cbiAgICApIHtcbiAgICAgIGl0KGBzaG91bGQgbWF0Y2ggZml4dHVyZSAoJHtuYW1lfSlgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlY292ZXJ5ID0gZ2V0UmVjb3ZlcnlSZXN1bHQoKTtcbiAgICAgICAgbGV0IHJlY292ZXJ5T2JqID0ge1xuICAgICAgICAgIC4uLnJlY292ZXJ5LFxuICAgICAgICAgIHR4OiB0cmFuc2FjdGlvbkhleFRvT2JqKHJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZywgc291cmNlQ29pbi5uZXR3b3JrLCBzb3VyY2VDb2luLmFtb3VudFR5cGUpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50Jykge1xuICAgICAgICAgIHJlY292ZXJ5T2JqID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHJlY292ZXJ5T2JqLCAoaywgdikgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHNob3VsZEVxdWFsSlNPTihcbiAgICAgICAgICByZWNvdmVyeU9iaixcbiAgICAgICAgICBhd2FpdCBnZXRGaXh0dXJlKHNvdXJjZUNvaW4sIGByZWNvdmVyeS9jcm9zc0NoYWluUmVjb3ZlcnktJHtyZWNvdmVyeUNvaW4uZ2V0Q2hhaW4oKX0tJHtuYW1lfWAsIHJlY292ZXJ5T2JqKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tSZWNvdmVyeVRyYW5zYWN0aW9uU2lnbmF0dXJlKHR4OiBzdHJpbmcgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPikge1xuICAgICAgaWYgKHR5cGVvZiB0eCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyPihCdWZmZXIuZnJvbSh0eCwgJ2hleCcpLCBzb3VyY2VDb2luLm5ldHdvcmssIHtcbiAgICAgICAgICBhbW91bnRUeXBlOiBzb3VyY2VDb2luLmFtb3VudFR5cGUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgdW5zcGVudHMgPSBnZXRSZWNvdmVyeVVuc3BlbnRzKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5zLmxlbmd0aCwgdW5zcGVudHMubGVuZ3RoKTtcbiAgICAgIHR4Lmlucy5mb3JFYWNoKChpbnB1dCwgaSkgPT4ge1xuICAgICAgICBhc3NlcnQub2sodHlwZW9mIHR4ICE9PSAnc3RyaW5nJyk7XG4gICAgICAgIHV0eG9saWIuYml0Z29cbiAgICAgICAgICAudmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQ8VE51bWJlcj4odHgsIGksIGdldFJlY292ZXJ5VW5zcGVudHMoKSwgd2FsbGV0S2V5cylcbiAgICAgICAgICAuc2hvdWxkLmVxbChbdHJ1ZSwgZmFsc2UsIGZhbHNlXSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnc2hvdWxkIHRlc3Qgc2lnbmVkIGNyb3NzIGNoYWluIHJlY292ZXJ5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIgPSBzaW5vblxuICAgICAgICAuc3R1YihBYnN0cmFjdFV0eG9Db2luLnByb3RvdHlwZSwgJ2dldFJlY292ZXJ5UHJvdmlkZXInKVxuICAgICAgICAucmV0dXJucyhuZXcgTW9ja0Nyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyPFROdW1iZXI+KHNvdXJjZUNvaW4sIGdldERlcG9zaXRVbnNwZW50cygpLCBkZXBvc2l0VHgpKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcmVjb3ZlcnlDb2luLFxuICAgICAgICB0eGlkOiBkZXBvc2l0VHguZ2V0SWQoKSxcbiAgICAgICAgcmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgICB3YWxsZXQ6IHJlY292ZXJ5V2FsbGV0SWQsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHhwcnY6IGtleWNoYWluc0Jhc2U1OFswXS5wcnYsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+O1xuICAgICAgc2hvdWxkLmVxdWFsKGdldFJlY292ZXJ5UHJvdmlkZXJTdHViLmNhbGxDb3VudCwgMSk7XG5cbiAgICAgIHRlc3RNYXRjaEZpeHR1cmUoJ3NpZ25lZCcsICgpID0+IHNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIHZhbGlkIHNpZ25hdHVyZXMgZm9yIHNpZ25lZCByZWNvdmVyeScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2hlY2tSZWNvdmVyeVRyYW5zYWN0aW9uU2lnbmF0dXJlKHNpZ25lZFJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGVzdCB1bnNpZ25lZCBjcm9zcyBjaGFpbiByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGdldFJlY292ZXJ5UHJvdmlkZXJTdHViID0gc2lub25cbiAgICAgICAgLnN0dWIoQWJzdHJhY3RVdHhvQ29pbi5wcm90b3R5cGUsICdnZXRSZWNvdmVyeVByb3ZpZGVyJylcbiAgICAgICAgLnJldHVybnMobmV3IE1vY2tDcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyPihzb3VyY2VDb2luLCBnZXREZXBvc2l0VW5zcGVudHMoKSwgZGVwb3NpdFR4KSk7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJlY292ZXJ5Q29pbixcbiAgICAgICAgdHhpZDogZGVwb3NpdFR4LmdldElkKCksXG4gICAgICAgIHJlY292ZXJ5QWRkcmVzcyxcbiAgICAgICAgd2FsbGV0OiByZWNvdmVyeVdhbGxldElkLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVuc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHNpZ25lZDogZmFsc2UsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj47XG4gICAgICBzaG91bGQuZXF1YWwoZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIuY2FsbENvdW50LCAxKTtcblxuICAgICAgdGVzdE1hdGNoRml4dHVyZSgndW5zaWduZWQnLCAoKSA9PiB1bnNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgaXQoJ3Nob3VsZCBiZSBzaWduYWJsZSBmb3IgdW5zaWduZWQgcmVjb3ZlcnknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgc291cmNlQ29pbi5zaWduVHJhbnNhY3Rpb248VE51bWJlcj4oe1xuICAgICAgICAgIHR4UHJlYnVpbGQ6IHVuc2lnbmVkUmVjb3ZlcnksXG4gICAgICAgICAgcHJ2OiBrZXljaGFpbnNCYXNlNThbMF0ucHJ2LFxuICAgICAgICAgIHB1YnM6IGtleWNoYWluc0Jhc2U1OC5tYXAoKGspID0+IGsucHViKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICAgICAgfSk7XG4gICAgICAgIGNoZWNrUmVjb3ZlcnlUcmFuc2FjdGlvblNpZ25hdHVyZSgoc2lnbmVkVHggYXMgeyB0eEhleDogc3RyaW5nIH0pLnR4SGV4KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNTdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3Zlcnkoc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3Zlcmllc1tzb3VyY2VDb2luLmdldEZhbWlseSgpXT8uaW5jbHVkZXMocmVjb3ZlcnlDb2luLmdldEZhbWlseSgpKTtcbn1cblxudXR4b0NvaW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgdXR4b0NvaW5zXG4gICAgLmZpbHRlcihcbiAgICAgIChvdGhlckNvaW4pID0+XG4gICAgICAgIGNvaW4gIT09IG90aGVyQ29pbiAmJlxuICAgICAgICBpc1N1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyeShjb2luLCBvdGhlckNvaW4pICYmXG4gICAgICAgICgodXR4b2xpYi5pc01haW5uZXQoY29pbi5uZXR3b3JrKSAmJiB1dHhvbGliLmlzTWFpbm5ldChvdGhlckNvaW4ubmV0d29yaykpIHx8XG4gICAgICAgICAgKHV0eG9saWIuaXNUZXN0bmV0KGNvaW4ubmV0d29yaykgJiYgdXR4b2xpYi5pc1Rlc3RuZXQob3RoZXJDb2luLm5ldHdvcmspKSlcbiAgICApXG4gICAgLmZvckVhY2goKG90aGVyQ29pbikgPT4ge1xuICAgICAgaWYgKGNvaW4uYW1vdW50VHlwZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgcnVuPGJpZ2ludD4oY29pbiwgb3RoZXJDb2luKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJ1bihjb2luLCBvdGhlckNvaW4pO1xuICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBnZXRXYWxsZXRgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGJpdGdvID0gZGVmYXVsdEJpdEdvO1xuICBjb25zdCByZWNvdmVyeUNvaW4gPSBnZXRVdHhvQ29pbignYnRjJyk7XG4gIGNvbnN0IHJlY292ZXJ5V2FsbGV0SWQgPSAnNWFiYWNlYmUyOGQ3MmZiZDA3ZTBiOGNiYmEwZmYzOWUnO1xuXG4gIGl0KCdzaG91bGQgc2VhcmNoIHYxIHdhbGxldHMgaWYgdGhlIHYyIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggYSA0eHggZXJyb3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBbNDAwLCA0MDRdO1xuXG4gICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvclJlc3BvbnNlcykge1xuICAgICAgY29uc3Qgbm9ja1YyV2FsbGV0ID0gbm9ja0JpdEdvKGJpdGdvKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9L3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YClcbiAgICAgICAgLnJlcGx5KGVycm9yKTtcbiAgICAgIGNvbnN0IG5vY2tWMVdhbGxldCA9IG5vY2tCaXRHbyhiaXRnbykuZ2V0KGAvYXBpL3YxL3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YCkucmVwbHkoZXJyb3IpO1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoXG4gICAgICAgICgpID0+IGdldFdhbGxldChiaXRnbywgcmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkKSxcbiAgICAgICAgRXJyb3IoYGNvdWxkIG5vdCBnZXQgd2FsbGV0ICR7cmVjb3ZlcnlXYWxsZXRJZH0gZnJvbSB2MSBvciB2MjogQXBpUmVzcG9uc2VFcnJvcjogJHtlcnJvcn1gKVxuICAgICAgKTtcbiAgICAgIG5vY2tWMldhbGxldC5kb25lKCk7XG4gICAgICBub2NrVjFXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdjIgZW5kcG9pbnQgcmVzcG9uZHMgd2l0aCBhIDV4eCBlcnJvcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBlcnJvclJlc3BvbnNlcyA9IFs1MDBdO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JSZXNwb25zZXMpIHtcbiAgICAgIGNvbnN0IG5vY2tWMldhbGxldCA9IG5vY2tCaXRHbyhiaXRnbylcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke3JlY292ZXJ5Q29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApXG4gICAgICAgIC5yZXBseShlcnJvcik7XG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cygoKSA9PiBnZXRXYWxsZXQoYml0Z28sIHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCksIHtcbiAgICAgICAgbmFtZTogJ0FwaVJlc3BvbnNlRXJyb3InLFxuICAgICAgICBzdGF0dXM6IDUwMCxcbiAgICAgICAgcmVzdWx0OiB7fSxcbiAgICAgICAgaW52YWxpZFRva2VuOiBmYWxzZSxcbiAgICAgICAgbmVlZHNPVFA6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBub2NrVjJXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
283
+ describe('convertLtcAddressToLegacyFormat', function () {
284
+ const ltcNetwork = utxolib.networks.litecoin;
285
+ it('should convert M... P2SH address to 3... legacy format', function () {
286
+ // These two addresses represent the same underlying script hash:
287
+ // - MNQ7zkgMsaV67rsjA3JuP59RC5wxRXpwgE is the LTC format (scriptHash 0x32)
288
+ // - 3GBygsGPvTdfKMbq4AKZZRu1sPMWPEsBfd is the BTC format (scriptHash 0x05)
289
+ const ltcAddress = 'MNQ7zkgMsaV67rsjA3JuP59RC5wxRXpwgE';
290
+ const expectedLegacyAddress = '3GBygsGPvTdfKMbq4AKZZRu1sPMWPEsBfd';
291
+ const legacyAddress = (0, src_1.convertLtcAddressToLegacyFormat)(ltcAddress, ltcNetwork);
292
+ assert.strictEqual(legacyAddress, expectedLegacyAddress);
293
+ });
294
+ it('should convert MD68PsdheKxcYsrVLyZRXgoSDLnB1MdVtE to legacy format', function () {
295
+ const address = 'MD68PsdheKxcYsrVLyZRXgoSDLnB1MdVtE';
296
+ const legacyAddress = (0, src_1.convertLtcAddressToLegacyFormat)(address, ltcNetwork);
297
+ // Should start with '3' (legacy BTC P2SH format)
298
+ assert.ok(legacyAddress.startsWith('3'), `Expected address to start with '3', got: ${legacyAddress}`);
299
+ });
300
+ it('should not modify bech32 addresses', function () {
301
+ const bech32Address = 'ltc1qgrl8zpndsklaa9swgd5vevyxmx5x63vcrl7dk4';
302
+ const result = (0, src_1.convertLtcAddressToLegacyFormat)(bech32Address, ltcNetwork);
303
+ assert.strictEqual(result, bech32Address);
304
+ });
305
+ });
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyxpQ0FBa0M7QUFDbEMsNkJBQThCO0FBQzlCLHlEQUEyQztBQUUzQyw4Q0FBMEM7QUFDMUMsNkNBQStCO0FBRS9CLHNDQVFzQjtBQUN0QixrQ0FXaUI7QUFDakIsaURBQThDO0FBQzlDLHFEQUFrRTtBQUNsRSxpREFBa0U7QUFFbEUsaUNBQXdEO0FBSXhELFNBQVMsUUFBUSxDQUFDLENBQWlCO0lBQ2pDLE9BQU8sSUFBQSxrQkFBTyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQXNCLEVBQUUsUUFBZ0IsRUFBRSxVQUFrQztJQUM5RixPQUFPO1FBQ0wsSUFBQSxxQkFBUyxHQUFFO2FBQ1IsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLFFBQVEsRUFBRSxDQUFDO2FBQ3BELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixFQUFFLEVBQUUsUUFBUTtZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QyxDQUFDO2FBQ0QsT0FBTyxFQUFFO1FBQ1osR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsSUFBQSxxQkFBUyxHQUFFO2FBQ1IsR0FBRyxDQUFD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QUFDLENBQUM7SUFDeEcsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsb0NBQW9DLEVBQUU7UUFDdkMsTUFBTSxhQUFhLEdBQUcsNkNBQTZDLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQ0FBK0IsRUFBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgc2hvdWxkID0gcmVxdWlyZSgnc2hvdWxkJyk7XG5pbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RVdHhvQ29pbixcbiAgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkLFxuICBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZCxcbiAgZ2V0V2FsbGV0LFxuICBzdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3ZlcmllcyxcbiAgZ2VuZXJhdGVBZGRyZXNzLFxuICBjb252ZXJ0THRjQWRkcmVzc1RvTGVnYWN5Rm9ybWF0LFxufSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHtcbiAgZ2V0Rml4dHVyZSxcbiAga2V5Y2hhaW5zQmFzZTU4LFxuICBLZXljaGFpbkJhc2U1OCxcbiAgbW9ja1Vuc3BlbnQsXG4gIHNob3VsZEVxdWFsSlNPTixcbiAgdXR4b0NvaW5zLFxuICB0cmFuc2FjdGlvbkhleFRvT2JqLFxuICBnZXREZWZhdWx0V2FsbGV0S2V5cyxcbiAgZGVmYXVsdEJpdEdvLFxuICBnZXRVdHhvQ29pbixcbn0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBub2NrQml0R28gfSBmcm9tICcuLi91dGlsL25vY2tCaXRHbyc7XG5pbXBvcnQgeyBjcmVhdGVGdWxsU2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi91dGlsL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyIH0gZnJvbSAnLi4vdXRpbC9rZXljaGFpbnMnO1xuXG5pbXBvcnQgeyBNb2NrQ3Jvc3NDaGFpblJlY292ZXJ5UHJvdmlkZXIgfSBmcm9tICcuL21vY2snO1xuXG50eXBlIFdhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8VE51bWJlcj47XG5cbmZ1bmN0aW9uIGdldEtleUlkKGs6IEtleWNoYWluQmFzZTU4KTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFNlZWQoay5wdWIpLnRvU3RyaW5nKCdoZXgnKTtcbn1cblxuZnVuY3Rpb24gbm9ja1dhbGxldChjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXRJZDogc3RyaW5nLCB3YWxsZXRLZXlzOiBUcmlwbGU8S2V5Y2hhaW5CYXNlNTg+KTogbm9jay5TY29wZVtdIHtcbiAgcmV0dXJuIFtcbiAgICBub2NrQml0R28oKVxuICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7d2FsbGV0SWR9YClcbiAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgaWQ6IHdhbGxldElkLFxuICAgICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICAgIGxhYmVsOiAnY3Jvc3NDaGFpblJlY292ZXJ5JyxcbiAgICAgICAga2V5czogd2FsbGV0S2V5cy5tYXAoKGspID0+IGdldEtleUlkKGspKSxcbiAgICAgIH0pXG4gICAgICAucGVyc2lzdCgpLFxuICAgIC4uLndhbGxldEtleXMubWFwKChrKSA9PlxuICAgICAgbm9ja0JpdEdvKClcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7Z2V0S2V5SWQoayl9YClcbiAgICAgICAgLnJlcGx5KDIwMCwgaylcbiAgICAgICAgLnBlcnNpc3QoKVxuICAgICksXG4gIF07XG59XG5cbnR5cGUgQWRkcmVzcyA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gbm9ja1dhbGxldEFkZHJlc3MoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0SWQ6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IG5vY2suU2NvcGUge1xuICByZXR1cm4gbm9ja0JpdEdvKClcbiAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH0vYWRkcmVzcy8ke2FkZHJlc3MuYWRkcmVzc31gKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGFkZHJlc3M6IGFkZHJlc3MuYWRkcmVzcyxcbiAgICAgIGNoYWluOiBhZGRyZXNzLmNoYWluLFxuICAgICAgaW5kZXg6IGFkZHJlc3MuaW5kZXgsXG4gICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICB3YWxsZXQ6IHdhbGxldElkLFxuICAgIH0pXG4gICAgLnBlcnNpc3QoKTtcbn1cblxuLyoqXG4gKiBTZXR1cCB0ZXN0IGZvciBjcm9zcy1jaGFpbiByZWNvdmVyeS5cbiAqXG4gKiBVc2VycyBjYW4gcmVjZWl2ZSBkZXBvc2l0cyBvbiB3YWxsZXQgYWRkcmVzc2VzIHRoYXQgYXJlIG9uIGEgZGlmZmVyZW50IGNoYWluLlxuICpcbiAqIEZvciBpbnN0YW5jZSwgYSB1c2VyIGNhbiByZWNlaXZlIGxpdGVjb2luIG9uIGEgYml0Y29pbiB3YWxsZXQuXG4gKiBUaGlzIG1lYW5zIHRoYXQgdGhlIGxpdGVjb2luIGJsb2NrY2hhaW4gaGFzIGEgdHJhbnNhY3Rpb24gd2l0aCBvdXRwdXRzIHRoYXQgYXJlIHNwZW5kYWJsZVxuICogd2l0aCBrZXlzIHRoYXQgd2VyZSBvcmlnaW5hbGx5IGNyZWF0ZWQgZm9yIGEgQml0R28gQlRDIHdhbGxldC5cbiAqIEluIHRoaXMgZXhhbXBsZSwgTFRDIGlzIHRoZSBcInNvdXJjZSBjb2luXCIgYW5kIEJUQyBpcyB0aGUgXCJyZWNvdmVyeSBjb2luXCJcbiAqIEluIGNhc2VzIGxpa2UgdGhlc2Ugd2UgbXVzdCB1c2UgY29uc3RydWN0IGEgdHJhbnNhY3Rpb24gZm9yIGxpdGVjb2luIG5ldHdvcmsgdXNpbmcga2V5cyBvZiB0aGVcbiAqIGJpdGNvaW4gd2FsbGV0LlxuICpcbiAqIEBwYXJhbSBzb3VyY2VDb2luIC0gdGhlIGNvaW4gdG8gY29uc3RydWN0IHRoZSB0cmFuc2FjdGlvbiBmb3JcbiAqIEBwYXJhbSByZWNvdmVyeUNvaW4gLSB0aGUgY29pbiB0aGUgcmVjZWl2aW5nIHdhbGxldCB3YXMgc2V0IHVwIGZvclxuICovXG5mdW5jdGlvbiBydW48VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gIGRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBbc291cmNlQ29pbj0ke3NvdXJjZUNvaW4uZ2V0Q2hhaW4oKX0gcmVjb3ZlcnlDb2luPSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB3YWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcbiAgICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcbiAgICAvLyB0aGUgYWRkcmVzcyB0aGUgYWNjaWRlbnRhbCBkZXBvc2l0IHdlbnQgdG8sIGluIGJvdGggc291cmNlQ29pbiBhbmQgYWRkcmVzc0NvaW4gZm9ybWF0c1xuICAgIGNvbnN0IFtkZXBvc2l0QWRkcmVzc1NvdXJjZUNvaW4sIGRlcG9zaXRBZGRyZXNzUmVjb3ZlcnlDb2luXSA9IFtzb3VyY2VDb2luLCByZWNvdmVyeUNvaW5dLm1hcCgoY29pbikgPT4gKHtcbiAgICAgIGFkZHJlc3M6IGdlbmVyYXRlQWRkcmVzcyhjb2luLm5ldHdvcmssIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMCB9KSxcbiAgICAgIGNoYWluOiAwLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSkpO1xuICAgIGNvbnN0IGNoYWluID0gMDtcbiAgICBjb25zdCBpbmRleCA9IDE7XG4gICAgLy8gdGhlIGFkZHJlc3Mgd2hlcmUgd2Ugd2FudCB0byByZWNvdmVyIG91ciBmdW5kcyB0b1xuICAgIGNvbnN0IHJlY292ZXJ5QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5ldHdvcmssIHtcbiAgICAgIGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LFxuICAgICAgY2hhaW4sXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCBub2Nrczogbm9jay5TY29wZVtdID0gW107XG5cbiAgICBsZXQgZGVwb3NpdFR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPjtcblxuICAgIGZ1bmN0aW9uIGdldERlcG9zaXRVbnNwZW50cygpOiB1dHhvbGliLmJpdGdvLlVuc3BlbnQ8VE51bWJlcj5bXSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBtb2NrVW5zcGVudDxUTnVtYmVyPihcbiAgICAgICAgICBzb3VyY2VDb2luLm5ldHdvcmssXG4gICAgICAgICAgd2FsbGV0S2V5cyxcbiAgICAgICAgICAncDJzaCcsXG4gICAgICAgICAgMCxcbiAgICAgICAgICAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IEJpZ0ludCgnMTA5OTk5OTk4MDAwMDAwMDEnKSA6IDFlOCkgYXMgVE51bWJlclxuICAgICAgICApLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXREZXBvc2l0VHJhbnNhY3Rpb24oKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZUZ1bGxTaWduZWRUcmFuc2FjdGlvbjxUTnVtYmVyPihcbiAgICAgICAgc291cmNlQ29pbi5uZXR3b3JrLFxuICAgICAgICBnZXREZXBvc2l0VW5zcGVudHMoKSxcbiAgICAgICAgZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsXG4gICAgICAgIGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyKClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYmVmb3JlKCdwcmVwYXJlIGRlcG9zaXQgdHgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBkZXBvc2l0VHggPSBnZXREZXBvc2l0VHJhbnNhY3Rpb24oKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGdldFJlY292ZXJ5VW5zcGVudHMoKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogZGVwb3NpdFR4LmdldElkKCksXG4gICAgICAgICAgYWRkcmVzczogZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsXG4gICAgICAgICAgY2hhaW46IGNoYWluLFxuICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICB2YWx1ZTogZGVwb3NpdFR4Lm91dHNbMF0udmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGJlZm9yZSgnc2V0dXAgbm9ja3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBub2Nrcy5wdXNoKC4uLm5vY2tXYWxsZXQocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBrZXljaGFpbnNCYXNlNTgpKTtcbiAgICAgIG5vY2tzLnB1c2gobm9ja1dhbGxldEFkZHJlc3MocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBkZXBvc2l0QWRkcmVzc1JlY292ZXJ5Q29pbikpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9ja3MuZm9yRWFjaCgobikgPT4gbi5kb25lKCkpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9jay5jbGVhbkFsbCgpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHRlc3RNYXRjaEZpeHR1cmUoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBnZXRSZWNvdmVyeVJlc3VsdDogKCkgPT4gQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+IHwgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj5cbiAgICApIHtcbiAgICAgIGl0KGBzaG91bGQgbWF0Y2ggZml4dHVyZSAoJHtuYW1lfSlgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlY292ZXJ5ID0gZ2V0UmVjb3ZlcnlSZXN1bHQoKTtcbiAgICAgICAgbGV0IHJlY292ZXJ5T2JqID0ge1xuICAgICAgICAgIC4uLnJlY292ZXJ5LFxuICAgICAgICAgIHR4OiB0cmFuc2FjdGlvbkhleFRvT2JqKHJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZywgc291cmNlQ29pbi5uZXR3b3JrLCBzb3VyY2VDb2luLmFtb3VudFR5cGUpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50Jykge1xuICAgICAgICAgIHJlY292ZXJ5T2JqID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHJlY292ZXJ5T2JqLCAoaywgdikgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHNob3VsZEVxdWFsSlNPTihcbiAgICAgICAgICByZWNvdmVyeU9iaixcbiAgICAgICAgICBhd2FpdCBnZXRGaXh0dXJlKHNvdXJjZUNvaW4sIGByZWNvdmVyeS9jcm9zc0NoYWluUmVjb3ZlcnktJHtyZWNvdmVyeUNvaW4uZ2V0Q2hhaW4oKX0tJHtuYW1lfWAsIHJlY292ZXJ5T2JqKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tSZWNvdmVyeVRyYW5zYWN0aW9uU2lnbmF0dXJlKHR4OiBzdHJpbmcgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPikge1xuICAgICAgaWYgKHR5cGVvZiB0eCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyPihCdWZmZXIuZnJvbSh0eCwgJ2hleCcpLCBzb3VyY2VDb2luLm5ldHdvcmssIHtcbiAgICAgICAgICBhbW91bnRUeXBlOiBzb3VyY2VDb2luLmFtb3VudFR5cGUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgdW5zcGVudHMgPSBnZXRSZWNvdmVyeVVuc3BlbnRzKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5zLmxlbmd0aCwgdW5zcGVudHMubGVuZ3RoKTtcbiAgICAgIHR4Lmlucy5mb3JFYWNoKChpbnB1dCwgaSkgPT4ge1xuICAgICAgICBhc3NlcnQub2sodHlwZW9mIHR4ICE9PSAnc3RyaW5nJyk7XG4gICAgICAgIHV0eG9saWIuYml0Z29cbiAgICAgICAgICAudmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQ8VE51bWJlcj4odHgsIGksIGdldFJlY292ZXJ5VW5zcGVudHMoKSwgd2FsbGV0S2V5cylcbiAgICAgICAgICAuc2hvdWxkLmVxbChbdHJ1ZSwgZmFsc2UsIGZhbHNlXSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnc2hvdWxkIHRlc3Qgc2lnbmVkIGNyb3NzIGNoYWluIHJlY292ZXJ5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIgPSBzaW5vblxuICAgICAgICAuc3R1YihBYnN0cmFjdFV0eG9Db2luLnByb3RvdHlwZSwgJ2dldFJlY292ZXJ5UHJvdmlkZXInKVxuICAgICAgICAucmV0dXJucyhuZXcgTW9ja0Nyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyPFROdW1iZXI+KHNvdXJjZUNvaW4sIGdldERlcG9zaXRVbnNwZW50cygpLCBkZXBvc2l0VHgpKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcmVjb3ZlcnlDb2luLFxuICAgICAgICB0eGlkOiBkZXBvc2l0VHguZ2V0SWQoKSxcbiAgICAgICAgcmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgICB3YWxsZXQ6IHJlY292ZXJ5V2FsbGV0SWQsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHhwcnY6IGtleWNoYWluc0Jhc2U1OFswXS5wcnYsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+O1xuICAgICAgc2hvdWxkLmVxdWFsKGdldFJlY292ZXJ5UHJvdmlkZXJTdHViLmNhbGxDb3VudCwgMSk7XG5cbiAgICAgIHRlc3RNYXRjaEZpeHR1cmUoJ3NpZ25lZCcsICgpID0+IHNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIHZhbGlkIHNpZ25hdHVyZXMgZm9yIHNpZ25lZCByZWNvdmVyeScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2hlY2tSZWNvdmVyeVRyYW5zYWN0aW9uU2lnbmF0dXJlKHNpZ25lZFJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGVzdCB1bnNpZ25lZCBjcm9zcyBjaGFpbiByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGdldFJlY292ZXJ5UHJvdmlkZXJTdHViID0gc2lub25cbiAgICAgICAgLnN0dWIoQWJzdHJhY3RVdHhvQ29pbi5wcm90b3R5cGUsICdnZXRSZWNvdmVyeVByb3ZpZGVyJylcbiAgICAgICAgLnJldHVybnMobmV3IE1vY2tDcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyPihzb3VyY2VDb2luLCBnZXREZXBvc2l0VW5zcGVudHMoKSwgZGVwb3NpdFR4KSk7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJlY292ZXJ5Q29pbixcbiAgICAgICAgdHhpZDogZGVwb3NpdFR4LmdldElkKCksXG4gICAgICAgIHJlY292ZXJ5QWRkcmVzcyxcbiAgICAgICAgd2FsbGV0OiByZWNvdmVyeVdhbGxldElkLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVuc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHNpZ25lZDogZmFsc2UsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj47XG4gICAgICBzaG91bGQuZXF1YWwoZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIuY2FsbENvdW50LCAxKTtcblxuICAgICAgdGVzdE1hdGNoRml4dHVyZSgndW5zaWduZWQnLCAoKSA9PiB1bnNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgaXQoJ3Nob3VsZCBiZSBzaWduYWJsZSBmb3IgdW5zaWduZWQgcmVjb3ZlcnknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgc291cmNlQ29pbi5zaWduVHJhbnNhY3Rpb248VE51bWJlcj4oe1xuICAgICAgICAgIHR4UHJlYnVpbGQ6IHVuc2lnbmVkUmVjb3ZlcnksXG4gICAgICAgICAgcHJ2OiBrZXljaGFpbnNCYXNlNThbMF0ucHJ2LFxuICAgICAgICAgIHB1YnM6IGtleWNoYWluc0Jhc2U1OC5tYXAoKGspID0+IGsucHViKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICAgICAgfSk7XG4gICAgICAgIGNoZWNrUmVjb3ZlcnlUcmFuc2FjdGlvblNpZ25hdHVyZSgoc2lnbmVkVHggYXMgeyB0eEhleDogc3RyaW5nIH0pLnR4SGV4KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNTdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3Zlcnkoc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3Zlcmllc1tzb3VyY2VDb2luLmdldEZhbWlseSgpXT8uaW5jbHVkZXMocmVjb3ZlcnlDb2luLmdldEZhbWlseSgpKTtcbn1cblxudXR4b0NvaW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgdXR4b0NvaW5zXG4gICAgLmZpbHRlcihcbiAgICAgIChvdGhlckNvaW4pID0+XG4gICAgICAgIGNvaW4gIT09IG90aGVyQ29pbiAmJlxuICAgICAgICBpc1N1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyeShjb2luLCBvdGhlckNvaW4pICYmXG4gICAgICAgICgodXR4b2xpYi5pc01haW5uZXQoY29pbi5uZXR3b3JrKSAmJiB1dHhvbGliLmlzTWFpbm5ldChvdGhlckNvaW4ubmV0d29yaykpIHx8XG4gICAgICAgICAgKHV0eG9saWIuaXNUZXN0bmV0KGNvaW4ubmV0d29yaykgJiYgdXR4b2xpYi5pc1Rlc3RuZXQob3RoZXJDb2luLm5ldHdvcmspKSlcbiAgICApXG4gICAgLmZvckVhY2goKG90aGVyQ29pbikgPT4ge1xuICAgICAgaWYgKGNvaW4uYW1vdW50VHlwZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgcnVuPGJpZ2ludD4oY29pbiwgb3RoZXJDb2luKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJ1bihjb2luLCBvdGhlckNvaW4pO1xuICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBnZXRXYWxsZXRgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGJpdGdvID0gZGVmYXVsdEJpdEdvO1xuICBjb25zdCByZWNvdmVyeUNvaW4gPSBnZXRVdHhvQ29pbignYnRjJyk7XG4gIGNvbnN0IHJlY292ZXJ5V2FsbGV0SWQgPSAnNWFiYWNlYmUyOGQ3MmZiZDA3ZTBiOGNiYmEwZmYzOWUnO1xuXG4gIGl0KCdzaG91bGQgc2VhcmNoIHYxIHdhbGxldHMgaWYgdGhlIHYyIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggYSA0eHggZXJyb3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBbNDAwLCA0MDRdO1xuXG4gICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvclJlc3BvbnNlcykge1xuICAgICAgY29uc3Qgbm9ja1YyV2FsbGV0ID0gbm9ja0JpdEdvKGJpdGdvKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9L3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YClcbiAgICAgICAgLnJlcGx5KGVycm9yKTtcbiAgICAgIGNvbnN0IG5vY2tWMVdhbGxldCA9IG5vY2tCaXRHbyhiaXRnbykuZ2V0KGAvYXBpL3YxL3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YCkucmVwbHkoZXJyb3IpO1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoXG4gICAgICAgICgpID0+IGdldFdhbGxldChiaXRnbywgcmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkKSxcbiAgICAgICAgRXJyb3IoYGNvdWxkIG5vdCBnZXQgd2FsbGV0ICR7cmVjb3ZlcnlXYWxsZXRJZH0gZnJvbSB2MSBvciB2MjogQXBpUmVzcG9uc2VFcnJvcjogJHtlcnJvcn1gKVxuICAgICAgKTtcbiAgICAgIG5vY2tWMldhbGxldC5kb25lKCk7XG4gICAgICBub2NrVjFXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdjIgZW5kcG9pbnQgcmVzcG9uZHMgd2l0aCBhIDV4eCBlcnJvcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBlcnJvclJlc3BvbnNlcyA9IFs1MDBdO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JSZXNwb25zZXMpIHtcbiAgICAgIGNvbnN0IG5vY2tWMldhbGxldCA9IG5vY2tCaXRHbyhiaXRnbylcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke3JlY292ZXJ5Q29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApXG4gICAgICAgIC5yZXBseShlcnJvcik7XG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cygoKSA9PiBnZXRXYWxsZXQoYml0Z28sIHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCksIHtcbiAgICAgICAgbmFtZTogJ0FwaVJlc3BvbnNlRXJyb3InLFxuICAgICAgICBzdGF0dXM6IDUwMCxcbiAgICAgICAgcmVzdWx0OiB7fSxcbiAgICAgICAgaW52YWxpZFRva2VuOiBmYWxzZSxcbiAgICAgICAgbmVlZHNPVFA6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBub2NrVjJXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2NvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGx0Y05ldHdvcmsgPSB1dHhvbGliLm5ldHdvcmtzLmxpdGVjb2luO1xuXG4gIGl0KCdzaG91bGQgY29udmVydCBNLi4uIFAyU0ggYWRkcmVzcyB0byAzLi4uIGxlZ2FjeSBmb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVGhlc2UgdHdvIGFkZHJlc3NlcyByZXByZXNlbnQgdGhlIHNhbWUgdW5kZXJseWluZyBzY3JpcHQgaGFzaDpcbiAgICAvLyAtIE1OUTd6a2dNc2FWNjdyc2pBM0p1UDU5UkM1d3hSWHB3Z0UgaXMgdGhlIExUQyBmb3JtYXQgKHNjcmlwdEhhc2ggMHgzMilcbiAgICAvLyAtIDNHQnlnc0dQdlRkZktNYnE0QUtaWlJ1MXNQTVdQRXNCZmQgaXMgdGhlIEJUQyBmb3JtYXQgKHNjcmlwdEhhc2ggMHgwNSlcbiAgICBjb25zdCBsdGNBZGRyZXNzID0gJ01OUTd6a2dNc2FWNjdyc2pBM0p1UDU5UkM1d3hSWHB3Z0UnO1xuICAgIGNvbnN0IGV4cGVjdGVkTGVnYWN5QWRkcmVzcyA9ICczR0J5Z3NHUHZUZGZLTWJxNEFLWlpSdTFzUE1XUEVzQmZkJztcblxuICAgIGNvbnN0IGxlZ2FjeUFkZHJlc3MgPSBjb252ZXJ0THRjQWRkcmVzc1RvTGVnYWN5Rm9ybWF0KGx0Y0FkZHJlc3MsIGx0Y05ldHdvcmspO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChsZWdhY3lBZGRyZXNzLCBleHBlY3RlZExlZ2FjeUFkZHJlc3MpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNvbnZlcnQgTUQ2OFBzZGhlS3hjWXNyVkx5WlJYZ29TRExuQjFNZFZ0RSB0byBsZWdhY3kgZm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSAnTUQ2OFBzZGhlS3hjWXNyVkx5WlJYZ29TRExuQjFNZFZ0RSc7XG4gICAgY29uc3QgbGVnYWN5QWRkcmVzcyA9IGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQoYWRkcmVzcywgbHRjTmV0d29yayk7XG5cbiAgICAvLyBTaG91bGQgc3RhcnQgd2l0aCAnMycgKGxlZ2FjeSBCVEMgUDJTSCBmb3JtYXQpXG4gICAgYXNzZXJ0Lm9rKGxlZ2FjeUFkZHJlc3Muc3RhcnRzV2l0aCgnMycpLCBgRXhwZWN0ZWQgYWRkcmVzcyB0byBzdGFydCB3aXRoICczJywgZ290OiAke2xlZ2FjeUFkZHJlc3N9YCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IG1vZGlmeSBiZWNoMzIgYWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJlY2gzMkFkZHJlc3MgPSAnbHRjMXFncmw4enBuZHNrbGFhOXN3Z2Q1dmV2eXhteDV4NjN2Y3JsN2RrNCc7XG4gICAgY29uc3QgcmVzdWx0ID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdChiZWNoMzJBZGRyZXNzLCBsdGNOZXR3b3JrKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LCBiZWNoMzJBZGRyZXNzKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signPsbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signPsbt.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/transaction/fixedScript/signPsbt.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const strict_1 = __importDefault(require("node:assert/strict"));
40
+ const utxolib = __importStar(require("@bitgo/utxo-lib"));
41
+ const signPsbt_1 = require("../../../../src/transaction/fixedScript/signPsbt");
42
+ function describeSignPsbtWithMusig2Participant(acidTest) {
43
+ describe(`${acidTest.name}`, function () {
44
+ it('should sign unsigned psbt to halfsigned', async function () {
45
+ // Create unsigned PSBT
46
+ const psbt = acidTest.createPsbt();
47
+ // Create mock Musig2Participant that sets BitGo nonces
48
+ const mockCoin = {
49
+ async getMusig2Nonces(psbt, walletId) {
50
+ psbt.setAllInputsMusig2NonceHD(acidTest.rootWalletKeys.bitgo, { deterministic: true });
51
+ return psbt;
52
+ },
53
+ };
54
+ // Sign with user key through signPsbtWithMusig2Participant
55
+ const result = await (0, signPsbt_1.signPsbtWithMusig2Participant)(mockCoin, psbt, acidTest.rootWalletKeys.user, {
56
+ isLastSignature: false,
57
+ signingStep: undefined,
58
+ walletId: 'test-wallet-id',
59
+ });
60
+ // Result should be a PSBT (not finalized)
61
+ (0, strict_1.default)(result instanceof utxolib.bitgo.UtxoPsbt, 'should return UtxoPsbt when not last signature');
62
+ // Verify that all wallet inputs have been signed by user key
63
+ result.data.inputs.forEach((input, inputIndex) => {
64
+ const { scriptType } = utxolib.bitgo.parsePsbtInput(input);
65
+ // Skip replay protection inputs (p2shP2pk)
66
+ if (scriptType === 'p2shP2pk') {
67
+ return;
68
+ }
69
+ // Verify user signature is present
70
+ const isValid = result.validateSignaturesOfInputHD(inputIndex, acidTest.rootWalletKeys.user);
71
+ (0, strict_1.default)(isValid, `input ${inputIndex} should have valid user signature`);
72
+ });
73
+ });
74
+ });
75
+ }
76
+ describe('signPsbtWithMusig2Participant', function () {
77
+ // Create test suite with includeP2trMusig2ScriptPath set to false
78
+ // p2trMusig2 script path inputs are signed by user and backup keys,
79
+ // which is not the typical signing pattern and makes testing more complex
80
+ utxolib.testutil.AcidTest.suite({ includeP2trMusig2ScriptPath: false })
81
+ .filter((test) => test.signStage === 'unsigned')
82
+ .forEach((test) => {
83
+ describeSignPsbtWithMusig2Participant(test);
84
+ });
85
+ });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBd0M7QUFFeEMseURBQTJDO0FBRTNDLCtFQUFvSDtBQUVwSCxTQUFTLHFDQUFxQyxDQUFDLFFBQW1DO0lBQ2hGLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUMzQixFQUFFLENBQUMseUNBQXlDLEVBQUUsS0FBSztZQUNqRCx1QkFBdUI7WUFDdkIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRW5DLHVEQUF1RDtZQUN2RCxNQUFNLFFBQVEsR0FBc0I7Z0JBQ2xDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBNEIsRUFBRSxRQUFnQjtvQkFDbEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ3ZGLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7YUFDRixDQUFDO1lBRUYsMkRBQTJEO1lBQzNELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSx3Q0FBNkIsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFO2dCQUMvRixlQUFlLEVBQUUsS0FBSztnQkFDdEIsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0IsQ0FBQyxDQUFDO1lBRUgsMENBQTBDO1lBQzFDLElBQUEsZ0JBQU0sRUFBQyxNQUFNLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsZ0RBQWdELENBQUMsQ0FBQztZQUVuRyw2REFBNkQ7WUFDN0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO2dCQUMvQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRTNELDJDQUEyQztnQkFDM0MsSUFBSSxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQzlCLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxtQ0FBbUM7Z0JBQ25DLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0YsSUFBQSxnQkFBTSxFQUFDLE9BQU8sRUFBRSxTQUFTLFVBQVUsbUNBQW1DLENBQUMsQ0FBQztZQUMxRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsUUFBUSxDQUFDLCtCQUErQixFQUFFO0lBQ3hDLGtFQUFrRTtJQUNsRSxvRUFBb0U7SUFDcEUsMEVBQTBFO0lBQzFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3BFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUM7U0FDL0MsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDaEIscUNBQXFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQvc3RyaWN0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQgeyBNdXNpZzJQYXJ0aWNpcGFudCwgc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblBzYnQnO1xuXG5mdW5jdGlvbiBkZXNjcmliZVNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50KGFjaWRUZXN0OiB1dHhvbGliLnRlc3R1dGlsLkFjaWRUZXN0KSB7XG4gIGRlc2NyaWJlKGAke2FjaWRUZXN0Lm5hbWV9YCwgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgc2lnbiB1bnNpZ25lZCBwc2J0IHRvIGhhbGZzaWduZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBDcmVhdGUgdW5zaWduZWQgUFNCVFxuICAgICAgY29uc3QgcHNidCA9IGFjaWRUZXN0LmNyZWF0ZVBzYnQoKTtcblxuICAgICAgLy8gQ3JlYXRlIG1vY2sgTXVzaWcyUGFydGljaXBhbnQgdGhhdCBzZXRzIEJpdEdvIG5vbmNlc1xuICAgICAgY29uc3QgbW9ja0NvaW46IE11c2lnMlBhcnRpY2lwYW50ID0ge1xuICAgICAgICBhc3luYyBnZXRNdXNpZzJOb25jZXMocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCwgd2FsbGV0SWQ6IHN0cmluZyk6IFByb21pc2U8dXR4b2xpYi5iaXRnby5VdHhvUHNidD4ge1xuICAgICAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChhY2lkVGVzdC5yb290V2FsbGV0S2V5cy5iaXRnbywgeyBkZXRlcm1pbmlzdGljOiB0cnVlIH0pO1xuICAgICAgICAgIHJldHVybiBwc2J0O1xuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgLy8gU2lnbiB3aXRoIHVzZXIga2V5IHRocm91Z2ggc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50KG1vY2tDb2luLCBwc2J0LCBhY2lkVGVzdC5yb290V2FsbGV0S2V5cy51c2VyLCB7XG4gICAgICAgIGlzTGFzdFNpZ25hdHVyZTogZmFsc2UsXG4gICAgICAgIHNpZ25pbmdTdGVwOiB1bmRlZmluZWQsXG4gICAgICAgIHdhbGxldElkOiAndGVzdC13YWxsZXQtaWQnLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFJlc3VsdCBzaG91bGQgYmUgYSBQU0JUIChub3QgZmluYWxpemVkKVxuICAgICAgYXNzZXJ0KHJlc3VsdCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQsICdzaG91bGQgcmV0dXJuIFV0eG9Qc2J0IHdoZW4gbm90IGxhc3Qgc2lnbmF0dXJlJyk7XG5cbiAgICAgIC8vIFZlcmlmeSB0aGF0IGFsbCB3YWxsZXQgaW5wdXRzIGhhdmUgYmVlbiBzaWduZWQgYnkgdXNlciBrZXlcbiAgICAgIHJlc3VsdC5kYXRhLmlucHV0cy5mb3JFYWNoKChpbnB1dCwgaW5wdXRJbmRleCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNjcmlwdFR5cGUgfSA9IHV0eG9saWIuYml0Z28ucGFyc2VQc2J0SW5wdXQoaW5wdXQpO1xuXG4gICAgICAgIC8vIFNraXAgcmVwbGF5IHByb3RlY3Rpb24gaW5wdXRzIChwMnNoUDJwaylcbiAgICAgICAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWZXJpZnkgdXNlciBzaWduYXR1cmUgaXMgcHJlc2VudFxuICAgICAgICBjb25zdCBpc1ZhbGlkID0gcmVzdWx0LnZhbGlkYXRlU2lnbmF0dXJlc09mSW5wdXRIRChpbnB1dEluZGV4LCBhY2lkVGVzdC5yb290V2FsbGV0S2V5cy51c2VyKTtcbiAgICAgICAgYXNzZXJ0KGlzVmFsaWQsIGBpbnB1dCAke2lucHV0SW5kZXh9IHNob3VsZCBoYXZlIHZhbGlkIHVzZXIgc2lnbmF0dXJlYCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmRlc2NyaWJlKCdzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudCcsIGZ1bmN0aW9uICgpIHtcbiAgLy8gQ3JlYXRlIHRlc3Qgc3VpdGUgd2l0aCBpbmNsdWRlUDJ0ck11c2lnMlNjcmlwdFBhdGggc2V0IHRvIGZhbHNlXG4gIC8vIHAydHJNdXNpZzIgc2NyaXB0IHBhdGggaW5wdXRzIGFyZSBzaWduZWQgYnkgdXNlciBhbmQgYmFja3VwIGtleXMsXG4gIC8vIHdoaWNoIGlzIG5vdCB0aGUgdHlwaWNhbCBzaWduaW5nIHBhdHRlcm4gYW5kIG1ha2VzIHRlc3RpbmcgbW9yZSBjb21wbGV4XG4gIHV0eG9saWIudGVzdHV0aWwuQWNpZFRlc3Quc3VpdGUoeyBpbmNsdWRlUDJ0ck11c2lnMlNjcmlwdFBhdGg6IGZhbHNlIH0pXG4gICAgLmZpbHRlcigodGVzdCkgPT4gdGVzdC5zaWduU3RhZ2UgPT09ICd1bnNpZ25lZCcpXG4gICAgLmZvckVhY2goKHRlc3QpID0+IHtcbiAgICAgIGRlc2NyaWJlU2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnQodGVzdCk7XG4gICAgfSk7XG59KTtcbiJdfQ==