@dynamic-labs-sdk/client 0.2.4 → 0.3.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 (77) hide show
  1. package/dist/{InvalidParamError-DQv6ejTe.cjs.js → InvalidParamError-quxEncyd.cjs.js} +2 -2
  2. package/dist/{InvalidParamError-DQv6ejTe.cjs.js.map → InvalidParamError-quxEncyd.cjs.js.map} +1 -1
  3. package/dist/{InvalidParamError-Cigi7zsS.esm.js → InvalidParamError-tpCmR-0K.esm.js} +2 -2
  4. package/dist/{InvalidParamError-Cigi7zsS.esm.js.map → InvalidParamError-tpCmR-0K.esm.js.map} +1 -1
  5. package/dist/NotWaasWalletAccountError-B5f6_w78.esm.js +37 -0
  6. package/dist/NotWaasWalletAccountError-B5f6_w78.esm.js.map +1 -0
  7. package/dist/{NotWaasWalletAccountError-zV4xv0h6.cjs.js → NotWaasWalletAccountError-DuMMt1dJ.cjs.js} +13 -11
  8. package/dist/NotWaasWalletAccountError-DuMMt1dJ.cjs.js.map +1 -0
  9. package/dist/{constants-B3wr3A32.cjs.js → constants-COTx8_KG.cjs.js} +38 -5
  10. package/dist/constants-COTx8_KG.cjs.js.map +1 -0
  11. package/dist/{constants-DQfjH5fu.esm.js → constants-Cg3ipRSQ.esm.js} +20 -5
  12. package/dist/constants-Cg3ipRSQ.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/exports/index.d.ts +1 -0
  17. package/dist/exports/index.d.ts.map +1 -1
  18. package/dist/{getNetworkProviderFromNetworkId-DKrjrs7X.cjs.js → getNetworkProviderFromNetworkId-DM3nd8O1.cjs.js} +3 -3
  19. package/dist/{getNetworkProviderFromNetworkId-DKrjrs7X.cjs.js.map → getNetworkProviderFromNetworkId-DM3nd8O1.cjs.js.map} +1 -1
  20. package/dist/{getNetworkProviderFromNetworkId-Bccco0Dv.esm.js → getNetworkProviderFromNetworkId-O11XpA9s.esm.js} +5 -5
  21. package/dist/getNetworkProviderFromNetworkId-O11XpA9s.esm.js.map +1 -0
  22. package/dist/{getSignedSessionId-B9i1VIX7.cjs.js → getSignedSessionId-BGAnr5jS.cjs.js} +3 -3
  23. package/dist/{getSignedSessionId-B9i1VIX7.cjs.js.map → getSignedSessionId-BGAnr5jS.cjs.js.map} +1 -1
  24. package/dist/{getSignedSessionId-D7cjzDUp.esm.js → getSignedSessionId-C3t_B6ZU.esm.js} +3 -3
  25. package/dist/{getSignedSessionId-D7cjzDUp.esm.js.map → getSignedSessionId-C3t_B6ZU.esm.js.map} +1 -1
  26. package/dist/{getVerifiedCredentialForWalletAccount-CR5wGUFK.cjs.js → getVerifiedCredentialForWalletAccount-B96b7nLc.cjs.js} +79 -12
  27. package/dist/getVerifiedCredentialForWalletAccount-B96b7nLc.cjs.js.map +1 -0
  28. package/dist/{getVerifiedCredentialForWalletAccount-cVOVjcUI.esm.js → getVerifiedCredentialForWalletAccount-ryH7FulV.esm.js} +55 -12
  29. package/dist/getVerifiedCredentialForWalletAccount-ryH7FulV.esm.js.map +1 -0
  30. package/dist/index.cjs.js +30 -8
  31. package/dist/index.cjs.js.map +1 -1
  32. package/dist/index.esm.js +32 -11
  33. package/dist/index.esm.js.map +1 -1
  34. package/dist/{isMfaRequiredForAction-Bwphi7AF.cjs.js → isMfaRequiredForAction-CZEDBXNT.cjs.js} +2 -2
  35. package/dist/{isMfaRequiredForAction-Bwphi7AF.cjs.js.map → isMfaRequiredForAction-CZEDBXNT.cjs.js.map} +1 -1
  36. package/dist/{isMfaRequiredForAction-YAISA589.esm.js → isMfaRequiredForAction-CjKgE8dm.esm.js} +2 -2
  37. package/dist/{isMfaRequiredForAction-YAISA589.esm.js.map → isMfaRequiredForAction-CjKgE8dm.esm.js.map} +1 -1
  38. package/dist/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
  39. package/dist/modules/initializeClient/initializeClient.d.ts.map +1 -1
  40. package/dist/modules/user/refreshAuth/index.d.ts +2 -0
  41. package/dist/modules/user/refreshAuth/index.d.ts.map +1 -0
  42. package/dist/modules/user/refreshAuth/refreshAuth.d.ts +12 -0
  43. package/dist/modules/user/refreshAuth/refreshAuth.d.ts.map +1 -0
  44. package/dist/modules/user/refreshUser/refreshUser.d.ts +5 -4
  45. package/dist/modules/user/refreshUser/refreshUser.d.ts.map +1 -1
  46. package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
  47. package/dist/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts +15 -1
  48. package/dist/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts.map +1 -1
  49. package/dist/modules/waas/restoreUserSharesForAllWalletAccounts/index.d.ts +2 -0
  50. package/dist/modules/waas/restoreUserSharesForAllWalletAccounts/index.d.ts.map +1 -0
  51. package/dist/modules/waas/restoreUserSharesForAllWalletAccounts/restoreUserSharesForAllWalletAccounts.d.ts +3 -0
  52. package/dist/modules/waas/restoreUserSharesForAllWalletAccounts/restoreUserSharesForAllWalletAccounts.d.ts.map +1 -0
  53. package/dist/modules/waas/waas.types.d.ts +6 -1
  54. package/dist/modules/waas/waas.types.d.ts.map +1 -1
  55. package/dist/modules/wallets/constants.d.ts.map +1 -1
  56. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  57. package/dist/waas.cjs.js +19 -48
  58. package/dist/waas.cjs.js.map +1 -1
  59. package/dist/waas.esm.js +13 -42
  60. package/dist/waas.esm.js.map +1 -1
  61. package/dist/waasCore.cjs.js +23 -13
  62. package/dist/waasCore.cjs.js.map +1 -1
  63. package/dist/waasCore.esm.js +19 -9
  64. package/dist/waasCore.esm.js.map +1 -1
  65. package/package.json +5 -4
  66. package/dist/NotWaasWalletAccountError-CbHIr6GK.esm.js +0 -35
  67. package/dist/NotWaasWalletAccountError-CbHIr6GK.esm.js.map +0 -1
  68. package/dist/NotWaasWalletAccountError-zV4xv0h6.cjs.js.map +0 -1
  69. package/dist/constants-8IkZb4R4.esm.js +0 -14
  70. package/dist/constants-8IkZb4R4.esm.js.map +0 -1
  71. package/dist/constants-B3wr3A32.cjs.js.map +0 -1
  72. package/dist/constants-Bj3GZ9o6.cjs.js +0 -31
  73. package/dist/constants-Bj3GZ9o6.cjs.js.map +0 -1
  74. package/dist/constants-DQfjH5fu.esm.js.map +0 -1
  75. package/dist/getNetworkProviderFromNetworkId-Bccco0Dv.esm.js.map +0 -1
  76. package/dist/getVerifiedCredentialForWalletAccount-CR5wGUFK.cjs.js.map +0 -1
  77. package/dist/getVerifiedCredentialForWalletAccount-cVOVjcUI.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"core.esm.js","names":["getNetworkId: LastKnownNetworkRegistry['getNetworkId']","setNetworkId: LastKnownNetworkRegistry['setNetworkId']","target: unknown","getActiveNetworkIdFromLastKnownRegistry: GetActiveNetworkIdFromLastKnownRegistry","switchActiveNetworkInLastKnownRegistry: SwitchActiveNetworkInLastKnownRegistry","eventEmitter: EventEmitter<WalletProviderEvents> | undefined","setupReturnValue: R","packageName","packageVersion"],"sources":["../src/errors/ClientsDoNotMatchError.ts","../src/errors/MethodNotImplementedError.ts","../src/errors/MultipleClientsFoundError.ts","../src/modules/extension/registerExtension/registerExtension.ts","../src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.ts","../src/modules/wallets/networks/createBaseNetworkProvider/createBaseNetworkProvider.ts","../src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/createLastKnownNetworkRegistry.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry.ts","../src/modules/wallets/utils/formatWalletProviderGroupKey/formatWalletProviderGroupKey.ts","../src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.ts","../src/modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry/getActiveNetworkIdFromLastKnownRegistry.ts","../src/modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry/switchActiveNetworkInLastKnownRegistry.ts","../src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.ts","../src/utils/bufferToBase64/bufferToBase64.ts","../src/exports/core.ts"],"sourcesContent":["import { BaseError } from './base';\n\nexport class ClientsDoNotMatchError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'clients_do_not_match_error',\n docsUrl: null,\n name: 'ClientsDoNotMatchError',\n shortMessage: 'Clients do not match',\n });\n }\n}\n","import { BaseError } from './base';\n\nexport class MethodNotImplementedError extends BaseError {\n constructor(methodName: string) {\n super({\n cause: null,\n code: 'method_not_implemented_error',\n docsUrl: null,\n name: 'MethodNotImplementedError',\n shortMessage: `This method is not implemented: ${methodName}`,\n });\n }\n}\n","import { BaseError } from './base';\n\nexport class MultipleClientsFoundError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'multiple_clients_found_error',\n docsUrl: null,\n name: 'MultipleClientsFoundError',\n shortMessage:\n 'Multiple Dynamic clients have been initialized. Please provide the intended client for this action explicitly',\n });\n }\n}\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\n\ntype RegisterExtensionParams = {\n extensionKey: string;\n};\n\n/**\n * Registers an extension to the client.\n *\n * Other extensions can be aware of which extensions are present,\n * and allows creating dependencies between extensions.\n *\n * @param client - The client instance.\n * @param extensionKey - The key of the extension to register.\n * @returns The client instance.\n */\nexport const registerExtension = (\n { extensionKey }: RegisterExtensionParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n core.extensions.add(extensionKey);\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\nimport { FETCH_PROJECT_SETTINGS_TRACKER_KEY } from '../consts';\n\nexport const waitForProjectSettings = async (client: DynamicClient) => {\n const core = getCore(client);\n\n const projectSettingsTracker = core.initTrack.getTracker<void>(\n FETCH_PROJECT_SETTINGS_TRACKER_KEY\n );\n\n assertDefined(projectSettingsTracker, 'Project settings tracker not found');\n\n await projectSettingsTracker.promise;\n\n assertDefined(\n client.projectSettings,\n 'Project settings still not available after awaiting its tracker'\n );\n\n return client.projectSettings;\n};\n","import type { Chain } from '../../../chain';\nimport type {\n BaseNetworkProvider,\n NetworkData,\n} from '../networkProvider/networkProvider.types';\n\nexport const createBaseNetworkProvider = <TChain extends Chain = Chain>(\n chain: TChain,\n networkData: NetworkData\n): Omit<BaseNetworkProvider<TChain>, 'getBalance'> => ({\n blockExplorerUrls: networkData.blockExplorerUrls,\n chain,\n displayName: networkData.displayName,\n iconUrl: networkData.iconUrl,\n id: `${chain}-${networkData.networkId}`,\n nativeCurrency: networkData.nativeCurrency,\n networkId: networkData.networkId,\n rpcUrls: networkData.rpcUrls,\n testnet: networkData.testnet,\n});\n","import type { DynamicClient } from '../../../../client/types';\nimport type { Chain } from '../../../chain';\nimport { getNetworksData } from '../getNetworksData';\nimport type { NetworkData } from '../networkProvider/networkProvider.types';\n\ntype GetNetworkDataForNetworkIdProps = {\n chain: Chain;\n networkId: string;\n};\n\nexport const getNetworkDataForNetworkId = (\n { networkId, chain }: GetNetworkDataForNetworkIdProps,\n client: DynamicClient\n): NetworkData | undefined => {\n const networksData = getNetworksData(client);\n\n const networkData = networksData.find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === chain\n );\n\n return networkData;\n};\n","import * as z from 'zod/mini';\n\nimport { createStorageKeySchema } from '../../../../../services/storage';\n\nexport const networkRegistryStorageKeySchema = createStorageKeySchema({\n key: 'lastKnownNetworkRegistry',\n schema: z.record(z.string(), z.string()),\n});\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\nimport { NoNetworkProvidersError } from '../../../../../errors/NoNetworkProvidersError';\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport { getWalletProviderByKey } from '../../../getWalletProviderByKey';\nimport { getNetworkProviders } from '../../getNetworkProviders';\nimport type { LastKnownNetworkRegistry } from '../LastKnownNetworkRegistry.types';\nimport { networkRegistryStorageKeySchema } from './schema';\n\n/**\n * Creates the registry that keeps tabs on which wallet provider is\n * connected to which network.\n *\n * Reminder that this will not be used for chains that have an internal way to\n * switch networks (ex EVM).\n */\nexport const createLastKnownNetworkRegistry = (\n client: DynamicClient\n): LastKnownNetworkRegistry => {\n const core = getCore(client);\n\n const walletProviderKeyToNetworkId = new Map<string, string>();\n\n const getNetworkId: LastKnownNetworkRegistry['getNetworkId'] = async ({\n walletProviderKey,\n }) => {\n // Priorities:\n // 1. In memory\n // 2. Storage\n // 3. First available network for this wallet's chain\n\n if (walletProviderKeyToNetworkId.has(walletProviderKey)) {\n return {\n networkId: walletProviderKeyToNetworkId.get(\n walletProviderKey\n ) as string,\n };\n }\n\n const storageRecords = await core.storage.getItem(\n networkRegistryStorageKeySchema\n );\n\n if (storageRecords && storageRecords[walletProviderKey]) {\n const networkId = storageRecords[walletProviderKey];\n\n walletProviderKeyToNetworkId.set(walletProviderKey, networkId);\n\n return { networkId };\n }\n\n const walletProvider = getWalletProviderByKey(\n { walletProviderKey },\n client\n );\n\n const networkProviders = getNetworkProviders(client);\n\n if (networkProviders.length === 0) {\n throw new NoNetworkProvidersError();\n }\n\n const defaultNetworkProvider = networkProviders.find(\n (networkProvider) => networkProvider.chain === walletProvider.chain\n );\n\n assertDefined(\n defaultNetworkProvider,\n `No networks found for chain ${walletProvider.chain}`\n );\n\n walletProviderKeyToNetworkId.set(\n walletProviderKey,\n defaultNetworkProvider.networkId\n );\n\n // No need to set in storage, as we're just falling back to the default\n return { networkId: defaultNetworkProvider.networkId };\n };\n\n const setNetworkId: LastKnownNetworkRegistry['setNetworkId'] = async ({\n networkId,\n walletProviderKey,\n }) => {\n walletProviderKeyToNetworkId.set(walletProviderKey, networkId);\n\n await core.storage.setItem(\n networkRegistryStorageKeySchema,\n Object.fromEntries(walletProviderKeyToNetworkId.entries())\n );\n };\n\n return { getNetworkId, setNetworkId };\n};\n","import { createRuntimeServiceAccessKey } from '../../../../../services/runtimeServices';\nimport { createLastKnownNetworkRegistry } from '../createLastKnownNetworkRegistry';\n\nexport const getLastKnownNetworkRegistry = createRuntimeServiceAccessKey(\n 'last-known-network-registry',\n (client) => createLastKnownNetworkRegistry(client)\n);\n","export const formatWalletProviderGroupKey = (walletName: string): string =>\n walletName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();\n","/* eslint-disable no-restricted-globals */\nexport const getInjectedProviderFromWindow = <T = unknown>(\n path: string\n): T | null => {\n if (typeof window === 'undefined') {\n return null;\n }\n\n // Traverse the path safely\n const target: unknown = path.split('.').reduce<unknown>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (acc, key) => (acc == null ? null : (acc as any)[key]),\n window\n );\n\n if (typeof target !== 'object' || target === null) {\n return null;\n }\n\n if (Array.isArray(target)) {\n return target.length > 0 ? (target[0] as T) : null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const providersArray = (target as any).providers;\n\n if (providersArray && Array.isArray(providersArray)) {\n return providersArray.length > 0 ? (providersArray[0] as T) : null;\n }\n\n return target as T;\n};\n","import type { DynamicClient } from '../../../../../client/types/DynamicClient';\nimport { getLastKnownNetworkRegistry } from '../../../networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry';\nimport type { WalletProvider } from '../../walletProvider.types';\n\ntype GetActiveNetworkIdFromLastKnownRegistry = (args: {\n client: DynamicClient;\n walletProviderKey: string;\n}) => ReturnType<WalletProvider['getActiveNetworkId']>;\n\nexport const getActiveNetworkIdFromLastKnownRegistry: GetActiveNetworkIdFromLastKnownRegistry =\n async ({ client, walletProviderKey }) => {\n const networkRegistry = getLastKnownNetworkRegistry(client);\n\n return networkRegistry.getNetworkId({ walletProviderKey });\n };\n","import type { DynamicClient } from '../../../../../client/types/DynamicClient';\nimport { getLastKnownNetworkRegistry } from '../../../networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry';\nimport type { WalletProvider } from '../../walletProvider.types';\n\ntype SwitchActiveNetworkInLastKnownRegistry = (args: {\n client: DynamicClient;\n networkId: string;\n walletProviderKey: string;\n}) => ReturnType<NonNullable<WalletProvider['switchActiveNetwork']>>;\n\nexport const switchActiveNetworkInLastKnownRegistry: SwitchActiveNetworkInLastKnownRegistry =\n async ({ client, networkId, walletProviderKey }) => {\n const networkRegistry = getLastKnownNetworkRegistry(client);\n\n await networkRegistry.setNetworkId({\n networkId,\n walletProviderKey,\n });\n };\n","import EventEmitter from 'eventemitter3';\n\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport type { WalletProvider } from '../../walletProvider.types';\nimport type { WalletProviderEvents } from '../walletProviderEvents.types';\n\ntype CreateWalletProviderEventEmitterParams<R = void> = {\n /**\n * Callback responsible for removing the listeners from the external wallet provider event emitters\n * to the the Dynamic handlers that will emit the wallet provider events.\n */\n removeEventListeners: (params: {\n handleAccountsChanged: (params: { addresses: string[] }) => void;\n handleDisconnected: () => void;\n handleNetworkChanged: (params: { networkId: string }) => void;\n /**\n * Value returned by setupEventListeners, particularly useful for cleaning up the event listeners\n */\n setupReturnValue: R;\n }) => void;\n /**\n * Callback responsible for connecting the external wallet provider event emitters\n * to the the Dynamic handlers that will emit the wallet provider events.\n *\n * @returns May return a value that will be later passed to removeEventListeners as `setupReturnValue`\n */\n setupEventListeners: (params: {\n handleAccountsChanged: (params: { addresses: string[] }) => void;\n handleDisconnected: () => void;\n handleNetworkChanged: (params: { networkId: string }) => void;\n }) => R;\n /**\n * List of events that the wallet provider supports listening to.\n * Defaults to all events.\n */\n supportedEvents?: (keyof WalletProviderEvents)[];\n};\n\n/**\n * Takes a callback that registers handlers for the external wallet provider.\n * Returns both a getter of an eventEmitter that can be exposed via the wallet provider\n * and a callback that will be used to destroy the listeners.\n */\nexport const createWalletProviderEventEmitter = <R = void>({\n removeEventListeners,\n setupEventListeners,\n supportedEvents = ['accountsChanged', 'disconnected', 'networkChanged'],\n}: CreateWalletProviderEventEmitterParams<R>) => {\n let eventEmitter: EventEmitter<WalletProviderEvents> | undefined;\n\n /** Value returned by setupEventListeners */\n let setupReturnValue: R;\n\n const handleAccountsChanged = (params: { addresses: string[] }) => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('accountsChanged', params);\n };\n\n const handleDisconnected = () => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('disconnected');\n };\n\n const handleNetworkChanged = (params: { networkId: string }) => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('networkChanged', params);\n };\n\n const cleanupEventEmitter = () => {\n if (!eventEmitter) {\n return;\n }\n\n removeEventListeners({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n setupReturnValue,\n });\n\n eventEmitter = undefined;\n };\n\n const getEventEmitter = (): WalletProvider['events'] => {\n if (!eventEmitter) {\n eventEmitter = new EventEmitter<WalletProviderEvents>();\n\n setupReturnValue = setupEventListeners({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n });\n }\n\n return Object.assign(eventEmitter, { supportedEvents });\n };\n\n return {\n cleanupEventEmitter,\n getEventEmitter,\n };\n};\n","import { getBuffer } from \"../getBuffer\";\n\nexport const bufferToBase64 = (buf: Uint8Array): string => {\n const binstr = Array.prototype.map\n .call(buf, (ch: number) => String.fromCharCode(ch))\n .join('');\n return getBuffer().from(binstr, 'binary').toString('base64');\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\n/**\n * @categoryDescription Extension Development\n * Core utilities and functions for building Dynamic SDK extensions.\n * These APIs provide low-level access to the SDK internals and are intended\n * for advanced use cases and extension development. Most applications should\n * use the higher-level APIs exported from the main SDK package instead.\n */\n\n/** @category Extension Development */\nexport { getCore } from '../client/core/getCore';\n/** @category Extension Development */\nexport type { DynamicCore, DynamicCoreState } from '../client/core/types';\n/** @category Extension Development */\nexport { getDefaultClient } from '../client/defaultClient';\n/** @category Extension Development */\nexport { APIError } from '../errors/APIError';\n/** @category Extension Development */\nexport { CannotTrackError } from '../errors/CannotTrackError';\n/** @category Extension Development */\nexport { ClientNotFoundError } from '../errors/ClientNotFoundError';\n/** @category Extension Development */\nexport { ClientsDoNotMatchError } from '../errors/ClientsDoNotMatchError';\n/** @category Extension Development */\nexport { InvalidStorageSet } from '../errors/InvalidStorageSet';\n/** @category Extension Development */\nexport { InvalidWalletProviderKeyError } from '../errors/InvalidWalletProviderKeyError';\n/** @category Extension Development */\nexport { MethodNotImplementedError } from '../errors/MethodNotImplementedError';\n/** @category Extension Development */\nexport { MultipleClientsFoundError } from '../errors/MultipleClientsFoundError';\n/** @category Extension Development */\nexport { NoWalletProviderFoundError } from '../errors/NoWalletProviderFoundError';\n/** @category Extension Development */\nexport { ValueMustBeDefinedError } from '../errors/ValueMustBeDefinedError';\n/** @category Extension Development */\nexport { createApiClient, DYNAMIC_SDK_API_VERSION } from '../modules/apiClient';\n/** @category Extension Development */\nexport { createVisit } from '../modules/auth/createVisit';\n/** @category Extension Development */\nexport { updateAuthFromVerifyResponse } from '../modules/auth/updateAuthFromVerifyResponse';\n/** @category Extension Development */\nexport { consumeCaptchaToken } from '../modules/captcha/consumeCaptchaToken';\n/** @category Extension Development */\nexport { setCaptchaToken } from '../modules/captcha/setCaptchaToken';\n/** @category Extension Development */\nexport { emitEvent } from '../modules/clientEvents';\n/** @category Extension Development */\nexport { hasExtension } from '../modules/extension/hasExtension';\n/** @category Extension Development */\nexport { registerExtension } from '../modules/extension/registerExtension';\n/** @category Extension Development */\nexport { waitForProjectSettings } from '../modules/initializeClient/waitForProjectSettings';\n/** @category Extension Development */\nexport { consumeMfaTokenIfRequiredForAction } from '../modules/mfa/consumeMfaTokenIfRequiredForAction';\n/** @category Extension Development */\nexport { isCookieEnabled } from '../modules/projectSettings/isCookieEnabled';\n/** @category Extension Development */\nexport { getSignedSessionId } from '../modules/sessionKeys/getSignedSessionId';\n/** @category Extension Development */\nexport type { SessionKeys } from '../modules/sessionKeys/sessionKeys.types';\n/** @category Extension Development */\nexport { CHAINS_INFO_MAP } from '../modules/wallets/constants';\n/** @category Extension Development */\nexport { emitWalletAccountsChangedEvent } from '../modules/wallets/emitWalletAccountsChangedEvent';\n/** @category Extension Development */\nexport { getWalletProviders } from '../modules/wallets/getWalletProviders';\n/** @category Extension Development */\nexport { createBaseNetworkProvider } from '../modules/wallets/networks/createBaseNetworkProvider';\n/** @category Extension Development */\nexport { getNetworkDataForNetworkId } from '../modules/wallets/networks/getNetworkDataForNetworkId';\n/** @category Extension Development */\nexport { getNetworkProviderFromNetworkId } from '../modules/wallets/networks/getNetworkProviderFromNetworkId';\n/** @category Extension Development */\nexport { getNetworkProviders } from '../modules/wallets/networks/getNetworkProviders';\n/** @category Extension Development */\nexport { getLastKnownNetworkRegistry } from '../modules/wallets/networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry';\n/** @category Extension Development */\nexport type { LastKnownNetworkRegistry } from '../modules/wallets/networks/lastKnownNetworkRegistry/LastKnownNetworkRegistry.types';\n/** @category Extension Development */\nexport type { BaseNetworkProvider } from '../modules/wallets/networks/networkProvider/networkProvider.types';\n/** @category Extension Development */\nexport {\n getNetworkProviderBuilderRegistry,\n type NetworkProviderBuilder,\n type NetworkProviderBuilderRegistry,\n} from '../modules/wallets/networks/networkProviderBuilderRegistry';\n/** @category Extension Development */\nexport { removeUnverifiedWalletAccount } from '../modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount';\nexport { setUnverifiedWalletAccounts } from '../modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts';\n/** @category Extension Development */\nexport { formatSignInMessage } from '../modules/wallets/utils/formatSignInMessage';\n/** @category Extension Development */\nexport { formatWalletAccountId } from '../modules/wallets/utils/formatWalletAccountId';\n/** @category Extension Development */\nexport { formatWalletProviderGroupKey } from '../modules/wallets/utils/formatWalletProviderGroupKey';\n/** @category Extension Development */\nexport { formatWalletProviderKey } from '../modules/wallets/utils/formatWalletProviderKey';\n/** @category Extension Development */\nexport { getInjectedProviderFromWindow } from '../modules/wallets/utils/getInjectedProviderFromWindow';\n/** @category Extension Development */\nexport { getVerifiedCredentialForWalletAccount } from '../modules/wallets/utils/getVerifiedCredentialForWalletAccount';\n/** @category Extension Development */\nexport { getWalletProviderFromWalletAccount } from '../modules/wallets/utils/getWalletProviderFromWalletAccount';\n/** @category Extension Development */\nexport { normalizeWalletNameWithChain } from '../modules/wallets/utils/normalizeWalletNameWithChain';\n/** @category Extension Development */\nexport { verifyMessageSignatureOwnership } from '../modules/wallets/verifyMessageSignatureOwnership';\n/** @category Extension Development */\nexport type { BaseWalletAccount } from '../modules/wallets/walletAccount';\n/** @category Extension Development */\nexport type {\n WalletProvider,\n WalletProviderConnectAddress,\n} from '../modules/wallets/walletProvider';\n/** @category Extension Development */\nexport { getActiveNetworkIdFromLastKnownRegistry } from '../modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry';\n/** @category Extension Development */\nexport { switchActiveNetworkInLastKnownRegistry } from '../modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry';\n/** @category Extension Development */\nexport { createWalletProviderEventEmitter } from '../modules/wallets/walletProvider/events/createWalletProviderEventEmitter';\n/** @category Extension Development */\nexport { splitWalletProviderKey } from '../modules/wallets/walletProvider/splitWalletProviderKey';\n/** @category Extension Development */\nexport {\n getWalletProviderRegistry,\n WalletProviderPriority,\n} from '../modules/wallets/walletProviderRegistry';\n/** @category Extension Development */\nexport type {\n AsyncProcessEntry,\n AsyncProcessStatus,\n AsyncTrack,\n AsyncTrackEmitter,\n} from '../services/asyncTrack/asyncTrack.types';\n/** @category Extension Development */\nexport { createLogger } from '../services/logger/createLogger';\n/** @category Extension Development */\nexport type { Logger, LogLevel } from '../services/logger/logger.types';\n/** @category Extension Development */\nexport type { PasskeyService } from '../services/passkey';\n/** @category Extension Development */\nexport {\n createRuntimeServiceAccessKey,\n type RuntimeServices,\n} from '../services/runtimeServices';\n/** @category Extension Development */\nexport {\n createLocalStorageAdapter,\n createStorage,\n createStorageKeySchema,\n type Storage,\n type StorageAdapter,\n type StorageKeySchema,\n} from '../services/storage';\n/** @category Extension Development */\nexport type { ExtendParameters } from '../types/ExtendParameters';\n/** @category Extension Development */\nexport { assertDefined } from '../utils/assertDefined';\n/** @category Extension Development */\nexport { bufferToBase64 } from '../utils/bufferToBase64';\n/** @category Extension Development */\nexport type { DebouncedMutex } from '../utils/debouncedMutex/debouncedMutex.types';\n/** @category Extension Development */\nexport { filterDuplicates } from '../utils/filterDuplicates';\n/** @category Extension Development */\nexport { getBuffer } from '../utils/getBuffer';\n/** @category Extension Development */\nexport { getChainFromVerifiedCredentialChain } from '../utils/getChainFromVerifiedCredentialChain';\n/** @category Extension Development */\nexport type { ObservableState } from '../utils/observable/observable.types';\n/** @category Extension Development */\nexport { createSignInMessageStatement } from '../modules/wallets/utils/getSignInMessage/createSignInMessageStatement';\n/** @category Extension Development */\nexport { subscribeWithSelector } from '../utils/observable/subscribeWithSelector';\n/** @category Extension Development */\nexport { updateWalletProviderKeysForVerifiedCredentials } from '../modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials';\n/** @category Extension Development */\nexport { DYNAMIC_ICONIC_SPRITE_URL } from '../constants';\n/** @category Extension Development */\nexport { createDeferredPromise } from '../utils/deferredPromise';\n"],"mappings":"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"}
