@bitgo/sdk-core 26.15.0 → 27.0.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 (50) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/src/account-lib/baseCoin/enum.d.ts +2 -1
  3. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  4. package/dist/src/account-lib/baseCoin/enum.js +3 -1
  5. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  6. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +7 -5
  7. package/dist/src/bitgo/keychain/iKeychains.d.ts +2 -0
  8. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  9. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  10. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  11. package/dist/src/bitgo/keychain/keychains.js +5 -1
  12. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +1 -0
  13. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  14. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +1 -1
  15. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +1 -0
  16. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  17. package/dist/src/bitgo/pendingApproval/pendingApproval.js +4 -1
  18. package/dist/src/bitgo/tss/common.d.ts +35 -5
  19. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  20. package/dist/src/bitgo/tss/common.js +67 -7
  21. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +5 -2
  22. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  23. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +11 -9
  24. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +7 -3
  25. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  26. package/dist/src/bitgo/tss/eddsa/eddsa.js +10 -7
  27. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +6 -3
  28. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  29. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +13 -5
  30. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +7 -0
  31. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  32. package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
  33. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +3 -1
  34. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  35. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +10 -9
  36. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
  37. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +7 -7
  38. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +2 -1
  39. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  40. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +13 -13
  41. package/dist/src/bitgo/wallet/iWallet.d.ts +1 -0
  42. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  43. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  44. package/dist/src/bitgo/wallet/wallet.d.ts +2 -2
  45. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  46. package/dist/src/bitgo/wallet/wallet.js +40 -23
  47. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  48. package/dist/src/bitgo/wallet/wallets.js +3 -2
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +5 -5
@@ -2,15 +2,17 @@ import openpgp from 'openpgp';
2
2
  import { BitGoBase } from '../bitgoBase';
3
3
  import { TxRequestChallengeResponse } from './types';
4
4
  import { RequestType, TxRequest, SignatureShareRecord, CommitmentShareRecord, EncryptedSignerShareRecord, ExchangeCommitmentResponse } from '../utils';
5
+ import { IRequestTracer } from '../../api';
5
6
  /**
6
7
  * Gets the latest Tx Request by id
7
8
  *
8
9
  * @param {BitGoBase} bitgo - the bitgo instance
9
10
  * @param {String} walletId - the wallet id
10
- * @param {String} txRequestId - the txRequest Id
11
+ * @param {String} txRequestId - the txRequest id
12
+ * @param {IRequestTracer} reqId - the request tracer request id
11
13
  * @returns {Promise<TxRequest>}
12
14
  */
13
- export declare function getTxRequest(bitgo: BitGoBase, walletId: string, txRequestId: string): Promise<TxRequest>;
15
+ export declare function getTxRequest(bitgo: BitGoBase, walletId: string, txRequestId: string, reqId?: IRequestTracer): Promise<TxRequest>;
14
16
  /**
15
17
  * Sends a Signature Share
16
18
  *
@@ -22,9 +24,35 @@ export declare function getTxRequest(bitgo: BitGoBase, walletId: string, txReque
22
24
  * @param signerShare
23
25
  * @param mpcAlgorithm
24
26
  * @param apiMode
27
+ * @param {IRequestTracer} reqId - the request tracer request id
28
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
29
+ */
30
+ export declare function sendSignatureShare(bitgo: BitGoBase, walletId: string, txRequestId: string, signatureShare: SignatureShareRecord, requestType: RequestType, signerShare?: string, mpcAlgorithm?: 'eddsa' | 'ecdsa', apiMode?: 'full' | 'lite', userPublicGpgKey?: string, reqId?: IRequestTracer): Promise<SignatureShareRecord>;
31
+ /**
32
+ * Sends a Signature Share using the sign txRequest route
33
+ *
34
+ * @param {BitGoBase} bitgo - the bitgo instance
35
+ * @param {String} walletId - the wallet id *
36
+ * @param {String} txRequestId - the txRequest Id
37
+ * @param signatureShares
38
+ * @param requestType - The type of request being submitted (either tx or message for signing)
39
+ * @param signerShare
40
+ * @param mpcAlgorithm
41
+ * @param multisigTypeVersion
42
+ * @param signerGpgPublicKey
43
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
44
+ */
45
+ export declare function sendSignatureShareV2(bitgo: BitGoBase, walletId: string, txRequestId: string, signatureShares: SignatureShareRecord[], requestType: RequestType, mpcAlgorithm: 'eddsa' | 'ecdsa', signerGpgPublicKey: string, signerShare?: string, multisigTypeVersion?: 'MPCv2' | undefined): Promise<TxRequest>;
46
+ /**
47
+ * Sends a Transaction Request for broadcast once signing is complete
48
+ *
49
+ * @param {BitGoBase} bitgo - the bitgo instance
50
+ * @param {String} walletId - the wallet id *
51
+ * @param {String} txRequestId - the txRequest Id
52
+ * @param requestType - The type of request being submitted (either tx or message for signing)
25
53
  * @returns {Promise<SignatureShareRecord>} - a Signature Share
26
54
  */
27
- export declare function sendSignatureShare(bitgo: BitGoBase, walletId: string, txRequestId: string, signatureShare: SignatureShareRecord, requestType: RequestType, signerShare?: string, mpcAlgorithm?: 'eddsa' | 'ecdsa', apiMode?: 'full' | 'lite', userPublicGpgKey?: string): Promise<SignatureShareRecord>;
55
+ export declare function sendTxRequest(bitgo: BitGoBase, walletId: string, txRequestId: string, requestType: RequestType): Promise<TxRequest>;
28
56
  /**
29
57
  * Sends the client commitment and encrypted signer share to the server, getting back the server commitment
30
58
  * @param {BitGoBase} bitgo - the bitgo instance
@@ -33,9 +61,10 @@ export declare function sendSignatureShare(bitgo: BitGoBase, walletId: string, t
33
61
  * @param {CommitmentShareRecord} commitmentShare - the client commitment share
34
62
  * @param {EncryptedSignerShareRecord} encryptedSignerShare - the client encrypted signer share
35
63
  * @param {string} [apiMode] - the txRequest api mode (full or lite) - defaults to lite
64
+ * @param {IRequestTracer} reqId - the request tracer request Id
36
65
  * @returns {Promise<ExchangeCommitmentResponse>} - the server commitment share
37
66
  */
38
- export declare function exchangeEddsaCommitments(bitgo: BitGoBase, walletId: string, txRequestId: string, commitmentShare: CommitmentShareRecord, encryptedSignerShare: EncryptedSignerShareRecord, apiMode?: 'full' | 'lite'): Promise<ExchangeCommitmentResponse>;
67
+ export declare function exchangeEddsaCommitments(bitgo: BitGoBase, walletId: string, txRequestId: string, commitmentShare: CommitmentShareRecord, encryptedSignerShare: EncryptedSignerShareRecord, apiMode?: 'full' | 'lite', reqId?: IRequestTracer): Promise<ExchangeCommitmentResponse>;
39
68
  /**
40
69
  * Verifies that a TSS wallet signature was produced with the expected key and that the signed data contains the
41
70
  * expected common keychain as well as the expected user and backup key ids
@@ -58,6 +87,7 @@ export declare function commonVerifyWalletSignature(params: {
58
87
  * @param index
59
88
  * @param requestType
60
89
  * @param paillierModulus
90
+ * @param reqId
61
91
  */
