@dynamic-labs-sdk/react-hooks 1.31.0 → 1.31.2

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/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
- import { a as useDynamicClient, c as version, i as useBaseMutation, n as useBaseQuery, o as DynamicProvider, r as QUERY_KEY_PREFIX, s as name, t as useBaseState } from "./useBaseState-A-g9wCVT.esm.js";
1
+ import { a as useDynamicClient, c as version, i as useBaseMutation, n as useBaseQuery, o as DynamicProvider, r as QUERY_KEY_PREFIX, s as name, t as useBaseState } from "./useBaseState-CkWod9xl.esm.js";
2
2
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
3
- import { acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, assertWalletAccountSigningAvailability, attachFlowSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, broadcastFlow, cancelFlow, checkStepUpAuth, claimYieldRewards, completeDeviceRegistration, completeSocialRedirect, confirmTransaction, connectAndVerifyWithWalletProvider, connectWithWalletProvider, createCoinbaseExchangeTransfer, createCoinbaseOnrampOrder, createCryptoDotComPayment, createKrakenExchangeTransfer, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, depositToYieldVault, detectSocialRedirectUrl, executeSwapTransaction, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalanceForAddress, getCoinbaseAccounts, getCoinbaseBuyUrl, getConnectedAddresses, getFlow, getFlowQuote, getGoogleDriveBackupReadiness, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMoonPayCurrencies, getMoonPayUrl, getMultichainTokenBalances, getNativeBalance, getPasskeys, getRegisteredDevices, getSwapQuote, getSwapStatus, getTokenBalances, getTransactionHistory, getUserSocialAccounts, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletOptionsCatalogue, getWalletProviderDataByKey, getYieldDetails, getYieldPosition, getYieldRewards, isDeviceRegistrationRequired, isMfaRequiredForAction, isPendingRecoveryCodesAcknowledgment, isUserMissingMfaAuth, isUserOnboardingComplete, listYieldVaults, logout, mergeUserAccounts, onEvent, onWalletProviderEvent, onceEvent, prepareFlowSigning, proveWalletAccountOwnership, refreshAuth, registerPasskey, registerTotpMfaDevice, removeWalletAccount, requestExternalAuthElevatedToken, revokeAllRegisteredDevices, revokeRegisteredDevice, screenTransaction, sendEmailOTP, sendSmsOTP, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signInWithSocialPopUp, signInWithSocialRedirect, signMessage, submitFlowTransaction, switchActiveNetwork, transferAmount, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, withdrawFromYieldVault } from "@dynamic-labs-sdk/client";
4
- import { useQueryClient } from "@tanstack/react-query";
3
+ import { acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, assertWalletAccountSigningAvailability, attachFlowSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, broadcastFlow, cancelFlow, checkStepUpAuth, claimYieldRewards, completeDeviceRegistration, completeSocialRedirect, confirmTransaction, connectAndVerifyWithWalletProvider, connectWithWalletProvider, createCoinbaseExchangeTransfer, createCoinbaseOnrampOrder, createCryptoDotComPayment, createKrakenExchangeTransfer, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, depositToYieldVault, detectSocialRedirectUrl, executeSwapTransaction, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalanceForAddress, getCoinbaseAccounts, getCoinbaseBuyUrl, getConnectedAddresses, getFlow, getFlowQuote, getGoogleDriveBackupReadiness, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMoonPayCurrencies, getMoonPayUrl, getMultichainTokenBalances, getNativeBalance, getPasskeys, getRegisteredDevices, getSwapQuote, getSwapStatus, getTokenBalances, getTransactionHistory, getUserSocialAccounts, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletOptionsCatalogue, getWalletProviderDataByKey, getYieldDetails, getYieldPosition, getYieldRewards, isDeviceRegistrationRequired, isMfaRequiredForAction, isPendingRecoveryCodesAcknowledgment, isUserMissingMfaAuth, isUserOnboardingComplete, listYieldVaults, logout, mergeUserAccounts, onEvent, onWalletProviderEvent, onceEvent, prepareFlowSigning, proveWalletAccountOwnership, redirectToInAppBrowser, refreshAuth, registerPasskey, registerTotpMfaDevice, removeWalletAccount, requestExternalAuthElevatedToken, revokeAllRegisteredDevices, revokeRegisteredDevice, screenTransaction, sendEmailOTP, sendSmsOTP, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signInWithSocialPopUp, signInWithSocialRedirect, signMessage, submitFlowTransaction, switchActiveNetwork, transferAmount, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, withdrawFromYieldVault } from "@dynamic-labs-sdk/client";
4
+ import { hashKey, useQueryClient } from "@tanstack/react-query";
5
5
  import { useEffect, useRef } from "react";