1
+ {"version":3,"file":"core.esm.js","names":["getNetworkId: LastKnownNetworkRegistry['getNetworkId']","setNetworkId: LastKnownNetworkRegistry['setNetworkId']","target: unknown","getActiveNetworkIdFromLastKnownRegistry: GetActiveNetworkIdFromLastKnownRegistry","switchActiveNetworkInLastKnownRegistry: SwitchActiveNetworkInLastKnownRegistry","eventEmitter: EventEmitter<WalletProviderEvents> | undefined","setupReturnValue: R","EventEmitter","packageName","packageVersion"],"sources":["../src/errors/ClientsDoNotMatchError.ts","../src/errors/MethodNotImplementedError.ts","../src/errors/MultipleClientsFoundError.ts","../src/modules/extension/registerExtension/registerExtension.ts","../src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.ts","../src/modules/wallets/networks/createBaseNetworkProvider/createBaseNetworkProvider.ts","../src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/createLastKnownNetworkRegistry.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry.ts","../src/modules/wallets/utils/formatWalletProviderGroupKey/formatWalletProviderGroupKey.ts","../src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.ts","../src/modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry/getActiveNetworkIdFromLastKnownRegistry.ts","../src/modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry/switchActiveNetworkInLastKnownRegistry.ts","../src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.ts","../src/utils/bufferToBase64/bufferToBase64.ts","../src/exports/core.ts"],"sourcesContent":["import { BaseError } from './base';\n\nexport class ClientsDoNotMatchError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'clients_do_not_match_error',\n docsUrl: null,\n name: 'ClientsDoNotMatchError',\n shortMessage: 'Clients do not match',\n });\n }\n}\n","import { BaseError } from './base';\n\nexport class MethodNotImplementedError extends BaseError {\n constructor(methodName: string) {\n super({\n cause: null,\n code: 'method_not_implemented_error',\n docsUrl: null,\n name: 'MethodNotImplementedError',\n shortMessage: `This method is not implemented: ${methodName}`,\n });\n }\n}\n","import { BaseError } from './base';\n\nexport class MultipleClientsFoundError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'multiple_clients_found_error',\n docsUrl: null,\n name: 'MultipleClientsFoundError',\n shortMessage:\n 'Multiple Dynamic clients have been initialized. Please provide the intended client for this action explicitly',\n });\n }\n}\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\n\ntype RegisterExtensionParams = {\n extensionKey: string;\n};\n\n/**\n * Registers an extension to the client.\n *\n * Other extensions can be aware of which extensions are present,\n * and allows creating dependencies between extensions.\n *\n * @param client - The client instance.\n * @param extensionKey - The key of the extension to register.\n * @returns The client instance.\n */\nexport const registerExtension = (\n { extensionKey }: RegisterExtensionParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n core.extensions.add(extensionKey);\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\nimport { FETCH_PROJECT_SETTINGS_TRACKER_KEY } from '../consts';\n\nexport const waitForProjectSettings = async (client: DynamicClient) => {\n const core = getCore(client);\n\n const projectSettingsTracker = core.initTrack.getTracker<void>(\n FETCH_PROJECT_SETTINGS_TRACKER_KEY\n );\n\n assertDefined(projectSettingsTracker, 'Project settings tracker not found');\n\n await projectSettingsTracker.promise;\n\n assertDefined(\n client.projectSettings,\n 'Project settings still not available after awaiting its tracker'\n );\n\n return client.projectSettings;\n};\n","import type { Chain } from '../../../chain';\nimport type {\n BaseNetworkProvider,\n NetworkData,\n} from '../networkProvider/networkProvider.types';\n\nexport const createBaseNetworkProvider = <TChain extends Chain = Chain>(\n chain: TChain,\n networkData: NetworkData\n): Omit<BaseNetworkProvider<TChain>, 'getBalance'> => ({\n blockExplorerUrls: networkData.blockExplorerUrls,\n chain,\n displayName: networkData.displayName,\n iconUrl: networkData.iconUrl,\n id: `${chain}-${networkData.networkId}`,\n nativeCurrency: networkData.nativeCurrency,\n networkId: networkData.networkId,\n rpcUrls: networkData.rpcUrls,\n testnet: networkData.testnet,\n});\n","import type { DynamicClient } from '../../../../client/types';\nimport type { Chain } from '../../../chain';\nimport { getNetworksData } from '../getNetworksData';\nimport type { NetworkData } from '../networkProvider/networkProvider.types';\n\ntype GetNetworkDataForNetworkIdProps = {\n chain: Chain;\n networkId: string;\n};\n\nexport const getNetworkDataForNetworkId = (\n { networkId, chain }: GetNetworkDataForNetworkIdProps,\n client: DynamicClient\n): NetworkData | undefined => {\n const networksData = getNetworksData(client);\n\n const networkData = networksData.find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === chain\n );\n\n return networkData;\n};\n","import * as z from 'zod/mini';\n\nimport { createStorageKeySchema } from '../../../../../services/storage';\n\nexport const networkRegistryStorageKeySchema = createStorageKeySchema({\n key: 'lastKnownNetworkRegistry',\n schema: z.record(z.string(), z.string()),\n});\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\nimport { NoNetworkProvidersError } from '../../../../../errors/NoNetworkProvidersError';\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport { getWalletProviderByKey } from '../../../getWalletProviderByKey';\nimport { getNetworkProviders } from '../../getNetworkProviders';\nimport type { LastKnownNetworkRegistry } from '../LastKnownNetworkRegistry.types';\nimport { networkRegistryStorageKeySchema } from './schema';\n\n/**\n * Creates the registry that keeps tabs on which wallet provider is\n * connected to which network.\n *\n * Reminder that this will not be used for chains that have an internal way to\n * switch networks (ex EVM).\n */\nexport const createLastKnownNetworkRegistry = (\n client: DynamicClient\n): LastKnownNetworkRegistry => {\n const core = getCore(client);\n\n const walletProviderKeyToNetworkId = new Map<string, string>();\n\n const getNetworkId: LastKnownNetworkRegistry['getNetworkId'] = async ({\n walletProviderKey,\n }) => {\n // Priorities:\n // 1. In memory\n // 2. Storage\n // 3. First available network for this wallet's chain\n\n if (walletProviderKeyToNetworkId.has(walletProviderKey)) {\n return {\n networkId: walletProviderKeyToNetworkId.get(\n walletProviderKey\n ) as string,\n };\n }\n\n const storageRecords = await core.storage.getItem(\n networkRegistryStorageKeySchema\n );\n\n if (storageRecords && storageRecords[walletProviderKey]) {\n const networkId = storageRecords[walletProviderKey];\n\n walletProviderKeyToNetworkId.set(walletProviderKey, networkId);\n\n return { networkId };\n }\n\n const walletProvider = getWalletProviderByKey(\n { walletProviderKey },\n client\n );\n\n const networkProviders = getNetworkProviders(client);\n\n if (networkProviders.length === 0) {\n throw new NoNetworkProvidersError();\n }\n\n const defaultNetworkProvider = networkProviders.find(\n (networkProvider) => networkProvider.chain === walletProvider.chain\n );\n\n assertDefined(\n defaultNetworkProvider,\n `No networks found for chain ${walletProvider.chain}`\n );\n\n walletProviderKeyToNetworkId.set(\n walletProviderKey,\n defaultNetworkProvider.networkId\n );\n\n // No need to set in storage, as we're just falling back to the default\n return { networkId: defaultNetworkProvider.networkId };\n };\n\n const setNetworkId: LastKnownNetworkRegistry['setNetworkId'] = async ({\n networkId,\n walletProviderKey,\n }) => {\n walletProviderKeyToNetworkId.set(walletProviderKey, networkId);\n\n await core.storage.setItem(\n networkRegistryStorageKeySchema,\n Object.fromEntries(walletProviderKeyToNetworkId.entries())\n );\n };\n\n return { getNetworkId, setNetworkId };\n};\n","import { createRuntimeServiceAccessKey } from '../../../../../services/runtimeServices';\nimport { createLastKnownNetworkRegistry } from '../createLastKnownNetworkRegistry';\n\nexport const getLastKnownNetworkRegistry = createRuntimeServiceAccessKey(\n 'last-known-network-registry',\n (client) => createLastKnownNetworkRegistry(client)\n);\n","export const formatWalletProviderGroupKey = (walletName: string): string =>\n walletName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();\n","/* eslint-disable no-restricted-globals */\nexport const getInjectedProviderFromWindow = <T = unknown>(\n path: string\n): T | null => {\n if (typeof window === 'undefined') {\n return null;\n }\n\n // Traverse the path safely\n const target: unknown = path.split('.').reduce<unknown>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (acc, key) => (acc == null ? null : (acc as any)[key]),\n window\n );\n\n if (typeof target !== 'object' || target === null) {\n return null;\n }\n\n if (Array.isArray(target)) {\n return target.length > 0 ? (target[0] as T) : null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const providersArray = (target as any).providers;\n\n if (providersArray && Array.isArray(providersArray)) {\n return providersArray.length > 0 ? (providersArray[0] as T) : null;\n }\n\n return target as T;\n};\n","import type { DynamicClient } from '../../../../../client/types/DynamicClient';\nimport { getLastKnownNetworkRegistry } from '../../../networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry';\nimport type { WalletProvider } from '../../walletProvider.types';\n\ntype GetActiveNetworkIdFromLastKnownRegistry = (args: {\n client: DynamicClient;\n walletProviderKey: string;\n}) => ReturnType<WalletProvider['getActiveNetworkId']>;\n\nexport const getActiveNetworkIdFromLastKnownRegistry: GetActiveNetworkIdFromLastKnownRegistry =\n async ({ client, walletProviderKey }) => {\n const networkRegistry = getLastKnownNetworkRegistry(client);\n\n return networkRegistry.getNetworkId({ walletProviderKey });\n };\n","import type { DynamicClient } from '../../../../../client/types/DynamicClient';\nimport { getLastKnownNetworkRegistry } from '../../../networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry';\nimport type { WalletProvider } from '../../walletProvider.types';\n\ntype SwitchActiveNetworkInLastKnownRegistry = (args: {\n client: DynamicClient;\n networkId: string;\n walletProviderKey: string;\n}) => ReturnType<NonNullable<WalletProvider['switchActiveNetwork']>>;\n\nexport const switchActiveNetworkInLastKnownRegistry: SwitchActiveNetworkInLastKnownRegistry =\n async ({ client, networkId, walletProviderKey }) => {\n const networkRegistry = getLastKnownNetworkRegistry(client);\n\n await networkRegistry.setNetworkId({\n networkId,\n walletProviderKey,\n });\n };\n","import EventEmitter from 'eventemitter3';\n\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport type { WalletProvider } from '../../walletProvider.types';\nimport type { WalletProviderEvents } from '../walletProviderEvents.types';\n\ntype CreateWalletProviderEventEmitterParams<R = void> = {\n /**\n * Callback responsible for removing the listeners from the external wallet provider event emitters\n * to the the Dynamic handlers that will emit the wallet provider events.\n */\n removeEventListeners: (params: {\n handleAccountsChanged: (params: { addresses: string[] }) => void;\n handleDisconnected: () => void;\n handleNetworkChanged: (params: { networkId: string }) => void;\n /**\n * Value returned by setupEventListeners, particularly useful for cleaning up the event listeners\n */\n setupReturnValue: R;\n }) => void;\n /**\n * Callback responsible for connecting the external wallet provider event emitters\n * to the the Dynamic handlers that will emit the wallet provider events.\n *\n * @returns May return a value that will be later passed to removeEventListeners as `setupReturnValue`\n */\n setupEventListeners: (params: {\n handleAccountsChanged: (params: { addresses: string[] }) => void;\n handleDisconnected: () => void;\n handleNetworkChanged: (params: { networkId: string }) => void;\n }) => R;\n /**\n * List of events that the wallet provider supports listening to.\n * Defaults to all events.\n */\n supportedEvents?: (keyof WalletProviderEvents)[];\n};\n\n/**\n * Takes a callback that registers handlers for the external wallet provider.\n * Returns both a getter of an eventEmitter that can be exposed via the wallet provider\n * and a callback that will be used to destroy the listeners.\n */\nexport const createWalletProviderEventEmitter = <R = void>({\n removeEventListeners,\n setupEventListeners,\n supportedEvents = ['accountsChanged', 'disconnected', 'networkChanged'],\n}: CreateWalletProviderEventEmitterParams<R>) => {\n let eventEmitter: EventEmitter<WalletProviderEvents> | undefined;\n\n /** Value returned by setupEventListeners */\n let setupReturnValue: R;\n\n const handleAccountsChanged = (params: { addresses: string[] }) => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('accountsChanged', params);\n };\n\n const handleDisconnected = () => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('disconnected');\n };\n\n const handleNetworkChanged = (params: { networkId: string }) => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('networkChanged', params);\n };\n\n const cleanupEventEmitter = () => {\n if (!eventEmitter) {\n return;\n }\n\n removeEventListeners({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n setupReturnValue,\n });\n\n eventEmitter = undefined;\n };\n\n const getEventEmitter = (): WalletProvider['events'] => {\n if (!eventEmitter) {\n eventEmitter = new EventEmitter<WalletProviderEvents>();\n\n setupReturnValue = setupEventListeners({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n });\n }\n\n return Object.assign(eventEmitter, { supportedEvents });\n };\n\n return {\n cleanupEventEmitter,\n getEventEmitter,\n };\n};\n","import { getBuffer } from \"../getBuffer\";\n\nexport const bufferToBase64 = (buf: Uint8Array): string => {\n const binstr = Array.prototype.map\n .call(buf, (ch: number) => String.fromCharCode(ch))\n .join('');\n return getBuffer().from(binstr, 'binary').toString('base64');\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\n/**\n * @categoryDescription Extension Development\n * Core utilities and functions for building Dynamic SDK extensions.\n * These APIs provide low-level access to the SDK internals and are intended\n * for advanced use cases and extension development. Most applications should\n * use the higher-level APIs exported from the main SDK package instead.\n */\n\n/** @category Extension Development */\nexport { getCore } from '../client/core/getCore';\n/** @category Extension Development */\nexport type { DynamicCore, DynamicCoreState } from '../client/core/types';\n/** @category Extension Development */\nexport { getDefaultClient } from '../client/defaultClient';\n/** @category Extension Development */\nexport { APIError } from '../errors/APIError';\n/** @category Extension Development */\nexport { CannotTrackError } from '../errors/CannotTrackError';\n/** @category Extension Development */\nexport { ClientNotFoundError } from '../errors/ClientNotFoundError';\n/** @category Extension Development */\nexport { ClientsDoNotMatchError } from '../errors/ClientsDoNotMatchError';\n/** @category Extension Development */\nexport { InvalidStorageSet } from '../errors/InvalidStorageSet';\n/** @category Extension Development */\nexport { InvalidWalletProviderKeyError } from '../errors/InvalidWalletProviderKeyError';\n/** @category Extension Development */\nexport { MethodNotImplementedError } from '../errors/MethodNotImplementedError';\n/** @category Extension Development */\nexport { MultipleClientsFoundError } from '../errors/MultipleClientsFoundError';\n/** @category Extension Development */\nexport { NoWalletProviderFoundError } from '../errors/NoWalletProviderFoundError';\n/** @category Extension Development */\nexport { ValueMustBeDefinedError } from '../errors/ValueMustBeDefinedError';\n/** @category Extension Development */\nexport { createApiClient, DYNAMIC_SDK_API_VERSION } from '../modules/apiClient';\n/** @category Extension Development */\nexport { createVisit } from '../modules/auth/createVisit';\n/** @category Extension Development */\nexport { updateAuthFromVerifyResponse } from '../modules/auth/updateAuthFromVerifyResponse';\n/** @category Extension Development */\nexport { consumeCaptchaToken } from '../modules/captcha/consumeCaptchaToken';\n/** @category Extension Development */\nexport { setCaptchaToken } from '../modules/captcha/setCaptchaToken';\n/** @category Extension Development */\nexport { emitEvent } from '../modules/clientEvents';\n/** @category Extension Development */\nexport { hasExtension } from '../modules/extension/hasExtension';\n/** @category Extension Development */\nexport { registerExtension } from '../modules/extension/registerExtension';\n/** @category Extension Development */\nexport { waitForProjectSettings } from '../modules/initializeClient/waitForProjectSettings';\n/** @category Extension Development */\nexport { consumeMfaTokenIfRequiredForAction } from '../modules/mfa/consumeMfaTokenIfRequiredForAction';\n/** @category Extension Development */\nexport { isCookieEnabled } from '../modules/projectSettings/isCookieEnabled';\n/** @category Extension Development */\nexport { getSignedSessionId } from '../modules/sessionKeys/getSignedSessionId';\n/** @category Extension Development */\nexport type { SessionKeys } from '../modules/sessionKeys/sessionKeys.types';\n/** @category Extension Development */\nexport { CHAINS_INFO_MAP } from '../modules/wallets/constants';\n/** @category Extension Development */\nexport { emitWalletAccountsChangedEvent } from '../modules/wallets/emitWalletAccountsChangedEvent';\n/** @category Extension Development */\nexport { getWalletProviders } from '../modules/wallets/getWalletProviders';\n/** @category Extension Development */\nexport { createBaseNetworkProvider } from '../modules/wallets/networks/createBaseNetworkProvider';\n/** @category Extension Development */\nexport { getNetworkDataForNetworkId } from '../modules/wallets/networks/getNetworkDataForNetworkId';\n/** @category Extension Development */\nexport { getNetworkProviderFromNetworkId } from '../modules/wallets/networks/getNetworkProviderFromNetworkId';\n/** @category Extension Development */\nexport { getNetworkProviders } from '../modules/wallets/networks/getNetworkProviders';\n/** @category Extension Development */\nexport { getLastKnownNetworkRegistry } from '../modules/wallets/networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry';\n/** @category Extension Development */\nexport type { LastKnownNetworkRegistry } from '../modules/wallets/networks/lastKnownNetworkRegistry/LastKnownNetworkRegistry.types';\n/** @category Extension Development */\nexport type { BaseNetworkProvider } from '../modules/wallets/networks/networkProvider/networkProvider.types';\n/** @category Extension Development */\nexport {\n getNetworkProviderBuilderRegistry,\n type NetworkProviderBuilder,\n type NetworkProviderBuilderRegistry,\n} from '../modules/wallets/networks/networkProviderBuilderRegistry';\n/** @category Extension Development */\nexport { removeUnverifiedWalletAccount } from '../modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount';\nexport { setUnverifiedWalletAccounts } from '../modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts';\n/** @category Extension Development */\nexport { formatSignInMessage } from '../modules/wallets/utils/formatSignInMessage';\n/** @category Extension Development */\nexport { formatWalletAccountId } from '../modules/wallets/utils/formatWalletAccountId';\n/** @category Extension Development */\nexport { formatWalletProviderGroupKey } from '../modules/wallets/utils/formatWalletProviderGroupKey';\n/** @category Extension Development */\nexport { formatWalletProviderKey } from '../modules/wallets/utils/formatWalletProviderKey';\n/** @category Extension Development */\nexport { getInjectedProviderFromWindow } from '../modules/wallets/utils/getInjectedProviderFromWindow';\n/** @category Extension Development */\nexport { getVerifiedCredentialForWalletAccount } from '../modules/wallets/utils/getVerifiedCredentialForWalletAccount';\n/** @category Extension Development */\nexport { getWalletProviderFromWalletAccount } from '../modules/wallets/utils/getWalletProviderFromWalletAccount';\n/** @category Extension Development */\nexport { normalizeWalletNameWithChain } from '../modules/wallets/utils/normalizeWalletNameWithChain';\n/** @category Extension Development */\nexport { verifyMessageSignatureOwnership } from '../modules/wallets/verifyMessageSignatureOwnership';\n/** @category Extension Development */\nexport type { BaseWalletAccount } from '../modules/wallets/walletAccount';\n/** @category Extension Development */\nexport type {\n WalletProvider,\n WalletProviderConnectAddress,\n} from '../modules/wallets/walletProvider';\n/** @category Extension Development */\nexport { getActiveNetworkIdFromLastKnownRegistry } from '../modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry';\n/** @category Extension Development */\nexport { switchActiveNetworkInLastKnownRegistry } from '../modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry';\n/** @category Extension Development */\nexport { createWalletProviderEventEmitter } from '../modules/wallets/walletProvider/events/createWalletProviderEventEmitter';\n/** @category Extension Development */\nexport { splitWalletProviderKey } from '../modules/wallets/walletProvider/splitWalletProviderKey';\n/** @category Extension Development */\nexport {\n getWalletProviderRegistry,\n WalletProviderPriority,\n} from '../modules/wallets/walletProviderRegistry';\n/** @category Extension Development */\nexport type {\n AsyncProcessEntry,\n AsyncProcessStatus,\n AsyncTrack,\n AsyncTrackEmitter,\n} from '../services/asyncTrack/asyncTrack.types';\n/** @category Extension Development */\nexport { createLogger } from '../services/logger/createLogger';\n/** @category Extension Development */\nexport type { Logger, LogLevel } from '../services/logger/logger.types';\n/** @category Extension Development */\nexport type { PasskeyService } from '../services/passkey';\n/** @category Extension Development */\nexport {\n createRuntimeServiceAccessKey,\n type RuntimeServices,\n} from '../services/runtimeServices';\n/** @category Extension Development */\nexport {\n createLocalStorageAdapter,\n createStorage,\n createStorageKeySchema,\n type Storage,\n type StorageAdapter,\n type StorageKeySchema,\n} from '../services/storage';\n/** @category Extension Development */\nexport type { ExtendParameters } from '../types/ExtendParameters';\n/** @category Extension Development */\nexport { assertDefined } from '../utils/assertDefined';\n/** @category Extension Development */\nexport { bufferToBase64 } from '../utils/bufferToBase64';\n/** @category Extension Development */\nexport type { DebouncedMutex } from '../utils/debouncedMutex/debouncedMutex.types';\n/** @category Extension Development */\nexport { filterDuplicates } from '../utils/filterDuplicates';\n/** @category Extension Development */\nexport { getBuffer } from '../utils/getBuffer';\n/** @category Extension Development */\nexport { getChainFromVerifiedCredentialChain } from '../utils/getChainFromVerifiedCredentialChain';\n/** @category Extension Development */\nexport type { ObservableState } from '../utils/observable/observable.types';\n/** @category Extension Development */\nexport { createSignInMessageStatement } from '../modules/wallets/utils/getSignInMessage/createSignInMessageStatement';\n/** @category Extension Development */\nexport { subscribeWithSelector } from '../utils/observable/subscribeWithSelector';\n/** @category Extension Development */\nexport { updateWalletProviderKeysForVerifiedCredentials } from '../modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials';\n/** @category Extension Development */\nexport { DYNAMIC_ICONIC_SPRITE_URL } from '../constants';\n/** @category Extension Development */\nexport { createDeferredPromise } from '../utils/deferredPromise';\n"],"mappings":"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"}
@@ -99,6 +99,7 @@ export { sendSmsOTP } from '../modules/otp/sendSmsOTP';
99
99
  export { verifyOTP } from '../modules/otp/verifyOTP';
