@bitgo-beta/utxo-lib 8.0.3-beta.9 → 8.0.3-beta.90

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 (48) hide show
  1. package/README.md +19 -16
  2. package/dist/src/bitgo/Musig2.d.ts +5 -10
  3. package/dist/src/bitgo/Musig2.d.ts.map +1 -1
  4. package/dist/src/bitgo/Musig2.js +26 -51
  5. package/dist/src/bitgo/PsbtUtil.d.ts +54 -0
  6. package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -0
  7. package/dist/src/bitgo/PsbtUtil.js +79 -0
  8. package/dist/src/bitgo/UtxoPsbt.d.ts +21 -37
  9. package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
  10. package/dist/src/bitgo/UtxoPsbt.js +138 -125
  11. package/dist/src/bitgo/index.d.ts +8 -0
  12. package/dist/src/bitgo/index.d.ts.map +1 -1
  13. package/dist/src/bitgo/index.js +2 -1
  14. package/dist/src/bitgo/legacysafe/index.d.ts +15 -0
  15. package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
  16. package/dist/src/bitgo/legacysafe/index.js +57 -0
  17. package/dist/src/bitgo/parseInput.js +2 -2
  18. package/dist/src/bitgo/signature.d.ts +2 -2
  19. package/dist/src/bitgo/signature.d.ts.map +1 -1
  20. package/dist/src/bitgo/signature.js +8 -2
  21. package/dist/src/bitgo/transaction.d.ts +18 -3
  22. package/dist/src/bitgo/transaction.d.ts.map +1 -1
  23. package/dist/src/bitgo/transaction.js +9 -7
  24. package/dist/src/bitgo/wallet/Psbt.d.ts +49 -10
  25. package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
  26. package/dist/src/bitgo/wallet/Psbt.js +159 -83
  27. package/dist/src/bitgo/wallet/Unspent.d.ts +26 -0
  28. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  29. package/dist/src/bitgo/wallet/Unspent.js +149 -60
  30. package/dist/src/bitgo/wallet/WalletOutput.d.ts +17 -1
  31. package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
  32. package/dist/src/bitgo/wallet/WalletOutput.js +64 -23
  33. package/dist/src/bitgo/wallet/chains.d.ts +1 -1
  34. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
  35. package/dist/src/bitgo/zcash/ZcashPsbt.js +4 -3
  36. package/dist/src/testutil/index.d.ts +1 -0
  37. package/dist/src/testutil/index.d.ts.map +1 -1
  38. package/dist/src/testutil/index.js +2 -1
  39. package/dist/src/testutil/mock.d.ts +1 -1
  40. package/dist/src/testutil/mock.d.ts.map +1 -1
  41. package/dist/src/testutil/mock.js +12 -4
  42. package/dist/src/testutil/psbt.d.ts +13 -4
  43. package/dist/src/testutil/psbt.d.ts.map +1 -1
  44. package/dist/src/testutil/psbt.js +10 -9
  45. package/dist/src/testutil/transaction.d.ts +17 -6
  46. package/dist/src/testutil/transaction.d.ts.map +1 -1
  47. package/dist/src/testutil/transaction.js +17 -10
  48. package/package.json +6 -6
@@ -12,7 +12,7 @@ exports.txnInputScriptTypes = ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr', outputScrip
12
12
  /**
13
13
  * array of supported output script types.
14
14
  */
15
- exports.txnOutputScriptTypes = ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr'];
15
+ exports.txnOutputScriptTypes = outputScripts_1.scriptTypes2Of3;
16
16
  /**
17
17
  * create unspent object from input script type, index, network and root wallet key.
18
18
  */
@@ -46,8 +46,8 @@ exports.getTxnSigners = getTxnSigners;
46
46
  * signs with first or second signature for single input.
47
47
  * p2shP2pk is signed only with first sign.
48
48
  */
