@getpara/core-sdk 2.11.0 → 2.13.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 (197) hide show
  1. package/dist/cjs/ParaCore.js +809 -2003
  2. package/dist/cjs/constants.js +4 -1
  3. package/dist/cjs/services/AuthService.js +787 -0
  4. package/dist/cjs/services/BaseAuthFlowService.js +78 -0
  5. package/dist/cjs/services/ExternalWalletService.js +386 -0
  6. package/dist/cjs/services/LoginFlowService.js +163 -0
  7. package/dist/cjs/services/PollingService.js +448 -0
  8. package/dist/cjs/services/PortalUrlService.js +379 -0
  9. package/dist/cjs/services/PregenWalletService.js +442 -0
  10. package/dist/cjs/services/SessionManagementService.js +280 -0
  11. package/dist/cjs/services/SignupFlowService.js +185 -0
  12. package/dist/cjs/services/VerificationFlowService.js +242 -0
  13. package/dist/cjs/services/WalletService.js +577 -0
  14. package/dist/cjs/services/types/AuthServiceTypes.js +15 -0
  15. package/dist/cjs/services/types/BaseAuthFlowServiceTypes.js +15 -0
  16. package/dist/cjs/services/types/ExternalWalletServiceTypes.js +15 -0
  17. package/dist/cjs/services/types/LoginFlowServiceTypes.js +15 -0
  18. package/dist/cjs/services/types/PollingServiceTypes.js +15 -0
  19. package/dist/cjs/services/types/PortalUrlServiceTypes.js +15 -0
  20. package/dist/cjs/services/types/PregenWalletServiceTypes.js +15 -0
  21. package/dist/cjs/services/types/SessionManagementServiceTypes.js +15 -0
  22. package/dist/cjs/services/types/SignupFlowServiceTypes.js +15 -0
  23. package/dist/cjs/services/types/VerificationFlowServiceTypes.js +15 -0
  24. package/dist/cjs/services/types/WalletServiceTypes.js +15 -0
  25. package/dist/cjs/services/types/index.js +15 -0
  26. package/dist/cjs/state/CoreStateManager.js +297 -0
  27. package/dist/cjs/state/actors/authenticateWithEmailOrPhone.js +50 -0
  28. package/dist/cjs/state/actors/authenticateWithExternalWallet.js +50 -0
  29. package/dist/cjs/state/actors/authenticateWithFarcaster.js +50 -0
  30. package/dist/cjs/state/actors/authenticateWithFarcasterLegacy.js +50 -0
  31. package/dist/cjs/state/actors/authenticateWithTelegram.js +50 -0
  32. package/dist/cjs/state/actors/authenticateWithTelegramLegacy.js +50 -0
  33. package/dist/cjs/state/actors/checkUserState.js +53 -0
  34. package/dist/cjs/state/actors/claimWallets.js +56 -0
  35. package/dist/cjs/state/actors/connectExternalConnectors.js +54 -0
  36. package/dist/cjs/state/actors/connectExternalWallet.js +50 -0
  37. package/dist/cjs/state/actors/createGuestWallets.js +50 -0
  38. package/dist/cjs/state/actors/createWallets.js +73 -0
  39. package/dist/cjs/state/actors/polling.js +91 -0
  40. package/dist/cjs/state/actors/processAuthentication.js +50 -0
  41. package/dist/cjs/state/actors/setupAfterLogin.js +52 -0
  42. package/dist/cjs/state/actors/setupPara.js +50 -0
  43. package/dist/cjs/state/actors/signExternalWalletVerification.js +79 -0
  44. package/dist/cjs/state/actors/switchExternalWallet.js +50 -0
  45. package/dist/cjs/state/actors/verifyExternalWallet.js +50 -0
  46. package/dist/cjs/state/actors/verifyNewAccount.js +50 -0
  47. package/dist/cjs/state/actors/waitForExternalWalletProviders.js +54 -0
  48. package/dist/cjs/state/machines/authStateMachine.helpers.js +137 -0
  49. package/dist/cjs/state/machines/authStateMachine.js +1084 -0
  50. package/dist/cjs/state/machines/coreStateMachine.js +383 -0
  51. package/dist/cjs/state/machines/walletStateMachine.js +437 -0
  52. package/dist/cjs/state/types/auth.js +15 -0
  53. package/dist/cjs/state/types/core.js +15 -0
  54. package/dist/cjs/state/types/wallet.js +15 -0
  55. package/dist/cjs/types/{auth.js → accountLinking.js} +3 -3
  56. package/dist/cjs/types/authState.js +15 -0
  57. package/dist/cjs/types/coreApi.js +3 -1
  58. package/dist/cjs/types/index.js +2 -2
  59. package/dist/cjs/types/serviceInterfaces.js +15 -0
  60. package/dist/cjs/types/util.js +15 -0
  61. package/dist/cjs/utils/formatting.js +6 -0
  62. package/dist/cjs/utils/retryBackoff.js +30 -0
  63. package/dist/cjs/utils/stateErrorHelpers.js +60 -0
  64. package/dist/cjs/utils/stateListener.js +129 -0
  65. package/dist/esm/ParaCore.js +812 -2031
  66. package/dist/esm/constants.js +3 -1
  67. package/dist/esm/services/AuthService.js +717 -0
  68. package/dist/esm/services/BaseAuthFlowService.js +25 -0
  69. package/dist/esm/services/ExternalWalletService.js +327 -0
  70. package/dist/esm/services/LoginFlowService.js +97 -0
  71. package/dist/esm/services/PollingService.js +389 -0
  72. package/dist/esm/services/PortalUrlService.js +320 -0
  73. package/dist/esm/services/PregenWalletService.js +393 -0
  74. package/dist/esm/services/SessionManagementService.js +236 -0
  75. package/dist/esm/services/SignupFlowService.js +119 -0
  76. package/dist/esm/services/VerificationFlowService.js +178 -0
  77. package/dist/esm/services/WalletService.js +514 -0
  78. package/dist/esm/services/types/AuthServiceTypes.js +0 -0
  79. package/dist/esm/services/types/BaseAuthFlowServiceTypes.js +0 -0
  80. package/dist/esm/services/types/ExternalWalletServiceTypes.js +0 -0
  81. package/dist/esm/services/types/LoginFlowServiceTypes.js +0 -0
  82. package/dist/esm/services/types/PollingServiceTypes.js +0 -0
  83. package/dist/esm/services/types/PortalUrlServiceTypes.js +0 -0
  84. package/dist/esm/services/types/PregenWalletServiceTypes.js +0 -0
  85. package/dist/esm/services/types/SessionManagementServiceTypes.js +0 -0
  86. package/dist/esm/services/types/SignupFlowServiceTypes.js +0 -0
  87. package/dist/esm/services/types/VerificationFlowServiceTypes.js +0 -0
  88. package/dist/esm/services/types/WalletServiceTypes.js +0 -0
  89. package/dist/esm/services/types/index.js +0 -0
  90. package/dist/esm/state/CoreStateManager.js +261 -0
  91. package/dist/esm/state/actors/authenticateWithEmailOrPhone.js +10 -0
  92. package/dist/esm/state/actors/authenticateWithExternalWallet.js +10 -0
  93. package/dist/esm/state/actors/authenticateWithFarcaster.js +10 -0
  94. package/dist/esm/state/actors/authenticateWithFarcasterLegacy.js +10 -0
  95. package/dist/esm/state/actors/authenticateWithTelegram.js +10 -0
  96. package/dist/esm/state/actors/authenticateWithTelegramLegacy.js +10 -0
  97. package/dist/esm/state/actors/checkUserState.js +13 -0
  98. package/dist/esm/state/actors/claimWallets.js +16 -0
  99. package/dist/esm/state/actors/connectExternalConnectors.js +14 -0
  100. package/dist/esm/state/actors/connectExternalWallet.js +10 -0
  101. package/dist/esm/state/actors/createGuestWallets.js +10 -0
  102. package/dist/esm/state/actors/createWallets.js +20 -0
  103. package/dist/esm/state/actors/polling.js +55 -0
  104. package/dist/esm/state/actors/processAuthentication.js +10 -0
  105. package/dist/esm/state/actors/setupAfterLogin.js +12 -0
  106. package/dist/esm/state/actors/setupPara.js +10 -0
  107. package/dist/esm/state/actors/signExternalWalletVerification.js +15 -0
  108. package/dist/esm/state/actors/switchExternalWallet.js +10 -0
  109. package/dist/esm/state/actors/verifyExternalWallet.js +10 -0
  110. package/dist/esm/state/actors/verifyNewAccount.js +10 -0
  111. package/dist/esm/state/actors/waitForExternalWalletProviders.js +14 -0
  112. package/dist/esm/state/machines/authStateMachine.helpers.js +92 -0
  113. package/dist/esm/state/machines/authStateMachine.js +1039 -0
  114. package/dist/esm/state/machines/coreStateMachine.js +343 -0
  115. package/dist/esm/state/machines/walletStateMachine.js +382 -0
  116. package/dist/esm/state/types/auth.js +0 -0
  117. package/dist/esm/state/types/core.js +0 -0
  118. package/dist/esm/state/types/wallet.js +0 -0
  119. package/dist/esm/types/authState.js +0 -0
  120. package/dist/esm/types/coreApi.js +3 -1
  121. package/dist/esm/types/index.js +1 -1
  122. package/dist/esm/types/serviceInterfaces.js +0 -0
  123. package/dist/esm/types/util.js +0 -0
  124. package/dist/esm/utils/formatting.js +6 -0
  125. package/dist/esm/utils/retryBackoff.js +7 -0
  126. package/dist/esm/utils/stateErrorHelpers.js +37 -0
  127. package/dist/esm/utils/stateListener.js +106 -0
  128. package/dist/types/ParaCore.d.ts +190 -119
  129. package/dist/types/PlatformUtils.d.ts +23 -0
  130. package/dist/types/constants.d.ts +1 -0
  131. package/dist/types/index.d.ts +4 -2
  132. package/dist/types/services/AuthService.d.ts +72 -0
  133. package/dist/types/services/BaseAuthFlowService.d.ts +28 -0
  134. package/dist/types/services/ExternalWalletService.d.ts +44 -0
  135. package/dist/types/services/LoginFlowService.d.ts +9 -0
  136. package/dist/types/services/PollingService.d.ts +35 -0
  137. package/dist/types/services/PortalUrlService.d.ts +26 -0
  138. package/dist/types/services/PregenWalletService.d.ts +38 -0
  139. package/dist/types/services/SessionManagementService.d.ts +28 -0
  140. package/dist/types/services/SignupFlowService.d.ts +10 -0
  141. package/dist/types/services/VerificationFlowService.d.ts +17 -0
  142. package/dist/types/services/WalletService.d.ts +54 -0
  143. package/dist/types/services/types/AuthServiceTypes.d.ts +147 -0
  144. package/dist/types/services/types/BaseAuthFlowServiceTypes.d.ts +4 -0
  145. package/dist/types/services/types/ExternalWalletServiceTypes.d.ts +67 -0
  146. package/dist/types/services/types/LoginFlowServiceTypes.d.ts +19 -0
  147. package/dist/types/services/types/PollingServiceTypes.d.ts +82 -0
  148. package/dist/types/services/types/PortalUrlServiceTypes.d.ts +46 -0
  149. package/dist/types/services/types/PregenWalletServiceTypes.d.ts +73 -0
  150. package/dist/types/services/types/SessionManagementServiceTypes.d.ts +27 -0
  151. package/dist/types/services/types/SignupFlowServiceTypes.d.ts +18 -0
  152. package/dist/types/services/types/VerificationFlowServiceTypes.d.ts +90 -0
  153. package/dist/types/services/types/WalletServiceTypes.d.ts +109 -0
  154. package/dist/types/services/types/index.d.ts +11 -0
  155. package/dist/types/state/CoreStateManager.d.ts +36 -0
  156. package/dist/types/state/actors/authenticateWithEmailOrPhone.d.ts +8 -0
  157. package/dist/types/state/actors/authenticateWithExternalWallet.d.ts +8 -0
  158. package/dist/types/state/actors/authenticateWithFarcaster.d.ts +3 -0
  159. package/dist/types/state/actors/authenticateWithFarcasterLegacy.d.ts +3 -0
  160. package/dist/types/state/actors/authenticateWithTelegram.d.ts +3 -0
  161. package/dist/types/state/actors/authenticateWithTelegramLegacy.d.ts +8 -0
  162. package/dist/types/state/actors/checkUserState.d.ts +6 -0
  163. package/dist/types/state/actors/claimWallets.d.ts +8 -0
  164. package/dist/types/state/actors/connectExternalConnectors.d.ts +4 -0
  165. package/dist/types/state/actors/connectExternalWallet.d.ts +3 -0
  166. package/dist/types/state/actors/createGuestWallets.d.ts +3 -0
  167. package/dist/types/state/actors/createWallets.d.ts +10 -0
  168. package/dist/types/state/actors/polling.d.ts +3 -0
  169. package/dist/types/state/actors/processAuthentication.d.ts +10 -0
  170. package/dist/types/state/actors/setupAfterLogin.d.ts +5 -0
  171. package/dist/types/state/actors/setupPara.d.ts +2 -0
  172. package/dist/types/state/actors/signExternalWalletVerification.d.ts +7 -0
  173. package/dist/types/state/actors/switchExternalWallet.d.ts +3 -0
  174. package/dist/types/state/actors/verifyExternalWallet.d.ts +8 -0
  175. package/dist/types/state/actors/verifyNewAccount.d.ts +8 -0
  176. package/dist/types/state/actors/waitForExternalWalletProviders.d.ts +2 -0
  177. package/dist/types/state/machines/authStateMachine.d.ts +2570 -0
  178. package/dist/types/state/machines/authStateMachine.helpers.d.ts +57 -0
  179. package/dist/types/state/machines/coreStateMachine.d.ts +22033 -0
  180. package/dist/types/state/machines/walletStateMachine.d.ts +1049 -0
  181. package/dist/types/state/types/auth.d.ts +113 -0
  182. package/dist/types/state/types/core.d.ts +114 -0
  183. package/dist/types/state/types/wallet.d.ts +76 -0
  184. package/dist/types/types/authState.d.ts +66 -0
  185. package/dist/types/types/config.d.ts +5 -0
  186. package/dist/types/types/coreApi.d.ts +148 -298
  187. package/dist/types/types/index.d.ts +3 -1
  188. package/dist/types/types/methods.d.ts +1 -191
  189. package/dist/types/types/serviceInterfaces.d.ts +125 -0
  190. package/dist/types/types/util.d.ts +43 -0
  191. package/dist/types/types/wallet.d.ts +3 -1
  192. package/dist/types/utils/retryBackoff.d.ts +2 -0
  193. package/dist/types/utils/stateErrorHelpers.d.ts +2 -0
  194. package/dist/types/utils/stateListener.d.ts +47 -0
  195. package/package.json +5 -4
  196. /package/dist/esm/types/{auth.js → accountLinking.js} +0 -0
  197. /package/dist/types/types/{auth.d.ts → accountLinking.d.ts} +0 -0