6
6
  import { getCore } from "@dynamic-labs-sdk/client/core";
7
7
  import { addBusinessAccountMember, addBusinessAccountSigner, addWalletToBusinessAccount, backupWaasKeySharesToGoogleDrive, createBusinessAccount, createPolicy, createWaasOfflineRecoveryShares, createWaasWalletAccounts, createWalletForBusinessAccount, delegateWaasKeyShares, exportWaasClientKeyshares, exportWaasPrivateKey, getAccountPolicyLayer, getBusinessAccount, getPolicy, getSignerPolicyLayer, getWalletPolicyLayer, getWalletRecoveryState, importWaasPrivateKey, listBusinessAccounts, migrateFromFireblocks, refreshWaasWalletAccountShares, removeAccountPolicyRule, removeBusinessAccountMember, removeBusinessAccountSigner, removeBusinessAccountWallet, removePolicyRules, removeSignerPolicyRule, removeWalletPolicyRule, revokeWaasDelegation, setWaasWalletAccountPassword, signSerializedTransaction, transferBusinessAccountOwnership, unlockWallet, updateBusinessAccount, updateBusinessAccountMemberRole, updateWaasPassword, upsertAccountPolicyRule, upsertSignerPolicyRule, upsertWalletPolicyRule } from "@dynamic-labs-sdk/client/waas";
@@ -1487,6 +1487,34 @@ const useProveWalletAccountOwnership = ({ mutateParams } = {}) => useBaseMutatio
1487
1487
  mutationFn: ({ client, variables }) => proveWalletAccountOwnership(variables, client)
1488
1488
  });
1489
1489
 
1490
+ //#endregion
1491
+ //#region src/hooks/wrappers/functions/useRedirectToInAppBrowser/useRedirectToInAppBrowser.ts
1492
+ /**
1493
+ * Leaves your app for a wallet's in-app browser, which reloads your app
1494
+ * inside it.
1495
+ *
1496
+ * Wraps `redirectToInAppBrowser` from `@dynamic-labs-sdk/client`. Call
1497
+ * `mutate({ appUrl, walletKey })` with the page the wallet's browser should
1498
+ * reload; the wallet's in-app-browser entry point is read from the wallet
1499
+ * options catalogue.
1500
+ *
1501
+ * @example
1502
+ * ```tsx
1503
+ * const { mutate: redirect } = useRedirectToInAppBrowser();
1504
+ *
1505
+ * redirect({ appUrl: window.location.href, walletKey: 'coinbase' });
1506
+ * ```
1507
+ *
1508
+ * @returns The react-query mutation result for the redirect.
1509
+ *
1510
+ * @see UseRedirectToInAppBrowserParams
1511
+ * @see useGetWalletOptionsCatalogue
1512
+ */
1513
+ const useRedirectToInAppBrowser = ({ mutateParams } = {}) => useBaseMutation({
1514
+ mutateParams,
1515
+ mutationFn: ({ client, variables }) => redirectToInAppBrowser(variables, client)
1516
+ });
1517
+
1490
1518
  //#endregion
1491
1519
  //#region src/hooks/wrappers/functions/useRefreshAuth/useRefreshAuth.ts
1492
1520
  /**
@@ -2538,21 +2566,62 @@ const CATALOGUE_STALE_TIME_MS = 36e5;
2538
2566
  * `walletProviderUnregistered` (on removal). Wiring both keeps the catalogue in
2539
2567
  * sync without consumers pairing the hook with a manual listener.
2540
2568
  *
2569
+ * Also refetches on `networkProviderBuilderRegistered`: the catalogue is scoped
2570
+ * to the chains the client has an extension for, and an extension added after
2571
+ * the first fetch emits no wallet provider event of its own.
2572
+ *
2573
+ * With `includeMobileOptions: true` the installed wallets are returned as
2574
+ * react-query placeholder data while the wallet book loads, so `data` is
2575
+ * populated before the full catalogue resolves and `status` is `'success'`
2576
+ * from the start — `isPlaceholderData` is what tells a partial catalogue from
2577
+ * the complete one.
2578
+ *
2541
2579
  * @example
2542
2580
  * ```tsx
2543
2581
  * const { data: catalogue, isLoading } = useGetWalletOptionsCatalogue();
2544
2582
  * ```
2545
2583
  */
