@bitgo-beta/utxo-lib 8.0.3-beta.25 → 8.0.3-beta.250

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 (53) hide show
  1. package/README.md +19 -16
  2. package/dist/src/bitgo/PsbtUtil.d.ts +8 -7
  3. package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -1
  4. package/dist/src/bitgo/PsbtUtil.js +17 -2
  5. package/dist/src/bitgo/UtxoPsbt.d.ts +19 -4
  6. package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
  7. package/dist/src/bitgo/UtxoPsbt.js +118 -54
  8. package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
  9. package/dist/src/bitgo/UtxoTransaction.js +6 -6
  10. package/dist/src/bitgo/index.d.ts +9 -0
  11. package/dist/src/bitgo/index.d.ts.map +1 -1
  12. package/dist/src/bitgo/index.js +4 -2
  13. package/dist/src/bitgo/legacysafe/index.d.ts +15 -0
  14. package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
  15. package/dist/src/bitgo/legacysafe/index.js +61 -0
  16. package/dist/src/bitgo/outputScripts.d.ts +1 -0
  17. package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
  18. package/dist/src/bitgo/outputScripts.js +24 -9
  19. package/dist/src/bitgo/parseInput.js +2 -2
  20. package/dist/src/bitgo/signature.d.ts +2 -2
  21. package/dist/src/bitgo/signature.d.ts.map +1 -1
  22. package/dist/src/bitgo/signature.js +17 -2
  23. package/dist/src/bitgo/transaction.d.ts +18 -3
  24. package/dist/src/bitgo/transaction.d.ts.map +1 -1
  25. package/dist/src/bitgo/transaction.js +9 -7
  26. package/dist/src/bitgo/transactionAmounts.d.ts +9 -0
  27. package/dist/src/bitgo/transactionAmounts.d.ts.map +1 -0
  28. package/dist/src/bitgo/transactionAmounts.js +33 -0
  29. package/dist/src/bitgo/wallet/Psbt.d.ts +20 -7
  30. package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
  31. package/dist/src/bitgo/wallet/Psbt.js +71 -3
  32. package/dist/src/bitgo/wallet/Unspent.d.ts +23 -13
  33. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  34. package/dist/src/bitgo/wallet/Unspent.js +35 -26
  35. package/dist/src/bitgo/wallet/WalletOutput.d.ts +17 -1
  36. package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
  37. package/dist/src/bitgo/wallet/WalletOutput.js +64 -23
  38. package/dist/src/bitgo/wallet/chains.d.ts +1 -1
  39. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +0 -1
  40. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
  41. package/dist/src/bitgo/zcash/ZcashPsbt.js +3 -12
  42. package/dist/src/testutil/keys.d.ts +3 -0
  43. package/dist/src/testutil/keys.d.ts.map +1 -1
  44. package/dist/src/testutil/keys.js +17 -2
  45. package/dist/src/testutil/mock.d.ts.map +1 -1
  46. package/dist/src/testutil/mock.js +6 -4
  47. package/dist/src/testutil/psbt.d.ts +27 -6
  48. package/dist/src/testutil/psbt.d.ts.map +1 -1
  49. package/dist/src/testutil/psbt.js +30 -18
  50. package/dist/src/testutil/transaction.d.ts +14 -5
  51. package/dist/src/testutil/transaction.d.ts.map +1 -1
  52. package/dist/src/testutil/transaction.js +9 -9
  53. package/package.json +8 -8
