@dynamic-labs-sdk/react-hooks 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist/exports/index.d.ts +10 -6
  2. package/dist/exports/index.d.ts.map +1 -1
  3. package/dist/hooks/wrappers/functions/useAttachFlowSource/index.d.ts +3 -0
  4. package/dist/hooks/wrappers/functions/useAttachFlowSource/index.d.ts.map +1 -0
  5. package/dist/hooks/wrappers/functions/useAttachFlowSource/useAttachFlowSource.d.ts +29 -0
  6. package/dist/hooks/wrappers/functions/useAttachFlowSource/useAttachFlowSource.d.ts.map +1 -0
  7. package/dist/hooks/wrappers/functions/useGetFlow/index.d.ts +3 -0
  8. package/dist/hooks/wrappers/functions/useGetFlow/index.d.ts.map +1 -0
  9. package/dist/hooks/wrappers/functions/useGetFlow/useGetFlow.d.ts +27 -0
  10. package/dist/hooks/wrappers/functions/useGetFlow/useGetFlow.d.ts.map +1 -0
  11. package/dist/hooks/wrappers/functions/useGetFlowQuote/index.d.ts +3 -0
  12. package/dist/hooks/wrappers/functions/useGetFlowQuote/index.d.ts.map +1 -0
  13. package/dist/hooks/wrappers/functions/useGetFlowQuote/useGetFlowQuote.d.ts +28 -0
  14. package/dist/hooks/wrappers/functions/useGetFlowQuote/useGetFlowQuote.d.ts.map +1 -0
  15. package/dist/hooks/wrappers/functions/usePrepareFlowSigning/index.d.ts +3 -0
  16. package/dist/hooks/wrappers/functions/usePrepareFlowSigning/index.d.ts.map +1 -0
  17. package/dist/hooks/wrappers/functions/usePrepareFlowSigning/usePrepareFlowSigning.d.ts +28 -0
  18. package/dist/hooks/wrappers/functions/usePrepareFlowSigning/usePrepareFlowSigning.d.ts.map +1 -0
  19. package/dist/index.cjs +155 -68
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.esm.js +153 -70
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  24. package/package.json +4 -4
package/dist/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
2
- import { BaseError, acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, checkStepUpAuth, completeDeviceRegistration, completeSocialRedirect, confirmTransaction, connectAndVerifyWithWalletProvider, connectWithWalletProvider, consumeMfaToken, createCoinbaseOnrampOrder, createCryptoDotComPayment, createKrakenExchangeTransfer, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, executeSwapTransaction, getActiveNetworkData, getAvailableWalletProvidersData, getBalanceForAddress, getCoinbaseBuyUrl, getGoogleDriveBackupReadiness, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMoonPayCurrencies, getMoonPayUrl, getMultichainTokenBalances, getNativeBalance, getNetworksData, getPasskeys, getRegisteredDevices, getSwapQuote, getSwapStatus, getTokenBalances, getTransactionHistory, getUserSocialAccounts, getWalletAccounts, getWalletConnectCatalog, getWalletOptionsCatalogue, isCaptchaRequired, isUserMissingMfaAuth, isUserOnboardingComplete, logout, onEvent, onWalletProviderEvent, onceEvent, proveWalletAccountOwnership, refreshAuth, registerPasskey, registerTotpMfaDevice, removeWalletAccount, requestExternalAuthElevatedToken, revokeAllRegisteredDevices, revokeRegisteredDevice, sendEmailOTP, sendSmsOTP, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signInWithSocialPopUp, signInWithSocialRedirect, signMessage, switchActiveNetwork, transferAmount, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized } from "@dynamic-labs-sdk/client";
2
+ import { BaseError, acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, attachFlowSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, checkStepUpAuth, completeDeviceRegistration, completeSocialRedirect, confirmTransaction, connectAndVerifyWithWalletProvider, connectWithWalletProvider, consumeMfaToken, createCoinbaseOnrampOrder, createCryptoDotComPayment, createKrakenExchangeTransfer, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, executeSwapTransaction, getActiveNetworkData, getAvailableWalletProvidersData, getBalanceForAddress, getCoinbaseBuyUrl, getFlow, getFlowQuote, getGoogleDriveBackupReadiness, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMoonPayCurrencies, getMoonPayUrl, getMultichainTokenBalances, getNativeBalance, getNetworksData, getPasskeys, getRegisteredDevices, getSwapQuote, getSwapStatus, getTokenBalances, getTransactionHistory, getUserSocialAccounts, getWalletAccounts, getWalletConnectCatalog, getWalletOptionsCatalogue, isCaptchaRequired, isUserMissingMfaAuth, isUserOnboardingComplete, logout, onEvent, onWalletProviderEvent, onceEvent, prepareFlowSigning, proveWalletAccountOwnership, refreshAuth, registerPasskey, registerTotpMfaDevice, removeWalletAccount, requestExternalAuthElevatedToken, revokeAllRegisteredDevices, revokeRegisteredDevice, sendEmailOTP, sendSmsOTP, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signInWithSocialPopUp, signInWithSocialRedirect, signMessage, switchActiveNetwork, transferAmount, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized } from "@dynamic-labs-sdk/client";
3
3
  import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
