@bitgo/sdk-core 36.44.0 → 37.1.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 (121) hide show
  1. package/dist/src/account-lib/baseCoin/enum.d.ts +22 -15
  2. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  3. package/dist/src/account-lib/baseCoin/enum.js +30 -16
  4. package/dist/src/api/types.d.ts +12 -0
  5. package/dist/src/api/types.d.ts.map +1 -1
  6. package/dist/src/api/types.js +1 -1
  7. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +1 -0
  8. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  9. package/dist/src/bitgo/baseCoin/baseCoin.js +4 -1
  10. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +11 -0
  11. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  12. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  13. package/dist/src/bitgo/bitgoBase.d.ts +3 -1
  14. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  15. package/dist/src/bitgo/bitgoBase.js +1 -1
  16. package/dist/src/bitgo/environments.d.ts +1 -0
  17. package/dist/src/bitgo/environments.d.ts.map +1 -1
  18. package/dist/src/bitgo/environments.js +9 -1
  19. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +12 -1
  20. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -1
  21. package/dist/src/bitgo/keychain/decryptKeychain.js +34 -2
  22. package/dist/src/bitgo/keychain/iKeychains.d.ts +7 -1
  23. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  24. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  25. package/dist/src/bitgo/keychain/keychains.d.ts +19 -2
  26. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  27. package/dist/src/bitgo/keychain/keychains.js +74 -8
  28. package/dist/src/bitgo/trading/iTradingAccount.d.ts +13 -1
  29. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
  30. package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
  31. package/dist/src/bitgo/trading/network/network.d.ts +1 -1
  32. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -1
  33. package/dist/src/bitgo/trading/network/network.js +3 -5
  34. package/dist/src/bitgo/trading/network/types.d.ts +1 -1
  35. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -1
  36. package/dist/src/bitgo/trading/network/types.js +1 -1
  37. package/dist/src/bitgo/trading/tradingAccount.d.ts +15 -1
  38. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  39. package/dist/src/bitgo/trading/tradingAccount.js +55 -7
  40. package/dist/src/bitgo/tss/common.d.ts +2 -1
  41. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  42. package/dist/src/bitgo/tss/common.js +10 -1
  43. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +37 -0
  44. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  45. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +95 -0
  46. package/dist/src/bitgo/utils/mpcUtils.d.ts +2 -1
  47. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  48. package/dist/src/bitgo/utils/mpcUtils.js +8 -1
  49. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -1
  50. package/dist/src/bitgo/utils/tss/addressVerification.js +10 -3
  51. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +38 -4
  52. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  53. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +66 -1
  54. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +95 -17
  55. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  56. package/dist/src/bitgo/utils/tss/baseTypes.js +26 -2
  57. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +10 -7
  58. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  59. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +39 -11
  60. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +14 -21
  61. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
  62. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +170 -104
  63. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +9 -6
  64. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  65. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +96 -38
  66. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +34 -2
  67. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
  68. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +184 -6
  69. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -1
  70. package/dist/src/bitgo/utils/txRequest.js +6 -4
  71. package/dist/src/bitgo/wallet/BuildParams.d.ts +20 -0
  72. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  73. package/dist/src/bitgo/wallet/BuildParams.js +12 -2
  74. package/dist/src/bitgo/wallet/iWallet.d.ts +60 -2
  75. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  76. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  77. package/dist/src/bitgo/wallet/iWallets.d.ts +20 -19
  78. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  79. package/dist/src/bitgo/wallet/iWallets.js +16 -8
  80. package/dist/src/bitgo/wallet/wallet.d.ts +84 -3
  81. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  82. package/dist/src/bitgo/wallet/wallet.js +347 -14
  83. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  84. package/dist/src/bitgo/wallet/wallets.js +49 -23
  85. package/dist/src/coins/ofc.d.ts +15 -1
  86. package/dist/src/coins/ofc.d.ts.map +1 -1
  87. package/dist/src/coins/ofc.js +8 -1
  88. package/dist/src/coins/ofcToken.d.ts +14 -4
  89. package/dist/src/coins/ofcToken.d.ts.map +1 -1
  90. package/dist/src/coins/ofcToken.js +17 -4
  91. package/dist/src/index.d.ts +2 -0
  92. package/dist/src/index.d.ts.map +1 -1
  93. package/dist/src/index.js +4 -2
  94. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
  95. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
  96. package/dist/test/unit/bitgo/trading/tradingAccount.js +192 -0
  97. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +119 -1
  98. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts +2 -0
  99. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
  100. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +305 -0
  101. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +354 -1
  102. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
  103. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  104. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +442 -0
  105. package/dist/test/unit/bitgo/utils/txRequest.js +75 -1
  106. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
  107. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
  108. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +185 -0
  109. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
  110. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
  111. package/dist/test/unit/bitgo/wallet/resourceManagement.js +441 -0
  112. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
  113. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
  114. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +43 -0
  115. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +45 -1
  116. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +5 -2
  117. package/dist/test/unit/coins/ofc.d.ts +2 -0
  118. package/dist/test/unit/coins/ofc.d.ts.map +1 -0
  119. package/dist/test/unit/coins/ofc.js +124 -0
  120. package/dist/tsconfig.tsbuildinfo +1 -1
  121. package/package.json +5 -5
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSignatureShareRoundOne = getSignatureShareRoundOne;
4
+ exports.verifyPeerMessageRoundOne = verifyPeerMessageRoundOne;
5
+ exports.getSignatureShareRoundTwo = getSignatureShareRoundTwo;
6
+ exports.verifyPeerMessageRoundTwo = verifyPeerMessageRoundTwo;
7
+ exports.getSignatureShareRoundThree = getSignatureShareRoundThree;
8
+ const sdk_lib_mpc_1 = require("@bitgo/sdk-lib-mpc");
9
+ const baseTypes_1 = require("../../utils/tss/baseTypes");
10
+ const typesMPCv2_1 = require("../../utils/tss/ecdsa/typesMPCv2");
11
+ function partyIdToSignatureShareType(partyId) {
12
+ switch (partyId) {
13
+ case typesMPCv2_1.MPCv2PartiesEnum.USER:
14
+ return baseTypes_1.SignatureShareType.USER;
15
+ case typesMPCv2_1.MPCv2PartiesEnum.BACKUP:
16
+ return baseTypes_1.SignatureShareType.BACKUP;
17
+ case typesMPCv2_1.MPCv2PartiesEnum.BITGO:
18
+ return baseTypes_1.SignatureShareType.BITGO;
19
+ }
20
+ }
21
+ /**
22
+ * Builds the round-1 signature share record.
23
+ *
24
+ * PGP-signs the WASM round-0 broadcast message with the signer's ephemeral key and
25
+ * wraps it into a SignatureShareRecord ready for `sendSignatureShareV2`.
26
+ */
27
+ async function getSignatureShareRoundOne(userMsg1, userGpgPrivKey, partyId = typesMPCv2_1.MPCv2PartiesEnum.USER, otherSignerPartyId = typesMPCv2_1.MPCv2PartiesEnum.BITGO) {
28
+ const signedMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg1.payload), userGpgPrivKey);
29
+ const share = {
30
+ type: 'round1Input',
31
+ data: { msg1: signedMsg1 },
32
+ };
33
+ return {
34
+ from: partyIdToSignatureShareType(partyId),
35
+ to: partyIdToSignatureShareType(otherSignerPartyId),
36
+ share: JSON.stringify(share),
37
+ };
38
+ }
39
+ /**
40
+ * Verifies the peer's round-1 PGP signature and returns the raw deserialized
41
+ * message ready for `DSG.handleIncomingMessages`.
42
+ */
43
+ async function verifyPeerMessageRoundOne(parsedRound1Output, peerGpgKey, peerPartyId = typesMPCv2_1.MPCv2PartiesEnum.BITGO) {
44
+ const rawBytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(parsedRound1Output.data.msg1, peerGpgKey);
45
+ return {
46
+ from: peerPartyId,
47
+ payload: new Uint8Array(rawBytes),
48
+ };
49
+ }
50
+ /**
51
+ * Builds the round-2 signature share record.
52
+ */
53
+ async function getSignatureShareRoundTwo(userMsg2, userGpgPrivKey, partyId = typesMPCv2_1.MPCv2PartiesEnum.USER, otherSignerPartyId = typesMPCv2_1.MPCv2PartiesEnum.BITGO) {
54
+ const signedMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg2.payload), userGpgPrivKey);
55
+ const share = {
56
+ type: 'round2Input',
57
+ data: { msg2: signedMsg2 },
58
+ };
59
+ return {
60
+ from: partyIdToSignatureShareType(partyId),
61
+ to: partyIdToSignatureShareType(otherSignerPartyId),
62
+ share: JSON.stringify(share),
63
+ };
64
+ }
65
+ /**
66
+ * Verifies the peer's round-2 PGP signature and returns the raw deserialized
67
+ * message ready for `DSG.handleIncomingMessages`.
68
+ */
69
+ async function verifyPeerMessageRoundTwo(parsedRound2Output, peerGpgKey, peerPartyId = typesMPCv2_1.MPCv2PartiesEnum.BITGO) {
70
+ const rawBytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(parsedRound2Output.data.msg2, peerGpgKey);
71
+ return {
72
+ from: peerPartyId,
73
+ payload: new Uint8Array(rawBytes),
74
+ };
75
+ }
76
+ /**
77
+ * Builds the round-3 signature share record (final signer message).
78
+ *
79
+ * There is no corresponding `verifyBitGoMessageRoundThree` because Wallet Platform
80
+ * finalises the signing server-side after receiving round 3; the client obtains the
81
+ * signed transaction via `sendTxRequest`.
82
+ */
83
+ async function getSignatureShareRoundThree(userMsg3, userGpgPrivKey, partyId = typesMPCv2_1.MPCv2PartiesEnum.USER, otherSignerPartyId = typesMPCv2_1.MPCv2PartiesEnum.BITGO) {
84
+ const signedMsg3 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg3.payload), userGpgPrivKey);
85
+ const share = {
86
+ type: 'round3Input',
87
+ data: { msg3: signedMsg3 },
88
+ };
89
+ return {
90
+ from: partyIdToSignatureShareType(partyId),
91
+ to: partyIdToSignatureShareType(otherSignerPartyId),
92
+ share: JSON.stringify(share),
93
+ };
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FNUEN2Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby90c3MvZWRkc2EvZWRkc2FNUEN2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStCQSw4REFnQkM7QUFNRCw4REFVQztBQUtELDhEQWdCQztBQU1ELDhEQVVDO0FBU0Qsa0VBZ0JDO0FBNUhELG9EQUF3RDtBQVF4RCx5REFBcUY7QUFDckYsaUVBQW9FO0FBSXBFLFNBQVMsMkJBQTJCLENBQUMsT0FBeUI7SUFDNUQsUUFBUSxPQUFPLEVBQUUsQ0FBQztRQUNoQixLQUFLLDZCQUFnQixDQUFDLElBQUk7WUFDeEIsT0FBTyw4QkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDakMsS0FBSyw2QkFBZ0IsQ0FBQyxNQUFNO1lBQzFCLE9BQU8sOEJBQWtCLENBQUMsTUFBTSxDQUFDO1FBQ25DLEtBQUssNkJBQWdCLENBQUMsS0FBSztZQUN6QixPQUFPLDhCQUFrQixDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxRQUFzQyxFQUN0QyxjQUFrQyxFQUNsQyxVQUF5Qiw2QkFBZ0IsQ0FBQyxJQUFJLEVBQzlDLHFCQUF1Qyw2QkFBZ0IsQ0FBQyxLQUFLO0lBRTdELE1BQU0sVUFBVSxHQUFHLE1BQU0sc0JBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RyxNQUFNLEtBQUssR0FBd0M7UUFDakQsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtLQUMzQixDQUFDO0lBQ0YsT0FBTztRQUNMLElBQUksRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7UUFDMUMsRUFBRSxFQUFFLDJCQUEyQixDQUFDLGtCQUFrQixDQUFDO1FBQ25ELEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0Msa0JBQXdELEVBQ3hELFVBQXVCLEVBQ3ZCLGNBQWdDLDZCQUFnQixDQUFDLEtBQUs7SUFFdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxzQkFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0YsT0FBTztRQUNMLElBQUksRUFBRSxXQUFXO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUM7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsUUFBc0MsRUFDdEMsY0FBa0MsRUFDbEMsVUFBeUIsNkJBQWdCLENBQUMsSUFBSSxFQUM5QyxxQkFBdUMsNkJBQWdCLENBQUMsS0FBSztJQUU3RCxNQUFNLFVBQVUsR0FBRyxNQUFNLHNCQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDdEcsTUFBTSxLQUFLLEdBQXdDO1FBQ2pELElBQUksRUFBRSxhQUFhO1FBQ25CLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7S0FDM0IsQ0FBQztJQUNGLE9BQU87UUFDTCxJQUFJLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1FBQzFDLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUseUJBQXlCLENBQzdDLGtCQUF3RCxFQUN4RCxVQUF1QixFQUN2QixjQUFnQyw2QkFBZ0IsQ0FBQyxLQUFLO0lBRXRELE1BQU0sUUFBUSxHQUFHLE1BQU0sc0JBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNGLE9BQU87UUFDTCxJQUFJLEVBQUUsV0FBVztRQUNqQixPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxRQUFzQyxFQUN0QyxjQUFrQyxFQUNsQyxVQUF5Qiw2QkFBZ0IsQ0FBQyxJQUFJLEVBQzlDLHFCQUF1Qyw2QkFBZ0IsQ0FBQyxLQUFLO0lBRTdELE1BQU0sVUFBVSxHQUFHLE1BQU0sc0JBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RyxNQUFNLEtBQUssR0FBd0M7UUFDakQsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtLQUMzQixDQUFDO0lBQ0YsT0FBTztRQUNMLElBQUksRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7UUFDMUMsRUFBRSxFQUFFLDJCQUEyQixDQUFDLGtCQUFrQixDQUFDO1FBQ25ELEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9wZW5wZ3AgZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBNUFNDb21tcywgTVBTVHlwZXMgfSBmcm9tICdAYml0Z28vc2RrLWxpYi1tcGMnO1xuaW1wb3J0IHtcbiAgRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQxSW5wdXQsXG4gIEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMU91dHB1dCxcbiAgRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQySW5wdXQsXG4gIEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMk91dHB1dCxcbiAgRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQzSW5wdXQsXG59IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgU2lnbmF0dXJlU2hhcmVSZWNvcmQsIFNpZ25hdHVyZVNoYXJlVHlwZSB9IGZyb20gJy4uLy4uL3V0aWxzL3Rzcy9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgTVBDdjJQYXJ0aWVzRW51bSB9IGZyb20gJy4uLy4uL3V0aWxzL3Rzcy9lY2RzYS90eXBlc01QQ3YyJztcblxudHlwZSBTaWduZXJQYXJ0eUlkID0gTVBDdjJQYXJ0aWVzRW51bS5VU0VSIHwgTVBDdjJQYXJ0aWVzRW51bS5CQUNLVVA7XG5cbmZ1bmN0aW9uIHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShwYXJ0eUlkOiBNUEN2MlBhcnRpZXNFbnVtKTogU2lnbmF0dXJlU2hhcmVUeXBlIHtcbiAgc3dpdGNoIChwYXJ0eUlkKSB7XG4gICAgY2FzZSBNUEN2MlBhcnRpZXNFbnVtLlVTRVI6XG4gICAgICByZXR1cm4gU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVI7XG4gICAgY2FzZSBNUEN2MlBhcnRpZXNFbnVtLkJBQ0tVUDpcbiAgICAgIHJldHVybiBTaWduYXR1cmVTaGFyZVR5cGUuQkFDS1VQO1xuICAgIGNhc2UgTVBDdjJQYXJ0aWVzRW51bS5CSVRHTzpcbiAgICAgIHJldHVybiBTaWduYXR1cmVTaGFyZVR5cGUuQklUR087XG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHJvdW5kLTEgc2lnbmF0dXJlIHNoYXJlIHJlY29yZC5cbiAqXG4gKiBQR1Atc2lnbnMgdGhlIFdBU00gcm91bmQtMCBicm9hZGNhc3QgbWVzc2FnZSB3aXRoIHRoZSBzaWduZXIncyBlcGhlbWVyYWwga2V5IGFuZFxuICogd3JhcHMgaXQgaW50byBhIFNpZ25hdHVyZVNoYXJlUmVjb3JkIHJlYWR5IGZvciBgc2VuZFNpZ25hdHVyZVNoYXJlVjJgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2lnbmF0dXJlU2hhcmVSb3VuZE9uZShcbiAgdXNlck1zZzE6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2UsXG4gIHVzZXJHcGdQcml2S2V5OiBvcGVucGdwLlByaXZhdGVLZXksXG4gIHBhcnR5SWQ6IFNpZ25lclBhcnR5SWQgPSBNUEN2MlBhcnRpZXNFbnVtLlVTRVIsXG4gIG90aGVyU2lnbmVyUGFydHlJZDogTVBDdjJQYXJ0aWVzRW51bSA9IE1QQ3YyUGFydGllc0VudW0uQklUR09cbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+IHtcbiAgY29uc3Qgc2lnbmVkTXNnMSA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKHVzZXJNc2cxLnBheWxvYWQpLCB1c2VyR3BnUHJpdktleSk7XG4gIGNvbnN0IHNoYXJlOiBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDFJbnB1dCA9IHtcbiAgICB0eXBlOiAncm91bmQxSW5wdXQnLFxuICAgIGRhdGE6IHsgbXNnMTogc2lnbmVkTXNnMSB9LFxuICB9O1xuICByZXR1cm4ge1xuICAgIGZyb206IHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShwYXJ0eUlkKSxcbiAgICB0bzogcGFydHlJZFRvU2lnbmF0dXJlU2hhcmVUeXBlKG90aGVyU2lnbmVyUGFydHlJZCksXG4gICAgc2hhcmU6IEpTT04uc3RyaW5naWZ5KHNoYXJlKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGUgcGVlcidzIHJvdW5kLTEgUEdQIHNpZ25hdHVyZSBhbmQgcmV0dXJucyB0aGUgcmF3IGRlc2VyaWFsaXplZFxuICogbWVzc2FnZSByZWFkeSBmb3IgYERTRy5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVBlZXJNZXNzYWdlUm91bmRPbmUoXG4gIHBhcnNlZFJvdW5kMU91dHB1dDogRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQxT3V0cHV0LFxuICBwZWVyR3BnS2V5OiBvcGVucGdwLktleSxcbiAgcGVlclBhcnR5SWQ6IE1QQ3YyUGFydGllc0VudW0gPSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPXG4pOiBQcm9taXNlPE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2U+IHtcbiAgY29uc3QgcmF3Qnl0ZXMgPSBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKHBhcnNlZFJvdW5kMU91dHB1dC5kYXRhLm1zZzEsIHBlZXJHcGdLZXkpO1xuICByZXR1cm4ge1xuICAgIGZyb206IHBlZXJQYXJ0eUlkLFxuICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KHJhd0J5dGVzKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHJvdW5kLTIgc2lnbmF0dXJlIHNoYXJlIHJlY29yZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNpZ25hdHVyZVNoYXJlUm91bmRUd28oXG4gIHVzZXJNc2cyOiBNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlLFxuICB1c2VyR3BnUHJpdktleTogb3BlbnBncC5Qcml2YXRlS2V5LFxuICBwYXJ0eUlkOiBTaWduZXJQYXJ0eUlkID0gTVBDdjJQYXJ0aWVzRW51bS5VU0VSLFxuICBvdGhlclNpZ25lclBhcnR5SWQ6IE1QQ3YyUGFydGllc0VudW0gPSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPXG4pOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPiB7XG4gIGNvbnN0IHNpZ25lZE1zZzIgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZShCdWZmZXIuZnJvbSh1c2VyTXNnMi5wYXlsb2FkKSwgdXNlckdwZ1ByaXZLZXkpO1xuICBjb25zdCBzaGFyZTogRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQySW5wdXQgPSB7XG4gICAgdHlwZTogJ3JvdW5kMklucHV0JyxcbiAgICBkYXRhOiB7IG1zZzI6IHNpZ25lZE1zZzIgfSxcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBmcm9tOiBwYXJ0eUlkVG9TaWduYXR1cmVTaGFyZVR5cGUocGFydHlJZCksXG4gICAgdG86IHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShvdGhlclNpZ25lclBhcnR5SWQpLFxuICAgIHNoYXJlOiBKU09OLnN0cmluZ2lmeShzaGFyZSksXG4gIH07XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhlIHBlZXIncyByb3VuZC0yIFBHUCBzaWduYXR1cmUgYW5kIHJldHVybnMgdGhlIHJhdyBkZXNlcmlhbGl6ZWRcbiAqIG1lc3NhZ2UgcmVhZHkgZm9yIGBEU0cuaGFuZGxlSW5jb21pbmdNZXNzYWdlc2AuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlQZWVyTWVzc2FnZVJvdW5kVHdvKFxuICBwYXJzZWRSb3VuZDJPdXRwdXQ6IEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMk91dHB1dCxcbiAgcGVlckdwZ0tleTogb3BlbnBncC5LZXksXG4gIHBlZXJQYXJ0eUlkOiBNUEN2MlBhcnRpZXNFbnVtID0gTVBDdjJQYXJ0aWVzRW51bS5CSVRHT1xuKTogUHJvbWlzZTxNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlPiB7XG4gIGNvbnN0IHJhd0J5dGVzID0gYXdhaXQgTVBTQ29tbXMudmVyaWZ5TXBzTWVzc2FnZShwYXJzZWRSb3VuZDJPdXRwdXQuZGF0YS5tc2cyLCBwZWVyR3BnS2V5KTtcbiAgcmV0dXJuIHtcbiAgICBmcm9tOiBwZWVyUGFydHlJZCxcbiAgICBwYXlsb2FkOiBuZXcgVWludDhBcnJheShyYXdCeXRlcyksXG4gIH07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSByb3VuZC0zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmQgKGZpbmFsIHNpZ25lciBtZXNzYWdlKS5cbiAqXG4gKiBUaGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIGB2ZXJpZnlCaXRHb01lc3NhZ2VSb3VuZFRocmVlYCBiZWNhdXNlIFdhbGxldCBQbGF0Zm9ybVxuICogZmluYWxpc2VzIHRoZSBzaWduaW5nIHNlcnZlci1zaWRlIGFmdGVyIHJlY2VpdmluZyByb3VuZCAzOyB0aGUgY2xpZW50IG9idGFpbnMgdGhlXG4gKiBzaWduZWQgdHJhbnNhY3Rpb24gdmlhIGBzZW5kVHhSZXF1ZXN0YC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNpZ25hdHVyZVNoYXJlUm91bmRUaHJlZShcbiAgdXNlck1zZzM6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2UsXG4gIHVzZXJHcGdQcml2S2V5OiBvcGVucGdwLlByaXZhdGVLZXksXG4gIHBhcnR5SWQ6IFNpZ25lclBhcnR5SWQgPSBNUEN2MlBhcnRpZXNFbnVtLlVTRVIsXG4gIG90aGVyU2lnbmVyUGFydHlJZDogTVBDdjJQYXJ0aWVzRW51bSA9IE1QQ3YyUGFydGllc0VudW0uQklUR09cbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+IHtcbiAgY29uc3Qgc2lnbmVkTXNnMyA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKHVzZXJNc2czLnBheWxvYWQpLCB1c2VyR3BnUHJpdktleSk7XG4gIGNvbnN0IHNoYXJlOiBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDNJbnB1dCA9IHtcbiAgICB0eXBlOiAncm91bmQzSW5wdXQnLFxuICAgIGRhdGE6IHsgbXNnMzogc2lnbmVkTXNnMyB9LFxuICB9O1xuICByZXR1cm4ge1xuICAgIGZyb206IHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShwYXJ0eUlkKSxcbiAgICB0bzogcGFydHlJZFRvU2lnbmF0dXJlU2hhcmVUeXBlKG90aGVyU2lnbmVyUGFydHlJZCksXG4gICAgc2hhcmU6IEpTT04uc3RyaW5naWZ5KHNoYXJlKSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { SerializedKeyPair } from 'openpgp';
2
2
  import { IBaseCoin, KeychainsTriplet } from '../baseCoin';
