@bitgo-beta/abstract-utxo 1.6.1-alpha.456 → 1.6.1-alpha.458

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 (156) hide show
  1. package/dist/cjs/src/abstractUtxoCoin.d.ts +4 -1
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/cjs/src/abstractUtxoCoin.js +14 -11
  4. package/dist/cjs/src/address/fixedScript.d.ts +4 -4
  5. package/dist/cjs/src/address/fixedScript.d.ts.map +1 -1
  6. package/dist/cjs/src/address/fixedScript.js +13 -11
  7. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
  8. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  9. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +4 -2
  10. package/dist/cjs/src/names.d.ts +2 -0
  11. package/dist/cjs/src/names.d.ts.map +1 -1
  12. package/dist/cjs/src/names.js +9 -1
  13. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts +2 -1
  14. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -1
  15. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +3 -5
  16. package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts +2 -1
  17. package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts.map +1 -1
  18. package/dist/cjs/src/offlineVault/TransactionExplanation.js +3 -4
  19. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +3 -2
  20. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -1
  21. package/dist/cjs/src/offlineVault/descriptor/transaction.js +6 -3
  22. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  23. package/dist/cjs/src/recovery/backupKeyRecovery.js +8 -7
  24. package/dist/cjs/src/recovery/crossChainRecovery.d.ts +3 -2
  25. package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
  26. package/dist/cjs/src/recovery/crossChainRecovery.js +7 -6
  27. package/dist/cjs/src/recovery/psbt.d.ts +3 -2
  28. package/dist/cjs/src/recovery/psbt.d.ts.map +1 -1
  29. package/dist/cjs/src/recovery/psbt.js +5 -4
  30. package/dist/cjs/src/transaction/bip322.d.ts.map +1 -1
  31. package/dist/cjs/src/transaction/bip322.js +26 -11
  32. package/dist/cjs/src/transaction/decode.d.ts +4 -3
  33. package/dist/cjs/src/transaction/decode.d.ts.map +1 -1
  34. package/dist/cjs/src/transaction/decode.js +8 -5
  35. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -1
  36. package/dist/cjs/src/transaction/descriptor/explainPsbt.js +7 -5
  37. package/dist/cjs/src/transaction/descriptor/parse.d.ts +2 -1
  38. package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -1
  39. package/dist/cjs/src/transaction/descriptor/parse.js +14 -14
  40. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +2 -1
  41. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  42. package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +4 -4
  43. package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -1
  44. package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
  45. package/dist/cjs/src/transaction/explainTransaction.js +5 -5
  46. package/dist/cjs/src/transaction/fetchInputs.d.ts +2 -1
  47. package/dist/cjs/src/transaction/fetchInputs.d.ts.map +1 -1
  48. package/dist/cjs/src/transaction/fetchInputs.js +4 -2
  49. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +4 -4
  50. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  51. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +24 -19
  52. package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +3 -3
  53. package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts +6 -4
  54. package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -1
  55. package/dist/cjs/src/transaction/fixedScript/replayProtection.js +17 -49
  56. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +4 -2
  57. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
  58. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +6 -5
  59. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +2 -1
  60. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  61. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +4 -4
  62. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +2 -2
  63. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts +3 -3
  64. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts.map +1 -1
  65. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.js +6 -39
  66. package/dist/cjs/src/transaction/recipient.d.ts +4 -4
  67. package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
  68. package/dist/cjs/src/transaction/recipient.js +7 -4
  69. package/dist/cjs/src/transaction/signTransaction.js +2 -2
  70. package/dist/cjs/test/unit/address.js +9 -9
  71. package/dist/cjs/test/unit/bip322.js +319 -3
  72. package/dist/cjs/test/unit/customChangeWallet.js +2 -2
  73. package/dist/cjs/test/unit/prebuildAndSign.js +2 -2
  74. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +6 -7
  75. package/dist/cjs/test/unit/transaction/descriptor/parse.js +2 -2
  76. package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +7 -10
  77. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +4 -5
  78. package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.js +3 -2
  79. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +5 -6
  80. package/dist/cjs/test/unit/transaction.js +23 -24
  81. package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -1
  82. package/dist/cjs/test/unit/util/unspents.js +4 -2
  83. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  84. package/dist/esm/abstractUtxoCoin.d.ts +4 -1
  85. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
  86. package/dist/esm/abstractUtxoCoin.js +16 -13
  87. package/dist/esm/address/fixedScript.d.ts +4 -4
  88. package/dist/esm/address/fixedScript.d.ts.map +1 -1
  89. package/dist/esm/address/fixedScript.js +13 -11
  90. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
  91. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  92. package/dist/esm/descriptor/assertDescriptorWalletAddress.js +4 -2
  93. package/dist/esm/names.d.ts +2 -0
  94. package/dist/esm/names.d.ts.map +1 -1
  95. package/dist/esm/names.js +7 -1
  96. package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts +2 -1
  97. package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -1
  98. package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +3 -5
  99. package/dist/esm/offlineVault/TransactionExplanation.d.ts +2 -1
  100. package/dist/esm/offlineVault/TransactionExplanation.d.ts.map +1 -1
  101. package/dist/esm/offlineVault/TransactionExplanation.js +3 -4
  102. package/dist/esm/offlineVault/descriptor/transaction.d.ts +3 -2
  103. package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -1
  104. package/dist/esm/offlineVault/descriptor/transaction.js +6 -3
  105. package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -1
  106. package/dist/esm/recovery/backupKeyRecovery.js +8 -7
  107. package/dist/esm/recovery/crossChainRecovery.d.ts +3 -2
  108. package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
  109. package/dist/esm/recovery/crossChainRecovery.js +8 -7
  110. package/dist/esm/recovery/psbt.d.ts +3 -2
  111. package/dist/esm/recovery/psbt.d.ts.map +1 -1
  112. package/dist/esm/recovery/psbt.js +5 -4
  113. package/dist/esm/transaction/bip322.d.ts.map +1 -1
  114. package/dist/esm/transaction/bip322.js +27 -12
  115. package/dist/esm/transaction/decode.d.ts +4 -3
  116. package/dist/esm/transaction/decode.d.ts.map +1 -1
  117. package/dist/esm/transaction/decode.js +8 -5
  118. package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -1
  119. package/dist/esm/transaction/descriptor/explainPsbt.js +7 -5
  120. package/dist/esm/transaction/descriptor/parse.d.ts +2 -1
  121. package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -1
  122. package/dist/esm/transaction/descriptor/parse.js +14 -14
  123. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +2 -1
  124. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  125. package/dist/esm/transaction/descriptor/verifyTransaction.js +4 -4
  126. package/dist/esm/transaction/explainTransaction.d.ts +2 -1
  127. package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
  128. package/dist/esm/transaction/explainTransaction.js +5 -5
  129. package/dist/esm/transaction/fetchInputs.d.ts +2 -1
  130. package/dist/esm/transaction/fetchInputs.d.ts.map +1 -1
  131. package/dist/esm/transaction/fetchInputs.js +4 -2
  132. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +4 -4
  133. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  134. package/dist/esm/transaction/fixedScript/explainTransaction.js +24 -19
  135. package/dist/esm/transaction/fixedScript/parseTransaction.js +3 -3
  136. package/dist/esm/transaction/fixedScript/replayProtection.d.ts +6 -4
  137. package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -1
  138. package/dist/esm/transaction/fixedScript/replayProtection.js +17 -16
  139. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +4 -2
  140. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
  141. package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +6 -5
  142. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +2 -1
  143. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  144. package/dist/esm/transaction/fixedScript/signTransaction.js +4 -4
  145. package/dist/esm/transaction/fixedScript/verifyTransaction.js +2 -2
  146. package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts +3 -3
  147. package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts.map +1 -1
  148. package/dist/esm/transaction/getPayGoVerificationPubkey.js +6 -6
  149. package/dist/esm/transaction/recipient.d.ts +4 -4
  150. package/dist/esm/transaction/recipient.d.ts.map +1 -1
  151. package/dist/esm/transaction/recipient.js +7 -4
  152. package/dist/esm/transaction/signTransaction.js +2 -2
  153. package/package.json +12 -12
  154. package/dist/cjs/test/unit/transaction/fixedScript/util.d.ts +0 -3
  155. package/dist/cjs/test/unit/transaction/fixedScript/util.d.ts.map +0 -1
  156. package/dist/cjs/test/unit/transaction/fixedScript/util.js +0 -41
@@ -53,12 +53,13 @@ function isTaprootChain(chain) {
53
53
  return (chainCodesP2tr.includes(chain) || chainCodesP2trMusig2.includes(chain));
54
54
  }
55
55
  /**
56
- * Convert utxolib Network to wasm-utxo network name
56
+ * Convert coin name to wasm-utxo network name
57
57
  */