62
- export declare function getTxRequestChallenge(bitgo: BitGoBase, walletId: string, txRequestId: string, index: string, requestType: RequestType, paillierModulus: string): Promise<TxRequestChallengeResponse>;
92
+ export declare function getTxRequestChallenge(bitgo: BitGoBase, walletId: string, txRequestId: string, index: string, requestType: RequestType, paillierModulus: string, reqId?: IRequestTracer): Promise<TxRequestChallengeResponse>;
63
93
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/tss/common.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,WAAW,EACX,SAAS,EAET,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAElB;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAY9G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,GAAE,OAAO,GAAG,OAAiB,EACzC,OAAO,GAAE,MAAM,GAAG,MAAe,EACjC,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAuB/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,qBAAqB,EACtC,oBAAoB,EAAE,0BAA0B,EAChD,OAAO,GAAE,MAAM,GAAG,MAAe,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAOrC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,EAAE,CAAC,CAkCpC;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,0BAA0B,CAAC,CAYrC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/tss/common.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,WAAW,EACX,SAAS,EAET,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAE3B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,SAAS,CAAC,CAcpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,GAAE,OAAO,GAAG,OAAiB,EACzC,OAAO,GAAE,MAAM,GAAG,MAAe,EACjC,gBAAgB,CAAC,EAAE,MAAM,EACzB,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAyB/B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,oBAAoB,EAAE,EACvC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,OAAO,GAAG,OAAO,EAC/B,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,GACxC,OAAO,CAAC,SAAS,CAAC,CAgBpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,SAAS,CAAC,CAIpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,qBAAqB,EACtC,oBAAoB,EAAE,0BAA0B,EAChD,OAAO,GAAE,MAAM,GAAG,MAAe,EACjC,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,0BAA0B,CAAC,CASrC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,EAAE,CAAC,CAkCpC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,0BAA0B,CAAC,CAcrC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getTxRequestChallenge = exports.commonVerifyWalletSignature = exports.exchangeEddsaCommitments = exports.sendSignatureShare = exports.getTxRequest = void 0;
6
+ exports.getTxRequestChallenge = exports.commonVerifyWalletSignature = exports.exchangeEddsaCommitments = exports.sendTxRequest = exports.sendSignatureShareV2 = exports.sendSignatureShare = exports.getTxRequest = void 0;
7
7
  const assert_1 = __importDefault(require("assert"));
8
8
  const utils_1 = require("../utils");
9
9
  /**
@@ -11,10 +11,13 @@ const utils_1 = require("../utils");
11
11
  *
12
12
  * @param {BitGoBase} bitgo - the bitgo instance
13
13
  * @param {String} walletId - the wallet id
14
- * @param {String} txRequestId - the txRequest Id
14
+ * @param {String} txRequestId - the txRequest id
15
+ * @param {IRequestTracer} reqId - the request tracer request id
15
16
  * @returns {Promise<TxRequest>}
16
17
  */