4
4
  import { createContext, useContext, useEffect, useMemo, useRef } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -7,7 +7,7 @@ import { getCore } from "@dynamic-labs-sdk/client/core";
7
7
 
8
8
  //#region package.json
9
9
  var name = "@dynamic-labs-sdk/react-hooks";
10
- var version = "1.9.0";
10
+ var version = "1.10.0";
11
11
 
12
12
  //#endregion
13
13
  //#region src/modules/DynamicContext/DynamicContext.ts
@@ -174,6 +174,28 @@ const useAddNetwork = ({ mutateParams } = {}) => useBaseMutation({
174
174
  mutationFn: ({ client, variables }) => addNetwork(variables, client)
175
175
  });
176
176
 
177
+ //#endregion
178
+ //#region src/hooks/wrappers/functions/useAttachFlowSource/useAttachFlowSource.ts
179
+ /**
180
+ * Attaches a payment source to a flow.
181
+ *
182
+ * Wraps `attachFlowSource` from `@dynamic-labs-sdk/client`. Call `mutate({ flowId, sourceType, fromAddress, fromChainId, fromChainName })`
183
+ * to attach a payment source to a flow; the resolved `data` is an object containing
184
+ * the flow and the session token.
185
+ *
186
+ * @example
187
+ * ```tsx
188
+ * const { mutate: attachFlowSource, isPending } = useAttachFlowSource();
189
+ * <button onClick={() => attachFlowSource({ flowId, sourceType, fromAddress, fromChainId, fromChainName })} disabled={isPending}>
190
+ * Attach flow source
191
+ * </button>
192
+ * ```
193
+ */
194
+ const useAttachFlowSource = ({ mutateParams } = {}) => useBaseMutation({
195
+ mutateParams,
196
+ mutationFn: ({ client, variables }) => attachFlowSource(variables, client)
197
+ });
198
+
177
199
  //#endregion
178
200
  //#region src/hooks/wrappers/functions/useAuthenticateMfaRecoveryCode/useAuthenticateMfaRecoveryCode.ts
179
201
  /**
@@ -737,63 +759,81 @@ const useExecuteSwapTransaction = ({ mutateParams } = {}) => useBaseMutation({
737
759
  });
738
760
 
739
761
  //#endregion
740
- //#region src/hooks/wrappers/functions/useGoogleDriveBackupReadiness/useGoogleDriveBackupReadiness.ts
762
+ //#region src/hooks/wrappers/functions/useGetFlow/useGetFlow.ts
741
763
  /**
742
- * Wraps `getGoogleDriveBackupReadiness` from `@dynamic-labs-sdk/client`. Reports whether the user's Google Drive backup is set up and available.
764
+ * Returns the flow with the given ID.
765
+ *
766
+ * Wraps `getFlow` from `@dynamic-labs-sdk/client`.
743
767
  *
744
768
  * @example
745
769
  * ```tsx
746
- * const { data: readiness, isLoading } = useGoogleDriveBackupReadiness();
770
+ * const { data: flow, isLoading, refetch } = useGetFlow({ flowId });
747
771
  * ```
748
772
  */