3
3
  import { BitGoBase } from '../bitgoBase';
4
- import { Keychain, KeyType } from '../keychain';
4
+ import { Keychain, KeyType, WebauthnKeyEncryptionInfo } from '../keychain';
5
5
  import { PopulatedIntent, PrebuildTransactionWithIntentOptions, TokenTransferRecipientParams } from './tss/baseTypes';
6
6
  export interface MpcKeyShare {
7
7
  publicShare: string;
@@ -26,6 +26,7 @@ export declare abstract class MpcUtils {
26
26
  passphrase: string;
27
27
  enterprise?: string;
28
28
  originalPasscodeEncryptionCode?: string;
29
+ webauthnInfo?: WebauthnKeyEncryptionInfo;
29
30
  }): Promise<KeychainsTriplet>;
30
31
  /**
31
32
  * This function would be responsible for populating intents
@@ -1 +1 @@
1
- {"version":3,"file":"mpcUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/mpcUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAEL,eAAe,EACf,oCAAoC,EACpC,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8BAAsB,QAAQ;IAC5B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;cAKjC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAiBjG,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACvC,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IAsCpB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,8BAA8B,CAAC,EAAE,MAAM,CAAC;KACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAE7B;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oCAAoC,GAAG,eAAe;IAoJlG,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,4BAA4B,GAAG,MAAM,GAAG,SAAS;CAY/F"}
1
+ {"version":3,"file":"mpcUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/mpcUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,EAEL,eAAe,EACf,oCAAoC,EACpC,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8BAAsB,QAAQ;IAC5B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;cAKjC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAiBjG,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACvC,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IAsCpB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,YAAY,CAAC,EAAE,yBAAyB,CAAC;KAC1C,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAE7B;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oCAAoC,GAAG,eAAe;IA2JlG,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,4BAA4B,GAAG,MAAM,GAAG,SAAS;CAY/F"}
@@ -171,6 +171,13 @@ class MpcUtils {
171
171
  feeOptions: params.feeOptions,
172
172
  feeToken: params.feeToken,
173
173
  };
174
+ case 'export':
175
+ return {
176
+ ...baseIntent,
177
+ feeOptions: params.feeOptions,
178
+ feeToken: params.feeToken,
179
+ nonce: params.nonce,
180
+ };
174
181
  default:
175
182
  throw new Error(`Unsupported intent type ${params.intentType}`);
176
183
  }
@@ -208,4 +215,4 @@ class MpcUtils {
208
215
  }
209
216
  }
210
217
  exports.MpcUtils = MpcUtils;
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvbXBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxvREFBNEI7QUFDNUIscUNBQWtGO0FBSWxGLGlEQUFnRTtBQU9oRSxzREFBd0Y7QUFDeEYsNENBQW9EO0FBU3BELE1BQXNCLFFBQVE7SUFJNUIsWUFBWSxLQUFnQixFQUFFLFFBQW1CO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxVQUFxQztRQUM3RixNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUFDO1lBQzVDLGNBQWMsRUFBRSxZQUFZO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFBLHdCQUFjLEVBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdEYsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixNQUFNLElBQUEsaUJBQU8sRUFBQztZQUNaLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUM7UUFFUCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFUyxLQUFLLENBQUMsdUJBQXVCLENBQ3JDLFVBQXFDLEVBQ3JDLFlBQXVDLEVBQ3ZDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFVBQW1CO1FBRW5CLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFpQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMs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LFNBQVMsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQTNQRCw0QkEyUEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBkZWNyeXB0LCByZWFkTWVzc2FnZSwgcmVhZFByaXZhdGVLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBJQmFzZUNvaW4sIEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgQWRkS2V5Y2hhaW5PcHRpb25zLCBLZXljaGFpbiwgS2V5VHlwZSB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IGVuY3J5cHRUZXh0LCBnZXRCaXRnb0dwZ1B1YktleSB9IGZyb20gJy4vb3BlbmdwZ1V0aWxzJztcbmltcG9ydCB7XG4gIEludGVudFJlY2lwaWVudCxcbiAgUG9wdWxhdGVkSW50ZW50LFxuICBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMsXG4gIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMsXG59IGZyb20gJy4vdHNzL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnLCBpc0JpdGdvTXBjUHViS2V5IH0gZnJvbSAnLi4vdHNzL2JpdGdvUHViS2V5cyc7XG5pbXBvcnQgeyBjb2lucywgTmV0d29ya1R5cGUgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXBjS2V5U2hhcmUge1xuICBwdWJsaWNTaGFyZTogc3RyaW5nO1xuICBwcml2YXRlU2hhcmU6IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlUHJvb2Y/OiBzdHJpbmc7XG4gIHZzc1Byb29mPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTXBjVXRpbHMge1xuICBwcm90ZWN0ZWQgYml0Z286IEJpdEdvQmFzZTtcbiAgcHJvdGVjdGVkIGJhc2VDb2luOiBJQmFzZUNvaW47XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgYmFzZUNvaW46IElCYXNlQ29pbikge1xuICAgIHRoaXMuYml0Z28gPSBiaXRnbztcbiAgICB0aGlzLmJhc2VDb2luID0gYmFzZUNvaW47XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZGVjcnlwdFByaXZhdGVTaGFyZShwcml2YXRlU2hhcmU6IHN0cmluZywgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcHJpdmF0ZVNoYXJlTWVzc2FnZSA9IGF3YWl0IHJlYWRNZXNzYWdlKHtcbiAgICAgIGFybW9yZWRNZXNzYWdlOiBwcml2YXRlU2hhcmUsXG4gICAgfSk7XG4gICAgY29uc3QgdXNlckdwZ1ByaXZhdGVLZXkgPSBhd2FpdCByZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHVzZXJHcGdLZXkucHJpdmF0ZUtleSB9KTtcblxuICAgIGNvbnN0IGRlY3J5cHRlZFByaXZhdGVTaGFyZSA9IChcbiAgICAgIGF3YWl0IGRlY3J5cHQoe1xuICAgICAgICBtZXNzYWdlOiBwcml2YXRlU2hhcmVNZXNzYWdlLFxuICAgICAgICBkZWNyeXB0aW9uS2V5czogW3VzZXJHcGdQcml2YXRlS2V5XSxcbiAgICAgICAgZm9ybWF0OiAndXRmOCcsXG4gICAgICB9KVxuICAgICkuZGF0YTtcblxuICAgIHJldHVybiBkZWNyeXB0ZWRQcml2YXRlU2hhcmU7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlQml0Z29LZXljaGFpbkluV1AoXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBiYWNrdXBHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgdXNlcktleVNoYXJlOiBNcGNLZXlTaGFyZSxcbiAgICBiYWNrdXBLZXlTaGFyZTogTXBjS2V5U2hhcmUsXG4gICAga2V5VHlwZTogS2V5VHlwZSxcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBjb25zdCBiaXRnb0tleSA9IChhd2FpdCBnZXRCaXRnb0dwZ1B1YktleSh0aGlzLmJpdGdvKSkubXBjVjE7XG4gICAgaWYgKGVudlJlcXVpcmVzQml0Z29QdWJHcGdLZXlDb25maWcodGhpcy5iaXRnby5nZXRFbnYoKSkpIHtcbiAgICAgIC8vIEVuc3VyZSB0aGUgcHVibGljIGtleSBpcyBvbmUgb2YgdGhlIGV4cGVjdGVkIEJpdEdvIHB1YmxpYyBrZXlzIHdoZW4gaW4gdGVzdCBvciBwcm9kLlxuICAgICAgYXNzZXJ0KGlzQml0Z29NcGNQdWJLZXkoYml0Z29LZXkuYXJtb3IoKSwgJ21wY3YxJyksICdJbnZhbGlkIEJpdEdvIEdQRyBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICAgIGNvbnN0IGVuY1VzZXJUb0JpdEdvTWVzc2FnZSA9IGF3YWl0IGVuY3J5cHRUZXh0KHVzZXJLZXlTaGFyZS5wcml2YXRlU2hhcmUsIGJpdGdvS2V5KTtcbiAgICBjb25zdCBlbmNCYWNrdXBUb0JpdEdvTWVzc2FnZSA9IGF3YWl0IGVuY3J5cHRUZXh0KGJhY2t1cEtleVNoYXJlLnByaXZhdGVTaGFyZSwgYml0Z29LZXkpO1xuXG4gICAgY29uc3QgY3JlYXRlQml0R29NUENQYXJhbXM6IEFkZEtleWNoYWluT3B0aW9ucyA9IHtcbiAgICAgIGtleVR5cGUsXG4gICAgICBzb3VyY2U6ICdiaXRnbycsXG4gICAgICBrZXlTaGFyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZyb206ICd1c2VyJyxcbiAgICAgICAgICB0bzogJ2JpdGdvJyxcbiAgICAgICAgICBwdWJsaWNTaGFyZTogdXNlcktleVNoYXJlLnB1YmxpY1NoYXJlLFxuICAgICAgICAgIHByaXZhdGVTaGFyZTogZW5jVXNlclRvQml0R29NZXNzYWdlLFxuICAgICAgICAgIHByaXZhdGVTaGFyZVByb29mOiB1c2VyS2V5U2hhcmUucHJpdmF0ZVNoYXJlUHJvb2YsXG4gICAgICAgICAgdnNzUHJvb2Y6IHVzZXJLZXlTaGFyZS52c3NQcm9vZixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZyb206ICdiYWNrdXAnLFxuICAgICAgICAgIHRvOiAnYml0Z28nLFxuICAgICAgICAgIHB1YmxpY1NoYXJlOiBiYWNrdXBLZXlTaGFyZS5wdWJsaWNTaGFyZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmU6IGVuY0JhY2t1cFRvQml0R29NZXNzYWdlLFxuICAgICAgICAgIHByaXZhdGVTaGFyZVByb29mOiBiYWNrdXBLZXlTaGFyZS5wcml2YXRlU2hhcmVQcm9vZixcbiAgICAgICAgICB2c3NQcm9vZjogYmFja3VwS2V5U2hhcmUudnNzUHJvb2YsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgdXNlckdQR1B1YmxpY0tleTogdXNlckdwZ0tleS5wdWJsaWNLZXksXG4gICAgICBiYWNrdXBHUEdQdWJsaWNLZXk6IGJhY2t1cEdwZ0tleS5wdWJsaWNLZXksXG4gICAgICBlbnRlcnByaXNlOiBlbnRlcnByaXNlLFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKS5hZGQoY3JlYXRlQml0R29NUENQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgVXNlciwgQmFja3VwLCBhbmQgQml0R28gTVBDIEtleWNoYWlucy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy5wYXNzcGhyYXNlIC0gcGFzc3BocmFzZSB1c2VkIHRvIGVuY3J5cHQgc2lnbmluZyBtYXRlcmlhbHMgY3JlYXRlZCBmb3IgVXNlciBhbmQgQmFja3VwXG4gICAqIEBwYXJhbSBwYXJhbXMuZW50ZXJwcmlzZSAtIG9wdGlvbmFsIGVudGVycHJpc2UgaWQgdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBCaXRHbyBLZXljaGFpblxuICAgKiBAcGFyYW0gcGFyYW1zLm9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSAtIG9wdGlvbmFsIGVuY3J5cHRpb24gY29kZSB1c2VkIHRvIHJlc2V0IHRoZSB1c2VyJ3MgcGFzc3dvcmQsIGlmIGFic2VudCwgcGFzc3dvcmQgcmVjb3Zlcnkgd2lsbCBub3Qgd29ya1xuICAgKi9cbiAgYWJzdHJhY3QgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd291bGQgYmUgcmVzcG9uc2libGUgZm9yIHBvcHVsYXRpbmcgaW50ZW50c1xuICAgKiBiYXNlZCBvbiB0aGUgdHlwZSBvZiBjb2luIC8gc2lnIHNjaGVtZSB0aGUgY29pbiB1c2VzXG4gICAqIEBwYXJhbSB7SUJhc2VDb2lufSBiYXNlQ29pblxuICAgKiBAcGFyYW0ge1ByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9uc30gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn1cbiAgICovXG4gIHBvcHVsYXRlSW50ZW50KGJhc2VDb2luOiBJQmFzZUNvaW4sIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zKTogUG9wdWxhdGVkSW50ZW50IHtcbiAgICBjb25zdCBjaGFpbiA9IHRoaXMuYmFzZUNvaW4uZ2V0Q2hhaW4oKTtcblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2N1c3RvbVR4JyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ3NvbCcpIHtcbiAgICAgIGNvbnN0IGhhc1NvbEluc3RydWN0aW9ucyA9IHBhcmFtcy5zb2xJbnN0cnVjdGlvbnMgJiYgcGFyYW1zLnNvbEluc3RydWN0aW9ucy5sZW5ndGggPiAwO1xuICAgICAgY29uc3QgaGFzVmVyc2lvbmVkRGF0YSA9XG4gICAgICAgIHBhcmFtcy5zb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEgJiZcbiAgICAgICAgcGFyYW1zLnNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMgJiZcbiAgICAgICAgcGFyYW1zLnNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMubGVuZ3RoID4gMDtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICBoYXNTb2xJbnN0cnVjdGlvbnMgfHwgaGFzVmVyc2lvbmVkRGF0YSxcbiAgICAgICAgYCdzb2xJbnN0cnVjdGlvbnMnIG9yICdzb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEnIGlzIHJlcXVpcmVkIGZvciBjdXN0b21UeCBpbnRlbnRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2N1c3RvbVR4JyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2FwdCcpIHtcbiAgICAgIGFzc2VydChcbiAgICAgICAgcGFyYW1zLmFwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXMsXG4gICAgICAgIGAnYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIGN1c3RvbVR4IGludGVudGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFsndHJhbnNmZXJBY2NlcHQnLCAndHJhbnNmZXJSZWplY3QnXS5pbmNsdWRlcyhwYXJhbXMuaW50ZW50VHlwZSkgJiYgYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdjYW50b24nKSB7XG4gICAgICBhc3NlcnQocGFyYW1zLnR4UmVxdWVzdElkLCBgJ3R4UmVxdWVzdElkJyBpcyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ3RyYW5zZmVyT2ZmZXJXaXRoZHJhd24nICYmIGJhc2VDb2luLmdldEZhbWlseSgpID09PSAnY2FudG9uJykge1xuICAgICAgYXNzZXJ0KHBhcmFtcy50cmFuc2Zlck9mZmVySWQsIGAndHJhbnNmZXJPZmZlcklkJyBpcyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFbXG4gICAgICAgICdhY2NlbGVyYXRpb24nLFxuICAgICAgICAnZmlsbE5vbmNlJyxcbiAgICAgICAgJ3RyYW5zZmVyVG9rZW4nLFxuICAgICAgICAndG9rZW5BcHByb3ZhbCcsXG4gICAgICAgICdjdXN0b21UeCcsXG4gICAgICAgICd0cmFuc2ZlckFjY2VwdCcsXG4gICAgICAgICd0cmFuc2ZlclJlamVjdCcsXG4gICAgICAgICd0cmFuc2Zlck9mZmVyV2l0aGRyYXduJyxcbiAgICAgICAgJ2JyaWRnZUZ1bmRzJyxcbiAgICAgIF0uaW5jbHVkZXMocGFyYW1zLmludGVudFR5cGUpXG4gICAgKSB7XG4gICAgICBhc3NlcnQocGFyYW1zLnJlY2lwaWVudHMsIGAncmVjaXBpZW50cycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cbiAgICBjb25zdCBpbnRlbnRSZWNpcGllbnRzID0gcGFyYW1zLnJlY2lwaWVudHM/Lm1hcCgocmVjaXBpZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRSZWNpcGllbnQ6IEludGVudFJlY2lwaWVudCA9IHtcbiAgICAgICAgYWRkcmVzczogeyBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyB9LFxuICAgICAgICBhbW91bnQ6IHsgdmFsdWU6IGAke3JlY2lwaWVudC5hbW91bnR9YCwgc3ltYm9sOiByZWNpcGllbnQudG9rZW5OYW1lID8gcmVjaXBpZW50LnRva2VuTmFtZSA6IGNoYWluIH0sXG4gICAgICB9O1xuXG4gICAgICBpZiAocmVjaXBpZW50LmRhdGEpIHtcbiAgICAgICAgZm9ybWF0dGVkUmVjaXBpZW50LmRhdGEgPSByZWNpcGllbnQuZGF0YTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyB0b2tlbkRhdGEgfSA9IHJlY2lwaWVudDtcbiAgICAgIGlmICh0b2tlbkRhdGEgJiYgKHRva2VuRGF0YS50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fCB0b2tlbkRhdGEudG9rZW5OYW1lKSkge1xuICAgICAgICAvLyB0b2tlbiByZWxhdGVkIHJlY2lwaWVudCBkYXRhIGdldHMgdmFsaWRhdGVkIGluIFdQXG4gICAgICAgIGlmICghKHRva2VuRGF0YS50b2tlblR5cGUgJiYgdG9rZW5EYXRhLnRva2VuUXVhbnRpdHkpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ3Rva2VuIHR5cGUgYW5kIHF1YW50aXR5IGlzIHJlcXVpcmVkIHRvIHJlcXVlc3QgYSB0cmFuc2FjdGlvbiB3aXRoIGludGVudCB0byB0cmFuc2ZlciBhIHRva2VuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5EYXRhLnRva2VuTmFtZSA9IHRoaXMuZ2V0VG9rZW5OYW1lKGJhc2VDb2luLCB0b2tlbkRhdGEpO1xuICAgICAgICBpZiAodG9rZW5EYXRhLnRva2VuTmFtZSkge1xuICAgICAgICAgIGZvcm1hdHRlZFJlY2lwaWVudC5hbW91bnQuc3ltYm9sID0gdG9rZW5EYXRhLnRva2VuTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtYXR0ZWRSZWNpcGllbnQudG9rZW5EYXRhID0gdG9rZW5EYXRhO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlY2lwaWVudDtcbiAgICB9KTtcblxuICAgIGNvbnN0IGJhc2VJbnRlbnQ6IFBvcHVsYXRlZEludGVudCA9IHtcbiAgICAgIGludGVudFR5cGU6IHBhcmFtcy5pbnRlbnRUeXBlLFxuICAgICAgc2VxdWVuY2VJZDogcGFyYW1zLnNlcXVlbmNlSWQsXG4gICAgICBjb21tZW50OiBwYXJhbXMuY29tbWVudCxcbiAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICByZWNpcGllbnRzOiBpbnRlbnRSZWNpcGllbnRzLFxuICAgICAgdG9rZW5OYW1lOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgaXNUZXN0VHJhbnNhY3Rpb246IHBhcmFtcy5pc1Rlc3RUcmFuc2FjdGlvbixcbiAgICB9O1xuXG4gICAgaWYgKGJhc2VDb2luLmlzRVZNKCkgJiYgYmFzZUNvaW4uc3VwcG9ydHNUc3MoKSkge1xuICAgICAgc3dpdGNoIChwYXJhbXMuaW50ZW50VHlwZSkge1xuICAgICAgICBjYXNlICdwYXltZW50JzpcbiAgICAgICAgY2FzZSAndHJhbnNmZXJUb2tlbic6XG4gICAgICAgIGNhc2UgJ2ZpbGxOb25jZSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgICAgICBzZWxmU2VuZDogcGFyYW1zLnNlbGZTZW5kLFxuICAgICAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgICAgICAgICAgaG9wUGFyYW1zOiBwYXJhbXMuaG9wUGFyYW1zLFxuICAgICAgICAgICAgaXNUc3M6IHBhcmFtcy5pc1RzcyxcbiAgICAgICAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICAgICAgICBjdXN0b2RpYW5UcmFuc2FjdGlvbklkOiBwYXJhbXMuY3VzdG9kaWFuVHJhbnNhY3Rpb25JZCxcbiAgICAgICAgICAgIHJlY2VpdmVBZGRyZXNzOiBwYXJhbXMucmVjZWl2ZUFkZHJlc3MsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnYWNjZWxlcmF0aW9uJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHR4aWQ6IHBhcmFtcy5sb3dGZWVUeGlkLFxuICAgICAgICAgICAgcmVjZWl2ZUFkZHJlc3M6IHBhcmFtcy5yZWNlaXZlQWRkcmVzcyxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICd0b2tlbkFwcHJvdmFsJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHRva2VuTmFtZTogcGFyYW1zLnRva2VuTmFtZSxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICdicmlkZ2VGdW5kcyc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICAgICAgICBmZWVPcHRpb25zOiBwYXJhbXMuZmVlT3B0aW9ucyxcbiAgICAgICAgICAgIGZlZVRva2VuOiBwYXJhbXMuZmVlVG9rZW4sXG4gICAgICAgICAgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGludGVudCB0eXBlICR7cGFyYW1zLmludGVudFR5cGV9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5iYXNlQ29pbi5zZXRDb2luU3BlY2lmaWNGaWVsZHNJbkludGVudChiYXNlSW50ZW50LCBwYXJhbXMpO1xuXG4gICAgaWYgKHBhcmFtcy5mZWVPcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgIG1lbW86IHBhcmFtcy5tZW1vPy52YWx1ZSxcbiAgICAgICAgdG9rZW46IHBhcmFtcy50b2tlbk5hbWUsXG4gICAgICAgIGVuYWJsZVRva2VuczogcGFyYW1zLmVuYWJsZVRva2VucyxcbiAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgIGZlZVRva2VuOiBwYXJhbXMuZmVlVG9rZW4sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgbWVtbzogcGFyYW1zLm1lbW8/LnZhbHVlLFxuICAgICAgdG9rZW46IHBhcmFtcy50b2tlbk5hbWUsXG4gICAgICBlbmFibGVUb2tlbnM6IHBhcmFtcy5lbmFibGVUb2tlbnMsXG4gICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgIH07XG4gIH1cblxuICBnZXRUb2tlbk5hbWUoYmFzZUNvaW46IElCYXNlQ29pbiwgdG9rZW5EYXRhOiBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodG9rZW5EYXRhLnRva2VuTmFtZSkge1xuICAgICAgcmV0dXJuIHRva2VuRGF0YS50b2tlbk5hbWU7XG4gICAgfVxuICAgIGNvbnN0IG5ldHdvcmtQcmVmaXggPSBiYXNlQ29pbi5nZXRDb25maWcoKS5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLlRFU1RORVQgPyAndCcgOiAnJztcbiAgICBjb25zdCB0b2tlblN0YXRpY3NLZXkgPSBgJHtuZXR3b3JrUHJlZml4fSR7YmFzZUNvaW4uZ2V0RmFtaWx5KCl9OiR7dG9rZW5EYXRhLnRva2VuQ29udHJhY3RBZGRyZXNzfWA7XG4gICAgaWYgKGNvaW5zLmhhcyh0b2tlblN0YXRpY3NLZXkpKSB7XG4gICAgICBjb25zdCB0b2tlblN0YXRpY3MgPSBjb2lucy5nZXQodG9rZW5TdGF0aWNzS2V5KTtcbiAgICAgIHRva2VuRGF0YS50b2tlbk5hbWUgPSB0b2tlblN0YXRpY3MubmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIHRva2VuRGF0YS50b2tlbk5hbWU7XG4gIH1cbn1cbiJdfQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvbXBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxvREFBNEI7QUFDNUIscUNBQWtGO0FBSWxGLGlEQUFnRTtBQU9oRSxzREFBd0Y7QUFDeEYsNENBQW9EO0FBU3BELE1BQXNCLFFBQVE7SUFJNUIsWUFBWSxLQUFnQixFQUFFLFFBQW1CO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxVQUFxQztRQUM3RixNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUFDO1lBQzVDLGNBQWMsRUFBRSxZQUFZO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFBLHdCQUFjLEVBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdEYsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixNQUFNLElBQUEsaUJBQU8sRUFBQztZQUNaLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUM7UUFFUCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFUyxLQUFLLENBQUMsdUJBQXVCLENBQ3JDLFVBQXFDLEVBQ3JDLFlBQXVDLEVBQ3ZDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFVBQW1CO1FBRW5CLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFpQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMs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UyxFQUFFLElBQUksU0FBUyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDcEcsSUFBSSxlQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxZQUFZLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNoRCxTQUFTLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDMUMsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFuUUQsNEJBbVFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgZGVjcnlwdCwgcmVhZE1lc3NhZ2UsIHJlYWRQcml2YXRlS2V5LCBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgSUJhc2VDb2luLCBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEFkZEtleWNoYWluT3B0aW9ucywgS2V5Y2hhaW4sIEtleVR5cGUsIFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm8gfSBmcm9tICcuLi9rZXljaGFpbic7XG5pbXBvcnQgeyBlbmNyeXB0VGV4dCwgZ2V0Qml0Z29HcGdQdWJLZXkgfSBmcm9tICcuL29wZW5ncGdVdGlscyc7XG5pbXBvcnQge1xuICBJbnRlbnRSZWNpcGllbnQsXG4gIFBvcHVsYXRlZEludGVudCxcbiAgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zLFxufSBmcm9tICcuL3Rzcy9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgZW52UmVxdWlyZXNCaXRnb1B1YkdwZ0tleUNvbmZpZywgaXNCaXRnb01wY1B1YktleSB9IGZyb20gJy4uL3Rzcy9iaXRnb1B1YktleXMnO1xuaW1wb3J0IHsgY29pbnMsIE5ldHdvcmtUeXBlIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1wY0tleVNoYXJlIHtcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlOiBzdHJpbmc7XG4gIHByaXZhdGVTaGFyZVByb29mPzogc3RyaW5nO1xuICB2c3NQcm9vZj86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1wY1V0aWxzIHtcbiAgcHJvdGVjdGVkIGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByb3RlY3RlZCBiYXNlQ29pbjogSUJhc2VDb2luO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIGJhc2VDb2luOiBJQmFzZUNvaW4pIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy5iYXNlQ29pbiA9IGJhc2VDb2luO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlY3J5cHRQcml2YXRlU2hhcmUocHJpdmF0ZVNoYXJlOiBzdHJpbmcsIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHByaXZhdGVTaGFyZU1lc3NhZ2UgPSBhd2FpdCByZWFkTWVzc2FnZSh7XG4gICAgICBhcm1vcmVkTWVzc2FnZTogcHJpdmF0ZVNoYXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IHVzZXJHcGdQcml2YXRlS2V5ID0gYXdhaXQgcmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiB1c2VyR3BnS2V5LnByaXZhdGVLZXkgfSk7XG5cbiAgICBjb25zdCBkZWNyeXB0ZWRQcml2YXRlU2hhcmUgPSAoXG4gICAgICBhd2FpdCBkZWNyeXB0KHtcbiAgICAgICAgbWVzc2FnZTogcHJpdmF0ZVNoYXJlTWVzc2FnZSxcbiAgICAgICAgZGVjcnlwdGlvbktleXM6IFt1c2VyR3BnUHJpdmF0ZUtleV0sXG4gICAgICAgIGZvcm1hdDogJ3V0ZjgnLFxuICAgICAgfSlcbiAgICApLmRhdGE7XG5cbiAgICByZXR1cm4gZGVjcnlwdGVkUHJpdmF0ZVNoYXJlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUJpdGdvS2V5Y2hhaW5JbldQKFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYmFja3VwR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogTXBjS2V5U2hhcmUsXG4gICAgYmFja3VwS2V5U2hhcmU6IE1wY0tleVNoYXJlLFxuICAgIGtleVR5cGU6IEtleVR5cGUsXG4gICAgZW50ZXJwcmlzZT86IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgY29uc3QgYml0Z29LZXkgPSAoYXdhaXQgZ2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbykpLm1wY1YxO1xuICAgIGlmIChlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnKHRoaXMuYml0Z28uZ2V0RW52KCkpKSB7XG4gICAgICAvLyBFbnN1cmUgdGhlIHB1YmxpYyBrZXkgaXMgb25lIG9mIHRoZSBleHBlY3RlZCBCaXRHbyBwdWJsaWMga2V5cyB3aGVuIGluIHRlc3Qgb3IgcHJvZC5cbiAgICAgIGFzc2VydChpc0JpdGdvTXBjUHViS2V5KGJpdGdvS2V5LmFybW9yKCksICdtcGN2MScpLCAnSW52YWxpZCBCaXRHbyBHUEcgcHVibGljIGtleScpO1xuICAgIH1cbiAgICBjb25zdCBlbmNVc2VyVG9CaXRHb01lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0VGV4dCh1c2VyS2V5U2hhcmUucHJpdmF0ZVNoYXJlLCBiaXRnb0tleSk7XG4gICAgY29uc3QgZW5jQmFja3VwVG9CaXRHb01lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0VGV4dChiYWNrdXBLZXlTaGFyZS5wcml2YXRlU2hhcmUsIGJpdGdvS2V5KTtcblxuICAgIGNvbnN0IGNyZWF0ZUJpdEdvTVBDUGFyYW1zOiBBZGRLZXljaGFpbk9wdGlvbnMgPSB7XG4gICAgICBrZXlUeXBlLFxuICAgICAgc291cmNlOiAnYml0Z28nLFxuICAgICAga2V5U2hhcmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tOiAndXNlcicsXG4gICAgICAgICAgdG86ICdiaXRnbycsXG4gICAgICAgICAgcHVibGljU2hhcmU6IHVzZXJLZXlTaGFyZS5wdWJsaWNTaGFyZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmU6IGVuY1VzZXJUb0JpdEdvTWVzc2FnZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogdXNlcktleVNoYXJlLnByaXZhdGVTaGFyZVByb29mLFxuICAgICAgICAgIHZzc1Byb29mOiB1c2VyS2V5U2hhcmUudnNzUHJvb2YsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tOiAnYmFja3VwJyxcbiAgICAgICAgICB0bzogJ2JpdGdvJyxcbiAgICAgICAgICBwdWJsaWNTaGFyZTogYmFja3VwS2V5U2hhcmUucHVibGljU2hhcmUsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlOiBlbmNCYWNrdXBUb0JpdEdvTWVzc2FnZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogYmFja3VwS2V5U2hhcmUucHJpdmF0ZVNoYXJlUHJvb2YsXG4gICAgICAgICAgdnNzUHJvb2Y6IGJhY2t1cEtleVNoYXJlLnZzc1Byb29mLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHVzZXJHUEdQdWJsaWNLZXk6IHVzZXJHcGdLZXkucHVibGljS2V5LFxuICAgICAgYmFja3VwR1BHUHVibGljS2V5OiBiYWNrdXBHcGdLZXkucHVibGljS2V5LFxuICAgICAgZW50ZXJwcmlzZTogZW50ZXJwcmlzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuYWRkKGNyZWF0ZUJpdEdvTVBDUGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIFVzZXIsIEJhY2t1cCwgYW5kIEJpdEdvIE1QQyBLZXljaGFpbnMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMucGFzc3BocmFzZSAtIHBhc3NwaHJhc2UgdXNlZCB0byBlbmNyeXB0IHNpZ25pbmcgbWF0ZXJpYWxzIGNyZWF0ZWQgZm9yIFVzZXIgYW5kIEJhY2t1cFxuICAgKiBAcGFyYW0gcGFyYW1zLmVudGVycHJpc2UgLSBvcHRpb25hbCBlbnRlcnByaXNlIGlkIHRoYXQgd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgQml0R28gS2V5Y2hhaW5cbiAgICogQHBhcmFtIHBhcmFtcy5vcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgLSBvcHRpb25hbCBlbmNyeXB0aW9uIGNvZGUgdXNlZCB0byByZXNldCB0aGUgdXNlcidzIHBhc3N3b3JkLCBpZiBhYnNlbnQsIHBhc3N3b3JkIHJlY292ZXJ5IHdpbGwgbm90IHdvcmtcbiAgICovXG4gIGFic3RyYWN0IGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gICAgd2ViYXV0aG5JbmZvPzogV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbztcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd291bGQgYmUgcmVzcG9uc2libGUgZm9yIHBvcHVsYXRpbmcgaW50ZW50c1xuICAgKiBiYXNlZCBvbiB0aGUgdHlwZSBvZiBjb2luIC8gc2lnIHNjaGVtZSB0aGUgY29pbiB1c2VzXG4gICAqIEBwYXJhbSB7SUJhc2VDb2lufSBiYXNlQ29pblxuICAgKiBAcGFyYW0ge1ByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9uc30gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn1cbiAgICovXG4gIHBvcHVsYXRlSW50ZW50KGJhc2VDb2luOiBJQmFzZUNvaW4sIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zKTogUG9wdWxhdGVkSW50ZW50IHtcbiAgICBjb25zdCBjaGFpbiA9IHRoaXMuYmFzZUNvaW4uZ2V0Q2hhaW4oKTtcblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2N1c3RvbVR4JyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ3NvbCcpIHtcbiAgICAgIGNvbnN0IGhhc1NvbEluc3RydWN0aW9ucyA9IHBhcmFtcy5zb2xJbnN0cnVjdGlvbnMgJiYgcGFyYW1zLnNvbEluc3RydWN0aW9ucy5sZW5ndGggPiAwO1xuICAgICAgY29uc3QgaGFzVmVyc2lvbmVkRGF0YSA9XG4gICAgICAgIHBhcmFtcy5zb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEgJiZcbiAgICAgICAgcGFyYW1zLnNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMgJiZcbiAgICAgICAgcGFyYW1zLnNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMubGVuZ3RoID4gMDtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICBoYXNTb2xJbnN0cnVjdGlvbnMgfHwgaGFzVmVyc2lvbmVkRGF0YSxcbiAgICAgICAgYCdzb2xJbnN0cnVjdGlvbnMnIG9yICdzb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEnIGlzIHJlcXVpcmVkIGZvciBjdXN0b21UeCBpbnRlbnRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2N1c3RvbVR4JyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2FwdCcpIHtcbiAgICAgIGFzc2VydChcbiAgICAgICAgcGFyYW1zLmFwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXMsXG4gICAgICAgIGAnYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIGN1c3RvbVR4IGludGVudGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFsndHJhbnNmZXJBY2NlcHQnLCAndHJhbnNmZXJSZWplY3QnXS5pbmNsdWRlcyhwYXJhbXMuaW50ZW50VHlwZSkgJiYgYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdjYW50b24nKSB7XG4gICAgICBhc3NlcnQocGFyYW1zLnR4UmVxdWVzdElkLCBgJ3R4UmVxdWVzdElkJyBpcyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ3RyYW5zZmVyT2ZmZXJXaXRoZHJhd24nICYmIGJhc2VDb2luLmdldEZhbWlseSgpID09PSAnY2FudG9uJykge1xuICAgICAgYXNzZXJ0KHBhcmFtcy50cmFuc2Zlck9mZmVySWQsIGAndHJhbnNmZXJPZmZlcklkJyBpcyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFbXG4gICAgICAgICdhY2NlbGVyYXRpb24nLFxuICAgICAgICAnZmlsbE5vbmNlJyxcbiAgICAgICAgJ3RyYW5zZmVyVG9rZW4nLFxuICAgICAgICAndG9rZW5BcHByb3ZhbCcsXG4gICAgICAgICdjdXN0b21UeCcsXG4gICAgICAgICd0cmFuc2ZlckFjY2VwdCcsXG4gICAgICAgICd0cmFuc2ZlclJlamVjdCcsXG4gICAgICAgICd0cmFuc2Zlck9mZmVyV2l0aGRyYXduJyxcbiAgICAgICAgJ2JyaWRnZUZ1bmRzJyxcbiAgICAgIF0uaW5jbHVkZXMocGFyYW1zLmludGVudFR5cGUpXG4gICAgKSB7XG4gICAgICBhc3NlcnQocGFyYW1zLnJlY2lwaWVudHMsIGAncmVjaXBpZW50cycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cbiAgICBjb25zdCBpbnRlbnRSZWNpcGllbnRzID0gcGFyYW1zLnJlY2lwaWVudHM/Lm1hcCgocmVjaXBpZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRSZWNpcGllbnQ6IEludGVudFJlY2lwaWVudCA9IHtcbiAgICAgICAgYWRkcmVzczogeyBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyB9LFxuICAgICAgICBhbW91bnQ6IHsgdmFsdWU6IGAke3JlY2lwaWVudC5hbW91bnR9YCwgc3ltYm9sOiByZWNpcGllbnQudG9rZW5OYW1lID8gcmVjaXBpZW50LnRva2VuTmFtZSA6IGNoYWluIH0sXG4gICAgICB9O1xuXG4gICAgICBpZiAocmVjaXBpZW50LmRhdGEpIHtcbiAgICAgICAgZm9ybWF0dGVkUmVjaXBpZW50LmRhdGEgPSByZWNpcGllbnQuZGF0YTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyB0b2tlbkRhdGEgfSA9IHJlY2lwaWVudDtcbiAgICAgIGlmICh0b2tlbkRhdGEgJiYgKHRva2VuRGF0YS50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fCB0b2tlbkRhdGEudG9rZW5OYW1lKSkge1xuICAgICAgICAvLyB0b2tlbiByZWxhdGVkIHJlY2lwaWVudCBkYXRhIGdldHMgdmFsaWRhdGVkIGluIFdQXG4gICAgICAgIGlmICghKHRva2VuRGF0YS50b2tlblR5cGUgJiYgdG9rZW5EYXRhLnRva2VuUXVhbnRpdHkpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ3Rva2VuIHR5cGUgYW5kIHF1YW50aXR5IGlzIHJlcXVpcmVkIHRvIHJlcXVlc3QgYSB0cmFuc2FjdGlvbiB3aXRoIGludGVudCB0byB0cmFuc2ZlciBhIHRva2VuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5EYXRhLnRva2VuTmFtZSA9IHRoaXMuZ2V0VG9rZW5OYW1lKGJhc2VDb2luLCB0b2tlbkRhdGEpO1xuICAgICAgICBpZiAodG9rZW5EYXRhLnRva2VuTmFtZSkge1xuICAgICAgICAgIGZvcm1hdHRlZFJlY2lwaWVudC5hbW91bnQuc3ltYm9sID0gdG9rZW5EYXRhLnRva2VuTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtYXR0ZWRSZWNpcGllbnQudG9rZW5EYXRhID0gdG9rZW5EYXRhO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlY2lwaWVudDtcbiAgICB9KTtcblxuICAgIGNvbnN0IGJhc2VJbnRlbnQ6IFBvcHVsYXRlZEludGVudCA9IHtcbiAgICAgIGludGVudFR5cGU6IHBhcmFtcy5pbnRlbnRUeXBlLFxuICAgICAgc2VxdWVuY2VJZDogcGFyYW1zLnNlcXVlbmNlSWQsXG4gICAgICBjb21tZW50OiBwYXJhbXMuY29tbWVudCxcbiAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICByZWNpcGllbnRzOiBpbnRlbnRSZWNpcGllbnRzLFxuICAgICAgdG9rZW5OYW1lOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgaXNUZXN0VHJhbnNhY3Rpb246IHBhcmFtcy5pc1Rlc3RUcmFuc2FjdGlvbixcbiAgICB9O1xuXG4gICAgaWYgKGJhc2VDb2luLmlzRVZNKCkgJiYgYmFzZUNvaW4uc3VwcG9ydHNUc3MoKSkge1xuICAgICAgc3dpdGNoIChwYXJhbXMuaW50ZW50VHlwZSkge1xuICAgICAgICBjYXNlICdwYXltZW50JzpcbiAgICAgICAgY2FzZSAndHJhbnNmZXJUb2tlbic6XG4gICAgICAgIGNhc2UgJ2ZpbGxOb25jZSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgICAgICBzZWxmU2VuZDogcGFyYW1zLnNlbGZTZW5kLFxuICAgICAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgICAgICAgICAgaG9wUGFyYW1zOiBwYXJhbXMuaG9wUGFyYW1zLFxuICAgICAgICAgICAgaXNUc3M6IHBhcmFtcy5pc1RzcyxcbiAgICAgICAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICAgICAgICBjdXN0b2RpYW5UcmFuc2FjdGlvbklkOiBwYXJhbXMuY3VzdG9kaWFuVHJhbnNhY3Rpb25JZCxcbiAgICAgICAgICAgIHJlY2VpdmVBZGRyZXNzOiBwYXJhbXMucmVjZWl2ZUFkZHJlc3MsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnYWNjZWxlcmF0aW9uJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHR4aWQ6IHBhcmFtcy5sb3dGZWVUeGlkLFxuICAgICAgICAgICAgcmVjZWl2ZUFkZHJlc3M6IHBhcmFtcy5yZWNlaXZlQWRkcmVzcyxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICd0b2tlbkFwcHJvdmFsJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHRva2VuTmFtZTogcGFyYW1zLnRva2VuTmFtZSxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICdicmlkZ2VGdW5kcyc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICAgICAgICBmZWVPcHRpb25zOiBwYXJhbXMuZmVlT3B0aW9ucyxcbiAgICAgICAgICAgIGZlZVRva2VuOiBwYXJhbXMuZmVlVG9rZW4sXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnZXhwb3J0JzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGludGVudCB0eXBlICR7cGFyYW1zLmludGVudFR5cGV9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5iYXNlQ29pbi5zZXRDb2luU3BlY2lmaWNGaWVsZHNJbkludGVudChiYXNlSW50ZW50LCBwYXJhbXMpO1xuXG4gICAgaWYgKHBhcmFtcy5mZWVPcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgIG1lbW86IHBhcmFtcy5tZW1vPy52YWx1ZSxcbiAgICAgICAgdG9rZW46IHBhcmFtcy50b2tlbk5hbWUsXG4gICAgICAgIGVuYWJsZVRva2VuczogcGFyYW1zLmVuYWJsZVRva2VucyxcbiAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgIGZlZVRva2VuOiBwYXJhbXMuZmVlVG9rZW4sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgbWVtbzogcGFyYW1zLm1lbW8/LnZhbHVlLFxuICAgICAgdG9rZW46IHBhcmFtcy50b2tlbk5hbWUsXG4gICAgICBlbmFibGVUb2tlbnM6IHBhcmFtcy5lbmFibGVUb2tlbnMsXG4gICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgIH07XG4gIH1cblxuICBnZXRUb2tlbk5hbWUoYmFzZUNvaW46IElCYXNlQ29pbiwgdG9rZW5EYXRhOiBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodG9rZW5EYXRhLnRva2VuTmFtZSkge1xuICAgICAgcmV0dXJuIHRva2VuRGF0YS50b2tlbk5hbWU7XG4gICAgfVxuICAgIGNvbnN0IG5ldHdvcmtQcmVmaXggPSBiYXNlQ29pbi5nZXRDb25maWcoKS5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLlRFU1RORVQgPyAndCcgOiAnJztcbiAgICBjb25zdCB0b2tlblN0YXRpY3NLZXkgPSBgJHtuZXR3b3JrUHJlZml4fSR7YmFzZUNvaW4uZ2V0RmFtaWx5KCl9OiR7dG9rZW5EYXRhLnRva2VuQ29udHJhY3RBZGRyZXNzfWA7XG4gICAgaWYgKGNvaW5zLmhhcyh0b2tlblN0YXRpY3NLZXkpKSB7XG4gICAgICBjb25zdCB0b2tlblN0YXRpY3MgPSBjb2lucy5nZXQodG9rZW5TdGF0aWNzS2V5KTtcbiAgICAgIHRva2VuRGF0YS50b2tlbk5hbWUgPSB0b2tlblN0YXRpY3MubmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIHRva2VuRGF0YS50b2tlbk5hbWU7XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"addressVerification.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/addressVerification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAInE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,MAAM,CAe7F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,uBAAuB,GAAG;IAChC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC,EACD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
1
+ {"version":3,"file":"addressVerification.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/addressVerification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAInE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,MAAM,CAe7F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,uBAAuB,GAAG;IAChC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC,EACD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC,OAAO,CAAC,CA+BlB"}
@@ -58,18 +58,25 @@ async function verifyMPCWalletAddress(params, isValidAddress, getAddressFromPubl
58
58
  if (!isValidAddress(address)) {
59
59
  throw new errors_1.InvalidAddressError(`invalid address: ${address}`);
60
60
  }
61
- const MPC = params.keyCurve === 'secp256k1' ? new mpc_1.Ecdsa() : await tss_1.EDDSAMethods.getInitializedMpcInstance();
62
61
  const commonKeychain = extractCommonKeychain(keychains);
63
62
  // Compute derivation path:
64
63
  // - For SMC wallets with derivedFromParentWithSeed, compute prefix and use: {prefix}/{index}
65
64
  // - For other wallets, use simple path: m/{index}
66
65
  const prefix = derivedFromParentWithSeed ? (0, sdk_lib_mpc_1.getDerivationPath)(derivedFromParentWithSeed.toString()) : undefined;
67
66
  const derivationPath = prefix ? `${prefix}/${index}` : `m/${index}`;
68
- const derivedPublicKey = MPC.deriveUnhardened(commonKeychain, derivationPath);
67
+ // MPCv2 EdDSA wallets use a different BIP32-Ed25519 derivation formula than MPCv1 wallets.
68
+ let derivedPublicKey;
69
+ if (params.keyCurve === 'ed25519' && params.multisigTypeVersion === 'MPCv2') {
70
+ derivedPublicKey = (0, sdk_lib_mpc_1.deriveUnhardenedMps)(commonKeychain, derivationPath);
71
+ }
72
+ else {
73
+ const MPC = params.keyCurve === 'secp256k1' ? new mpc_1.Ecdsa() : await tss_1.EDDSAMethods.getInitializedMpcInstance();
74
+ derivedPublicKey = MPC.deriveUnhardened(commonKeychain, derivationPath);
75
+ }
69
76
  // secp256k1 expects 33 bytes; ed25519 expects 32 bytes
70
77
  const publicKeySize = params.keyCurve === 'secp256k1' ? 33 : 32;
71
78
  const publicKeyOnly = Buffer.from(derivedPublicKey, 'hex').subarray(0, publicKeySize).toString('hex');
72
79
  const expectedAddress = getAddressFromPublicKey(publicKeyOnly);
73
80
  return address === expectedAddress;
74
81
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc1ZlcmlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvYWRkcmVzc1ZlcmlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLHNEQWVDO0FBYUQsa0VBTUM7QUFhRCx3REE4QkM7QUEzRkQsb0RBQXVEO0FBQ3ZELGtEQUFpRDtBQUVqRCx5Q0FBbUQ7QUFDbkQsbUNBQXlDO0FBRXpDOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxTQUErQztJQUNuRixJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxLQUFLLGNBQWMsQ0FBQztRQUM5RCxNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7SUFFbkYsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSSxLQUFLLFVBQVUsMkJBQTJCLENBQy9DLE1BQStCLEVBQy9CLGNBQTRDLEVBQzVDLHVCQUFzRDtJQUV0RCxPQUFPLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0FBQzdHLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxNQUVDLEVBQ0QsY0FBNEMsRUFDNUMsdUJBQXNEO0lBRXRELE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV4RSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLDRCQUFtQixDQUFDLG9CQUFvQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxrQkFBWSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDM0csTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEQsMkJBQTJCO0lBQzNCLDZGQUE2RjtJQUM3RixrREFBa0Q7SUFDbEQsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUEsK0JBQWlCLEVBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9HLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7SUFDcEUsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRTlFLHVEQUF1RDtJQUN2RCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV0RyxNQUFNLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUvRCxPQUFPLE9BQU8sS0FBSyxlQUFlLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldERlcml2YXRpb25QYXRoIH0gZnJvbSAnQGJpdGdvL3Nkay1saWItbXBjJztcbmltcG9ydCB7IEVjZHNhIH0gZnJvbSAnLi4vLi4vLi4vYWNjb3VudC1saWIvbXBjJztcbmltcG9ydCB7IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zIH0gZnJvbSAnLi4vLi4vYmFzZUNvaW4vaUJhc2VDb2luJztcbmltcG9ydCB7IEludmFsaWRBZGRyZXNzRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHsgRUREU0FNZXRob2RzIH0gZnJvbSAnLi4vLi4vdHNzJztcblxuLyoqXG4gKiBFeHRyYWN0cyBhbmQgdmFsaWRhdGVzIHRoZSBjb21tb25LZXljaGFpbiBmcm9tIGtleWNoYWlucyBhcnJheS5cbiAqIEZvciBNUEMgd2FsbGV0cywgYWxsIGtleWNoYWlucyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBjb21tb25LZXljaGFpbi5cbiAqXG4gKiBAcGFyYW0ga2V5Y2hhaW5zIC0gQXJyYXkgb2Yga2V5Y2hhaW5zIGNvbnRhaW5pbmcgY29tbW9uS2V5Y2hhaW5cbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgY29tbW9uS2V5Y2hhaW5cbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiBrZXljaGFpbnMgYXJlIG1pc3NpbmcsIGVtcHR5LCBvciBoYXZlIG1pc21hdGNoZWQgY29tbW9uS2V5Y2hhaW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q29tbW9uS2V5Y2hhaW4oa2V5Y2hhaW5zOiBUc3NWZXJpZnlBZGRyZXNzT3B0aW9uc1sna2V5Y2hhaW5zJ10pOiBzdHJpbmcge1xuICBpZiAoIWtleWNoYWlucz8ubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHBhcmFtIGtleWNoYWlucycpO1xuICB9XG5cbiAgY29uc3QgY29tbW9uS2V5Y2hhaW4gPSBrZXljaGFpbnNbMF0uY29tbW9uS2V5Y2hhaW47XG4gIGlmICghY29tbW9uS2V5Y2hhaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgcGFyYW0gY29tbW9uS2V5Y2hhaW4nKTtcbiAgfVxuXG4gIC8vIFZlcmlmeSBhbGwga2V5Y2hhaW5zIGhhdmUgdGhlIHNhbWUgY29tbW9uS2V5Y2hhaW5cbiAgaWYgKGtleWNoYWlucy5maW5kKChrYykgPT4ga2MuY29tbW9uS2V5Y2hhaW4gIT09IGNvbW1vbktleWNoYWluKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbCBrZXljaGFpbnMgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbW1vbktleWNoYWluIGZvciBNUEMgY29pbnMnKTtcblxuICByZXR1cm4gY29tbW9uS2V5Y2hhaW47XG59XG5cbi8qKlxuICogVmVyaWZpZXMgaWYgYW4gYWRkcmVzcyBiZWxvbmdzIHRvIGEgd2FsbGV0IHVzaW5nIEVkRFNBIFRTUyBNUEMgZGVyaXZhdGlvbi5cbiAqIFRoaXMgaXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gZm9yIEVkRFNBLWJhc2VkIE1QQyBjb2lucyAoU09MLCBET1QsIFNVSSwgVE9OLCBJT1RBLCBldGMuKVxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBWZXJpZmljYXRpb24gb3B0aW9ucyBpbmNsdWRpbmcga2V5Y2hhaW5zLCBhZGRyZXNzLCBhbmQgZGVyaXZhdGlvbiBpbmRleFxuICogQHBhcmFtIGlzVmFsaWRBZGRyZXNzIC0gQ29pbi1zcGVjaWZpYyBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhZGRyZXNzIGZvcm1hdFxuICogQHBhcmFtIGdldEFkZHJlc3NGcm9tUHVibGljS2V5IC0gQ29pbi1zcGVjaWZpYyBmdW5jdGlvbiB0byBjb252ZXJ0IHB1YmxpYyBrZXkgdG8gYWRkcmVzc1xuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgYWRkcmVzcyBtYXRjaGVzIHRoZSBkZXJpdmVkIGFkZHJlc3MsIGZhbHNlIG90aGVyd2lzZVxuICogQHRocm93cyB7SW52YWxpZEFkZHJlc3NFcnJvcn0gaWYgdGhlIGFkZHJlc3MgaXMgaW52YWxpZFxuICogQHRocm93cyB7RXJyb3J9IGlmIHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlIG1pc3Npbmcgb3IgaW52YWxpZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5RWRkc2FUc3NXYWxsZXRBZGRyZXNzKFxuICBwYXJhbXM6IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zLFxuICBpc1ZhbGlkQWRkcmVzczogKGFkZHJlc3M6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXk6IChwdWJsaWNLZXk6IHN0cmluZykgPT4gc3RyaW5nXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIHZlcmlmeU1QQ1dhbGxldEFkZHJlc3MoeyAuLi5wYXJhbXMsIGtleUN1cnZlOiAnZWQyNTUxOScgfSwgaXNWYWxpZEFkZHJlc3MsIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyBpZiBhbiBhZGRyZXNzIGJlbG9uZ3MgdG8gYSB3YWxsZXQgdXNpbmcgRUNEU0EgVFNTIE1QQyBkZXJpdmF0aW9uLlxuICogVGhpcyBpcyBhIGNvbW1vbiBpbXBsZW1lbnRhdGlvbiBmb3IgRUNEU0EtYmFzZWQgTVBDIGNvaW5zIChFVEgsIEJUQywgZXRjLilcbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVmVyaWZpY2F0aW9uIG9wdGlvbnMgaW5jbHVkaW5nIGtleWNoYWlucywgYWRkcmVzcywgYW5kIGRlcml2YXRpb24gaW5kZXhcbiAqIEBwYXJhbSBpc1ZhbGlkQWRkcmVzcyAtIENvaW4tc3BlY2lmaWMgZnVuY3Rpb24gdG8gdmFsaWRhdGUgYWRkcmVzcyBmb3JtYXRcbiAqIEBwYXJhbSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSAtIENvaW4tc3BlY2lmaWMgZnVuY3Rpb24gdG8gY29udmVydCBwdWJsaWMga2V5IHRvIGFkZHJlc3NcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGFkZHJlc3MgbWF0Y2hlcyB0aGUgZGVyaXZlZCBhZGRyZXNzLCBmYWxzZSBvdGhlcndpc2VcbiAqIEB0aHJvd3Mge0ludmFsaWRBZGRyZXNzRXJyb3J9IGlmIHRoZSBhZGRyZXNzIGlzIGludmFsaWRcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiByZXF1aXJlZCBwYXJhbWV0ZXJzIGFyZSBtaXNzaW5nIG9yIGludmFsaWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeU1QQ1dhbGxldEFkZHJlc3MoXG4gIHBhcmFtczogVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMgJiB7XG4gICAga2V5Q3VydmU6ICdzZWNwMjU2azEnIHwgJ2VkMjU1MTknO1xuICB9LFxuICBpc1ZhbGlkQWRkcmVzczogKGFkZHJlc3M6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXk6IChwdWJsaWNLZXk6IHN0cmluZykgPT4gc3RyaW5nXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgeyBrZXljaGFpbnMsIGFkZHJlc3MsIGluZGV4LCBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkIH0gPSBwYXJhbXM7XG5cbiAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgfVxuXG4gIGNvbnN0IE1QQyA9IHBhcmFtcy5rZXlDdXJ2ZSA9PT0gJ3NlY3AyNTZrMScgPyBuZXcgRWNkc2EoKSA6IGF3YWl0IEVERFNBTWV0aG9kcy5nZXRJbml0aWFsaXplZE1wY0luc3RhbmNlKCk7XG4gIGNvbnN0IGNvbW1vbktleWNoYWluID0gZXh0cmFjdENvbW1vbktleWNoYWluKGtleWNoYWlucyk7XG5cbiAgLy8gQ29tcHV0ZSBkZXJpdmF0aW9uIHBhdGg6XG4gIC8vIC0gRm9yIFNNQyB3YWxsZXRzIHdpdGggZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZCwgY29tcHV0ZSBwcmVmaXggYW5kIHVzZToge3ByZWZpeH0ve2luZGV4fVxuICAvLyAtIEZvciBvdGhlciB3YWxsZXRzLCB1c2Ugc2ltcGxlIHBhdGg6IG0ve2luZGV4fVxuICBjb25zdCBwcmVmaXggPSBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkID8gZ2V0RGVyaXZhdGlvblBhdGgoZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZC50b1N0cmluZygpKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZGVyaXZhdGlvblBhdGggPSBwcmVmaXggPyBgJHtwcmVmaXh9LyR7aW5kZXh9YCA6IGBtLyR7aW5kZXh9YDtcbiAgY29uc3QgZGVyaXZlZFB1YmxpY0tleSA9IE1QQy5kZXJpdmVVbmhhcmRlbmVkKGNvbW1vbktleWNoYWluLCBkZXJpdmF0aW9uUGF0aCk7XG5cbiAgLy8gc2VjcDI1NmsxIGV4cGVjdHMgMzMgYnl0ZXM7IGVkMjU1MTkgZXhwZWN0cyAzMiBieXRlc1xuICBjb25zdCBwdWJsaWNLZXlTaXplID0gcGFyYW1zLmtleUN1cnZlID09PSAnc2VjcDI1NmsxJyA/IDMzIDogMzI7XG4gIGNvbnN0IHB1YmxpY0tleU9ubHkgPSBCdWZmZXIuZnJvbShkZXJpdmVkUHVibGljS2V5LCAnaGV4Jykuc3ViYXJyYXkoMCwgcHVibGljS2V5U2l6ZSkudG9TdHJpbmcoJ2hleCcpO1xuXG4gIGNvbnN0IGV4cGVjdGVkQWRkcmVzcyA9IGdldEFkZHJlc3NGcm9tUHVibGljS2V5KHB1YmxpY0tleU9ubHkpO1xuXG4gIHJldHVybiBhZGRyZXNzID09PSBleHBlY3RlZEFkZHJlc3M7XG59XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc1ZlcmlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvYWRkcmVzc1ZlcmlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLHNEQWVDO0FBYUQsa0VBTUM7QUFhRCx3REFxQ0M7QUFsR0Qsb0RBQTRFO0FBQzVFLGtEQUFpRDtBQUVqRCx5Q0FBbUQ7QUFDbkQsbUNBQXlDO0FBRXpDOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxTQUErQztJQUNuRixJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxLQUFLLGNBQWMsQ0FBQztRQUM5RCxNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7SUFFbkYsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSSxLQUFLLFVBQVUsMkJBQTJCLENBQy9DLE1BQStCLEVBQy9CLGNBQTRDLEVBQzVDLHVCQUFzRDtJQUV0RCxPQUFPLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0FBQzdHLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxNQUVDLEVBQ0QsY0FBNEMsRUFDNUMsdUJBQXNEO0lBRXRELE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV4RSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLDRCQUFtQixDQUFDLG9CQUFvQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV4RCwyQkFBMkI7SUFDM0IsNkZBQTZGO0lBQzdGLGtEQUFrRDtJQUNsRCxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsSUFBQSwrQkFBaUIsRUFBQyx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDL0csTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztJQUVwRSwyRkFBMkY7SUFDM0YsSUFBSSxnQkFBd0IsQ0FBQztJQUM3QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUM1RSxnQkFBZ0IsR0FBRyxJQUFBLGlDQUFtQixFQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLGtCQUFZLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUMzRyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hFLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFdEcsTUFBTSxlQUFlLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFL0QsT0FBTyxPQUFPLEtBQUssZUFBZSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXREZXJpdmF0aW9uUGF0aCwgZGVyaXZlVW5oYXJkZW5lZE1wcyB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBFY2RzYSB9IGZyb20gJy4uLy4uLy4uL2FjY291bnQtbGliL21wYyc7XG5pbXBvcnQgeyBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Jhc2VDb2luL2lCYXNlQ29pbic7XG5pbXBvcnQgeyBJbnZhbGlkQWRkcmVzc0Vycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3JzJztcbmltcG9ydCB7IEVERFNBTWV0aG9kcyB9IGZyb20gJy4uLy4uL3Rzcyc7XG5cbi8qKlxuICogRXh0cmFjdHMgYW5kIHZhbGlkYXRlcyB0aGUgY29tbW9uS2V5Y2hhaW4gZnJvbSBrZXljaGFpbnMgYXJyYXkuXG4gKiBGb3IgTVBDIHdhbGxldHMsIGFsbCBrZXljaGFpbnMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgY29tbW9uS2V5Y2hhaW4uXG4gKlxuICogQHBhcmFtIGtleWNoYWlucyAtIEFycmF5IG9mIGtleWNoYWlucyBjb250YWluaW5nIGNvbW1vbktleWNoYWluXG4gKiBAcmV0dXJucyBUaGUgdmFsaWRhdGVkIGNvbW1vbktleWNoYWluXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYga2V5Y2hhaW5zIGFyZSBtaXNzaW5nLCBlbXB0eSwgb3IgaGF2ZSBtaXNtYXRjaGVkIGNvbW1vbktleWNoYWluc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdENvbW1vbktleWNoYWluKGtleWNoYWluczogVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnNbJ2tleWNoYWlucyddKTogc3RyaW5nIHtcbiAgaWYgKCFrZXljaGFpbnM/Lmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBwYXJhbSBrZXljaGFpbnMnKTtcbiAgfVxuXG4gIGNvbnN0IGNvbW1vbktleWNoYWluID0ga2V5Y2hhaW5zWzBdLmNvbW1vbktleWNoYWluO1xuICBpZiAoIWNvbW1vbktleWNoYWluKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHBhcmFtIGNvbW1vbktleWNoYWluJyk7XG4gIH1cblxuICAvLyBWZXJpZnkgYWxsIGtleWNoYWlucyBoYXZlIHRoZSBzYW1lIGNvbW1vbktleWNoYWluXG4gIGlmIChrZXljaGFpbnMuZmluZCgoa2MpID0+IGtjLmNvbW1vbktleWNoYWluICE9PSBjb21tb25LZXljaGFpbikpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdhbGwga2V5Y2hhaW5zIG11c3QgaGF2ZSB0aGUgc2FtZSBjb21tb25LZXljaGFpbiBmb3IgTVBDIGNvaW5zJyk7XG5cbiAgcmV0dXJuIGNvbW1vbktleWNoYWluO1xufVxuXG4vKipcbiAqIFZlcmlmaWVzIGlmIGFuIGFkZHJlc3MgYmVsb25ncyB0byBhIHdhbGxldCB1c2luZyBFZERTQSBUU1MgTVBDIGRlcml2YXRpb24uXG4gKiBUaGlzIGlzIGEgY29tbW9uIGltcGxlbWVudGF0aW9uIGZvciBFZERTQS1iYXNlZCBNUEMgY29pbnMgKFNPTCwgRE9ULCBTVUksIFRPTiwgSU9UQSwgZXRjLilcbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVmVyaWZpY2F0aW9uIG9wdGlvbnMgaW5jbHVkaW5nIGtleWNoYWlucywgYWRkcmVzcywgYW5kIGRlcml2YXRpb24gaW5kZXhcbiAqIEBwYXJhbSBpc1ZhbGlkQWRkcmVzcyAtIENvaW4tc3BlY2lmaWMgZnVuY3Rpb24gdG8gdmFsaWRhdGUgYWRkcmVzcyBmb3JtYXRcbiAqIEBwYXJhbSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSAtIENvaW4tc3BlY2lmaWMgZnVuY3Rpb24gdG8gY29udmVydCBwdWJsaWMga2V5IHRvIGFkZHJlc3NcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGFkZHJlc3MgbWF0Y2hlcyB0aGUgZGVyaXZlZCBhZGRyZXNzLCBmYWxzZSBvdGhlcndpc2VcbiAqIEB0aHJvd3Mge0ludmFsaWRBZGRyZXNzRXJyb3J9IGlmIHRoZSBhZGRyZXNzIGlzIGludmFsaWRcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiByZXF1aXJlZCBwYXJhbWV0ZXJzIGFyZSBtaXNzaW5nIG9yIGludmFsaWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeUVkZHNhVHNzV2FsbGV0QWRkcmVzcyhcbiAgcGFyYW1zOiBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbiAgaXNWYWxpZEFkZHJlc3M6IChhZGRyZXNzOiBzdHJpbmcpID0+IGJvb2xlYW4sXG4gIGdldEFkZHJlc3NGcm9tUHVibGljS2V5OiAocHVibGljS2V5OiBzdHJpbmcpID0+IHN0cmluZ1xuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHJldHVybiB2ZXJpZnlNUENXYWxsZXRBZGRyZXNzKHsgLi4ucGFyYW1zLCBrZXlDdXJ2ZTogJ2VkMjU1MTknIH0sIGlzVmFsaWRBZGRyZXNzLCBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSk7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgaWYgYW4gYWRkcmVzcyBiZWxvbmdzIHRvIGEgd2FsbGV0IHVzaW5nIEVDRFNBIFRTUyBNUEMgZGVyaXZhdGlvbi5cbiAqIFRoaXMgaXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gZm9yIEVDRFNBLWJhc2VkIE1QQyBjb2lucyAoRVRILCBCVEMsIGV0Yy4pXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFZlcmlmaWNhdGlvbiBvcHRpb25zIGluY2x1ZGluZyBrZXljaGFpbnMsIGFkZHJlc3MsIGFuZCBkZXJpdmF0aW9uIGluZGV4XG4gKiBAcGFyYW0gaXNWYWxpZEFkZHJlc3MgLSBDb2luLXNwZWNpZmljIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGFkZHJlc3MgZm9ybWF0XG4gKiBAcGFyYW0gZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkgLSBDb2luLXNwZWNpZmljIGZ1bmN0aW9uIHRvIGNvbnZlcnQgcHVibGljIGtleSB0byBhZGRyZXNzXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBhZGRyZXNzIG1hdGNoZXMgdGhlIGRlcml2ZWQgYWRkcmVzcywgZmFsc2Ugb3RoZXJ3aXNlXG4gKiBAdGhyb3dzIHtJbnZhbGlkQWRkcmVzc0Vycm9yfSBpZiB0aGUgYWRkcmVzcyBpcyBpbnZhbGlkXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgcmVxdWlyZWQgcGFyYW1ldGVycyBhcmUgbWlzc2luZyBvciBpbnZhbGlkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlNUENXYWxsZXRBZGRyZXNzKFxuICBwYXJhbXM6IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zICYge1xuICAgIGtleUN1cnZlOiAnc2VjcDI1NmsxJyB8ICdlZDI1NTE5JztcbiAgfSxcbiAgaXNWYWxpZEFkZHJlc3M6IChhZGRyZXNzOiBzdHJpbmcpID0+IGJvb2xlYW4sXG4gIGdldEFkZHJlc3NGcm9tUHVibGljS2V5OiAocHVibGljS2V5OiBzdHJpbmcpID0+IHN0cmluZ1xuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHsga2V5Y2hhaW5zLCBhZGRyZXNzLCBpbmRleCwgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZCB9ID0gcGFyYW1zO1xuXG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gIH1cblxuICBjb25zdCBjb21tb25LZXljaGFpbiA9IGV4dHJhY3RDb21tb25LZXljaGFpbihrZXljaGFpbnMpO1xuXG4gIC8vIENvbXB1dGUgZGVyaXZhdGlvbiBwYXRoOlxuICAvLyAtIEZvciBTTUMgd2FsbGV0cyB3aXRoIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQsIGNvbXB1dGUgcHJlZml4IGFuZCB1c2U6IHtwcmVmaXh9L3tpbmRleH1cbiAgLy8gLSBGb3Igb3RoZXIgd2FsbGV0cywgdXNlIHNpbXBsZSBwYXRoOiBtL3tpbmRleH1cbiAgY29uc3QgcHJlZml4ID0gZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZCA/IGdldERlcml2YXRpb25QYXRoKGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQudG9TdHJpbmcoKSkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGRlcml2YXRpb25QYXRoID0gcHJlZml4ID8gYCR7cHJlZml4fS8ke2luZGV4fWAgOiBgbS8ke2luZGV4fWA7XG5cbiAgLy8gTVBDdjIgRWREU0Egd2FsbGV0cyB1c2UgYSBkaWZmZXJlbnQgQklQMzItRWQyNTUxOSBkZXJpdmF0aW9uIGZvcm11bGEgdGhhbiBNUEN2MSB3YWxsZXRzLlxuICBsZXQgZGVyaXZlZFB1YmxpY0tleTogc3RyaW5nO1xuICBpZiAocGFyYW1zLmtleUN1cnZlID09PSAnZWQyNTUxOScgJiYgcGFyYW1zLm11bHRpc2lnVHlwZVZlcnNpb24gPT09ICdNUEN2MicpIHtcbiAgICBkZXJpdmVkUHVibGljS2V5ID0gZGVyaXZlVW5oYXJkZW5lZE1wcyhjb21tb25LZXljaGFpbiwgZGVyaXZhdGlvblBhdGgpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IE1QQyA9IHBhcmFtcy5rZXlDdXJ2ZSA9PT0gJ3NlY3AyNTZrMScgPyBuZXcgRWNkc2EoKSA6IGF3YWl0IEVERFNBTWV0aG9kcy5nZXRJbml0aWFsaXplZE1wY0luc3RhbmNlKCk7XG4gICAgZGVyaXZlZFB1YmxpY0tleSA9IE1QQy5kZXJpdmVVbmhhcmRlbmVkKGNvbW1vbktleWNoYWluLCBkZXJpdmF0aW9uUGF0aCk7XG4gIH1cblxuICAvLyBzZWNwMjU2azEgZXhwZWN0cyAzMyBieXRlczsgZWQyNTUxOSBleHBlY3RzIDMyIGJ5dGVzXG4gIGNvbnN0IHB1YmxpY0tleVNpemUgPSBwYXJhbXMua2V5Q3VydmUgPT09ICdzZWNwMjU2azEnID8gMzMgOiAzMjtcbiAgY29uc3QgcHVibGljS2V5T25seSA9IEJ1ZmZlci5mcm9tKGRlcml2ZWRQdWJsaWNLZXksICdoZXgnKS5zdWJhcnJheSgwLCBwdWJsaWNLZXlTaXplKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgY29uc3QgZXhwZWN0ZWRBZGRyZXNzID0gZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5T25seSk7XG5cbiAgcmV0dXJuIGFkZHJlc3MgPT09IGV4cGVjdGVkQWRkcmVzcztcbn1cbiJdfQ==
@@ -1,12 +1,12 @@
1
- import { IRequestTracer } from '../../../api';
1
+ import { EncryptionVersion, IRequestTracer } from '../../../api';
2
2
  import * as openpgp from 'openpgp';
3
3
  import { Key, SerializedKeyPair } from 'openpgp';
4
4
  import { IBaseCoin, KeychainsTriplet } from '../../baseCoin';
5
5
  import { BitGoBase } from '../../bitgoBase';
6
- import { Keychain } from '../../keychain';
6
+ import { Keychain, WebauthnKeyEncryptionInfo } from '../../keychain';
7
7
  import { IWallet } from '../../wallet';
8
8
  import { MpcUtils } from '../mpcUtils';
9
- import { BitgoHeldBackupKeyShare, CommitmentShareRecord, CreateBitGoKeychainParamsBase, CreateKeychainParamsBase, CustomCommitmentGeneratingFunction, CustomGShareGeneratingFunction, CustomKShareGeneratingFunction, CustomMPCv2SigningRound1GeneratingFunction, CustomMPCv2SigningRound2GeneratingFunction, CustomMPCv2SigningRound3GeneratingFunction, CustomMuDeltaShareGeneratingFunction, CustomPaillierModulusGetterFunction, CustomRShareGeneratingFunction, CustomSShareGeneratingFunction, EncryptedSignerShareRecord, IntentOptionsForMessage, IntentOptionsForTypedData, ITssUtils, PrebuildTransactionWithIntentOptions, RequestType, SignatureShareRecord, TSSParams, TSSParamsForMessage, TSSParamsWithPrv, TxRequest, TxRequestVersion } from './baseTypes';
9
+ import { BitgoHeldBackupKeyShare, CommitmentShareRecord, CreateBitGoKeychainParamsBase, CreateKeychainParamsBase, CustomCommitmentGeneratingFunction, CustomEddsaMPCv2SigningRound1GeneratingFunction, CustomEddsaMPCv2SigningRound2GeneratingFunction, CustomEddsaMPCv2SigningRound3GeneratingFunction, CustomGShareGeneratingFunction, CustomKShareGeneratingFunction, CustomMPCv2SigningRound1GeneratingFunction, CustomMPCv2SigningRound2GeneratingFunction, CustomMPCv2SigningRound3GeneratingFunction, CustomMuDeltaShareGeneratingFunction, CustomPaillierModulusGetterFunction, CustomRShareGeneratingFunction, CustomSShareGeneratingFunction, EncryptedSignerShareRecord, IntentOptionsForMessage, IntentOptionsForTypedData, ITssUtils, PrebuildTransactionWithIntentOptions, RequestType, SignatureShareRecord, TSSParams, TSSParamsForMessage, TssSignTxRequestParamsWithPrv, TxRequest, TxRequestVersion } from './baseTypes';
10
10
  import { GShare, SignShare } from '../../../account-lib/mpc/tss';
11
11
  /**
12
12
  * BaseTssUtil class which different signature schemes have to extend
@@ -33,8 +33,10 @@ export default class BaseTssUtils<KeyShare> extends MpcUtils implements ITssUtil
33
33
  enterprise?: string | undefined;
34
34
  originalPasscodeEncryptionCode?: string | undefined;
35
35
  isThirdPartyBackup?: boolean;
36
+ webauthnInfo?: WebauthnKeyEncryptionInfo;
37
+ encryptionVersion?: EncryptionVersion;
36
38
  }): Promise<KeychainsTriplet>;
37
- signTxRequest(params: TSSParamsWithPrv): Promise<TxRequest>;
39
+ signTxRequest(params: TssSignTxRequestParamsWithPrv): Promise<TxRequest>;
38
40
  signTxRequestForMessage(params: TSSParamsForMessage): Promise<TxRequest>;
39
41
  /**
40
42
  * Signs a transaction using TSS for EdDSA and through utilization of custom share generators
@@ -67,6 +69,7 @@ export default class BaseTssUtils<KeyShare> extends MpcUtils implements ITssUtil
67
69
  * @returns {Promise<TxRequest>} - a signed tx request
68
70
  */
