@dynamic-labs-sdk/client 0.2.4 → 0.4.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 (115) hide show
  1. package/dist/{InvalidParamError-DQv6ejTe.cjs.js → InvalidParamError-C5YtT7LQ.cjs.js} +2 -2
  2. package/dist/{InvalidParamError-DQv6ejTe.cjs.js.map → InvalidParamError-C5YtT7LQ.cjs.js.map} +1 -1
  3. package/dist/{InvalidParamError-Cigi7zsS.esm.js → InvalidParamError-c8UAEGKA.esm.js} +2 -2
  4. package/dist/{InvalidParamError-Cigi7zsS.esm.js.map → InvalidParamError-c8UAEGKA.esm.js.map} +1 -1
  5. package/dist/NotWaasWalletAccountError-D0YXdfTu.esm.js +37 -0
  6. package/dist/NotWaasWalletAccountError-D0YXdfTu.esm.js.map +1 -0
  7. package/dist/{NotWaasWalletAccountError-zV4xv0h6.cjs.js → NotWaasWalletAccountError-DUvIdb2w.cjs.js} +13 -11
  8. package/dist/NotWaasWalletAccountError-DUvIdb2w.cjs.js.map +1 -0
  9. package/dist/{constants-B3wr3A32.cjs.js → constants-BbG0v26E.cjs.js} +39 -6
  10. package/dist/constants-BbG0v26E.cjs.js.map +1 -0
  11. package/dist/{constants-DQfjH5fu.esm.js → constants-hy8OYHwt.esm.js} +21 -6
  12. package/dist/constants-hy8OYHwt.esm.js.map +1 -0
  13. package/dist/core.cjs.js +5 -5
  14. package/dist/core.esm.js +7 -7
  15. package/dist/core.esm.js.map +1 -1
  16. package/dist/errors/NetworkAddingUnavailableError.d.ts +11 -0
  17. package/dist/errors/NetworkAddingUnavailableError.d.ts.map +1 -0
  18. package/dist/errors/NetworkNotAddedError.d.ts +14 -0
  19. package/dist/errors/NetworkNotAddedError.d.ts.map +1 -0
  20. package/dist/exports/index.d.ts +4 -0
  21. package/dist/exports/index.d.ts.map +1 -1
  22. package/dist/exports/waas.d.ts +1 -0
  23. package/dist/exports/waas.d.ts.map +1 -1
  24. package/dist/{getNetworkProviderFromNetworkId-DKrjrs7X.cjs.js → getNetworkProviderFromNetworkId-CTKZxd1T.cjs.js} +3 -3
  25. package/dist/{getNetworkProviderFromNetworkId-DKrjrs7X.cjs.js.map → getNetworkProviderFromNetworkId-CTKZxd1T.cjs.js.map} +1 -1
  26. package/dist/{getNetworkProviderFromNetworkId-Bccco0Dv.esm.js → getNetworkProviderFromNetworkId-vL_E8aHC.esm.js} +5 -5
  27. package/dist/getNetworkProviderFromNetworkId-vL_E8aHC.esm.js.map +1 -0
  28. package/dist/{getSignedSessionId-D7cjzDUp.esm.js → getSignedSessionId-BhFfSHeA.esm.js} +3 -3
  29. package/dist/{getSignedSessionId-D7cjzDUp.esm.js.map → getSignedSessionId-BhFfSHeA.esm.js.map} +1 -1
  30. package/dist/{getSignedSessionId-B9i1VIX7.cjs.js → getSignedSessionId-QJpJQ_Jz.cjs.js} +3 -3
  31. package/dist/{getSignedSessionId-B9i1VIX7.cjs.js.map → getSignedSessionId-QJpJQ_Jz.cjs.js.map} +1 -1
  32. package/dist/{getVerifiedCredentialForWalletAccount-CR5wGUFK.cjs.js → getVerifiedCredentialForWalletAccount-DAb9lFwa.cjs.js} +85 -12
  33. package/dist/getVerifiedCredentialForWalletAccount-DAb9lFwa.cjs.js.map +1 -0
  34. package/dist/{getVerifiedCredentialForWalletAccount-cVOVjcUI.esm.js → getVerifiedCredentialForWalletAccount-c_lbXWMG.esm.js} +61 -12
  35. package/dist/getVerifiedCredentialForWalletAccount-c_lbXWMG.esm.js.map +1 -0
  36. package/dist/index.cjs.js +174 -64
  37. package/dist/index.cjs.js.map +1 -1
  38. package/dist/index.esm.js +173 -67
  39. package/dist/index.esm.js.map +1 -1
  40. package/dist/{isMfaRequiredForAction-YAISA589.esm.js → isMfaRequiredForAction-BgevGq0s.esm.js} +2 -2
  41. package/dist/{isMfaRequiredForAction-YAISA589.esm.js.map → isMfaRequiredForAction-BgevGq0s.esm.js.map} +1 -1
  42. package/dist/{isMfaRequiredForAction-Bwphi7AF.cjs.js → isMfaRequiredForAction-CAwdzRA9.cjs.js} +2 -2
  43. package/dist/{isMfaRequiredForAction-Bwphi7AF.cjs.js.map → isMfaRequiredForAction-CAwdzRA9.cjs.js.map} +1 -1
  44. package/dist/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
  45. package/dist/modules/initializeClient/initializeClient.d.ts.map +1 -1
  46. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/getWalletConnectCatalog.d.ts.map +1 -1
  47. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformGroup/index.d.ts +2 -0
  48. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformGroup/index.d.ts.map +1 -0
  49. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformGroup/transformGroup.d.ts +11 -0
  50. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformGroup/transformGroup.d.ts.map +1 -0
  51. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformWallet/index.d.ts +2 -0
  52. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformWallet/index.d.ts.map +1 -0
  53. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformWallet/transformWallet.d.ts +12 -0
  54. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformWallet/transformWallet.d.ts.map +1 -0
  55. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformWalletBook/index.d.ts +2 -0
  56. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformWalletBook/index.d.ts.map +1 -0
  57. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformWalletBook/transformWalletBook.d.ts +12 -0
  58. package/dist/modules/legacyWalletBook/getWalletConnectCatalog/transformWalletBook/transformWalletBook.d.ts.map +1 -0
  59. package/dist/modules/user/refreshAuth/index.d.ts +2 -0
  60. package/dist/modules/user/refreshAuth/index.d.ts.map +1 -0
  61. package/dist/modules/user/refreshAuth/refreshAuth.d.ts +12 -0
  62. package/dist/modules/user/refreshAuth/refreshAuth.d.ts.map +1 -0
  63. package/dist/modules/user/refreshUser/refreshUser.d.ts +5 -4
  64. package/dist/modules/user/refreshUser/refreshUser.d.ts.map +1 -1
  65. package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
  66. package/dist/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts +15 -1
  67. package/dist/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts.map +1 -1
  68. package/dist/modules/waas/findWaasWalletProviderByChain/findWaasWalletProviderByChain.d.ts +9 -0
  69. package/dist/modules/waas/findWaasWalletProviderByChain/findWaasWalletProviderByChain.d.ts.map +1 -0
  70. package/dist/modules/waas/findWaasWalletProviderByChain/index.d.ts +2 -0
  71. package/dist/modules/waas/findWaasWalletProviderByChain/index.d.ts.map +1 -0
  72. package/dist/modules/waas/getWaasWalletProviderByChain/getWaasWalletProviderByChain.d.ts.map +1 -1
  73. package/dist/modules/waas/isPasswordRequiredForWaasWallets/index.d.ts +2 -0
  74. package/dist/modules/waas/isPasswordRequiredForWaasWallets/index.d.ts.map +1 -0
  75. package/dist/modules/waas/isPasswordRequiredForWaasWallets/isPasswordRequiredForWaasWallets.d.ts +12 -0
  76. package/dist/modules/waas/isPasswordRequiredForWaasWallets/isPasswordRequiredForWaasWallets.d.ts.map +1 -0
  77. package/dist/modules/waas/restoreUserSharesForAllWalletAccounts/index.d.ts +2 -0
  78. package/dist/modules/waas/restoreUserSharesForAllWalletAccounts/index.d.ts.map +1 -0
  79. package/dist/modules/waas/restoreUserSharesForAllWalletAccounts/restoreUserSharesForAllWalletAccounts.d.ts +3 -0
  80. package/dist/modules/waas/restoreUserSharesForAllWalletAccounts/restoreUserSharesForAllWalletAccounts.d.ts.map +1 -0
  81. package/dist/modules/waas/waas.types.d.ts +6 -1
  82. package/dist/modules/waas/waas.types.d.ts.map +1 -1
  83. package/dist/modules/wallets/constants.d.ts.map +1 -1
  84. package/dist/modules/wallets/disconnectWalletAccount/disconnectWalletAccount.d.ts +14 -0
  85. package/dist/modules/wallets/disconnectWalletAccount/disconnectWalletAccount.d.ts.map +1 -0
  86. package/dist/modules/wallets/disconnectWalletAccount/index.d.ts +2 -0
  87. package/dist/modules/wallets/disconnectWalletAccount/index.d.ts.map +1 -0
  88. package/dist/modules/wallets/networks/addNetwork/addNetwork.d.ts +21 -0
  89. package/dist/modules/wallets/networks/addNetwork/addNetwork.d.ts.map +1 -0
  90. package/dist/modules/wallets/networks/addNetwork/index.d.ts +2 -0
  91. package/dist/modules/wallets/networks/addNetwork/index.d.ts.map +1 -0
  92. package/dist/modules/wallets/removeWalletAccount/removeWalletAccount.d.ts +2 -2
  93. package/dist/modules/wallets/removeWalletAccount/removeWalletAccount.d.ts.map +1 -1
  94. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  95. package/dist/waas.cjs.js +35 -33
  96. package/dist/waas.cjs.js.map +1 -1
  97. package/dist/waas.esm.js +29 -28
  98. package/dist/waas.esm.js.map +1 -1
  99. package/dist/waasCore.cjs.js +23 -13
  100. package/dist/waasCore.cjs.js.map +1 -1
  101. package/dist/waasCore.esm.js +19 -9
  102. package/dist/waasCore.esm.js.map +1 -1
  103. package/package.json +5 -4
  104. package/dist/NotWaasWalletAccountError-CbHIr6GK.esm.js +0 -35
  105. package/dist/NotWaasWalletAccountError-CbHIr6GK.esm.js.map +0 -1
  106. package/dist/NotWaasWalletAccountError-zV4xv0h6.cjs.js.map +0 -1
  107. package/dist/constants-8IkZb4R4.esm.js +0 -14
  108. package/dist/constants-8IkZb4R4.esm.js.map +0 -1
  109. package/dist/constants-B3wr3A32.cjs.js.map +0 -1
  110. package/dist/constants-Bj3GZ9o6.cjs.js +0 -31
  111. package/dist/constants-Bj3GZ9o6.cjs.js.map +0 -1
  112. package/dist/constants-DQfjH5fu.esm.js.map +0 -1
  113. package/dist/getNetworkProviderFromNetworkId-Bccco0Dv.esm.js.map +0 -1
  114. package/dist/getVerifiedCredentialForWalletAccount-CR5wGUFK.cjs.js.map +0 -1
  115. package/dist/getVerifiedCredentialForWalletAccount-cVOVjcUI.esm.js.map +0 -1