100
100
  export { fetchProjectSettings } from '../modules/projectSettings/fetchProjectSettings';
101
101
  export { deleteUser } from '../modules/user/deleteUser';
102
+ export { refreshAuth } from '../modules/user/refreshAuth';
102
103
  export { refreshUser } from '../modules/user/refreshUser';
103
104
  export { updateUser } from '../modules/user/updateUser';
104
105
  export type { UpdateUserFields } from '../modules/user/user.types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  }) : target, mod));
26
26
 
27
27
  //#endregion
28
- const require_constants = require('./constants-B3wr3A32.cjs.js');
29
- const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-CR5wGUFK.cjs.js');
28
+ const require_constants = require('./constants-COTx8_KG.cjs.js');
29
+ const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-B96b7nLc.cjs.js');
30
30
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
31
31
  let eventemitter3 = require("eventemitter3");
32
32
 
@@ -770,4 +770,4 @@ Object.defineProperty(exports, 'verifyMessageSignatureOwnership', {
770
770
  return verifyMessageSignatureOwnership;
771
771
  }
772
772
  });
773
- //# sourceMappingURL=getNetworkProviderFromNetworkId-DKrjrs7X.cjs.js.map
773
+ //# sourceMappingURL=getNetworkProviderFromNetworkId-DM3nd8O1.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNetworkProviderFromNetworkId-DKrjrs7X.cjs.js","names":["BaseError","item: StorageFormat<typeof value>","resolve: (value: T) => void","reject: (reason?: unknown) => void","BaseError","LOG_LEVELS: Record<LogLevel, number>","eventEmitter: LoggerEventEmitter","EventEmitter","minLevel: LogLevel","BaseError","BaseError","getDefaultClient","getCore","getDefaultClient","getCore","getDefaultClient","getCore","AuthModeEnum","getCore","createApiClient","getWalletProviderFromWalletAccount","normalizeWalletNameWithChain","connectRequest: ConnectRequest","getCore","filteredUnverifiedWalletAccounts: UnverifiedWalletAccount[]","suffixFields: string[]","getCore","getCore","getCore","createApiClient","normalizeWalletNameWithChain","getCore","CHAINS_INFO_MAP","getDefaultClient","getCore","createRuntimeServiceAccessKey","networkProvider"],"sources":["../src/utils/isEqualShallow/isEqualShallow.ts","../src/utils/observable/subscribeWithSelector/subscribeWithSelector.ts","../src/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.ts","../src/errors/InvalidStorageSet.ts","../src/services/storage/createStorage/formatForStorage/isValidDateISOString/isValidDateISOString.ts","../src/services/storage/createStorage/formatForStorage/storageFormat.ts","../src/services/storage/createStorage/createStorage.ts","../src/services/storage/createStorageKeySchema/createStorageKeySchema.ts","../src/modules/initializeClient/consts.ts","../src/utils/deferredPromise/createDeferredPromise.ts","../src/errors/CannotTrackError.ts","../src/services/logger/createLogger/createLogger.ts","../src/errors/NoNetworkProvidersError.ts","../src/errors/WalletAlreadyLinkedToAnotherUserError.ts","../src/modules/captcha/isCaptchaRequired/isCaptchaRequired.ts","../src/modules/captcha/consumeCaptchaToken/consumeCaptchaToken.ts","../src/modules/captcha/setCaptchaToken/setCaptchaToken.ts","../src/modules/extension/hasExtension/hasExtension.ts","../src/modules/auth/createVisit/createVisit.ts","../src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.ts","../src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.ts","../src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.ts","../src/modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount/removeUnverifiedWalletAccount.ts","../src/utils/isError/isError.ts","../src/utils/isErrorWithCode/isErrorWithCode.ts","../src/modules/wallets/verifyMessageSignatureOwnership/verifyMessageSignatureOwnership.ts","../src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.ts","../src/modules/wallets/networks/getSdkChainFromApiChainName/getSdkChainFromApiChainName.ts","../src/modules/wallets/networks/getNetworksData/getNetworksData.ts","../src/modules/wallets/networks/networkProviderBuilderRegistry/createNetworkProviderBuilderRegistry/createNetworkProviderBuilderRegistry.ts","../src/modules/wallets/networks/networkProviderBuilderRegistry/getNetworkProviderBuilderRegistry/getNetworkProviderBuilderRegistry.ts","../src/modules/wallets/networks/getNetworkProviders/getNetworkProviders.ts","../src/modules/wallets/networks/getNetworkProviderFromNetworkId/getNetworkProviderFromNetworkId.ts"],"sourcesContent":["/**\n * Shallow compare two objects.\n *\n * Source: https://github.com/pmndrs/zustand/blob/main/src/vanilla/shallow.ts\n */\nexport const isEqualShallow = <T>(objA: T, objB: T) => {\n if (Object.is(objA, objB)) return true;\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return objA === objB;\n }\n\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) return false;\n }\n\n return true;\n }\n\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n\n for (const value of objA) {\n if (!objB.has(value)) return false;\n }\n return true;\n }\n\n const keysA = Object.keys(objA);\n\n if (keysA.length !== Object.keys(objB).length) return false;\n\n for (const keyA of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keyA as string) ||\n !Object.is(objA[keyA as keyof T], objB[keyA as keyof T])\n ) {\n return false;\n }\n }\n\n if (objA.constructor !== objB.constructor) return false;\n\n return true;\n};\n","import { isEqualShallow } from '../../isEqualShallow';\nimport type { ObservableState } from '../observable.types';\n\n/**\n * Allows subscribing to a slice of the state.\n * The slice is a computation of the states.\n *\n * The callback will only be called when the slice has changed.\n * Change is determined by shallow comparison.\n *\n * Returns a function to unsubscribe the callback.\n */\nexport const subscribeWithSelector =\n <T extends Record<string, unknown>, Slice>(\n observable: ObservableState<T>,\n selector: (value: T) => Slice\n ) =>\n (callback: (slice: Slice) => void) => {\n let lastSlice = selector(observable.get());\n\n return observable.subscribe((value) => {\n const nextSlice = selector(value);\n\n if (isEqualShallow(nextSlice, lastSlice)) return;\n\n lastSlice = nextSlice;\n\n callback(nextSlice);\n });\n };\n","/* eslint-disable no-restricted-globals -- this is the abstraction for localStorage */\nimport type { StorageAdapter } from '../storage.types';\n\n/**\n * Creates a localStorage adapter\n */\nexport const createLocalStorageAdapter = (): StorageAdapter => ({\n getItem: async (key) => localStorage.getItem(key),\n removeItem: async (key) => localStorage.removeItem(key),\n setItem: async (key, value) => localStorage.setItem(key, value),\n});\n","import { BaseError } from './base';\n\ntype InvalidStorageSetParams = {\n key: string;\n value: string;\n};\n\nexport class InvalidStorageSet extends BaseError {\n constructor({ key, value }: InvalidStorageSetParams) {\n super({\n cause: null,\n code: 'invalid_storage_set',\n docsUrl: null,\n metaMessages: [`key: ${key}`, value],\n name: 'InvalidStorageSet',\n shortMessage: 'Tried to store a value that does not match the schema',\n });\n }\n}\n","/**\n * Returns whether the given string is a valid ISO date string.\n *\n * Does not support timezone offsets.\n */\nexport const isValidDateISOString = (value: string): boolean => {\n const date = new Date(value);\n\n return !isNaN(date.getTime()) && date.toISOString() === value;\n};\n","import type { StorageFormat } from '../../storage.types';\nimport { isValidDateISOString } from './isValidDateISOString';\n\nconst DATE_PREFIX = '__DATE__';\n\nexport const formatForStorage = (value: unknown) => {\n const item: StorageFormat<typeof value> = { value };\n\n return JSON.stringify(item, (_, entry) => {\n // You might think that entry here would be a Date and one could simply do \"entry instanceof Date\",\n // but actually it will be a string already (no idea why JSON.stringify does this)\n if (isValidDateISOString(entry)) {\n return `${DATE_PREFIX}${entry}`;\n }\n\n return entry;\n });\n};\n\nexport const parseFromStorage = <T>(value: string): StorageFormat<T> | null => {\n try {\n const parsed = JSON.parse(value, (_, entry) => {\n if (typeof entry === 'string' && entry.startsWith(DATE_PREFIX)) {\n return new Date(entry.slice(DATE_PREFIX.length));\n }\n\n return entry;\n }) as StorageFormat<T>;\n\n return parsed;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n return null;\n }\n};\n","import type { Storage, StorageAdapter } from '../storage.types';\nimport { InvalidStorageSet } from './../../../errors/InvalidStorageSet';\nimport { formatForStorage } from './formatForStorage';\nimport { parseFromStorage } from './formatForStorage/storageFormat';\n\ntype CreateWebStorageParams = {\n prefix?: string;\n storageAdapter: StorageAdapter;\n};\n\n/**\n * Creates a Storage service to interact with storage adapter\n */\nexport const createStorage = ({\n prefix = '',\n storageAdapter,\n}: CreateWebStorageParams): Storage => {\n const getPrefixedKey = (key: string) => (prefix ? `${prefix}_${key}` : key);\n\n return {\n getItem: async (storageKeySchema) => {\n const rawItem = await storageAdapter.getItem(\n getPrefixedKey(storageKeySchema.key)\n );\n\n const parsedItem = rawItem ? parseFromStorage(rawItem) : null;\n\n /**\n * The item saved to localStorage may be malformed.\n * In this case, we remove it and return null.\n */\n if (parsedItem !== null) {\n const parsed = storageKeySchema.schema.safeParse(parsedItem.value);\n\n if (parsed.success) {\n return parsed.data;\n }\n }\n\n /**\n * The item saved to localStorage may be malformed.\n * In this case, we remove it and return null.\n */\n\n await storageAdapter.removeItem(getPrefixedKey(storageKeySchema.key));\n\n return null;\n },\n\n removeItem: async (storageKeySchema) => {\n await storageAdapter.removeItem(getPrefixedKey(storageKeySchema.key));\n },\n\n setItem: async (storageKeySchema, value) => {\n const parsed = storageKeySchema.schema.safeParse(value);\n\n if (!parsed.success) {\n throw new InvalidStorageSet({\n key: storageKeySchema.key,\n value: JSON.stringify(value),\n });\n }\n\n const item = formatForStorage(parsed.data);\n\n await storageAdapter.setItem(getPrefixedKey(storageKeySchema.key), item);\n },\n };\n};\n","import type * as z from 'zod/mini';\n\nimport type { StorageKeySchema } from '../storage.types';\n\nexport const createStorageKeySchema = <T>(params: {\n key: string;\n schema: z.ZodMiniType<T>;\n}): StorageKeySchema<T> => {\n return params;\n};\n","export const REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY =\n 'refresh-user-state-from-cookie';\n\nexport const INITIALIZE_STORAGE_SYNC_TRACKER_KEY = 'initialize-storage-sync';\n\nexport const FETCH_PROJECT_SETTINGS_TRACKER_KEY = 'fetch-project-settings';\n\nexport const GENERATE_SESSION_KEYS_TRACKER_KEY = 'generate-session-keys';\n","import type { DeferredPromise } from './deferredPromise.types';\n\nexport const createDeferredPromise = <T>(): DeferredPromise<T> => {\n let resolve: (value: T) => void;\n let reject: (reason?: unknown) => void;\n\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n\n return {\n promise,\n reject: (reason?: unknown) => reject?.(reason),\n resolve: (value: T) => resolve?.(value),\n };\n};\n","import { BaseError } from './base';\n\nexport class CannotTrackError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'cannot_track_error',\n docsUrl: null,\n name: 'CannotTrackError',\n shortMessage: 'All track calls must be performed in the same node tick',\n });\n }\n}\n","import { EventEmitter } from 'eventemitter3';\n\nimport type { LogLevel, Logger, LoggerEventEmitter } from '../logger.types';\n\n/**\n * Configuration options for the logger\n */\ntype CreateLoggerOptions = {\n level?: LogLevel;\n};\n\n/**\n * Log levels and their corresponding numeric values\n */\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n error: 3,\n info: 1,\n warn: 2,\n};\n\n// Assign to avoid lint errors\nconst defaultConsole = console;\n\n/**\n * Creates a logger instance with configurable log level and event emission capabilities.\n * @returns A logger instance with debug, info, warn, and error methods\n */\nexport const createLogger = (options: CreateLoggerOptions = {}): Logger => {\n const eventEmitter: LoggerEventEmitter = new EventEmitter();\n\n // Default to 'debug' if no level is provided\n const minLevel: LogLevel = options.level ?? 'warn';\n\n // Helper to decide if we should log based on current log level\n const shouldLog = (level: LogLevel): boolean => {\n return LOG_LEVELS[level] >= LOG_LEVELS[minLevel];\n };\n\n // Helper to format the log message\n const formatMessage = (level: LogLevel, message: string): string => {\n const timestamp = new Date().toISOString();\n\n return `[${timestamp}] ${level.toUpperCase()}: ${message}`;\n };\n\n // Unified logger function that checks the level and calls the appropriate console method\n const log = (\n level: LogLevel,\n consoleMethod: (...data: unknown[]) => void,\n message: string,\n ...args: unknown[]\n ) => {\n eventEmitter.emit('log', level, message, ...args);\n\n if (!shouldLog(level)) return;\n\n consoleMethod(formatMessage(level, message), ...args);\n };\n\n return {\n debug: (message, ...args) =>\n log('debug', defaultConsole.debug, message, ...args),\n\n error: (message, ...args) =>\n log('error', defaultConsole.error, message, ...args),\n\n info: (message, ...args) =>\n log('info', defaultConsole.info, message, ...args),\n\n off: eventEmitter.off.bind(eventEmitter),\n\n on: eventEmitter.on.bind(eventEmitter),\n warn: (message, ...args) =>\n log('warn', defaultConsole.warn, message, ...args),\n };\n};\n","import { BaseError } from './base';\n\nexport class NoNetworkProvidersError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'no_network_providers',\n docsUrl: null,\n name: 'NoNetworkProvidersError',\n shortMessage: 'No networks were registered in the client',\n });\n }\n}\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class WalletAlreadyLinkedToAnotherUserError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'wallet_already_linked_to_another_user_error',\n docsUrl: null,\n name: 'WalletAlreadyLinkedToAnotherUserError',\n shortMessage: 'This wallet is already linked to another user',\n });\n }\n}\n","import { getDefaultClient } from '../../../client/defaultClient';\nimport { assertDefined } from '../../../utils/assertDefined';\n\nexport const isCaptchaRequired = (client = getDefaultClient()) => {\n const projectSettings = client.projectSettings;\n\n assertDefined(projectSettings, 'Project settings are not available');\n\n return projectSettings.security.hCaptcha?.enabled ?? false;\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\nimport { isCaptchaRequired } from '../isCaptchaRequired';\n\n/**\n * Retrieves the current captcha token from the client state and sets it to null.\n */\nexport const consumeCaptchaToken = (\n client: DynamicClient\n): string | undefined => {\n const core = getCore(client);\n\n const captchaToken = core.state.get().captchaToken;\n\n if (isCaptchaRequired(client)) {\n assertDefined(captchaToken, 'Captcha token is required');\n }\n\n core.state.set({\n captchaToken: null,\n });\n\n return captchaToken ?? undefined;\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\n\ntype SetCaptchaTokenProps = {\n captchaToken: string;\n};\n\n/**\n * Sets the given captcha token in the client state.\n *\n * @param params.captchaToken - The captcha token to set.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const setCaptchaToken = (\n { captchaToken }: SetCaptchaTokenProps,\n client = getDefaultClient()\n) => {\n const core = getCore(client);\n\n core.state.set({\n captchaToken,\n });\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\n\ntype HasExtensionParams = {\n extensionKey: string;\n};\n\n/**\n * Checks if a specific extension has been applied to the Dynamic client.\n *\n * Extensions add optional features to the Dynamic SDK,\n * such as EVM, Solana, or other chain support.\n *\n * @param params.extensionKey - The unique key identifying the extension to check for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns True if the extension is applied, false otherwise.\n */\nexport const hasExtension = (\n { extensionKey }: HasExtensionParams,\n client = getDefaultClient()\n) => {\n const core = getCore(client);\n\n return core.extensions.has(extensionKey);\n};\n","import {\n AuthModeEnum,\n type ChainEnum,\n type ConnectRequest,\n} from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { createApiClient } from '../../apiClient';\nimport { getWalletProviderFromWalletAccount } from '../../wallets/utils/getWalletProviderFromWalletAccount';\nimport { normalizeWalletNameWithChain } from '../../wallets/utils/normalizeWalletNameWithChain';\nimport type { WalletAccount } from '../../wallets/walletAccount';\n\ntype CreateVisitParams = {\n authMode?: AuthModeEnum;\n walletAccount: WalletAccount;\n};\n\n/* \n In older SDK versions we used to have the concept of \"connect-only\" vs \"connect-and-sign\". \n The only difference in backend is it stores some extra data for connect-only, \n so we can just default to using it.\n*/\nexport const createVisit = async (\n { walletAccount, authMode = AuthModeEnum.Only }: CreateVisitParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n try {\n const walletName = normalizeWalletNameWithChain({\n chain: walletProvider.chain,\n displayName: walletProvider.metadata.displayName,\n });\n\n const connectRequest: ConnectRequest = {\n address: walletAccount.address,\n authMode,\n // eslint-disable-next-line custom-rules/ban-chain-enum\n chain: walletProvider.chain as ChainEnum,\n provider: walletProvider.walletProviderType,\n walletName,\n };\n\n await apiClient.createVisit({\n connectRequest,\n environmentId: core.environmentId,\n });\n } catch (error) {\n core.logger.error('Error creating visit', { error });\n }\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport type { UnverifiedWalletAccount } from '../unverifiedWalletAccounts.types';\n\ntype SetUnverifiedWalletAccountsParams = {\n unverifiedWalletAccountsToUpdate: UnverifiedWalletAccount[];\n};\n\n/**\n * Updates the unverified wallet account in the client state.\n * This will add new wallet accounts and override those with matching ids,\n * but will leave other preexisting wallet accounts unchanged.\n */\nexport const setUnverifiedWalletAccounts = (\n { unverifiedWalletAccountsToUpdate }: SetUnverifiedWalletAccountsParams,\n client: DynamicClient\n): void => {\n if (unverifiedWalletAccountsToUpdate.length === 0) {\n return;\n }\n\n const core = getCore(client);\n\n const unverifiedWalletAccountsToUpdateIds =\n unverifiedWalletAccountsToUpdate.map(({ id }) => id);\n\n const filteredUnverifiedWalletAccounts: UnverifiedWalletAccount[] = core.state\n .get()\n .unverifiedWalletAccounts.filter(\n (unverifiedWalletAccount) =>\n !unverifiedWalletAccountsToUpdateIds.includes(\n unverifiedWalletAccount.id\n )\n );\n\n core.state.set({\n unverifiedWalletAccounts: [\n ...filteredUnverifiedWalletAccounts,\n ...unverifiedWalletAccountsToUpdate,\n ],\n });\n};\n","type FormatSignInMessageParams = {\n address: string;\n blockchainName: string;\n chainId?: string;\n domain: string;\n issuedAt?: string;\n nonce: string;\n requestId?: string;\n resources?: string[];\n statement?: string;\n uri: string;\n};\n\n/**\n * Formats a sign in message to prove ownership of an address.\n */\nexport const formatSignInMessage = async ({\n domain,\n blockchainName,\n address,\n uri,\n chainId,\n nonce,\n issuedAt,\n requestId,\n statement,\n resources,\n}: FormatSignInMessageParams) => {\n // This format follows the sign-in with ethereum (SIWE) standard,\n // but we are using it also for non-ethereum wallets for now (eg. Solana)\n // for more context on format and fields, please see:\n // https://docs.login.xyz/general-information/siwe-overview/eip-4361\n const header = `${domain} wants you to sign in with your ${blockchainName} account:`;\n const prefix = [header, address].join('\\n');\n\n // If there is a statement, we want to add a gap between the prefix and the statement\n // two times '\\n', first to move statement to next line and second to add a gap between prefix and statement\n const prefixWithStatementGap = statement ? '\\n\\n' : '\\n';\n const prefixWithStatement = `${[prefix, statement].join(\n prefixWithStatementGap\n )}\\n`;\n\n const suffixFields: string[] = [];\n suffixFields.push(`URI: ${uri}`);\n suffixFields.push('Version: 1');\n if (chainId) {\n suffixFields.push(`Chain ID: ${chainId}`);\n }\n\n suffixFields.push(`Nonce: ${nonce}`);\n\n if (issuedAt) {\n suffixFields.push(`Issued At: ${issuedAt}`);\n }\n\n if (requestId) {\n suffixFields.push(`Request ID: ${requestId}`);\n }\n\n if (resources?.length) {\n suffixFields.push(\n `Resources:${resources.map((resource) => '\\n- ' + resource).join()}`\n );\n }\n\n const suffix = suffixFields.join('\\n');\n\n return [prefixWithStatement, suffix].join('\\n');\n};\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\n\nexport const createSignInMessageStatement = (client: DynamicClient) => {\n const core = getCore(client);\n\n const appName =\n core.metadata?.name ?? client.projectSettings?.general.displayName;\n\n return `Welcome to ${appName}. Signing is the only way we can truly know that you are the owner of the wallet you are connecting. Signing is a safe, gas-less transaction that does not in any way give ${appName} permission to perform any transactions with your wallet.`;\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport { checkAndRaiseWalletAccountsChangedEvent } from '../../../auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent';\nimport type { UnverifiedWalletAccount } from '../unverifiedWalletAccounts.types';\n\ntype RemoveUnverifiedWalletAccountParams = {\n unverifiedWalletAccount: UnverifiedWalletAccount;\n};\n\n/**\n * Removes an unverified wallet account from the client's state.\n */\nexport const removeUnverifiedWalletAccount = (\n { unverifiedWalletAccount }: RemoveUnverifiedWalletAccountParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n const previousState = core.state.get();\n\n const { unverifiedWalletAccounts } = core.state.get();\n\n const filteredUnverifiedWalletAccounts = unverifiedWalletAccounts.filter(\n (account) => account.id !== unverifiedWalletAccount.id\n );\n\n core.state.set({\n unverifiedWalletAccounts: filteredUnverifiedWalletAccounts,\n });\n\n /**\n * We check before raising because the wallet account we are removing might still\n * be present in wallet accounts due to having been moved to verified credentials.\n */\n checkAndRaiseWalletAccountsChangedEvent({ previousState }, client);\n};\n","/**\n * Check if the given value is an Error object\n */\nexport const isError = (error: unknown): error is Error =>\n error instanceof Error;\n","import { isError } from '../isError';\n\n/**\n * Check if the given value is an Error object with a specific code\n */\nexport const isErrorWithCode = <T extends string>(\n error: unknown,\n code: T\n): error is Error & { code: T } => {\n if (!isError(error)) return false;\n\n return 'code' in error && error.code === code;\n};\n","import type {\n ChainEnum,\n VerifyResponse,\n WalletAddressType,\n WalletProviderEnum,\n} from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { isErrorWithCode } from '../../../utils/isErrorWithCode';\nimport { createApiClient } from '../../apiClient';\nimport { consumeCaptchaToken } from '../../captcha/consumeCaptchaToken';\nimport type { Chain } from '../../chain';\nimport { normalizeWalletNameWithChain } from '../utils/normalizeWalletNameWithChain';\nimport type { WalletAddressWithType } from '../walletAccount/walletAccount.types';\nimport { WalletAlreadyLinkedToAnotherUserError } from './../../../errors/WalletAlreadyLinkedToAnotherUserError';\n\ntype VerifyMessageSignatureOwnershipParams = {\n addressesWithTypes?: WalletAddressWithType[];\n chain: Chain;\n isTransfer?: boolean;\n messageToSign: string;\n signature: string;\n walletAddress: string;\n walletDisplayName: string;\n walletProviderType: WalletProviderEnum;\n};\n\n/**\n * Verifies a signed message by calling either the verifyLink, verifyTransfer or verify API function,\n * depending on whether the user is signing in, linking or transferring a wallet.\n *\n * Does NOT call updateAuthFromVerifyResponse, it should be called from the return of this function.\n */\nexport const verifyMessageSignatureOwnership = async (\n {\n messageToSign,\n walletAddress,\n addressesWithTypes,\n signature,\n chain,\n isTransfer = false,\n walletDisplayName,\n walletProviderType,\n }: VerifyMessageSignatureOwnershipParams,\n client: DynamicClient\n): Promise<VerifyResponse> => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const walletName = normalizeWalletNameWithChain({\n chain,\n displayName: walletDisplayName,\n });\n\n let verifyApiFunction;\n\n if (!client.user) {\n verifyApiFunction = apiClient.verify.bind(apiClient);\n } else if (isTransfer) {\n verifyApiFunction = apiClient.verifyTransfer.bind(apiClient);\n } else {\n verifyApiFunction = apiClient.verifyLink.bind(apiClient);\n }\n\n try {\n return await verifyApiFunction({\n environmentId: core.environmentId,\n verifyRequest: {\n // mapping to handle typecasting for address type\n additionalWalletAddresses: addressesWithTypes?.map((address) => ({\n address: address.address,\n publicKey: address.publicKey,\n type: address.type as WalletAddressType,\n })),\n captchaToken: consumeCaptchaToken(client),\n // eslint-disable-next-line custom-rules/ban-chain-enum\n chain: chain as ChainEnum,\n messageToSign,\n publicWalletAddress: walletAddress,\n signedMessage: signature,\n walletName,\n walletProvider: walletProviderType,\n },\n });\n } catch (error) {\n if (\n isErrorWithCode(error, 'reassign_wallet_confirm') ||\n isErrorWithCode(error, 'merge_accounts_confirmation')\n ) {\n throw new WalletAlreadyLinkedToAnotherUserError({\n cause: error,\n });\n }\n\n throw error;\n }\n};\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\n\ntype updateWalletProviderKeysForVerifiedCredentialsParams = {\n keysToUpdate: Record<string, string>;\n};\n\nexport const updateWalletProviderKeysForVerifiedCredentials = (\n { keysToUpdate }: updateWalletProviderKeysForVerifiedCredentialsParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n core.state.set({\n walletProviderKeyMap: {\n ...core.state.get().walletProviderKeyMap,\n ...keysToUpdate,\n },\n });\n};\n","import type { Chain } from '../../../chain';\nimport { CHAINS_INFO_MAP } from '../../constants';\n\n/**\n * Maps the chain name from the API to the SDK chain name\n */\nexport const getSdkChainFromApiChainName = (\n chainName: string\n): Chain | null => {\n const chains = Object.keys(CHAINS_INFO_MAP) as Chain[];\n\n const chain = chains.find(\n (chain) => CHAINS_INFO_MAP[chain].apiChainName === chainName\n );\n\n return chain || null;\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport { getDefaultClient } from '../../../../client/defaultClient';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport { getSdkChainFromApiChainName } from '../getSdkChainFromApiChainName';\nimport type { NetworkData } from '../networkProvider/networkProvider.types';\n\n/**\n * Retrieves all available network configurations from project settings.\n *\n * This function returns detailed configuration data for all networks enabled\n * in your Dynamic project, including RPC URLs, native currencies, and metadata.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An array of network configuration data for all enabled networks.\n */\nexport const getNetworksData = (client = getDefaultClient()): NetworkData[] => {\n const { state } = getCore(client);\n\n const { projectSettings } = state.get();\n\n assertDefined(projectSettings, 'projectSettings not found');\n\n const networks = projectSettings.networks;\n\n if (!networks) {\n return [];\n }\n\n const networksData = networks\n .map((network) => {\n if (!network.chainName) return [];\n\n const chain = getSdkChainFromApiChainName(network.chainName);\n\n if (!network?.networks?.length || !chain) return [];\n\n return network.networks.map((networkConfiguration) => ({\n blockExplorerUrls: networkConfiguration.blockExplorerUrls,\n chain,\n cluster: networkConfiguration.cluster,\n displayName:\n networkConfiguration.vanityName || networkConfiguration.name,\n genesisHash: networkConfiguration.genesisHash,\n iconUrl: networkConfiguration.iconUrls[0],\n nativeCurrency: {\n decimals: networkConfiguration.nativeCurrency.decimals,\n iconUrl: networkConfiguration.nativeCurrency.iconUrl,\n name: networkConfiguration.nativeCurrency.name,\n symbol: networkConfiguration.nativeCurrency.symbol,\n },\n networkId: networkConfiguration.networkId,\n rpcUrls: {\n http: [\n ...(networkConfiguration.privateCustomerRpcUrls ?? []),\n ...(networkConfiguration.rpcUrls ?? []),\n ],\n },\n testnet: networkConfiguration.isTestnet ?? false,\n }));\n })\n .flat();\n\n return networksData;\n};\n","import type { Chain } from '../../../../chain';\nimport type {\n NetworkProviderBuilder,\n NetworkProviderBuilderRegistry,\n} from '../networkProviderBuilderRegistry.types';\n\nexport const createNetworkProviderBuilderRegistry =\n (): NetworkProviderBuilderRegistry => {\n const registry = new Map<Chain, NetworkProviderBuilder>();\n\n return {\n get: () => registry,\n register: (networkProviderBuilder) => {\n registry.set(networkProviderBuilder.chain, networkProviderBuilder);\n },\n };\n };\n","import { createRuntimeServiceAccessKey } from '../../../../../services/runtimeServices';\nimport { createNetworkProviderBuilderRegistry } from '../createNetworkProviderBuilderRegistry';\n\nexport const getNetworkProviderBuilderRegistry = createRuntimeServiceAccessKey(\n 'networkProviderBuilderRegistry',\n createNetworkProviderBuilderRegistry\n);\n","import type { DynamicClient } from '../../../../client/types';\nimport { getNetworksData } from '../getNetworksData';\nimport type { NetworkProvider } from '../networkProvider';\nimport { getNetworkProviderBuilderRegistry } from '../networkProviderBuilderRegistry';\n\n/**\n * Retrieves all registered network providers for enabled chains.\n */\nexport const getNetworkProviders = (\n client: DynamicClient\n): NetworkProvider[] => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n const registeredNetworkProviderBuilders = Array.from(\n networkProviderBuilderRegistry.get().values()\n );\n\n const networksData = getNetworksData(client);\n\n const networkProviders = registeredNetworkProviderBuilders.map(\n ({ builder, chain }) => {\n const networksDataForChain = networksData.filter(\n (networkData) => networkData.chain === chain\n );\n\n return networksDataForChain.map(builder);\n }\n );\n\n return networkProviders.flat();\n};\n","import type { DynamicClient } from '../../../../client/types';\nimport { NoNetworkProvidersError } from '../../../../errors/NoNetworkProvidersError';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport type { Chain } from '../../../chain';\nimport { getNetworkProviders } from '../getNetworkProviders';\nimport type { NetworkProvider } from '../networkProvider/networkProvider.types';\n\ntype GetNetworkProviderFromNetworkIdProps = {\n chain: Chain;\n networkId: string;\n};\n\nexport const getNetworkProviderFromNetworkId = (\n { networkId, chain }: GetNetworkProviderFromNetworkIdProps,\n client: DynamicClient\n): NetworkProvider => {\n const networkProviders = getNetworkProviders(client);\n\n if (networkProviders.length === 0) {\n throw new NoNetworkProvidersError();\n }\n\n const networkProvider = networkProviders.find(\n (networkProvider) =>\n networkProvider.networkId === networkId && networkProvider.chain === chain\n );\n\n assertDefined(\n networkProvider,\n `No network provider found for chain ${chain} with network id ${networkId}`\n );\n\n return networkProvider;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"getNetworkProviderFromNetworkId-DM3nd8O1.cjs.js","names":["BaseError","item: StorageFormat<typeof value>","resolve: (value: T) => void","reject: (reason?: unknown) => void","BaseError","LOG_LEVELS: Record<LogLevel, number>","eventEmitter: LoggerEventEmitter","EventEmitter","minLevel: LogLevel","BaseError","BaseError","getDefaultClient","getCore","getDefaultClient","getCore","getDefaultClient","getCore","AuthModeEnum","getCore","createApiClient","getWalletProviderFromWalletAccount","normalizeWalletNameWithChain","connectRequest: ConnectRequest","getCore","filteredUnverifiedWalletAccounts: UnverifiedWalletAccount[]","suffixFields: string[]","getCore","getCore","getCore","createApiClient","normalizeWalletNameWithChain","getCore","CHAINS_INFO_MAP","getDefaultClient","getCore","createRuntimeServiceAccessKey","networkProvider"],"sources":["../src/utils/isEqualShallow/isEqualShallow.ts","../src/utils/observable/subscribeWithSelector/subscribeWithSelector.ts","../src/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.ts","../src/errors/InvalidStorageSet.ts","../src/services/storage/createStorage/formatForStorage/isValidDateISOString/isValidDateISOString.ts","../src/services/storage/createStorage/formatForStorage/storageFormat.ts","../src/services/storage/createStorage/createStorage.ts","../src/services/storage/createStorageKeySchema/createStorageKeySchema.ts","../src/modules/initializeClient/consts.ts","../src/utils/deferredPromise/createDeferredPromise.ts","../src/errors/CannotTrackError.ts","../src/services/logger/createLogger/createLogger.ts","../src/errors/NoNetworkProvidersError.ts","../src/errors/WalletAlreadyLinkedToAnotherUserError.ts","../src/modules/captcha/isCaptchaRequired/isCaptchaRequired.ts","../src/modules/captcha/consumeCaptchaToken/consumeCaptchaToken.ts","../src/modules/captcha/setCaptchaToken/setCaptchaToken.ts","../src/modules/extension/hasExtension/hasExtension.ts","../src/modules/auth/createVisit/createVisit.ts","../src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.ts","../src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.ts","../src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.ts","../src/modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount/removeUnverifiedWalletAccount.ts","../src/utils/isError/isError.ts","../src/utils/isErrorWithCode/isErrorWithCode.ts","../src/modules/wallets/verifyMessageSignatureOwnership/verifyMessageSignatureOwnership.ts","../src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.ts","../src/modules/wallets/networks/getSdkChainFromApiChainName/getSdkChainFromApiChainName.ts","../src/modules/wallets/networks/getNetworksData/getNetworksData.ts","../src/modules/wallets/networks/networkProviderBuilderRegistry/createNetworkProviderBuilderRegistry/createNetworkProviderBuilderRegistry.ts","../src/modules/wallets/networks/networkProviderBuilderRegistry/getNetworkProviderBuilderRegistry/getNetworkProviderBuilderRegistry.ts","../src/modules/wallets/networks/getNetworkProviders/getNetworkProviders.ts","../src/modules/wallets/networks/getNetworkProviderFromNetworkId/getNetworkProviderFromNetworkId.ts"],"sourcesContent":["/**\n * Shallow compare two objects.\n *\n * Source: https://github.com/pmndrs/zustand/blob/main/src/vanilla/shallow.ts\n */\nexport const isEqualShallow = <T>(objA: T, objB: T) => {\n if (Object.is(objA, objB)) return true;\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return objA === objB;\n }\n\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) return false;\n }\n\n return true;\n }\n\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n\n for (const value of objA) {\n if (!objB.has(value)) return false;\n }\n return true;\n }\n\n const keysA = Object.keys(objA);\n\n if (keysA.length !== Object.keys(objB).length) return false;\n\n for (const keyA of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keyA as string) ||\n !Object.is(objA[keyA as keyof T], objB[keyA as keyof T])\n ) {\n return false;\n }\n }\n\n if (objA.constructor !== objB.constructor) return false;\n\n return true;\n};\n","import { isEqualShallow } from '../../isEqualShallow';\nimport type { ObservableState } from '../observable.types';\n\n/**\n * Allows subscribing to a slice of the state.\n * The slice is a computation of the states.\n *\n * The callback will only be called when the slice has changed.\n * Change is determined by shallow comparison.\n *\n * Returns a function to unsubscribe the callback.\n */\nexport const subscribeWithSelector =\n <T extends Record<string, unknown>, Slice>(\n observable: ObservableState<T>,\n selector: (value: T) => Slice\n ) =>\n (callback: (slice: Slice) => void) => {\n let lastSlice = selector(observable.get());\n\n return observable.subscribe((value) => {\n const nextSlice = selector(value);\n\n if (isEqualShallow(nextSlice, lastSlice)) return;\n\n lastSlice = nextSlice;\n\n callback(nextSlice);\n });\n };\n","/* eslint-disable no-restricted-globals -- this is the abstraction for localStorage */\nimport type { StorageAdapter } from '../storage.types';\n\n/**\n * Creates a localStorage adapter\n */\nexport const createLocalStorageAdapter = (): StorageAdapter => ({\n getItem: async (key) => localStorage.getItem(key),\n removeItem: async (key) => localStorage.removeItem(key),\n setItem: async (key, value) => localStorage.setItem(key, value),\n});\n","import { BaseError } from './base';\n\ntype InvalidStorageSetParams = {\n key: string;\n value: string;\n};\n\nexport class InvalidStorageSet extends BaseError {\n constructor({ key, value }: InvalidStorageSetParams) {\n super({\n cause: null,\n code: 'invalid_storage_set',\n docsUrl: null,\n metaMessages: [`key: ${key}`, value],\n name: 'InvalidStorageSet',\n shortMessage: 'Tried to store a value that does not match the schema',\n });\n }\n}\n","/**\n * Returns whether the given string is a valid ISO date string.\n *\n * Does not support timezone offsets.\n */\nexport const isValidDateISOString = (value: string): boolean => {\n const date = new Date(value);\n\n return !isNaN(date.getTime()) && date.toISOString() === value;\n};\n","import type { StorageFormat } from '../../storage.types';\nimport { isValidDateISOString } from './isValidDateISOString';\n\nconst DATE_PREFIX = '__DATE__';\n\nexport const formatForStorage = (value: unknown) => {\n const item: StorageFormat<typeof value> = { value };\n\n return JSON.stringify(item, (_, entry) => {\n // You might think that entry here would be a Date and one could simply do \"entry instanceof Date\",\n // but actually it will be a string already (no idea why JSON.stringify does this)\n if (isValidDateISOString(entry)) {\n return `${DATE_PREFIX}${entry}`;\n }\n\n return entry;\n });\n};\n\nexport const parseFromStorage = <T>(value: string): StorageFormat<T> | null => {\n try {\n const parsed = JSON.parse(value, (_, entry) => {\n if (typeof entry === 'string' && entry.startsWith(DATE_PREFIX)) {\n return new Date(entry.slice(DATE_PREFIX.length));\n }\n\n return entry;\n }) as StorageFormat<T>;\n\n return parsed;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n return null;\n }\n};\n","import type { Storage, StorageAdapter } from '../storage.types';\nimport { InvalidStorageSet } from './../../../errors/InvalidStorageSet';\nimport { formatForStorage } from './formatForStorage';\nimport { parseFromStorage } from './formatForStorage/storageFormat';\n\ntype CreateWebStorageParams = {\n prefix?: string;\n storageAdapter: StorageAdapter;\n};\n\n/**\n * Creates a Storage service to interact with storage adapter\n */\nexport const createStorage = ({\n prefix = '',\n storageAdapter,\n}: CreateWebStorageParams): Storage => {\n const getPrefixedKey = (key: string) => (prefix ? `${prefix}_${key}` : key);\n\n return {\n getItem: async (storageKeySchema) => {\n const rawItem = await storageAdapter.getItem(\n getPrefixedKey(storageKeySchema.key)\n );\n\n const parsedItem = rawItem ? parseFromStorage(rawItem) : null;\n\n /**\n * The item saved to localStorage may be malformed.\n * In this case, we remove it and return null.\n */\n if (parsedItem !== null) {\n const parsed = storageKeySchema.schema.safeParse(parsedItem.value);\n\n if (parsed.success) {\n return parsed.data;\n }\n }\n\n /**\n * The item saved to localStorage may be malformed.\n * In this case, we remove it and return null.\n */\n\n await storageAdapter.removeItem(getPrefixedKey(storageKeySchema.key));\n\n return null;\n },\n\n removeItem: async (storageKeySchema) => {\n await storageAdapter.removeItem(getPrefixedKey(storageKeySchema.key));\n },\n\n setItem: async (storageKeySchema, value) => {\n const parsed = storageKeySchema.schema.safeParse(value);\n\n if (!parsed.success) {\n throw new InvalidStorageSet({\n key: storageKeySchema.key,\n value: JSON.stringify(value),\n });\n }\n\n const item = formatForStorage(parsed.data);\n\n await storageAdapter.setItem(getPrefixedKey(storageKeySchema.key), item);\n },\n };\n};\n","import type * as z from 'zod/mini';\n\nimport type { StorageKeySchema } from '../storage.types';\n\nexport const createStorageKeySchema = <T>(params: {\n key: string;\n schema: z.ZodMiniType<T>;\n}): StorageKeySchema<T> => {\n return params;\n};\n","export const REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY =\n 'refresh-user-state-from-cookie';\n\nexport const INITIALIZE_STORAGE_SYNC_TRACKER_KEY = 'initialize-storage-sync';\n\nexport const FETCH_PROJECT_SETTINGS_TRACKER_KEY = 'fetch-project-settings';\n\nexport const GENERATE_SESSION_KEYS_TRACKER_KEY = 'generate-session-keys';\n","import type { DeferredPromise } from './deferredPromise.types';\n\nexport const createDeferredPromise = <T>(): DeferredPromise<T> => {\n let resolve: (value: T) => void;\n let reject: (reason?: unknown) => void;\n\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n\n return {\n promise,\n reject: (reason?: unknown) => reject?.(reason),\n resolve: (value: T) => resolve?.(value),\n };\n};\n","import { BaseError } from './base';\n\nexport class CannotTrackError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'cannot_track_error',\n docsUrl: null,\n name: 'CannotTrackError',\n shortMessage: 'All track calls must be performed in the same node tick',\n });\n }\n}\n","import { EventEmitter } from 'eventemitter3';\n\nimport type { LogLevel, Logger, LoggerEventEmitter } from '../logger.types';\n\n/**\n * Configuration options for the logger\n */\ntype CreateLoggerOptions = {\n level?: LogLevel;\n};\n\n/**\n * Log levels and their corresponding numeric values\n */\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n error: 3,\n info: 1,\n warn: 2,\n};\n\n// Assign to avoid lint errors\nconst defaultConsole = console;\n\n/**\n * Creates a logger instance with configurable log level and event emission capabilities.\n * @returns A logger instance with debug, info, warn, and error methods\n */\nexport const createLogger = (options: CreateLoggerOptions = {}): Logger => {\n const eventEmitter: LoggerEventEmitter = new EventEmitter();\n\n // Default to 'debug' if no level is provided\n const minLevel: LogLevel = options.level ?? 'warn';\n\n // Helper to decide if we should log based on current log level\n const shouldLog = (level: LogLevel): boolean => {\n return LOG_LEVELS[level] >= LOG_LEVELS[minLevel];\n };\n\n // Helper to format the log message\n const formatMessage = (level: LogLevel, message: string): string => {\n const timestamp = new Date().toISOString();\n\n return `[${timestamp}] ${level.toUpperCase()}: ${message}`;\n };\n\n // Unified logger function that checks the level and calls the appropriate console method\n const log = (\n level: LogLevel,\n consoleMethod: (...data: unknown[]) => void,\n message: string,\n ...args: unknown[]\n ) => {\n eventEmitter.emit('log', level, message, ...args);\n\n if (!shouldLog(level)) return;\n\n consoleMethod(formatMessage(level, message), ...args);\n };\n\n return {\n debug: (message, ...args) =>\n log('debug', defaultConsole.debug, message, ...args),\n\n error: (message, ...args) =>\n log('error', defaultConsole.error, message, ...args),\n\n info: (message, ...args) =>\n log('info', defaultConsole.info, message, ...args),\n\n off: eventEmitter.off.bind(eventEmitter),\n\n on: eventEmitter.on.bind(eventEmitter),\n warn: (message, ...args) =>\n log('warn', defaultConsole.warn, message, ...args),\n };\n};\n","import { BaseError } from './base';\n\nexport class NoNetworkProvidersError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'no_network_providers',\n docsUrl: null,\n name: 'NoNetworkProvidersError',\n shortMessage: 'No networks were registered in the client',\n });\n }\n}\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class WalletAlreadyLinkedToAnotherUserError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'wallet_already_linked_to_another_user_error',\n docsUrl: null,\n name: 'WalletAlreadyLinkedToAnotherUserError',\n shortMessage: 'This wallet is already linked to another user',\n });\n }\n}\n","import { getDefaultClient } from '../../../client/defaultClient';\nimport { assertDefined } from '../../../utils/assertDefined';\n\nexport const isCaptchaRequired = (client = getDefaultClient()) => {\n const projectSettings = client.projectSettings;\n\n assertDefined(projectSettings, 'Project settings are not available');\n\n return projectSettings.security.hCaptcha?.enabled ?? false;\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\nimport { isCaptchaRequired } from '../isCaptchaRequired';\n\n/**\n * Retrieves the current captcha token from the client state and sets it to null.\n */\nexport const consumeCaptchaToken = (\n client: DynamicClient\n): string | undefined => {\n const core = getCore(client);\n\n const captchaToken = core.state.get().captchaToken;\n\n if (isCaptchaRequired(client)) {\n assertDefined(captchaToken, 'Captcha token is required');\n }\n\n core.state.set({\n captchaToken: null,\n });\n\n return captchaToken ?? undefined;\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\n\ntype SetCaptchaTokenProps = {\n captchaToken: string;\n};\n\n/**\n * Sets the given captcha token in the client state.\n *\n * @param params.captchaToken - The captcha token to set.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const setCaptchaToken = (\n { captchaToken }: SetCaptchaTokenProps,\n client = getDefaultClient()\n) => {\n const core = getCore(client);\n\n core.state.set({\n captchaToken,\n });\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\n\ntype HasExtensionParams = {\n extensionKey: string;\n};\n\n/**\n * Checks if a specific extension has been applied to the Dynamic client.\n *\n * Extensions add optional features to the Dynamic SDK,\n * such as EVM, Solana, or other chain support.\n *\n * @param params.extensionKey - The unique key identifying the extension to check for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns True if the extension is applied, false otherwise.\n */\nexport const hasExtension = (\n { extensionKey }: HasExtensionParams,\n client = getDefaultClient()\n) => {\n const core = getCore(client);\n\n return core.extensions.has(extensionKey);\n};\n","import {\n AuthModeEnum,\n type ChainEnum,\n type ConnectRequest,\n} from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { createApiClient } from '../../apiClient';\nimport { getWalletProviderFromWalletAccount } from '../../wallets/utils/getWalletProviderFromWalletAccount';\nimport { normalizeWalletNameWithChain } from '../../wallets/utils/normalizeWalletNameWithChain';\nimport type { WalletAccount } from '../../wallets/walletAccount';\n\ntype CreateVisitParams = {\n authMode?: AuthModeEnum;\n walletAccount: WalletAccount;\n};\n\n/* \n In older SDK versions we used to have the concept of \"connect-only\" vs \"connect-and-sign\". \n The only difference in backend is it stores some extra data for connect-only, \n so we can just default to using it.\n*/\nexport const createVisit = async (\n { walletAccount, authMode = AuthModeEnum.Only }: CreateVisitParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n try {\n const walletName = normalizeWalletNameWithChain({\n chain: walletProvider.chain,\n displayName: walletProvider.metadata.displayName,\n });\n\n const connectRequest: ConnectRequest = {\n address: walletAccount.address,\n authMode,\n // eslint-disable-next-line custom-rules/ban-chain-enum\n chain: walletProvider.chain as ChainEnum,\n provider: walletProvider.walletProviderType,\n walletName,\n };\n\n await apiClient.createVisit({\n connectRequest,\n environmentId: core.environmentId,\n });\n } catch (error) {\n core.logger.error('Error creating visit', { error });\n }\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport type { UnverifiedWalletAccount } from '../unverifiedWalletAccounts.types';\n\ntype SetUnverifiedWalletAccountsParams = {\n unverifiedWalletAccountsToUpdate: UnverifiedWalletAccount[];\n};\n\n/**\n * Updates the unverified wallet account in the client state.\n * This will add new wallet accounts and override those with matching ids,\n * but will leave other preexisting wallet accounts unchanged.\n */\nexport const setUnverifiedWalletAccounts = (\n { unverifiedWalletAccountsToUpdate }: SetUnverifiedWalletAccountsParams,\n client: DynamicClient\n): void => {\n if (unverifiedWalletAccountsToUpdate.length === 0) {\n return;\n }\n\n const core = getCore(client);\n\n const unverifiedWalletAccountsToUpdateIds =\n unverifiedWalletAccountsToUpdate.map(({ id }) => id);\n\n const filteredUnverifiedWalletAccounts: UnverifiedWalletAccount[] = core.state\n .get()\n .unverifiedWalletAccounts.filter(\n (unverifiedWalletAccount) =>\n !unverifiedWalletAccountsToUpdateIds.includes(\n unverifiedWalletAccount.id\n )\n );\n\n core.state.set({\n unverifiedWalletAccounts: [\n ...filteredUnverifiedWalletAccounts,\n ...unverifiedWalletAccountsToUpdate,\n ],\n });\n};\n","type FormatSignInMessageParams = {\n address: string;\n blockchainName: string;\n chainId?: string;\n domain: string;\n issuedAt?: string;\n nonce: string;\n requestId?: string;\n resources?: string[];\n statement?: string;\n uri: string;\n};\n\n/**\n * Formats a sign in message to prove ownership of an address.\n */\nexport const formatSignInMessage = async ({\n domain,\n blockchainName,\n address,\n uri,\n chainId,\n nonce,\n issuedAt,\n requestId,\n statement,\n resources,\n}: FormatSignInMessageParams) => {\n // This format follows the sign-in with ethereum (SIWE) standard,\n // but we are using it also for non-ethereum wallets for now (eg. Solana)\n // for more context on format and fields, please see:\n // https://docs.login.xyz/general-information/siwe-overview/eip-4361\n const header = `${domain} wants you to sign in with your ${blockchainName} account:`;\n const prefix = [header, address].join('\\n');\n\n // If there is a statement, we want to add a gap between the prefix and the statement\n // two times '\\n', first to move statement to next line and second to add a gap between prefix and statement\n const prefixWithStatementGap = statement ? '\\n\\n' : '\\n';\n const prefixWithStatement = `${[prefix, statement].join(\n prefixWithStatementGap\n )}\\n`;\n\n const suffixFields: string[] = [];\n suffixFields.push(`URI: ${uri}`);\n suffixFields.push('Version: 1');\n if (chainId) {\n suffixFields.push(`Chain ID: ${chainId}`);\n }\n\n suffixFields.push(`Nonce: ${nonce}`);\n\n if (issuedAt) {\n suffixFields.push(`Issued At: ${issuedAt}`);\n }\n\n if (requestId) {\n suffixFields.push(`Request ID: ${requestId}`);\n }\n\n if (resources?.length) {\n suffixFields.push(\n `Resources:${resources.map((resource) => '\\n- ' + resource).join()}`\n );\n }\n\n const suffix = suffixFields.join('\\n');\n\n return [prefixWithStatement, suffix].join('\\n');\n};\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\n\nexport const createSignInMessageStatement = (client: DynamicClient) => {\n const core = getCore(client);\n\n const appName =\n core.metadata?.name ?? client.projectSettings?.general.displayName;\n\n return `Welcome to ${appName}. Signing is the only way we can truly know that you are the owner of the wallet you are connecting. Signing is a safe, gas-less transaction that does not in any way give ${appName} permission to perform any transactions with your wallet.`;\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport { checkAndRaiseWalletAccountsChangedEvent } from '../../../auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent';\nimport type { UnverifiedWalletAccount } from '../unverifiedWalletAccounts.types';\n\ntype RemoveUnverifiedWalletAccountParams = {\n unverifiedWalletAccount: UnverifiedWalletAccount;\n};\n\n/**\n * Removes an unverified wallet account from the client's state.\n */\nexport const removeUnverifiedWalletAccount = (\n { unverifiedWalletAccount }: RemoveUnverifiedWalletAccountParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n const previousState = core.state.get();\n\n const { unverifiedWalletAccounts } = core.state.get();\n\n const filteredUnverifiedWalletAccounts = unverifiedWalletAccounts.filter(\n (account) => account.id !== unverifiedWalletAccount.id\n );\n\n core.state.set({\n unverifiedWalletAccounts: filteredUnverifiedWalletAccounts,\n });\n\n /**\n * We check before raising because the wallet account we are removing might still\n * be present in wallet accounts due to having been moved to verified credentials.\n */\n checkAndRaiseWalletAccountsChangedEvent({ previousState }, client);\n};\n","/**\n * Check if the given value is an Error object\n */\nexport const isError = (error: unknown): error is Error =>\n error instanceof Error;\n","import { isError } from '../isError';\n\n/**\n * Check if the given value is an Error object with a specific code\n */\nexport const isErrorWithCode = <T extends string>(\n error: unknown,\n code: T\n): error is Error & { code: T } => {\n if (!isError(error)) return false;\n\n return 'code' in error && error.code === code;\n};\n","import type {\n ChainEnum,\n VerifyResponse,\n WalletAddressType,\n WalletProviderEnum,\n} from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { isErrorWithCode } from '../../../utils/isErrorWithCode';\nimport { createApiClient } from '../../apiClient';\nimport { consumeCaptchaToken } from '../../captcha/consumeCaptchaToken';\nimport type { Chain } from '../../chain';\nimport { normalizeWalletNameWithChain } from '../utils/normalizeWalletNameWithChain';\nimport type { WalletAddressWithType } from '../walletAccount/walletAccount.types';\nimport { WalletAlreadyLinkedToAnotherUserError } from './../../../errors/WalletAlreadyLinkedToAnotherUserError';\n\ntype VerifyMessageSignatureOwnershipParams = {\n addressesWithTypes?: WalletAddressWithType[];\n chain: Chain;\n isTransfer?: boolean;\n messageToSign: string;\n signature: string;\n walletAddress: string;\n walletDisplayName: string;\n walletProviderType: WalletProviderEnum;\n};\n\n/**\n * Verifies a signed message by calling either the verifyLink, verifyTransfer or verify API function,\n * depending on whether the user is signing in, linking or transferring a wallet.\n *\n * Does NOT call updateAuthFromVerifyResponse, it should be called from the return of this function.\n */\nexport const verifyMessageSignatureOwnership = async (\n {\n messageToSign,\n walletAddress,\n addressesWithTypes,\n signature,\n chain,\n isTransfer = false,\n walletDisplayName,\n walletProviderType,\n }: VerifyMessageSignatureOwnershipParams,\n client: DynamicClient\n): Promise<VerifyResponse> => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const walletName = normalizeWalletNameWithChain({\n chain,\n displayName: walletDisplayName,\n });\n\n let verifyApiFunction;\n\n if (!client.user) {\n verifyApiFunction = apiClient.verify.bind(apiClient);\n } else if (isTransfer) {\n verifyApiFunction = apiClient.verifyTransfer.bind(apiClient);\n } else {\n verifyApiFunction = apiClient.verifyLink.bind(apiClient);\n }\n\n try {\n return await verifyApiFunction({\n environmentId: core.environmentId,\n verifyRequest: {\n // mapping to handle typecasting for address type\n additionalWalletAddresses: addressesWithTypes?.map((address) => ({\n address: address.address,\n publicKey: address.publicKey,\n type: address.type as WalletAddressType,\n })),\n captchaToken: consumeCaptchaToken(client),\n // eslint-disable-next-line custom-rules/ban-chain-enum\n chain: chain as ChainEnum,\n messageToSign,\n publicWalletAddress: walletAddress,\n signedMessage: signature,\n walletName,\n walletProvider: walletProviderType,\n },\n });\n } catch (error) {\n if (\n isErrorWithCode(error, 'reassign_wallet_confirm') ||\n isErrorWithCode(error, 'merge_accounts_confirmation')\n ) {\n throw new WalletAlreadyLinkedToAnotherUserError({\n cause: error,\n });\n }\n\n throw error;\n }\n};\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\n\ntype updateWalletProviderKeysForVerifiedCredentialsParams = {\n keysToUpdate: Record<string, string>;\n};\n\nexport const updateWalletProviderKeysForVerifiedCredentials = (\n { keysToUpdate }: updateWalletProviderKeysForVerifiedCredentialsParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n core.state.set({\n walletProviderKeyMap: {\n ...core.state.get().walletProviderKeyMap,\n ...keysToUpdate,\n },\n });\n};\n","import type { Chain } from '../../../chain';\nimport { CHAINS_INFO_MAP } from '../../constants';\n\n/**\n * Maps the chain name from the API to the SDK chain name\n */\nexport const getSdkChainFromApiChainName = (\n chainName: string\n): Chain | null => {\n const chains = Object.keys(CHAINS_INFO_MAP) as Chain[];\n\n const chain = chains.find(\n (chain) => CHAINS_INFO_MAP[chain].apiChainName === chainName\n );\n\n return chain || null;\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport { getDefaultClient } from '../../../../client/defaultClient';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport { getSdkChainFromApiChainName } from '../getSdkChainFromApiChainName';\nimport type { NetworkData } from '../networkProvider/networkProvider.types';\n\n/**\n * Retrieves all available network configurations from project settings.\n *\n * This function returns detailed configuration data for all networks enabled\n * in your Dynamic project, including RPC URLs, native currencies, and metadata.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An array of network configuration data for all enabled networks.\n */\nexport const getNetworksData = (client = getDefaultClient()): NetworkData[] => {\n const { state } = getCore(client);\n\n const { projectSettings } = state.get();\n\n assertDefined(projectSettings, 'projectSettings not found');\n\n const networks = projectSettings.networks;\n\n if (!networks) {\n return [];\n }\n\n const networksData = networks\n .map((network) => {\n if (!network.chainName) return [];\n\n const chain = getSdkChainFromApiChainName(network.chainName);\n\n if (!network?.networks?.length || !chain) return [];\n\n return network.networks.map((networkConfiguration) => ({\n blockExplorerUrls: networkConfiguration.blockExplorerUrls,\n chain,\n cluster: networkConfiguration.cluster,\n displayName:\n networkConfiguration.vanityName || networkConfiguration.name,\n genesisHash: networkConfiguration.genesisHash,\n iconUrl: networkConfiguration.iconUrls[0],\n nativeCurrency: {\n decimals: networkConfiguration.nativeCurrency.decimals,\n iconUrl: networkConfiguration.nativeCurrency.iconUrl,\n name: networkConfiguration.nativeCurrency.name,\n symbol: networkConfiguration.nativeCurrency.symbol,\n },\n networkId: networkConfiguration.networkId,\n rpcUrls: {\n http: [\n ...(networkConfiguration.privateCustomerRpcUrls ?? []),\n ...(networkConfiguration.rpcUrls ?? []),\n ],\n },\n testnet: networkConfiguration.isTestnet ?? false,\n }));\n })\n .flat();\n\n return networksData;\n};\n","import type { Chain } from '../../../../chain';\nimport type {\n NetworkProviderBuilder,\n NetworkProviderBuilderRegistry,\n} from '../networkProviderBuilderRegistry.types';\n\nexport const createNetworkProviderBuilderRegistry =\n (): NetworkProviderBuilderRegistry => {\n const registry = new Map<Chain, NetworkProviderBuilder>();\n\n return {\n get: () => registry,\n register: (networkProviderBuilder) => {\n registry.set(networkProviderBuilder.chain, networkProviderBuilder);\n },\n };\n };\n","import { createRuntimeServiceAccessKey } from '../../../../../services/runtimeServices';\nimport { createNetworkProviderBuilderRegistry } from '../createNetworkProviderBuilderRegistry';\n\nexport const getNetworkProviderBuilderRegistry = createRuntimeServiceAccessKey(\n 'networkProviderBuilderRegistry',\n createNetworkProviderBuilderRegistry\n);\n","import type { DynamicClient } from '../../../../client/types';\nimport { getNetworksData } from '../getNetworksData';\nimport type { NetworkProvider } from '../networkProvider';\nimport { getNetworkProviderBuilderRegistry } from '../networkProviderBuilderRegistry';\n\n/**\n * Retrieves all registered network providers for enabled chains.\n */\nexport const getNetworkProviders = (\n client: DynamicClient\n): NetworkProvider[] => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n const registeredNetworkProviderBuilders = Array.from(\n networkProviderBuilderRegistry.get().values()\n );\n\n const networksData = getNetworksData(client);\n\n const networkProviders = registeredNetworkProviderBuilders.map(\n ({ builder, chain }) => {\n const networksDataForChain = networksData.filter(\n (networkData) => networkData.chain === chain\n );\n\n return networksDataForChain.map(builder);\n }\n );\n\n return networkProviders.flat();\n};\n","import type { DynamicClient } from '../../../../client/types';\nimport { NoNetworkProvidersError } from '../../../../errors/NoNetworkProvidersError';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport type { Chain } from '../../../chain';\nimport { getNetworkProviders } from '../getNetworkProviders';\nimport type { NetworkProvider } from '../networkProvider/networkProvider.types';\n\ntype GetNetworkProviderFromNetworkIdProps = {\n chain: Chain;\n networkId: string;\n};\n\nexport const getNetworkProviderFromNetworkId = (\n { networkId, chain }: GetNetworkProviderFromNetworkIdProps,\n client: DynamicClient\n): NetworkProvider => {\n const networkProviders = getNetworkProviders(client);\n\n if (networkProviders.length === 0) {\n throw new NoNetworkProvidersError();\n }\n\n const networkProvider = networkProviders.find(\n (networkProvider) =>\n networkProvider.networkId === networkId && networkProvider.chain === chain\n );\n\n assertDefined(\n networkProvider,\n `No network provider found for chain ${chain} with network id ${networkId}`\n );\n\n return networkProvider;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAa,kBAAqB,MAAS,SAAY;AACrD,KAAI,OAAO,GAAG,MAAM,KAAK,CAAE,QAAO;AAElC,KACE,OAAO,SAAS,YAChB,SAAS,QACT,OAAO,SAAS,YAChB,SAAS,KAET,QAAO,SAAS;AAGlB,KAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,MAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AAEpC,OAAK,MAAM,CAAC,KAAK,UAAU,KACzB,KAAI,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,IAAI,CAAC,CAAE,QAAO;AAG/C,SAAO;;AAGT,KAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,MAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AAEpC,OAAK,MAAM,SAAS,KAClB,KAAI,CAAC,KAAK,IAAI,MAAM,CAAE,QAAO;AAE/B,SAAO;;CAGT,MAAM,QAAQ,OAAO,KAAK,KAAK;AAE/B,KAAI,MAAM,WAAW,OAAO,KAAK,KAAK,CAAC,OAAQ,QAAO;AAEtD,MAAK,MAAM,QAAQ,MACjB,KACE,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,KAAe,IAC3D,CAAC,OAAO,GAAG,KAAK,OAAkB,KAAK,MAAiB,CAExD,QAAO;AAIX,KAAI,KAAK,gBAAgB,KAAK,YAAa,QAAO;AAElD,QAAO;;;;;;;;;;;;;;ACvCT,MAAa,yBAET,YACA,cAED,aAAqC;CACpC,IAAI,YAAY,SAAS,WAAW,KAAK,CAAC;AAE1C,QAAO,WAAW,WAAW,UAAU;EACrC,MAAM,YAAY,SAAS,MAAM;AAEjC,MAAI,eAAe,WAAW,UAAU,CAAE;AAE1C,cAAY;AAEZ,WAAS,UAAU;GACnB;;;;;;;;ACtBN,MAAa,mCAAmD;CAC9D,SAAS,OAAO,QAAQ,aAAa,QAAQ,IAAI;CACjD,YAAY,OAAO,QAAQ,aAAa,WAAW,IAAI;CACvD,SAAS,OAAO,KAAK,UAAU,aAAa,QAAQ,KAAK,MAAM;CAChE;;;;ACHD,IAAa,oBAAb,cAAuCA,4BAAU;CAC/C,YAAY,EAAE,KAAK,SAAkC;AACnD,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,cAAc,CAAC,QAAQ,OAAO,MAAM;GACpC,MAAM;GACN,cAAc;GACf,CAAC;;;;;;;;;;;ACXN,MAAa,wBAAwB,UAA2B;CAC9D,MAAM,OAAO,IAAI,KAAK,MAAM;AAE5B,QAAO,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,KAAK,aAAa,KAAK;;;;;ACL1D,MAAM,cAAc;AAEpB,MAAa,oBAAoB,UAAmB;CAClD,MAAMC,OAAoC,EAAE,OAAO;AAEnD,QAAO,KAAK,UAAU,OAAO,GAAG,UAAU;AAGxC,MAAI,qBAAqB,MAAM,CAC7B,QAAO,GAAG,cAAc;AAG1B,SAAO;GACP;;AAGJ,MAAa,oBAAuB,UAA2C;AAC7E,KAAI;AASF,SARe,KAAK,MAAM,QAAQ,GAAG,UAAU;AAC7C,OAAI,OAAO,UAAU,YAAY,MAAM,WAAW,YAAY,CAC5D,QAAO,IAAI,KAAK,MAAM,MAAM,EAAmB,CAAC;AAGlD,UAAO;IACP;UAIK,OAAO;AACd,SAAO;;;;;;;;;ACnBX,MAAa,iBAAiB,EAC5B,SAAS,IACT,qBACqC;CACrC,MAAM,kBAAkB,QAAiB,SAAS,GAAG,OAAO,GAAG,QAAQ;AAEvE,QAAO;EACL,SAAS,OAAO,qBAAqB;GACnC,MAAM,UAAU,MAAM,eAAe,QACnC,eAAe,iBAAiB,IAAI,CACrC;GAED,MAAM,aAAa,UAAU,iBAAiB,QAAQ,GAAG;;;;;AAMzD,OAAI,eAAe,MAAM;IACvB,MAAM,SAAS,iBAAiB,OAAO,UAAU,WAAW,MAAM;AAElE,QAAI,OAAO,QACT,QAAO,OAAO;;;;;;AASlB,SAAM,eAAe,WAAW,eAAe,iBAAiB,IAAI,CAAC;AAErE,UAAO;;EAGT,YAAY,OAAO,qBAAqB;AACtC,SAAM,eAAe,WAAW,eAAe,iBAAiB,IAAI,CAAC;;EAGvE,SAAS,OAAO,kBAAkB,UAAU;GAC1C,MAAM,SAAS,iBAAiB,OAAO,UAAU,MAAM;AAEvD,OAAI,CAAC,OAAO,QACV,OAAM,IAAI,kBAAkB;IAC1B,KAAK,iBAAiB;IACtB,OAAO,KAAK,UAAU,MAAM;IAC7B,CAAC;GAGJ,MAAM,OAAO,iBAAiB,OAAO,KAAK;AAE1C,SAAM,eAAe,QAAQ,eAAe,iBAAiB,IAAI,EAAE,KAAK;;EAE3E;;;;;AC/DH,MAAa,0BAA6B,WAGf;AACzB,QAAO;;;;;ACRT,MAAa,6CACX;AAEF,MAAa,sCAAsC;AAEnD,MAAa,qCAAqC;AAElD,MAAa,oCAAoC;;;;ACLjD,MAAa,8BAAqD;CAChE,IAAIC;CACJ,IAAIC;AAOJ,QAAO;EACL,SANc,IAAI,SAAY,UAAU,YAAY;AACpD,aAAU;AACV,YAAS;IACT;EAIA,SAAS,WAAqB,SAAS,OAAO;EAC9C,UAAU,UAAa,UAAU,MAAM;EACxC;;;;;ACbH,IAAa,mBAAb,cAAsCC,4BAAU;CAC9C,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;;;;;;;;;ACIN,MAAMC,aAAuC;CAC3C,OAAO;CACP,OAAO;CACP,MAAM;CACN,MAAM;CACP;AAGD,MAAM,iBAAiB;;;;;AAMvB,MAAa,gBAAgB,UAA+B,EAAE,KAAa;CACzE,MAAMC,eAAmC,IAAIC,4BAAc;CAG3D,MAAMC,WAAqB,QAAQ,SAAS;CAG5C,MAAM,aAAa,UAA6B;AAC9C,SAAO,WAAW,UAAU,WAAW;;CAIzC,MAAM,iBAAiB,OAAiB,YAA4B;AAGlE,SAAO,qBAFW,IAAI,MAAM,EAAC,aAAa,CAErB,IAAI,MAAM,aAAa,CAAC,IAAI;;CAInD,MAAM,OACJ,OACA,eACA,SACA,GAAG,SACA;AACH,eAAa,KAAK,OAAO,OAAO,SAAS,GAAG,KAAK;AAEjD,MAAI,CAAC,UAAU,MAAM,CAAE;AAEvB,gBAAc,cAAc,OAAO,QAAQ,EAAE,GAAG,KAAK;;AAGvD,QAAO;EACL,QAAQ,SAAS,GAAG,SAClB,IAAI,SAAS,eAAe,OAAO,SAAS,GAAG,KAAK;EAEtD,QAAQ,SAAS,GAAG,SAClB,IAAI,SAAS,eAAe,OAAO,SAAS,GAAG,KAAK;EAEtD,OAAO,SAAS,GAAG,SACjB,IAAI,QAAQ,eAAe,MAAM,SAAS,GAAG,KAAK;EAEpD,KAAK,aAAa,IAAI,KAAK,aAAa;EAExC,IAAI,aAAa,GAAG,KAAK,aAAa;EACtC,OAAO,SAAS,GAAG,SACjB,IAAI,QAAQ,eAAe,MAAM,SAAS,GAAG,KAAK;EACrD;;;;;ACzEH,IAAa,0BAAb,cAA6CC,4BAAU;CACrD,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;;;;;;ACRN,IAAa,wCAAb,cAA2DC,4BAAU;CACnE,YAAY,EAAE,SAA6C;AACzD,QAAM;GACJ;GACA,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;;;;;;ACPN,MAAa,qBAAqB,SAASC,oCAAkB,KAAK;CAChE,MAAM,kBAAkB,OAAO;AAE/B,iCAAc,iBAAiB,qCAAqC;AAEpE,QAAO,gBAAgB,SAAS,UAAU,WAAW;;;;;;;;ACAvD,MAAa,uBACX,WACuB;CACvB,MAAM,OAAOC,0BAAQ,OAAO;CAE5B,MAAM,eAAe,KAAK,MAAM,KAAK,CAAC;AAEtC,KAAI,kBAAkB,OAAO,CAC3B,iCAAc,cAAc,4BAA4B;AAG1D,MAAK,MAAM,IAAI,EACb,cAAc,MACf,CAAC;AAEF,QAAO,gBAAgB;;;;;;;;;;;ACVzB,MAAa,mBACX,EAAE,gBACF,SAASC,oCAAkB,KACxB;AAGH,CAFaC,0BAAQ,OAAO,CAEvB,MAAM,IAAI,EACb,cACD,CAAC;;;;;;;;;;;;;;;ACJJ,MAAa,gBACX,EAAE,gBACF,SAASC,oCAAkB,KACxB;AAGH,QAFaC,0BAAQ,OAAO,CAEhB,WAAW,IAAI,aAAa;;;;;ACA1C,MAAa,cAAc,OACzB,EAAE,eAAe,WAAWC,wCAAa,QACzC,WACG;CACH,MAAM,OAAOC,0BAAQ,OAAO;CAC5B,MAAM,YAAYC,kCAAgB,EAAE,EAAE,OAAO;CAE7C,MAAM,iBAAiBC,iFACrB,EAAE,eAAe,EACjB,OACD;AAED,KAAI;EACF,MAAM,aAAaC,2EAA6B;GAC9C,OAAO,eAAe;GACtB,aAAa,eAAe,SAAS;GACtC,CAAC;EAEF,MAAMC,iBAAiC;GACrC,SAAS,cAAc;GACvB;GAEA,OAAO,eAAe;GACtB,UAAU,eAAe;GACzB;GACD;AAED,QAAM,UAAU,YAAY;GAC1B;GACA,eAAe,KAAK;GACrB,CAAC;UACK,OAAO;AACd,OAAK,OAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC;;;;;;;;;;;AC1CxD,MAAa,+BACX,EAAE,oCACF,WACS;AACT,KAAI,iCAAiC,WAAW,EAC9C;CAGF,MAAM,OAAOC,0BAAQ,OAAO;CAE5B,MAAM,sCACJ,iCAAiC,KAAK,EAAE,SAAS,GAAG;CAEtD,MAAMC,mCAA8D,KAAK,MACtE,KAAK,CACL,yBAAyB,QACvB,4BACC,CAAC,oCAAoC,SACnC,wBAAwB,GACzB,CACJ;AAEH,MAAK,MAAM,IAAI,EACb,0BAA0B,CACxB,GAAG,kCACH,GAAG,iCACJ,EACF,CAAC;;;;;;;;ACxBJ,MAAa,sBAAsB,OAAO,EACxC,QACA,gBACA,SACA,KACA,SACA,OACA,UACA,WACA,WACA,gBAC+B;CAM/B,MAAM,SAAS,CADA,GAAG,OAAO,kCAAkC,eAAe,YAClD,QAAQ,CAAC,KAAK,KAAK;CAI3C,MAAM,yBAAyB,YAAY,SAAS;CACpD,MAAM,sBAAsB,GAAG,CAAC,QAAQ,UAAU,CAAC,KACjD,uBACD,CAAC;CAEF,MAAMC,eAAyB,EAAE;AACjC,cAAa,KAAK,QAAQ,MAAM;AAChC,cAAa,KAAK,aAAa;AAC/B,KAAI,QACF,cAAa,KAAK,aAAa,UAAU;AAG3C,cAAa,KAAK,UAAU,QAAQ;AAEpC,KAAI,SACF,cAAa,KAAK,cAAc,WAAW;AAG7C,KAAI,UACF,cAAa,KAAK,eAAe,YAAY;AAG/C,KAAI,WAAW,OACb,cAAa,KACX,aAAa,UAAU,KAAK,aAAa,SAAS,SAAS,CAAC,MAAM,GACnE;AAKH,QAAO,CAAC,qBAFO,aAAa,KAAK,KAAK,CAEF,CAAC,KAAK,KAAK;;;;;AChEjD,MAAa,gCAAgC,WAA0B;CAGrE,MAAM,UAFOC,0BAAQ,OAAO,CAGrB,UAAU,QAAQ,OAAO,iBAAiB,QAAQ;AAEzD,QAAO,cAAc,QAAQ,6KAA6K,QAAQ;;;;;;;;ACGpN,MAAa,iCACX,EAAE,2BACF,WACG;CACH,MAAM,OAAOC,0BAAQ,OAAO;CAE5B,MAAM,gBAAgB,KAAK,MAAM,KAAK;CAEtC,MAAM,EAAE,6BAA6B,KAAK,MAAM,KAAK;CAErD,MAAM,mCAAmC,yBAAyB,QAC/D,YAAY,QAAQ,OAAO,wBAAwB,GACrD;AAED,MAAK,MAAM,IAAI,EACb,0BAA0B,kCAC3B,CAAC;;;;;AAMF,uFAAwC,EAAE,eAAe,EAAE,OAAO;;;;;;;;AC/BpE,MAAa,WAAW,UACtB,iBAAiB;;;;;;;ACCnB,MAAa,mBACX,OACA,SACiC;AACjC,KAAI,CAAC,QAAQ,MAAM,CAAE,QAAO;AAE5B,QAAO,UAAU,SAAS,MAAM,SAAS;;;;;;;;;;;ACuB3C,MAAa,kCAAkC,OAC7C,EACE,eACA,eACA,oBACA,WACA,OACA,aAAa,OACb,mBACA,sBAEF,WAC4B;CAC5B,MAAM,OAAOC,0BAAQ,OAAO;CAC5B,MAAM,YAAYC,kCAAgB,EAAE,EAAE,OAAO;CAE7C,MAAM,aAAaC,2EAA6B;EAC9C;EACA,aAAa;EACd,CAAC;CAEF,IAAI;AAEJ,KAAI,CAAC,OAAO,KACV,qBAAoB,UAAU,OAAO,KAAK,UAAU;UAC3C,WACT,qBAAoB,UAAU,eAAe,KAAK,UAAU;KAE5D,qBAAoB,UAAU,WAAW,KAAK,UAAU;AAG1D,KAAI;AACF,SAAO,MAAM,kBAAkB;GAC7B,eAAe,KAAK;GACpB,eAAe;IAEb,2BAA2B,oBAAoB,KAAK,aAAa;KAC/D,SAAS,QAAQ;KACjB,WAAW,QAAQ;KACnB,MAAM,QAAQ;KACf,EAAE;IACH,cAAc,oBAAoB,OAAO;IAElC;IACP;IACA,qBAAqB;IACrB,eAAe;IACf;IACA,gBAAgB;IACjB;GACF,CAAC;UACK,OAAO;AACd,MACE,gBAAgB,OAAO,0BAA0B,IACjD,gBAAgB,OAAO,8BAA8B,CAErD,OAAM,IAAI,sCAAsC,EAC9C,OAAO,OACR,CAAC;AAGJ,QAAM;;;;;;ACxFV,MAAa,kDACX,EAAE,gBACF,WACG;CACH,MAAM,OAAOC,0BAAQ,OAAO;AAE5B,MAAK,MAAM,IAAI,EACb,sBAAsB;EACpB,GAAG,KAAK,MAAM,KAAK,CAAC;EACpB,GAAG;EACJ,EACF,CAAC;;;;;;;;ACZJ,MAAa,+BACX,cACiB;AAOjB,QANe,OAAO,KAAKC,kCAAgB,CAEtB,MAClB,UAAUA,kCAAgB,OAAO,iBAAiB,UACpD,IAEe;;;;;;;;;;;;;;ACAlB,MAAa,mBAAmB,SAASC,oCAAkB,KAAoB;CAC7E,MAAM,EAAE,UAAUC,0BAAQ,OAAO;CAEjC,MAAM,EAAE,oBAAoB,MAAM,KAAK;AAEvC,iCAAc,iBAAiB,4BAA4B;CAE3D,MAAM,WAAW,gBAAgB;AAEjC,KAAI,CAAC,SACH,QAAO,EAAE;AAqCX,QAlCqB,SAClB,KAAK,YAAY;AAChB,MAAI,CAAC,QAAQ,UAAW,QAAO,EAAE;EAEjC,MAAM,QAAQ,4BAA4B,QAAQ,UAAU;AAE5D,MAAI,CAAC,SAAS,UAAU,UAAU,CAAC,MAAO,QAAO,EAAE;AAEnD,SAAO,QAAQ,SAAS,KAAK,0BAA0B;GACrD,mBAAmB,qBAAqB;GACxC;GACA,SAAS,qBAAqB;GAC9B,aACE,qBAAqB,cAAc,qBAAqB;GAC1D,aAAa,qBAAqB;GAClC,SAAS,qBAAqB,SAAS;GACvC,gBAAgB;IACd,UAAU,qBAAqB,eAAe;IAC9C,SAAS,qBAAqB,eAAe;IAC7C,MAAM,qBAAqB,eAAe;IAC1C,QAAQ,qBAAqB,eAAe;IAC7C;GACD,WAAW,qBAAqB;GAChC,SAAS,EACP,MAAM,CACJ,GAAI,qBAAqB,0BAA0B,EAAE,EACrD,GAAI,qBAAqB,WAAW,EAAE,CACvC,EACF;GACD,SAAS,qBAAqB,aAAa;GAC5C,EAAE;GACH,CACD,MAAM;;;;;ACtDX,MAAa,6CAC2B;CACpC,MAAM,2BAAW,IAAI,KAAoC;AAEzD,QAAO;EACL,WAAW;EACX,WAAW,2BAA2B;AACpC,YAAS,IAAI,uBAAuB,OAAO,uBAAuB;;EAErE;;;;;ACZL,MAAa,oCAAoCC,4EAC/C,kCACA,qCACD;;;;;;;ACED,MAAa,uBACX,WACsB;CACtB,MAAM,iCACJ,kCAAkC,OAAO;CAE3C,MAAM,oCAAoC,MAAM,KAC9C,+BAA+B,KAAK,CAAC,QAAQ,CAC9C;CAED,MAAM,eAAe,gBAAgB,OAAO;AAY5C,QAVyB,kCAAkC,KACxD,EAAE,SAAS,YAAY;AAKtB,SAJ6B,aAAa,QACvC,gBAAgB,YAAY,UAAU,MACxC,CAE2B,IAAI,QAAQ;GAE3C,CAEuB,MAAM;;;;;AClBhC,MAAa,mCACX,EAAE,WAAW,SACb,WACoB;CACpB,MAAM,mBAAmB,oBAAoB,OAAO;AAEpD,KAAI,iBAAiB,WAAW,EAC9B,OAAM,IAAI,yBAAyB;CAGrC,MAAM,kBAAkB,iBAAiB,MACtC,sBACCC,kBAAgB,cAAc,aAAaA,kBAAgB,UAAU,MACxE;AAED,iCACE,iBACA,uCAAuC,MAAM,mBAAmB,YACjE;AAED,QAAO"}
@@ -1,7 +1,7 @@
1
- import { C as BaseError, a as createApiClient, b as getDefaultClient, h as assertDefined, i as CHAINS_INFO_MAP, w as getCore } from "./constants-DQfjH5fu.esm.js";
2
- import { a as checkAndRaiseWalletAccountsChangedEvent, c as getWalletProviderFromWalletAccount, d as createRuntimeServiceAccessKey, h as normalizeWalletNameWithChain } from "./getVerifiedCredentialForWalletAccount-cVOVjcUI.esm.js";
1
+ import { C as getDefaultClient, D as getCore, E as BaseError, c as createApiClient, s as CHAINS_INFO_MAP, v as assertDefined } from "./constants-Cg3ipRSQ.esm.js";
2
+ import { f as getWalletProviderFromWalletAccount, h as createRuntimeServiceAccessKey, l as checkAndRaiseWalletAccountsChangedEvent, y as normalizeWalletNameWithChain } from "./getVerifiedCredentialForWalletAccount-ryH7FulV.esm.js";
3
3
  import { AuthModeEnum } from "@dynamic-labs/sdk-api-core";
