@bitgo/abstract-utxo 10.8.0 → 10.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/cjs/src/abstractUtxoCoin.d.ts +10 -2
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/cjs/src/abstractUtxoCoin.js +32 -21
  4. package/dist/cjs/src/index.d.ts +2 -2
  5. package/dist/cjs/src/index.d.ts.map +1 -1
  6. package/dist/cjs/src/index.js +3 -3
  7. package/dist/cjs/src/recovery/backupKeyRecovery.js +4 -4
  8. package/dist/cjs/src/recovery/crossChainRecovery.d.ts +10 -0
  9. package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
  10. package/dist/cjs/src/recovery/crossChainRecovery.js +48 -4
  11. package/dist/cjs/src/transaction/decode.d.ts +10 -0
  12. package/dist/cjs/src/transaction/decode.d.ts.map +1 -0
  13. package/dist/cjs/src/transaction/decode.js +69 -0
  14. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  15. package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +3 -2
  16. package/dist/cjs/src/transaction/explainTransaction.js +2 -2
  17. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +24 -0
  18. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -0
  19. package/dist/cjs/src/transaction/fixedScript/SigningError.js +26 -0
  20. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  21. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +2 -2
  22. package/dist/cjs/src/transaction/fixedScript/index.d.ts +4 -0
  23. package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -1
  24. package/dist/cjs/src/transaction/fixedScript/index.js +18 -1
  25. package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  26. package/dist/cjs/src/{replayProtection.js → transaction/fixedScript/replayProtection.js} +1 -1
  27. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +30 -0
  28. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
  29. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +152 -0
  30. package/dist/cjs/src/transaction/fixedScript/signPsbt.d.ts +32 -0
  31. package/dist/cjs/src/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  32. package/dist/cjs/src/transaction/fixedScript/signPsbt.js +174 -0
  33. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +5 -6
  34. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  35. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +14 -83
  36. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -1
  37. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +3 -2
  38. package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
  39. package/dist/cjs/src/transaction/signTransaction.js +3 -2
  40. package/dist/cjs/src/transaction/types.d.ts +3 -0
  41. package/dist/cjs/src/transaction/types.d.ts.map +1 -1
  42. package/dist/cjs/src/transaction/types.js +1 -1
  43. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +24 -1
  44. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts +2 -0
  45. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  46. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +86 -0
  47. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  48. package/dist/esm/abstractUtxoCoin.d.ts +10 -2
  49. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
  50. package/dist/esm/abstractUtxoCoin.js +33 -22
  51. package/dist/esm/index.d.ts +2 -2
  52. package/dist/esm/index.d.ts.map +1 -1
  53. package/dist/esm/index.js +3 -3
  54. package/dist/esm/recovery/backupKeyRecovery.js +2 -2
  55. package/dist/esm/recovery/crossChainRecovery.d.ts +10 -0
  56. package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
  57. package/dist/esm/recovery/crossChainRecovery.js +46 -3
  58. package/dist/esm/transaction/decode.d.ts +10 -0
  59. package/dist/esm/transaction/decode.d.ts.map +1 -0
  60. package/dist/esm/transaction/decode.js +32 -0
  61. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  62. package/dist/esm/transaction/descriptor/verifyTransaction.js +3 -2
  63. package/dist/esm/transaction/explainTransaction.js +2 -2
  64. package/dist/esm/transaction/fixedScript/SigningError.d.ts +24 -0
  65. package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -0
  66. package/dist/esm/transaction/fixedScript/SigningError.js +21 -0
  67. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  68. package/dist/esm/transaction/fixedScript/explainTransaction.js +2 -2
  69. package/dist/esm/transaction/fixedScript/index.d.ts +4 -0
  70. package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -1
  71. package/dist/esm/transaction/fixedScript/index.js +4 -1
  72. package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  73. package/dist/esm/transaction/fixedScript/replayProtection.js +20 -0
  74. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +30 -0
  75. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
  76. package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +112 -0
  77. package/dist/esm/transaction/fixedScript/signPsbt.d.ts +32 -0
  78. package/dist/esm/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  79. package/dist/esm/transaction/fixedScript/signPsbt.js +134 -0
  80. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +5 -6
  81. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  82. package/dist/esm/transaction/fixedScript/signTransaction.js +14 -83
  83. package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts.map +1 -1
  84. package/dist/esm/transaction/fixedScript/verifyTransaction.js +3 -2
  85. package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
  86. package/dist/esm/transaction/signTransaction.js +3 -2
  87. package/dist/esm/transaction/types.d.ts +3 -0
  88. package/dist/esm/transaction/types.d.ts.map +1 -1
  89. package/dist/esm/transaction/types.js +1 -1
  90. package/package.json +12 -12
  91. package/dist/cjs/src/replayProtection.d.ts.map +0 -1
  92. package/dist/cjs/src/sign.d.ts +0 -54
  93. package/dist/cjs/src/sign.d.ts.map +0 -1
  94. package/dist/cjs/src/sign.js +0 -205
  95. package/dist/esm/replayProtection.d.ts.map +0 -1
  96. package/dist/esm/replayProtection.js +0 -20
  97. package/dist/esm/sign.d.ts +0 -54
  98. package/dist/esm/sign.d.ts.map +0 -1
  99. package/dist/esm/sign.js +0 -162
  100. /package/dist/cjs/src/{replayProtection.d.ts → transaction/fixedScript/replayProtection.d.ts} +0 -0
  101. /package/dist/esm/{replayProtection.d.ts → transaction/fixedScript/replayProtection.d.ts} +0 -0
