{"version":3,"file":"static/js/8197.616897bd.chunk.js","mappings":"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","sources":["../node_modules/proxy-compare/src/index.ts","../node_modules/valtio/esm/vanilla.mjs","../node_modules/@walletconnect/modal-core/src/controllers/RouterCtrl.ts","../node_modules/@walletconnect/modal-core/src/utils/CoreUtil.ts","../node_modules/@walletconnect/modal-core/src/controllers/EventsCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/OptionsCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/ConfigCtrl.ts","../node_modules/@walletconnect/modal-core/src/utils/ExplorerUtil.ts","../node_modules/@walletconnect/modal-core/src/controllers/ExplorerCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/ModalCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/ThemeCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/ToastCtrl.ts","../node_modules/@walletconnect/modal/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 TARGET_CACHE_PROPERTY = 't';\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 [TARGET_CACHE_PROPERTY]?: TargetCache | 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 state[TARGET_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 handlerAndState[1][TARGET_CACHE_PROPERTY] = targetCache as TargetCache | 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 Object.preventExtensions(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 : void 0) !== \"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 : void 0) !== \"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 : void 0) !== \"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 : void 0) !== \"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 { 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 reset(view: RouterCtrlState['view']) {\n state.view = view\n state.history = [view]\n },\n\n replace(view: RouterCtrlState['view']) {\n if (state.history.length > 1) {\n state.history[state.history.length - 1] = view\n state.view = view\n }\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 setData(data: RouterCtrlState['data']) {\n state.data = data\n }\n}\n","import { RouterCtrl } from '../controllers/RouterCtrl'\n\nexport const CoreUtil = {\n WALLETCONNECT_DEEPLINK_CHOICE: 'WALLETCONNECT_DEEPLINK_CHOICE',\n\n WCM_VERSION: 'WCM_VERSION',\n\n RECOMMENDED_WALLET_AMOUNT: 9,\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 isIos() {\n const ua = navigator.userAgent.toLowerCase()\n\n return CoreUtil.isMobile() && (ua.includes('iphone') || ua.includes('ipad'))\n },\n\n isHttpUrl(url: string) {\n return url.startsWith('http://') || url.startsWith('https://')\n },\n\n isArray(data?: T | T[]): data is T[] {\n return Array.isArray(data) && data.length > 0\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 if (!safeAppUrl.endsWith('/')) {\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 safeAppUrl = appUrl\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`\n }\n this.setWalletConnectDeepLink(safeAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${safeAppUrl}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 try {\n localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE, JSON.stringify({ href, name }))\n } catch {\n console.info('Unable to set WalletConnect deep link')\n }\n },\n\n setWalletConnectAndroidDeepLink(wcUri: string) {\n try {\n const [href] = wcUri.split('?')\n localStorage.setItem(\n CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,\n JSON.stringify({ href, name: 'Android' })\n )\n } catch {\n console.info('Unable to set WalletConnect android deep link')\n }\n },\n\n removeWalletConnectDeepLink() {\n try {\n localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE)\n } catch {\n console.info('Unable to remove WalletConnect deep link')\n }\n },\n\n setModalVersionInStorage() {\n try {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(CoreUtil.WCM_VERSION, process.env.ROLLUP_WCM_VERSION ?? 'UNKNOWN')\n }\n } catch {\n console.info('Unable to set Web3Modal version in storage')\n }\n },\n\n getWalletRouterData() {\n const routerData = RouterCtrl.state.data?.Wallet\n if (!routerData) {\n throw new Error('Missing \"Wallet\" view data')\n }\n\n return routerData\n }\n}\n","import { proxy, snapshot, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { EventsCtrlState, ModalEvent, ModalEventData } from '../types/controllerTypes'\n\n// -- helpers ------------------------------------------------------ //\nconst isEnabled =\n typeof location !== 'undefined' &&\n (location.hostname.includes('localhost') || location.protocol.includes('https'))\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n enabled: isEnabled,\n userSessionId: '',\n events: [],\n connectedWalletId: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const EventsCtrl = {\n state,\n\n subscribe(callback: (newEvent: ModalEvent) => void) {\n return valtioSub(state.events, () => callback(snapshot(state.events[state.events.length - 1])))\n },\n\n initialize() {\n if (state.enabled && typeof crypto?.randomUUID !== 'undefined') {\n state.userSessionId = crypto.randomUUID()\n }\n },\n\n setConnectedWalletId(connectedWalletId: EventsCtrlState['connectedWalletId']) {\n state.connectedWalletId = connectedWalletId\n },\n\n click(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'CLICK' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n },\n\n track(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'TRACK' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n },\n\n view(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'VIEW' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { OptionsCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n chains: undefined,\n walletConnectUri: undefined,\n isAuth: false,\n isCustomDesktop: false,\n isCustomMobile: false,\n isDataLoaded: false,\n isUiLoaded: false\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 setWalletConnectUri(walletConnectUri: OptionsCtrlState['walletConnectUri']) {\n state.walletConnectUri = walletConnectUri\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 setIsAuth(isAuth: OptionsCtrlState['isAuth']) {\n state.isAuth = isAuth\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ConfigCtrlState } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { EventsCtrl } from './EventsCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst state = proxy({\n projectId: '',\n mobileWallets: undefined,\n desktopWallets: undefined,\n walletImages: undefined,\n chains: undefined,\n enableAuthMode: false,\n enableExplorer: true,\n explorerExcludedWalletIds: undefined,\n explorerRecommendedWalletIds: 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 EventsCtrl.initialize()\n OptionsCtrl.setChains(config.chains)\n OptionsCtrl.setIsAuth(Boolean(config.enableAuthMode))\n OptionsCtrl.setIsCustomMobile(Boolean(config.mobileWallets?.length))\n OptionsCtrl.setIsCustomDesktop(Boolean(config.desktopWallets?.length))\n\n CoreUtil.setModalVersionInStorage()\n\n Object.assign(state, config)\n }\n}\n","import { ConfigCtrl } from '../controllers/ConfigCtrl'\nimport type { ListingParams, ListingResponse } from '../types/controllerTypes'\n\n// -- Helpers -------------------------------------------------------\nconst W3M_API = 'https://explorer-api.walletconnect.com'\nconst SDK_TYPE = 'wcm'\nconst SDK_VERSION = `js-${process.env.ROLLUP_WCM_VERSION}`\n\nasync function fetchListings(endpoint: string, params: ListingParams) {\n const allParams = { sdkType: SDK_TYPE, sdkVersion: SDK_VERSION, ...params }\n const url = new URL(endpoint, W3M_API)\n url.searchParams.append('projectId', ConfigCtrl.state.projectId)\n Object.entries(allParams).forEach(([key, value]) => {\n if (value) {\n url.searchParams.append(key, String(value))\n }\n })\n const request = await fetch(url)\n\n return request.json() as Promise\n}\n\n// -- Utility -------------------------------------------------------\nexport const ExplorerUtil = {\n async getDesktopListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getDesktopListings', params)\n },\n\n async getMobileListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getMobileListings', params)\n },\n\n async getInjectedListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getInjectedListings', params)\n },\n\n async getAllListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getAllListings', params)\n },\n\n getWalletImageUrl(imageId: string) {\n return `${W3M_API}/w3m/v1/getWalletImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`\n },\n\n getAssetImageUrl(imageId: string) {\n return `${W3M_API}/w3m/v1/getAssetImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`\n }\n}\n","import { proxy } from 'valtio/vanilla'\nimport type { ExplorerCtrlState, ListingParams } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { ExplorerUtil } from '../utils/ExplorerUtil'\nimport { ConfigCtrl } from './ConfigCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst isMobile = CoreUtil.isMobile()\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n wallets: { listings: [], total: 0, page: 1 },\n search: { listings: [], total: 0, page: 1 },\n recomendedWallets: []\n})\n\n// -- controller --------------------------------------------------- //\nexport const ExplorerCtrl = {\n state,\n\n async getRecomendedWallets() {\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state\n\n // Don't fetch recomended wallets\n if (\n explorerRecommendedWalletIds === 'NONE' ||\n (explorerExcludedWalletIds === 'ALL' && !explorerRecommendedWalletIds)\n ) {\n return state.recomendedWallets\n }\n\n // Fetch only recomended wallets defined in config\n if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n const recommendedIds = explorerRecommendedWalletIds.join(',')\n const params = { recommendedIds }\n const { listings } = await ExplorerUtil.getAllListings(params)\n const listingsArr = Object.values(listings)\n listingsArr.sort((a, b) => {\n const aIndex = explorerRecommendedWalletIds.indexOf(a.id)\n const bIndex = explorerRecommendedWalletIds.indexOf(b.id)\n\n return aIndex - bIndex\n })\n state.recomendedWallets = listingsArr\n }\n\n // Fetch default recomended wallets based on user's device, options and excluded config\n else {\n const { chains, isAuth } = OptionsCtrl.state\n const chainsFilter = chains?.join(',')\n const isExcluded = CoreUtil.isArray(explorerExcludedWalletIds)\n const params = {\n page: 1,\n sdks: isAuth ? 'auth_v1' : undefined,\n entries: CoreUtil.RECOMMENDED_WALLET_AMOUNT,\n chains: chainsFilter,\n version: 2,\n excludedIds: isExcluded ? explorerExcludedWalletIds.join(',') : undefined\n }\n const { listings } = isMobile\n ? await ExplorerUtil.getMobileListings(params)\n : await ExplorerUtil.getDesktopListings(params)\n state.recomendedWallets = Object.values(listings)\n }\n\n return state.recomendedWallets\n },\n\n async getWallets(params: ListingParams) {\n const extendedParams: ListingParams = { ...params }\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state\n const { recomendedWallets } = state\n\n // Don't fetch any wallets if all are excluded\n if (explorerExcludedWalletIds === 'ALL') {\n return state.wallets\n }\n\n // Don't fetch recomended wallets, as we already have these\n if (recomendedWallets.length) {\n extendedParams.excludedIds = recomendedWallets.map(wallet => wallet.id).join(',')\n } else if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n extendedParams.excludedIds = explorerRecommendedWalletIds.join(',')\n }\n\n // Don't fetch user defined excluded wallets & recomended wallets\n if (CoreUtil.isArray(explorerExcludedWalletIds)) {\n extendedParams.excludedIds = [extendedParams.excludedIds, explorerExcludedWalletIds]\n .filter(Boolean)\n .join(',')\n }\n\n // Fetch only auth wallets\n if (OptionsCtrl.state.isAuth) {\n extendedParams.sdks = 'auth_v1'\n }\n\n const { page, search } = params\n const { listings: listingsObj, total } = isMobile\n ? await ExplorerUtil.getMobileListings(extendedParams)\n : await ExplorerUtil.getDesktopListings(extendedParams)\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 getWalletImageUrl(imageId: string) {\n return ExplorerUtil.getWalletImageUrl(imageId)\n },\n\n getAssetImageUrl(imageId: string) {\n return ExplorerUtil.getAssetImageUrl(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 { ModalCtrlState } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { OptionsCtrl } from './OptionsCtrl'\nimport { RouterCtrl } from './RouterCtrl'\n\n// -- types -------------------------------------------------------- //\nexport interface OpenOptions {\n uri: string\n chains?: string[]\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 { isUiLoaded, isDataLoaded } = OptionsCtrl.state\n CoreUtil.removeWalletConnectDeepLink()\n\n OptionsCtrl.setWalletConnectUri(options?.uri)\n OptionsCtrl.setChains(options?.chains)\n RouterCtrl.reset('ConnectWallet')\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 const opts = OptionsCtrl.state\n if (opts.isUiLoaded && opts.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","import type { ConfigCtrlState, ThemeCtrlState } from '@walletconnect/modal-core'\nimport { ConfigCtrl, ModalCtrl, OptionsCtrl, ThemeCtrl } from '@walletconnect/modal-core'\n\n/**\n * Types\n */\nexport type WalletConnectModalConfig = ConfigCtrlState & ThemeCtrlState\n\n/**\n * Client\n */\nexport class WalletConnectModal {\n public constructor(config: WalletConnectModalConfig) {\n ThemeCtrl.setThemeConfig(config)\n ConfigCtrl.setConfig(config)\n this.initUi()\n }\n\n private async initUi() {\n if (typeof window !== 'undefined') {\n await import('@walletconnect/modal-ui')\n const modal = document.createElement('wcm-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":["Symbol","t","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","target2","ensureVersion","defineProperty","preventExtensions","proxyCache","versionHolder","proxyFunction","initialObject","found","listeners","Set","notifyUpdate","op","nextVersion","listener","checkVersion","createPropListener","prop","newOp","propProxyStates","Map","removePropListener","_a","entry","delete","call","baseObject","deleteProperty","prevValue","deleted","receiver","hasPrevValue","getUntracked","nextValue","then","v","catch","childProxyState","addPropListener","propProxyState","size","remove","proxyObject","proxyState","nextCheckVersion","_ref","propVersion","add","_ref2","prevRemove","removeListener","_ref3","writable","defaultProxyFunction","proxy","subscribe","callback","notifyInSync","console","warn","ops","addListener","isListenerActive","push","splice","resolve","o","u","history","view","data","T","state","reset","replace","goBack","pop","slice","setData","a","WALLETCONNECT_DEEPLINK_CHOICE","WCM_VERSION","RECOMMENDED_WALLET_AMOUNT","isMobile","window","Boolean","matchMedia","matches","test","navigator","userAgent","isAndroid","toLowerCase","includes","isIos","isHttpUrl","startsWith","formatNativeUrl","this","formatUniversalUrl","n","replaceAll","endsWith","setWalletConnectDeepLink","encodeURIComponent","async","setTimeout","openHref","open","localStorage","setItem","JSON","stringify","href","name","info","setWalletConnectAndroidDeepLink","split","removeWalletConnectDeepLink","removeItem","setModalVersionInStorage","getWalletRouterData","Wallet","r","enabled","location","hostname","protocol","userSessionId","events","connectedWalletId","R","P","initialize","crypto","randomUUID","setConnectedWalletId","click","type","timestamp","now","track","chains","walletConnectUri","isAuth","isCustomDesktop","isCustomMobile","isDataLoaded","isUiLoaded","p","setChains","setWalletConnectUri","setIsCustomDesktop","setIsCustomMobile","setIsDataLoaded","setIsUiLoaded","setIsAuth","W","projectId","mobileWallets","desktopWallets","walletImages","enableAuthMode","enableExplorer","explorerExcludedWalletIds","explorerRecommendedWalletIds","termsOfServiceUrl","privacyPolicyUrl","y","setConfig","assign","V","D","getOwnPropertySymbols","H","hasOwnProperty","B","propertyIsEnumerable","M","m","L","E","O","w","K","sdkType","sdkVersion","URL","searchParams","append","entries","i","fetch","json","getWalletImageUrl","getAssetImageUrl","z","j","J","q","k","N","d","wallets","listings","total","page","search","recomendedWallets","te","getRecomendedWallets","recommendedIds","join","getAllListings","values","sort","indexOf","id","sdks","excludedIds","b","getMobileListings","getDesktopListings","getWallets","f","F","map","filter","A","U","resetSearch","I","se","uri","setInterval","clearInterval","close","G","$","Q","X","S","C","themeMode","ne","setThemeConfig","themeVariables","Y","g","message","variant","oe","openToast","closeToast","constructor","openModal","closeModal","subscribeModal","setTheme","initUi","document","createElement","body","insertAdjacentElement"],"sourceRoot":""}