package/dist/index.esm.js CHANGED
@@ -1,13 +1,13 @@
1
- import { C as BaseError, E as version, T as name, _ as randomString, a as createApiClient, b as getDefaultClient, c as MfaInvalidOtpError, d as APIError, g as ValueMustBeDefinedError, h as assertDefined, i as CHAINS_INFO_MAP, l as LinkCredentialError, m as isCookieEnabled, n as SDK_API_CORE_VERSION, o as SandboxMaximumThresholdReachedError, p as getBuffer, r as getChainFromVerifiedCredentialChain, s as MfaRateLimitedError, t as DYNAMIC_ICONIC_SPRITE_URL, u as InvalidExternalAuthError, v as CLIENT_SDK_NAME, w as getCore, x as setDefaultClient } from "./constants-DQfjH5fu.esm.js";
2
- import { A as isEqualShallow, C as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, E as createStorage, O as createLocalStorageAdapter, S as GENERATE_SESSION_KEYS_TRACKER_KEY, T as createStorageKeySchema, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, b as createDeferredPromise, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as WalletAlreadyLinkedToAnotherUserError, h as isCaptchaRequired, i as getNetworksData, k as subscribeWithSelector, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as setCaptchaToken, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createLogger, w as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, x as FETCH_PROJECT_SETTINGS_TRACKER_KEY, y as CannotTrackError } from "./getNetworkProviderFromNetworkId-Bccco0Dv.esm.js";
3
- import { C as onceEvent, S as onEvent, _ as normalizeAddress, a as checkAndRaiseWalletAccountsChangedEvent, b as emitEvent, c as getWalletProviderFromWalletAccount, f as NoWalletProviderFoundError, g as formatWalletAccountId, i as updateAuthFromVerifyResponse, n as getWalletProviderByKey, o as emitWalletAccountsChangedEvent, p as getWalletAccounts, r as getWalletProviders, s as DYNAMIC_AUTH_COOKIE_NAME, t as getVerifiedCredentialForWalletAccount, v as splitWalletProviderKey, w as setCookie, x as offEvent } from "./getVerifiedCredentialForWalletAccount-cVOVjcUI.esm.js";
4
- import { i as bufferToHex, n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-YAISA589.esm.js";
5
- import { n as refreshUser, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-CbHIr6GK.esm.js";
6
- import { t as InvalidParamError } from "./InvalidParamError-Cigi7zsS.esm.js";
1
+ import { C as getDefaultClient, D as getCore, E as BaseError, O as name, _ as isCookieEnabled, a as SDK_API_CORE_VERSION, b as randomString, c as createApiClient, d as MfaInvalidOtpError, f as LinkCredentialError, g as getBuffer, i as DYNAMIC_ICONIC_SPRITE_URL, k as version, l as SandboxMaximumThresholdReachedError, m as APIError, o as getChainFromVerifiedCredentialChain, p as InvalidExternalAuthError, s as CHAINS_INFO_MAP, u as MfaRateLimitedError, v as assertDefined, w as setDefaultClient, x as CLIENT_SDK_NAME, y as ValueMustBeDefinedError } from "./constants-hy8OYHwt.esm.js";
2
+ import { A as isEqualShallow, C as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, E as createStorage, O as createLocalStorageAdapter, S as GENERATE_SESSION_KEYS_TRACKER_KEY, T as createStorageKeySchema, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, b as createDeferredPromise, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as WalletAlreadyLinkedToAnotherUserError, h as isCaptchaRequired, i as getNetworksData, k as subscribeWithSelector, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as setCaptchaToken, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createLogger, w as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, x as FETCH_PROJECT_SETTINGS_TRACKER_KEY, y as CannotTrackError } from "./getNetworkProviderFromNetworkId-vL_E8aHC.esm.js";
3
+ import { D as onceEvent, E as onEvent, O as setCookie, S as splitWalletProviderKey, T as offEvent, _ as getWalletAccounts, b as formatWalletAccountId, c as getWalletProviders, d as DYNAMIC_AUTH_COOKIE_NAME, f as getWalletProviderFromWalletAccount, g as NoWalletProviderFoundError, i as restoreUserSharesForAllWalletAccounts, l as checkAndRaiseWalletAccountsChangedEvent, n as getWalletProviderByKey, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as emitWalletAccountsChangedEvent, w as emitEvent, x as normalizeAddress } from "./getVerifiedCredentialForWalletAccount-c_lbXWMG.esm.js";
4
+ import { i as bufferToHex, n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-BgevGq0s.esm.js";
5
+ import { n as refreshAuth, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-D0YXdfTu.esm.js";
6
+ import { t as InvalidParamError } from "./InvalidParamError-c8UAEGKA.esm.js";
7
7
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
8
8
  import { AuthModeEnum, JwtVerifiedCredentialFormatEnum, MFAAction, MfaBackupCodeAcknowledgement, ProviderEnum } from "@dynamic-labs/sdk-api-core";
9
9
  import * as z from "zod/mini";
10
- import EventEmitter, { EventEmitter as EventEmitter$1 } from "eventemitter3";
10
+ import EventEmitter$1, { EventEmitter } from "eventemitter3";
11
11
  import { browserSupportsWebAuthn, startAuthentication, startRegistration } from "@simplewebauthn/browser";
12
12
 
13
13
  //#region src/modules/state/raiseStateEvents/events.ts
@@ -501,7 +501,7 @@ const initializeClient = async (client = getDefaultClient()) => {
501
501
  * This call can fail with a 401 error if the user is not logged in and the SDK should finish its initialization process
502
502
  * without throwing an error because that is an expected behavior.
503
503
  */
504
- if (isCookieEnabled(client)) await refreshUser(client).catch(async (error) => {
504
+ if (isCookieEnabled(client)) await refreshAuth(client).catch(async (error) => {
505
505
  if (error.status === 401) {
506
506
  if (client.user) await logout(client);
507
507
  } else throw error;
@@ -530,6 +530,7 @@ const initializeClient = async (client = getDefaultClient()) => {
530
530
  core.state.set({ initStatus: "failed" });
531
531
  throw error;
532
532
  }
533
+ if (client.user) restoreUserSharesForAllWalletAccounts(client);
533
534
  };
534
535
 
535
536
  //#endregion
@@ -552,7 +553,7 @@ const createAsyncTrack = () => {
552
553
  * This ensures no process is missed (as it would throw when tracked on a different node tick).
553
554
  */
554
555
  let isTrackEnabled = true;
555
- const eventEmitter = new EventEmitter$1();
556
+ const eventEmitter = new EventEmitter();
556
557
  const allSettledPromise = createDeferredPromise();
557
558
  const tracker = /* @__PURE__ */ new Map();
558
559
  /**
@@ -598,7 +599,7 @@ const createAsyncTrack = () => {
598
599
 
599
600
  //#endregion
600
601
  //#region src/services/eventEmitter/createEventEmitter.ts
601
- const createEventEmitter = () => new EventEmitter();
602
+ const createEventEmitter = () => new EventEmitter$1();
602
603
 
603
604
  //#endregion
604
605
  //#region src/errors/UnavailableInServerSideError.ts
@@ -959,6 +960,45 @@ var MissingUserVerificationError = class extends BaseError {
959
960
  }
960
961
  };
961
962
 
963
+ //#endregion
964
+ //#region src/errors/NetworkAddingUnavailableError.ts
965
+ var NetworkAddingUnavailableError = class extends BaseError {
966
+ constructor({ walletProviderKey, originalError, extraMessages }) {
967
+ const cause = originalError instanceof Error ? originalError : null;
968
+ super({
969
+ cause,
970
+ code: "network_adding_unavailable",
971
+ docsUrl: null,
972
+ metaMessages: [`Wallet provider key: ${walletProviderKey}`, ...extraMessages ?? []],
973
+ name: "NetworkAddingUnavailableError",
974
+ shortMessage: `Network adding is not available for this wallet provider. The user should manually add the network in their wallet`
975
+ });
976
+ }
977
+ };
978
+
979
+ //#endregion
980
+ //#region src/errors/NetworkNotAddedError.ts
981
+ var NetworkNotAddedError = class extends BaseError {
982
+ networkData;
983
+ constructor({ networkData, networkId, originalError, walletProviderKey }) {
984
+ const cause = originalError instanceof Error ? originalError : null;
985
+ super({
986
+ cause,
987
+ code: "network_not_added",
988
+ docsUrl: null,
989
+ metaMessages: [
990
+ `Wallet provider key: ${walletProviderKey}`,
991
+ `Network ID: ${networkId}`,
992
+ "The network is not added to the wallet. If the wallet provider supports adding networks, call the `addNetwork` method before switching.",
993
+ "The network data is available in the error payload as `error.networkData` and can be passed directly to `addNetwork`."
994
+ ],
995
+ name: "NetworkNotAddedError",
996
+ shortMessage: `Cannot switch to network ${networkId} because it is not added to the wallet. If the wallet provider supports it, call \`addNetwork\` with the network data from \`error.networkData\` first.`
997
+ });
998
+ this.networkData = networkData;
999
+ }
1000
+ };
1001
+
962
1002
  //#endregion
963
1003
  //#region src/errors/NetworkSwitchingUnavailableError.ts
964
1004
  var NetworkSwitchingUnavailableError = class extends BaseError {
@@ -1882,6 +1922,41 @@ const fetchLegacyWalletBook = async (client) => {
1882
1922
  }
1883
1923
  };
1884
1924
 
1925
+ //#endregion
1926
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/shouldFilterWallet/shouldFilterWallet.ts
1927
+ /**
1928
+ * Embedded wallet keys that should be filtered out from the WalletConnect catalog.
1929
+ * These wallets are not meant to be displayed in wallet selection lists.
1930
+ */
1931
+ const EMBEDDED_WALLET_KEYS = [
1932
+ "magicemailotp",
1933
+ "magiclink",
1934
+ "magicsocial",
1935
+ "turnkey",
1936
+ "turnkeyhd",
1937
+ "zerodev",
1938
+ "dynamicwaas",
1939
+ "coinbasempc",
1940
+ "mpcvault",
1941
+ "mpcwallet"
1942
+ ];
1943
+ /**
1944
+ * Checks if a wallet should be filtered out from the WalletConnect catalog.
1945
+ *
1946
+ * @param walletKey - The wallet key identifier.
1947
+ * @param wallet - The wallet schema to check.
1948
+ * @returns True if the wallet should be filtered out, false otherwise.
1949
+ */
1950
+ const shouldFilterWallet = (walletKey, wallet) => {
1951
+ if (EMBEDDED_WALLET_KEYS.includes(walletKey)) return true;
1952
+ if (!wallet.walletConnect || !wallet.walletConnect.sdks.includes("sign_v2")) return true;
1953
+ const hasInjectedConfig = wallet.injectedConfig && wallet.injectedConfig.length > 0;
1954
+ const hasMobileLinks = Boolean(wallet.mobile?.androidId || wallet.mobile?.iosId || wallet.mobile?.native || wallet.mobile?.universal);
1955
+ const hasDesktopLinks = Boolean(wallet.desktop?.chromeId || wallet.desktop?.edgeId || wallet.desktop?.firefoxId || wallet.desktop?.operaId || wallet.desktop?.safariId || wallet.desktop?.universal);
1956
+ if (hasInjectedConfig && !hasMobileLinks && !hasDesktopLinks) return true;
1957
+ return false;
1958
+ };
1959
+
1885
1960
  //#endregion
1886
1961
  //#region src/modules/legacyWalletBook/getSpriteUrl/getSpriteUrl.ts
1887
1962
  /**
@@ -1892,6 +1967,21 @@ const fetchLegacyWalletBook = async (client) => {
1892
1967
  */
1893
1968
  const getSpriteUrl = ({ spriteId }) => `${DYNAMIC_ICONIC_SPRITE_URL}#${spriteId}`;
1894
1969
 
1970
+ //#endregion
1971
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/transformGroup/transformGroup.ts
1972
+ /**
1973
+ * Transforms a wallet group schema into a WalletConnect catalog group.
1974
+ */
1975
+ const transformGroup = ({ group }) => {
1976
+ const spriteId = group.brand?.spriteId ?? "";
1977
+ return {
1978
+ key: group.key,
1979
+ name: group.name,
1980
+ primaryColor: group.brand?.primaryColor,
1981
+ spriteUrl: spriteId ? getSpriteUrl({ spriteId }) : ""
1982
+ };
1983
+ };
1984
+
1895
1985
  //#endregion
1896
1986
  //#region src/modules/legacyWalletBook/getWalletConnectCatalog/getChainFromWalletSchema/getChainFromWalletSchema.ts
1897
1987
  /**
@@ -2027,54 +2117,7 @@ const getChainFromWalletSchema = ({ wallet, walletKey }) => {
2027
2117
  };
2028
2118
 
2029
2119
  //#endregion
2030
- //#region src/modules/legacyWalletBook/getWalletConnectCatalog/shouldFilterWallet/shouldFilterWallet.ts
2031
- /**
2032
- * Embedded wallet keys that should be filtered out from the WalletConnect catalog.
2033
- * These wallets are not meant to be displayed in wallet selection lists.
2034
- */
2035
- const EMBEDDED_WALLET_KEYS = [
2036
- "magicemailotp",
2037
- "magiclink",
2038
- "magicsocial",
2039
- "turnkey",
2040
- "turnkeyhd",
2041
- "zerodev",
2042
- "dynamicwaas",
2043
- "coinbasempc",
2044
- "mpcvault",
2045
- "mpcwallet"
2046
- ];
2047
- /**
2048
- * Checks if a wallet should be filtered out from the WalletConnect catalog.
2049
- *
2050
- * @param walletKey - The wallet key identifier.
2051
- * @param wallet - The wallet schema to check.
2052
- * @returns True if the wallet should be filtered out, false otherwise.
2053
- */
2054
- const shouldFilterWallet = (walletKey, wallet) => {
2055
- if (EMBEDDED_WALLET_KEYS.includes(walletKey)) return true;
2056
- if (!wallet.walletConnect || !wallet.walletConnect.sdks.includes("sign_v2")) return true;
2057
- const hasInjectedConfig = wallet.injectedConfig && wallet.injectedConfig.length > 0;
2058
- const hasMobileLinks = Boolean(wallet.mobile?.androidId || wallet.mobile?.iosId || wallet.mobile?.native || wallet.mobile?.universal);
2059
- const hasDesktopLinks = Boolean(wallet.desktop?.chromeId || wallet.desktop?.edgeId || wallet.desktop?.firefoxId || wallet.desktop?.operaId || wallet.desktop?.safariId || wallet.desktop?.universal);
2060
- if (hasInjectedConfig && !hasMobileLinks && !hasDesktopLinks) return true;
2061
- return false;
2062
- };
2063
-
2064
- //#endregion
2065
- //#region src/modules/legacyWalletBook/getWalletConnectCatalog/getWalletConnectCatalog.ts
2066
- /**
2067
- * Transforms a wallet group schema into a WalletConnect catalog group.
2068
- */
2069
- const transformGroup = ({ group }) => {
2070
- const spriteId = group.brand?.spriteId ?? "";
2071
- return {
2072
- key: group.key,
2073
- name: group.name,
2074
- primaryColor: group.brand?.primaryColor,
2075
- spriteUrl: spriteId ? getSpriteUrl({ spriteId }) : ""
2076
- };
2077
- };
2120
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/transformWallet/transformWallet.ts
2078
2121
  /**
2079
2122
  * Transforms a wallet schema into a WalletConnect catalog wallet entry.
2080
2123
  */
@@ -2101,6 +2144,9 @@ const transformWallet = ({ wallet, walletKey }) => {
2101
2144
  spriteUrl: spriteId ? getSpriteUrl({ spriteId }) : ""
2102
2145
  };
2103
2146
  };
2147
+
2148
+ //#endregion
2149
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/transformWalletBook/transformWalletBook.ts
2104
2150
  /**
2105
2151
  * Transforms the legacy wallet book into a WalletConnect catalog structure.
2106
2152
  * Filters out embedded wallets and injected-only wallets.
@@ -2121,6 +2167,9 @@ const transformWalletBook = ({ walletBook }) => {
2121
2167
  wallets
2122
2168
  };
2123
2169
  };
2170
+
2171
+ //#endregion
2172
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/getWalletConnectCatalog.ts
2124
2173
  /**
2125
2174
  * Retrieves the WalletConnect catalog from Dynamic's wallet book.
2126
2175
  *
@@ -3589,6 +3638,27 @@ const deleteUser = async (client = getDefaultClient()) => {
3589
3638
  await logout(client);
3590
3639
  };
3591
3640
 
3641
+ //#endregion
3642
+ //#region src/modules/user/refreshUser/refreshUser.ts
3643
+ /**
3644
+ * Refreshes the current user's data from the server.
3645
+ *
3646
+ * This function fetches the latest authenticated user information from the backend
3647
+ * and updates the local user state.
3648
+ *
3649
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
3650
+ * @returns A promise that resolves to the authenticated user.
3651
+ */
3652
+ const refreshUser = async (client = getDefaultClient()) => {
3653
+ const core = getCore(client);
3654
+ const apiClient = createApiClient({}, client);
3655
+ const previousState = { ...core.state.get() };
3656
+ const user = await apiClient.getAuthenticatedUser({ environmentId: core.environmentId });
3657
+ core.state.set({ user });
3658
+ checkAndRaiseWalletAccountsChangedEvent({ previousState }, client);
3659
+ return user;
3660
+ };
3661
+
3592
3662
  //#endregion
3593
3663
  //#region src/modules/wallets/assertWalletAccountSigningAvailability/assertWalletAccountSigningAvailability.ts
3594
3664
  /**
@@ -3925,6 +3995,30 @@ const isWalletAccountVerified = ({ walletAccount }) => {
3925
3995
  return walletAccount.verifiedCredentialId !== null;
3926
3996
  };
3927
3997
 
3998
+ //#endregion
3999
+ //#region src/modules/wallets/networks/addNetwork/addNetwork.ts
4000
+ /**
4001
+ * Adds a network to the wallet provider.
4002
+ *
4003
+ * This function requests that the wallet provider add a network
4004
+ * to its list of available networks.
4005
+ *
4006
+ * @param params.networkData - The network configuration data to add to the wallet.
4007
+ * @param params.walletAccount - The wallet account to add the network for.
4008
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
4009
+ * @returns A promise that resolves when the network addition is complete.
4010
+ * @throws NetworkAddingUnavailableError If the wallet provider doesn't support adding networks.
4011
+ */
4012
+ const addNetwork = async ({ networkData, walletAccount }, client = getDefaultClient()) => {
4013
+ const walletProvider = getWalletProviderByKey({ walletProviderKey: walletAccount.walletProviderKey }, client);
4014
+ if (walletProvider.addNetwork === void 0) throw new NetworkAddingUnavailableError({
4015
+ extraMessages: [`Wallet provider ${walletAccount.walletProviderKey} does not have addNetwork method`],
4016
+ originalError: null,
4017
+ walletProviderKey: walletAccount.walletProviderKey
4018
+ });
4019
+ return walletProvider.addNetwork({ networkData });
4020
+ };
4021
+
3928
4022
  //#endregion
3929
4023
  //#region src/modules/wallets/networks/getActiveNetworkData/getActiveNetworkData.ts
3930
4024
  /**
@@ -4085,13 +4179,30 @@ const selectPrimaryWalletAccount = async ({ walletAccount }, client = getDefault
4085
4179
  }] }, client);
4086
4180
  };
4087
4181
 
4182
+ //#endregion
4183
+ //#region src/modules/wallets/disconnectWalletAccount/disconnectWalletAccount.ts
4184
+ /**
4185
+ * This function disconnects the specified wallet account with the wallet provider.
4186
+ *
4187
+ * The wallet account is not removed from the user's profile or from dynamic's state,
4188
+ * it is only responsible for terminating the connection with the wallet provider.
4189
+ */
4190
+ const disconnectWalletAccount = async ({ walletAccount }, client) => {
4191
+ try {
4192
+ await getWalletProviderFromWalletAccount({ walletAccount }, client).disconnectWalletAccount?.({ walletAccount });
4193
+ } catch (error) {
4194
+ if (error instanceof NoWalletProviderFoundError) return;
4195
+ throw error;
4196
+ }
4197
+ };
4198
+
4088
4199
  //#endregion
4089
4200
  //#region src/modules/wallets/removeWalletAccount/removeWalletAccount.ts
4090
4201
  /**
4091
4202
  * Removes a wallet account from the current session or user (if authenticated).
4092
4203
  *
4093
- * This function disconnects and removes the specified wallet account,
4094
- * updating both local state and server records (if there is an authenticated user).
4204
+ * This function both disconnects and removes the specified wallet account,
4205
+ * updating local state and server records (if there is an authenticated user).
4095
4206
  * For verified wallets, it will unlink them from the user's account.
4096
4207
  *
4097
4208
  * @param params.walletAccount - The wallet account to remove.
@@ -4101,12 +4212,7 @@ const selectPrimaryWalletAccount = async ({ walletAccount }, client = getDefault
4101
4212
  const removeWalletAccount = async ({ walletAccount }, client = getDefaultClient()) => {
4102
4213
  const core = getCore(client);
4103
4214
  const apiClient = createApiClient({}, client);
4104
- try {
4105
- await getWalletProviderFromWalletAccount({ walletAccount }, client).disconnectWalletAccount?.({ walletAccount });
4106
- } catch (error) {
4107
- if (error instanceof NoWalletProviderFoundError) return;
4108
- throw error;
4109
- }
4215
+ await disconnectWalletAccount({ walletAccount }, client);
4110
4216
  if (!walletAccount.verifiedCredentialId) {
4111
4217
  removeUnverifiedWalletAccount({ unverifiedWalletAccount: walletAccount }, client);
4112
4218
  return;
@@ -4245,5 +4351,5 @@ const isIPad = (maxTouchPointsOverride) => {
4245
4351
  assertPackageVersion(name, version);
4246
4352
 
4247
4353
  //#endregion
4248
- export { BaseError, ClientAlreadyInitializedError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, SandboxMaximumThresholdReachedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, authenticateWithSocial, completeSocialAuthentication, connectAndVerifyWithWalletProvider, connectWithWalletProvider, consumeMfaToken, createCoinbaseOnrampOrder, createCryptoDotComPayment, createDynamicClient, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, detectOAuthRedirect, fetchProjectSettings, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletProviderDataByKey, hasExtension, initializeClient, isCaptchaRequired, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isWalletAccountVerified, logout, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, proveWalletAccountOwnership, refreshUser, registerPasskey, registerTotpMfaDevice, removeWalletAccount, selectPrimaryWalletAccount, sendEmailOTP, sendSmsOTP, setCaptchaToken, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signMessage, switchActiveNetwork, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized };
4354
+ export { BaseError, ClientAlreadyInitializedError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, SandboxMaximumThresholdReachedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, authenticateWithSocial, completeSocialAuthentication, connectAndVerifyWithWalletProvider, connectWithWalletProvider, consumeMfaToken, createCoinbaseOnrampOrder, createCryptoDotComPayment, createDynamicClient, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, detectOAuthRedirect, fetchProjectSettings, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletProviderDataByKey, hasExtension, initializeClient, isCaptchaRequired, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isWalletAccountVerified, logout, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, proveWalletAccountOwnership, refreshAuth, refreshUser, registerPasskey, registerTotpMfaDevice, removeWalletAccount, selectPrimaryWalletAccount, sendEmailOTP, sendSmsOTP, setCaptchaToken, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signMessage, switchActiveNetwork, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized };
4249
4355
  //# sourceMappingURL=index.esm.js.map