58
- function toNetworkName(network) {
58
+ function toNetworkName(coinName) {
59
+ const network = (0, names_1.getNetworkFromCoinName)(coinName);
59
60
  const networkName = utxolib.getNetworkName(network);
60
61
  if (!networkName) {
61
- throw new Error(`Invalid network`);
62
+ throw new Error(`Invalid coinName: ${coinName}`);
62
63
  }
63
64
  return networkName;
64
65
  }
@@ -261,4 +262,4 @@ function getRecoveryAmount(psbt, walletKeys, address) {
261
262
  }
262
263
  throw new Error('Invalid PSBT type');
263
264
  }
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZWNvdmVyeS9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJBLHdDQUlDO0FBS0Qsc0NBTUM7QUFnSEQsa0RBY0M7QUFVRCw4REE0QkM7QUFXRCxrREFRQztBQVNELGtEQVNDO0FBc0RELGtFQWdCQztBQUVELDhDQXNCQztBQTdVRCw4REFBZ0Q7QUFDaEQsbURBQWtEO0FBQ2xELGdEQUFzRztBQUV0RyxvQ0FBa0Q7QUFLbEQsTUFBTSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFXL0Q7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBZ0I7SUFDN0MsT0FBTyxDQUNKLGNBQW9DLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFLLG9CQUEwQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDckgsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxPQUF3QjtJQUNwRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLHNCQUF1QixTQUFRLEtBQUs7SUFDeEMsWUFDUyxnQkFBd0IsRUFDeEIsY0FBc0IsRUFDdEIsTUFBYyxFQUNkLGNBQXNCO1FBRTdCLEtBQUssQ0FDSCxpRkFBaUY7WUFDL0UsK0JBQStCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJO1lBQzlELHVEQUF1RCxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbEYs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QyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxJQUFJLFlBQVksNkJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMgfSBmcm9tICdAYml0Z28tYmV0YS91bnNwZW50cyc7XG5pbXBvcnQgeyBDb2luTmFtZSwgZml4ZWRTY3JpcHRXYWxsZXQsIHV0eG9saWJDb21wYXQsIGFkZHJlc3MgYXMgd2FzbUFkZHJlc3MgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgZ2V0TmV0d29ya0Zyb21Db2luTmFtZSB9IGZyb20gJy4uL25hbWVzJztcblxudHlwZSBSb290V2FsbGV0S2V5cyA9IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXM7XG50eXBlIFdhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gPSB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8VE51bWJlcj47XG5cbmNvbnN0IHsgY2hhaW5Db2Rlc1AydHIsIGNoYWluQ29kZXNQMnRyTXVzaWcyIH0gPSB1dHhvbGliLmJpdGdvO1xuXG50eXBlIENoYWluQ29kZSA9IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlO1xuXG4vKipcbiAqIEJhY2tlbmQgdG8gdXNlIGZvciBQU0JUIGNyZWF0aW9uLlxuICogLSAnd2FzbS11dHhvJzogVXNlIHdhc20tdXR4byBmb3IgUFNCVCBjcmVhdGlvbiAoZGVmYXVsdClcbiAqIC0gJ3V0eG9saWInOiBVc2UgdXR4b2xpYiBmb3IgUFNCVCBjcmVhdGlvbiAobGVnYWN5KVxuICovXG5leHBvcnQgdHlwZSBQc2J0QmFja2VuZCA9ICd3YXNtLXV0eG8nIHwgJ3V0eG9saWInO1xuXG4vKipcbiAqIENoZWNrIGlmIGEgY2hhaW4gY29kZSBpcyBmb3IgYSB0YXByb290IHNjcmlwdCB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RhcHJvb3RDaGFpbihjaGFpbjogQ2hhaW5Db2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgKGNoYWluQ29kZXNQMnRyIGFzIHJlYWRvbmx5IG51bWJlcltdKS5pbmNsdWRlcyhjaGFpbikgfHwgKGNoYWluQ29kZXNQMnRyTXVzaWcyIGFzIHJlYWRvbmx5IG51bWJlcltdKS5pbmNsdWRlcyhjaGFpbilcbiAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHV0eG9saWIgTmV0d29yayB0byB3YXNtLXV0eG8gbmV0d29yayBuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05ldHdvcmtOYW1lKG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHV0eG9saWJDb21wYXQuVXR4b2xpYk5hbWUge1xuICBjb25zdCBuZXR3b3JrTmFtZSA9IHV0eG9saWIuZ2V0TmV0d29ya05hbWUobmV0d29yayk7XG4gIGlmICghbmV0d29ya05hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbmV0d29ya2ApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrTmFtZTtcbn1cblxuY2xhc3MgSW5zdWZmaWNpZW50RnVuZHNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRvdGFsSW5wdXRBbW91bnQ6IGJpZ2ludCxcbiAgICBwdWJsaWMgYXBwcm94aW1hdGVGZWU6IGJpZ2ludCxcbiAgICBwdWJsaWMga3JzRmVlOiBiaWdpbnQsXG4gICAgcHVibGljIHJlY292ZXJ5QW1vdW50OiBiaWdpbnRcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBgVGhpcyB3YWxsZXQncyBiYWxhbmNlIGlzIHRvbyBsb3cgdG8gcGF5IHRoZSBmZWVzIHNwZWNpZmllZCBieSB0aGUgS1JTIHByb3ZpZGVyLmAgK1xuICAgICAgICBgRXhpc3RpbmcgYmFsYW5jZSBvbiB3YWxsZXQ6ICR7dG90YWxJbnB1dEFtb3VudC50b1N0cmluZygpfS4gYCArXG4gICAgICAgIGBFc3RpbWF0ZWQgbmV0d29yayBmZWUgZm9yIHRoZSByZWNvdmVyeSB0cmFuc2FjdGlvbjogJHthcHByb3hpbWF0ZUZlZS50b1N0cmluZygpfWAgK1xuICAgICAgICBgS1JTIGZlZSB0byBwYXk6ICR7a3JzRmVlLnRvU3RyaW5nKCl9LiBgICtcbiAgICAgICAgYEFmdGVyIGRlZHVjdGluZyBmZWVzLCB5b3VyIHRvdGFsIHJlY292ZXJhYmxlIGJhbGFuY2UgaXMgJHtyZWNvdmVyeUFtb3VudC50b1N0cmluZygpfWBcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zIHtcbiAgZmVlUmF0ZVNhdFZCOiBudW1iZXI7XG4gIHJlY292ZXJ5RGVzdGluYXRpb246IHN0cmluZztcbiAga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlOiBiaWdpbnQ7XG4gIGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqIEJsb2NrIGhlaWdodCBmb3IgWmNhc2ggbmV0d29ya3MgKHJlcXVpcmVkIHRvIGRldGVybWluZSBjb25zZW5zdXMgYnJhbmNoIElEKSAqL1xuICBibG9ja0hlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBiYWNrdXAga2V5IHJlY292ZXJ5IFBTQlQgdXNpbmcgdXR4b2xpYiAobGVnYWN5IGltcGxlbWVudGF0aW9uKVxuICovXG5mdW5jdGlvbiBjcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRVdHhvbGliKFxuICBjb2luTmFtZTogQ29pbk5hbWUsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvcHRpb25zOiBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgY29uc3QgbmV0d29yayA9IGdldE5ldHdvcmtGcm9tQ29pbk5hbWUoY29pbk5hbWUpO1xuICBjb25zdCB7IGZlZVJhdGVTYXRWQiwgcmVjb3ZlcnlEZXN0aW5hdGlvbiwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCBrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcbiAgdXR4b2xpYi5iaXRnby5hZGRYcHVic1RvUHNidChwc2J0LCByb290V2FsbGV0S2V5cyk7XG4gIHVuc3BlbnRzLmZvckVhY2goKHVuc3BlbnQpID0+IHtcbiAgICB1dHhvbGliLmJpdGdvLmFkZFdhbGxldFVuc3BlbnRUb1BzYnQocHNidCwgdW5zcGVudCwgcm9vdFdhbGxldEtleXMsICd1c2VyJywgJ2JhY2t1cCcpO1xuICB9KTtcblxuICBsZXQgZGltZW5zaW9ucyA9IERpbWVuc2lvbnMuZnJvbVBzYnQocHNidCkucGx1cyhcbiAgICBEaW1lbnNpb25zLmZyb21PdXRwdXQoeyBzY3JpcHQ6IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChyZWNvdmVyeURlc3RpbmF0aW9uLCBuZXR3b3JrKSB9KVxuICApO1xuXG4gIGlmIChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgZGltZW5zaW9ucyA9IGRpbWVuc2lvbnMucGx1cyhcbiAgICAgIERpbWVuc2lvbnMuZnJvbU91dHB1dCh7XG4gICAgICAgIHNjcmlwdDogdXR4b2xpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MsIG5ldHdvcmspLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY29uc3QgYXBwcm94aW1hdGVGZWUgPSBCaWdJbnQoZGltZW5zaW9ucy5nZXRWU2l6ZSgpICogZmVlUmF0ZVNhdFZCKTtcbiAgY29uc3QgdG90YWxJbnB1dEFtb3VudCA9IHV0eG9saWIuYml0Z28udW5zcGVudFN1bSh1bnNwZW50cywgJ2JpZ2ludCcpO1xuICBjb25zdCByZWNvdmVyeUFtb3VudCA9IHRvdGFsSW5wdXRBbW91bnQgLSBhcHByb3hpbWF0ZUZlZSAtIGtleVJlY292ZXJ5U2VydmljZUZlZTtcblxuICBpZiAocmVjb3ZlcnlBbW91bnQgPCBCaWdJbnQoMCkpIHtcbiAgICB0aHJvdyBuZXcgSW5zdWZmaWNpZW50RnVuZHNFcnJvcih0b3RhbElucHV0QW1vdW50LCBhcHByb3hpbWF0ZUZlZSwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCByZWNvdmVyeUFtb3VudCk7XG4gIH1cblxuICBwc2J0LmFkZE91dHB1dCh7IHNjcmlwdDogdXR4b2xpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KHJlY292ZXJ5RGVzdGluYXRpb24sIG5ldHdvcmspLCB2YWx1ZTogcmVjb3ZlcnlBbW91bnQgfSk7XG5cbiAgaWYgKGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MpIHtcbiAgICBwc2J0LmFkZE91dHB1dCh7XG4gICAgICBzY3JpcHQ6IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzLCBuZXR3b3JrKSxcbiAgICAgIHZhbHVlOiBrZXlSZWNvdmVyeVNlcnZpY2VGZWUsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcHNidDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgbmV0d29yayBpcyBhIFpjYXNoIG5ldHdvcmtcbiAqL1xuZnVuY3Rpb24gaXNaY2FzaChjb2luTmFtZTogQ29pbk5hbWUpOiBjb2luTmFtZSBpcyAnemVjJyB8ICd0emVjJyB7XG4gIHJldHVybiBjb2luTmFtZSA9PT0gJ3plYycgfHwgY29pbk5hbWUgPT09ICd0emVjJztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGJsb2NrIGhlaWdodHMgZm9yIFpjYXNoIG5ldHdvcmtzIGlmIG5vdCBwcm92aWRlZC5cbiAqIFRoZXNlIHNob3VsZCBiZSBzZXQgdG8gYSBoZWlnaHQgYWZ0ZXIgdGhlIGxhdGVzdCBuZXR3b3JrIHVwZ3JhZGUuXG4gKiBUT0RPKEJUQy0yOTAxKTogZ2V0IHRoZSBoZWlnaHQgZnJvbSBibG9ja2NoYWlyIEFQSSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcuXG4gKi9cbmNvbnN0IFpDQVNIX0RFRkFVTFRfQkxPQ0tfSEVJR0hUUzogUmVjb3JkPCd6ZWMnIHwgJ3R6ZWMnLCBudW1iZXI+ID0ge1xuICB6ZWM6IDMxNDY0MDAsXG4gIHR6ZWM6IDM1MzY1MDAsXG59O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGFuIGVtcHR5IHdhc20tdXR4byBQU0JUXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRW1wdHlXYXNtUHNidE9wdGlvbnMge1xuICAvKiogQmxvY2sgaGVpZ2h0IGZvciBaY2FzaCBuZXR3b3JrcyAocmVxdWlyZWQgdG8gZGV0ZXJtaW5lIGNvbnNlbnN1cyBicmFuY2ggSUQpICovXG4gIGJsb2NrSGVpZ2h0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBlbXB0eSB3YXNtLXV0eG8gQml0R29Qc2J0IGZvciBhIGdpdmVuIG5ldHdvcmsuXG4gKiBIYW5kbGVzIFpjYXNoIG5ldHdvcmtzIHNwZWNpYWxseSBieSB1c2luZyBaY2FzaEJpdEdvUHNidC5cbiAqXG4gKiBAcGFyYW0gbmV0d29yayAtIFRoZSBuZXR3b3JrIGZvciB0aGUgUFNCVFxuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzIC0gVGhlIHdhbGxldCBrZXlzXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIHNldHRpbmdzIChlLmcuLCBibG9ja0hlaWdodCBmb3IgWmNhc2gpXG4gKiBAcmV0dXJucyBBIHdhc20tdXR4byBCaXRHb1BzYnQgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVtcHR5V2FzbVBzYnQoXG4gIGNvaW5OYW1lOiBDb2luTmFtZSxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBvcHRpb25zPzogQ3JlYXRlRW1wdHlXYXNtUHNidE9wdGlvbnNcbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGlmIChpc1pjYXNoKGNvaW5OYW1lKSkge1xuICAgIC8vIEZvciBaY2FzaCwgdXNlIFpjYXNoQml0R29Qc2J0IHdoaWNoIHJlcXVpcmVzIGJsb2NrIGhlaWdodCB0byBkZXRlcm1pbmUgY29uc2Vuc3VzIGJyYW5jaCBJRFxuICAgIGNvbnN0IGJsb2NrSGVpZ2h0ID0gb3B0aW9ucz8uYmxvY2tIZWlnaHQgPz8gWkNBU0hfREVGQVVMVF9CTE9DS19IRUlHSFRTW2NvaW5OYW1lXTtcbiAgICByZXR1cm4gZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hCaXRHb1BzYnQuY3JlYXRlRW1wdHkoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB7XG4gICAgICBibG9ja0hlaWdodCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuY3JlYXRlRW1wdHkoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzKTtcbn1cblxuLyoqXG4gKiBBZGQgd2FsbGV0IGlucHV0cyBmcm9tIHVuc3BlbnRzIHRvIGEgd2FzbS11dHhvIEJpdEdvUHNidC5cbiAqIEhhbmRsZXMgdGFwcm9vdCBpbnB1dHMgYnkgc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgc2lnblBhdGguXG4gKlxuICogQHBhcmFtIHdhc21Qc2J0IC0gVGhlIHdhc20tdXR4byBCaXRHb1BzYnQgdG8gYWRkIGlucHV0cyB0b1xuICogQHBhcmFtIHVuc3BlbnRzIC0gVGhlIHdhbGxldCB1bnNwZW50cyB0byBhZGQgYXMgaW5wdXRzXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXMgLSBUaGUgd2FsbGV0IGtleXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFdhbGxldElucHV0c1RvV2FzbVBzYnQoXG4gIHdhc21Qc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzXG4pOiB2b2lkIHtcbiAgdW5zcGVudHMuZm9yRWFjaCgodW5zcGVudCkgPT4ge1xuICAgIGNvbnN0IHsgdHhpZCwgdm91dCB9ID0gdXR4b2xpYi5iaXRnby5wYXJzZU91dHB1dElkKHVuc3BlbnQuaWQpO1xuICAgIGNvbnN0IHNpZ25QYXRoOiBmaXhlZFNjcmlwdFdhbGxldC5TaWduUGF0aCB8IHVuZGVmaW5lZCA9IGlzVGFwcm9vdENoYWluKHVuc3BlbnQuY2hhaW4pXG4gICAgICA/IHsgc2lnbmVyOiAndXNlcicsIGNvc2lnbmVyOiAnYmFja3VwJyB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIHByZXZUeCBtYXkgYmUgYWRkZWQgZHluYW1pY2FsbHkgaW4gYmFja3VwS2V5UmVjb3ZlcnkgZm9yIG5vbi1zZWd3aXQgaW5wdXRzXG4gICAgY29uc3QgcHJldlR4ID0gKHVuc3BlbnQgYXMgV2FsbGV0VW5zcGVudDxiaWdpbnQ+ICYgeyBwcmV2VHg/OiBCdWZmZXIgfSkucHJldlR4O1xuXG4gICAgd2FzbVBzYnQuYWRkV2FsbGV0SW5wdXQoXG4gICAgICB7XG4gICAgICAgIHR4aWQsXG4gICAgICAgIHZvdXQsXG4gICAgICAgIHZhbHVlOiB1bnNwZW50LnZhbHVlLFxuICAgICAgICBwcmV2VHg6IHByZXZUeCxcbiAgICAgIH0sXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIHtcbiAgICAgICAgc2NyaXB0SWQ6IHsgY2hhaW46IHVuc3BlbnQuY2hhaW4sIGluZGV4OiB1bnNwZW50LmluZGV4IH0sXG4gICAgICAgIHNpZ25QYXRoLFxuICAgICAgfVxuICAgICk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEFkZCBhbiBvdXRwdXQgdG8gYSB3YXNtLXV0eG8gQml0R29Qc2J0LlxuICpcbiAqIEBwYXJhbSB3YXNtUHNidCAtIFRoZSB3YXNtLXV0eG8gQml0R29Qc2J0IHRvIGFkZCB0aGUgb3V0cHV0IHRvXG4gKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgb3V0cHV0IHZhbHVlIGluIHNhdG9zaGlzXG4gKiBAcGFyYW0gbmV0d29yayAtIFRoZSBuZXR3b3JrICh1c2VkIHRvIGNvbnZlcnQgYWRkcmVzcyB0byBzY3JpcHQpXG4gKiBAcmV0dXJucyBUaGUgb3V0cHV0IGluZGV4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRPdXRwdXRUb1dhc21Qc2J0KFxuICB3YXNtUHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBhZGRyZXNzOiBzdHJpbmcsXG4gIHZhbHVlOiBiaWdpbnQsXG4gIGNvaW5OYW1lOiBDb2luTmFtZVxuKTogbnVtYmVyIHtcbiAgY29uc3Qgc2NyaXB0ID0gd2FzbUFkZHJlc3MudG9PdXRwdXRTY3JpcHRXaXRoQ29pbihhZGRyZXNzLCBjb2luTmFtZSk7XG4gIHJldHVybiB3YXNtUHNidC5hZGRPdXRwdXQoeyBzY3JpcHQsIHZhbHVlIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSB3YXNtLXV0eG8gQml0R29Qc2J0IHRvIGEgdXR4b2xpYiBVdHhvUHNidC5cbiAqXG4gKiBAcGFyYW0gd2FzbVBzYnQgLSBUaGUgd2FzbS11dHhvIEJpdEdvUHNidCB0byBjb252ZXJ0XG4gKiBAcGFyYW0gbmV0d29yayAtIFRoZSBuZXR3b3JrXG4gKiBAcmV0dXJucyBBIHV0eG9saWIgVXR4b1BzYnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUHNidFRvVXR4b2xpYlBzYnQoXG4gIHdhc21Qc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBjb2luTmFtZTogQ29pbk5hbWVcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICBpZiAod2FzbVBzYnQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQpIHtcbiAgICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21Db2luTmFtZShjb2luTmFtZSk7XG4gICAgcmV0dXJuIHV0eG9saWIuYml0Z28uY3JlYXRlUHNidEZyb21CdWZmZXIoQnVmZmVyLmZyb20od2FzbVBzYnQuc2VyaWFsaXplKCkpLCBuZXR3b3JrKTtcbiAgfVxuICByZXR1cm4gd2FzbVBzYnQ7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYmFja3VwIGtleSByZWNvdmVyeSBQU0JUIHVzaW5nIHdhc20tdXR4b1xuICovXG5mdW5jdGlvbiBjcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRXYXNtKFxuICBjb2luTmFtZTogQ29pbk5hbWUsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvcHRpb25zOiBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zXG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCB7IGZlZVJhdGVTYXRWQiwgcmVjb3ZlcnlEZXN0aW5hdGlvbiwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCBrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzIH0gPSBvcHRpb25zO1xuXG4gIC8vIENyZWF0ZSBQU0JUIHdpdGggd2FzbS11dHhvIGFuZCBhZGQgd2FsbGV0IGlucHV0cyB1c2luZyBzaGFyZWQgdXRpbGl0aWVzXG4gIGNvbnN0IHdhc21Qc2J0ID0gY3JlYXRlRW1wdHlXYXNtUHNidChjb2luTmFtZSwgcm9vdFdhbGxldEtleXMsIHsgYmxvY2tIZWlnaHQ6IG9wdGlvbnMuYmxvY2tIZWlnaHQgfSk7XG4gIGFkZFdhbGxldElucHV0c1RvV2FzbVBzYnQod2FzbVBzYnQsIHVuc3BlbnRzLCByb290V2FsbGV0S2V5cyk7XG5cbiAgLy8gQ2FsY3VsYXRlIGRpbWVuc2lvbnMgdXNpbmcgd2FzbS11dHhvIERpbWVuc2lvbnNcbiAgbGV0IGRpbWVuc2lvbnMgPSBmaXhlZFNjcmlwdFdhbGxldC5EaW1lbnNpb25zLmZyb21Qc2J0KHdhc21Qc2J0KS5wbHVzKFxuICAgIGZpeGVkU2NyaXB0V2FsbGV0LkRpbWVuc2lvbnMuZnJvbU91dHB1dChyZWNvdmVyeURlc3RpbmF0aW9uLCBjb2luTmFtZSlcbiAgKTtcblxuICBpZiAoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcykge1xuICAgIGRpbWVuc2lvbnMgPSBkaW1lbnNpb25zLnBsdXMoZml4ZWRTY3JpcHRXYWxsZXQuRGltZW5zaW9ucy5mcm9tT3V0cHV0KGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MsIGNvaW5OYW1lKSk7XG4gIH1cblxuICBjb25zdCBhcHByb3hpbWF0ZUZlZSA9IEJpZ0ludChkaW1lbnNpb25zLmdldFZTaXplKCkgKiBmZWVSYXRlU2F0VkIpO1xuICBjb25zdCB0b3RhbElucHV0QW1vdW50ID0gdXR4b2xpYi5iaXRnby51bnNwZW50U3VtKHVuc3BlbnRzLCAnYmlnaW50Jyk7XG4gIGNvbnN0IHJlY292ZXJ5QW1vdW50ID0gdG90YWxJbnB1dEFtb3VudCAtIGFwcHJveGltYXRlRmVlIC0ga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlO1xuXG4gIGlmIChyZWNvdmVyeUFtb3VudCA8IEJpZ0ludCgwKSkge1xuICAgIHRocm93IG5ldyBJbnN1ZmZpY2llbnRGdW5kc0Vycm9yKHRvdGFsSW5wdXRBbW91bnQsIGFwcHJveGltYXRlRmVlLCBrZXlSZWNvdmVyeVNlcnZpY2VGZWUsIHJlY292ZXJ5QW1vdW50KTtcbiAgfVxuXG4gIC8vIEFkZCBvdXRwdXRzIHRvIHdhc20gUFNCVFxuICBhZGRPdXRwdXRUb1dhc21Qc2J0KHdhc21Qc2J0LCByZWNvdmVyeURlc3RpbmF0aW9uLCByZWNvdmVyeUFtb3VudCwgY29pbk5hbWUpO1xuXG4gIGlmIChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgYWRkT3V0cHV0VG9XYXNtUHNidCh3YXNtUHNidCwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcywga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCBjb2luTmFtZSk7XG4gIH1cblxuICAvLyBDb252ZXJ0IHRvIHV0eG9saWIgUFNCVCBmb3Igc2lnbmluZyBhbmQgcmV0dXJuXG4gIHJldHVybiB3YXNtUHNidDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBiYWNrdXAga2V5IHJlY292ZXJ5IFBTQlQuXG4gKlxuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29yayBmb3IgdGhlIFBTQlRcbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyAtIFRoZSB3YWxsZXQga2V5c1xuICogQHBhcmFtIHVuc3BlbnRzIC0gVGhlIHVuc3BlbnRzIHRvIGluY2x1ZGUgaW4gdGhlIFBTQlRcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhlIFBTQlRcbiAqIEBwYXJhbSBiYWNrZW5kIC0gV2hpY2ggYmFja2VuZCB0byB1c2UgZm9yIFBTQlQgY3JlYXRpb24gKGRlZmF1bHQ6ICd3YXNtLXV0eG8nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0KFxuICBjb2luTmFtZTogQ29pbk5hbWUsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvcHRpb25zOiBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zLFxuICBiYWNrZW5kOiBQc2J0QmFja2VuZCA9ICd3YXNtLXV0eG8nXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgaWYgKG9wdGlvbnMua2V5UmVjb3ZlcnlTZXJ2aWNlRmVlID4gMCAmJiAhb3B0aW9ucy5rZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzIGlzIHJlcXVpcmVkIHdoZW4ga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlIGlzIHByb3ZpZGVkJyk7XG4gIH1cblxuICBpZiAoYmFja2VuZCA9PT0gJ3dhc20tdXR4bycpIHtcbiAgICByZXR1cm4gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0V2FzbShjb2luTmFtZSwgcm9vdFdhbGxldEtleXMsIHVuc3BlbnRzLCBvcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0VXR4b2xpYihjb2luTmFtZSwgcm9vdFdhbGxldEtleXMsIHVuc3BlbnRzLCBvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjb3ZlcnlBbW91bnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBhZGRyZXNzOiBzdHJpbmdcbik6IGJpZ2ludCB7XG4gIGlmIChwc2J0IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkge1xuICAgIGNvbnN0IHJlY292ZXJ5T3V0cHV0U2NyaXB0ID0gdXR4b2xpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHJlc3MsIHBzYnQubmV0d29yayk7XG4gICAgY29uc3Qgb3V0cHV0ID0gcHNidC50eE91dHB1dHMuZmluZCgobykgPT4gby5zY3JpcHQuZXF1YWxzKHJlY292ZXJ5T3V0cHV0U2NyaXB0KSk7XG4gICAgaWYgKCFvdXRwdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUmVjb3ZlcnkgZGVzdGluYXRpb24gb3V0cHV0IG5vdCBmb3VuZCBpbiBQU0JUOiAke2FkZHJlc3N9YCk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQudmFsdWU7XG4gIH1cbiAgaWYgKHBzYnQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQpIHtcbiAgICBjb25zdCBwYXJzZWRPdXRwdXRzID0gcHNidC5wYXJzZU91dHB1dHNXaXRoV2FsbGV0S2V5cyh3YWxsZXRLZXlzKTtcbiAgICBjb25zdCByZWNvdmVyeU91dHB1dCA9IHBhcnNlZE91dHB1dHMuZmluZCgobykgPT4gby5hZGRyZXNzID09PSBhZGRyZXNzKTtcbiAgICBpZiAoIXJlY292ZXJ5T3V0cHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlY292ZXJ5IGRlc3RpbmF0aW9uIG91dHB1dCBub3QgZm91bmQgaW4gUFNCVDogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVjb3ZlcnlPdXRwdXQudmFsdWU7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBTQlQgdHlwZScpO1xufVxuIl19
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZWNvdmVyeS9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJBLHdDQUlDO0FBS0Qsc0NBT0M7QUFnSEQsa0RBY0M7QUFVRCw4REE0QkM7QUFXRCxrREFRQztBQVNELGtEQVNDO0FBc0RELGtFQWdCQztBQUVELDhDQXNCQztBQTlVRCw4REFBZ0Q7QUFDaEQsbURBQWtEO0FBQ2xELGdEQUFzRztBQUV0RyxvQ0FBZ0U7QUFLaEUsTUFBTSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFXL0Q7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBZ0I7SUFDN0MsT0FBTyxDQUNKLGNBQW9DLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFLLG9CQUEwQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDckgsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxRQUFzQjtJQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFBLDhCQUFzQixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLHNCQUF1QixTQUFRLEtBQUs7SUFDeEMsWUFDUyxnQkFBd0IsRUFDeEIsY0FBc0IsRUFDdEIsTUFBYyxFQUNkLGNBQXNCO1FBRTdCLEtBQUssQ0FDSCxpRkFBaUY7WUFDL0UsK0JBQStCLGdCQUFnQixD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U0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxJQUFJLFlBQVksNkJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMgfSBmcm9tICdAYml0Z28tYmV0YS91bnNwZW50cyc7XG5pbXBvcnQgeyBDb2luTmFtZSwgZml4ZWRTY3JpcHRXYWxsZXQsIHV0eG9saWJDb21wYXQsIGFkZHJlc3MgYXMgd2FzbUFkZHJlc3MgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgZ2V0TmV0d29ya0Zyb21Db2luTmFtZSwgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vbmFtZXMnO1xuXG50eXBlIFJvb3RXYWxsZXRLZXlzID0gdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cztcbnR5cGUgV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PiA9IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudDxUTnVtYmVyPjtcblxuY29uc3QgeyBjaGFpbkNvZGVzUDJ0ciwgY2hhaW5Db2Rlc1AydHJNdXNpZzIgfSA9IHV0eG9saWIuYml0Z287XG5cbnR5cGUgQ2hhaW5Db2RlID0gdXR4b2xpYi5iaXRnby5DaGFpbkNvZGU7XG5cbi8qKlxuICogQmFja2VuZCB0byB1c2UgZm9yIFBTQlQgY3JlYXRpb24uXG4gKiAtICd3YXNtLXV0eG8nOiBVc2Ugd2FzbS11dHhvIGZvciBQU0JUIGNyZWF0aW9uIChkZWZhdWx0KVxuICogLSAndXR4b2xpYic6IFVzZSB1dHhvbGliIGZvciBQU0JUIGNyZWF0aW9uIChsZWdhY3kpXG4gKi9cbmV4cG9ydCB0eXBlIFBzYnRCYWNrZW5kID0gJ3dhc20tdXR4bycgfCAndXR4b2xpYic7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBjaGFpbiBjb2RlIGlzIGZvciBhIHRhcHJvb3Qgc2NyaXB0IHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGFwcm9vdENoYWluKGNoYWluOiBDaGFpbkNvZGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoY2hhaW5Db2Rlc1AydHIgYXMgcmVhZG9ubHkgbnVtYmVyW10pLmluY2x1ZGVzKGNoYWluKSB8fCAoY2hhaW5Db2Rlc1AydHJNdXNpZzIgYXMgcmVhZG9ubHkgbnVtYmVyW10pLmluY2x1ZGVzKGNoYWluKVxuICApO1xufVxuXG4vKipcbiAqIENvbnZlcnQgY29pbiBuYW1lIHRvIHdhc20tdXR4byBuZXR3b3JrIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTmV0d29ya05hbWUoY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IHV0eG9saWJDb21wYXQuVXR4b2xpYk5hbWUge1xuICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21Db2luTmFtZShjb2luTmFtZSk7XG4gIGNvbnN0IG5ldHdvcmtOYW1lID0gdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKTtcbiAgaWYgKCFuZXR3b3JrTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb2luTmFtZTogJHtjb2luTmFtZX1gKTtcbiAgfVxuICByZXR1cm4gbmV0d29ya05hbWU7XG59XG5cbmNsYXNzIEluc3VmZmljaWVudEZ1bmRzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0b3RhbElucHV0QW1vdW50OiBiaWdpbnQsXG4gICAgcHVibGljIGFwcHJveGltYXRlRmVlOiBiaWdpbnQsXG4gICAgcHVibGljIGtyc0ZlZTogYmlnaW50LFxuICAgIHB1YmxpYyByZWNvdmVyeUFtb3VudDogYmlnaW50XG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgYFRoaXMgd2FsbGV0J3MgYmFsYW5jZSBpcyB0b28gbG93IHRvIHBheSB0aGUgZmVlcyBzcGVjaWZpZWQgYnkgdGhlIEtSUyBwcm92aWRlci5gICtcbiAgICAgICAgYEV4aXN0aW5nIGJhbGFuY2Ugb24gd2FsbGV0OiAke3RvdGFsSW5wdXRBbW91bnQudG9TdHJpbmcoKX0uIGAgK1xuICAgICAgICBgRXN0aW1hdGVkIG5ldHdvcmsgZmVlIGZvciB0aGUgcmVjb3ZlcnkgdHJhbnNhY3Rpb246ICR7YXBwcm94aW1hdGVGZWUudG9TdHJpbmcoKX1gICtcbiAgICAgICAgYEtSUyBmZWUgdG8gcGF5OiAke2tyc0ZlZS50b1N0cmluZygpfS4gYCArXG4gICAgICAgIGBBZnRlciBkZWR1Y3RpbmcgZmVlcywgeW91ciB0b3RhbCByZWNvdmVyYWJsZSBiYWxhbmNlIGlzICR7cmVjb3ZlcnlBbW91bnQudG9TdHJpbmcoKX1gXG4gICAgKTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9ucyB7XG4gIGZlZVJhdGVTYXRWQjogbnVtYmVyO1xuICByZWNvdmVyeURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIGtleVJlY292ZXJ5U2VydmljZUZlZTogYmlnaW50O1xuICBrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKiBCbG9jayBoZWlnaHQgZm9yIFpjYXNoIG5ldHdvcmtzIChyZXF1aXJlZCB0byBkZXRlcm1pbmUgY29uc2Vuc3VzIGJyYW5jaCBJRCkgKi9cbiAgYmxvY2tIZWlnaHQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYmFja3VwIGtleSByZWNvdmVyeSBQU0JUIHVzaW5nIHV0eG9saWIgKGxlZ2FjeSBpbXBsZW1lbnRhdGlvbilcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0VXR4b2xpYihcbiAgY29pbk5hbWU6IENvaW5OYW1lLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgb3B0aW9uczogQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9uc1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrRnJvbUNvaW5OYW1lKGNvaW5OYW1lKTtcbiAgY29uc3QgeyBmZWVSYXRlU2F0VkIsIHJlY292ZXJ5RGVzdGluYXRpb24sIGtleVJlY292ZXJ5U2VydmljZUZlZSwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcyB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIHV0eG9saWIuYml0Z28uYWRkWHB1YnNUb1BzYnQocHNidCwgcm9vdFdhbGxldEtleXMpO1xuICB1bnNwZW50cy5mb3JFYWNoKCh1bnNwZW50KSA9PiB7XG4gICAgdXR4b2xpYi5iaXRnby5hZGRXYWxsZXRVbnNwZW50VG9Qc2J0KHBzYnQsIHVuc3BlbnQsIHJvb3RXYWxsZXRLZXlzLCAndXNlcicsICdiYWNrdXAnKTtcbiAgfSk7XG5cbiAgbGV0IGRpbWVuc2lvbnMgPSBEaW1lbnNpb25zLmZyb21Qc2J0KHBzYnQpLnBsdXMoXG4gICAgRGltZW5zaW9ucy5mcm9tT3V0cHV0KHsgc2NyaXB0OiB1dHhvbGliLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQocmVjb3ZlcnlEZXN0aW5hdGlvbiwgbmV0d29yaykgfSlcbiAgKTtcblxuICBpZiAoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcykge1xuICAgIGRpbWVuc2lvbnMgPSBkaW1lbnNpb25zLnBsdXMoXG4gICAgICBEaW1lbnNpb25zLmZyb21PdXRwdXQoe1xuICAgICAgICBzY3JpcHQ6IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzLCBuZXR3b3JrKSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFwcHJveGltYXRlRmVlID0gQmlnSW50KGRpbWVuc2lvbnMuZ2V0VlNpemUoKSAqIGZlZVJhdGVTYXRWQik7XG4gIGNvbnN0IHRvdGFsSW5wdXRBbW91bnQgPSB1dHhvbGliLmJpdGdvLnVuc3BlbnRTdW0odW5zcGVudHMsICdiaWdpbnQnKTtcbiAgY29uc3QgcmVjb3ZlcnlBbW91bnQgPSB0b3RhbElucHV0QW1vdW50IC0gYXBwcm94aW1hdGVGZWUgLSBrZXlSZWNvdmVyeVNlcnZpY2VGZWU7XG5cbiAgaWYgKHJlY292ZXJ5QW1vdW50IDwgQmlnSW50KDApKSB7XG4gICAgdGhyb3cgbmV3IEluc3VmZmljaWVudEZ1bmRzRXJyb3IodG90YWxJbnB1dEFtb3VudCwgYXBwcm94aW1hdGVGZWUsIGtleVJlY292ZXJ5U2VydmljZUZlZSwgcmVjb3ZlcnlBbW91bnQpO1xuICB9XG5cbiAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQ6IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChyZWNvdmVyeURlc3RpbmF0aW9uLCBuZXR3b3JrKSwgdmFsdWU6IHJlY292ZXJ5QW1vdW50IH0pO1xuXG4gIGlmIChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgcHNidC5hZGRPdXRwdXQoe1xuICAgICAgc2NyaXB0OiB1dHhvbGliLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcywgbmV0d29yayksXG4gICAgICB2YWx1ZToga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBzYnQ7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIG5ldHdvcmsgaXMgYSBaY2FzaCBuZXR3b3JrXG4gKi9cbmZ1bmN0aW9uIGlzWmNhc2goY29pbk5hbWU6IENvaW5OYW1lKTogY29pbk5hbWUgaXMgJ3plYycgfCAndHplYycge1xuICByZXR1cm4gY29pbk5hbWUgPT09ICd6ZWMnIHx8IGNvaW5OYW1lID09PSAndHplYyc7XG59XG5cbi8qKlxuICogRGVmYXVsdCBibG9jayBoZWlnaHRzIGZvciBaY2FzaCBuZXR3b3JrcyBpZiBub3QgcHJvdmlkZWQuXG4gKiBUaGVzZSBzaG91bGQgYmUgc2V0IHRvIGEgaGVpZ2h0IGFmdGVyIHRoZSBsYXRlc3QgbmV0d29yayB1cGdyYWRlLlxuICogVE9ETyhCVEMtMjkwMSk6IGdldCB0aGUgaGVpZ2h0IGZyb20gYmxvY2tjaGFpciBBUEkgaW5zdGVhZCBvZiBoYXJkY29kaW5nLlxuICovXG5jb25zdCBaQ0FTSF9ERUZBVUxUX0JMT0NLX0hFSUdIVFM6IFJlY29yZDwnemVjJyB8ICd0emVjJywgbnVtYmVyPiA9IHtcbiAgemVjOiAzMTQ2NDAwLFxuICB0emVjOiAzNTM2NTAwLFxufTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhbiBlbXB0eSB3YXNtLXV0eG8gUFNCVFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUVtcHR5V2FzbVBzYnRPcHRpb25zIHtcbiAgLyoqIEJsb2NrIGhlaWdodCBmb3IgWmNhc2ggbmV0d29ya3MgKHJlcXVpcmVkIHRvIGRldGVybWluZSBjb25zZW5zdXMgYnJhbmNoIElEKSAqL1xuICBibG9ja0hlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZW1wdHkgd2FzbS11dHhvIEJpdEdvUHNidCBmb3IgYSBnaXZlbiBuZXR3b3JrLlxuICogSGFuZGxlcyBaY2FzaCBuZXR3b3JrcyBzcGVjaWFsbHkgYnkgdXNpbmcgWmNhc2hCaXRHb1BzYnQuXG4gKlxuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29yayBmb3IgdGhlIFBTQlRcbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyAtIFRoZSB3YWxsZXQga2V5c1xuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBzZXR0aW5ncyAoZS5nLiwgYmxvY2tIZWlnaHQgZm9yIFpjYXNoKVxuICogQHJldHVybnMgQSB3YXNtLXV0eG8gQml0R29Qc2J0IGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbXB0eVdhc21Qc2J0KFxuICBjb2luTmFtZTogQ29pbk5hbWUsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgb3B0aW9ucz86IENyZWF0ZUVtcHR5V2FzbVBzYnRPcHRpb25zXG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBpZiAoaXNaY2FzaChjb2luTmFtZSkpIHtcbiAgICAvLyBGb3IgWmNhc2gsIHVzZSBaY2FzaEJpdEdvUHNidCB3aGljaCByZXF1aXJlcyBibG9jayBoZWlnaHQgdG8gZGV0ZXJtaW5lIGNvbnNlbnN1cyBicmFuY2ggSURcbiAgICBjb25zdCBibG9ja0hlaWdodCA9IG9wdGlvbnM/LmJsb2NrSGVpZ2h0ID8/IFpDQVNIX0RFRkFVTFRfQkxPQ0tfSEVJR0hUU1tjb2luTmFtZV07XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoQml0R29Qc2J0LmNyZWF0ZUVtcHR5KGNvaW5OYW1lLCByb290V2FsbGV0S2V5cywge1xuICAgICAgYmxvY2tIZWlnaHQsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmNyZWF0ZUVtcHR5KGNvaW5OYW1lLCByb290V2FsbGV0S2V5cyk7XG59XG5cbi8qKlxuICogQWRkIHdhbGxldCBpbnB1dHMgZnJvbSB1bnNwZW50cyB0byBhIHdhc20tdXR4byBCaXRHb1BzYnQuXG4gKiBIYW5kbGVzIHRhcHJvb3QgaW5wdXRzIGJ5IHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIHNpZ25QYXRoLlxuICpcbiAqIEBwYXJhbSB3YXNtUHNidCAtIFRoZSB3YXNtLXV0eG8gQml0R29Qc2J0IHRvIGFkZCBpbnB1dHMgdG9cbiAqIEBwYXJhbSB1bnNwZW50cyAtIFRoZSB3YWxsZXQgdW5zcGVudHMgdG8gYWRkIGFzIGlucHV0c1xuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzIC0gVGhlIHdhbGxldCBrZXlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRXYWxsZXRJbnB1dHNUb1dhc21Qc2J0KFxuICB3YXNtUHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5c1xuKTogdm9pZCB7XG4gIHVuc3BlbnRzLmZvckVhY2goKHVuc3BlbnQpID0+IHtcbiAgICBjb25zdCB7IHR4aWQsIHZvdXQgfSA9IHV0eG9saWIuYml0Z28ucGFyc2VPdXRwdXRJZCh1bnNwZW50LmlkKTtcbiAgICBjb25zdCBzaWduUGF0aDogZml4ZWRTY3JpcHRXYWxsZXQuU2lnblBhdGggfCB1bmRlZmluZWQgPSBpc1RhcHJvb3RDaGFpbih1bnNwZW50LmNoYWluKVxuICAgICAgPyB7IHNpZ25lcjogJ3VzZXInLCBjb3NpZ25lcjogJ2JhY2t1cCcgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBwcmV2VHggbWF5IGJlIGFkZGVkIGR5bmFtaWNhbGx5IGluIGJhY2t1cEtleVJlY292ZXJ5IGZvciBub24tc2Vnd2l0IGlucHV0c1xuICAgIGNvbnN0IHByZXZUeCA9ICh1bnNwZW50IGFzIFdhbGxldFVuc3BlbnQ8YmlnaW50PiAmIHsgcHJldlR4PzogQnVmZmVyIH0pLnByZXZUeDtcblxuICAgIHdhc21Qc2J0LmFkZFdhbGxldElucHV0KFxuICAgICAge1xuICAgICAgICB0eGlkLFxuICAgICAgICB2b3V0LFxuICAgICAgICB2YWx1ZTogdW5zcGVudC52YWx1ZSxcbiAgICAgICAgcHJldlR4OiBwcmV2VHgsXG4gICAgICB9LFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICB7XG4gICAgICAgIHNjcmlwdElkOiB7IGNoYWluOiB1bnNwZW50LmNoYWluLCBpbmRleDogdW5zcGVudC5pbmRleCB9LFxuICAgICAgICBzaWduUGF0aCxcbiAgICAgIH1cbiAgICApO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYW4gb3V0cHV0IHRvIGEgd2FzbS11dHhvIEJpdEdvUHNidC5cbiAqXG4gKiBAcGFyYW0gd2FzbVBzYnQgLSBUaGUgd2FzbS11dHhvIEJpdEdvUHNidCB0byBhZGQgdGhlIG91dHB1dCB0b1xuICogQHBhcmFtIGFkZHJlc3MgLSBUaGUgZGVzdGluYXRpb24gYWRkcmVzc1xuICogQHBhcmFtIHZhbHVlIC0gVGhlIG91dHB1dCB2YWx1ZSBpbiBzYXRvc2hpc1xuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29yayAodXNlZCB0byBjb252ZXJ0IGFkZHJlc3MgdG8gc2NyaXB0KVxuICogQHJldHVybnMgVGhlIG91dHB1dCBpbmRleFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkT3V0cHV0VG9XYXNtUHNidChcbiAgd2FzbVBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgYWRkcmVzczogc3RyaW5nLFxuICB2YWx1ZTogYmlnaW50LFxuICBjb2luTmFtZTogQ29pbk5hbWVcbik6IG51bWJlciB7XG4gIGNvbnN0IHNjcmlwdCA9IHdhc21BZGRyZXNzLnRvT3V0cHV0U2NyaXB0V2l0aENvaW4oYWRkcmVzcywgY29pbk5hbWUpO1xuICByZXR1cm4gd2FzbVBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0LCB2YWx1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgd2FzbS11dHhvIEJpdEdvUHNidCB0byBhIHV0eG9saWIgVXR4b1BzYnQuXG4gKlxuICogQHBhcmFtIHdhc21Qc2J0IC0gVGhlIHdhc20tdXR4byBCaXRHb1BzYnQgdG8gY29udmVydFxuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29ya1xuICogQHJldHVybnMgQSB1dHhvbGliIFV0eG9Qc2J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BzYnRUb1V0eG9saWJQc2J0KFxuICB3YXNtUHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgY29pbk5hbWU6IENvaW5OYW1lXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgaWYgKHdhc21Qc2J0IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KSB7XG4gICAgY29uc3QgbmV0d29yayA9IGdldE5ldHdvcmtGcm9tQ29pbk5hbWUoY29pbk5hbWUpO1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHdhc21Qc2J0LnNlcmlhbGl6ZSgpKSwgbmV0d29yayk7XG4gIH1cbiAgcmV0dXJuIHdhc21Qc2J0O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGJhY2t1cCBrZXkgcmVjb3ZlcnkgUFNCVCB1c2luZyB3YXNtLXV0eG9cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0V2FzbShcbiAgY29pbk5hbWU6IENvaW5OYW1lLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgb3B0aW9uczogQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9uc1xuKTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgY29uc3QgeyBmZWVSYXRlU2F0VkIsIHJlY292ZXJ5RGVzdGluYXRpb24sIGtleVJlY292ZXJ5U2VydmljZUZlZSwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcyB9ID0gb3B0aW9ucztcblxuICAvLyBDcmVhdGUgUFNCVCB3aXRoIHdhc20tdXR4byBhbmQgYWRkIHdhbGxldCBpbnB1dHMgdXNpbmcgc2hhcmVkIHV0aWxpdGllc1xuICBjb25zdCB3YXNtUHNidCA9IGNyZWF0ZUVtcHR5V2FzbVBzYnQoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB7IGJsb2NrSGVpZ2h0OiBvcHRpb25zLmJsb2NrSGVpZ2h0IH0pO1xuICBhZGRXYWxsZXRJbnB1dHNUb1dhc21Qc2J0KHdhc21Qc2J0LCB1bnNwZW50cywgcm9vdFdhbGxldEtleXMpO1xuXG4gIC8vIENhbGN1bGF0ZSBkaW1lbnNpb25zIHVzaW5nIHdhc20tdXR4byBEaW1lbnNpb25zXG4gIGxldCBkaW1lbnNpb25zID0gZml4ZWRTY3JpcHRXYWxsZXQuRGltZW5zaW9ucy5mcm9tUHNidCh3YXNtUHNidCkucGx1cyhcbiAgICBmaXhlZFNjcmlwdFdhbGxldC5EaW1lbnNpb25zLmZyb21PdXRwdXQocmVjb3ZlcnlEZXN0aW5hdGlvbiwgY29pbk5hbWUpXG4gICk7XG5cbiAgaWYgKGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MpIHtcbiAgICBkaW1lbnNpb25zID0gZGltZW5zaW9ucy5wbHVzKGZpeGVkU2NyaXB0V2FsbGV0LkRpbWVuc2lvbnMuZnJvbU91dHB1dChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzLCBjb2luTmFtZSkpO1xuICB9XG5cbiAgY29uc3QgYXBwcm94aW1hdGVGZWUgPSBCaWdJbnQoZGltZW5zaW9ucy5nZXRWU2l6ZSgpICogZmVlUmF0ZVNhdFZCKTtcbiAgY29uc3QgdG90YWxJbnB1dEFtb3VudCA9IHV0eG9saWIuYml0Z28udW5zcGVudFN1bSh1bnNwZW50cywgJ2JpZ2ludCcpO1xuICBjb25zdCByZWNvdmVyeUFtb3VudCA9IHRvdGFsSW5wdXRBbW91bnQgLSBhcHByb3hpbWF0ZUZlZSAtIGtleVJlY292ZXJ5U2VydmljZUZlZTtcblxuICBpZiAocmVjb3ZlcnlBbW91bnQgPCBCaWdJbnQoMCkpIHtcbiAgICB0aHJvdyBuZXcgSW5zdWZmaWNpZW50RnVuZHNFcnJvcih0b3RhbElucHV0QW1vdW50LCBhcHByb3hpbWF0ZUZlZSwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCByZWNvdmVyeUFtb3VudCk7XG4gIH1cblxuICAvLyBBZGQgb3V0cHV0cyB0byB3YXNtIFBTQlRcbiAgYWRkT3V0cHV0VG9XYXNtUHNidCh3YXNtUHNidCwgcmVjb3ZlcnlEZXN0aW5hdGlvbiwgcmVjb3ZlcnlBbW91bnQsIGNvaW5OYW1lKTtcblxuICBpZiAoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcykge1xuICAgIGFkZE91dHB1dFRvV2FzbVBzYnQod2FzbVBzYnQsIGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MsIGtleVJlY292ZXJ5U2VydmljZUZlZSwgY29pbk5hbWUpO1xuICB9XG5cbiAgLy8gQ29udmVydCB0byB1dHhvbGliIFBTQlQgZm9yIHNpZ25pbmcgYW5kIHJldHVyblxuICByZXR1cm4gd2FzbVBzYnQ7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYmFja3VwIGtleSByZWNvdmVyeSBQU0JULlxuICpcbiAqIEBwYXJhbSBuZXR3b3JrIC0gVGhlIG5ldHdvcmsgZm9yIHRoZSBQU0JUXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXMgLSBUaGUgd2FsbGV0IGtleXNcbiAqIEBwYXJhbSB1bnNwZW50cyAtIFRoZSB1bnNwZW50cyB0byBpbmNsdWRlIGluIHRoZSBQU0JUXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSBQU0JUXG4gKiBAcGFyYW0gYmFja2VuZCAtIFdoaWNoIGJhY2tlbmQgdG8gdXNlIGZvciBQU0JUIGNyZWF0aW9uIChkZWZhdWx0OiAnd2FzbS11dHhvJylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidChcbiAgY29pbk5hbWU6IENvaW5OYW1lLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgb3B0aW9uczogQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9ucyxcbiAgYmFja2VuZDogUHNidEJhY2tlbmQgPSAnd2FzbS11dHhvJ1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGlmIChvcHRpb25zLmtleVJlY292ZXJ5U2VydmljZUZlZSA+IDAgJiYgIW9wdGlvbnMua2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcyBpcyByZXF1aXJlZCB3aGVuIGtleVJlY292ZXJ5U2VydmljZUZlZSBpcyBwcm92aWRlZCcpO1xuICB9XG5cbiAgaWYgKGJhY2tlbmQgPT09ICd3YXNtLXV0eG8nKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidFdhc20oY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB1bnNwZW50cywgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidFV0eG9saWIoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB1bnNwZW50cywgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlY292ZXJ5QW1vdW50KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgYWRkcmVzczogc3RyaW5nXG4pOiBiaWdpbnQge1xuICBpZiAocHNidCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQpIHtcbiAgICBjb25zdCByZWNvdmVyeU91dHB1dFNjcmlwdCA9IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzLCBwc2J0Lm5ldHdvcmspO1xuICAgIGNvbnN0IG91dHB1dCA9IHBzYnQudHhPdXRwdXRzLmZpbmQoKG8pID0+IG8uc2NyaXB0LmVxdWFscyhyZWNvdmVyeU91dHB1dFNjcmlwdCkpO1xuICAgIGlmICghb3V0cHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlY292ZXJ5IGRlc3RpbmF0aW9uIG91dHB1dCBub3QgZm91bmQgaW4gUFNCVDogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0LnZhbHVlO1xuICB9XG4gIGlmIChwc2J0IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KSB7XG4gICAgY29uc3QgcGFyc2VkT3V0cHV0cyA9IHBzYnQucGFyc2VPdXRwdXRzV2l0aFdhbGxldEtleXMod2FsbGV0S2V5cyk7XG4gICAgY29uc3QgcmVjb3ZlcnlPdXRwdXQgPSBwYXJzZWRPdXRwdXRzLmZpbmQoKG8pID0+IG8uYWRkcmVzcyA9PT0gYWRkcmVzcyk7XG4gICAgaWYgKCFyZWNvdmVyeU91dHB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZWNvdmVyeSBkZXN0aW5hdGlvbiBvdXRwdXQgbm90IGZvdW5kIGluIFBTQlQ6ICR7YWRkcmVzc31gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlY292ZXJ5T3V0cHV0LnZhbHVlO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBQU0JUIHR5cGUnKTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"bip322.d.ts","sourceRoot":"","sources":["../../../../src/transaction/bip322.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAE3B,QAAA,MAAM,iBAAiB;;;;;EAWrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEnE,QAAA,MAAM,0BAA0B;;;;;;;;EAG9B,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAErF,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAE/F;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAK7F;AAED,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,0BAA0B,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAwBT;AAED,wBAAgB,0DAA0D,CACxE,qBAAqB,EAAE,0BAA0B,EAAE,EACnD,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CA0BxC"}
1
+ {"version":3,"file":"bip322.d.ts","sourceRoot":"","sources":["../../../../src/transaction/bip322.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAE3B,QAAA,MAAM,iBAAiB;;;;;EAWrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEnE,QAAA,MAAM,0BAA0B;;;;;;;;EAG9B,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AASrF,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAE/F;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAK7F;AAED,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,0BAA0B,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmCT;AAED,wBAAgB,0DAA0D,CACxE,qBAAqB,EAAE,0BAA0B,EAAE,EACnD,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CA0BxC"}
@@ -38,8 +38,8 @@ exports.deserializeBIP322BroadcastableMessage = deserializeBIP322BroadcastableMe
38
38
  exports.verifyTransactionFromBroadcastableMessage = verifyTransactionFromBroadcastableMessage;
39
39
  exports.generateBIP322MessageListAndVerifyFromMessageBroadcastable = generateBIP322MessageListAndVerifyFromMessageBroadcastable;
40
40
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
41
- const utxo_core_1 = require("@bitgo-beta/utxo-core");
42
41
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
42
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
43
43
  const t = __importStar(require("io-ts"));
44
44
  const BIP322MessageInfo = t.type({
45
45
  address: t.string,
@@ -57,6 +57,12 @@ const BIP322MessageBroadcastable = t.type({
57
57
  txHex: t.string,
58
58
  messageInfo: t.array(BIP322MessageInfo),
59
59
  });
60
+ function assertPubkeyTriple(pubkeys) {
61
+ if (pubkeys.length !== 3) {
62
+ throw new Error(`Expected exactly 3 pubkeys, got ${pubkeys.length}`);
63
+ }
64
+ return pubkeys;
65
+ }
60
66
  function serializeBIP322BroadcastableMessage(message) {
61
67
  return Buffer.from(JSON.stringify(message), 'utf8').toString('hex');
62
68
  }
@@ -67,17 +73,20 @@ function deserializeBIP322BroadcastableMessage(hex) {
67
73
  });
68
74
  }
69
75
  function verifyTransactionFromBroadcastableMessage(message, coinName) {
70
- let network = utxo_lib_1.networks.bitcoin;
71
- if (coinName === 'tbtc4') {
72
- network = utxo_lib_1.networks.bitcoinTestnet4;
73
- }
74
- else if (coinName !== 'btc') {
76
+ if (coinName !== 'btc' && coinName !== 'tbtc4') {
75
77
  throw new Error('Only tbtc4 or btc coinNames are supported.');
76
78
  }
79
+ const network = coinName;
77
80
  if (utxo_lib_1.bitgo.isPsbt(message.txHex)) {
78
- const psbt = utxo_lib_1.bitgo.createPsbtFromBuffer(Buffer.from(message.txHex, 'hex'), network);
81
+ const psbt = wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(Buffer.from(message.txHex, 'hex'), network);
79
82
  try {
80
- utxo_core_1.bip322.assertBip322PsbtProof(psbt, message.messageInfo);
83
+ message.messageInfo.forEach((info, inputIndex) => {
84
+ wasm_utxo_1.bip322.verifyBip322PsbtInputWithPubkeys(psbt, inputIndex, {
85
+ message: info.message,
86
+ pubkeys: assertPubkeyTriple(info.pubkeys),
87
+ scriptType: info.scriptType,
88
+ });
89
+ });
81
90
  return true;
82
91
  }
83
92
  catch (error) {
@@ -85,9 +94,15 @@ function verifyTransactionFromBroadcastableMessage(message, coinName) {
85
94
  }
86
95
  }
87
96
  else {
88
- const tx = utxo_lib_1.bitgo.createTransactionFromBuffer(Buffer.from(message.txHex, 'hex'), network, { amountType: 'bigint' });
97
+ const tx = wasm_utxo_1.Transaction.fromBytes(Buffer.from(message.txHex, 'hex'));
89
98
  try {
90
- utxo_core_1.bip322.assertBip322TxProof(tx, message.messageInfo);
99
+ message.messageInfo.forEach((info, inputIndex) => {
100
+ wasm_utxo_1.bip322.verifyBip322TxInputWithPubkeys(tx, inputIndex, {
101
+ message: info.message,
102
+ pubkeys: assertPubkeyTriple(info.pubkeys),
103
+ scriptType: info.scriptType,
104
+ });
105
+ });
91
106
  return true;
92
107
  }
93
108
  catch (error) {
@@ -122,4 +137,4 @@ function generateBIP322MessageListAndVerifyFromMessageBroadcastable(messageBroad
122
137
  message,
123
138
  }));
124
139
  }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzIyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2JpcDMyMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCQSxrRkFFQztBQUVELHNGQUtDO0FBRUQsOEZBMkJDO0FBRUQsZ0lBNkJDO0FBaEdELG1EQUFvRDtBQUNwRCxxREFBK0M7QUFDL0MsbURBQWdFO0FBQ2hFLHlDQUEyQjtBQUUzQixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2pCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNqQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFCLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0tBQ3hCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFJSCxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2YsV0FBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7Q0FDeEMsQ0FBQyxDQUFDO0FBSUgsU0FBZ0IsbUNBQW1DLENBQUMsT0FBbUM7SUFDckYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxTQUFnQixxQ0FBcUMsQ0FBQyxHQUFXO0lBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbEUsT0FBTyxJQUFBLHVCQUFZLEVBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQy9GLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLDBCQUEwQixDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQWdCLHlDQUF5QyxDQUN2RCxPQUFtQyxFQUNuQyxRQUFnQjtJQUVoQixJQUFJLE9BQU8sR0FBWSxtQkFBUSxDQUFDLE9BQU8sQ0FBQztJQUN4QyxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN6QixPQUFPLEdBQUcsbUJBQVEsQ0FBQyxlQUFlLENBQUM7SUFDckMsQ0FBQztTQUFNLElBQUksUUFBUSxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBSSxnQkFBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksR0FBRyxnQkFBSyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUM7WUFDSCxrQkFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxFQUFFLEdBQUcsZ0JBQUssQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDO1lBQ0gsa0JBQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLDBEQUEwRCxDQUN4RSxxQkFBbUQsRUFDbkQsUUFBZ0I7SUFFaEIsa0dBQWtHO0lBQ2xHLDJHQUEyRztJQUMzRyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUU3QyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDL0MsSUFBSSx5Q0FBeUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNqRSxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNuQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUM1QixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7d0JBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLE9BQU8seUJBQXlCLENBQUMsQ0FBQztvQkFDekUsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsS0FBSyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRSxPQUFPO1FBQ1AsT0FBTztLQUNSLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29kZU9yRWxzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGJpcDMyMiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZSc7XG5pbXBvcnQgeyBiaXRnbywgbmV0d29ya3MsIE5ldHdvcmsgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcblxuY29uc3QgQklQMzIyTWVzc2FnZUluZm8gPSB0LnR5cGUoe1xuICBhZGRyZXNzOiB0LnN0cmluZyxcbiAgbWVzc2FnZTogdC5zdHJpbmcsXG4gIHB1YmtleXM6IHQuYXJyYXkodC5zdHJpbmcpLFxuICBzY3JpcHRUeXBlOiB0LnVuaW9uKFtcbiAgICB0LmxpdGVyYWwoJ3Ayc2gnKSxcbiAgICB0LmxpdGVyYWwoJ3Ayc2hQMndzaCcpLFxuICAgIHQubGl0ZXJhbCgncDJ3c2gnKSxcbiAgICB0LmxpdGVyYWwoJ3AydHInKSxcbiAgICB0LmxpdGVyYWwoJ3AydHJNdXNpZzInKSxcbiAgXSksXG59KTtcblxuZXhwb3J0IHR5cGUgQklQMzIyTWVzc2FnZUluZm8gPSB0LlR5cGVPZjx0eXBlb2YgQklQMzIyTWVzc2FnZUluZm8+O1xuXG5jb25zdCBCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZSA9IHQudHlwZSh7XG4gIHR4SGV4OiB0LnN0cmluZyxcbiAgbWVzc2FnZUluZm86IHQuYXJyYXkoQklQMzIyTWVzc2FnZUluZm8pLFxufSk7XG5cbmV4cG9ydCB0eXBlIEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlID0gdC5UeXBlT2Y8dHlwZW9mIEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZUJJUDMyMkJyb2FkY2FzdGFibGVNZXNzYWdlKG1lc3NhZ2U6IEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlKTogc3RyaW5nIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpLCAndXRmOCcpLnRvU3RyaW5nKCdoZXgnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplQklQMzIyQnJvYWRjYXN0YWJsZU1lc3NhZ2UoaGV4OiBzdHJpbmcpOiBCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZSB7XG4gIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpLnRvU3RyaW5nKCd1dGY4JykpO1xuICByZXR1cm4gZGVjb2RlT3JFbHNlKEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlLm5hbWUsIEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlLCBqc29uLCAoZXJyb3IpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBkZWNvZGUgJHtCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZS5uYW1lfTogJHtlcnJvcn1gKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlUcmFuc2FjdGlvbkZyb21Ccm9hZGNhc3RhYmxlTWVzc2FnZShcbiAgbWVzc2FnZTogQklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGUsXG4gIGNvaW5OYW1lOiBzdHJpbmdcbik6IGJvb2xlYW4ge1xuICBsZXQgbmV0d29yazogTmV0d29yayA9IG5ldHdvcmtzLmJpdGNvaW47XG4gIGlmIChjb2luTmFtZSA9PT0gJ3RidGM0Jykge1xuICAgIG5ldHdvcmsgPSBuZXR3b3Jrcy5iaXRjb2luVGVzdG5ldDQ7XG4gIH0gZWxzZSBpZiAoY29pbk5hbWUgIT09ICdidGMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHRidGM0IG9yIGJ0YyBjb2luTmFtZXMgYXJlIHN1cHBvcnRlZC4nKTtcbiAgfVxuICBpZiAoYml0Z28uaXNQc2J0KG1lc3NhZ2UudHhIZXgpKSB7XG4gICAgY29uc3QgcHNidCA9IGJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKG1lc3NhZ2UudHhIZXgsICdoZXgnKSwgbmV0d29yayk7XG4gICAgdHJ5IHtcbiAgICAgIGJpcDMyMi5hc3NlcnRCaXAzMjJQc2J0UHJvb2YocHNidCwgbWVzc2FnZS5tZXNzYWdlSW5mbyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0eCA9IGJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShtZXNzYWdlLnR4SGV4LCAnaGV4JyksIG5ldHdvcmssIHsgYW1vdW50VHlwZTogJ2JpZ2ludCcgfSk7XG4gICAgdHJ5IHtcbiAgICAgIGJpcDMyMi5hc3NlcnRCaXAzMjJUeFByb29mKHR4LCBtZXNzYWdlLm1lc3NhZ2VJbmZvKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUJJUDMyMk1lc3NhZ2VMaXN0QW5kVmVyaWZ5RnJvbU1lc3NhZ2VCcm9hZGNhc3RhYmxlKFxuICBtZXNzYWdlQnJvYWRjYXN0YWJsZXM6IEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlW10sXG4gIGNvaW5OYW1lOiBzdHJpbmdcbik6IHsgYWRkcmVzczogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVtdIHtcbiAgLy8gTWFwIGZyb20gdGhlIGFkZHJlc3MgdG8gdGhlIG1lc3NhZ2UuIElmIHRoZXJlIGFyZSBkdXBsaWNhdGVzIG9mIHRoZSBhZGRyZXNzLCBtYWtlIHN1cmUgdGhhdCB0aGVcbiAgLy8gbWVzc2FnZSBpcyB0aGUgc2FtZS4gSWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBhZGRyZXNzZXMgYW5kIHRoZSBtZXNzYWdlcyBhcmUgbm90IHRoZSBzYW1lLCB0aHJvdyBhbiBlcnJvci5cbiAgY29uc3QgYWRkcmVzc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgbWVzc2FnZUJyb2FkY2FzdGFibGVzLmZvckVhY2goKG1lc3NhZ2UsIGluZGV4KSA9PiB7XG4gICAgaWYgKHZlcmlmeVRyYW5zYWN0aW9uRnJvbUJyb2FkY2FzdGFibGVNZXNzYWdlKG1lc3NhZ2UsIGNvaW5OYW1lKSkge1xuICAgICAgbWVzc2FnZS5tZXNzYWdlSW5mby5mb3JFYWNoKChpbmZvKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgYWRkcmVzcywgbWVzc2FnZTogbXNnIH0gPSBpbmZvO1xuICAgICAgICBpZiAoYWRkcmVzc01hcC5oYXMoYWRkcmVzcykpIHtcbiAgICAgICAgICBpZiAoYWRkcmVzc01hcC5nZXQoYWRkcmVzcykgIT09IG1zZykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgYWRkcmVzcyAke2FkZHJlc3N9IGhhcyBkaWZmZXJlbnQgbWVzc2FnZXNgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkcmVzc01hcC5zZXQoYWRkcmVzcywgbXNnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWVzc2FnZSBCcm9hZGNhc3RhYmxlICR7aW5kZXh9IGRpZCBub3QgaGF2ZSBhIHN1Y2Nlc3NmdWwgdmFsaWRhdGlvbmApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIEFycmF5LmZyb20oYWRkcmVzc01hcC5lbnRyaWVzKCkpLm1hcCgoW2FkZHJlc3MsIG1lc3NhZ2VdKSA9PiAoe1xuICAgIGFkZHJlc3MsXG4gICAgbWVzc2FnZSxcbiAgfSkpO1xufVxuIl19
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzIyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2JpcDMyMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtDQSxrRkFFQztBQUVELHNGQUtDO0FBRUQsOEZBc0NDO0FBRUQsZ0lBNkJDO0FBbEhELG1EQUFvRDtBQUNwRCxtREFBNkM7QUFDN0MsZ0RBQXNHO0FBQ3RHLHlDQUEyQjtBQUUzQixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2pCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNqQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFCLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0tBQ3hCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFJSCxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2YsV0FBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7Q0FDeEMsQ0FBQyxDQUFDO0FBSUgsU0FBUyxrQkFBa0IsQ0FBQyxPQUFpQjtJQUMzQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FB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TixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVjb2RlT3JFbHNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgYml0Z28gfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBiaXAzMjIsIGZpeGVkU2NyaXB0V2FsbGV0LCBUcmFuc2FjdGlvbiwgdHlwZSBDb2luTmFtZSwgdHlwZSBUcmlwbGUgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuXG5jb25zdCBCSVAzMjJNZXNzYWdlSW5mbyA9IHQudHlwZSh7XG4gIGFkZHJlc3M6IHQuc3RyaW5nLFxuICBtZXNzYWdlOiB0LnN0cmluZyxcbiAgcHVia2V5czogdC5hcnJheSh0LnN0cmluZyksXG4gIHNjcmlwdFR5cGU6IHQudW5pb24oW1xuICAgIHQubGl0ZXJhbCgncDJzaCcpLFxuICAgIHQubGl0ZXJhbCgncDJzaFAyd3NoJyksXG4gICAgdC5saXRlcmFsKCdwMndzaCcpLFxuICAgIHQubGl0ZXJhbCgncDJ0cicpLFxuICAgIHQubGl0ZXJhbCgncDJ0ck11c2lnMicpLFxuICBdKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBCSVAzMjJNZXNzYWdlSW5mbyA9IHQuVHlwZU9mPHR5cGVvZiBCSVAzMjJNZXNzYWdlSW5mbz47XG5cbmNvbnN0IEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlID0gdC50eXBlKHtcbiAgdHhIZXg6IHQuc3RyaW5nLFxuICBtZXNzYWdlSW5mbzogdC5hcnJheShCSVAzMjJNZXNzYWdlSW5mbyksXG59KTtcblxuZXhwb3J0IHR5cGUgQklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGUgPSB0LlR5cGVPZjx0eXBlb2YgQklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGU+O1xuXG5mdW5jdGlvbiBhc3NlcnRQdWJrZXlUcmlwbGUocHVia2V5czogc3RyaW5nW10pOiBUcmlwbGU8c3RyaW5nPiB7XG4gIGlmIChwdWJrZXlzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgZXhhY3RseSAzIHB1YmtleXMsIGdvdCAke3B1YmtleXMubGVuZ3RofWApO1xuICB9XG4gIHJldHVybiBwdWJrZXlzIGFzIFRyaXBsZTxzdHJpbmc+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplQklQMzIyQnJvYWRjYXN0YWJsZU1lc3NhZ2UobWVzc2FnZTogQklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGUpOiBzdHJpbmcge1xuICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkobWVzc2FnZSksICd1dGY4JykudG9TdHJpbmcoJ2hleCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVCSVAzMjJCcm9hZGNhc3RhYmxlTWVzc2FnZShoZXg6IHN0cmluZyk6IEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlIHtcbiAgY29uc3QganNvbiA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20oaGV4LCAnaGV4JykudG9TdHJpbmcoJ3V0ZjgnKSk7XG4gIHJldHVybiBkZWNvZGVPckVsc2UoQklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGUubmFtZSwgQklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGUsIGpzb24sIChlcnJvcikgPT4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGRlY29kZSAke0JJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlLm5hbWV9OiAke2Vycm9yfWApO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVRyYW5zYWN0aW9uRnJvbUJyb2FkY2FzdGFibGVNZXNzYWdlKFxuICBtZXNzYWdlOiBCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZSxcbiAgY29pbk5hbWU6IHN0cmluZ1xuKTogYm9vbGVhbiB7XG4gIGlmIChjb2luTmFtZSAhPT0gJ2J0YycgJiYgY29pbk5hbWUgIT09ICd0YnRjNCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgdGJ0YzQgb3IgYnRjIGNvaW5OYW1lcyBhcmUgc3VwcG9ydGVkLicpO1xuICB9XG4gIGNvbnN0IG5ldHdvcmsgPSBjb2luTmFtZSBhcyBDb2luTmFtZTtcblxuICBpZiAoYml0Z28uaXNQc2J0KG1lc3NhZ2UudHhIZXgpKSB7XG4gICAgY29uc3QgcHNidCA9IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidC5mcm9tQnl0ZXMoQnVmZmVyLmZyb20obWVzc2FnZS50eEhleCwgJ2hleCcpLCBuZXR3b3JrKTtcbiAgICB0cnkge1xuICAgICAgbWVzc2FnZS5tZXNzYWdlSW5mby5mb3JFYWNoKChpbmZvLCBpbnB1dEluZGV4KSA9PiB7XG4gICAgICAgIGJpcDMyMi52ZXJpZnlCaXAzMjJQc2J0SW5wdXRXaXRoUHVia2V5cyhwc2J0LCBpbnB1dEluZGV4LCB7XG4gICAgICAgICAgbWVzc2FnZTogaW5mby5tZXNzYWdlLFxuICAgICAgICAgIHB1YmtleXM6IGFzc2VydFB1YmtleVRyaXBsZShpbmZvLnB1YmtleXMpLFxuICAgICAgICAgIHNjcmlwdFR5cGU6IGluZm8uc2NyaXB0VHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHR4ID0gVHJhbnNhY3Rpb24uZnJvbUJ5dGVzKEJ1ZmZlci5mcm9tKG1lc3NhZ2UudHhIZXgsICdoZXgnKSk7XG4gICAgdHJ5IHtcbiAgICAgIG1lc3NhZ2UubWVzc2FnZUluZm8uZm9yRWFjaCgoaW5mbywgaW5wdXRJbmRleCkgPT4ge1xuICAgICAgICBiaXAzMjIudmVyaWZ5QmlwMzIyVHhJbnB1dFdpdGhQdWJrZXlzKHR4LCBpbnB1dEluZGV4LCB7XG4gICAgICAgICAgbWVzc2FnZTogaW5mby5tZXNzYWdlLFxuICAgICAgICAgIHB1YmtleXM6IGFzc2VydFB1YmtleVRyaXBsZShpbmZvLnB1YmtleXMpLFxuICAgICAgICAgIHNjcmlwdFR5cGU6IGluZm8uc2NyaXB0VHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUJJUDMyMk1lc3NhZ2VMaXN0QW5kVmVyaWZ5RnJvbU1lc3NhZ2VCcm9hZGNhc3RhYmxlKFxuICBtZXNzYWdlQnJvYWRjYXN0YWJsZXM6IEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlW10sXG4gIGNvaW5OYW1lOiBzdHJpbmdcbik6IHsgYWRkcmVzczogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVtdIHtcbiAgLy8gTWFwIGZyb20gdGhlIGFkZHJlc3MgdG8gdGhlIG1lc3NhZ2UuIElmIHRoZXJlIGFyZSBkdXBsaWNhdGVzIG9mIHRoZSBhZGRyZXNzLCBtYWtlIHN1cmUgdGhhdCB0aGVcbiAgLy8gbWVzc2FnZSBpcyB0aGUgc2FtZS4gSWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBhZGRyZXNzZXMgYW5kIHRoZSBtZXNzYWdlcyBhcmUgbm90IHRoZSBzYW1lLCB0aHJvdyBhbiBlcnJvci5cbiAgY29uc3QgYWRkcmVzc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgbWVzc2FnZUJyb2FkY2FzdGFibGVzLmZvckVhY2goKG1lc3NhZ2UsIGluZGV4KSA9PiB7XG4gICAgaWYgKHZlcmlmeVRyYW5zYWN0aW9uRnJvbUJyb2FkY2FzdGFibGVNZXNzYWdlKG1lc3NhZ2UsIGNvaW5OYW1lKSkge1xuICAgICAgbWVzc2FnZS5tZXNzYWdlSW5mby5mb3JFYWNoKChpbmZvKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgYWRkcmVzcywgbWVzc2FnZTogbXNnIH0gPSBpbmZvO1xuICAgICAgICBpZiAoYWRkcmVzc01hcC5oYXMoYWRkcmVzcykpIHtcbiAgICAgICAgICBpZiAoYWRkcmVzc01hcC5nZXQoYWRkcmVzcykgIT09IG1zZykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgYWRkcmVzcyAke2FkZHJlc3N9IGhhcyBkaWZmZXJlbnQgbWVzc2FnZXNgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkcmVzc01hcC5zZXQoYWRkcmVzcywgbXNnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWVzc2FnZSBCcm9hZGNhc3RhYmxlICR7aW5kZXh9IGRpZCBub3QgaGF2ZSBhIHN1Y2Nlc3NmdWwgdmFsaWRhdGlvbmApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIEFycmF5LmZyb20oYWRkcmVzc01hcC5lbnRyaWVzKCkpLm1hcCgoW2FkZHJlc3MsIG1lc3NhZ2VdKSA9PiAoe1xuICAgIGFkZHJlc3MsXG4gICAgbWVzc2FnZSxcbiAgfSkpO1xufVxuIl19
@@ -1,11 +1,12 @@
1
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
2
2
  import { fixedScriptWallet } from '@bitgo/wasm-utxo';
3
+ import { UtxoCoinName } from '../names';
3
4
  import { SdkBackend } from './types';
4
5
  type BufferEncoding = 'hex' | 'base64';
5
6
  export declare function stringToBufferTryFormats(input: string, formats?: BufferEncoding[]): Buffer;
6
- export declare function decodePsbtWith(psbt: string | Buffer, network: utxolib.Network, backend: 'utxolib'): utxolib.bitgo.UtxoPsbt;
7
- export declare function decodePsbtWith(psbt: string | Buffer, network: utxolib.Network, backend: 'wasm-utxo'): fixedScriptWallet.BitGoPsbt;
8
- export declare function decodePsbtWith(psbt: string | Buffer, network: utxolib.Network, backend: SdkBackend): utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt;
7
+ export declare function decodePsbtWith(psbt: string | Buffer, coinName: UtxoCoinName, backend: 'utxolib'): utxolib.bitgo.UtxoPsbt;
8
+ export declare function decodePsbtWith(psbt: string | Buffer, coinName: UtxoCoinName, backend: 'wasm-utxo'): fixedScriptWallet.BitGoPsbt;
9
+ export declare function decodePsbtWith(psbt: string | Buffer, coinName: UtxoCoinName, backend: SdkBackend): utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt;
9
10
  export declare function encodeTransaction(transaction: utxolib.bitgo.UtxoTransaction<bigint | number> | utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt): Buffer;
10
11
  export {};
11
12
  //# sourceMappingURL=decode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../../src/transaction/decode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAiB,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,KAAK,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAc,EAAsB,GAAG,MAAM,CAa7G;AAUD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC1B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,WAAW,GACnB,iBAAiB,CAAC,SAAS,CAAC;AAC/B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAgBxD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,GACjH,MAAM,CAQR"}
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../../src/transaction/decode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAiB,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAA0B,YAAY,EAAE,MAAM,UAAU,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,KAAK,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAc,EAAsB,GAAG,MAAM,CAa7G;AAWD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC1B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,GACnB,iBAAiB,CAAC,SAAS,CAAC;AAC/B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAiBxD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,GACjH,MAAM,CAQR"}
@@ -38,6 +38,7 @@ exports.decodePsbtWith = decodePsbtWith;
38
38
  exports.encodeTransaction = encodeTransaction;
39
39
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
40
40
  const wasm_utxo_1 = require("@bitgo/wasm-utxo");
41
+ const names_1 = require("../names");
41
42
  function stringToBufferTryFormats(input, formats = ['hex', 'base64']) {
42
43
  for (const format of formats) {
43
44
  const buffer = Buffer.from(input, format);
@@ -49,22 +50,24 @@ function stringToBufferTryFormats(input, formats = ['hex', 'base64']) {
49
50
  }
50
51
  throw new Error('input must be a valid hex or base64 string');
51
52
  }
52
- function toNetworkName(network) {
53
+ function toNetworkName(coinName) {
54
+ const network = (0, names_1.getNetworkFromCoinName)(coinName);
53
55
  const networkName = utxolib.getNetworkName(network);
54
56
  if (!networkName) {
55
- throw new Error(`Invalid network: ${network}`);
57
+ throw new Error(`Invalid coinName: ${coinName}`);
56
58
  }
57
59
  return networkName;
58
60
  }
59
- function decodePsbtWith(psbt, network, backend) {
61
+ function decodePsbtWith(psbt, coinName, backend) {
60
62
  if (typeof psbt === 'string') {
61
63
  psbt = Buffer.from(psbt, 'hex');
62
64
  }
63
65
  if (backend === 'utxolib') {
66
+ const network = (0, names_1.getNetworkFromCoinName)(coinName);
64
67
  return utxolib.bitgo.createPsbtFromBuffer(psbt, network);
65
68
  }
66
69
  else {
67
- return wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(psbt, toNetworkName(network));
70
+ return wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(psbt, toNetworkName(coinName));
68
71
  }
69
72
  }
70
73
  function encodeTransaction(transaction) {
@@ -78,4 +81,4 @@ function encodeTransaction(transaction) {
78
81
  return Buffer.from(transaction.serialize());
79
82
  }
80
83
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2RlY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLDREQWFDO0FBeUJELHdDQWFDO0FBRUQsOENBVUM7QUF0RUQsOERBQWdEO0FBQ2hELGdEQUFvRTtBQU1wRSxTQUFnQix3QkFBd0IsQ0FBQyxLQUFhLEVBQUUsVUFBNEIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO0lBQ25HLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUNFLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxjQUFjLEtBQUssS0FBSyxDQUFDO1lBQ2pELENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxjQUFjLEtBQUssS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQzVELENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsT0FBd0I7SUFDN0MsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQWlCRCxTQUFnQixjQUFjLENBQzVCLElBQXFCLEVBQ3JCLE9BQXdCLEVBQ3hCLE9BQW1CO0lBRW5CLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyw2QkFBaUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixXQUFrSDtJQUVsSCxJQUFJLFdBQVcsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pELE9BQU8sV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7U0FBTSxJQUFJLFdBQVcsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pELE9BQU8sV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBmaXhlZFNjcmlwdFdhbGxldCwgdXR4b2xpYkNvbXBhdCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBTZGtCYWNrZW5kIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgQnVmZmVyRW5jb2RpbmcgPSAnaGV4JyB8ICdiYXNlNjQnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9CdWZmZXJUcnlGb3JtYXRzKGlucHV0OiBzdHJpbmcsIGZvcm1hdHM6IEJ1ZmZlckVuY29kaW5nW10gPSBbJ2hleCcsICdiYXNlNjQnXSk6IEJ1ZmZlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IG9mIGZvcm1hdHMpIHtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShpbnB1dCwgZm9ybWF0KTtcbiAgICBjb25zdCBidWZmZXJUb1N0cmluZyA9IGJ1ZmZlci50b1N0cmluZyhmb3JtYXQpO1xuICAgIGlmIChcbiAgICAgIChmb3JtYXQgPT09ICdiYXNlNjQnICYmIGJ1ZmZlclRvU3RyaW5nID09PSBpbnB1dCkgfHxcbiAgICAgIChmb3JtYXQgPT09ICdoZXgnICYmIGJ1ZmZlclRvU3RyaW5nID09PSBpbnB1dC50b0xvd2VyQ2FzZSgpKVxuICAgICkge1xuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ2lucHV0IG11c3QgYmUgYSB2YWxpZCBoZXggb3IgYmFzZTY0IHN0cmluZycpO1xufVxuXG5mdW5jdGlvbiB0b05ldHdvcmtOYW1lKG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHV0eG9saWJDb21wYXQuVXR4b2xpYk5hbWUge1xuICBjb25zdCBuZXR3b3JrTmFtZSA9IHV0eG9saWIuZ2V0TmV0d29ya05hbWUobmV0d29yayk7XG4gIGlmICghbmV0d29ya05hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbmV0d29yazogJHtuZXR3b3JrfWApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrTmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRXaXRoKFxuICBwc2J0OiBzdHJpbmcgfCBCdWZmZXIsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgYmFja2VuZDogJ3V0eG9saWInXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRXaXRoKFxuICBwc2J0OiBzdHJpbmcgfCBCdWZmZXIsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgYmFja2VuZDogJ3dhc20tdXR4bydcbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVQc2J0V2l0aChcbiAgcHNidDogc3RyaW5nIHwgQnVmZmVyLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIGJhY2tlbmQ6IFNka0JhY2tlbmRcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidFdpdGgoXG4gIHBzYnQ6IHN0cmluZyB8IEJ1ZmZlcixcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICBiYWNrZW5kOiBTZGtCYWNrZW5kXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgaWYgKHR5cGVvZiBwc2J0ID09PSAnc3RyaW5nJykge1xuICAgIHBzYnQgPSBCdWZmZXIuZnJvbShwc2J0LCAnaGV4Jyk7XG4gIH1cbiAgaWYgKGJhY2tlbmQgPT09ICd1dHhvbGliJykge1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKHBzYnQsIG5ldHdvcmspO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKHBzYnQsIHRvTmV0d29ya05hbWUobmV0d29yaykpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUcmFuc2FjdGlvbihcbiAgdHJhbnNhY3Rpb246IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludCB8IG51bWJlcj4gfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0XG4pOiBCdWZmZXIge1xuICBpZiAodHJhbnNhY3Rpb24gaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi50b0J1ZmZlcigpO1xuICB9IGVsc2UgaWYgKHRyYW5zYWN0aW9uIGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi50b0J1ZmZlcigpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0cmFuc2FjdGlvbi5zZXJpYWxpemUoKSk7XG4gIH1cbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2RlY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBLDREQWFDO0FBMEJELHdDQWNDO0FBRUQsOENBVUM7QUExRUQsOERBQWdEO0FBQ2hELGdEQUFvRTtBQUVwRSxvQ0FBZ0U7QUFNaEUsU0FBZ0Isd0JBQXdCLENBQUMsS0FBYSxFQUFFLFVBQTRCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztJQUNuRyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsSUFDRSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQztZQUNqRCxDQUFDLE1BQU0sS0FBSyxLQUFLLElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUM1RCxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLFFBQXNCO0lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUEsOEJBQXNCLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQWlCRCxTQUFnQixjQUFjLENBQzVCLElBQXFCLEVBQ3JCLFFBQXNCLEVBQ3RCLE9BQW1CO0lBRW5CLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFBLDhCQUFzQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLDZCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLFdBQWtIO0lBRWxILElBQUksV0FBVyxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekQsT0FBTyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztTQUFNLElBQUksV0FBVyxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekQsT0FBTyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCB1dHhvbGliQ29tcGF0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IGdldE5ldHdvcmtGcm9tQ29pbk5hbWUsIFV0eG9Db2luTmFtZSB9IGZyb20gJy4uL25hbWVzJztcblxuaW1wb3J0IHsgU2RrQmFja2VuZCB9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIEJ1ZmZlckVuY29kaW5nID0gJ2hleCcgfCAnYmFzZTY0JztcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvQnVmZmVyVHJ5Rm9ybWF0cyhpbnB1dDogc3RyaW5nLCBmb3JtYXRzOiBCdWZmZXJFbmNvZGluZ1tdID0gWydoZXgnLCAnYmFzZTY0J10pOiBCdWZmZXIge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmZyb20oaW5wdXQsIGZvcm1hdCk7XG4gICAgY29uc3QgYnVmZmVyVG9TdHJpbmcgPSBidWZmZXIudG9TdHJpbmcoZm9ybWF0KTtcbiAgICBpZiAoXG4gICAgICAoZm9ybWF0ID09PSAnYmFzZTY0JyAmJiBidWZmZXJUb1N0cmluZyA9PT0gaW5wdXQpIHx8XG4gICAgICAoZm9ybWF0ID09PSAnaGV4JyAmJiBidWZmZXJUb1N0cmluZyA9PT0gaW5wdXQudG9Mb3dlckNhc2UoKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBidWZmZXI7XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdpbnB1dCBtdXN0IGJlIGEgdmFsaWQgaGV4IG9yIGJhc2U2NCBzdHJpbmcnKTtcbn1cblxuZnVuY3Rpb24gdG9OZXR3b3JrTmFtZShjb2luTmFtZTogVXR4b0NvaW5OYW1lKTogdXR4b2xpYkNvbXBhdC5VdHhvbGliTmFtZSB7XG4gIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrRnJvbUNvaW5OYW1lKGNvaW5OYW1lKTtcbiAgY29uc3QgbmV0d29ya05hbWUgPSB1dHhvbGliLmdldE5ldHdvcmtOYW1lKG5ldHdvcmspO1xuICBpZiAoIW5ldHdvcmtOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW5OYW1lOiAke2NvaW5OYW1lfWApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrTmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRXaXRoKFxuICBwc2J0OiBzdHJpbmcgfCBCdWZmZXIsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUsXG4gIGJhY2tlbmQ6ICd1dHhvbGliJ1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVQc2J0V2l0aChcbiAgcHNidDogc3RyaW5nIHwgQnVmZmVyLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lLFxuICBiYWNrZW5kOiAnd2FzbS11dHhvJ1xuKTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0O1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRXaXRoKFxuICBwc2J0OiBzdHJpbmcgfCBCdWZmZXIsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUsXG4gIGJhY2tlbmQ6IFNka0JhY2tlbmRcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidFdpdGgoXG4gIHBzYnQ6IHN0cmluZyB8IEJ1ZmZlcixcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZSxcbiAgYmFja2VuZDogU2RrQmFja2VuZFxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGlmICh0eXBlb2YgcHNidCA9PT0gJ3N0cmluZycpIHtcbiAgICBwc2J0ID0gQnVmZmVyLmZyb20ocHNidCwgJ2hleCcpO1xuICB9XG4gIGlmIChiYWNrZW5kID09PSAndXR4b2xpYicpIHtcbiAgICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21Db2luTmFtZShjb2luTmFtZSk7XG4gICAgcmV0dXJuIHV0eG9saWIuYml0Z28uY3JlYXRlUHNidEZyb21CdWZmZXIocHNidCwgbmV0d29yayk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidC5mcm9tQnl0ZXMocHNidCwgdG9OZXR3b3JrTmFtZShjb2luTmFtZSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUcmFuc2FjdGlvbihcbiAgdHJhbnNhY3Rpb246IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludCB8IG51bWJlcj4gfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0XG4pOiBCdWZmZXIge1xuICBpZiAodHJhbnNhY3Rpb24gaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi50b0J1ZmZlcigpO1xuICB9IGVsc2UgaWYgKHRyYW5zYWN0aW9uIGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi50b0J1ZmZlcigpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0cmFuc2FjdGlvbi5zZXJpYWxpemUoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AAGpE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AA4B1F,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,eAAe,CAAC,aAAa,GACzC,gCAAgC,CAkBlC"}
1
+ {"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AAGpE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AA6B1F,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,eAAe,CAAC,aAAa,GACzC,gCAAgC,CAmBlC"}
@@ -36,9 +36,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.explainPsbt = explainPsbt;
37
37
  const coreDescriptors = __importStar(require("@bitgo-beta/utxo-core/descriptor"));
38
38
  const recipient_1 = require("../recipient");
39
- function toRecipient(output, network) {
39
+ const names_1 = require("../../names");
40
+ function toRecipient(output, coinName) {
40
41
  return {
41
- address: (0, recipient_1.toExtendedAddressFormat)(output.script, network),
42
+ address: (0, recipient_1.toExtendedAddressFormat)(output.script, coinName),
42
43
  amount: output.value.toString(),
43
44
  };
44
45
  }
@@ -65,16 +66,17 @@ function explainPsbt(psbt, descriptors) {
65
66
  const changeOutputs = outputs.filter((o) => o.scriptId !== undefined);
66
67
  const fee = sumValues(inputs) - sumValues(outputs);
67
68
  const inputSignatures = getInputSignatures(psbt);
69
+ const coinName = (0, names_1.getCoinName)(psbt.network);
68
70
  return {
69
71
  inputSignatures,
70
72
  signatures: inputSignatures.reduce((a, b) => Math.min(a, b), Infinity),
71
73
  locktime: psbt.locktime,
72
74
  id: psbt.getUnsignedTx().getId(),
73
- outputs: externalOutputs.map((o) => toRecipient(o, psbt.network)),
75
+ outputs: externalOutputs.map((o) => toRecipient(o, coinName)),
74
76
  outputAmount: sumValues(externalOutputs).toString(),
75
- changeOutputs: changeOutputs.map((o) => toRecipient(o, psbt.network)),
77
+ changeOutputs: changeOutputs.map((o) => toRecipient(o, coinName)),
76
78
  changeAmount: sumValues(changeOutputs).toString(),
77
79
  fee: fee.toString(),
78
80
  };
79
81
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlDQSxrQ0FxQkM7QUFwREQsa0ZBQW9FO0FBRXBFLDRDQUF1RDtBQUd2RCxTQUFTLFdBQVcsQ0FBQyxNQUFvQyxFQUFFLE9BQXdCO0lBQ2pGLE9BQU87UUFDTCxPQUFPLEVBQUUsSUFBQSxtQ0FBdUIsRUFBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztRQUN4RCxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUF3QjtJQUN6QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBUywrQkFBK0IsQ0FBQyxJQUE0QixFQUFFLFVBQWtCO0lBQ3ZGLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLElBQTRCO0lBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsK0JBQStCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FDekIsSUFBNEIsRUFDNUIsV0FBMEM7SUFFMUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN4RSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsT0FBTztRQUNMLGVBQWU7UUFDZixVQUFVLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUN0RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUU7UUFDaEMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLFlBQVksRUFBRSxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ25ELGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxZQUFZLEVBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNqRCxHQUFHLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtLQUNwQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgSVRyYW5zYWN0aW9uUmVjaXBpZW50IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgY29yZURlc2NyaXB0b3JzIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZS9kZXNjcmlwdG9yJztcblxuaW1wb3J0IHsgdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uRGVzY3JpcHRvciB9IGZyb20gJy4uL2ZpeGVkU2NyaXB0L2V4cGxhaW5UcmFuc2FjdGlvbic7XG5cbmZ1bmN0aW9uIHRvUmVjaXBpZW50KG91dHB1dDogY29yZURlc2NyaXB0b3JzLlBhcnNlZE91dHB1dCwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogSVRyYW5zYWN0aW9uUmVjaXBpZW50IHtcbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdChvdXRwdXQuc2NyaXB0LCBuZXR3b3JrKSxcbiAgICBhbW91bnQ6IG91dHB1dC52YWx1ZS50b1N0cmluZygpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzdW1WYWx1ZXMoYXJyOiB7IHZhbHVlOiBiaWdpbnQgfVtdKTogYmlnaW50IHtcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKHN1bSwgZSkgPT4gc3VtICsgZS52YWx1ZSwgQmlnSW50KDApKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5wdXRTaWduYXR1cmVzRm9ySW5wdXRJbmRleChwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LCBpbnB1dEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB7IHBhcnRpYWxTaWcgfSA9IHBzYnQuZGF0YS5pbnB1dHNbaW5wdXRJbmRleF07XG4gIGlmICghcGFydGlhbFNpZykge1xuICAgIHJldHVybiAwO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsU2lnLnJlZHVjZSgoYWdnLCBwKSA9PiB7XG4gICAgY29uc3QgdmFsaWQgPSBwc2J0LnZhbGlkYXRlU2lnbmF0dXJlc09mSW5wdXRDb21tb24oaW5wdXRJbmRleCwgcC5wdWJrZXkpO1xuICAgIHJldHVybiBhZ2cgKyAodmFsaWQgPyAxIDogMCk7XG4gIH0sIDApO1xufVxuXG5mdW5jdGlvbiBnZXRJbnB1dFNpZ25hdHVyZXMocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCk6IG51bWJlcltdIHtcbiAgcmV0dXJuIHBzYnQuZGF0YS5pbnB1dHMubWFwKChfLCBpKSA9PiBnZXRJbnB1dFNpZ25hdHVyZXNGb3JJbnB1dEluZGV4KHBzYnQsIGkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Qc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBkZXNjcmlwdG9yczogY29yZURlc2NyaXB0b3JzLkRlc2NyaXB0b3JNYXBcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25EZXNjcmlwdG9yIHtcbiAgY29uc3QgcGFyc2VkVHJhbnNhY3Rpb24gPSBjb3JlRGVzY3JpcHRvcnMucGFyc2UocHNidCwgZGVzY3JpcHRvcnMsIHBzYnQubmV0d29yayk7XG4gIGNvbnN0IHsgaW5wdXRzLCBvdXRwdXRzIH0gPSBwYXJzZWRUcmFuc2FjdGlvbjtcbiAgY29uc3QgZXh0ZXJuYWxPdXRwdXRzID0gb3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNoYW5nZU91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCAhPT0gdW5kZWZpbmVkKTtcbiAgY29uc3QgZmVlID0gc3VtVmFsdWVzKGlucHV0cykgLSBzdW1WYWx1ZXMob3V0cHV0cyk7XG4gIGNvbnN0IGlucHV0U2lnbmF0dXJlcyA9IGdldElucHV0U2lnbmF0dXJlcyhwc2J0KTtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFNpZ25hdHVyZXMsXG4gICAgc2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzLnJlZHVjZSgoYSwgYikgPT4gTWF0aC5taW4oYSwgYiksIEluZmluaXR5KSxcbiAgICBsb2NrdGltZTogcHNidC5sb2NrdGltZSxcbiAgICBpZDogcHNidC5nZXRVbnNpZ25lZFR4KCkuZ2V0SWQoKSxcbiAgICBvdXRwdXRzOiBleHRlcm5hbE91dHB1dHMubWFwKChvKSA9PiB0b1JlY2lwaWVudChvLCBwc2J0Lm5ldHdvcmspKSxcbiAgICBvdXRwdXRBbW91bnQ6IHN1bVZhbHVlcyhleHRlcm5hbE91dHB1dHMpLnRvU3RyaW5nKCksXG4gICAgY2hhbmdlT3V0cHV0czogY2hhbmdlT3V0cHV0cy5tYXAoKG8pID0+IHRvUmVjaXBpZW50KG8sIHBzYnQubmV0d29yaykpLFxuICAgIGNoYW5nZUFtb3VudDogc3VtVmFsdWVzKGNoYW5nZU91dHB1dHMpLnRvU3RyaW5nKCksXG4gICAgZmVlOiBmZWUudG9TdHJpbmcoKSxcbiAgfTtcbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtDQSxrQ0FzQkM7QUF0REQsa0ZBQW9FO0FBRXBFLDRDQUF1RDtBQUV2RCx1Q0FBd0Q7QUFFeEQsU0FBUyxXQUFXLENBQUMsTUFBb0MsRUFBRSxRQUFzQjtJQUMvRSxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUEsbUNBQXVCLEVBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDekQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBd0I7SUFDekMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsK0JBQStCLENBQUMsSUFBNEIsRUFBRSxVQUFrQjtJQUN2RixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUE0QjtJQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxTQUFnQixXQUFXLENBQ3pCLElBQTRCLEVBQzVCLFdBQTBDO0lBRTFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRixNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDO0lBQzlDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDeEUsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN0RSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUEsbUJBQVcsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsT0FBTztRQUNMLGVBQWU7UUFDZixVQUFVLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUN0RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUU7UUFDaEMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0QsWUFBWSxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDbkQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDakQsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7S0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIGNvcmVEZXNjcmlwdG9ycyBmcm9tICdAYml0Z28tYmV0YS91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0IH0gZnJvbSAnLi4vcmVjaXBpZW50JztcbmltcG9ydCB0eXBlIHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuLi9maXhlZFNjcmlwdC9leHBsYWluVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgZ2V0Q29pbk5hbWUsIFV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcblxuZnVuY3Rpb24gdG9SZWNpcGllbnQob3V0cHV0OiBjb3JlRGVzY3JpcHRvcnMuUGFyc2VkT3V0cHV0LCBjb2luTmFtZTogVXR4b0NvaW5OYW1lKTogSVRyYW5zYWN0aW9uUmVjaXBpZW50IHtcbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdChvdXRwdXQuc2NyaXB0LCBjb2luTmFtZSksXG4gICAgYW1vdW50OiBvdXRwdXQudmFsdWUudG9TdHJpbmcoKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3VtVmFsdWVzKGFycjogeyB2YWx1ZTogYmlnaW50IH1bXSk6IGJpZ2ludCB7XG4gIHJldHVybiBhcnIucmVkdWNlKChzdW0sIGUpID0+IHN1bSArIGUudmFsdWUsIEJpZ0ludCgwKSk7XG59XG5cbmZ1bmN0aW9uIGdldElucHV0U2lnbmF0dXJlc0ZvcklucHV0SW5kZXgocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCwgaW5wdXRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgeyBwYXJ0aWFsU2lnIH0gPSBwc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdO1xuICBpZiAoIXBhcnRpYWxTaWcpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICByZXR1cm4gcGFydGlhbFNpZy5yZWR1Y2UoKGFnZywgcCkgPT4ge1xuICAgIGNvbnN0IHZhbGlkID0gcHNidC52YWxpZGF0ZVNpZ25hdHVyZXNPZklucHV0Q29tbW9uKGlucHV0SW5kZXgsIHAucHVia2V5KTtcbiAgICByZXR1cm4gYWdnICsgKHZhbGlkID8gMSA6IDApO1xuICB9LCAwKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5wdXRTaWduYXR1cmVzKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQpOiBudW1iZXJbXSB7XG4gIHJldHVybiBwc2J0LmRhdGEuaW5wdXRzLm1hcCgoXywgaSkgPT4gZ2V0SW5wdXRTaWduYXR1cmVzRm9ySW5wdXRJbmRleChwc2J0LCBpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluUHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgZGVzY3JpcHRvcnM6IGNvcmVEZXNjcmlwdG9ycy5EZXNjcmlwdG9yTWFwXG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uRGVzY3JpcHRvciB7XG4gIGNvbnN0IHBhcnNlZFRyYW5zYWN0aW9uID0gY29yZURlc2NyaXB0b3JzLnBhcnNlKHBzYnQsIGRlc2NyaXB0b3JzLCBwc2J0Lm5ldHdvcmspO1xuICBjb25zdCB7IGlucHV0cywgb3V0cHV0cyB9ID0gcGFyc2VkVHJhbnNhY3Rpb247XG4gIGNvbnN0IGV4dGVybmFsT3V0cHV0cyA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQpO1xuICBjb25zdCBjaGFuZ2VPdXRwdXRzID0gb3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgIT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGZlZSA9IHN1bVZhbHVlcyhpbnB1dHMpIC0gc3VtVmFsdWVzKG91dHB1dHMpO1xuICBjb25zdCBpbnB1dFNpZ25hdHVyZXMgPSBnZXRJbnB1dFNpZ25hdHVyZXMocHNidCk7XG4gIGNvbnN0IGNvaW5OYW1lID0gZ2V0Q29pbk5hbWUocHNidC5uZXR3b3JrKTtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFNpZ25hdHVyZXMsXG4gICAgc2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzLnJlZHVjZSgoYSwgYikgPT4gTWF0aC5taW4oYSwgYiksIEluZmluaXR5KSxcbiAgICBsb2NrdGltZTogcHNidC5sb2NrdGltZSxcbiAgICBpZDogcHNidC5nZXRVbnNpZ25lZFR4KCkuZ2V0SWQoKSxcbiAgICBvdXRwdXRzOiBleHRlcm5hbE91dHB1dHMubWFwKChvKSA9PiB0b1JlY2lwaWVudChvLCBjb2luTmFtZSkpLFxuICAgIG91dHB1dEFtb3VudDogc3VtVmFsdWVzKGV4dGVybmFsT3V0cHV0cykudG9TdHJpbmcoKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiBjaGFuZ2VPdXRwdXRzLm1hcCgobykgPT4gdG9SZWNpcGllbnQobywgY29pbk5hbWUpKSxcbiAgICBjaGFuZ2VBbW91bnQ6IHN1bVZhbHVlcyhjaGFuZ2VPdXRwdXRzKS50b1N0cmluZygpLFxuICAgIGZlZTogZmVlLnRvU3RyaW5nKCksXG4gIH07XG59XG4iXX0=
@@ -4,12 +4,13 @@ import * as coreDescriptors from '@bitgo-beta/utxo-core/descriptor';
4
4
  import { AbstractUtxoCoin, ParseTransactionOptions } from '../../abstractUtxoCoin';
5
5
  import { BaseOutput, BaseParsedTransaction, BaseParsedTransactionOutputs } from '../types';
6
6
  import { IDescriptorWallet } from '../../descriptor/descriptorWallet';
7
+ import { UtxoCoinName } from '../../names';
7
8
  type ParsedOutput = coreDescriptors.ParsedOutput;
8
9
  export type RecipientOutput = Omit<ParsedOutput, 'value'> & {
9
10
  value: bigint | 'max';
10
11
  };
11
12
  export type ParsedOutputsBigInt = BaseParsedTransactionOutputs<bigint, BaseOutput<bigint | 'max'>>;
12
- export declare function toBaseParsedTransactionOutputsFromPsbt(psbt: utxolib.bitgo.UtxoPsbt, descriptorMap: coreDescriptors.DescriptorMap, recipients: ITransactionRecipient[], network: utxolib.Network): ParsedOutputsBigInt;
13
+ export declare function toBaseParsedTransactionOutputsFromPsbt(psbt: utxolib.bitgo.UtxoPsbt, descriptorMap: coreDescriptors.DescriptorMap, recipients: ITransactionRecipient[], coinName: UtxoCoinName): ParsedOutputsBigInt;
13
14
  export type ParsedDescriptorTransaction<TAmount extends number | bigint> = BaseParsedTransaction<TAmount, BaseOutput<TAmount | 'max'>>;
14
15
  export declare function parse(coin: AbstractUtxoCoin, wallet: IDescriptorWallet, params: ParseTransactionOptions<number | bigint>): ParsedDescriptorTransaction<bigint>;
15
16
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAG3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE,KAAK,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAC1D,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB,CAAC;AAkDF,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAmBnG,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,aAAa,EAAE,eAAe,CAAC,aAAa,EAC5C,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,mBAAmB,CASrB;AAED,MAAM,MAAM,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAC9F,OAAO,EACP,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,CAC5B,CAAC;AAEF,wBAAgB,KAAK,CACnB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,MAAM,GAAG,MAAM,CAAC,GAC/C,2BAA2B,CAAC,MAAM,CAAC,CA4BrC"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAG3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,KAAK,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAC1D,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB,CAAC;AAkDF,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAmBnG,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,aAAa,EAAE,eAAe,CAAC,aAAa,EAC5C,UAAU,EAAE,qBAAqB,EAAE,EACnC,QAAQ,EAAE,YAAY,GACrB,mBAAmB,CASrB;AAED,MAAM,MAAM,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAC9F,OAAO,EACP,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,CAC5B,CAAC;AAEF,wBAAgB,KAAK,CACnB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,MAAM,GAAG,MAAM,CAAC,GAC/C,2BAA2B,CAAC,MAAM,CAAC,CA4BrC"}
@@ -41,11 +41,11 @@ const keychains_1 = require("../../keychains");
41
41
  const descriptor_1 = require("../../descriptor");
42
42
  const recipient_1 = require("../recipient");
43
43
  const outputDifference_1 = require("../outputDifference");
44
- function toRecipientOutput(recipient, network) {
44
+ function toRecipientOutput(recipient, coinName) {
45
45
  return {
46
46
  address: recipient.address,
47
47
  value: recipient.amount === 'max' ? 'max' : BigInt(recipient.amount),
48
- script: (0, recipient_1.fromExtendedAddressFormatToScript)(recipient.address, network),
48
+ script: (0, recipient_1.fromExtendedAddressFormatToScript)(recipient.address, coinName),
49
49
  };
50
50
  }
51
51
  function parseOutputsWithPsbt(psbt, descriptorMap, recipientOutputs) {
@@ -61,28 +61,28 @@ function parseOutputsWithPsbt(psbt, descriptorMap, recipientOutputs) {
61
61
  function sumValues(arr) {
62
62
  return arr.reduce((sum, e) => sum + e.value, BigInt(0));
63
63
  }
64
- function toBaseOutputs(outputs, network) {
64
+ function toBaseOutputs(outputs, coinName) {
65
65
  return outputs.map((o) => ({
66
- address: (0, recipient_1.toExtendedAddressFormat)(o.script, network),
66
+ address: (0, recipient_1.toExtendedAddressFormat)(o.script, coinName),
67
67
  amount: o.value === 'max' ? 'max' : BigInt(o.value),
68
68
  external: o.scriptId === undefined,
69
69
  }));
70
70
  }
71
- function toBaseParsedTransactionOutputs({ outputs, changeOutputs, explicitOutputs, implicitOutputs, missingOutputs }, network) {
71
+ function toBaseParsedTransactionOutputs({ outputs, changeOutputs, explicitOutputs, implicitOutputs, missingOutputs }, coinName) {
72
72
  const explicitExternalOutputs = explicitOutputs.filter((o) => o.scriptId === undefined);
73
73
  const implicitExternalOutputs = implicitOutputs.filter((o) => o.scriptId === undefined);
74
74
  return {
75
- outputs: toBaseOutputs(outputs, network),
76
- changeOutputs: toBaseOutputs(changeOutputs, network),
77
- explicitExternalOutputs: toBaseOutputs(explicitExternalOutputs, network),
75
+ outputs: toBaseOutputs(outputs, coinName),
76
+ changeOutputs: toBaseOutputs(changeOutputs, coinName),
77
+ explicitExternalOutputs: toBaseOutputs(explicitExternalOutputs, coinName),
78
78
  explicitExternalSpendAmount: sumValues(explicitExternalOutputs),
79
- implicitExternalOutputs: toBaseOutputs(implicitExternalOutputs, network),
79
+ implicitExternalOutputs: toBaseOutputs(implicitExternalOutputs, coinName),
80
80
  implicitExternalSpendAmount: sumValues(implicitExternalOutputs),
81
- missingOutputs: toBaseOutputs(missingOutputs, network),
81
+ missingOutputs: toBaseOutputs(missingOutputs, coinName),
82
82
  };
83
83
  }
84
- function toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, network) {
85
- return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(psbt, descriptorMap, recipients.map((r) => toRecipientOutput(r, psbt.network))), network);
84
+ function toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, coinName) {
85
+ return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(psbt, descriptorMap, recipients.map((r) => toRecipientOutput(r, coinName))), coinName);
86
86
  }
87
87
  function parse(coin, wallet, params) {
88
88
  if (params.txParams.allowExternalChangeAddress) {
@@ -106,11 +106,11 @@ function parse(coin, wallet, params) {
106
106
  const walletKeys = (0, keychains_1.toBip32Triple)(keychains);
107
107
  const descriptorMap = (0, descriptor_1.getDescriptorMapFromWallet)(wallet, walletKeys, (0, descriptor_1.getPolicyForEnv)(params.wallet.bitgo.env));
108
108
  return {
109
- ...toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, psbt.network),
109
+ ...toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, coin.name),
110
110
  keychains,
111
111
  keySignatures: (0, keychains_1.getKeySignatures)(wallet) ?? {},
112
112
  customChange: undefined,
113
113
  needsCustomChangeKeySignatureVerification: false,
114
114
  };
115
115
  }
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFGQSx3RkFjQztBQU9ELHNCQWdDQztBQTFJRCw4REFBZ0Q7QUFFaEQsa0ZBQW9FO0FBSXBFLCtDQUFzRjtBQUN0RixpREFBK0U7QUFFL0UsNENBQTBGO0FBQzFGLDBEQUFrRztBQVFsRyxTQUFTLGlCQUFpQixDQUFDLFNBQWdDLEVBQUUsT0FBd0I7SUFDbkYsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztRQUMxQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDcEUsTUFBTSxFQUFFLElBQUEsNkNBQWlDLEVBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7S0FDdEUsQ0FBQztBQUNKLENBQUM7QUFRRCxTQUFTLG9CQUFvQixDQUMzQixJQUE0QixFQUM1QixhQUE0QyxFQUM1QyxnQkFBbUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUM3RSxNQUFNLFdBQVcsR0FBRyxJQUFBLGdEQUE2QixFQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRixPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0s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Q0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkUsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxNQUFNLGFBQWEsR0FBRyxJQUFBLHVDQUEwQixFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBQSw0QkFBZSxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0csT0FBTztRQUNMLEdBQUcsc0NBQXNDLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4RixTQUFTO1FBQ1QsYUFBYSxFQUFFLElBQUEsNEJBQWdCLEVBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtRQUM3QyxZQUFZLEVBQUUsU0FBUztRQUN2Qix5Q0FBeUMsRUFBRSxLQUFLO0tBQ2pELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyBjb3JlRGVzY3JpcHRvcnMgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgQmFzZU91dHB1dCwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uLCBCYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0S2V5U2lnbmF0dXJlcywgdG9CaXAzMlRyaXBsZSwgVXR4b05hbWVkS2V5Y2hhaW5zIH0gZnJvbSAnLi4vLi4va2V5Y2hhaW5zJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBnZXRQb2xpY3lGb3JFbnYgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IElEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvci9kZXNjcmlwdG9yV2FsbGV0JztcbmltcG9ydCB7IGZyb21FeHRlbmRlZEFkZHJlc3NGb3JtYXRUb1NjcmlwdCwgdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuaW1wb3J0IHsgb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQsIE91dHB1dERpZmZlcmVuY2VXaXRoRXhwZWN0ZWQgfSBmcm9tICcuLi9vdXRwdXREaWZmZXJlbmNlJztcblxudHlwZSBQYXJzZWRPdXRwdXQgPSBjb3JlRGVzY3JpcHRvcnMuUGFyc2VkT3V0cHV0O1xuXG5leHBvcnQgdHlwZSBSZWNpcGllbnRPdXRwdXQgPSBPbWl0PFBhcnNlZE91dHB1dCwgJ3ZhbHVlJz4gJiB7XG4gIHZhbHVlOiBiaWdpbnQgfCAnbWF4Jztcbn07XG5cbmZ1bmN0aW9uIHRvUmVjaXBpZW50T3V0cHV0KHJlY2lwaWVudDogSVRyYW5zYWN0aW9uUmVjaXBpZW50LCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBSZWNpcGllbnRPdXRwdXQge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgIHZhbHVlOiByZWNpcGllbnQuYW1vdW50ID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KHJlY2lwaWVudC5hbW91bnQpLFxuICAgIHNjcmlwdDogZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0KHJlY2lwaWVudC5hZGRyZXNzLCBuZXR3b3JrKSxcbiAgfTtcbn1cblxuLy8gVE9ETyhCVEMtMTY5Nyk6IGFsbG93IG91dHB1dHMgd2l0aCBgdmFsdWU6ICdtYXgnYCBoZXJlXG50eXBlIFBhcnNlZE91dHB1dHMgPSBPdXRwdXREaWZmZXJlbmNlV2l0aEV4cGVjdGVkPFBhcnNlZE91dHB1dCwgUmVjaXBpZW50T3V0cHV0PiAmIHtcbiAgb3V0cHV0czogUGFyc2VkT3V0cHV0W107XG4gIGNoYW5nZU91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xufTtcblxuZnVuY3Rpb24gcGFyc2VPdXRwdXRzV2l0aFBzYnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGRlc2NyaXB0b3JNYXA6IGNvcmVEZXNjcmlwdG9ycy5EZXNjcmlwdG9yTWFwLFxuICByZWNpcGllbnRPdXRwdXRzOiBSZWNpcGllbnRPdXRwdXRbXVxuKTogUGFyc2VkT3V0cHV0cyB7XG4gIGNvbnN0IHBhcnNlZCA9IGNvcmVEZXNjcmlwdG9ycy5wYXJzZShwc2J0LCBkZXNjcmlwdG9yTWFwLCBwc2J0Lm5ldHdvcmspO1xuICBjb25zdCBjaGFuZ2VPdXRwdXRzID0gcGFyc2VkLm91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkICE9PSB1bmRlZmluZWQpO1xuICBjb25zdCBvdXRwdXREaWZmcyA9IG91dHB1dERpZmZlcmVuY2VzV2l0aEV4cGVjdGVkKHBhcnNlZC5vdXRwdXRzLCByZWNpcGllbnRPdXRwdXRzKTtcbiAgcmV0dXJuIHtcbiAgICBvdXRwdXRzOiBwYXJzZWQub3V0cHV0cyxcbiAgICBjaGFuZ2VPdXRwdXRzLFxuICAgIC4uLm91dHB1dERpZmZzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzdW1WYWx1ZXMoYXJyOiB7IHZhbHVlOiBiaWdpbnQgfVtdKTogYmlnaW50IHtcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKHN1bSwgZSkgPT4gc3VtICsgZS52YWx1ZSwgQmlnSW50KDApKTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhvdXRwdXRzOiBQYXJzZWRPdXRwdXRbXSwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogQmFzZU91dHB1dDxiaWdpbnQ+W107XG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRzKG91dHB1dHM6IFJlY2lwaWVudE91dHB1dFtdLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdO1xuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhcbiAgb3V0cHV0czogKFBhcnNlZE91dHB1dCB8IFJlY2lwaWVudE91dHB1dClbXSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdIHtcbiAgcmV0dXJuIG91dHB1dHMubWFwKFxuICAgIChvKTogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4gPT4gKHtcbiAgICAgIGFkZHJlc3M6IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KG8uc2NyaXB0LCBuZXR3b3JrKSxcbiAgICAgIGFtb3VudDogby52YWx1ZSA9PT0gJ21heCcgPyAnbWF4JyA6IEJpZ0ludChvLnZhbHVlKSxcbiAgICAgIGV4dGVybmFsOiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQsXG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkT3V0cHV0c0JpZ0ludCA9IEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8YmlnaW50LCBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPj47XG5cbmZ1bmN0aW9uIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyhcbiAgeyBvdXRwdXRzLCBjaGFuZ2VPdXRwdXRzLCBleHBsaWNpdE91dHB1dHMsIGltcGxpY2l0T3V0cHV0cywgbWlzc2luZ091dHB1dHMgfTogUGFyc2VkT3V0cHV0cyxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBQYXJzZWRPdXRwdXRzQmlnSW50IHtcbiAgY29uc3QgZXhwbGljaXRFeHRlcm5hbE91dHB1dHMgPSBleHBsaWNpdE91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQpO1xuICBjb25zdCBpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyA9IGltcGxpY2l0T3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogdG9CYXNlT3V0cHV0cyhvdXRwdXRzLCBuZXR3b3JrKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGNoYW5nZU91dHB1dHMsIG5ldHdvcmspLFxuICAgIGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzLCBuZXR3b3JrKSxcbiAgICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhleHBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIG5ldHdvcmspLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogc3VtVmFsdWVzKGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKSxcbiAgICBtaXNzaW5nT3V0cHV0czogdG9CYXNlT3V0cHV0cyhtaXNzaW5nT3V0cHV0cywgbmV0d29yayksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgZGVzY3JpcHRvck1hcDogY29yZURlc2NyaXB0b3JzLkRlc2NyaXB0b3JNYXAsXG4gIHJlY2lwaWVudHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICByZXR1cm4gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICAgIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICAgICAgcHNidCxcbiAgICAgIGRlc2NyaXB0b3JNYXAsXG4gICAgICByZWNpcGllbnRzLm1hcCgocikgPT4gdG9SZWNpcGllbnRPdXRwdXQociwgcHNidC5uZXR3b3JrKSlcbiAgICApLFxuICAgIG5ldHdvcmtcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPFRBbW91bnQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFxuICBUQW1vdW50LFxuICBCYXNlT3V0cHV0PFRBbW91bnQgfCAnbWF4Jz5cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxudW1iZXIgfCBiaWdpbnQ+XG4pOiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiB7XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuY2hhbmdlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcignY2hhbmdlQWRkcmVzcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgfVxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJhbXMudmVyaWZpY2F0aW9uPy5rZXljaGFpbnM7XG4gIGlmICgha2V5Y2hhaW5zIHx8ICFVdHhvTmFtZWRLZXljaGFpbnMuaXMoa2V5Y2hhaW5zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5Y2hhaW4gaXMgcmVxdWlyZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGNvbnN0IHsgcmVjaXBpZW50cyB9ID0gcGFyYW1zLnR4UGFyYW1zO1xuICBpZiAoIXJlY2lwaWVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlY2lwaWVudHMgaXMgcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBwc2J0ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG4gIGlmICghKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgcHNidCB0byBiZSBhbiBpbnN0YW5jZSBvZiBVdHhvUHNidCcpO1xuICB9XG4gIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKGtleWNoYWlucyk7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCh3YWxsZXQsIHdhbGxldEtleXMsIGdldFBvbGljeUZvckVudihwYXJhbXMud2FsbGV0LmJpdGdvLmVudikpO1xuICByZXR1cm4ge1xuICAgIC4uLnRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXAsIHJlY2lwaWVudHMsIHBzYnQubmV0d29yayksXG4gICAga2V5Y2hhaW5zLFxuICAgIGtleVNpZ25hdHVyZXM6IGdldEtleVNpZ25hdHVyZXMod2FsbGV0KSA/PyB7fSxcbiAgICBjdXN0b21DaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogZmFsc2UsXG4gIH07XG59XG4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNGQSx3RkFjQztBQU9ELHNCQWdDQztBQTNJRCw4REFBZ0Q7QUFFaEQsa0ZBQW9FO0FBSXBFLCtDQUFzRjtBQUN0RixpREFBK0U7QUFFL0UsNENBQTBGO0FBQzFGLDBEQUFrRztBQVNsRyxTQUFTLGlCQUFpQixDQUFDLFNBQWdDLEVBQUUsUUFBc0I7SUFDakYsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztRQUMxQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDcEUsTUFBTSxFQUFFLElBQUEsNkNBQWlDLEVBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7S0FDdkUsQ0FBQztBQUNKLENBQUM7QUFRRCxTQUFTLG9CQUFvQixDQUMzQixJQUE0QixFQUM1QixhQUE0QyxFQUM1QyxnQkFBbUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUM3RSxNQUFNLFdBQVcsR0FBRyxJQUFBLGdEQUE2QixFQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRixPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0s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Q0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBQSx5QkFBYSxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sYUFBYSxHQUFHLElBQUEsdUNBQTBCLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFBLDRCQUFlLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvRyxPQUFPO1FBQ0wsR0FBRyxzQ0FBc0MsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JGLFNBQVM7UUFDVCxhQUFhLEVBQUUsSUFBQSw0QkFBZ0IsRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQzdDLFlBQVksRUFBRSxTQUFTO1FBQ3ZCLHlDQUF5QyxFQUFFLEtBQUs7S0FDakQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIGNvcmVEZXNjcmlwdG9ycyBmcm9tICdAYml0Z28tYmV0YS91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBCYXNlT3V0cHV0LCBCYXNlUGFyc2VkVHJhbnNhY3Rpb24sIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRLZXlTaWduYXR1cmVzLCB0b0JpcDMyVHJpcGxlLCBVdHhvTmFtZWRLZXljaGFpbnMgfSBmcm9tICcuLi8uLi9rZXljaGFpbnMnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGdldFBvbGljeUZvckVudiB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQnO1xuaW1wb3J0IHsgZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0LCB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5pbXBvcnQgeyBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZCwgT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZCB9IGZyb20gJy4uL291dHB1dERpZmZlcmVuY2UnO1xuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vbmFtZXMnO1xuXG50eXBlIFBhcnNlZE91dHB1dCA9IGNvcmVEZXNjcmlwdG9ycy5QYXJzZWRPdXRwdXQ7XG5cbmV4cG9ydCB0eXBlIFJlY2lwaWVudE91dHB1dCA9IE9taXQ8UGFyc2VkT3V0cHV0LCAndmFsdWUnPiAmIHtcbiAgdmFsdWU6IGJpZ2ludCB8ICdtYXgnO1xufTtcblxuZnVuY3Rpb24gdG9SZWNpcGllbnRPdXRwdXQocmVjaXBpZW50OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBSZWNpcGllbnRPdXRwdXQge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgIHZhbHVlOiByZWNpcGllbnQuYW1vdW50ID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KHJlY2lwaWVudC5hbW91bnQpLFxuICAgIHNjcmlwdDogZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0KHJlY2lwaWVudC5hZGRyZXNzLCBjb2luTmFtZSksXG4gIH07XG59XG5cbi8vIFRPRE8oQlRDLTE2OTcpOiBhbGxvdyBvdXRwdXRzIHdpdGggYHZhbHVlOiAnbWF4J2AgaGVyZVxudHlwZSBQYXJzZWRPdXRwdXRzID0gT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZDxQYXJzZWRPdXRwdXQsIFJlY2lwaWVudE91dHB1dD4gJiB7XG4gIG91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xuICBjaGFuZ2VPdXRwdXRzOiBQYXJzZWRPdXRwdXRbXTtcbn07XG5cbmZ1bmN0aW9uIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBkZXNjcmlwdG9yTWFwOiBjb3JlRGVzY3JpcHRvcnMuRGVzY3JpcHRvck1hcCxcbiAgcmVjaXBpZW50T3V0cHV0czogUmVjaXBpZW50T3V0cHV0W11cbik6IFBhcnNlZE91dHB1dHMge1xuICBjb25zdCBwYXJzZWQgPSBjb3JlRGVzY3JpcHRvcnMucGFyc2UocHNidCwgZGVzY3JpcHRvck1hcCwgcHNidC5uZXR3b3JrKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IHBhcnNlZC5vdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCAhPT0gdW5kZWZpbmVkKTtcbiAgY29uc3Qgb3V0cHV0RGlmZnMgPSBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZChwYXJzZWQub3V0cHV0cywgcmVjaXBpZW50T3V0cHV0cyk7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogcGFyc2VkLm91dHB1dHMsXG4gICAgY2hhbmdlT3V0cHV0cyxcbiAgICAuLi5vdXRwdXREaWZmcyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3VtVmFsdWVzKGFycjogeyB2YWx1ZTogYmlnaW50IH1bXSk6IGJpZ2ludCB7XG4gIHJldHVybiBhcnIucmVkdWNlKChzdW0sIGUpID0+IHN1bSArIGUudmFsdWUsIEJpZ0ludCgwKSk7XG59XG5cbmZ1bmN0aW9uIHRvQmFzZU91dHB1dHMob3V0cHV0czogUGFyc2VkT3V0cHV0W10sIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBCYXNlT3V0cHV0PGJpZ2ludD5bXTtcbmZ1bmN0aW9uIHRvQmFzZU91dHB1dHMob3V0cHV0czogUmVjaXBpZW50T3V0cHV0W10sIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdO1xuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhcbiAgb3V0cHV0czogKFBhcnNlZE91dHB1dCB8IFJlY2lwaWVudE91dHB1dClbXSxcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZVxuKTogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz5bXSB7XG4gIHJldHVybiBvdXRwdXRzLm1hcChcbiAgICAobyk6IEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+ID0+ICh7XG4gICAgICBhZGRyZXNzOiB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdChvLnNjcmlwdCwgY29pbk5hbWUpLFxuICAgICAgYW1vdW50OiBvLnZhbHVlID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KG8udmFsdWUpLFxuICAgICAgZXh0ZXJuYWw6IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRPdXRwdXRzQmlnSW50ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxiaWdpbnQsIEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+PjtcblxuZnVuY3Rpb24gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICB7IG91dHB1dHMsIGNoYW5nZU91dHB1dHMsIGV4cGxpY2l0T3V0cHV0cywgaW1wbGljaXRPdXRwdXRzLCBtaXNzaW5nT3V0cHV0cyB9OiBQYXJzZWRPdXRwdXRzLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lXG4pOiBQYXJzZWRPdXRwdXRzQmlnSW50IHtcbiAgY29uc3QgZXhwbGljaXRFeHRlcm5hbE91dHB1dHMgPSBleHBsaWNpdE91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQpO1xuICBjb25zdCBpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyA9IGltcGxpY2l0T3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogdG9CYXNlT3V0cHV0cyhvdXRwdXRzLCBjb2luTmFtZSksXG4gICAgY2hhbmdlT3V0cHV0czogdG9CYXNlT3V0cHV0cyhjaGFuZ2VPdXRwdXRzLCBjb2luTmFtZSksXG4gICAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoZXhwbGljaXRFeHRlcm5hbE91dHB1dHMsIGNvaW5OYW1lKSxcbiAgICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhleHBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIGNvaW5OYW1lKSxcbiAgICBpbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgbWlzc2luZ091dHB1dHM6IHRvQmFzZU91dHB1dHMobWlzc2luZ091dHB1dHMsIGNvaW5OYW1lKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBkZXNjcmlwdG9yTWFwOiBjb3JlRGVzY3JpcHRvcnMuRGVzY3JpcHRvck1hcCxcbiAgcmVjaXBpZW50czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W10sXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICByZXR1cm4gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICAgIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICAgICAgcHNidCxcbiAgICAgIGRlc2NyaXB0b3JNYXAsXG4gICAgICByZWNpcGllbnRzLm1hcCgocikgPT4gdG9SZWNpcGllbnRPdXRwdXQociwgY29pbk5hbWUpKVxuICAgICksXG4gICAgY29pbk5hbWVcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPFRBbW91bnQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFxuICBUQW1vdW50LFxuICBCYXNlT3V0cHV0PFRBbW91bnQgfCAnbWF4Jz5cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxudW1iZXIgfCBiaWdpbnQ+XG4pOiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiB7XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuY2hhbmdlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcignY2hhbmdlQWRkcmVzcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgfVxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJhbXMudmVyaWZpY2F0aW9uPy5rZXljaGFpbnM7XG4gIGlmICgha2V5Y2hhaW5zIHx8ICFVdHhvTmFtZWRLZXljaGFpbnMuaXMoa2V5Y2hhaW5zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5Y2hhaW4gaXMgcmVxdWlyZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGNvbnN0IHsgcmVjaXBpZW50cyB9ID0gcGFyYW1zLnR4UGFyYW1zO1xuICBpZiAoIXJlY2lwaWVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlY2lwaWVudHMgaXMgcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBwc2J0ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG4gIGlmICghKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgcHNidCB0byBiZSBhbiBpbnN0YW5jZSBvZiBVdHhvUHNidCcpO1xuICB9XG4gIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKGtleWNoYWlucyk7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCh3YWxsZXQsIHdhbGxldEtleXMsIGdldFBvbGljeUZvckVudihwYXJhbXMud2FsbGV0LmJpdGdvLmVudikpO1xuICByZXR1cm4ge1xuICAgIC4uLnRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXAsIHJlY2lwaWVudHMsIGNvaW4ubmFtZSksXG4gICAga2V5Y2hhaW5zLFxuICAgIGtleVNpZ25hdHVyZXM6IGdldEtleVNpZ25hdHVyZXMod2FsbGV0KSA/PyB7fSxcbiAgICBjdXN0b21DaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogZmFsc2UsXG4gIH07XG59XG4iXX0=
@@ -3,6 +3,7 @@ import { ITransactionRecipient } from '@bitgo-beta/sdk-core';
3
3
  import { DescriptorMap } from '@bitgo-beta/utxo-core/descriptor';
4
4
  import { AbstractUtxoCoin, VerifyTransactionOptions } from '../../abstractUtxoCoin';
5
5
  import { BaseOutput, BaseParsedTransactionOutputs } from '../types';
6
+ import { UtxoCoinName } from '../../names';
6
7
  export declare class ValidationError extends Error {
7
8
  constructor(message: string);
8
9
  }
@@ -19,7 +20,7 @@ export declare class AggregateValidationError extends ValidationError {
19
20
  constructor(errors: ValidationError[]);
20
21
  }
21
22
  export declare function assertExpectedOutputDifference(parsedOutputs: BaseParsedTransactionOutputs<bigint, BaseOutput<bigint | 'max'>>): void;
22
- export declare function assertValidTransaction(psbt: utxolib.bitgo.UtxoPsbt, descriptors: DescriptorMap, recipients: ITransactionRecipient[], network: utxolib.Network): void;
23
+ export declare function assertValidTransaction(psbt: utxolib.bitgo.UtxoPsbt, descriptors: DescriptorMap, recipients: ITransactionRecipient[], coinName: UtxoCoinName): void;
23
24
  /**
24
25
  * Wrapper around assertValidTransaction that returns a boolean instead of throwing.
25
26
  *
@@ -1 +1 @@
1
- {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/verifyTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAoC,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAIpE,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACnC,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;gBAA5C,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;CAGhE;AAED,qBAAa,4BAA6B,SAAQ,eAAe;IAC5C,uBAAuB,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;gBAArD,uBAAuB,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;CAGzE;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IACxC,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAG7C;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,GAC9E,IAAI,CAcN;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,aAAa,EAC1B,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,IAAI,CAEN;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACrE,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,OAAO,CAAC,CAmBlB"}
1
+ {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/verifyTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAoC,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACnC,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;gBAA5C,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;CAGhE;AAED,qBAAa,4BAA6B,SAAQ,eAAe;IAC5C,uBAAuB,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;gBAArD,uBAAuB,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;CAGzE;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IACxC,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAG7C;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,GAC9E,IAAI,CAcN;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,aAAa,EAC1B,UAAU,EAAE,qBAAqB,EAAE,EACnC,QAAQ,EAAE,YAAY,GACrB,IAAI,CAEN;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACrE,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,OAAO,CAAC,CAmBlB"}