UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

34 lines (32 loc) 1.29 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); //#region src/internal/clerk-js/injectedWeb3EthProviders.ts var InjectedWeb3EthProviders = class InjectedWeb3EthProviders { #providers = []; #providerIdMap = { metamask: "MetaMask", okx_wallet: "OKX Wallet" }; static #instance = null; constructor() { if (typeof window === "undefined") return; window.addEventListener("eip6963:announceProvider", this.#onAnnouncement); window.dispatchEvent(new Event("eip6963:requestProvider")); } static getInstance() { if (!InjectedWeb3EthProviders.#instance) InjectedWeb3EthProviders.#instance = new InjectedWeb3EthProviders(); return InjectedWeb3EthProviders.#instance; } get = (provider) => { const ethProvider = this.#providers.find((p) => p.info.name === this.#providerIdMap[provider])?.provider; if (ethProvider !== void 0) return ethProvider; return window.ethereum; }; #onAnnouncement = (event) => { if (this.#providers.some((p) => p.info.uuid === event.detail.info.uuid)) return; this.#providers.push(event.detail); }; }; const getInjectedWeb3EthProviders = () => InjectedWeb3EthProviders.getInstance(); //#endregion exports.getInjectedWeb3EthProviders = getInjectedWeb3EthProviders; //# sourceMappingURL=injectedWeb3EthProviders.js.map