@getpara/react-sdk 2.0.0-alpha.3 → 2.0.0-alpha.6

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 (183) hide show
  1. package/dist/cli/cli.mjs +1 -6
  2. package/dist/index.js +11 -6499
  3. package/dist/modal/ParaModal.js +262 -0
  4. package/dist/modal/components/Account/Account.js +139 -0
  5. package/dist/modal/components/AddFunds/AddFunds.d.ts +0 -2
  6. package/dist/modal/components/AddFunds/AddFunds.js +69 -0
  7. package/dist/modal/components/AddFunds/AddFundsAsset.d.ts +1 -0
  8. package/dist/modal/components/AddFunds/AddFundsAsset.js +125 -0
  9. package/dist/modal/components/AddFunds/AddFundsAwaiting.js +78 -0
  10. package/dist/modal/components/AddFunds/AddFundsContext.d.ts +31 -0
  11. package/dist/modal/components/AddFunds/AddFundsContext.js +160 -0
  12. package/dist/modal/components/AddFunds/AddFundsDone.js +49 -0
  13. package/dist/modal/components/AddFunds/AddFundsProvider.d.ts +1 -0
  14. package/dist/modal/components/AddFunds/AddFundsProvider.js +109 -0
  15. package/dist/modal/components/AddFunds/AddFundsReceive.d.ts +1 -0
  16. package/dist/modal/components/AddFunds/AddFundsReceive.js +83 -0
  17. package/dist/modal/components/AddFunds/AddFundsSettings.d.ts +1 -0
  18. package/dist/modal/components/AddFunds/AddFundsSettings.js +237 -0
  19. package/dist/{MoonPayEmbed-Q2HP2BFI.js → modal/components/AddFunds/MoonPayEmbed.js} +1 -3
  20. package/dist/modal/components/AddFunds/common.d.ts +19 -0
  21. package/dist/modal/components/AddFunds/common.js +24 -0
  22. package/dist/modal/components/AddFunds/index.js +4 -0
  23. package/dist/modal/components/AuthInput/AuthInput.js +262 -0
  24. package/dist/modal/components/AuthInput/hooks/useDropdownPosition.js +33 -0
  25. package/dist/modal/components/AuthInput/phoneMasks.js +253 -0
  26. package/dist/modal/components/AuthMainStep/AuthMainStep.d.ts +4 -3
  27. package/dist/modal/components/AuthMainStep/AuthMainStep.js +50 -0
  28. package/dist/modal/components/AuthMainStep/AuthMainStepContent.d.ts +4 -3
  29. package/dist/modal/components/AuthMainStep/AuthMainStepContent.js +157 -0
  30. package/dist/modal/components/AuthOptions/AuthOptions.d.ts +4 -3
  31. package/dist/modal/components/AuthOptions/AuthOptions.js +67 -0
  32. package/dist/modal/components/AwaitingBiometricsStep/AwaitingBiometricsStep.js +18 -0
  33. package/dist/modal/components/AwaitingOAuthStep/AwaitingOAuthStep.js +10 -0
  34. package/dist/modal/components/AwaitingPasswordStep/AwaitingPasswordStep.js +18 -0
  35. package/dist/modal/components/AwaitingWalletCreationStep/AwaitingWalletCreationStep.d.ts +5 -1
  36. package/dist/modal/components/AwaitingWalletCreationStep/AwaitingWalletCreationStep.js +49 -0
  37. package/dist/modal/components/BiometricCreationStep/BiometricCreationStep.js +63 -0
  38. package/dist/modal/components/BiometricLoginStep/BiometricLoginStep.js +55 -0
  39. package/dist/modal/components/Body/AnimatedHeightWrapper.js +29 -0
  40. package/dist/modal/components/Body/Body.d.ts +4 -3
  41. package/dist/modal/components/Body/Body.js +327 -0
  42. package/dist/modal/components/ChainSwitch/ChainSwitch.js +95 -0
  43. package/dist/modal/components/ChainSwitch/config.js +17 -0
  44. package/dist/modal/components/Controls/Controls.js +77 -0
  45. package/dist/modal/components/Controls/Selects.js +189 -0
  46. package/dist/modal/components/ExternalWalletStep/ExternalWalletStep.js +144 -0
  47. package/dist/modal/components/ExternalWalletStep/config.js +17 -0
  48. package/dist/modal/components/ExternalWalletVerificationStep/ExternalWalletVerificationStep.js +34 -0
  49. package/dist/modal/components/ExternalWallets/ExternalWallets.js +173 -0
  50. package/dist/modal/components/Footer/Footer.js +95 -0
  51. package/dist/modal/components/Header/Header.js +43 -0
  52. package/dist/modal/components/Header/hooks/useStepTitle.js +54 -0
  53. package/dist/modal/components/Hero/Hero.js +116 -0
  54. package/dist/modal/components/IFrameStep/IFrameStep.js +59 -0
  55. package/dist/modal/components/LoginDoneStep/LoginDoneStep.js +31 -0
  56. package/dist/modal/components/ModalContent/ModalContent.js +95 -0
  57. package/dist/modal/components/OAuth/FarcasterOAuthStep.js +27 -0
  58. package/dist/modal/components/OAuth/OAuth.d.ts +2 -2
  59. package/dist/modal/components/OAuth/OAuth.js +79 -0
  60. package/dist/modal/components/OAuth/TelegramOAuthStep.js +90 -0
  61. package/dist/modal/components/OnRampComponents/AddingFunds.js +23 -0
  62. package/dist/modal/components/OnRampComponents/OnRampProviderButton.js +77 -0
  63. package/dist/modal/components/RecoverySecretStep/RecoverySecretStep.js +107 -0
  64. package/dist/modal/components/Setup2FAStep/Setup2FAStep.js +132 -0
  65. package/dist/modal/components/StripeComponents/StripeComponents.js +88 -0
  66. package/dist/modal/components/TwoFactorDoneStep/TwoFactorDoneStep.js +27 -0
  67. package/dist/modal/components/VerificationCodeStep/VerificationCodeStep.js +143 -0
  68. package/dist/modal/components/Waiting/Waiting.js +17 -0
  69. package/dist/modal/components/WalletCard/PartnerIcon.js +34 -0
  70. package/dist/modal/components/WalletCard/WalletCard.d.ts +3 -3
  71. package/dist/modal/components/WalletCard/WalletCard.js +128 -0
  72. package/dist/modal/components/WalletCreationDoneStep/WalletCreationDoneStep.js +73 -0
  73. package/dist/modal/components/common.d.ts +32 -13
  74. package/dist/modal/components/common.js +175 -0
  75. package/dist/modal/components/index.js +2 -0
  76. package/dist/modal/constants/constants.d.ts +9 -2
  77. package/dist/modal/constants/constants.js +138 -0
  78. package/dist/modal/constants/defaults.js +10 -0
  79. package/dist/modal/constants/oAuthLogos.d.ts +3 -3
  80. package/dist/modal/constants/oAuthLogos.js +24 -0
  81. package/dist/modal/hooks/useGoBack.js +43 -0
  82. package/dist/modal/index.d.ts +1 -2
  83. package/dist/modal/index.js +29 -0
  84. package/dist/modal/stores/index.js +2 -0
  85. package/dist/modal/stores/modal/actions.js +133 -0
  86. package/dist/modal/stores/modal/useModalStore.d.ts +12 -4
  87. package/dist/modal/stores/modal/useModalStore.js +68 -0
  88. package/dist/modal/types/commonTypes.d.ts +0 -47
  89. package/dist/modal/types/commonTypes.js +1 -0
  90. package/dist/modal/types/externalWallets.d.ts +2 -0
  91. package/dist/modal/types/externalWallets.js +32 -0
  92. package/dist/modal/types/modalProps.d.ts +10 -2
  93. package/dist/modal/types/modalProps.js +12 -0
  94. package/dist/modal/utils/authInputHelpers.d.ts +7 -0
  95. package/dist/modal/utils/authInputHelpers.js +38 -0
  96. package/dist/modal/utils/authLayoutHelpers.js +8 -0
  97. package/dist/modal/utils/countryCodes.js +45 -0
  98. package/dist/modal/utils/getMailtoLink.js +10 -0
  99. package/dist/modal/utils/getTileButtonFlex.js +20 -0
  100. package/dist/modal/utils/isPasskeySupported.js +15 -0
  101. package/dist/modal/utils/openPopup.js +60 -0
  102. package/dist/modal/utils/routeMobileExternalWallet.js +31 -0
  103. package/dist/modal/utils/steps.d.ts +6 -0
  104. package/dist/modal/utils/steps.js +247 -0
  105. package/dist/modal/utils/stringFormatters.d.ts +1 -0
  106. package/dist/modal/utils/stringFormatters.js +19 -0
  107. package/dist/modal/utils/validateOnRampConfig.js +32 -0
  108. package/dist/package.json +6 -0
  109. package/dist/provider/ParaProvider.js +83 -0
  110. package/dist/provider/actions/getAccount.d.ts +8 -1
  111. package/dist/provider/actions/getAccount.js +51 -0
  112. package/dist/provider/actions/getWallet.d.ts +2 -2
  113. package/dist/provider/actions/getWallet.js +14 -0
  114. package/dist/provider/actions/index.d.ts +2 -0
  115. package/dist/provider/actions/index.js +59 -0
  116. package/dist/provider/actions/utils.js +15 -0
  117. package/dist/provider/components/CosmosWalletWrapper.js +34 -0
  118. package/dist/provider/components/EvmWalletWrapper.js +34 -0
  119. package/dist/provider/components/ExternalWalletWrapper.js +139 -0
  120. package/dist/provider/components/SolanaWalletWrapper.js +36 -0
  121. package/dist/provider/external/getParaCosmosConnector.js +22 -0
  122. package/dist/provider/external/getParaEvmConnector.js +22 -0
  123. package/dist/provider/external/getParaSolanaConnector.js +22 -0
  124. package/dist/provider/external/stubs/CosmosExternalWalletContextStub.js +18 -0
  125. package/dist/provider/external/stubs/EvmExternalWalletContextStub.js +21 -0
  126. package/dist/provider/external/stubs/SolanaExternalWalletContextStub.js +14 -0
  127. package/dist/provider/hooks/index.js +4 -0
  128. package/dist/provider/hooks/mutations/index.d.ts +1 -0
  129. package/dist/provider/hooks/mutations/index.js +61 -0
  130. package/dist/provider/hooks/mutations/utils.js +22 -0
  131. package/dist/provider/hooks/queries/index.d.ts +1 -0
  132. package/dist/provider/hooks/queries/index.js +10 -0
  133. package/dist/provider/hooks/queries/useAccount.js +21 -0
  134. package/dist/provider/hooks/queries/useWallet.js +22 -0
  135. package/dist/provider/hooks/queries/useWalletBalance.d.ts +6 -0
  136. package/dist/provider/hooks/queries/useWalletBalance.js +55 -0
  137. package/dist/provider/hooks/utils/index.js +10 -0
  138. package/dist/provider/hooks/utils/useAutoSessionKeepAlive.js +74 -0
  139. package/dist/provider/hooks/utils/useClient.js +10 -0
  140. package/dist/provider/hooks/utils/useEventListeners.d.ts +1 -1
  141. package/dist/provider/hooks/utils/useEventListeners.js +147 -0
  142. package/dist/provider/hooks/utils/useInternalClient.js +10 -0
  143. package/dist/provider/hooks/utils/useModal.js +17 -0
  144. package/dist/provider/hooks/utils/useWalletState.d.ts +3 -3
  145. package/dist/provider/hooks/utils/useWalletState.js +48 -0
  146. package/dist/provider/index.js +9 -0
  147. package/dist/provider/providers/AuthProvider.d.ts +10 -6
  148. package/dist/provider/providers/AuthProvider.js +498 -0
  149. package/dist/provider/providers/CosmosExternalWalletProvider.js +66 -0
  150. package/dist/provider/providers/EvmExternalWalletProvider.js +74 -0
  151. package/dist/provider/providers/ExternalWalletProvider.d.ts +5 -2
  152. package/dist/provider/providers/ExternalWalletProvider.js +428 -0
  153. package/dist/provider/providers/SolanaExternalWalletProvider.js +66 -0
  154. package/dist/provider/stores/getters.d.ts +1 -1
  155. package/dist/provider/stores/getters.js +13 -0
  156. package/dist/provider/stores/setters.js +7 -0
  157. package/dist/provider/stores/slices/client.js +9 -0
  158. package/dist/provider/stores/slices/config.js +9 -0
  159. package/dist/provider/stores/slices/externalWallets.js +40 -0
  160. package/dist/provider/stores/slices/index.js +5 -0
  161. package/dist/provider/stores/slices/modal.js +16 -0
  162. package/dist/provider/stores/slices/wallet.js +13 -0
  163. package/dist/provider/stores/types.d.ts +7 -4
  164. package/dist/provider/stores/types.js +1 -0
  165. package/dist/provider/stores/useStore.js +28 -0
  166. package/dist/provider/types/externalWalletProviders.d.ts +2 -2
  167. package/dist/provider/types/externalWalletProviders.js +1 -0
  168. package/dist/provider/types/provider.d.ts +9 -3
  169. package/dist/provider/types/provider.js +1 -0
  170. package/dist/provider/types/query.js +1 -0
  171. package/dist/provider/types/utils.js +1 -0
  172. package/dist/provider/utils/constants.d.ts +5 -0
  173. package/dist/provider/utils/constants.js +10 -0
  174. package/dist/provider/utils/paraConfigTypeGuards.js +13 -0
  175. package/dist/provider/utils/renameMutations.js +18 -0
  176. package/package.json +18 -16
  177. package/dist/MoonPayEmbed-Q2HP2BFI.js.br +0 -0
  178. package/dist/MoonPayEmbed-Q2HP2BFI.js.gz +0 -0
  179. package/dist/chunk-MMUBH76A.js.br +0 -0
  180. package/dist/chunk-MMUBH76A.js.gz +0 -0
  181. package/dist/index.js.br +0 -0
  182. package/dist/index.js.gz +0 -0
  183. /package/dist/modal/{components/AuthInput → utils}/countryCodes.d.ts +0 -0