2546
- const useGetWalletOptionsCatalogue = ({ queryParams, ...args } = {}) => useBaseQuery({
2547
- middlewares: [invalidateOnEvent({ event: "walletProviderChanged" }), invalidateOnEvent({ event: "walletProviderUnregistered" })],
2548
- queryFn: (client) => getWalletOptionsCatalogue(args, client),
2549
- queryKey: ["useGetWalletOptionsCatalogue", args],
2550
- queryParams: {
2551
- retry: false,
2552
- staleTime: CATALOGUE_STALE_TIME_MS,
2553
- ...queryParams
2554
- }
2555
- });
2584
+ const useGetWalletOptionsCatalogue = ({ queryParams, returnInstalledOptionsWhileLoading = true, ...args } = {}) => {
2585
+ const wantsInstalledPlaceholder = (args.includeMobileOptions ?? false) && returnInstalledOptionsWhileLoading && queryParams?.enabled !== false;
2586
+ const middlewares = [
2587
+ invalidateOnEvent({ event: "walletProviderChanged" }),
2588
+ invalidateOnEvent({ event: "walletProviderUnregistered" }),
2589
+ invalidateOnEvent({ event: "networkProviderBuilderRegistered" })
2590
+ ];
2591
+ const catalogueArgs = {
2592
+ ...args,
2593
+ includeMobileOptions: args.includeMobileOptions ?? false
2594
+ };
2595
+ const installedOnlyArgs = {
2596
+ ...args,
2597
+ includeMobileOptions: false
2598
+ };
2599
+ const catalogueCacheKey = hashKey([catalogueArgs]);
2600
+ const loadedCatalogueCacheKeyRef = useRef(void 0);
2601
+ const installedOnlyResult = useBaseQuery({
2602
+ enabled: wantsInstalledPlaceholder && loadedCatalogueCacheKeyRef.current !== catalogueCacheKey,
2603
+ middlewares,
2604
+ queryFn: (client) => getWalletOptionsCatalogue(installedOnlyArgs, client),
2605
+ queryKey: ["useGetWalletOptionsCatalogue", installedOnlyArgs],
2606
+ queryParams: {
2607
+ retry: false,
2608
+ staleTime: CATALOGUE_STALE_TIME_MS
2609
+ }
2610
+ });
2611
+ const fullCatalogueResult = useBaseQuery({
2612
+ middlewares,
2613
+ queryFn: (client) => getWalletOptionsCatalogue(catalogueArgs, client),
2614
+ queryKey: ["useGetWalletOptionsCatalogue", catalogueArgs],
2615
+ queryParams: {
2616
+ retry: false,
2617
+ staleTime: CATALOGUE_STALE_TIME_MS,
2618
+ ...wantsInstalledPlaceholder ? { placeholderData: () => installedOnlyResult.data } : {},
2619
+ ...queryParams
2620
+ }
2621
+ });
2622
+ loadedCatalogueCacheKeyRef.current = fullCatalogueResult.data !== void 0 && !fullCatalogueResult.isPlaceholderData ? catalogueCacheKey : void 0;
2623
+ return fullCatalogueResult;
2624
+ };
2556
2625
 
2557
2626
  //#endregion
2558
2627
  //#region src/hooks/wrappers/functions/useGetWalletPolicyLayer/useGetWalletPolicyLayer.ts
