{"version":3,"file":"static/js/774.73eae487.chunk.js","mappings":"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","sources":["../node_modules/proxy-compare/src/index.ts","../node_modules/valtio/esm/vanilla.mjs","../node_modules/@web3modal/core/src/controllers/ClientCtrl.ts","../node_modules/@web3modal/core/src/controllers/AccountCtrl.ts","../node_modules/@web3modal/core/src/utils/CoreUtil.ts","../node_modules/@web3modal/core/src/controllers/OptionsCtrl.ts","../node_modules/@web3modal/core/src/controllers/ConfigCtrl.ts","../node_modules/@web3modal/core/src/utils/ExplorerUtil.ts","../node_modules/@web3modal/core/src/controllers/ExplorerCtrl.ts","../node_modules/@web3modal/core/src/controllers/RouterCtrl.ts","../node_modules/@web3modal/core/src/controllers/ModalCtrl.ts","../node_modules/@web3modal/core/src/controllers/ThemeCtrl.ts","../node_modules/@web3modal/core/src/controllers/ToastCtrl.ts","../node_modules/@web3modal/core/src/utils/PolyfillUtil.ts","../node_modules/@web3modal/standalone/src/client.ts"],"sourcesContent":["// symbols\nconst TRACK_MEMO_SYMBOL = Symbol();\nconst GET_ORIGINAL_SYMBOL = Symbol();\n\n// properties\nconst AFFECTED_PROPERTY = 'a';\nconst IS_TARGET_COPIED_PROPERTY = 'f';\nconst PROXY_PROPERTY = 'p';\nconst PROXY_CACHE_PROPERTY = 'c';\nconst NEXT_OBJECT_PROPERTY = 'n';\nconst CHANGED_PROPERTY = 'g';\nconst HAS_KEY_PROPERTY = 'h';\nconst ALL_OWN_KEYS_PROPERTY = 'w';\nconst HAS_OWN_KEY_PROPERTY = 'o';\nconst KEYS_PROPERTY = 'k';\n\n// function to create a new bare proxy\nlet newProxy = (\n target: T,\n handler: ProxyHandler,\n) => new Proxy(target, handler);\n\n// get object prototype\nconst getProto = Object.getPrototypeOf;\n\nconst objectsToTrack = new WeakMap();\n\n// check if obj is a plain object or an array\nconst isObjectToTrack = (obj: T): obj is T extends object ? T : never => (\n obj && (objectsToTrack.has(obj as unknown as object)\n ? objectsToTrack.get(obj as unknown as object) as boolean\n : (getProto(obj) === Object.prototype || getProto(obj) === Array.prototype)\n )\n);\n\n// check if it is object\nconst isObject = (x: unknown): x is object => (\n typeof x === 'object' && x !== null\n);\n\n// Properties that are both non-configurable and non-writable will break\n// the proxy get trap when we try to return a recursive/child compare proxy\n// from them. We can avoid this by making a copy of the target object with\n// all descriptors marked as configurable, see `copyTargetObject`.\n// See: https://github.com/dai-shi/proxy-compare/pull/8\nconst needsToCopyTargetObject = (obj: object) => (\n Object.values(Object.getOwnPropertyDescriptors(obj)).some(\n (descriptor) => !descriptor.configurable && !descriptor.writable,\n )\n);\n\n// Make a copy with all descriptors marked as configurable.\nconst copyTargetObject = (obj: T): T => {\n if (Array.isArray(obj)) {\n // Arrays need a special way to copy\n return Array.from(obj) as T;\n }\n // For non-array objects, we create a new object keeping the prototype\n // with changing all configurable options (otherwise, proxies will complain)\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n Object.values(descriptors).forEach((desc) => { desc.configurable = true; });\n return Object.create(getProto(obj), descriptors);\n};\n\ntype HasKeySet = Set\ntype HasOwnKeySet = Set\ntype KeysSet = Set\ntype Used = {\n [HAS_KEY_PROPERTY]?: HasKeySet;\n [ALL_OWN_KEYS_PROPERTY]?: true;\n [HAS_OWN_KEY_PROPERTY]?: HasOwnKeySet;\n [KEYS_PROPERTY]?: KeysSet;\n};\ntype Affected = WeakMap;\ntype ProxyHandlerState = {\n readonly [IS_TARGET_COPIED_PROPERTY]: boolean;\n [PROXY_PROPERTY]?: T;\n [PROXY_CACHE_PROPERTY]?: ProxyCache | undefined;\n [AFFECTED_PROPERTY]?: Affected;\n}\ntype ProxyCache = WeakMap<\n object,\n readonly [ProxyHandler, ProxyHandlerState]\n>;\ntype TargetCache = WeakMap<\n object,\n readonly [target: T, copiedTarget?: T]\n>;\n\nconst createProxyHandler = (origObj: T, isTargetCopied: boolean) => {\n const state: ProxyHandlerState = {\n [IS_TARGET_COPIED_PROPERTY]: isTargetCopied,\n };\n let trackObject = false; // for trackMemo\n const recordUsage = (\n type:\n | typeof HAS_KEY_PROPERTY\n | typeof ALL_OWN_KEYS_PROPERTY\n | typeof HAS_OWN_KEY_PROPERTY\n | typeof KEYS_PROPERTY,\n key?: string | symbol,\n ) => {\n if (!trackObject) {\n let used = (state[AFFECTED_PROPERTY] as Affected).get(origObj);\n if (!used) {\n used = {};\n (state[AFFECTED_PROPERTY] as Affected).set(origObj, used);\n }\n if (type === ALL_OWN_KEYS_PROPERTY) {\n used[ALL_OWN_KEYS_PROPERTY] = true;\n } else {\n let set = used[type];\n if (!set) {\n set = new Set();\n used[type] = set;\n }\n set.add(key as string | symbol);\n }\n }\n };\n const recordObjectAsUsed = () => {\n trackObject = true;\n (state[AFFECTED_PROPERTY] as Affected).delete(origObj);\n };\n const handler: ProxyHandler = {\n get(target, key) {\n if (key === GET_ORIGINAL_SYMBOL) {\n return origObj;\n }\n recordUsage(KEYS_PROPERTY, key);\n return createProxy(\n Reflect.get(target, key),\n (state[AFFECTED_PROPERTY] as Affected),\n state[PROXY_CACHE_PROPERTY],\n );\n },\n has(target, key) {\n if (key === TRACK_MEMO_SYMBOL) {\n recordObjectAsUsed();\n return true;\n }\n recordUsage(HAS_KEY_PROPERTY, key);\n return Reflect.has(target, key);\n },\n getOwnPropertyDescriptor(target, key) {\n recordUsage(HAS_OWN_KEY_PROPERTY, key);\n return Reflect.getOwnPropertyDescriptor(target, key);\n },\n ownKeys(target) {\n recordUsage(ALL_OWN_KEYS_PROPERTY);\n return Reflect.ownKeys(target);\n },\n };\n if (isTargetCopied) {\n handler.set = handler.deleteProperty = () => false;\n }\n return [handler, state] as const;\n};\n\nconst getOriginalObject = (obj: T) => (\n // unwrap proxy\n (obj as { [GET_ORIGINAL_SYMBOL]?: typeof obj })[GET_ORIGINAL_SYMBOL]\n // otherwise\n || obj\n);\n\n/**\n * Create a proxy.\n *\n * This function will create a proxy at top level and proxy nested objects as you access them,\n * in order to keep track of which properties were accessed via get/has proxy handlers:\n *\n * NOTE: Printing of WeakMap is hard to inspect and not very readable\n * for this purpose you can use the `affectedToPathList` helper.\n *\n * @param {object} obj - Object that will be wrapped on the proxy.\n * @param {WeakMap} affected -\n * WeakMap that will hold the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [proxyCache] -\n * WeakMap that will help keep referential identity for proxies.\n * @returns {Proxy} - Object wrapped in a proxy.\n *\n * @example\n * import { createProxy } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n * const proxy = createProxy(original, affected);\n *\n * proxy.a // Will mark as used and track its value.\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"a\"\n *\n * proxy.d // Will mark \"d\" as accessed to track and proxy itself ({ e: \"3\" }).\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"d\"\n */\nexport const createProxy = (\n obj: T,\n affected: WeakMap,\n proxyCache?: WeakMap,\n targetCache?: WeakMap,\n): T => {\n if (!isObjectToTrack(obj)) return obj;\n let targetAndCopied = (\n targetCache && (targetCache as TargetCache).get(obj)\n );\n if (!targetAndCopied) {\n const target = getOriginalObject(obj);\n if (needsToCopyTargetObject(target)) {\n targetAndCopied = [target, copyTargetObject(target)];\n } else {\n targetAndCopied = [target];\n }\n targetCache?.set(obj, targetAndCopied);\n }\n const [target, copiedTarget] = targetAndCopied;\n let handlerAndState = (\n proxyCache && (proxyCache as ProxyCache).get(target)\n );\n if (\n !handlerAndState\n || handlerAndState[1][IS_TARGET_COPIED_PROPERTY] !== !!copiedTarget\n ) {\n handlerAndState = createProxyHandler(target, !!copiedTarget);\n handlerAndState[1][PROXY_PROPERTY] = newProxy(\n copiedTarget || target,\n handlerAndState[0],\n );\n if (proxyCache) {\n proxyCache.set(target, handlerAndState);\n }\n }\n handlerAndState[1][AFFECTED_PROPERTY] = affected as Affected;\n handlerAndState[1][PROXY_CACHE_PROPERTY] = proxyCache as ProxyCache | undefined;\n return handlerAndState[1][PROXY_PROPERTY] as typeof target;\n};\n\nconst isAllOwnKeysChanged = (prevObj: object, nextObj: object) => {\n const prevKeys = Reflect.ownKeys(prevObj);\n const nextKeys = Reflect.ownKeys(nextObj);\n return prevKeys.length !== nextKeys.length\n || prevKeys.some((k, i) => k !== nextKeys[i]);\n};\n\ntype ChangedCache = WeakMap;\n\n/**\n * Compare changes on objects.\n *\n * This will compare the affected properties on tracked objects inside the proxy\n * to check if there were any changes made to it,\n * by default if no property was accessed on the proxy it will attempt to do a\n * reference equality check for the objects provided (Object.is(a, b)). If you access a property\n * on the proxy, then isChanged will only compare the affected properties.\n *\n * @param {object} prevObj - The previous object to compare.\n * @param {object} nextObj - Object to compare with the previous one.\n * @param {WeakMap} affected -\n * WeakMap that holds the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [cache] -\n * WeakMap that holds a cache of the comparisons for better performance with repetitive comparisons,\n * and to avoid infinite loop with circular structures.\n * @returns {boolean} - Boolean indicating if the affected property on the object has changed.\n *\n * @example\n * import { createProxy, isChanged } from 'proxy-compare';\n *\n * const obj = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(obj, affected);\n *\n * proxy.a\n *\n * isChanged(obj, { a: \"1\" }, affected) // false\n *\n * proxy.a = \"2\"\n *\n * isChanged(obj, { a: \"1\" }, affected) // true\n */\n\nexport const isChanged = (\n prevObj: unknown,\n nextObj: unknown,\n affected: WeakMap,\n cache?: WeakMap,\n): boolean => {\n if (Object.is(prevObj, nextObj)) {\n return false;\n }\n if (!isObject(prevObj) || !isObject(nextObj)) return true;\n const used = (affected as Affected).get(getOriginalObject(prevObj));\n if (!used) return true;\n if (cache) {\n const hit = (cache as ChangedCache).get(prevObj);\n if (hit && hit[NEXT_OBJECT_PROPERTY] === nextObj) {\n return hit[CHANGED_PROPERTY];\n }\n // for object with cycles\n (cache as ChangedCache).set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: false,\n });\n }\n let changed: boolean | null = null;\n try {\n for (const key of used[HAS_KEY_PROPERTY] || []) {\n changed = Reflect.has(prevObj, key) !== Reflect.has(nextObj, key);\n if (changed) return changed;\n }\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n changed = isAllOwnKeysChanged(prevObj, nextObj);\n if (changed) return changed;\n } else {\n for (const key of used[HAS_OWN_KEY_PROPERTY] || []) {\n const hasPrev = !!Reflect.getOwnPropertyDescriptor(prevObj, key);\n const hasNext = !!Reflect.getOwnPropertyDescriptor(nextObj, key);\n changed = hasPrev !== hasNext;\n if (changed) return changed;\n }\n }\n for (const key of used[KEYS_PROPERTY] || []) {\n changed = isChanged(\n (prevObj as any)[key],\n (nextObj as any)[key],\n affected,\n cache,\n );\n if (changed) return changed;\n }\n if (changed === null) changed = true;\n return changed;\n } finally {\n if (cache) {\n cache.set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: changed,\n });\n }\n }\n};\n\n// explicitly track object with memo\nexport const trackMemo = (obj: unknown) => {\n if (isObjectToTrack(obj)) {\n return TRACK_MEMO_SYMBOL in obj;\n }\n return false;\n};\n\n/**\n * Unwrap proxy to get the original object.\n *\n * Used to retrieve the original object used to create the proxy instance with `createProxy`.\n *\n * @param {Proxy} obj - The proxy wrapper of the originial object.\n * @returns {object | null} - Return either the unwrapped object if exists.\n *\n * @example\n * import { createProxy, getUntracked } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n * const originalFromProxy = getUntracked(proxy)\n *\n * Object.is(original, originalFromProxy) // true\n * isChanged(original, originalFromProxy, affected) // false\n */\nexport const getUntracked = (obj: T): T | null => {\n if (isObjectToTrack(obj)) {\n return (obj as { [GET_ORIGINAL_SYMBOL]?: T })[GET_ORIGINAL_SYMBOL] || null;\n }\n return null;\n};\n\n/**\n * Mark object to be tracked.\n *\n * This function marks an object that will be passed into `createProxy`\n * as marked to track or not. By default only Array and Object are marked to track,\n * so this is useful for example to mark a class instance to track or to mark a object\n * to be untracked when creating your proxy.\n *\n * @param obj - Object to mark as tracked or not.\n * @param mark - Boolean indicating whether you want to track this object or not.\n * @returns - No return.\n *\n * @example\n * import { createProxy, markToTrack, isChanged } from 'proxy-compare';\n *\n * const nested = { e: \"3\" }\n *\n * markToTrack(nested, false)\n *\n * const original = { a: \"1\", c: \"2\", d: nested };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n *\n * proxy.d.e\n *\n * isChanged(original, { d: { e: \"3\" } }, affected) // true\n */\nexport const markToTrack = (obj: object, mark = true) => {\n objectsToTrack.set(obj, mark);\n};\n\n/**\n * Convert `affected` to path list\n *\n * `affected` is a weak map which is not printable.\n * This function is can convert it to printable path list.\n * It's for debugging purpose.\n *\n * @param obj - An object that is used with `createProxy`.\n * @param affected - A weak map that is used with `createProxy`.\n * @param onlyWithValues - An optional boolean to exclude object getters.\n * @returns - An array of paths.\n */\nexport const affectedToPathList = (\n obj: unknown,\n affected: WeakMap,\n onlyWithValues?: boolean,\n) => {\n const list: (string | symbol)[][] = [];\n const seen = new WeakSet();\n const walk = (x: unknown, path?: (string | symbol)[]) => {\n if (seen.has(x as object)) {\n // for object with cycles\n return;\n }\n if (isObject(x)) {\n seen.add(x);\n }\n const used = isObject(x) && (affected as Affected).get(getOriginalObject(x));\n if (used) {\n used[HAS_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:has(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n const segment = ':ownKeys';\n list.push(path ? [...path, segment] : [segment]);\n } else {\n used[HAS_OWN_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:hasOwn(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n }\n used[KEYS_PROPERTY]?.forEach((key) => {\n if (!onlyWithValues || 'value' in (Object.getOwnPropertyDescriptor(x, key) || {})) {\n walk((x as any)[key], path ? [...path, key] : [key]);\n }\n });\n } else if (path) {\n list.push(path);\n }\n };\n walk(obj);\n return list;\n};\n\n/**\n * replace newProxy function.\n *\n * This can be used if you want to use proxy-polyfill.\n * Note that proxy-polyfill can't polyfill everything.\n * Use it at your own risk.\n */\nexport const replaceNewProxy = (fn: typeof newProxy) => {\n newProxy = fn;\n};\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const desc = {\n value,\n enumerable: true,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return snap;\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","import type { ClientCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nlet client: ClientCtrlState['ethereumClient'] = undefined\n\n// -- controller -- As function to enable correct ssr handling\nexport const ClientCtrl = {\n ethereumClient: undefined,\n\n setEthereumClient(ethereumClient: ClientCtrlState['ethereumClient']) {\n client = ethereumClient\n },\n\n client() {\n if (client) {\n return client\n }\n\n throw new Error('ClientCtrl has no client set')\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { AccountCtrlState } from '../types/controllerTypes'\nimport { ClientCtrl } from './ClientCtrl'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n address: undefined,\n profileName: undefined,\n profileAvatar: undefined,\n profileLoading: false,\n balanceLoading: false,\n balance: undefined,\n isConnected: false\n})\n\n// -- controller --------------------------------------------------- //\nexport const AccountCtrl = {\n state,\n\n subscribe(callback: (newState: AccountCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n getAccount() {\n const account = ClientCtrl.client().getAccount()\n state.address = account.address\n state.isConnected = account.isConnected\n },\n\n async fetchProfile(\n preloadAvatarFn: (avatar: string) => Promise,\n profileAddress?: `0x${string}`\n ) {\n try {\n state.profileLoading = true\n const address = profileAddress ?? state.address\n const { id } = ClientCtrl.client().getDefaultChain()\n if (address && id === 1) {\n const [name, avatar] = await Promise.all([\n ClientCtrl.client().fetchEnsName({ address, chainId: 1 }),\n ClientCtrl.client().fetchEnsAvatar({ address, chainId: 1 })\n ])\n if (avatar) {\n await preloadAvatarFn(avatar)\n }\n state.profileName = name\n state.profileAvatar = avatar\n }\n } finally {\n state.profileLoading = false\n }\n },\n\n async fetchBalance(balanceAddress?: `0x${string}`) {\n try {\n state.balanceLoading = true\n const address = balanceAddress ?? state.address\n if (address) {\n const balance = await ClientCtrl.client().fetchBalance({ address })\n state.balance = { amount: balance.formatted, symbol: balance.symbol }\n }\n } finally {\n state.balanceLoading = false\n }\n },\n\n setAddress(address: AccountCtrlState['address']) {\n state.address = address\n },\n\n setIsConnected(isConnected: AccountCtrlState['isConnected']) {\n state.isConnected = isConnected\n },\n\n resetBalance() {\n state.balance = undefined\n },\n\n resetAccount() {\n state.address = undefined\n state.isConnected = false\n state.profileName = undefined\n state.profileAvatar = undefined\n state.balance = undefined\n }\n}\n","export const CoreUtil = {\n WALLETCONNECT_DEEPLINK_CHOICE: 'WALLETCONNECT_DEEPLINK_CHOICE',\n\n W3M_VERSION: 'W3M_VERSION',\n\n isMobile() {\n if (typeof window !== 'undefined') {\n return Boolean(\n window.matchMedia('(pointer:coarse)').matches ||\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)\n )\n }\n\n return false\n },\n\n isAndroid() {\n return CoreUtil.isMobile() && navigator.userAgent.toLowerCase().includes('android')\n },\n\n isEmptyObject(value: unknown) {\n return (\n Object.getPrototypeOf(value) === Object.prototype &&\n Object.getOwnPropertyNames(value).length === 0 &&\n Object.getOwnPropertySymbols(value).length === 0\n )\n },\n\n isHttpUrl(url: string) {\n return url.startsWith('http://') || url.startsWith('https://')\n },\n\n formatNativeUrl(appUrl: string, wcUri: string, name: string): string {\n if (CoreUtil.isHttpUrl(appUrl)) {\n return this.formatUniversalUrl(appUrl, wcUri, name)\n }\n let safeAppUrl = appUrl\n if (!safeAppUrl.includes('://')) {\n safeAppUrl = appUrl.replaceAll('/', '').replaceAll(':', '')\n safeAppUrl = `${safeAppUrl}://`\n }\n this.setWalletConnectDeepLink(safeAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`\n },\n\n formatUniversalUrl(appUrl: string, wcUri: string, name: string): string {\n if (!CoreUtil.isHttpUrl(appUrl)) {\n return this.formatNativeUrl(appUrl, wcUri, name)\n }\n let plainAppUrl = appUrl\n if (appUrl.endsWith('/')) {\n plainAppUrl = appUrl.slice(0, -1)\n }\n this.setWalletConnectDeepLink(plainAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${plainAppUrl}/wc?uri=${encodedWcUrl}`\n },\n\n async wait(miliseconds: number) {\n return new Promise(resolve => {\n setTimeout(resolve, miliseconds)\n })\n },\n\n openHref(href: string, target: '_blank' | '_self') {\n window.open(href, target, 'noreferrer noopener')\n },\n\n setWalletConnectDeepLink(href: string, name: string) {\n localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE, JSON.stringify({ href, name }))\n },\n\n setWalletConnectAndroidDeepLink(wcUri: string) {\n const [href] = wcUri.split('?')\n\n localStorage.setItem(\n CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,\n JSON.stringify({ href, name: 'Android' })\n )\n },\n\n removeWalletConnectDeepLink() {\n localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE)\n },\n\n isNull(value: T | null): value is null {\n return value === null\n },\n\n setWeb3ModalVersionInStorage() {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(CoreUtil.W3M_VERSION, process.env.ROLLUP_W3M_VERSION ?? 'UNKNOWN')\n }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { OptionsCtrlState } from '../types/controllerTypes'\nimport { ClientCtrl } from './ClientCtrl'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n selectedChain: undefined,\n chains: undefined,\n standaloneChains: undefined,\n standaloneUri: undefined,\n isStandalone: false,\n isCustomDesktop: false,\n isCustomMobile: false,\n isDataLoaded: false,\n isUiLoaded: false,\n walletConnectVersion: 1\n})\n\n// -- controller --------------------------------------------------- //\nexport const OptionsCtrl = {\n state,\n\n subscribe(callback: (newState: OptionsCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setChains(chains?: OptionsCtrlState['chains']) {\n state.chains = chains\n },\n\n setStandaloneChains(standaloneChains: OptionsCtrlState['standaloneChains']) {\n state.standaloneChains = standaloneChains\n },\n\n setStandaloneUri(standaloneUri: OptionsCtrlState['standaloneUri']) {\n state.standaloneUri = standaloneUri\n },\n\n getSelectedChain() {\n const selectedChain = ClientCtrl.client().getNetwork().chain\n if (selectedChain) {\n state.selectedChain = selectedChain\n }\n\n return state.selectedChain\n },\n\n setSelectedChain(selectedChain: OptionsCtrlState['selectedChain']) {\n state.selectedChain = selectedChain\n },\n\n setIsStandalone(isStandalone: OptionsCtrlState['isStandalone']) {\n state.isStandalone = isStandalone\n },\n\n setIsCustomDesktop(isCustomDesktop: OptionsCtrlState['isCustomDesktop']) {\n state.isCustomDesktop = isCustomDesktop\n },\n\n setIsCustomMobile(isCustomMobile: OptionsCtrlState['isCustomMobile']) {\n state.isCustomMobile = isCustomMobile\n },\n\n setIsDataLoaded(isDataLoaded: OptionsCtrlState['isDataLoaded']) {\n state.isDataLoaded = isDataLoaded\n },\n\n setIsUiLoaded(isUiLoaded: OptionsCtrlState['isUiLoaded']) {\n state.isUiLoaded = isUiLoaded\n },\n\n setWalletConnectVersion(walletConnectVersion: OptionsCtrlState['walletConnectVersion']) {\n state.walletConnectVersion = walletConnectVersion\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ConfigCtrlState } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { ClientCtrl } from './ClientCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst state = proxy({\n projectId: '',\n mobileWallets: undefined,\n desktopWallets: undefined,\n walletImages: undefined,\n chainImages: undefined,\n tokenImages: undefined,\n standaloneChains: undefined,\n enableStandaloneMode: false,\n enableNetworkView: false,\n enableAccountView: true,\n enableExplorer: true,\n defaultChain: undefined,\n explorerAllowList: undefined,\n explorerDenyList: undefined,\n termsOfServiceUrl: undefined,\n privacyPolicyUrl: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const ConfigCtrl = {\n state,\n\n subscribe(callback: (newState: ConfigCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setConfig(config: ConfigCtrlState) {\n OptionsCtrl.setStandaloneChains(config.standaloneChains)\n OptionsCtrl.setIsStandalone(\n Boolean(config.standaloneChains?.length) || Boolean(config.enableStandaloneMode)\n )\n OptionsCtrl.setIsCustomMobile(Boolean(config.mobileWallets?.length))\n OptionsCtrl.setIsCustomDesktop(Boolean(config.desktopWallets?.length))\n OptionsCtrl.setWalletConnectVersion(config.walletConnectVersion ?? 1)\n\n if (!OptionsCtrl.state.isStandalone) {\n const chain = ClientCtrl.client().getDefaultChain()\n OptionsCtrl.setSelectedChain(chain)\n OptionsCtrl.setChains(ClientCtrl.client().chains)\n }\n\n if (config.defaultChain) {\n OptionsCtrl.setSelectedChain(config.defaultChain)\n }\n\n CoreUtil.setWeb3ModalVersionInStorage()\n\n Object.assign(state, config)\n }\n}\n","import type { ListingResponse, PageParams } from '../types/controllerTypes'\n\nconst EXPLORER_API = 'https://explorer-api.walletconnect.com'\n\nfunction formatParams(params: PageParams) {\n const stringParams = Object.fromEntries(\n Object.entries(params)\n .filter(([_, value]) => typeof value !== 'undefined' && value !== null && value !== '')\n .map(([key, value]) => [key, value.toString()])\n )\n\n return new URLSearchParams(stringParams).toString()\n}\n\nexport const ExplorerUtil = {\n async fetchWallets(projectId: string, params: PageParams): Promise {\n const urlParams = formatParams(params)\n const fetcUrl = `${EXPLORER_API}/v3/wallets?projectId=${projectId}&${urlParams}`\n const fetched = await fetch(fetcUrl)\n\n return fetched.json()\n },\n\n formatImageUrl(projectId: string, imageId: string) {\n return `${EXPLORER_API}/v3/logo/lg/${imageId}?projectId=${projectId}`\n }\n}\n","import { proxy } from 'valtio/vanilla'\nimport type { ExplorerCtrlState, PageParams } from '../types/controllerTypes'\nimport { ExplorerUtil } from '../utils/ExplorerUtil'\nimport { ConfigCtrl } from './ConfigCtrl'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n wallets: { listings: [], total: 0, page: 1 },\n search: { listings: [], total: 0, page: 1 },\n previewWallets: [],\n recomendedWallets: []\n})\n\n// -- helpers ------------------------------------------------------ //\nfunction getProjectId() {\n const { projectId } = ConfigCtrl.state\n if (!projectId) {\n throw new Error('projectId is required to work with explorer api')\n }\n\n return projectId\n}\n\n// -- controller --------------------------------------------------- //\nexport const ExplorerCtrl = {\n state,\n\n async getPreviewWallets(params: PageParams) {\n const { listings } = await ExplorerUtil.fetchWallets(getProjectId(), params)\n state.previewWallets = Object.values(listings)\n\n return state.previewWallets\n },\n\n async getRecomendedWallets() {\n const { listings } = await ExplorerUtil.fetchWallets(getProjectId(), { page: 1, entries: 6 })\n state.recomendedWallets = Object.values(listings)\n },\n\n async getPaginatedWallets(params: PageParams) {\n const { page, search } = params\n const { listings: listingsObj, total } = await ExplorerUtil.fetchWallets(getProjectId(), params)\n const listings = Object.values(listingsObj)\n const type = search ? 'search' : 'wallets'\n state[type] = {\n listings: [...state[type].listings, ...listings],\n total,\n page: page ?? 1\n }\n\n return { listings, total }\n },\n\n getImageUrl(imageId: string) {\n return ExplorerUtil.formatImageUrl(getProjectId(), imageId)\n },\n\n resetSearch() {\n state.search = { listings: [], total: 0, page: 1 }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { RouterCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n history: ['ConnectWallet'],\n view: 'ConnectWallet',\n data: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const RouterCtrl = {\n state,\n\n subscribe(callback: (newState: RouterCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n push(view: RouterCtrlState['view'], data?: RouterCtrlState['data']) {\n if (view !== state.view) {\n state.view = view\n if (data) {\n state.data = data\n }\n state.history.push(view)\n }\n },\n\n replace(view: RouterCtrlState['view']) {\n state.view = view\n state.history = [view]\n },\n\n goBack() {\n if (state.history.length > 1) {\n state.history.pop()\n const [last] = state.history.slice(-1)\n state.view = last\n }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ModalCtrlState } from '../types/controllerTypes'\nimport { AccountCtrl } from './AccountCtrl'\nimport { ConfigCtrl } from './ConfigCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\nimport { RouterCtrl } from './RouterCtrl'\n\n// -- types -------------------------------------------------------- //\nexport interface OpenOptions {\n uri?: string\n standaloneChains?: string[]\n route?: 'Account' | 'ConnectWallet' | 'Help' | 'SelectNetwork'\n}\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n open: false\n})\n\n// -- controller --------------------------------------------------- //\nexport const ModalCtrl = {\n state,\n\n subscribe(callback: (newState: ModalCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n async open(options?: OpenOptions) {\n return new Promise(resolve => {\n const { isStandalone, isUiLoaded, isDataLoaded } = OptionsCtrl.state\n const { isConnected } = AccountCtrl.state\n const { enableNetworkView } = ConfigCtrl.state\n\n if (isStandalone) {\n OptionsCtrl.setStandaloneUri(options?.uri)\n OptionsCtrl.setStandaloneChains(options?.standaloneChains)\n RouterCtrl.replace('ConnectWallet')\n } else if (options?.route) {\n RouterCtrl.replace(options.route)\n } else if (isConnected) {\n RouterCtrl.replace('Account')\n } else if (enableNetworkView) {\n RouterCtrl.replace('SelectNetwork')\n } else {\n RouterCtrl.replace('ConnectWallet')\n }\n\n // Open modal if essential async data is ready\n if (isUiLoaded && isDataLoaded) {\n state.open = true\n resolve()\n }\n // Otherwise (slow network) re-attempt open checks\n else {\n const interval = setInterval(() => {\n if (OptionsCtrl.state.isUiLoaded && OptionsCtrl.state.isDataLoaded) {\n clearInterval(interval)\n state.open = true\n resolve()\n }\n }, 200)\n }\n })\n },\n\n close() {\n state.open = false\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ThemeCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nfunction isDarkMode() {\n return typeof matchMedia !== 'undefined' && matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nconst state = proxy({\n themeMode: isDarkMode() ? 'dark' : 'light'\n})\n\n// -- controller --------------------------------------------------- //\nexport const ThemeCtrl = {\n state,\n\n subscribe(callback: (newState: ThemeCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setThemeConfig(theme: ThemeCtrlState) {\n const { themeMode, themeVariables } = theme\n\n if (themeMode) {\n state.themeMode = themeMode\n }\n\n if (themeVariables) {\n state.themeVariables = { ...themeVariables }\n }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ToastCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n open: false,\n message: '',\n variant: 'success'\n})\n\n// -- controller --------------------------------------------------- //\nexport const ToastCtrl = {\n state,\n\n subscribe(callback: (newState: ToastCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n openToast(message: ToastCtrlState['message'], variant: ToastCtrlState['variant']) {\n state.open = true\n state.message = message\n state.variant = variant\n },\n\n closeToast() {\n state.open = false\n }\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\nimport { Buffer } from 'buffer'\n\nif (typeof window !== 'undefined') {\n if (!window.Buffer) {\n window.Buffer = Buffer\n }\n if (!window.global) {\n window.global = window\n }\n if (!window.process) {\n // @ts-expect-error minimal process\n window.process = { env: {} }\n }\n}\n","import type { ConfigCtrlState, ThemeCtrlState } from '@web3modal/core'\nimport { ConfigCtrl, ModalCtrl, OptionsCtrl, ThemeCtrl } from '@web3modal/core'\n\n/**\n * Types\n */\nexport type Web3ModalConfig = Omit &\n ThemeCtrlState & {\n walletConnectVersion: 1 | 2\n }\n\n/**\n * Client\n */\nexport class Web3Modal {\n public constructor(config: Web3ModalConfig) {\n ThemeCtrl.setThemeConfig(config)\n ConfigCtrl.setConfig({ enableStandaloneMode: true, ...config })\n this.initUi()\n }\n\n private async initUi() {\n if (typeof window !== 'undefined') {\n await import('@web3modal/ui')\n const modal = document.createElement('w3m-modal')\n document.body.insertAdjacentElement('beforeend', modal)\n OptionsCtrl.setIsUiLoaded(true)\n }\n }\n\n public openModal = ModalCtrl.open\n\n public closeModal = ModalCtrl.close\n\n public subscribeModal = ModalCtrl.subscribe\n\n public setTheme = ThemeCtrl.setThemeConfig\n}\n"],"names":["t","Symbol","s","Object","getPrototypeOf","c","WeakMap","l","e","has","get","prototype","Array","h","arguments","length","undefined","set","isObject","x","proxyStateMap","refSet","WeakSet","buildProxyFunction","objectIs","is","newProxy","target","handler","Proxy","canProxy","isArray","iterator","Error","Number","Date","String","RegExp","ArrayBuffer","defaultHandlePromise","promise","status","value","reason","snapCache","createSnapshot","version","handlePromise","cache","snap","create","markToTrack","Reflect","ownKeys","forEach","key","getOwnPropertyDescriptor","desc","enumerable","configurable","Promise","_proxyStateMap$get","_proxyStateMap$get2","_slicedToArray","target2","ensureVersion","defineProperty","proxyCache","versionHolder","proxyFunction","initialObject","found","listeners","Set","notifyUpdate","op","nextVersion","listener","checkVersion","createPropListener","prop","newOp","_toConsumableArray","concat","propProxyStates","Map","removePropListener","_a","entry","delete","call","baseObject","deleteProperty","prevValue","deleted","receiver","hasPrevValue","getUntracked","nextValue","then","v","catch","childProxyState","propProxyState","size","remove","addPropListener","proxyObject","proxyState","nextCheckVersion","_ref","propVersion","add","_ref3","_ref4","_ref5","_ref6","writable","_buildProxyFunction","defaultProxyFunction","proxy","subscribe","callback","notifyInSync","console","warn","ops","addListener","isListenerActive","removeListener","push","splice","resolve","L","p","ethereumClient","setEthereumClient","client","o","u","address","profileName","profileAvatar","profileLoading","balanceLoading","balance","isConnected","A","state","f","getAccount","fetchProfile","_asyncToGenerator","_regeneratorRuntime","mark","_callee","n","_p$client$getDefaultC","a","_yield$Promise$all","_yield$Promise$all2","wrap","_context","prev","next","getDefaultChain","id","all","fetchEnsName","chainId","fetchEnsAvatar","sent","t0","finish","stop","fetchBalance","_callee2","_context2","amount","formatted","symbol","setAddress","setIsConnected","resetBalance","resetAccount","d","WALLETCONNECT_DEEPLINK_CHOICE","W3M_VERSION","isMobile","window","matchMedia","matches","test","navigator","userAgent","isAndroid","toLowerCase","includes","isEmptyObject","getOwnPropertyNames","getOwnPropertySymbols","isHttpUrl","startsWith","formatNativeUrl","this","formatUniversalUrl","replaceAll","setWalletConnectDeepLink","encodeURIComponent","endsWith","slice","wait","_callee3","_context3","abrupt","setTimeout","openHref","open","localStorage","setItem","JSON","stringify","href","name","setWalletConnectAndroidDeepLink","_e$split","split","removeWalletConnectDeepLink","removeItem","isNull","setWeb3ModalVersionInStorage","selectedChain","chains","standaloneChains","standaloneUri","isStandalone","isCustomDesktop","isCustomMobile","isDataLoaded","isUiLoaded","walletConnectVersion","i","setChains","setStandaloneChains","setStandaloneUri","getSelectedChain","getNetwork","chain","setSelectedChain","setIsStandalone","setIsCustomDesktop","setIsCustomMobile","setIsDataLoaded","setIsUiLoaded","setWalletConnectVersion","b","projectId","mobileWallets","desktopWallets","walletImages","chainImages","tokenImages","enableStandaloneMode","enableNetworkView","enableAccountView","enableExplorer","defaultChain","explorerAllowList","explorerDenyList","termsOfServiceUrl","privacyPolicyUrl","S","setConfig","assign","W","D","fromEntries","entries","filter","_ref2","map","toString","URLSearchParams","I","_callee4","_context4","fetch","json","wallets","listings","total","page","search","previewWallets","recomendedWallets","y","_","getPreviewWallets","_callee5","_yield$I$fetchWallets","_context5","values","getRecomendedWallets","_callee6","_yield$I$fetchWallets2","_context6","getPaginatedWallets","_callee7","_yield$I$fetchWallets3","_context7","getImageUrl","resetSearch","r","history","view","data","g","replace","goBack","pop","_r$history$slice","m","_callee8","_context8","_i$state","uri","route","N","setInterval","clearInterval","close","P","E","j","hasOwnProperty","k","propertyIsEnumerable","O","w","themeMode","B","setThemeConfig","themeVariables","_step","_iterator","_createForOfIteratorHelper","done","err","M","C","message","variant","H","openToast","closeToast","Buffer","U","global","process","env","_classCallCheck","openModal","closeModal","subscribeModal","setTheme","initUi","_createClass","_initUi","document","createElement","body","insertAdjacentElement","apply"],"sourceRoot":""}