@getpara/react-sdk 2.0.0-dev.1 → 2.0.0-dev.3

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 (265) hide show
  1. package/dist/cli/cli.mjs +22 -7
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +6 -7058
  4. package/dist/modal/ParaModal.js +301 -0
  5. package/dist/modal/components/Account/Account.js +148 -0
  6. package/dist/modal/components/Account/AccountProfile.d.ts +1 -0
  7. package/dist/modal/components/Account/AccountProfile.js +168 -0
  8. package/dist/modal/components/Account/AccountProfileLink.d.ts +1 -0
  9. package/dist/modal/components/Account/AccountProfileLink.js +206 -0
  10. package/dist/modal/components/Account/AccountProfileLinkOptions.d.ts +1 -0
  11. package/dist/modal/components/Account/AccountProfileLinkOptions.js +111 -0
  12. package/dist/modal/components/Account/AccountProfileUnlink.d.ts +1 -0
  13. package/dist/modal/components/Account/AccountProfileUnlink.js +47 -0
  14. package/dist/modal/components/AddFunds/AddFunds.d.ts +0 -2
  15. package/dist/modal/components/AddFunds/AddFunds.js +69 -0
  16. package/dist/modal/components/AddFunds/AddFundsAsset.d.ts +1 -0
  17. package/dist/modal/components/AddFunds/AddFundsAsset.js +125 -0
  18. package/dist/modal/components/AddFunds/AddFundsAwaiting.js +78 -0
  19. package/dist/modal/components/AddFunds/AddFundsContext.d.ts +31 -0
  20. package/dist/modal/components/AddFunds/AddFundsContext.js +160 -0
  21. package/dist/modal/components/AddFunds/AddFundsDone.js +49 -0
  22. package/dist/modal/components/AddFunds/AddFundsProvider.d.ts +1 -0
  23. package/dist/modal/components/AddFunds/AddFundsProvider.js +109 -0
  24. package/dist/modal/components/AddFunds/AddFundsReceive.d.ts +1 -0
  25. package/dist/modal/components/AddFunds/AddFundsReceive.js +83 -0
  26. package/dist/modal/components/AddFunds/AddFundsSettings.d.ts +1 -0
  27. package/dist/modal/components/AddFunds/AddFundsSettings.js +237 -0
  28. package/dist/{MoonPayEmbed-Q2HP2BFI.js → modal/components/AddFunds/MoonPayEmbed.js} +1 -3
  29. package/dist/modal/components/AddFunds/common.d.ts +19 -0
  30. package/dist/modal/components/AddFunds/common.js +24 -0
  31. package/dist/modal/components/AddFunds/index.js +4 -0
  32. package/dist/modal/components/AuthInput/AuthInput.d.ts +17 -3
  33. package/dist/modal/components/AuthInput/AuthInput.js +277 -0
  34. package/dist/modal/components/AuthInput/hooks/useDropdownPosition.js +33 -0
  35. package/dist/modal/components/AuthInput/phoneMasks.js +253 -0
  36. package/dist/modal/components/AuthMainStep/AuthMainStep.d.ts +4 -3
  37. package/dist/modal/components/AuthMainStep/AuthMainStep.js +50 -0
  38. package/dist/modal/components/AuthMainStep/AuthMainStepContent.d.ts +4 -3
  39. package/dist/modal/components/AuthMainStep/AuthMainStepContent.js +164 -0
  40. package/dist/modal/components/AuthOptions/AuthOptions.d.ts +4 -3
  41. package/dist/modal/components/AuthOptions/AuthOptions.js +85 -0
  42. package/dist/modal/components/AwaitingBiometricsStep/AwaitingBiometricsStep.js +18 -0
  43. package/dist/modal/components/AwaitingOAuthStep/AwaitingOAuthStep.js +10 -0
  44. package/dist/modal/components/AwaitingPasswordStep/AwaitingPasswordStep.js +18 -0
  45. package/dist/modal/components/AwaitingWalletCreationStep/AwaitingWalletCreationStep.d.ts +5 -1
  46. package/dist/modal/components/AwaitingWalletCreationStep/AwaitingWalletCreationStep.js +49 -0
  47. package/dist/modal/components/BiometricCreationStep/BiometricCreationStep.d.ts +1 -1
  48. package/dist/modal/components/BiometricCreationStep/BiometricCreationStep.js +62 -0
  49. package/dist/modal/components/BiometricLoginStep/BiometricLoginStep.d.ts +1 -1
  50. package/dist/modal/components/BiometricLoginStep/BiometricLoginStep.js +48 -0
  51. package/dist/modal/components/Body/AnimatedHeightWrapper.js +29 -0
  52. package/dist/modal/components/Body/Body.d.ts +4 -3
  53. package/dist/modal/components/Body/Body.js +350 -0
  54. package/dist/modal/components/ChainSwitch/ChainSwitch.js +95 -0
  55. package/dist/modal/components/ChainSwitch/config.js +17 -0
  56. package/dist/modal/components/Controls/Controls.js +78 -0
  57. package/dist/modal/components/Controls/Selects.js +173 -0
  58. package/dist/modal/components/ExternalWalletNetworkSelectStep/ExternalWalletNetworkSelectStep.d.ts +1 -0
  59. package/dist/modal/components/ExternalWalletNetworkSelectStep/ExternalWalletNetworkSelectStep.js +75 -0
  60. package/dist/modal/components/ExternalWalletStep/ExternalWalletStep.d.ts +7 -0
  61. package/dist/modal/components/ExternalWalletStep/ExternalWalletStep.js +175 -0
  62. package/dist/modal/components/ExternalWalletStep/config.js +17 -0
  63. package/dist/modal/components/ExternalWalletVerificationStep/ExternalWalletVerificationStep.js +39 -0
  64. package/dist/modal/components/ExternalWallets/ExternalWallets.js +184 -0
  65. package/dist/modal/components/Footer/Footer.js +95 -0
  66. package/dist/modal/components/Header/Header.js +43 -0
  67. package/dist/modal/components/Header/hooks/useStepTitle.js +61 -0
  68. package/dist/modal/components/Hero/Hero.js +116 -0
  69. package/dist/modal/components/IFrameStep/IFrameStep.js +59 -0
  70. package/dist/modal/components/LoginDoneStep/LoginDoneStep.d.ts +4 -0
  71. package/dist/modal/components/LoginDoneStep/LoginDoneStep.js +44 -0
  72. package/dist/modal/components/ModalContent/ModalContent.d.ts +0 -4
  73. package/dist/modal/components/ModalContent/ModalContent.js +88 -0
  74. package/dist/modal/components/OAuth/FarcasterOAuthStep.d.ts +1 -0
  75. package/dist/modal/components/OAuth/FarcasterOAuthStep.js +31 -0
  76. package/dist/modal/components/OAuth/OAuth.d.ts +2 -2
  77. package/dist/modal/components/OAuth/OAuth.js +79 -0
  78. package/dist/modal/components/OAuth/TelegramOAuthStep.d.ts +7 -0
  79. package/dist/modal/components/OAuth/TelegramOAuthStep.js +74 -0
  80. package/dist/modal/components/OnRampComponents/AddingFunds.js +23 -0
  81. package/dist/modal/components/OnRampComponents/OnRampProviderButton.js +77 -0
  82. package/dist/modal/components/RecoverySecretStep/RecoverySecretStep.js +107 -0
  83. package/dist/modal/components/Setup2FAStep/Setup2FAStep.js +132 -0
  84. package/dist/modal/components/TwoFactorDoneStep/TwoFactorDoneStep.js +27 -0
  85. package/dist/modal/components/VerificationCodeStep/VerificationCodeStep.d.ts +12 -1
  86. package/dist/modal/components/VerificationCodeStep/VerificationCodeStep.js +160 -0
  87. package/dist/modal/components/Waiting/Waiting.js +17 -0
  88. package/dist/modal/components/WalletCard/PartnerIcon.js +34 -0
  89. package/dist/modal/components/WalletCard/WalletCard.d.ts +3 -3
  90. package/dist/modal/components/WalletCard/WalletCard.js +128 -0
  91. package/dist/modal/components/WalletCreationDoneStep/WalletCreationDoneStep.js +83 -0
  92. package/dist/modal/components/common.d.ts +49 -13
  93. package/dist/modal/components/common.js +261 -0
  94. package/dist/modal/components/index.js +2 -0
  95. package/dist/modal/constants/constants.d.ts +10 -2
  96. package/dist/modal/constants/constants.js +142 -0
  97. package/dist/modal/constants/defaults.js +10 -0
  98. package/dist/modal/constants/oAuthLogos.d.ts +15 -6
  99. package/dist/modal/constants/oAuthLogos.js +158 -0
  100. package/dist/modal/constants/walletTypeConfig.d.ts +6 -0
  101. package/dist/modal/constants/walletTypeConfig.js +13 -0
  102. package/dist/modal/hooks/useGoBack.js +43 -0
  103. package/dist/modal/hooks/useTelegramLogin.d.ts +12 -0
  104. package/dist/modal/hooks/useTelegramLogin.js +65 -0
  105. package/dist/modal/index.d.ts +1 -1
  106. package/dist/modal/index.js +29 -0
  107. package/dist/modal/stores/index.d.ts +0 -1
  108. package/dist/modal/stores/index.js +2 -0
  109. package/dist/modal/stores/modal/actions.js +135 -0
  110. package/dist/modal/stores/modal/useModalStore.d.ts +17 -16
  111. package/dist/modal/stores/modal/useModalStore.js +73 -0
  112. package/dist/modal/types/commonTypes.js +1 -0
  113. package/dist/modal/types/modalProps.d.ts +15 -2
  114. package/dist/modal/types/modalProps.js +12 -0
  115. package/dist/modal/utils/authInputHelpers.d.ts +5 -0
  116. package/dist/modal/utils/authInputHelpers.js +41 -0
  117. package/dist/modal/utils/authLayoutHelpers.js +8 -0
  118. package/dist/modal/utils/countryCodes.js +45 -0
  119. package/dist/modal/utils/getMailtoLink.js +10 -0
  120. package/dist/modal/utils/getTileButtonFlex.js +20 -0
  121. package/dist/modal/utils/getWalletDisplayName.d.ts +5 -0
  122. package/dist/modal/utils/getWalletDisplayName.js +22 -0
  123. package/dist/modal/utils/isPasskeySupported.js +15 -0
  124. package/dist/modal/utils/openPopup.js +60 -0
  125. package/dist/modal/utils/routeMobileExternalWallet.js +31 -0
  126. package/dist/modal/utils/steps.d.ts +21 -2
  127. package/dist/modal/utils/steps.js +273 -0
  128. package/dist/modal/utils/stringFormatters.d.ts +1 -0
  129. package/dist/modal/utils/stringFormatters.js +19 -0
  130. package/dist/modal/utils/validateOnRampConfig.js +32 -0
  131. package/dist/package.json +6 -0
  132. package/dist/provider/ParaProvider.js +117 -0
  133. package/dist/provider/actions/getEmbeddedAccount.d.ts +26 -0
  134. package/dist/provider/actions/getEmbeddedAccount.js +52 -0
  135. package/dist/provider/actions/getWallet.d.ts +3 -3
  136. package/dist/provider/actions/getWallet.js +18 -0
  137. package/dist/provider/actions/index.d.ts +40 -18
  138. package/dist/provider/actions/index.js +79 -0
  139. package/dist/provider/actions/utils.d.ts +4 -3
  140. package/dist/provider/actions/utils.js +34 -0
  141. package/dist/provider/components/CosmosWalletWrapper.js +43 -0
  142. package/dist/provider/components/EvmWalletWrapper.js +43 -0
  143. package/dist/provider/components/ExternalWalletWrapper.js +140 -0
  144. package/dist/provider/components/SolanaWalletWrapper.js +44 -0
  145. package/dist/provider/external/getParaCosmosConnector.js +19 -0
  146. package/dist/provider/external/getParaCosmosLib.d.ts +4 -0
  147. package/dist/provider/external/getParaCosmosLib.js +16 -0
  148. package/dist/provider/external/getParaEvmConnector.js +19 -0
  149. package/dist/provider/external/getParaEvmLib.d.ts +4 -0
  150. package/dist/provider/external/getParaEvmLib.js +16 -0
  151. package/dist/provider/external/getParaSolanaConnector.js +19 -0
  152. package/dist/provider/external/getParaSolanaLib.d.ts +4 -0
  153. package/dist/provider/external/getParaSolanaLib.js +16 -0
  154. package/dist/provider/external/stubs/CosmosExternalWalletContextStub.d.ts +1 -11
  155. package/dist/provider/external/stubs/CosmosExternalWalletContextStub.js +8 -0
  156. package/dist/provider/external/stubs/EvmExternalWalletContextStub.d.ts +1 -2
  157. package/dist/provider/external/stubs/EvmExternalWalletContextStub.js +8 -0
  158. package/dist/provider/external/stubs/SolanaExternalWalletContextStub.d.ts +1 -7
  159. package/dist/provider/external/stubs/SolanaExternalWalletContextStub.js +8 -0
  160. package/dist/provider/hooks/index.js +4 -0
  161. package/dist/provider/hooks/mutations/core.d.ts +27 -0
  162. package/dist/provider/hooks/mutations/core.js +66 -0
  163. package/dist/provider/hooks/mutations/index.d.ts +3 -34
  164. package/dist/provider/hooks/mutations/index.js +9 -0
  165. package/dist/provider/hooks/mutations/useLinkAccount.d.ts +9 -0
  166. package/dist/provider/hooks/mutations/useLinkAccount.js +18 -0
  167. package/dist/provider/hooks/mutations/utils.d.ts +11 -3
  168. package/dist/provider/hooks/mutations/utils.js +90 -0
  169. package/dist/provider/hooks/queries/core.d.ts +4 -0
  170. package/dist/provider/hooks/queries/core.js +16 -0
  171. package/dist/provider/hooks/queries/index.d.ts +2 -0
  172. package/dist/provider/hooks/queries/index.js +11 -0
  173. package/dist/provider/hooks/queries/useAccount.d.ts +86 -7
  174. package/dist/provider/hooks/queries/useAccount.js +135 -0
  175. package/dist/provider/hooks/queries/useIsFullyLoggedIn.d.ts +5 -0
  176. package/dist/provider/hooks/queries/useIsFullyLoggedIn.js +24 -0
  177. package/dist/provider/hooks/queries/useWallet.d.ts +1 -1
  178. package/dist/provider/hooks/queries/useWallet.js +26 -0
  179. package/dist/provider/hooks/queries/useWalletBalance.d.ts +6 -0
  180. package/dist/provider/hooks/queries/useWalletBalance.js +55 -0
  181. package/dist/provider/hooks/queries/utils.d.ts +7 -0
  182. package/dist/provider/hooks/queries/utils.js +25 -0
  183. package/dist/provider/hooks/utils/index.js +10 -0
  184. package/dist/provider/hooks/utils/useAutoSessionKeepAlive.js +74 -0
  185. package/dist/provider/hooks/utils/useClient.d.ts +1 -1
  186. package/dist/provider/hooks/utils/useClient.js +10 -0
  187. package/dist/provider/hooks/utils/useEventListeners.d.ts +1 -1
  188. package/dist/provider/hooks/utils/useEventListeners.js +157 -0
  189. package/dist/provider/hooks/utils/useFormattedBiometricHints.d.ts +4 -0
  190. package/dist/provider/hooks/utils/useFormattedBiometricHints.js +27 -0
  191. package/dist/provider/hooks/utils/useInternalClient.js +10 -0
  192. package/dist/provider/hooks/utils/useModal.d.ts +4 -1
  193. package/dist/provider/hooks/utils/useModal.js +27 -0
  194. package/dist/provider/hooks/utils/useWalletState.d.ts +3 -3
  195. package/dist/provider/hooks/utils/useWalletState.js +48 -0
  196. package/dist/provider/index.d.ts +2 -0
  197. package/dist/provider/index.js +11 -0
  198. package/dist/provider/providers/AccountLinkProvider.d.ts +47 -0
  199. package/dist/provider/providers/AccountLinkProvider.js +452 -0
  200. package/dist/provider/providers/AuthProvider.d.ts +12 -6
  201. package/dist/provider/providers/AuthProvider.js +523 -0
  202. package/dist/provider/providers/CosmosExternalWalletProvider.js +66 -0
  203. package/dist/provider/providers/EvmExternalWalletProvider.js +74 -0
  204. package/dist/provider/providers/ExternalWalletProvider.d.ts +23 -43
  205. package/dist/provider/providers/ExternalWalletProvider.js +596 -0
  206. package/dist/provider/providers/SolanaExternalWalletProvider.js +66 -0
  207. package/dist/provider/stores/getters.d.ts +1 -1
  208. package/dist/provider/stores/getters.js +13 -0
  209. package/dist/provider/stores/setters.js +7 -0
  210. package/dist/provider/stores/slices/analytics.d.ts +3 -0
  211. package/dist/provider/stores/slices/analytics.js +9 -0
  212. package/dist/provider/stores/slices/client.js +9 -0
  213. package/dist/provider/stores/slices/config.js +9 -0
  214. package/dist/provider/stores/slices/externalWallets.js +46 -0
  215. package/dist/provider/stores/slices/index.d.ts +1 -0
  216. package/dist/provider/stores/slices/index.js +6 -0
  217. package/dist/provider/stores/slices/modal.js +18 -0
  218. package/dist/provider/stores/slices/wallet.js +13 -0
  219. package/dist/provider/stores/types.d.ts +19 -5
  220. package/dist/provider/stores/types.js +1 -0
  221. package/dist/provider/stores/useStore.js +34 -0
  222. package/dist/provider/types/externalWalletProviders.js +1 -0
  223. package/dist/provider/types/provider.d.ts +23 -4
  224. package/dist/provider/types/provider.js +1 -0
  225. package/dist/provider/types/query.js +1 -0
  226. package/dist/provider/types/utils.d.ts +28 -5
  227. package/dist/provider/types/utils.js +1 -0
  228. package/dist/provider/utils/constants.d.ts +5 -0
  229. package/dist/provider/utils/constants.js +10 -0
  230. package/dist/provider/utils/paraConfigTypeGuards.js +13 -0
  231. package/dist/provider/utils/renameMutations.d.ts +2 -2
  232. package/dist/provider/utils/renameMutations.js +18 -0
  233. package/package.json +40 -39
  234. package/dist/MoonPayEmbed-Q2HP2BFI.js.br +0 -0
  235. package/dist/MoonPayEmbed-Q2HP2BFI.js.gz +0 -0
  236. package/dist/chunk-MMUBH76A.js.br +0 -0
  237. package/dist/chunk-MMUBH76A.js.gz +0 -0
  238. package/dist/index.js.br +0 -0
  239. package/dist/index.js.gz +0 -0
  240. package/dist/modal/components/StripeComponents/StripeComponents.d.ts +0 -16
  241. package/dist/modal/hooks/useCreateAccount.d.ts +0 -4
  242. package/dist/modal/stores/userInfo/actions.d.ts +0 -3
  243. package/dist/modal/stores/userInfo/useUserInfoStore.d.ts +0 -19
  244. package/dist/provider/actions/checkIfUserExists.d.ts +0 -4
  245. package/dist/provider/actions/createUser.d.ts +0 -4
  246. package/dist/provider/actions/getAccount.d.ts +0 -10
  247. package/dist/provider/actions/initiateLogin.d.ts +0 -4
  248. package/dist/provider/actions/keepSessionAlive.d.ts +0 -2
  249. package/dist/provider/actions/logout.d.ts +0 -5
  250. package/dist/provider/actions/signMessage.d.ts +0 -8
  251. package/dist/provider/actions/signTransaction.d.ts +0 -8
  252. package/dist/provider/actions/waitForAccountCreation.d.ts +0 -5
  253. package/dist/provider/actions/waitForLoginAndSetup.d.ts +0 -6
  254. package/dist/provider/actions/waitForPasskeyAndCreateWallet.d.ts +0 -2
  255. package/dist/provider/hooks/mutations/useCheckIfUserExists.d.ts +0 -13
  256. package/dist/provider/hooks/mutations/useCreateUser.d.ts +0 -13
  257. package/dist/provider/hooks/mutations/useInitiateLogin.d.ts +0 -14
  258. package/dist/provider/hooks/mutations/useKeepSessionAlive.d.ts +0 -12
  259. package/dist/provider/hooks/mutations/useLogout.d.ts +0 -13
  260. package/dist/provider/hooks/mutations/useSignMessage.d.ts +0 -15
  261. package/dist/provider/hooks/mutations/useSignTransaction.d.ts +0 -15
  262. package/dist/provider/hooks/mutations/useWaitForAccountCreation.d.ts +0 -13
  263. package/dist/provider/hooks/mutations/useWaitForLoginAndSetup.d.ts +0 -14
  264. package/dist/provider/hooks/mutations/useWaitForPasskeyAndCreateWallet.d.ts +0 -13
  265. /package/dist/modal/{components/AuthInput → utils}/countryCodes.d.ts +0 -0