@@ -0,0 +1,134 @@
1
+ import assert from 'assert';
2
+ import * as utxolib from '@bitgo/utxo-lib';
3
+ import { bitgo } from '@bitgo/utxo-lib';
4
+ import debugLib from 'debug';
5
+ import { InputSigningError, TransactionSigningError } from './SigningError';
6
+ const debug = debugLib('bitgo:v2:utxo');
7
+ /**
8
+ * Sign all inputs of a psbt and verify signatures after signing.
9
+ * Collects and logs signing errors and verification errors, throws error in the end if any of them
10
+ * failed.
11
+ *
12
+ * If it is the last signature, finalize and extract the transaction from the psbt.
13
+ *
14
+ * This function mirrors signAndVerifyWalletTransaction, but is used for signing PSBTs instead of
15
+ * using TransactionBuilder
16
+ *
17
+ * @param psbt
18
+ * @param signerKeychain
19
+ * @param isLastSignature
20
+ */
21
+ export function signAndVerifyPsbt(psbt, signerKeychain, { isLastSignature,
22
+ /** deprecated */
23
+ allowNonSegwitSigningWithoutPrevTx, }) {
24
+ const txInputs = psbt.txInputs;
25
+ const outputIds = [];
26
+ const scriptTypes = [];
27
+ const signErrors = psbt.data.inputs
28
+ .map((input, inputIndex) => {
29
+ const outputId = utxolib.bitgo.formatOutputId(utxolib.bitgo.getOutputIdForInput(txInputs[inputIndex]));
30
+ outputIds.push(outputId);
31
+ const { scriptType } = utxolib.bitgo.parsePsbtInput(input);
32
+ scriptTypes.push(scriptType);
33
+ if (scriptType === 'p2shP2pk') {
34
+ debug('Skipping signature for input %d of %d (RP input?)', inputIndex + 1, psbt.data.inputs.length);
35
+ return;
36
+ }
37
+ try {
38
+ psbt.signInputHD(inputIndex, signerKeychain);
39
+ debug('Successfully signed input %d of %d', inputIndex + 1, psbt.data.inputs.length);
40
+ }
41
+ catch (e) {
42
+ return new InputSigningError(inputIndex, scriptType, { id: outputId }, e);
43
+ }
44
+ })
45
+ .filter((e) => e !== undefined);
46
+ const verifyErrors = psbt.data.inputs
47
+ .map((input, inputIndex) => {
48
+ const scriptType = scriptTypes[inputIndex];
49
+ if (scriptType === 'p2shP2pk') {
50
+ debug('Skipping input signature %d of %d (unspent from replay protection address which is platform signed only)', inputIndex + 1, psbt.data.inputs.length);
51
+ return;
52
+ }
53
+ const outputId = outputIds[inputIndex];
54
+ try {
55
+ if (!psbt.validateSignaturesOfInputHD(inputIndex, signerKeychain)) {
56
+ return new InputSigningError(inputIndex, scriptType, { id: outputId }, new Error(`invalid signature`));
57
+ }
58
+ }
59
+ catch (e) {
60
+ debug('Invalid signature');
61
+ return new InputSigningError(inputIndex, scriptType, { id: outputId }, e);
62
+ }
63
+ })
64
+ .filter((e) => e !== undefined);
65
+ if (signErrors.length || verifyErrors.length) {
66
+ throw new TransactionSigningError(signErrors, verifyErrors);
67
+ }
68
+ if (isLastSignature) {
69
+ psbt.finalizeAllInputs();
70
+ return psbt.extractTransaction();
71
+ }
72
+ return psbt;
73
+ }
74
+ /**
75
+ * Key Value: Unsigned tx id => PSBT
76
+ * It is used to cache PSBTs with taproot key path (MuSig2) inputs during external express signer is activated.
77
+ * Reason: MuSig2 signer secure nonce is cached in the UtxoPsbt object. It will be required during the signing step.
78
+ * For more info, check SignTransactionOptions.signingStep
79
+ *
80
+ * TODO BTC-276: This cache may need to be done with LRU like memory safe caching if memory issues comes up.
81
+ */
82
+ const PSBT_CACHE = new Map();
83
+ export async function signPsbtWithMusig2Participant(coin, tx, signerKeychain, params) {
84
+ if (bitgo.isTransactionWithKeyPathSpendInput(tx)) {
85
+ // We can only be the first signature on a transaction with taproot key path spend inputs because
86
+ // we require the secret nonce in the cache of the first signer, which is impossible to retrieve if
87
+ // deserialized from a hex.
88
+ if (params.isLastSignature) {
89
+ throw new Error('Cannot be last signature on a transaction with key path spend inputs');
90
+ }
91
+ switch (params.signingStep) {
92
+ case 'signerNonce':
93
+ assert(signerKeychain);
94
+ tx.setAllInputsMusig2NonceHD(signerKeychain);
95
+ PSBT_CACHE.set(tx.getUnsignedTx().getId(), tx);
96
+ return tx;
97
+ case 'cosignerNonce':
98
+ assert(params.walletId, 'walletId is required for MuSig2 bitgo nonce');
99
+ return await coin.getMusig2Nonces(tx, params.walletId);
100
+ case 'signerSignature':
101
+ const txId = tx.getUnsignedTx().getId();
102
+ const psbt = PSBT_CACHE.get(txId);
103
+ assert(psbt, `Psbt is missing from txCache (cache size ${PSBT_CACHE.size}).
104
+ This may be due to the request being routed to a different BitGo-Express instance that for signing step 'signerNonce'.`);
105
+ PSBT_CACHE.delete(txId);
106
+ tx = psbt.combine(tx);
107
+ break;
108
+ default:
109
+ // this instance is not an external signer
110
+ assert(params.walletId, 'walletId is required for MuSig2 bitgo nonce');
111
+ assert(signerKeychain);
112
+ tx.setAllInputsMusig2NonceHD(signerKeychain);
113
+ const response = await coin.getMusig2Nonces(tx, params.walletId);
114
+ tx = tx.combine(response);
115
+ break;
116
+ }
117
+ }
118
+ else {
119
+ switch (params.signingStep) {
120
+ case 'signerNonce':
121
+ case 'cosignerNonce':
122
+ /**
123
+ * In certain cases, the caller of this method may not know whether the txHex contains a psbt with taproot key path spend input(s).
124
+ * Instead of throwing error, no-op and return the txHex. So that the caller can call this method in the same sequence.
125
+ */
126
+ return tx;
127
+ }
128
+ }
129
+ assert(signerKeychain);
130
+ return signAndVerifyPsbt(tx, signerKeychain, {
131
+ isLastSignature: params.isLastSignature,
132
+ });
133
+ }
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sS0FBSyxPQUFPLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sUUFBUSxNQUFNLE9BQU8sQ0FBQztBQUU3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7QUFVeEM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBNEIsRUFDNUIsY0FBc0MsRUFDdEMsRUFDRSxlQUFlO0FBQ2YsaUJBQWlCO0FBQ2pCLGtDQUFrQyxHQUN5QztJQUU3RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQy9CLE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQztJQUMvQixNQUFNLFdBQVcsR0FBMkIsRUFBRSxDQUFDO0lBRS9DLE1BQU0sVUFBVSxHQUFnQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07U0FDN0QsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtRQUNqQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkcsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6QixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtB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UUFBUSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7Z0JBQ3ZFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdkIsRUFBRSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixRQUFRLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLGVBQWU7Z0JBQ2xCOzs7bUJBR0c7Z0JBQ0gsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QixPQUFPLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUU7UUFDM0MsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO0tBQ3hDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvL3NlY3AyNTZrMSc7XG5pbXBvcnQgeyBiaXRnbyB9IGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgZGVidWdMaWIgZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgeyBJbnB1dFNpZ25pbmdFcnJvciwgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IgfSBmcm9tICcuL1NpZ25pbmdFcnJvcic7XG5cbmNvbnN0IGRlYnVnID0gZGVidWdMaWIoJ2JpdGdvOnYyOnV0eG8nKTtcblxuZXhwb3J0IHR5cGUgUHNidFBhcnNlZFNjcmlwdFR5cGUgPVxuICB8ICdwMnNoJ1xuICB8ICdwMndzaCdcbiAgfCAncDJzaFAyd3NoJ1xuICB8ICdwMnNoUDJwaydcbiAgfCAndGFwcm9vdEtleVBhdGhTcGVuZCdcbiAgfCAndGFwcm9vdFNjcmlwdFBhdGhTcGVuZCc7XG5cbi8qKlxuICogU2lnbiBhbGwgaW5wdXRzIG9mIGEgcHNidCBhbmQgdmVyaWZ5IHNpZ25hdHVyZXMgYWZ0ZXIgc2lnbmluZy5cbiAqIENvbGxlY3RzIGFuZCBsb2dzIHNpZ25pbmcgZXJyb3JzIGFuZCB2ZXJpZmljYXRpb24gZXJyb3JzLCB0aHJvd3MgZXJyb3IgaW4gdGhlIGVuZCBpZiBhbnkgb2YgdGhlbVxuICogZmFpbGVkLlxuICpcbiAqIElmIGl0IGlzIHRoZSBsYXN0IHNpZ25hdHVyZSwgZmluYWxpemUgYW5kIGV4dHJhY3QgdGhlIHRyYW5zYWN0aW9uIGZyb20gdGhlIHBzYnQuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtaXJyb3JzIHNpZ25BbmRWZXJpZnlXYWxsZXRUcmFuc2FjdGlvbiwgYnV0IGlzIHVzZWQgZm9yIHNpZ25pbmcgUFNCVHMgaW5zdGVhZCBvZlxuICogdXNpbmcgVHJhbnNhY3Rpb25CdWlsZGVyXG4gKlxuICogQHBhcmFtIHBzYnRcbiAqIEBwYXJhbSBzaWduZXJLZXljaGFpblxuICogQHBhcmFtIGlzTGFzdFNpZ25hdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIHNpZ25lcktleWNoYWluOiB1dHhvbGliLkJJUDMySW50ZXJmYWNlLFxuICB7XG4gICAgaXNMYXN0U2lnbmF0dXJlLFxuICAgIC8qKiBkZXByZWNhdGVkICovXG4gICAgYWxsb3dOb25TZWd3aXRTaWduaW5nV2l0aG91dFByZXZUeCxcbiAgfTogeyBpc0xhc3RTaWduYXR1cmU6IGJvb2xlYW47IGFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHg/OiBib29sZWFuIH1cbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+IHtcbiAgY29uc3QgdHhJbnB1dHMgPSBwc2J0LnR4SW5wdXRzO1xuICBjb25zdCBvdXRwdXRJZHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNjcmlwdFR5cGVzOiBQc2J0UGFyc2VkU2NyaXB0VHlwZVtdID0gW107XG5cbiAgY29uc3Qgc2lnbkVycm9yczogSW5wdXRTaWduaW5nRXJyb3I8YmlnaW50PltdID0gcHNidC5kYXRhLmlucHV0c1xuICAgIC5tYXAoKGlucHV0LCBpbnB1dEluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IG91dHB1dElkID0gdXR4b2xpYi5iaXRnby5mb3JtYXRPdXRwdXRJZCh1dHhvbGliLmJpdGdvLmdldE91dHB1dElkRm9ySW5wdXQodHhJbnB1dHNbaW5wdXRJbmRleF0pKTtcbiAgICAgIG91dHB1dElkcy5wdXNoKG91dHB1dElkKTtcblxuICAgICAgY29uc3QgeyBzY3JpcHRUeXBlIH0gPSB1dHhvbGliLmJpdGdvLnBhcnNlUHNidElucHV0KGlucHV0KTtcbiAgICAgIHNjcmlwdFR5cGVzLnB1c2goc2NyaXB0VHlwZSk7XG5cbiAgICAgIGlmIChzY3JpcHRUeXBlID09PSAncDJzaFAycGsnKSB7XG4gICAgICAgIGRlYnVnKCdTa2lwcGluZyBzaWduYXR1cmUgZm9yIGlucHV0ICVkIG9mICVkIChSUCBpbnB1dD8pJywgaW5wdXRJbmRleCArIDEsIHBzYnQuZGF0YS5pbnB1dHMubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBwc2J0LnNpZ25JbnB1dEhEKGlucHV0SW5kZXgsIHNpZ25lcktleWNoYWluKTtcbiAgICAgICAgZGVidWcoJ1N1Y2Nlc3NmdWxseSBzaWduZWQgaW5wdXQgJWQgb2YgJWQnLCBpbnB1dEluZGV4ICsgMSwgcHNidC5kYXRhLmlucHV0cy5sZW5ndGgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gbmV3IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD4oaW5wdXRJbmRleCwgc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgZSk7XG4gICAgICB9XG4gICAgfSlcbiAgICAuZmlsdGVyKChlKTogZSBpcyBJbnB1dFNpZ25pbmdFcnJvcjxiaWdpbnQ+ID0+IGUgIT09IHVuZGVmaW5lZCk7XG5cbiAgY29uc3QgdmVyaWZ5RXJyb3JzOiBJbnB1dFNpZ25pbmdFcnJvcjxiaWdpbnQ+W10gPSBwc2J0LmRhdGEuaW5wdXRzXG4gICAgLm1hcCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHNjcmlwdFR5cGUgPSBzY3JpcHRUeXBlc1tpbnB1dEluZGV4XTtcbiAgICAgIGlmIChzY3JpcHRUeXBlID09PSAncDJzaFAycGsnKSB7XG4gICAgICAgIGRlYnVnKFxuICAgICAgICAgICdTa2lwcGluZyBpbnB1dCBzaWduYXR1cmUgJWQgb2YgJWQgKHVuc3BlbnQgZnJvbSByZXBsYXkgcHJvdGVjdGlvbiBhZGRyZXNzIHdoaWNoIGlzIHBsYXRmb3JtIHNpZ25lZCBvbmx5KScsXG4gICAgICAgICAgaW5wdXRJbmRleCArIDEsXG4gICAgICAgICAgcHNidC5kYXRhLmlucHV0cy5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvdXRwdXRJZCA9IG91dHB1dElkc1tpbnB1dEluZGV4XTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghcHNidC52YWxpZGF0ZVNpZ25hdHVyZXNPZklucHV0SEQoaW5wdXRJbmRleCwgc2lnbmVyS2V5Y2hhaW4pKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBJbnB1dFNpZ25pbmdFcnJvcihpbnB1dEluZGV4LCBzY3JpcHRUeXBlLCB7IGlkOiBvdXRwdXRJZCB9LCBuZXcgRXJyb3IoYGludmFsaWQgc2lnbmF0dXJlYCkpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGRlYnVnKCdJbnZhbGlkIHNpZ25hdHVyZScpO1xuICAgICAgICByZXR1cm4gbmV3IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD4oaW5wdXRJbmRleCwgc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgZSk7XG4gICAgICB9XG4gICAgfSlcbiAgICAuZmlsdGVyKChlKTogZSBpcyBJbnB1dFNpZ25pbmdFcnJvcjxiaWdpbnQ+ID0+IGUgIT09IHVuZGVmaW5lZCk7XG5cbiAgaWYgKHNpZ25FcnJvcnMubGVuZ3RoIHx8IHZlcmlmeUVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3Ioc2lnbkVycm9ycywgdmVyaWZ5RXJyb3JzKTtcbiAgfVxuXG4gIGlmIChpc0xhc3RTaWduYXR1cmUpIHtcbiAgICBwc2J0LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gICAgcmV0dXJuIHBzYnQuZXh0cmFjdFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICByZXR1cm4gcHNidDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdXNpZzJQYXJ0aWNpcGFudCB7XG4gIGdldE11c2lnMk5vbmNlcyhwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LCB3YWxsZXRJZDogc3RyaW5nKTogUHJvbWlzZTx1dHhvbGliLmJpdGdvLlV0eG9Qc2J0Pjtcbn1cblxuLyoqXG4gKiBLZXkgVmFsdWU6IFVuc2lnbmVkIHR4IGlkID0+IFBTQlRcbiAqIEl0IGlzIHVzZWQgdG8gY2FjaGUgUFNCVHMgd2l0aCB0YXByb290IGtleSBwYXRoIChNdVNpZzIpIGlucHV0cyBkdXJpbmcgZXh0ZXJuYWwgZXhwcmVzcyBzaWduZXIgaXMgYWN0aXZhdGVkLlxuICogUmVhc29uOiBNdVNpZzIgc2lnbmVyIHNlY3VyZSBub25jZSBpcyBjYWNoZWQgaW4gdGhlIFV0eG9Qc2J0IG9iamVjdC4gSXQgd2lsbCBiZSByZXF1aXJlZCBkdXJpbmcgdGhlIHNpZ25pbmcgc3RlcC5cbiAqIEZvciBtb3JlIGluZm8sIGNoZWNrIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMuc2lnbmluZ1N0ZXBcbiAqXG4gKiBUT0RPIEJUQy0yNzY6IFRoaXMgY2FjaGUgbWF5IG5lZWQgdG8gYmUgZG9uZSB3aXRoIExSVSBsaWtlIG1lbW9yeSBzYWZlIGNhY2hpbmcgaWYgbWVtb3J5IGlzc3VlcyBjb21lcyB1cC5cbiAqL1xuY29uc3QgUFNCVF9DQUNIRSA9IG5ldyBNYXA8c3RyaW5nLCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0PigpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnQoXG4gIGNvaW46IE11c2lnMlBhcnRpY2lwYW50LFxuICB0eDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IEJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkLFxuICBwYXJhbXM6IHtcbiAgICBpc0xhc3RTaWduYXR1cmU6IGJvb2xlYW47XG4gICAgc2lnbmluZ1N0ZXA6ICdzaWduZXJOb25jZScgfCAnY29zaWduZXJOb25jZScgfCAnc2lnbmVyU2lnbmF0dXJlJyB8IHVuZGVmaW5lZDtcbiAgICB3YWxsZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG4pOiBQcm9taXNlPHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+PiB7XG4gIGlmIChiaXRnby5pc1RyYW5zYWN0aW9uV2l0aEtleVBhdGhTcGVuZElucHV0KHR4KSkge1xuICAgIC8vIFdlIGNhbiBvbmx5IGJlIHRoZSBmaXJzdCBzaWduYXR1cmUgb24gYSB0cmFuc2FjdGlvbiB3aXRoIHRhcHJvb3Qga2V5IHBhdGggc3BlbmQgaW5wdXRzIGJlY2F1c2VcbiAgICAvLyB3ZSByZXF1aXJlIHRoZSBzZWNyZXQgbm9uY2UgaW4gdGhlIGNhY2hlIG9mIHRoZSBmaXJzdCBzaWduZXIsIHdoaWNoIGlzIGltcG9zc2libGUgdG8gcmV0cmlldmUgaWZcbiAgICAvLyBkZXNlcmlhbGl6ZWQgZnJvbSBhIGhleC5cbiAgICBpZiAocGFyYW1zLmlzTGFzdFNpZ25hdHVyZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYmUgbGFzdCBzaWduYXR1cmUgb24gYSB0cmFuc2FjdGlvbiB3aXRoIGtleSBwYXRoIHNwZW5kIGlucHV0cycpO1xuICAgIH1cblxuICAgIHN3aXRjaCAocGFyYW1zLnNpZ25pbmdTdGVwKSB7XG4gICAgICBjYXNlICdzaWduZXJOb25jZSc6XG4gICAgICAgIGFzc2VydChzaWduZXJLZXljaGFpbik7XG4gICAgICAgIHR4LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgICAgICBQU0JUX0NBQ0hFLnNldCh0eC5nZXRVbnNpZ25lZFR4KCkuZ2V0SWQoKSwgdHgpO1xuICAgICAgICByZXR1cm4gdHg7XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHBhcmFtcy53YWxsZXRJZCwgJ3dhbGxldElkIGlzIHJlcXVpcmVkIGZvciBNdVNpZzIgYml0Z28gbm9uY2UnKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNvaW4uZ2V0TXVzaWcyTm9uY2VzKHR4LCBwYXJhbXMud2FsbGV0SWQpO1xuICAgICAgY2FzZSAnc2lnbmVyU2lnbmF0dXJlJzpcbiAgICAgICAgY29uc3QgdHhJZCA9IHR4LmdldFVuc2lnbmVkVHgoKS5nZXRJZCgpO1xuICAgICAgICBjb25zdCBwc2J0ID0gUFNCVF9DQUNIRS5nZXQodHhJZCk7XG4gICAgICAgIGFzc2VydChcbiAgICAgICAgICBwc2J0LFxuICAgICAgICAgIGBQc2J0IGlzIG1pc3NpbmcgZnJvbSB0eENhY2hlIChjYWNoZSBzaXplICR7UFNCVF9DQUNIRS5zaXplfSkuXG4gICAgICAgICAgICBUaGlzIG1heSBiZSBkdWUgdG8gdGhlIHJlcXVlc3QgYmVpbmcgcm91dGVkIHRvIGEgZGlmZmVyZW50IEJpdEdvLUV4cHJlc3MgaW5zdGFuY2UgdGhhdCBmb3Igc2lnbmluZyBzdGVwICdzaWduZXJOb25jZScuYFxuICAgICAgICApO1xuICAgICAgICBQU0JUX0NBQ0hFLmRlbGV0ZSh0eElkKTtcbiAgICAgICAgdHggPSBwc2J0LmNvbWJpbmUodHgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIHRoaXMgaW5zdGFuY2UgaXMgbm90IGFuIGV4dGVybmFsIHNpZ25lclxuICAgICAgICBhc3NlcnQocGFyYW1zLndhbGxldElkLCAnd2FsbGV0SWQgaXMgcmVxdWlyZWQgZm9yIE11U2lnMiBiaXRnbyBub25jZScpO1xuICAgICAgICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgICAgICB0eC5zZXRBbGxJbnB1dHNNdXNpZzJOb25jZUhEKHNpZ25lcktleWNoYWluKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb2luLmdldE11c2lnMk5vbmNlcyh0eCwgcGFyYW1zLndhbGxldElkKTtcbiAgICAgICAgdHggPSB0eC5jb21iaW5lKHJlc3BvbnNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAocGFyYW1zLnNpZ25pbmdTdGVwKSB7XG4gICAgICBjYXNlICdzaWduZXJOb25jZSc6XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluIGNlcnRhaW4gY2FzZXMsIHRoZSBjYWxsZXIgb2YgdGhpcyBtZXRob2QgbWF5IG5vdCBrbm93IHdoZXRoZXIgdGhlIHR4SGV4IGNvbnRhaW5zIGEgcHNidCB3aXRoIHRhcHJvb3Qga2V5IHBhdGggc3BlbmQgaW5wdXQocykuXG4gICAgICAgICAqIEluc3RlYWQgb2YgdGhyb3dpbmcgZXJyb3IsIG5vLW9wIGFuZCByZXR1cm4gdGhlIHR4SGV4LiBTbyB0aGF0IHRoZSBjYWxsZXIgY2FuIGNhbGwgdGhpcyBtZXRob2QgaW4gdGhlIHNhbWUgc2VxdWVuY2UuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdHg7XG4gICAgfVxuICB9XG5cbiAgYXNzZXJ0KHNpZ25lcktleWNoYWluKTtcbiAgcmV0dXJuIHNpZ25BbmRWZXJpZnlQc2J0KHR4LCBzaWduZXJLZXljaGFpbiwge1xuICAgIGlzTGFzdFNpZ25hdHVyZTogcGFyYW1zLmlzTGFzdFNpZ25hdHVyZSxcbiAgfSk7XG59XG4iXX0=
@@ -1,10 +1,11 @@
1
1
  import { BIP32Interface } from '@bitgo/secp256k1';
2
2
  import * as utxolib from '@bitgo/utxo-lib';