69
71
  signEcdsaMPCv2TssUsingExternalSigner(params: TSSParams | TSSParamsForMessage, externalSignerMPCv2SigningRound1Generator: CustomMPCv2SigningRound1GeneratingFunction, externalSignerMPCv2SigningRound2Generator: CustomMPCv2SigningRound2GeneratingFunction, externalSignerMPCv2SigningRound3Generator: CustomMPCv2SigningRound3GeneratingFunction, requestType?: RequestType): Promise<TxRequest>;
72
+ signEddsaMPCv2TssUsingExternalSigner(params: TSSParams | TSSParamsForMessage, externalSignerEddsaMPCv2SigningRound1Generator: CustomEddsaMPCv2SigningRound1GeneratingFunction, externalSignerEddsaMPCv2SigningRound2Generator: CustomEddsaMPCv2SigningRound2GeneratingFunction, externalSignerEddsaMPCv2SigningRound3Generator: CustomEddsaMPCv2SigningRound3GeneratingFunction, requestType?: RequestType): Promise<TxRequest>;
70
73
  /**
71
74
  * Create an Commitment (User to BitGo) share from an unsigned transaction and private user signing material
72
75
  * EDDSA only
@@ -226,5 +229,36 @@ export default class BaseTssUtils<KeyShare> extends MpcUtils implements ITssUtil
226
229
  * @returns boolean
227
230
  */