@@ -1,5 +1,13 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import type { CommonChain, CommonWallet } from '@getpara/react-common';
2
+ import { TWalletType } from '@getpara/web-sdk';
3
+ import { BalanceManagement, ChainManagement, CommonWallet, ExternalWalletContextType, TExternalWallet } from '@getpara/react-common';
4
+ import { ExternalWalletInfo, VerifyExternalWalletParams } from '@getpara/web-sdk';
5
+ import { CosmosSignResult } from '@getpara/cosmos-wallet-connectors';
6
+ export declare const useWalletDisplayHelpers: (wallet: CommonWallet | undefined) => {
7
+ showExtension: boolean;
8
+ showMobile: boolean;
9
+ isCosmosMobileWallet: boolean;
10
+ };
3
11
  export declare const defaultExternalWallet: {
4
12
  wallets: never[];
5
13
  chains: never[];
@@ -10,7 +18,6 @@ export declare const defaultExternalWallet: {
10
18
  walletDisplayHelpers: {
11
19
  showExtension: boolean;
12
20
  showMobile: boolean;
13
- isSolanaMobileIOS: boolean;
14
21
  isCosmosMobileWallet: boolean;
15
22
  };
16
23
  username: undefined;
@@ -20,60 +27,33 @@ export declare const defaultExternalWallet: {
20
27
  switchChain: () => Promise<void>;
21
28
  setChainIdSwitchingTo: () => void;
22
29
  connectEmbeddedToExternalConnectors: () => Promise<void>;
23
- verifyWalletSignature: () => Promise<{}>;
30
+ verifyWalletSignature: () => Promise<any>;
31
+ signMessage: () => Promise<any>;
32
+ isSigningMessage: boolean;
33
+ getWalletBalance: () => Promise<undefined>;
34
+ requestInfo: (_: TExternalWallet) => Promise<ExternalWalletInfo>;
35
+ disconnectBase: (_: TExternalWallet) => Promise<void>;
24
36
  };
25
- export declare const ExternalWalletContext: import("react").Context<{
26
- wallets: CommonWallet[];
27
- chains: CommonChain[];
28
- chainId?: string;
37
+ type Value = Omit<ExternalWalletContextType<CosmosSignResult>, 'disconnect' | 'signVerificationMessage' | 'requestInfo'> & ChainManagement<string, void> & BalanceManagement & {
29
38
  wallet?: CommonWallet;
30
39
  qrUri?: string;
31
40
  chainIdSwitchingTo?: string;
32
41
  walletDisplayHelpers: {
33
42
  showExtension: boolean;
34
43
  showMobile: boolean;
35
- isSolanaMobileIOS: boolean;
36
44
  isCosmosMobileWallet: boolean;
37
45
  };
38
46
  username?: string;
39
47
  avatar?: string;
40
48
  connectExternalWallet: (wallet: CommonWallet, isMobile?: boolean, isManualWalletConnect?: boolean) => Promise<void>;
41
49
  disconnectExternalWallet: () => Promise<void>;
42
- switchChain: (chainId: string) => Promise<void>;
43
50
  setChainIdSwitchingTo: (chainId?: string) => void;
44
51
  connectEmbeddedToExternalConnectors: () => Promise<void>;
45
- verifyWalletSignature: () => Promise<{
46
- address?: string;
47
- signature?: string;
48
- cosmosPublicKeyHex?: string;
49
- cosmosSigner?: string;
50
- } | undefined>;
51
- }>;
52
- export declare function ExternalWalletProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
53
- export declare const useExternalWallets: () => {
54
- wallets: CommonWallet[];
55
- chains: CommonChain[];
56
- chainId?: string;
57
- wallet?: CommonWallet;
58
- qrUri?: string;
59
- chainIdSwitchingTo?: string;
60
- walletDisplayHelpers: {
61
- showExtension: boolean;
62
- showMobile: boolean;
63
- isSolanaMobileIOS: boolean;
64
- isCosmosMobileWallet: boolean;
65
- };
66
- username?: string;
67
- avatar?: string;
68
- connectExternalWallet: (wallet: CommonWallet, isMobile?: boolean, isManualWalletConnect?: boolean) => Promise<void>;
69
- disconnectExternalWallet: () => Promise<void>;
70
- switchChain: (chainId: string) => Promise<void>;
71
- setChainIdSwitchingTo: (chainId?: string) => void;
72
- connectEmbeddedToExternalConnectors: () => Promise<void>;
73
- verifyWalletSignature: () => Promise<{
74
- address?: string;
75
- signature?: string;
76
- cosmosPublicKeyHex?: string;
77
- cosmosSigner?: string;
78
- } | undefined>;
52
+ isSigningMessage: boolean;
53
+ verifyWalletSignature: () => Promise<VerifyExternalWalletParams | undefined>;
54
+ requestInfo: (_: TExternalWallet, __: TWalletType) => Promise<ExternalWalletInfo>;
79
55
  };
56
+ export declare const ExternalWalletContext: import("react").Context<Value>;
57
+ export declare function ExternalWalletProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
58
+ export declare const useExternalWallets: () => Value;
59
+ export {};
@@ -0,0 +1,596 @@
1
+ "use client";
2
+ import {
3
+ __async,
4
+ __spreadValues
5
+ } from "../../chunk-MMUBH76A.js";
6
+ import { jsx } from "react/jsx-runtime";
7
+ import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
8
+ import { isMobile, truncateAddress } from "@getpara/web-sdk";
9
+ import { useInternalClient } from "../hooks/utils/useInternalClient.js";
10
+ import { useStore } from "../stores/useStore.js";
11
+ import { ModalStep } from "../../modal/index.js";
12
+ import { useModalStore } from "../../modal/stores/index.js";
13
+ import { useVerifyExternalWallet, useWalletState } from "../hooks/index.js";
14
+ import {
15
+ COSMOS_WALLETS,
16
+ EVM_WALLETS,
17
+ SOLANA_WALLETS
18
+ } from "@getpara/web-sdk";
19
+ import { useAuthActions } from "./AuthProvider.js";
20
+ const useWalletDisplayHelpers = (wallet) => {
21
+ const isUsingMobileConnector = useModalStore((state) => state.isUsingMobileConnector);
22
+ return {
23
+ // Show the extension screen if on web and the wallet is an extension and installed or the wallet isn't a mobile wallet
24
+ // Also show the extension connection if on desktop for a solana wallet (no walletConnect)
25
+ showExtension: !isMobile() && ((wallet == null ? void 0 : wallet.isExtension) && (wallet == null ? void 0 : wallet.installed) || !(wallet == null ? void 0 : wallet.isMobile) || (wallet == null ? void 0 : wallet.type) === "SOLANA"),
26
+ // Show the mobile screen if on mobile and the wallet is a mobile wallet or if on desktop and the wallet isn't installed
27
+ showMobile: isMobile() && (wallet == null ? void 0 : wallet.isMobile) || !isMobile() && !(wallet == null ? void 0 : wallet.installed),
28
+ isCosmosMobileWallet: (wallet == null ? void 0 : wallet.type) === "COSMOS" && !!isUsingMobileConnector
29
+ };
30
+ };
31
+ const defaultExternalWallet = {
32
+ wallets: [],
33
+ chains: [],
34
+ chainId: void 0,
35
+ wallet: void 0,
36
+ qrUri: void 0,
37
+ chainIdSwitchingTo: void 0,
38
+ walletDisplayHelpers: { showExtension: false, showMobile: false, isCosmosMobileWallet: false },
39
+ username: void 0,
40
+ avatar: void 0,
41
+ connectExternalWallet: () => Promise.resolve(),
42
+ disconnectExternalWallet: () => Promise.resolve(),
43
+ switchChain: () => Promise.resolve(),
44
+ setChainIdSwitchingTo: () => {
45
+ },
46
+ connectEmbeddedToExternalConnectors: () => Promise.resolve(),
47
+ verifyWalletSignature: () => Promise.resolve({}),
48
+ signMessage: () => Promise.resolve({}),
49
+ isSigningMessage: false,
50
+ getWalletBalance: () => Promise.resolve(void 0),
51
+ requestInfo: (_) => Promise.resolve({}),
52
+ disconnectBase: (_) => Promise.resolve()
53
+ };
54
+ const ExternalWalletContext = createContext(defaultExternalWallet);
55
+ function ExternalWalletProvider({ children }) {
56
+ const evmContext = useStore((state) => state.evmContext);
57
+ const cosmosContext = useStore((state) => state.cosmosContext);
58
+ const solanaContext = useStore((state) => state.solanaContext);
59
+ const externalWallets = useStore((state) => state.externalWallets);
60
+ const externalWalletsWithFullAuth = useStore((state) => state.externalWalletsWithFullAuth);
61
+ const includeWalletVerification = useStore((state) => state.includeWalletVerification);
62
+ const connectionOnly = useStore((state) => state.connectionOnly);
63
+ const {
64
+ wallets: evmWallets,
65
+ disconnect: evmDisconnect,
66
+ chains: evmChains,
67
+ chainId: evmChainId,
68
+ switchChain: evmSwitchChain,
69
+ username: evmUsername,
70
+ avatar: evmAvatar,
71
+ connectParaEmbedded: evmConnectParaEmbedded,
72
+ signMessage: evmSignMessage,
73
+ signVerificationMessage: evmSignVerificationMessage,
74
+ getWalletBalance: evmGetWalletBalance,
75
+ requestInfo: evmRequestInfo,
76
+ disconnectBase: evmDisconnectBase,
77
+ farcasterStatus: evmFarcasterStatus
78
+ } = useContext(evmContext);
79
+ const {
80
+ wallets: solanaWallets,
81
+ disconnect: solanaDisconnect,
82
+ signMessage: solanaSignMessage,
83
+ signVerificationMessage: solanaSignVerificationMessage,
84
+ requestInfo: solanaRequestInfo,
85
+ disconnectBase: solanaDisconnectBase
86
+ } = useContext(solanaContext);
87
+ const {
88
+ wallets: cosmosWallets,
89
+ disconnect: cosmosDisconnect,
90
+ chains: cosmosChains,
91
+ chainId: cosmosChainId,
92
+ switchChain: cosmosSwitchChain,
93
+ connectParaEmbedded: cosmosConnectParaEmbedded,
94
+ signMessage: cosmosSignMessage,
95
+ signVerificationMessage: cosmosSignVerificationMessage,
96
+ requestInfo: cosmosRequestInfo,
97
+ disconnectBase: cosmosDisconnectBase
98
+ } = useContext(cosmosContext);
99
+ const onLoginRef = useStore((state) => state.onLoginRef);
100
+ const setStep = useModalStore((state) => state.setStep);
101
+ const setStepDirection = useModalStore((state) => state.setStepDirection);
102
+ const setIsExternalWalletConnecting = useModalStore((state) => state.setIsExternalWalletConnecting);
103
+ const isExternalWalletConnecting = useModalStore((state) => state.isExternalWalletConnecting);
104
+ const setSelectedExternalWalletId = useModalStore((state) => state.setSelectedExternalWalletId);
105
+ const selectedExternalWalletId = useModalStore((state) => state.selectedExternalWalletId);
106
+ const setExternalWalletError = useModalStore((state) => state.setExternalWalletError);
107
+ const setIsUsingMobileConnector = useModalStore((state) => state.setIsUsingMobileConnector);
108
+ const para = useInternalClient();
109
+ const { setSelectedWallet } = useWalletState();
110
+ const { onNewAuthState } = useAuthActions();
111
+ const { mutateAsync: verifyExternalWallet } = useVerifyExternalWallet();
112
+ const [qrUri, setQrUri] = useState();
113
+ const [chainIdSwitchingTo, setChainIdSwitchingTo] = useState();
114
+ const [isSigningMessage, setIsSigningMessage] = useState(false);
115
+ const wallets = [...evmWallets, ...solanaWallets, ...cosmosWallets].filter(
116
+ (w) => (w.internalId !== "FARCASTER" || (para == null ? void 0 : para.isFarcasterMiniApp)) && externalWallets.includes(w.id.toUpperCase())
117
+ ).sort(
118
+ (a, b) => externalWallets.indexOf(a.id.toUpperCase()) - externalWallets.indexOf(b.id.toUpperCase())
119
+ ).sort((a, b) => a.installed === b.installed ? 0 : a.installed ? -1 : 1);
120
+ const wallet = useMemo(
121
+ () => wallets.find((w) => w.internalId === selectedExternalWalletId),
122
+ [wallets, selectedExternalWalletId]
123
+ );
124
+ const updateQrUri = () => __async(this, null, function* () {
125
+ var _a;
126
+ const uri = yield (_a = wallet == null ? void 0 : wallet.getQrUri) == null ? void 0 : _a.call(wallet);
127
+ setQrUri(uri);
128
+ });
129
+ useEffect(() => {
130
+ if (wallet) {
131
+ if (!qrUri) {
132
+ updateQrUri();
133
+ }
134
+ } else if (qrUri) {
135
+ setQrUri(void 0);
136
+ }
137
+ }, [wallet]);
138
+ const getWalletBalance = useCallback(() => __async(this, null, function* () {
139
+ var _a;
140
+ const walletType = (_a = Object.values(para.externalWallets || {})[0]) == null ? void 0 : _a.type;
141
+ switch (walletType) {
142
+ case "EVM": {
143
+ return yield evmGetWalletBalance();
144
+ }
145
+ default: {
146
+ return void 0;
147
+ }
148
+ }
149
+ }), [evmGetWalletBalance, selectedExternalWalletId]);
150
+ const chains = useMemo(() => {
151
+ var _a;
152
+ const walletType = (_a = Object.values(para.externalWallets || {})[0]) == null ? void 0 : _a.type;
153
+ switch (walletType) {
154
+ case "COSMOS": {
155
+ return cosmosChains;
156
+ }
157
+ case "EVM": {
158
+ return evmChains;
159
+ }
160
+ default: {
161
+ return [];
162
+ }
163
+ }
164
+ }, [cosmosChains, evmChains, selectedExternalWalletId]);
165
+ const chainId = useMemo(() => {
166
+ var _a;
167
+ const walletType = (_a = Object.values(para.externalWallets || {})[0]) == null ? void 0 : _a.type;
168
+ switch (walletType) {
169
+ case "COSMOS": {
170
+ return cosmosChainId;
171
+ }
172
+ case "EVM": {
173
+ return evmChainId == null ? void 0 : evmChainId.toString();
174
+ }
175
+ default: {
176
+ return void 0;
177
+ }
178
+ }
179
+ }, [cosmosChains, evmChains, selectedExternalWalletId]);
180
+ const switchChain = useCallback(
181
+ (chainId2) => __async(this, null, function* () {
182
+ var _a;
183
+ const walletType = (_a = Object.values(para.externalWallets || {})[0]) == null ? void 0 : _a.type;
184
+ if (walletType) {
185
+ let resp;
186
+ setExternalWalletError();
187
+ setChainIdSwitchingTo(chainId2);
188
+ switch (walletType) {
189
+ case "COSMOS": {
190
+ setStep(ModalStep.CHAIN_SWITCH);
191
+ resp = yield cosmosSwitchChain(chainId2);
192
+ break;
193
+ }
194
+ case "EVM": {
195
+ setStep(ModalStep.CHAIN_SWITCH);
196
+ resp = yield evmSwitchChain(parseInt(chainId2));
197
+ break;
198
+ }
199
+ default: {
200
+ resp = {};
201
+ break;
202
+ }
203
+ }
204
+ if (resp.error) {
205
+ setExternalWalletError(resp.error);
206
+ } else {
207
+ setChainIdSwitchingTo(void 0);
208
+ setStepDirection(-1);
209
+ setStep(ModalStep.ACCOUNT_MAIN);
210
+ }
211
+ }
212
+ }),
213
+ [evmSwitchChain, cosmosSwitchChain]
214
+ );
215
+ const verifyWalletSignature = useCallback(() => __async(this, null, function* () {
216
+ var _a;
217
+ setExternalWalletError();
218
+ const wallet2 = Object.values(para.externalWallets)[0];
219
+ const walletType = wallet2 == null ? void 0 : wallet2.type;
220
+ let verifyExternalWalletParams;
221
+ const withVerification = includeWalletVerification;
222
+ const isConnectionOnly = connectionOnly;
223
+ const withFullParaAuth = (wallet2 == null ? void 0 : wallet2.name) ? externalWalletsWithFullAuth.includes(wallet2.name.toUpperCase()) : false;
224
+ const defaultWalletInfo = {
225
+ withVerification,
226
+ isConnectionOnly,
227
+ withFullParaAuth,
228
+ provider: wallet2.name,
229
+ providerId: wallet2.externalProviderId,
230
+ isExternal: true
231
+ };
232
+ switch (walletType) {
233
+ case "COSMOS":
234
+ {
235
+ const { address, signature, error, cosmosPublicKeyHex, cosmosSigner, addressBech32 } = yield cosmosSignVerificationMessage();
236
+ if (error) {
237
+ setExternalWalletError([error]);
238
+ } else if (signature && address) {
239
+ verifyExternalWalletParams = {
240
+ externalWallet: __spreadValues({
241
+ type: "COSMOS",
242
+ address,
243
+ addressBech32
244
+ }, defaultWalletInfo),
245
+ signedMessage: signature,
246
+ cosmosPublicKeyHex,
247
+ cosmosSigner
248
+ };
249
+ }
250
+ }
251
+ break;
252
+ case "EVM":
253
+ {
254
+ const { signature, error, address } = yield evmSignVerificationMessage();
255
+ if (error) {
256
+ setExternalWalletError([error]);
257
+ } else if (signature && address) {
258
+ verifyExternalWalletParams = {
259
+ externalWallet: __spreadValues({
260
+ type: "EVM",
261
+ address
262
+ }, defaultWalletInfo),
263
+ signedMessage: signature
264
+ };
265
+ }
266
+ }
267
+ break;
268
+ case "SOLANA":
269
+ {
270
+ const { signature, error, address } = yield solanaSignVerificationMessage();
271
+ if (error) {
272
+ setExternalWalletError([error]);
273
+ } else if (signature && address) {
274
+ verifyExternalWalletParams = {
275
+ externalWallet: __spreadValues({
276
+ type: "SOLANA",
277
+ address
278
+ }, defaultWalletInfo),
279
+ signedMessage: signature
280
+ };
281
+ }
282
+ }
283
+ break;
284
+ default:
285
+ break;
286
+ }
287
+ if (!(verifyExternalWalletParams == null ? void 0 : verifyExternalWalletParams.externalWallet) || !(verifyExternalWalletParams == null ? void 0 : verifyExternalWalletParams.signedMessage)) {
288
+ console.error("No signature or address found on the verifyWalletSignature response.");
289
+ setExternalWalletError(["Signature verification failed."]);
290
+ return;
291
+ }
292
+ try {
293
+ const d = yield verifyExternalWallet(verifyExternalWalletParams);
294
+ if (wallet2 && (externalWalletsWithFullAuth == null ? void 0 : externalWalletsWithFullAuth.includes((_a = wallet2.name) == null ? void 0 : _a.toUpperCase()))) {
295
+ yield onNewAuthState(d);
296
+ } else {
297
+ setStep(ModalStep.LOGIN_DONE);
298
+ }
299
+ } catch (e) {
300
+ console.error("Error verifying signature:", e);
301
+ setExternalWalletError(["Signature verification failed."]);
302
+ }
303
+ return verifyExternalWalletParams;
304
+ }), [cosmosSignVerificationMessage, evmSignVerificationMessage, solanaSignVerificationMessage, wallet]);
305
+ const signMessage = useCallback(
306
+ (_0) => __async(this, [_0], function* ({ message, externalWallet: _externalWallet }) {
307
+ var _a;
308
+ setExternalWalletError();
309
+ setIsSigningMessage(true);
310
+ let externalWallet = _externalWallet;
311
+ const walletType = (externalWallet == null ? void 0 : externalWallet.type) || ((_a = Object.values(para.externalWallets || {})[0]) == null ? void 0 : _a.type);
312
+ let response;
313
+ try {
314
+ switch (walletType) {
315
+ case "COSMOS":
316
+ {
317
+ const { address, signature, error, cosmosPublicKeyHex, cosmosSigner } = yield cosmosSignMessage({
318
+ message,
319
+ externalWallet
320
+ });
321
+ if (error) {
322
+ throw new Error(error);
323
+ } else if (signature && address) {
324
+ response = { address, signature, cosmosPublicKeyHex, cosmosSigner };
325
+ }
326
+ }
327
+ break;
328
+ case "EVM":
329
+ {
330
+ const { address, signature, error } = yield evmSignMessage({ message, externalWallet });
331
+ if (error) {
332
+ throw new Error(error);
333
+ } else if (signature && address) {
334
+ response = { address, signature };
335
+ }
336
+ }
337
+ break;
338
+ case "SOLANA":
339
+ {
340
+ const { signature, error, address } = yield solanaSignMessage({ message });
341
+ if (error) {
342
+ throw new Error(error);
343
+ } else if (signature && address) {
344
+ response = { address, signature };
345
+ }
346
+ }
347
+ break;
348
+ default:
349
+ break;
350
+ }
351
+ setIsSigningMessage(false);
352
+ return response;
353
+ } catch (error) {
354
+ setIsSigningMessage(false);
355
+ throw error;
356
+ }
357
+ }),
358
+ [cosmosSignMessage, evmSignMessage, solanaSignMessage]
359
+ );
360
+ const connectExternalWallet = useCallback(
361
+ (wallet2, isMobileConnect, isManualWalletConnect, isResetAfterManualWalletConnect) => __async(this, null, function* () {
362
+ if (isExternalWalletConnecting && isManualWalletConnect) {
363
+ yield evmDisconnect();
364
+ yield solanaDisconnect();
365
+ yield cosmosDisconnect();
366
+ setQrUri(void 0);
367
+ setIsExternalWalletConnecting(false);
368
+ }
369
+ if (isResetAfterManualWalletConnect || isManualWalletConnect || !isExternalWalletConnecting) {
370
+ setExternalWalletError();
371
+ setIsExternalWalletConnecting(true);
372
+ setIsUsingMobileConnector(isMobileConnect);
373
+ const { address, error, authState } = yield isMobileConnect ? wallet2.connectMobile(isManualWalletConnect, connectionOnly) : wallet2.connect(connectionOnly);
374
+ if (error) {
375
+ setExternalWalletError([error]);
376
+ setIsUsingMobileConnector();
377
+ if (isManualWalletConnect && error === "Connection request rejected") {
378
+ setExternalWalletError();
379
+ yield connectExternalWallet(wallet2, false, false, true);
380
+ yield updateQrUri();
381
+ return;
382
+ }
383
+ } else if (address) {
384
+ if (!!authState && ((externalWalletsWithFullAuth == null ? void 0 : externalWalletsWithFullAuth.includes(wallet2.name.toUpperCase())) || includeWalletVerification)) {
385
+ onNewAuthState(authState);
386
+ } else {
387
+ setStep(ModalStep.LOGIN_DONE);
388
+ }
389
+ }
390
+ setIsExternalWalletConnecting(false);
391
+ }
392
+ }),
393
+ [isExternalWalletConnecting, externalWalletsWithFullAuth, connectionOnly, includeWalletVerification]
394
+ );
395
+ const requestInfo = (providerId, type) => __async(this, null, function* () {
396
+ switch (type) {
397
+ case "EVM": {
398
+ const externalWallet = yield evmRequestInfo(providerId);
399
+ return externalWallet;
400
+ }
401
+ case "SOLANA": {
402
+ const externalWallet = yield solanaRequestInfo(providerId);
403
+ return externalWallet;
404
+ }
405
+ case "COSMOS": {
406
+ const externalWallet = yield cosmosRequestInfo(providerId);
407
+ return externalWallet;
408
+ }
409
+ }
410
+ });
411
+ const disconnectBase = (providerId) => __async(this, null, function* () {
412
+ const [isEvm, isSolana, _isCosmos] = [
413
+ EVM_WALLETS.includes(providerId),
414
+ SOLANA_WALLETS.includes(providerId),
415
+ COSMOS_WALLETS.includes(providerId)
416
+ ];
417
+ switch (true) {
418
+ case isEvm:
419
+ yield evmDisconnectBase(providerId);
420
+ break;
421
+ case isSolana:
422
+ yield solanaDisconnectBase(providerId);
423
+ break;
424
+ default: {
425
+ yield cosmosDisconnectBase();
426
+ break;
427
+ }
428
+ }
429
+ });
430
+ const disconnectExternalWallet = () => __async(this, null, function* () {
431
+ yield para.logout();
432
+ yield evmDisconnect();
433
+ yield cosmosDisconnect();
434
+ setSelectedExternalWalletId();
435
+ yield solanaDisconnect();
436
+ });
437
+ const walletDisplayHelpers = useWalletDisplayHelpers(wallet);
438
+ const username = useMemo(() => {
439
+ let username2;
440
+ const storedExternalWallet = Object.values(para.externalWallets || {})[0];
441
+ if (storedExternalWallet) {
442
+ const walletType = storedExternalWallet == null ? void 0 : storedExternalWallet.type;
443
+ switch (walletType) {
444
+ case "EVM": {
445
+ username2 = evmUsername ? evmUsername.startsWith("0x") ? truncateAddress(evmUsername, "EVM") : evmUsername : void 0;
446
+ break;
447
+ }
448
+ default: {
449
+ username2 = storedExternalWallet.address && storedExternalWallet.type ? truncateAddress(storedExternalWallet.address, storedExternalWallet.type) : void 0;
450
+ break;
451
+ }
452
+ }
453
+ }
454
+ return username2;
455
+ }, [evmUsername, wallet]);
456
+ const avatar = useMemo(() => {
457
+ var _a;
458
+ const walletType = (_a = Object.values(para.externalWallets || {})[0]) == null ? void 0 : _a.type;
459
+ if (walletType) {
460
+ switch (walletType) {
461
+ case "EVM": {
462
+ return evmAvatar;
463
+ }
464
+ default: {
465
+ return void 0;
466
+ }
467
+ }
468
+ }
469
+ }, [evmAvatar, wallet]);
470
+ const connectEmbeddedToExternalConnectors = useCallback(() => __async(this, null, function* () {
471
+ const evmWallet = para.findWallet(void 0, void 0, { type: ["EVM"] });
472
+ const cosmosWallet = para.findWallet(void 0, void 0, { type: ["COSMOS"] });
473
+ if (evmWallet) {
474
+ try {
475
+ const { error } = yield evmConnectParaEmbedded();
476
+ if (error) {
477
+ console.warn("Failed to connect Para EVM wallet to Wagmi:", error);
478
+ } else {
479
+ if (evmWallet) {
480
+ setSelectedWallet({ id: evmWallet.id, type: "EVM" });
481
+ }
482
+ }
483
+ } catch (err) {
484
+ console.warn("Error calling connectParaEvmWallet:", err);
485
+ }
486
+ }
487
+ if (cosmosWallet) {
488
+ try {
489
+ const { error } = yield cosmosConnectParaEmbedded();
490
+ if (error) {
491
+ console.warn("Failed to connect Para Cosmos wallet to Graz:", error);
492
+ } else {
493
+ if (cosmosWallet) {
494
+ setSelectedWallet({ id: cosmosWallet.id, type: "COSMOS" });
495
+ }
496
+ }
497
+ } catch (err) {
498
+ console.warn("Error calling connectParaCosmosWallet:", err);
499
+ }
500
+ }
501
+ }), [evmConnectParaEmbedded, cosmosConnectParaEmbedded]);
502
+ useEffect(() => {
503
+ onLoginRef.current = () => __async(this, null, function* () {
504
+ yield connectEmbeddedToExternalConnectors();
505
+ });
506
+ }, [connectEmbeddedToExternalConnectors]);
507
+ useEffect(() => {
508
+ function loginFarcasterMiniApp() {
509
+ return __async(this, null, function* () {
510
+ if (para.isReady && para.isFarcasterMiniApp) {
511
+ const isEvm = para.supportedWalletTypes.some(({ type }) => type === "EVM");
512
+ const isAwaitingEvmLogin = isEvm && (evmFarcasterStatus == null ? void 0 : evmFarcasterStatus.isConnected) && !Object.values(para.externalWallets || {}).some(
513
+ (w) => w.type === "EVM" && w.externalProviderId === "FARCASTER" && w.address === evmFarcasterStatus.address
514
+ );
515
+ const isAwaitingLogin = isAwaitingEvmLogin;
516
+ if (isAwaitingLogin) {
517
+ yield para.loginExternalWallet({
518
+ externalWallet: [
519
+ ...isAwaitingEvmLogin ? [
520
+ {
521
+ type: "EVM",
522
+ provider: "Farcaster",
523
+ providerId: "FARCASTER",
524
+ address: evmFarcasterStatus.address,
525
+ isConnectionOnly: true
526
+ }
527
+ ] : []
528
+ ]
529
+ });
530
+ }
531
+ }
532
+ });
533
+ }
534
+ loginFarcasterMiniApp();
535
+ }, [para.isReady, para.isFarcasterMiniApp, evmFarcasterStatus]);
536
+ return /* @__PURE__ */ jsx(
537
+ ExternalWalletContext.Provider,
538
+ {
539
+ value: useMemo(
540
+ () => ({
541
+ wallets,
542
+ chains,
543
+ chainId,
544
+ wallet,
545
+ qrUri,
546
+ walletDisplayHelpers,
547
+ chainIdSwitchingTo,
548
+ username,
549
+ avatar,
550
+ connectExternalWallet,
551
+ disconnectExternalWallet,
552
+ switchChain,
553
+ setChainIdSwitchingTo,
554
+ connectEmbeddedToExternalConnectors,
555
+ signMessage,
556
+ isSigningMessage,
557
+ verifyWalletSignature,
558
+ getWalletBalance,
559
+ requestInfo,
560
+ disconnectBase
561
+ }),
562
+ [
563
+ wallets,
564
+ chains,
565
+ chainId,
566
+ wallet,
567
+ qrUri,
568
+ walletDisplayHelpers,
569
+ chainIdSwitchingTo,
570
+ username,
571
+ avatar,
572
+ disconnectExternalWallet,
573
+ connectExternalWallet,
574
+ switchChain,
575
+ setChainIdSwitchingTo,
576
+ connectEmbeddedToExternalConnectors,
577
+ signMessage,
578
+ isSigningMessage,
579
+ verifyWalletSignature,
580
+ getWalletBalance,
581
+ requestInfo,
582
+ disconnectBase
583
+ ]
584
+ ),
585
+ children
586
+ }
587
+ );
588
+ }
589
+ const useExternalWallets = () => useContext(ExternalWalletContext);
590
+ export {
591
+ ExternalWalletContext,
592
+ ExternalWalletProvider,
593
+ defaultExternalWallet,
594
+ useExternalWallets,
595
+ useWalletDisplayHelpers
596
+ };