@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVerifiedCredentialForWalletAccount-c_lbXWMG.esm.js","names":["walletAccountsMap: Map<string, WalletAccount>","newState: Partial<DynamicCoreState>","walletProvider"],"sources":["../src/utils/setCookie/setCookie.ts","../src/modules/clientEvents/clientEvents.ts","../src/errors/InvalidWalletProviderKeyError.ts","../src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.ts","../src/modules/wallets/utils/normalizeAddress/normalizeAddress.ts","../src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.ts","../src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.ts","../src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.ts","../src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.ts","../src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.ts","../src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.ts","../src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.ts","../src/modules/wallets/getWalletAccounts/getWalletAccounts.ts","../src/errors/NoWalletProviderFoundError.ts","../src/services/runtimeServices/createRuntimeServiceAccessKey/createRuntimeServiceAccessKey.ts","../src/modules/wallets/walletProviderRegistry/createWalletProviderRegistry/createWalletProviderRegistry.ts","../src/modules/wallets/walletProviderRegistry/getWalletProviderRegistry/getWalletProviderRegistry.ts","../src/modules/wallets/walletProviderRegistry/walletProviderRegistry.types.ts","../src/modules/wallets/utils/getWalletProviderFromWalletAccount/getWalletProviderFromWalletAccount.ts","../src/modules/auth/consts.ts","../src/modules/wallets/emitWalletAccountsChangedEvent/emitWalletAccountsChangedEvent.ts","../src/modules/auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent/checkAndRaiseWalletAccountsChangedEvent.ts","../src/modules/wallets/getWalletProviders/getWalletProviders.ts","../src/modules/waas/isWaasWalletProvider/isWaasWalletProvider.ts","../src/modules/waas/findWaasWalletProviderByChain/findWaasWalletProviderByChain.ts","../src/modules/waas/isWaasWalletAccount/isWaasWalletAccount.ts","../src/modules/waas/restoreUserSharesForAllWalletAccounts/restoreUserSharesForAllWalletAccounts.ts","../src/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.ts","../src/modules/wallets/getWalletProviderByKey/getWalletProviderByKey.ts","../src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.ts"],"sourcesContent":["/**\n * Sefelly sets the cookie in the browser.\n */\nexport const setCookie = (cookie: string) => {\n // eslint-disable-next-line no-restricted-globals\n document.cookie = cookie;\n};\n","import { getCore } from '../../client/core/getCore';\nimport { getDefaultClient } from '../../client/defaultClient';\nimport type { DynamicClient } from '../../client/types';\nimport type {\n DynamicEvents,\n EmitEventParams,\n OffEventParams,\n OnEventParams,\n OnceEventParams,\n} from './clientEvents.types';\n\n/**\n * Adds an event listener for Dynamic client events.\n *\n * This function allows you to listen for various events emitted by the Dynamic client,\n * such as authentication state changes, wallet connections, and more.\n *\n * @param params.event - The event name to listen for.\n * @param params.listener - The callback function to execute when the event is fired.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A function that can be called to remove the listener.\n */\nexport const onEvent = <E extends keyof DynamicEvents>(\n { event, listener }: OnEventParams<E>,\n client = getDefaultClient()\n) => {\n const { eventEmitter } = getCore(client);\n\n eventEmitter.on(event, listener);\n\n return () => {\n eventEmitter.off(event, listener);\n };\n};\n\n/**\n * Removes an event listener from Dynamic client events.\n *\n * This function unsubscribes a previously registered event listener\n * from the specified Dynamic client event.\n *\n * @param params.event - The event name to remove the listener from.\n * @param params.listener - The callback function to remove.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const offEvent = <E extends keyof DynamicEvents>(\n { event, listener }: OffEventParams<E>,\n client = getDefaultClient()\n) => {\n const { eventEmitter } = getCore(client);\n\n eventEmitter.off(event, listener);\n};\n\n/**\n * Adds a one-time event listener for Dynamic client events.\n *\n * This function listens for an event that will automatically remove itself\n * after being triggered once.\n *\n * @param params.event - The event name to listen for.\n * @param params.listener - The callback function to execute when the event is fired.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A function that can be called to remove the listener before it fires.\n */\nexport const onceEvent = <E extends keyof DynamicEvents>(\n { event, listener }: OnceEventParams<E>,\n client = getDefaultClient()\n) => {\n const { eventEmitter } = getCore(client);\n\n eventEmitter.once(event, listener);\n\n return () => {\n eventEmitter.off(event, listener);\n };\n};\n\n/**\n * Emits a Dynamic client event.\n *\n * This function triggers an event that will be received by all registered\n * listeners for the specified event type.\n *\n * @param params.event - The event name to emit.\n * @param params.args - The arguments to pass to event listeners.\n * @param client - The Dynamic client instance.\n */\nexport const emitEvent = <E extends keyof DynamicEvents>(\n { event, args }: EmitEventParams<E>,\n client: DynamicClient\n) => {\n const { eventEmitter } = getCore(client);\n\n eventEmitter.emit(event, args);\n};\n","import { BaseError } from './base';\n\nexport class InvalidWalletProviderKeyError extends BaseError {\n constructor(value: string) {\n super({\n cause: null,\n code: 'invalid_wallet_provider_key',\n docsUrl: null,\n name: 'InvalidWalletProviderKeyError',\n shortMessage: `Invalid wallet provider key: ${value}. Key must be in the format of <normalizedWalletNameWithChain>:<walletProviderType>[:<suffix>]`,\n });\n }\n}\n","import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { InvalidWalletProviderKeyError } from '../../../../errors/InvalidWalletProviderKeyError';\n\ntype SplitWalletProviderKeyResult = {\n normalizedWalletNameWithChain: string;\n suffix: string | undefined;\n walletProviderType: WalletProviderEnum;\n};\n\nexport const splitWalletProviderKey = (\n walletProviderKey: string\n): SplitWalletProviderKeyResult => {\n const [normalizedWalletNameWithChain, walletProviderType, suffix, ...rest] =\n walletProviderKey.split(':');\n\n if (\n !normalizedWalletNameWithChain ||\n !Object.values(WalletProviderEnum).includes(\n walletProviderType as WalletProviderEnum\n ) ||\n rest.length > 0\n ) {\n throw new InvalidWalletProviderKeyError(walletProviderKey);\n }\n\n return {\n normalizedWalletNameWithChain,\n suffix,\n walletProviderType: walletProviderType as WalletProviderEnum,\n };\n};\n","import type { Chain } from '../../../chain';\n\nexport const normalizeAddress = (address: string, chain: Chain) => {\n let normalizedAddress = address;\n\n if (normalizedAddress?.startsWith('0x')) {\n normalizedAddress = normalizedAddress.slice(2);\n }\n\n /**\n * These are standard from CAIP-2: https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md\n * see also: https://github.com/ChainAgnostic/namespaces\n * note: no standard namespace currently exists for flow\n */\n const chainsThatRequireLowercaseAddress: Chain[] = ['EVM', 'FLOW'];\n\n normalizedAddress = chainsThatRequireLowercaseAddress.includes(chain)\n ? normalizedAddress?.toLowerCase()\n : normalizedAddress;\n\n return normalizedAddress;\n};\n","import type { Chain } from '../../../chain';\nimport { splitWalletProviderKey } from '../../walletProvider/splitWalletProviderKey';\nimport { normalizeAddress } from '../normalizeAddress';\n\ntype CreateWalletAccountIdParams = {\n address: string;\n chain: Chain;\n walletProviderKey: string;\n};\n\nexport const formatWalletAccountId = ({\n address,\n chain,\n walletProviderKey,\n}: CreateWalletAccountIdParams): string => {\n const { normalizedWalletNameWithChain } =\n splitWalletProviderKey(walletProviderKey);\n\n const normalizedAddress = normalizeAddress(address, chain);\n\n return `${normalizedWalletNameWithChain}:${normalizedAddress}`;\n};\n","import type { UnverifiedWalletAccount } from '../../unverifiedWalletAccounts';\nimport type { WalletAccount } from '../../walletAccount';\nimport { formatWalletAccountId } from '../formatWalletAccountId';\n\ntype ConvertUnverifiedWalletAccountToWalletAccountParams = {\n unverifiedWalletAccount: UnverifiedWalletAccount;\n};\n\nexport const convertUnverifiedWalletAccountToWalletAccount = ({\n unverifiedWalletAccount,\n}: ConvertUnverifiedWalletAccountToWalletAccountParams): WalletAccount => ({\n address: unverifiedWalletAccount.address,\n addressesWithTypes: unverifiedWalletAccount.addressesWithTypes,\n chain: unverifiedWalletAccount.chain,\n id: formatWalletAccountId({\n address: unverifiedWalletAccount.address,\n chain: unverifiedWalletAccount.chain,\n walletProviderKey: unverifiedWalletAccount.walletProviderKey,\n }),\n lastSelectedAt: unverifiedWalletAccount.lastSelectedAt,\n verifiedCredentialId: null,\n walletProviderKey: unverifiedWalletAccount.walletProviderKey,\n});\n","import type { Chain } from '../../../chain';\n\ntype NormalizeWalletNameWithChainParams = {\n chain: Chain;\n displayName: string;\n};\n\n/**\n * Format the raw wallet name and chain to get the value we can use for\n * verified credentials' `walletName` field.\n */\nexport const normalizeWalletNameWithChain = ({\n displayName,\n chain,\n}: NormalizeWalletNameWithChainParams): string => {\n const sanitizedWalletName = displayName\n .replace(/[^a-zA-Z0-9]/g, '')\n .toLowerCase();\n\n const chainLowered = chain.toLocaleLowerCase();\n\n if (sanitizedWalletName.endsWith(chainLowered)) {\n return sanitizedWalletName;\n }\n\n return `${sanitizedWalletName}${chainLowered}`;\n};\n","import type { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type { Chain } from '../../../chain';\nimport { normalizeWalletNameWithChain } from '../normalizeWalletNameWithChain';\n\ntype FormatWalletProviderKeyParams = {\n chain: Chain;\n displayName: string;\n suffix?: string;\n walletProviderType: WalletProviderEnum;\n};\n\n/**\n * Assembles the wallet provider key from the wallet name, chain, and wallet provider type.\n *\n * The suffix is optional and can be used to add a uniquely identifying string to the key, which\n * might be necessary for some wallet providers (like Wallet Connect).\n *\n * IMPORTANT: Do NOT add a suffix unless absolutely necessary, as it will cause the wallet account\n * to not be able to find its wallet provider when connecting to a new device (it won't be possible\n * to determine the full key just from the Verified Credential data).\n */\nexport const formatWalletProviderKey = ({\n suffix,\n chain,\n displayName,\n walletProviderType,\n}: FormatWalletProviderKeyParams) => {\n const normalizedNameWithChain = normalizeWalletNameWithChain({\n chain,\n displayName,\n });\n\n return `${normalizedNameWithChain}:${walletProviderType}${\n suffix ? `:${suffix}` : ''\n }`;\n};\n","import type { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport { getChainFromVerifiedCredentialChain } from '../../../../../utils/getChainFromVerifiedCredentialChain';\nimport { formatWalletProviderKey } from '../../../utils/formatWalletProviderKey';\n\ntype GetWalletProviderKeyFromVerifiedCredentialParams = {\n verifiedCredential: JwtVerifiedCredential;\n};\n\nexport const getWalletProviderKeyFromVerifiedCredential = (\n { verifiedCredential }: GetWalletProviderKeyFromVerifiedCredentialParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n const { walletProviderKeyMap } = core.state.get();\n\n const storedWalletProviderKey = walletProviderKeyMap[verifiedCredential.id];\n\n if (storedWalletProviderKey) {\n return { walletProviderKey: storedWalletProviderKey };\n }\n\n /**\n * We fallback to comprising the wallet provider key from walletName and walletProvider.\n *\n * Some wallet provider types (like Wallet Connect) also use a special suffix for their wallet provider\n * keys, so this won't be enough for them.\n * Therefore, for those specific wallet providers, the wallet account will remain without a wallet provider\n * and will require reconnection.\n * Read walletProvider.types.ts for more info.\n */\n assertDefined(\n verifiedCredential.walletName,\n `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletName`\n );\n\n assertDefined(\n verifiedCredential.walletProvider,\n `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletProvider`\n );\n\n assertDefined(\n verifiedCredential.chain,\n `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing chain`\n );\n\n /**\n * Historically, walletNames did not include the chain name as a suffix.\n * This piece of logic simply ensures we normalize any legacy walletNames to conform.\n */\n const chain = getChainFromVerifiedCredentialChain(verifiedCredential.chain);\n\n const walletProviderKey = formatWalletProviderKey({\n chain,\n displayName: verifiedCredential.walletName,\n walletProviderType: verifiedCredential.walletProvider,\n });\n\n return { walletProviderKey };\n};\n","import type { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';\n\nimport type { DynamicClient } from '../../../../client/types';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport { getChainFromVerifiedCredentialChain } from '../../../../utils/getChainFromVerifiedCredentialChain';\nimport type { WalletAccount } from '../../walletAccount';\nimport { getWalletProviderKeyFromVerifiedCredential } from '../../walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential';\nimport { formatWalletAccountId } from '../formatWalletAccountId';\n\ntype ConvertVerifiedCredentialToWalletAccountParams = {\n verifiedCredential: JwtVerifiedCredential;\n};\n\nexport const convertVerifiedCredentialToWalletAccount = (\n { verifiedCredential }: ConvertVerifiedCredentialToWalletAccountParams,\n client: DynamicClient\n): WalletAccount => {\n assertDefined(\n verifiedCredential.address,\n 'Missing address in verified credential'\n );\n assertDefined(\n verifiedCredential.chain,\n 'Missing chain in verified credential'\n );\n\n const chain = getChainFromVerifiedCredentialChain(verifiedCredential.chain);\n\n const { walletProviderKey } = getWalletProviderKeyFromVerifiedCredential(\n {\n verifiedCredential,\n },\n client\n );\n\n const walletAccountId = formatWalletAccountId({\n address: verifiedCredential.address,\n chain,\n walletProviderKey,\n });\n\n return {\n address: verifiedCredential.address,\n addressesWithTypes: verifiedCredential.walletAdditionalAddresses,\n chain,\n id: walletAccountId,\n lastSelectedAt: verifiedCredential.lastSelectedAt ?? null,\n verifiedCredentialId: verifiedCredential.id,\n walletProviderKey,\n };\n};\n","import type { SdkUser } from '@dynamic-labs/sdk-api-core';\nimport { JwtVerifiedCredentialFormatEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type { DynamicClient } from '../../../../client/types';\nimport type { UnverifiedWalletAccount } from '../../unverifiedWalletAccounts';\nimport { convertUnverifiedWalletAccountToWalletAccount } from '../../utils/convertUnverifiedWalletAccountToWalletAccount';\nimport { convertVerifiedCredentialToWalletAccount } from '../../utils/convertVerifiedCredentialToWalletAccount';\nimport type { WalletAccount } from '../../walletAccount';\n\ntype GetWalletAccountsFromStateParams = {\n unverifiedWalletAccounts: UnverifiedWalletAccount[];\n user: SdkUser | null;\n};\n\nexport const getWalletAccountsFromState = (\n { unverifiedWalletAccounts, user }: GetWalletAccountsFromStateParams,\n client: DynamicClient\n): WalletAccount[] => {\n const walletAccountsMap: Map<string, WalletAccount> = new Map();\n\n /**\n * Handle the unverified wallet accounts before the user verified credentials\n * so the later verified wallet accounts can override the unverified wallet accounts\n */\n unverifiedWalletAccounts.forEach((unverifiedWalletAccount) => {\n const walletAccount = convertUnverifiedWalletAccountToWalletAccount({\n unverifiedWalletAccount,\n });\n\n walletAccountsMap.set(walletAccount.id, walletAccount);\n });\n\n /**\n * Handle user verified credentials\n */\n const verifiedCredentials = user?.verifiedCredentials ?? [];\n\n verifiedCredentials\n .filter(\n (verified) =>\n verified.format === JwtVerifiedCredentialFormatEnum.Blockchain\n )\n .forEach((verifiedWalletAccount) => {\n const walletAccount = convertVerifiedCredentialToWalletAccount(\n {\n verifiedCredential: verifiedWalletAccount,\n },\n client\n );\n\n walletAccountsMap.set(walletAccount.id, walletAccount);\n });\n\n return Array.from(walletAccountsMap.values());\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport type { WalletAccount } from '../walletAccount';\nimport { getWalletAccountsFromState } from './getWalletAccountsFromState';\n\n/**\n * Retrieves all wallet accounts associated with the current session.\n *\n * This function returns both verified and unverified wallet accounts,\n * combining data from user credentials and local unverified accounts.\n * You can differentiate between verified and unverified wallet accounts by\n * checking the `verifiedCredentialId` property.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An array of wallet accounts associated with the session.\n */\nexport const getWalletAccounts = (\n client = getDefaultClient()\n): WalletAccount[] => {\n const core = getCore(client);\n const { unverifiedWalletAccounts, user } = core.state.get();\n\n return getWalletAccountsFromState({ unverifiedWalletAccounts, user }, client);\n};\n","import { BaseError } from './base';\n\ntype NoWalletProviderFoundErrorParams = {\n walletProviderKey: string;\n};\n\nexport class NoWalletProviderFoundError extends BaseError {\n constructor({ walletProviderKey }: NoWalletProviderFoundErrorParams) {\n super({\n cause: null,\n code: 'no_wallet_provider_found_error',\n docsUrl: null,\n name: 'NoWalletProviderFoundError',\n shortMessage: `No wallet provider found with key: ${walletProviderKey}`,\n });\n }\n}\n","import type { DynamicClient } from '../../../client/types/DynamicClient';\nimport { getCore } from '../../../client/core/getCore';\n\n/**\n * Creates a service accessor function that manages service instantiation and caching.\n * The returned function will either retrieve an existing service from the registry or\n * create a new one using the provided builder function.\n *\n * @template - The type of service to be created/accessed\n * @param key - Unique identifier for the service in the registry\n * @param builder - Function that creates the service instance when called with a DynamicClient\n */\nexport const createRuntimeServiceAccessKey =\n <T>(key: string, builder: (client: DynamicClient) => T) =>\n (client: DynamicClient): T => {\n const { runtimeServices } = getCore(client);\n\n const currentService = runtimeServices.getByKey<T>(key);\n\n if (currentService) {\n return currentService;\n }\n\n const service = builder(client);\n\n runtimeServices.register(key, service);\n\n return service;\n };\n","import type { DynamicClient } from '../../../../client/types';\nimport { emitEvent } from '../../../clientEvents';\nimport type { WalletProvider } from '../../walletProvider/walletProvider.types';\nimport type { WalletProviderRegistry } from '../walletProviderRegistry.types';\n\n/**\n * Creates a new wallet provider registry that manages wallet providers with priority-based registration.\n *\n * @returns The wallet provider registry instance\n *\n * @example\n * ```typescript\n * const registry = createWalletProviderRegistry();\n *\n * registry.register({\n * priority: WalletProviderPriority.WALLET_SDK,\n * walletProvider: myWalletProvider\n * });\n *\n * const provider = registry.getByKey('my-wallet-key');\n * const providers = registry.listProviders();\n * ```\n */\nexport const createWalletProviderRegistry = (\n client: DynamicClient\n): WalletProviderRegistry => {\n const registry = new Map<\n string,\n { priority: number; walletProvider: WalletProvider }\n >();\n\n return {\n getByKey: (key) => registry.get(key)?.walletProvider,\n listProviders: () =>\n Array.from(registry.values()).map((v) => v.walletProvider),\n register: (args) => {\n const existingEntry = registry.get(args.walletProvider.key);\n\n if (existingEntry) {\n if (existingEntry.priority < args.priority) {\n registry.set(args.walletProvider.key, args);\n\n emitEvent(\n {\n args: { walletProviderKey: args.walletProvider.key },\n event: 'walletProviderChanged',\n },\n client\n );\n }\n } else {\n registry.set(args.walletProvider.key, args);\n\n emitEvent(\n {\n args: { walletProvider: args.walletProvider },\n event: 'walletProviderRegistered',\n },\n client\n );\n\n emitEvent(\n {\n args: { walletProviderKey: args.walletProvider.key },\n event: 'walletProviderChanged',\n },\n client\n );\n }\n },\n unregister: (key) => {\n registry.delete(key);\n\n emitEvent(\n {\n args: { walletProviderKey: key },\n event: 'walletProviderUnregistered',\n },\n client\n );\n },\n };\n};\n","import { createRuntimeServiceAccessKey } from '../../../../services/runtimeServices';\nimport { createWalletProviderRegistry } from '../createWalletProviderRegistry';\n\n/**\n * This function provides access to a shared instance of the wallet provider registry.\n *\n * It ensures that the same registry instance is used throughout the client to maintaining\n * consistency of registered wallet providers across different parts of the codebase.\n *\n * @returns The wallet provider registry instance\n *\n * @example\n * ```typescript\n * // Get the registry instance\n * const registry = getWalletProviderRegistry();\n *\n * // Register a wallet provider\n * registry.register({\n * priority: WalletProviderPriority.WALLET_SDK,\n * walletProvider: myWalletProvider\n * });\n *\n * // Retrieve a specific provider\n * const provider = registry.getByKey('metamaskevm');\n * ```\n */\nexport const getWalletProviderRegistry = createRuntimeServiceAccessKey(\n 'walletProviderRegistry',\n (client) => createWalletProviderRegistry(client)\n);\n","import type { WalletProvider } from '../walletProvider/walletProvider.types';\n\nexport enum WalletProviderPriority {\n /**\n * Highest priority should be used by wallet providers that implement\n * the most reliable wallet integration.\n * example: The SDK provided by the wallet provider.\n */\n WALLET_SDK = 100,\n /**\n * Medium priority should be used by wallet providers that implement\n * a wallet integration via some reliable standard.\n * example: A wallet provider that uses EIP6963 announcement.\n */\n WALLET_SELF_ANNOUNCEMENT_STANDARD = 50,\n /**\n * Low priority should be used by wallet providers that implement\n * a wallet integration on a less reliable standard.\n * example: A wallet provider that uses window.ethereum, where the\n * window key can be overridden by other extensions.\n */\n WINDOW_INJECT = 20,\n}\n\nexport type WalletProviderRegistry = {\n /**\n * Retrieves a wallet provider by its key.\n * @param key - The key of the wallet provider.\n * @returns The wallet provider.\n */\n getByKey: (key: string) => WalletProvider | undefined;\n /**\n * Retrieves all wallet providers.\n * @returns The wallet providers.\n */\n listProviders: () => WalletProvider[];\n /**\n * Registers a wallet provider.\n * @param args - The arguments for the wallet provider.\n */\n register: (args: {\n priority: WalletProviderPriority;\n walletProvider: WalletProvider;\n }) => void;\n /**\n * Unregisters a wallet provider.\n * @param key - The key of the wallet provider.\n */\n unregister: (key: string) => void;\n};\n","import type { DynamicClient } from '../../../../client/types';\nimport { NoWalletProviderFoundError } from '../../../../errors/NoWalletProviderFoundError';\nimport type { WalletAccount } from '../../walletAccount';\nimport { getWalletProviderRegistry } from '../../walletProviderRegistry';\n\ntype GetWalletProviderFromWalletAccountParams = {\n walletAccount: WalletAccount;\n};\n\nexport const getWalletProviderFromWalletAccount = (\n { walletAccount }: GetWalletProviderFromWalletAccountParams,\n client: DynamicClient\n) => {\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = walletProviderRegistry.getByKey(\n walletAccount.walletProviderKey\n );\n\n if (!walletProvider) {\n throw new NoWalletProviderFoundError({\n walletProviderKey: walletAccount.walletProviderKey,\n });\n }\n\n return walletProvider;\n};\n","export const DYNAMIC_AUTH_COOKIE_NAME = 'DYNAMIC_JWT_TOKEN';\n","import type { DynamicClient } from '../../../client/types';\nimport { emitEvent } from '../../clientEvents';\nimport { getWalletAccounts } from '../getWalletAccounts';\n\n/**\n * Emits the `walletAccountsChanged` event.\n */\nexport const emitWalletAccountsChangedEvent = (client: DynamicClient): void => {\n const walletAccounts = getWalletAccounts(client);\n\n emitEvent(\n {\n args: { walletAccounts },\n event: 'walletAccountsChanged',\n },\n client\n );\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport { emitWalletAccountsChangedEvent } from '../../../wallets/emitWalletAccountsChangedEvent';\nimport { getWalletAccountsFromState } from '../../../wallets/getWalletAccounts/getWalletAccountsFromState';\n\ntype CheckAndRaiseWalletAccountsChangedEventParams = {\n previousState: Readonly<DynamicCoreState>;\n};\n\nexport const checkAndRaiseWalletAccountsChangedEvent = (\n { previousState }: CheckAndRaiseWalletAccountsChangedEventParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n const walletAccountsHashBefore = getWalletAccountsHash(previousState, client);\n\n const walletAccountsHashAfter = getWalletAccountsHash(\n core.state.get(),\n client\n );\n\n if (walletAccountsHashBefore !== walletAccountsHashAfter) {\n emitWalletAccountsChangedEvent(client);\n }\n};\n\nconst getWalletAccountsHash = (\n state: Readonly<DynamicCoreState>,\n client: DynamicClient\n) =>\n getWalletAccountsFromState(state, client)\n .map((walletAccount) => JSON.stringify(walletAccount))\n .sort()\n .join('-');\n","import type { DynamicClient } from '../../../client/types';\nimport { getWalletProviderRegistry } from '../walletProviderRegistry';\n\n/**\n * Get all available wallet providers to interact with internally.\n */\nexport const getWalletProviders = (client: DynamicClient) => {\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n return walletProviderRegistry.listProviders();\n};\n","import type { WalletProvider } from '../../wallets/walletProvider';\nimport { DYNAMIC_WAAS_METADATA } from '../constants';\nimport type { WaasWalletProvider } from '../waas.types';\n\nexport const isWaasWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is WaasWalletProvider => {\n return walletProvider.key.includes(\n DYNAMIC_WAAS_METADATA.normalizedWalletName\n );\n};\n","import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type { DynamicClient } from '../../../client/types/DynamicClient';\nimport type { Chain } from '../../chain';\nimport { getWalletProviders } from '../../wallets/getWalletProviders';\nimport { formatWalletProviderKey } from '../../wallets/utils/formatWalletProviderKey';\nimport { DYNAMIC_WAAS_METADATA } from '../constants';\nimport { isWaasWalletProvider } from '../isWaasWalletProvider';\nimport type { WaasWalletProvider } from '../waas.types';\n\ntype FindWaasWalletProviderByChainParams = {\n chain: Chain;\n};\n\nexport const findWaasWalletProviderByChain = (\n { chain }: FindWaasWalletProviderByChainParams,\n client: DynamicClient\n): WaasWalletProvider | null => {\n const providers = getWalletProviders(client);\n\n const waasProviderKey = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType: WalletProviderEnum.EmbeddedWallet,\n });\n\n const waasProvider = providers.find(\n (provider) => provider.key === waasProviderKey && provider.chain === chain\n );\n\n if (!waasProvider || !isWaasWalletProvider(waasProvider)) {\n return null;\n }\n\n return waasProvider;\n};\n","import type { WalletAccount } from '../../wallets/walletAccount';\nimport { DYNAMIC_WAAS_METADATA } from '../constants';\n\ntype IsWaasWalletAccountParams = {\n walletAccount: WalletAccount;\n};\n\n/**\n * This function determines whether the provided wallet account is a Dynamic\n * WaaS wallet account.\n *\n * @param params.walletAccount - The wallet account to check.\n * @returns True if the wallet account is a WaaS wallet account, false otherwise.\n */\nexport const isWaasWalletAccount = ({\n walletAccount,\n}: IsWaasWalletAccountParams): boolean => {\n return walletAccount.walletProviderKey.includes(\n DYNAMIC_WAAS_METADATA.normalizedWalletName\n );\n};\n","import type { DynamicClient } from '../../../client/types';\nimport { getWalletAccounts } from '../../wallets/getWalletAccounts';\nimport { findWaasWalletProviderByChain } from '../findWaasWalletProviderByChain';\nimport { isWaasWalletAccount } from '../isWaasWalletAccount';\n\nexport const restoreUserSharesForAllWalletAccounts = async (\n client: DynamicClient\n) => {\n const walletAccounts = getWalletAccounts(client);\n\n const waasWalletAccounts = walletAccounts.filter((walletAccount) =>\n isWaasWalletAccount({ walletAccount })\n );\n\n await Promise.all(\n waasWalletAccounts.map(async (walletAccount) => {\n const provider = findWaasWalletProviderByChain(\n { chain: walletAccount.chain },\n client\n );\n\n /**\n * The environment might not have the embedded wallet extensions installed.\n * In that case there is no provider for the chain and we can skip restoring the user share.\n */\n if (!provider) return;\n\n return provider.restoreUserShareForWalletAccount({ walletAccount });\n })\n );\n};\n","import type { VerifyResponse } from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport type { DynamicCoreState } from '../../../client/core/types';\nimport type { DynamicClient } from '../../../client/types';\nimport { setCookie } from '../../../utils/setCookie';\nimport { isCookieEnabled } from '../../projectSettings/isCookieEnabled';\nimport { restoreUserSharesForAllWalletAccounts } from '../../waas/restoreUserSharesForAllWalletAccounts';\nimport { DYNAMIC_AUTH_COOKIE_NAME } from '../consts';\nimport { checkAndRaiseWalletAccountsChangedEvent } from './checkAndRaiseWalletAccountsChangedEvent';\n\ntype UpdateAuthFromVerifyResponseParams = {\n response: VerifyResponse;\n};\n\nexport const updateAuthFromVerifyResponse = (\n { response }: UpdateAuthFromVerifyResponseParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n const previousState = { ...core.state.get() };\n\n const { user, minifiedJwt, jwt, expiresAt, mfaToken } = response;\n\n // Expires at is in seconds, so we need to convert it to milliseconds\n const sessionExpiresAt = new Date(expiresAt * 1000);\n\n const newState: Partial<DynamicCoreState> = {\n legacyToken: jwt ?? null,\n sessionExpiresAt: sessionExpiresAt,\n token: minifiedJwt ?? null,\n user,\n };\n\n // only override the mfaToken if a new one is provided in the response\n if (mfaToken) {\n newState.mfaToken = mfaToken;\n }\n\n core.state.set(newState);\n\n /**\n * For customers using a sandbox environment with cookies enabled, we need to set the cookie\n * programmatically because Redcoast won't set the cookie via headers. We set the cookie programmatically\n * so customers can access the cookie from document.cookie consistently between sandbox and live environments.\n */\n if (minifiedJwt && isCookieEnabled(client)) {\n const expireDate = sessionExpiresAt.toUTCString();\n\n setCookie(\n `${DYNAMIC_AUTH_COOKIE_NAME}=${minifiedJwt}; expires=${expireDate}; path=/; SameSite=Lax`\n );\n }\n\n checkAndRaiseWalletAccountsChangedEvent({ previousState }, client);\n\n // if the user is logging in, we should restore user shares\n // for all wallet accounts for performance reasons\n const isUserLoggingIn = !previousState.user && Boolean(newState.user);\n if (isUserLoggingIn) {\n void restoreUserSharesForAllWalletAccounts(client);\n }\n};\n","import type { DynamicClient } from '../../../client/types';\nimport { NoWalletProviderFoundError } from '../../../errors/NoWalletProviderFoundError';\nimport { getWalletProviders } from '../getWalletProviders';\n\ntype GetWalletProviderByKeyParams = {\n walletProviderKey: string;\n};\n\nexport const getWalletProviderByKey = (\n { walletProviderKey }: GetWalletProviderByKeyParams,\n client: DynamicClient\n) => {\n const walletProviders = getWalletProviders(client);\n\n const walletProvider = walletProviders.find(\n (walletProvider) => walletProvider.key === walletProviderKey\n );\n\n if (!walletProvider) {\n throw new NoWalletProviderFoundError({ walletProviderKey });\n }\n\n return walletProvider;\n};\n","import type { DynamicClient } from '../../../../client/types/DynamicClient';\nimport type { WalletAccount } from '../../walletAccount';\n\ntype GetVerifiedCredentialForWalletAccountParams = {\n walletAccount: WalletAccount;\n};\n\nexport const getVerifiedCredentialForWalletAccount = (\n { walletAccount }: GetVerifiedCredentialForWalletAccountParams,\n client: DynamicClient\n) => {\n return client.user?.verifiedCredentials.find(\n (vc) => vc.id === walletAccount.verifiedCredentialId\n );\n};\n"],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -1,9 +1,9 @@
1
- const require_getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId-DKrjrs7X.cjs.js');
2
- const require_constants = require('./constants-B3wr3A32.cjs.js');
3
- const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-CR5wGUFK.cjs.js');
4
- const require_isMfaRequiredForAction = require('./isMfaRequiredForAction-Bwphi7AF.cjs.js');
5
- const require_NotWaasWalletAccountError = require('./NotWaasWalletAccountError-zV4xv0h6.cjs.js');
6
- const require_InvalidParamError = require('./InvalidParamError-DQv6ejTe.cjs.js');
1
+ const require_getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId-CTKZxd1T.cjs.js');
2
+ const require_constants = require('./constants-BbG0v26E.cjs.js');
3
+ const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-DAb9lFwa.cjs.js');
4
+ const require_isMfaRequiredForAction = require('./isMfaRequiredForAction-CAwdzRA9.cjs.js');
5
+ const require_NotWaasWalletAccountError = require('./NotWaasWalletAccountError-DUvIdb2w.cjs.js');
6
+ const require_InvalidParamError = require('./InvalidParamError-C5YtT7LQ.cjs.js');
7
7
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
8
8
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
9
9
  let zod_mini = require("zod/mini");
@@ -503,7 +503,7 @@ const initializeClient = async (client = require_constants.getDefaultClient()) =
503
503
  * This call can fail with a 401 error if the user is not logged in and the SDK should finish its initialization process
504
504
  * without throwing an error because that is an expected behavior.
505
505
  */
506
- if (require_constants.isCookieEnabled(client)) await require_NotWaasWalletAccountError.refreshUser(client).catch(async (error) => {
506
+ if (require_constants.isCookieEnabled(client)) await require_NotWaasWalletAccountError.refreshAuth(client).catch(async (error) => {
507
507
  if (error.status === 401) {
508
508
  if (client.user) await logout(client);
509
509
  } else throw error;
@@ -532,6 +532,7 @@ const initializeClient = async (client = require_constants.getDefaultClient()) =
532
532
  core.state.set({ initStatus: "failed" });
533
533
  throw error;
534
534
  }
535
+ if (client.user) require_getVerifiedCredentialForWalletAccount.restoreUserSharesForAllWalletAccounts(client);
535
536
  };
536
537
 
537
538
  //#endregion
@@ -961,6 +962,45 @@ var MissingUserVerificationError = class extends require_constants.BaseError {
961
962
  }
962
963
  };
963
964
 
965
+ //#endregion
966
+ //#region src/errors/NetworkAddingUnavailableError.ts
967
+ var NetworkAddingUnavailableError = class extends require_constants.BaseError {
968
+ constructor({ walletProviderKey, originalError, extraMessages }) {
969
+ const cause = originalError instanceof Error ? originalError : null;
970
+ super({
971
+ cause,
972
+ code: "network_adding_unavailable",
973
+ docsUrl: null,
974
+ metaMessages: [`Wallet provider key: ${walletProviderKey}`, ...extraMessages ?? []],
975
+ name: "NetworkAddingUnavailableError",
976
+ shortMessage: `Network adding is not available for this wallet provider. The user should manually add the network in their wallet`
977
+ });
978
+ }
979
+ };
980
+
981
+ //#endregion
982
+ //#region src/errors/NetworkNotAddedError.ts
983
+ var NetworkNotAddedError = class extends require_constants.BaseError {
984
+ networkData;
985
+ constructor({ networkData, networkId, originalError, walletProviderKey }) {
986
+ const cause = originalError instanceof Error ? originalError : null;
987
+ super({
988
+ cause,
989
+ code: "network_not_added",
990
+ docsUrl: null,
991
+ metaMessages: [
992
+ `Wallet provider key: ${walletProviderKey}`,
993
+ `Network ID: ${networkId}`,
994
+ "The network is not added to the wallet. If the wallet provider supports adding networks, call the `addNetwork` method before switching.",
995
+ "The network data is available in the error payload as `error.networkData` and can be passed directly to `addNetwork`."
996
+ ],
997
+ name: "NetworkNotAddedError",
998
+ 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.`
999
+ });
1000
+ this.networkData = networkData;
1001
+ }
1002
+ };
1003
+
964
1004
  //#endregion
965
1005
  //#region src/errors/NetworkSwitchingUnavailableError.ts
966
1006
  var NetworkSwitchingUnavailableError = class extends require_constants.BaseError {
@@ -1884,6 +1924,41 @@ const fetchLegacyWalletBook = async (client) => {
1884
1924
  }
1885
1925
  };
1886
1926
 
1927
+ //#endregion
1928
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/shouldFilterWallet/shouldFilterWallet.ts
1929
+ /**
1930
+ * Embedded wallet keys that should be filtered out from the WalletConnect catalog.
1931
+ * These wallets are not meant to be displayed in wallet selection lists.
1932
+ */
1933
+ const EMBEDDED_WALLET_KEYS = [
1934
+ "magicemailotp",
1935
+ "magiclink",
1936
+ "magicsocial",
1937
+ "turnkey",
1938
+ "turnkeyhd",
1939
+ "zerodev",
1940
+ "dynamicwaas",
1941
+ "coinbasempc",
1942
+ "mpcvault",
1943
+ "mpcwallet"
1944
+ ];
1945
+ /**
1946
+ * Checks if a wallet should be filtered out from the WalletConnect catalog.
1947
+ *
1948
+ * @param walletKey - The wallet key identifier.
1949
+ * @param wallet - The wallet schema to check.
1950
+ * @returns True if the wallet should be filtered out, false otherwise.
1951
+ */
1952
+ const shouldFilterWallet = (walletKey, wallet) => {
1953
+ if (EMBEDDED_WALLET_KEYS.includes(walletKey)) return true;
1954
+ if (!wallet.walletConnect || !wallet.walletConnect.sdks.includes("sign_v2")) return true;
1955
+ const hasInjectedConfig = wallet.injectedConfig && wallet.injectedConfig.length > 0;
1956
+ const hasMobileLinks = Boolean(wallet.mobile?.androidId || wallet.mobile?.iosId || wallet.mobile?.native || wallet.mobile?.universal);
1957
+ const hasDesktopLinks = Boolean(wallet.desktop?.chromeId || wallet.desktop?.edgeId || wallet.desktop?.firefoxId || wallet.desktop?.operaId || wallet.desktop?.safariId || wallet.desktop?.universal);
1958
+ if (hasInjectedConfig && !hasMobileLinks && !hasDesktopLinks) return true;
1959
+ return false;
1960
+ };
1961
+
1887
1962
  //#endregion
1888
1963
  //#region src/modules/legacyWalletBook/getSpriteUrl/getSpriteUrl.ts
1889
1964
  /**
@@ -1894,6 +1969,21 @@ const fetchLegacyWalletBook = async (client) => {
1894
1969
  */
1895
1970
  const getSpriteUrl = ({ spriteId }) => `${require_constants.DYNAMIC_ICONIC_SPRITE_URL}#${spriteId}`;
1896
1971
 
1972
+ //#endregion
1973
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/transformGroup/transformGroup.ts
1974
+ /**
1975
+ * Transforms a wallet group schema into a WalletConnect catalog group.
1976
+ */
1977
+ const transformGroup = ({ group }) => {
1978
+ const spriteId = group.brand?.spriteId ?? "";
1979
+ return {
1980
+ key: group.key,
1981
+ name: group.name,
1982
+ primaryColor: group.brand?.primaryColor,
1983
+ spriteUrl: spriteId ? getSpriteUrl({ spriteId }) : ""
1984
+ };
1985
+ };
1986
+
1897
1987
  //#endregion
1898
1988
  //#region src/modules/legacyWalletBook/getWalletConnectCatalog/getChainFromWalletSchema/getChainFromWalletSchema.ts
1899
1989
  /**
@@ -2029,54 +2119,7 @@ const getChainFromWalletSchema = ({ wallet, walletKey }) => {
2029
2119
  };
2030
2120
 
2031
2121
  //#endregion
2032
- //#region src/modules/legacyWalletBook/getWalletConnectCatalog/shouldFilterWallet/shouldFilterWallet.ts
2033
- /**
2034
- * Embedded wallet keys that should be filtered out from the WalletConnect catalog.
2035
- * These wallets are not meant to be displayed in wallet selection lists.
2036
- */
2037
- const EMBEDDED_WALLET_KEYS = [
2038
- "magicemailotp",
2039
- "magiclink",
2040
- "magicsocial",
2041
- "turnkey",
2042
- "turnkeyhd",
2043
- "zerodev",
2044
- "dynamicwaas",
2045
- "coinbasempc",
2046
- "mpcvault",
2047
- "mpcwallet"
2048
- ];
2049
- /**
2050
- * Checks if a wallet should be filtered out from the WalletConnect catalog.
2051
- *
2052
- * @param walletKey - The wallet key identifier.
2053
- * @param wallet - The wallet schema to check.
2054
- * @returns True if the wallet should be filtered out, false otherwise.
2055
- */
2056
- const shouldFilterWallet = (walletKey, wallet) => {
2057
- if (EMBEDDED_WALLET_KEYS.includes(walletKey)) return true;
2058
- if (!wallet.walletConnect || !wallet.walletConnect.sdks.includes("sign_v2")) return true;
2059
- const hasInjectedConfig = wallet.injectedConfig && wallet.injectedConfig.length > 0;
2060
- const hasMobileLinks = Boolean(wallet.mobile?.androidId || wallet.mobile?.iosId || wallet.mobile?.native || wallet.mobile?.universal);
2061
- const hasDesktopLinks = Boolean(wallet.desktop?.chromeId || wallet.desktop?.edgeId || wallet.desktop?.firefoxId || wallet.desktop?.operaId || wallet.desktop?.safariId || wallet.desktop?.universal);
2062
- if (hasInjectedConfig && !hasMobileLinks && !hasDesktopLinks) return true;
2063
- return false;
2064
- };
2065
-
2066
- //#endregion
2067
- //#region src/modules/legacyWalletBook/getWalletConnectCatalog/getWalletConnectCatalog.ts
2068
- /**
2069
- * Transforms a wallet group schema into a WalletConnect catalog group.
2070
- */
2071
- const transformGroup = ({ group }) => {
2072
- const spriteId = group.brand?.spriteId ?? "";
2073
- return {
2074
- key: group.key,
2075
- name: group.name,
2076
- primaryColor: group.brand?.primaryColor,
2077
- spriteUrl: spriteId ? getSpriteUrl({ spriteId }) : ""
2078
- };
2079
- };
2122
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/transformWallet/transformWallet.ts
2080
2123
  /**
2081
2124
  * Transforms a wallet schema into a WalletConnect catalog wallet entry.
2082
2125
  */
@@ -2103,6 +2146,9 @@ const transformWallet = ({ wallet, walletKey }) => {
2103
2146
  spriteUrl: spriteId ? getSpriteUrl({ spriteId }) : ""
2104
2147
  };
2105
2148
  };
2149
+
2150
+ //#endregion
2151
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/transformWalletBook/transformWalletBook.ts
2106
2152
  /**
2107
2153
  * Transforms the legacy wallet book into a WalletConnect catalog structure.
2108
2154
  * Filters out embedded wallets and injected-only wallets.
@@ -2123,6 +2169,9 @@ const transformWalletBook = ({ walletBook }) => {
2123
2169
  wallets
2124
2170
  };
2125
2171
  };
2172
+
2173
+ //#endregion
2174
+ //#region src/modules/legacyWalletBook/getWalletConnectCatalog/getWalletConnectCatalog.ts
2126
2175
  /**
2127
2176
  * Retrieves the WalletConnect catalog from Dynamic's wallet book.
2128
2177
  *
@@ -3591,6 +3640,27 @@ const deleteUser = async (client = require_constants.getDefaultClient()) => {
3591
3640
  await logout(client);
3592
3641
  };
3593
3642
 
3643
+ //#endregion
3644
+ //#region src/modules/user/refreshUser/refreshUser.ts
3645
+ /**
3646
+ * Refreshes the current user's data from the server.
3647
+ *
3648
+ * This function fetches the latest authenticated user information from the backend
3649
+ * and updates the local user state.
3650
+ *
3651
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
3652
+ * @returns A promise that resolves to the authenticated user.
3653
+ */
3654
+ const refreshUser = async (client = require_constants.getDefaultClient()) => {
3655
+ const core = require_constants.getCore(client);
3656
+ const apiClient = require_constants.createApiClient({}, client);
3657
+ const previousState = { ...core.state.get() };
3658
+ const user = await apiClient.getAuthenticatedUser({ environmentId: core.environmentId });
3659
+ core.state.set({ user });
3660
+ require_getVerifiedCredentialForWalletAccount.checkAndRaiseWalletAccountsChangedEvent({ previousState }, client);
3661
+ return user;
3662
+ };
3663
+
3594
3664
  //#endregion
3595
3665
  //#region src/modules/wallets/assertWalletAccountSigningAvailability/assertWalletAccountSigningAvailability.ts
3596
3666
  /**
@@ -3927,6 +3997,30 @@ const isWalletAccountVerified = ({ walletAccount }) => {
3927
3997
  return walletAccount.verifiedCredentialId !== null;
3928
3998
  };
3929
3999
 
4000
+ //#endregion
4001
+ //#region src/modules/wallets/networks/addNetwork/addNetwork.ts
4002
+ /**
4003
+ * Adds a network to the wallet provider.
4004
+ *
4005
+ * This function requests that the wallet provider add a network
4006
+ * to its list of available networks.
4007
+ *
4008
+ * @param params.networkData - The network configuration data to add to the wallet.
4009
+ * @param params.walletAccount - The wallet account to add the network for.
4010
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
4011
+ * @returns A promise that resolves when the network addition is complete.
4012
+ * @throws NetworkAddingUnavailableError If the wallet provider doesn't support adding networks.
4013
+ */
4014
+ const addNetwork = async ({ networkData, walletAccount }, client = require_constants.getDefaultClient()) => {
4015
+ const walletProvider = require_getVerifiedCredentialForWalletAccount.getWalletProviderByKey({ walletProviderKey: walletAccount.walletProviderKey }, client);
4016
+ if (walletProvider.addNetwork === void 0) throw new NetworkAddingUnavailableError({
4017
+ extraMessages: [`Wallet provider ${walletAccount.walletProviderKey} does not have addNetwork method`],
4018
+ originalError: null,
4019
+ walletProviderKey: walletAccount.walletProviderKey
4020
+ });
4021
+ return walletProvider.addNetwork({ networkData });
4022
+ };
4023
+
3930
4024
  //#endregion
3931
4025
  //#region src/modules/wallets/networks/getActiveNetworkData/getActiveNetworkData.ts
3932
4026
  /**
@@ -4087,13 +4181,30 @@ const selectPrimaryWalletAccount = async ({ walletAccount }, client = require_co
4087
4181
  }] }, client);
4088
4182
  };
4089
4183
 
4184
+ //#endregion
4185
+ //#region src/modules/wallets/disconnectWalletAccount/disconnectWalletAccount.ts
4186
+ /**
4187
+ * This function disconnects the specified wallet account with the wallet provider.
4188
+ *
4189
+ * The wallet account is not removed from the user's profile or from dynamic's state,
4190
+ * it is only responsible for terminating the connection with the wallet provider.
4191
+ */
4192
+ const disconnectWalletAccount = async ({ walletAccount }, client) => {
4193
+ try {
4194
+ await require_getVerifiedCredentialForWalletAccount.getWalletProviderFromWalletAccount({ walletAccount }, client).disconnectWalletAccount?.({ walletAccount });
4195
+ } catch (error) {
4196
+ if (error instanceof require_getVerifiedCredentialForWalletAccount.NoWalletProviderFoundError) return;
4197
+ throw error;
4198
+ }
4199
+ };
4200
+
4090
4201
  //#endregion
4091
4202
  //#region src/modules/wallets/removeWalletAccount/removeWalletAccount.ts
4092
4203
  /**
4093
4204
  * Removes a wallet account from the current session or user (if authenticated).
4094
4205
  *
4095
- * This function disconnects and removes the specified wallet account,
4096
- * updating both local state and server records (if there is an authenticated user).
4206
+ * This function both disconnects and removes the specified wallet account,
4207
+ * updating local state and server records (if there is an authenticated user).
4097
4208
  * For verified wallets, it will unlink them from the user's account.
4098
4209
  *
4099
4210
  * @param params.walletAccount - The wallet account to remove.
@@ -4103,12 +4214,7 @@ const selectPrimaryWalletAccount = async ({ walletAccount }, client = require_co
4103
4214
  const removeWalletAccount = async ({ walletAccount }, client = require_constants.getDefaultClient()) => {
4104
4215
  const core = require_constants.getCore(client);
4105
4216
  const apiClient = require_constants.createApiClient({}, client);
4106
- try {
4107
- await require_getVerifiedCredentialForWalletAccount.getWalletProviderFromWalletAccount({ walletAccount }, client).disconnectWalletAccount?.({ walletAccount });
4108
- } catch (error) {
4109
- if (error instanceof require_getVerifiedCredentialForWalletAccount.NoWalletProviderFoundError) return;
4110
- throw error;
4111
- }
4217
+ await disconnectWalletAccount({ walletAccount }, client);
4112
4218
  if (!walletAccount.verifiedCredentialId) {
4113
4219
  require_getNetworkProviderFromNetworkId.removeUnverifiedWalletAccount({ unverifiedWalletAccount: walletAccount }, client);
4114
4220
  return;
@@ -4264,6 +4370,8 @@ exports.MfaRateLimitedError = require_constants.MfaRateLimitedError;
4264
4370
  exports.MissingRedirectStorageStateError = MissingRedirectStorageStateError;
4265
4371
  exports.MissingSocialUrlParamError = MissingSocialUrlParamError;
4266
4372
  exports.MissingUserVerificationError = MissingUserVerificationError;
4373
+ exports.NetworkAddingUnavailableError = NetworkAddingUnavailableError;
4374
+ exports.NetworkNotAddedError = NetworkNotAddedError;
4267
4375
  exports.NetworkSwitchingUnavailableError = NetworkSwitchingUnavailableError;
4268
4376
  exports.NoAddressFoundError = NoAddressFoundError;
4269
4377
  exports.NoNetworkProvidersError = require_getNetworkProviderFromNetworkId.NoNetworkProvidersError;
@@ -4282,6 +4390,7 @@ exports.WalletAlreadyLinkedToAnotherUserError = require_getNetworkProviderFromNe
4282
4390
  exports.WalletProviderMethodUnavailableError = WalletProviderMethodUnavailableError;
4283
4391
  exports.acknowledgeRecoveryCodes = acknowledgeRecoveryCodes;
4284
4392
  exports.addCoinbaseOnrampOrderEventListener = addCoinbaseOnrampOrderEventListener;
4393
+ exports.addNetwork = addNetwork;
4285
4394
  exports.assertWalletAccountSigningAvailability = assertWalletAccountSigningAvailability;
4286
4395
  exports.assertWalletProviderMethodDefined = assertWalletProviderMethodDefined;
4287
4396
  exports.authenticateMfaRecoveryCode = authenticateMfaRecoveryCode;
@@ -4343,7 +4452,8 @@ exports.onEvent = require_getVerifiedCredentialForWalletAccount.onEvent;
4343
4452
  exports.onWalletProviderEvent = onWalletProviderEvent;
4344
4453
  exports.onceEvent = require_getVerifiedCredentialForWalletAccount.onceEvent;
4345
4454
  exports.proveWalletAccountOwnership = proveWalletAccountOwnership;
4346
- exports.refreshUser = require_NotWaasWalletAccountError.refreshUser;
4455
+ exports.refreshAuth = require_NotWaasWalletAccountError.refreshAuth;
4456
+ exports.refreshUser = refreshUser;
4347
4457
  exports.registerPasskey = registerPasskey;
4348
4458
  exports.registerTotpMfaDevice = registerTotpMfaDevice;
4349
4459
  exports.removeWalletAccount = removeWalletAccount;