49
- function signTxnInput(txb, input, inputIndex, rootWalletKeys, sign) {
50
- const { signerName, cosignerName } = getTxnSigners(input.scriptType);
49
+ function signTxnInput(txb, input, inputIndex, rootWalletKeys, sign, signers) {
50
+ const { signerName, cosignerName } = signers ? signers : getTxnSigners(input.scriptType);
51
51
  const unspent = toTxnUnspent(input, inputIndex, txb.network, rootWalletKeys);
52
52
  if (sign === 'halfsigned') {
53
53
  if (input.scriptType === 'p2shP2pk') {
@@ -66,35 +66,42 @@ exports.signTxnInput = signTxnInput;
66
66
  * signs with first or second signature for all inputs.
67
67
  * p2shP2pk is signed only with first sign.
68
68
  */
69
- function signAllTxnInputs(txb, inputs, rootWalletKeys, sign) {
69
+ function signAllTxnInputs(txb, inputs, rootWalletKeys, sign, signers) {
70
70
  inputs.forEach((input, index) => {
71
- signTxnInput(txb, input, index, rootWalletKeys, sign);
71
+ signTxnInput(txb, input, index, rootWalletKeys, sign, signers);
72
72
  });
73
73
  }
74
74
  exports.signAllTxnInputs = signAllTxnInputs;
75
75
  /**
76
76
  * construct transaction for given inputs, outputs, network and root wallet keys.
77
77
  */
78
- function constructTxnBuilder(inputs, outputs, network, rootWalletKeys, sign) {
78
+ function constructTxnBuilder(inputs, outputs, network, rootWalletKeys, sign, signers) {
79
79
  const totalInputAmount = inputs.reduce((sum, input) => sum + BigInt(input.value), BigInt(0));
80
80
  const outputInputAmount = outputs.reduce((sum, output) => sum + BigInt(output.value), BigInt(0));
81
81
  assert(totalInputAmount >= outputInputAmount, 'total output can not exceed total input');
82
+ assert(!outputs.some((o) => (o.scriptType && o.address) || (!o.scriptType && !o.address)), 'only either output script type or address should be provided');
82
83
  const txb = bitgo_1.createTransactionBuilderForNetwork(network);
83
84
  const unspents = inputs.map((input, i) => toTxnUnspent(input, i, network, rootWalletKeys));
84
85
  unspents.forEach((u, i) => {
85
86
  bitgo_1.addToTransactionBuilder(txb, u);
86
87
  });
87
88
  outputs.forEach((output, i) => {
88
- txb.addOutput(bitgo_1.getWalletAddress(rootWalletKeys, output.isInternalAddress ? bitgo_1.getInternalChainCode(output.scriptType) : bitgo_1.getExternalChainCode(output.scriptType), i, network), output.value);
89
+ const address = output.scriptType
90
+ ? bitgo_1.getWalletAddress(rootWalletKeys, output.isInternalAddress ? bitgo_1.getInternalChainCode(output.scriptType) : bitgo_1.getExternalChainCode(output.scriptType), i, network)
91
+ : output.address;
92
+ if (!address) {
93
+ throw new Error('address is missing');
94
+ }
95
+ txb.addOutput(address, output.value);
89
96
  });
90
97
  if (sign === 'unsigned') {
91
98
  return txb;
92
99
  }
93
- signAllTxnInputs(txb, inputs, rootWalletKeys, 'halfsigned');
100
+ signAllTxnInputs(txb, inputs, rootWalletKeys, 'halfsigned', signers);
94
101
  if (sign === 'fullsigned') {
95
- signAllTxnInputs(txb, inputs, rootWalletKeys, sign);
102
+ signAllTxnInputs(txb, inputs, rootWalletKeys, sign, signers);
96
103
  }
97
104
  return txb;
98
105
  }
99
106
  exports.constructTxnBuilder = constructTxnBuilder;
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBRWpDLDBEQUF3RjtBQUN4RixvQ0Fja0I7QUFFbEIsaUNBQXdFO0FBeUJ4RTs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0NBQWtCLENBQVUsQ0FBQztBQUV2Rzs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQVUsQ0FBQztBQUVwRjs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsS0FBd0IsRUFDeEIsS0FBYSxFQUNiLE9BQWdCLEVBQ2hCLGNBQThCO0lBRTlCLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7UUFDbkMsT0FBTyxrQ0FBMkIsQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDakg7U0FBTTtRQUNMLE9BQU8sd0JBQWlCLENBQVUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDdEQsS0FBSyxFQUFFLDRCQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDN0MsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0FBaEJELG9DQWdCQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixhQUFhLENBQUMsU0FBNkI7SUFDekQsT0FBTztRQUNMLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFlBQVksRUFBRSxTQUFTLEtB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QUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hCLCtCQUF1QixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsR0FBRyxDQUFDLFNBQVMsQ0FDWCx3QkFBZ0IsQ0FDZCxjQUFjLEVBQ2QsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLDRCQUFvQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFDNUcsQ0FBQyxFQUNELE9BQU8sQ0FDUixFQUNELE1BQU0sQ0FBQyxLQUFLLENBQ2IsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUU1RCxJQUFJLElBQUksS0FBSyxZQUFZLEVBQUU7UUFDekIsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDckQ7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUExQ0Qsa0RBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IFNjcmlwdFR5cGUsIFNjcmlwdFR5cGUyT2YzLCBzY3JpcHRUeXBlUDJzaFAycGsgfSBmcm9tICcuLi9iaXRnby9vdXRwdXRTY3JpcHRzJztcbmltcG9ydCB7XG4gIGdldEV4dGVybmFsQ2hhaW5Db2RlLFxuICBpc1dhbGxldFVuc3BlbnQsXG4gIEtleU5hbWUsXG4gIGdldEludGVybmFsQ2hhaW5Db2RlLFxuICBSb290V2FsbGV0S2V5cyxcbiAgVW5zcGVudCxcbiAgVXR4b1RyYW5zYWN0aW9uQnVpbGRlcixcbiAgY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRm9yTmV0d29yayxcbiAgYWRkVG9UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIGdldFdhbGxldEFkZHJlc3MsXG4gIHNpZ25JbnB1dFAyc2hQMnBrLFxuICBzaWduSW5wdXRXaXRoVW5zcGVudCxcbiAgV2FsbGV0VW5zcGVudFNpZ25lcixcbn0gZnJvbSAnLi4vYml0Z28nO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJy4uL25ldHdvcmtzJztcbmltcG9ydCB7IG1vY2tSZXBsYXlQcm90ZWN0aW9uVW5zcGVudCwgbW9ja1dhbGxldFVuc3BlbnQgfSBmcm9tICcuL21vY2snO1xuXG4vKipcbiAqIGlucHV0IHNjcmlwdCB0eXBlIGFuZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IHR5cGUgVHhuSW5wdXRTY3JpcHRUeXBlID0gRXhjbHVkZTxTY3JpcHRUeXBlLCAncDJ0ck11c2lnMic+O1xuZXhwb3J0IHR5cGUgVHhuT3V0cHV0U2NyaXB0VHlwZSA9IEV4Y2x1ZGU8U2NyaXB0VHlwZTJPZjMsICdwMnRyTXVzaWcyJz47XG5cbi8qKlxuICogb3V0cHV0IHNjcmlwdCB0eXBlIGFuZCB2YWx1ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4bklucHV0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgc2NyaXB0VHlwZTogVHhuSW5wdXRTY3JpcHRUeXBlO1xuICB2YWx1ZTogVE51bWJlcjtcbn1cblxuLyoqXG4gKiBzZXQgaXNJbnRlcm5hbEFkZHJlc3M9dHJ1ZSBmb3IgaW50ZXJuYWwgb3V0cHV0IGFkZHJlc3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeG5PdXRwdXQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4ge1xuICBzY3JpcHRUeXBlOiBUeG5PdXRwdXRTY3JpcHRUeXBlO1xuICB2YWx1ZTogVE51bWJlcjtcbiAgaXNJbnRlcm5hbEFkZHJlc3M/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIGFycmF5IG9mIHN1cHBvcnRlZCBpbnB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB0eG5JbnB1dFNjcmlwdFR5cGVzID0gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCcsICdwMnRyJywgc2NyaXB0VHlwZVAyc2hQMnBrXSBhcyBjb25zdDtcblxuLyoqXG4gKiBhcnJheSBvZiBzdXBwb3J0ZWQgb3V0cHV0IHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHR4bk91dHB1dFNjcmlwdFR5cGVzID0gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCcsICdwMnRyJ10gYXMgY29uc3Q7XG5cbi8qKlxuICogY3JlYXRlIHVuc3BlbnQgb2JqZWN0IGZyb20gaW5wdXQgc2NyaXB0IHR5cGUsIGluZGV4LCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1R4blVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGlucHV0OiBUeG5JbnB1dDxUTnVtYmVyPixcbiAgaW5kZXg6IG51bWJlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzXG4pOiBVbnNwZW50PFROdW1iZXI+IHtcbiAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICByZXR1cm4gbW9ja1JlcGxheVByb3RlY3Rpb25VbnNwZW50PFROdW1iZXI+KG5ldHdvcmssIGlucHV0LnZhbHVlLCB7IGtleTogcm9vdFdhbGxldEtleXNbJ3VzZXInXSwgdm91dDogaW5kZXggfSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1vY2tXYWxsZXRVbnNwZW50PFROdW1iZXI+KG5ldHdvcmssIGlucHV0LnZhbHVlLCB7XG4gICAgICBjaGFpbjogZ2V0SW50ZXJuYWxDaGFpbkNvZGUoaW5wdXQuc2NyaXB0VHlwZSksXG4gICAgICB2b3V0OiBpbmRleCxcbiAgICAgIGtleXM6IHJvb3RXYWxsZXRLZXlzLFxuICAgICAgaW5kZXgsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiByZXR1cm5zIHNpZ25lciBhbmQgY29zaWduZXIgbmFtZXMgZm9yIFR4bklucHV0U2NyaXB0VHlwZS5cbiAqIHVzZXIgYW5kIHVuZGVmaW5lZCBhcyBzaWduZXIgYW5kIGNvc2lnbmVyIHJlc3BlY3RpdmVseSBmb3IgcDJzaFAycGsuXG4gKiB1c2VyIGFuZCBiaXRnbyBhcyBzaWduZXIgYW5kIGNvc2lnbmVyIHJlc3BlY3RpdmVseSBmb3Igb3RoZXIgaW5wdXQgc2NyaXB0IHR5cGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhuU2lnbmVycyhpbnB1dFR5cGU6IFR4bklucHV0U2NyaXB0VHlwZSk6IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9IHtcbiAgcmV0dXJuIHtcbiAgICBzaWduZXJOYW1lOiAndXNlcicsXG4gICAgY29zaWduZXJOYW1lOiBpbnB1dFR5cGUgPT09ICdwMnNoUDJwaycgPyB1bmRlZmluZWQgOiAnYml0Z28nLFxuICB9O1xufVxuXG4vKipcbiAqIHNpZ25zIHdpdGggZmlyc3Qgb3Igc2Vjb25kIHNpZ25hdHVyZSBmb3Igc2luZ2xlIGlucHV0LlxuICogcDJzaFAycGsgaXMgc2lnbmVkIG9ubHkgd2l0aCBmaXJzdCBzaWduLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnblR4bklucHV0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eGI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIGlucHV0OiBUeG5JbnB1dDxUTnVtYmVyPixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJ1xuKTogdm9pZCB7XG4gIGNvbnN0IHsgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lIH0gPSBnZXRUeG5TaWduZXJzKGlucHV0LnNjcmlwdFR5cGUpO1xuICBjb25zdCB1bnNwZW50ID0gdG9UeG5VbnNwZW50KGlucHV0LCBpbnB1dEluZGV4LCB0eGIubmV0d29yaywgcm9vdFdhbGxldEtleXMpO1xuICBpZiAoc2lnbiA9PT0gJ2hhbGZzaWduZWQnKSB7XG4gICAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIHNpZ25JbnB1dFAyc2hQMnBrKHR4YiwgaW5wdXRJbmRleCwgcm9vdFdhbGxldEtleXNbc2lnbmVyTmFtZV0pO1xuICAgIH0gZWxzZSBpZiAoaXNXYWxsZXRVbnNwZW50KHVuc3BlbnQpICYmIGNvc2lnbmVyTmFtZSkge1xuICAgICAgc2lnbklucHV0V2l0aFVuc3BlbnQoXG4gICAgICAgIHR4YixcbiAgICAgICAgaW5wdXRJbmRleCxcbiAgICAgICAgdW5zcGVudCxcbiAgICAgICAgV2FsbGV0VW5zcGVudFNpZ25lci5mcm9tKHJvb3RXYWxsZXRLZXlzLCByb290V2FsbGV0S2V5c1tzaWduZXJOYW1lXSwgcm9vdFdhbGxldEtleXNbY29zaWduZXJOYW1lXSlcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGlmIChpc1dhbGxldFVuc3BlbnQodW5zcGVudCkgJiYgc2lnbiA9PT0gJ2Z1bGxzaWduZWQnICYmIGNvc2lnbmVyTmFtZSkge1xuICAgIHNpZ25JbnB1dFdpdGhVbnNwZW50KFxuICAgICAgdHhiLFxuICAgICAgaW5wdXRJbmRleCxcbiAgICAgIHVuc3BlbnQsXG4gICAgICBXYWxsZXRVbnNwZW50U2lnbmVyLmZyb20ocm9vdFdhbGxldEtleXMsIHJvb3RXYWxsZXRLZXlzW2Nvc2lnbmVyTmFtZV0sIHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdKVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBzaWducyB3aXRoIGZpcnN0IG9yIHNlY29uZCBzaWduYXR1cmUgZm9yIGFsbCBpbnB1dHMuXG4gKiBwMnNoUDJwayBpcyBzaWduZWQgb25seSB3aXRoIGZpcnN0IHNpZ24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduQWxsVHhuSW5wdXRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eGI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIGlucHV0czogVHhuSW5wdXQ8VE51bWJlcj5bXSxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAnaGFsZnNpZ25lZCcgfCAnZnVsbHNpZ25lZCdcbik6IHZvaWQge1xuICBpbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgc2lnblR4bklucHV0KHR4YiwgaW5wdXQsIGluZGV4LCByb290V2FsbGV0S2V5cywgc2lnbik7XG4gIH0pO1xufVxuXG4vKipcbiAqIGNvbnN0cnVjdCB0cmFuc2FjdGlvbiBmb3IgZ2l2ZW4gaW5wdXRzLCBvdXRwdXRzLCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0VHhuQnVpbGRlcjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgaW5wdXRzOiBUeG5JbnB1dDxUTnVtYmVyPltdLFxuICBvdXRwdXRzOiBUeG5PdXRwdXQ8VE51bWJlcj5bXSxcbiAgbmV0d29yazogTmV0d29yayxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAndW5zaWduZWQnIHwgJ2hhbGZzaWduZWQnIHwgJ2Z1bGxzaWduZWQnXG4pOiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+IHtcbiAgY29uc3QgdG90YWxJbnB1dEFtb3VudCA9IGlucHV0cy5yZWR1Y2UoKHN1bSwgaW5wdXQpID0+IHN1bSArIEJpZ0ludChpbnB1dC52YWx1ZSksIEJpZ0ludCgwKSk7XG4gIGNvbnN0IG91dHB1dElucHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBCaWdJbnQob3V0cHV0LnZhbHVlKSwgQmlnSW50KDApKTtcbiAgYXNzZXJ0KHRvdGFsSW5wdXRBbW91bnQgPj0gb3V0cHV0SW5wdXRBbW91bnQsICd0b3RhbCBvdXRwdXQgY2FuIG5vdCBleGNlZWQgdG90YWwgaW5wdXQnKTtcblxuICBjb25zdCB0eGIgPSBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGb3JOZXR3b3JrPFROdW1iZXI+KG5ldHdvcmspO1xuXG4gIGNvbnN0IHVuc3BlbnRzID0gaW5wdXRzLm1hcCgoaW5wdXQsIGkpID0+IHRvVHhuVW5zcGVudChpbnB1dCwgaSwgbmV0d29yaywgcm9vdFdhbGxldEtleXMpKTtcblxuICB1bnNwZW50cy5mb3JFYWNoKCh1LCBpKSA9PiB7XG4gICAgYWRkVG9UcmFuc2FjdGlvbkJ1aWxkZXIodHhiLCB1KTtcbiAgfSk7XG5cbiAgb3V0cHV0cy5mb3JFYWNoKChvdXRwdXQsIGkpID0+IHtcbiAgICB0eGIuYWRkT3V0cHV0KFxuICAgICAgZ2V0V2FsbGV0QWRkcmVzcyhcbiAgICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICAgIG91dHB1dC5pc0ludGVybmFsQWRkcmVzcyA/IGdldEludGVybmFsQ2hhaW5Db2RlKG91dHB1dC5zY3JpcHRUeXBlKSA6IGdldEV4dGVybmFsQ2hhaW5Db2RlKG91dHB1dC5zY3JpcHRUeXBlKSxcbiAgICAgICAgaSxcbiAgICAgICAgbmV0d29ya1xuICAgICAgKSxcbiAgICAgIG91dHB1dC52YWx1ZVxuICAgICk7XG4gIH0pO1xuXG4gIGlmIChzaWduID09PSAndW5zaWduZWQnKSB7XG4gICAgcmV0dXJuIHR4YjtcbiAgfVxuXG4gIHNpZ25BbGxUeG5JbnB1dHModHhiLCBpbnB1dHMsIHJvb3RXYWxsZXRLZXlzLCAnaGFsZnNpZ25lZCcpO1xuXG4gIGlmIChzaWduID09PSAnZnVsbHNpZ25lZCcpIHtcbiAgICBzaWduQWxsVHhuSW5wdXRzKHR4YiwgaW5wdXRzLCByb290V2FsbGV0S2V5cywgc2lnbik7XG4gIH1cblxuICByZXR1cm4gdHhiO1xufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBRWpDLDBEQUF5RztBQUN6RyxvQ0Fja0I7QUFFbEIsaUNBQXdFO0FBMkJ4RTs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0NBQWtCLENBQVUsQ0FBQztBQUV2Rzs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsK0JBQWUsQ0FBQztBQUVwRDs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsS0FBd0IsRUFDeEIsS0FBYSxFQUNiLE9BQWdCLEVBQ2hCLGNBQThCO0lBRTlCLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7UUFDbkMsT0FBTyxrQ0FBMkIsQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDakg7U0FBTTtRQUNMLE9BQU8sd0JBQWlCLENBQVUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDdEQsS0FBSyxFQUFFLDRCQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDN0MsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0FBaEJELG9DQWdCQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixhQUFhLENBQUMsU0FBNkI7SUFDekQsT0FBTztRQUNMLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFlBQVksRUFBRSxTQUFTLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxD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QU0sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXJFLElBQUksSUFBSSxLQUFLLFlBQVksRUFBRTtRQUN6QixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDOUQ7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFsREQsa0RBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IFNjcmlwdFR5cGUsIFNjcmlwdFR5cGUyT2YzLCBzY3JpcHRUeXBlUDJzaFAycGssIHNjcmlwdFR5cGVzMk9mMyB9IGZyb20gJy4uL2JpdGdvL291dHB1dFNjcmlwdHMnO1xuaW1wb3J0IHtcbiAgZ2V0RXh0ZXJuYWxDaGFpbkNvZGUsXG4gIGlzV2FsbGV0VW5zcGVudCxcbiAgS2V5TmFtZSxcbiAgZ2V0SW50ZXJuYWxDaGFpbkNvZGUsXG4gIFJvb3RXYWxsZXRLZXlzLFxuICBVbnNwZW50LFxuICBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGb3JOZXR3b3JrLFxuICBhZGRUb1RyYW5zYWN0aW9uQnVpbGRlcixcbiAgZ2V0V2FsbGV0QWRkcmVzcyxcbiAgc2lnbklucHV0UDJzaFAycGssXG4gIHNpZ25JbnB1dFdpdGhVbnNwZW50LFxuICBXYWxsZXRVbnNwZW50U2lnbmVyLFxufSBmcm9tICcuLi9iaXRnbyc7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnLi4vbmV0d29ya3MnO1xuaW1wb3J0IHsgbW9ja1JlcGxheVByb3RlY3Rpb25VbnNwZW50LCBtb2NrV2FsbGV0VW5zcGVudCB9IGZyb20gJy4vbW9jayc7XG5cbi8qKlxuICogaW5wdXQgc2NyaXB0IHR5cGUgYW5kIHZhbHVlLlxuICovXG5leHBvcnQgdHlwZSBUeG5JbnB1dFNjcmlwdFR5cGUgPSBFeGNsdWRlPFNjcmlwdFR5cGUsICdwMnRyTXVzaWcyJz47XG5leHBvcnQgdHlwZSBUeG5PdXRwdXRTY3JpcHRUeXBlID0gU2NyaXB0VHlwZTJPZjM7XG5cbi8qKlxuICogb3V0cHV0IHNjcmlwdCB0eXBlIGFuZCB2YWx1ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4bklucHV0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgc2NyaXB0VHlwZTogVHhuSW5wdXRTY3JpcHRUeXBlO1xuICB2YWx1ZTogVE51bWJlcjtcbn1cblxuLyoqXG4gKiBzaG91bGQgc2V0IGVpdGhlciBhZGRyZXNzIG9yIHNjcmlwdFR5cGUsIG5ldmVyIGJvdGguXG4gKiBzZXQgaXNJbnRlcm5hbEFkZHJlc3M9dHJ1ZSBmb3IgaW50ZXJuYWwgb3V0cHV0IGFkZHJlc3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeG5PdXRwdXQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4ge1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICBzY3JpcHRUeXBlPzogVHhuT3V0cHV0U2NyaXB0VHlwZTtcbiAgdmFsdWU6IFROdW1iZXI7XG4gIGlzSW50ZXJuYWxBZGRyZXNzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBhcnJheSBvZiBzdXBwb3J0ZWQgaW5wdXQgc2NyaXB0IHR5cGVzLlxuICovXG5leHBvcnQgY29uc3QgdHhuSW5wdXRTY3JpcHRUeXBlcyA9IFsncDJzaCcsICdwMnNoUDJ3c2gnLCAncDJ3c2gnLCAncDJ0cicsIHNjcmlwdFR5cGVQMnNoUDJwa10gYXMgY29uc3Q7XG5cbi8qKlxuICogYXJyYXkgb2Ygc3VwcG9ydGVkIG91dHB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB0eG5PdXRwdXRTY3JpcHRUeXBlcyA9IHNjcmlwdFR5cGVzMk9mMztcblxuLyoqXG4gKiBjcmVhdGUgdW5zcGVudCBvYmplY3QgZnJvbSBpbnB1dCBzY3JpcHQgdHlwZSwgaW5kZXgsIG5ldHdvcmsgYW5kIHJvb3Qgd2FsbGV0IGtleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVHhuVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgaW5wdXQ6IFR4bklucHV0PFROdW1iZXI+LFxuICBpbmRleDogbnVtYmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXNcbik6IFVuc3BlbnQ8VE51bWJlcj4ge1xuICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgIHJldHVybiBtb2NrUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQ8VE51bWJlcj4obmV0d29yaywgaW5wdXQudmFsdWUsIHsga2V5OiByb290V2FsbGV0S2V5c1sndXNlciddLCB2b3V0OiBpbmRleCB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbW9ja1dhbGxldFVuc3BlbnQ8VE51bWJlcj4obmV0d29yaywgaW5wdXQudmFsdWUsIHtcbiAgICAgIGNoYWluOiBnZXRJbnRlcm5hbENoYWluQ29kZShpbnB1dC5zY3JpcHRUeXBlKSxcbiAgICAgIHZvdXQ6IGluZGV4LFxuICAgICAga2V5czogcm9vdFdhbGxldEtleXMsXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIHJldHVybnMgc2lnbmVyIGFuZCBjb3NpZ25lciBuYW1lcyBmb3IgVHhuSW5wdXRTY3JpcHRUeXBlLlxuICogdXNlciBhbmQgdW5kZWZpbmVkIGFzIHNpZ25lciBhbmQgY29zaWduZXIgcmVzcGVjdGl2ZWx5IGZvciBwMnNoUDJway5cbiAqIHVzZXIgYW5kIGJpdGdvIGFzIHNpZ25lciBhbmQgY29zaWduZXIgcmVzcGVjdGl2ZWx5IGZvciBvdGhlciBpbnB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeG5TaWduZXJzKGlucHV0VHlwZTogVHhuSW5wdXRTY3JpcHRUeXBlKTogeyBzaWduZXJOYW1lOiBLZXlOYW1lOyBjb3NpZ25lck5hbWU/OiBLZXlOYW1lIH0ge1xuICByZXR1cm4ge1xuICAgIHNpZ25lck5hbWU6ICd1c2VyJyxcbiAgICBjb3NpZ25lck5hbWU6IGlucHV0VHlwZSA9PT0gJ3Ayc2hQMnBrJyA/IHVuZGVmaW5lZCA6ICdiaXRnbycsXG4gIH07XG59XG5cbi8qKlxuICogc2lnbnMgd2l0aCBmaXJzdCBvciBzZWNvbmQgc2lnbmF0dXJlIGZvciBzaW5nbGUgaW5wdXQuXG4gKiBwMnNoUDJwayBpcyBzaWduZWQgb25seSB3aXRoIGZpcnN0IHNpZ24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduVHhuSW5wdXQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4YjogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPixcbiAgaW5wdXQ6IFR4bklucHV0PFROdW1iZXI+LFxuICBpbnB1dEluZGV4OiBudW1iZXIsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgc2lnbjogJ2hhbGZzaWduZWQnIHwgJ2Z1bGxzaWduZWQnLFxuICBzaWduZXJzPzogeyBzaWduZXJOYW1lOiBLZXlOYW1lOyBjb3NpZ25lck5hbWU/OiBLZXlOYW1lIH1cbik6IHZvaWQge1xuICBjb25zdCB7IHNpZ25lck5hbWUsIGNvc2lnbmVyTmFtZSB9ID0gc2lnbmVycyA/IHNpZ25lcnMgOiBnZXRUeG5TaWduZXJzKGlucHV0LnNjcmlwdFR5cGUpO1xuICBjb25zdCB1bnNwZW50ID0gdG9UeG5VbnNwZW50KGlucHV0LCBpbnB1dEluZGV4LCB0eGIubmV0d29yaywgcm9vdFdhbGxldEtleXMpO1xuICBpZiAoc2lnbiA9PT0gJ2hhbGZzaWduZWQnKSB7XG4gICAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIHNpZ25JbnB1dFAyc2hQMnBrKHR4YiwgaW5wdXRJbmRleCwgcm9vdFdhbGxldEtleXNbc2lnbmVyTmFtZV0pO1xuICAgIH0gZWxzZSBpZiAoaXNXYWxsZXRVbnNwZW50KHVuc3BlbnQpICYmIGNvc2lnbmVyTmFtZSkge1xuICAgICAgc2lnbklucHV0V2l0aFVuc3BlbnQoXG4gICAgICAgIHR4YixcbiAgICAgICAgaW5wdXRJbmRleCxcbiAgICAgICAgdW5zcGVudCxcbiAgICAgICAgV2FsbGV0VW5zcGVudFNpZ25lci5mcm9tKHJvb3RXYWxsZXRLZXlzLCByb290V2FsbGV0S2V5c1tzaWduZXJOYW1lXSwgcm9vdFdhbGxldEtleXNbY29zaWduZXJOYW1lXSlcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGlmIChpc1dhbGxldFVuc3BlbnQodW5zcGVudCkgJiYgc2lnbiA9PT0gJ2Z1bGxzaWduZWQnICYmIGNvc2lnbmVyTmFtZSkge1xuICAgIHNpZ25JbnB1dFdpdGhVbnNwZW50KFxuICAgICAgdHhiLFxuICAgICAgaW5wdXRJbmRleCxcbiAgICAgIHVuc3BlbnQsXG4gICAgICBXYWxsZXRVbnNwZW50U2lnbmVyLmZyb20ocm9vdFdhbGxldEtleXMsIHJvb3RXYWxsZXRLZXlzW2Nvc2lnbmVyTmFtZV0sIHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdKVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBzaWducyB3aXRoIGZpcnN0IG9yIHNlY29uZCBzaWduYXR1cmUgZm9yIGFsbCBpbnB1dHMuXG4gKiBwMnNoUDJwayBpcyBzaWduZWQgb25seSB3aXRoIGZpcnN0IHNpZ24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduQWxsVHhuSW5wdXRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eGI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIGlucHV0czogVHhuSW5wdXQ8VE51bWJlcj5bXSxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAnaGFsZnNpZ25lZCcgfCAnZnVsbHNpZ25lZCcsXG4gIHNpZ25lcnM/OiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfVxuKTogdm9pZCB7XG4gIGlucHV0cy5mb3JFYWNoKChpbnB1dCwgaW5kZXgpID0+IHtcbiAgICBzaWduVHhuSW5wdXQodHhiLCBpbnB1dCwgaW5kZXgsIHJvb3RXYWxsZXRLZXlzLCBzaWduLCBzaWduZXJzKTtcbiAgfSk7XG59XG5cbi8qKlxuICogY29uc3RydWN0IHRyYW5zYWN0aW9uIGZvciBnaXZlbiBpbnB1dHMsIG91dHB1dHMsIG5ldHdvcmsgYW5kIHJvb3Qgd2FsbGV0IGtleXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RUeG5CdWlsZGVyPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBpbnB1dHM6IFR4bklucHV0PFROdW1iZXI+W10sXG4gIG91dHB1dHM6IFR4bk91dHB1dDxUTnVtYmVyPltdLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICd1bnNpZ25lZCcgfCAnaGFsZnNpZ25lZCcgfCAnZnVsbHNpZ25lZCcsXG4gIHNpZ25lcnM/OiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfVxuKTogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPiB7XG4gIGNvbnN0IHRvdGFsSW5wdXRBbW91bnQgPSBpbnB1dHMucmVkdWNlKChzdW0sIGlucHV0KSA9PiBzdW0gKyBCaWdJbnQoaW5wdXQudmFsdWUpLCBCaWdJbnQoMCkpO1xuICBjb25zdCBvdXRwdXRJbnB1dEFtb3VudCA9IG91dHB1dHMucmVkdWNlKChzdW0sIG91dHB1dCkgPT4gc3VtICsgQmlnSW50KG91dHB1dC52YWx1ZSksIEJpZ0ludCgwKSk7XG4gIGFzc2VydCh0b3RhbElucHV0QW1vdW50ID49IG91dHB1dElucHV0QW1vdW50LCAndG90YWwgb3V0cHV0IGNhbiBub3QgZXhjZWVkIHRvdGFsIGlucHV0Jyk7XG4gIGFzc2VydChcbiAgICAhb3V0cHV0cy5zb21lKChvKSA9PiAoby5zY3JpcHRUeXBlICYmIG8uYWRkcmVzcykgfHwgKCFvLnNjcmlwdFR5cGUgJiYgIW8uYWRkcmVzcykpLFxuICAgICdvbmx5IGVpdGhlciBvdXRwdXQgc2NyaXB0IHR5cGUgb3IgYWRkcmVzcyBzaG91bGQgYmUgcHJvdmlkZWQnXG4gICk7XG5cbiAgY29uc3QgdHhiID0gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRm9yTmV0d29yazxUTnVtYmVyPihuZXR3b3JrKTtcblxuICBjb25zdCB1bnNwZW50cyA9IGlucHV0cy5tYXAoKGlucHV0LCBpKSA9PiB0b1R4blVuc3BlbnQoaW5wdXQsIGksIG5ldHdvcmssIHJvb3RXYWxsZXRLZXlzKSk7XG5cbiAgdW5zcGVudHMuZm9yRWFjaCgodSwgaSkgPT4ge1xuICAgIGFkZFRvVHJhbnNhY3Rpb25CdWlsZGVyKHR4YiwgdSk7XG4gIH0pO1xuXG4gIG91dHB1dHMuZm9yRWFjaCgob3V0cHV0LCBpKSA9PiB7XG4gICAgY29uc3QgYWRkcmVzcyA9IG91dHB1dC5zY3JpcHRUeXBlXG4gICAgICA/IGdldFdhbGxldEFkZHJlc3MoXG4gICAgICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICAgICAgb3V0cHV0LmlzSW50ZXJuYWxBZGRyZXNzID8gZ2V0SW50ZXJuYWxDaGFpbkNvZGUob3V0cHV0LnNjcmlwdFR5cGUpIDogZ2V0RXh0ZXJuYWxDaGFpbkNvZGUob3V0cHV0LnNjcmlwdFR5cGUpLFxuICAgICAgICAgIGksXG4gICAgICAgICAgbmV0d29ya1xuICAgICAgICApXG4gICAgICA6IG91dHB1dC5hZGRyZXNzO1xuICAgIGlmICghYWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhZGRyZXNzIGlzIG1pc3NpbmcnKTtcbiAgICB9XG4gICAgdHhiLmFkZE91dHB1dChhZGRyZXNzLCBvdXRwdXQudmFsdWUpO1xuICB9KTtcblxuICBpZiAoc2lnbiA9PT0gJ3Vuc2lnbmVkJykge1xuICAgIHJldHVybiB0eGI7XG4gIH1cblxuICBzaWduQWxsVHhuSW5wdXRzKHR4YiwgaW5wdXRzLCByb290V2FsbGV0S2V5cywgJ2hhbGZzaWduZWQnLCBzaWduZXJzKTtcblxuICBpZiAoc2lnbiA9PT0gJ2Z1bGxzaWduZWQnKSB7XG4gICAgc2lnbkFsbFR4bklucHV0cyh0eGIsIGlucHV0cywgcm9vdFdhbGxldEtleXMsIHNpZ24sIHNpZ25lcnMpO1xuICB9XG5cbiAgcmV0dXJuIHR4Yjtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-lib",
3
- "version": "8.0.3-beta.9",
3
+ "version": "8.0.3-beta.90",
4
4
  "description": "Client-side Bitcoin JavaScript library",
5
5
  "main": "./dist/src/index.js",
6
6
  "engines": {
7
- "node": ">=10.22.0 <17",
7
+ "node": ">=10.22.0 <19",
8
8
  "npm": ">=3.10.10"
9
9
  },
10
10
  "keywords": [
@@ -46,14 +46,14 @@
46
46
  "dist/src"
47
47
  ],
48
48
  "dependencies": {
49
- "@bitgo-beta/blake2b": "3.0.4-beta.245",
49
+ "@bitgo-beta/blake2b": "3.0.4-beta.326",
50
50
  "@brandonblack/musig": "^0.0.1-alpha.0",
51
51
  "@noble/secp256k1": "1.6.3",
52
52
  "bech32": "^2.0.0",
53
- "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.3",
53
+ "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
54
54
  "bip32": "^3.0.1",
55
55
  "bitcoin-ops": "^1.3.0",
56
- "bitcoinjs-lib": "npm:@bitgo-forks/bitcoinjs-lib@7.1.0-master.5",
56
+ "bitcoinjs-lib": "npm:@bitgo-forks/bitcoinjs-lib@7.1.0-master.6",
57
57
  "bn.js": "^5.2.1",
58
58
  "bs58check": "^2.1.2",
59
59
  "cashaddress": "^1.1.0",
@@ -84,5 +84,5 @@
84
84
  },
85
85
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
86
86
  "license": "MIT",
87
- "gitHead": "c877cc34b3b38aea6e2a17c1047a3d92bb1c910d"
87
+ "gitHead": "d3a565c2d11a9bc8f6a4fa94a7b2ae03cb2db8f3"
88
88
  }