228
231
  isPendingApprovalTxRequestFull(txRequest: TxRequest): boolean;
232
+ /**
233
+ * Get the signable hex, derivation path, and serialized tx hex from a full single-transaction request.
234
+ * @param {TxRequest} txRequest - the transaction request object
235
+ * @returns {{ signableHex: string; derivationPath: string; serializedTxHex: string | undefined }} - the signable hex, derivation path, and serialized tx hex
236
+ */
237
+ protected getSignableHexAndDerivationPath(txRequest: TxRequest, missingTransactionsMessage?: string): {
238
+ signableHex: string;
239
+ derivationPath: string;
240
+ serializedTxHex: string | undefined;
241
+ };
242
+ /**
243
+ * Gets the BitGo and user GPG keys from the BitGo public GPG key and the encrypted user GPG private key.
244
+ * @param {string} bitgoPublicGpgKey - the BitGo public GPG key
245
+ * @param {string} encryptedUserGpgPrvKey - the encrypted user GPG private key
246
+ * @param {string} walletPassphrase - the wallet passphrase
247
+ * @param {string} adata - the additional data to validate the GPG keys
248
+ * @param {string} userGpgKeyDomainSeparator - the domain separator expected in the encrypted GPG key adata
249
+ * @returns {Promise<{ bitgoGpgKey: openpgp.Key; userGpgPrvKey: openpgp.PrivateKey }>} - the BitGo and user GPG keys
250
+ */
251
+ protected getBitgoAndUserGpgKeys(bitgoPublicGpgKey: string, encryptedUserGpgPrvKey: string, walletPassphrase: string, adata: string, userGpgKeyDomainSeparator: string): Promise<{
252
+ bitgoGpgKey: openpgp.Key;
253
+ userGpgPrvKey: openpgp.PrivateKey;
254
+ }>;
255
+ /**
256
+ * Validates encryption additional authenticated data against the ciphertext envelope.
257
+ * @param adata string
258
+ * @param cyphertext string
259
+ * @param roundDomainSeparator string
260
+ * @throws {Error} if the adata or cyphertext is invalid
261
+ */
262
+ protected validateAdata(adata: string, cyphertext: string, roundDomainSeparator: string): void;
229
263
  }