@@ -0,0 +1,498 @@
1
+ "use client";
2
+ import {
3
+ __async,
4
+ __spreadProps,
5
+ __spreadValues
6
+ } from "../../chunk-MMUBH76A.js";
7
+ import { jsx } from "react/jsx-runtime";
8
+ import { formatBiometricHints } from "@getpara/react-common";
9
+ import { createContext, useCallback, useContext, useEffect, useMemo } from "react";
10
+ import { useModalStore } from "../../modal/stores/index.js";
11
+ import { ModalStep } from "../../modal/utils/steps.js";
12
+ import {
13
+ useSignUpOrLogIn,
14
+ useVerifyNewAccount,
15
+ useWaitForSignup,
16
+ useWaitForLogin,
17
+ useWaitForWalletCreation,
18
+ useVerifyOAuth,
19
+ useVerifyFarcaster,
20
+ useVerifyTelegram,
21
+ useSetup2fa,
22
+ useLogout,
23
+ useCreateGuestWallets
24
+ } from "../index.js";
25
+ import { DEFAULTS } from "../../modal/constants/defaults.js";
26
+ import { openPopup } from "../../modal/utils/openPopup.js";
27
+ import {
28
+ AuthMethod,
29
+ entityToWallet
30
+ } from "@getpara/web-sdk";
31
+ import { useInternalClient } from "../../provider/hooks/utils/useInternalClient.js";
32
+ import { useGoBack } from "../../modal/hooks/useGoBack.js";
33
+ import { isExternalWallet } from "@getpara/user-management-client";
34
+ import { routeMobileExternalWallet } from "../../modal/utils/routeMobileExternalWallet.js";
35
+ import { useStore } from "../stores/useStore.js";
36
+ const AuthContext = createContext({
37
+ signUpOrLogIn: () => {
38
+ },
39
+ isSignUpOrLogInPending: false,
40
+ verifyNewAccount: () => {
41
+ },
42
+ isVerifyNewAccountPending: false,
43
+ verifyNewAccountError: null,
44
+ verifyOAuth: () => {
45
+ },
46
+ verifyFarcaster: () => {
47
+ },
48
+ verifyTelegram: () => {
49
+ },
50
+ onNewAuthState: () => {
51
+ },
52
+ isSetup2faPending: false,
53
+ presentSignupUi: () => {
54
+ },
55
+ presentLoginUi: () => {
56
+ },
57
+ createGuestWallets: () => {
58
+ },
59
+ isCreateGuestWalletsPending: false,
60
+ logout: () => {
61
+ }
62
+ });
63
+ function AuthProvider({
64
+ children,
65
+ is2faEnabled = false,
66
+ isRecoverySecretStepEnabled = false,
67
+ overrides = {}
68
+ }) {
69
+ const para = useInternalClient();
70
+ const onLoginRef = useStore((state) => state.onLoginRef);
71
+ const setIsOpen = useStore((state) => state.setIsOpen);
72
+ const refs = useModalStore((state) => state.refs);
73
+ const currentStep = useModalStore((state) => state.step);
74
+ const setStep = useModalStore((state) => state.setStep);
75
+ const setAuthStepRoute = useModalStore((state) => state.setAuthStepRoute);
76
+ const setIFrameUrl = useModalStore((state) => state.setIFrameUrl);
77
+ const iFrameUrl = useModalStore((state) => state.iFrameUrl);
78
+ const loginState = useModalStore((state) => state.getLoginState());
79
+ const signupState = useModalStore((state) => state.getSignupState());
80
+ const setAuthState = useModalStore((state) => state.setAuthState);
81
+ const setFarcasterConnectUri = useModalStore((state) => state.setFarcasterConnectUri);
82
+ const setTwoFactorStatus = useModalStore((state) => state.setTwoFactorStatus);
83
+ const setRecoveryShare = useModalStore((state) => state.setRecoveryShare);
84
+ const authStepRoute = useModalStore((state) => state.authStepRoute);
85
+ const isIFrameReady = useModalStore((state) => state.isIFrameReady);
86
+ const goBack = useGoBack();
87
+ const biometricHints = useMemo(() => {
88
+ var _a;
89
+ return formatBiometricHints((_a = loginState == null ? void 0 : loginState.biometricHints) != null ? _a : []);
90
+ }, [loginState == null ? void 0 : loginState.biometricHints]);
91
+ const { mutate: mutateSignUpOrLogIn, isPending: isSignUpOrLogInPending } = useSignUpOrLogIn();
92
+ const {
93
+ mutate: mutateVerifyNewAccount,
94
+ isPending: isVerifyNewAccountPending,
95
+ error: verifyNewAccountError
96
+ } = useVerifyNewAccount();
97
+ const { mutate: mutateVerifyOAuth } = useVerifyOAuth();
98
+ const { mutate: mutateVerifyFarcaster } = useVerifyFarcaster();
99
+ const { mutate: mutateVerifyTelegram } = useVerifyTelegram();
100
+ const { mutate: mutateWaitForLogin } = useWaitForLogin();
101
+ const { mutate: mutateWaitForSignup } = useWaitForSignup();
102
+ const { mutateAsync: mutateAsyncWaitForWalletCreation } = useWaitForWalletCreation();
103
+ const { mutate: mutateSetup2fa, isPending: isSetup2faPending } = useSetup2fa();
104
+ const { mutate: mutateCreateGuestWallets, isPending: isCreateGuestWalletsPending } = useCreateGuestWallets();
105
+ const { mutate: mutateLogout } = useLogout();
106
+ const goBackIfPopupClosedOnSteps = (steps) => {
107
+ var _a;
108
+ if (((_a = refs.popupWindow.current) == null ? void 0 : _a.closed) && (!refs.currentStep.current || steps.includes(refs.currentStep.current))) {
109
+ refs.popupWindow.current = null;
110
+ goBack();
111
+ }
112
+ };
113
+ const cancelIfExitedSteps = (steps) => {
114
+ const stepNow = refs.currentStep.current;
115
+ return !!stepNow && !steps.includes(stepNow);
116
+ };
117
+ const signup = () => {
118
+ if (typeof window !== "undefined") {
119
+ refs.poll.current = {
120
+ action: "signup",
121
+ timeout: window == null ? void 0 : window.setTimeout(() => __async(this, null, function* () {
122
+ mutateWaitForSignup(
123
+ {
124
+ isCanceled: () => cancelIfExitedSteps([
125
+ ModalStep.BIOMETRIC_CREATION,
126
+ ModalStep.AWAITING_BIOMETRIC_CREATION,
127
+ ModalStep.PASSWORD_CREATION
128
+ ]),
129
+ onPoll: () => {
130
+ goBackIfPopupClosedOnSteps([ModalStep.AWAITING_BIOMETRIC_CREATION]);
131
+ }
132
+ },
133
+ {
134
+ onSuccess: () => {
135
+ if (para.isNoWalletConfig) {
136
+ onLoginComplete({
137
+ on2faSetupOrError: () => setStep(ModalStep.LOGIN_DONE),
138
+ on2faNotSetup: () => setStep(ModalStep.SETUP_2FA)
139
+ });
140
+ } else {
141
+ createWallets();
142
+ }
143
+ },
144
+ onError: () => {
145
+ if (refs.currentStep.current && [ModalStep.AWAITING_BIOMETRIC_CREATION, ModalStep.PASSWORD_CREATION].includes(refs.currentStep.current)) {
146
+ setStep(ModalStep.BIOMETRIC_CREATION);
147
+ }
148
+ },
149
+ onSettled: () => {
150
+ var _a;
151
+ window == null ? void 0 : window.clearTimeout((_a = refs.poll.current) == null ? void 0 : _a.timeout);
152
+ refs.poll.current = null;
153
+ refs.popupWindow.current = null;
154
+ }
155
+ }
156
+ );
157
+ }), DEFAULTS.POLLING_INTERVAL_MS)
158
+ };
159
+ }
160
+ };
161
+ const presentSignupUi = useCallback(
162
+ (method, authState) => {
163
+ switch (method) {
164
+ case AuthMethod.PASSKEY:
165
+ if (refs.currentStep.current !== ModalStep.AWAITING_BIOMETRIC_CREATION) {
166
+ setStep(ModalStep.AWAITING_BIOMETRIC_CREATION);
167
+ }
168
+ refs.popupWindow.current = openPopup({
169
+ url: authState.passkeyUrl,
170
+ target: "ParaPasskey",
171
+ type: "CREATE_PASSKEY",
172
+ current: refs.popupWindow.current
173
+ });
174
+ break;
175
+ case AuthMethod.PASSWORD:
176
+ if (isIFrameReady) {
177
+ setStep(ModalStep.PASSWORD_CREATION);
178
+ } else {
179
+ setIFrameUrl(authState.passwordUrl);
180
+ setAuthStepRoute(ModalStep.PASSWORD_CREATION);
181
+ }
182
+ break;
183
+ }
184
+ },
185
+ [isIFrameReady]
186
+ );
187
+ const login = () => {
188
+ setStep(ModalStep.BIOMETRIC_LOGIN);
189
+ refs.poll.current = {
190
+ action: "login",
191
+ timeout: window == null ? void 0 : window.setTimeout(() => __async(this, null, function* () {
192
+ mutateWaitForLogin(
193
+ {
194
+ isCanceled: () => cancelIfExitedSteps([
195
+ ModalStep.BIOMETRIC_LOGIN,
196
+ ModalStep.AWAITING_BIOMETRIC_LOGIN,
197
+ ModalStep.AWAITING_PASSWORD_LOGIN
198
+ ]),
199
+ onPoll: () => {
200
+ goBackIfPopupClosedOnSteps([ModalStep.AWAITING_BIOMETRIC_LOGIN, ModalStep.AWAITING_PASSWORD_LOGIN]);
201
+ }
202
+ },
203
+ {
204
+ onSuccess: ({ needsWallet }) => {
205
+ if (needsWallet && !para.isNoWalletConfig) {
206
+ createWallets();
207
+ } else {
208
+ onLoginComplete({
209
+ on2faSetupOrError: () => setStep(ModalStep.LOGIN_DONE),
210
+ on2faNotSetup: () => setStep(ModalStep.SETUP_2FA)
211
+ });
212
+ }
213
+ },
214
+ onSettled: () => {
215
+ var _a;
216
+ window == null ? void 0 : window.clearTimeout((_a = refs.poll.current) == null ? void 0 : _a.timeout);
217
+ refs.poll.current = null;
218
+ refs.popupWindow.current = null;
219
+ }
220
+ }
221
+ );
222
+ }), DEFAULTS.LOGGIN_POLLING_DELAY_MS)
223
+ };
224
+ };
225
+ const presentLoginUi = useCallback(
226
+ (method, authState) => {
227
+ const isPasskey = method === AuthMethod.PASSKEY, isPassword = !isPasskey;
228
+ if (overrides.login) {
229
+ function loginOverride() {
230
+ return __async(this, null, function* () {
231
+ var _a, _b;
232
+ yield (_a = overrides == null ? void 0 : overrides.login) == null ? void 0 : _a.call(overrides, para);
233
+ yield (_b = onLoginRef.current) == null ? void 0 : _b.call(onLoginRef);
234
+ yield onLoginComplete();
235
+ });
236
+ }
237
+ loginOverride();
238
+ return;
239
+ }
240
+ refs.popupWindow.current = openPopup({
241
+ url: isPassword ? authState.passwordUrl : authState.passkeyUrl,
242
+ target: isPassword ? "ParaPassword" : "ParaPasskey",
243
+ type: isPassword ? "LOGIN_PASSWORD" : "LOGIN_PASSKEY",
244
+ current: refs.popupWindow.current
245
+ });
246
+ setStep(isPassword ? ModalStep.AWAITING_PASSWORD_LOGIN : ModalStep.AWAITING_BIOMETRIC_LOGIN);
247
+ },
248
+ [loginState, biometricHints]
249
+ );
250
+ const onNewAuthState = (authState) => __async(this, null, function* () {
251
+ setAuthState(authState);
252
+ switch (authState.stage) {
253
+ case "verify":
254
+ if (isExternalWallet(authState.auth) && authState.signatureVerificationMessage) {
255
+ setStep(ModalStep.EXTERNAL_WALLET_VERIFICATION);
256
+ } else {
257
+ setStep(ModalStep.VERIFICATIONS);
258
+ }
259
+ break;
260
+ case "login":
261
+ login();
262
+ break;
263
+ case "signup":
264
+ {
265
+ const isPassword = !!authState.passwordUrl, isPasswordOnly = isPassword && !authState.passkeyUrl;
266
+ if (isPassword) {
267
+ setIFrameUrl(authState.passwordUrl);
268
+ }
269
+ signup();
270
+ if (isPasswordOnly) {
271
+ presentSignupUi(AuthMethod.PASSWORD, authState);
272
+ } else {
273
+ setStep(ModalStep.BIOMETRIC_CREATION);
274
+ }
275
+ }
276
+ break;
277
+ }
278
+ });
279
+ const signUpOrLogIn = (auth) => __async(this, null, function* () {
280
+ mutateSignUpOrLogIn(
281
+ { auth, useShortUrls: true },
282
+ {
283
+ onSuccess: onNewAuthState
284
+ }
285
+ );
286
+ });
287
+ const verifyNewAccount = (verificationCode) => __async(this, null, function* () {
288
+ mutateVerifyNewAccount(
289
+ { verificationCode },
290
+ {
291
+ onSuccess: onNewAuthState
292
+ }
293
+ );
294
+ });
295
+ const verifyOAuth = (method) => __async(this, null, function* () {
296
+ setStep(ModalStep.AWAITING_OAUTH);
297
+ mutateVerifyOAuth(
298
+ {
299
+ method,
300
+ isCanceled: () => {
301
+ var _a;
302
+ return ((_a = refs.popupWindow.current) == null ? void 0 : _a.closed) || cancelIfExitedSteps([ModalStep.AWAITING_OAUTH]);
303
+ },
304
+ onPoll: () => {
305
+ goBackIfPopupClosedOnSteps([ModalStep.AWAITING_OAUTH]);
306
+ },
307
+ onOAuthUrl: (oAuthUrl) => {
308
+ refs.popupWindow.current = openPopup({
309
+ url: oAuthUrl,
310
+ target: `${method}AuthPopup`,
311
+ type: "OAUTH",
312
+ current: refs.popupWindow.current
313
+ });
314
+ },
315
+ useShortUrls: true
316
+ },
317
+ {
318
+ onSuccess: onNewAuthState,
319
+ onError: () => {
320
+ goBackIfPopupClosedOnSteps([ModalStep.AWAITING_OAUTH]);
321
+ }
322
+ }
323
+ );
324
+ });
325
+ const verifyFarcaster = () => __async(this, null, function* () {
326
+ setStep(ModalStep.FARCASTER_OAUTH);
327
+ mutateVerifyFarcaster(
328
+ {
329
+ isCanceled: () => refs.currentStep.current !== ModalStep.FARCASTER_OAUTH,
330
+ onConnectUri: (connectUri) => {
331
+ setFarcasterConnectUri(connectUri);
332
+ routeMobileExternalWallet(connectUri);
333
+ },
334
+ useShortUrls: true
335
+ },
336
+ {
337
+ onSuccess: onNewAuthState,
338
+ onError: () => {
339
+ if (refs.currentStep.current === ModalStep.FARCASTER_OAUTH) {
340
+ goBack();
341
+ }
342
+ }
343
+ }
344
+ );
345
+ });
346
+ const verifyTelegram = (telegramAuthResponse) => __async(this, null, function* () {
347
+ mutateVerifyTelegram(
348
+ {
349
+ telegramAuthResponse,
350
+ useShortUrls: true
351
+ },
352
+ {
353
+ onSuccess: onNewAuthState
354
+ }
355
+ );
356
+ });
357
+ const onLoginComplete = useCallback(
358
+ (..._0) => __async(this, [..._0], function* ({
359
+ on2faSetupOrError,
360
+ on2faNotSetup
361
+ } = {}) {
362
+ var _a;
363
+ setAuthState();
364
+ yield (_a = onLoginRef.current) == null ? void 0 : _a.call(onLoginRef);
365
+ if (is2faEnabled) {
366
+ mutateSetup2fa(void 0, {
367
+ onSuccess: (status) => {
368
+ setTwoFactorStatus(status);
369
+ if (!status.isSetup && !!status.uri) {
370
+ on2faNotSetup == null ? void 0 : on2faNotSetup();
371
+ } else {
372
+ on2faSetupOrError == null ? void 0 : on2faSetupOrError();
373
+ }
374
+ },
375
+ onError: () => {
376
+ on2faSetupOrError == null ? void 0 : on2faSetupOrError();
377
+ }
378
+ });
379
+ } else {
380
+ on2faSetupOrError == null ? void 0 : on2faSetupOrError();
381
+ }
382
+ }),
383
+ [is2faEnabled]
384
+ );
385
+ const createWallets = useCallback(() => __async(this, null, function* () {
386
+ var _a;
387
+ if (refs.currentStep.current !== ModalStep.AWAITING_WALLET_CREATION) {
388
+ setStep(ModalStep.AWAITING_WALLET_CREATION);
389
+ }
390
+ let recoverySecret, walletIds;
391
+ try {
392
+ if (overrides.createWallets) {
393
+ ({ recoverySecret, walletIds } = yield (_a = overrides == null ? void 0 : overrides.createWallets) == null ? void 0 : _a.call(overrides, para));
394
+ const fetchedWallets = (yield para.fetchWallets()).filter((wallet) => !!wallet.address);
395
+ const newWallets = {};
396
+ for (const wallet of fetchedWallets) {
397
+ newWallets[wallet.id] = __spreadProps(__spreadValues({}, entityToWallet(wallet)), {
398
+ signer: ""
399
+ });
400
+ }
401
+ para.setWallets(newWallets);
402
+ } else {
403
+ ({ recoverySecret, walletIds } = yield mutateAsyncWaitForWalletCreation({
404
+ isCanceled: () => false
405
+ }));
406
+ }
407
+ if (walletIds) {
408
+ yield para.setCurrentWalletIds(walletIds);
409
+ }
410
+ if (recoverySecret && isRecoverySecretStepEnabled) {
411
+ setRecoveryShare(recoverySecret);
412
+ }
413
+ setStep(recoverySecret && isRecoverySecretStepEnabled ? ModalStep.SECRET : ModalStep.WALLET_CREATION_DONE);
414
+ onLoginComplete();
415
+ } catch (e) {
416
+ }
417
+ }), [para, isRecoverySecretStepEnabled, overrides == null ? void 0 : overrides.createWallets]);
418
+ const createGuestWallets = () => {
419
+ setIsOpen(false);
420
+ mutateCreateGuestWallets(void 0, {
421
+ onSuccess: () => {
422
+ },
423
+ onSettled: () => {
424
+ }
425
+ });
426
+ };
427
+ const logout = () => {
428
+ mutateLogout();
429
+ };
430
+ const isPasswordIFrameLoading = !!iFrameUrl && iFrameUrl === (signupState == null ? void 0 : signupState.passwordUrl) && !isIFrameReady;
431
+ const value = useMemo(
432
+ () => ({
433
+ presentSignupUi,
434
+ presentLoginUi,
435
+ signUpOrLogIn,
436
+ isSignUpOrLogInPending,
437
+ verifyNewAccount,
438
+ isVerifyNewAccountPending: isVerifyNewAccountPending || isPasswordIFrameLoading,
439
+ verifyNewAccountError,
440
+ verifyOAuth,
441
+ verifyFarcaster,
442
+ verifyTelegram,
443
+ onNewAuthState,
444
+ isSetup2faPending,
445
+ createGuestWallets,
446
+ isCreateGuestWalletsPending,
447
+ logout,
448
+ biometricHints
449
+ }),
450
+ [
451
+ presentSignupUi,
452
+ presentLoginUi,
453
+ signUpOrLogIn,
454
+ isSignUpOrLogInPending,
455
+ verifyNewAccount,
456
+ isVerifyNewAccountPending,
457
+ isPasswordIFrameLoading,
458
+ verifyNewAccountError,
459
+ verifyOAuth,
460
+ verifyFarcaster,
461
+ verifyTelegram,
462
+ onNewAuthState,
463
+ isSetup2faPending,
464
+ createGuestWallets,
465
+ isCreateGuestWalletsPending,
466
+ logout,
467
+ biometricHints
468
+ ]
469
+ );
470
+ useEffect(() => {
471
+ if (!!authStepRoute && isIFrameReady && refs.currentStep.current !== authStepRoute) {
472
+ setTimeout(() => {
473
+ setStep(authStepRoute);
474
+ }, 200);
475
+ }
476
+ }, [authStepRoute, isIFrameReady]);
477
+ useEffect(() => {
478
+ refs.currentStep.current = currentStep;
479
+ }, [currentStep]);
480
+ useEffect(() => {
481
+ if (refs.currentStep.current === ModalStep.AWAITING_GUEST_WALLET_CREATION && !isCreateGuestWalletsPending) {
482
+ setStep(ModalStep.ACCOUNT_MAIN);
483
+ }
484
+ }, [isCreateGuestWalletsPending]);
485
+ useEffect(() => {
486
+ return () => {
487
+ var _a;
488
+ window == null ? void 0 : window.clearTimeout((_a = refs.poll.current) == null ? void 0 : _a.timeout);
489
+ };
490
+ }, []);
491
+ return /* @__PURE__ */ jsx(AuthContext.Provider, { value, children });
492
+ }
493
+ const useAuthActions = () => useContext(AuthContext);
494
+ export {
495
+ AuthContext,
496
+ AuthProvider,
497
+ useAuthActions
498
+ };
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import {
3
+ __async,
4
+ __objRest,
5
+ __spreadProps,
6
+ __spreadValues
7
+ } from "../../chunk-MMUBH76A.js";
8
+ import { jsx } from "react/jsx-runtime";
9
+ import { memo, useEffect, useMemo } from "react";
10
+ import { useStore } from "../stores/useStore.js";
11
+ import { getParaCosmosConnector } from "../external/getParaCosmosConnector.js";
12
+ function CosmosExternalWalletProvider(_a) {
13
+ var _b = _a, {
14
+ children,
15
+ isUsing,
16
+ wallets: walletsFromProps
17
+ } = _b, rest = __objRest(_b, [
18
+ "children",
19
+ "isUsing",
20
+ "wallets"
21
+ ]);
22
+ const setCosmosContext = useStore((state) => state.setCosmosContext);
23
+ const setCosmosProvider = useStore((state) => state.setCosmosProvider);
24
+ const CosmosProvider = useStore((state) => state.CosmosProvider);
25
+ const setCosmosWallets = useStore((state) => state.setCosmosWallets);
26
+ const cosmosWallets = useStore((state) => state.cosmosWallets);
27
+ const isLoadingLib = useStore((state) => state.isLoadingCosmosLib);
28
+ const setIsLoadingLib = useStore((state) => state.setIsLoadingCosmosLib);
29
+ const filteredWallets = useMemo(
30
+ () => cosmosWallets.filter((w) => walletsFromProps.includes(w().id.toUpperCase())),
31
+ [cosmosWallets, walletsFromProps]
32
+ );
33
+ useEffect(() => {
34
+ const loadLib = () => __async(this, null, function* () {
35
+ if (CosmosProvider) {
36
+ return;
37
+ }
38
+ const { Provider, context, wallets } = yield getParaCosmosConnector();
39
+ if (Provider) {
40
+ setCosmosProvider(Provider);
41
+ }
42
+ if (wallets) {
43
+ setCosmosWallets(wallets);
44
+ }
45
+ if (context) {
46
+ setCosmosContext(context);
47
+ }
48
+ setIsLoadingLib(false);
49
+ });
50
+ loadLib();
51
+ }, []);
52
+ if (isLoadingLib) {
53
+ return null;
54
+ }
55
+ if (CosmosProvider) {
56
+ return /* @__PURE__ */ jsx(CosmosProvider, __spreadProps(__spreadValues({}, rest), { config: __spreadProps(__spreadValues({}, rest == null ? void 0 : rest.config), { wallets: filteredWallets }), children }));
57
+ } else if (isUsing) {
58
+ console.warn("@getpara/cosmos-wallet-connectors is required to use an external Cosmos wallet.");
59
+ }
60
+ return children;
61
+ }
62
+ const MemoizedCosmosExternalWalletProvider = memo(CosmosExternalWalletProvider);
63
+ export {
64
+ CosmosExternalWalletProvider,
65
+ MemoizedCosmosExternalWalletProvider
66
+ };
@@ -0,0 +1,74 @@
1
+ "use client";
2
+ import {
3
+ __async,
4
+ __objRest,
5
+ __spreadProps,
6
+ __spreadValues
7
+ } from "../../chunk-MMUBH76A.js";
8
+ import { jsx } from "react/jsx-runtime";
9
+ import { useEffect, useMemo } from "react";
10
+ import { getParaEvmConnector } from "../external/getParaEvmConnector.js";
11
+ import { useStore } from "../stores/useStore.js";
12
+ function EvmExternalWalletProvider(_a) {
13
+ var _b = _a, {
14
+ children,
15
+ isUsing,
16
+ wallets: walletsFromProps
17
+ } = _b, rest = __objRest(_b, [
18
+ "children",
19
+ "isUsing",
20
+ "wallets"
21
+ ]);
22
+ const setEvmContext = useStore((state) => state.setEvmContext);
23
+ const setEvmProvider = useStore((state) => state.setEvmProvider);
24
+ const EvmProvider = useStore((state) => state.EvmProvider);
25
+ const setEvmWallets = useStore((state) => state.setEvmWallets);
26
+ const evmWallets = useStore((state) => state.evmWallets);
27
+ const isLoadingLib = useStore((state) => state.isLoadingEvmLib);
28
+ const setIsLoadingLib = useStore((state) => state.setIsLoadingEvmLib);
29
+ const filteredWallets = useMemo(
30
+ () => evmWallets.filter(
31
+ (w) => {
32
+ var _a2, _b2, _c, _d;
33
+ return walletsFromProps.includes(
34
+ w({
35
+ appName: (_b2 = (_a2 = rest == null ? void 0 : rest.config) == null ? void 0 : _a2.appName) != null ? _b2 : "",
36
+ projectId: (_d = (_c = rest == null ? void 0 : rest.config) == null ? void 0 : _c.projectId) != null ? _d : ""
37
+ }).id.toUpperCase()
38
+ );
39
+ }
40
+ ),
41
+ [evmWallets, walletsFromProps]
42
+ );
43
+ useEffect(() => {
44
+ const loadLib = () => __async(this, null, function* () {
45
+ if (EvmProvider) {
46
+ return;
47
+ }
48
+ const { Provider, context, wallets } = yield getParaEvmConnector();
49
+ if (Provider) {
50
+ setEvmProvider(Provider);
51
+ }
52
+ if (wallets) {
53
+ setEvmWallets(wallets);
54
+ }
55
+ if (context) {
56
+ setEvmContext(context);
57
+ }
58
+ setIsLoadingLib(false);
59
+ });
60
+ loadLib();
61
+ }, []);
62
+ if (isLoadingLib) {
63
+ return null;
64
+ }
65
+ if (EvmProvider) {
66
+ return /* @__PURE__ */ jsx(EvmProvider, __spreadProps(__spreadValues({}, rest), { config: __spreadProps(__spreadValues({}, rest == null ? void 0 : rest.config), { wallets: filteredWallets }), children }));
67
+ } else if (isUsing) {
68
+ console.warn("@getpara/evm-wallet-connectors is required to use an external EVM wallet.");
69
+ }
70
+ return children;
71
+ }
72
+ export {
73
+ EvmExternalWalletProvider
74
+ };
@@ -22,6 +22,7 @@ export declare const defaultExternalWallet: {
22
22
  setChainIdSwitchingTo: () => void;
23
23
  connectEmbeddedToExternalConnectors: () => Promise<void>;
24
24
  verifyWalletSignature: () => Promise<any>;
25
+ getWalletBalance: () => Promise<undefined>;
25
26
  isExternalWalletVerifying: boolean;
26
27
  };
27
28
  export declare const ExternalWalletContext: import("react").Context<{
@@ -45,7 +46,8 @@ export declare const ExternalWalletContext: import("react").Context<{
45
46
  setChainIdSwitchingTo: (chainId?: string) => void;
46
47
  connectEmbeddedToExternalConnectors: () => Promise<void>;
47
48
  verifyWalletSignature: () => Promise<VerifyExternalWalletParams | undefined>;
48
- isExernalWalletVerifying?: boolean;
49
+ getWalletBalance: () => Promise<string | undefined>;
50
+ isExternalWalletVerifying?: boolean;
49
51
  }>;
50
52
  export declare function ExternalWalletProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
51
53
  export declare const useExternalWallets: () => {
@@ -69,5 +71,6 @@ export declare const useExternalWallets: () => {
69
71
  setChainIdSwitchingTo: (chainId?: string) => void;
70
72
  connectEmbeddedToExternalConnectors: () => Promise<void>;
71
73
  verifyWalletSignature: () => Promise<VerifyExternalWalletParams | undefined>;
72
- isExernalWalletVerifying?: boolean;
74
+ getWalletBalance: () => Promise<string | undefined>;
75
+ isExternalWalletVerifying?: boolean;
73
76
  };