17
- async function getTxRequest(bitgo, walletId, txRequestId) {
18
+ async function getTxRequest(bitgo, walletId, txRequestId, reqId) {
19
+ const reqTracer = reqId || new utils_1.RequestTracer();
20
+ bitgo.setRequestTracer(reqTracer);
18
21
  const txRequestRes = await bitgo
19
22
  .get(bitgo.url('/wallet/' + walletId + '/txrequests', 2))
20
23
  .query({ txRequestIds: txRequestId, latest: 'true' })
@@ -37,9 +40,10 @@ exports.getTxRequest = getTxRequest;
37
40
  * @param signerShare
38
41
  * @param mpcAlgorithm
39
42
  * @param apiMode
43
+ * @param {IRequestTracer} reqId - the request tracer request id
40
44
  * @returns {Promise<SignatureShareRecord>} - a Signature Share
41
45
  */
42
- async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, requestType, signerShare, mpcAlgorithm = 'eddsa', apiMode = 'lite', userPublicGpgKey) {
46
+ async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, requestType, signerShare, mpcAlgorithm = 'eddsa', apiMode = 'lite', userPublicGpgKey, reqId) {
43
47
  let addendum = '';
44
48
  switch (requestType) {
45
49
  case utils_1.RequestType.tx:
@@ -54,6 +58,8 @@ async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare,
54
58
  break;
55
59
  }
56
60
  const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/signatureshares';
61
+ const reqTracer = reqId || new utils_1.RequestTracer();
62
+ bitgo.setRequestTracer(reqTracer);
57
63
  return bitgo
58
64
  .post(bitgo.url(urlPath, 2))
59
65
  .send({
@@ -64,6 +70,54 @@ async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare,
64
70
  .result();
65
71
  }
66
72
  exports.sendSignatureShare = sendSignatureShare;
73
+ /**
74
+ * Sends a Signature Share using the sign txRequest route
75
+ *
76
+ * @param {BitGoBase} bitgo - the bitgo instance
77
+ * @param {String} walletId - the wallet id *
78
+ * @param {String} txRequestId - the txRequest Id
79
+ * @param signatureShares
80
+ * @param requestType - The type of request being submitted (either tx or message for signing)
81
+ * @param signerShare
82
+ * @param mpcAlgorithm
83
+ * @param multisigTypeVersion
84
+ * @param signerGpgPublicKey
85
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
86
+ */
87
+ async function sendSignatureShareV2(bitgo, walletId, txRequestId, signatureShares, requestType, mpcAlgorithm, signerGpgPublicKey, signerShare, multisigTypeVersion) {
88
+ const addendum = requestType === utils_1.RequestType.tx ? '/transactions/0' : '/messages/0';
89
+ const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/sign';
90
+ let type = '';
91
+ if (multisigTypeVersion === 'MPCv2' && mpcAlgorithm === 'ecdsa') {
92
+ type = 'ecdsaMpcV2';
93
+ }
94
+ else if (multisigTypeVersion === undefined && mpcAlgorithm === 'eddsa') {
95
+ type = 'eddsaMpcV1';
96
+ }
97
+ const requestBody = {
98
+ type,
99
+ signatureShares,
100
+ signerShare,
101
+ signerGpgPublicKey,
102
+ };
103
+ return bitgo.post(bitgo.url(urlPath, 2)).send(requestBody).result();
104
+ }
105
+ exports.sendSignatureShareV2 = sendSignatureShareV2;
106
+ /**
107
+ * Sends a Transaction Request for broadcast once signing is complete
108
+ *
109
+ * @param {BitGoBase} bitgo - the bitgo instance
110
+ * @param {String} walletId - the wallet id *
111
+ * @param {String} txRequestId - the txRequest Id
112
+ * @param requestType - The type of request being submitted (either tx or message for signing)
113
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
114
+ */
115
+ async function sendTxRequest(bitgo, walletId, txRequestId, requestType) {
116
+ const addendum = requestType === utils_1.RequestType.tx ? '/transactions/0' : '/messages/0';
117
+ const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/send';
118
+ return bitgo.post(bitgo.url(urlPath, 2)).send().result();
119
+ }
120
+ exports.sendTxRequest = sendTxRequest;
67
121
  /**
68
122
  * Sends the client commitment and encrypted signer share to the server, getting back the server commitment
69
123
  * @param {BitGoBase} bitgo - the bitgo instance
@@ -72,14 +126,17 @@ exports.sendSignatureShare = sendSignatureShare;
72
126
  * @param {CommitmentShareRecord} commitmentShare - the client commitment share
73
127
  * @param {EncryptedSignerShareRecord} encryptedSignerShare - the client encrypted signer share
74
128
  * @param {string} [apiMode] - the txRequest api mode (full or lite) - defaults to lite
129
+ * @param {IRequestTracer} reqId - the request tracer request Id
75
130
  * @returns {Promise<ExchangeCommitmentResponse>} - the server commitment share
76
131
  */
77
- async function exchangeEddsaCommitments(bitgo, walletId, txRequestId, commitmentShare, encryptedSignerShare, apiMode = 'lite') {
132
+ async function exchangeEddsaCommitments(bitgo, walletId, txRequestId, commitmentShare, encryptedSignerShare, apiMode = 'lite', reqId) {
78
133
  let addendum = '';
79
134
  if (apiMode === 'full') {
80
135
  addendum = '/transactions/0';
81
136
  }
82
137
  const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/commit';
138
+ const reqTracer = reqId || new utils_1.RequestTracer();
139
+ bitgo.setRequestTracer(reqTracer);
83
140
  return await bitgo.post(bitgo.url(urlPath, 2)).send({ commitmentShare, encryptedSignerShare }).result();
84
141
  }
85
142
  exports.exchangeEddsaCommitments = exchangeEddsaCommitments;
@@ -120,8 +177,9 @@ exports.commonVerifyWalletSignature = commonVerifyWalletSignature;
120
177
  * @param index
121
178
  * @param requestType
122
179
  * @param paillierModulus
180
+ * @param reqId
123
181
  */
124
- async function getTxRequestChallenge(bitgo, walletId, txRequestId, index, requestType, paillierModulus) {
182
+ async function getTxRequestChallenge(bitgo, walletId, txRequestId, index, requestType, paillierModulus, reqId) {
125
183
  let addendum = '';
126
184
  switch (requestType) {
127
185
  case utils_1.RequestType.tx:
@@ -132,7 +190,9 @@ async function getTxRequestChallenge(bitgo, walletId, txRequestId, index, reques
132
190
  break;
133
191
  }
134
192
  const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/challenge';
193
+ const reqTracer = reqId || new utils_1.RequestTracer();
194
+ bitgo.setRequestTracer(reqTracer);
135
195
  return await bitgo.post(bitgo.url(urlPath, 2)).send({ paillierModulus }).result();
136
196
  }
137
197
  exports.getTxRequestChallenge = getTxRequestChallenge;
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3Rzcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBSzVCLG9DQVFrQjtBQUVsQjs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLFlBQVksQ0FBQyxLQUFnQixFQUFFLFFBQWdCLEVBQUUsV0FBbUI7SUFDeEYsTUFBTSxZQUFZLEdBQUcsTUFBTSxLQUFLO1NBQzdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxRQUFRLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hELEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ3BELEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDUixNQUFNLEVBQUUsQ0FBQztJQUVaLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLFdBQVcsRUFBRSxDQUFDLENBQUM7S0FDcEU7SUFFRCxPQUFPLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQVpELG9DQVlDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQixDQUN0QyxLQUFnQixFQUNoQixRQUFnQixFQUNoQixXQUFtQixFQUNuQixjQUFvQyxFQUNwQyxXQUF3QixFQUN4QixXQUFvQixFQUNwQixlQUFrQyxPQUFPLEVBQ3pDLFVBQTJCLE1BQU0sRUFDakMsZ0JBQXlCO0lBRXpCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNsQixRQUFRLFdBQVcsRUFBRTtRQUNuQixLQUFLLG1CQUFXLENBQUMsRUFBRTtZQUNqQixJQUFJLFlBQVksS0FBSyxPQUFPLElBQUksT0FBTyxL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b3J0IG9wZW5wZ3AgZnJvbSAnb3BlbnBncCc7XG5cbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgUmVxdWVzdFR5cGUsXG4gIFR4UmVxdWVzdCxcbiAgdmVyaWZ5UHJpbWFyeVVzZXJXcmFwcGVyLFxuICBTaWduYXR1cmVTaGFyZVJlY29yZCxcbiAgQ29tbWl0bWVudFNoYXJlUmVjb3JkLFxuICBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCxcbiAgRXhjaGFuZ2VDb21taXRtZW50UmVzcG9uc2UsXG59IGZyb20gJy4uL3V0aWxzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBsYXRlc3QgVHggUmVxdWVzdCBieSBpZFxuICpcbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtTdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICogQHJldHVybnMge1Byb21pc2U8VHhSZXF1ZXN0Pn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFR4UmVxdWVzdChiaXRnbzogQml0R29CYXNlLCB3YWxsZXRJZDogc3RyaW5nLCB0eFJlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgY29uc3QgdHhSZXF1ZXN0UmVzID0gYXdhaXQgYml0Z29cbiAgICAuZ2V0KGJpdGdvLnVybCgnL3dhbGxldC8nICsgd2FsbGV0SWQgKyAnL3R4cmVxdWVzdHMnLCAyKSlcbiAgICAucXVlcnkoeyB0eFJlcXVlc3RJZHM6IHR4UmVxdWVzdElkLCBsYXRlc3Q6ICd0cnVlJyB9KVxuICAgIC5yZXRyeSgzKVxuICAgIC5yZXN1bHQoKTtcblxuICBpZiAodHhSZXF1ZXN0UmVzLnR4UmVxdWVzdHMubGVuZ3RoIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBmaW5kIFR4UmVxdWVzdCB3aXRoIGlkICR7dHhSZXF1ZXN0SWR9YCk7XG4gIH1cblxuICByZXR1cm4gdHhSZXF1ZXN0UmVzLnR4UmVxdWVzdHNbMF07XG59XG5cbi8qKlxuICogU2VuZHMgYSBTaWduYXR1cmUgU2hhcmVcbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWQgICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEBwYXJhbSB7U2lnbmF0dXJlU2hhcmVSZWNvcmR9IHNpZ25hdHVyZVNoYXJlIC0gYSBTaWduYXR1cmUgU2hhcmVcbiAqIEBwYXJhbSByZXF1ZXN0VHlwZSAtIFRoZSB0eXBlIG9mIHJlcXVlc3QgYmVpbmcgc3VibWl0dGVkIChlaXRoZXIgdHggb3IgbWVzc2FnZSBmb3Igc2lnbmluZylcbiAqIEBwYXJhbSBzaWduZXJTaGFyZVxuICogQHBhcmFtIG1wY0FsZ29yaXRobVxuICogQHBhcmFtIGFwaU1vZGVcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPn0gLSBhIFNpZ25hdHVyZSBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFNpZ25hdHVyZVNoYXJlKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICBzaWduYXR1cmVTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQsXG4gIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgc2lnbmVyU2hhcmU/OiBzdHJpbmcsXG4gIG1wY0FsZ29yaXRobTogJ2VkZHNhJyB8ICdlY2RzYScgPSAnZWRkc2EnLFxuICBhcGlNb2RlOiAnZnVsbCcgfCAnbGl0ZScgPSAnbGl0ZScsXG4gIHVzZXJQdWJsaWNHcGdLZXk/OiBzdHJpbmdcbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+IHtcbiAgbGV0IGFkZGVuZHVtID0gJyc7XG4gIHN3aXRjaCAocmVxdWVzdFR5cGUpIHtcbiAgICBjYXNlIFJlcXVlc3RUeXBlLnR4OlxuICAgICAgaWYgKG1wY0FsZ29yaXRobSA9PT0gJ2VjZHNhJyB8fCBhcGlNb2RlID09PSAnZnVsbCcpIHtcbiAgICAgICAgYWRkZW5kdW0gPSAnL3RyYW5zYWN0aW9ucy8wJztcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgUmVxdWVzdFR5cGUubWVzc2FnZTpcbiAgICAgIGlmIChtcGNBbGdvcml0aG0gPT09ICdlY2RzYScgfHwgYXBpTW9kZSA9PT0gJ2Z1bGwnKSB7XG4gICAgICAgIGFkZGVuZHVtID0gJy9tZXNzYWdlcy8wJztcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICB9XG4gIGNvbnN0IHVybFBhdGggPSAnL3dhbGxldC8nICsgd2FsbGV0SWQgKyAnL3R4cmVxdWVzdHMvJyArIHR4UmVxdWVzdElkICsgYWRkZW5kdW0gKyAnL3NpZ25hdHVyZXNoYXJlcyc7XG4gIHJldHVybiBiaXRnb1xuICAgIC5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSlcbiAgICAuc2VuZCh7XG4gICAgICBzaWduYXR1cmVTaGFyZSxcbiAgICAgIHNpZ25lclNoYXJlLFxuICAgICAgdXNlclB1YmxpY0dwZ0tleSxcbiAgICB9KVxuICAgIC5yZXN1bHQoKTtcbn1cblxuLyoqXG4gKiBTZW5kcyB0aGUgY2xpZW50IGNvbW1pdG1lbnQgYW5kIGVuY3J5cHRlZCBzaWduZXIgc2hhcmUgdG8gdGhlIHNlcnZlciwgZ2V0dGluZyBiYWNrIHRoZSBzZXJ2ZXIgY29tbWl0bWVudFxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge3N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkXG4gKiBAcGFyYW0ge3N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0ge0NvbW1pdG1lbnRTaGFyZVJlY29yZH0gY29tbWl0bWVudFNoYXJlIC0gdGhlIGNsaWVudCBjb21taXRtZW50IHNoYXJlXG4gKiBAcGFyYW0ge0VuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkfSBlbmNyeXB0ZWRTaWduZXJTaGFyZSAtIHRoZSBjbGllbnQgZW5jcnlwdGVkIHNpZ25lciBzaGFyZVxuICogQHBhcmFtIHtzdHJpbmd9IFthcGlNb2RlXSAtIHRoZSB0eFJlcXVlc3QgYXBpIG1vZGUgKGZ1bGwgb3IgbGl0ZSkgLSBkZWZhdWx0cyB0byBsaXRlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxFeGNoYW5nZUNvbW1pdG1lbnRSZXNwb25zZT59IC0gdGhlIHNlcnZlciBjb21taXRtZW50IHNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGNoYW5nZUVkZHNhQ29tbWl0bWVudHMoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmcsXG4gIGNvbW1pdG1lbnRTaGFyZTogQ29tbWl0bWVudFNoYXJlUmVjb3JkLFxuICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQsXG4gIGFwaU1vZGU6ICdmdWxsJyB8ICdsaXRlJyA9ICdsaXRlJ1xuKTogUHJvbWlzZTxFeGNoYW5nZUNvbW1pdG1lbnRSZXNwb25zZT4ge1xuICBsZXQgYWRkZW5kdW0gPSAnJztcbiAgaWYgKGFwaU1vZGUgPT09ICdmdWxsJykge1xuICAgIGFkZGVuZHVtID0gJy90cmFuc2FjdGlvbnMvMCc7XG4gIH1cbiAgY29uc3QgdXJsUGF0aCA9ICcvd2FsbGV0LycgKyB3YWxsZXRJZCArICcvdHhyZXF1ZXN0cy8nICsgdHhSZXF1ZXN0SWQgKyBhZGRlbmR1bSArICcvY29tbWl0JztcbiAgcmV0dXJuIGF3YWl0IGJpdGdvLnBvc3QoYml0Z28udXJsKHVybFBhdGgsIDIpKS5zZW5kKHsgY29tbWl0bWVudFNoYXJlLCBlbmNyeXB0ZWRTaWduZXJTaGFyZSB9KS5yZXN1bHQoKTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGF0IGEgVFNTIHdhbGxldCBzaWduYXR1cmUgd2FzIHByb2R1Y2VkIHdpdGggdGhlIGV4cGVjdGVkIGtleSBhbmQgdGhhdCB0aGUgc2lnbmVkIGRhdGEgY29udGFpbnMgdGhlXG4gKiBleHBlY3RlZCBjb21tb24ga2V5Y2hhaW4gYXMgd2VsbCBhcyB0aGUgZXhwZWN0ZWQgdXNlciBhbmQgYmFja3VwIGtleSBpZHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbW1vblZlcmlmeVdhbGxldFNpZ25hdHVyZShwYXJhbXM6IHtcbiAgd2FsbGV0U2lnbmF0dXJlOiBvcGVucGdwLktleTtcbiAgYml0Z29QdWI6IG9wZW5wZ3AuS2V5O1xuICBjb21tb25LZXljaGFpbjogc3RyaW5nO1xuICB1c2VyS2V5SWQ6IHN0cmluZztcbiAgYmFja3VwS2V5SWQ6IHN0cmluZztcbn0pOiBQcm9taXNlPHsgdmFsdWU6IEFycmF5QnVmZmVyIH1bXT4ge1xuICBjb25zdCB7IHdhbGxldFNpZ25hdHVyZSwgYml0Z29QdWIsIGNvbW1vbktleWNoYWluLCB1c2VyS2V5SWQsIGJhY2t1cEtleUlkIH0gPSBwYXJhbXM7XG5cbiAgLy8gQnkgZW5zdXJpbmcgdGhhdCB0aGUgZmluZ2VycHJpbnRzIG9mIHRoZSB3YWxsZXRTaWduYXR1cmUgYW5kIHRoZSBiaXRnb1B1YiBhcmUgZGlmZmVyZW50IGFuZCB0aGF0IGFueSBvZiB0aGUgcmVzdWx0c1xuICAvLyBmcm9tIGNhbGxpbmcgdmVyaWZ5UHJpbWFyeVVzZXIgaXMgdmFsaWQgd2Uga25vdyB0aGF0IHRoZSBzaWduYXR1cmUgd2FzIGFjdHVhbGx5IHByb2R1Y2VkIGJ5IHRoZSBwcml2YXRlIGtleVxuICAvLyBiZWxvbmdpbmcgdG8gdGhlIGJpdGdvUHViLlxuICBpZiAod2FsbGV0U2lnbmF0dXJlLmtleVBhY2tldC5nZXRGaW5nZXJwcmludCgpID09PSBiaXRnb1B1Yi5rZXlQYWNrZXQuZ2V0RmluZ2VycHJpbnQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBIU00gR1BHIHNpZ25hdHVyZScpO1xuICB9XG5cbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzdWx0ID0gYXdhaXQgdmVyaWZ5UHJpbWFyeVVzZXJXcmFwcGVyKHdhbGxldFNpZ25hdHVyZSwgYml0Z29QdWIsIGZhbHNlKTtcbiAgY29uc3QgaXNWYWxpZCA9IHZlcmlmaWNhdGlvblJlc3VsdC5zb21lKChyZXN1bHQpID0+IHJlc3VsdC52YWxpZCk7XG4gIGlmICghaXNWYWxpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBIU00gR1BHIHNpZ25hdHVyZScpO1xuICB9XG4gIGNvbnN0IHByaW1hcnlVc2VyID0gYXdhaXQgd2FsbGV0U2lnbmF0dXJlLmdldFByaW1hcnlVc2VyKCk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlIHRoZSByYXdOb3RhdGlvbnMgcHJvcGVydHkgaXMgbWlzc2luZyBmcm9tIHRoZSB0eXBlIGJ1dCBpdCBhY3R1YWxseSBleGlzdHNcbiAgY29uc3QgcmF3Tm90YXRpb25zOiB7IHZhbHVlOiBVaW50OEFycmF5IH1bXSA9IHByaW1hcnlVc2VyLnVzZXIub3RoZXJDZXJ0aWZpY2F0aW9uc1swXS5yYXdOb3RhdGlvbnM7XG5cbiAgYXNzZXJ0KHJhd05vdGF0aW9ucy5sZW5ndGggPT09IDUsICdpbnZhbGlkIHdhbGxldCBzaWduYXR1cmVzJyk7XG5cbiAgYXNzZXJ0KFxuICAgIGNvbW1vbktleWNoYWluID09PSBCdWZmZXIuZnJvbShyYXdOb3RhdGlvbnNbMF0udmFsdWUpLnRvU3RyaW5nKCksXG4gICAgJ3dhbGxldCBzaWduYXR1cmUgZG9lcyBub3QgbWF0Y2ggY29tbW9uIGtleWNoYWluJ1xuICApO1xuICBhc3NlcnQodXNlcktleUlkID09PSBCdWZmZXIuZnJvbShyYXdOb3RhdGlvbnNbMV0udmFsdWUpLnRvU3RyaW5nKCksIGB3YWxsZXQgc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoIHVzZXIga2V5IGlkYCk7XG4gIGFzc2VydChcbiAgICBiYWNrdXBLZXlJZCA9PT0gQnVmZmVyLmZyb20ocmF3Tm90YXRpb25zWzJdLnZhbHVlKS50b1N0cmluZygpLFxuICAgICd3YWxsZXQgc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoIGJhY2t1cCBrZXkgaWQnXG4gICk7XG5cbiAgcmV0dXJuIHJhd05vdGF0aW9ucztcbn1cblxuLyoqXG4gKiBHZXRzIGNoYWxsZW5nZSBmb3IgYSB0eCByZXF1ZXN0IGZyb20gQml0R29cbiAqIHN1cHBvcnRzIE1lc3NhZ2UgYW5kIHJlZ3VsYXIgVHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBiaXRnb1xuICogQHBhcmFtIHdhbGxldElkXG4gKiBAcGFyYW0gdHhSZXF1ZXN0SWRcbiAqIEBwYXJhbSBpbmRleFxuICogQHBhcmFtIHJlcXVlc3RUeXBlXG4gKiBAcGFyYW0gcGFpbGxpZXJNb2R1bHVzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUeFJlcXVlc3RDaGFsbGVuZ2UoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmcsXG4gIGluZGV4OiBzdHJpbmcsXG4gIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgcGFpbGxpZXJNb2R1bHVzOiBzdHJpbmdcbik6IFByb21pc2U8VHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2U+IHtcbiAgbGV0IGFkZGVuZHVtID0gJyc7XG4gIHN3aXRjaCAocmVxdWVzdFR5cGUpIHtcbiAgICBjYXNlIFJlcXVlc3RUeXBlLnR4OlxuICAgICAgYWRkZW5kdW0gPSAnL3RyYW5zYWN0aW9ucy8nICsgaW5kZXg7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJlcXVlc3RUeXBlLm1lc3NhZ2U6XG4gICAgICBhZGRlbmR1bSA9ICcvbWVzc2FnZXMvJyArIGluZGV4O1xuICAgICAgYnJlYWs7XG4gIH1cbiAgY29uc3QgdXJsUGF0aCA9ICcvd2FsbGV0LycgKyB3YWxsZXRJZCArICcvdHhyZXF1ZXN0cy8nICsgdHhSZXF1ZXN0SWQgKyBhZGRlbmR1bSArICcvY2hhbGxlbmdlJztcbiAgcmV0dXJuIGF3YWl0IGJpdGdvLnBvc3QoYml0Z28udXJsKHVybFBhdGgsIDIpKS5zZW5kKHsgcGFpbGxpZXJNb2R1bHVzIH0pLnJlc3VsdCgpO1xufVxuIl19
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3Rzcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBSzVCLG9DQVNrQjtBQUdsQjs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxZQUFZLENBQ2hDLEtBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLEtBQXNCO0lBRXRCLE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxJQUFJLHFCQUFhLEVBQUUsQ0FBQztJQUMvQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxLQUFLO1NBQzdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxRQUFRLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hELEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ3BELEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDUixNQUFNLEVBQUUsQ0FBQztJQUVaLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLFdBQVcsRUFBRSxDQUFDLENBQUM7S0FDcEU7SUFFRCxPQUFPLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQW5CRCxvQ0FtQkM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQixDQUN0QyxLQUFnQixFQUNoQixRQUFnQixFQUNoQixXQUFtQixFQUNuQixjQUFvQyxFQUNwQyxXQUF3QixFQUN4QixXQUFvQixFQUNwQixlQUFrQyxPQUFPLEVBQ3pDLFVBQTJCLE1BQU0sRUFDakMsZ0JBQXlCLEVB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QixDQUN6QyxLQUFnQixFQUNoQixRQUFnQixFQUNoQixXQUFtQixFQUNuQixLQUFhLEVBQ2IsV0FBd0IsRUFDeEIsZUFBdUIsRUFDdkIsS0FBc0I7SUFFdEIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFFBQVEsV0FBVyxFQUFFO1FBQ25CLEtBQUssbUJBQVcsQ0FBQyxFQUFFO1lBQ2pCLFFBQVEsR0FBRyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDcEMsTUFBTTtRQUNSLEtBQUssbUJBQVcsQ0FBQyxPQUFPO1lBQ3RCLFFBQVEsR0FBRyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLE1BQU07S0FDVDtJQUNELE1BQU0sT0FBTyxHQUFHLFVBQVUsR0FBRyxRQUFRLEdBQUcsY0FBYyxHQUFHLFdBQVcsR0FBRyxRQUFRLEdBQUcsWUFBWSxDQUFDO0lBQy9GLE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxJQUFJLHFCQUFhLEVBQUUsQ0FBQztJQUMvQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsT0FBTyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3BGLENBQUM7QUF0QkQsc0RBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IG9wZW5wZ3AgZnJvbSAnb3BlbnBncCc7XG5cbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgUmVxdWVzdFR5cGUsXG4gIFR4UmVxdWVzdCxcbiAgdmVyaWZ5UHJpbWFyeVVzZXJXcmFwcGVyLFxuICBTaWduYXR1cmVTaGFyZVJlY29yZCxcbiAgQ29tbWl0bWVudFNoYXJlUmVjb3JkLFxuICBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCxcbiAgRXhjaGFuZ2VDb21taXRtZW50UmVzcG9uc2UsXG4gIFJlcXVlc3RUcmFjZXIsXG59IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vLi4vYXBpJztcblxuLyoqXG4gKiBHZXRzIHRoZSBsYXRlc3QgVHggUmVxdWVzdCBieSBpZFxuICpcbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtTdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBpZFxuICogQHBhcmFtIHtJUmVxdWVzdFRyYWNlcn0gcmVxSWQgLSB0aGUgcmVxdWVzdCB0cmFjZXIgcmVxdWVzdCBpZFxuICogQHJldHVybnMge1Byb21pc2U8VHhSZXF1ZXN0Pn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFR4UmVxdWVzdChcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlclxuKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICBjb25zdCB0eFJlcXVlc3RSZXMgPSBhd2FpdCBiaXRnb1xuICAgIC5nZXQoYml0Z28udXJsKCcvd2FsbGV0LycgKyB3YWxsZXRJZCArICcvdHhyZXF1ZXN0cycsIDIpKVxuICAgIC5xdWVyeSh7IHR4UmVxdWVzdElkczogdHhSZXF1ZXN0SWQsIGxhdGVzdDogJ3RydWUnIH0pXG4gICAgLnJldHJ5KDMpXG4gICAgLnJlc3VsdCgpO1xuXG4gIGlmICh0eFJlcXVlc3RSZXMudHhSZXF1ZXN0cy5sZW5ndGggPD0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgVHhSZXF1ZXN0IHdpdGggaWQgJHt0eFJlcXVlc3RJZH1gKTtcbiAgfVxuXG4gIHJldHVybiB0eFJlcXVlc3RSZXMudHhSZXF1ZXN0c1swXTtcbn1cblxuLyoqXG4gKiBTZW5kcyBhIFNpZ25hdHVyZSBTaGFyZVxuICpcbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtTdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZCAgKlxuICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICogQHBhcmFtIHtTaWduYXR1cmVTaGFyZVJlY29yZH0gc2lnbmF0dXJlU2hhcmUgLSBhIFNpZ25hdHVyZSBTaGFyZVxuICogQHBhcmFtIHJlcXVlc3RUeXBlIC0gVGhlIHR5cGUgb2YgcmVxdWVzdCBiZWluZyBzdWJtaXR0ZWQgKGVpdGhlciB0eCBvciBtZXNzYWdlIGZvciBzaWduaW5nKVxuICogQHBhcmFtIHNpZ25lclNoYXJlXG4gKiBAcGFyYW0gbXBjQWxnb3JpdGhtXG4gKiBAcGFyYW0gYXBpTW9kZVxuICogQHBhcmFtIHtJUmVxdWVzdFRyYWNlcn0gcmVxSWQgLSB0aGUgcmVxdWVzdCB0cmFjZXIgcmVxdWVzdCBpZFxuICogQHJldHVybnMge1Byb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+fSAtIGEgU2lnbmF0dXJlIFNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kU2lnbmF0dXJlU2hhcmUoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmcsXG4gIHNpZ25hdHVyZVNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCxcbiAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlLFxuICBzaWduZXJTaGFyZT86IHN0cmluZyxcbiAgbXBjQWxnb3JpdGhtOiAnZWRkc2EnIHwgJ2VjZHNhJyA9ICdlZGRzYScsXG4gIGFwaU1vZGU6ICdmdWxsJyB8ICdsaXRlJyA9ICdsaXRlJyxcbiAgdXNlclB1YmxpY0dwZ0tleT86IHN0cmluZyxcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlclxuKTogUHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD4ge1xuICBsZXQgYWRkZW5kdW0gPSAnJztcbiAgc3dpdGNoIChyZXF1ZXN0VHlwZSkge1xuICAgIGNhc2UgUmVxdWVzdFR5cGUudHg6XG4gICAgICBpZiAobXBjQWxnb3JpdGhtID09PSAnZWNkc2EnIHx8IGFwaU1vZGUgPT09ICdmdWxsJykge1xuICAgICAgICBhZGRlbmR1bSA9ICcvdHJhbnNhY3Rpb25zLzAnO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBSZXF1ZXN0VHlwZS5tZXNzYWdlOlxuICAgICAgaWYgKG1wY0FsZ29yaXRobSA9PT0gJ2VjZHNhJyB8fCBhcGlNb2RlID09PSAnZnVsbCcpIHtcbiAgICAgICAgYWRkZW5kdW0gPSAnL21lc3NhZ2VzLzAnO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cbiAgY29uc3QgdXJsUGF0aCA9ICcvd2FsbGV0LycgKyB3YWxsZXRJZCArICcvdHhyZXF1ZXN0cy8nICsgdHhSZXF1ZXN0SWQgKyBhZGRlbmR1bSArICcvc2lnbmF0dXJlc2hhcmVzJztcbiAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICByZXR1cm4gYml0Z29cbiAgICAucG9zdChiaXRnby51cmwodXJsUGF0aCwgMikpXG4gICAgLnNlbmQoe1xuICAgICAgc2lnbmF0dXJlU2hhcmUsXG4gICAgICBzaWduZXJTaGFyZSxcbiAgICAgIHVzZXJQdWJsaWNHcGdLZXksXG4gICAgfSlcbiAgICAucmVzdWx0KCk7XG59XG5cbi8qKlxuICogU2VuZHMgYSBTaWduYXR1cmUgU2hhcmUgdXNpbmcgdGhlIHNpZ24gdHhSZXF1ZXN0IHJvdXRlXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkICAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0gc2lnbmF0dXJlU2hhcmVzXG4gKiBAcGFyYW0gcmVxdWVzdFR5cGUgLSBUaGUgdHlwZSBvZiByZXF1ZXN0IGJlaW5nIHN1Ym1pdHRlZCAoZWl0aGVyIHR4IG9yIG1lc3NhZ2UgZm9yIHNpZ25pbmcpXG4gKiBAcGFyYW0gc2lnbmVyU2hhcmVcbiAqIEBwYXJhbSBtcGNBbGdvcml0aG1cbiAqIEBwYXJhbSBtdWx0aXNpZ1R5cGVWZXJzaW9uXG4gKiBAcGFyYW0gc2lnbmVyR3BnUHVibGljS2V5XG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD59IC0gYSBTaWduYXR1cmUgU2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRTaWduYXR1cmVTaGFyZVYyKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW10sXG4gIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgbXBjQWxnb3JpdGhtOiAnZWRkc2EnIHwgJ2VjZHNhJyxcbiAgc2lnbmVyR3BnUHVibGljS2V5OiBzdHJpbmcsXG4gIHNpZ25lclNoYXJlPzogc3RyaW5nLFxuICBtdWx0aXNpZ1R5cGVWZXJzaW9uPzogJ01QQ3YyJyB8IHVuZGVmaW5lZFxuKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgY29uc3QgYWRkZW5kdW0gPSByZXF1ZXN0VHlwZSA9PT0gUmVxdWVzdFR5cGUudHggPyAnL3RyYW5zYWN0aW9ucy8wJyA6ICcvbWVzc2FnZXMvMCc7XG4gIGNvbnN0IHVybFBhdGggPSAnL3dhbGxldC8nICsgd2FsbGV0SWQgKyAnL3R4cmVxdWVzdHMvJyArIHR4UmVxdWVzdElkICsgYWRkZW5kdW0gKyAnL3NpZ24nO1xuICBsZXQgdHlwZSA9ICcnO1xuICBpZiAobXVsdGlzaWdUeXBlVmVyc2lvbiA9PT0gJ01QQ3YyJyAmJiBtcGNBbGdvcml0aG0gPT09ICdlY2RzYScpIHtcbiAgICB0eXBlID0gJ2VjZHNhTXBjVjInO1xuICB9IGVsc2UgaWYgKG11bHRpc2lnVHlwZVZlcnNpb24gPT09IHVuZGVmaW5lZCAmJiBtcGNBbGdvcml0aG0gPT09ICdlZGRzYScpIHtcbiAgICB0eXBlID0gJ2VkZHNhTXBjVjEnO1xuICB9XG4gIGNvbnN0IHJlcXVlc3RCb2R5ID0ge1xuICAgIHR5cGUsXG4gICAgc2lnbmF0dXJlU2hhcmVzLFxuICAgIHNpZ25lclNoYXJlLFxuICAgIHNpZ25lckdwZ1B1YmxpY0tleSxcbiAgfTtcbiAgcmV0dXJuIGJpdGdvLnBvc3QoYml0Z28udXJsKHVybFBhdGgsIDIpKS5zZW5kKHJlcXVlc3RCb2R5KS5yZXN1bHQoKTtcbn1cblxuLyoqXG4gKiBTZW5kcyBhIFRyYW5zYWN0aW9uIFJlcXVlc3QgZm9yIGJyb2FkY2FzdCBvbmNlIHNpZ25pbmcgaXMgY29tcGxldGVcbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWQgICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEBwYXJhbSByZXF1ZXN0VHlwZSAtIFRoZSB0eXBlIG9mIHJlcXVlc3QgYmVpbmcgc3VibWl0dGVkIChlaXRoZXIgdHggb3IgbWVzc2FnZSBmb3Igc2lnbmluZylcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPn0gLSBhIFNpZ25hdHVyZSBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFR4UmVxdWVzdChcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlXG4pOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICBjb25zdCBhZGRlbmR1bSA9IHJlcXVlc3RUeXBlID09PSBSZXF1ZXN0VHlwZS50eCA/ICcvdHJhbnNhY3Rpb25zLzAnIDogJy9tZXNzYWdlcy8wJztcbiAgY29uc3QgdXJsUGF0aCA9ICcvd2FsbGV0LycgKyB3YWxsZXRJZCArICcvdHhyZXF1ZXN0cy8nICsgdHhSZXF1ZXN0SWQgKyBhZGRlbmR1bSArICcvc2VuZCc7XG4gIHJldHVybiBiaXRnby5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSkuc2VuZCgpLnJlc3VsdCgpO1xufVxuXG4vKipcbiAqIFNlbmRzIHRoZSBjbGllbnQgY29tbWl0bWVudCBhbmQgZW5jcnlwdGVkIHNpZ25lciBzaGFyZSB0byB0aGUgc2VydmVyLCBnZXR0aW5nIGJhY2sgdGhlIHNlcnZlciBjb21taXRtZW50XG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7c3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEBwYXJhbSB7Q29tbWl0bWVudFNoYXJlUmVjb3JkfSBjb21taXRtZW50U2hhcmUgLSB0aGUgY2xpZW50IGNvbW1pdG1lbnQgc2hhcmVcbiAqIEBwYXJhbSB7RW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmR9IGVuY3J5cHRlZFNpZ25lclNoYXJlIC0gdGhlIGNsaWVudCBlbmNyeXB0ZWQgc2lnbmVyIHNoYXJlXG4gKiBAcGFyYW0ge3N0cmluZ30gW2FwaU1vZGVdIC0gdGhlIHR4UmVxdWVzdCBhcGkgbW9kZSAoZnVsbCBvciBsaXRlKSAtIGRlZmF1bHRzIHRvIGxpdGVcbiAqIEBwYXJhbSB7SVJlcXVlc3RUcmFjZXJ9IHJlcUlkIC0gdGhlIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgSWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPEV4Y2hhbmdlQ29tbWl0bWVudFJlc3BvbnNlPn0gLSB0aGUgc2VydmVyIGNvbW1pdG1lbnQgc2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlRWRkc2FDb21taXRtZW50cyhcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgY29tbWl0bWVudFNoYXJlOiBDb21taXRtZW50U2hhcmVSZWNvcmQsXG4gIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCxcbiAgYXBpTW9kZTogJ2Z1bGwnIHwgJ2xpdGUnID0gJ2xpdGUnLFxuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyXG4pOiBQcm9taXNlPEV4Y2hhbmdlQ29tbWl0bWVudFJlc3BvbnNlPiB7XG4gIGxldCBhZGRlbmR1bSA9ICcnO1xuICBpZiAoYXBpTW9kZSA9PT0gJ2Z1bGwnKSB7XG4gICAgYWRkZW5kdW0gPSAnL3RyYW5zYWN0aW9ucy8wJztcbiAgfVxuICBjb25zdCB1cmxQYXRoID0gJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzLycgKyB0eFJlcXVlc3RJZCArIGFkZGVuZHVtICsgJy9jb21taXQnO1xuICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICBiaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gIHJldHVybiBhd2FpdCBiaXRnby5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSkuc2VuZCh7IGNvbW1pdG1lbnRTaGFyZSwgZW5jcnlwdGVkU2lnbmVyU2hhcmUgfSkucmVzdWx0KCk7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhhdCBhIFRTUyB3YWxsZXQgc2lnbmF0dXJlIHdhcyBwcm9kdWNlZCB3aXRoIHRoZSBleHBlY3RlZCBrZXkgYW5kIHRoYXQgdGhlIHNpZ25lZCBkYXRhIGNvbnRhaW5zIHRoZVxuICogZXhwZWN0ZWQgY29tbW9uIGtleWNoYWluIGFzIHdlbGwgYXMgdGhlIGV4cGVjdGVkIHVzZXIgYW5kIGJhY2t1cCBrZXkgaWRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb21tb25WZXJpZnlXYWxsZXRTaWduYXR1cmUocGFyYW1zOiB7XG4gIHdhbGxldFNpZ25hdHVyZTogb3BlbnBncC5LZXk7XG4gIGJpdGdvUHViOiBvcGVucGdwLktleTtcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgdXNlcktleUlkOiBzdHJpbmc7XG4gIGJhY2t1cEtleUlkOiBzdHJpbmc7XG59KTogUHJvbWlzZTx7IHZhbHVlOiBBcnJheUJ1ZmZlciB9W10+IHtcbiAgY29uc3QgeyB3YWxsZXRTaWduYXR1cmUsIGJpdGdvUHViLCBjb21tb25LZXljaGFpbiwgdXNlcktleUlkLCBiYWNrdXBLZXlJZCB9ID0gcGFyYW1zO1xuXG4gIC8vIEJ5IGVuc3VyaW5nIHRoYXQgdGhlIGZpbmdlcnByaW50cyBvZiB0aGUgd2FsbGV0U2lnbmF0dXJlIGFuZCB0aGUgYml0Z29QdWIgYXJlIGRpZmZlcmVudCBhbmQgdGhhdCBhbnkgb2YgdGhlIHJlc3VsdHNcbiAgLy8gZnJvbSBjYWxsaW5nIHZlcmlmeVByaW1hcnlVc2VyIGlzIHZhbGlkIHdlIGtub3cgdGhhdCB0aGUgc2lnbmF0dXJlIHdhcyBhY3R1YWxseSBwcm9kdWNlZCBieSB0aGUgcHJpdmF0ZSBrZXlcbiAgLy8gYmVsb25naW5nIHRvIHRoZSBiaXRnb1B1Yi5cbiAgaWYgKHdhbGxldFNpZ25hdHVyZS5rZXlQYWNrZXQuZ2V0RmluZ2VycHJpbnQoKSA9PT0gYml0Z29QdWIua2V5UGFja2V0LmdldEZpbmdlcnByaW50KCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgSFNNIEdQRyBzaWduYXR1cmUnKTtcbiAgfVxuXG4gIGNvbnN0IHZlcmlmaWNhdGlvblJlc3VsdCA9IGF3YWl0IHZlcmlmeVByaW1hcnlVc2VyV3JhcHBlcih3YWxsZXRTaWduYXR1cmUsIGJpdGdvUHViLCBmYWxzZSk7XG4gIGNvbnN0IGlzVmFsaWQgPSB2ZXJpZmljYXRpb25SZXN1bHQuc29tZSgocmVzdWx0KSA9PiByZXN1bHQudmFsaWQpO1xuICBpZiAoIWlzVmFsaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgSFNNIEdQRyBzaWduYXR1cmUnKTtcbiAgfVxuICBjb25zdCBwcmltYXJ5VXNlciA9IGF3YWl0IHdhbGxldFNpZ25hdHVyZS5nZXRQcmltYXJ5VXNlcigpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgLy8gQHRzLWlnbm9yZSB0aGUgcmF3Tm90YXRpb25zIHByb3BlcnR5IGlzIG1pc3NpbmcgZnJvbSB0aGUgdHlwZSBidXQgaXQgYWN0dWFsbHkgZXhpc3RzXG4gIGNvbnN0IHJhd05vdGF0aW9uczogeyB2YWx1ZTogVWludDhBcnJheSB9W10gPSBwcmltYXJ5VXNlci51c2VyLm90aGVyQ2VydGlmaWNhdGlvbnNbMF0ucmF3Tm90YXRpb25zO1xuXG4gIGFzc2VydChyYXdOb3RhdGlvbnMubGVuZ3RoID09PSA1LCAnaW52YWxpZCB3YWxsZXQgc2lnbmF0dXJlcycpO1xuXG4gIGFzc2VydChcbiAgICBjb21tb25LZXljaGFpbiA9PT0gQnVmZmVyLmZyb20ocmF3Tm90YXRpb25zWzBdLnZhbHVlKS50b1N0cmluZygpLFxuICAgICd3YWxsZXQgc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoIGNvbW1vbiBrZXljaGFpbidcbiAgKTtcbiAgYXNzZXJ0KHVzZXJLZXlJZCA9PT0gQnVmZmVyLmZyb20ocmF3Tm90YXRpb25zWzFdLnZhbHVlKS50b1N0cmluZygpLCBgd2FsbGV0IHNpZ25hdHVyZSBkb2VzIG5vdCBtYXRjaCB1c2VyIGtleSBpZGApO1xuICBhc3NlcnQoXG4gICAgYmFja3VwS2V5SWQgPT09IEJ1ZmZlci5mcm9tKHJhd05vdGF0aW9uc1syXS52YWx1ZSkudG9TdHJpbmcoKSxcbiAgICAnd2FsbGV0IHNpZ25hdHVyZSBkb2VzIG5vdCBtYXRjaCBiYWNrdXAga2V5IGlkJ1xuICApO1xuXG4gIHJldHVybiByYXdOb3RhdGlvbnM7XG59XG5cbi8qKlxuICogR2V0cyBjaGFsbGVuZ2UgZm9yIGEgdHggcmVxdWVzdCBmcm9tIEJpdEdvXG4gKiBzdXBwb3J0cyBNZXNzYWdlIGFuZCByZWd1bGFyIFRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gYml0Z29cbiAqIEBwYXJhbSB3YWxsZXRJZFxuICogQHBhcmFtIHR4UmVxdWVzdElkXG4gKiBAcGFyYW0gaW5kZXhcbiAqIEBwYXJhbSByZXF1ZXN0VHlwZVxuICogQHBhcmFtIHBhaWxsaWVyTW9kdWx1c1xuICogQHBhcmFtIHJlcUlkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUeFJlcXVlc3RDaGFsbGVuZ2UoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmcsXG4gIGluZGV4OiBzdHJpbmcsXG4gIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgcGFpbGxpZXJNb2R1bHVzOiBzdHJpbmcsXG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXJcbik6IFByb21pc2U8VHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2U+IHtcbiAgbGV0IGFkZGVuZHVtID0gJyc7XG4gIHN3aXRjaCAocmVxdWVzdFR5cGUpIHtcbiAgICBjYXNlIFJlcXVlc3RUeXBlLnR4OlxuICAgICAgYWRkZW5kdW0gPSAnL3RyYW5zYWN0aW9ucy8nICsgaW5kZXg7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJlcXVlc3RUeXBlLm1lc3NhZ2U6XG4gICAgICBhZGRlbmR1bSA9ICcvbWVzc2FnZXMvJyArIGluZGV4O1xuICAgICAgYnJlYWs7XG4gIH1cbiAgY29uc3QgdXJsUGF0aCA9ICcvd2FsbGV0LycgKyB3YWxsZXRJZCArICcvdHhyZXF1ZXN0cy8nICsgdHhSZXF1ZXN0SWQgKyBhZGRlbmR1bSArICcvY2hhbGxlbmdlJztcbiAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICByZXR1cm4gYXdhaXQgYml0Z28ucG9zdChiaXRnby51cmwodXJsUGF0aCwgMikpLnNlbmQoeyBwYWlsbGllck1vZHVsdXMgfSkucmVzdWx0KCk7XG59XG4iXX0=
@@ -8,6 +8,7 @@ import { KShare, MUShare, SignConvertStep2Response, SShare } from '../../../acco
8
8
  import * as pgp from 'openpgp';
9
9
  import { ApiKeyShare } from '../../keychain';
10
10
  import { Hash } from 'crypto';
11
+ import { IRequestTracer } from '../../../api';
11
12
  /**
12
13
  * Combines NShares to combine the final TSS key
13
14
  * This can only be used to create the User or Backup key since it requires the common keychain from BitGo first
@@ -64,18 +65,20 @@ export declare type MuDShare = {
64
65
  * @param privateShareProof - the uSig of the share
65
66
  * @param publicShare - the y value of the share
66
67
  * @param userPublicGpgKey - the public key of the gpg key used for creating the privateShareProof
68
+ * @param reqId - request tracer request id
67
69
  * @returns {Promise<SignatureShareRecord>} - a Signature Share
68
70
  */
69
- export declare function sendShareToBitgo(bitgo: BitGoBase, walletId: string, txRequestId: string, requestType: RequestType, shareType: SendShareType, share: SShare | MuDShare | KShare, signerShare?: string, vssProof?: string, privateShareProof?: string, publicShare?: string, userPublicGpgKey?: string): Promise<SendShareToBitgoRT>;
71
+ export declare function sendShareToBitgo(bitgo: BitGoBase, walletId: string, txRequestId: string, requestType: RequestType, shareType: SendShareType, share: SShare | MuDShare | KShare, signerShare?: string, vssProof?: string, privateShareProof?: string, publicShare?: string, userPublicGpgKey?: string, reqId?: IRequestTracer): Promise<SendShareToBitgoRT>;
70
72
  /**
71
73
  * Gets the latest user's share from bitgo needed to continue signing flow
72
74
  * @param {BitGoBase} bitgo - the bitgo instance
73
75
  * @param {String} walletId - the wallet id *
74
76
  * @param {String} txRequestId - the txRequest Id
75
77
  * @param {ReceivedShareType} shareType - the excpected share type
78
+ * @param {IRequestTracer} reqId - request tracer request id
76
79
  * @returns {Promise<SendShareToBitgoRT>} - share from bitgo to user
77
80
  */
78
- export declare function getBitgoToUserLatestShare(bitgo: BitGoBase, walletId: string, txRequestId: string, shareType: ReceivedShareType, requestType: RequestType): Promise<SendShareToBitgoRT>;
81
+ export declare function getBitgoToUserLatestShare(bitgo: BitGoBase, walletId: string, txRequestId: string, shareType: ReceivedShareType, requestType: RequestType, reqId?: IRequestTracer): Promise<SendShareToBitgoRT>;
79
82
  /**
80
83
  * Prepares a NShare to be exchanged with other key holders.
81
84
  * Output is in a format that is usable within BitGo's ecosystem.
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}