230
264
  //# sourceMappingURL=baseTSSUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseTSSUtils.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/baseTSSUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,GAAG,EAAW,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAEL,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,8BAA8B,EAC9B,0CAA0C,EAC1C,0CAA0C,EAC1C,0CAA0C,EAC1C,oCAAoC,EACpC,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,SAAS,EAGT,oCAAoC,EACpC,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAOjE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY,CAAC,QAAQ,CAAE,SAAQ,QAAS,YAAW,SAAS,CAAC,QAAQ,CAAC;IACzF,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC;IACzC,SAAS,CAAC,sBAAsB,EAAE,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,2BAA2B,EAAE,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;gBAEnD,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO;IAKnE,IAAI,MAAM,IAAI,OAAO,CAKpB;cAEe,iBAAiB,CAAC,KAAK,KAAA;IAgB1B,4BAA4B,CACvC,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,cAAc,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IA4CjB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IAY5C,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IAYjD,8BAA8B,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IAYtD,6BAA6B,CACjC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,uBAAuB,CAAC;IAiB5B,+BAA+B,CACpC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,QAAQ,EACtB,aAAa,EAAE,QAAQ,EACvB,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,GAAG,GAChB,OAAO,CAAC,uBAAuB,CAAC;IAInC,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvE,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIzE,mBAAmB,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI7E,eAAe,CAAC,MAAM,EAAE;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,8BAA8B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpD,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7B,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3D,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxE;;;;;;;OAOG;IACH,+BAA+B,CAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,iCAAiC,EAAE,kCAAkC,EACrE,6BAA6B,EAAE,8BAA8B,EAC7D,6BAA6B,EAAE,8BAA8B,GAC5D,OAAO,CAAC,SAAS,CAAC;IAIrB;;;;;;;;;OASG;IACH,+BAA+B,CAC7B,MAAM,EAAE,SAAS,GAAG,mBAAmB,EACvC,WAAW,EAAE,WAAW,EACxB,mCAAmC,EAAE,mCAAmC,EACxE,6BAA6B,EAAE,8BAA8B,EAC7D,mCAAmC,EAAE,oCAAoC,EACzE,6BAA6B,EAAE,8BAA8B,GAC5D,OAAO,CAAC,SAAS,CAAC;IAIrB;;;;;;;;;OASG;IACH,oCAAoC,CAClC,MAAM,EAAE,SAAS,GAAG,mBAAmB,EACvC,yCAAyC,EAAE,0CAA0C,EACrF,yCAAyC,EAAE,0CAA0C,EACrF,yCAAyC,EAAE,0CAA0C,EACrF,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,SAAS,CAAC;IAIrB;;;;;;;;;;OAUG;IACH,kCAAkC,CAAC,MAAM,EAAE;QACzC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,oBAAoB,EAAE,0BAA0B,CAAC;QACjD,0BAA0B,EAAE,0BAA0B,CAAC;KACxD,CAAC;IAIF;;;;;;;;;OASG;IACH,yBAAyB,CAAC,MAAM,EAAE;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,0BAA0B,EAAE,0BAA0B,CAAC;KACxD,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IAIlC;;;;;;;;;;OAUG;IACH,yBAAyB,CAAC,MAAM,EAAE;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,iBAAiB,EAAE,oBAAoB,CAAC;QACxC,iBAAiB,EAAE,SAAS,CAAC;QAC7B,qBAAqB,EAAE,qBAAqB,CAAC;KAC9C,GAAG,OAAO,CAAC,MAAM,CAAC;IAInB;;;;;;;OAOG;IACG,oBAAoB,CACxB,MAAM,EAAE,oCAAoC,EAC5C,UAAU,GAAE,gBAAyB,EACrC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,SAAS,CAAC;IAqBrB;;;;;;;OAOG;IACG,0CAA0C,CAC9C,MAAM,EAAE,uBAAuB,EAC/B,UAAU,GAAE,gBAAyB,EACrC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,SAAS,CAAC;IAerB;;;;;OAKG;IACG,uBAAuB,CAC3B,MAAM,EAAE,uBAAuB,EAC/B,UAAU,GAAE,gBAAyB,GACpC,OAAO,CAAC,SAAS,CAAC;IAqBrB;;;;;;OAMG;IACG,4CAA4C,CAChD,MAAM,EAAE,yBAAyB,EACjC,UAAU,GAAE,gBAAyB,EACrC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,SAAS,CAAC;IAerB;;;;OAIG;YACW,mBAAmB;IAsBjC;;;;OAIG;YACW,2BAA2B;IAoBzC;;;;;;OAMG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IASzG;;;;;;OAMG;IAEG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAS9E;;;;;;;;;OASG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAO7G;;;;;;OAMG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAInF;;;;;;;OAOG;IACU,oCAAoC,CAC/C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,UAAQ,EACf,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC;QAAE,cAAc,EAAE,GAAG,CAAC;QAAC,mBAAmB,EAAE,GAAG,GAAG,SAAS,CAAA;KAAE,CAAC;IAiBzE;;;OAGG;IACI,0BAA0B,IAAI,gBAAgB,EAAE;IAYvD;;;;OAIG;IACH,8BAA8B,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;CAI9D"}
