@openfort/react 0.3.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/assets/browsers.js +13 -0
- package/build/assets/browsers.js.map +1 -0
- package/build/assets/chains.js +139 -0
- package/build/assets/chains.js.map +1 -0
- package/build/assets/icons.js +41 -0
- package/build/assets/icons.js.map +1 -0
- package/build/assets/logos.js +173 -0
- package/build/assets/logos.js.map +1 -0
- package/build/assets/wave.js +6 -0
- package/build/assets/wave.js.map +1 -0
- package/build/components/BalanceButton/index.js +89 -0
- package/build/components/BalanceButton/index.js.map +1 -0
- package/build/components/Common/Alert/index.js +10 -0
- package/build/components/Common/Alert/index.js.map +1 -0
- package/build/components/Common/Alert/styles.js +55 -0
- package/build/components/Common/Alert/styles.js.map +1 -0
- package/build/components/Common/Avatar/index.d.ts +11 -3
- package/build/components/Common/Avatar/index.js +100 -0
- package/build/components/Common/Avatar/index.js.map +1 -0
- package/build/components/Common/Avatar/styles.js +59 -0
- package/build/components/Common/Avatar/styles.js.map +1 -0
- package/build/components/Common/BrowserIcon/index.js +28 -0
- package/build/components/Common/BrowserIcon/index.js.map +1 -0
- package/build/components/Common/BrowserIcon/styles.js +20 -0
- package/build/components/Common/BrowserIcon/styles.js.map +1 -0
- package/build/components/Common/Button/index.js +36 -0
- package/build/components/Common/Button/index.js.map +1 -0
- package/build/components/Common/Button/styles.js +302 -0
- package/build/components/Common/Button/styles.js.map +1 -0
- package/build/components/Common/Button/types.d.ts +1 -0
- package/build/components/Common/Chain/index.d.ts +8 -0
- package/build/components/Common/Chain/index.js +38 -0
- package/build/components/Common/Chain/index.js.map +1 -0
- package/build/components/Common/Chain/styles.js +94 -0
- package/build/components/Common/Chain/styles.js.map +1 -0
- package/build/components/Common/ConnectorList/index.js +58 -0
- package/build/components/Common/ConnectorList/index.js.map +1 -0
- package/build/components/Common/ConnectorList/styles.js +324 -0
- package/build/components/Common/ConnectorList/styles.js.map +1 -0
- package/build/components/Common/CopyToClipboard/CopyButton.js +12 -0
- package/build/components/Common/CopyToClipboard/CopyButton.js.map +1 -0
- package/build/components/Common/CopyToClipboard/CopyIcon.js +76 -0
- package/build/components/Common/CopyToClipboard/CopyIcon.js.map +1 -0
- package/build/components/Common/CopyToClipboard/CopyIconButton.js +38 -0
- package/build/components/Common/CopyToClipboard/CopyIconButton.js.map +1 -0
- package/build/components/Common/CopyToClipboard/CopyText.js +26 -0
- package/build/components/Common/CopyToClipboard/CopyText.js.map +1 -0
- package/build/components/Common/CustomQRCode/QRCode.js +60 -0
- package/build/components/Common/CustomQRCode/QRCode.js.map +1 -0
- package/build/components/Common/CustomQRCode/index.js +22 -0
- package/build/components/Common/CustomQRCode/index.js.map +1 -0
- package/build/components/Common/CustomQRCode/styles.js +155 -0
- package/build/components/Common/CustomQRCode/styles.js.map +1 -0
- package/build/components/Common/FitText/index.js +28 -0
- package/build/components/Common/FitText/index.js.map +1 -0
- package/build/components/Common/Input/index.js +17 -0
- package/build/components/Common/Input/index.js.map +1 -0
- package/build/components/Common/Input/styles.js +53 -0
- package/build/components/Common/Input/styles.js.map +1 -0
- package/build/components/Common/LargeButton/index.js +10 -0
- package/build/components/Common/LargeButton/index.js.map +1 -0
- package/build/components/Common/LargeButton/styles.js +69 -0
- package/build/components/Common/LargeButton/styles.js.map +1 -0
- package/build/components/Common/Loading/index.js +96 -0
- package/build/components/Common/Loading/index.js.map +1 -0
- package/build/components/Common/Modal/index.js +272 -0
- package/build/components/Common/Modal/index.js.map +1 -0
- package/build/components/Common/Modal/styles.d.ts +0 -1
- package/build/components/Common/Modal/styles.js +657 -0
- package/build/components/Common/Modal/styles.js.map +1 -0
- package/build/components/Common/OTPInput/index.js +108 -0
- package/build/components/Common/OTPInput/index.js.map +1 -0
- package/build/components/Common/OTPInput/styles.js +153 -0
- package/build/components/Common/OTPInput/styles.js.map +1 -0
- package/build/components/Common/Portal/index.js +31 -0
- package/build/components/Common/Portal/index.js.map +1 -0
- package/build/components/Common/PoweredByFooter/index.js +103 -0
- package/build/components/Common/PoweredByFooter/index.js.map +1 -0
- package/build/components/Common/Providers/ProviderHeader.d.ts +2 -2
- package/build/components/Common/Providers/ProviderHeader.js +55 -0
- package/build/components/Common/Providers/ProviderHeader.js.map +1 -0
- package/build/components/Common/Providers/ProviderIcon.d.ts +2 -2
- package/build/components/Common/Providers/ProviderIcon.js +41 -0
- package/build/components/Common/Providers/ProviderIcon.js.map +1 -0
- package/build/components/Common/Providers/getProviderName.d.ts +1 -1
- package/build/components/Common/Providers/getProviderName.js +15 -0
- package/build/components/Common/Providers/getProviderName.js.map +1 -0
- package/build/components/Common/ScrollArea/index.js +58 -0
- package/build/components/Common/ScrollArea/index.js.map +1 -0
- package/build/components/Common/ScrollArea/styles.js +168 -0
- package/build/components/Common/ScrollArea/styles.js.map +1 -0
- package/build/components/Common/Spinner/index.js +24 -0
- package/build/components/Common/Spinner/index.js.map +1 -0
- package/build/components/Common/Spinner/styles.js +22 -0
- package/build/components/Common/Spinner/styles.js.map +1 -0
- package/build/components/Common/SquircleSpinner/index.js +15 -0
- package/build/components/Common/SquircleSpinner/index.js.map +1 -0
- package/build/components/Common/SquircleSpinner/styles.js +66 -0
- package/build/components/Common/SquircleSpinner/styles.js.map +1 -0
- package/build/components/Common/ThemedButton/index.js +25 -0
- package/build/components/Common/ThemedButton/index.js.map +1 -0
- package/build/components/Common/ThemedButton/styles.js +152 -0
- package/build/components/Common/ThemedButton/styles.js.map +1 -0
- package/build/components/Common/TickList/index.js +11 -0
- package/build/components/Common/TickList/index.js.map +1 -0
- package/build/components/Common/TickList/styles.js +28 -0
- package/build/components/Common/TickList/styles.js.map +1 -0
- package/build/components/Common/Tooltip/index.js +91 -0
- package/build/components/Common/Tooltip/index.js.map +1 -0
- package/build/components/Common/Tooltip/styles.js +81 -0
- package/build/components/Common/Tooltip/styles.js.map +1 -0
- package/build/components/Common/WalletRecoveryIcon/index.d.ts +4 -0
- package/build/components/Common/WalletRecoveryIcon/index.js +19 -0
- package/build/components/Common/WalletRecoveryIcon/index.js.map +1 -0
- package/build/components/ConnectButton/index.d.ts +12 -4
- package/build/components/ConnectButton/index.js +266 -0
- package/build/components/ConnectButton/index.js.map +1 -0
- package/build/components/ConnectButton/styles.js +50 -0
- package/build/components/ConnectButton/styles.js.map +1 -0
- package/build/components/ConnectKitThemeProvider/ConnectKitThemeProvider.js +20 -0
- package/build/components/ConnectKitThemeProvider/ConnectKitThemeProvider.js.map +1 -0
- package/build/components/ConnectModal/ConnectUsing.d.ts +1 -1
- package/build/components/ConnectModal/ConnectUsing.js +68 -0
- package/build/components/ConnectModal/ConnectUsing.js.map +1 -0
- package/build/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.js +17 -0
- package/build/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.js.map +1 -0
- package/build/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.js +118 -0
- package/build/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.js.map +1 -0
- package/build/components/ConnectModal/ConnectWithInjector/index.d.ts +0 -2
- package/build/components/ConnectModal/ConnectWithInjector/index.js +295 -0
- package/build/components/ConnectModal/ConnectWithInjector/index.js.map +1 -0
- package/build/components/ConnectModal/ConnectWithInjector/styles.js +133 -0
- package/build/components/ConnectModal/ConnectWithInjector/styles.js.map +1 -0
- package/build/components/ConnectModal/ConnectWithMobile.js +99 -0
- package/build/components/ConnectModal/ConnectWithMobile.js.map +1 -0
- package/build/components/ConnectModal/ConnectWithOAuth.js +128 -0
- package/build/components/ConnectModal/ConnectWithOAuth.js.map +1 -0
- package/build/components/ConnectModal/ConnectWithQRCode.js +78 -0
- package/build/components/ConnectModal/ConnectWithQRCode.js.map +1 -0
- package/build/components/ConnectModal/index.js +230 -0
- package/build/components/ConnectModal/index.js.map +1 -0
- package/build/components/FloatingGraphic/index.js +13 -0
- package/build/components/FloatingGraphic/index.js.map +1 -0
- package/build/components/FloatingGraphic/styles.js +175 -0
- package/build/components/FloatingGraphic/styles.js.map +1 -0
- package/build/components/Openfort/OpenfortProvider.d.ts +10 -25
- package/build/components/Openfort/OpenfortProvider.js +351 -0
- package/build/components/Openfort/OpenfortProvider.js.map +1 -0
- package/build/components/Openfort/context.d.ts +48 -5
- package/build/components/Openfort/context.js +7 -0
- package/build/components/Openfort/context.js.map +1 -0
- package/build/components/Openfort/routeHelpers.d.ts +5 -0
- package/build/components/Openfort/routeHelpers.js +20 -0
- package/build/components/Openfort/routeHelpers.js.map +1 -0
- package/build/components/Openfort/types.d.ts +57 -23
- package/build/components/Openfort/types.js +119 -0
- package/build/components/Openfort/types.js.map +1 -0
- package/build/components/Openfort/useOpenfort.d.ts +2 -0
- package/build/components/Openfort/useOpenfort.js +12 -0
- package/build/components/Openfort/useOpenfort.js.map +1 -0
- package/build/components/PageContent/index.js +55 -0
- package/build/components/PageContent/index.js.map +1 -0
- package/build/components/PageContent/styles.js +11 -0
- package/build/components/PageContent/styles.js.map +1 -0
- package/build/components/Pages/About/graphics.js +193 -0
- package/build/components/Pages/About/graphics.js.map +1 -0
- package/build/components/Pages/About/index.js +142 -0
- package/build/components/Pages/About/index.js.map +1 -0
- package/build/components/Pages/About/styles.js +142 -0
- package/build/components/Pages/About/styles.js.map +1 -0
- package/build/components/Pages/AssetInventory/index.js +66 -0
- package/build/components/Pages/AssetInventory/index.js.map +1 -0
- package/build/components/Pages/Buy/coinbaseApi.js +106 -0
- package/build/components/Pages/Buy/coinbaseApi.js.map +1 -0
- package/build/components/Pages/Buy/index.js +88 -0
- package/build/components/Pages/Buy/index.js.map +1 -0
- package/build/components/Pages/Buy/onrampApi.js +57 -0
- package/build/components/Pages/Buy/onrampApi.js.map +1 -0
- package/build/components/Pages/Buy/providers.js +39 -0
- package/build/components/Pages/Buy/providers.js.map +1 -0
- package/build/components/Pages/Buy/stripeApi.js +74 -0
- package/build/components/Pages/Buy/stripeApi.js.map +1 -0
- package/build/components/Pages/Buy/styles.js +230 -0
- package/build/components/Pages/Buy/styles.js.map +1 -0
- package/build/components/Pages/Buy/utils.js +71 -0
- package/build/components/Pages/Buy/utils.js.map +1 -0
- package/build/components/Pages/BuyComplete/index.js +47 -0
- package/build/components/Pages/BuyComplete/index.js.map +1 -0
- package/build/components/Pages/BuyProcessing/index.js +231 -0
- package/build/components/Pages/BuyProcessing/index.js.map +1 -0
- package/build/components/Pages/BuyProviderSelect/index.js +55 -0
- package/build/components/Pages/BuyProviderSelect/index.js.map +1 -0
- package/build/components/Pages/BuyProviderSelect/styles.js +103 -0
- package/build/components/Pages/BuyProviderSelect/styles.js.map +1 -0
- package/build/components/Pages/BuySelectProvider/index.js +245 -0
- package/build/components/Pages/BuySelectProvider/index.js.map +1 -0
- package/build/components/Pages/Connected/ConnectedPageLayout.d.ts +22 -0
- package/build/components/Pages/Connected/ConnectedPageLayout.js +11 -0
- package/build/components/Pages/Connected/ConnectedPageLayout.js.map +1 -0
- package/build/components/Pages/Connected/EthereumConnected.d.ts +3 -0
- package/build/components/Pages/Connected/EthereumConnected.js +133 -0
- package/build/components/Pages/Connected/EthereumConnected.js.map +1 -0
- package/build/components/Pages/Connected/SolanaConnected.d.ts +3 -0
- package/build/components/Pages/Connected/SolanaConnected.js +96 -0
- package/build/components/Pages/Connected/SolanaConnected.js.map +1 -0
- package/build/components/Pages/Connected/index.d.ts +2 -2
- package/build/components/Pages/Connected/index.js +18 -0
- package/build/components/Pages/Connected/index.js.map +1 -0
- package/build/components/Pages/Connected/styles.js +122 -0
- package/build/components/Pages/Connected/styles.js.map +1 -0
- package/build/components/Pages/ConnectedSuccess/index.js +19 -0
- package/build/components/Pages/ConnectedSuccess/index.js.map +1 -0
- package/build/components/Pages/Connectors/index.js +73 -0
- package/build/components/Pages/Connectors/index.js.map +1 -0
- package/build/components/Pages/CreateGuestUserPage/index.js +28 -0
- package/build/components/Pages/CreateGuestUserPage/index.js.map +1 -0
- package/build/components/Pages/CreateWallet/SolanaCreateWallet.d.ts +6 -0
- package/build/components/Pages/CreateWallet/SolanaCreateWallet.js +241 -0
- package/build/components/Pages/CreateWallet/SolanaCreateWallet.js.map +1 -0
- package/build/components/Pages/CreateWallet/index.js +303 -0
- package/build/components/Pages/CreateWallet/index.js.map +1 -0
- package/build/components/Pages/CreateWallet/styles.js +17 -0
- package/build/components/Pages/CreateWallet/styles.js.map +1 -0
- package/build/components/Pages/DownloadApp/index.js +32 -0
- package/build/components/Pages/DownloadApp/index.js.map +1 -0
- package/build/components/Pages/EmailLogin/index.js +118 -0
- package/build/components/Pages/EmailLogin/index.js.map +1 -0
- package/build/components/Pages/EmailLogin/styles.js +24 -0
- package/build/components/Pages/EmailLogin/styles.js.map +1 -0
- package/build/components/Pages/EmailOTP/index.js +116 -0
- package/build/components/Pages/EmailOTP/index.js.map +1 -0
- package/build/components/Pages/EmailOTP/styles.js +38 -0
- package/build/components/Pages/EmailOTP/styles.js.map +1 -0
- package/build/components/Pages/EmailVerification/index.js +86 -0
- package/build/components/Pages/EmailVerification/index.js.map +1 -0
- package/build/components/Pages/ExportKey/index.js +44 -0
- package/build/components/Pages/ExportKey/index.js.map +1 -0
- package/build/components/Pages/ForgotPassword/index.js +129 -0
- package/build/components/Pages/ForgotPassword/index.js.map +1 -0
- package/build/components/Pages/LinkEmail/index.js +63 -0
- package/build/components/Pages/LinkEmail/index.js.map +1 -0
- package/build/components/Pages/LinkedProvider/index.d.ts +3 -0
- package/build/components/Pages/LinkedProvider/index.js +90 -0
- package/build/components/Pages/LinkedProvider/index.js.map +1 -0
- package/build/components/Pages/LinkedProviders/index.js +45 -0
- package/build/components/Pages/LinkedProviders/index.js.map +1 -0
- package/build/components/Pages/LinkedProviders/styles.js +51 -0
- package/build/components/Pages/LinkedProviders/styles.js.map +1 -0
- package/build/components/Pages/LoadWallets/index.js +91 -0
- package/build/components/Pages/LoadWallets/index.js.map +1 -0
- package/build/components/Pages/Loading/index.js +61 -0
- package/build/components/Pages/Loading/index.js.map +1 -0
- package/build/components/Pages/MobileConnectors/index.js +71 -0
- package/build/components/Pages/MobileConnectors/index.js.map +1 -0
- package/build/components/Pages/MobileConnectors/styles.js +65 -0
- package/build/components/Pages/MobileConnectors/styles.js.map +1 -0
- package/build/components/Pages/NoAssetsAvailable/index.js +45 -0
- package/build/components/Pages/NoAssetsAvailable/index.js.map +1 -0
- package/build/components/Pages/NoAssetsAvailable/styles.js +10 -0
- package/build/components/Pages/NoAssetsAvailable/styles.js.map +1 -0
- package/build/components/Pages/Onboarding/index.js +20 -0
- package/build/components/Pages/Onboarding/index.js.map +1 -0
- package/build/components/Pages/PhoneOTP/index.js +128 -0
- package/build/components/Pages/PhoneOTP/index.js.map +1 -0
- package/build/components/Pages/PhoneOTP/styles.js +38 -0
- package/build/components/Pages/PhoneOTP/styles.js.map +1 -0
- package/build/components/Pages/Profile/index.js +35 -0
- package/build/components/Pages/Profile/index.js.map +1 -0
- package/build/components/Pages/Providers/index.js +157 -0
- package/build/components/Pages/Providers/index.js.map +1 -0
- package/build/components/Pages/Providers/styles.js +156 -0
- package/build/components/Pages/Providers/styles.js.map +1 -0
- package/build/components/Pages/Receive/index.js +61 -0
- package/build/components/Pages/Receive/index.js.map +1 -0
- package/build/components/Pages/Receive/styles.d.ts +1 -0
- package/build/components/Pages/Receive/styles.js +52 -0
- package/build/components/Pages/Receive/styles.js.map +1 -0
- package/build/components/Pages/Recover/index.js +252 -0
- package/build/components/Pages/Recover/index.js.map +1 -0
- package/build/components/Pages/Recover/recoveryRegistry.d.ts +32 -0
- package/build/components/Pages/Recover/recoveryRegistry.js +61 -0
- package/build/components/Pages/Recover/recoveryRegistry.js.map +1 -0
- package/build/components/Pages/RemoveLinkedProvider/index.js +104 -0
- package/build/components/Pages/RemoveLinkedProvider/index.js.map +1 -0
- package/build/components/Pages/SelectToken/index.js +102 -0
- package/build/components/Pages/SelectToken/index.js.map +1 -0
- package/build/components/Pages/SelectToken/styles.js +78 -0
- package/build/components/Pages/SelectToken/styles.js.map +1 -0
- package/build/components/Pages/SelectWalletToRecover/index.d.ts +1 -2
- package/build/components/Pages/SelectWalletToRecover/index.js +70 -0
- package/build/components/Pages/SelectWalletToRecover/index.js.map +1 -0
- package/build/components/Pages/Send/EthereumSend.d.ts +1 -0
- package/build/components/Pages/Send/EthereumSend.js +88 -0
- package/build/components/Pages/Send/EthereumSend.js.map +1 -0
- package/build/components/Pages/Send/SolanaSend.d.ts +1 -0
- package/build/components/Pages/Send/SolanaSend.js +93 -0
- package/build/components/Pages/Send/SolanaSend.js.map +1 -0
- package/build/components/Pages/Send/index.d.ts +7 -1
- package/build/components/Pages/Send/index.js +18 -0
- package/build/components/Pages/Send/index.js.map +1 -0
- package/build/components/Pages/Send/styles.js +112 -0
- package/build/components/Pages/Send/styles.js.map +1 -0
- package/build/components/Pages/Send/utils.d.ts +1 -1
- package/build/components/Pages/Send/utils.js +63 -0
- package/build/components/Pages/Send/utils.js.map +1 -0
- package/build/components/Pages/SendConfirmation/EstimatedFees.js +66 -0
- package/build/components/Pages/SendConfirmation/EstimatedFees.js.map +1 -0
- package/build/components/Pages/SendConfirmation/index.js +331 -0
- package/build/components/Pages/SendConfirmation/index.js.map +1 -0
- package/build/components/Pages/SendConfirmation/styles.js +129 -0
- package/build/components/Pages/SendConfirmation/styles.js.map +1 -0
- package/build/components/Pages/SocialProviders/index.js +15 -0
- package/build/components/Pages/SocialProviders/index.js.map +1 -0
- package/build/components/Pages/SolanaSendConfirmation/index.d.ts +1 -0
- package/build/components/Pages/SolanaSendConfirmation/index.js +152 -0
- package/build/components/Pages/SolanaSendConfirmation/index.js.map +1 -0
- package/build/components/Pages/SolanaWallets/index.d.ts +1 -0
- package/build/components/Pages/SolanaWallets/index.js +36 -0
- package/build/components/Pages/SolanaWallets/index.js.map +1 -0
- package/build/components/PasswordStrength/PasswordStrengthIndicator.js +62 -0
- package/build/components/PasswordStrength/PasswordStrengthIndicator.js.map +1 -0
- package/build/components/PasswordStrength/password-utility.js +128 -0
- package/build/components/PasswordStrength/password-utility.js.map +1 -0
- package/build/constants/chainConfigs.js +316 -0
- package/build/constants/chainConfigs.js.map +1 -0
- package/build/constants/defaultTheme.js +6 -0
- package/build/constants/defaultTheme.js.map +1 -0
- package/build/constants/openfort.d.ts +4 -0
- package/build/constants/openfort.js +8 -0
- package/build/constants/openfort.js.map +1 -0
- package/build/core/ConnectionStrategy.d.ts +31 -0
- package/build/core/ConnectionStrategy.js +9 -0
- package/build/core/ConnectionStrategy.js.map +1 -0
- package/build/core/ConnectionStrategyContext.d.ts +16 -0
- package/build/core/ConnectionStrategyContext.js +22 -0
- package/build/core/ConnectionStrategyContext.js.map +1 -0
- package/build/core/errors.d.ts +1 -0
- package/build/core/strategies/EthereumBridgeStrategy.d.ts +11 -0
- package/build/core/strategies/EthereumBridgeStrategy.js +83 -0
- package/build/core/strategies/EthereumBridgeStrategy.js.map +1 -0
- package/build/core/strategies/EthereumEmbeddedStrategy.d.ts +8 -0
- package/build/core/strategies/EthereumEmbeddedStrategy.js +85 -0
- package/build/core/strategies/EthereumEmbeddedStrategy.js.map +1 -0
- package/build/core/strategies/SolanaEmbeddedStrategy.d.ts +9 -0
- package/build/core/strategies/SolanaEmbeddedStrategy.js +53 -0
- package/build/core/strategies/SolanaEmbeddedStrategy.js.map +1 -0
- package/build/core/strategyUtils.d.ts +6 -0
- package/build/core/strategyUtils.js +31 -0
- package/build/core/strategyUtils.js.map +1 -0
- package/build/ethereum/OpenfortEthereumBridgeContext.d.ts +87 -0
- package/build/ethereum/OpenfortEthereumBridgeContext.js +18 -0
- package/build/ethereum/OpenfortEthereumBridgeContext.js.map +1 -0
- package/build/ethereum/hooks/getEmbeddedWalletClient.d.ts +14 -0
- package/build/ethereum/hooks/getEmbeddedWalletClient.js +24 -0
- package/build/ethereum/hooks/getEmbeddedWalletClient.js.map +1 -0
- package/build/ethereum/hooks/useEthereumEmbeddedWallet.d.ts +17 -0
- package/build/ethereum/hooks/useEthereumEmbeddedWallet.js +425 -0
- package/build/ethereum/hooks/useEthereumEmbeddedWallet.js.map +1 -0
- package/build/ethereum/hooks/useEthereumWalletAssets.d.ts +29 -0
- package/build/ethereum/hooks/useEthereumWalletAssets.js +204 -0
- package/build/ethereum/hooks/useEthereumWalletAssets.js.map +1 -0
- package/build/ethereum/index.d.ts +11 -0
- package/build/ethereum/index.js +3 -0
- package/build/ethereum/index.js.map +1 -0
- package/build/ethereum/types.d.ts +140 -0
- package/build/hooks/openfort/auth/requestEmailVerification.js +21 -0
- package/build/hooks/openfort/auth/requestEmailVerification.js.map +1 -0
- package/build/hooks/openfort/auth/status.js +11 -0
- package/build/hooks/openfort/auth/status.js.map +1 -0
- package/build/hooks/openfort/auth/useAuthCallback.d.ts +2 -1
- package/build/hooks/openfort/auth/useAuthCallback.js +197 -0
- package/build/hooks/openfort/auth/useAuthCallback.js.map +1 -0
- package/build/hooks/openfort/auth/useConnectToWalletPostAuth.d.ts +2 -2
- package/build/hooks/openfort/auth/useConnectToWalletPostAuth.js +161 -0
- package/build/hooks/openfort/auth/useConnectToWalletPostAuth.js.map +1 -0
- package/build/hooks/openfort/auth/useEmailAuth.d.ts +4 -3
- package/build/hooks/openfort/auth/useEmailAuth.js +496 -0
- package/build/hooks/openfort/auth/useEmailAuth.js.map +1 -0
- package/build/hooks/openfort/auth/useEmailOtpAuth.d.ts +4 -3
- package/build/hooks/openfort/auth/useEmailOtpAuth.js +151 -0
- package/build/hooks/openfort/auth/useEmailOtpAuth.js.map +1 -0
- package/build/hooks/openfort/auth/useGuestAuth.d.ts +4 -3
- package/build/hooks/openfort/auth/useGuestAuth.js +142 -0
- package/build/hooks/openfort/auth/useGuestAuth.js.map +1 -0
- package/build/hooks/openfort/auth/useOAuth.d.ts +4 -3
- package/build/hooks/openfort/auth/useOAuth.js +217 -0
- package/build/hooks/openfort/auth/useOAuth.js.map +1 -0
- package/build/hooks/openfort/auth/usePhoneOtpAuth.d.ts +4 -3
- package/build/hooks/openfort/auth/usePhoneOtpAuth.js +174 -0
- package/build/hooks/openfort/auth/usePhoneOtpAuth.js.map +1 -0
- package/build/hooks/openfort/auth/useSignOut.d.ts +2 -1
- package/build/hooks/openfort/auth/useSignOut.js +104 -0
- package/build/hooks/openfort/auth/useSignOut.js.map +1 -0
- package/build/hooks/openfort/hookConsistency.js +17 -0
- package/build/hooks/openfort/hookConsistency.js.map +1 -0
- package/build/hooks/openfort/use7702Authorization.js +73 -0
- package/build/hooks/openfort/use7702Authorization.js.map +1 -0
- package/build/hooks/openfort/useGrantPermissions.d.ts +7 -76
- package/build/hooks/openfort/useGrantPermissions.js +221 -0
- package/build/hooks/openfort/useGrantPermissions.js.map +1 -0
- package/build/hooks/openfort/useProviders.js +75 -0
- package/build/hooks/openfort/useProviders.js.map +1 -0
- package/build/hooks/openfort/useRevokePermissions.d.ts +2 -1
- package/build/hooks/openfort/useRevokePermissions.js +126 -0
- package/build/hooks/openfort/useRevokePermissions.js.map +1 -0
- package/build/hooks/openfort/useUI.d.ts +4 -45
- package/build/hooks/openfort/useUI.js +122 -0
- package/build/hooks/openfort/useUI.js.map +1 -0
- package/build/hooks/openfort/useUser.d.ts +12 -35
- package/build/hooks/openfort/useUser.js +61 -0
- package/build/hooks/openfort/useUser.js.map +1 -0
- package/build/hooks/openfort/walletTypes.d.ts +32 -0
- package/build/hooks/openfort/walletTypes.js +53 -0
- package/build/hooks/openfort/walletTypes.js.map +1 -0
- package/build/hooks/useBalance.d.ts +50 -0
- package/build/hooks/useBalance.js +80 -0
- package/build/hooks/useBalance.js.map +1 -0
- package/build/hooks/useConnectLifecycle.d.ts +7 -0
- package/build/hooks/useConnectLifecycle.js +43 -0
- package/build/hooks/useConnectLifecycle.js.map +1 -0
- package/build/hooks/useConnectors.d.ts +3 -5
- package/build/hooks/useConnectors.js +26 -0
- package/build/hooks/useConnectors.js.map +1 -0
- package/build/hooks/useCopyToClipboard.js +29 -0
- package/build/hooks/useCopyToClipboard.js.map +1 -0
- package/build/hooks/useFitText.js +125 -0
- package/build/hooks/useFitText.js.map +1 -0
- package/build/hooks/useFocusTrap.d.ts +4 -1
- package/build/hooks/useFocusTrap.js +60 -0
- package/build/hooks/useFocusTrap.js.map +1 -0
- package/build/hooks/useGoogleFont.js +43 -0
- package/build/hooks/useGoogleFont.js.map +1 -0
- package/build/hooks/useIsMobile.js +17 -0
- package/build/hooks/useIsMobile.js.map +1 -0
- package/build/hooks/useIsMounted.js +10 -0
- package/build/hooks/useIsMounted.js.map +1 -0
- package/build/hooks/useLastConnector.js +39 -0
- package/build/hooks/useLastConnector.js.map +1 -0
- package/build/hooks/useLocales.d.ts +1 -1
- package/build/hooks/useLocales.js +68 -0
- package/build/hooks/useLocales.js.map +1 -0
- package/build/hooks/useLockBodyScroll.js +53 -0
- package/build/hooks/useLockBodyScroll.js.map +1 -0
- package/build/hooks/usePrevious.js +14 -0
- package/build/hooks/usePrevious.js.map +1 -0
- package/build/hooks/useResolvedIdentity.d.ts +70 -0
- package/build/hooks/useResolvedIdentity.js +90 -0
- package/build/hooks/useResolvedIdentity.js.map +1 -0
- package/build/hooks/useRouteProps.d.ts +10 -5
- package/build/hooks/useRouteProps.js +27 -0
- package/build/hooks/useRouteProps.js.map +1 -0
- package/build/hooks/useWalletConnectModal.js +59 -0
- package/build/hooks/useWalletConnectModal.js.map +1 -0
- package/build/hooks/useWindowSize.js +23 -0
- package/build/hooks/useWindowSize.js.map +1 -0
- package/build/index.d.ts +61 -16
- package/build/index.js +31 -0
- package/build/index.js.map +1 -0
- package/build/localizations/index.js +57 -0
- package/build/localizations/index.js.map +1 -0
- package/build/localizations/locales/ar-AE.js +100 -0
- package/build/localizations/locales/ar-AE.js.map +1 -0
- package/build/localizations/locales/ca-AD.js +98 -0
- package/build/localizations/locales/ca-AD.js.map +1 -0
- package/build/localizations/locales/ee-EE.js +98 -0
- package/build/localizations/locales/ee-EE.js.map +1 -0
- package/build/localizations/locales/en-US.js +115 -0
- package/build/localizations/locales/en-US.js.map +1 -0
- package/build/localizations/locales/es-ES.js +98 -0
- package/build/localizations/locales/es-ES.js.map +1 -0
- package/build/localizations/locales/fa-IR.js +98 -0
- package/build/localizations/locales/fa-IR.js.map +1 -0
- package/build/localizations/locales/fr-FR.js +98 -0
- package/build/localizations/locales/fr-FR.js.map +1 -0
- package/build/localizations/locales/ja-JP.js +98 -0
- package/build/localizations/locales/ja-JP.js.map +1 -0
- package/build/localizations/locales/pt-BR.js +98 -0
- package/build/localizations/locales/pt-BR.js.map +1 -0
- package/build/localizations/locales/ru-RU.js +98 -0
- package/build/localizations/locales/ru-RU.js.map +1 -0
- package/build/localizations/locales/tr-TR.js +98 -0
- package/build/localizations/locales/tr-TR.js.map +1 -0
- package/build/localizations/locales/vi-VN.js +98 -0
- package/build/localizations/locales/vi-VN.js.map +1 -0
- package/build/localizations/locales/zh-CN.js +98 -0
- package/build/localizations/locales/zh-CN.js.map +1 -0
- package/build/openfort/CoreOpenfortProvider.d.ts +9 -22
- package/build/openfort/CoreOpenfortProvider.js +389 -0
- package/build/openfort/CoreOpenfortProvider.js.map +1 -0
- package/build/{hooks/useConnectCallback.d.ts → openfort/connectCallbackTypes.d.ts} +2 -2
- package/build/openfort/context.d.ts +3 -2
- package/build/openfort/context.js +6 -0
- package/build/openfort/context.js.map +1 -0
- package/build/openfort/core/client.d.ts +2 -1
- package/build/openfort/core/client.js +23 -0
- package/build/openfort/core/client.js.map +1 -0
- package/build/openfort/hooks/useActiveAddressSync.d.ts +20 -0
- package/build/openfort/hooks/useActiveAddressSync.js +76 -0
- package/build/openfort/hooks/useActiveAddressSync.js.map +1 -0
- package/build/openfort/hooks/useAutoRecovery.d.ts +26 -0
- package/build/openfort/hooks/useAutoRecovery.js +102 -0
- package/build/openfort/hooks/useAutoRecovery.js.map +1 -0
- package/build/openfort/hooks/useEmbeddedStateMachine.d.ts +31 -0
- package/build/openfort/hooks/useEmbeddedStateMachine.js +77 -0
- package/build/openfort/hooks/useEmbeddedStateMachine.js.map +1 -0
- package/build/openfort/selectors.d.ts +9 -0
- package/build/openfort/selectors.js +15 -0
- package/build/openfort/selectors.js.map +1 -0
- package/build/openfort/store.d.ts +46 -0
- package/build/openfort/store.js +116 -0
- package/build/openfort/store.js.map +1 -0
- package/build/openfort/useOpenfort.d.ts +9 -3
- package/build/openfort/useOpenfort.js +15 -0
- package/build/openfort/useOpenfort.js.map +1 -0
- package/build/openfort/useOpenfortStore.d.ts +2 -0
- package/build/openfort/useOpenfortStore.js +13 -0
- package/build/openfort/useOpenfortStore.js.map +1 -0
- package/build/query/index.d.ts +2 -0
- package/build/query/queryKeys.d.ts +12 -0
- package/build/query/queryKeys.js +15 -0
- package/build/query/queryKeys.js.map +1 -0
- package/build/query/queryOptions.d.ts +23 -0
- package/build/query/queryOptions.js +31 -0
- package/build/query/queryOptions.js.map +1 -0
- package/build/shared/hooks/useAsyncData.d.ts +19 -0
- package/build/shared/hooks/useAsyncData.js +69 -0
- package/build/shared/hooks/useAsyncData.js.map +1 -0
- package/build/shared/hooks/useRecoveryOTP.d.ts +11 -0
- package/build/shared/hooks/useRecoveryOTP.js +64 -0
- package/build/shared/hooks/useRecoveryOTP.js.map +1 -0
- package/build/shared/types.d.ts +65 -0
- package/build/shared/utils/embeddedWalletStatusMapper.d.ts +15 -0
- package/build/shared/utils/embeddedWalletStatusMapper.js +22 -0
- package/build/shared/utils/embeddedWalletStatusMapper.js.map +1 -0
- package/build/shared/utils/explorer.d.ts +24 -0
- package/build/shared/utils/explorer.js +71 -0
- package/build/shared/utils/explorer.js.map +1 -0
- package/build/shared/utils/otpError.d.ts +8 -0
- package/build/shared/utils/otpError.js +17 -0
- package/build/shared/utils/otpError.js.map +1 -0
- package/build/shared/utils/recovery.d.ts +15 -0
- package/build/shared/utils/recovery.js +96 -0
- package/build/shared/utils/recovery.js.map +1 -0
- package/build/shared/utils/validation.d.ts +15 -0
- package/build/shared/utils/validation.js +27 -0
- package/build/shared/utils/validation.js.map +1 -0
- package/build/shared/utils/walletStatusProps.d.ts +18 -0
- package/build/shared/utils/walletStatusProps.js +45 -0
- package/build/shared/utils/walletStatusProps.js.map +1 -0
- package/build/siwe/create-siwe-message.d.ts +15 -1
- package/build/siwe/create-siwe-message.js +32 -0
- package/build/siwe/create-siwe-message.js.map +1 -0
- package/build/solana/SolanaContext.d.ts +43 -0
- package/build/solana/SolanaContext.js +87 -0
- package/build/solana/SolanaContext.js.map +1 -0
- package/build/solana/constants.d.ts +21 -0
- package/build/solana/constants.js +24 -0
- package/build/solana/constants.js.map +1 -0
- package/build/solana/hooks/recoveryResolver.d.ts +16 -0
- package/build/solana/hooks/recoveryResolver.js +39 -0
- package/build/solana/hooks/recoveryResolver.js.map +1 -0
- package/build/solana/hooks/useSolanaEmbeddedWallet.d.ts +17 -0
- package/build/solana/hooks/useSolanaEmbeddedWallet.js +389 -0
- package/build/solana/hooks/useSolanaEmbeddedWallet.js.map +1 -0
- package/build/solana/hooks/utils.d.ts +2 -0
- package/build/solana/hooks/utils.js +18 -0
- package/build/solana/hooks/utils.js.map +1 -0
- package/build/solana/index.d.ts +12 -0
- package/build/solana/index.js +2 -0
- package/build/solana/index.js.map +1 -0
- package/build/solana/operations.d.ts +22 -0
- package/build/solana/operations.js +40 -0
- package/build/solana/operations.js.map +1 -0
- package/build/solana/provider.d.ts +131 -0
- package/build/solana/provider.js +126 -0
- package/build/solana/provider.js.map +1 -0
- package/build/solana/types.d.ts +253 -0
- package/build/solana/utils/transfer.d.ts +9 -0
- package/build/solana/utils/transfer.js +20 -0
- package/build/solana/utils/transfer.js.map +1 -0
- package/build/styles/index.js +334 -0
- package/build/styles/index.js.map +1 -0
- package/build/styles/styled/index.js +14 -0
- package/build/styles/styled/index.js.map +1 -0
- package/build/styles/themes/base.js +147 -0
- package/build/styles/themes/base.js.map +1 -0
- package/build/styles/themes/index.js +13 -0
- package/build/styles/themes/index.js.map +1 -0
- package/build/styles/themes/midnight.js +78 -0
- package/build/styles/themes/midnight.js.map +1 -0
- package/build/styles/themes/minimal.js +100 -0
- package/build/styles/themes/minimal.js.map +1 -0
- package/build/styles/themes/nouns.js +83 -0
- package/build/styles/themes/nouns.js.map +1 -0
- package/build/styles/themes/retro.js +110 -0
- package/build/styles/themes/retro.js.map +1 -0
- package/build/styles/themes/rounded.js +110 -0
- package/build/styles/themes/rounded.js.map +1 -0
- package/build/styles/themes/soft.js +73 -0
- package/build/styles/themes/soft.js.map +1 -0
- package/build/styles/themes/web95.js +136 -0
- package/build/styles/themes/web95.js.map +1 -0
- package/build/types.d.ts +5 -6
- package/build/types.js +33 -0
- package/build/types.js.map +1 -0
- package/build/utils/banner.d.ts +1 -0
- package/build/utils/banner.js +14 -0
- package/build/utils/banner.js.map +1 -0
- package/build/utils/errorHandling.js +331 -0
- package/build/utils/errorHandling.js.map +1 -0
- package/build/utils/format.d.ts +18 -0
- package/build/utils/format.js +59 -0
- package/build/utils/format.js.map +1 -0
- package/build/utils/index.d.ts +2 -3
- package/build/utils/index.js +67 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/logger.js +13 -0
- package/build/utils/logger.js.map +1 -0
- package/build/utils/oauthErrorHandler.d.ts +1 -1
- package/build/utils/oauthErrorHandler.js +42 -0
- package/build/utils/oauthErrorHandler.js.map +1 -0
- package/build/utils/p3.js +14 -0
- package/build/utils/p3.js.map +1 -0
- package/build/utils/rpc.d.ts +34 -0
- package/build/utils/rpc.js +93 -0
- package/build/utils/rpc.js.map +1 -0
- package/build/utils/useOnUserReturn.js +25 -0
- package/build/utils/useOnUserReturn.js.map +1 -0
- package/build/utils/validation.js +7 -0
- package/build/utils/validation.js.map +1 -0
- package/build/utils/wallets.d.ts +6 -0
- package/build/utils/wallets.js +14 -0
- package/build/utils/wallets.js.map +1 -0
- package/build/version.d.ts +1 -1
- package/build/version.js +4 -0
- package/build/version.js.map +1 -0
- package/build/wagmi/OpenfortWagmiBridge.d.ts +3 -0
- package/build/wagmi/OpenfortWagmiBridge.js +166 -0
- package/build/wagmi/OpenfortWagmiBridge.js.map +1 -0
- package/build/wagmi/components/ChainSelect/index.js +140 -0
- package/build/wagmi/components/ChainSelect/index.js.map +1 -0
- package/build/wagmi/components/ChainSelectDropdown/index.js +144 -0
- package/build/wagmi/components/ChainSelectDropdown/index.js.map +1 -0
- package/build/wagmi/components/ChainSelectDropdown/styles.js +47 -0
- package/build/wagmi/components/ChainSelectDropdown/styles.js.map +1 -0
- package/build/wagmi/components/ChainSelectList/index.js +109 -0
- package/build/wagmi/components/ChainSelectList/index.js.map +1 -0
- package/build/wagmi/components/ChainSelectList/styles.js +225 -0
- package/build/wagmi/components/ChainSelectList/styles.js.map +1 -0
- package/build/wagmi/components/SwitchNetworks/index.js +22 -0
- package/build/wagmi/components/SwitchNetworks/index.js.map +1 -0
- package/build/wagmi/connectorFilter.d.ts +6 -0
- package/build/wagmi/connectorFilter.js +16 -0
- package/build/wagmi/connectorFilter.js.map +1 -0
- package/build/{defaultConfig.d.ts → wagmi/defaultConfig.d.ts} +1 -2
- package/build/wagmi/defaultConfig.js +27 -0
- package/build/wagmi/defaultConfig.js.map +1 -0
- package/build/wagmi/defaultConnectors.js +36 -0
- package/build/wagmi/defaultConnectors.js.map +1 -0
- package/build/wagmi/embeddedConnector.d.ts +4 -0
- package/build/wagmi/embeddedConnector.js +80 -0
- package/build/wagmi/embeddedConnector.js.map +1 -0
- package/build/wagmi/index.d.ts +10 -0
- package/build/wagmi/index.js +10 -0
- package/build/wagmi/index.js.map +1 -0
- package/build/wagmi/useChainIsSupported.d.ts +20 -0
- package/build/wagmi/useChainIsSupported.js +30 -0
- package/build/wagmi/useChainIsSupported.js.map +1 -0
- package/build/wagmi/useChains.d.ts +29 -0
- package/build/wagmi/useChains.js +38 -0
- package/build/wagmi/useChains.js.map +1 -0
- package/build/wagmi/useConnectWithSiwe.d.ts +22 -0
- package/build/wagmi/useConnectWithSiwe.js +115 -0
- package/build/wagmi/useConnectWithSiwe.js.map +1 -0
- package/build/wagmi/useEmbeddedWalletWagmiSync.d.ts +2 -0
- package/build/wagmi/useEmbeddedWalletWagmiSync.js +55 -0
- package/build/wagmi/useEmbeddedWalletWagmiSync.js.map +1 -0
- package/build/wagmi/useWalletAuth.d.ts +24 -0
- package/build/wagmi/useWalletAuth.js +180 -0
- package/build/wagmi/useWalletAuth.js.map +1 -0
- package/build/wallets/useExternalConnectors.d.ts +17 -0
- package/build/wallets/useExternalConnectors.js +98 -0
- package/build/wallets/useExternalConnectors.js.map +1 -0
- package/build/wallets/walletConfigs.js +344 -0
- package/build/wallets/walletConfigs.js.map +1 -0
- package/package.json +62 -11
- package/build/components/PageLayout/index.d.ts +0 -6
- package/build/components/contexts/web3/index.d.ts +0 -13
- package/build/constants/erc20.d.ts +0 -42
- package/build/hooks/openfort/auth/useWalletAuth.d.ts +0 -20
- package/build/hooks/openfort/useConnectWithSiwe.d.ts +0 -8
- package/build/hooks/openfort/useWalletAssets.d.ts +0 -16
- package/build/hooks/openfort/useWallets.d.ts +0 -134
- package/build/hooks/useChainIsSupported.d.ts +0 -24
- package/build/hooks/useChains.d.ts +0 -41
- package/build/hooks/useConnect.d.ts +0 -24
- package/build/hooks/useEnsFallbackConfig.d.ts +0 -1
- package/build/index.es.js +0 -19627
- package/build/index.es.js.map +0 -1
- package/build/openfortCustomTypes.d.ts +0 -10
- package/build/wallets/index.d.ts +0 -7
- package/build/wallets/useWagmiWallets.d.ts +0 -9
- /package/build/components/Pages/{SoicalProviders → SocialProviders}/index.d.ts +0 -0
- /package/build/{components/Common → wagmi/components}/ChainSelect/index.d.ts +0 -0
- /package/build/{components/Common → wagmi/components}/ChainSelectDropdown/index.d.ts +0 -0
- /package/build/{components/Common → wagmi/components}/ChainSelectDropdown/styles.d.ts +0 -0
- /package/build/{components/Common → wagmi/components}/ChainSelectList/index.d.ts +0 -0
- /package/build/{components/Common → wagmi/components}/ChainSelectList/styles.d.ts +0 -0
- /package/build/{components/Pages → wagmi/components}/SwitchNetworks/index.d.ts +0 -0
- /package/build/{defaultConnectors.d.ts → wagmi/defaultConnectors.d.ts} +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { EmbeddedState, RecoveryMethod } from '@openfort/openfort-js';
|
|
2
|
+
import { useRef, useEffect } from 'react';
|
|
3
|
+
import { buildRecoveryParams } from '../../shared/utils/recovery.js';
|
|
4
|
+
import { logger } from '../../utils/logger.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Auto-recover: when the SDK reaches EMBEDDED_SIGNER_NOT_CONFIGURED with a known
|
|
8
|
+
* active address, attempts to configure the signer via recover() → READY.
|
|
9
|
+
*
|
|
10
|
+
* Reads embeddedAccounts imperatively from the store (not as a dep) so that
|
|
11
|
+
* fetchEmbeddedAccounts updating the store mid-recovery does not re-trigger the
|
|
12
|
+
* effect and cancel the closure before recover() runs.
|
|
13
|
+
*
|
|
14
|
+
* PASSWORD recovery is skipped — it requires explicit user input.
|
|
15
|
+
*
|
|
16
|
+
* On failure: surfaces recoveryError in the store. Does NOT auto-create a new wallet
|
|
17
|
+
* because silently replacing a wallet can strand the user's funds.
|
|
18
|
+
*/
|
|
19
|
+
function useAutoRecovery({ storeEmbeddedState, storeActiveEmbeddedAddress, openfort, walletConfig, store, }) {
|
|
20
|
+
const autoRecoverInProgressRef = useRef(false);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (storeEmbeddedState !== EmbeddedState.EMBEDDED_SIGNER_NOT_CONFIGURED)
|
|
23
|
+
return;
|
|
24
|
+
if (!storeActiveEmbeddedAddress)
|
|
25
|
+
return;
|
|
26
|
+
if (!openfort || !walletConfig)
|
|
27
|
+
return;
|
|
28
|
+
if (autoRecoverInProgressRef.current)
|
|
29
|
+
return;
|
|
30
|
+
const accounts = store.getState().embeddedAccounts;
|
|
31
|
+
if (!(accounts === null || accounts === void 0 ? void 0 : accounts.length))
|
|
32
|
+
return;
|
|
33
|
+
const normalizedTarget = storeActiveEmbeddedAddress.toLowerCase();
|
|
34
|
+
const account = accounts.find((a) => a.address.toLowerCase() === normalizedTarget);
|
|
35
|
+
if (!account)
|
|
36
|
+
return;
|
|
37
|
+
// PASSWORD recovery requires explicit user input — skip auto-recover.
|
|
38
|
+
if (account.recoveryMethod === RecoveryMethod.PASSWORD)
|
|
39
|
+
return;
|
|
40
|
+
// Reset any stale error from a previous attempt before starting fresh.
|
|
41
|
+
store.getState().setRecoveryError(null);
|
|
42
|
+
autoRecoverInProgressRef.current = true;
|
|
43
|
+
let cancelled = false;
|
|
44
|
+
logger.log('[auto-recover] starting', {
|
|
45
|
+
address: account.address,
|
|
46
|
+
method: account.recoveryMethod,
|
|
47
|
+
});
|
|
48
|
+
const run = async () => {
|
|
49
|
+
var _a;
|
|
50
|
+
// Stage 1: build recovery params (may trigger a passkey prompt for PASSKEY method).
|
|
51
|
+
logger.log('[auto-recover] building recovery params...');
|
|
52
|
+
let recoveryParams;
|
|
53
|
+
try {
|
|
54
|
+
recoveryParams = await buildRecoveryParams({
|
|
55
|
+
recoveryMethod: account.recoveryMethod === RecoveryMethod.PASSKEY ? RecoveryMethod.PASSKEY : undefined,
|
|
56
|
+
passkeyId: account.recoveryMethod === RecoveryMethod.PASSKEY ? (_a = account.recoveryMethodDetails) === null || _a === void 0 ? void 0 : _a.passkeyId : undefined,
|
|
57
|
+
}, {
|
|
58
|
+
walletConfig,
|
|
59
|
+
getAccessToken: () => openfort.getAccessToken(),
|
|
60
|
+
getUserId: async () => { var _a; return (_a = (await openfort.user.get())) === null || _a === void 0 ? void 0 : _a.id; },
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
if (cancelled)
|
|
65
|
+
return;
|
|
66
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
67
|
+
logger.error('[auto-recover] failed to build recovery params', error);
|
|
68
|
+
store.getState().setRecoveryError(error);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (cancelled)
|
|
72
|
+
return;
|
|
73
|
+
// Stage 2: configure the embedded signer.
|
|
74
|
+
logger.log('[auto-recover] configuring signer...');
|
|
75
|
+
try {
|
|
76
|
+
await openfort.embeddedWallet.recover({ account: account.id, recoveryParams });
|
|
77
|
+
if (cancelled)
|
|
78
|
+
return;
|
|
79
|
+
logger.log('[auto-recover] succeeded — signer ready', { address: account.address });
|
|
80
|
+
// recoveryError clears automatically in the store subscriber when embeddedState → READY.
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
if (cancelled)
|
|
84
|
+
return;
|
|
85
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
86
|
+
logger.error('[auto-recover] recover() failed — signer could not be configured. ' +
|
|
87
|
+
'This typically happens on a new device or after local storage was cleared. ' +
|
|
88
|
+
'Read `recoveryError` from useOpenfortCore() and prompt the user to create a new wallet.', error);
|
|
89
|
+
store.getState().setRecoveryError(error);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
run().finally(() => {
|
|
93
|
+
autoRecoverInProgressRef.current = false;
|
|
94
|
+
});
|
|
95
|
+
return () => {
|
|
96
|
+
cancelled = true;
|
|
97
|
+
};
|
|
98
|
+
}, [storeEmbeddedState, storeActiveEmbeddedAddress, openfort, walletConfig, store]);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { useAutoRecovery };
|
|
102
|
+
//# sourceMappingURL=useAutoRecovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutoRecovery.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type EmbeddedAccount, type Openfort, type User } from '@openfort/openfort-js';
|
|
2
|
+
import { type Dispatch, type MutableRefObject, type SetStateAction } from 'react';
|
|
3
|
+
import type { StoreApi } from 'zustand/vanilla';
|
|
4
|
+
import type { OpenfortStore } from '../store';
|
|
5
|
+
type Params = {
|
|
6
|
+
openfort: Openfort;
|
|
7
|
+
storeEmbeddedState: OpenfortStore['embeddedState'];
|
|
8
|
+
storeUser: OpenfortStore['user'];
|
|
9
|
+
store: StoreApi<OpenfortStore>;
|
|
10
|
+
updateUserRef: MutableRefObject<(user?: User, logoutOnError?: boolean) => Promise<User | null>>;
|
|
11
|
+
fetchEmbeddedAccountsRef: MutableRefObject<(options?: {
|
|
12
|
+
silent?: boolean;
|
|
13
|
+
}) => Promise<EmbeddedAccount[]>>;
|
|
14
|
+
};
|
|
15
|
+
type Result = {
|
|
16
|
+
isConnectedWithEmbeddedSigner: boolean;
|
|
17
|
+
setIsConnectedWithEmbeddedSigner: Dispatch<SetStateAction<boolean>>;
|
|
18
|
+
connectingRef: MutableRefObject<boolean>;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Reacts to embedded state transitions and performs the appropriate side effects:
|
|
22
|
+
*
|
|
23
|
+
* - UNAUTHENTICATED → clears the store user
|
|
24
|
+
* - EMBEDDED_SIGNER_NOT_CONFIGURED → resets connect state, validates token, fetches accounts
|
|
25
|
+
* - READY → polls until user is confirmed in the store
|
|
26
|
+
*
|
|
27
|
+
* Returns `isConnectedWithEmbeddedSigner`, its setter, and `connectingRef` so that
|
|
28
|
+
* the bridge-connect effect and `logout` in CoreOpenfortProvider can share them.
|
|
29
|
+
*/
|
|
30
|
+
export declare function useEmbeddedStateMachine({ openfort, storeEmbeddedState, storeUser, store, updateUserRef, fetchEmbeddedAccountsRef, }: Params): Result;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { EmbeddedState } from '@openfort/openfort-js';
|
|
2
|
+
import { useState, useRef, useLayoutEffect, useEffect } from 'react';
|
|
3
|
+
import { logger } from '../../utils/logger.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Reacts to embedded state transitions and performs the appropriate side effects:
|
|
7
|
+
*
|
|
8
|
+
* - UNAUTHENTICATED → clears the store user
|
|
9
|
+
* - EMBEDDED_SIGNER_NOT_CONFIGURED → resets connect state, validates token, fetches accounts
|
|
10
|
+
* - READY → polls until user is confirmed in the store
|
|
11
|
+
*
|
|
12
|
+
* Returns `isConnectedWithEmbeddedSigner`, its setter, and `connectingRef` so that
|
|
13
|
+
* the bridge-connect effect and `logout` in CoreOpenfortProvider can share them.
|
|
14
|
+
*/
|
|
15
|
+
function useEmbeddedStateMachine({ openfort, storeEmbeddedState, storeUser, store, updateUserRef, fetchEmbeddedAccountsRef, }) {
|
|
16
|
+
const [isConnectedWithEmbeddedSigner, setIsConnectedWithEmbeddedSigner] = useState(false);
|
|
17
|
+
const connectingRef = useRef(false);
|
|
18
|
+
const userRef = useRef(storeUser);
|
|
19
|
+
useLayoutEffect(() => {
|
|
20
|
+
userRef.current = storeUser;
|
|
21
|
+
}, [storeUser]);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!openfort)
|
|
24
|
+
return;
|
|
25
|
+
let cancelled = false;
|
|
26
|
+
switch (storeEmbeddedState) {
|
|
27
|
+
case EmbeddedState.NONE:
|
|
28
|
+
case EmbeddedState.CREATING_ACCOUNT:
|
|
29
|
+
break;
|
|
30
|
+
case EmbeddedState.UNAUTHENTICATED:
|
|
31
|
+
store.getState().setUser(null);
|
|
32
|
+
break;
|
|
33
|
+
case EmbeddedState.EMBEDDED_SIGNER_NOT_CONFIGURED: {
|
|
34
|
+
connectingRef.current = false;
|
|
35
|
+
setIsConnectedWithEmbeddedSigner(false);
|
|
36
|
+
// Validate token and fetch accounts. Auto-recovery is handled by the
|
|
37
|
+
// dedicated useAutoRecovery hook (keyed on storeActiveEmbeddedAddress).
|
|
38
|
+
const doFetch = async () => {
|
|
39
|
+
updateUserRef.current(undefined, !userRef.current);
|
|
40
|
+
await fetchEmbeddedAccountsRef.current();
|
|
41
|
+
};
|
|
42
|
+
doFetch().catch((err) => {
|
|
43
|
+
if (!cancelled) {
|
|
44
|
+
logger.error('EMBEDDED_SIGNER_NOT_CONFIGURED flow failed', err);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case EmbeddedState.READY: {
|
|
50
|
+
const pollUserUntilReady = async () => {
|
|
51
|
+
for (let i = 0; i < 5; i++) {
|
|
52
|
+
if (cancelled)
|
|
53
|
+
return;
|
|
54
|
+
try {
|
|
55
|
+
const user = await updateUserRef.current(undefined, true);
|
|
56
|
+
if (user)
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
catch (_err) { }
|
|
60
|
+
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
pollUserUntilReady();
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
throw new Error(`Unknown embedded state: ${storeEmbeddedState}`);
|
|
68
|
+
}
|
|
69
|
+
return () => {
|
|
70
|
+
cancelled = true;
|
|
71
|
+
};
|
|
72
|
+
}, [storeEmbeddedState, openfort, store]);
|
|
73
|
+
return { isConnectedWithEmbeddedSigner, setIsConnectedWithEmbeddedSigner, connectingRef };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export { useEmbeddedStateMachine };
|
|
77
|
+
//# sourceMappingURL=useEmbeddedStateMachine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEmbeddedStateMachine.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EmbeddedState } from '@openfort/openfort-js';
|
|
2
|
+
import type { OpenfortStore } from './store';
|
|
3
|
+
export declare const selectUser: (s: OpenfortStore) => import("@openfort/openfort-js").User | null;
|
|
4
|
+
export declare const selectEmbeddedState: (s: OpenfortStore) => EmbeddedState;
|
|
5
|
+
export declare const selectIsLoading: (s: OpenfortStore) => boolean;
|
|
6
|
+
export declare const selectIsAuthenticated: (s: OpenfortStore) => boolean;
|
|
7
|
+
export declare const selectWalletStatus: (s: OpenfortStore) => import("../hooks/openfort/walletTypes").WalletFlowStatus;
|
|
8
|
+
export declare const selectActiveAddress: (s: OpenfortStore) => string | undefined;
|
|
9
|
+
export declare const selectChainType: (s: OpenfortStore) => import("@openfort/openfort-js").ChainTypeEnum;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EmbeddedState } from '@openfort/openfort-js';
|
|
2
|
+
|
|
3
|
+
const selectUser = (s) => s.user;
|
|
4
|
+
const selectEmbeddedState = (s) => s.embeddedState;
|
|
5
|
+
const selectIsLoading = (s) => s.isLoading;
|
|
6
|
+
const selectIsAuthenticated = (s) => {
|
|
7
|
+
const es = s.embeddedState;
|
|
8
|
+
return es === EmbeddedState.EMBEDDED_SIGNER_NOT_CONFIGURED || es === EmbeddedState.READY;
|
|
9
|
+
};
|
|
10
|
+
const selectWalletStatus = (s) => s.walletStatus;
|
|
11
|
+
const selectActiveAddress = (s) => s.activeEmbeddedAddress;
|
|
12
|
+
const selectChainType = (s) => s.chainType;
|
|
13
|
+
|
|
14
|
+
export { selectActiveAddress, selectChainType, selectEmbeddedState, selectIsAuthenticated, selectIsLoading, selectUser, selectWalletStatus };
|
|
15
|
+
//# sourceMappingURL=selectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { EmbeddedAccount, Openfort, User, UserAccount } from '@openfort/openfort-js';
|
|
2
|
+
import { type ChainTypeEnum, EmbeddedState } from '@openfort/openfort-js';
|
|
3
|
+
import { type StoreApi } from 'zustand/vanilla';
|
|
4
|
+
import type { WalletFlowStatus } from '../hooks/openfort/walletTypes';
|
|
5
|
+
export type OpenfortStoreState = {
|
|
6
|
+
user: User | null;
|
|
7
|
+
linkedAccounts: UserAccount[];
|
|
8
|
+
embeddedState: EmbeddedState;
|
|
9
|
+
embeddedAccounts: EmbeddedAccount[] | undefined;
|
|
10
|
+
isLoadingAccounts: boolean;
|
|
11
|
+
activeEmbeddedAddress: string | undefined;
|
|
12
|
+
walletStatus: WalletFlowStatus;
|
|
13
|
+
chainType: ChainTypeEnum;
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
needsRecovery: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Set when auto-recovery fails. Null on success or when cleared by a new auth session.
|
|
18
|
+
* Consumers can read this from `useOpenfortCore()` to show recovery error UI.
|
|
19
|
+
*/
|
|
20
|
+
recoveryError: Error | null;
|
|
21
|
+
};
|
|
22
|
+
export type OpenfortStoreActions = {
|
|
23
|
+
setUser: (user: User | null) => void;
|
|
24
|
+
setLinkedAccounts: (accounts: UserAccount[]) => void;
|
|
25
|
+
setEmbeddedState: (state: EmbeddedState) => void;
|
|
26
|
+
setEmbeddedAccounts: (accounts: EmbeddedAccount[] | undefined) => void;
|
|
27
|
+
setIsLoadingAccounts: (loading: boolean) => void;
|
|
28
|
+
setActiveEmbeddedAddress: (address: string | undefined) => void;
|
|
29
|
+
setWalletStatus: (status: WalletFlowStatus) => void;
|
|
30
|
+
setChainType: (chainType: ChainTypeEnum) => void;
|
|
31
|
+
setRecoveryError: (error: Error | null) => void;
|
|
32
|
+
/** Force-recompute isLoading from current state + bridge info. */
|
|
33
|
+
recomputeIsLoading: () => void;
|
|
34
|
+
logout: () => Promise<void>;
|
|
35
|
+
signUpGuest: () => Promise<void>;
|
|
36
|
+
updateUser: (user?: User) => Promise<User | null>;
|
|
37
|
+
updateEmbeddedAccounts: (options?: {
|
|
38
|
+
silent?: boolean;
|
|
39
|
+
}) => Promise<EmbeddedAccount[] | undefined>;
|
|
40
|
+
client: Openfort;
|
|
41
|
+
};
|
|
42
|
+
export type OpenfortStore = OpenfortStoreState & OpenfortStoreActions;
|
|
43
|
+
export declare function createOpenfortStore(initialChainType: ChainTypeEnum, client: Openfort, getBridgeInfo?: () => {
|
|
44
|
+
hasBridge: boolean;
|
|
45
|
+
address: string | undefined;
|
|
46
|
+
}): StoreApi<OpenfortStore>;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { EmbeddedState } from '@openfort/openfort-js';
|
|
2
|
+
import { createStore } from 'zustand/vanilla';
|
|
3
|
+
|
|
4
|
+
function computeIsLoading(embeddedState, user, hasBridge, bridgeAddress) {
|
|
5
|
+
switch (embeddedState) {
|
|
6
|
+
case EmbeddedState.NONE:
|
|
7
|
+
case EmbeddedState.CREATING_ACCOUNT:
|
|
8
|
+
return true;
|
|
9
|
+
case EmbeddedState.UNAUTHENTICATED:
|
|
10
|
+
return !!user;
|
|
11
|
+
case EmbeddedState.EMBEDDED_SIGNER_NOT_CONFIGURED:
|
|
12
|
+
return !user;
|
|
13
|
+
case EmbeddedState.READY:
|
|
14
|
+
if (!user)
|
|
15
|
+
return true;
|
|
16
|
+
if (hasBridge && !bridgeAddress)
|
|
17
|
+
return true;
|
|
18
|
+
return false;
|
|
19
|
+
default:
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function computeNeedsRecovery(embeddedState, embeddedAccounts) {
|
|
24
|
+
var _a;
|
|
25
|
+
return embeddedState === EmbeddedState.EMBEDDED_SIGNER_NOT_CONFIGURED && ((_a = embeddedAccounts === null || embeddedAccounts === void 0 ? void 0 : embeddedAccounts.length) !== null && _a !== void 0 ? _a : 0) > 0;
|
|
26
|
+
}
|
|
27
|
+
function createOpenfortStore(initialChainType, client, getBridgeInfo) {
|
|
28
|
+
const store = createStore((set) => ({
|
|
29
|
+
user: null,
|
|
30
|
+
linkedAccounts: [],
|
|
31
|
+
embeddedState: EmbeddedState.NONE,
|
|
32
|
+
embeddedAccounts: undefined,
|
|
33
|
+
isLoadingAccounts: false,
|
|
34
|
+
activeEmbeddedAddress: undefined,
|
|
35
|
+
walletStatus: { status: 'idle' },
|
|
36
|
+
chainType: initialChainType,
|
|
37
|
+
isLoading: true,
|
|
38
|
+
needsRecovery: false,
|
|
39
|
+
recoveryError: null,
|
|
40
|
+
setUser: (user) => {
|
|
41
|
+
set({ user });
|
|
42
|
+
},
|
|
43
|
+
setLinkedAccounts: (linkedAccounts) => {
|
|
44
|
+
set({ linkedAccounts });
|
|
45
|
+
},
|
|
46
|
+
setEmbeddedState: (embeddedState) => {
|
|
47
|
+
set({ embeddedState });
|
|
48
|
+
},
|
|
49
|
+
setEmbeddedAccounts: (embeddedAccounts) => {
|
|
50
|
+
set({ embeddedAccounts });
|
|
51
|
+
},
|
|
52
|
+
setIsLoadingAccounts: (isLoadingAccounts) => {
|
|
53
|
+
set({ isLoadingAccounts });
|
|
54
|
+
},
|
|
55
|
+
setActiveEmbeddedAddress: (activeEmbeddedAddress) => {
|
|
56
|
+
set({ activeEmbeddedAddress });
|
|
57
|
+
},
|
|
58
|
+
setWalletStatus: (walletStatus) => {
|
|
59
|
+
set({ walletStatus });
|
|
60
|
+
},
|
|
61
|
+
setRecoveryError: (recoveryError) => {
|
|
62
|
+
set({ recoveryError });
|
|
63
|
+
},
|
|
64
|
+
setChainType: (chainType) => {
|
|
65
|
+
set({ chainType });
|
|
66
|
+
},
|
|
67
|
+
recomputeIsLoading: () => {
|
|
68
|
+
var _a;
|
|
69
|
+
const state = store.getState();
|
|
70
|
+
const info = (_a = getBridgeInfo === null || getBridgeInfo === void 0 ? void 0 : getBridgeInfo()) !== null && _a !== void 0 ? _a : { hasBridge: false, address: undefined };
|
|
71
|
+
const loading = computeIsLoading(state.embeddedState, state.user, info.hasBridge, info.address);
|
|
72
|
+
if (loading !== state.isLoading) {
|
|
73
|
+
set({ isLoading: loading });
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
// Injected by CoreOpenfortProvider after mount (depend on bridge / external refs)
|
|
77
|
+
logout: async () => { },
|
|
78
|
+
signUpGuest: async () => { },
|
|
79
|
+
updateUser: async () => null,
|
|
80
|
+
updateEmbeddedAccounts: async () => undefined,
|
|
81
|
+
client,
|
|
82
|
+
}));
|
|
83
|
+
// Recompute derived state when dependencies change
|
|
84
|
+
store.subscribe((state, prev) => {
|
|
85
|
+
var _a;
|
|
86
|
+
const embeddedStateChanged = state.embeddedState !== prev.embeddedState;
|
|
87
|
+
const userChanged = state.user !== prev.user;
|
|
88
|
+
const embeddedAccountsChanged = state.embeddedAccounts !== prev.embeddedAccounts;
|
|
89
|
+
if (embeddedStateChanged || userChanged) {
|
|
90
|
+
const info = (_a = getBridgeInfo === null || getBridgeInfo === void 0 ? void 0 : getBridgeInfo()) !== null && _a !== void 0 ? _a : { hasBridge: false, address: undefined };
|
|
91
|
+
const isLoading = computeIsLoading(state.embeddedState, state.user, info.hasBridge, info.address);
|
|
92
|
+
if (isLoading !== state.isLoading) {
|
|
93
|
+
store.setState({ isLoading });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (embeddedStateChanged || embeddedAccountsChanged) {
|
|
97
|
+
const needsRecovery = computeNeedsRecovery(state.embeddedState, state.embeddedAccounts);
|
|
98
|
+
if (needsRecovery !== state.needsRecovery) {
|
|
99
|
+
store.setState({ needsRecovery });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Clear recoveryError when the session reaches a clean terminal state.
|
|
103
|
+
// Avoids stale errors from a previous recovery attempt being visible after
|
|
104
|
+
// the user has successfully recovered or logged out.
|
|
105
|
+
if (embeddedStateChanged && state.recoveryError !== null) {
|
|
106
|
+
const isClearState = state.embeddedState === EmbeddedState.READY || state.embeddedState === EmbeddedState.UNAUTHENTICATED;
|
|
107
|
+
if (isClearState) {
|
|
108
|
+
store.setState({ recoveryError: null });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return store;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export { createOpenfortStore };
|
|
116
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { OpenfortCoreContextValue } from './CoreOpenfortProvider';
|
|
2
|
+
/**
|
|
3
|
+
* Access Openfort core context: user, embedded accounts, active chain, auth, and wallet operations.
|
|
4
|
+
* Must be used inside CoreOpenfortProvider (or OpenfortProvider which wraps it).
|
|
5
|
+
*
|
|
6
|
+
* @returns Core context with user, embeddedAccounts, activeChainId, logout, etc.
|
|
7
|
+
* @throws Error if used outside CoreOpenfortProvider
|
|
8
|
+
*/
|
|
9
|
+
export declare const useOpenfortCore: () => OpenfortCoreContextValue;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useOpenfortStore } from './useOpenfortStore.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Access Openfort core context: user, embedded accounts, active chain, auth, and wallet operations.
|
|
5
|
+
* Must be used inside CoreOpenfortProvider (or OpenfortProvider which wraps it).
|
|
6
|
+
*
|
|
7
|
+
* @returns Core context with user, embeddedAccounts, activeChainId, logout, etc.
|
|
8
|
+
* @throws Error if used outside CoreOpenfortProvider
|
|
9
|
+
*/
|
|
10
|
+
const useOpenfortCore = () => {
|
|
11
|
+
return useOpenfortStore((s) => s);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { useOpenfortCore };
|
|
15
|
+
//# sourceMappingURL=useOpenfort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOpenfort.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { useStore } from 'zustand';
|
|
3
|
+
import { StoreContext } from './context.js';
|
|
4
|
+
|
|
5
|
+
function useOpenfortStore(selector) {
|
|
6
|
+
const store = useContext(StoreContext);
|
|
7
|
+
if (!store)
|
|
8
|
+
throw Error('useOpenfortStore must be inside CoreOpenfortProvider.');
|
|
9
|
+
return useStore(store, selector);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { useOpenfortStore };
|
|
13
|
+
//# sourceMappingURL=useOpenfortStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOpenfortStore.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized query key factory for all TanStack Query operations.
|
|
3
|
+
*
|
|
4
|
+
* Using a factory ensures consistent key structures across the SDK,
|
|
5
|
+
* making cache invalidation predictable and type-safe.
|
|
6
|
+
*/
|
|
7
|
+
export declare const openfortKeys: {
|
|
8
|
+
all: readonly ["openfort"];
|
|
9
|
+
user: () => readonly ["openfort", "user"];
|
|
10
|
+
embeddedAccounts: () => readonly ["openfort", "embeddedAccounts"];
|
|
11
|
+
walletAssets: (chainId: number, customAssets: readonly string[], address: string | undefined) => readonly ["openfort", "walletAssets", number, readonly string[], string | undefined];
|
|
12
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized query key factory for all TanStack Query operations.
|
|
3
|
+
*
|
|
4
|
+
* Using a factory ensures consistent key structures across the SDK,
|
|
5
|
+
* making cache invalidation predictable and type-safe.
|
|
6
|
+
*/
|
|
7
|
+
const openfortKeys = {
|
|
8
|
+
all: ['openfort'],
|
|
9
|
+
user: () => [...openfortKeys.all, 'user'],
|
|
10
|
+
embeddedAccounts: () => [...openfortKeys.all, 'embeddedAccounts'],
|
|
11
|
+
walletAssets: (chainId, customAssets, address) => [...openfortKeys.all, 'walletAssets', chainId, customAssets, address],
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { openfortKeys };
|
|
15
|
+
//# sourceMappingURL=queryKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryKeys.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Openfort } from '@openfort/openfort-js';
|
|
2
|
+
/**
|
|
3
|
+
* Query options factory for fetching the current user.
|
|
4
|
+
*
|
|
5
|
+
* Returns vanilla query options (framework-agnostic) that can be used with
|
|
6
|
+
* `useQuery`, `queryClient.ensureQueryData`, or `queryClient.fetchQuery`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getUserQueryOptions(client: Openfort): {
|
|
9
|
+
queryKey: readonly ["openfort", "user"];
|
|
10
|
+
queryFn: () => Promise<User$2>;
|
|
11
|
+
staleTime: number;
|
|
12
|
+
retry: false;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Query options factory for fetching embedded wallet accounts.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getEmbeddedAccountsQueryOptions(client: Openfort): {
|
|
18
|
+
queryKey: readonly ["openfort", "embeddedAccounts"];
|
|
19
|
+
queryFn: () => Promise<import("@openfort/openfort-js").EmbeddedAccount[]>;
|
|
20
|
+
refetchOnMount: false;
|
|
21
|
+
refetchOnWindowFocus: false;
|
|
22
|
+
retry: false;
|
|
23
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { openfortKeys } from './queryKeys.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Query options factory for fetching the current user.
|
|
5
|
+
*
|
|
6
|
+
* Returns vanilla query options (framework-agnostic) that can be used with
|
|
7
|
+
* `useQuery`, `queryClient.ensureQueryData`, or `queryClient.fetchQuery`.
|
|
8
|
+
*/
|
|
9
|
+
function getUserQueryOptions(client) {
|
|
10
|
+
return {
|
|
11
|
+
queryKey: openfortKeys.user(),
|
|
12
|
+
queryFn: () => client.user.get(),
|
|
13
|
+
staleTime: 30000,
|
|
14
|
+
retry: false,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Query options factory for fetching embedded wallet accounts.
|
|
19
|
+
*/
|
|
20
|
+
function getEmbeddedAccountsQueryOptions(client) {
|
|
21
|
+
return {
|
|
22
|
+
queryKey: openfortKeys.embeddedAccounts(),
|
|
23
|
+
queryFn: () => client.embeddedWallet.list({ limit: 100 }),
|
|
24
|
+
refetchOnMount: false,
|
|
25
|
+
refetchOnWindowFocus: false,
|
|
26
|
+
retry: false,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { getEmbeddedAccountsQueryOptions, getUserQueryOptions };
|
|
31
|
+
//# sourceMappingURL=queryOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryOptions.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type UseAsyncDataOptions<T> = {
|
|
2
|
+
queryFn: () => Promise<T>;
|
|
3
|
+
queryKey: readonly unknown[];
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
refetchInterval?: number;
|
|
6
|
+
staleTime?: number;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Simple fetch-with-cache hook. Replaces useQuery for internal SDK use.
|
|
10
|
+
* No external dependency on TanStack Query.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useAsyncData<T>({ queryFn, queryKey, enabled, refetchInterval, staleTime, }: UseAsyncDataOptions<T>): {
|
|
13
|
+
data: T | undefined;
|
|
14
|
+
error: Error | null;
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
isPending: boolean;
|
|
17
|
+
refetch: () => Promise<T | undefined>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Simple fetch-with-cache hook. Replaces useQuery for internal SDK use.
|
|
5
|
+
* No external dependency on TanStack Query.
|
|
6
|
+
*/
|
|
7
|
+
function useAsyncData({ queryFn, queryKey, enabled = true, refetchInterval, staleTime = 0, }) {
|
|
8
|
+
const [data, setData] = useState(undefined);
|
|
9
|
+
const [error, setError] = useState(null);
|
|
10
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
11
|
+
const lastFetchRef = useRef(0);
|
|
12
|
+
const intervalRef = useRef(null);
|
|
13
|
+
const queryFnRef = useRef(queryFn);
|
|
14
|
+
queryFnRef.current = queryFn;
|
|
15
|
+
// Serialize queryKey to a stable string so the effect only re-runs when values change,
|
|
16
|
+
// not when array/object references change.
|
|
17
|
+
const queryKeyStr = JSON.stringify(queryKey);
|
|
18
|
+
const fetchData = useCallback(async () => {
|
|
19
|
+
if (!enabled)
|
|
20
|
+
return undefined;
|
|
21
|
+
setIsLoading(true);
|
|
22
|
+
setError(null);
|
|
23
|
+
try {
|
|
24
|
+
const result = await queryFnRef.current();
|
|
25
|
+
setData(result);
|
|
26
|
+
lastFetchRef.current = Date.now();
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
const e = err instanceof Error ? err : new Error(String(err));
|
|
31
|
+
setError(e);
|
|
32
|
+
throw e;
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
setIsLoading(false);
|
|
36
|
+
}
|
|
37
|
+
}, [enabled]);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (!enabled)
|
|
40
|
+
return;
|
|
41
|
+
fetchData().catch(() => { });
|
|
42
|
+
}, [enabled, queryKeyStr]);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (!enabled || !refetchInterval || refetchInterval <= 0)
|
|
45
|
+
return;
|
|
46
|
+
intervalRef.current = setInterval(() => {
|
|
47
|
+
const elapsed = Date.now() - lastFetchRef.current;
|
|
48
|
+
if (staleTime > 0 && elapsed < staleTime)
|
|
49
|
+
return;
|
|
50
|
+
fetchData().catch(() => { });
|
|
51
|
+
}, refetchInterval);
|
|
52
|
+
return () => {
|
|
53
|
+
if (intervalRef.current) {
|
|
54
|
+
clearInterval(intervalRef.current);
|
|
55
|
+
intervalRef.current = null;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}, [enabled, refetchInterval, staleTime, fetchData]);
|
|
59
|
+
return {
|
|
60
|
+
data,
|
|
61
|
+
error,
|
|
62
|
+
isLoading,
|
|
63
|
+
isPending: isLoading,
|
|
64
|
+
refetch: fetchData,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { useAsyncData };
|
|
69
|
+
//# sourceMappingURL=useAsyncData.js.map
|