749
- const useGoogleDriveBackupReadiness = ({ queryParams } = {}) => useBaseQuery({
750
- queryFn: (client) => getGoogleDriveBackupReadiness(client),
751
- queryKey: ["useGoogleDriveBackupReadiness"],
773
+ const useGetFlow = ({ flowId, queryParams }) => useBaseQuery({
774
+ enabled: flowId !== void 0,
775
+ queryFn: (client) => getFlow({ flowId }, client),
776
+ queryKey: ["useGetFlow", flowId],
752
777
  queryParams
753
778
  });
754
779
 
755
780
  //#endregion
756
- //#region src/hooks/wrappers/state/useInitStatus/useInitStatus.ts
781
+ //#region src/hooks/wrappers/functions/useGetFlowQuote/useGetFlowQuote.ts
757
782
  /**
758
- * Returns the current initialization status of the Dynamic client, plus the
759
- * error that caused initialization to fail (when it did).
783
+ * Fetches a quote for a flow.
760
784
  *
761
- * Exposes only `data` (the reactive init status), `error` and `isError` —
762
- * see {@link UseInitStatusResult}. Possible `data` values: `'uninitialized'`,
763
- * `'in-progress'`, `'finished'`, `'failed'`. When `data === 'failed'`, `error`
764
- * carries the failure reason.
785
+ * Wraps `getFlowQuote` from `@dynamic-labs-sdk/client`. Call `mutate({ flowId, fromTokenAddress, slippage })`
786
+ * to fetch a quote for a flow.
765
787
  *
766
788
  * @example
767
789
  * ```tsx
768
- * const { data: status, error } = useInitStatus();
769
- * if (status === 'failed') return <InitErrorScreen message={error?.message} />;
770
- * if (status !== 'finished') return <LoadingScreen />;
771
- * return <App />;
790
+ * const { mutate: getFlowQuote, isPending } = useGetFlowQuote();
791
+ * <button onClick={() => getFlowQuote({ flowId, fromTokenAddress, slippage })} disabled={isPending}>
792
+ * Get flow quote
793
+ * </button>
772
794
  * ```
795
+ */
796
+ const useGetFlowQuote = ({ mutateParams } = {}) => useBaseMutation({
797
+ mutateParams,
798
+ mutationFn: ({ client, variables }) => getFlowQuote(variables, client)
799
+ });
800
+
801
+ //#endregion
802
+ //#region src/hooks/wrappers/functions/usePrepareFlowSigning/usePrepareFlowSigning.ts
803
+ /**
804
+ * Prepares a flow transaction for signing.
773
805
  *
774
- * @not-instrumented
806
+ * Wraps `prepareFlowSigning` from `@dynamic-labs-sdk/client`. Call `mutate({ flowId })`
807
+ * to prepare a flow for signing.
808
+ *
809
+ * @example
810
+ * ```tsx
811
+ * const { mutate: prepareFlowSigning, isPending } = usePrepareFlowSigning();
812
+ * <button onClick={() => prepareFlowSigning({ flowId })} disabled={isPending}>
813
+ * Prepare flow signing
814
+ * </button>
815
+ * ```
775
816
  */
776
- const useInitStatus = () => {
777
- const { data } = useBaseState({
778
- defaultValue: {
779
- error: null,
780
- status: "uninitialized"
781
- },
782
- event: "initStatusChanged",
783
- queryKey: ["useInitStatus"],
784
- selector: (client) => ({
785
- error: client.initError,
786
- status: client.initStatus
787
- }),
788
- skipWaitForInit: true
789
- });
790
- const error = data?.error ?? null;
791
- return {
792
- data: data?.status,
793
- error,
794
- isError: error !== null
795
- };
796
- };
817
+ const usePrepareFlowSigning = ({ mutateParams } = {}) => useBaseMutation({
818
+ mutateParams,
819
+ mutationFn: ({ client, variables }) => prepareFlowSigning(variables, client)
820
+ });
821
+
822
+ //#endregion
823
+ //#region src/hooks/wrappers/functions/useGoogleDriveBackupReadiness/useGoogleDriveBackupReadiness.ts
824
+ /**
825
+ * Wraps `getGoogleDriveBackupReadiness` from `@dynamic-labs-sdk/client`. Reports whether the user's Google Drive backup is set up and available.
826
+ *
827
+ * @example
828
+ * ```tsx
829
+ * const { data: readiness, isLoading } = useGoogleDriveBackupReadiness();
830
+ * ```
831
+ */
832
+ const useGoogleDriveBackupReadiness = ({ queryParams } = {}) => useBaseQuery({
833
+ queryFn: (client) => getGoogleDriveBackupReadiness(client),
834
+ queryKey: ["useGoogleDriveBackupReadiness"],
835
+ queryParams
836
+ });
797
837
 
798
838
  //#endregion
799
839
  //#region src/hooks/wrappers/functions/useIsCaptchaRequired/useIsCaptchaRequired.ts
@@ -1362,20 +1402,6 @@ const useSendSmsOtp = ({ mutateParams } = {}) => useBaseMutation({
1362
1402
  mutationFn: ({ client, variables }) => sendSmsOTP(variables, client)
1363
1403
  });
1364
1404
 
1365
- //#endregion
1366
- //#region src/hooks/wrappers/state/useSessionExpiresAt/useSessionExpiresAt.ts
1367
- /**
1368
- * Returns the session expiration date, or null if no active session.
1369
- *
1370
- * Re-renders when the user changes (which includes session updates).
1371
- */
1372
- const useSessionExpiresAt = () => useBaseState({
1373
- defaultValue: null,
1374
- event: "userChanged",
1375
- queryKey: ["useSessionExpiresAt"],
1376
- selector: (client) => client.sessionExpiresAt
1377
- });
1378
-
1379
1405
  //#endregion
1380
1406
  //#region src/hooks/wrappers/functions/useSetDefaultMfaDevice/useSetDefaultMfaDevice.ts
1381
1407
  /**
@@ -1707,20 +1733,6 @@ const useUpdateUser = ({ mutateParams } = {}) => useBaseMutation({
1707
1733
  mutationFn: ({ client, variables }) => updateUser(variables, client)
1708
1734
  });
1709
1735
 
1710
- //#endregion
1711
- //#region src/hooks/wrappers/state/useUser/useUser.ts
1712
- /**
1713
- * Returns the current authenticated user, or null if not authenticated.
1714
- *
1715
- * Re-renders when the user changes (login, logout, profile update).
1716
- */
1717
- const useUser = () => useBaseState({
1718
- defaultValue: null,
1719
- event: "userChanged",
1720
- queryKey: ["useUser"],
1721
- selector: (client) => client.user
1722
- });
1723
-
1724
1736
  //#endregion
1725
1737
  //#region src/hooks/wrappers/functions/useUserSocialAccounts/useUserSocialAccounts.ts
1726
1738
  /**
@@ -1881,10 +1893,81 @@ const useWalletProviderEvent = ({ callback, event, walletProviderKey }) => {
1881
1893
  ]);
1882
1894
  };
1883
1895
 
1896
+ //#endregion
1897
+ //#region src/hooks/wrappers/state/useInitStatus/useInitStatus.ts
1898
+ /**
1899
+ * Returns the current initialization status of the Dynamic client, plus the
1900
+ * error that caused initialization to fail (when it did).
1901
+ *
1902
+ * Exposes only `data` (the reactive init status), `error` and `isError` —
1903
+ * see {@link UseInitStatusResult}. Possible `data` values: `'uninitialized'`,
1904
+ * `'in-progress'`, `'finished'`, `'failed'`. When `data === 'failed'`, `error`
1905
+ * carries the failure reason.
1906
+ *
1907
+ * @example
1908
+ * ```tsx
1909
+ * const { data: status, error } = useInitStatus();
1910
+ * if (status === 'failed') return <InitErrorScreen message={error?.message} />;
1911
+ * if (status !== 'finished') return <LoadingScreen />;
1912
+ * return <App />;
1913
+ * ```
1914
+ *
1915
+ * @not-instrumented
1916
+ */
1917
+ const useInitStatus = () => {
1918
+ const { data } = useBaseState({
1919
+ defaultValue: {
1920
+ error: null,
1921
+ status: "uninitialized"
1922
+ },
1923
+ event: "initStatusChanged",
1924
+ queryKey: ["useInitStatus"],
1925
+ selector: (client) => ({
1926
+ error: client.initError,
1927
+ status: client.initStatus
1928
+ }),
1929
+ skipWaitForInit: true
1930
+ });
1931
+ const error = data?.error ?? null;
1932
+ return {
1933
+ data: data?.status,
1934
+ error,
1935
+ isError: error !== null
1936
+ };
1937
+ };
1938
+
1939
+ //#endregion
1940
+ //#region src/hooks/wrappers/state/useSessionExpiresAt/useSessionExpiresAt.ts
1941
+ /**
1942
+ * Returns the session expiration date, or null if no active session.
1943
+ *
1944
+ * Re-renders when the user changes (which includes session updates).
1945
+ */
1946
+ const useSessionExpiresAt = () => useBaseState({
1947
+ defaultValue: null,
1948
+ event: "userChanged",
1949
+ queryKey: ["useSessionExpiresAt"],
1950
+ selector: (client) => client.sessionExpiresAt
1951
+ });
1952
+
1953
+ //#endregion
1954
+ //#region src/hooks/wrappers/state/useUser/useUser.ts
1955
+ /**
1956
+ * Returns the current authenticated user, or null if not authenticated.
1957
+ *
1958
+ * Re-renders when the user changes (login, logout, profile update).
1959
+ */
1960
+ const useUser = () => useBaseState({
1961
+ defaultValue: null,
1962
+ event: "userChanged",
1963
+ queryKey: ["useUser"],
1964
+ selector: (client) => client.user
1965
+ });
1966
+
1884
1967
  //#endregion
1885
1968
  //#region src/exports/index.ts
1886
1969
  assertPackageVersion(name, version);
1887
1970
 
1888
1971
  //#endregion
1889
- export { DynamicProvider, useAcknowledgeRecoveryCodes, useActiveNetworkData, useAddNetwork, useAuthenticateMfaRecoveryCode, useAuthenticatePasskeyMfa, useAuthenticateTotpMfaDevice, useAvailableWalletProvidersData, useBalanceForAddress, useCheckStepUpAuth, useCoinbaseBuyUrl, useCoinbaseOnrampOrderEventListener, useCompleteDeviceRegistration, useCompleteSocialRedirect, useConfirmTransaction, useConnectAndVerifyWithWalletProvider, useConnectWithWalletProvider, useConsumeMfaToken, useCreateCoinbaseOnrampOrder, useCreateCryptoDotComPayment, useCreateNewMfaRecoveryCodes, useDeleteMfaDevice, useDeletePasskey, useDeleteUser, useDynamicClient, useEvent, useExecuteSwapTransaction, useGoogleDriveBackupReadiness, useInitStatus, useIsCaptchaRequired, useIsUserMissingMfaAuth, useIsUserOnboardingComplete, useKrakenAccounts, useKrakenExchangeTransfer, useKrakenWhitelistedAddresses, useLogout, useMfaDevices, useMfaMethods, useMfaRecoveryCodes, useMoonPayCurrencies, useMoonPayUrl, useMultichainTokenBalances, useNativeBalance, useNetworksData, useOnceEvent, usePasskeys, useProveWalletAccountOwnership, useRefreshAuth, useRegisterPasskey, useRegisterTotpMfaDevice, useRegisteredDevices, useRemoveWalletAccount, useRequestExternalAuthElevatedToken, useRevokeAllRegisteredDevices, useRevokeRegisteredDevice, useSendEmailOtp, useSendSmsOtp, useSessionExpiresAt, useSetDefaultMfaDevice, useSignInWithExternalJwt, useSignInWithPasskey, useSignInWithSocialPopUp, useSignInWithSocialRedirect, useSignMessage, useSwapQuote, useSwapStatus, useSwitchActiveNetwork, useTokenBalances, useTransactionHistory, useTransferAmount, useTransferWalletAccount, useUnlinkSocialAccount, useUpdateUser, useUser, useUserSocialAccounts, useVerifyOtp, useVerifyWalletAccount, useWalletAccounts, useWalletConnectCatalog, useWalletOptionsCatalogue, useWalletProviderEvent };
1972
+ export { DynamicProvider, useAcknowledgeRecoveryCodes, useActiveNetworkData, useAddNetwork, useAttachFlowSource, useAuthenticateMfaRecoveryCode, useAuthenticatePasskeyMfa, useAuthenticateTotpMfaDevice, useAvailableWalletProvidersData, useBalanceForAddress, useCheckStepUpAuth, useCoinbaseBuyUrl, useCoinbaseOnrampOrderEventListener, useCompleteDeviceRegistration, useCompleteSocialRedirect, useConfirmTransaction, useConnectAndVerifyWithWalletProvider, useConnectWithWalletProvider, useConsumeMfaToken, useCreateCoinbaseOnrampOrder, useCreateCryptoDotComPayment, useCreateNewMfaRecoveryCodes, useDeleteMfaDevice, useDeletePasskey, useDeleteUser, useDynamicClient, useEvent, useExecuteSwapTransaction, useGetFlow, useGetFlowQuote, useGoogleDriveBackupReadiness, useInitStatus, useIsCaptchaRequired, useIsUserMissingMfaAuth, useIsUserOnboardingComplete, useKrakenAccounts, useKrakenExchangeTransfer, useKrakenWhitelistedAddresses, useLogout, useMfaDevices, useMfaMethods, useMfaRecoveryCodes, useMoonPayCurrencies, useMoonPayUrl, useMultichainTokenBalances, useNativeBalance, useNetworksData, useOnceEvent, usePasskeys, usePrepareFlowSigning, useProveWalletAccountOwnership, useRefreshAuth, useRegisterPasskey, useRegisterTotpMfaDevice, useRegisteredDevices, useRemoveWalletAccount, useRequestExternalAuthElevatedToken, useRevokeAllRegisteredDevices, useRevokeRegisteredDevice, useSendEmailOtp, useSendSmsOtp, useSessionExpiresAt, useSetDefaultMfaDevice, useSignInWithExternalJwt, useSignInWithPasskey, useSignInWithSocialPopUp, useSignInWithSocialRedirect, useSignMessage, useSwapQuote, useSwapStatus, useSwitchActiveNetwork, useTokenBalances, useTransactionHistory, useTransferAmount, useTransferWalletAccount, useUnlinkSocialAccount, useUpdateUser, useUser, useUserSocialAccounts, useVerifyOtp, useVerifyWalletAccount, useWalletAccounts, useWalletConnectCatalog, useWalletOptionsCatalogue, useWalletProviderEvent };
1890
1973
  //# sourceMappingURL=index.esm.js.map