@@ -0,0 +1,442 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __typeError = (msg) => {
10
+ throw TypeError(msg);
11
+ };
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __export = (target, all) => {
26
+ for (var name in all)
27
+ __defProp(target, name, { get: all[name], enumerable: true });
28
+ };
29
+ var __copyProps = (to, from, except, desc) => {
30
+ if (from && typeof from === "object" || typeof from === "function") {
31
+ for (let key of __getOwnPropNames(from))
32
+ if (!__hasOwnProp.call(to, key) && key !== except)
33
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
34
+ }
35
+ return to;
36
+ };
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
39
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
40
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
41
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
42
+ var __async = (__this, __arguments, generator) => {
43
+ return new Promise((resolve, reject) => {
44
+ var fulfilled = (value) => {
45
+ try {
46
+ step(generator.next(value));
47
+ } catch (e) {
48
+ reject(e);
49
+ }
50
+ };
51
+ var rejected = (value) => {
52
+ try {
53
+ step(generator.throw(value));
54
+ } catch (e) {
55
+ reject(e);
56
+ }
57
+ };
58
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
59
+ step((generator = generator.apply(__this, __arguments)).next());
60
+ });
61
+ };
62
+ var PregenWalletService_exports = {};
63
+ __export(PregenWalletService_exports, {
64
+ PregenWalletService: () => PregenWalletService
65
+ });
66
+ module.exports = __toCommonJS(PregenWalletService_exports);
67
+ var import_user_management_client = require("@getpara/user-management-client");
68
+ var import_wallet2 = require("../utils/wallet.js");
69
+ var import_utils = require("../utils/index.js");
70
+ var import_events = require("../types/events.js");
71
+ var import_shareDistribution = require("../shares/shareDistribution.js");
72
+ var import_constants = require("../constants.js");
73
+ var import_stateListener = require("../utils/stateListener.js");
74
+ var _stateManager, _authService, _walletService, _pollingService, _paraCoreInterface, _isCreateGuestWalletsPending, _fetchOverridePromise;
75
+ class PregenWalletService {
76
+ constructor(paraCore) {
77
+ __privateAdd(this, _stateManager);
78
+ __privateAdd(this, _authService);
79
+ __privateAdd(this, _walletService);
80
+ __privateAdd(this, _pollingService);
81
+ __privateAdd(this, _paraCoreInterface);
82
+ __privateAdd(this, _isCreateGuestWalletsPending, false);
83
+ __privateAdd(this, _fetchOverridePromise, null);
84
+ this.init = ({
85
+ authService,
86
+ walletService,
87
+ pollingService,
88
+ stateManager
89
+ }) => {
90
+ __privateSet(this, _walletService, walletService);
91
+ __privateSet(this, _authService, authService);
92
+ __privateSet(this, _pollingService, pollingService);
93
+ __privateSet(this, _stateManager, stateManager);
94
+ };
95
+ this.isPregenWalletUnclaimed = (wallet) => {
96
+ return __privateGet(this, _walletService).isWalletSupported(wallet) && (!(wallet == null ? void 0 : wallet.userId) || (wallet == null ? void 0 : wallet.isPregen) && !!(wallet == null ? void 0 : wallet.pregenIdentifier) && !!(wallet == null ? void 0 : wallet.pregenIdentifierType));
97
+ };
98
+ this.isPregenWalletClaimable = (wallet) => {
99
+ return __privateGet(this, _walletService).isWalletSupported(wallet) && this.isPregenWalletUnclaimed(wallet) && (!["EMAIL", "PHONE", "TELEGRAM"].includes(wallet == null ? void 0 : wallet.pregenIdentifierType) || (0, import_wallet2.isPregenIdentifierMatch)(
100
+ (wallet == null ? void 0 : wallet.pregenIdentifierType) === "EMAIL" ? __privateGet(this, _authService).email : (wallet == null ? void 0 : wallet.pregenIdentifierType) === "TELEGRAM" ? __privateGet(this, _authService).telegramUserId : __privateGet(this, _authService).phone,
101
+ wallet == null ? void 0 : wallet.pregenIdentifier,
102
+ wallet == null ? void 0 : wallet.pregenIdentifierType
103
+ ));
104
+ };
105
+ this.fetchPregenWalletsFromOverride = (_0) => __async(this, [_0], function* ({ authInfo }) {
106
+ if (__privateGet(this, _paraCoreInterface).fetchPregenWalletsOverride && (0, import_user_management_client.isPregenAuth)(authInfo)) {
107
+ const previous = __privateGet(this, _fetchOverridePromise);
108
+ __privateSet(this, _fetchOverridePromise, (() => __async(this, null, function* () {
109
+ if (previous !== null) yield previous.catch(() => {
110
+ });
111
+ try {
112
+ const { userShare } = yield __privateGet(this, _paraCoreInterface).fetchPregenWalletsOverride({ pregenId: authInfo });
113
+ if (userShare) {
114
+ yield __privateGet(this, _walletService).setUserShare(userShare);
115
+ }
116
+ } finally {
117
+ __privateSet(this, _fetchOverridePromise, null);
118
+ }
119
+ }))());
120
+ yield __privateGet(this, _fetchOverridePromise);
121
+ }
122
+ });
123
+ this.performClaimPregenWallets = () => __async(this, null, function* () {
124
+ if (__privateGet(this, _fetchOverridePromise) !== null) {
125
+ try {
126
+ yield __privateGet(this, _fetchOverridePromise);
127
+ } catch (e) {
128
+ }
129
+ }
130
+ const { supportedWalletTypes } = yield __privateGet(this, _paraCoreInterface).assertPartner();
131
+ const pregenWallets = yield this.getPregenWallets();
132
+ let recoverySecret, walletIds = {};
133
+ if (pregenWallets.length > 0) {
134
+ try {
135
+ const shares = yield __privateGet(this, _paraCoreInterface).ctx.enclaveClient.getPregenShares({
136
+ userId: __privateGet(this, _authService).userId,
137
+ walletIds: pregenWallets.map((w) => w.id),
138
+ partnerId: pregenWallets[0].partnerId
139
+ });
140
+ for (const share of shares) {
141
+ const wallet = pregenWallets.find((w) => w.id === share.walletId);
142
+ if (wallet) {
143
+ __privateGet(this, _walletService).wallets[wallet.id] = {
144
+ id: wallet.id,
145
+ address: wallet.address,
146
+ scheme: wallet.scheme,
147
+ type: wallet.type,
148
+ partnerId: wallet.partnerId,
149
+ isPregen: wallet.isPregen,
150
+ pregenIdentifier: wallet.pregenIdentifier,
151
+ pregenIdentifierType: wallet.pregenIdentifierType,
152
+ signer: share.signer,
153
+ createdAt: String(wallet.createdAt)
154
+ };
155
+ }
156
+ }
157
+ } catch (err) {
158
+ console.warn("[performClaimPregenWallets] Failed to fetch pregen shares:", err);
159
+ }
160
+ recoverySecret = yield this.claimPregenWallets();
161
+ walletIds = supportedWalletTypes.reduce((acc, { type }) => {
162
+ const wallet = pregenWallets.find((w) => !!import_wallet2.WalletSchemeTypeMap[w.scheme][type]);
163
+ if (!wallet) {
164
+ return acc;
165
+ }
166
+ return __spreadProps(__spreadValues({}, acc), {
167
+ [type]: [wallet.id]
168
+ });
169
+ }, {});
170
+ }
171
+ yield __privateGet(this, _walletService).addToCurrentWalletIds(walletIds);
172
+ const resp = { walletIds, recoverySecret };
173
+ return resp;
174
+ });
175
+ this.claimPregenWallets = (..._0) => __async(this, [..._0], function* ({ pregenId } = {}) {
176
+ var _a;
177
+ __privateGet(this, _paraCoreInterface).requireApiKey();
178
+ const pregenWallets = pregenId ? yield this.getPregenWallets({ pregenId }) : yield this.getPregenWallets();
179
+ if (pregenWallets.length === 0) {
180
+ return void 0;
181
+ }
182
+ const missingWallets = pregenWallets.filter((wallet) => !__privateGet(this, _walletService).wallets[wallet.id]);
183
+ if (missingWallets.length > 0) {
184
+ throw new Error(
185
+ `Cannot claim pregen wallets because wallet data is missing. Please call setUserShare first to load the wallet data for the following wallet IDs: ${missingWallets.map((w) => w.id).join(", ")}`
186
+ );
187
+ }
188
+ let newRecoverySecret;
189
+ const { walletIds } = yield __privateGet(this, _paraCoreInterface).ctx.client.claimPregenWallets({
190
+ userId: __privateGet(this, _authService).userId,
191
+ walletIds: pregenWallets.map((w) => w.id)
192
+ });
193
+ for (const walletId of walletIds) {
194
+ const wallet = __privateGet(this, _walletService).wallets[walletId];
195
+ let refreshedShare;
196
+ if (wallet.scheme === "ED25519") {
197
+ const distributeRes = yield (0, import_shareDistribution.distributeNewShare)({
198
+ ctx: __privateGet(this, _paraCoreInterface).ctx,
199
+ userId: __privateGet(this, _authService).userId,
200
+ walletId: wallet.id,
201
+ userShare: __privateGet(this, _walletService).wallets[wallet.id].signer,
202
+ emailProps: __privateGet(this, _paraCoreInterface).getBackupKitEmailProps(),
203
+ partnerId: wallet.partnerId,
204
+ isEnclaveUser: __privateGet(this, _authService).isEnclaveUser,
205
+ walletScheme: wallet.scheme
206
+ });
207
+ if (distributeRes.length > 0) {
208
+ newRecoverySecret = distributeRes;
209
+ }
210
+ } else {
211
+ refreshedShare = yield __privateGet(this, _walletService).refreshShare({
212
+ walletId: wallet.id,
213
+ share: __privateGet(this, _walletService).wallets[wallet.id].signer,
214
+ oldPartnerId: wallet.partnerId,
215
+ newPartnerId: wallet.partnerId,
216
+ redistributeBackupEncryptedShares: true
217
+ });
218
+ if (refreshedShare.recoverySecret) {
219
+ newRecoverySecret = refreshedShare.recoverySecret;
220
+ }
221
+ }
222
+ __privateGet(this, _walletService).wallets[wallet.id] = __spreadProps(__spreadValues({}, __privateGet(this, _walletService).wallets[wallet.id]), {
223
+ signer: (_a = refreshedShare == null ? void 0 : refreshedShare.signer) != null ? _a : wallet.signer,
224
+ userId: __privateGet(this, _authService).userId,
225
+ pregenIdentifier: void 0,
226
+ pregenIdentifierType: void 0
227
+ });
228
+ const walletNoSigner = __spreadValues({}, __privateGet(this, _walletService).wallets[wallet.id]);
229
+ delete walletNoSigner.signer;
230
+ (0, import_utils.dispatchEvent)(import_events.ParaEvent.PREGEN_WALLET_CLAIMED, {
231
+ wallet: walletNoSigner,
232
+ recoverySecret: newRecoverySecret
233
+ });
234
+ }
235
+ yield __privateGet(this, _walletService).setWallets(__privateGet(this, _walletService).wallets);
236
+ return newRecoverySecret;
237
+ });
238
+ this.getPregenWallets = (..._0) => __async(this, [..._0], function* ({ pregenId } = {}) {
239
+ const pregenIds = pregenId ? (0, import_user_management_client.toPregenIds)(pregenId) : this.pregenIds;
240
+ if (!pregenIds || Object.keys(pregenIds).length === 0) {
241
+ return [];
242
+ }
243
+ __privateGet(this, _paraCoreInterface).requireApiKey();
244
+ const res = yield __privateGet(this, _paraCoreInterface).ctx.client.getPregenWallets(
245
+ pregenIds,
246
+ __privateGet(this, _paraCoreInterface).isPortal(),
247
+ __privateGet(this, _authService).userId
248
+ );
249
+ return res.wallets.filter((w) => __privateGet(this, _walletService).isWalletSupported((0, import_wallet2.entityToWallet)(w)));
250
+ });
251
+ this.populatePregenWalletAddresses = () => __async(this, null, function* () {
252
+ const res = yield this.getPregenWallets();
253
+ res.forEach((entity) => {
254
+ if (__privateGet(this, _walletService).wallets[entity.id]) {
255
+ __privateGet(this, _walletService).wallets[entity.id] = __spreadValues(__spreadValues({}, (0, import_wallet2.entityToWallet)(entity)), __privateGet(this, _walletService).wallets[entity.id]);
256
+ }
257
+ });
258
+ yield __privateGet(this, _walletService).setWallets(__privateGet(this, _walletService).wallets);
259
+ });
260
+ this.createPregenWallet = (params) => __async(this, null, function* () {
261
+ var _a, _b;
262
+ const { supportedWalletTypes } = yield __privateGet(this, _paraCoreInterface).assertPartner();
263
+ const { type: _type = (_a = supportedWalletTypes.find(({ optional }) => !optional)) == null ? void 0 : _a.type, pregenId } = params;
264
+ __privateGet(this, _paraCoreInterface).requireApiKey();
265
+ const walletType = yield __privateGet(this, _walletService).assertIsValidWalletType(
266
+ _type != null ? _type : (_b = supportedWalletTypes.find(({ optional }) => !optional)) == null ? void 0 : _b.type
267
+ );
268
+ const [pregenIdentifierType, pregenIdentifier] = (0, import_user_management_client.toPregenTypeAndId)(pregenId);
269
+ let keygenRes;
270
+ switch (walletType) {
271
+ case "SOLANA":
272
+ keygenRes = yield __privateGet(this, _paraCoreInterface).platformUtils.ed25519PreKeygen(
273
+ __privateGet(this, _paraCoreInterface).ctx,
274
+ pregenIdentifier,
275
+ pregenIdentifierType,
276
+ __privateGet(this, _paraCoreInterface).retrieveSessionCookie()
277
+ );
278
+ break;
279
+ default:
280
+ keygenRes = yield __privateGet(this, _paraCoreInterface).platformUtils.preKeygen(
281
+ __privateGet(this, _paraCoreInterface).ctx,
282
+ void 0,
283
+ pregenIdentifier,
284
+ pregenIdentifierType,
285
+ walletType,
286
+ null,
287
+ __privateGet(this, _paraCoreInterface).retrieveSessionCookie()
288
+ );
289
+ break;
290
+ }
291
+ const { signer, walletId } = keygenRes;
292
+ __privateGet(this, _walletService).wallets[walletId] = {
293
+ id: walletId,
294
+ signer,
295
+ scheme: walletType === "SOLANA" ? "ED25519" : "DKLS",
296
+ type: walletType,
297
+ isPregen: true,
298
+ pregenIdentifier,
299
+ pregenIdentifierType
300
+ };
301
+ yield __privateGet(this, _pollingService).poll({
302
+ checkCondition: __privateGet(this, _pollingService).waitForPregenWalletAddress({ walletId }),
303
+ intervalMs: import_constants.SHORT_POLLING_INTERVAL_MS,
304
+ maxPolls: 10,
305
+ id: "waitForPregenWalletAddress"
306
+ });
307
+ yield this.populatePregenWalletAddresses();
308
+ return __privateGet(this, _walletService).wallets[walletId];
309
+ });
310
+ this.createPregenWalletPerType = (_0) => __async(this, [_0], function* ({ types, pregenId }) {
311
+ const wallets = [];
312
+ for (const type of yield __privateGet(this, _walletService).getTypesToCreate(types)) {
313
+ const wallet = yield this.createPregenWallet({ type, pregenId });
314
+ wallets.push(wallet);
315
+ }
316
+ return wallets;
317
+ });
318
+ this.updatePregenWalletIdentifier = (_0) => __async(this, [_0], function* ({ walletId, newPregenId }) {
319
+ __privateGet(this, _paraCoreInterface).requireApiKey();
320
+ const [newPregenIdentifierType, newPregenIdentifier] = (0, import_user_management_client.toPregenTypeAndId)(newPregenId);
321
+ yield __privateGet(this, _paraCoreInterface).ctx.client.updatePregenWallet(walletId, {
322
+ pregenIdentifier: newPregenIdentifier,
323
+ pregenIdentifierType: newPregenIdentifierType
324
+ });
325
+ if (!!__privateGet(this, _walletService).wallets[walletId]) {
326
+ __privateGet(this, _walletService).wallets[walletId] = __spreadProps(__spreadValues({}, __privateGet(this, _walletService).wallets[walletId]), {
327
+ pregenIdentifier: newPregenIdentifier,
328
+ pregenIdentifierType: newPregenIdentifierType
329
+ });
330
+ yield __privateGet(this, _walletService).setWallets(__privateGet(this, _walletService).wallets);
331
+ }
332
+ });
333
+ this.hasPregenWallet = (_0) => __async(this, [_0], function* ({ pregenId }) {
334
+ __privateGet(this, _paraCoreInterface).requireApiKey();
335
+ const [pregenIdentifierType, pregenIdentifier] = (0, import_user_management_client.toPregenTypeAndId)(pregenId);
336
+ const wallets = yield this.getPregenWallets({ pregenId });
337
+ const wallet = wallets.find(
338
+ (w) => w.pregenIdentifier === pregenIdentifier && w.pregenIdentifierType === pregenIdentifierType
339
+ );
340
+ if (!wallet) {
341
+ return false;
342
+ }
343
+ return true;
344
+ });
345
+ this.performCreateGuestWallets = () => __async(this, null, function* () {
346
+ let error;
347
+ if (__privateGet(this, _isCreateGuestWalletsPending)) {
348
+ error = new Error("Guest wallets creation already in progress");
349
+ (0, import_utils.dispatchEvent)(import_events.ParaEvent.GUEST_WALLETS_CREATED, null, error.message);
350
+ throw error;
351
+ }
352
+ if (this.isGuestMode) {
353
+ error = new Error("Guest wallets already created");
354
+ (0, import_utils.dispatchEvent)(import_events.ParaEvent.GUEST_WALLETS_CREATED, null, error.message);
355
+ throw error;
356
+ }
357
+ try {
358
+ __privateSet(this, _isCreateGuestWalletsPending, true);
359
+ const { supportedWalletTypes } = yield __privateGet(this, _paraCoreInterface).assertPartner();
360
+ const wallets = [];
361
+ const guestId = (0, import_wallet2.newUuid)();
362
+ for (const type of yield __privateGet(this, _walletService).getTypesToCreate(
363
+ supportedWalletTypes.filter(({ optional }) => !optional).map(({ type: type2 }) => type2)
364
+ )) {
365
+ const wallet = yield this.createPregenWallet({ type, pregenId: { guestId } });
366
+ wallets.push(wallet);
367
+ }
368
+ (0, import_utils.dispatchEvent)(import_events.ParaEvent.GUEST_WALLETS_CREATED, wallets);
369
+ __privateSet(this, _isCreateGuestWalletsPending, false);
370
+ return wallets;
371
+ } catch (error2) {
372
+ (0, import_utils.dispatchEvent)(import_events.ParaEvent.GUEST_WALLETS_CREATED, null, error2 == null ? void 0 : error2.message);
373
+ __privateSet(this, _isCreateGuestWalletsPending, false);
374
+ throw error2;
375
+ }
376
+ });
377
+ this.createGuestWallets = () => __async(this, null, function* () {
378
+ __privateGet(this, _stateManager).send({ type: "INITIALIZE_GUEST_MODE" });
379
+ return yield (0, import_stateListener.waitForCoreStateChange)({
380
+ stateManager: __privateGet(this, _stateManager),
381
+ resolvePhases: [{ phase: "guest_mode", onPhase: (state) => state.guestWallets }]
382
+ });
383
+ });
384
+ __privateSet(this, _paraCoreInterface, paraCore.getPregenWalletServiceInterface());
385
+ }
386
+ /**
387
+ * A map of pre-generated wallet identifiers that can be claimed in the current instance.
388
+ */
389
+ get pregenIds() {
390
+ return __spreadValues({}, Object.values(__privateGet(this, _walletService).wallets).filter((wallet) => !__privateGet(this, _authService).userId || this.isPregenWalletClaimable(wallet)).reduce((acc, wallet) => {
391
+ var _a, _b;
392
+ if (((_a = acc[wallet.pregenIdentifierType]) != null ? _a : []).includes(wallet.pregenIdentifier)) {
393
+ return acc;
394
+ }
395
+ return __spreadProps(__spreadValues({}, acc), {
396
+ [wallet.pregenIdentifierType]: [
397
+ .../* @__PURE__ */ new Set([...(_b = acc[wallet.pregenIdentifierType]) != null ? _b : [], wallet.pregenIdentifier])
398
+ ]
399
+ });
400
+ }, {}));
401
+ }
402
+ get guestWalletIds() {
403
+ var _a, _b, _c;
404
+ if (!((_a = __privateGet(this, _paraCoreInterface).partner) == null ? void 0 : _a.supportedWalletTypes)) {
405
+ return {};
406
+ }
407
+ const guestId = (_c = (_b = this.pregenIds) == null ? void 0 : _b.GUEST_ID) == null ? void 0 : _c[0];
408
+ return !!guestId ? Object.entries(__privateGet(this, _walletService).wallets).reduce((acc, [id, wallet]) => {
409
+ if (wallet.isPregen && !wallet.userId && wallet.pregenIdentifierType === "GUEST_ID" && wallet.pregenIdentifier === guestId) {
410
+ return __spreadValues(__spreadValues({}, acc), (0, import_wallet2.getEquivalentTypes)(wallet.type).filter((type) => __privateGet(this, _paraCoreInterface).partner.supportedWalletTypes.some((entry) => entry.type === type)).reduce((acc2, eqType) => {
411
+ var _a2;
412
+ return __spreadProps(__spreadValues({}, acc2), { [eqType]: [.../* @__PURE__ */ new Set([...(_a2 = acc2[eqType]) != null ? _a2 : [], id])] });
413
+ }, {}));
414
+ }
415
+ return acc;
416
+ }, {}) : {};
417
+ }
418
+ get guestWalletIdsArray() {
419
+ return Object.entries(this.guestWalletIds).reduce((acc, [type, ids]) => {
420
+ return [...acc, ...ids.map((id) => [id, type])];
421
+ }, []);
422
+ }
423
+ get isGuestMode() {
424
+ return this.guestWalletIdsArray.length > 0 && Object.values(__privateGet(this, _walletService).wallets).every(
425
+ ({ userId, partnerId }) => {
426
+ var _a;
427
+ return partnerId === ((_a = __privateGet(this, _paraCoreInterface).partner) == null ? void 0 : _a.id) && (!userId || userId !== __privateGet(this, _authService).userId);
428
+ }
429
+ );
430
+ }
431
+ }
432
+ _stateManager = new WeakMap();
433
+ _authService = new WeakMap();
434
+ _walletService = new WeakMap();
435
+ _pollingService = new WeakMap();
436
+ _paraCoreInterface = new WeakMap();
437
+ _isCreateGuestWalletsPending = new WeakMap();
438
+ _fetchOverridePromise = new WeakMap();
439
+ // Annotate the CommonJS export names for ESM import in node:
440
+ 0 && (module.exports = {
441
+ PregenWalletService
442
+ });