@@ -3508,5 +3577,5 @@ const useUser = () => useBaseState({
3508
3577
  assertPackageVersion(name, version);
3509
3578
 
3510
3579
  //#endregion
3511
- export { DynamicProvider, useAcknowledgeRecoveryCodes, useAddBusinessAccountMember, useAddBusinessAccountSigner, useAddCoinbaseOnrampOrderEventListener, useAddNetwork, useAddWalletToBusinessAccount, useAssertWalletAccountSigningAvailability, useAttachFlowSource, useAuthenticateMfaRecoveryCode, useAuthenticatePasskeyMFA, useAuthenticateTotpMfaDevice, useBackupWaasKeySharesToGoogleDrive, useBroadcastFlow, useCancelFlow, useCheckStepUpAuth, useClaimYieldRewards, useCompleteDeviceRegistration, useCompleteSocialRedirect, useConfirmTransaction, useConnectAndVerifyWithWalletProvider, useConnectWithWalletProvider, useCreateBusinessAccount, useCreateCoinbaseExchangeTransfer, useCreateCoinbaseOnrampOrder, useCreateCryptoDotComPayment, useCreateKrakenExchangeTransfer, useCreateNewMfaRecoveryCodes, useCreatePolicy, useCreateWaasOfflineRecoveryShares, useCreateWaasWalletAccounts, useCreateWalletForBusinessAccount, useDelegateWaasKeyShares, useDeleteMfaDevice, useDeletePasskey, useDeleteUser, useDepositToYieldVault, useDetectSocialRedirectUrl, useDynamicClient, useExecuteSwapTransaction, useExportWaasClientKeyshares, useExportWaasPrivateKey, useGetAccountPolicyLayer, useGetActiveNetworkData, useGetActiveNetworkId, useGetAvailableWalletProvidersData, useGetBalanceForAddress, useGetBusinessAccount, useGetCoinbaseAccounts, useGetCoinbaseBuyUrl, useGetConnectedAddresses, useGetFlow, useGetFlowQuote, useGetGoogleDriveBackupReadiness, useGetKrakenAccounts, useGetKrakenWhitelistedAddresses, useGetMfaDevices, useGetMfaMethods, useGetMfaRecoveryCodes, useGetMoonPayCurrencies, useGetMoonPayUrl, useGetMultichainTokenBalances, useGetNativeBalance, useGetPasskeys, useGetPolicy, useGetRegisteredDevices, useGetSignerPolicyLayer, useGetSwapQuote, useGetSwapStatus, useGetTokenBalances, useGetTransactionHistory, useGetUserSocialAccounts, useGetWalletAccounts, useGetWalletConnectCatalog, useGetWalletConnectCatalogWalletByWalletProviderKey, useGetWalletOptionsCatalogue, useGetWalletPolicyLayer, useGetWalletProviderDataByKey, useGetWalletRecoveryState, useGetYieldDetails, useGetYieldPosition, useGetYieldRewards, useImportWaasPrivateKey, useInitStatus, useIsDeviceRegistrationRequired, useIsMfaRequiredForAction, useIsPendingRecoveryCodesAcknowledgment, useIsUserMissingMfaAuth, useIsUserOnboardingComplete, useListBusinessAccounts, useListYieldVaults, useLogout, useMergeUserAccounts, useMigrateFromFireblocks, useOnEvent, useOnWalletProviderEvent, useOnceEvent, usePrepareFlowSigning, useProveWalletAccountOwnership, useRefreshAuth, useRefreshWaasWalletAccountShares, useRegisterPasskey, useRegisterTotpMfaDevice, useRemoveAccountPolicyRule, useRemoveBusinessAccountMember, useRemoveBusinessAccountSigner, useRemoveBusinessAccountWallet, useRemovePolicyRules, useRemoveSignerPolicyRule, useRemoveWalletAccount, useRemoveWalletPolicyRule, useRequestExternalAuthElevatedToken, useRevokeAllRegisteredDevices, useRevokeRegisteredDevice, useRevokeWaasDelegation, useScreenTransaction, useSendEmailOTP, useSendSmsOTP, useSessionExpiresAt, useSetDefaultMfaDevice, useSetWaasWalletAccountPassword, useSignInWithExternalJwt, useSignInWithPasskey, useSignInWithSocialPopUp, useSignInWithSocialRedirect, useSignMessage, useSignSerializedTransaction, useSubmitFlowTransaction, useSwitchActiveNetwork, useTransferAmount, useTransferBusinessAccountOwnership, useTransferWalletAccount, useUnlinkSocialAccount, useUnlockWallet, useUpdateBusinessAccount, useUpdateBusinessAccountMemberRole, useUpdateUser, useUpdateWaasPassword, useUpsertAccountPolicyRule, useUpsertSignerPolicyRule, useUpsertWalletPolicyRule, useUser, useVerifyOTP, useVerifyWalletAccount, useWithdrawFromYieldVault };
3580
+ export { DynamicProvider, useAcknowledgeRecoveryCodes, useAddBusinessAccountMember, useAddBusinessAccountSigner, useAddCoinbaseOnrampOrderEventListener, useAddNetwork, useAddWalletToBusinessAccount, useAssertWalletAccountSigningAvailability, useAttachFlowSource, useAuthenticateMfaRecoveryCode, useAuthenticatePasskeyMFA, useAuthenticateTotpMfaDevice, useBackupWaasKeySharesToGoogleDrive, useBroadcastFlow, useCancelFlow, useCheckStepUpAuth, useClaimYieldRewards, useCompleteDeviceRegistration, useCompleteSocialRedirect, useConfirmTransaction, useConnectAndVerifyWithWalletProvider, useConnectWithWalletProvider, useCreateBusinessAccount, useCreateCoinbaseExchangeTransfer, useCreateCoinbaseOnrampOrder, useCreateCryptoDotComPayment, useCreateKrakenExchangeTransfer, useCreateNewMfaRecoveryCodes, useCreatePolicy, useCreateWaasOfflineRecoveryShares, useCreateWaasWalletAccounts, useCreateWalletForBusinessAccount, useDelegateWaasKeyShares, useDeleteMfaDevice, useDeletePasskey, useDeleteUser, useDepositToYieldVault, useDetectSocialRedirectUrl, useDynamicClient, useExecuteSwapTransaction, useExportWaasClientKeyshares, useExportWaasPrivateKey, useGetAccountPolicyLayer, useGetActiveNetworkData, useGetActiveNetworkId, useGetAvailableWalletProvidersData, useGetBalanceForAddress, useGetBusinessAccount, useGetCoinbaseAccounts, useGetCoinbaseBuyUrl, useGetConnectedAddresses, useGetFlow, useGetFlowQuote, useGetGoogleDriveBackupReadiness, useGetKrakenAccounts, useGetKrakenWhitelistedAddresses, useGetMfaDevices, useGetMfaMethods, useGetMfaRecoveryCodes, useGetMoonPayCurrencies, useGetMoonPayUrl, useGetMultichainTokenBalances, useGetNativeBalance, useGetPasskeys, useGetPolicy, useGetRegisteredDevices, useGetSignerPolicyLayer, useGetSwapQuote, useGetSwapStatus, useGetTokenBalances, useGetTransactionHistory, useGetUserSocialAccounts, useGetWalletAccounts, useGetWalletConnectCatalog, useGetWalletConnectCatalogWalletByWalletProviderKey, useGetWalletOptionsCatalogue, useGetWalletPolicyLayer, useGetWalletProviderDataByKey, useGetWalletRecoveryState, useGetYieldDetails, useGetYieldPosition, useGetYieldRewards, useImportWaasPrivateKey, useInitStatus, useIsDeviceRegistrationRequired, useIsMfaRequiredForAction, useIsPendingRecoveryCodesAcknowledgment, useIsUserMissingMfaAuth, useIsUserOnboardingComplete, useListBusinessAccounts, useListYieldVaults, useLogout, useMergeUserAccounts, useMigrateFromFireblocks, useOnEvent, useOnWalletProviderEvent, useOnceEvent, usePrepareFlowSigning, useProveWalletAccountOwnership, useRedirectToInAppBrowser, useRefreshAuth, useRefreshWaasWalletAccountShares, useRegisterPasskey, useRegisterTotpMfaDevice, useRemoveAccountPolicyRule, useRemoveBusinessAccountMember, useRemoveBusinessAccountSigner, useRemoveBusinessAccountWallet, useRemovePolicyRules, useRemoveSignerPolicyRule, useRemoveWalletAccount, useRemoveWalletPolicyRule, useRequestExternalAuthElevatedToken, useRevokeAllRegisteredDevices, useRevokeRegisteredDevice, useRevokeWaasDelegation, useScreenTransaction, useSendEmailOTP, useSendSmsOTP, useSessionExpiresAt, useSetDefaultMfaDevice, useSetWaasWalletAccountPassword, useSignInWithExternalJwt, useSignInWithPasskey, useSignInWithSocialPopUp, useSignInWithSocialRedirect, useSignMessage, useSignSerializedTransaction, useSubmitFlowTransaction, useSwitchActiveNetwork, useTransferAmount, useTransferBusinessAccountOwnership, useTransferWalletAccount, useUnlinkSocialAccount, useUnlockWallet, useUpdateBusinessAccount, useUpdateBusinessAccountMemberRole, useUpdateUser, useUpdateWaasPassword, useUpsertAccountPolicyRule, useUpsertSignerPolicyRule, useUpsertWalletPolicyRule, useUser, useVerifyOTP, useVerifyWalletAccount, useWithdrawFromYieldVault };
3512
3581
  //# sourceMappingURL=index.esm.js.map