1
+ {"version":3,"file":"baseTSSUtils.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/baseTSSUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,GAAG,EAAW,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAc,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAEL,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,kCAAkC,EAClC,+CAA+C,EAC/C,+CAA+C,EAC/C,+CAA+C,EAC/C,8BAA8B,EAC9B,8BAA8B,EAC9B,0CAA0C,EAC1C,0CAA0C,EAC1C,0CAA0C,EAC1C,oCAAoC,EACpC,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,SAAS,EAGT,oCAAoC,EACpC,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,6BAA6B,EAC7B,SAAS,EACT,gBAAgB,EAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAOjE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY,CAAC,QAAQ,CAAE,SAAQ,QAAS,YAAW,SAAS,CAAC,QAAQ,CAAC;IACzF,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC;IACzC,SAAS,CAAC,sBAAsB,EAAE,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,2BAA2B,EAAE,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;gBAEnD,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO;IAKnE,IAAI,MAAM,IAAI,OAAO,CAKpB;cAEe,iBAAiB,CAAC,KAAK,KAAA;IAgB1B,4BAA4B,CACvC,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,cAAc,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IA4CjB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IAY5C,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IAYjD,8BAA8B,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IAYtD,6BAA6B,CACjC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,uBAAuB,CAAC;IAiB5B,+BAA+B,CACpC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,QAAQ,EACtB,aAAa,EAAE,QAAQ,EACvB,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,GAAG,GAChB,OAAO,CAAC,uBAAuB,CAAC;IAInC,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvE,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIzE,mBAAmB,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI7E,eAAe,CAAC,MAAM,EAAE;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,8BAA8B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpD,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7B,aAAa,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxE,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxE;;;;;;;OAOG;IACH,+BAA+B,CAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,iCAAiC,EAAE,kCAAkC,EACrE,6BAA6B,EAAE,8BAA8B,EAC7D,6BAA6B,EAAE,8BAA8B,GAC5D,OAAO,CAAC,SAAS,CAAC;IAIrB;;;;;;;;;OASG;IACH,+BAA+B,CAC7B,MAAM,EAAE,SAAS,GAAG,mBAAmB,EACvC,WAAW,EAAE,WAAW,EACxB,mCAAmC,EAAE,mCAAmC,EACxE,6BAA6B,EAAE,8BAA8B,EAC7D,mCAAmC,EAAE,oCAAoC,EACzE,6BAA6B,EAAE,8BAA8B,GAC5D,OAAO,CAAC,SAAS,CAAC;IAIrB;;;;;;;;;OASG;IACH,oCAAoC,CAClC,MAAM,EAAE,SAAS,GAAG,mBAAmB,EACvC,yCAAyC,EAAE,0CAA0C,EACrF,yCAAyC,EAAE,0CAA0C,EACrF,yCAAyC,EAAE,0CAA0C,EACrF,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,SAAS,CAAC;IAIrB,oCAAoC,CAClC,MAAM,EAAE,SAAS,GAAG,mBAAmB,EACvC,8CAA8C,EAAE,+CAA+C,EAC/F,8CAA8C,EAAE,+CAA+C,EAC/F,8CAA8C,EAAE,+CAA+C,EAC/F,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,SAAS,CAAC;IAIrB;;;;;;;;;;OAUG;IACH,kCAAkC,CAAC,MAAM,EAAE;QACzC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,oBAAoB,EAAE,0BAA0B,CAAC;QACjD,0BAA0B,EAAE,0BAA0B,CAAC;KACxD,CAAC;IAIF;;;;;;;;;OASG;IACH,yBAAyB,CAAC,MAAM,EAAE;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,0BAA0B,EAAE,0BAA0B,CAAC;KACxD,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IAIlC;;;;;;;;;;OAUG;IACH,yBAAyB,CAAC,MAAM,EAAE;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,iBAAiB,EAAE,oBAAoB,CAAC;QACxC,iBAAiB,EAAE,SAAS,CAAC;QAC7B,qBAAqB,EAAE,qBAAqB,CAAC;KAC9C,GAAG,OAAO,CAAC,MAAM,CAAC;IAInB;;;;;;;OAOG;IACG,oBAAoB,CACxB,MAAM,EAAE,oCAAoC,EAC5C,UAAU,GAAE,gBAAyB,EACrC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,SAAS,CAAC;IAqBrB;;;;;;;OAOG;IACG,0CAA0C,CAC9C,MAAM,EAAE,uBAAuB,EAC/B,UAAU,GAAE,gBAAyB,EACrC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,SAAS,CAAC;IAerB;;;;;OAKG;IACG,uBAAuB,CAC3B,MAAM,EAAE,uBAAuB,EAC/B,UAAU,GAAE,gBAAyB,GACpC,OAAO,CAAC,SAAS,CAAC;IAqBrB;;;;;;OAMG;IACG,4CAA4C,CAChD,MAAM,EAAE,yBAAyB,EACjC,UAAU,GAAE,gBAAyB,EACrC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,SAAS,CAAC;IAerB;;;;OAIG;YACW,mBAAmB;IAsBjC;;;;OAIG;YACW,2BAA2B;IAoBzC;;;;;;OAMG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IASzG;;;;;;OAMG;IAEG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAS9E;;;;;;;;;OASG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAO7G;;;;;;OAMG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAInF;;;;;;;OAOG;IACU,oCAAoC,CAC/C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,UAAQ,EACf,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC;QAAE,cAAc,EAAE,GAAG,CAAC;QAAC,mBAAmB,EAAE,GAAG,GAAG,SAAS,CAAA;KAAE,CAAC;IAiBzE;;;OAGG;IACI,0BAA0B,IAAI,gBAAgB,EAAE;IAevD;;;;OAIG;IACH,8BAA8B,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAK7D;;;;OAIG;IACH,SAAS,CAAC,+BAA+B,CACvC,SAAS,EAAE,SAAS,EACpB,0BAA0B,SAAqE,GAC9F;QACD,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;KACrC;IAaD;;;;;;;;OAQG;cACa,sBAAsB,CACpC,iBAAiB,EAAE,MAAM,EACzB,sBAAsB,EAAE,MAAM,EAC9B,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,MAAM,EACb,yBAAyB,EAAE,MAAM,GAChC,OAAO,CAAC;QACT,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC;QACzB,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC;KACnC,CAAC;IAcF;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,IAAI;CAe/F"}