3
- import { AbstractUtxoCoin, DecodedTransaction } from '../../abstractUtxoCoin';
4
- export declare function signTransaction<TNumber extends number | bigint>(coin: AbstractUtxoCoin, tx: DecodedTransaction<TNumber>, signerKeychain: BIP32Interface | undefined, params: {
3
+ import { DecodedTransaction } from '../types';
4
+ import { Musig2Participant } from './signPsbt';
5
+ export declare function signTransaction(coin: Musig2Participant, tx: DecodedTransaction<bigint | number>, signerKeychain: BIP32Interface | undefined, network: utxolib.Network, params: {
5
6
  walletId: string | undefined;
6
7
  txInfo: {
7
- unspents?: utxolib.bitgo.Unspent<TNumber>[];
8
+ unspents?: utxolib.bitgo.Unspent<bigint | number>[];
8
9
  } | undefined;
9
10
  isLastSignature: boolean;
10
11
  signingStep: 'signerNonce' | 'cosignerNonce' | 'signerSignature' | undefined;
@@ -12,7 +13,5 @@ export declare function signTransaction<TNumber extends number | bigint>(coin: A
12
13
  allowNonSegwitSigningWithoutPrevTx: boolean;
13
14
  pubs: string[] | undefined;
14
15
  cosignerPub: string | undefined;
15
- }): Promise<{
16
- txHex: string;
17
- }>;
16
+ }): Promise<utxolib.bitgo.UtxoPsbt | utxolib.bitgo.UtxoTransaction<bigint | number>>;
18
17
  //# sourceMappingURL=signTransaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAS,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAI3C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAkB,MAAM,wBAAwB,CAAC;AAY9F,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAC/B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IACpE,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,iBAAiB;IACjB,kCAAkC,EAAE,OAAO,CAAC;IAC5C,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACA,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAuF5B"}
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAiC,MAAM,YAAY,CAAC;AAE9E,wBAAsB,eAAe,CACnC,IAAI,EAAE,iBAAiB,EACvB,EAAE,EAAE,kBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC,EACvC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5E,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,iBAAiB;IACjB,kCAAkC,EAAE,OAAO,CAAC;IAC5C,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACA,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAsBlF"}
@@ -1,95 +1,26 @@
1
- import assert from 'assert';
2
1
  import _ from 'lodash';
3
- import { bip32 } from '@bitgo/secp256k1';
4
2
  import { bitgo } from '@bitgo/utxo-lib';
5
- import { isTriple } from '@bitgo/sdk-core';
6
- import { signAndVerifyPsbt, signAndVerifyWalletTransaction } from '../../sign';
7
- /**
8
- * Key Value: Unsigned tx id => PSBT
9
- * It is used to cache PSBTs with taproot key path (MuSig2) inputs during external express signer is activated.
10
- * Reason: MuSig2 signer secure nonce is cached in the UtxoPsbt object. It will be required during the signing step.
11
- * For more info, check SignTransactionOptions.signingStep
12
- *
13
- * TODO BTC-276: This cache may need to be done with LRU like memory safe caching if memory issues comes up.
14
- */
15
- const PSBT_CACHE = new Map();
16
- export async function signTransaction(coin, tx, signerKeychain, params) {
17
- const isTxWithKeyPathSpendInput = tx instanceof bitgo.UtxoPsbt && bitgo.isTransactionWithKeyPathSpendInput(tx);
3
+ import { signLegacyTransaction } from './signLegacyTransaction';
4
+ import { signPsbtWithMusig2Participant } from './signPsbt';
5
+ export async function signTransaction(coin, tx, signerKeychain, network, params) {
18
6
  let isLastSignature = false;
19
7
  if (_.isBoolean(params.isLastSignature)) {
20
- // We can only be the first signature on a transaction with taproot key path spend inputs because
21
- // we require the secret nonce in the cache of the first signer, which is impossible to retrieve if
22
- // deserialized from a hex.
23
- if (params.isLastSignature && isTxWithKeyPathSpendInput) {
24
- throw new Error('Cannot be last signature on a transaction with key path spend inputs');
25
- }
26
8
  // if build is called instead of buildIncomplete, no signature placeholders are left in the sig script
27
9
  isLastSignature = params.isLastSignature;
28
10
  }
29
- if (tx instanceof bitgo.UtxoPsbt && isTxWithKeyPathSpendInput) {
30
- switch (params.signingStep) {
31
- case 'signerNonce':
32
- assert(signerKeychain);
33
- tx.setAllInputsMusig2NonceHD(signerKeychain);
34
- PSBT_CACHE.set(tx.getUnsignedTx().getId(), tx);
35
- return { txHex: tx.toHex() };
36
- case 'cosignerNonce':
37
- assert(params.walletId, 'walletId is required for MuSig2 bitgo nonce');
38
- return { txHex: (await coin.signPsbt(tx.toHex(), params.walletId)).psbt };
39
- case 'signerSignature':
40
- const txId = tx.getUnsignedTx().getId();
41
- const psbt = PSBT_CACHE.get(txId);
42
- assert(psbt, `Psbt is missing from txCache (cache size ${PSBT_CACHE.size}).
43
- This may be due to the request being routed to a different BitGo-Express instance that for signing step 'signerNonce'.`);
44
- PSBT_CACHE.delete(txId);
45
- tx = psbt.combine(tx);
46
- break;
47
- default:
48
- // this instance is not an external signer
49
- assert(params.walletId, 'walletId is required for MuSig2 bitgo nonce');
50
- assert(signerKeychain);
51
- tx.setAllInputsMusig2NonceHD(signerKeychain);
52
- const response = await coin.signPsbt(tx.toHex(), params.walletId);
53
- tx.combine(bitgo.createPsbtFromHex(response.psbt, coin.network));
54
- break;
55
- }
56
- }
57
- else {
58
- switch (params.signingStep) {
59
- case 'signerNonce':
60
- case 'cosignerNonce':
61
- /**
62
- * In certain cases, the caller of this method may not know whether the txHex contains a psbt with taproot key path spend input(s).
63
- * Instead of throwing error, no-op and return the txHex. So that the caller can call this method in the same sequence.
64
- */
65
- return { txHex: tx.toHex() };
66
- }
67
- }
68
- let signedTransaction;
69
11
  if (tx instanceof bitgo.UtxoPsbt) {
70
- assert(signerKeychain);
71
- signedTransaction = signAndVerifyPsbt(tx, signerKeychain, {
72
- isLastSignature,
73
- });
74
- }
75
- else {
76
- if (tx.ins.length !== params.txInfo?.unspents?.length) {
77
- throw new Error('length of unspents array should equal to the number of transaction inputs');
78
- }
79
- if (!params.pubs || !isTriple(params.pubs)) {
80
- throw new Error(`must provide xpub array`);
81
- }
82
- const keychains = params.pubs.map((pub) => bip32.fromBase58(pub));
83
- const cosignerPub = params.cosignerPub ?? params.pubs[2];
84
- const cosignerKeychain = bip32.fromBase58(cosignerPub);
85
- assert(signerKeychain);
86
- const walletSigner = new bitgo.WalletUnspentSigner(keychains, signerKeychain, cosignerKeychain);
87
- signedTransaction = signAndVerifyWalletTransaction(tx, params.txInfo.unspents, walletSigner, {
12
+ return signPsbtWithMusig2Participant(coin, tx, signerKeychain, {
88
13
  isLastSignature,
14
+ signingStep: params.signingStep,
15
+ walletId: params.walletId,
89
16
  });
90
17
  }
91
- return {
92
- txHex: signedTransaction.toBuffer().toString('hex'),
93
- };
18
+ return signLegacyTransaction(tx, signerKeychain, {
19
+ isLastSignature,
20
+ signingStep: params.signingStep,
21
+ txInfo: params.txInfo,
22
+ pubs: params.pubs,
23
+ cosignerPub: params.cosignerPub,
24
+ });
94
25
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxRQUFRLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHL0U7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFrQyxDQUFDO0FBRTdELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUNuQyxJQUFzQixFQUN0QixFQUErQixFQUMvQixjQUEwQyxFQUMxQyxNQVNDO0lBRUQsTUFBTSx5QkFBeUIsR0FBRyxFQUFFLFlBQVksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFL0csSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUN4QyxpR0FBaUc7UUFDakcsbUdBQW1HO1FBQ25HLDJCQUEyQjtRQUMzQixJQUFJLE1BQU0sQ0FBQyxlQUFlLElBQUkseUJBQXlCLEVBQUUsQ0FBQztZQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUVELHNHQUFzRztRQUN0RyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUs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LEVBQUUsQ0FBQztZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUEyQixDQUFDO1FBQzVGLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFpQixTQUFTLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDaEgsaUJBQWlCLEdBQUcsOEJBQThCLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRTtZQUMzRixlQUFlO1NBQ2hCLENBQWtDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU87UUFDTCxLQUFLLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztLQUNwRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlLCBiaXAzMiB9IGZyb20gJ0BiaXRnby9zZWNwMjU2azEnO1xuaW1wb3J0IHsgYml0Z28gfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgaXNUcmlwbGUsIFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7IHNpZ25BbmRWZXJpZnlQc2J0LCBzaWduQW5kVmVyaWZ5V2FsbGV0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9zaWduJztcbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIERlY29kZWRUcmFuc2FjdGlvbiwgUm9vdFdhbGxldEtleXMgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcblxuLyoqXG4gKiBLZXkgVmFsdWU6IFVuc2lnbmVkIHR4IGlkID0+IFBTQlRcbiAqIEl0IGlzIHVzZWQgdG8gY2FjaGUgUFNCVHMgd2l0aCB0YXByb290IGtleSBwYXRoIChNdVNpZzIpIGlucHV0cyBkdXJpbmcgZXh0ZXJuYWwgZXhwcmVzcyBzaWduZXIgaXMgYWN0aXZhdGVkLlxuICogUmVhc29uOiBNdVNpZzIgc2lnbmVyIHNlY3VyZSBub25jZSBpcyBjYWNoZWQgaW4gdGhlIFV0eG9Qc2J0IG9iamVjdC4gSXQgd2lsbCBiZSByZXF1aXJlZCBkdXJpbmcgdGhlIHNpZ25pbmcgc3RlcC5cbiAqIEZvciBtb3JlIGluZm8sIGNoZWNrIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMuc2lnbmluZ1N0ZXBcbiAqXG4gKiBUT0RPIEJUQy0yNzY6IFRoaXMgY2FjaGUgbWF5IG5lZWQgdG8gYmUgZG9uZSB3aXRoIExSVSBsaWtlIG1lbW9yeSBzYWZlIGNhY2hpbmcgaWYgbWVtb3J5IGlzc3VlcyBjb21lcyB1cC5cbiAqL1xuY29uc3QgUFNCVF9DQUNIRSA9IG5ldyBNYXA8c3RyaW5nLCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0PigpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICB0eDogRGVjb2RlZFRyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBzaWduZXJLZXljaGFpbjogQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQsXG4gIHBhcmFtczoge1xuICAgIHdhbGxldElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdHhJbmZvOiB7IHVuc3BlbnRzPzogdXR4b2xpYi5iaXRnby5VbnNwZW50PFROdW1iZXI+W10gfSB8IHVuZGVmaW5lZDtcbiAgICBpc0xhc3RTaWduYXR1cmU6IGJvb2xlYW47XG4gICAgc2lnbmluZ1N0ZXA6ICdzaWduZXJOb25jZScgfCAnY29zaWduZXJOb25jZScgfCAnc2lnbmVyU2lnbmF0dXJlJyB8IHVuZGVmaW5lZDtcbiAgICAvKiogZGVwcmVjYXRlZCAqL1xuICAgIGFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHg6IGJvb2xlYW47XG4gICAgcHViczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgY29zaWduZXJQdWI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfVxuKTogUHJvbWlzZTx7IHR4SGV4OiBzdHJpbmcgfT4ge1xuICBjb25zdCBpc1R4V2l0aEtleVBhdGhTcGVuZElucHV0ID0gdHggaW5zdGFuY2VvZiBiaXRnby5VdHhvUHNidCAmJiBiaXRnby5pc1RyYW5zYWN0aW9uV2l0aEtleVBhdGhTcGVuZElucHV0KHR4KTtcblxuICBsZXQgaXNMYXN0U2lnbmF0dXJlID0gZmFsc2U7XG4gIGlmIChfLmlzQm9vbGVhbihwYXJhbXMuaXNMYXN0U2lnbmF0dXJlKSkge1xuICAgIC8vIFdlIGNhbiBvbmx5IGJlIHRoZSBmaXJzdCBzaWduYXR1cmUgb24gYSB0cmFuc2FjdGlvbiB3aXRoIHRhcHJvb3Qga2V5IHBhdGggc3BlbmQgaW5wdXRzIGJlY2F1c2VcbiAgICAvLyB3ZSByZXF1aXJlIHRoZSBzZWNyZXQgbm9uY2UgaW4gdGhlIGNhY2hlIG9mIHRoZSBmaXJzdCBzaWduZXIsIHdoaWNoIGlzIGltcG9zc2libGUgdG8gcmV0cmlldmUgaWZcbiAgICAvLyBkZXNlcmlhbGl6ZWQgZnJvbSBhIGhleC5cbiAgICBpZiAocGFyYW1zLmlzTGFzdFNpZ25hdHVyZSAmJiBpc1R4V2l0aEtleVBhdGhTcGVuZElucHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBiZSBsYXN0IHNpZ25hdHVyZSBvbiBhIHRyYW5zYWN0aW9uIHdpdGgga2V5IHBhdGggc3BlbmQgaW5wdXRzJyk7XG4gICAgfVxuXG4gICAgLy8gaWYgYnVpbGQgaXMgY2FsbGVkIGluc3RlYWQgb2YgYnVpbGRJbmNvbXBsZXRlLCBubyBzaWduYXR1cmUgcGxhY2Vob2xkZXJzIGFyZSBsZWZ0IGluIHRoZSBzaWcgc2NyaXB0XG4gICAgaXNMYXN0U2lnbmF0dXJlID0gcGFyYW1zLmlzTGFzdFNpZ25hdHVyZTtcbiAgfVxuXG4gIGlmICh0eCBpbnN0YW5jZW9mIGJpdGdvLlV0eG9Qc2J0ICYmIGlzVHhXaXRoS2V5UGF0aFNwZW5kSW5wdXQpIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy5zaWduaW5nU3RlcCkge1xuICAgICAgY2FzZSAnc2lnbmVyTm9uY2UnOlxuICAgICAgICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgICAgICB0eC5zZXRBbGxJbnB1dHNNdXNpZzJOb25jZUhEKHNpZ25lcktleWNoYWluKTtcbiAgICAgICAgUFNCVF9DQUNIRS5zZXQodHguZ2V0VW5zaWduZWRUeCgpLmdldElkKCksIHR4KTtcbiAgICAgICAgcmV0dXJuIHsgdHhIZXg6IHR4LnRvSGV4KCkgfTtcbiAgICAgIGNhc2UgJ2Nvc2lnbmVyTm9uY2UnOlxuICAgICAgICBhc3NlcnQocGFyYW1zLndhbGxldElkLCAnd2FsbGV0SWQgaXMgcmVxdWlyZWQgZm9yIE11U2lnMiBiaXRnbyBub25jZScpO1xuICAgICAgICByZXR1cm4geyB0eEhleDogKGF3YWl0IGNvaW4uc2lnblBzYnQodHgudG9IZXgoKSwgcGFyYW1zLndhbGxldElkKSkucHNidCB9O1xuICAgICAgY2FzZSAnc2lnbmVyU2lnbmF0dXJlJzpcbiAgICAgICAgY29uc3QgdHhJZCA9IHR4LmdldFVuc2lnbmVkVHgoKS5nZXRJZCgpO1xuICAgICAgICBjb25zdCBwc2J0ID0gUFNCVF9DQUNIRS5nZXQodHhJZCk7XG4gICAgICAgIGFzc2VydChcbiAgICAgICAgICBwc2J0LFxuICAgICAgICAgIGBQc2J0IGlzIG1pc3NpbmcgZnJvbSB0eENhY2hlIChjYWNoZSBzaXplICR7UFNCVF9DQUNIRS5zaXplfSkuXG4gICAgICAgICAgICBUaGlzIG1heSBiZSBkdWUgdG8gdGhlIHJlcXVlc3QgYmVpbmcgcm91dGVkIHRvIGEgZGlmZmVyZW50IEJpdEdvLUV4cHJlc3MgaW5zdGFuY2UgdGhhdCBmb3Igc2lnbmluZyBzdGVwICdzaWduZXJOb25jZScuYFxuICAgICAgICApO1xuICAgICAgICBQU0JUX0NBQ0hFLmRlbGV0ZSh0eElkKTtcbiAgICAgICAgdHggPSBwc2J0LmNvbWJpbmUodHgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIHRoaXMgaW5zdGFuY2UgaXMgbm90IGFuIGV4dGVybmFsIHNpZ25lclxuICAgICAgICBhc3NlcnQocGFyYW1zLndhbGxldElkLCAnd2FsbGV0SWQgaXMgcmVxdWlyZWQgZm9yIE11U2lnMiBiaXRnbyBub25jZScpO1xuICAgICAgICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgICAgICB0eC5zZXRBbGxJbnB1dHNNdXNpZzJOb25jZUhEKHNpZ25lcktleWNoYWluKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb2luLnNpZ25Qc2J0KHR4LnRvSGV4KCksIHBhcmFtcy53YWxsZXRJZCk7XG4gICAgICAgIHR4LmNvbWJpbmUoYml0Z28uY3JlYXRlUHNidEZyb21IZXgocmVzcG9uc2UucHNidCwgY29pbi5uZXR3b3JrKSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy5zaWduaW5nU3RlcCkge1xuICAgICAgY2FzZSAnc2lnbmVyTm9uY2UnOlxuICAgICAgY2FzZSAnY29zaWduZXJOb25jZSc6XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbiBjZXJ0YWluIGNhc2VzLCB0aGUgY2FsbGVyIG9mIHRoaXMgbWV0aG9kIG1heSBub3Qga25vdyB3aGV0aGVyIHRoZSB0eEhleCBjb250YWlucyBhIHBzYnQgd2l0aCB0YXByb290IGtleSBwYXRoIHNwZW5kIGlucHV0KHMpLlxuICAgICAgICAgKiBJbnN0ZWFkIG9mIHRocm93aW5nIGVycm9yLCBuby1vcCBhbmQgcmV0dXJuIHRoZSB0eEhleC4gU28gdGhhdCB0aGUgY2FsbGVyIGNhbiBjYWxsIHRoaXMgbWV0aG9kIGluIHRoZSBzYW1lIHNlcXVlbmNlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHsgdHhIZXg6IHR4LnRvSGV4KCkgfTtcbiAgICB9XG4gIH1cblxuICBsZXQgc2lnbmVkVHJhbnNhY3Rpb246IGJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+IHwgYml0Z28uVXR4b1BzYnQ7XG4gIGlmICh0eCBpbnN0YW5jZW9mIGJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgYXNzZXJ0KHNpZ25lcktleWNoYWluKTtcbiAgICBzaWduZWRUcmFuc2FjdGlvbiA9IHNpZ25BbmRWZXJpZnlQc2J0KHR4LCBzaWduZXJLZXljaGFpbiwge1xuICAgICAgaXNMYXN0U2lnbmF0dXJlLFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGlmICh0eC5pbnMubGVuZ3RoICE9PSBwYXJhbXMudHhJbmZvPy51bnNwZW50cz8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xlbmd0aCBvZiB1bnNwZW50cyBhcnJheSBzaG91bGQgZXF1YWwgdG8gdGhlIG51bWJlciBvZiB0cmFuc2FjdGlvbiBpbnB1dHMnKTtcbiAgICB9XG5cbiAgICBpZiAoIXBhcmFtcy5wdWJzIHx8ICFpc1RyaXBsZShwYXJhbXMucHVicykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIHhwdWIgYXJyYXlgKTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSBwYXJhbXMucHVicy5tYXAoKHB1YikgPT4gYmlwMzIuZnJvbUJhc2U1OChwdWIpKSBhcyBUcmlwbGU8QklQMzJJbnRlcmZhY2U+O1xuICAgIGNvbnN0IGNvc2lnbmVyUHViID0gcGFyYW1zLmNvc2lnbmVyUHViID8/IHBhcmFtcy5wdWJzWzJdO1xuICAgIGNvbnN0IGNvc2lnbmVyS2V5Y2hhaW4gPSBiaXAzMi5mcm9tQmFzZTU4KGNvc2lnbmVyUHViKTtcblxuICAgIGFzc2VydChzaWduZXJLZXljaGFpbik7XG4gICAgY29uc3Qgd2FsbGV0U2lnbmVyID0gbmV3IGJpdGdvLldhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+KGtleWNoYWlucywgc2lnbmVyS2V5Y2hhaW4sIGNvc2lnbmVyS2V5Y2hhaW4pO1xuICAgIHNpZ25lZFRyYW5zYWN0aW9uID0gc2lnbkFuZFZlcmlmeVdhbGxldFRyYW5zYWN0aW9uKHR4LCBwYXJhbXMudHhJbmZvLnVuc3BlbnRzLCB3YWxsZXRTaWduZXIsIHtcbiAgICAgIGlzTGFzdFNpZ25hdHVyZSxcbiAgICB9KSBhcyBiaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PjtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHhIZXg6IHNpZ25lZFRyYW5zYWN0aW9uLnRvQnVmZmVyKCkudG9TdHJpbmcoJ2hleCcpLFxuICB9O1xufVxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBS3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBcUIsNkJBQTZCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFOUUsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQ25DLElBQXVCLEVBQ3ZCLEVBQXVDLEVBQ3ZDLGNBQTBDLEVBQzFDLE9BQXdCLEVBQ3hCLE1BU0M7SUFFRCxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDNUIsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3hDLHNHQUFzRztRQUN0RyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxFQUFFLFlBQVksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sNkJBQTZCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUU7WUFDN0QsZUFBZTtZQUNmLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8scUJBQXFCLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRTtRQUMvQyxlQUFlO1FBQ2YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQy9CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtRQUNyQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO0tBQ2hDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28vc2VjcDI1NmsxJztcbmltcG9ydCB7IGJpdGdvIH0gZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgRGVjb2RlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBzaWduTGVnYWN5VHJhbnNhY3Rpb24gfSBmcm9tICcuL3NpZ25MZWdhY3lUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBNdXNpZzJQYXJ0aWNpcGFudCwgc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnQgfSBmcm9tICcuL3NpZ25Qc2J0JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25UcmFuc2FjdGlvbihcbiAgY29pbjogTXVzaWcyUGFydGljaXBhbnQsXG4gIHR4OiBEZWNvZGVkVHJhbnNhY3Rpb248YmlnaW50IHwgbnVtYmVyPixcbiAgc2lnbmVyS2V5Y2hhaW46IEJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHBhcmFtczoge1xuICAgIHdhbGxldElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdHhJbmZvOiB7IHVuc3BlbnRzPzogdXR4b2xpYi5iaXRnby5VbnNwZW50PGJpZ2ludCB8IG51bWJlcj5bXSB9IHwgdW5kZWZpbmVkO1xuICAgIGlzTGFzdFNpZ25hdHVyZTogYm9vbGVhbjtcbiAgICBzaWduaW5nU3RlcDogJ3NpZ25lck5vbmNlJyB8ICdjb3NpZ25lck5vbmNlJyB8ICdzaWduZXJTaWduYXR1cmUnIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBkZXByZWNhdGVkICovXG4gICAgYWxsb3dOb25TZWd3aXRTaWduaW5nV2l0aG91dFByZXZUeDogYm9vbGVhbjtcbiAgICBwdWJzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICBjb3NpZ25lclB1Yjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG4pOiBQcm9taXNlPHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+PiB7XG4gIGxldCBpc0xhc3RTaWduYXR1cmUgPSBmYWxzZTtcbiAgaWYgKF8uaXNCb29sZWFuKHBhcmFtcy5pc0xhc3RTaWduYXR1cmUpKSB7XG4gICAgLy8gaWYgYnVpbGQgaXMgY2FsbGVkIGluc3RlYWQgb2YgYnVpbGRJbmNvbXBsZXRlLCBubyBzaWduYXR1cmUgcGxhY2Vob2xkZXJzIGFyZSBsZWZ0IGluIHRoZSBzaWcgc2NyaXB0XG4gICAgaXNMYXN0U2lnbmF0dXJlID0gcGFyYW1zLmlzTGFzdFNpZ25hdHVyZTtcbiAgfVxuXG4gIGlmICh0eCBpbnN0YW5jZW9mIGJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgcmV0dXJuIHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50KGNvaW4sIHR4LCBzaWduZXJLZXljaGFpbiwge1xuICAgICAgaXNMYXN0U2lnbmF0dXJlLFxuICAgICAgc2lnbmluZ1N0ZXA6IHBhcmFtcy5zaWduaW5nU3RlcCxcbiAgICAgIHdhbGxldElkOiBwYXJhbXMud2FsbGV0SWQsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc2lnbkxlZ2FjeVRyYW5zYWN0aW9uKHR4LCBzaWduZXJLZXljaGFpbiwge1xuICAgIGlzTGFzdFNpZ25hdHVyZSxcbiAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgIHR4SW5mbzogcGFyYW1zLnR4SW5mbyxcbiAgICBwdWJzOiBwYXJhbXMucHVicyxcbiAgICBjb3NpZ25lclB1YjogcGFyYW1zLmNvc2lnbmVyUHViLFxuICB9KTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/verifyTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAsBpF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACrE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,CAiJlB"}
1
+ {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/verifyTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAoC,MAAM,iBAAiB,CAAC;AAG9E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAsBpF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACrE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,CAmJlB"}
@@ -39,9 +39,10 @@ function getPayGoLimit(allowPaygoOutput) {
39
39
  */
40
40
  export async function verifyTransaction(coin, bitgo, params) {
41
41
  const { txParams, txPrebuild, wallet, verification = {}, reqId } = params;
42
+ const txExplanation = await TxIntentMismatchError.tryGetTxExplanation(coin, txPrebuild);
42
43
  // Helper to throw TxIntentMismatchError with consistent context
43
44
  const throwTxMismatch = (message) => {
44
- throw new TxIntentMismatchError(message, reqId, [txParams], txPrebuild.txHex);
45
+ throw new TxIntentMismatchError(message, reqId, [txParams], txPrebuild.txHex, txExplanation);
45
46
  };
46
47
  if (!_.isUndefined(verification.disableNetworking) && !_.isBoolean(verification.disableNetworking)) {
47
48
  throw new TypeError('verification.disableNetworking must be a boolean');
@@ -156,4 +157,4 @@ export async function verifyTransaction(coin, bitgo, params) {
156
157
  }
157
158
  return true;
158
159
  }
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvdmVyaWZ5VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUFhLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxLQUFLLE9BQU8sTUFBTSxpQkFBaUIsQ0FBQztBQUkzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRWxFOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxnQkFBMEI7SUFDL0MsaUdBQWlHO0lBQ2pHLHFEQUFxRDtJQUNyRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxrRkFBa0Y7SUFDbEYsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF5QztJQUV6QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENB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Q0FDL0IsQ0FBQyxHQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3hGLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FDVixDQUFDO0lBQ0YsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sR0FBRyxHQUFHLFdBQVcsR0FBRyxZQUFZLENBQUM7SUFFdkMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksS0FBSyxDQUNiLHVCQUF1QixZQUFZLDhDQUE4QyxXQUFXLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUNwSCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIFR4SW50ZW50TWlzbWF0Y2hFcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgT3V0cHV0LCBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHZlcmlmeUN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMsIHZlcmlmeUtleVNpZ25hdHVyZSwgdmVyaWZ5VXNlclB1YmxpY0tleSB9IGZyb20gJy4uLy4uL3ZlcmlmeUtleSc7XG5pbXBvcnQgeyBnZXRQc2J0VHhJbnB1dHMsIGdldFR4SW5wdXRzIH0gZnJvbSAnLi4vZmV0Y2hJbnB1dHMnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ2JpdGdvOmFic3RyYWN0LXV0eG86dmVyaWZ5VHJhbnNhY3Rpb24nKTtcblxuLyoqXG4gKiBHZXQgdGhlIG1heGltdW0gcGVyY2VudGFnZSBsaW1pdCBmb3IgcGF5LWFzLXlvdS1nbyBvdXRwdXRzXG4gKlxuICogQHByb3RlY3RlZFxuICovXG5mdW5jdGlvbiBnZXRQYXlHb0xpbWl0KGFsbG93UGF5Z29PdXRwdXQ/OiBib29sZWFuKTogbnVtYmVyIHtcbiAgLy8gYWxsb3dpbmcgcGF5Z28gb3V0cHV0cyBuZWVkcyB0byBiZSB0aGUgZGVmYXVsdCBiZWhhdmlvciwgc28gb25seSBkaXNhbGxvdyBwYXlnbyBvdXRwdXRzIGlmIHRoZVxuICAvLyByZWxldmFudCB2ZXJpZmljYXRpb24gb3B0aW9uIGlzIGJvdGggc2V0IGFuZCBmYWxzZVxuICBpZiAoIV8uaXNOaWwoYWxsb3dQYXlnb091dHB1dCkgJiYgIWFsbG93UGF5Z29PdXRwdXQpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICAvLyAxNTAgYmFzaXMgcG9pbnRzIGlzIHRoZSBhYnNvbHV0ZSBwZXJtaXR0ZWQgbWF4aW11bSBpZiBwYXlnbyBvdXRwdXRzIGFyZSBhbGxvd2VkXG4gIHJldHVybiAwLjAxNTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgdGhhdCBhIHRyYW5zYWN0aW9uIHByZWJ1aWxkIGNvbXBsaWVzIHdpdGggdGhlIG9yaWdpbmFsIGludGVudGlvbiBmb3IgZml4ZWQtc2NyaXB0IHdhbGxldHNcbiAqXG4gKiBUaGlzIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZvciB0cmFkaXRpb25hbCBVVFhPIGNvaW5zIHVzaW5nIGZpeGVkIHNjcmlwdHNcbiAqIChub24tZGVzY3JpcHRvciB3YWxsZXRzKS4gSXQgdmFsaWRhdGVzIGtleWNoYWlucywgc2lnbmF0dXJlcywgb3V0cHV0cywgYW5kIGFtb3VudHMuXG4gKlxuICogQHBhcmFtIGNvaW4gLSBUaGUgVVRYTyBjb2luIGluc3RhbmNlXG4gKiBAcGFyYW0gYml0Z28gLSBCaXRHbyBBUEkgaW5zdGFuY2UgZm9yIG5ldHdvcmsgY2FsbHNcbiAqIEBwYXJhbSBwYXJhbXMgLSBWZXJpZmljYXRpb24gcGFyYW1ldGVyc1xuICogQHBhcmFtIHBhcmFtcy50eFBhcmFtcyAtIFRyYW5zYWN0aW9uIHBhcmFtZXRlcnMgcGFzc2VkIHRvIHNlbmRcbiAqIEBwYXJhbSBwYXJhbXMudHhQcmVidWlsZCAtIFByZWJ1aWxkIG9iamVjdCByZXR1cm5lZCBieSBzZXJ2ZXJcbiAqIEBwYXJhbSBwYXJhbXMud2FsbGV0IC0gV2FsbGV0IG9iamVjdCB0byBvYnRhaW4ga2V5cyB0byB2ZXJpZnkgYWdhaW5zdFxuICogQHBhcmFtIHBhcmFtcy52ZXJpZmljYXRpb24gLSBWZXJpZmljYXRpb24gb3B0aW9ucyAoZGlzYWJsZU5ldHdvcmtpbmcsIGtleWNoYWlucywgYWRkcmVzc2VzKVxuICogQHBhcmFtIHBhcmFtcy5yZXFJZCAtIE9wdGlvbmFsIHJlcXVlc3QgSUQgZm9yIGxvZ2dpbmdcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZlcmlmaWNhdGlvbiBwYXNzZXNcbiAqIEB0aHJvd3Mge1R4SW50ZW50TWlzbWF0Y2hFcnJvcn0gaWYgdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5VHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIGJpZ2ludCB8IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgeyB0eFBhcmFtcywgdHhQcmVidWlsZCwgd2FsbGV0LCB2ZXJpZmljYXRpb24gPSB7fSwgcmVxSWQgfSA9IHBhcmFtcztcblxuICAvLyBIZWxwZXIgdG8gdGhyb3cgVHhJbnRlbnRNaXNtYXRjaEVycm9yIHdpdGggY29uc2lzdGVudCBjb250ZXh0XG4gIGNvbnN0IHRocm93VHhNaXNtYXRjaCA9IChtZXNzYWdlOiBzdHJpbmcpOiBuZXZlciA9PiB7XG4gICAgdGhyb3cgbmV3IFR4SW50ZW50TWlzbWF0Y2hFcnJvcihtZXNzYWdlLCByZXFJZCwgW3R4UGFyYW1zXSwgdHhQcmVidWlsZC50eEhleCk7XG4gIH07XG5cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKHZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZykgJiYgIV8uaXNCb29sZWFuKHZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcgbXVzdCBiZSBhIGJvb2xlYW4nKTtcbiAgfVxuICBjb25zdCBpc1BzYnQgPSB0eFByZWJ1aWxkLnR4SGV4ICYmIHV0eG9saWIuYml0Z28uaXNQc2J0KHR4UHJlYnVpbGQudHhIZXgpO1xuICBpZiAoaXNQc2J0ICYmIHR4UHJlYnVpbGQudHhJbmZvPy51bnNwZW50cykge1xuICAgIHRocm93IG5ldyBFcnJvcignc2hvdWxkIG5vdCBoYXZlIHVuc3BlbnRzIGluIHR4SW5mbyBmb3IgcHNidCcpO1xuICB9XG4gIGNvbnN0IGRpc2FibGVOZXR3b3JraW5nID0gISF2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmc7XG4gIGNvbnN0IHBhcnNlZFRyYW5zYWN0aW9uOiBQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyPiA9IGF3YWl0IGNvaW4ucGFyc2VUcmFuc2FjdGlvbjxUTnVtYmVyPih7XG4gICAgdHhQYXJhbXMsXG4gICAgdHhQcmVidWlsZCxcbiAgICB3YWxsZXQsXG4gICAgdmVyaWZpY2F0aW9uLFxuICAgIHJlcUlkLFxuICB9KTtcblxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJzZWRUcmFuc2FjdGlvbi5rZXljaGFpbnM7XG5cbiAgLy8gdmVyaWZ5IHRoYXQgdGhlIGNsYWltZWQgdXNlciBwdWJsaWMga2V5IGNvcnJlc3BvbmRzIHRvIHRoZSB3YWxsZXQncyB1c2VyIHByaXZhdGUga2V5XG4gIGxldCB1c2VyUHVibGljS2V5VmVyaWZpZWQgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICAvLyB2ZXJpZnkgdGhlIHVzZXIgcHVibGljIGtleSBtYXRjaGVzIHRoZSBwcml2YXRlIGtleSAtIHRoaXMgd2lsbCB0aHJvdyBpZiB0aGVyZSBpcyBubyBtYXRjaFxuICAgIHVzZXJQdWJsaWNLZXlWZXJpZmllZCA9IHZlcmlmeVVzZXJQdWJsaWNLZXkoYml0Z28sIHsgdXNlcktleWNoYWluOiBrZXljaGFpbnMudXNlciwgZGlzYWJsZU5ldHdvcmtpbmcsIHR4UGFyYW1zIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZGVidWcoJ2ZhaWxlZCB0byB2ZXJpZnkgdXNlciBwdWJsaWMga2V5IScsIGUpO1xuICB9XG5cbiAgLy8gbGV0J3MgdmVyaWZ5IHRoZXNlIGtleWNoYWluc1xuICBjb25zdCBrZXlTaWduYXR1cmVzID0gcGFyc2VkVHJhbnNhY3Rpb24ua2V5U2lnbmF0dXJlcztcbiAgaWYgKCFfLmlzRW1wdHkoa2V5U2lnbmF0dXJlcykpIHtcbiAgICBjb25zdCB2ZXJpZnkgPSAoa2V5LCBwdWIpID0+IHtcbiAgICAgIGlmICgha2V5Y2hhaW5zLnVzZXIgfHwgIWtleWNoYWlucy51c2VyLnB1Yikge1xuICAgICAgICB0aHJvd1R4TWlzbWF0Y2goJ21pc3NpbmcgdXNlciBrZXljaGFpbicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZlcmlmeUtleVNpZ25hdHVyZSh7XG4gICAgICAgIHVzZXJLZXljaGFpbjoga2V5Y2hhaW5zLnVzZXIgYXMgeyBwdWI6IHN0cmluZyB9LFxuICAgICAgICBrZXljaGFpblRvVmVyaWZ5OiBrZXksXG4gICAgICAgIGtleVNpZ25hdHVyZTogcHViLFxuICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBpc0JhY2t1cEtleVNpZ25hdHVyZVZhbGlkID0gdmVyaWZ5KGtleWNoYWlucy5iYWNrdXAsIGtleVNpZ25hdHVyZXMuYmFja3VwUHViKTtcbiAgICBjb25zdCBpc0JpdGdvS2V5U2lnbmF0dXJlVmFsaWQgPSB2ZXJpZnkoa2V5Y2hhaW5zLmJpdGdvLCBrZXlTaWduYXR1cmVzLmJpdGdvUHViKTtcbiAgICBpZiAoIWlzQmFja3VwS2V5U2lnbmF0dXJlVmFsaWQgfHwgIWlzQml0Z29LZXlTaWduYXR1cmVWYWxpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzZWNvbmRhcnkgcHVibGljIGtleSBzaWduYXR1cmVzIGludmFsaWQnKTtcbiAgICB9XG4gICAgZGVidWcoJ3N1Y2Nlc3NmdWxseSB2ZXJpZmllZCBiYWNrdXAgYW5kIGJpdGdvIGtleSBzaWduYXR1cmVzJyk7XG4gIH0gZWxzZSBpZiAoIWRpc2FibGVOZXR3b3JraW5nKSB7XG4gICAgLy8gdGhlc2Uga2V5cyB3ZXJlIG9idGFpbmVkIG9ubGluZSBhbmQgdGhlaXIgc2lnbmF0dXJlcyB3ZXJlIG5vdCB2ZXJpZmllZFxuICAgIC8vIHRoaXMgY291bGQgYmUgZGFuZ2Vyb3VzXG4gICAgY29uc29sZS5sb2coJ3Vuc2lnbmVkIGtleXMgb2J0YWluZWQgb25saW5lIGFyZSBiZWluZyB1c2VkIGZvciBhZGRyZXNzIHZlcmlmaWNhdGlvbicpO1xuICB9XG5cbiAgaWYgKHBhcnNlZFRyYW5zYWN0aW9uLm5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uKSB7XG4gICAgaWYgKCFrZXljaGFpbnMudXNlciB8fCAhdXNlclB1YmxpY0tleVZlcmlmaWVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uIHJlcXVpcmVzIHZlcmlmaWNhdGlvbiBvZiB1c2VyIHB1YmxpYyBrZXksIGJ1dCBpdCB3YXMgdW5hYmxlIHRvIGJlIHZlcmlmaWVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXNWZXJpZmllZCA9IHZlcmlmeUN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMocGFyc2VkVHJhbnNhY3Rpb24sIGtleWNoYWlucy51c2VyKTtcbiAgICBpZiAoIWN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXNWZXJpZmllZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAndHJhbnNhY3Rpb24gcmVxdWlyZXMgdmVyaWZpY2F0aW9uIG9mIGN1c3RvbSBjaGFuZ2Uga2V5IHNpZ25hdHVyZXMsIGJ1dCB0aGV5IHdlcmUgdW5hYmxlIHRvIGJlIHZlcmlmaWVkJ1xuICAgICAgKTtcbiAgICB9XG4gICAgZGVidWcoJ3N1Y2Nlc3NmdWxseSB2ZXJpZmllZCB1c2VyIHB1YmxpYyBrZXkgYW5kIGN1c3RvbSBjaGFuZ2Uga2V5IHNpZ25hdHVyZXMnKTtcbiAgfVxuXG4gIGNvbnN0IG1pc3NpbmdPdXRwdXRzID0gcGFyc2VkVHJhbnNhY3Rpb24ubWlzc2luZ091dHB1dHM7XG4gIGlmIChtaXNzaW5nT3V0cHV0cy5sZW5ndGggIT09IDApIHtcbiAgICAvLyB0aGVyZSBhcmUgc29tZSBvdXRwdXRzIGluIHRoZSByZWNpcGllbnRzIGxpc3QgdGhhdCBoYXZlIG5vdCBtYWRlIGl0IGludG8gdGhlIGFjdHVhbCB0cmFuc2FjdGlvblxuICAgIHRocm93VHhNaXNtYXRjaCgnZXhwZWN0ZWQgb3V0cHV0cyBtaXNzaW5nIGluIHRyYW5zYWN0aW9uIHByZWJ1aWxkJyk7XG4gIH1cblxuICBjb25zdCBpbnRlbmRlZEV4dGVybmFsU3BlbmQgPSBwYXJzZWRUcmFuc2FjdGlvbi5leHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ7XG5cbiAgLy8gdGhpcyBpcyBhIGxpbWl0IHdlIGltcG9zZSBmb3IgdGhlIHRvdGFsIHZhbHVlIHRoYXQgaXMgYW1lbmRlZCB0byB0aGUgdHJhbnNhY3Rpb24gYmV5b25kIHdoYXQgd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWRcbiAgY29uc3QgcGF5QXNZb3VHb0xpbWl0ID0gbmV3IEJpZ051bWJlcihnZXRQYXlHb0xpbWl0KHZlcmlmaWNhdGlvbi5hbGxvd1BheWdvT3V0cHV0KSkubXVsdGlwbGllZEJ5KFxuICAgIGludGVuZGVkRXh0ZXJuYWxTcGVuZC50b1N0cmluZygpXG4gICk7XG5cbiAgLypcbiAgU29tZSBleHBsYW5hdGlvbiBmb3Igd2h5IHdlJ3JlIGRvaW5nIHdoYXQgd2UncmUgZG9pbmc6XG4gIFNvbWUgY3VzdG9tZXJzIHdpbGwgaGF2ZSBhbiBvdXRwdXQgdG8gQml0R28ncyBQQVlHbyB3YWxsZXQgYWRkZWQgdG8gdGhlaXIgdHJhbnNhY3Rpb24sIGFuZCB3ZSBuZWVkIHRvIGFjY291bnQgZm9yXG4gIGl0IGhlcmUuIFRvIHByb3RlY3Qgc29tZW9uZSB0YW1wZXJpbmcgd2l0aCB0aGUgb3V0cHV0IHRvIG1ha2UgaXQgc2VuZCBtb3JlIHRoYW4gaXQgc2hvdWxkIHRvIEJpdEdvLCB3ZSBkZWZpbmUgYVxuICB0aHJlc2hvbGQgZm9yIHRoZSBvdXRwdXQncyB2YWx1ZSBhYm92ZSB3aGljaCB3ZSdsbCB0aHJvdyBhbiBlcnJvciwgYmVjYXVzZSB0aGUgcGF5Z28gb3V0cHV0IHNob3VsZCBuZXZlciBiZSB0aGF0XG4gIGhpZ2guXG4gICAqL1xuXG4gIC8vIG1ha2Ugc3VyZSB0aGF0IGFsbCB0aGUgZXh0cmEgYWRkcmVzc2VzIGFyZSBjaGFuZ2UgYWRkcmVzc2VzXG4gIC8vIGdldCBhbGwgdGhlIGFkZGl0aW9uYWwgZXh0ZXJuYWwgb3V0cHV0cyB0aGUgc2VydmVyIGFkZGVkIGFuZCBjYWxjdWxhdGUgdGhlaXIgdmFsdWVzXG4gIGNvbnN0IG5vbkNoYW5nZUFtb3VudCA9IG5ldyBCaWdOdW1iZXIocGFyc2VkVHJhbnNhY3Rpb24uaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50LnRvU3RyaW5nKCkpO1xuXG4gIGRlYnVnKFxuICAgICdJbnRlbmRlZCBzcGVuZCBpcyAlcywgTm9uLWNoYW5nZSBhbW91bnQgaXMgJXMsIHBheWdvIGxpbWl0IGlzICVzJyxcbiAgICBpbnRlbmRlZEV4dGVybmFsU3BlbmQudG9TdHJpbmcoKSxcbiAgICBub25DaGFuZ2VBbW91bnQudG9TdHJpbmcoKSxcbiAgICBwYXlBc1lvdUdvTGltaXQudG9TdHJpbmcoKVxuICApO1xuXG4gIC8vIFRoZXJlIGFyZSB0d28gaW5zdGFuY2VzIHdoZXJlIHdlIHdpbGwgZ2V0IGludG8gdGhpcyBwb2ludCBoZXJlXG4gIGlmIChub25DaGFuZ2VBbW91bnQuZ3QocGF5QXNZb3VHb0xpbWl0KSkge1xuICAgIGlmIChpc1BzYnQgJiYgcGFyc2VkVHJhbnNhY3Rpb24uY3VzdG9tQ2hhbmdlKSB7XG4gICAgICAvLyBJbiB0aGUgY2FzZSB0aGF0IHdlIGhhdmUgYSBjdXN0b20gY2hhbmdlIGFkZHJlc3Mgb24gYSB3YWxsZXQgYW5kIHdlIGFyZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgICAgIC8vIHdpdGggYSBQU0JULCB3ZSBkbyBub3QgaGF2ZSB0aGUgbWV0YWRhdGEgdG8gdmVyaWZ5IHRoZSBhZGRyZXNzIGZyb20gdGhlIGN1c3RvbSBjaGFuZ2Ugd2FsbGV0LCBub3JcbiAgICAgIC8vIGNhbiB3ZSBmZXRjaCB0aGF0IGluZm9ybWF0aW9uIGZyb20gdGhlIG90aGVyIHdhbGxldCBiZWNhdXNlIHdlIG1heSBub3QgaGF2ZSB0aGUgY3JlZGVudGlhbHMuIFRoZXJlZm9yZSxcbiAgICAgIC8vIHdlIHdpbGwgbm90IHRocm93IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSB3aWxsIGxvZyBhIHdhcm5pbmcuXG4gICAgICBkZWJ1ZyhgY2Fubm90IHZlcmlmeSBzb21lIG9mIHRoZSBhZGRyZXNzZXMgYmVjYXVzZSBpdCBiZWxvbmdzIHRvIGEgc2VwYXJhdGUgd2FsbGV0YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoZSBhZGRpdGlvbmFsIGV4dGVybmFsIG91dHB1dHMgY2FuIG9ubHkgYmUgQml0R28ncyBwYXktYXMteW91LWdvIGZlZSwgYnV0IHdlIGNhbm5vdCB2ZXJpZnkgdGhlIHdhbGxldCBhZGRyZXNzXG4gICAgICAvLyB0aGVyZSBhcmUgc29tZSBhZGRyZXNzZXMgdGhhdCBhcmUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgaW50ZW5kZWQgcmVjaXBpZW50cyB0aGF0IGFyZSBub3QgY2hhbmdlIGFkZHJlc3Nlc1xuICAgICAgdGhyb3dUeE1pc21hdGNoKCdwcmVidWlsZCBhdHRlbXB0cyB0byBzcGVuZCB0byB1bmludGVuZGVkIGV4dGVybmFsIHJlY2lwaWVudHMnKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBhbGxPdXRwdXRzID0gcGFyc2VkVHJhbnNhY3Rpb24ub3V0cHV0cztcbiAgaWYgKCF0eFByZWJ1aWxkLnR4SGV4KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB0eFByZWJ1aWxkLnR4SGV4IG5vdCBzZXRgKTtcbiAgfVxuICBjb25zdCBpbnB1dHMgPSBpc1BzYnRcbiAgICA/IGdldFBzYnRUeElucHV0cyh0eFByZWJ1aWxkLnR4SGV4LCBjb2luLm5ldHdvcmspLm1hcCgodikgPT4gKHtcbiAgICAgICAgLi4udixcbiAgICAgICAgdmFsdWU6IHV0eG9saWIuYml0Z28udG9UTnVtYmVyKHYudmFsdWUsIGNvaW4uYW1vdW50VHlwZSksXG4gICAgICB9KSlcbiAgICA6IGF3YWl0IGdldFR4SW5wdXRzKHsgdHhQcmVidWlsZCwgYml0Z28sIGNvaW4sIGRpc2FibGVOZXR3b3JraW5nLCByZXFJZCB9KTtcbiAgLy8gY29pbnMgKGRvZ2UpIHRoYXQgY2FuIGV4Y2VlZCBudW1iZXIgbGltaXRzIChhbmQgdGh1cyB3aWxsIHVzZSBiaWdpbnQpIHdpbGwgaGF2ZSB0aGUgYHZhbHVlU3RyaW5nYCBmaWVsZFxuICBjb25zdCBpbnB1dEFtb3VudCA9IGlucHV0cy5yZWR1Y2UoXG4gICAgKHN1bTogYmlnaW50LCBpKSA9PiBzdW0gKyBCaWdJbnQoY29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IGkudmFsdWVTdHJpbmcgOiBpLnZhbHVlKSxcbiAgICBCaWdJbnQoMClcbiAgKTtcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gYWxsT3V0cHV0cy5yZWR1Y2UoKHN1bTogYmlnaW50LCBvOiBPdXRwdXQpID0+IHN1bSArIEJpZ0ludChvLmFtb3VudCksIEJpZ0ludCgwKSk7XG4gIGNvbnN0IGZlZSA9IGlucHV0QW1vdW50IC0gb3V0cHV0QW1vdW50O1xuXG4gIGlmIChmZWUgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYGF0dGVtcHRpbmcgdG8gc3BlbmQgJHtvdXRwdXRBbW91bnR9IHNhdG9zaGlzLCB3aGljaCBleGNlZWRzIHRoZSBpbnB1dCBhbW91bnQgKCR7aW5wdXRBbW91bnR9IHNhdG9zaGlzKSBieSAkey1mZWV9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvdmVyaWZ5VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUFhLHFCQUFxQixFQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDOUUsT0FBTyxLQUFLLE9BQU8sTUFBTSxpQkFBaUIsQ0FBQztBQUkzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRWxFOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxnQkFBMEI7SUFDL0MsaUdBQWlHO0lBQ2pHLHFEQUFxRDtJQUNyRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxrRkFBa0Y7SUFDbEYsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF5QztJQUV6QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENB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RUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLDBHQUEwRztJQUMxRyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUMvQixDQUFDLEdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDeEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNWLENBQUM7SUFDRixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEcsTUFBTSxHQUFHLEdBQUcsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUV2QyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IsdUJBQXVCLFlBQVksOENBQThDLFdBQVcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQ3BILENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJpdEdvQmFzZSwgVHhJbnRlbnRNaXNtYXRjaEVycm9yLCBJQmFzZUNvaW4gfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IE91dHB1dCwgUGFyc2VkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyB2ZXJpZnlDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzLCB2ZXJpZnlLZXlTaWduYXR1cmUsIHZlcmlmeVVzZXJQdWJsaWNLZXkgfSBmcm9tICcuLi8uLi92ZXJpZnlLZXknO1xuaW1wb3J0IHsgZ2V0UHNidFR4SW5wdXRzLCBnZXRUeElucHV0cyB9IGZyb20gJy4uL2ZldGNoSW5wdXRzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCdiaXRnbzphYnN0cmFjdC11dHhvOnZlcmlmeVRyYW5zYWN0aW9uJyk7XG5cbi8qKlxuICogR2V0IHRoZSBtYXhpbXVtIHBlcmNlbnRhZ2UgbGltaXQgZm9yIHBheS1hcy15b3UtZ28gb3V0cHV0c1xuICpcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuZnVuY3Rpb24gZ2V0UGF5R29MaW1pdChhbGxvd1BheWdvT3V0cHV0PzogYm9vbGVhbik6IG51bWJlciB7XG4gIC8vIGFsbG93aW5nIHBheWdvIG91dHB1dHMgbmVlZHMgdG8gYmUgdGhlIGRlZmF1bHQgYmVoYXZpb3IsIHNvIG9ubHkgZGlzYWxsb3cgcGF5Z28gb3V0cHV0cyBpZiB0aGVcbiAgLy8gcmVsZXZhbnQgdmVyaWZpY2F0aW9uIG9wdGlvbiBpcyBib3RoIHNldCBhbmQgZmFsc2VcbiAgaWYgKCFfLmlzTmlsKGFsbG93UGF5Z29PdXRwdXQpICYmICFhbGxvd1BheWdvT3V0cHV0KSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgLy8gMTUwIGJhc2lzIHBvaW50cyBpcyB0aGUgYWJzb2x1dGUgcGVybWl0dGVkIG1heGltdW0gaWYgcGF5Z28gb3V0cHV0cyBhcmUgYWxsb3dlZFxuICByZXR1cm4gMC4wMTU7XG59XG5cbi8qKlxuICogVmVyaWZ5IHRoYXQgYSB0cmFuc2FjdGlvbiBwcmVidWlsZCBjb21wbGllcyB3aXRoIHRoZSBvcmlnaW5hbCBpbnRlbnRpb24gZm9yIGZpeGVkLXNjcmlwdCB3YWxsZXRzXG4gKlxuICogVGhpcyBpbXBsZW1lbnRhdGlvbiBoYW5kbGVzIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmb3IgdHJhZGl0aW9uYWwgVVRYTyBjb2lucyB1c2luZyBmaXhlZCBzY3JpcHRzXG4gKiAobm9uLWRlc2NyaXB0b3Igd2FsbGV0cykuIEl0IHZhbGlkYXRlcyBrZXljaGFpbnMsIHNpZ25hdHVyZXMsIG91dHB1dHMsIGFuZCBhbW91bnRzLlxuICpcbiAqIEBwYXJhbSBjb2luIC0gVGhlIFVUWE8gY29pbiBpbnN0YW5jZVxuICogQHBhcmFtIGJpdGdvIC0gQml0R28gQVBJIGluc3RhbmNlIGZvciBuZXR3b3JrIGNhbGxzXG4gKiBAcGFyYW0gcGFyYW1zIC0gVmVyaWZpY2F0aW9uIHBhcmFtZXRlcnNcbiAqIEBwYXJhbSBwYXJhbXMudHhQYXJhbXMgLSBUcmFuc2FjdGlvbiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBzZW5kXG4gKiBAcGFyYW0gcGFyYW1zLnR4UHJlYnVpbGQgLSBQcmVidWlsZCBvYmplY3QgcmV0dXJuZWQgYnkgc2VydmVyXG4gKiBAcGFyYW0gcGFyYW1zLndhbGxldCAtIFdhbGxldCBvYmplY3QgdG8gb2J0YWluIGtleXMgdG8gdmVyaWZ5IGFnYWluc3RcbiAqIEBwYXJhbSBwYXJhbXMudmVyaWZpY2F0aW9uIC0gVmVyaWZpY2F0aW9uIG9wdGlvbnMgKGRpc2FibGVOZXR3b3JraW5nLCBrZXljaGFpbnMsIGFkZHJlc3NlcylcbiAqIEBwYXJhbSBwYXJhbXMucmVxSWQgLSBPcHRpb25hbCByZXF1ZXN0IElEIGZvciBsb2dnaW5nXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2ZXJpZmljYXRpb24gcGFzc2VzXG4gKiBAdGhyb3dzIHtUeEludGVudE1pc21hdGNoRXJyb3J9IGlmIHRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBiaWdpbnQgfCBudW1iZXI+KFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICBiaXRnbzogQml0R29CYXNlLFxuICBwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHsgdHhQYXJhbXMsIHR4UHJlYnVpbGQsIHdhbGxldCwgdmVyaWZpY2F0aW9uID0ge30sIHJlcUlkIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgdHhFeHBsYW5hdGlvbiA9IGF3YWl0IFR4SW50ZW50TWlzbWF0Y2hFcnJvci50cnlHZXRUeEV4cGxhbmF0aW9uKGNvaW4gYXMgdW5rbm93biBhcyBJQmFzZUNvaW4sIHR4UHJlYnVpbGQpO1xuXG4gIC8vIEhlbHBlciB0byB0aHJvdyBUeEludGVudE1pc21hdGNoRXJyb3Igd2l0aCBjb25zaXN0ZW50IGNvbnRleHRcbiAgY29uc3QgdGhyb3dUeE1pc21hdGNoID0gKG1lc3NhZ2U6IHN0cmluZyk6IG5ldmVyID0+IHtcbiAgICB0aHJvdyBuZXcgVHhJbnRlbnRNaXNtYXRjaEVycm9yKG1lc3NhZ2UsIHJlcUlkLCBbdHhQYXJhbXNdLCB0eFByZWJ1aWxkLnR4SGV4LCB0eEV4cGxhbmF0aW9uKTtcbiAgfTtcblxuICBpZiAoIV8uaXNVbmRlZmluZWQodmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nKSAmJiAhXy5pc0Jvb2xlYW4odmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZyBtdXN0IGJlIGEgYm9vbGVhbicpO1xuICB9XG4gIGNvbnN0IGlzUHNidCA9IHR4UHJlYnVpbGQudHhIZXggJiYgdXR4b2xpYi5iaXRnby5pc1BzYnQodHhQcmVidWlsZC50eEhleCk7XG4gIGlmIChpc1BzYnQgJiYgdHhQcmVidWlsZC50eEluZm8/LnVuc3BlbnRzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzaG91bGQgbm90IGhhdmUgdW5zcGVudHMgaW4gdHhJbmZvIGZvciBwc2J0Jyk7XG4gIH1cbiAgY29uc3QgZGlzYWJsZU5ldHdvcmtpbmcgPSAhIXZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZztcbiAgY29uc3QgcGFyc2VkVHJhbnNhY3Rpb246IFBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXI+ID0gYXdhaXQgY29pbi5wYXJzZVRyYW5zYWN0aW9uPFROdW1iZXI+KHtcbiAgICB0eFBhcmFtcyxcbiAgICB0eFByZWJ1aWxkLFxuICAgIHdhbGxldCxcbiAgICB2ZXJpZmljYXRpb24sXG4gICAgcmVxSWQsXG4gIH0pO1xuXG4gIGNvbnN0IGtleWNoYWlucyA9IHBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucztcblxuICAvLyB2ZXJpZnkgdGhhdCB0aGUgY2xhaW1lZCB1c2VyIHB1YmxpYyBrZXkgY29ycmVzcG9uZHMgdG8gdGhlIHdhbGxldCdzIHVzZXIgcHJpdmF0ZSBrZXlcbiAgbGV0IHVzZXJQdWJsaWNLZXlWZXJpZmllZCA9IGZhbHNlO1xuICB0cnkge1xuICAgIC8vIHZlcmlmeSB0aGUgdXNlciBwdWJsaWMga2V5IG1hdGNoZXMgdGhlIHByaXZhdGUga2V5IC0gdGhpcyB3aWxsIHRocm93IGlmIHRoZXJlIGlzIG5vIG1hdGNoXG4gICAgdXNlclB1YmxpY0tleVZlcmlmaWVkID0gdmVyaWZ5VXNlclB1YmxpY0tleShiaXRnbywgeyB1c2VyS2V5Y2hhaW46IGtleWNoYWlucy51c2VyLCBkaXNhYmxlTmV0d29ya2luZywgdHhQYXJhbXMgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkZWJ1ZygnZmFpbGVkIHRvIHZlcmlmeSB1c2VyIHB1YmxpYyBrZXkhJywgZSk7XG4gIH1cblxuICAvLyBsZXQncyB2ZXJpZnkgdGhlc2Uga2V5Y2hhaW5zXG4gIGNvbnN0IGtleVNpZ25hdHVyZXMgPSBwYXJzZWRUcmFuc2FjdGlvbi5rZXlTaWduYXR1cmVzO1xuICBpZiAoIV8uaXNFbXB0eShrZXlTaWduYXR1cmVzKSkge1xuICAgIGNvbnN0IHZlcmlmeSA9IChrZXksIHB1YikgPT4ge1xuICAgICAgaWYgKCFrZXljaGFpbnMudXNlciB8fCAha2V5Y2hhaW5zLnVzZXIucHViKSB7XG4gICAgICAgIHRocm93VHhNaXNtYXRjaCgnbWlzc2luZyB1c2VyIGtleWNoYWluJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmVyaWZ5S2V5U2lnbmF0dXJlKHtcbiAgICAgICAgdXNlcktleWNoYWluOiBrZXljaGFpbnMudXNlciBhcyB7IHB1Yjogc3RyaW5nIH0sXG4gICAgICAgIGtleWNoYWluVG9WZXJpZnk6IGtleSxcbiAgICAgICAga2V5U2lnbmF0dXJlOiBwdWIsXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGlzQmFja3VwS2V5U2lnbmF0dXJlVmFsaWQgPSB2ZXJpZnkoa2V5Y2hhaW5zLmJhY2t1cCwga2V5U2lnbmF0dXJlcy5iYWNrdXBQdWIpO1xuICAgIGNvbnN0IGlzQml0Z29LZXlTaWduYXR1cmVWYWxpZCA9IHZlcmlmeShrZXljaGFpbnMuYml0Z28sIGtleVNpZ25hdHVyZXMuYml0Z29QdWIpO1xuICAgIGlmICghaXNCYWNrdXBLZXlTaWduYXR1cmVWYWxpZCB8fCAhaXNCaXRnb0tleVNpZ25hdHVyZVZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlY29uZGFyeSBwdWJsaWMga2V5IHNpZ25hdHVyZXMgaW52YWxpZCcpO1xuICAgIH1cbiAgICBkZWJ1Zygnc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkIGJhY2t1cCBhbmQgYml0Z28ga2V5IHNpZ25hdHVyZXMnKTtcbiAgfSBlbHNlIGlmICghZGlzYWJsZU5ldHdvcmtpbmcpIHtcbiAgICAvLyB0aGVzZSBrZXlzIHdlcmUgb2J0YWluZWQgb25saW5lIGFuZCB0aGVpciBzaWduYXR1cmVzIHdlcmUgbm90IHZlcmlmaWVkXG4gICAgLy8gdGhpcyBjb3VsZCBiZSBkYW5nZXJvdXNcbiAgICBjb25zb2xlLmxvZygndW5zaWduZWQga2V5cyBvYnRhaW5lZCBvbmxpbmUgYXJlIGJlaW5nIHVzZWQgZm9yIGFkZHJlc3MgdmVyaWZpY2F0aW9uJyk7XG4gIH1cblxuICBpZiAocGFyc2VkVHJhbnNhY3Rpb24ubmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24pIHtcbiAgICBpZiAoIWtleWNoYWlucy51c2VyIHx8ICF1c2VyUHVibGljS2V5VmVyaWZpZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHJhbnNhY3Rpb24gcmVxdWlyZXMgdmVyaWZpY2F0aW9uIG9mIHVzZXIgcHVibGljIGtleSwgYnV0IGl0IHdhcyB1bmFibGUgdG8gYmUgdmVyaWZpZWQnKTtcbiAgICB9XG4gICAgY29uc3QgY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlc1ZlcmlmaWVkID0gdmVyaWZ5Q3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcyhwYXJzZWRUcmFuc2FjdGlvbiwga2V5Y2hhaW5zLnVzZXIpO1xuICAgIGlmICghY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlc1ZlcmlmaWVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICd0cmFuc2FjdGlvbiByZXF1aXJlcyB2ZXJpZmljYXRpb24gb2YgY3VzdG9tIGNoYW5nZSBrZXkgc2lnbmF0dXJlcywgYnV0IHRoZXkgd2VyZSB1bmFibGUgdG8gYmUgdmVyaWZpZWQnXG4gICAgICApO1xuICAgIH1cbiAgICBkZWJ1Zygnc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkIHVzZXIgcHVibGljIGtleSBhbmQgY3VzdG9tIGNoYW5nZSBrZXkgc2lnbmF0dXJlcycpO1xuICB9XG5cbiAgY29uc3QgbWlzc2luZ091dHB1dHMgPSBwYXJzZWRUcmFuc2FjdGlvbi5taXNzaW5nT3V0cHV0cztcbiAgaWYgKG1pc3NpbmdPdXRwdXRzLmxlbmd0aCAhPT0gMCkge1xuICAgIC8vIHRoZXJlIGFyZSBzb21lIG91dHB1dHMgaW4gdGhlIHJlY2lwaWVudHMgbGlzdCB0aGF0IGhhdmUgbm90IG1hZGUgaXQgaW50byB0aGUgYWN0dWFsIHRyYW5zYWN0aW9uXG4gICAgdGhyb3dUeE1pc21hdGNoKCdleHBlY3RlZCBvdXRwdXRzIG1pc3NpbmcgaW4gdHJhbnNhY3Rpb24gcHJlYnVpbGQnKTtcbiAgfVxuXG4gIGNvbnN0IGludGVuZGVkRXh0ZXJuYWxTcGVuZCA9IHBhcnNlZFRyYW5zYWN0aW9uLmV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDtcblxuICAvLyB0aGlzIGlzIGEgbGltaXQgd2UgaW1wb3NlIGZvciB0aGUgdG90YWwgdmFsdWUgdGhhdCBpcyBhbWVuZGVkIHRvIHRoZSB0cmFuc2FjdGlvbiBiZXlvbmQgd2hhdCB3YXMgb3JpZ2luYWxseSBpbnRlbmRlZFxuICBjb25zdCBwYXlBc1lvdUdvTGltaXQgPSBuZXcgQmlnTnVtYmVyKGdldFBheUdvTGltaXQodmVyaWZpY2F0aW9uLmFsbG93UGF5Z29PdXRwdXQpKS5tdWx0aXBsaWVkQnkoXG4gICAgaW50ZW5kZWRFeHRlcm5hbFNwZW5kLnRvU3RyaW5nKClcbiAgKTtcblxuICAvKlxuICBTb21lIGV4cGxhbmF0aW9uIGZvciB3aHkgd2UncmUgZG9pbmcgd2hhdCB3ZSdyZSBkb2luZzpcbiAgU29tZSBjdXN0b21lcnMgd2lsbCBoYXZlIGFuIG91dHB1dCB0byBCaXRHbydzIFBBWUdvIHdhbGxldCBhZGRlZCB0byB0aGVpciB0cmFuc2FjdGlvbiwgYW5kIHdlIG5lZWQgdG8gYWNjb3VudCBmb3JcbiAgaXQgaGVyZS4gVG8gcHJvdGVjdCBzb21lb25lIHRhbXBlcmluZyB3aXRoIHRoZSBvdXRwdXQgdG8gbWFrZSBpdCBzZW5kIG1vcmUgdGhhbiBpdCBzaG91bGQgdG8gQml0R28sIHdlIGRlZmluZSBhXG4gIHRocmVzaG9sZCBmb3IgdGhlIG91dHB1dCdzIHZhbHVlIGFib3ZlIHdoaWNoIHdlJ2xsIHRocm93IGFuIGVycm9yLCBiZWNhdXNlIHRoZSBwYXlnbyBvdXRwdXQgc2hvdWxkIG5ldmVyIGJlIHRoYXRcbiAgaGlnaC5cbiAgICovXG5cbiAgLy8gbWFrZSBzdXJlIHRoYXQgYWxsIHRoZSBleHRyYSBhZGRyZXNzZXMgYXJlIGNoYW5nZSBhZGRyZXNzZXNcbiAgLy8gZ2V0IGFsbCB0aGUgYWRkaXRpb25hbCBleHRlcm5hbCBvdXRwdXRzIHRoZSBzZXJ2ZXIgYWRkZWQgYW5kIGNhbGN1bGF0ZSB0aGVpciB2YWx1ZXNcbiAgY29uc3Qgbm9uQ2hhbmdlQW1vdW50ID0gbmV3IEJpZ051bWJlcihwYXJzZWRUcmFuc2FjdGlvbi5pbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQudG9TdHJpbmcoKSk7XG5cbiAgZGVidWcoXG4gICAgJ0ludGVuZGVkIHNwZW5kIGlzICVzLCBOb24tY2hhbmdlIGFtb3VudCBpcyAlcywgcGF5Z28gbGltaXQgaXMgJXMnLFxuICAgIGludGVuZGVkRXh0ZXJuYWxTcGVuZC50b1N0cmluZygpLFxuICAgIG5vbkNoYW5nZUFtb3VudC50b1N0cmluZygpLFxuICAgIHBheUFzWW91R29MaW1pdC50b1N0cmluZygpXG4gICk7XG5cbiAgLy8gVGhlcmUgYXJlIHR3byBpbnN0YW5jZXMgd2hlcmUgd2Ugd2lsbCBnZXQgaW50byB0aGlzIHBvaW50IGhlcmVcbiAgaWYgKG5vbkNoYW5nZUFtb3VudC5ndChwYXlBc1lvdUdvTGltaXQpKSB7XG4gICAgaWYgKGlzUHNidCAmJiBwYXJzZWRUcmFuc2FjdGlvbi5jdXN0b21DaGFuZ2UpIHtcbiAgICAgIC8vIEluIHRoZSBjYXNlIHRoYXQgd2UgaGF2ZSBhIGN1c3RvbSBjaGFuZ2UgYWRkcmVzcyBvbiBhIHdhbGxldCBhbmQgd2UgYXJlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvblxuICAgICAgLy8gd2l0aCBhIFBTQlQsIHdlIGRvIG5vdCBoYXZlIHRoZSBtZXRhZGF0YSB0byB2ZXJpZnkgdGhlIGFkZHJlc3MgZnJvbSB0aGUgY3VzdG9tIGNoYW5nZSB3YWxsZXQsIG5vclxuICAgICAgLy8gY2FuIHdlIGZldGNoIHRoYXQgaW5mb3JtYXRpb24gZnJvbSB0aGUgb3RoZXIgd2FsbGV0IGJlY2F1c2Ugd2UgbWF5IG5vdCBoYXZlIHRoZSBjcmVkZW50aWFscy4gVGhlcmVmb3JlLFxuICAgICAgLy8gd2Ugd2lsbCBub3QgdGhyb3cgYW4gZXJyb3IgaGVyZSwgYnV0IHdlIHdpbGwgbG9nIGEgd2FybmluZy5cbiAgICAgIGRlYnVnKGBjYW5ub3QgdmVyaWZ5IHNvbWUgb2YgdGhlIGFkZHJlc3NlcyBiZWNhdXNlIGl0IGJlbG9uZ3MgdG8gYSBzZXBhcmF0ZSB3YWxsZXRgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhlIGFkZGl0aW9uYWwgZXh0ZXJuYWwgb3V0cHV0cyBjYW4gb25seSBiZSBCaXRHbydzIHBheS1hcy15b3UtZ28gZmVlLCBidXQgd2UgY2Fubm90IHZlcmlmeSB0aGUgd2FsbGV0IGFkZHJlc3NcbiAgICAgIC8vIHRoZXJlIGFyZSBzb21lIGFkZHJlc3NlcyB0aGF0IGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiBpbnRlbmRlZCByZWNpcGllbnRzIHRoYXQgYXJlIG5vdCBjaGFuZ2UgYWRkcmVzc2VzXG4gICAgICB0aHJvd1R4TWlzbWF0Y2goJ3ByZWJ1aWxkIGF0dGVtcHRzIHRvIHNwZW5kIHRvIHVuaW50ZW5kZWQgZXh0ZXJuYWwgcmVjaXBpZW50cycpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFsbE91dHB1dHMgPSBwYXJzZWRUcmFuc2FjdGlvbi5vdXRwdXRzO1xuICBpZiAoIXR4UHJlYnVpbGQudHhIZXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHR4UHJlYnVpbGQudHhIZXggbm90IHNldGApO1xuICB9XG4gIGNvbnN0IGlucHV0cyA9IGlzUHNidFxuICAgID8gZ2V0UHNidFR4SW5wdXRzKHR4UHJlYnVpbGQudHhIZXgsIGNvaW4ubmV0d29yaykubWFwKCh2KSA9PiAoe1xuICAgICAgICAuLi52LFxuICAgICAgICB2YWx1ZTogdXR4b2xpYi5iaXRnby50b1ROdW1iZXIodi52YWx1ZSwgY29pbi5hbW91bnRUeXBlKSxcbiAgICAgIH0pKVxuICAgIDogYXdhaXQgZ2V0VHhJbnB1dHMoeyB0eFByZWJ1aWxkLCBiaXRnbywgY29pbiwgZGlzYWJsZU5ldHdvcmtpbmcsIHJlcUlkIH0pO1xuICAvLyBjb2lucyAoZG9nZSkgdGhhdCBjYW4gZXhjZWVkIG51bWJlciBsaW1pdHMgKGFuZCB0aHVzIHdpbGwgdXNlIGJpZ2ludCkgd2lsbCBoYXZlIHRoZSBgdmFsdWVTdHJpbmdgIGZpZWxkXG4gIGNvbnN0IGlucHV0QW1vdW50ID0gaW5wdXRzLnJlZHVjZShcbiAgICAoc3VtOiBiaWdpbnQsIGkpID0+IHN1bSArIEJpZ0ludChjb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8gaS52YWx1ZVN0cmluZyA6IGkudmFsdWUpLFxuICAgIEJpZ0ludCgwKVxuICApO1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSBhbGxPdXRwdXRzLnJlZHVjZSgoc3VtOiBiaWdpbnQsIG86IE91dHB1dCkgPT4gc3VtICsgQmlnSW50KG8uYW1vdW50KSwgQmlnSW50KDApKTtcbiAgY29uc3QgZmVlID0gaW5wdXRBbW91bnQgLSBvdXRwdXRBbW91bnQ7XG5cbiAgaWYgKGZlZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgYXR0ZW1wdGluZyB0byBzcGVuZCAke291dHB1dEFtb3VudH0gc2F0b3NoaXMsIHdoaWNoIGV4Y2VlZHMgdGhlIGlucHV0IGFtb3VudCAoJHtpbnB1dEFtb3VudH0gc2F0b3NoaXMpIGJ5ICR7LWZlZX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/signTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAwB/E,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyC5B"}
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/signTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAwB/E,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA0C5B"}
@@ -49,7 +49,7 @@ export async function signTransaction(coin, bitgo, params) {
49
49
  }
50
50
  }
51
51
  else {
52
- return fixedScript.signTransaction(coin, tx, getSignerKeychain(params.prv), {
52
+ const signedTx = await fixedScript.signTransaction(coin, tx, getSignerKeychain(params.prv), coin.network, {
53
53
  walletId: params.txPrebuild.walletId,
54
54
  txInfo: params.txPrebuild.txInfo,
55
55
  isLastSignature: params.isLastSignature ?? false,
@@ -58,6 +58,7 @@ export async function signTransaction(coin, bitgo, params) {
58
58
  pubs: params.pubs,
59
59
  cosignerPub: params.cosignerPub,
60
60
  });
61
+ return { txHex: signedTx.toBuffer().toString('hex') };
61
62
  }
62
63
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFdkIsT0FBTyxLQUFLLE9BQU8sTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxVQUFVLE1BQU0sT0FBTyxDQUFDO0FBRy9CLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0QsT0FBTyxLQUFLLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxLQUFLLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFFM0MsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFFNUUsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0UsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELEtBQUssQ0FBQyx3REFBd0QsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RyxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQ25DLElBQXNCLEVBQ3RCLEtBQWdCLEVBQ2hCLE1BQXVDO0lBRXZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFFckMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLE9BQU8sVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpFLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTFCLElBQUksTUFBTSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sYUFBYSxHQUFHLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksRUFBRSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRTtnQkFDckQsY0FBYyxFQUFFLE9BQU87YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUNwQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQ2hDLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLEtBQUs7WUFDaEQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLGtDQUFrQyxFQUFFLE1BQU0sQ0FBQyxrQ0FBa0MsSUFBSSxLQUFLO1lBQ3RGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IGJpcDMyIH0gZnJvbSAnQGJpdGdvL3NlY3AyNTZrMSc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBnZXRQb2xpY3lGb3JFbnYsIGlzRGVzY3JpcHRvcldhbGxldCB9IGZyb20gJy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZmV0Y2hLZXljaGFpbnMsIHRvQmlwMzJUcmlwbGUgfSBmcm9tICcuLi9rZXljaGFpbnMnO1xuXG5pbXBvcnQgKiBhcyBmaXhlZFNjcmlwdCBmcm9tICcuL2ZpeGVkU2NyaXB0JztcbmltcG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCdiaXRnbzphYnN0cmFjdC11dHhvOnRyYW5zYWN0aW9uOnNpZ25UcmFuc2FjdGlvbicpO1xuXG5mdW5jdGlvbiBnZXRTaWduZXJLZXljaGFpbih1c2VyUHJ2OiB1bmtub3duKTogdXR4b2xpYi5CSVAzMkludGVyZmFjZSB8IHVuZGVmaW5lZCB7XG4gIGlmICh1c2VyUHJ2ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmICh0eXBlb2YgdXNlclBydiAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIHVzZXIgcHJpdmF0ZSBrZXkgdG8gYmUgYSBzdHJpbmcnKTtcbiAgfVxuICBjb25zdCBzaWduZXJLZXljaGFpbiA9IGJpcDMyLmZyb21CYXNlNTgodXNlclBydiwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgaWYgKHNpZ25lcktleWNoYWluLmlzTmV1dGVyZWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgdXNlciBwcml2YXRlIGtleSBidXQgcmVjZWl2ZWQgcHVibGljIGtleScpO1xuICB9XG4gIGRlYnVnKGBIZXJlIGlzIHRoZSBwdWJsaWMga2V5IG9mIHRoZSB4cHJ2IHlvdSB1c2VkIHRvIHNpZ246ICR7c2lnbmVyS2V5Y2hhaW4ubmV1dGVyZWQoKS50b0Jhc2U1OCgpfWApO1xuICByZXR1cm4gc2lnbmVyS2V5Y2hhaW47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuKTogUHJvbWlzZTx7IHR4SGV4OiBzdHJpbmcgfT4ge1xuICBjb25zdCB0eFByZWJ1aWxkID0gcGFyYW1zLnR4UHJlYnVpbGQ7XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQodHhQcmVidWlsZCkgfHwgIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodHhQcmVidWlsZCkgJiYgIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdHhQcmVidWlsZCBtdXN0IGJlIGFuIG9iamVjdCwgZ290IHR5cGUgJHt0eXBlb2YgdHhQcmVidWlsZH1gKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHR4UHJlYnVpbGQgcGFyYW1ldGVyJyk7XG4gIH1cblxuICBjb25zdCB0eCA9IGNvaW4uZGVjb2RlVHJhbnNhY3Rpb25Gcm9tUHJlYnVpbGQocGFyYW1zLnR4UHJlYnVpbGQpO1xuXG4gIGNvbnN0IHNpZ25lcktleWNoYWluID0gZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydik7XG5cbiAgY29uc3QgeyB3YWxsZXQgfSA9IHBhcmFtcztcblxuICBpZiAod2FsbGV0ICYmIGlzRGVzY3JpcHRvcldhbGxldCh3YWxsZXQpKSB7XG4gICAgaWYgKCFzaWduZXJLZXljaGFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHNpZ25lcicpO1xuICAgIH1cbiAgICBjb25zdCB3YWxsZXRLZXlzID0gdG9CaXAzMlRyaXBsZShhd2FpdCBmZXRjaEtleWNoYWlucyhjb2luLCB3YWxsZXQpKTtcbiAgICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQod2FsbGV0LCB3YWxsZXRLZXlzLCBnZXRQb2xpY3lGb3JFbnYoYml0Z28uZW52KSk7XG4gICAgaWYgKHR4IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkge1xuICAgICAgZGVzY3JpcHRvci5zaWduUHNidCh0eCwgZGVzY3JpcHRvck1hcCwgc2lnbmVyS2V5Y2hhaW4sIHtcbiAgICAgICAgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7IHR4SGV4OiB0eC50b0hleCgpIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgYSBVdHhvUHNidCBvYmplY3QnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0LnNpZ25UcmFuc2FjdGlvbihjb2luLCB0eCwgZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydiksIHtcbiAgICAgIHdhbGxldElkOiBwYXJhbXMudHhQcmVidWlsZC53YWxsZXRJZCxcbiAgICAgIHR4SW5mbzogcGFyYW1zLnR4UHJlYnVpbGQudHhJbmZvLFxuICAgICAgaXNMYXN0U2lnbmF0dXJlOiBwYXJhbXMuaXNMYXN0U2lnbmF0dXJlID8/IGZhbHNlLFxuICAgICAgc2lnbmluZ1N0ZXA6IHBhcmFtcy5zaWduaW5nU3RlcCxcbiAgICAgIGFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHg6IHBhcmFtcy5hbGxvd05vblNlZ3dpdFNpZ25pbmdXaXRob3V0UHJldlR4ID8/IGZhbHNlLFxuICAgICAgcHViczogcGFyYW1zLnB1YnMsXG4gICAgICBjb3NpZ25lclB1YjogcGFyYW1zLmNvc2lnbmVyUHViLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFdkIsT0FBTyxLQUFLLE9BQU8sTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxVQUFVLE1BQU0sT0FBTyxDQUFDO0FBRy9CLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0QsT0FBTyxLQUFLLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxLQUFLLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFFM0MsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFFNUUsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0UsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELEtBQUssQ0FB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cG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgYmlwMzIgfSBmcm9tICdAYml0Z28vc2VjcDI1NmsxJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGdldFBvbGljeUZvckVudiwgaXNEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBmZXRjaEtleWNoYWlucywgdG9CaXAzMlRyaXBsZSB9IGZyb20gJy4uL2tleWNoYWlucyc7XG5cbmltcG9ydCAqIGFzIGZpeGVkU2NyaXB0IGZyb20gJy4vZml4ZWRTY3JpcHQnO1xuaW1wb3J0ICogYXMgZGVzY3JpcHRvciBmcm9tICcuL2Rlc2NyaXB0b3InO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ2JpdGdvOmFic3RyYWN0LXV0eG86dHJhbnNhY3Rpb246c2lnblRyYW5zYWN0aW9uJyk7XG5cbmZ1bmN0aW9uIGdldFNpZ25lcktleWNoYWluKHVzZXJQcnY6IHVua25vd24pOiB1dHhvbGliLkJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHVzZXJQcnYgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiB1c2VyUHJ2ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgdXNlciBwcml2YXRlIGtleSB0byBiZSBhIHN0cmluZycpO1xuICB9XG4gIGNvbnN0IHNpZ25lcktleWNoYWluID0gYmlwMzIuZnJvbUJhc2U1OCh1c2VyUHJ2LCB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICBpZiAoc2lnbmVyS2V5Y2hhaW4uaXNOZXV0ZXJlZCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCB1c2VyIHByaXZhdGUga2V5IGJ1dCByZWNlaXZlZCBwdWJsaWMga2V5Jyk7XG4gIH1cbiAgZGVidWcoYEhlcmUgaXMgdGhlIHB1YmxpYyBrZXkgb2YgdGhlIHhwcnYgeW91IHVzZWQgdG8gc2lnbjogJHtzaWduZXJLZXljaGFpbi5uZXV0ZXJlZCgpLnRvQmFzZTU4KCl9YCk7XG4gIHJldHVybiBzaWduZXJLZXljaGFpbjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25UcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgcGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4pOiBQcm9taXNlPHsgdHhIZXg6IHN0cmluZyB9PiB7XG4gIGNvbnN0IHR4UHJlYnVpbGQgPSBwYXJhbXMudHhQcmVidWlsZDtcblxuICBpZiAoXy5pc1VuZGVmaW5lZCh0eFByZWJ1aWxkKSB8fCAhXy5pc09iamVjdCh0eFByZWJ1aWxkKSkge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZCh0eFByZWJ1aWxkKSAmJiAhXy5pc09iamVjdCh0eFByZWJ1aWxkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB0eFByZWJ1aWxkIG11c3QgYmUgYW4gb2JqZWN0LCBnb3QgdHlwZSAke3R5cGVvZiB0eFByZWJ1aWxkfWApO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgdHhQcmVidWlsZCBwYXJhbWV0ZXInKTtcbiAgfVxuXG4gIGNvbnN0IHR4ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG5cbiAgY29uc3Qgc2lnbmVyS2V5Y2hhaW4gPSBnZXRTaWduZXJLZXljaGFpbihwYXJhbXMucHJ2KTtcblxuICBjb25zdCB7IHdhbGxldCB9ID0gcGFyYW1zO1xuXG4gIGlmICh3YWxsZXQgJiYgaXNEZXNjcmlwdG9yV2FsbGV0KHdhbGxldCkpIHtcbiAgICBpZiAoIXNpZ25lcktleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3Npbmcgc2lnbmVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKGF3YWl0IGZldGNoS2V5Y2hhaW5zKGNvaW4sIHdhbGxldCkpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCh3YWxsZXQsIHdhbGxldEtleXMsIGdldFBvbGljeUZvckVudihiaXRnby5lbnYpKTtcbiAgICBpZiAodHggaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgICBkZXNjcmlwdG9yLnNpZ25Qc2J0KHR4LCBkZXNjcmlwdG9yTWFwLCBzaWduZXJLZXljaGFpbiwge1xuICAgICAgICBvblVua25vd25JbnB1dDogJ3Rocm93JyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHsgdHhIZXg6IHR4LnRvSGV4KCkgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBhIFV0eG9Qc2J0IG9iamVjdCcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzaWduZWRUeCA9IGF3YWl0IGZpeGVkU2NyaXB0LnNpZ25UcmFuc2FjdGlvbihjb2luLCB0eCwgZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydiksIGNvaW4ubmV0d29yaywge1xuICAgICAgd2FsbGV0SWQ6IHBhcmFtcy50eFByZWJ1aWxkLndhbGxldElkLFxuICAgICAgdHhJbmZvOiBwYXJhbXMudHhQcmVidWlsZC50eEluZm8sXG4gICAgICBpc0xhc3RTaWduYXR1cmU6IHBhcmFtcy5pc0xhc3RTaWduYXR1cmUgPz8gZmFsc2UsXG4gICAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgICAgYWxsb3dOb25TZWd3aXRTaWduaW5nV2l0aG91dFByZXZUeDogcGFyYW1zLmFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHggPz8gZmFsc2UsXG4gICAgICBwdWJzOiBwYXJhbXMucHVicyxcbiAgICAgIGNvc2lnbmVyUHViOiBwYXJhbXMuY29zaWduZXJQdWIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHsgdHhIZXg6IHNpZ25lZFR4LnRvQnVmZmVyKCkudG9TdHJpbmcoJ2hleCcpIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,8 @@
1
+ import * as utxolib from '@bitgo/utxo-lib';
1
2
  import type { UtxoNamedKeychains } from '../keychains';
2
3
  import type { CustomChangeOptions } from './fixedScript';
4
+ export type SdkBackend = 'utxolib' | 'wasm-utxo';
5
+ export type DecodedTransaction<TNumber extends number | bigint> = utxolib.bitgo.UtxoTransaction<TNumber> | utxolib.bitgo.UtxoPsbt;
3
6
  export interface BaseOutput<TAmount = string | number> {
4
7
  address: string;
5
8
  amount: TAmount;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC7F,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEvG,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI;IACnF,8BAA8B;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,iGAAiG;IACjG,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,+FAA+F;IAC/F,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,mGAAmG;IACnG,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,kDAAkD;IAClD,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;IACrC,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI,4BAA4B,CACxG,OAAO,EACP,OAAO,CACR,CAAC,mFAAmF,GAAG;IACtF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,yCAAyC,EAAE,OAAO,CAAC;IACnD,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAEjD,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAC1D,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAE3B,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC7F,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEvG,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI;IACnF,8BAA8B;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,iGAAiG;IACjG,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,+FAA+F;IAC/F,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,mGAAmG;IACnG,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,kDAAkD;IAClD,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;IACrC,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI,4BAA4B,CACxG,OAAO,EACP,OAAO,CACR,CAAC,mFAAmF,GAAG;IACtF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,yCAAyC,EAAE,OAAO,CAAC;IACnD,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVXR4b05hbWVkS2V5Y2hhaW5zIH0gZnJvbSAnLi4va2V5Y2hhaW5zJztcblxuaW1wb3J0IHR5cGUgeyBDdXN0b21DaGFuZ2VPcHRpb25zIH0gZnJvbSAnLi9maXhlZFNjcmlwdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZU91dHB1dDxUQW1vdW50ID0gc3RyaW5nIHwgbnVtYmVyPiB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBUQW1vdW50O1xuICAvLyBFdmVuIHRob3VnaCB0aGlzIGV4dGVybmFsIGZsYWcgaXMgcmVkdW5kYW50IHdpdGggdGhlIGNoYWluIHByb3BlcnR5LCBpdCBpcyBuZWNlc3NhcnkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gIC8vIHdpdGggbGVnYWN5IHRyYW5zYWN0aW9uIGZvcm1hdC5cbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PFRBbW91bnQgPSBzdHJpbmcgfCBudW1iZXI+IGV4dGVuZHMgQmFzZU91dHB1dDxUQW1vdW50PiB7XG4gIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uPzogYm9vbGVhbjtcbiAgY2hhaW46IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgT3V0cHV0PFRBbW91bnQgPSBzdHJpbmcgfCBudW1iZXI+ID0gQmFzZU91dHB1dDxUQW1vdW50PiB8IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PFRBbW91bnQ+O1xuXG5leHBvcnQgdHlwZSBCYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFRPdXRwdXQ+ID0ge1xuICAvKiogYWxsIHRyYW5zYWN0aW9uIG91dHB1dHMgKi9cbiAgb3V0cHV0czogVE91dHB1dFtdO1xuICAvKiogdHJhbnNhY3Rpb24gb3V0cHV0cyB0aGF0IHdlcmUgc3BlY2lmaWVkIGFzIHJlY2lwaWVudHMgYnV0IGFyZSBtaXNzaW5nIGZyb20gdGhlIHRyYW5zYWN0aW9uICovXG4gIG1pc3NpbmdPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgd2VyZSBzcGVjaWZpZWQgYXMgcmVjaXBpZW50cyBhbmQgYXJlIHByZXNlbnQgaW4gdGhlIHRyYW5zYWN0aW9uICovXG4gIGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgd2VyZSBub3Qgc3BlY2lmaWVkIGFzIHJlY2lwaWVudHMgYnV0IGFyZSBwcmVzZW50IGluIHRoZSB0cmFuc2FjdGlvbiAqL1xuICBpbXBsaWNpdEV4dGVybmFsT3V0cHV0czogVE91dHB1dFtdO1xuICAvKiogdHJhbnNhY3Rpb24gb3V0cHV0cyB0aGF0IGFyZSBjaGFuZ2Ugb3V0cHV0cyAqL1xuICBjaGFuZ2VPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiBzdW0gb2YgYWxsIGV4cGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKi9cbiAgZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiBUTnVtYmVyO1xuICAvKiogc3VtIG9mIGFsbCBpbXBsaWNpdCBleHRlcm5hbCBvdXRwdXRzICovXG4gIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogVE51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50LCBUT3V0cHV0PiA9IEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8XG4gIFROdW1iZXIsXG4gIFRPdXRwdXRcbj4gLyoqIFNvbWUgZXh0cmEgcHJvcGVydGllcyB0aGF0IGhhdmUgbm90aGluZyB0byBkbyB3aXRoIGFuIGluZGl2aWR1YWwgdHJhbnNhY3Rpb24gKi8gJiB7XG4gIGtleWNoYWluczogVXR4b05hbWVkS2V5Y2hhaW5zO1xuICBrZXlTaWduYXR1cmVzOiB7XG4gICAgYmFja3VwUHViPzogc3RyaW5nO1xuICAgIGJpdGdvUHViPzogc3RyaW5nO1xuICB9O1xuICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogYm9vbGVhbjtcbiAgY3VzdG9tQ2hhbmdlPzogQ3VzdG9tQ2hhbmdlT3B0aW9ucztcbn07XG5cbi8qKlxuICogVGhpcyB0eXBlIGlzIGEgYml0IHNpbGx5IGJlY2F1c2UgaXQgYWxsb3dzIHRoZSB0eXBlIGZvciB0aGUgYWdncmVnYXRlIGFtb3VudHMgdG8gYmUgZGlmZmVyZW50IGZyb20gdGhlIHR5cGUgb2ZcbiAqIGluZGl2aWR1YWwgYW1vdW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgUGFyc2VkVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSBCYXNlUGFyc2VkVHJhbnNhY3Rpb248VE51bWJlciwgT3V0cHV0PjtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHR5cGUgeyBVdHhvTmFtZWRLZXljaGFpbnMgfSBmcm9tICcuLi9rZXljaGFpbnMnO1xuXG5pbXBvcnQgdHlwZSB7IEN1c3RvbUNoYW5nZU9wdGlvbnMgfSBmcm9tICcuL2ZpeGVkU2NyaXB0JztcblxuZXhwb3J0IHR5cGUgU2RrQmFja2VuZCA9ICd1dHhvbGliJyB8ICd3YXNtLXV0eG8nO1xuXG5leHBvcnQgdHlwZSBEZWNvZGVkVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gPVxuICB8IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+XG4gIHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlT3V0cHV0PFRBbW91bnQgPSBzdHJpbmcgfCBudW1iZXI+IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IFRBbW91bnQ7XG4gIC8vIEV2ZW4gdGhvdWdoIHRoaXMgZXh0ZXJuYWwgZmxhZyBpcyByZWR1bmRhbnQgd2l0aCB0aGUgY2hhaW4gcHJvcGVydHksIGl0IGlzIG5lY2Vzc2FyeSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgLy8gd2l0aCBsZWdhY3kgdHJhbnNhY3Rpb24gZm9ybWF0LlxuICBleHRlcm5hbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8VEFtb3VudCA9IHN0cmluZyB8IG51bWJlcj4gZXh0ZW5kcyBCYXNlT3V0cHV0PFRBbW91bnQ+IHtcbiAgbmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24/OiBib29sZWFuO1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBPdXRwdXQ8VEFtb3VudCA9IHN0cmluZyB8IG51bWJlcj4gPSBCYXNlT3V0cHV0PFRBbW91bnQ+IHwgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8VEFtb3VudD47XG5cbmV4cG9ydCB0eXBlIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCwgVE91dHB1dD4gPSB7XG4gIC8qKiBhbGwgdHJhbnNhY3Rpb24gb3V0cHV0cyAqL1xuICBvdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgd2VyZSBzcGVjaWZpZWQgYXMgcmVjaXBpZW50cyBidXQgYXJlIG1pc3NpbmcgZnJvbSB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgbWlzc2luZ091dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHRyYW5zYWN0aW9uIG91dHB1dHMgdGhhdCB3ZXJlIHNwZWNpZmllZCBhcyByZWNpcGllbnRzIGFuZCBhcmUgcHJlc2VudCBpbiB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHRyYW5zYWN0aW9uIG91dHB1dHMgdGhhdCB3ZXJlIG5vdCBzcGVjaWZpZWQgYXMgcmVjaXBpZW50cyBidXQgYXJlIHByZXNlbnQgaW4gdGhlIHRyYW5zYWN0aW9uICovXG4gIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgYXJlIGNoYW5nZSBvdXRwdXRzICovXG4gIGNoYW5nZU91dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHN1bSBvZiBhbGwgZXhwbGljaXQgZXh0ZXJuYWwgb3V0cHV0cyAqL1xuICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IFROdW1iZXI7XG4gIC8qKiBzdW0gb2YgYWxsIGltcGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKi9cbiAgaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiBUTnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFRPdXRwdXQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxcbiAgVE51bWJlcixcbiAgVE91dHB1dFxuPiAvKiogU29tZSBleHRyYSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggYW4gaW5kaXZpZHVhbCB0cmFuc2FjdGlvbiAqLyAmIHtcbiAga2V5Y2hhaW5zOiBVdHhvTmFtZWRLZXljaGFpbnM7XG4gIGtleVNpZ25hdHVyZXM6IHtcbiAgICBiYWNrdXBQdWI/OiBzdHJpbmc7XG4gICAgYml0Z29QdWI/OiBzdHJpbmc7XG4gIH07XG4gIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uOiBib29sZWFuO1xuICBjdXN0b21DaGFuZ2U/OiBDdXN0b21DaGFuZ2VPcHRpb25zO1xufTtcblxuLyoqXG4gKiBUaGlzIHR5cGUgaXMgYSBiaXQgc2lsbHkgYmVjYXVzZSBpdCBhbGxvd3MgdGhlIHR5cGUgZm9yIHRoZSBhZ2dyZWdhdGUgYW1vdW50cyB0byBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgdHlwZSBvZlxuICogaW5kaXZpZHVhbCBhbW91bnRzLlxuICovXG5leHBvcnQgdHlwZSBQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyLCBPdXRwdXQ+O1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/abstract-utxo",
3
- "version": "10.8.0",
3
+ "version": "10.9.0",
4
4
  "description": "BitGo SDK coin library for UTXO base implementation",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -31,7 +31,7 @@
31
31
  "clean": "rm -rf ./dist",
32
32
  "lint": "eslint --quiet .",
33
33
  "prepare": "npm run build",
34
- "test": "npm run unit-test",
34
+ "test": "mocha --recursive test/unit/",
35
35
  "unit-test": "mocha --recursive test/unit/",
36
36
  "integration-test": "mocha --recursive test/integration/"
37
37
  },
@@ -60,15 +60,15 @@
60
60
  ]
61
61
  },
62
62
  "dependencies": {
63
- "@bitgo/blockapis": "^1.12.8",
64
- "@bitgo/sdk-api": "^1.71.7",
65
- "@bitgo/sdk-core": "^36.22.0",
63
+ "@bitgo/blockapis": "^1.12.9",
64
+ "@bitgo/sdk-api": "^1.71.8",
65
+ "@bitgo/sdk-core": "^36.23.0",
66
66
  "@bitgo/secp256k1": "^1.7.0",
67
- "@bitgo/unspents": "^0.50.10",
68
- "@bitgo/utxo-core": "^1.25.0",
69
- "@bitgo/utxo-lib": "^11.16.1",
70
- "@bitgo/utxo-ord": "^1.22.15",
71
- "@bitgo/wasm-utxo": "1.3.0",
67
+ "@bitgo/unspents": "^0.50.11",
68
+ "@bitgo/utxo-core": "^1.26.0",
69
+ "@bitgo/utxo-lib": "^11.17.0",
70
+ "@bitgo/utxo-ord": "^1.22.16",
71
+ "@bitgo/wasm-utxo": "1.11.0",
72
72
  "@types/lodash": "^4.14.121",
73
73
  "@types/superagent": "4.1.15",
74
74
  "bignumber.js": "^9.0.2",
@@ -79,8 +79,8 @@
79
79
  "superagent": "^9.0.1"
80
80
  },
81
81
  "devDependencies": {
82
- "@bitgo/sdk-test": "^9.1.15",
82
+ "@bitgo/sdk-test": "^9.1.16",
83
83
  "mocha": "^10.2.0"
84
84
  },
85
- "gitHead": "1be70466f865b8f513c123a2476530a8ba3dc19f"
85
+ "gitHead": "23361b7b70ec3396192d776500626f83157ab2d8"
86
86
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"replayProtection.d.ts","sourceRoot":"","sources":["../../../src/replayProtection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,EAAE,CAW/E;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,EAAE,CAInF;AAED,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACvE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACjC,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAET"}