@@ -109,19 +109,10 @@ class ZcashPsbt extends UtxoPsbt_1.UtxoPsbt {
109
109
  // transactions because zcash hashes the value directly. Thus, it is unnecessary to have
110
110
  // the previous transaction hash on the unspent.
111
111
  signInput(inputIndex, keyPair, sighashTypes) {
112
- return this.withUnsafeSignNonSegwitTrue(super.signInput.bind(this, inputIndex, keyPair, sighashTypes));
112
+ return PsbtUtil_1.withUnsafeNonSegwit(this, super.signInput.bind(this, inputIndex, keyPair, sighashTypes));
113
113
  }
114
114
  validateSignaturesOfInput(inputIndex, validator, pubkey) {
115
- return this.withUnsafeSignNonSegwitTrue(super.validateSignaturesOfInput.bind(this, inputIndex, validator, pubkey));
116
- }
117
- withUnsafeSignNonSegwitTrue(fn) {
118
- this.__CACHE.__UNSAFE_SIGN_NONSEGWIT = true;
119
- try {
120
- return fn();
121
- }
122
- finally {
123
- this.__CACHE.__UNSAFE_SIGN_NONSEGWIT = false;
124
- }
115
+ return PsbtUtil_1.withUnsafeNonSegwit(this, super.validateSignaturesOfInput.bind(this, inputIndex, validator, pubkey));
125
116
  }
126
117
  setPropertyCheckSignatures(propName, value) {
127
118
  if (this.tx[propName] === value) {
@@ -144,4 +135,4 @@ class ZcashPsbt extends UtxoPsbt_1.UtxoPsbt {
144
135
  }
145
136
  }
146
137
  exports.ZcashPsbt = ZcashPsbt;
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hQc2J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3pjYXNoL1pjYXNoUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBaUQ7QUFDakQseURBSTRCO0FBQzVCLDhCQUEwRDtBQUMxRCxtQ0FBMEM7QUFDMUMsaURBQWlEO0FBRWpELDBDQUFpRjtBQUNqRixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdkMsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2YsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLHNDQUEyQixDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0NBQXFCLENBQUMsdUJBQXVCLENBQUM7Q0FDekQsQ0FBQyxDQUFDO0FBRUgsTUFBYSxTQUFVLFNBQVEsbUJBQWtDO0lBQ3JELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFjLEVBQUUsT0FBZ0I7UUFDckUsT0FBTyxtQ0FBZ0IsQ0FBQyxVQUFVLENBQVMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBYyxFQUFFLElBQWU7UUFDL0MsT0FBTyxJQUFJLFNBQVMsQ0FDbEIsSUFBSSxFQUNKLElBQUksSUFBSSxJQUFJLGFBQVEsQ0FBQyxJQUFJLG1CQUFlLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxtQ0FBZ0IsQ0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzlGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYyxFQUFFLElBQWM7O1FBQzlDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBYyxDQUFDO1FBRXpELCtDQUErQztRQUMvQyxJQUFJLGlCQUFpQixHQUF1QixTQUFTLENBQUM7UUFDdEQsTUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLDBDQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hFLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO2dCQUN2QyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDMUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDdkIsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLG1DQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQzdDLEtBQUssbUNBQWdCLENBQUMsbUJBQW1CO2dCQUN2QyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7b0JBQzdELE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQztpQkFDL0Y7Z0JBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQzVFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLHVCQUF1QixDQUM3QyxDQUFDO2dCQUVGLHlGQUF5RjtnQkFDekYsdURBQXVEO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLG1DQUFnQixDQUFDLG1CQUFtQjtnQkFDdkMsSUFBSSxpQkFBaUIsRUFBRTtvQkFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO2lCQUNqRztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxtQ0FBZ0IsQ0FBQyxtQkFBbUIsRUFBRTtZQUNyRixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN6QjtRQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRTtZQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFlLEVBQUUsVUFBVSxHQUFHLElBQUk7UUFDM0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQscUJBQXFCLENBQUMsT0FBZ0IsRUFBRSxPQUFlO1FBQ3JELFFBQVEsT0FBTyxFQUFFO1lBQ2YsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLG1DQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQzdDLEtBQUssbUNBQWdCLENBQUMsbUJBQW1CO2dCQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixNQUFNO1lBQ1IsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLG1DQUFnQixDQUFDLG1CQUFtQjtnQkFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDakQ7UUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsR0FBRyxxREFBa0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixHQUFHLHdEQUFxQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsc0ZBQXNGO0lBQ3RGLHdGQUF3RjtJQUN4RixnREFBZ0Q7SUFDaEQsU0FBUyxDQUFDLFVBQWtCLEVBQUUsT0FBZSxFQUFFLFlBQXVCO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELHlCQUF5QixDQUFDLFVBQWtCLEVBQUUsU0FBOEIsRUFBRSxNQUFlO1FBQzNGLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRU8sMkJBQTJCLENBQUksRUFBVztRQUMvQyxJQUFZLENBQUMsT0FBTyxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUNyRCxJQUFJO1lBQ0YsT0FBTyxFQUFFLEVBQUUsQ0FBQztTQUNiO2dCQUFTO1lBQ1AsSUFBWSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRU8sMEJBQTBCLENBQUMsUUFBd0MsRUFBRSxLQUFjO1FBQ3pGLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBWSxDQUFDO0lBQ25DLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxpQkFBeUI7UUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsaUJBQWlCLENBQUMsY0FBc0I7UUFDdEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxlQUFlLENBQUMsWUFBb0I7UUFDbEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUFsSkQsOEJBa0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHNidE9wdHMsIFV0eG9Qc2J0IH0gZnJvbSAnLi4vVXR4b1BzYnQnO1xuaW1wb3J0IHtcbiAgZ2V0RGVmYXVsdENvbnNlbnN1c0JyYW5jaElkRm9yVmVyc2lvbixcbiAgZ2V0RGVmYXVsdFZlcnNpb25Hcm91cElkRm9yVmVyc2lvbixcbiAgWmNhc2hUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9aY2FzaFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IE5ldHdvcmssIFBzYnRUcmFuc2FjdGlvbiwgU2lnbmVyIH0gZnJvbSAnLi4vLi4vJztcbmltcG9ydCB7IFBzYnQgYXMgUHNidEJhc2UgfSBmcm9tICdiaXAxNzQnO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvdHlwZXMnO1xuaW1wb3J0IHsgVmFsaWRhdGVTaWdGdW5jdGlvbiB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL3BzYnQnO1xuaW1wb3J0IHsgUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLCBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgfSBmcm9tICcuLi9Qc2J0VXRpbCc7XG5jb25zdCB0eXBlZm9yY2UgPSByZXF1aXJlKCd0eXBlZm9yY2UnKTtcblxuY29uc3QgQ09OU0VOU1VTX0JSQU5DSF9JRF9LRVkgPSBCdWZmZXIuY29uY2F0KFtcbiAgQnVmZmVyLm9mKDB4ZmMpLFxuICBCdWZmZXIub2YoMHgwNSksXG4gIEJ1ZmZlci5mcm9tKFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUiksXG4gIEJ1ZmZlci5vZihQcm9wcmlldGFyeUtleVN1YnR5cGUuWkVDX0NPTlNFTlNVU19CUkFOQ0hfSUQpLFxuXSk7XG5cbmV4cG9ydCBjbGFzcyBaY2FzaFBzYnQgZXh0ZW5kcyBVdHhvUHNidDxaY2FzaFRyYW5zYWN0aW9uPGJpZ2ludD4+IHtcbiAgcHJvdGVjdGVkIHN0YXRpYyB0cmFuc2FjdGlvbkZyb21CdWZmZXIoYnVmZmVyOiBCdWZmZXIsIG5ldHdvcms6IE5ldHdvcmspOiBaY2FzaFRyYW5zYWN0aW9uPGJpZ2ludD4ge1xuICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uLmZyb21CdWZmZXI8YmlnaW50PihidWZmZXIsIGZhbHNlLCAnYmlnaW50JywgbmV0d29yayk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlUHNidChvcHRzOiBQc2J0T3B0cywgZGF0YT86IFBzYnRCYXNlKTogWmNhc2hQc2J0IHtcbiAgICByZXR1cm4gbmV3IFpjYXNoUHNidChcbiAgICAgIG9wdHMsXG4gICAgICBkYXRhIHx8IG5ldyBQc2J0QmFzZShuZXcgUHNidFRyYW5zYWN0aW9uKHsgdHg6IG5ldyBaY2FzaFRyYW5zYWN0aW9uPGJpZ2ludD4ob3B0cy5uZXR3b3JrKSB9KSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIHZlcnNpb24gPCA1IG9mIFpjYXNoIHRyYW5zYWN0aW9ucywgdGhlIGNvbnNlbnN1cyBicmFuY2ggSUQgaXMgbm90IHNlcmlhbGl6ZWQgaW4gdGhlIHRyYW5zYWN0aW9uXG4gICAqIHdoZXJlYXMgaW4gdmVyc2lvbiA1IGl0IGlzLiBJZiB0aGUgdHJhbnNhY3Rpb24gaXMgbGVzcyB0aGFuIGEgdmVyc2lvbiA1LCBzZXQgdGhlIGNvbnNlbnN1cyBicmFuY2ggaWRcbiAgICogaW4gdGhlIGdsb2JhbCBtYXAgaW4gdGhlIHBzYnQuIElmIGl0IGlzIGEgdmVyc2lvbiA1IHRyYW5zYWN0aW9uLCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgY29uc2Vuc3VzXG4gICAqIGJyYW5jaCBpZCBpcyBzZXQgaW4gdGhlIHBzYnQgKGJlY2F1c2UgaXQgc2hvdWxkIGJlIG9uIHRoZSB0cmFuc2FjdGlvbiBhbHJlYWR5KS5cbiAgICogQHBhcmFtIGJ1ZmZlciBQc2J0IGJ1ZmZlclxuICAgKiBAcGFyYW0gb3B0cyBvcHRpb25zXG4gICAqL1xuICBzdGF0aWMgZnJvbUJ1ZmZlcihidWZmZXI6IEJ1ZmZlciwgb3B0czogUHNidE9wdHMpOiBVdHhvUHNidDxaY2FzaFRyYW5zYWN0aW9uPGJpZ2ludD4+IHtcbiAgICBjb25zdCBwc2J0ID0gc3VwZXIuZnJvbUJ1ZmZlcihidWZmZXIsIG9wdHMpIGFzIFpjYXNoUHNidDtcblxuICAgIC8vIFJlYWQgYGNvbnNlbnN1c0JyYW5jaElkYCBmcm9tIHRoZSBnbG9iYWwtbWFwXG4gICAgbGV0IGNvbnNlbnN1c0JyYW5jaElkOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgcHNidC5kYXRhLmdsb2JhbE1hcC51bmtub3duS2V5VmFscz8uZm9yRWFjaCgoeyBrZXksIHZhbHVlIH0sIGkpID0+IHtcbiAgICAgIGlmIChrZXkuZXF1YWxzKENPTlNFTlNVU19CUkFOQ0hfSURfS0VZKSkge1xuICAgICAgICBjb25zZW5zdXNCcmFuY2hJZCA9IHZhbHVlLnJlYWRVaW50MzJMRSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHN3aXRjaCAocHNidC50eC52ZXJzaW9uKSB7XG4gICAgICBjYXNlIDQ6XG4gICAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX0NBTk9QWTpcbiAgICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU1OlxuICAgICAgICBpZiAoIWNvbnNlbnN1c0JyYW5jaElkIHx8ICFwc2J0LmRhdGEuZ2xvYmFsTWFwLnVua25vd25LZXlWYWxzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBjb25zZW5zdXMgYnJhbmNoIGlkIG9uIHBzYnQgZm9yIHZlcnNpb24gNCBaY2FzaCB0cmFuc2FjdGlvbicpO1xuICAgICAgICB9XG4gICAgICAgIHBzYnQudHguY29uc2Vuc3VzQnJhbmNoSWQgPSBjb25zZW5zdXNCcmFuY2hJZDtcbiAgICAgICAgcHNidC5kYXRhLmdsb2JhbE1hcC51bmtub3duS2V5VmFscyA9IHBzYnQuZGF0YS5nbG9iYWxNYXAudW5rbm93bktleVZhbHMuZmlsdGVyKFxuICAgICAgICAgICh7IGtleSB9KSA9PiBrZXkgIT09IENPTlNFTlNVU19CUkFOQ0hfSURfS0VZXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRGVsZXRlIGNvbnNlbnN1c0JyYW5jaElkIGZyb20gZ2xvYmFsTWFwIHNvIHRoYXQgaWYgd2Ugd2VyZSB0byBzZXJpYWxpemUgdGhlIHBzYnQgYWdhaW5cbiAgICAgICAgLy8gd2Ugd291bGQgbm90IGFkZCBhIGR1cGxpY2F0ZSBrZXkgaW50byB0aGUgZ2xvYmFsIG1hcFxuICAgICAgICBwc2J0LmRhdGEuZ2xvYmFsTWFwLnVua25vd25LZXlWYWxzLnBvcCgpO1xuICAgICAgICByZXR1cm4gcHNidDtcbiAgICAgIGNhc2UgNTpcbiAgICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONV9CUkFOQ0hfTlU1OlxuICAgICAgICBpZiAoY29uc2Vuc3VzQnJhbmNoSWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGNvbnNlbnN1cyBicmFuY2ggaWQgaW4gcHNidCBnbG9iYWwtbWFwIGZvciB2ZXJzaW9uIDUgWmNhc2ggdHJhbnNhY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHNidDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdmVyc2lvbiAke3BzYnQudHgudmVyc2lvbn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSWYgaXQgaXMgYSB2ZXJzaW9uIDQgdHJhbnNhY3Rpb24sIGFkZCB0aGUgY29uc2Vuc3VzIGJyYW5jaCBpZCB0b1xuICAgKiB0aGUgZ2xvYmFsIG1hcC4gSWYgaXQgaXMgYSB2ZXJzaW9uIDUgdHJhbnNhY3Rpb24sIGp1c3QgcmV0dXJuIHRoZVxuICAgKiBidWZmZXIgYmVjYXVzZSB0aGUgY29uc2Vuc3VzIGJyYW5jaCBpZCBpcyBhbHJlYWR5IHNlcmlhbGl6ZWQgaW5cbiAgICogdGhlIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgdG9CdWZmZXIoKTogQnVmZmVyIHtcbiAgICBpZiAodGhpcy50eC52ZXJzaW9uID09PSA1IHx8IHRoaXMudHgudmVyc2lvbiA9PT0gWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONV9CUkFOQ0hfTlU1KSB7XG4gICAgICByZXR1cm4gc3VwZXIudG9CdWZmZXIoKTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgdmFsdWUud3JpdGVVaW50MzJMRSh0aGlzLnR4LmNvbnNlbnN1c0JyYW5jaElkKTtcbiAgICB0aGlzLmFkZFVua25vd25LZXlWYWxUb0dsb2JhbCh7IGtleTogQ09OU0VOU1VTX0JSQU5DSF9JRF9LRVksIHZhbHVlIH0pO1xuICAgIGlmICghdGhpcy5kYXRhLmdsb2JhbE1hcC51bmtub3duS2V5VmFscykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgYWRkaW5nIGNvbnNlbnN1cyBicmFuY2ggaWQgdG8gdW5rbm93bktleVZhbHMnKTtcbiAgICB9XG4gICAgY29uc3QgYnVmZiA9IHN1cGVyLnRvQnVmZmVyKCk7XG4gICAgdGhpcy5kYXRhLmdsb2JhbE1hcC51bmtub3duS2V5VmFscy5wb3AoKTtcbiAgICByZXR1cm4gYnVmZjtcbiAgfVxuXG4gIHNldFZlcnNpb24odmVyc2lvbjogbnVtYmVyLCBvdmVyd2ludGVyID0gdHJ1ZSk6IHRoaXMge1xuICAgIHR5cGVmb3JjZSh0eXBlcy5VSW50MzIsIHZlcnNpb24pO1xuICAgIHRoaXMudHgub3ZlcndpbnRlcmVkID0gb3ZlcndpbnRlciA/IDEgOiAwO1xuICAgIHRoaXMudHgudmVyc2lvbiA9IHZlcnNpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXREZWZhdWx0c0ZvclZlcnNpb24obmV0d29yazogTmV0d29yaywgdmVyc2lvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgc3dpdGNoICh2ZXJzaW9uKSB7XG4gICAgICBjYXNlIDQ6XG4gICAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX0NBTk9QWTpcbiAgICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU1OlxuICAgICAgICB0aGlzLnNldFZlcnNpb24oNCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA1OlxuICAgICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTU6XG4gICAgICAgIHRoaXMuc2V0VmVyc2lvbig1KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbiAke3ZlcnNpb259YCk7XG4gICAgfVxuXG4gICAgdGhpcy50eC52ZXJzaW9uR3JvdXBJZCA9IGdldERlZmF1bHRWZXJzaW9uR3JvdXBJZEZvclZlcnNpb24odmVyc2lvbik7XG4gICAgdGhpcy50eC5jb25zZW5zdXNCcmFuY2hJZCA9IGdldERlZmF1bHRDb25zZW5zdXNCcmFuY2hJZEZvclZlcnNpb24obmV0d29yaywgdmVyc2lvbik7XG4gIH1cblxuICAvLyBGb3IgWmNhc2ggdHJhbnNhY3Rpb25zLCB3ZSBkbyBub3QgaGF2ZSB0byBoYXZlIG5vbi13aXRuZXNzIFVUWE8gZGF0YSBmb3Igbm9uLXNlZ3dpdFxuICAvLyB0cmFuc2FjdGlvbnMgYmVjYXVzZSB6Y2FzaCBoYXNoZXMgdGhlIHZhbHVlIGRpcmVjdGx5LiBUaHVzLCBpdCBpcyB1bm5lY2Vzc2FyeSB0byBoYXZlXG4gIC8vIHRoZSBwcmV2aW91cyB0cmFuc2FjdGlvbiBoYXNoIG9uIHRoZSB1bnNwZW50LlxuICBzaWduSW5wdXQoaW5wdXRJbmRleDogbnVtYmVyLCBrZXlQYWlyOiBTaWduZXIsIHNpZ2hhc2hUeXBlcz86IG51bWJlcltdKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMud2l0aFVuc2FmZVNpZ25Ob25TZWd3aXRUcnVlKHN1cGVyLnNpZ25JbnB1dC5iaW5kKHRoaXMsIGlucHV0SW5kZXgsIGtleVBhaXIsIHNpZ2hhc2hUeXBlcykpO1xuICB9XG5cbiAgdmFsaWRhdGVTaWduYXR1cmVzT2ZJbnB1dChpbnB1dEluZGV4OiBudW1iZXIsIHZhbGlkYXRvcjogVmFsaWRhdGVTaWdGdW5jdGlvbiwgcHVia2V5PzogQnVmZmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMud2l0aFVuc2FmZVNpZ25Ob25TZWd3aXRUcnVlKHN1cGVyLnZhbGlkYXRlU2lnbmF0dXJlc09mSW5wdXQuYmluZCh0aGlzLCBpbnB1dEluZGV4LCB2YWxpZGF0b3IsIHB1YmtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSB3aXRoVW5zYWZlU2lnbk5vblNlZ3dpdFRydWU8VD4oZm46ICgpID0+IFQpOiBUIHtcbiAgICAodGhpcyBhcyBhbnkpLl9fQ0FDSEUuX19VTlNBRkVfU0lHTl9OT05TRUdXSVQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZm4oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgKHRoaXMgYXMgYW55KS5fX0NBQ0hFLl9fVU5TQUZFX1NJR05fTk9OU0VHV0lUID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcm9wZXJ0eUNoZWNrU2lnbmF0dXJlcyhwcm9wTmFtZToga2V5b2YgWmNhc2hUcmFuc2FjdGlvbjxiaWdpbnQ+LCB2YWx1ZTogdW5rbm93bikge1xuICAgIGlmICh0aGlzLnR4W3Byb3BOYW1lXSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jaGVja0ZvclNpZ25hdHVyZXMocHJvcE5hbWUpO1xuICAgIHRoaXMudHhbcHJvcE5hbWVdID0gdmFsdWUgYXMgYW55O1xuICB9XG5cbiAgc2V0Q29uc2Vuc3VzQnJhbmNoSWQoY29uc2Vuc3VzQnJhbmNoSWQ6IG51bWJlcik6IHZvaWQge1xuICAgIHR5cGVmb3JjZSh0eXBlcy5VSW50MzIsIGNvbnNlbnN1c0JyYW5jaElkKTtcbiAgICB0aGlzLnNldFByb3BlcnR5Q2hlY2tTaWduYXR1cmVzKCdjb25zZW5zdXNCcmFuY2hJZCcsIGNvbnNlbnN1c0JyYW5jaElkKTtcbiAgfVxuXG4gIHNldFZlcnNpb25Hcm91cElkKHZlcnNpb25Hcm91cElkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0eXBlZm9yY2UodHlwZXMuVUludDMyLCB2ZXJzaW9uR3JvdXBJZCk7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eUNoZWNrU2lnbmF0dXJlcygndmVyc2lvbkdyb3VwSWQnLCB2ZXJzaW9uR3JvdXBJZCk7XG4gIH1cblxuICBzZXRFeHBpcnlIZWlnaHQoZXhwaXJ5SGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0eXBlZm9yY2UodHlwZXMuVUludDMyLCBleHBpcnlIZWlnaHQpO1xuICAgIHRoaXMuc2V0UHJvcGVydHlDaGVja1NpZ25hdHVyZXMoJ2V4cGlyeUhlaWdodCcsIGV4cGlyeUhlaWdodCk7XG4gIH1cbn1cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hQc2J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3pjYXNoL1pjYXNoUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBaUQ7QUFDakQseURBSTRCO0FBQzVCLDhCQUEwRDtBQUMxRCxtQ0FBMEM7QUFDMUMsaURBQWlEO0FBRWpELDBDQUFzRztBQUN0RyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdkMsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2YsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLHNDQUEyQixDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0NBQXFCLENBQUMsdUJBQXVCLENBQUM7Q0FDekQsQ0FBQyxDQUFDO0FBRUgsTUFBYSxTQUFVLFNBQVEsbUJBQWtDO0lBQ3JELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFjLEVBQUUsT0FBZ0I7UUFDckUsT0FBTyxtQ0FBZ0IsQ0FBQyxVQUFVLENBQVMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBYyxFQUFFLElBQWU7UUFDL0MsT0FBTyxJQUFJLFNBQVMsQ0FDbEIsSUFBSSxFQUNKLElBQUksSUFBSSxJQUFJLGFBQVEsQ0FBQyxJQUFJLG1CQUFlLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxtQ0FBZ0IsQ0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzlGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYyxFQUFFLElBQWM7O1FBQzlD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b1BzYnQnO1xuaW1wb3J0IHtcbiAgZ2V0RGVmYXVsdENvbnNlbnN1c0JyYW5jaElkRm9yVmVyc2lvbixcbiAgZ2V0RGVmYXVsdFZlcnNpb25Hcm91cElkRm9yVmVyc2lvbixcbiAgWmNhc2hUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9aY2FzaFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IE5ldHdvcmssIFBzYnRUcmFuc2FjdGlvbiwgU2lnbmVyIH0gZnJvbSAnLi4vLi4vJztcbmltcG9ydCB7IFBzYnQgYXMgUHNidEJhc2UgfSBmcm9tICdiaXAxNzQnO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvdHlwZXMnO1xuaW1wb3J0IHsgVmFsaWRhdGVTaWdGdW5jdGlvbiB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL3BzYnQnO1xuaW1wb3J0IHsgUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLCBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsIHdpdGhVbnNhZmVOb25TZWd3aXQgfSBmcm9tICcuLi9Qc2J0VXRpbCc7XG5jb25zdCB0eXBlZm9yY2UgPSByZXF1aXJlKCd0eXBlZm9yY2UnKTtcblxuY29uc3QgQ09OU0VOU1VTX0JSQU5DSF9JRF9LRVkgPSBCdWZmZXIuY29uY2F0KFtcbiAgQnVmZmVyLm9mKDB4ZmMpLFxuICBCdWZmZXIub2YoMHgwNSksXG4gIEJ1ZmZlci5mcm9tKFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUiksXG4gIEJ1ZmZlci5vZihQcm9wcmlldGFyeUtleVN1YnR5cGUuWkVDX0NPTlNFTlNVU19CUkFOQ0hfSUQpLFxuXSk7XG5cbmV4cG9ydCBjbGFzcyBaY2FzaFBzYnQgZXh0ZW5kcyBVdHhvUHNidDxaY2FzaFRyYW5zYWN0aW9uPGJpZ2ludD4+IHtcbiAgcHJvdGVjdGVkIHN0YXRpYyB0cmFuc2FjdGlvbkZyb21CdWZmZXIoYnVmZmVyOiBCdWZmZXIsIG5ldHdvcms6IE5ldHdvcmspOiBaY2FzaFRyYW5zYWN0aW9uPGJpZ2ludD4ge1xuICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uLmZyb21CdWZmZXI8YmlnaW50PihidWZmZXIsIGZhbHNlLCAnYmlnaW50JywgbmV0d29yayk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlUHNidChvcHRzOiBQc2J0T3B0cywgZGF0YT86IFBzYnRCYXNlKTogWmNhc2hQc2J0IHtcbiAgICByZXR1cm4gbmV3IFpjYXNoUHNidChcbiAgICAgIG9wdHMsXG4gICAgICBkYXRhIHx8IG5ldyBQc2J0QmFzZShuZXcgUHNidFRyYW5zYWN0aW9uKHsgdHg6IG5ldyBaY2FzaFRyYW5zYWN0aW9uPGJpZ2ludD4ob3B0cy5uZXR3b3JrKSB9KSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIHZlcnNpb24gPCA1IG9mIFpjYXNoIHRyYW5zYWN0aW9ucywgdGhlIGNvbnNlbnN1cyBicmFuY2ggSUQgaXMgbm90IHNlcmlhbGl6ZWQgaW4gdGhlIHRyYW5zYWN0aW9uXG4gICAqIHdoZXJlYXMgaW4gdmVyc2lvbiA1IGl0IGlzLiBJZiB0aGUgdHJhbnNhY3Rpb24gaXMgbGVzcyB0aGFuIGEgdmVyc2lvbiA1LCBzZXQgdGhlIGNvbnNlbnN1cyBicmFuY2ggaWRcbiAgICogaW4gdGhlIGdsb2JhbCBtYXAgaW4gdGhlIHBzYnQuIElmIGl0IGlzIGEgdmVyc2lvbiA1IHRyYW5zYWN0aW9uLCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgY29uc2Vuc3VzXG4gICAqIGJyYW5jaCBpZCBpcyBzZXQgaW4gdGhlIHBzYnQgKGJlY2F1c2UgaXQgc2hvdWxkIGJlIG9uIHRoZSB0cmFuc2FjdGlvbiBhbHJlYWR5KS5cbiAgICogQHBhcmFtIGJ1ZmZlciBQc2J0IGJ1ZmZlclxuICAgKiBAcGFyYW0gb3B0cyBvcHRpb25zXG4gICAqL1xuICBzdGF0aWMgZnJvbUJ1ZmZlcihidWZmZXI6IEJ1ZmZlciwgb3B0czogUHNidE9wdHMpOiBVdHhvUHNidDxaY2FzaFRyYW5zYWN0aW9uPGJpZ2ludD4+IHtcbiAgICBjb25zdCBwc2J0ID0gc3VwZXIuZnJvbUJ1ZmZlcihidWZmZXIsIG9wdHMpIGFzIFpjYXNoUHNidDtcblxuICAgIC8vIFJlYWQgYGNvbnNlbnN1c0JyYW5jaElkYCBmcm9tIHRoZSBnbG9iYWwtbWFwXG4gICAgbGV0IGNvbnNlbnN1c0JyYW5jaElkOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgcHNidC5kYXRhLmdsb2JhbE1hcC51bmtub3duS2V5VmFscz8uZm9yRWFjaCgoeyBrZXksIHZhbHVlIH0sIGkpID0+IHtcbiAgICAgIGlmIChrZXkuZXF1YWxzKENPTlNFTlNVU19CUkFOQ0hfSURfS0VZKSkge1xuICAgICAgICBjb25zZW5zdXNCcmFuY2hJZCA9IHZhbHVlLnJlYWRVaW50MzJMRSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHN3aXRjaCAocHNidC50eC52ZXJzaW9uKSB7XG4gICAgICBjYXNlIDQ6XG4gICAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX0NBTk9QWTpcbiAgICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU1OlxuICAgICAgICBpZiAoIWNvbnNlbnN1c0JyYW5jaElkIHx8ICFwc2J0LmRhdGEuZ2xvYmFsTWFwLnVua25vd25LZXlWYWxzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBjb25zZW5zdXMgYnJhbmNoIGlkIG9uIHBzYnQgZm9yIHZlcnNpb24gNCBaY2FzaCB0cmFuc2FjdGlvbicpO1xuICAgICAgICB9XG4gICAgICAgIHBzYnQudHguY29uc2Vuc3VzQnJhbmNoSWQgPSBjb25zZW5zdXNCcmFuY2hJZDtcbiAgICAgICAgcHNidC5kYXRhLmdsb2JhbE1hcC51bmtub3duS2V5VmFscyA9IHBzYnQuZGF0YS5nbG9iYWxNYXAudW5rbm93bktleVZhbHMuZmlsdGVyKFxuICAgICAgICAgICh7IGtleSB9KSA9PiBrZXkgIT09IENPTlNFTlNVU19CUkFOQ0hfSURfS0VZXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRGVsZXRlIGNvbnNlbnN1c0JyYW5jaElkIGZyb20gZ2xvYmFsTWFwIHNvIHRoYXQgaWYgd2Ugd2VyZSB0byBzZXJpYWxpemUgdGhlIHBzYnQgYWdhaW5cbiAgICAgICAgLy8gd2Ugd291bGQgbm90IGFkZCBhIGR1cGxpY2F0ZSBrZXkgaW50byB0aGUgZ2xvYmFsIG1hcFxuICAgICAgICBwc2J0LmRhdGEuZ2xvYmFsTWFwLnVua25vd25LZXlWYWxzLnBvcCgpO1xuICAgICAgICByZXR1cm4gcHNidDtcbiAgICAgIGNhc2UgNTpcbiAgICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONV9CUkFOQ0hfTlU1OlxuICAgICAgICBpZiAoY29uc2Vuc3VzQnJhbmNoSWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGNvbnNlbnN1cyBicmFuY2ggaWQgaW4gcHNidCBnbG9iYWwtbWFwIGZvciB2ZXJzaW9uIDUgWmNhc2ggdHJhbnNhY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHNidDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdmVyc2lvbiAke3BzYnQudHgudmVyc2lvbn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSWYgaXQgaXMgYSB2ZXJzaW9uIDQgdHJhbnNhY3Rpb24sIGFkZCB0aGUgY29uc2Vuc3VzIGJyYW5jaCBpZCB0b1xuICAgKiB0aGUgZ2xvYmFsIG1hcC4gSWYgaXQgaXMgYSB2ZXJzaW9uIDUgdHJhbnNhY3Rpb24sIGp1c3QgcmV0dXJuIHRoZVxuICAgKiBidWZmZXIgYmVjYXVzZSB0aGUgY29uc2Vuc3VzIGJyYW5jaCBpZCBpcyBhbHJlYWR5IHNlcmlhbGl6ZWQgaW5cbiAgICogdGhlIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgdG9CdWZmZXIoKTogQnVmZmVyIHtcbiAgICBpZiAodGhpcy50eC52ZXJzaW9uID09PSA1IHx8IHRoaXMudHgudmVyc2lvbiA9PT0gWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONV9CUkFOQ0hfTlU1KSB7XG4gICAgICByZXR1cm4gc3VwZXIudG9CdWZmZXIoKTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgdmFsdWUud3JpdGVVaW50MzJMRSh0aGlzLnR4LmNvbnNlbnN1c0JyYW5jaElkKTtcbiAgICB0aGlzLmFkZFVua25vd25LZXlWYWxUb0dsb2JhbCh7IGtleTogQ09OU0VOU1VTX0JSQU5DSF9JRF9LRVksIHZhbHVlIH0pO1xuICAgIGlmICghdGhpcy5kYXRhLmdsb2JhbE1hcC51bmtub3duS2V5VmFscykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgYWRkaW5nIGNvbnNlbnN1cyBicmFuY2ggaWQgdG8gdW5rbm93bktleVZhbHMnKTtcbiAgICB9XG4gICAgY29uc3QgYnVmZiA9IHN1cGVyLnRvQnVmZmVyKCk7XG4gICAgdGhpcy5kYXRhLmdsb2JhbE1hcC51bmtub3duS2V5VmFscy5wb3AoKTtcbiAgICByZXR1cm4gYnVmZjtcbiAgfVxuXG4gIHNldFZlcnNpb24odmVyc2lvbjogbnVtYmVyLCBvdmVyd2ludGVyID0gdHJ1ZSk6IHRoaXMge1xuICAgIHR5cGVmb3JjZSh0eXBlcy5VSW50MzIsIHZlcnNpb24pO1xuICAgIHRoaXMudHgub3ZlcndpbnRlcmVkID0gb3ZlcndpbnRlciA/IDEgOiAwO1xuICAgIHRoaXMudHgudmVyc2lvbiA9IHZlcnNpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXREZWZhdWx0c0ZvclZlcnNpb24obmV0d29yazogTmV0d29yaywgdmVyc2lvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgc3dpdGNoICh2ZXJzaW9uKSB7XG4gICAgICBjYXNlIDQ6XG4gICAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX0NBTk9QWTpcbiAgICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU1OlxuICAgICAgICB0aGlzLnNldFZlcnNpb24oNCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA1OlxuICAgICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTU6XG4gICAgICAgIHRoaXMuc2V0VmVyc2lvbig1KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbiAke3ZlcnNpb259YCk7XG4gICAgfVxuXG4gICAgdGhpcy50eC52ZXJzaW9uR3JvdXBJZCA9IGdldERlZmF1bHRWZXJzaW9uR3JvdXBJZEZvclZlcnNpb24odmVyc2lvbik7XG4gICAgdGhpcy50eC5jb25zZW5zdXNCcmFuY2hJZCA9IGdldERlZmF1bHRDb25zZW5zdXNCcmFuY2hJZEZvclZlcnNpb24obmV0d29yaywgdmVyc2lvbik7XG4gIH1cblxuICAvLyBGb3IgWmNhc2ggdHJhbnNhY3Rpb25zLCB3ZSBkbyBub3QgaGF2ZSB0byBoYXZlIG5vbi13aXRuZXNzIFVUWE8gZGF0YSBmb3Igbm9uLXNlZ3dpdFxuICAvLyB0cmFuc2FjdGlvbnMgYmVjYXVzZSB6Y2FzaCBoYXNoZXMgdGhlIHZhbHVlIGRpcmVjdGx5LiBUaHVzLCBpdCBpcyB1bm5lY2Vzc2FyeSB0byBoYXZlXG4gIC8vIHRoZSBwcmV2aW91cyB0cmFuc2FjdGlvbiBoYXNoIG9uIHRoZSB1bnNwZW50LlxuICBzaWduSW5wdXQoaW5wdXRJbmRleDogbnVtYmVyLCBrZXlQYWlyOiBTaWduZXIsIHNpZ2hhc2hUeXBlcz86IG51bWJlcltdKTogdGhpcyB7XG4gICAgcmV0dXJuIHdpdGhVbnNhZmVOb25TZWd3aXQodGhpcywgc3VwZXIuc2lnbklucHV0LmJpbmQodGhpcywgaW5wdXRJbmRleCwga2V5UGFpciwgc2lnaGFzaFR5cGVzKSk7XG4gIH1cblxuICB2YWxpZGF0ZVNpZ25hdHVyZXNPZklucHV0KGlucHV0SW5kZXg6IG51bWJlciwgdmFsaWRhdG9yOiBWYWxpZGF0ZVNpZ0Z1bmN0aW9uLCBwdWJrZXk/OiBCdWZmZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gd2l0aFVuc2FmZU5vblNlZ3dpdCh0aGlzLCBzdXBlci52YWxpZGF0ZVNpZ25hdHVyZXNPZklucHV0LmJpbmQodGhpcywgaW5wdXRJbmRleCwgdmFsaWRhdG9yLCBwdWJrZXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJvcGVydHlDaGVja1NpZ25hdHVyZXMocHJvcE5hbWU6IGtleW9mIFpjYXNoVHJhbnNhY3Rpb248YmlnaW50PiwgdmFsdWU6IHVua25vd24pIHtcbiAgICBpZiAodGhpcy50eFtwcm9wTmFtZV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tGb3JTaWduYXR1cmVzKHByb3BOYW1lKTtcbiAgICB0aGlzLnR4W3Byb3BOYW1lXSA9IHZhbHVlIGFzIGFueTtcbiAgfVxuXG4gIHNldENvbnNlbnN1c0JyYW5jaElkKGNvbnNlbnN1c0JyYW5jaElkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0eXBlZm9yY2UodHlwZXMuVUludDMyLCBjb25zZW5zdXNCcmFuY2hJZCk7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eUNoZWNrU2lnbmF0dXJlcygnY29uc2Vuc3VzQnJhbmNoSWQnLCBjb25zZW5zdXNCcmFuY2hJZCk7XG4gIH1cblxuICBzZXRWZXJzaW9uR3JvdXBJZCh2ZXJzaW9uR3JvdXBJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdHlwZWZvcmNlKHR5cGVzLlVJbnQzMiwgdmVyc2lvbkdyb3VwSWQpO1xuICAgIHRoaXMuc2V0UHJvcGVydHlDaGVja1NpZ25hdHVyZXMoJ3ZlcnNpb25Hcm91cElkJywgdmVyc2lvbkdyb3VwSWQpO1xuICB9XG5cbiAgc2V0RXhwaXJ5SGVpZ2h0KGV4cGlyeUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgdHlwZWZvcmNlKHR5cGVzLlVJbnQzMiwgZXhwaXJ5SGVpZ2h0KTtcbiAgICB0aGlzLnNldFByb3BlcnR5Q2hlY2tTaWduYXR1cmVzKCdleHBpcnlIZWlnaHQnLCBleHBpcnlIZWlnaHQpO1xuICB9XG59XG4iXX0=
@@ -1,9 +1,12 @@
1
1
  import { BIP32Interface } from 'bip32';
2
2
  import { Triple } from '../bitgo';
3
3
  import { RootWalletKeys } from '../bitgo';
4
+ import { ECPairInterface } from '../noble_ecc';
4
5
  export declare type KeyTriple = Triple<BIP32Interface>;
6
+ export declare type UncompressedKeyTriple = Triple<ECPairInterface>;
5
7
  export declare function getKey(seed: string): BIP32Interface;
6
8
  export declare function getKeyTriple(seed: string): KeyTriple;
9
+ export declare function getUncompressedKeyTriple(inputs: Triple<number>): UncompressedKeyTriple;
7
10
  export declare function getKeyName(triple: Triple<BIP32Interface>, k: BIP32Interface): string | undefined;
8
11
  export declare function getDefaultCosigner<T>(keyset: Triple<T>, signer: T): T;
9
12
  export declare function getDefaultWalletKeys(): RootWalletKeys;
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/testutil/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,cAAc,EAAE,MAAM,OAAO,CAAC;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK1C,oBAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE/C,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEnD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAEpD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAEhG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAarE;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/testutil/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,cAAc,EAAE,MAAM,OAAO,CAAC;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAe,eAAe,EAAE,MAAM,cAAc,CAAC;AAK5D,oBAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,oBAAY,qBAAqB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAE5D,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEnD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAEpD;AAaD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAEtF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAEhG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAarE;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDefaultWalletKeys = exports.getDefaultCosigner = exports.getKeyName = exports.getKeyTriple = exports.getKey = void 0;
3
+ exports.getDefaultWalletKeys = exports.getDefaultCosigner = exports.getKeyName = exports.getUncompressedKeyTriple = exports.getKeyTriple = exports.getKey = void 0;
4
4
  const bip32_1 = require("bip32");
5
5
  const crypto = require("crypto");
6
6
  const bitgo_1 = require("../bitgo");
7
7
  const noble_ecc_1 = require("../noble_ecc");
8
+ const networks_1 = require("../networks");
8
9
  const bip32 = bip32_1.BIP32Factory(noble_ecc_1.ecc);
9
10
  function getKey(seed) {
10
11
  return bip32.fromSeed(crypto.createHash('sha256').update(seed).digest());
@@ -14,6 +15,20 @@ function getKeyTriple(seed) {
14
15
  return [getKey(seed + '.0'), getKey(seed + '.1'), getKey(seed + '.2')];
15
16
  }
16
17
  exports.getKeyTriple = getKeyTriple;
18
+ function getUncompressedKey(input) {
19
+ // Using input for deterministic randomness
20
+ return noble_ecc_1.ECPair.makeRandom({
21
+ compressed: false,
22
+ network: networks_1.networks.testnet,
23
+ rng: () => {
24
+ return Buffer.alloc(32, input);
25
+ },
26
+ });
27
+ }
28
+ function getUncompressedKeyTriple(inputs) {
29
+ return [getUncompressedKey(inputs[0]), getUncompressedKey(inputs[1]), getUncompressedKey(inputs[2])];
30
+ }
31
+ exports.getUncompressedKeyTriple = getUncompressedKeyTriple;
17
32
  function getKeyName(triple, k) {
18
33
  return ['user', 'backup', 'bitgo'][triple.indexOf(k)];
19
34
  }
@@ -37,4 +52,4 @@ function getDefaultWalletKeys() {
37
52
  return new bitgo_1.RootWalletKeys(getKeyTriple('default'));
38
53
  }
39
54
  exports.getDefaultWalletKeys = getDefaultWalletKeys;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUErRDtBQUMvRCxpQ0FBaUM7QUFHakMsb0NBQTBDO0FBQzFDLDRDQUFtQztBQUVuQyxNQUFNLEtBQUssR0FBYSxvQkFBWSxDQUFDLGVBQUcsQ0FBQyxDQUFDO0FBSTFDLFNBQWdCLE1BQU0sQ0FBQyxJQUFZO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFGRCx3QkFFQztBQUVELFNBQWdCLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFGRCxvQ0FFQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxNQUE4QixFQUFFLENBQWlCO0lBQzFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBSSxNQUFpQixFQUFFLE1BQVM7SUFDaEUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFJLEVBQUUsQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDckMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDdEIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNyQixPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFiRCxnREFhQztBQUVELFNBQWdCLG9CQUFvQjtJQUNsQyxPQUFPLElBQUksc0JBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRkQsb0RBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkFQSSwgQklQMzJGYWN0b3J5LCBCSVAzMkludGVyZmFjZSB9IGZyb20gJ2JpcDMyJztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuLi9iaXRnbyc7XG5pbXBvcnQgeyBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4uL2JpdGdvJztcbmltcG9ydCB7IGVjYyB9IGZyb20gJy4uL25vYmxlX2VjYyc7XG5cbmNvbnN0IGJpcDMyOiBCSVAzMkFQSSA9IEJJUDMyRmFjdG9yeShlY2MpO1xuXG5leHBvcnQgdHlwZSBLZXlUcmlwbGUgPSBUcmlwbGU8QklQMzJJbnRlcmZhY2U+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5KHNlZWQ6IHN0cmluZyk6IEJJUDMySW50ZXJmYWNlIHtcbiAgcmV0dXJuIGJpcDMyLmZyb21TZWVkKGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoc2VlZCkuZGlnZXN0KCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5VHJpcGxlKHNlZWQ6IHN0cmluZyk6IEtleVRyaXBsZSB7XG4gIHJldHVybiBbZ2V0S2V5KHNlZWQgKyAnLjAnKSwgZ2V0S2V5KHNlZWQgKyAnLjEnKSwgZ2V0S2V5KHNlZWQgKyAnLjInKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlOYW1lKHRyaXBsZTogVHJpcGxlPEJJUDMySW50ZXJmYWNlPiwgazogQklQMzJJbnRlcmZhY2UpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gWyd1c2VyJywgJ2JhY2t1cCcsICdiaXRnbyddW3RyaXBsZS5pbmRleE9mKGspXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRDb3NpZ25lcjxUPihrZXlzZXQ6IFRyaXBsZTxUPiwgc2lnbmVyOiBUKTogVCB7XG4gIGNvbnN0IGVxID0gKGE6IFQsIGI6IFQpID0+IGEgPT09IGIgfHwgKEJ1ZmZlci5pc0J1ZmZlcihhKSAmJiBCdWZmZXIuaXNCdWZmZXIoYikgJiYgYS5lcXVhbHMoYikpO1xuICBjb25zdCBbdXNlciwgYmFja3VwLCBiaXRnb10gPSBrZXlzZXQ7XG4gIGlmIChlcShzaWduZXIsIHVzZXIpKSB7XG4gICAgcmV0dXJuIGJpdGdvO1xuICB9XG4gIGlmIChlcShzaWduZXIsIGJhY2t1cCkpIHtcbiAgICByZXR1cm4gYml0Z287XG4gIH1cbiAgaWYgKGVxKHNpZ25lciwgYml0Z28pKSB7XG4gICAgcmV0dXJuIHVzZXI7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBzaWduZXIgbm90IGluIHB1YmtleXNgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRXYWxsZXRLZXlzKCk6IFJvb3RXYWxsZXRLZXlzIHtcbiAgcmV0dXJuIG5ldyBSb290V2FsbGV0S2V5cyhnZXRLZXlUcmlwbGUoJ2RlZmF1bHQnKSk7XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUErRDtBQUMvRCxpQ0FBaUM7QUFHakMsb0NBQTBDO0FBQzFDLDRDQUE0RDtBQUM1RCwwQ0FBdUM7QUFFdkMsTUFBTSxLQUFLLEdBQWEsb0JBQVksQ0FBQyxlQUFHLENBQUMsQ0FBQztBQUsxQyxTQUFnQixNQUFNLENBQUMsSUFBWTtJQUNqQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBRkQsd0JBRUM7QUFFRCxTQUFnQixZQUFZLENBQUMsSUFBWTtJQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRkQsb0NBRUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEtBQUs7SUFDL0IsMkNBQTJDO0lBQzNDLE9BQU8sa0JBQU0sQ0FBQyxVQUFVLENBQUM7UUFDdkIsVUFBVSxFQUFFLEtBQUs7UUFDakIsT0FBTyxFQUFFLG1CQUFRLENBQUMsT0FBTztRQUN6QixHQUFHLEVBQUUsR0FBVyxFQUFFO1lBQ2hCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxNQUFzQjtJQUM3RCxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDO0FBRkQsNERBRUM7QUFFRCxTQUFnQixVQUFVLENBQUMsTUFBOEIsRUFBRSxDQUFpQjtJQUMxRSxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUZELGdDQUVDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUksTUFBaUIsRUFBRSxNQUFTO0lBQ2hFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3JDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBYkQsZ0RBYUM7QUFFRCxTQUFnQixvQkFBb0I7SUFDbEMsT0FBTyxJQUFJLHNCQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUZELG9EQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQklQMzJBUEksIEJJUDMyRmFjdG9yeSwgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdiaXAzMic7XG5pbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnY3J5cHRvJztcblxuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnLi4vYml0Z28nO1xuaW1wb3J0IHsgUm9vdFdhbGxldEtleXMgfSBmcm9tICcuLi9iaXRnbyc7XG5pbXBvcnQgeyBlY2MsIEVDUGFpciwgRUNQYWlySW50ZXJmYWNlIH0gZnJvbSAnLi4vbm9ibGVfZWNjJztcbmltcG9ydCB7IG5ldHdvcmtzIH0gZnJvbSAnLi4vbmV0d29ya3MnO1xuXG5jb25zdCBiaXAzMjogQklQMzJBUEkgPSBCSVAzMkZhY3RvcnkoZWNjKTtcblxuZXhwb3J0IHR5cGUgS2V5VHJpcGxlID0gVHJpcGxlPEJJUDMySW50ZXJmYWNlPjtcbmV4cG9ydCB0eXBlIFVuY29tcHJlc3NlZEtleVRyaXBsZSA9IFRyaXBsZTxFQ1BhaXJJbnRlcmZhY2U+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5KHNlZWQ6IHN0cmluZyk6IEJJUDMySW50ZXJmYWNlIHtcbiAgcmV0dXJuIGJpcDMyLmZyb21TZWVkKGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoc2VlZCkuZGlnZXN0KCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5VHJpcGxlKHNlZWQ6IHN0cmluZyk6IEtleVRyaXBsZSB7XG4gIHJldHVybiBbZ2V0S2V5KHNlZWQgKyAnLjAnKSwgZ2V0S2V5KHNlZWQgKyAnLjEnKSwgZ2V0S2V5KHNlZWQgKyAnLjInKV07XG59XG5cbmZ1bmN0aW9uIGdldFVuY29tcHJlc3NlZEtleShpbnB1dCkge1xuICAvLyBVc2luZyBpbnB1dCBmb3IgZGV0ZXJtaW5pc3RpYyByYW5kb21uZXNzXG4gIHJldHVybiBFQ1BhaXIubWFrZVJhbmRvbSh7XG4gICAgY29tcHJlc3NlZDogZmFsc2UsXG4gICAgbmV0d29yazogbmV0d29ya3MudGVzdG5ldCxcbiAgICBybmc6ICgpOiBCdWZmZXIgPT4ge1xuICAgICAgcmV0dXJuIEJ1ZmZlci5hbGxvYygzMiwgaW5wdXQpO1xuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5jb21wcmVzc2VkS2V5VHJpcGxlKGlucHV0czogVHJpcGxlPG51bWJlcj4pOiBVbmNvbXByZXNzZWRLZXlUcmlwbGUge1xuICByZXR1cm4gW2dldFVuY29tcHJlc3NlZEtleShpbnB1dHNbMF0pLCBnZXRVbmNvbXByZXNzZWRLZXkoaW5wdXRzWzFdKSwgZ2V0VW5jb21wcmVzc2VkS2V5KGlucHV0c1syXSldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5TmFtZSh0cmlwbGU6IFRyaXBsZTxCSVAzMkludGVyZmFjZT4sIGs6IEJJUDMySW50ZXJmYWNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFsndXNlcicsICdiYWNrdXAnLCAnYml0Z28nXVt0cmlwbGUuaW5kZXhPZihrKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q29zaWduZXI8VD4oa2V5c2V0OiBUcmlwbGU8VD4sIHNpZ25lcjogVCk6IFQge1xuICBjb25zdCBlcSA9IChhOiBULCBiOiBUKSA9PiBhID09PSBiIHx8IChCdWZmZXIuaXNCdWZmZXIoYSkgJiYgQnVmZmVyLmlzQnVmZmVyKGIpICYmIGEuZXF1YWxzKGIpKTtcbiAgY29uc3QgW3VzZXIsIGJhY2t1cCwgYml0Z29dID0ga2V5c2V0O1xuICBpZiAoZXEoc2lnbmVyLCB1c2VyKSkge1xuICAgIHJldHVybiBiaXRnbztcbiAgfVxuICBpZiAoZXEoc2lnbmVyLCBiYWNrdXApKSB7XG4gICAgcmV0dXJuIGJpdGdvO1xuICB9XG4gIGlmIChlcShzaWduZXIsIGJpdGdvKSkge1xuICAgIHJldHVybiB1c2VyO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgc2lnbmVyIG5vdCBpbiBwdWJrZXlzYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0V2FsbGV0S2V5cygpOiBSb290V2FsbGV0S2V5cyB7XG4gIHJldHVybiBuZXcgUm9vdFdhbGxldEtleXMoZ2V0S2V5VHJpcGxlKCdkZWZhdWx0JykpO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/testutil/mock.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAc,OAAO,EAAY,MAAM,aAAa,CAAC;AAE5D,OAAO,EACL,SAAS,EAMT,uBAAuB,EACvB,aAAa,EACb,cAAc,EAEd,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,aAAa,EACd,MAAM,UAAU,CAAC;AAMlB,oBAAY,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC;AAErD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,eAAe,CAAC,MAAM,CAAC,CA6BzB;AAED,eAAO,MAAM,uBAAuB,gBAA8B,CAAC;AAGnE,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACvE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAET;AAED,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACzE,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,EAAE,GAA6B,EAAE,IAAQ,EAAE,GAAE;IAAE,GAAG,CAAC,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACxF,iBAAiB,CAAC,OAAO,CAAC,CAI5B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/D,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,EACE,KAAS,EACT,KAAS,EACT,IAA6B,EAC7B,IAAQ,EACR,EAAE,GACH,GAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/F,aAAa,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CA0B3D;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAClE,gBAAgB,EAAE,OAAO,EACzB,OAAO,EAAE,OAAO,GACf,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAgB/C"}
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/testutil/mock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAc,OAAO,EAAY,MAAM,aAAa,CAAC;AAE5D,OAAO,EACL,SAAS,EAMT,uBAAuB,EACvB,aAAa,EACb,cAAc,EAEd,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,aAAa,EACd,MAAM,UAAU,CAAC;AAMlB,oBAAY,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC;AAErD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,eAAe,CAAC,MAAM,CAAC,CA8BzB;AAED,eAAO,MAAM,uBAAuB,gBAA8B,CAAC;AAGnE,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACvE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAET;AAED,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACzE,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,EAAE,GAA6B,EAAE,IAAQ,EAAE,GAAE;IAAE,GAAG,CAAC,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACxF,iBAAiB,CAAC,OAAO,CAAC,CAI5B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/D,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,EACE,KAAS,EACT,KAAS,EACT,IAA6B,EAC7B,IAAQ,EACR,EAAE,GACH,GAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/F,aAAa,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CA0B3D;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAClE,gBAAgB,EAAE,OAAO,EACzB,OAAO,EAAE,OAAO,GACf,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAgB/C"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mockUnspents = exports.mockWalletUnspent = exports.mockReplayProtectionUnspent = exports.isReplayProtectionUnspent = exports.replayProtectionKeyPair = exports.mockPrevTx = void 0;
4
+ const assert = require("assert");
4
5
  const noble = require("@noble/secp256k1");
5
6
  const utxolib = require("..");
6
7
  const networks_1 = require("../networks");
@@ -10,8 +11,9 @@ const outputScripts_1 = require("../bitgo/outputScripts");
10
11
  const keys_1 = require("./keys");
11
12
  function mockPrevTx(vout, outputScript, value, network) {
12
13
  const psbtFromNetwork = bitgo_1.createPsbtForNetwork({ network });
13
- const privKey = noble.utils.randomPrivateKey();
14
- const pubkey = Buffer.from(noble.getPublicKey(privKey, true));
14
+ const keypair = keys_1.getKey('mock-prev-tx');
15
+ const pubkey = keypair.publicKey;
16
+ assert(keypair.privateKey);
15
17
  const payment = utxolib.payments.p2wpkh({ pubkey });
16
18
  const destOutput = payment.output;
17
19
  if (!destOutput)
@@ -31,7 +33,7 @@ function mockPrevTx(vout, outputScript, value, network) {
31
33
  });
32
34
  psbtFromNetwork.signInput(0, {
33
35
  publicKey: pubkey,
34
- sign: (hash, lowR) => Buffer.from(noble.signSync(hash, privKey, { canonical: !lowR, der: false })),
36
+ sign: (hash, lowR) => Buffer.from(noble.signSync(hash, keypair.privateKey, { canonical: !lowR, der: false })),
35
37
  });
36
38
  psbtFromNetwork.validateSignaturesOfAllInputs();
37
39
  psbtFromNetwork.finalizeAllInputs();
@@ -89,4 +91,4 @@ function mockUnspents(rootWalletKeys, inputScriptTypes, testOutputAmount, networ
89
91
  });
90
92
  }
91
93
  exports.mockUnspents = mockUnspents;
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBDQUEwQztBQUMxQyw4QkFBOEI7QUFDOUIsMENBQTREO0FBRTVELG9DQWVrQjtBQUNsQix3Q0FBOEM7QUFDOUMsMERBQTRGO0FBRTVGLGlDQUFzRDtBQUl0RCxTQUFnQixVQUFVLENBQ3hCLElBQVksRUFDWixZQUFvQixFQUNwQixLQUFhLEVBQ2IsT0FBZ0I7SUFFaEIsTUFBTSxlQUFlLEdBQUcsNEJBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTFELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDbEMsSUFBSSxDQUFDLFVBQVU7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFFMUYsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMxQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDbEIsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM1RDthQUFNO1lBQ0wsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENB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QUMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBckJELG9DQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnYmlwMzInO1xuaW1wb3J0ICogYXMgbm9ibGUgZnJvbSAnQG5vYmxlL3NlY3AyNTZrMSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJy4uJztcbmltcG9ydCB7IGdldE1haW5uZXQsIE5ldHdvcmssIG5ldHdvcmtzIH0gZnJvbSAnLi4vbmV0d29ya3MnO1xuXG5pbXBvcnQge1xuICBDaGFpbkNvZGUsXG4gIGNyZWF0ZVBzYnRGb3JOZXR3b3JrLFxuICBmcm9tT3V0cHV0LFxuICBmcm9tT3V0cHV0V2l0aFByZXZUeCxcbiAgZ2V0RXh0ZXJuYWxDaGFpbkNvZGUsXG4gIGlzU2Vnd2l0LFxuICBOb25XaXRuZXNzV2FsbGV0VW5zcGVudCxcbiAgb3V0cHV0U2NyaXB0cyxcbiAgUm9vdFdhbGxldEtleXMsXG4gIHNjcmlwdFR5cGVGb3JDaGFpbixcbiAgVW5zcGVudCxcbiAgVW5zcGVudFdpdGhQcmV2VHgsXG4gIFV0eG9UcmFuc2FjdGlvbixcbiAgV2FsbGV0VW5zcGVudCxcbn0gZnJvbSAnLi4vYml0Z28nO1xuaW1wb3J0IHsgZnJvbU91dHB1dFNjcmlwdCB9IGZyb20gJy4uL2FkZHJlc3MnO1xuaW1wb3J0IHsgY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMywgY3JlYXRlT3V0cHV0U2NyaXB0UDJzaFAycGsgfSBmcm9tICcuLi9iaXRnby9vdXRwdXRTY3JpcHRzJztcblxuaW1wb3J0IHsgZ2V0RGVmYXVsdFdhbGxldEtleXMsIGdldEtleSB9IGZyb20gJy4va2V5cyc7XG5cbmV4cG9ydCB0eXBlIElucHV0VHlwZSA9IG91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjM7XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUHJldlR4KFxuICB2b3V0OiBudW1iZXIsXG4gIG91dHB1dFNjcmlwdDogQnVmZmVyLFxuICB2YWx1ZTogYmlnaW50LFxuICBuZXR3b3JrOiBOZXR3b3JrXG4pOiBVdHhvVHJhbnNhY3Rpb248YmlnaW50PiB7XG4gIGNvbnN0IHBzYnRGcm9tTmV0d29yayA9IGNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcblxuICBjb25zdCBwcml2S2V5ID0gbm9ibGUudXRpbHMucmFuZG9tUHJpdmF0ZUtleSgpO1xuICBjb25zdCBwdWJrZXkgPSBCdWZmZXIuZnJvbShub2JsZS5nZXRQdWJsaWNLZXkocHJpdktleSwgdHJ1ZSkpO1xuICBjb25zdCBwYXltZW50ID0gdXR4b2xpYi5wYXltZW50cy5wMndwa2goeyBwdWJrZXkgfSk7XG4gIGNvbnN0IGRlc3RPdXRwdXQgPSBwYXltZW50Lm91dHB1dDtcbiAgaWYgKCFkZXN0T3V0cHV0KSB0aHJvdyBuZXcgRXJyb3IoJ0ltcG9zc2libGUsIHBheW1lbnQgd2UganVzdCBjb25zdHJ1Y3RlZCBoYXMgbm8gb3V0cHV0Jyk7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8PSB2b3V0OyBpbmRleCsrKSB7XG4gICAgaWYgKGluZGV4ID09PSB2b3V0KSB7XG4gICAgICBwc2J0RnJvbU5ldHdvcmsuYWRkT3V0cHV0KHsgc2NyaXB0OiBvdXRwdXRTY3JpcHQsIHZhbHVlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwc2J0RnJvbU5ldHdvcmsuYWRkT3V0cHV0KHsgc2NyaXB0OiBkZXN0T3V0cHV0LCB2YWx1ZSB9KTtcbiAgICB9XG4gIH1cbiAgcHNidEZyb21OZXR3b3JrLmFkZElucHV0KHtcbiAgICBoYXNoOiBCdWZmZXIuYWxsb2MoMzIsIDB4MDEpLFxuICAgIGluZGV4OiAwLFxuICAgIHdpdG5lc3NVdHhvOiB7IHNjcmlwdDogZGVzdE91dHB1dCwgdmFsdWU6IHZhbHVlICogKEJpZ0ludCh2b3V0KSArIEJpZ0ludCgxKSkgKyBCaWdJbnQoMTAwMCkgfSxcbiAgfSk7XG4gIHBzYnRGcm9tTmV0d29yay5zaWduSW5wdXQoMCwge1xuICAgIHB1YmxpY0tleTogcHVia2V5LFxuICAgIHNpZ246IChoYXNoOiBCdWZmZXIsIGxvd1I/OiBib29sZWFuKSA9PlxuICAgICAgQnVmZmVyLmZyb20obm9ibGUuc2lnblN5bmMoaGFzaCwgcHJpdktleSwgeyBjYW5vbmljYWw6ICFsb3dSLCBkZXI6IGZhbHNlIH0pKSxcbiAgfSk7XG4gIHBzYnRGcm9tTmV0d29yay52YWxpZGF0ZVNpZ25hdHVyZXNPZkFsbElucHV0cygpO1xuICBwc2J0RnJvbU5ldHdvcmsuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgcmV0dXJuIHBzYnRGcm9tTmV0d29yay5leHRyYWN0VHJhbnNhY3Rpb24oKSBhcyBVdHhvVHJhbnNhY3Rpb248YmlnaW50Pjtcbn1cblxuZXhwb3J0IGNvbnN0IHJlcGxheVByb3RlY3Rpb25LZXlQYWlyID0gZ2V0S2V5KCdyZXBsYXktcHJvdGVjdGlvbicpO1xuY29uc3QgcmVwbGF5UHJvdGVjdGlvblNjcmlwdFB1YktleSA9IGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKHJlcGxheVByb3RlY3Rpb25LZXlQYWlyLnB1YmxpY0tleSkuc2NyaXB0UHViS2V5O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXBsYXlQcm90ZWN0aW9uVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgYmlnaW50IHwgbnVtYmVyPihcbiAgdTogVW5zcGVudDxUTnVtYmVyPixcbiAgbmV0d29yazogTmV0d29ya1xuKTogYm9vbGVhbiB7XG4gIHJldHVybiB1LmFkZHJlc3MgPT09IGZyb21PdXRwdXRTY3JpcHQocmVwbGF5UHJvdGVjdGlvblNjcmlwdFB1YktleSwgbmV0d29yayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHZhbHVlOiBUTnVtYmVyLFxuICB7IGtleSA9IHJlcGxheVByb3RlY3Rpb25LZXlQYWlyLCB2b3V0ID0gMCB9OiB7IGtleT86IEJJUDMySW50ZXJmYWNlOyB2b3V0PzogbnVtYmVyIH0gPSB7fVxuKTogVW5zcGVudFdpdGhQcmV2VHg8VE51bWJlcj4ge1xuICBjb25zdCBvdXRwdXRTY3JpcHQgPSBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayhrZXkucHVibGljS2V5KS5zY3JpcHRQdWJLZXk7XG4gIGNvbnN0IHByZXZUcmFuc2FjdGlvbiA9IG1vY2tQcmV2VHgodm91dCwgb3V0cHV0U2NyaXB0LCBCaWdJbnQodmFsdWUpLCBuZXR3b3JrKTtcbiAgcmV0dXJuIHsgLi4uZnJvbU91dHB1dFdpdGhQcmV2VHgocHJldlRyYW5zYWN0aW9uLCB2b3V0KSwgdmFsdWUgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tXYWxsZXRVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICB2YWx1ZTogVE51bWJlcixcbiAge1xuICAgIGNoYWluID0gMCxcbiAgICBpbmRleCA9IDAsXG4gICAga2V5cyA9IGdldERlZmF1bHRXYWxsZXRLZXlzKCksXG4gICAgdm91dCA9IDAsXG4gICAgaWQsXG4gIH06IHsgY2hhaW4/OiBDaGFpbkNvZGU7IGluZGV4PzogbnVtYmVyOyBrZXlzPzogUm9vdFdhbGxldEtleXM7IHZvdXQ/OiBudW1iZXI7IGlkPzogc3RyaW5nIH0gPSB7fVxuKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPiB8IE5vbldpdG5lc3NXYWxsZXRVbnNwZW50PFROdW1iZXI+IHtcbiAgY29uc3QgZGVyaXZlZEtleXMgPSBrZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KTtcbiAgY29uc3QgYWRkcmVzcyA9IGZyb21PdXRwdXRTY3JpcHQoXG4gICAgY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhkZXJpdmVkS2V5cy5wdWJsaWNLZXlzLCBzY3JpcHRUeXBlRm9yQ2hhaW4oY2hhaW4pKS5zY3JpcHRQdWJLZXksXG4gICAgbmV0d29ya1xuICApO1xuICBpZiAoaWQgJiYgdHlwZW9mIGlkID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7IGlkLCBhZGRyZXNzLCBjaGFpbiwgaW5kZXgsIHZhbHVlIH07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcHJldlRyYW5zYWN0aW9uID0gbW9ja1ByZXZUeChcbiAgICAgIHZvdXQsXG4gICAgICBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKGRlcml2ZWRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbiksIG5ldHdvcmspLnNjcmlwdFB1YktleSxcbiAgICAgIEJpZ0ludCh2YWx1ZSksXG4gICAgICBuZXR3b3JrXG4gICAgKTtcbiAgICBjb25zdCB1bnNwZW50ID1cbiAgICAgIGlzU2Vnd2l0KGNoYWluKSB8fCBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy56Y2FzaFxuICAgICAgICA/IGZyb21PdXRwdXQocHJldlRyYW5zYWN0aW9uLCB2b3V0KVxuICAgICAgICA6IGZyb21PdXRwdXRXaXRoUHJldlR4KHByZXZUcmFuc2FjdGlvbiwgdm91dCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnVuc3BlbnQsXG4gICAgICBjaGFpbixcbiAgICAgIGluZGV4LFxuICAgICAgdmFsdWUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1Vuc3BlbnRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIGlucHV0U2NyaXB0VHlwZXM6IChJbnB1dFR5cGUgfCBvdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGVQMnNoUDJwaylbXSxcbiAgdGVzdE91dHB1dEFtb3VudDogVE51bWJlcixcbiAgbmV0d29yazogTmV0d29ya1xuKTogKFVuc3BlbnQ8VE51bWJlcj4gfCBXYWxsZXRVbnNwZW50PFROdW1iZXI+KVtdIHtcbiAgcmV0dXJuIGlucHV0U2NyaXB0VHlwZXMubWFwKCh0LCBpKTogVW5zcGVudDxUTnVtYmVyPiA9PiB7XG4gICAgaWYgKG91dHB1dFNjcmlwdHMuaXNTY3JpcHRUeXBlMk9mMyh0KSkge1xuICAgICAgcmV0dXJuIG1vY2tXYWxsZXRVbnNwZW50KG5ldHdvcmssIHRlc3RPdXRwdXRBbW91bnQsIHtcbiAgICAgICAga2V5czogcm9vdFdhbGxldEtleXMsXG4gICAgICAgIGNoYWluOiBnZXRFeHRlcm5hbENoYWluQ29kZSh0KSxcbiAgICAgICAgdm91dDogaSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodCA9PT0gb3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlUDJzaFAycGspIHtcbiAgICAgIHJldHVybiBtb2NrUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQobmV0d29yaywgdGVzdE91dHB1dEFtb3VudCwge1xuICAgICAgICBrZXk6IHJlcGxheVByb3RlY3Rpb25LZXlQYWlyLFxuICAgICAgICB2b3V0OiBpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBpbnB1dCB0eXBlICR7dH1gKTtcbiAgfSk7XG59XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUVqQywwQ0FBMEM7QUFDMUMsOEJBQThCO0FBQzlCLDBDQUE0RDtBQUU1RCxvQ0Fla0I7QUFDbEIsd0NBQThDO0FBQzlDLDBEQUE0RjtBQUU1RixpQ0FBc0Q7QUFJdEQsU0FBZ0IsVUFBVSxDQUN4QixJQUFZLEVBQ1osWUFBb0IsRUFDcEIsS0FBYSxFQUNiLE9BQWdCO0lBRWhCLE1BQU0sZUFBZSxHQUFHLDRCQUFvQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUUxRCxNQUFNLE9BQU8sR0FBRyxhQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ2xDLElBQUksQ0FBQyxVQUFVO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBRTFGLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDMUMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2xCLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDNUQ7YUFBTTtZQUNMLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7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Q0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFyQkQsb0NBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ2JpcDMyJztcbmltcG9ydCAqIGFzIG5vYmxlIGZyb20gJ0Bub2JsZS9zZWNwMjU2azEnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICcuLic7XG5pbXBvcnQgeyBnZXRNYWlubmV0LCBOZXR3b3JrLCBuZXR3b3JrcyB9IGZyb20gJy4uL25ldHdvcmtzJztcblxuaW1wb3J0IHtcbiAgQ2hhaW5Db2RlLFxuICBjcmVhdGVQc2J0Rm9yTmV0d29yayxcbiAgZnJvbU91dHB1dCxcbiAgZnJvbU91dHB1dFdpdGhQcmV2VHgsXG4gIGdldEV4dGVybmFsQ2hhaW5Db2RlLFxuICBpc1NlZ3dpdCxcbiAgTm9uV2l0bmVzc1dhbGxldFVuc3BlbnQsXG4gIG91dHB1dFNjcmlwdHMsXG4gIFJvb3RXYWxsZXRLZXlzLFxuICBzY3JpcHRUeXBlRm9yQ2hhaW4sXG4gIFVuc3BlbnQsXG4gIFVuc3BlbnRXaXRoUHJldlR4LFxuICBVdHhvVHJhbnNhY3Rpb24sXG4gIFdhbGxldFVuc3BlbnQsXG59IGZyb20gJy4uL2JpdGdvJztcbmltcG9ydCB7IGZyb21PdXRwdXRTY3JpcHQgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMsIGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrIH0gZnJvbSAnLi4vYml0Z28vb3V0cHV0U2NyaXB0cyc7XG5cbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRLZXlzLCBnZXRLZXkgfSBmcm9tICcuL2tleXMnO1xuXG5leHBvcnQgdHlwZSBJbnB1dFR5cGUgPSBvdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1ByZXZUeChcbiAgdm91dDogbnVtYmVyLFxuICBvdXRwdXRTY3JpcHQ6IEJ1ZmZlcixcbiAgdmFsdWU6IGJpZ2ludCxcbiAgbmV0d29yazogTmV0d29ya1xuKTogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4ge1xuICBjb25zdCBwc2J0RnJvbU5ldHdvcmsgPSBjcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG5cbiAgY29uc3Qga2V5cGFpciA9IGdldEtleSgnbW9jay1wcmV2LXR4Jyk7XG4gIGNvbnN0IHB1YmtleSA9IGtleXBhaXIucHVibGljS2V5O1xuICBhc3NlcnQoa2V5cGFpci5wcml2YXRlS2V5KTtcbiAgY29uc3QgcGF5bWVudCA9IHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHsgcHVia2V5IH0pO1xuICBjb25zdCBkZXN0T3V0cHV0ID0gcGF5bWVudC5vdXRwdXQ7XG4gIGlmICghZGVzdE91dHB1dCkgdGhyb3cgbmV3IEVycm9yKCdJbXBvc3NpYmxlLCBwYXltZW50IHdlIGp1c3QgY29uc3RydWN0ZWQgaGFzIG5vIG91dHB1dCcpO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPD0gdm91dDsgaW5kZXgrKykge1xuICAgIGlmIChpbmRleCA9PT0gdm91dCkge1xuICAgICAgcHNidEZyb21OZXR3b3JrLmFkZE91dHB1dCh7IHNjcmlwdDogb3V0cHV0U2NyaXB0LCB2YWx1ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHNidEZyb21OZXR3b3JrLmFkZE91dHB1dCh7IHNjcmlwdDogZGVzdE91dHB1dCwgdmFsdWUgfSk7XG4gICAgfVxuICB9XG4gIHBzYnRGcm9tTmV0d29yay5hZGRJbnB1dCh7XG4gICAgaGFzaDogQnVmZmVyLmFsbG9jKDMyLCAweDAxKSxcbiAgICBpbmRleDogMCxcbiAgICB3aXRuZXNzVXR4bzogeyBzY3JpcHQ6IGRlc3RPdXRwdXQsIHZhbHVlOiB2YWx1ZSAqIChCaWdJbnQodm91dCkgKyBCaWdJbnQoMSkpICsgQmlnSW50KDEwMDApIH0sXG4gIH0pO1xuICBwc2J0RnJvbU5ldHdvcmsuc2lnbklucHV0KDAsIHtcbiAgICBwdWJsaWNLZXk6IHB1YmtleSxcbiAgICBzaWduOiAoaGFzaDogQnVmZmVyLCBsb3dSPzogYm9vbGVhbikgPT5cbiAgICAgIEJ1ZmZlci5mcm9tKG5vYmxlLnNpZ25TeW5jKGhhc2gsIGtleXBhaXIucHJpdmF0ZUtleSBhcyBCdWZmZXIsIHsgY2Fub25pY2FsOiAhbG93UiwgZGVyOiBmYWxzZSB9KSksXG4gIH0pO1xuICBwc2J0RnJvbU5ldHdvcmsudmFsaWRhdGVTaWduYXR1cmVzT2ZBbGxJbnB1dHMoKTtcbiAgcHNidEZyb21OZXR3b3JrLmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gIHJldHVybiBwc2J0RnJvbU5ldHdvcmsuZXh0cmFjdFRyYW5zYWN0aW9uKCk7XG59XG5cbmV4cG9ydCBjb25zdCByZXBsYXlQcm90ZWN0aW9uS2V5UGFpciA9IGdldEtleSgncmVwbGF5LXByb3RlY3Rpb24nKTtcbmNvbnN0IHJlcGxheVByb3RlY3Rpb25TY3JpcHRQdWJLZXkgPSBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayhyZXBsYXlQcm90ZWN0aW9uS2V5UGFpci5wdWJsaWNLZXkpLnNjcmlwdFB1YktleTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQ8VE51bWJlciBleHRlbmRzIGJpZ2ludCB8IG51bWJlcj4oXG4gIHU6IFVuc3BlbnQ8VE51bWJlcj4sXG4gIG5ldHdvcms6IE5ldHdvcmtcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gdS5hZGRyZXNzID09PSBmcm9tT3V0cHV0U2NyaXB0KHJlcGxheVByb3RlY3Rpb25TY3JpcHRQdWJLZXksIG5ldHdvcmspO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1JlcGxheVByb3RlY3Rpb25VbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICB2YWx1ZTogVE51bWJlcixcbiAgeyBrZXkgPSByZXBsYXlQcm90ZWN0aW9uS2V5UGFpciwgdm91dCA9IDAgfTogeyBrZXk/OiBCSVAzMkludGVyZmFjZTsgdm91dD86IG51bWJlciB9ID0ge31cbik6IFVuc3BlbnRXaXRoUHJldlR4PFROdW1iZXI+IHtcbiAgY29uc3Qgb3V0cHV0U2NyaXB0ID0gY3JlYXRlT3V0cHV0U2NyaXB0UDJzaFAycGsoa2V5LnB1YmxpY0tleSkuc2NyaXB0UHViS2V5O1xuICBjb25zdCBwcmV2VHJhbnNhY3Rpb24gPSBtb2NrUHJldlR4KHZvdXQsIG91dHB1dFNjcmlwdCwgQmlnSW50KHZhbHVlKSwgbmV0d29yayk7XG4gIHJldHVybiB7IC4uLmZyb21PdXRwdXRXaXRoUHJldlR4KHByZXZUcmFuc2FjdGlvbiwgdm91dCksIHZhbHVlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgbmV0d29yazogTmV0d29yayxcbiAgdmFsdWU6IFROdW1iZXIsXG4gIHtcbiAgICBjaGFpbiA9IDAsXG4gICAgaW5kZXggPSAwLFxuICAgIGtleXMgPSBnZXREZWZhdWx0V2FsbGV0S2V5cygpLFxuICAgIHZvdXQgPSAwLFxuICAgIGlkLFxuICB9OiB7IGNoYWluPzogQ2hhaW5Db2RlOyBpbmRleD86IG51bWJlcjsga2V5cz86IFJvb3RXYWxsZXRLZXlzOyB2b3V0PzogbnVtYmVyOyBpZD86IHN0cmluZyB9ID0ge31cbik6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj4gfCBOb25XaXRuZXNzV2FsbGV0VW5zcGVudDxUTnVtYmVyPiB7XG4gIGNvbnN0IGRlcml2ZWRLZXlzID0ga2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYWluLCBpbmRleCk7XG4gIGNvbnN0IGFkZHJlc3MgPSBmcm9tT3V0cHV0U2NyaXB0KFxuICAgIGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoZGVyaXZlZEtleXMucHVibGljS2V5cywgc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKSkuc2NyaXB0UHViS2V5LFxuICAgIG5ldHdvcmtcbiAgKTtcbiAgaWYgKGlkICYmIHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4geyBpZCwgYWRkcmVzcywgY2hhaW4sIGluZGV4LCB2YWx1ZSB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHByZXZUcmFuc2FjdGlvbiA9IG1vY2tQcmV2VHgoXG4gICAgICB2b3V0LFxuICAgICAgY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhkZXJpdmVkS2V5cy5wdWJsaWNLZXlzLCBzY3JpcHRUeXBlRm9yQ2hhaW4oY2hhaW4pLCBuZXR3b3JrKS5zY3JpcHRQdWJLZXksXG4gICAgICBCaWdJbnQodmFsdWUpLFxuICAgICAgbmV0d29ya1xuICAgICk7XG4gICAgY29uc3QgdW5zcGVudCA9XG4gICAgICBpc1NlZ3dpdChjaGFpbikgfHwgZ2V0TWFpbm5ldChuZXR3b3JrKSA9PT0gbmV0d29ya3MuemNhc2hcbiAgICAgICAgPyBmcm9tT3V0cHV0KHByZXZUcmFuc2FjdGlvbiwgdm91dClcbiAgICAgICAgOiBmcm9tT3V0cHV0V2l0aFByZXZUeChwcmV2VHJhbnNhY3Rpb24sIHZvdXQpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi51bnNwZW50LFxuICAgICAgY2hhaW4sXG4gICAgICBpbmRleCxcbiAgICAgIHZhbHVlLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tVbnNwZW50czxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBpbnB1dFNjcmlwdFR5cGVzOiAoSW5wdXRUeXBlIHwgb3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlUDJzaFAycGspW10sXG4gIHRlc3RPdXRwdXRBbW91bnQ6IFROdW1iZXIsXG4gIG5ldHdvcms6IE5ldHdvcmtcbik6IChVbnNwZW50PFROdW1iZXI+IHwgV2FsbGV0VW5zcGVudDxUTnVtYmVyPilbXSB7XG4gIHJldHVybiBpbnB1dFNjcmlwdFR5cGVzLm1hcCgodCwgaSk6IFVuc3BlbnQ8VE51bWJlcj4gPT4ge1xuICAgIGlmIChvdXRwdXRTY3JpcHRzLmlzU2NyaXB0VHlwZTJPZjModCkpIHtcbiAgICAgIHJldHVybiBtb2NrV2FsbGV0VW5zcGVudChuZXR3b3JrLCB0ZXN0T3V0cHV0QW1vdW50LCB7XG4gICAgICAgIGtleXM6IHJvb3RXYWxsZXRLZXlzLFxuICAgICAgICBjaGFpbjogZ2V0RXh0ZXJuYWxDaGFpbkNvZGUodCksXG4gICAgICAgIHZvdXQ6IGksXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHQgPT09IG91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZVAyc2hQMnBrKSB7XG4gICAgICByZXR1cm4gbW9ja1JlcGxheVByb3RlY3Rpb25VbnNwZW50KG5ldHdvcmssIHRlc3RPdXRwdXRBbW91bnQsIHtcbiAgICAgICAga2V5OiByZXBsYXlQcm90ZWN0aW9uS2V5UGFpcixcbiAgICAgICAgdm91dDogaSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgaW5wdXQgdHlwZSAke3R9YCk7XG4gIH0pO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { ScriptType, ScriptType2Of3 } from '../bitgo/outputScripts';
2
- import { KeyName, RootWalletKeys, Unspent, UtxoPsbt, UtxoTransaction, WalletUnspent } from '../bitgo';
2
+ import { KeyName, RootWalletKeys, Unspent, UtxoPsbt, UtxoTransaction } from '../bitgo';
3
3
  import { Network } from '../networks';
4
4
  /**
5
5
  * input script type and value.
@@ -9,7 +9,7 @@ import { Network } from '../networks';
9
9
  export declare type InputScriptType = ScriptType | 'taprootKeyPathSpend';
10
10
  export declare type OutputScriptType = ScriptType2Of3;
11
11
  /**
12
- * output script type and value
12
+ * input script type and value
13
13
  */
14
14
  export interface Input {
15
15
  scriptType: InputScriptType;
@@ -53,19 +53,40 @@ export declare function getSigners(inputType: InputScriptType): {
53
53
  * signs with first or second signature for single input.
54
54
  * p2shP2pk is signed only with first sign.
55
55
  */
56
- export declare function signPsbtInput(psbt: UtxoPsbt, input: Input, inputIndex: number, rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned'): void;
56
+ export declare function signPsbtInput(psbt: UtxoPsbt, input: Input, inputIndex: number, rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned', params?: {
57
+ signers?: {
58
+ signerName: KeyName;
59
+ cosignerName?: KeyName;
60
+ };
61
+ deterministic?: boolean;
62
+ skipNonWitnessUtxo?: boolean;
63
+ }): void;
57
64
  /**
58
65
  * signs with first or second signature for all inputs.
59
66
  * p2shP2pk is signed only with first sign.
60
67
  */
61
- export declare function signAllPsbtInputs(psbt: UtxoPsbt, inputs: Input[], rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned'): void;
68
+ export declare function signAllPsbtInputs(psbt: UtxoPsbt, inputs: Input[], rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned', params?: {
69
+ signers?: {
70
+ signerName: KeyName;
71
+ cosignerName?: KeyName;
72
+ };
73
+ deterministic?: boolean;
74
+ skipNonWitnessUtxo?: boolean;
75
+ }): void;
62
76
  /**
63
77
  * construct psbt for given inputs, outputs, network and root wallet keys.
64
78
  */
65
- export declare function constructPsbt(inputs: Input[], outputs: Output[], network: Network, rootWalletKeys: RootWalletKeys, sign: 'unsigned' | 'halfsigned' | 'fullsigned'): UtxoPsbt;
79
+ export declare function constructPsbt(inputs: Input[], outputs: Output[], network: Network, rootWalletKeys: RootWalletKeys, sign: 'unsigned' | 'halfsigned' | 'fullsigned', params?: {
80
+ signers?: {
81
+ signerName: KeyName;
82
+ cosignerName?: KeyName;
83
+ };
84
+ deterministic?: boolean;
85
+ skipNonWitnessUtxo?: boolean;
86
+ }): UtxoPsbt;
66
87
  /**
67
88
  * Verifies signatures of fully signed tx (with taproot key path support).
68
89
  * NOTE: taproot key path tx can only be built and signed with PSBT.
69
90
  */
70
- export declare function verifyFullySignedSignatures(tx: UtxoTransaction<bigint>, unspents: WalletUnspent<bigint>[], walletKeys: RootWalletKeys, signer: KeyName, cosigner: KeyName): boolean;
91
+ export declare function verifyFullySignedSignatures(tx: UtxoTransaction<bigint>, unspents: Unspent<bigint>[], walletKeys: RootWalletKeys, signer: KeyName, cosigner: KeyName): boolean;
71
92
  //# sourceMappingURL=psbt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../src/testutil/psbt.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EACV,cAAc,EAGf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAQL,OAAO,EAGP,cAAc,EAEd,OAAO,EACP,QAAQ,EACR,eAAe,EAEf,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;GAIG;AACH,oBAAY,eAAe,GAAG,UAAU,GAAG,qBAAqB,CAAC;AACjE,oBAAY,gBAAgB,GAAG,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,kGAA2E,CAAC;AAEzG;;GAEG;AACH,eAAO,MAAM,iBAAiB,+DAAkB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,eAAe,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAKtG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,YAAY,GAAG,YAAY,GAChC,IAAI,CAYN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,KAAK,EAAE,EACf,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,YAAY,GAAG,YAAY,GAChC,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,YAAY,GAC7C,QAAQ,CAoDV;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,EAC3B,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EACjC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,GAChB,OAAO,CAiBT"}
1
+ {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../src/testutil/psbt.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ const assert = require("assert");
5
5
  const outputScripts_1 = require("../bitgo/outputScripts");
6
6
  const bitgo_1 = require("../bitgo");
7
7
  const mock_1 = require("./mock");
8
+ const address_1 = require("../address");
8
9
  /**
9
10
  * array of supported input script types.
10
11
  * use p2trMusig2 for p2trMusig2 script path.
@@ -50,18 +51,27 @@ exports.getSigners = getSigners;
50
51
  * signs with first or second signature for single input.
51
52
  * p2shP2pk is signed only with first sign.
52
53
  */
53
- function signPsbtInput(psbt, input, inputIndex, rootWalletKeys, sign) {
54
- const { signerName, cosignerName } = getSigners(input.scriptType);
54
+ function signPsbtInput(psbt, input, inputIndex, rootWalletKeys, sign, params) {
55
+ function signPsbt(psbt, signFunc, skipNonWitnessUtxo) {
56
+ if (skipNonWitnessUtxo) {
57
+ bitgo_1.withUnsafeNonSegwit(psbt, signFunc);
58
+ }
59
+ else {
60
+ signFunc();
61
+ }
62
+ }
63
+ const { signers, deterministic, skipNonWitnessUtxo } = params !== null && params !== void 0 ? params : {};
64
+ const { signerName, cosignerName } = signers ? signers : getSigners(input.scriptType);
55
65
  if (sign === 'halfsigned') {
56
66
  if (input.scriptType === 'p2shP2pk') {
57
- psbt.signInput(inputIndex, rootWalletKeys[signerName]);
67
+ signPsbt(psbt, () => psbt.signInput(inputIndex, rootWalletKeys[signerName]), skipNonWitnessUtxo);
58
68
  }
59
69
  else {
60
- psbt.signInputHD(inputIndex, rootWalletKeys[signerName]);
70
+ signPsbt(psbt, () => psbt.signInputHD(inputIndex, rootWalletKeys[signerName]), skipNonWitnessUtxo);
61
71
  }
62
72
  }
63
- if (sign === 'fullsigned' && cosignerName) {
64
- psbt.signInputHD(inputIndex, rootWalletKeys[cosignerName]);
73
+ if (sign === 'fullsigned' && cosignerName && input.scriptType !== 'p2shP2pk') {
74
+ signPsbt(psbt, () => psbt.signInputHD(inputIndex, rootWalletKeys[cosignerName], { deterministic }), skipNonWitnessUtxo);
65
75
  }
66
76
  }
67
77
  exports.signPsbtInput = signPsbtInput;
@@ -69,16 +79,18 @@ exports.signPsbtInput = signPsbtInput;
69
79
  * signs with first or second signature for all inputs.
70
80
  * p2shP2pk is signed only with first sign.
71
81
  */
72
- function signAllPsbtInputs(psbt, inputs, rootWalletKeys, sign) {
73
- inputs.forEach((input, index) => {
74
- signPsbtInput(psbt, input, index, rootWalletKeys, sign);
82
+ function signAllPsbtInputs(psbt, inputs, rootWalletKeys, sign, params) {
83
+ const { signers, deterministic, skipNonWitnessUtxo } = params !== null && params !== void 0 ? params : {};
84
+ inputs.forEach((input, inputIndex) => {
85
+ signPsbtInput(psbt, input, inputIndex, rootWalletKeys, sign, { signers, deterministic, skipNonWitnessUtxo });
75
86
  });
76
87
  }
77
88
  exports.signAllPsbtInputs = signAllPsbtInputs;
78
89
  /**
79
90
  * construct psbt for given inputs, outputs, network and root wallet keys.
80
91
  */
81
- function constructPsbt(inputs, outputs, network, rootWalletKeys, sign) {
92
+ function constructPsbt(inputs, outputs, network, rootWalletKeys, sign, params) {
93
+ const { signers, deterministic, skipNonWitnessUtxo } = params !== null && params !== void 0 ? params : {};
82
94
  const totalInputAmount = inputs.reduce((sum, input) => sum + input.value, BigInt(0));
83
95
  const outputInputAmount = outputs.reduce((sum, output) => sum + output.value, BigInt(0));
84
96
  assert(totalInputAmount >= outputInputAmount, 'total output can not exceed total input');
@@ -86,14 +98,14 @@ function constructPsbt(inputs, outputs, network, rootWalletKeys, sign) {
86
98
  const psbt = bitgo_1.createPsbtForNetwork({ network });
87
99
  const unspents = inputs.map((input, i) => toUnspent(input, i, network, rootWalletKeys));
88
100
  unspents.forEach((u, i) => {
89
- const { signerName, cosignerName } = getSigners(inputs[i].scriptType);
101
+ const { signerName, cosignerName } = signers ? signers : getSigners(inputs[i].scriptType);
90
102
  if (bitgo_1.isWalletUnspent(u) && cosignerName) {
91
- bitgo_1.addWalletUnspentToPsbt(psbt, u, rootWalletKeys, signerName, cosignerName);
103
+ bitgo_1.addWalletUnspentToPsbt(psbt, u, rootWalletKeys, signerName, cosignerName, { skipNonWitnessUtxo });
92
104
  }
93
105
  else {
94
106
  const { redeemScript } = outputScripts_1.createOutputScriptP2shP2pk(rootWalletKeys[signerName].publicKey);
95
107
  assert(redeemScript);
96
- bitgo_1.addReplayProtectionUnspentToPsbt(psbt, u, redeemScript);
108
+ bitgo_1.addReplayProtectionUnspentToPsbt(psbt, u, redeemScript, { skipNonWitnessUtxo });
97
109
  }
98
110
  });
99
111
  outputs.forEach((output, i) => {
@@ -102,17 +114,17 @@ function constructPsbt(inputs, outputs, network, rootWalletKeys, sign) {
102
114
  }
103
115
  else if (output.address) {
104
116
  const { address, value } = output;
105
- psbt.addOutput({ address, value });
117
+ psbt.addOutput({ script: address_1.toOutputScript(address, network), value });
106
118
  }
107
119
  });
108
120
  if (sign === 'unsigned') {
109
121
  return psbt;
110
122
  }
111
123
  psbt.setAllInputsMusig2NonceHD(rootWalletKeys['user']);
112
- psbt.setAllInputsMusig2NonceHD(rootWalletKeys['bitgo']);
113
- signAllPsbtInputs(psbt, inputs, rootWalletKeys, 'halfsigned');
124
+ psbt.setAllInputsMusig2NonceHD(rootWalletKeys['bitgo'], { deterministic });
125
+ signAllPsbtInputs(psbt, inputs, rootWalletKeys, 'halfsigned', { signers, skipNonWitnessUtxo });
114
126
  if (sign === 'fullsigned') {
115
- signAllPsbtInputs(psbt, inputs, rootWalletKeys, sign);
127
+ signAllPsbtInputs(psbt, inputs, rootWalletKeys, sign, { signers, deterministic, skipNonWitnessUtxo });
116
128
  }
117
129
  return psbt;
118
130
  }
@@ -143,4 +155,4 @@ function verifyFullySignedSignatures(tx, unspents, walletKeys, signer, cosigner)
143
155
  });
144
156
  }
145
157
  exports.verifyFullySignedSignatures = verifyFullySignedSignatures;
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUVqQywwREFNZ0M7QUFDaEMsb0NBa0JrQjtBQUVsQixpQ0FBd0U7QUE2QnhFOzs7O0dBSUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLENBQUMsR0FBRywrQkFBZSxFQUFFLHFCQUFxQixFQUFFLGtDQUFrQixDQUFVLENBQUM7QUFFekc7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLCtCQUFlLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLEtBQVksRUFDWixLQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsY0FBOEI7SUFFOUIsSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtRQUNuQyxPQUFPLGtDQUEyQixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUN4RztTQUFNO1FBQ0wsTUFBTSxLQUFLLEdBQUcsNEJBQW9CLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakgsT0FBTyx3QkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUM3QyxLQUFLO1lBQ0wsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0FBakJELDhCQWlCQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLFNBQTBCO0lBQ25ELE9BQU87UUFDTCxVQUFVLEVBQUUsTUFBTTtRQUNs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QUssRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksUUFBUSxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUU7Z0JBQzlGLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QztpQkFBTSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRTtnQkFDdkcsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdDO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QztTQUNGO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBdkJELGtFQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQge1xuICBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayxcbiAgU2NyaXB0VHlwZSxcbiAgU2NyaXB0VHlwZTJPZjMsXG4gIHNjcmlwdFR5cGVQMnNoUDJwayxcbiAgc2NyaXB0VHlwZXMyT2YzLFxufSBmcm9tICcuLi9iaXRnby9vdXRwdXRTY3JpcHRzJztcbmltcG9ydCB7XG4gIGFkZFJlcGxheVByb3RlY3Rpb25VbnNwZW50VG9Qc2J0LFxuICBhZGRXYWxsZXRPdXRwdXRUb1BzYnQsXG4gIGFkZFdhbGxldFVuc3BlbnRUb1BzYnQsXG4gIGNyZWF0ZVBzYnRGb3JOZXR3b3JrLFxuICBnZXRFeHRlcm5hbENoYWluQ29kZSxcbiAgZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyxcbiAgaXNXYWxsZXRVbnNwZW50LFxuICBLZXlOYW1lLFxuICBwYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjMsXG4gIGdldEludGVybmFsQ2hhaW5Db2RlLFxuICBSb290V2FsbGV0S2V5cyxcbiAgdG9PdXRwdXQsXG4gIFVuc3BlbnQsXG4gIFV0eG9Qc2J0LFxuICBVdHhvVHJhbnNhY3Rpb24sXG4gIHZlcmlmeVNpZ25hdHVyZVdpdGhVbnNwZW50LFxuICBXYWxsZXRVbnNwZW50LFxufSBmcm9tICcuLi9iaXRnbyc7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnLi4vbmV0d29ya3MnO1xuaW1wb3J0IHsgbW9ja1JlcGxheVByb3RlY3Rpb25VbnNwZW50LCBtb2NrV2FsbGV0VW5zcGVudCB9IGZyb20gJy4vbW9jayc7XG5cbi8qKlxuICogaW5wdXQgc2NyaXB0IHR5cGUgYW5kIHZhbHVlLlxuICogdXNlIHAydHJNdXNpZzIgZm9yIHAydHJNdXNpZzIgc2NyaXB0IHBhdGguXG4gKiB1c2UgdGFwcm9vdEtleVBhdGhTcGVuZCBmb3IgcDJ0ck11c2lnMiBrZXkgcGF0aC5cbiAqL1xuZXhwb3J0IHR5cGUgSW5wdXRTY3JpcHRUeXBlID0gU2NyaXB0VHlwZSB8ICd0YXByb290S2V5UGF0aFNwZW5kJztcbmV4cG9ydCB0eXBlIE91dHB1dFNjcmlwdFR5cGUgPSBTY3JpcHRUeXBlMk9mMztcblxuLyoqXG4gKiBvdXRwdXQgc2NyaXB0IHR5cGUgYW5kIHZhbHVlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXQge1xuICBzY3JpcHRUeXBlOiBJbnB1dFNjcmlwdFR5cGU7XG4gIHZhbHVlOiBiaWdpbnQ7XG59XG5cbi8qKlxuICogc2hvdWxkIHNldCBlaXRoZXIgYWRkcmVzcyBvciBzY3JpcHRUeXBlLCBuZXZlciBib3RoLlxuICogc2V0IGlzSW50ZXJuYWxBZGRyZXNzPXRydWUgZm9yIGludGVybmFsIG91dHB1dCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0IHtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgc2NyaXB0VHlwZT86IE91dHB1dFNjcmlwdFR5cGU7XG4gIHZhbHVlOiBiaWdpbnQ7XG4gIGlzSW50ZXJuYWxBZGRyZXNzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBhcnJheSBvZiBzdXBwb3J0ZWQgaW5wdXQgc2NyaXB0IHR5cGVzLlxuICogdXNlIHAydHJNdXNpZzIgZm9yIHAydHJNdXNpZzIgc2NyaXB0IHBhdGguXG4gKiB1c2UgdGFwcm9vdEtleVBhdGhTcGVuZCBmb3IgcDJ0ck11c2lnMiBrZXkgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IGlucHV0U2NyaXB0VHlwZXMgPSBbLi4uc2NyaXB0VHlwZXMyT2YzLCAndGFwcm9vdEtleVBhdGhTcGVuZCcsIHNjcmlwdFR5cGVQMnNoUDJwa10gYXMgY29uc3Q7XG5cbi8qKlxuICogYXJyYXkgb2Ygc3VwcG9ydGVkIG91dHB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBvdXRwdXRTY3JpcHRUeXBlcyA9IHNjcmlwdFR5cGVzMk9mMztcblxuLyoqXG4gKiBjcmVhdGUgdW5zcGVudCBvYmplY3QgZnJvbSBpbnB1dCBzY3JpcHQgdHlwZSwgaW5kZXgsIG5ldHdvcmsgYW5kIHJvb3Qgd2FsbGV0IGtleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5zcGVudChcbiAgaW5wdXQ6IElucHV0LFxuICBpbmRleDogbnVtYmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXNcbik6IFVuc3BlbnQ8YmlnaW50PiB7XG4gIGlmIChpbnB1dC5zY3JpcHRUeXBlID09PSAncDJzaFAycGsnKSB7XG4gICAgcmV0dXJuIG1vY2tSZXBsYXlQcm90ZWN0aW9uVW5zcGVudChuZXR3b3JrLCBpbnB1dC52YWx1ZSwgeyBrZXk6IHJvb3RXYWxsZXRLZXlzWyd1c2VyJ10sIHZvdXQ6IGluZGV4IH0pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNoYWluID0gZ2V0SW50ZXJuYWxDaGFpbkNvZGUoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gJ3AydHJNdXNpZzInIDogaW5wdXQuc2NyaXB0VHlwZSk7XG4gICAgcmV0dXJuIG1vY2tXYWxsZXRVbnNwZW50KG5ldHdvcmssIGlucHV0LnZhbHVlLCB7XG4gICAgICBjaGFpbixcbiAgICAgIHZvdXQ6IGluZGV4LFxuICAgICAga2V5czogcm9vdFdhbGxldEtleXMsXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIHJldHVybnMgc2lnbmVyIGFuZCBjb3NpZ25lciBuYW1lcyBmb3IgSW5wdXRTY3JpcHRUeXBlLlxuICogdXNlciBhbmQgdW5kZWZpbmVkIGFzIHNpZ25lciBhbmQgY29zaWduZXIgcmVzcGVjdGl2ZWx5IGZvciBwMnNoUDJway5cbiAqIHVzZXIgYW5kIGJhY2t1cCBhcyBzaWduZXIgYW5kIGNvc2lnbmVyIHJlc3BlY3RpdmVseSBmb3IgcDJ0ck11c2lnMi5cbiAqIHVzZXIgYW5kIGJpdGdvIGFzIHNpZ25lciBhbmQgY29zaWduZXIgcmVzcGVjdGl2ZWx5IGZvciBvdGhlciBpbnB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaWduZXJzKGlucHV0VHlwZTogSW5wdXRTY3JpcHRUeXBlKTogeyBzaWduZXJOYW1lOiBLZXlOYW1lOyBjb3NpZ25lck5hbWU/OiBLZXlOYW1lIH0ge1xuICByZXR1cm4ge1xuICAgIHNpZ25lck5hbWU6ICd1c2VyJyxcbiAgICBjb3NpZ25lck5hbWU6IGlucHV0VHlwZSA9PT0gJ3Ayc2hQMnBrJyA/IHVuZGVmaW5lZCA6IGlucHV0VHlwZSA9PT0gJ3AydHJNdXNpZzInID8gJ2JhY2t1cCcgOiAnYml0Z28nLFxuICB9O1xufVxuXG4vKipcbiAqIHNpZ25zIHdpdGggZmlyc3Qgb3Igc2Vjb25kIHNpZ25hdHVyZSBmb3Igc2luZ2xlIGlucHV0LlxuICogcDJzaFAycGsgaXMgc2lnbmVkIG9ubHkgd2l0aCBmaXJzdCBzaWduLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnblBzYnRJbnB1dChcbiAgcHNidDogVXR4b1BzYnQsXG4gIGlucHV0OiBJbnB1dCxcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJ1xuKTogdm9pZCB7XG4gIGNvbnN0IHsgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lIH0gPSBnZXRTaWduZXJzKGlucHV0LnNjcmlwdFR5cGUpO1xuICBpZiAoc2lnbiA9PT0gJ2hhbGZzaWduZWQnKSB7XG4gICAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIHBzYnQuc2lnbklucHV0KGlucHV0SW5kZXgsIHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHNidC5zaWduSW5wdXRIRChpbnB1dEluZGV4LCByb290V2FsbGV0S2V5c1tzaWduZXJOYW1lXSk7XG4gICAgfVxuICB9XG4gIGlmIChzaWduID09PSAnZnVsbHNpZ25lZCcgJiYgY29zaWduZXJOYW1lKSB7XG4gICAgcHNidC5zaWduSW5wdXRIRChpbnB1dEluZGV4LCByb290V2FsbGV0S2V5c1tjb3NpZ25lck5hbWVdKTtcbiAgfVxufVxuXG4vKipcbiAqIHNpZ25zIHdpdGggZmlyc3Qgb3Igc2Vjb25kIHNpZ25hdHVyZSBmb3IgYWxsIGlucHV0cy5cbiAqIHAyc2hQMnBrIGlzIHNpZ25lZCBvbmx5IHdpdGggZmlyc3Qgc2lnbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbGxQc2J0SW5wdXRzKFxuICBwc2J0OiBVdHhvUHNidCxcbiAgaW5wdXRzOiBJbnB1dFtdLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJ1xuKTogdm9pZCB7XG4gIGlucHV0cy5mb3JFYWNoKChpbnB1dCwgaW5kZXgpID0+IHtcbiAgICBzaWduUHNidElucHV0KHBzYnQsIGlucHV0LCBpbmRleCwgcm9vdFdhbGxldEtleXMsIHNpZ24pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBjb25zdHJ1Y3QgcHNidCBmb3IgZ2l2ZW4gaW5wdXRzLCBvdXRwdXRzLCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0UHNidChcbiAgaW5wdXRzOiBJbnB1dFtdLFxuICBvdXRwdXRzOiBPdXRwdXRbXSxcbiAgbmV0d29yazogTmV0d29yayxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAndW5zaWduZWQnIHwgJ2hhbGZzaWduZWQnIHwgJ2Z1bGxzaWduZWQnXG4pOiBVdHhvUHNidCB7XG4gIGNvbnN0IHRvdGFsSW5wdXRBbW91bnQgPSBpbnB1dHMucmVkdWNlKChzdW0sIGlucHV0KSA9PiBzdW0gKyBpbnB1dC52YWx1ZSwgQmlnSW50KDApKTtcbiAgY29uc3Qgb3V0cHV0SW5wdXRBbW91bnQgPSBvdXRwdXRzLnJlZHVjZSgoc3VtLCBvdXRwdXQpID0+IHN1bSArIG91dHB1dC52YWx1ZSwgQmlnSW50KDApKTtcbiAgYXNzZXJ0KHRvdGFsSW5wdXRBbW91bnQgPj0gb3V0cHV0SW5wdXRBbW91bnQsICd0b3RhbCBvdXRwdXQgY2FuIG5vdCBleGNlZWQgdG90YWwgaW5wdXQnKTtcbiAgYXNzZXJ0KFxuICAgICFvdXRwdXRzLnNvbWUoKG8pID0+IChvLnNjcmlwdFR5cGUgJiYgby5hZGRyZXNzKSB8fCAoIW8uc2NyaXB0VHlwZSAmJiAhby5hZGRyZXNzKSksXG4gICAgJ29ubHkgZWl0aGVyIG91dHB1dCBzY3JpcHQgdHlwZSBvciBhZGRyZXNzIHNob3VsZCBiZSBwcm92aWRlZCdcbiAgKTtcblxuICBjb25zdCBwc2J0ID0gY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrIH0pO1xuICBjb25zdCB1bnNwZW50cyA9IGlucHV0cy5tYXAoKGlucHV0LCBpKSA9PiB0b1Vuc3BlbnQoaW5wdXQsIGksIG5ldHdvcmssIHJvb3RXYWxsZXRLZXlzKSk7XG5cbiAgdW5zcGVudHMuZm9yRWFjaCgodSwgaSkgPT4ge1xuICAgIGNvbnN0IHsgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lIH0gPSBnZXRTaWduZXJzKGlucHV0c1tpXS5zY3JpcHRUeXBlKTtcbiAgICBpZiAoaXNXYWxsZXRVbnNwZW50KHUpICYmIGNvc2lnbmVyTmFtZSkge1xuICAgICAgYWRkV2FsbGV0VW5zcGVudFRvUHNidChwc2J0LCB1LCByb290V2FsbGV0S2V5cywgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyByZWRlZW1TY3JpcHQgfSA9IGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdLnB1YmxpY0tleSk7XG4gICAgICBhc3NlcnQocmVkZWVtU2NyaXB0KTtcbiAgICAgIGFkZFJlcGxheVByb3RlY3Rpb25VbnNwZW50VG9Qc2J0KHBzYnQsIHUsIHJlZGVlbVNjcmlwdCk7XG4gICAgfVxuICB9KTtcblxuICBvdXRwdXRzLmZvckVhY2goKG91dHB1dCwgaSkgPT4ge1xuICAgIGlmIChvdXRwdXQuc2NyaXB0VHlwZSkge1xuICAgICAgYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KFxuICAgICAgICBwc2J0LFxuICAgICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgICAgb3V0cHV0LmlzSW50ZXJuYWxBZGRyZXNzID8gZ2V0SW50ZXJuYWxDaGFpbkNvZGUob3V0cHV0LnNjcmlwdFR5cGUpIDogZ2V0RXh0ZXJuYWxDaGFpbkNvZGUob3V0cHV0LnNjcmlwdFR5cGUpLFxuICAgICAgICBpLFxuICAgICAgICBvdXRwdXQudmFsdWVcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChvdXRwdXQuYWRkcmVzcykge1xuICAgICAgY29uc3QgeyBhZGRyZXNzLCB2YWx1ZSB9ID0gb3V0cHV0O1xuICAgICAgcHNidC5hZGRPdXRwdXQoeyBhZGRyZXNzLCB2YWx1ZSB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzaWduID09PSAndW5zaWduZWQnKSB7XG4gICAgcmV0dXJuIHBzYnQ7XG4gIH1cblxuICBwc2J0LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQocm9vdFdhbGxldEtleXNbJ3VzZXInXSk7XG4gIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5c1snYml0Z28nXSk7XG5cbiAgc2lnbkFsbFBzYnRJbnB1dHMocHNidCwgaW5wdXRzLCByb290V2FsbGV0S2V5cywgJ2hhbGZzaWduZWQnKTtcblxuICBpZiAoc2lnbiA9PT0gJ2Z1bGxzaWduZWQnKSB7XG4gICAgc2lnbkFsbFBzYnRJbnB1dHMocHNidCwgaW5wdXRzLCByb290V2FsbGV0S2V5cywgc2lnbik7XG4gIH1cblxuICByZXR1cm4gcHNidDtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyBzaWduYXR1cmVzIG9mIGZ1bGx5IHNpZ25lZCB0eCAod2l0aCB0YXByb290IGtleSBwYXRoIHN1cHBvcnQpLlxuICogTk9URTogdGFwcm9vdCBrZXkgcGF0aCB0eCBjYW4gb25seSBiZSBidWlsdCBhbmQgc2lnbmVkIHdpdGggUFNCVC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUZ1bGx5U2lnbmVkU2lnbmF0dXJlcyhcbiAgdHg6IFV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+LFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduZXI6IEtleU5hbWUsXG4gIGNvc2lnbmVyOiBLZXlOYW1lXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcHJldk91dHB1dHMgPSB1bnNwZW50cy5tYXAoKHUpID0+IHRvT3V0cHV0KHUsIHR4Lm5ldHdvcmspKTtcbiAgcmV0dXJuIHVuc3BlbnRzLmV2ZXJ5KCh1LCBpbmRleCkgPT4ge1xuICAgIGlmIChwYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjModHguaW5zW2luZGV4XSkuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBnZXRTaWduYXR1cmVWZXJpZmljYXRpb25zKHR4LCBpbmRleCwgdS52YWx1ZSwgdW5kZWZpbmVkLCBwcmV2T3V0cHV0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA9PT0gMSAmJiByZXN1bHRbMF0uc2lnbmF0dXJlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB2ZXJpZnlTaWduYXR1cmVXaXRoVW5zcGVudCh0eCwgaW5kZXgsIHVuc3BlbnRzLCB3YWxsZXRLZXlzKTtcbiAgICAgIGlmICgoc2lnbmVyID09PSAndXNlcicgJiYgY29zaWduZXIgPT09ICdiaXRnbycpIHx8IChzaWduZXIgPT09ICdiaXRnbycgJiYgY29zaWduZXIgPT09ICd1c2VyJykpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFswXSAmJiAhcmVzdWx0WzFdICYmIHJlc3VsdFsyXTtcbiAgICAgIH0gZWxzZSBpZiAoKHNpZ25lciA9PT0gJ3VzZXInICYmIGNvc2lnbmVyID09PSAnYmFja3VwJykgfHwgKHNpZ25lciA9PT0gJ2JhY2t1cCcgJiYgY29zaWduZXIgPT09ICd1c2VyJykpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFswXSAmJiByZXN1bHRbMV0gJiYgIXJlc3VsdFsyXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAhcmVzdWx0WzBdICYmIHJlc3VsdFsxXSAmJiByZXN1bHRbMl07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUVqQywwREFNZ0M7QUFDaEMsb0NBa0JrQjtBQUVsQixpQ0FBd0U7QUFDeEUsd0NBQTRDO0FBNkI1Qzs7OztHQUlHO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsK0JBQWUsRUFBRSxxQkFBcUIsRUFBRSxrQ0FBa0IsQ0FBVSxDQUFDO0FBRXpHOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRywrQkFBZSxDQUFDO0FBRWpEOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUN2QixLQUFZLEVBQ1osS0FBYSxFQUNiLE9BQWdCLEVBQ2hCLGNBQThCO0lBRTlCLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7UUFDbkMsT0FBTyxrQ0FBMkIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDeEc7U0FBTTtRQUNMLE1BQU0sS0FBSyxHQUFHLDRCQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUsscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pILE9BQU8sd0JBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDN0MsS0FBSztZQUNMLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLGNBQWM7WUFDcEIsS0FBSztTQUNOLENBQUMsQ0FBQztLQUNKO0FBQ0gsQ0FBQztBQWpCRCw4QkFpQkM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxTQUEwQjtJQUNuRCxPQUFPO1FBQ0wsVUFBVSxF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Q0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDbkQ7YUFBTTtZQUNMLE1BQU0sTUFBTSxHQUFHLGtDQUEwQixDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLFFBQVEsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLElBQUksUUFBUSxLQUFLLE1BQU0sQ0FBQyxFQUFFO2dCQUM5RixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0M7aUJBQU0sSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUU7Z0JBQ3ZHLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QztpQkFBTTtnQkFDTCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0M7U0FDRjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXZCRCxrRUF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHtcbiAgY3JlYXRlT3V0cHV0U2NyaXB0UDJzaFAycGssXG4gIFNjcmlwdFR5cGUsXG4gIFNjcmlwdFR5cGUyT2YzLFxuICBzY3JpcHRUeXBlUDJzaFAycGssXG4gIHNjcmlwdFR5cGVzMk9mMyxcbn0gZnJvbSAnLi4vYml0Z28vb3V0cHV0U2NyaXB0cyc7XG5pbXBvcnQge1xuICBhZGRSZXBsYXlQcm90ZWN0aW9uVW5zcGVudFRvUHNidCxcbiAgYWRkV2FsbGV0T3V0cHV0VG9Qc2J0LFxuICBhZGRXYWxsZXRVbnNwZW50VG9Qc2J0LFxuICBjcmVhdGVQc2J0Rm9yTmV0d29yayxcbiAgZ2V0RXh0ZXJuYWxDaGFpbkNvZGUsXG4gIGdldEludGVybmFsQ2hhaW5Db2RlLFxuICBnZXRTaWduYXR1cmVWZXJpZmljYXRpb25zLFxuICBpc1dhbGxldFVuc3BlbnQsXG4gIEtleU5hbWUsXG4gIHBhcnNlU2lnbmF0dXJlU2NyaXB0Mk9mMyxcbiAgUm9vdFdhbGxldEtleXMsXG4gIHRvT3V0cHV0LFxuICBVbnNwZW50LFxuICBVdHhvUHNidCxcbiAgVXR4b1RyYW5zYWN0aW9uLFxuICB2ZXJpZnlTaWduYXR1cmVXaXRoVW5zcGVudCxcbiAgd2l0aFVuc2FmZU5vblNlZ3dpdCxcbn0gZnJvbSAnLi4vYml0Z28nO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJy4uL25ldHdvcmtzJztcbmltcG9ydCB7IG1vY2tSZXBsYXlQcm90ZWN0aW9uVW5zcGVudCwgbW9ja1dhbGxldFVuc3BlbnQgfSBmcm9tICcuL21vY2snO1xuaW1wb3J0IHsgdG9PdXRwdXRTY3JpcHQgfSBmcm9tICcuLi9hZGRyZXNzJztcblxuLyoqXG4gKiBpbnB1dCBzY3JpcHQgdHlwZSBhbmQgdmFsdWUuXG4gKiB1c2UgcDJ0ck11c2lnMiBmb3IgcDJ0ck11c2lnMiBzY3JpcHQgcGF0aC5cbiAqIHVzZSB0YXByb290S2V5UGF0aFNwZW5kIGZvciBwMnRyTXVzaWcyIGtleSBwYXRoLlxuICovXG5leHBvcnQgdHlwZSBJbnB1dFNjcmlwdFR5cGUgPSBTY3JpcHRUeXBlIHwgJ3RhcHJvb3RLZXlQYXRoU3BlbmQnO1xuZXhwb3J0IHR5cGUgT3V0cHV0U2NyaXB0VHlwZSA9IFNjcmlwdFR5cGUyT2YzO1xuXG4vKipcbiAqIGlucHV0IHNjcmlwdCB0eXBlIGFuZCB2YWx1ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0IHtcbiAgc2NyaXB0VHlwZTogSW5wdXRTY3JpcHRUeXBlO1xuICB2YWx1ZTogYmlnaW50O1xufVxuXG4vKipcbiAqIHNob3VsZCBzZXQgZWl0aGVyIGFkZHJlc3Mgb3Igc2NyaXB0VHlwZSwgbmV2ZXIgYm90aC5cbiAqIHNldCBpc0ludGVybmFsQWRkcmVzcz10cnVlIGZvciBpbnRlcm5hbCBvdXRwdXQgYWRkcmVzc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dCB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIHNjcmlwdFR5cGU/OiBPdXRwdXRTY3JpcHRUeXBlO1xuICB2YWx1ZTogYmlnaW50O1xuICBpc0ludGVybmFsQWRkcmVzcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogYXJyYXkgb2Ygc3VwcG9ydGVkIGlucHV0IHNjcmlwdCB0eXBlcy5cbiAqIHVzZSBwMnRyTXVzaWcyIGZvciBwMnRyTXVzaWcyIHNjcmlwdCBwYXRoLlxuICogdXNlIHRhcHJvb3RLZXlQYXRoU3BlbmQgZm9yIHAydHJNdXNpZzIga2V5IHBhdGguXG4gKi9cbmV4cG9ydCBjb25zdCBpbnB1dFNjcmlwdFR5cGVzID0gWy4uLnNjcmlwdFR5cGVzMk9mMywgJ3RhcHJvb3RLZXlQYXRoU3BlbmQnLCBzY3JpcHRUeXBlUDJzaFAycGtdIGFzIGNvbnN0O1xuXG4vKipcbiAqIGFycmF5IG9mIHN1cHBvcnRlZCBvdXRwdXQgc2NyaXB0IHR5cGVzLlxuICovXG5leHBvcnQgY29uc3Qgb3V0cHV0U2NyaXB0VHlwZXMgPSBzY3JpcHRUeXBlczJPZjM7XG5cbi8qKlxuICogY3JlYXRlIHVuc3BlbnQgb2JqZWN0IGZyb20gaW5wdXQgc2NyaXB0IHR5cGUsIGluZGV4LCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Vuc3BlbnQoXG4gIGlucHV0OiBJbnB1dCxcbiAgaW5kZXg6IG51bWJlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzXG4pOiBVbnNwZW50PGJpZ2ludD4ge1xuICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgIHJldHVybiBtb2NrUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQobmV0d29yaywgaW5wdXQudmFsdWUsIHsga2V5OiByb290V2FsbGV0S2V5c1sndXNlciddLCB2b3V0OiBpbmRleCB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjaGFpbiA9IGdldEludGVybmFsQ2hhaW5Db2RlKGlucHV0LnNjcmlwdFR5cGUgPT09ICd0YXByb290S2V5UGF0aFNwZW5kJyA/ICdwMnRyTXVzaWcyJyA6IGlucHV0LnNjcmlwdFR5cGUpO1xuICAgIHJldHVybiBtb2NrV2FsbGV0VW5zcGVudChuZXR3b3JrLCBpbnB1dC52YWx1ZSwge1xuICAgICAgY2hhaW4sXG4gICAgICB2b3V0OiBpbmRleCxcbiAgICAgIGtleXM6IHJvb3RXYWxsZXRLZXlzLFxuICAgICAgaW5kZXgsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiByZXR1cm5zIHNpZ25lciBhbmQgY29zaWduZXIgbmFtZXMgZm9yIElucHV0U2NyaXB0VHlwZS5cbiAqIHVzZXIgYW5kIHVuZGVmaW5lZCBhcyBzaWduZXIgYW5kIGNvc2lnbmVyIHJlc3BlY3RpdmVseSBmb3IgcDJzaFAycGsuXG4gKiB1c2VyIGFuZCBiYWNrdXAgYXMgc2lnbmVyIGFuZCBjb3NpZ25lciByZXNwZWN0aXZlbHkgZm9yIHAydHJNdXNpZzIuXG4gKiB1c2VyIGFuZCBiaXRnbyBhcyBzaWduZXIgYW5kIGNvc2lnbmVyIHJlc3BlY3RpdmVseSBmb3Igb3RoZXIgaW5wdXQgc2NyaXB0IHR5cGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lnbmVycyhpbnB1dFR5cGU6IElucHV0U2NyaXB0VHlwZSk6IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9IHtcbiAgcmV0dXJuIHtcbiAgICBzaWduZXJOYW1lOiAndXNlcicsXG4gICAgY29zaWduZXJOYW1lOiBpbnB1dFR5cGUgPT09ICdwMnNoUDJwaycgPyB1bmRlZmluZWQgOiBpbnB1dFR5cGUgPT09ICdwMnRyTXVzaWcyJyA/ICdiYWNrdXAnIDogJ2JpdGdvJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBzaWducyB3aXRoIGZpcnN0IG9yIHNlY29uZCBzaWduYXR1cmUgZm9yIHNpbmdsZSBpbnB1dC5cbiAqIHAyc2hQMnBrIGlzIHNpZ25lZCBvbmx5IHdpdGggZmlyc3Qgc2lnbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25Qc2J0SW5wdXQoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICBpbnB1dDogSW5wdXQsXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAnaGFsZnNpZ25lZCcgfCAnZnVsbHNpZ25lZCcsXG4gIHBhcmFtcz86IHtcbiAgICBzaWduZXJzPzogeyBzaWduZXJOYW1lOiBLZXlOYW1lOyBjb3NpZ25lck5hbWU/OiBLZXlOYW1lIH07XG4gICAgZGV0ZXJtaW5pc3RpYz86IGJvb2xlYW47XG4gICAgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbjtcbiAgfVxuKTogdm9pZCB7XG4gIGZ1bmN0aW9uIHNpZ25Qc2J0KHBzYnQ6IFV0eG9Qc2J0LCBzaWduRnVuYzogKCkgPT4gdm9pZCwgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbikge1xuICAgIGlmIChza2lwTm9uV2l0bmVzc1V0eG8pIHtcbiAgICAgIHdpdGhVbnNhZmVOb25TZWd3aXQocHNidCwgc2lnbkZ1bmMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaWduRnVuYygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHsgc2lnbmVycywgZGV0ZXJtaW5pc3RpYywgc2tpcE5vbldpdG5lc3NVdHhvIH0gPSBwYXJhbXMgPz8ge307XG4gIGNvbnN0IHsgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lIH0gPSBzaWduZXJzID8gc2lnbmVycyA6IGdldFNpZ25lcnMoaW5wdXQuc2NyaXB0VHlwZSk7XG4gIGlmIChzaWduID09PSAnaGFsZnNpZ25lZCcpIHtcbiAgICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgc2lnblBzYnQocHNidCwgKCkgPT4gcHNidC5zaWduSW5wdXQoaW5wdXRJbmRleCwgcm9vdFdhbGxldEtleXNbc2lnbmVyTmFtZV0pLCBza2lwTm9uV2l0bmVzc1V0eG8pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaWduUHNidChwc2J0LCAoKSA9PiBwc2J0LnNpZ25JbnB1dEhEKGlucHV0SW5kZXgsIHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdKSwgc2tpcE5vbldpdG5lc3NVdHhvKTtcbiAgICB9XG4gIH1cbiAgaWYgKHNpZ24gPT09ICdmdWxsc2lnbmVkJyAmJiBjb3NpZ25lck5hbWUgJiYgaW5wdXQuc2NyaXB0VHlwZSAhPT0gJ3Ayc2hQMnBrJykge1xuICAgIHNpZ25Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgICgpID0+IHBzYnQuc2lnbklucHV0SEQoaW5wdXRJbmRleCwgcm9vdFdhbGxldEtleXNbY29zaWduZXJOYW1lXSwgeyBkZXRlcm1pbmlzdGljIH0pLFxuICAgICAgc2tpcE5vbldpdG5lc3NVdHhvXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIHNpZ25zIHdpdGggZmlyc3Qgb3Igc2Vjb25kIHNpZ25hdHVyZSBmb3IgYWxsIGlucHV0cy5cbiAqIHAyc2hQMnBrIGlzIHNpZ25lZCBvbmx5IHdpdGggZmlyc3Qgc2lnbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbGxQc2J0SW5wdXRzKFxuICBwc2J0OiBVdHhvUHNidCxcbiAgaW5wdXRzOiBJbnB1dFtdLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJyxcbiAgcGFyYW1zPzoge1xuICAgIHNpZ25lcnM/OiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfTtcbiAgICBkZXRlcm1pbmlzdGljPzogYm9vbGVhbjtcbiAgICBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuO1xuICB9XG4pOiB2b2lkIHtcbiAgY29uc3QgeyBzaWduZXJzLCBkZXRlcm1pbmlzdGljLCBza2lwTm9uV2l0bmVzc1V0eG8gfSA9IHBhcmFtcyA/PyB7fTtcbiAgaW5wdXRzLmZvckVhY2goKGlucHV0LCBpbnB1dEluZGV4KSA9PiB7XG4gICAgc2lnblBzYnRJbnB1dChwc2J0LCBpbnB1dCwgaW5wdXRJbmRleCwgcm9vdFdhbGxldEtleXMsIHNpZ24sIHsgc2lnbmVycywgZGV0ZXJtaW5pc3RpYywgc2tpcE5vbldpdG5lc3NVdHhvIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBjb25zdHJ1Y3QgcHNidCBmb3IgZ2l2ZW4gaW5wdXRzLCBvdXRwdXRzLCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0UHNidChcbiAgaW5wdXRzOiBJbnB1dFtdLFxuICBvdXRwdXRzOiBPdXRwdXRbXSxcbiAgbmV0d29yazogTmV0d29yayxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAndW5zaWduZWQnIHwgJ2hhbGZzaWduZWQnIHwgJ2Z1bGxzaWduZWQnLFxuICBwYXJhbXM/OiB7XG4gICAgc2lnbmVycz86IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9O1xuICAgIGRldGVybWluaXN0aWM/OiBib29sZWFuO1xuICAgIHNraXBOb25XaXRuZXNzVXR4bz86IGJvb2xlYW47XG4gIH1cbik6IFV0eG9Qc2J0IHtcbiAgY29uc3QgeyBzaWduZXJzLCBkZXRlcm1pbmlzdGljLCBza2lwTm9uV2l0bmVzc1V0eG8gfSA9IHBhcmFtcyA/PyB7fTtcbiAgY29uc3QgdG90YWxJbnB1dEFtb3VudCA9IGlucHV0cy5yZWR1Y2UoKHN1bSwgaW5wdXQpID0+IHN1bSArIGlucHV0LnZhbHVlLCBCaWdJbnQoMCkpO1xuICBjb25zdCBvdXRwdXRJbnB1dEFtb3VudCA9IG91dHB1dHMucmVkdWNlKChzdW0sIG91dHB1dCkgPT4gc3VtICsgb3V0cHV0LnZhbHVlLCBCaWdJbnQoMCkpO1xuICBhc3NlcnQodG90YWxJbnB1dEFtb3VudCA+PSBvdXRwdXRJbnB1dEFtb3VudCwgJ3RvdGFsIG91dHB1dCBjYW4gbm90IGV4Y2VlZCB0b3RhbCBpbnB1dCcpO1xuICBhc3NlcnQoXG4gICAgIW91dHB1dHMuc29tZSgobykgPT4gKG8uc2NyaXB0VHlwZSAmJiBvLmFkZHJlc3MpIHx8ICghby5zY3JpcHRUeXBlICYmICFvLmFkZHJlc3MpKSxcbiAgICAnb25seSBlaXRoZXIgb3V0cHV0IHNjcmlwdCB0eXBlIG9yIGFkZHJlc3Mgc2hvdWxkIGJlIHByb3ZpZGVkJ1xuICApO1xuXG4gIGNvbnN0IHBzYnQgPSBjcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIGNvbnN0IHVuc3BlbnRzID0gaW5wdXRzLm1hcCgoaW5wdXQsIGkpID0+IHRvVW5zcGVudChpbnB1dCwgaSwgbmV0d29yaywgcm9vdFdhbGxldEtleXMpKTtcblxuICB1bnNwZW50cy5mb3JFYWNoKCh1LCBpKSA9PiB7XG4gICAgY29uc3QgeyBzaWduZXJOYW1lLCBjb3NpZ25lck5hbWUgfSA9IHNpZ25lcnMgPyBzaWduZXJzIDogZ2V0U2lnbmVycyhpbnB1dHNbaV0uc2NyaXB0VHlwZSk7XG4gICAgaWYgKGlzV2FsbGV0VW5zcGVudCh1KSAmJiBjb3NpZ25lck5hbWUpIHtcbiAgICAgIGFkZFdhbGxldFVuc3BlbnRUb1BzYnQocHNidCwgdSwgcm9vdFdhbGxldEtleXMsIHNpZ25lck5hbWUsIGNvc2lnbmVyTmFtZSwgeyBza2lwTm9uV2l0bmVzc1V0eG8gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgcmVkZWVtU2NyaXB0IH0gPSBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayhyb290V2FsbGV0S2V5c1tzaWduZXJOYW1lXS5wdWJsaWNLZXkpO1xuICAgICAgYXNzZXJ0KHJlZGVlbVNjcmlwdCk7XG4gICAgICBhZGRSZXBsYXlQcm90ZWN0aW9uVW5zcGVudFRvUHNidChwc2J0LCB1LCByZWRlZW1TY3JpcHQsIHsgc2tpcE5vbldpdG5lc3NVdHhvIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgb3V0cHV0cy5mb3JFYWNoKChvdXRwdXQsIGkpID0+IHtcbiAgICBpZiAob3V0cHV0LnNjcmlwdFR5cGUpIHtcbiAgICAgIGFkZFdhbGxldE91dHB1dFRvUHNidChcbiAgICAgICAgcHNidCxcbiAgICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICAgIG91dHB1dC5pc0ludGVybmFsQWRkcmVzcyA/IGdldEludGVybmFsQ2hhaW5Db2RlKG91dHB1dC5zY3JpcHRUeXBlKSA6IGdldEV4dGVybmFsQ2hhaW5Db2RlKG91dHB1dC5zY3JpcHRUeXBlKSxcbiAgICAgICAgaSxcbiAgICAgICAgb3V0cHV0LnZhbHVlXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAob3V0cHV0LmFkZHJlc3MpIHtcbiAgICAgIGNvbnN0IHsgYWRkcmVzcywgdmFsdWUgfSA9IG91dHB1dDtcbiAgICAgIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0OiB0b091dHB1dFNjcmlwdChhZGRyZXNzLCBuZXR3b3JrKSwgdmFsdWUgfSk7XG4gICAgfVxuICB9KTtcblxuICBpZiAoc2lnbiA9PT0gJ3Vuc2lnbmVkJykge1xuICAgIHJldHVybiBwc2J0O1xuICB9XG5cbiAgcHNidC5zZXRBbGxJbnB1dHNNdXNpZzJOb25jZUhEKHJvb3RXYWxsZXRLZXlzWyd1c2VyJ10pO1xuICBwc2J0LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQocm9vdFdhbGxldEtleXNbJ2JpdGdvJ10sIHsgZGV0ZXJtaW5pc3RpYyB9KTtcblxuICBzaWduQWxsUHNidElucHV0cyhwc2J0LCBpbnB1dHMsIHJvb3RXYWxsZXRLZXlzLCAnaGFsZnNpZ25lZCcsIHsgc2lnbmVycywgc2tpcE5vbldpdG5lc3NVdHhvIH0pO1xuXG4gIGlmIChzaWduID09PSAnZnVsbHNpZ25lZCcpIHtcbiAgICBzaWduQWxsUHNidElucHV0cyhwc2J0LCBpbnB1dHMsIHJvb3RXYWxsZXRLZXlzLCBzaWduLCB7IHNpZ25lcnMsIGRldGVybWluaXN0aWMsIHNraXBOb25XaXRuZXNzVXR4byB9KTtcbiAgfVxuXG4gIHJldHVybiBwc2J0O1xufVxuXG4vKipcbiAqIFZlcmlmaWVzIHNpZ25hdHVyZXMgb2YgZnVsbHkgc2lnbmVkIHR4ICh3aXRoIHRhcHJvb3Qga2V5IHBhdGggc3VwcG9ydCkuXG4gKiBOT1RFOiB0YXByb290IGtleSBwYXRoIHR4IGNhbiBvbmx5IGJlIGJ1aWx0IGFuZCBzaWduZWQgd2l0aCBQU0JULlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5RnVsbHlTaWduZWRTaWduYXR1cmVzKFxuICB0eDogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHVuc3BlbnRzOiBVbnNwZW50PGJpZ2ludD5bXSxcbiAgd2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ25lcjogS2V5TmFtZSxcbiAgY29zaWduZXI6IEtleU5hbWVcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2T3V0cHV0cyA9IHVuc3BlbnRzLm1hcCgodSkgPT4gdG9PdXRwdXQodSwgdHgubmV0d29yaykpO1xuICByZXR1cm4gdW5zcGVudHMuZXZlcnkoKHUsIGluZGV4KSA9PiB7XG4gICAgaWYgKHBhcnNlU2lnbmF0dXJlU2NyaXB0Mk9mMyh0eC5pbnNbaW5kZXhdKS5zY3JpcHRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnModHgsIGluZGV4LCB1LnZhbHVlLCB1bmRlZmluZWQsIHByZXZPdXRwdXRzKTtcbiAgICAgIHJldHVybiByZXN1bHQubGVuZ3RoID09PSAxICYmIHJlc3VsdFswXS5zaWduYXR1cmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHZlcmlmeVNpZ25hdHVyZVdpdGhVbnNwZW50KHR4LCBpbmRleCwgdW5zcGVudHMsIHdhbGxldEtleXMpO1xuICAgICAgaWYgKChzaWduZXIgPT09ICd1c2VyJyAmJiBjb3NpZ25lciA9PT0gJ2JpdGdvJykgfHwgKHNpZ25lciA9PT0gJ2JpdGdvJyAmJiBjb3NpZ25lciA9PT0gJ3VzZXInKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0WzBdICYmICFyZXN1bHRbMV0gJiYgcmVzdWx0WzJdO1xuICAgICAgfSBlbHNlIGlmICgoc2lnbmVyID09PSAndXNlcicgJiYgY29zaWduZXIgPT09ICdiYWNrdXAnKSB8fCAoc2lnbmVyID09PSAnYmFja3VwJyAmJiBjb3NpZ25lciA9PT0gJ3VzZXInKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0WzBdICYmIHJlc3VsdFsxXSAmJiAhcmVzdWx0WzJdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICFyZXN1bHRbMF0gJiYgcmVzdWx0WzFdICYmIHJlc3VsdFsyXTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuIl19
@@ -5,7 +5,7 @@ import { Network } from '../networks';
5
5
  * input script type and value.
6
6
  */
7
7
  export declare type TxnInputScriptType = Exclude<ScriptType, 'p2trMusig2'>;
8
- export declare type TxnOutputScriptType = Exclude<ScriptType2Of3, 'p2trMusig2'>;
8
+ export declare type TxnOutputScriptType = ScriptType2Of3;
9
9
  /**
10
10
  * output script type and value
11
11
  */
@@ -30,7 +30,7 @@ export declare const txnInputScriptTypes: readonly ["p2sh", "p2shP2wsh", "p2wsh"
30
30
  /**
31
31
  * array of supported output script types.
32
32
  */
33
- export declare const txnOutputScriptTypes: readonly ["p2sh", "p2shP2wsh", "p2wsh", "p2tr"];
33
+ export declare const txnOutputScriptTypes: readonly ["p2sh", "p2shP2wsh", "p2wsh", "p2tr", "p2trMusig2"];
34
34
  /**
35
35
  * create unspent object from input script type, index, network and root wallet key.
36
36
  */
@@ -48,14 +48,23 @@ export declare function getTxnSigners(inputType: TxnInputScriptType): {
48
48
  * signs with first or second signature for single input.
49
49
  * p2shP2pk is signed only with first sign.
50
50
  */
51
- export declare function signTxnInput<TNumber extends number | bigint>(txb: UtxoTransactionBuilder<TNumber>, input: TxnInput<TNumber>, inputIndex: number, rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned'): void;
51
+ export declare function signTxnInput<TNumber extends number | bigint>(txb: UtxoTransactionBuilder<TNumber>, input: TxnInput<TNumber>, inputIndex: number, rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned', signers?: {
52
+ signerName: KeyName;
53
+ cosignerName?: KeyName;
54
+ }): void;
52
55
  /**
53
56
  * signs with first or second signature for all inputs.
54
57
  * p2shP2pk is signed only with first sign.
55
58
  */
56
- export declare function signAllTxnInputs<TNumber extends number | bigint>(txb: UtxoTransactionBuilder<TNumber>, inputs: TxnInput<TNumber>[], rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned'): void;
59
+ export declare function signAllTxnInputs<TNumber extends number | bigint>(txb: UtxoTransactionBuilder<TNumber>, inputs: TxnInput<TNumber>[], rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned', signers?: {
60
+ signerName: KeyName;
61
+ cosignerName?: KeyName;
62
+ }): void;
57
63
  /**
58
64
  * construct transaction for given inputs, outputs, network and root wallet keys.
59
65
  */
60
- export declare function constructTxnBuilder<TNumber extends number | bigint>(inputs: TxnInput<TNumber>[], outputs: TxnOutput<TNumber>[], network: Network, rootWalletKeys: RootWalletKeys, sign: 'unsigned' | 'halfsigned' | 'fullsigned'): UtxoTransactionBuilder<TNumber>;
66
+ export declare function constructTxnBuilder<TNumber extends number | bigint>(inputs: TxnInput<TNumber>[], outputs: TxnOutput<TNumber>[], network: Network, rootWalletKeys: RootWalletKeys, sign: 'unsigned' | 'halfsigned' | 'fullsigned', signers?: {
67
+ signerName: KeyName;
68
+ cosignerName?: KeyName;
69
+ }): UtxoTransactionBuilder<TNumber>;
61
70
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/testutil/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAsB,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAGL,OAAO,EAEP,cAAc,EACd,OAAO,EACP,sBAAsB,EAOvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;GAEG;AACH,oBAAY,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACnE,oBAAY,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACvD,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,6DAAsE,CAAC;AAEvG;;GAEG;AACH,eAAO,MAAM,oBAAoB,iDAAkD,CAAC;AAEpF;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,kBAAkB,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAK5G;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,YAAY,GAAG,YAAY,GAChC,IAAI,CAuBN;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC9D,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,EAC3B,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,YAAY,GAAG,YAAY,GAChC,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACjE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,EAC3B,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAC7B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,YAAY,GAC7C,sBAAsB,CAAC,OAAO,CAAC,CA2CjC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/testutil/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAuC,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAGL,OAAO,EAEP,cAAc,EACd,OAAO,EACP,sBAAsB,EAOvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;GAEG;AACH,oBAAY,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACnE,oBAAY,mBAAmB,GAAG,cAAc,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACvD,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,6DAAsE,CAAC;AAEvG;;GAEG;AACH,eAAO,MAAM,oBAAoB,+DAAkB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,kBAAkB,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAK5G;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,YAAY,GAAG,YAAY,EACjC,OAAO,CAAC,EAAE;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD,IAAI,CAuBN;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC9D,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,EAC3B,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,YAAY,GAAG,YAAY,EACjC,OAAO,CAAC,EAAE;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACjE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,EAC3B,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAC7B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,YAAY,EAC9C,OAAO,CAAC,EAAE;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD,sBAAsB,CAAC,OAAO,CAAC,CA2CjC"}