{"version":3,"file":"addEIP6963Extension-Cv4Gj1SR.cjs","names":["createWalletProviderFromEIP1193Provider","WalletProviderPriority"],"sources":["../src/eip6963/utils/isEip6963Event/isEip6963Event.ts","../src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"sourcesContent":["import type { Eip6963AnnounceProviderEvent } from '../../eip6963.types';\n\n/** @not-instrumented */\nexport const isEip6963Event = (\n  event: unknown\n): event is Eip6963AnnounceProviderEvent =>\n  event !== null &&\n  event !== undefined &&\n  (event as Eip6963AnnounceProviderEvent).type === 'eip6963:announceProvider' &&\n  (event as Eip6963AnnounceProviderEvent).detail !== undefined &&\n  (event as Eip6963AnnounceProviderEvent).detail !== null;\n","import type { EIP6963ProviderDetail } from '../../eip6963.types';\nimport { isEip6963Event } from '../isEip6963Event';\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const listenForEIP6963ProviderAnnouncement = (\n  onProvider: (providerDetail: EIP6963ProviderDetail) => void,\n  /**\n   * This feature is only available in the browser\n   * so it is fine to use the window directly here.\n   *\n   * TODO: check with others\n   */\n  // eslint-disable-next-line no-restricted-globals\n  globalWindow = window\n): VoidFunction => {\n  const handler = (event: Event) => {\n    if (!isEip6963Event(event)) return;\n\n    onProvider(event.detail);\n  };\n\n  globalWindow.addEventListener('eip6963:announceProvider', handler);\n\n  globalWindow.dispatchEvent(new Event('eip6963:requestProvider'));\n\n  return () => {\n    globalWindow.removeEventListener('eip6963:announceProvider', handler);\n  };\n};\n","import {\n  WalletProviderPriority,\n  getDefaultClient,\n  getWalletProviderRegistry,\n  hasExtension,\n  registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderFromEIP1193Provider } from '../../utils/createWalletProviderFromEIP1193Provider';\nimport { listenForEIP6963ProviderAnnouncement } from './../utils/listenForEIP6963ProviderAnnouncement';\n\nexport const EIP6963_EXTENSION_KEY = 'eip6963';\n\n/**\n * Adds the EIP-6963 extension to the Dynamic client.\n *\n * This extension enables integration with wallets that support EIP-6963,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A function that can be used to remove EIP-6963 global event listeners that were added.\n  * @not-instrumented\n */\nexport const addEIP6963Extension = (client = getDefaultClient()) => {\n  if (hasExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client)) {\n    return () => {\n      // noop\n    };\n  }\n\n  registerExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client);\n  registerEvmNetworkProviderBuilder(client);\n\n  const walletProviderRegistry = getWalletProviderRegistry(client);\n\n  return listenForEIP6963ProviderAnnouncement((detail) => {\n    const walletProvider = createWalletProviderFromEIP1193Provider(\n      {\n        displayName: detail.info.name,\n        eip1193: detail.provider,\n        icon: detail.info.icon,\n      },\n      client\n    );\n\n    walletProviderRegistry.register({\n      priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n      walletProvider,\n    });\n  });\n};\n"],"mappings":";;;;;;AAGA,MAAa,kBACX,UAEA,UAAU,QACV,UAAU,UACT,MAAuC,SAAS,8BAChD,MAAuC,WAAW,UAClD,MAAuC,WAAW;;;;;ACLrD,MAAa,wCACX,YAQA,eAAe,WACE;CACjB,MAAM,WAAW,UAAiB;AAChC,MAAI,CAAC,eAAe,MAAM,CAAE;AAE5B,aAAW,MAAM,OAAO;;AAG1B,cAAa,iBAAiB,4BAA4B,QAAQ;AAElE,cAAa,cAAc,IAAI,MAAM,0BAA0B,CAAC;AAEhE,cAAa;AACX,eAAa,oBAAoB,4BAA4B,QAAQ;;;;;;ACfzE,MAAa,wBAAwB;;;;;;;;;;;AAYrC,MAAa,uBAAuB,8DAA2B,KAAK;AAClE,qDAAiB,EAAE,cAAc,uBAAuB,EAAE,OAAO,CAC/D,cAAa;AAKf,sDAAkB,EAAE,cAAc,uBAAuB,EAAE,OAAO;AAClE,6DAAkC,OAAO;CAEzC,MAAM,sFAAmD,OAAO;AAEhE,QAAO,sCAAsC,WAAW;EACtD,MAAM,iBAAiBA,wFACrB;GACE,aAAa,OAAO,KAAK;GACzB,SAAS,OAAO;GAChB,MAAM,OAAO,KAAK;GACnB,EACD,OACD;AAED,yBAAuB,SAAS;GAC9B,UAAUC,qDAAuB;GACjC;GACD,CAAC;GACF"}