4
- import { EventEmitter as EventEmitter$1 } from "eventemitter3";
4
+ import { EventEmitter } from "eventemitter3";
5
5
 
6
6
  //#region src/utils/isEqualShallow/isEqualShallow.ts
7
7
  /**
@@ -209,7 +209,7 @@ const defaultConsole = console;
209
209
  * @returns A logger instance with debug, info, warn, and error methods
210
210
  */
211
211
  const createLogger = (options = {}) => {
212
- const eventEmitter = new EventEmitter$1();
212
+ const eventEmitter = new EventEmitter();
213
213
  const minLevel = options.level ?? "warn";
214
214
  const shouldLog = (level) => {
215
215
  return LOG_LEVELS[level] >= LOG_LEVELS[minLevel];
@@ -558,4 +558,4 @@ const getNetworkProviderFromNetworkId = ({ networkId, chain }, client) => {
558
558
 
559
559
  //#endregion
560
560
  export { isEqualShallow as A, INITIALIZE_STORAGE_SYNC_TRACKER_KEY as C, InvalidStorageSet as D, createStorage as E, createLocalStorageAdapter as O, GENERATE_SESSION_KEYS_TRACKER_KEY as S, createStorageKeySchema as T, NoNetworkProvidersError as _, updateWalletProviderKeysForVerifiedCredentials as a, createDeferredPromise as b, createSignInMessageStatement as c, createVisit as d, hasExtension as f, WalletAlreadyLinkedToAnotherUserError as g, isCaptchaRequired as h, getNetworksData as i, subscribeWithSelector as k, formatSignInMessage as l, consumeCaptchaToken as m, getNetworkProviders as n, verifyMessageSignatureOwnership as o, setCaptchaToken as p, getNetworkProviderBuilderRegistry as r, removeUnverifiedWalletAccount as s, getNetworkProviderFromNetworkId as t, setUnverifiedWalletAccounts as u, createLogger as v, REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY as w, FETCH_PROJECT_SETTINGS_TRACKER_KEY as x, CannotTrackError as y };
561
- //# sourceMappingURL=getNetworkProviderFromNetworkId-Bccco0Dv.esm.js.map
561
+ //# sourceMappingURL=getNetworkProviderFromNetworkId-O11XpA9s.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNetworkProviderFromNetworkId-O11XpA9s.esm.js","names":["item: StorageFormat<typeof value>","resolve: (value: T) => void","reject: (reason?: unknown) => void","LOG_LEVELS: Record<LogLevel, number>","eventEmitter: LoggerEventEmitter","minLevel: LogLevel","connectRequest: ConnectRequest","filteredUnverifiedWalletAccounts: UnverifiedWalletAccount[]","suffixFields: string[]","networkProvider"],"sources":["../src/utils/isEqualShallow/isEqualShallow.ts","../src/utils/observable/subscribeWithSelector/subscribeWithSelector.ts","../src/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.ts","../src/errors/InvalidStorageSet.ts","../src/services/storage/createStorage/formatForStorage/isValidDateISOString/isValidDateISOString.ts","../src/services/storage/createStorage/formatForStorage/storageFormat.ts","../src/services/storage/createStorage/createStorage.ts","../src/services/storage/createStorageKeySchema/createStorageKeySchema.ts","../src/modules/initializeClient/consts.ts","../src/utils/deferredPromise/createDeferredPromise.ts","../src/errors/CannotTrackError.ts","../src/services/logger/createLogger/createLogger.ts","../src/errors/NoNetworkProvidersError.ts","../src/errors/WalletAlreadyLinkedToAnotherUserError.ts","../src/modules/captcha/isCaptchaRequired/isCaptchaRequired.ts","../src/modules/captcha/consumeCaptchaToken/consumeCaptchaToken.ts","../src/modules/captcha/setCaptchaToken/setCaptchaToken.ts","../src/modules/extension/hasExtension/hasExtension.ts","../src/modules/auth/createVisit/createVisit.ts","../src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.ts","../src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.ts","../src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.ts","../src/modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount/removeUnverifiedWalletAccount.ts","../src/utils/isError/isError.ts","../src/utils/isErrorWithCode/isErrorWithCode.ts","../src/modules/wallets/verifyMessageSignatureOwnership/verifyMessageSignatureOwnership.ts","../src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.ts","../src/modules/wallets/networks/getSdkChainFromApiChainName/getSdkChainFromApiChainName.ts","../src/modules/wallets/networks/getNetworksData/getNetworksData.ts","../src/modules/wallets/networks/networkProviderBuilderRegistry/createNetworkProviderBuilderRegistry/createNetworkProviderBuilderRegistry.ts","../src/modules/wallets/networks/networkProviderBuilderRegistry/getNetworkProviderBuilderRegistry/getNetworkProviderBuilderRegistry.ts","../src/modules/wallets/networks/getNetworkProviders/getNetworkProviders.ts","../src/modules/wallets/networks/getNetworkProviderFromNetworkId/getNetworkProviderFromNetworkId.ts"],"sourcesContent":["/**\n * Shallow compare two objects.\n *\n * Source: https://github.com/pmndrs/zustand/blob/main/src/vanilla/shallow.ts\n */\nexport const isEqualShallow = <T>(objA: T, objB: T) => {\n if (Object.is(objA, objB)) return true;\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return objA === objB;\n }\n\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) return false;\n }\n\n return true;\n }\n\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n\n for (const value of objA) {\n if (!objB.has(value)) return false;\n }\n return true;\n }\n\n const keysA = Object.keys(objA);\n\n if (keysA.length !== Object.keys(objB).length) return false;\n\n for (const keyA of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keyA as string) ||\n !Object.is(objA[keyA as keyof T], objB[keyA as keyof T])\n ) {\n return false;\n }\n }\n\n if (objA.constructor !== objB.constructor) return false;\n\n return true;\n};\n","import { isEqualShallow } from '../../isEqualShallow';\nimport type { ObservableState } from '../observable.types';\n\n/**\n * Allows subscribing to a slice of the state.\n * The slice is a computation of the states.\n *\n * The callback will only be called when the slice has changed.\n * Change is determined by shallow comparison.\n *\n * Returns a function to unsubscribe the callback.\n */\nexport const subscribeWithSelector =\n <T extends Record<string, unknown>, Slice>(\n observable: ObservableState<T>,\n selector: (value: T) => Slice\n ) =>\n (callback: (slice: Slice) => void) => {\n let lastSlice = selector(observable.get());\n\n return observable.subscribe((value) => {\n const nextSlice = selector(value);\n\n if (isEqualShallow(nextSlice, lastSlice)) return;\n\n lastSlice = nextSlice;\n\n callback(nextSlice);\n });\n };\n","/* eslint-disable no-restricted-globals -- this is the abstraction for localStorage */\nimport type { StorageAdapter } from '../storage.types';\n\n/**\n * Creates a localStorage adapter\n */\nexport const createLocalStorageAdapter = (): StorageAdapter => ({\n getItem: async (key) => localStorage.getItem(key),\n removeItem: async (key) => localStorage.removeItem(key),\n setItem: async (key, value) => localStorage.setItem(key, value),\n});\n","import { BaseError } from './base';\n\ntype InvalidStorageSetParams = {\n key: string;\n value: string;\n};\n\nexport class InvalidStorageSet extends BaseError {\n constructor({ key, value }: InvalidStorageSetParams) {\n super({\n cause: null,\n code: 'invalid_storage_set',\n docsUrl: null,\n metaMessages: [`key: ${key}`, value],\n name: 'InvalidStorageSet',\n shortMessage: 'Tried to store a value that does not match the schema',\n });\n }\n}\n","/**\n * Returns whether the given string is a valid ISO date string.\n *\n * Does not support timezone offsets.\n */\nexport const isValidDateISOString = (value: string): boolean => {\n const date = new Date(value);\n\n return !isNaN(date.getTime()) && date.toISOString() === value;\n};\n","import type { StorageFormat } from '../../storage.types';\nimport { isValidDateISOString } from './isValidDateISOString';\n\nconst DATE_PREFIX = '__DATE__';\n\nexport const formatForStorage = (value: unknown) => {\n const item: StorageFormat<typeof value> = { value };\n\n return JSON.stringify(item, (_, entry) => {\n // You might think that entry here would be a Date and one could simply do \"entry instanceof Date\",\n // but actually it will be a string already (no idea why JSON.stringify does this)\n if (isValidDateISOString(entry)) {\n return `${DATE_PREFIX}${entry}`;\n }\n\n return entry;\n });\n};\n\nexport const parseFromStorage = <T>(value: string): StorageFormat<T> | null => {\n try {\n const parsed = JSON.parse(value, (_, entry) => {\n if (typeof entry === 'string' && entry.startsWith(DATE_PREFIX)) {\n return new Date(entry.slice(DATE_PREFIX.length));\n }\n\n return entry;\n }) as StorageFormat<T>;\n\n return parsed;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n return null;\n }\n};\n","import type { Storage, StorageAdapter } from '../storage.types';\nimport { InvalidStorageSet } from './../../../errors/InvalidStorageSet';\nimport { formatForStorage } from './formatForStorage';\nimport { parseFromStorage } from './formatForStorage/storageFormat';\n\ntype CreateWebStorageParams = {\n prefix?: string;\n storageAdapter: StorageAdapter;\n};\n\n/**\n * Creates a Storage service to interact with storage adapter\n */\nexport const createStorage = ({\n prefix = '',\n storageAdapter,\n}: CreateWebStorageParams): Storage => {\n const getPrefixedKey = (key: string) => (prefix ? `${prefix}_${key}` : key);\n\n return {\n getItem: async (storageKeySchema) => {\n const rawItem = await storageAdapter.getItem(\n getPrefixedKey(storageKeySchema.key)\n );\n\n const parsedItem = rawItem ? parseFromStorage(rawItem) : null;\n\n /**\n * The item saved to localStorage may be malformed.\n * In this case, we remove it and return null.\n */\n if (parsedItem !== null) {\n const parsed = storageKeySchema.schema.safeParse(parsedItem.value);\n\n if (parsed.success) {\n return parsed.data;\n }\n }\n\n /**\n * The item saved to localStorage may be malformed.\n * In this case, we remove it and return null.\n */\n\n await storageAdapter.removeItem(getPrefixedKey(storageKeySchema.key));\n\n return null;\n },\n\n removeItem: async (storageKeySchema) => {\n await storageAdapter.removeItem(getPrefixedKey(storageKeySchema.key));\n },\n\n setItem: async (storageKeySchema, value) => {\n const parsed = storageKeySchema.schema.safeParse(value);\n\n if (!parsed.success) {\n throw new InvalidStorageSet({\n key: storageKeySchema.key,\n value: JSON.stringify(value),\n });\n }\n\n const item = formatForStorage(parsed.data);\n\n await storageAdapter.setItem(getPrefixedKey(storageKeySchema.key), item);\n },\n };\n};\n","import type * as z from 'zod/mini';\n\nimport type { StorageKeySchema } from '../storage.types';\n\nexport const createStorageKeySchema = <T>(params: {\n key: string;\n schema: z.ZodMiniType<T>;\n}): StorageKeySchema<T> => {\n return params;\n};\n","export const REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY =\n 'refresh-user-state-from-cookie';\n\nexport const INITIALIZE_STORAGE_SYNC_TRACKER_KEY = 'initialize-storage-sync';\n\nexport const FETCH_PROJECT_SETTINGS_TRACKER_KEY = 'fetch-project-settings';\n\nexport const GENERATE_SESSION_KEYS_TRACKER_KEY = 'generate-session-keys';\n","import type { DeferredPromise } from './deferredPromise.types';\n\nexport const createDeferredPromise = <T>(): DeferredPromise<T> => {\n let resolve: (value: T) => void;\n let reject: (reason?: unknown) => void;\n\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n\n return {\n promise,\n reject: (reason?: unknown) => reject?.(reason),\n resolve: (value: T) => resolve?.(value),\n };\n};\n","import { BaseError } from './base';\n\nexport class CannotTrackError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'cannot_track_error',\n docsUrl: null,\n name: 'CannotTrackError',\n shortMessage: 'All track calls must be performed in the same node tick',\n });\n }\n}\n","import { EventEmitter } from 'eventemitter3';\n\nimport type { LogLevel, Logger, LoggerEventEmitter } from '../logger.types';\n\n/**\n * Configuration options for the logger\n */\ntype CreateLoggerOptions = {\n level?: LogLevel;\n};\n\n/**\n * Log levels and their corresponding numeric values\n */\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n error: 3,\n info: 1,\n warn: 2,\n};\n\n// Assign to avoid lint errors\nconst defaultConsole = console;\n\n/**\n * Creates a logger instance with configurable log level and event emission capabilities.\n * @returns A logger instance with debug, info, warn, and error methods\n */\nexport const createLogger = (options: CreateLoggerOptions = {}): Logger => {\n const eventEmitter: LoggerEventEmitter = new EventEmitter();\n\n // Default to 'debug' if no level is provided\n const minLevel: LogLevel = options.level ?? 'warn';\n\n // Helper to decide if we should log based on current log level\n const shouldLog = (level: LogLevel): boolean => {\n return LOG_LEVELS[level] >= LOG_LEVELS[minLevel];\n };\n\n // Helper to format the log message\n const formatMessage = (level: LogLevel, message: string): string => {\n const timestamp = new Date().toISOString();\n\n return `[${timestamp}] ${level.toUpperCase()}: ${message}`;\n };\n\n // Unified logger function that checks the level and calls the appropriate console method\n const log = (\n level: LogLevel,\n consoleMethod: (...data: unknown[]) => void,\n message: string,\n ...args: unknown[]\n ) => {\n eventEmitter.emit('log', level, message, ...args);\n\n if (!shouldLog(level)) return;\n\n consoleMethod(formatMessage(level, message), ...args);\n };\n\n return {\n debug: (message, ...args) =>\n log('debug', defaultConsole.debug, message, ...args),\n\n error: (message, ...args) =>\n log('error', defaultConsole.error, message, ...args),\n\n info: (message, ...args) =>\n log('info', defaultConsole.info, message, ...args),\n\n off: eventEmitter.off.bind(eventEmitter),\n\n on: eventEmitter.on.bind(eventEmitter),\n warn: (message, ...args) =>\n log('warn', defaultConsole.warn, message, ...args),\n };\n};\n","import { BaseError } from './base';\n\nexport class NoNetworkProvidersError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'no_network_providers',\n docsUrl: null,\n name: 'NoNetworkProvidersError',\n shortMessage: 'No networks were registered in the client',\n });\n }\n}\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class WalletAlreadyLinkedToAnotherUserError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'wallet_already_linked_to_another_user_error',\n docsUrl: null,\n name: 'WalletAlreadyLinkedToAnotherUserError',\n shortMessage: 'This wallet is already linked to another user',\n });\n }\n}\n","import { getDefaultClient } from '../../../client/defaultClient';\nimport { assertDefined } from '../../../utils/assertDefined';\n\nexport const isCaptchaRequired = (client = getDefaultClient()) => {\n const projectSettings = client.projectSettings;\n\n assertDefined(projectSettings, 'Project settings are not available');\n\n return projectSettings.security.hCaptcha?.enabled ?? false;\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\nimport { isCaptchaRequired } from '../isCaptchaRequired';\n\n/**\n * Retrieves the current captcha token from the client state and sets it to null.\n */\nexport const consumeCaptchaToken = (\n client: DynamicClient\n): string | undefined => {\n const core = getCore(client);\n\n const captchaToken = core.state.get().captchaToken;\n\n if (isCaptchaRequired(client)) {\n assertDefined(captchaToken, 'Captcha token is required');\n }\n\n core.state.set({\n captchaToken: null,\n });\n\n return captchaToken ?? undefined;\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\n\ntype SetCaptchaTokenProps = {\n captchaToken: string;\n};\n\n/**\n * Sets the given captcha token in the client state.\n *\n * @param params.captchaToken - The captcha token to set.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const setCaptchaToken = (\n { captchaToken }: SetCaptchaTokenProps,\n client = getDefaultClient()\n) => {\n const core = getCore(client);\n\n core.state.set({\n captchaToken,\n });\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\n\ntype HasExtensionParams = {\n extensionKey: string;\n};\n\n/**\n * Checks if a specific extension has been applied to the Dynamic client.\n *\n * Extensions add optional features to the Dynamic SDK,\n * such as EVM, Solana, or other chain support.\n *\n * @param params.extensionKey - The unique key identifying the extension to check for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns True if the extension is applied, false otherwise.\n */\nexport const hasExtension = (\n { extensionKey }: HasExtensionParams,\n client = getDefaultClient()\n) => {\n const core = getCore(client);\n\n return core.extensions.has(extensionKey);\n};\n","import {\n AuthModeEnum,\n type ChainEnum,\n type ConnectRequest,\n} from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { createApiClient } from '../../apiClient';\nimport { getWalletProviderFromWalletAccount } from '../../wallets/utils/getWalletProviderFromWalletAccount';\nimport { normalizeWalletNameWithChain } from '../../wallets/utils/normalizeWalletNameWithChain';\nimport type { WalletAccount } from '../../wallets/walletAccount';\n\ntype CreateVisitParams = {\n authMode?: AuthModeEnum;\n walletAccount: WalletAccount;\n};\n\n/* \n In older SDK versions we used to have the concept of \"connect-only\" vs \"connect-and-sign\". \n The only difference in backend is it stores some extra data for connect-only, \n so we can just default to using it.\n*/\nexport const createVisit = async (\n { walletAccount, authMode = AuthModeEnum.Only }: CreateVisitParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n try {\n const walletName = normalizeWalletNameWithChain({\n chain: walletProvider.chain,\n displayName: walletProvider.metadata.displayName,\n });\n\n const connectRequest: ConnectRequest = {\n address: walletAccount.address,\n authMode,\n // eslint-disable-next-line custom-rules/ban-chain-enum\n chain: walletProvider.chain as ChainEnum,\n provider: walletProvider.walletProviderType,\n walletName,\n };\n\n await apiClient.createVisit({\n connectRequest,\n environmentId: core.environmentId,\n });\n } catch (error) {\n core.logger.error('Error creating visit', { error });\n }\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport type { UnverifiedWalletAccount } from '../unverifiedWalletAccounts.types';\n\ntype SetUnverifiedWalletAccountsParams = {\n unverifiedWalletAccountsToUpdate: UnverifiedWalletAccount[];\n};\n\n/**\n * Updates the unverified wallet account in the client state.\n * This will add new wallet accounts and override those with matching ids,\n * but will leave other preexisting wallet accounts unchanged.\n */\nexport const setUnverifiedWalletAccounts = (\n { unverifiedWalletAccountsToUpdate }: SetUnverifiedWalletAccountsParams,\n client: DynamicClient\n): void => {\n if (unverifiedWalletAccountsToUpdate.length === 0) {\n return;\n }\n\n const core = getCore(client);\n\n const unverifiedWalletAccountsToUpdateIds =\n unverifiedWalletAccountsToUpdate.map(({ id }) => id);\n\n const filteredUnverifiedWalletAccounts: UnverifiedWalletAccount[] = core.state\n .get()\n .unverifiedWalletAccounts.filter(\n (unverifiedWalletAccount) =>\n !unverifiedWalletAccountsToUpdateIds.includes(\n unverifiedWalletAccount.id\n )\n );\n\n core.state.set({\n unverifiedWalletAccounts: [\n ...filteredUnverifiedWalletAccounts,\n ...unverifiedWalletAccountsToUpdate,\n ],\n });\n};\n","type FormatSignInMessageParams = {\n address: string;\n blockchainName: string;\n chainId?: string;\n domain: string;\n issuedAt?: string;\n nonce: string;\n requestId?: string;\n resources?: string[];\n statement?: string;\n uri: string;\n};\n\n/**\n * Formats a sign in message to prove ownership of an address.\n */\nexport const formatSignInMessage = async ({\n domain,\n blockchainName,\n address,\n uri,\n chainId,\n nonce,\n issuedAt,\n requestId,\n statement,\n resources,\n}: FormatSignInMessageParams) => {\n // This format follows the sign-in with ethereum (SIWE) standard,\n // but we are using it also for non-ethereum wallets for now (eg. Solana)\n // for more context on format and fields, please see:\n // https://docs.login.xyz/general-information/siwe-overview/eip-4361\n const header = `${domain} wants you to sign in with your ${blockchainName} account:`;\n const prefix = [header, address].join('\\n');\n\n // If there is a statement, we want to add a gap between the prefix and the statement\n // two times '\\n', first to move statement to next line and second to add a gap between prefix and statement\n const prefixWithStatementGap = statement ? '\\n\\n' : '\\n';\n const prefixWithStatement = `${[prefix, statement].join(\n prefixWithStatementGap\n )}\\n`;\n\n const suffixFields: string[] = [];\n suffixFields.push(`URI: ${uri}`);\n suffixFields.push('Version: 1');\n if (chainId) {\n suffixFields.push(`Chain ID: ${chainId}`);\n }\n\n suffixFields.push(`Nonce: ${nonce}`);\n\n if (issuedAt) {\n suffixFields.push(`Issued At: ${issuedAt}`);\n }\n\n if (requestId) {\n suffixFields.push(`Request ID: ${requestId}`);\n }\n\n if (resources?.length) {\n suffixFields.push(\n `Resources:${resources.map((resource) => '\\n- ' + resource).join()}`\n );\n }\n\n const suffix = suffixFields.join('\\n');\n\n return [prefixWithStatement, suffix].join('\\n');\n};\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\n\nexport const createSignInMessageStatement = (client: DynamicClient) => {\n const core = getCore(client);\n\n const appName =\n core.metadata?.name ?? client.projectSettings?.general.displayName;\n\n return `Welcome to ${appName}. Signing is the only way we can truly know that you are the owner of the wallet you are connecting. Signing is a safe, gas-less transaction that does not in any way give ${appName} permission to perform any transactions with your wallet.`;\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport { checkAndRaiseWalletAccountsChangedEvent } from '../../../auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent';\nimport type { UnverifiedWalletAccount } from '../unverifiedWalletAccounts.types';\n\ntype RemoveUnverifiedWalletAccountParams = {\n unverifiedWalletAccount: UnverifiedWalletAccount;\n};\n\n/**\n * Removes an unverified wallet account from the client's state.\n */\nexport const removeUnverifiedWalletAccount = (\n { unverifiedWalletAccount }: RemoveUnverifiedWalletAccountParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n const previousState = core.state.get();\n\n const { unverifiedWalletAccounts } = core.state.get();\n\n const filteredUnverifiedWalletAccounts = unverifiedWalletAccounts.filter(\n (account) => account.id !== unverifiedWalletAccount.id\n );\n\n core.state.set({\n unverifiedWalletAccounts: filteredUnverifiedWalletAccounts,\n });\n\n /**\n * We check before raising because the wallet account we are removing might still\n * be present in wallet accounts due to having been moved to verified credentials.\n */\n checkAndRaiseWalletAccountsChangedEvent({ previousState }, client);\n};\n","/**\n * Check if the given value is an Error object\n */\nexport const isError = (error: unknown): error is Error =>\n error instanceof Error;\n","import { isError } from '../isError';\n\n/**\n * Check if the given value is an Error object with a specific code\n */\nexport const isErrorWithCode = <T extends string>(\n error: unknown,\n code: T\n): error is Error & { code: T } => {\n if (!isError(error)) return false;\n\n return 'code' in error && error.code === code;\n};\n","import type {\n ChainEnum,\n VerifyResponse,\n WalletAddressType,\n WalletProviderEnum,\n} from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { isErrorWithCode } from '../../../utils/isErrorWithCode';\nimport { createApiClient } from '../../apiClient';\nimport { consumeCaptchaToken } from '../../captcha/consumeCaptchaToken';\nimport type { Chain } from '../../chain';\nimport { normalizeWalletNameWithChain } from '../utils/normalizeWalletNameWithChain';\nimport type { WalletAddressWithType } from '../walletAccount/walletAccount.types';\nimport { WalletAlreadyLinkedToAnotherUserError } from './../../../errors/WalletAlreadyLinkedToAnotherUserError';\n\ntype VerifyMessageSignatureOwnershipParams = {\n addressesWithTypes?: WalletAddressWithType[];\n chain: Chain;\n isTransfer?: boolean;\n messageToSign: string;\n signature: string;\n walletAddress: string;\n walletDisplayName: string;\n walletProviderType: WalletProviderEnum;\n};\n\n/**\n * Verifies a signed message by calling either the verifyLink, verifyTransfer or verify API function,\n * depending on whether the user is signing in, linking or transferring a wallet.\n *\n * Does NOT call updateAuthFromVerifyResponse, it should be called from the return of this function.\n */\nexport const verifyMessageSignatureOwnership = async (\n {\n messageToSign,\n walletAddress,\n addressesWithTypes,\n signature,\n chain,\n isTransfer = false,\n walletDisplayName,\n walletProviderType,\n }: VerifyMessageSignatureOwnershipParams,\n client: DynamicClient\n): Promise<VerifyResponse> => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const walletName = normalizeWalletNameWithChain({\n chain,\n displayName: walletDisplayName,\n });\n\n let verifyApiFunction;\n\n if (!client.user) {\n verifyApiFunction = apiClient.verify.bind(apiClient);\n } else if (isTransfer) {\n verifyApiFunction = apiClient.verifyTransfer.bind(apiClient);\n } else {\n verifyApiFunction = apiClient.verifyLink.bind(apiClient);\n }\n\n try {\n return await verifyApiFunction({\n environmentId: core.environmentId,\n verifyRequest: {\n // mapping to handle typecasting for address type\n additionalWalletAddresses: addressesWithTypes?.map((address) => ({\n address: address.address,\n publicKey: address.publicKey,\n type: address.type as WalletAddressType,\n })),\n captchaToken: consumeCaptchaToken(client),\n // eslint-disable-next-line custom-rules/ban-chain-enum\n chain: chain as ChainEnum,\n messageToSign,\n publicWalletAddress: walletAddress,\n signedMessage: signature,\n walletName,\n walletProvider: walletProviderType,\n },\n });\n } catch (error) {\n if (\n isErrorWithCode(error, 'reassign_wallet_confirm') ||\n isErrorWithCode(error, 'merge_accounts_confirmation')\n ) {\n throw new WalletAlreadyLinkedToAnotherUserError({\n cause: error,\n });\n }\n\n throw error;\n }\n};\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\n\ntype updateWalletProviderKeysForVerifiedCredentialsParams = {\n keysToUpdate: Record<string, string>;\n};\n\nexport const updateWalletProviderKeysForVerifiedCredentials = (\n { keysToUpdate }: updateWalletProviderKeysForVerifiedCredentialsParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n core.state.set({\n walletProviderKeyMap: {\n ...core.state.get().walletProviderKeyMap,\n ...keysToUpdate,\n },\n });\n};\n","import type { Chain } from '../../../chain';\nimport { CHAINS_INFO_MAP } from '../../constants';\n\n/**\n * Maps the chain name from the API to the SDK chain name\n */\nexport const getSdkChainFromApiChainName = (\n chainName: string\n): Chain | null => {\n const chains = Object.keys(CHAINS_INFO_MAP) as Chain[];\n\n const chain = chains.find(\n (chain) => CHAINS_INFO_MAP[chain].apiChainName === chainName\n );\n\n return chain || null;\n};\n","import { getCore } from '../../../../client/core/getCore';\nimport { getDefaultClient } from '../../../../client/defaultClient';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport { getSdkChainFromApiChainName } from '../getSdkChainFromApiChainName';\nimport type { NetworkData } from '../networkProvider/networkProvider.types';\n\n/**\n * Retrieves all available network configurations from project settings.\n *\n * This function returns detailed configuration data for all networks enabled\n * in your Dynamic project, including RPC URLs, native currencies, and metadata.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An array of network configuration data for all enabled networks.\n */\nexport const getNetworksData = (client = getDefaultClient()): NetworkData[] => {\n const { state } = getCore(client);\n\n const { projectSettings } = state.get();\n\n assertDefined(projectSettings, 'projectSettings not found');\n\n const networks = projectSettings.networks;\n\n if (!networks) {\n return [];\n }\n\n const networksData = networks\n .map((network) => {\n if (!network.chainName) return [];\n\n const chain = getSdkChainFromApiChainName(network.chainName);\n\n if (!network?.networks?.length || !chain) return [];\n\n return network.networks.map((networkConfiguration) => ({\n blockExplorerUrls: networkConfiguration.blockExplorerUrls,\n chain,\n cluster: networkConfiguration.cluster,\n displayName:\n networkConfiguration.vanityName || networkConfiguration.name,\n genesisHash: networkConfiguration.genesisHash,\n iconUrl: networkConfiguration.iconUrls[0],\n nativeCurrency: {\n decimals: networkConfiguration.nativeCurrency.decimals,\n iconUrl: networkConfiguration.nativeCurrency.iconUrl,\n name: networkConfiguration.nativeCurrency.name,\n symbol: networkConfiguration.nativeCurrency.symbol,\n },\n networkId: networkConfiguration.networkId,\n rpcUrls: {\n http: [\n ...(networkConfiguration.privateCustomerRpcUrls ?? []),\n ...(networkConfiguration.rpcUrls ?? []),\n ],\n },\n testnet: networkConfiguration.isTestnet ?? false,\n }));\n })\n .flat();\n\n return networksData;\n};\n","import type { Chain } from '../../../../chain';\nimport type {\n NetworkProviderBuilder,\n NetworkProviderBuilderRegistry,\n} from '../networkProviderBuilderRegistry.types';\n\nexport const createNetworkProviderBuilderRegistry =\n (): NetworkProviderBuilderRegistry => {\n const registry = new Map<Chain, NetworkProviderBuilder>();\n\n return {\n get: () => registry,\n register: (networkProviderBuilder) => {\n registry.set(networkProviderBuilder.chain, networkProviderBuilder);\n },\n };\n };\n","import { createRuntimeServiceAccessKey } from '../../../../../services/runtimeServices';\nimport { createNetworkProviderBuilderRegistry } from '../createNetworkProviderBuilderRegistry';\n\nexport const getNetworkProviderBuilderRegistry = createRuntimeServiceAccessKey(\n 'networkProviderBuilderRegistry',\n createNetworkProviderBuilderRegistry\n);\n","import type { DynamicClient } from '../../../../client/types';\nimport { getNetworksData } from '../getNetworksData';\nimport type { NetworkProvider } from '../networkProvider';\nimport { getNetworkProviderBuilderRegistry } from '../networkProviderBuilderRegistry';\n\n/**\n * Retrieves all registered network providers for enabled chains.\n */\nexport const getNetworkProviders = (\n client: DynamicClient\n): NetworkProvider[] => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n const registeredNetworkProviderBuilders = Array.from(\n networkProviderBuilderRegistry.get().values()\n );\n\n const networksData = getNetworksData(client);\n\n const networkProviders = registeredNetworkProviderBuilders.map(\n ({ builder, chain }) => {\n const networksDataForChain = networksData.filter(\n (networkData) => networkData.chain === chain\n );\n\n return networksDataForChain.map(builder);\n }\n );\n\n return networkProviders.flat();\n};\n","import type { DynamicClient } from '../../../../client/types';\nimport { NoNetworkProvidersError } from '../../../../errors/NoNetworkProvidersError';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport type { Chain } from '../../../chain';\nimport { getNetworkProviders } from '../getNetworkProviders';\nimport type { NetworkProvider } from '../networkProvider/networkProvider.types';\n\ntype GetNetworkProviderFromNetworkIdProps = {\n chain: Chain;\n networkId: string;\n};\n\nexport const getNetworkProviderFromNetworkId = (\n { networkId, chain }: GetNetworkProviderFromNetworkIdProps,\n client: DynamicClient\n): NetworkProvider => {\n const networkProviders = getNetworkProviders(client);\n\n if (networkProviders.length === 0) {\n throw new NoNetworkProvidersError();\n }\n\n const networkProvider = networkProviders.find(\n (networkProvider) =>\n networkProvider.networkId === networkId && networkProvider.chain === chain\n );\n\n assertDefined(\n networkProvider,\n `No network provider found for chain ${chain} with network id ${networkId}`\n );\n\n return networkProvider;\n};\n"],"mappings":"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"}