{"version":3,"file":"core-be16e657.mjs","sources":["../node_modules/viem/_esm/clients/transports/fallback.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/NetworkUtil.js","../node_modules/big.js/big.mjs","../node_modules/@reown/appkit-common/dist/esm/src/utils/NumberUtil.js","../node_modules/@reown/appkit-common/dist/esm/src/contracts/erc20.js","../node_modules/@reown/appkit-common/dist/esm/src/contracts/swap.js","../node_modules/@reown/appkit-common/dist/esm/src/contracts/usdt.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/ContractUtil.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/ParseUtil.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/SafeLocalStorage.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/ThemeUtil.js","../node_modules/proxy-compare/dist/index.modern.js","../node_modules/valtio/esm/vanilla.mjs","../node_modules/valtio/esm/vanilla/utils.mjs","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/StorageUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/CoreHelperUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/FetchUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/OptionsUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/OptionsController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/TelemetryController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/withErrorBoundary.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/MobileWallet.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/AssetController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/AssetUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/AlertController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/EventsController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ApiController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/RouterController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ThemeController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ConnectorController.js","../node_modules/@reown/appkit-wallet/dist/esm/src/W3mFrameConstants.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/SnackController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/TransactionsController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ConnectionController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/PublicStateController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ERC7811Util.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/SendApiUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/SendController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ChainController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/BlockchainApiController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/AccountController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/NetworkUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ModalController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/OnRampController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/EnsUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/EnsController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/SIWXUtil.js","../node_modules/@reown/appkit/node_modules/unstorage/dist/shared/unstorage.CoCt7NXC.mjs","../node_modules/@reown/appkit/node_modules/unstorage/dist/index.mjs","../node_modules/@reown/appkit/node_modules/@walletconnect/keyvaluestorage/dist/index.es.js","../node_modules/@reown/appkit/node_modules/@walletconnect/types/dist/index.es.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/data/isHex.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/data/size.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/errors/version.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/errors/base.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/errors/data.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/data/pad.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/errors/encoding.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/encoding/fromHex.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/encoding/toHex.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/encoding/toBytes.js","../node_modules/@reown/appkit/node_modules/@noble/hashes/esm/_assert.js","../node_modules/@reown/appkit/node_modules/@noble/hashes/esm/_u64.js","../node_modules/@reown/appkit/node_modules/@noble/hashes/esm/crypto.js","../node_modules/@reown/appkit/node_modules/@noble/hashes/esm/utils.js","../node_modules/@reown/appkit/node_modules/@noble/hashes/esm/sha3.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/hash/keccak256.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/lru.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/address/getAddress.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/accounts/utils/publicKeyToAddress.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/signature/recoverPublicKey.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/signature/recoverAddress.js","../node_modules/@reown/appkit/node_modules/base-x/src/esm/index.js","../node_modules/@reown/appkit/node_modules/bs58/src/esm/index.js","../node_modules/@reown/appkit/node_modules/uint8arrays/esm/src/alloc.js","../node_modules/@reown/appkit/node_modules/uint8arrays/esm/src/concat.js","../node_modules/@reown/appkit/node_modules/uint8arrays/esm/src/util/bases.js","../node_modules/@reown/appkit/node_modules/uint8arrays/esm/src/from-string.js","../node_modules/@reown/appkit/node_modules/uint8arrays/esm/src/to-string.js","../node_modules/@reown/appkit/node_modules/@walletconnect/utils/dist/index.es.js","../node_modules/@reown/appkit/node_modules/@walletconnect/core/dist/index.es.js","../node_modules/@reown/appkit/node_modules/@walletconnect/sign-client/dist/index.es.js","../node_modules/@reown/appkit/node_modules/@walletconnect/universal-provider/dist/index.es.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ConnectorControllerUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ChainControllerUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/ConstantsUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/PresetsUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/HelpersUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/ErrorUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/LoggerUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/CaipNetworkUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/ProviderUtil.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/WalletUtil.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/ConnectorUtil.js","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/@reown/appkit-ui/dist/esm/src/utils/ThemeUtil.js","../node_modules/@reown/appkit/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit/dist/esm/src/networks/utils.js","../node_modules/@reown/appkit/dist/esm/src/networks/solana/solana.js","../node_modules/@reown/appkit/dist/esm/src/networks/solana/solanaDevnet.js","../node_modules/@reown/appkit/dist/esm/src/networks/solana/solanaTestnet.js","../node_modules/@reown/appkit/dist/esm/src/networks/bitcoin.js","../node_modules/@reown/appkit/dist/esm/src/utils/HelpersUtil.js","../node_modules/@reown/appkit/dist/esm/src/connectors/WalletConnectConnector.js","../node_modules/@reown/appkit/dist/esm/src/adapters/ChainAdapterBlueprint.js","../node_modules/@reown/appkit/dist/esm/src/universal-adapter/client.js","../node_modules/@reown/appkit/dist/esm/src/utils/ConfigUtil.js","../node_modules/@reown/appkit/dist/esm/src/client/appkit-base-client.js","../node_modules/@reown/appkit/dist/esm/src/client/appkit-core.js","../node_modules/@reown/appkit/dist/esm/exports/constants.js","../node_modules/@reown/appkit/dist/esm/exports/core.js"],"sourcesContent":["import { ExecutionRevertedError } from '../../errors/node.js';\nimport { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n    const { key = 'fallback', name = 'Fallback', rank = false, shouldThrow: shouldThrow_ = shouldThrow, retryCount, retryDelay, } = config;\n    return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n        let transports = transports_;\n        let onResponse = () => { };\n        const transport = createTransport({\n            key,\n            name,\n            async request({ method, params }) {\n                let includes;\n                const fetch = async (i = 0) => {\n                    const transport = transports[i]({\n                        ...rest,\n                        chain,\n                        retryCount: 0,\n                        timeout,\n                    });\n                    try {\n                        const response = await transport.request({\n                            method,\n                            params,\n                        });\n                        onResponse({\n                            method,\n                            params: params,\n                            response,\n                            transport,\n                            status: 'success',\n                        });\n                        return response;\n                    }\n                    catch (err) {\n                        onResponse({\n                            error: err,\n                            method,\n                            params: params,\n                            transport,\n                            status: 'error',\n                        });\n                        if (shouldThrow_(err))\n                            throw err;\n                        // If we've reached the end of the fallbacks, throw the error.\n                        if (i === transports.length - 1)\n                            throw err;\n                        // Check if at least one other transport includes the method\n                        includes ??= transports.slice(i + 1).some((transport) => {\n                            const { include, exclude } = transport({ chain }).config.methods || {};\n                            if (include)\n                                return include.includes(method);\n                            if (exclude)\n                                return !exclude.includes(method);\n                            return true;\n                        });\n                        if (!includes)\n                            throw err;\n                        // Otherwise, try the next fallback.\n                        return fetch(i + 1);\n                    }\n                };\n                return fetch();\n            },\n            retryCount,\n            retryDelay,\n            type: 'fallback',\n        }, {\n            onResponse: (fn) => (onResponse = fn),\n            transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n        });\n        if (rank) {\n            const rankOptions = (typeof rank === 'object' ? rank : {});\n            rankTransports({\n                chain,\n                interval: rankOptions.interval ?? pollingInterval,\n                onTransports: (transports_) => (transports = transports_),\n                ping: rankOptions.ping,\n                sampleCount: rankOptions.sampleCount,\n                timeout: rankOptions.timeout,\n                transports,\n                weights: rankOptions.weights,\n            });\n        }\n        return transport;\n    });\n}\nexport function shouldThrow(error) {\n    if ('code' in error && typeof error.code === 'number') {\n        if (error.code === TransactionRejectedRpcError.code ||\n            error.code === UserRejectedRequestError.code ||\n            ExecutionRevertedError.nodeMessage.test(error.message) ||\n            error.code === 5000 // CAIP UserRejectedRequestError\n        )\n            return true;\n    }\n    return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, ping, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n    const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n    const samples = [];\n    const rankTransports_ = async () => {\n        // 1. Take a sample from each Transport.\n        const sample = await Promise.all(transports.map(async (transport) => {\n            const transport_ = transport({ chain, retryCount: 0, timeout });\n            const start = Date.now();\n            let end;\n            let success;\n            try {\n                await (ping\n                    ? ping({ transport: transport_ })\n                    : transport_.request({ method: 'net_listening' }));\n                success = 1;\n            }\n            catch {\n                success = 0;\n            }\n            finally {\n                end = Date.now();\n            }\n            const latency = end - start;\n            return { latency, success };\n        }));\n        // 2. Store the sample. If we have more than `sampleCount` samples, remove\n        // the oldest sample.\n        samples.push(sample);\n        if (samples.length > sampleCount)\n            samples.shift();\n        // 3. Calculate the max latency from samples.\n        const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n        // 4. Calculate the score for each Transport.\n        const scores = transports\n            .map((_, i) => {\n            const latencies = samples.map((sample) => sample[i].latency);\n            const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n                latencies.length;\n            const latencyScore = 1 - meanLatency / maxLatency;\n            const successes = samples.map((sample) => sample[i].success);\n            const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n                successes.length;\n            if (stabilityScore === 0)\n                return [0, i];\n            return [\n                latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n                i,\n            ];\n        })\n            .sort((a, b) => b[0] - a[0]);\n        // 5. Sort the Transports by score.\n        onTransports(scores.map(([, i]) => transports[i]));\n        // 6. Wait, and then rank again.\n        await wait(interval);\n        rankTransports_();\n    };\n    rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","export const ConstantsUtil = {\n    WC_NAME_SUFFIX: '.reown.id',\n    WC_NAME_SUFFIX_LEGACY: '.wcn.id',\n    BLOCKCHAIN_API_RPC_URL: 'https://rpc.walletconnect.org',\n    PULSE_API_URL: 'https://pulse.walletconnect.org',\n    W3M_API_URL: 'https://api.web3modal.org',\n    CONNECTOR_ID: {\n        WALLET_CONNECT: 'walletConnect',\n        INJECTED: 'injected',\n        WALLET_STANDARD: 'announced',\n        COINBASE: 'coinbaseWallet',\n        COINBASE_SDK: 'coinbaseWalletSDK',\n        SAFE: 'safe',\n        LEDGER: 'ledger',\n        OKX: 'okx',\n        EIP6963: 'eip6963',\n        AUTH: 'ID_AUTH'\n    },\n    CONNECTOR_NAMES: {\n        AUTH: 'Auth'\n    },\n    AUTH_CONNECTOR_SUPPORTED_CHAINS: ['eip155', 'solana'],\n    LIMITS: {\n        PENDING_TRANSACTIONS: 99\n    },\n    CHAIN: {\n        EVM: 'eip155',\n        SOLANA: 'solana',\n        POLKADOT: 'polkadot',\n        BITCOIN: 'bip122'\n    },\n    CHAIN_NAME_MAP: {\n        eip155: 'EVM Networks',\n        solana: 'Solana',\n        polkadot: 'Polkadot',\n        bip122: 'Bitcoin',\n        cosmos: 'Cosmos'\n    },\n    ADAPTER_TYPES: {\n        BITCOIN: 'bitcoin',\n        SOLANA: 'solana',\n        WAGMI: 'wagmi',\n        ETHERS: 'ethers',\n        ETHERS5: 'ethers5'\n    },\n    USDT_CONTRACT_ADDRESSES: [\n        '0xdac17f958d2ee523a2206206994597c13d831ec7',\n        '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',\n        '0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7',\n        '0x919C1c267BC06a7039e03fcc2eF738525769109c',\n        '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e',\n        '0x55d398326f99059fF775485246999027B3197955',\n        '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9'\n    ],\n    HTTP_STATUS_CODES: {\n        SERVICE_UNAVAILABLE: 503,\n        FORBIDDEN: 403\n    },\n    UNSUPPORTED_NETWORK_NAME: 'Unknown Network',\n    SECURE_SITE_SDK_ORIGIN: (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n        ? process.env['NEXT_PUBLIC_SECURE_SITE_ORIGIN']\n        : undefined) || 'https://secure.walletconnect.org'\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const NetworkUtil = {\n    caipNetworkIdToNumber(caipnetworkId) {\n        return caipnetworkId ? Number(caipnetworkId.split(':')[1]) : undefined;\n    },\n    parseEvmChainId(chainId) {\n        return typeof chainId === 'string'\n            ? this.caipNetworkIdToNumber(chainId)\n            : chainId;\n    },\n    getNetworksByNamespace(networks, namespace) {\n        return networks?.filter(network => network.chainNamespace === namespace) || [];\n    },\n    getFirstNetworkByNamespace(networks, namespace) {\n        return this.getNetworksByNamespace(networks, namespace)[0];\n    },\n    getNetworkNameByCaipNetworkId(caipNetworks, caipNetworkId) {\n        if (!caipNetworkId) {\n            return undefined;\n        }\n        const caipNetwork = caipNetworks.find(network => network.caipNetworkId === caipNetworkId);\n        if (caipNetwork) {\n            return caipNetwork.name;\n        }\n        const [namespace] = caipNetworkId.split(':');\n        return ConstantsUtil.CHAIN_NAME_MAP?.[namespace] || undefined;\n    }\n};\n//# sourceMappingURL=NetworkUtil.js.map","/*\r\n *  big.js v6.2.2\r\n *  A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n *  Copyright (c) 2024 Michael Mclaughlin\r\n *  https://github.com/MikeMcl/big.js/LICENCE.md\r\n */\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n  // The default values below must be integers within the stated ranges.\r\n\r\n  /*\r\n   * The maximum number of decimal places (DP) of the results of operations involving division:\r\n   * div and sqrt, and pow with negative exponents.\r\n   */\r\nvar DP = 20,          // 0 to MAX_DP\r\n\r\n  /*\r\n   * The rounding mode (RM) used when rounding to the above decimal places.\r\n   *\r\n   *  0  Towards zero (i.e. truncate, no rounding).       (ROUND_DOWN)\r\n   *  1  To nearest neighbour. If equidistant, round up.  (ROUND_HALF_UP)\r\n   *  2  To nearest neighbour. If equidistant, to even.   (ROUND_HALF_EVEN)\r\n   *  3  Away from zero.                                  (ROUND_UP)\r\n   */\r\n  RM = 1,             // 0, 1, 2 or 3\r\n\r\n  // The maximum value of DP and Big.DP.\r\n  MAX_DP = 1E6,       // 0 to 1000000\r\n\r\n  // The maximum magnitude of the exponent argument to the pow method.\r\n  MAX_POWER = 1E6,    // 1 to 1000000\r\n\r\n  /*\r\n   * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n   * (JavaScript numbers: -7)\r\n   * -1000000 is the minimum recommended exponent value of a Big.\r\n   */\r\n  NE = -7,            // 0 to -1000000\r\n\r\n  /*\r\n   * The positive exponent (PE) at and above which toString returns exponential notation.\r\n   * (JavaScript numbers: 21)\r\n   * 1000000 is the maximum recommended exponent value of a Big, but this limit is not enforced.\r\n   */\r\n  PE = 21,            // 0 to 1000000\r\n\r\n  /*\r\n   * When true, an error will be thrown if a primitive number is passed to the Big constructor,\r\n   * or if valueOf is called, or if toNumber is called on a Big which cannot be converted to a\r\n   * primitive number without a loss of precision.\r\n   */\r\n  STRICT = false,     // true or false\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n  // Error messages.\r\n  NAME = '[big.js] ',\r\n  INVALID = NAME + 'Invalid ',\r\n  INVALID_DP = INVALID + 'decimal places',\r\n  INVALID_RM = INVALID + 'rounding mode',\r\n  DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n  // The shared prototype object.\r\n  P = {},\r\n  UNDEFINED = void 0,\r\n  NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n/*\r\n * Create and return a Big constructor.\r\n */\r\nfunction _Big_() {\r\n\r\n  /*\r\n   * The Big constructor and exported function.\r\n   * Create and return a new instance of a Big number object.\r\n   *\r\n   * n {number|string|Big} A numeric value.\r\n   */\r\n  function Big(n) {\r\n    var x = this;\r\n\r\n    // Enable constructor usage without new.\r\n    if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);\r\n\r\n    // Duplicate.\r\n    if (n instanceof Big) {\r\n      x.s = n.s;\r\n      x.e = n.e;\r\n      x.c = n.c.slice();\r\n    } else {\r\n      if (typeof n !== 'string') {\r\n        if (Big.strict === true && typeof n !== 'bigint') {\r\n          throw TypeError(INVALID + 'value');\r\n        }\r\n\r\n        // Minus zero?\r\n        n = n === 0 && 1 / n < 0 ? '-0' : String(n);\r\n      }\r\n\r\n      parse(x, n);\r\n    }\r\n\r\n    // Retain a reference to this Big constructor.\r\n    // Shadow Big.prototype.constructor which points to Object.\r\n    x.constructor = Big;\r\n  }\r\n\r\n  Big.prototype = P;\r\n  Big.DP = DP;\r\n  Big.RM = RM;\r\n  Big.NE = NE;\r\n  Big.PE = PE;\r\n  Big.strict = STRICT;\r\n  Big.roundDown = 0;\r\n  Big.roundHalfUp = 1;\r\n  Big.roundHalfEven = 2;\r\n  Big.roundUp = 3;\r\n\r\n  return Big;\r\n}\r\n\r\n\r\n/*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\nfunction parse(x, n) {\r\n  var e, i, nl;\r\n\r\n  if (!NUMERIC.test(n)) {\r\n    throw Error(INVALID + 'number');\r\n  }\r\n\r\n  // Determine sign.\r\n  x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n  // Decimal point?\r\n  if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n  // Exponential form?\r\n  if ((i = n.search(/e/i)) > 0) {\r\n\r\n    // Determine exponent.\r\n    if (e < 0) e = i;\r\n    e += +n.slice(i + 1);\r\n    n = n.substring(0, i);\r\n  } else if (e < 0) {\r\n\r\n    // Integer.\r\n    e = n.length;\r\n  }\r\n\r\n  nl = n.length;\r\n\r\n  // Determine leading zeros.\r\n  for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n  if (i == nl) {\r\n\r\n    // Zero.\r\n    x.c = [x.e = 0];\r\n  } else {\r\n\r\n    // Determine trailing zeros.\r\n    for (; nl > 0 && n.charAt(--nl) == '0';);\r\n    x.e = e - i - 1;\r\n    x.c = [];\r\n\r\n    // Convert string to array of digits without leading/trailing zeros.\r\n    for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n  }\r\n\r\n  return x;\r\n}\r\n\r\n\r\n/*\r\n * Round Big x to a maximum of sd significant digits using rounding mode rm.\r\n *\r\n * x {Big} The Big to round.\r\n * sd {number} Significant digits: integer, 0 to MAX_DP inclusive.\r\n * rm {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\nfunction round(x, sd, rm, more) {\r\n  var xc = x.c;\r\n\r\n  if (rm === UNDEFINED) rm = x.constructor.RM;\r\n  if (rm !== 0 && rm !== 1 && rm !== 2 && rm !== 3) {\r\n    throw Error(INVALID_RM);\r\n  }\r\n\r\n  if (sd < 1) {\r\n    more =\r\n      rm === 3 && (more || !!xc[0]) || sd === 0 && (\r\n      rm === 1 && xc[0] >= 5 ||\r\n      rm === 2 && (xc[0] > 5 || xc[0] === 5 && (more || xc[1] !== UNDEFINED))\r\n    );\r\n\r\n    xc.length = 1;\r\n\r\n    if (more) {\r\n\r\n      // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n      x.e = x.e - sd + 1;\r\n      xc[0] = 1;\r\n    } else {\r\n\r\n      // Zero.\r\n      xc[0] = x.e = 0;\r\n    }\r\n  } else if (sd < xc.length) {\r\n\r\n    // xc[sd] is the digit after the digit that may be rounded up.\r\n    more =\r\n      rm === 1 && xc[sd] >= 5 ||\r\n      rm === 2 && (xc[sd] > 5 || xc[sd] === 5 &&\r\n        (more || xc[sd + 1] !== UNDEFINED || xc[sd - 1] & 1)) ||\r\n      rm === 3 && (more || !!xc[0]);\r\n\r\n    // Remove any digits after the required precision.\r\n    xc.length = sd;\r\n\r\n    // Round up?\r\n    if (more) {\r\n\r\n      // Rounding up may mean the previous digit has to be rounded up.\r\n      for (; ++xc[--sd] > 9;) {\r\n        xc[sd] = 0;\r\n        if (sd === 0) {\r\n          ++x.e;\r\n          xc.unshift(1);\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    // Remove trailing zeros.\r\n    for (sd = xc.length; !xc[--sd];) xc.pop();\r\n  }\r\n\r\n  return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n */\r\nfunction stringify(x, doExponential, isNonzero) {\r\n  var e = x.e,\r\n    s = x.c.join(''),\r\n    n = s.length;\r\n\r\n  // Exponential notation?\r\n  if (doExponential) {\r\n    s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n  // Normal notation.\r\n  } else if (e < 0) {\r\n    for (; ++e;) s = '0' + s;\r\n    s = '0.' + s;\r\n  } else if (e > 0) {\r\n    if (++e > n) {\r\n      for (e -= n; e--;) s += '0';\r\n    } else if (e < n) {\r\n      s = s.slice(0, e) + '.' + s.slice(e);\r\n    }\r\n  } else if (n > 1) {\r\n    s = s.charAt(0) + '.' + s.slice(1);\r\n  }\r\n\r\n  return x.s < 0 && isNonzero ? '-' + s : s;\r\n}\r\n\r\n\r\n// Prototype/instance methods\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\nP.abs = function () {\r\n  var x = new this.constructor(this);\r\n  x.s = 1;\r\n  return x;\r\n};\r\n\r\n\r\n/*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n *       -1 if the value of this Big is less than the value of Big y, or\r\n *        0 if they have the same value.\r\n */\r\nP.cmp = function (y) {\r\n  var isneg,\r\n    x = this,\r\n    xc = x.c,\r\n    yc = (y = new x.constructor(y)).c,\r\n    i = x.s,\r\n    j = y.s,\r\n    k = x.e,\r\n    l = y.e;\r\n\r\n  // Either zero?\r\n  if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n  // Signs differ?\r\n  if (i != j) return i;\r\n\r\n  isneg = i < 0;\r\n\r\n  // Compare exponents.\r\n  if (k != l) return k > l ^ isneg ? 1 : -1;\r\n\r\n  j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n  // Compare digit by digit.\r\n  for (i = -1; ++i < j;) {\r\n    if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n  }\r\n\r\n  // Compare lengths.\r\n  return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.div = function (y) {\r\n  var x = this,\r\n    Big = x.constructor,\r\n    a = x.c,                  // dividend\r\n    b = (y = new Big(y)).c,   // divisor\r\n    k = x.s == y.s ? 1 : -1,\r\n    dp = Big.DP;\r\n\r\n  if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n    throw Error(INVALID_DP);\r\n  }\r\n\r\n  // Divisor is zero?\r\n  if (!b[0]) {\r\n    throw Error(DIV_BY_ZERO);\r\n  }\r\n\r\n  // Dividend is 0? Return +-0.\r\n  if (!a[0]) {\r\n    y.s = k;\r\n    y.c = [y.e = 0];\r\n    return y;\r\n  }\r\n\r\n  var bl, bt, n, cmp, ri,\r\n    bz = b.slice(),\r\n    ai = bl = b.length,\r\n    al = a.length,\r\n    r = a.slice(0, bl),   // remainder\r\n    rl = r.length,\r\n    q = y,                // quotient\r\n    qc = q.c = [],\r\n    qi = 0,\r\n    p = dp + (q.e = x.e - y.e) + 1;    // precision of the result\r\n\r\n  q.s = k;\r\n  k = p < 0 ? 0 : p;\r\n\r\n  // Create version of divisor with leading zero.\r\n  bz.unshift(0);\r\n\r\n  // Add zeros to make remainder as long as divisor.\r\n  for (; rl++ < bl;) r.push(0);\r\n\r\n  do {\r\n\r\n    // n is how many times the divisor goes into current remainder.\r\n    for (n = 0; n < 10; n++) {\r\n\r\n      // Compare divisor and remainder.\r\n      if (bl != (rl = r.length)) {\r\n        cmp = bl > rl ? 1 : -1;\r\n      } else {\r\n        for (ri = -1, cmp = 0; ++ri < bl;) {\r\n          if (b[ri] != r[ri]) {\r\n            cmp = b[ri] > r[ri] ? 1 : -1;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      // If divisor < remainder, subtract divisor from remainder.\r\n      if (cmp < 0) {\r\n\r\n        // Remainder can't be more than 1 digit longer than divisor.\r\n        // Equalise lengths using divisor with extra leading zero?\r\n        for (bt = rl == bl ? b : bz; rl;) {\r\n          if (r[--rl] < bt[rl]) {\r\n            ri = rl;\r\n            for (; ri && !r[--ri];) r[ri] = 9;\r\n            --r[ri];\r\n            r[rl] += 10;\r\n          }\r\n          r[rl] -= bt[rl];\r\n        }\r\n\r\n        for (; !r[0];) r.shift();\r\n      } else {\r\n        break;\r\n      }\r\n    }\r\n\r\n    // Add the digit n to the result array.\r\n    qc[qi++] = cmp ? n : ++n;\r\n\r\n    // Update the remainder.\r\n    if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n    else r = [a[ai]];\r\n\r\n  } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n  // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n  if (!qc[0] && qi != 1) {\r\n\r\n    // There can't be more than one zero.\r\n    qc.shift();\r\n    q.e--;\r\n    p--;\r\n  }\r\n\r\n  // Round?\r\n  if (qi > p) round(q, p, Big.RM, r[0] !== UNDEFINED);\r\n\r\n  return q;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\nP.eq = function (y) {\r\n  return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\nP.gt = function (y) {\r\n  return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.gte = function (y) {\r\n  return this.cmp(y) > -1;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\nP.lt = function (y) {\r\n  return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.lte = function (y) {\r\n  return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\nP.minus = P.sub = function (y) {\r\n  var i, j, t, xlty,\r\n    x = this,\r\n    Big = x.constructor,\r\n    a = x.s,\r\n    b = (y = new Big(y)).s;\r\n\r\n  // Signs differ?\r\n  if (a != b) {\r\n    y.s = -b;\r\n    return x.plus(y);\r\n  }\r\n\r\n  var xc = x.c.slice(),\r\n    xe = x.e,\r\n    yc = y.c,\r\n    ye = y.e;\r\n\r\n  // Either zero?\r\n  if (!xc[0] || !yc[0]) {\r\n    if (yc[0]) {\r\n      y.s = -b;\r\n    } else if (xc[0]) {\r\n      y = new Big(x);\r\n    } else {\r\n      y.s = 1;\r\n    }\r\n    return y;\r\n  }\r\n\r\n  // Determine which is the bigger number. Prepend zeros to equalise exponents.\r\n  if (a = xe - ye) {\r\n\r\n    if (xlty = a < 0) {\r\n      a = -a;\r\n      t = xc;\r\n    } else {\r\n      ye = xe;\r\n      t = yc;\r\n    }\r\n\r\n    t.reverse();\r\n    for (b = a; b--;) t.push(0);\r\n    t.reverse();\r\n  } else {\r\n\r\n    // Exponents equal. Check digit by digit.\r\n    j = ((xlty = xc.length < yc.length) ? xc : yc).length;\r\n\r\n    for (a = b = 0; b < j; b++) {\r\n      if (xc[b] != yc[b]) {\r\n        xlty = xc[b] < yc[b];\r\n        break;\r\n      }\r\n    }\r\n  }\r\n\r\n  // x < y? Point xc to the array of the bigger number.\r\n  if (xlty) {\r\n    t = xc;\r\n    xc = yc;\r\n    yc = t;\r\n    y.s = -y.s;\r\n  }\r\n\r\n  /*\r\n   * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n   * needs to start at yc.length.\r\n   */\r\n  if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n  // Subtract yc from xc.\r\n  for (b = i; j > a;) {\r\n    if (xc[--j] < yc[j]) {\r\n      for (i = j; i && !xc[--i];) xc[i] = 9;\r\n      --xc[i];\r\n      xc[j] += 10;\r\n    }\r\n\r\n    xc[j] -= yc[j];\r\n  }\r\n\r\n  // Remove trailing zeros.\r\n  for (; xc[--b] === 0;) xc.pop();\r\n\r\n  // Remove leading zeros and adjust exponent accordingly.\r\n  for (; xc[0] === 0;) {\r\n    xc.shift();\r\n    --ye;\r\n  }\r\n\r\n  if (!xc[0]) {\r\n\r\n    // n - n = +0\r\n    y.s = 1;\r\n\r\n    // Result must be zero.\r\n    xc = [ye = 0];\r\n  }\r\n\r\n  y.c = xc;\r\n  y.e = ye;\r\n\r\n  return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\nP.mod = function (y) {\r\n  var ygtx,\r\n    x = this,\r\n    Big = x.constructor,\r\n    a = x.s,\r\n    b = (y = new Big(y)).s;\r\n\r\n  if (!y.c[0]) {\r\n    throw Error(DIV_BY_ZERO);\r\n  }\r\n\r\n  x.s = y.s = 1;\r\n  ygtx = y.cmp(x) == 1;\r\n  x.s = a;\r\n  y.s = b;\r\n\r\n  if (ygtx) return new Big(x);\r\n\r\n  a = Big.DP;\r\n  b = Big.RM;\r\n  Big.DP = Big.RM = 0;\r\n  x = x.div(y);\r\n  Big.DP = a;\r\n  Big.RM = b;\r\n\r\n  return this.minus(x.times(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big negated.\r\n */\r\nP.neg = function () {\r\n  var x = new this.constructor(this);\r\n  x.s = -x.s;\r\n  return x;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\nP.plus = P.add = function (y) {\r\n  var e, k, t,\r\n    x = this,\r\n    Big = x.constructor;\r\n\r\n  y = new Big(y);\r\n\r\n  // Signs differ?\r\n  if (x.s != y.s) {\r\n    y.s = -y.s;\r\n    return x.minus(y);\r\n  }\r\n\r\n  var xe = x.e,\r\n    xc = x.c,\r\n    ye = y.e,\r\n    yc = y.c;\r\n\r\n  // Either zero?\r\n  if (!xc[0] || !yc[0]) {\r\n    if (!yc[0]) {\r\n      if (xc[0]) {\r\n        y = new Big(x);\r\n      } else {\r\n        y.s = x.s;\r\n      }\r\n    }\r\n    return y;\r\n  }\r\n\r\n  xc = xc.slice();\r\n\r\n  // Prepend zeros to equalise exponents.\r\n  // Note: reverse faster than unshifts.\r\n  if (e = xe - ye) {\r\n    if (e > 0) {\r\n      ye = xe;\r\n      t = yc;\r\n    } else {\r\n      e = -e;\r\n      t = xc;\r\n    }\r\n\r\n    t.reverse();\r\n    for (; e--;) t.push(0);\r\n    t.reverse();\r\n  }\r\n\r\n  // Point xc to the longer array.\r\n  if (xc.length - yc.length < 0) {\r\n    t = yc;\r\n    yc = xc;\r\n    xc = t;\r\n  }\r\n\r\n  e = yc.length;\r\n\r\n  // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n  for (k = 0; e; xc[e] %= 10) k = (xc[--e] = xc[e] + yc[e] + k) / 10 | 0;\r\n\r\n  // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n  if (k) {\r\n    xc.unshift(k);\r\n    ++ye;\r\n  }\r\n\r\n  // Remove trailing zeros.\r\n  for (e = xc.length; xc[--e] === 0;) xc.pop();\r\n\r\n  y.c = xc;\r\n  y.e = ye;\r\n\r\n  return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\nP.pow = function (n) {\r\n  var x = this,\r\n    one = new x.constructor('1'),\r\n    y = one,\r\n    isneg = n < 0;\r\n\r\n  if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) {\r\n    throw Error(INVALID + 'exponent');\r\n  }\r\n\r\n  if (isneg) n = -n;\r\n\r\n  for (;;) {\r\n    if (n & 1) y = y.times(x);\r\n    n >>= 1;\r\n    if (!n) break;\r\n    x = x.times(x);\r\n  }\r\n\r\n  return isneg ? one.div(y) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum precision of sd\r\n * significant digits using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.prec = function (sd, rm) {\r\n  if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n    throw Error(INVALID + 'precision');\r\n  }\r\n  return round(new this.constructor(this), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum of dp decimal places\r\n * using rounding mode rm, or Big.RM if rm is not specified.\r\n * If dp is negative, round to an integer which is a multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.round = function (dp, rm) {\r\n  if (dp === UNDEFINED) dp = 0;\r\n  else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) {\r\n    throw Error(INVALID_DP);\r\n  }\r\n  return round(new this.constructor(this), dp + this.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.sqrt = function () {\r\n  var r, c, t,\r\n    x = this,\r\n    Big = x.constructor,\r\n    s = x.s,\r\n    e = x.e,\r\n    half = new Big('0.5');\r\n\r\n  // Zero?\r\n  if (!x.c[0]) return new Big(x);\r\n\r\n  // Negative?\r\n  if (s < 0) {\r\n    throw Error(NAME + 'No square root');\r\n  }\r\n\r\n  // Estimate.\r\n  s = Math.sqrt(+stringify(x, true, true));\r\n\r\n  // Math.sqrt underflow/overflow?\r\n  // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n  if (s === 0 || s === 1 / 0) {\r\n    c = x.c.join('');\r\n    if (!(c.length + e & 1)) c += '0';\r\n    s = Math.sqrt(c);\r\n    e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n    r = new Big((s == 1 / 0 ? '5e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n  } else {\r\n    r = new Big(s + '');\r\n  }\r\n\r\n  e = r.e + (Big.DP += 4);\r\n\r\n  // Newton-Raphson iteration.\r\n  do {\r\n    t = r;\r\n    r = half.times(t.plus(x.div(t)));\r\n  } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n  return round(r, (Big.DP -= 4) + r.e + 1, Big.RM);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\nP.times = P.mul = function (y) {\r\n  var c,\r\n    x = this,\r\n    Big = x.constructor,\r\n    xc = x.c,\r\n    yc = (y = new Big(y)).c,\r\n    a = xc.length,\r\n    b = yc.length,\r\n    i = x.e,\r\n    j = y.e;\r\n\r\n  // Determine sign of result.\r\n  y.s = x.s == y.s ? 1 : -1;\r\n\r\n  // Return signed 0 if either 0.\r\n  if (!xc[0] || !yc[0]) {\r\n    y.c = [y.e = 0];\r\n    return y;\r\n  }\r\n\r\n  // Initialise exponent of result as x.e + y.e.\r\n  y.e = i + j;\r\n\r\n  // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n  if (a < b) {\r\n    c = xc;\r\n    xc = yc;\r\n    yc = c;\r\n    j = a;\r\n    a = b;\r\n    b = j;\r\n  }\r\n\r\n  // Initialise coefficient array of result with zeros.\r\n  for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n  // Multiply.\r\n\r\n  // i is initially xc.length.\r\n  for (i = b; i--;) {\r\n    b = 0;\r\n\r\n    // a is yc.length.\r\n    for (j = a + i; j > i;) {\r\n\r\n      // Current sum of products at this digit position, plus carry.\r\n      b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n      c[j--] = b % 10;\r\n\r\n      // carry\r\n      b = b / 10 | 0;\r\n    }\r\n\r\n    c[j] = b;\r\n  }\r\n\r\n  // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n  if (b) ++y.e;\r\n  else c.shift();\r\n\r\n  // Remove trailing zeros.\r\n  for (i = c.length; !c[--i];) c.pop();\r\n  y.c = c;\r\n\r\n  return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in exponential notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toExponential = function (dp, rm) {\r\n  var x = this,\r\n    n = x.c[0];\r\n\r\n  if (dp !== UNDEFINED) {\r\n    if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n      throw Error(INVALID_DP);\r\n    }\r\n    x = round(new x.constructor(x), ++dp, rm);\r\n    for (; x.c.length < dp;) x.c.push(0);\r\n  }\r\n\r\n  return stringify(x, true, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in normal notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\nP.toFixed = function (dp, rm) {\r\n  var x = this,\r\n    n = x.c[0];\r\n\r\n  if (dp !== UNDEFINED) {\r\n    if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n      throw Error(INVALID_DP);\r\n    }\r\n    x = round(new x.constructor(x), dp + x.e + 1, rm);\r\n\r\n    // x.e may have changed if the value is rounded up.\r\n    for (dp = dp + x.e + 1; x.c.length < dp;) x.c.push(0);\r\n  }\r\n\r\n  return stringify(x, false, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toJSON = P.toString = function () {\r\n  var x = this,\r\n    Big = x.constructor;\r\n  return stringify(x, x.e <= Big.NE || x.e >= Big.PE, !!x.c[0]);\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Big as a primitve number.\r\n */\r\nP.toNumber = function () {\r\n  var n = +stringify(this, true, true);\r\n  if (this.constructor.strict === true && !this.eq(n.toString())) {\r\n    throw Error(NAME + 'Imprecise conversion');\r\n  }\r\n  return n;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * rounding mode rm, or Big.RM if rm is not specified.\r\n * Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n  var x = this,\r\n    Big = x.constructor,\r\n    n = x.c[0];\r\n\r\n  if (sd !== UNDEFINED) {\r\n    if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n      throw Error(INVALID + 'precision');\r\n    }\r\n    x = round(new Big(x), sd, rm);\r\n    for (; x.c.length < sd;) x.c.push(0);\r\n  }\r\n\r\n  return stringify(x, sd <= x.e || x.e <= Big.NE || x.e >= Big.PE, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\nP.valueOf = function () {\r\n  var x = this,\r\n    Big = x.constructor;\r\n  if (Big.strict === true) {\r\n    throw Error(NAME + 'valueOf disallowed');\r\n  }\r\n  return stringify(x, x.e <= Big.NE || x.e >= Big.PE, true);\r\n};\r\n\r\n\r\n// Export\r\n\r\n\r\nexport var Big = _Big_();\r\n\r\n/// <reference types=\"https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/types/big.js/index.d.ts\" />\r\nexport default Big;\r\n","import Big from 'big.js';\nexport const NumberUtil = {\n    bigNumber(value) {\n        if (!value) {\n            return new Big(0);\n        }\n        return new Big(value);\n    },\n    multiply(a, b) {\n        if (a === undefined || b === undefined) {\n            return new Big(0);\n        }\n        const aBigNumber = new Big(a);\n        const bBigNumber = new Big(b);\n        return aBigNumber.times(bBigNumber);\n    },\n    formatNumberToLocalString(value, decimals = 2) {\n        if (value === undefined) {\n            return '0.00';\n        }\n        if (typeof value === 'number') {\n            return value.toLocaleString('en-US', {\n                maximumFractionDigits: decimals,\n                minimumFractionDigits: decimals\n            });\n        }\n        return parseFloat(value).toLocaleString('en-US', {\n            maximumFractionDigits: decimals,\n            minimumFractionDigits: decimals\n        });\n    },\n    parseLocalStringToNumber(value) {\n        if (value === undefined) {\n            return 0;\n        }\n        return parseFloat(value.replace(/,/gu, ''));\n    }\n};\n//# sourceMappingURL=NumberUtil.js.map","export const erc20ABI = [\n    {\n        type: 'function',\n        name: 'transfer',\n        stateMutability: 'nonpayable',\n        inputs: [\n            {\n                name: '_to',\n                type: 'address'\n            },\n            {\n                name: '_value',\n                type: 'uint256'\n            }\n        ],\n        outputs: [\n            {\n                name: '',\n                type: 'bool'\n            }\n        ]\n    },\n    {\n        type: 'function',\n        name: 'transferFrom',\n        stateMutability: 'nonpayable',\n        inputs: [\n            {\n                name: '_from',\n                type: 'address'\n            },\n            {\n                name: '_to',\n                type: 'address'\n            },\n            {\n                name: '_value',\n                type: 'uint256'\n            }\n        ],\n        outputs: [\n            {\n                name: '',\n                type: 'bool'\n            }\n        ]\n    }\n];\n//# sourceMappingURL=erc20.js.map","export const swapABI = [\n    {\n        type: 'function',\n        name: 'approve',\n        stateMutability: 'nonpayable',\n        inputs: [\n            { name: 'spender', type: 'address' },\n            { name: 'amount', type: 'uint256' }\n        ],\n        outputs: [{ type: 'bool' }]\n    }\n];\n//# sourceMappingURL=swap.js.map","export const usdtABI = [\n    {\n        type: 'function',\n        name: 'transfer',\n        stateMutability: 'nonpayable',\n        inputs: [\n            {\n                name: 'recipient',\n                type: 'address'\n            },\n            {\n                name: 'amount',\n                type: 'uint256'\n            }\n        ],\n        outputs: []\n    },\n    {\n        type: 'function',\n        name: 'transferFrom',\n        stateMutability: 'nonpayable',\n        inputs: [\n            {\n                name: 'sender',\n                type: 'address'\n            },\n            {\n                name: 'recipient',\n                type: 'address'\n            },\n            {\n                name: 'amount',\n                type: 'uint256'\n            }\n        ],\n        outputs: [\n            {\n                name: '',\n                type: 'bool'\n            }\n        ]\n    }\n];\n//# sourceMappingURL=usdt.js.map","import { erc20ABI } from '../contracts/erc20.js';\nimport { swapABI } from '../contracts/swap.js';\nimport { usdtABI } from '../contracts/usdt.js';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nexport const ContractUtil = {\n    getERC20Abi: (tokenAddress) => {\n        if (ConstantsUtil.USDT_CONTRACT_ADDRESSES.includes(tokenAddress)) {\n            return usdtABI;\n        }\n        return erc20ABI;\n    },\n    getSwapAbi: () => swapABI\n};\n//# sourceMappingURL=ContractUtil.js.map","export const ParseUtil = {\n    validateCaipAddress(address) {\n        if (address.split(':')?.length !== 3) {\n            throw new Error('Invalid CAIP Address');\n        }\n        return address;\n    },\n    parseCaipAddress(caipAddress) {\n        const parts = caipAddress.split(':');\n        if (parts.length !== 3) {\n            throw new Error(`Invalid CAIP-10 address: ${caipAddress}`);\n        }\n        const [chainNamespace, chainId, address] = parts;\n        if (!chainNamespace || !chainId || !address) {\n            throw new Error(`Invalid CAIP-10 address: ${caipAddress}`);\n        }\n        return {\n            chainNamespace: chainNamespace,\n            chainId: chainId,\n            address\n        };\n    },\n    parseCaipNetworkId(caipNetworkId) {\n        const parts = caipNetworkId.split(':');\n        if (parts.length !== 2) {\n            throw new Error(`Invalid CAIP-2 network id: ${caipNetworkId}`);\n        }\n        const [chainNamespace, chainId] = parts;\n        if (!chainNamespace || !chainId) {\n            throw new Error(`Invalid CAIP-2 network id: ${caipNetworkId}`);\n        }\n        return {\n            chainNamespace: chainNamespace,\n            chainId: chainId\n        };\n    }\n};\n//# sourceMappingURL=ParseUtil.js.map","export const SafeLocalStorageKeys = {\n    WALLET_ID: '@appkit/wallet_id',\n    WALLET_NAME: '@appkit/wallet_name',\n    SOLANA_WALLET: '@appkit/solana_wallet',\n    SOLANA_CAIP_CHAIN: '@appkit/solana_caip_chain',\n    ACTIVE_CAIP_NETWORK_ID: '@appkit/active_caip_network_id',\n    CONNECTED_SOCIAL: '@appkit/connected_social',\n    CONNECTED_SOCIAL_USERNAME: '@appkit-wallet/SOCIAL_USERNAME',\n    RECENT_WALLETS: '@appkit/recent_wallets',\n    DEEPLINK_CHOICE: 'WALLETCONNECT_DEEPLINK_CHOICE',\n    ACTIVE_NAMESPACE: '@appkit/active_namespace',\n    CONNECTED_NAMESPACES: '@appkit/connected_namespaces',\n    CONNECTION_STATUS: '@appkit/connection_status',\n    SIWX_AUTH_TOKEN: '@appkit/siwx-auth-token',\n    SIWX_NONCE_TOKEN: '@appkit/siwx-nonce-token',\n    TELEGRAM_SOCIAL_PROVIDER: '@appkit/social_provider',\n    NATIVE_BALANCE_CACHE: '@appkit/native_balance_cache',\n    PORTFOLIO_CACHE: '@appkit/portfolio_cache',\n    ENS_CACHE: '@appkit/ens_cache',\n    IDENTITY_CACHE: '@appkit/identity_cache',\n    PREFERRED_ACCOUNT_TYPES: '@appkit/preferred_account_types',\n    CONNECTIONS: '@appkit/connections'\n};\nexport function getSafeConnectorIdKey(namespace) {\n    if (!namespace) {\n        throw new Error('Namespace is required for CONNECTED_CONNECTOR_ID');\n    }\n    return `@appkit/${namespace}:connected_connector_id`;\n}\nexport const SafeLocalStorage = {\n    setItem(key, value) {\n        if (isSafe() && value !== undefined) {\n            localStorage.setItem(key, value);\n        }\n    },\n    getItem(key) {\n        if (isSafe()) {\n            return localStorage.getItem(key) || undefined;\n        }\n        return undefined;\n    },\n    removeItem(key) {\n        if (isSafe()) {\n            localStorage.removeItem(key);\n        }\n    },\n    clear() {\n        if (isSafe()) {\n            localStorage.clear();\n        }\n    }\n};\nexport function isSafe() {\n    return typeof window !== 'undefined' && typeof localStorage !== 'undefined';\n}\n//# sourceMappingURL=SafeLocalStorage.js.map","export function getW3mThemeVariables(themeVariables, themeType) {\n    if (themeType === 'light') {\n        return {\n            '--w3m-accent': themeVariables?.['--w3m-accent'] || 'hsla(231, 100%, 70%, 1)',\n            '--w3m-background': '#fff'\n        };\n    }\n    return {\n        '--w3m-accent': themeVariables?.['--w3m-accent'] || 'hsla(230, 100%, 67%, 1)',\n        '--w3m-background': '#121313'\n    };\n}\n//# sourceMappingURL=ThemeUtil.js.map","const e=Symbol(),t=Symbol(),r=\"a\",n=\"w\";let o=(e,t)=>new Proxy(e,t);const s=Object.getPrototypeOf,c=new WeakMap,l=e=>e&&(c.has(e)?c.get(e):s(e)===Object.prototype||s(e)===Array.prototype),f=e=>\"object\"==typeof e&&null!==e,i=e=>{if(Array.isArray(e))return Array.from(e);const t=Object.getOwnPropertyDescriptors(e);return Object.values(t).forEach(e=>{e.configurable=!0}),Object.create(s(e),t)},u=e=>e[t]||e,a=(s,c,f,p)=>{if(!l(s))return s;let g=p&&p.get(s);if(!g){const e=u(s);g=(e=>Object.values(Object.getOwnPropertyDescriptors(e)).some(e=>!e.configurable&&!e.writable))(e)?[e,i(e)]:[e],null==p||p.set(s,g)}const[y,h]=g;let w=f&&f.get(y);return w&&w[1].f===!!h||(w=((o,s)=>{const c={f:s};let l=!1;const f=(e,t)=>{if(!l){let s=c[r].get(o);if(s||(s={},c[r].set(o,s)),e===n)s[n]=!0;else{let r=s[e];r||(r=new Set,s[e]=r),r.add(t)}}},i={get:(e,n)=>n===t?o:(f(\"k\",n),a(Reflect.get(e,n),c[r],c.c,c.t)),has:(t,n)=>n===e?(l=!0,c[r].delete(o),!0):(f(\"h\",n),Reflect.has(t,n)),getOwnPropertyDescriptor:(e,t)=>(f(\"o\",t),Reflect.getOwnPropertyDescriptor(e,t)),ownKeys:e=>(f(n),Reflect.ownKeys(e))};return s&&(i.set=i.deleteProperty=()=>!1),[i,c]})(y,!!h),w[1].p=o(h||y,w[0]),f&&f.set(y,w)),w[1][r]=c,w[1].c=f,w[1].t=p,w[1].p},p=(e,t,r,o,s=Object.is)=>{if(s(e,t))return!1;if(!f(e)||!f(t))return!0;const c=r.get(u(e));if(!c)return!0;if(o){const r=o.get(e);if(r&&r.n===t)return r.g;o.set(e,{n:t,g:!1})}let l=null;try{for(const r of c.h||[])if(l=Reflect.has(e,r)!==Reflect.has(t,r),l)return l;if(!0===c[n]){if(l=((e,t)=>{const r=Reflect.ownKeys(e),n=Reflect.ownKeys(t);return r.length!==n.length||r.some((e,t)=>e!==n[t])})(e,t),l)return l}else for(const r of c.o||[])if(l=!!Reflect.getOwnPropertyDescriptor(e,r)!=!!Reflect.getOwnPropertyDescriptor(t,r),l)return l;for(const n of c.k||[])if(l=p(e[n],t[n],r,o,s),l)return l;return null===l&&(l=!0),l}finally{o&&o.set(e,{n:t,g:l})}},g=t=>!!l(t)&&e in t,y=e=>l(e)&&e[t]||null,h=(e,t=!0)=>{c.set(e,t)},w=(e,t,r)=>{const o=[],s=new WeakSet,c=(e,l)=>{if(s.has(e))return;f(e)&&s.add(e);const i=f(e)&&t.get(u(e));if(i){var a,p;if(null==(a=i.h)||a.forEach(e=>{const t=`:has(${String(e)})`;o.push(l?[...l,t]:[t])}),!0===i[n]){const e=\":ownKeys\";o.push(l?[...l,e]:[e])}else{var g;null==(g=i.o)||g.forEach(e=>{const t=`:hasOwn(${String(e)})`;o.push(l?[...l,t]:[t])})}null==(p=i.k)||p.forEach(t=>{r&&!(\"value\"in(Object.getOwnPropertyDescriptor(e,t)||{}))||c(e[t],l?[...l,t]:[t])})}else l&&o.push(l)};return c(e),o},O=e=>{o=e};export{w as affectedToPathList,a as createProxy,y as getUntracked,p as isChanged,h as markToTrack,O as replaceNewProxy,g as trackMemo};\n//# sourceMappingURL=index.modern.mjs.map\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 { enumerable } = Reflect.getOwnPropertyDescriptor(\n      target,\n      key\n    );\n    const desc = {\n      value,\n      enumerable,\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 { subscribe, snapshot, proxy, ref, unstable_buildProxyFunction } from 'valtio/vanilla';\nimport { derive } from 'derive-valtio';\nexport { derive, underive, unstable_deriveSubscriptions } from 'derive-valtio';\n\nfunction subscribeKey(proxyObject, key, callback, notifyInSync) {\n  let prevValue = proxyObject[key];\n  return subscribe(\n    proxyObject,\n    () => {\n      const nextValue = proxyObject[key];\n      if (!Object.is(prevValue, nextValue)) {\n        callback(prevValue = nextValue);\n      }\n    },\n    notifyInSync\n  );\n}\n\nlet currentCleanups;\nfunction watch(callback, options) {\n  let alive = true;\n  const cleanups = /* @__PURE__ */ new Set();\n  const subscriptions = /* @__PURE__ */ new Map();\n  const cleanup = () => {\n    if (alive) {\n      alive = false;\n      cleanups.forEach((clean) => clean());\n      cleanups.clear();\n      subscriptions.forEach((unsubscribe) => unsubscribe());\n      subscriptions.clear();\n    }\n  };\n  const revalidate = async () => {\n    if (!alive) {\n      return;\n    }\n    cleanups.forEach((clean) => clean());\n    cleanups.clear();\n    const proxiesToSubscribe = /* @__PURE__ */ new Set();\n    const parent = currentCleanups;\n    currentCleanups = cleanups;\n    try {\n      const promiseOrPossibleCleanup = callback((proxyObject) => {\n        proxiesToSubscribe.add(proxyObject);\n        if (alive && !subscriptions.has(proxyObject)) {\n          const unsubscribe = subscribe(proxyObject, revalidate, options == null ? void 0 : options.sync);\n          subscriptions.set(proxyObject, unsubscribe);\n        }\n        return proxyObject;\n      });\n      const couldBeCleanup = promiseOrPossibleCleanup && promiseOrPossibleCleanup instanceof Promise ? await promiseOrPossibleCleanup : promiseOrPossibleCleanup;\n      if (couldBeCleanup) {\n        if (alive) {\n          cleanups.add(couldBeCleanup);\n        } else {\n          cleanup();\n        }\n      }\n    } finally {\n      currentCleanups = parent;\n    }\n    subscriptions.forEach((unsubscribe, proxyObject) => {\n      if (!proxiesToSubscribe.has(proxyObject)) {\n        subscriptions.delete(proxyObject);\n        unsubscribe();\n      }\n    });\n  };\n  if (currentCleanups) {\n    currentCleanups.add(cleanup);\n  }\n  revalidate();\n  return cleanup;\n}\n\nconst DEVTOOLS = Symbol();\nfunction devtools(proxyObject, options) {\n  if (typeof options === \"string\") {\n    console.warn(\n      \"string name option is deprecated, use { name }. https://github.com/pmndrs/valtio/pull/400\"\n    );\n    options = { name: options };\n  }\n  const { enabled, name = \"\", ...rest } = options || {};\n  let extension;\n  try {\n    extension = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n  } catch (e) {\n  }\n  if (!extension) {\n    if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n      console.warn(\"[Warning] Please install/enable Redux devtools extension\");\n    }\n    return;\n  }\n  let isTimeTraveling = false;\n  const devtools2 = extension.connect({ name, ...rest });\n  const unsub1 = subscribe(proxyObject, (ops) => {\n    const action = ops.filter(([_, path]) => path[0] !== DEVTOOLS).map(([op, path]) => `${op}:${path.map(String).join(\".\")}`).join(\", \");\n    if (!action) {\n      return;\n    }\n    if (isTimeTraveling) {\n      isTimeTraveling = false;\n    } else {\n      const snapWithoutDevtools = Object.assign({}, snapshot(proxyObject));\n      delete snapWithoutDevtools[DEVTOOLS];\n      devtools2.send(\n        {\n          type: action,\n          updatedAt: (/* @__PURE__ */ new Date()).toLocaleString()\n        },\n        snapWithoutDevtools\n      );\n    }\n  });\n  const unsub2 = devtools2.subscribe((message) => {\n    var _a, _b, _c, _d, _e, _f;\n    if (message.type === \"ACTION\" && message.payload) {\n      try {\n        Object.assign(proxyObject, JSON.parse(message.payload));\n      } catch (e) {\n        console.error(\n          \"please dispatch a serializable value that JSON.parse() and proxy() support\\n\",\n          e\n        );\n      }\n    }\n    if (message.type === \"DISPATCH\" && message.state) {\n      if (((_a = message.payload) == null ? void 0 : _a.type) === \"JUMP_TO_ACTION\" || ((_b = message.payload) == null ? void 0 : _b.type) === \"JUMP_TO_STATE\") {\n        isTimeTraveling = true;\n        const state = JSON.parse(message.state);\n        Object.assign(proxyObject, state);\n      }\n      proxyObject[DEVTOOLS] = message;\n    } else if (message.type === \"DISPATCH\" && ((_c = message.payload) == null ? void 0 : _c.type) === \"COMMIT\") {\n      devtools2.init(snapshot(proxyObject));\n    } else if (message.type === \"DISPATCH\" && ((_d = message.payload) == null ? void 0 : _d.type) === \"IMPORT_STATE\") {\n      const actions = (_e = message.payload.nextLiftedState) == null ? void 0 : _e.actionsById;\n      const computedStates = ((_f = message.payload.nextLiftedState) == null ? void 0 : _f.computedStates) || [];\n      isTimeTraveling = true;\n      computedStates.forEach(({ state }, index) => {\n        const action = actions[index] || \"No action found\";\n        Object.assign(proxyObject, state);\n        if (index === 0) {\n          devtools2.init(snapshot(proxyObject));\n        } else {\n          devtools2.send(action, snapshot(proxyObject));\n        }\n      });\n    }\n  });\n  devtools2.init(snapshot(proxyObject));\n  return () => {\n    unsub1();\n    unsub2 == null ? void 0 : unsub2();\n  };\n}\n\nfunction addComputed_DEPRECATED(proxyObject, computedFns_FAKE, targetObject = proxyObject) {\n  if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n    console.warn(\n      \"addComputed is deprecated. Please consider using `derive`. Falling back to emulation with derive. https://github.com/pmndrs/valtio/pull/201\"\n    );\n  }\n  const derivedFns = {};\n  Object.keys(computedFns_FAKE).forEach((key) => {\n    derivedFns[key] = (get) => computedFns_FAKE[key](get(proxyObject));\n  });\n  return derive(derivedFns, { proxy: targetObject });\n}\n\nfunction proxyWithComputed_DEPRECATED(initialObject, computedFns) {\n  if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n    console.warn(\n      'proxyWithComputed is deprecated. Please follow \"Computed Properties\" guide in docs.'\n    );\n  }\n  Object.keys(computedFns).forEach((key) => {\n    if (Object.getOwnPropertyDescriptor(initialObject, key)) {\n      throw new Error(\"object property already defined\");\n    }\n    const computedFn = computedFns[key];\n    const { get, set } = typeof computedFn === \"function\" ? { get: computedFn } : computedFn;\n    const desc = {};\n    desc.get = () => get(snapshot(proxyObject));\n    if (set) {\n      desc.set = (newValue) => set(proxyObject, newValue);\n    }\n    Object.defineProperty(initialObject, key, desc);\n  });\n  const proxyObject = proxy(initialObject);\n  return proxyObject;\n}\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nlet refSet;\nconst deepClone = (obj) => {\n  if (!refSet) {\n    refSet = unstable_buildProxyFunction()[2];\n  }\n  if (!isObject(obj) || refSet.has(obj)) {\n    return obj;\n  }\n  const baseObject = Array.isArray(obj) ? [] : Object.create(Object.getPrototypeOf(obj));\n  Reflect.ownKeys(obj).forEach((key) => {\n    baseObject[key] = deepClone(obj[key]);\n  });\n  return baseObject;\n};\nfunction proxyWithHistory_DEPRECATED(initialValue, skipSubscribe = false) {\n  if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n    console.warn(\n      'proxyWithHistory is deprecated. Please use the \"valtio-history\" package; refer to the docs'\n    );\n  }\n  const proxyObject = proxy({\n    value: initialValue,\n    history: ref({\n      wip: void 0,\n      // to avoid infinite loop\n      snapshots: [],\n      index: -1\n    }),\n    clone: deepClone,\n    canUndo: () => proxyObject.history.index > 0,\n    undo: () => {\n      if (proxyObject.canUndo()) {\n        proxyObject.value = proxyObject.history.wip = proxyObject.clone(\n          proxyObject.history.snapshots[--proxyObject.history.index]\n        );\n      }\n    },\n    canRedo: () => proxyObject.history.index < proxyObject.history.snapshots.length - 1,\n    redo: () => {\n      if (proxyObject.canRedo()) {\n        proxyObject.value = proxyObject.history.wip = proxyObject.clone(\n          proxyObject.history.snapshots[++proxyObject.history.index]\n        );\n      }\n    },\n    saveHistory: () => {\n      proxyObject.history.snapshots.splice(proxyObject.history.index + 1);\n      proxyObject.history.snapshots.push(snapshot(proxyObject).value);\n      ++proxyObject.history.index;\n    },\n    subscribe: () => subscribe(proxyObject, (ops) => {\n      if (ops.every(\n        (op) => op[1][0] === \"value\" && (op[0] !== \"set\" || op[2] !== proxyObject.history.wip)\n      )) {\n        proxyObject.saveHistory();\n      }\n    })\n  });\n  proxyObject.saveHistory();\n  if (!skipSubscribe) {\n    proxyObject.subscribe();\n  }\n  return proxyObject;\n}\n\nfunction proxySet(initialValues) {\n  const set = proxy({\n    data: Array.from(new Set(initialValues)),\n    has(value) {\n      return this.data.indexOf(value) !== -1;\n    },\n    add(value) {\n      let hasProxy = false;\n      if (typeof value === \"object\" && value !== null) {\n        hasProxy = this.data.indexOf(proxy(value)) !== -1;\n      }\n      if (this.data.indexOf(value) === -1 && !hasProxy) {\n        this.data.push(value);\n      }\n      return this;\n    },\n    delete(value) {\n      const index = this.data.indexOf(value);\n      if (index === -1) {\n        return false;\n      }\n      this.data.splice(index, 1);\n      return true;\n    },\n    clear() {\n      this.data.splice(0);\n    },\n    get size() {\n      return this.data.length;\n    },\n    forEach(cb) {\n      this.data.forEach((value) => {\n        cb(value, value, this);\n      });\n    },\n    get [Symbol.toStringTag]() {\n      return \"Set\";\n    },\n    toJSON() {\n      return new Set(this.data);\n    },\n    [Symbol.iterator]() {\n      return this.data[Symbol.iterator]();\n    },\n    values() {\n      return this.data.values();\n    },\n    keys() {\n      return this.data.values();\n    },\n    entries() {\n      return new Set(this.data).entries();\n    }\n  });\n  Object.defineProperties(set, {\n    data: {\n      enumerable: false\n    },\n    size: {\n      enumerable: false\n    },\n    toJSON: {\n      enumerable: false\n    }\n  });\n  Object.seal(set);\n  return set;\n}\n\nfunction proxyMap(entries) {\n  const map = proxy({\n    data: Array.from(entries || []),\n    has(key) {\n      return this.data.some((p) => p[0] === key);\n    },\n    set(key, value) {\n      const record = this.data.find((p) => p[0] === key);\n      if (record) {\n        record[1] = value;\n      } else {\n        this.data.push([key, value]);\n      }\n      return this;\n    },\n    get(key) {\n      var _a;\n      return (_a = this.data.find((p) => p[0] === key)) == null ? void 0 : _a[1];\n    },\n    delete(key) {\n      const index = this.data.findIndex((p) => p[0] === key);\n      if (index === -1) {\n        return false;\n      }\n      this.data.splice(index, 1);\n      return true;\n    },\n    clear() {\n      this.data.splice(0);\n    },\n    get size() {\n      return this.data.length;\n    },\n    toJSON() {\n      return new Map(this.data);\n    },\n    forEach(cb) {\n      this.data.forEach((p) => {\n        cb(p[1], p[0], this);\n      });\n    },\n    keys() {\n      return this.data.map((p) => p[0]).values();\n    },\n    values() {\n      return this.data.map((p) => p[1]).values();\n    },\n    entries() {\n      return new Map(this.data).entries();\n    },\n    get [Symbol.toStringTag]() {\n      return \"Map\";\n    },\n    [Symbol.iterator]() {\n      return this.entries();\n    }\n  });\n  Object.defineProperties(map, {\n    data: {\n      enumerable: false\n    },\n    size: {\n      enumerable: false\n    },\n    toJSON: {\n      enumerable: false\n    }\n  });\n  Object.seal(map);\n  return map;\n}\n\nexport { addComputed_DEPRECATED as addComputed, devtools, proxyMap, proxySet, proxyWithComputed_DEPRECATED as proxyWithComputed, proxyWithHistory_DEPRECATED as proxyWithHistory, subscribeKey, watch };\n","import {} from '@reown/appkit-common';\nconst SECURE_SITE = \n// eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n(typeof process !== 'undefined' && typeof process.env !== 'undefined'\n    ? process.env['NEXT_PUBLIC_SECURE_SITE_ORIGIN']\n    : undefined) || 'https://secure.walletconnect.org';\nexport const ONRAMP_PROVIDERS = [\n    {\n        label: 'Coinbase',\n        name: 'coinbase',\n        feeRange: '1-2%',\n        url: '',\n        supportedChains: ['eip155']\n    },\n    {\n        label: 'Meld.io',\n        name: 'meld',\n        feeRange: '1-2%',\n        url: 'https://meldcrypto.com',\n        supportedChains: ['eip155', 'solana']\n    }\n];\nexport const MELD_PUBLIC_KEY = 'WXETMuFUQmqqybHuRkSgxv:25B8LJHSfpG6LVjR2ytU5Cwh7Z4Sch2ocoU';\nexport const ConstantsUtil = {\n    FOUR_MINUTES_MS: 240_000,\n    TEN_SEC_MS: 10_000,\n    FIVE_SEC_MS: 5_000,\n    THREE_SEC_MS: 3_000,\n    ONE_SEC_MS: 1_000,\n    SECURE_SITE,\n    SECURE_SITE_DASHBOARD: `${SECURE_SITE}/dashboard`,\n    SECURE_SITE_FAVICON: `${SECURE_SITE}/images/favicon.png`,\n    RESTRICTED_TIMEZONES: [\n        'ASIA/SHANGHAI',\n        'ASIA/URUMQI',\n        'ASIA/CHONGQING',\n        'ASIA/HARBIN',\n        'ASIA/KASHGAR',\n        'ASIA/MACAU',\n        'ASIA/HONG_KONG',\n        'ASIA/MACAO',\n        'ASIA/BEIJING',\n        'ASIA/HARBIN'\n    ],\n    /**\n     * Network name to Coinbase Pay SDK chain name map object\n     * @see supported chain names on Coinbase for Pay SDK: https://github.com/coinbase/cbpay-js/blob/d4bda2c05c4d5917c8db6a05476b603546046394/src/types/onramp.ts\n     */\n    WC_COINBASE_PAY_SDK_CHAINS: [\n        'ethereum',\n        'arbitrum',\n        'polygon',\n        'berachain',\n        'avalanche-c-chain',\n        'optimism',\n        'celo',\n        'base'\n    ],\n    WC_COINBASE_PAY_SDK_FALLBACK_CHAIN: 'ethereum',\n    WC_COINBASE_PAY_SDK_CHAIN_NAME_MAP: {\n        Ethereum: 'ethereum',\n        'Arbitrum One': 'arbitrum',\n        Polygon: 'polygon',\n        Berachain: 'berachain',\n        Avalanche: 'avalanche-c-chain',\n        'OP Mainnet': 'optimism',\n        Celo: 'celo',\n        Base: 'base'\n    },\n    WC_COINBASE_ONRAMP_APP_ID: 'bf18c88d-495a-463b-b249-0b9d3656cf5e',\n    SWAP_SUGGESTED_TOKENS: [\n        'ETH',\n        'UNI',\n        '1INCH',\n        'AAVE',\n        'SOL',\n        'ADA',\n        'AVAX',\n        'DOT',\n        'LINK',\n        'NITRO',\n        'GAIA',\n        'MILK',\n        'TRX',\n        'NEAR',\n        'GNO',\n        'WBTC',\n        'DAI',\n        'WETH',\n        'USDC',\n        'USDT',\n        'ARB',\n        'BAL',\n        'BICO',\n        'CRV',\n        'ENS',\n        'MATIC',\n        'OP'\n    ],\n    SWAP_POPULAR_TOKENS: [\n        'ETH',\n        'UNI',\n        '1INCH',\n        'AAVE',\n        'SOL',\n        'ADA',\n        'AVAX',\n        'DOT',\n        'LINK',\n        'NITRO',\n        'GAIA',\n        'MILK',\n        'TRX',\n        'NEAR',\n        'GNO',\n        'WBTC',\n        'DAI',\n        'WETH',\n        'USDC',\n        'USDT',\n        'ARB',\n        'BAL',\n        'BICO',\n        'CRV',\n        'ENS',\n        'MATIC',\n        'OP',\n        'METAL',\n        'DAI',\n        'CHAMP',\n        'WOLF',\n        'SALE',\n        'BAL',\n        'BUSD',\n        'MUST',\n        'BTCpx',\n        'ROUTE',\n        'HEX',\n        'WELT',\n        'amDAI',\n        'VSQ',\n        'VISION',\n        'AURUM',\n        'pSP',\n        'SNX',\n        'VC',\n        'LINK',\n        'CHP',\n        'amUSDT',\n        'SPHERE',\n        'FOX',\n        'GIDDY',\n        'GFC',\n        'OMEN',\n        'OX_OLD',\n        'DE',\n        'WNT'\n    ],\n    BALANCE_SUPPORTED_CHAINS: ['eip155', 'solana'],\n    SWAP_SUPPORTED_NETWORKS: [\n        // Ethereum'\n        'eip155:1',\n        // Arbitrum One'\n        'eip155:42161',\n        // Optimism'\n        'eip155:10',\n        // ZKSync Era'\n        'eip155:324',\n        // Base'\n        'eip155:8453',\n        // BNB Smart Chain'\n        'eip155:56',\n        // Polygon'\n        'eip155:137',\n        // Gnosis'\n        'eip155:100',\n        // Avalanche'\n        'eip155:43114',\n        // Fantom'\n        'eip155:250',\n        // Klaytn'\n        'eip155:8217',\n        // Aurora\n        'eip155:1313161554'\n    ],\n    NAMES_SUPPORTED_CHAIN_NAMESPACES: ['eip155'],\n    ONRAMP_SUPPORTED_CHAIN_NAMESPACES: ['eip155', 'solana'],\n    ACTIVITY_ENABLED_CHAIN_NAMESPACES: ['eip155'],\n    NATIVE_TOKEN_ADDRESS: {\n        eip155: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',\n        solana: 'So11111111111111111111111111111111111111111',\n        polkadot: '0x',\n        bip122: '0x',\n        cosmos: '0x'\n    },\n    CONVERT_SLIPPAGE_TOLERANCE: 1,\n    CONNECT_LABELS: {\n        MOBILE: 'Open and continue in the wallet app',\n        WEB: 'Open and continue in the wallet app'\n    },\n    SEND_SUPPORTED_NAMESPACES: ['eip155', 'solana'],\n    DEFAULT_REMOTE_FEATURES: {\n        swaps: ['1inch'],\n        onramp: ['coinbase', 'meld'],\n        email: true,\n        socials: [\n            'google',\n            'x',\n            'discord',\n            'farcaster',\n            'github',\n            'apple',\n            'facebook'\n        ],\n        activity: true,\n        reownBranding: true\n    },\n    DEFAULT_REMOTE_FEATURES_DISABLED: {\n        email: false,\n        socials: false,\n        swaps: false,\n        onramp: false,\n        activity: false,\n        reownBranding: false\n    },\n    DEFAULT_FEATURES: {\n        receive: true,\n        send: true,\n        emailShowWallets: true,\n        connectorTypeOrder: [\n            'walletConnect',\n            'recent',\n            'injected',\n            'featured',\n            'custom',\n            'external',\n            'recommended'\n        ],\n        analytics: true,\n        allWallets: true,\n        legalCheckbox: false,\n        smartSessions: false,\n        collapseWallets: false,\n        walletFeaturesOrder: ['onramp', 'swaps', 'receive', 'send'],\n        connectMethodsOrder: undefined,\n        pay: false\n    },\n    DEFAULT_SOCIALS: [\n        'google',\n        'x',\n        'farcaster',\n        'discord',\n        'apple',\n        'github',\n        'facebook'\n    ],\n    DEFAULT_ACCOUNT_TYPES: {\n        bip122: 'payment',\n        eip155: 'smartAccount',\n        polkadot: 'eoa',\n        solana: 'eoa'\n    },\n    ADAPTER_TYPES: {\n        UNIVERSAL: 'universal',\n        SOLANA: 'solana',\n        WAGMI: 'wagmi',\n        ETHERS: 'ethers',\n        ETHERS5: 'ethers5',\n        BITCOIN: 'bitcoin'\n    }\n};\n//# sourceMappingURL=ConstantsUtil.js.map","/* eslint-disable no-console */\nimport { SafeLocalStorage, SafeLocalStorageKeys, getSafeConnectorIdKey } from '@reown/appkit-common';\n// -- Utility -----------------------------------------------------------------\nexport const StorageUtil = {\n    // Cache expiry in milliseconds\n    cacheExpiry: {\n        portfolio: 30000,\n        nativeBalance: 30000,\n        ens: 300000,\n        identity: 300000\n    },\n    isCacheExpired(timestamp, cacheExpiry) {\n        return Date.now() - timestamp > cacheExpiry;\n    },\n    getActiveNetworkProps() {\n        const namespace = StorageUtil.getActiveNamespace();\n        const caipNetworkId = StorageUtil.getActiveCaipNetworkId();\n        const stringChainId = caipNetworkId ? caipNetworkId.split(':')[1] : undefined;\n        // eslint-disable-next-line no-nested-ternary\n        const chainId = stringChainId\n            ? isNaN(Number(stringChainId))\n                ? stringChainId\n                : Number(stringChainId)\n            : undefined;\n        return {\n            namespace,\n            caipNetworkId,\n            chainId\n        };\n    },\n    setWalletConnectDeepLink({ name, href }) {\n        try {\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.DEEPLINK_CHOICE, JSON.stringify({ href, name }));\n        }\n        catch {\n            console.info('Unable to set WalletConnect deep link');\n        }\n    },\n    getWalletConnectDeepLink() {\n        try {\n            const deepLink = SafeLocalStorage.getItem(SafeLocalStorageKeys.DEEPLINK_CHOICE);\n            if (deepLink) {\n                return JSON.parse(deepLink);\n            }\n        }\n        catch {\n            console.info('Unable to get WalletConnect deep link');\n        }\n        return undefined;\n    },\n    deleteWalletConnectDeepLink() {\n        try {\n            SafeLocalStorage.removeItem(SafeLocalStorageKeys.DEEPLINK_CHOICE);\n        }\n        catch {\n            console.info('Unable to delete WalletConnect deep link');\n        }\n    },\n    setActiveNamespace(namespace) {\n        try {\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.ACTIVE_NAMESPACE, namespace);\n        }\n        catch {\n            console.info('Unable to set active namespace');\n        }\n    },\n    setActiveCaipNetworkId(caipNetworkId) {\n        try {\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID, caipNetworkId);\n            StorageUtil.setActiveNamespace(caipNetworkId.split(':')[0]);\n        }\n        catch {\n            console.info('Unable to set active caip network id');\n        }\n    },\n    getActiveCaipNetworkId() {\n        try {\n            return SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID);\n        }\n        catch {\n            console.info('Unable to get active caip network id');\n            return undefined;\n        }\n    },\n    deleteActiveCaipNetworkId() {\n        try {\n            SafeLocalStorage.removeItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID);\n        }\n        catch {\n            console.info('Unable to delete active caip network id');\n        }\n    },\n    deleteConnectedConnectorId(namespace) {\n        try {\n            const key = getSafeConnectorIdKey(namespace);\n            SafeLocalStorage.removeItem(key);\n        }\n        catch {\n            console.info('Unable to delete connected connector id');\n        }\n    },\n    setAppKitRecent(wallet) {\n        try {\n            const recentWallets = StorageUtil.getRecentWallets();\n            const exists = recentWallets.find(w => w.id === wallet.id);\n            if (!exists) {\n                recentWallets.unshift(wallet);\n                if (recentWallets.length > 2) {\n                    recentWallets.pop();\n                }\n                SafeLocalStorage.setItem(SafeLocalStorageKeys.RECENT_WALLETS, JSON.stringify(recentWallets));\n            }\n        }\n        catch {\n            console.info('Unable to set AppKit recent');\n        }\n    },\n    getRecentWallets() {\n        try {\n            const recent = SafeLocalStorage.getItem(SafeLocalStorageKeys.RECENT_WALLETS);\n            return recent ? JSON.parse(recent) : [];\n        }\n        catch {\n            console.info('Unable to get AppKit recent');\n        }\n        return [];\n    },\n    setConnectedConnectorId(namespace, connectorId) {\n        try {\n            const key = getSafeConnectorIdKey(namespace);\n            SafeLocalStorage.setItem(key, connectorId);\n        }\n        catch {\n            console.info('Unable to set Connected Connector Id');\n        }\n    },\n    getActiveNamespace() {\n        try {\n            const activeNamespace = SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_NAMESPACE);\n            return activeNamespace;\n        }\n        catch {\n            console.info('Unable to get active namespace');\n        }\n        return undefined;\n    },\n    getConnectedConnectorId(namespace) {\n        if (!namespace) {\n            return undefined;\n        }\n        try {\n            const key = getSafeConnectorIdKey(namespace);\n            return SafeLocalStorage.getItem(key);\n        }\n        catch (e) {\n            console.info('Unable to get connected connector id in namespace ', namespace);\n        }\n        return undefined;\n    },\n    setConnectedSocialProvider(socialProvider) {\n        try {\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTED_SOCIAL, socialProvider);\n        }\n        catch {\n            console.info('Unable to set connected social provider');\n        }\n    },\n    getConnectedSocialProvider() {\n        try {\n            return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_SOCIAL);\n        }\n        catch {\n            console.info('Unable to get connected social provider');\n        }\n        return undefined;\n    },\n    deleteConnectedSocialProvider() {\n        try {\n            SafeLocalStorage.removeItem(SafeLocalStorageKeys.CONNECTED_SOCIAL);\n        }\n        catch {\n            console.info('Unable to delete connected social provider');\n        }\n    },\n    getConnectedSocialUsername() {\n        try {\n            return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_SOCIAL_USERNAME);\n        }\n        catch {\n            console.info('Unable to get connected social username');\n        }\n        return undefined;\n    },\n    getStoredActiveCaipNetworkId() {\n        const storedCaipNetworkId = SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID);\n        const networkId = storedCaipNetworkId?.split(':')?.[1];\n        return networkId;\n    },\n    setConnectionStatus(status) {\n        try {\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTION_STATUS, status);\n        }\n        catch {\n            console.info('Unable to set connection status');\n        }\n    },\n    getConnectionStatus() {\n        try {\n            return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTION_STATUS);\n        }\n        catch {\n            return undefined;\n        }\n    },\n    getConnectedNamespaces() {\n        try {\n            const namespaces = SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_NAMESPACES);\n            if (!namespaces?.length) {\n                return [];\n            }\n            return namespaces.split(',');\n        }\n        catch {\n            return [];\n        }\n    },\n    setConnectedNamespaces(namespaces) {\n        try {\n            const uniqueNamespaces = Array.from(new Set(namespaces));\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTED_NAMESPACES, uniqueNamespaces.join(','));\n        }\n        catch {\n            console.info('Unable to set namespaces in storage');\n        }\n    },\n    addConnectedNamespace(namespace) {\n        try {\n            const namespaces = StorageUtil.getConnectedNamespaces();\n            if (!namespaces.includes(namespace)) {\n                namespaces.push(namespace);\n                StorageUtil.setConnectedNamespaces(namespaces);\n            }\n        }\n        catch {\n            console.info('Unable to add connected namespace');\n        }\n    },\n    removeConnectedNamespace(namespace) {\n        try {\n            const namespaces = StorageUtil.getConnectedNamespaces();\n            const index = namespaces.indexOf(namespace);\n            if (index > -1) {\n                namespaces.splice(index, 1);\n                StorageUtil.setConnectedNamespaces(namespaces);\n            }\n        }\n        catch {\n            console.info('Unable to remove connected namespace');\n        }\n    },\n    getTelegramSocialProvider() {\n        try {\n            return SafeLocalStorage.getItem(SafeLocalStorageKeys.TELEGRAM_SOCIAL_PROVIDER);\n        }\n        catch {\n            console.info('Unable to get telegram social provider');\n            return null;\n        }\n    },\n    setTelegramSocialProvider(socialProvider) {\n        try {\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.TELEGRAM_SOCIAL_PROVIDER, socialProvider);\n        }\n        catch {\n            console.info('Unable to set telegram social provider');\n        }\n    },\n    removeTelegramSocialProvider() {\n        try {\n            SafeLocalStorage.removeItem(SafeLocalStorageKeys.TELEGRAM_SOCIAL_PROVIDER);\n        }\n        catch {\n            console.info('Unable to remove telegram social provider');\n        }\n    },\n    getBalanceCache() {\n        let cache = {};\n        try {\n            const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.PORTFOLIO_CACHE);\n            cache = result ? JSON.parse(result) : {};\n        }\n        catch {\n            console.info('Unable to get balance cache');\n        }\n        return cache;\n    },\n    removeAddressFromBalanceCache(caipAddress) {\n        try {\n            const cache = StorageUtil.getBalanceCache();\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.PORTFOLIO_CACHE, JSON.stringify({ ...cache, [caipAddress]: undefined }));\n        }\n        catch {\n            console.info('Unable to remove address from balance cache', caipAddress);\n        }\n    },\n    getBalanceCacheForCaipAddress(caipAddress) {\n        try {\n            const cache = StorageUtil.getBalanceCache();\n            const balanceCache = cache[caipAddress];\n            // We want to discard cache if it's older than the cache expiry\n            if (balanceCache &&\n                !this.isCacheExpired(balanceCache.timestamp, this.cacheExpiry.portfolio)) {\n                return balanceCache.balance;\n            }\n            StorageUtil.removeAddressFromBalanceCache(caipAddress);\n        }\n        catch {\n            console.info('Unable to get balance cache for address', caipAddress);\n        }\n        return undefined;\n    },\n    updateBalanceCache(params) {\n        try {\n            const cache = StorageUtil.getBalanceCache();\n            cache[params.caipAddress] = params;\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.PORTFOLIO_CACHE, JSON.stringify(cache));\n        }\n        catch {\n            console.info('Unable to update balance cache', params);\n        }\n    },\n    getNativeBalanceCache() {\n        let cache = {};\n        try {\n            const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.NATIVE_BALANCE_CACHE);\n            cache = result ? JSON.parse(result) : {};\n        }\n        catch {\n            console.info('Unable to get balance cache');\n        }\n        return cache;\n    },\n    removeAddressFromNativeBalanceCache(caipAddress) {\n        try {\n            const cache = StorageUtil.getBalanceCache();\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.NATIVE_BALANCE_CACHE, JSON.stringify({ ...cache, [caipAddress]: undefined }));\n        }\n        catch {\n            console.info('Unable to remove address from balance cache', caipAddress);\n        }\n    },\n    getNativeBalanceCacheForCaipAddress(caipAddress) {\n        try {\n            const cache = StorageUtil.getNativeBalanceCache();\n            const nativeBalanceCache = cache[caipAddress];\n            // We want to discard cache if it's older than the cache expiry\n            if (nativeBalanceCache &&\n                !this.isCacheExpired(nativeBalanceCache.timestamp, this.cacheExpiry.nativeBalance)) {\n                return nativeBalanceCache;\n            }\n            console.info('Discarding cache for address', caipAddress);\n            StorageUtil.removeAddressFromBalanceCache(caipAddress);\n        }\n        catch {\n            console.info('Unable to get balance cache for address', caipAddress);\n        }\n        return undefined;\n    },\n    updateNativeBalanceCache(params) {\n        try {\n            const cache = StorageUtil.getNativeBalanceCache();\n            cache[params.caipAddress] = params;\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.NATIVE_BALANCE_CACHE, JSON.stringify(cache));\n        }\n        catch {\n            console.info('Unable to update balance cache', params);\n        }\n    },\n    getEnsCache() {\n        let cache = {};\n        try {\n            const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.ENS_CACHE);\n            cache = result ? JSON.parse(result) : {};\n        }\n        catch {\n            console.info('Unable to get ens name cache');\n        }\n        return cache;\n    },\n    getEnsFromCacheForAddress(address) {\n        try {\n            const cache = StorageUtil.getEnsCache();\n            const ensCache = cache[address];\n            // We want to discard cache if it's older than the cache expiry\n            if (ensCache && !this.isCacheExpired(ensCache.timestamp, this.cacheExpiry.ens)) {\n                return ensCache.ens;\n            }\n            StorageUtil.removeEnsFromCache(address);\n        }\n        catch {\n            console.info('Unable to get ens name from cache', address);\n        }\n        return undefined;\n    },\n    updateEnsCache(params) {\n        try {\n            const cache = StorageUtil.getEnsCache();\n            cache[params.address] = params;\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.ENS_CACHE, JSON.stringify(cache));\n        }\n        catch {\n            console.info('Unable to update ens name cache', params);\n        }\n    },\n    removeEnsFromCache(address) {\n        try {\n            const cache = StorageUtil.getEnsCache();\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.ENS_CACHE, JSON.stringify({ ...cache, [address]: undefined }));\n        }\n        catch {\n            console.info('Unable to remove ens name from cache', address);\n        }\n    },\n    getIdentityCache() {\n        let cache = {};\n        try {\n            const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.IDENTITY_CACHE);\n            cache = result ? JSON.parse(result) : {};\n        }\n        catch {\n            console.info('Unable to get identity cache');\n        }\n        return cache;\n    },\n    getIdentityFromCacheForAddress(address) {\n        try {\n            const cache = StorageUtil.getIdentityCache();\n            const identityCache = cache[address];\n            // We want to discard cache if it's older than the cache expiry\n            if (identityCache &&\n                !this.isCacheExpired(identityCache.timestamp, this.cacheExpiry.identity)) {\n                return identityCache.identity;\n            }\n            StorageUtil.removeIdentityFromCache(address);\n        }\n        catch {\n            console.info('Unable to get identity from cache', address);\n        }\n        return undefined;\n    },\n    updateIdentityCache(params) {\n        try {\n            const cache = StorageUtil.getIdentityCache();\n            cache[params.address] = {\n                identity: params.identity,\n                timestamp: params.timestamp\n            };\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.IDENTITY_CACHE, JSON.stringify(cache));\n        }\n        catch {\n            console.info('Unable to update identity cache', params);\n        }\n    },\n    removeIdentityFromCache(address) {\n        try {\n            const cache = StorageUtil.getIdentityCache();\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.IDENTITY_CACHE, JSON.stringify({ ...cache, [address]: undefined }));\n        }\n        catch {\n            console.info('Unable to remove identity from cache', address);\n        }\n    },\n    clearAddressCache() {\n        try {\n            SafeLocalStorage.removeItem(SafeLocalStorageKeys.PORTFOLIO_CACHE);\n            SafeLocalStorage.removeItem(SafeLocalStorageKeys.NATIVE_BALANCE_CACHE);\n            SafeLocalStorage.removeItem(SafeLocalStorageKeys.ENS_CACHE);\n            SafeLocalStorage.removeItem(SafeLocalStorageKeys.IDENTITY_CACHE);\n        }\n        catch {\n            console.info('Unable to clear address cache');\n        }\n    },\n    setPreferredAccountTypes(accountTypes) {\n        try {\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.PREFERRED_ACCOUNT_TYPES, JSON.stringify(accountTypes));\n        }\n        catch {\n            console.info('Unable to set preferred account types', accountTypes);\n        }\n    },\n    getPreferredAccountTypes() {\n        try {\n            const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.PREFERRED_ACCOUNT_TYPES);\n            if (!result) {\n                return {};\n            }\n            return JSON.parse(result);\n        }\n        catch {\n            console.info('Unable to get preferred account types');\n        }\n        return {};\n    },\n    setConnections(connections, chainNamespace) {\n        try {\n            const newConnections = {\n                ...StorageUtil.getConnections(),\n                [chainNamespace]: connections\n            };\n            SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTIONS, JSON.stringify(newConnections));\n        }\n        catch (error) {\n            console.error('Unable to sync connections to storage', error);\n        }\n    },\n    getConnections() {\n        try {\n            const connectionsStorage = SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTIONS);\n            if (!connectionsStorage) {\n                return {};\n            }\n            return JSON.parse(connectionsStorage);\n        }\n        catch (error) {\n            console.error('Unable to get connections from storage', error);\n            return {};\n        }\n    }\n};\n//# sourceMappingURL=StorageUtil.js.map","import { ConstantsUtil as CommonConstants } from '@reown/appkit-common';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nimport { StorageUtil } from './StorageUtil.js';\nexport const CoreHelperUtil = {\n    isMobile() {\n        if (this.isClient()) {\n            return Boolean((typeof window?.matchMedia === 'function' &&\n                window?.matchMedia('(pointer:coarse)')?.matches) ||\n                /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent));\n        }\n        return false;\n    },\n    checkCaipNetwork(network, networkName = '') {\n        return network?.caipNetworkId.toLocaleLowerCase().includes(networkName.toLowerCase());\n    },\n    isAndroid() {\n        if (!this.isMobile()) {\n            return false;\n        }\n        const ua = window?.navigator.userAgent.toLowerCase();\n        return CoreHelperUtil.isMobile() && ua.includes('android');\n    },\n    isIos() {\n        if (!this.isMobile()) {\n            return false;\n        }\n        const ua = window?.navigator.userAgent.toLowerCase();\n        return ua.includes('iphone') || ua.includes('ipad');\n    },\n    isSafari() {\n        if (!this.isClient()) {\n            return false;\n        }\n        const ua = window?.navigator.userAgent.toLowerCase();\n        return ua.includes('safari');\n    },\n    isClient() {\n        return typeof window !== 'undefined';\n    },\n    isPairingExpired(expiry) {\n        return expiry ? expiry - Date.now() <= ConstantsUtil.TEN_SEC_MS : true;\n    },\n    isAllowedRetry(lastRetry, differenceMs = ConstantsUtil.ONE_SEC_MS) {\n        return Date.now() - lastRetry >= differenceMs;\n    },\n    copyToClopboard(text) {\n        navigator.clipboard.writeText(text);\n    },\n    isIframe() {\n        try {\n            return window?.self !== window?.top;\n        }\n        catch (e) {\n            return false;\n        }\n    },\n    isSafeApp() {\n        if (CoreHelperUtil.isClient() && window.self !== window.top) {\n            try {\n                const ancestor = window?.location?.ancestorOrigins?.[0];\n                const safeAppUrl = 'https://app.safe.global';\n                if (ancestor) {\n                    const ancestorUrl = new URL(ancestor);\n                    const safeUrl = new URL(safeAppUrl);\n                    return ancestorUrl.hostname === safeUrl.hostname;\n                }\n            }\n            catch {\n                return false;\n            }\n        }\n        return false;\n    },\n    getPairingExpiry() {\n        return Date.now() + ConstantsUtil.FOUR_MINUTES_MS;\n    },\n    getNetworkId(caipAddress) {\n        return caipAddress?.split(':')[1];\n    },\n    getPlainAddress(caipAddress) {\n        return caipAddress?.split(':')[2];\n    },\n    async wait(milliseconds) {\n        return new Promise(resolve => {\n            setTimeout(resolve, milliseconds);\n        });\n    },\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    debounce(func, timeout = 500) {\n        let timer = undefined;\n        return (...args) => {\n            function next() {\n                func(...args);\n            }\n            if (timer) {\n                clearTimeout(timer);\n            }\n            timer = setTimeout(next, timeout);\n        };\n    },\n    isHttpUrl(url) {\n        return url.startsWith('http://') || url.startsWith('https://');\n    },\n    formatNativeUrl(appUrl, wcUri, universalLink = null) {\n        if (CoreHelperUtil.isHttpUrl(appUrl)) {\n            return this.formatUniversalUrl(appUrl, wcUri);\n        }\n        let safeAppUrl = appUrl;\n        let safeUniversalLink = universalLink;\n        if (!safeAppUrl.includes('://')) {\n            safeAppUrl = appUrl.replaceAll('/', '').replaceAll(':', '');\n            safeAppUrl = `${safeAppUrl}://`;\n        }\n        if (!safeAppUrl.endsWith('/')) {\n            safeAppUrl = `${safeAppUrl}/`;\n        }\n        if (safeUniversalLink && !safeUniversalLink?.endsWith('/')) {\n            safeUniversalLink = `${safeUniversalLink}/`;\n        }\n        // Android deeplinks in tg context require the uri to be encoded twice\n        if (this.isTelegram() && this.isAndroid()) {\n            // eslint-disable-next-line no-param-reassign\n            wcUri = encodeURIComponent(wcUri);\n        }\n        const encodedWcUrl = encodeURIComponent(wcUri);\n        return {\n            redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,\n            redirectUniversalLink: safeUniversalLink\n                ? `${safeUniversalLink}wc?uri=${encodedWcUrl}`\n                : undefined,\n            href: safeAppUrl\n        };\n    },\n    formatUniversalUrl(appUrl, wcUri) {\n        if (!CoreHelperUtil.isHttpUrl(appUrl)) {\n            return this.formatNativeUrl(appUrl, wcUri);\n        }\n        let safeAppUrl = appUrl;\n        if (!safeAppUrl.endsWith('/')) {\n            safeAppUrl = `${safeAppUrl}/`;\n        }\n        const encodedWcUrl = encodeURIComponent(wcUri);\n        return {\n            redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,\n            href: safeAppUrl\n        };\n    },\n    getOpenTargetForPlatform(target) {\n        if (target === 'popupWindow') {\n            return target;\n        }\n        // Only '_blank' deeplinks work in Telegram context\n        if (this.isTelegram()) {\n            // But for social login, we need to load the page in the same context\n            if (StorageUtil.getTelegramSocialProvider()) {\n                return '_top';\n            }\n            return '_blank';\n        }\n        return target;\n    },\n    openHref(href, target, features) {\n        window?.open(href, this.getOpenTargetForPlatform(target), features || 'noreferrer noopener');\n    },\n    returnOpenHref(href, target, features) {\n        return window?.open(href, this.getOpenTargetForPlatform(target), features || 'noreferrer noopener');\n    },\n    isTelegram() {\n        return (typeof window !== 'undefined' &&\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            (Boolean(window.TelegramWebviewProxy) ||\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                Boolean(window.Telegram) ||\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                Boolean(window.TelegramWebviewProxyProto)));\n    },\n    isPWA() {\n        if (typeof window === 'undefined') {\n            return false;\n        }\n        const isStandaloneDisplayMode = window.matchMedia?.('(display-mode: standalone)')?.matches;\n        const isIOSStandalone = window?.navigator?.standalone;\n        return Boolean(isStandaloneDisplayMode || isIOSStandalone);\n    },\n    async preloadImage(src) {\n        const imagePromise = new Promise((resolve, reject) => {\n            const image = new Image();\n            image.onload = resolve;\n            image.onerror = reject;\n            image.crossOrigin = 'anonymous';\n            image.src = src;\n        });\n        return Promise.race([imagePromise, CoreHelperUtil.wait(2000)]);\n    },\n    formatBalance(balance, symbol) {\n        let formattedBalance = '0.000';\n        if (typeof balance === 'string') {\n            const number = Number(balance);\n            if (number) {\n                const formattedValue = Math.floor(number * 1000) / 1000;\n                if (formattedValue) {\n                    formattedBalance = formattedValue.toString();\n                }\n            }\n        }\n        return `${formattedBalance}${symbol ? ` ${symbol}` : ''}`;\n    },\n    formatBalance2(balance, symbol) {\n        let formattedBalance = undefined;\n        if (balance === '0') {\n            formattedBalance = '0';\n        }\n        else if (typeof balance === 'string') {\n            const number = Number(balance);\n            if (number) {\n                formattedBalance = number.toString().match(/^-?\\d+(?:\\.\\d{0,3})?/u)?.[0];\n            }\n        }\n        return {\n            value: formattedBalance ?? '0',\n            rest: formattedBalance === '0' ? '000' : '',\n            symbol\n        };\n    },\n    getApiUrl() {\n        return CommonConstants.W3M_API_URL;\n    },\n    getBlockchainApiUrl() {\n        return CommonConstants.BLOCKCHAIN_API_RPC_URL;\n    },\n    getAnalyticsUrl() {\n        return CommonConstants.PULSE_API_URL;\n    },\n    getUUID() {\n        if (crypto?.randomUUID) {\n            return crypto.randomUUID();\n        }\n        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/gu, c => {\n            const r = (Math.random() * 16) | 0;\n            const v = c === 'x' ? r : (r & 0x3) | 0x8;\n            return v.toString(16);\n        });\n    },\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    parseError(error) {\n        if (typeof error === 'string') {\n            return error;\n        }\n        else if (typeof error?.issues?.[0]?.message === 'string') {\n            return error.issues[0].message;\n        }\n        else if (error instanceof Error) {\n            return error.message;\n        }\n        return 'Unknown error';\n    },\n    sortRequestedNetworks(approvedIds, requestedNetworks = []) {\n        const approvedIndexMap = {};\n        if (requestedNetworks && approvedIds) {\n            approvedIds.forEach((id, index) => {\n                approvedIndexMap[id] = index;\n            });\n            requestedNetworks.sort((a, b) => {\n                const indexA = approvedIndexMap[a.id];\n                const indexB = approvedIndexMap[b.id];\n                if (indexA !== undefined && indexB !== undefined) {\n                    return indexA - indexB;\n                }\n                else if (indexA !== undefined) {\n                    return -1;\n                }\n                else if (indexB !== undefined) {\n                    return 1;\n                }\n                return 0;\n            });\n        }\n        return requestedNetworks;\n    },\n    calculateBalance(array) {\n        let sum = 0;\n        for (const item of array) {\n            sum += item.value ?? 0;\n        }\n        return sum;\n    },\n    formatTokenBalance(number) {\n        const roundedNumber = number.toFixed(2);\n        const [dollars, pennies] = roundedNumber.split('.');\n        return { dollars, pennies };\n    },\n    isAddress(address, chain = 'eip155') {\n        switch (chain) {\n            case 'eip155':\n                if (!/^(?:0x)?[0-9a-f]{40}$/iu.test(address)) {\n                    return false;\n                }\n                else if (/^(?:0x)?[0-9a-f]{40}$/iu.test(address) ||\n                    /^(?:0x)?[0-9A-F]{40}$/iu.test(address)) {\n                    return true;\n                }\n                return false;\n            case 'solana':\n                return /[1-9A-HJ-NP-Za-km-z]{32,44}$/iu.test(address);\n            default:\n                return false;\n        }\n    },\n    uniqueBy(arr, key) {\n        const set = new Set();\n        return arr.filter(item => {\n            const keyValue = item[key];\n            if (set.has(keyValue)) {\n                return false;\n            }\n            set.add(keyValue);\n            return true;\n        });\n    },\n    generateSdkVersion(adapters, platform, version) {\n        const hasNoAdapters = adapters.length === 0;\n        const adapterNames = (hasNoAdapters\n            ? ConstantsUtil.ADAPTER_TYPES.UNIVERSAL\n            : adapters.map(adapter => adapter.adapterType).join(','));\n        return `${platform}-${adapterNames}-${version}`;\n    },\n    // eslint-disable-next-line max-params\n    createAccount(namespace, address, type, publicKey, path) {\n        return {\n            namespace,\n            address,\n            type,\n            publicKey,\n            path\n        };\n    },\n    isCaipAddress(address) {\n        if (typeof address !== 'string') {\n            return false;\n        }\n        const sections = address.split(':');\n        const namespace = sections[0];\n        return (sections.filter(Boolean).length === 3 &&\n            namespace in CommonConstants.CHAIN_NAME_MAP);\n    },\n    isMac() {\n        const ua = window?.navigator.userAgent.toLowerCase();\n        return ua.includes('macintosh') && !ua.includes('safari');\n    },\n    formatTelegramSocialLoginUrl(url) {\n        const valueToInject = `--${encodeURIComponent(window?.location.href)}`;\n        const paramToInject = 'state=';\n        const parsedUrl = new URL(url);\n        if (parsedUrl.host === 'auth.magic.link') {\n            const providerParam = 'provider_authorization_url=';\n            const providerUrl = url.substring(url.indexOf(providerParam) + providerParam.length);\n            const resultUrl = this.injectIntoUrl(decodeURIComponent(providerUrl), paramToInject, valueToInject);\n            return url.replace(providerUrl, encodeURIComponent(resultUrl));\n        }\n        return this.injectIntoUrl(url, paramToInject, valueToInject);\n    },\n    injectIntoUrl(url, key, appendString) {\n        // Find the position of \"key\" e.g. \"state=\" in the URL\n        const keyIndex = url.indexOf(key);\n        if (keyIndex === -1) {\n            throw new Error(`${key} parameter not found in the URL: ${url}`);\n        }\n        // Find the position of the next \"&\" after \"key\"\n        const keyEndIndex = url.indexOf('&', keyIndex);\n        const keyLength = key.length;\n        // If there is no \"&\" after key, it means \"key\" is the last parameter\n        // eslint-disable-next-line no-negated-condition\n        const keyParamEnd = keyEndIndex !== -1 ? keyEndIndex : url.length;\n        // Extract the part of the URL before the key value\n        const beforeKeyValue = url.substring(0, keyIndex + keyLength);\n        // Extract the current key value\n        const currentKeyValue = url.substring(keyIndex + keyLength, keyParamEnd);\n        // Extract the part of the URL after the key value\n        const afterKeyValue = url.substring(keyEndIndex);\n        // Append the new string to the key value\n        const newKeyValue = currentKeyValue + appendString;\n        // Reconstruct the URL with the appended key value\n        const newUrl = beforeKeyValue + newKeyValue + afterKeyValue;\n        return newUrl;\n    }\n};\n//# sourceMappingURL=CoreHelperUtil.js.map","async function fetchData(...args) {\n    const response = await fetch(...args);\n    if (!response.ok) {\n        // Create error object and reject if not a 2xx response code\n        const err = new Error(`HTTP status code: ${response.status}`, {\n            cause: response\n        });\n        throw err;\n    }\n    return response;\n}\n// -- Utility --------------------------------------------------------------------\nexport class FetchUtil {\n    constructor({ baseUrl, clientId }) {\n        this.baseUrl = baseUrl;\n        this.clientId = clientId;\n    }\n    async get({ headers, signal, cache, ...args }) {\n        const url = this.createUrl(args);\n        const response = await fetchData(url, { method: 'GET', headers, signal, cache });\n        return response.json();\n    }\n    async getBlob({ headers, signal, ...args }) {\n        const url = this.createUrl(args);\n        const response = await fetchData(url, { method: 'GET', headers, signal });\n        return response.blob();\n    }\n    async post({ body, headers, signal, ...args }) {\n        const url = this.createUrl(args);\n        const response = await fetchData(url, {\n            method: 'POST',\n            headers,\n            body: body ? JSON.stringify(body) : undefined,\n            signal\n        });\n        return response.json();\n    }\n    async put({ body, headers, signal, ...args }) {\n        const url = this.createUrl(args);\n        const response = await fetchData(url, {\n            method: 'PUT',\n            headers,\n            body: body ? JSON.stringify(body) : undefined,\n            signal\n        });\n        return response.json();\n    }\n    async delete({ body, headers, signal, ...args }) {\n        const url = this.createUrl(args);\n        const response = await fetchData(url, {\n            method: 'DELETE',\n            headers,\n            body: body ? JSON.stringify(body) : undefined,\n            signal\n        });\n        return response.json();\n    }\n    createUrl({ path, params }) {\n        const url = new URL(path, this.baseUrl);\n        if (params) {\n            Object.entries(params).forEach(([key, value]) => {\n                if (value) {\n                    url.searchParams.append(key, value);\n                }\n            });\n        }\n        if (this.clientId) {\n            url.searchParams.append('clientId', this.clientId);\n        }\n        return url;\n    }\n}\n//# sourceMappingURL=FetchUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nimport { CoreHelperUtil } from './CoreHelperUtil.js';\nexport const OptionsUtil = {\n    getFeatureValue(key, features) {\n        const optionValue = features?.[key];\n        if (optionValue === undefined) {\n            return ConstantsUtil.DEFAULT_FEATURES[key];\n        }\n        return optionValue;\n    },\n    filterSocialsByPlatform(socials) {\n        if (!socials || !socials.length) {\n            return socials;\n        }\n        if (CoreHelperUtil.isTelegram()) {\n            if (CoreHelperUtil.isIos()) {\n                return socials.filter(s => s !== 'google');\n            }\n            if (CoreHelperUtil.isMac()) {\n                return socials.filter(s => s !== 'x');\n            }\n            if (CoreHelperUtil.isAndroid()) {\n                return socials.filter(s => !['facebook', 'x'].includes(s));\n            }\n        }\n        return socials;\n    }\n};\n//# sourceMappingURL=OptionsUtil.js.map","import { proxy, snapshot } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { OptionsUtil } from '../utils/OptionsUtil.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    features: ConstantsUtil.DEFAULT_FEATURES,\n    projectId: '',\n    sdkType: 'appkit',\n    sdkVersion: 'html-wagmi-undefined',\n    defaultAccountTypes: ConstantsUtil.DEFAULT_ACCOUNT_TYPES,\n    enableNetworkSwitch: true,\n    experimental_preferUniversalLinks: false,\n    remoteFeatures: {}\n});\n// -- Controller ---------------------------------------- //\nexport const OptionsController = {\n    state,\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    setOptions(options) {\n        Object.assign(state, options);\n    },\n    setRemoteFeatures(remoteFeatures) {\n        if (!remoteFeatures) {\n            return;\n        }\n        const newRemoteFeatures = { ...state.remoteFeatures, ...remoteFeatures };\n        state.remoteFeatures = newRemoteFeatures;\n        if (state.remoteFeatures?.socials) {\n            state.remoteFeatures.socials = OptionsUtil.filterSocialsByPlatform(state.remoteFeatures.socials);\n        }\n    },\n    setFeatures(features) {\n        if (!features) {\n            return;\n        }\n        if (!state.features) {\n            state.features = ConstantsUtil.DEFAULT_FEATURES;\n        }\n        const newFeatures = { ...state.features, ...features };\n        state.features = newFeatures;\n    },\n    setProjectId(projectId) {\n        state.projectId = projectId;\n    },\n    setCustomRpcUrls(customRpcUrls) {\n        state.customRpcUrls = customRpcUrls;\n    },\n    setAllWallets(allWallets) {\n        state.allWallets = allWallets;\n    },\n    setIncludeWalletIds(includeWalletIds) {\n        state.includeWalletIds = includeWalletIds;\n    },\n    setExcludeWalletIds(excludeWalletIds) {\n        state.excludeWalletIds = excludeWalletIds;\n    },\n    setFeaturedWalletIds(featuredWalletIds) {\n        state.featuredWalletIds = featuredWalletIds;\n    },\n    setTokens(tokens) {\n        state.tokens = tokens;\n    },\n    setTermsConditionsUrl(termsConditionsUrl) {\n        state.termsConditionsUrl = termsConditionsUrl;\n    },\n    setPrivacyPolicyUrl(privacyPolicyUrl) {\n        state.privacyPolicyUrl = privacyPolicyUrl;\n    },\n    setCustomWallets(customWallets) {\n        state.customWallets = customWallets;\n    },\n    setIsSiweEnabled(isSiweEnabled) {\n        state.isSiweEnabled = isSiweEnabled;\n    },\n    setIsUniversalProvider(isUniversalProvider) {\n        state.isUniversalProvider = isUniversalProvider;\n    },\n    setSdkVersion(sdkVersion) {\n        state.sdkVersion = sdkVersion;\n    },\n    setMetadata(metadata) {\n        state.metadata = metadata;\n    },\n    setDisableAppend(disableAppend) {\n        state.disableAppend = disableAppend;\n    },\n    setEIP6963Enabled(enableEIP6963) {\n        state.enableEIP6963 = enableEIP6963;\n    },\n    setDebug(debug) {\n        state.debug = debug;\n    },\n    setEnableWalletConnect(enableWalletConnect) {\n        state.enableWalletConnect = enableWalletConnect;\n    },\n    setEnableWalletGuide(enableWalletGuide) {\n        state.enableWalletGuide = enableWalletGuide;\n    },\n    setEnableAuthLogger(enableAuthLogger) {\n        state.enableAuthLogger = enableAuthLogger;\n    },\n    setEnableWallets(enableWallets) {\n        state.enableWallets = enableWallets;\n    },\n    setPreferUniversalLinks(preferUniversalLinks) {\n        state.experimental_preferUniversalLinks = preferUniversalLinks;\n    },\n    setHasMultipleAddresses(hasMultipleAddresses) {\n        state.hasMultipleAddresses = hasMultipleAddresses;\n    },\n    setSIWX(siwx) {\n        state.siwx = siwx;\n    },\n    setConnectMethodsOrder(connectMethodsOrder) {\n        state.features = {\n            ...state.features,\n            connectMethodsOrder\n        };\n    },\n    setWalletFeaturesOrder(walletFeaturesOrder) {\n        state.features = {\n            ...state.features,\n            walletFeaturesOrder\n        };\n    },\n    setSocialsOrder(socialsOrder) {\n        state.remoteFeatures = {\n            ...state.remoteFeatures,\n            socials: socialsOrder\n        };\n    },\n    setCollapseWallets(collapseWallets) {\n        state.features = {\n            ...state.features,\n            collapseWallets\n        };\n    },\n    setEnableEmbedded(enableEmbedded) {\n        state.enableEmbedded = enableEmbedded;\n    },\n    setAllowUnsupportedChain(allowUnsupportedChain) {\n        state.allowUnsupportedChain = allowUnsupportedChain;\n    },\n    setManualWCControl(manualWCControl) {\n        state.manualWCControl = manualWCControl;\n    },\n    setEnableNetworkSwitch(enableNetworkSwitch) {\n        state.enableNetworkSwitch = enableNetworkSwitch;\n    },\n    setDefaultAccountTypes(defaultAccountType = {}) {\n        Object.entries(defaultAccountType).forEach(([namespace, accountType]) => {\n            if (accountType) {\n                // @ts-expect-error - Keys are validated by the param type\n                state.defaultAccountTypes[namespace] = accountType;\n            }\n        });\n    },\n    setUniversalProviderConfigOverride(universalProviderConfigOverride) {\n        state.universalProviderConfigOverride = universalProviderConfigOverride;\n    },\n    getUniversalProviderConfigOverride() {\n        return state.universalProviderConfigOverride;\n    },\n    getSnapshot() {\n        return snapshot(state);\n    }\n};\n//# sourceMappingURL=OptionsController.js.map","import { proxy } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { OptionsController } from './OptionsController.js';\n// -- Constants ----------------------------------------- //\nconst DEFAULT_STATE = Object.freeze({\n    enabled: true,\n    events: []\n});\nconst api = new FetchUtil({ baseUrl: CoreHelperUtil.getAnalyticsUrl(), clientId: null });\n// Rate limiting constants\nconst MAX_ERRORS_PER_MINUTE = 5;\nconst ONE_MINUTE_MS = 60 * 1000;\n// -- State --------------------------------------------- //\nconst state = proxy({\n    ...DEFAULT_STATE\n});\n// -- Controller ---------------------------------------- //\nexport const TelemetryController = {\n    state,\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    async sendError(error, category) {\n        if (!state.enabled) {\n            return;\n        }\n        // Check rate limiting using events array\n        const now = Date.now();\n        const recentErrors = state.events.filter(event => {\n            const eventTime = new Date(event.properties.timestamp || '').getTime();\n            return now - eventTime < ONE_MINUTE_MS;\n        });\n        if (recentErrors.length >= MAX_ERRORS_PER_MINUTE) {\n            // Exit silently\n            return;\n        }\n        const errorEvent = {\n            type: 'error',\n            event: category,\n            properties: {\n                errorType: error.name,\n                errorMessage: error.message,\n                stackTrace: error.stack,\n                timestamp: new Date().toISOString()\n            }\n        };\n        state.events.push(errorEvent);\n        try {\n            if (typeof window === 'undefined') {\n                return;\n            }\n            const { projectId, sdkType, sdkVersion } = OptionsController.state;\n            await api.post({\n                path: '/e',\n                params: {\n                    projectId,\n                    st: sdkType,\n                    sv: sdkVersion || 'html-wagmi-4.2.2'\n                },\n                body: {\n                    eventId: CoreHelperUtil.getUUID(),\n                    url: window.location.href,\n                    domain: window.location.hostname,\n                    timestamp: new Date().toISOString(),\n                    props: {\n                        type: 'error',\n                        event: category,\n                        errorType: error.name,\n                        errorMessage: error.message,\n                        stackTrace: error.stack\n                    }\n                }\n            });\n        }\n        catch {\n            // Do nothing\n        }\n    },\n    enable() {\n        state.enabled = true;\n    },\n    disable() {\n        state.enabled = false;\n    },\n    clearEvents() {\n        state.events = [];\n    }\n};\n//# sourceMappingURL=TelemetryController.js.map","import { TelemetryController } from '../controllers/TelemetryController.js';\nexport class AppKitError extends Error {\n    constructor(message, category, originalError) {\n        super(message);\n        this.name = 'AppKitError';\n        this.category = category;\n        this.originalError = originalError;\n        // Ensure `this instanceof AppKitError` is true, important for custom errors.\n        Object.setPrototypeOf(this, AppKitError.prototype);\n        let isStackConstructedFromOriginal = false;\n        if (originalError instanceof Error &&\n            typeof originalError.stack === 'string' &&\n            originalError.stack) {\n            const originalErrorStack = originalError.stack;\n            /**\n             * Most error stacks start with \"ErrorName: ErrorMessage\\n...frames...\"\n             * We want to take the \"...frames...\" part.\n             */\n            const firstNewlineIndex = originalErrorStack.indexOf('\\n');\n            if (firstNewlineIndex > -1) {\n                const originalFrames = originalErrorStack.substring(firstNewlineIndex + 1);\n                this.stack = `${this.name}: ${this.message}\\n${originalFrames}`;\n                isStackConstructedFromOriginal = true;\n            }\n        }\n        if (!isStackConstructedFromOriginal) {\n            /**\n             * If stack was not (or could not be) constructed from originalError,\n             * generate a standard stack trace for this AppKitError instance.\n             * This will point to where `new AppKitError()` was called.\n             */\n            if (Error.captureStackTrace) {\n                Error.captureStackTrace(this, AppKitError);\n            }\n            else if (!this.stack) {\n                /**\n                 * Fallback for environments without Error.captureStackTrace.\n                 * `super(message)` might have set a stack.\n                 * If `this.stack` is still undefined/empty, provide a minimal one.\n                 * Node.js and modern browsers typically set `this.stack` from `super(message)`.\n                 */\n                this.stack = `${this.name}: ${this.message}`;\n            }\n        }\n    }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction errorHandler(err, defaultCategory) {\n    const error = err instanceof AppKitError\n        ? err\n        : new AppKitError(err instanceof Error ? err.message : String(err), defaultCategory, err);\n    TelemetryController.sendError(error, error.category);\n    throw error;\n}\nexport function withErrorBoundary(controller, defaultCategory = 'INTERNAL_SDK_ERROR') {\n    const newController = {};\n    Object.keys(controller).forEach(key => {\n        const original = controller[key];\n        if (typeof original === 'function') {\n            let wrapped = original;\n            if (original.constructor.name === 'AsyncFunction') {\n                wrapped = async (...args) => {\n                    try {\n                        return await original(...args);\n                    }\n                    catch (err) {\n                        return errorHandler(err, defaultCategory);\n                    }\n                };\n            }\n            else {\n                wrapped = (...args) => {\n                    try {\n                        return original(...args);\n                    }\n                    catch (err) {\n                        return errorHandler(err, defaultCategory);\n                    }\n                };\n            }\n            newController[key] = wrapped;\n        }\n        else {\n            newController[key] = original;\n        }\n    });\n    return newController;\n}\n//# sourceMappingURL=withErrorBoundary.js.map","import { ConstantsUtil } from '@reown/appkit-common';\n/*\n * Exclude wallets that do not support relay connections but have custom deeplink mechanisms\n * Excludes:\n * - Phantom\n * - Coinbase\n */\nexport const CUSTOM_DEEPLINK_WALLETS = {\n    PHANTOM: {\n        id: 'a797aa35c0fadbfc1a53e7f675162ed5226968b44a19ee3d24385c64d1d3c393',\n        url: 'https://phantom.app'\n    },\n    SOLFLARE: {\n        id: '1ca0bdd4747578705b1939af023d120677c64fe6ca76add81fda36e350605e79',\n        url: 'https://solflare.com'\n    },\n    COINBASE: {\n        id: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa',\n        url: 'https://go.cb-w.com'\n    }\n};\nexport const MobileWalletUtil = {\n    /**\n     * Handles mobile wallet redirection for wallets that have Universal Links and doesn't support WalletConnect Deep Links.\n     *\n     * @param {string} id - The id of the wallet.\n     * @param {ChainNamespace} namespace - The namespace of the chain.\n     */\n    handleMobileDeeplinkRedirect(id, namespace) {\n        /**\n         * Universal Links requires explicit user interaction to open the wallet app.\n         * Previously we've been calling this with the life-cycle methods in the Solana clients by listening the SELECT_WALLET event of EventController.\n         * But this breaks the UL functionality for some wallets like Phantom.\n         */\n        const href = window.location.href;\n        const encodedHref = encodeURIComponent(href);\n        if (id === CUSTOM_DEEPLINK_WALLETS.PHANTOM.id && !('phantom' in window)) {\n            const protocol = href.startsWith('https') ? 'https' : 'http';\n            const host = href.split('/')[2];\n            const encodedRef = encodeURIComponent(`${protocol}://${host}`);\n            window.location.href = `${CUSTOM_DEEPLINK_WALLETS.PHANTOM.url}/ul/browse/${encodedHref}?ref=${encodedRef}`;\n        }\n        if (id === CUSTOM_DEEPLINK_WALLETS.SOLFLARE.id && !('solflare' in window)) {\n            window.location.href = `${CUSTOM_DEEPLINK_WALLETS.SOLFLARE.url}/ul/v1/browse/${encodedHref}?ref=${encodedHref}`;\n        }\n        if (namespace === ConstantsUtil.CHAIN.SOLANA) {\n            if (id === CUSTOM_DEEPLINK_WALLETS.COINBASE.id && !('coinbaseSolana' in window)) {\n                window.location.href = `${CUSTOM_DEEPLINK_WALLETS.COINBASE.url}/dapp?cb_url=${encodedHref}`;\n            }\n        }\n    }\n};\n//# sourceMappingURL=MobileWallet.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    walletImages: {},\n    networkImages: {},\n    chainImages: {},\n    connectorImages: {},\n    tokenImages: {},\n    currencyImages: {}\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribeNetworkImages(callback) {\n        return sub(state.networkImages, () => callback(state.networkImages));\n    },\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    setWalletImage(key, value) {\n        state.walletImages[key] = value;\n    },\n    setNetworkImage(key, value) {\n        state.networkImages[key] = value;\n    },\n    setChainImage(key, value) {\n        state.chainImages[key] = value;\n    },\n    setConnectorImage(key, value) {\n        state.connectorImages = { ...state.connectorImages, [key]: value };\n    },\n    setTokenImage(key, value) {\n        state.tokenImages[key] = value;\n    },\n    setCurrencyImage(key, value) {\n        state.currencyImages[key] = value;\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const AssetController = withErrorBoundary(controller);\n//# sourceMappingURL=AssetController.js.map","import { proxy } from 'valtio/vanilla';\nimport { ApiController } from '../controllers/ApiController.js';\nimport { AssetController } from '../controllers/AssetController.js';\nconst namespaceImageIds = {\n    // Ethereum\n    eip155: 'ba0ba0cd-17c6-4806-ad93-f9d174f17900',\n    // Solana\n    solana: 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n    // Polkadot\n    polkadot: '',\n    // Bitcoin\n    bip122: '0b4838db-0161-4ffe-022d-532bf03dba00',\n    // Cosmos\n    cosmos: ''\n};\n// -- State --------------------------------------------- //\nconst state = proxy({\n    networkImagePromises: {}\n});\n// -- Util ---------------------------------------- //\nexport const AssetUtil = {\n    async fetchWalletImage(imageId) {\n        if (!imageId) {\n            return undefined;\n        }\n        await ApiController._fetchWalletImage(imageId);\n        return this.getWalletImageById(imageId);\n    },\n    async fetchNetworkImage(imageId) {\n        if (!imageId) {\n            return undefined;\n        }\n        const existingImage = this.getNetworkImageById(imageId);\n        // Check if the image already exists\n        if (existingImage) {\n            return existingImage;\n        }\n        // Check if the promise is already created\n        if (!state.networkImagePromises[imageId]) {\n            state.networkImagePromises[imageId] = ApiController._fetchNetworkImage(imageId);\n        }\n        await state.networkImagePromises[imageId];\n        return this.getNetworkImageById(imageId);\n    },\n    getWalletImageById(imageId) {\n        if (!imageId) {\n            return undefined;\n        }\n        return AssetController.state.walletImages[imageId];\n    },\n    getWalletImage(wallet) {\n        if (wallet?.image_url) {\n            return wallet?.image_url;\n        }\n        if (wallet?.image_id) {\n            return AssetController.state.walletImages[wallet.image_id];\n        }\n        return undefined;\n    },\n    getNetworkImage(network) {\n        if (network?.assets?.imageUrl) {\n            return network?.assets?.imageUrl;\n        }\n        if (network?.assets?.imageId) {\n            return AssetController.state.networkImages[network.assets.imageId];\n        }\n        return undefined;\n    },\n    getNetworkImageById(imageId) {\n        if (!imageId) {\n            return undefined;\n        }\n        return AssetController.state.networkImages[imageId];\n    },\n    getConnectorImage(connector) {\n        if (connector?.imageUrl) {\n            return connector.imageUrl;\n        }\n        if (connector?.imageId) {\n            return AssetController.state.connectorImages[connector.imageId];\n        }\n        return undefined;\n    },\n    getChainImage(chain) {\n        return AssetController.state.networkImages[namespaceImageIds[chain]];\n    }\n};\n//# sourceMappingURL=AssetUtil.js.map","import { proxy } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { OptionsController } from './OptionsController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    message: '',\n    variant: 'info',\n    open: false\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    open(message, variant) {\n        const { debug } = OptionsController.state;\n        const { shortMessage, longMessage } = message;\n        if (debug) {\n            state.message = shortMessage;\n            state.variant = variant;\n            state.open = true;\n        }\n        if (longMessage) {\n            // eslint-disable-next-line no-console\n            console.error(typeof longMessage === 'function' ? longMessage() : longMessage);\n        }\n    },\n    close() {\n        state.open = false;\n        state.message = '';\n        state.variant = 'info';\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const AlertController = withErrorBoundary(controller);\n//# sourceMappingURL=AlertController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { ConstantsUtil, isSafe } from '@reown/appkit-common';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { AccountController } from './AccountController.js';\nimport { AlertController } from './AlertController.js';\nimport { OptionsController } from './OptionsController.js';\n// -- Helpers ------------------------------------------- //\nconst baseUrl = CoreHelperUtil.getAnalyticsUrl();\nconst api = new FetchUtil({ baseUrl, clientId: null });\nconst excluded = ['MODAL_CREATED'];\n// -- State --------------------------------------------- //\nconst state = proxy({\n    timestamp: Date.now(),\n    reportedErrors: {},\n    data: {\n        type: 'track',\n        event: 'MODAL_CREATED'\n    }\n});\n// -- Controller ---------------------------------------- //\nexport const EventsController = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    getSdkProperties() {\n        const { projectId, sdkType, sdkVersion } = OptionsController.state;\n        return {\n            projectId,\n            st: sdkType,\n            sv: sdkVersion || 'html-wagmi-4.2.2'\n        };\n    },\n    async _sendAnalyticsEvent(payload) {\n        try {\n            const address = AccountController.state.address;\n            if (excluded.includes(payload.data.event) || typeof window === 'undefined') {\n                return;\n            }\n            await api.post({\n                path: '/e',\n                params: EventsController.getSdkProperties(),\n                body: {\n                    eventId: CoreHelperUtil.getUUID(),\n                    url: window.location.href,\n                    domain: window.location.hostname,\n                    timestamp: payload.timestamp,\n                    props: { ...payload.data, address }\n                }\n            });\n            state.reportedErrors['FORBIDDEN'] = false;\n        }\n        catch (err) {\n            const isForbiddenError = err instanceof Error &&\n                err.cause instanceof Response &&\n                err.cause.status === ConstantsUtil.HTTP_STATUS_CODES.FORBIDDEN &&\n                !state.reportedErrors['FORBIDDEN'];\n            if (isForbiddenError) {\n                AlertController.open({\n                    shortMessage: 'Invalid App Configuration',\n                    longMessage: `Origin ${isSafe() ? window.origin : 'uknown'} not found on Allowlist - update configuration on cloud.reown.com`\n                }, 'error');\n                state.reportedErrors['FORBIDDEN'] = true;\n            }\n        }\n    },\n    sendEvent(data) {\n        state.timestamp = Date.now();\n        state.data = data;\n        if (OptionsController.state.features?.analytics) {\n            EventsController._sendAnalyticsEvent(state);\n        }\n    }\n};\n//# sourceMappingURL=EventsController.js.map","import { proxy } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { AssetUtil } from '../utils/AssetUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { CUSTOM_DEEPLINK_WALLETS } from '../utils/MobileWallet.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { AssetController } from './AssetController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { OptionsController } from './OptionsController.js';\n// -- Helpers ------------------------------------------- //\nconst baseUrl = CoreHelperUtil.getApiUrl();\nexport const api = new FetchUtil({\n    baseUrl,\n    clientId: null\n});\nconst entries = 40;\nconst recommendedEntries = 4;\nconst imageCountToFetch = 20;\n// -- State --------------------------------------------- //\nconst state = proxy({\n    promises: {},\n    page: 1,\n    count: 0,\n    featured: [],\n    allFeatured: [],\n    recommended: [],\n    allRecommended: [],\n    wallets: [],\n    filteredWallets: [],\n    search: [],\n    isAnalyticsEnabled: false,\n    excludedWallets: [],\n    isFetchingRecommendedWallets: false\n});\n// -- Controller ---------------------------------------- //\nexport const ApiController = {\n    state,\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    _getSdkProperties() {\n        const { projectId, sdkType, sdkVersion } = OptionsController.state;\n        return {\n            projectId,\n            st: sdkType || 'appkit',\n            sv: sdkVersion || 'html-wagmi-4.2.2'\n        };\n    },\n    _filterOutExtensions(wallets) {\n        if (OptionsController.state.isUniversalProvider) {\n            return wallets.filter(w => Boolean(w.mobile_link || w.desktop_link || w.webapp_link));\n        }\n        return wallets;\n    },\n    async _fetchWalletImage(imageId) {\n        const imageUrl = `${api.baseUrl}/getWalletImage/${imageId}`;\n        const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n        AssetController.setWalletImage(imageId, URL.createObjectURL(blob));\n    },\n    async _fetchNetworkImage(imageId) {\n        const imageUrl = `${api.baseUrl}/public/getAssetImage/${imageId}`;\n        const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n        AssetController.setNetworkImage(imageId, URL.createObjectURL(blob));\n    },\n    async _fetchConnectorImage(imageId) {\n        const imageUrl = `${api.baseUrl}/public/getAssetImage/${imageId}`;\n        const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n        AssetController.setConnectorImage(imageId, URL.createObjectURL(blob));\n    },\n    async _fetchCurrencyImage(countryCode) {\n        const imageUrl = `${api.baseUrl}/public/getCurrencyImage/${countryCode}`;\n        const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n        AssetController.setCurrencyImage(countryCode, URL.createObjectURL(blob));\n    },\n    async _fetchTokenImage(symbol) {\n        const imageUrl = `${api.baseUrl}/public/getTokenImage/${symbol}`;\n        const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n        AssetController.setTokenImage(symbol, URL.createObjectURL(blob));\n    },\n    _filterWalletsByPlatform(wallets) {\n        const filteredWallets = CoreHelperUtil.isMobile()\n            ? wallets?.filter(w => {\n                if (w.mobile_link) {\n                    return true;\n                }\n                if (w.id === CUSTOM_DEEPLINK_WALLETS.COINBASE.id) {\n                    return true;\n                }\n                const isSolana = ChainController.state.activeChain === 'solana';\n                return (isSolana &&\n                    (w.id === CUSTOM_DEEPLINK_WALLETS.SOLFLARE.id ||\n                        w.id === CUSTOM_DEEPLINK_WALLETS.PHANTOM.id));\n            })\n            : wallets;\n        return filteredWallets;\n    },\n    async fetchProjectConfig() {\n        const response = await api.get({\n            path: '/appkit/v1/config',\n            params: ApiController._getSdkProperties()\n        });\n        return response.features;\n    },\n    async fetchAllowedOrigins() {\n        try {\n            const { allowedOrigins } = await api.get({\n                path: '/projects/v1/origins',\n                params: ApiController._getSdkProperties()\n            });\n            return allowedOrigins;\n        }\n        catch (error) {\n            return [];\n        }\n    },\n    async fetchNetworkImages() {\n        const requestedCaipNetworks = ChainController.getAllRequestedCaipNetworks();\n        const ids = requestedCaipNetworks\n            ?.map(({ assets }) => assets?.imageId)\n            .filter(Boolean)\n            .filter(imageId => !AssetUtil.getNetworkImageById(imageId));\n        if (ids) {\n            await Promise.allSettled(ids.map(id => ApiController._fetchNetworkImage(id)));\n        }\n    },\n    async fetchConnectorImages() {\n        const { connectors } = ConnectorController.state;\n        const ids = connectors.map(({ imageId }) => imageId).filter(Boolean);\n        await Promise.allSettled(ids.map(id => ApiController._fetchConnectorImage(id)));\n    },\n    async fetchCurrencyImages(currencies = []) {\n        await Promise.allSettled(currencies.map(currency => ApiController._fetchCurrencyImage(currency)));\n    },\n    async fetchTokenImages(tokens = []) {\n        await Promise.allSettled(tokens.map(token => ApiController._fetchTokenImage(token)));\n    },\n    async fetchWallets(params) {\n        const exclude = params.exclude ?? [];\n        const sdkProperties = ApiController._getSdkProperties();\n        if (sdkProperties.sv.startsWith('html-core-')) {\n            exclude.push(...Object.values(CUSTOM_DEEPLINK_WALLETS).map(w => w.id));\n        }\n        const wallets = await api.get({\n            path: '/getWallets',\n            params: {\n                ...ApiController._getSdkProperties(),\n                ...params,\n                page: String(params.page),\n                entries: String(params.entries),\n                include: params.include?.join(','),\n                exclude: exclude.join(',')\n            }\n        });\n        const filteredWallets = ApiController._filterWalletsByPlatform(wallets?.data);\n        return {\n            data: filteredWallets || [],\n            // Keep original count for display on main page\n            count: wallets?.count\n        };\n    },\n    async fetchFeaturedWallets() {\n        const { featuredWalletIds } = OptionsController.state;\n        if (featuredWalletIds?.length) {\n            const params = {\n                ...ApiController._getSdkProperties(),\n                page: 1,\n                entries: featuredWalletIds?.length ?? recommendedEntries,\n                include: featuredWalletIds\n            };\n            const { data } = await ApiController.fetchWallets(params);\n            const sortedData = [...data].sort((a, b) => featuredWalletIds.indexOf(a.id) - featuredWalletIds.indexOf(b.id));\n            const images = sortedData.map(d => d.image_id).filter(Boolean);\n            await Promise.allSettled(images.map(id => ApiController._fetchWalletImage(id)));\n            state.featured = sortedData;\n            state.allFeatured = sortedData;\n        }\n    },\n    async fetchRecommendedWallets() {\n        try {\n            state.isFetchingRecommendedWallets = true;\n            const { includeWalletIds, excludeWalletIds, featuredWalletIds } = OptionsController.state;\n            const exclude = [...(excludeWalletIds ?? []), ...(featuredWalletIds ?? [])].filter(Boolean);\n            const chains = ChainController.getRequestedCaipNetworkIds().join(',');\n            const params = {\n                page: 1,\n                entries: recommendedEntries,\n                include: includeWalletIds,\n                exclude,\n                chains\n            };\n            const { data, count } = await ApiController.fetchWallets(params);\n            const recent = StorageUtil.getRecentWallets();\n            const recommendedImages = data.map(d => d.image_id).filter(Boolean);\n            const recentImages = recent.map(r => r.image_id).filter(Boolean);\n            await Promise.allSettled([...recommendedImages, ...recentImages].map(id => ApiController._fetchWalletImage(id)));\n            state.recommended = data;\n            state.allRecommended = data;\n            state.count = count ?? 0;\n        }\n        catch {\n            // Catch silently\n        }\n        finally {\n            state.isFetchingRecommendedWallets = false;\n        }\n    },\n    async fetchWalletsByPage({ page }) {\n        const { includeWalletIds, excludeWalletIds, featuredWalletIds } = OptionsController.state;\n        const chains = ChainController.getRequestedCaipNetworkIds().join(',');\n        const exclude = [\n            ...state.recommended.map(({ id }) => id),\n            ...(excludeWalletIds ?? []),\n            ...(featuredWalletIds ?? [])\n        ].filter(Boolean);\n        const params = {\n            page,\n            entries,\n            include: includeWalletIds,\n            exclude,\n            chains\n        };\n        const { data, count } = await ApiController.fetchWallets(params);\n        const images = data\n            .slice(0, imageCountToFetch)\n            .map(w => w.image_id)\n            .filter(Boolean);\n        await Promise.allSettled(images.map(id => ApiController._fetchWalletImage(id)));\n        state.wallets = CoreHelperUtil.uniqueBy([...state.wallets, ...ApiController._filterOutExtensions(data)], 'id').filter(w => w.chains?.some(chain => chains.includes(chain)));\n        state.count = count > state.count ? count : state.count;\n        state.page = page;\n    },\n    async initializeExcludedWallets({ ids }) {\n        const params = {\n            page: 1,\n            entries: ids.length,\n            include: ids\n        };\n        const { data } = await ApiController.fetchWallets(params);\n        if (data) {\n            data.forEach(wallet => {\n                state.excludedWallets.push({ rdns: wallet.rdns, name: wallet.name });\n            });\n        }\n    },\n    async searchWallet({ search, badge }) {\n        const { includeWalletIds, excludeWalletIds } = OptionsController.state;\n        const chains = ChainController.getRequestedCaipNetworkIds().join(',');\n        state.search = [];\n        const params = {\n            page: 1,\n            entries: 100,\n            search: search?.trim(),\n            badge_type: badge,\n            include: includeWalletIds,\n            exclude: excludeWalletIds,\n            chains\n        };\n        const { data } = await ApiController.fetchWallets(params);\n        EventsController.sendEvent({\n            type: 'track',\n            event: 'SEARCH_WALLET',\n            properties: { badge: badge ?? '', search: search ?? '' }\n        });\n        const images = data.map(w => w.image_id).filter(Boolean);\n        await Promise.allSettled([\n            ...images.map(id => ApiController._fetchWalletImage(id)),\n            CoreHelperUtil.wait(300)\n        ]);\n        state.search = ApiController._filterOutExtensions(data);\n    },\n    initPromise(key, fetchFn) {\n        const existingPromise = state.promises[key];\n        if (existingPromise) {\n            return existingPromise;\n        }\n        return (state.promises[key] = fetchFn());\n    },\n    prefetch({ fetchConnectorImages = true, fetchFeaturedWallets = true, fetchRecommendedWallets = true, fetchNetworkImages = true } = {}) {\n        const promises = [\n            fetchConnectorImages &&\n                ApiController.initPromise('connectorImages', ApiController.fetchConnectorImages),\n            fetchFeaturedWallets &&\n                ApiController.initPromise('featuredWallets', ApiController.fetchFeaturedWallets),\n            fetchRecommendedWallets &&\n                ApiController.initPromise('recommendedWallets', ApiController.fetchRecommendedWallets),\n            fetchNetworkImages &&\n                ApiController.initPromise('networkImages', ApiController.fetchNetworkImages)\n        ].filter(Boolean);\n        return Promise.allSettled(promises);\n    },\n    prefetchAnalyticsConfig() {\n        if (OptionsController.state.features?.analytics) {\n            ApiController.fetchAnalyticsConfig();\n        }\n    },\n    async fetchAnalyticsConfig() {\n        try {\n            const { isAnalyticsEnabled } = await api.get({\n                path: '/getAnalyticsConfig',\n                params: ApiController._getSdkProperties()\n            });\n            OptionsController.setFeatures({ analytics: isAnalyticsEnabled });\n        }\n        catch (error) {\n            OptionsController.setFeatures({ analytics: false });\n        }\n    },\n    filterByNamespaces(namespaces) {\n        if (!namespaces?.length) {\n            state.featured = state.allFeatured;\n            state.recommended = state.allRecommended;\n            return;\n        }\n        const caipNetworkIds = ChainController.getRequestedCaipNetworkIds().join(',');\n        state.featured = state.allFeatured.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n        state.recommended = state.allRecommended.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n        state.filteredWallets = state.wallets.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n    },\n    clearFilterByNamespaces() {\n        state.filteredWallets = [];\n    },\n    setFilterByNamespace(namespace) {\n        if (!namespace) {\n            state.featured = state.allFeatured;\n            state.recommended = state.allRecommended;\n            return;\n        }\n        const caipNetworkIds = ChainController.getRequestedCaipNetworkIds().join(',');\n        state.featured = state.allFeatured.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n        state.recommended = state.allRecommended.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n        state.filteredWallets = state.wallets.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n    }\n};\n//# sourceMappingURL=ApiController.js.map","import { proxy, snapshot } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { ModalController } from './ModalController.js';\nimport { OptionsController } from './OptionsController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    view: 'Connect',\n    history: ['Connect'],\n    transactionStack: []\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    pushTransactionStack(action) {\n        state.transactionStack.push(action);\n    },\n    popTransactionStack(status) {\n        const action = state.transactionStack.pop();\n        if (!action) {\n            return;\n        }\n        const { onSuccess, onError, onCancel } = action;\n        switch (status) {\n            case 'success':\n                onSuccess?.();\n                break;\n            case 'error':\n                onError?.();\n                RouterController.goBack();\n                break;\n            case 'cancel':\n                onCancel?.();\n                RouterController.goBack();\n                break;\n            default:\n        }\n    },\n    push(view, data) {\n        if (view !== state.view) {\n            state.view = view;\n            state.history.push(view);\n            state.data = data;\n        }\n    },\n    reset(view, data) {\n        state.view = view;\n        state.history = [view];\n        state.data = data;\n    },\n    replace(view, data) {\n        const lastView = state.history.at(-1);\n        const isSameView = lastView === view;\n        if (!isSameView) {\n            state.view = view;\n            state.history[state.history.length - 1] = view;\n            state.data = data;\n        }\n    },\n    goBack() {\n        const isConnected = ChainController.state.activeCaipAddress;\n        const isFarcasterView = RouterController.state.view === 'ConnectingFarcaster';\n        const shouldReload = !isConnected && isFarcasterView;\n        if (state.history.length > 1) {\n            state.history.pop();\n            const [last] = state.history.slice(-1);\n            if (last) {\n                const isConnectView = last === 'Connect';\n                if (isConnected && isConnectView) {\n                    state.view = 'Account';\n                }\n                else {\n                    state.view = last;\n                }\n            }\n        }\n        else {\n            ModalController.close();\n        }\n        if (state.data?.wallet) {\n            state.data.wallet = undefined;\n        }\n        // Reloading the iframe contentwindow and doing the view animation in the modal causes a small freeze in the transition. Doing these separately fixes that.\n        setTimeout(() => {\n            if (shouldReload) {\n                AccountController.setFarcasterUrl(undefined, ChainController.state.activeChain);\n                const authConnector = ConnectorController.getAuthConnector();\n                authConnector?.provider?.reload();\n                const optionsState = snapshot(OptionsController.state);\n                authConnector?.provider?.syncDappData?.({\n                    metadata: optionsState.metadata,\n                    sdkVersion: optionsState.sdkVersion,\n                    projectId: optionsState.projectId,\n                    sdkType: optionsState.sdkType\n                });\n            }\n        }, 100);\n    },\n    goBackToIndex(historyIndex) {\n        if (state.history.length > 1) {\n            state.history = state.history.slice(0, historyIndex + 1);\n            const [last] = state.history.slice(-1);\n            if (last) {\n                state.view = last;\n            }\n        }\n    },\n    goBackOrCloseModal() {\n        if (RouterController.state.history.length > 1) {\n            RouterController.goBack();\n        }\n        else {\n            ModalController.close();\n        }\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const RouterController = withErrorBoundary(controller);\n//# sourceMappingURL=RouterController.js.map","import { proxy, snapshot, subscribe as sub } from 'valtio/vanilla';\nimport { getW3mThemeVariables } from '@reown/appkit-common';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { ConnectorController } from './ConnectorController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    themeMode: 'dark',\n    themeVariables: {},\n    w3mThemeVariables: undefined\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    setThemeMode(themeMode) {\n        state.themeMode = themeMode;\n        try {\n            const authConnector = ConnectorController.getAuthConnector();\n            if (authConnector) {\n                const themeVariables = controller.getSnapshot().themeVariables;\n                authConnector.provider.syncTheme({\n                    themeMode,\n                    themeVariables,\n                    w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n                });\n            }\n        }\n        catch {\n            // eslint-disable-next-line no-console\n            console.info('Unable to sync theme to auth connector');\n        }\n    },\n    setThemeVariables(themeVariables) {\n        state.themeVariables = { ...state.themeVariables, ...themeVariables };\n        try {\n            const authConnector = ConnectorController.getAuthConnector();\n            if (authConnector) {\n                const themeVariablesSnapshot = controller.getSnapshot().themeVariables;\n                authConnector.provider.syncTheme({\n                    themeVariables: themeVariablesSnapshot,\n                    w3mThemeVariables: getW3mThemeVariables(state.themeVariables, state.themeMode)\n                });\n            }\n        }\n        catch {\n            // eslint-disable-next-line no-console\n            console.info('Unable to sync theme to auth connector');\n        }\n    },\n    getSnapshot() {\n        return snapshot(state);\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const ThemeController = withErrorBoundary(controller);\n//# sourceMappingURL=ThemeController.js.map","import { proxy, ref, snapshot, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil, getW3mThemeVariables } from '@reown/appkit-common';\nimport { MobileWalletUtil } from '../utils/MobileWallet.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { ApiController } from './ApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { RouterController } from './RouterController.js';\nimport { ThemeController } from './ThemeController.js';\nconst defaultActiveConnectors = {\n    eip155: undefined,\n    solana: undefined,\n    polkadot: undefined,\n    bip122: undefined,\n    cosmos: undefined\n};\n// -- State --------------------------------------------- //\nconst state = proxy({\n    allConnectors: [],\n    connectors: [],\n    activeConnector: undefined,\n    filterByNamespace: undefined,\n    activeConnectorIds: { ...defaultActiveConnectors },\n    filterByNamespaceMap: {\n        eip155: true,\n        solana: true,\n        polkadot: true,\n        bip122: true,\n        cosmos: true\n    }\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => {\n            callback(state);\n        });\n    },\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    initialize(namespaces) {\n        namespaces.forEach(namespace => {\n            const connectorId = StorageUtil.getConnectedConnectorId(namespace);\n            if (connectorId) {\n                ConnectorController.setConnectorId(connectorId, namespace);\n            }\n        });\n    },\n    setActiveConnector(connector) {\n        if (connector) {\n            state.activeConnector = ref(connector);\n        }\n    },\n    setConnectors(connectors) {\n        const newConnectors = connectors.filter(newConnector => !state.allConnectors.some(existingConnector => existingConnector.id === newConnector.id &&\n            ConnectorController.getConnectorName(existingConnector.name) ===\n                ConnectorController.getConnectorName(newConnector.name) &&\n            existingConnector.chain === newConnector.chain));\n        /**\n         * We are reassigning the state of the proxy to a new array of new objects, ConnectorController can cause issues. So it is better to use ref in ConnectorController case.\n         * Check more about proxy on https://valtio.dev/docs/api/basic/proxy#Gotchas\n         * Check more about ref on https://valtio.dev/docs/api/basic/ref\n         */\n        newConnectors.forEach(connector => {\n            if (connector.type !== 'MULTI_CHAIN') {\n                state.allConnectors.push(ref(connector));\n            }\n        });\n        const enabledNamespaces = ConnectorController.getEnabledNamespaces();\n        const connectorsFilteredByNamespaces = ConnectorController.getEnabledConnectors(enabledNamespaces);\n        state.connectors = ConnectorController.mergeMultiChainConnectors(connectorsFilteredByNamespaces);\n    },\n    filterByNamespaces(enabledNamespaces) {\n        Object.keys(state.filterByNamespaceMap).forEach(namespace => {\n            state.filterByNamespaceMap[namespace] = false;\n        });\n        enabledNamespaces.forEach(namespace => {\n            state.filterByNamespaceMap[namespace] = true;\n        });\n        ConnectorController.updateConnectorsForEnabledNamespaces();\n    },\n    filterByNamespace(namespace, enabled) {\n        state.filterByNamespaceMap[namespace] = enabled;\n        ConnectorController.updateConnectorsForEnabledNamespaces();\n    },\n    updateConnectorsForEnabledNamespaces() {\n        const enabledNamespaces = ConnectorController.getEnabledNamespaces();\n        const enabledConnectors = ConnectorController.getEnabledConnectors(enabledNamespaces);\n        const areAllNamespacesEnabled = ConnectorController.areAllNamespacesEnabled();\n        state.connectors = ConnectorController.mergeMultiChainConnectors(enabledConnectors);\n        if (areAllNamespacesEnabled) {\n            ApiController.clearFilterByNamespaces();\n        }\n        else {\n            ApiController.filterByNamespaces(enabledNamespaces);\n        }\n    },\n    getEnabledNamespaces() {\n        return Object.entries(state.filterByNamespaceMap)\n            .filter(([_, enabled]) => enabled)\n            .map(([namespace]) => namespace);\n    },\n    getEnabledConnectors(enabledNamespaces) {\n        return state.allConnectors.filter(connector => enabledNamespaces.includes(connector.chain));\n    },\n    areAllNamespacesEnabled() {\n        return Object.values(state.filterByNamespaceMap).every(enabled => enabled);\n    },\n    mergeMultiChainConnectors(connectors) {\n        const connectorsByNameMap = ConnectorController.generateConnectorMapByName(connectors);\n        const mergedConnectors = [];\n        connectorsByNameMap.forEach(keyConnectors => {\n            const firstItem = keyConnectors[0];\n            const isAuthConnector = firstItem?.id === ConstantsUtil.CONNECTOR_ID.AUTH;\n            if (keyConnectors.length > 1 && firstItem) {\n                mergedConnectors.push({\n                    name: firstItem.name,\n                    imageUrl: firstItem.imageUrl,\n                    imageId: firstItem.imageId,\n                    connectors: [...keyConnectors],\n                    type: isAuthConnector ? 'AUTH' : 'MULTI_CHAIN',\n                    // These values are just placeholders, we don't use them in multi-chain connector select screen\n                    chain: 'eip155',\n                    id: firstItem?.id || ''\n                });\n            }\n            else if (firstItem) {\n                mergedConnectors.push(firstItem);\n            }\n        });\n        return mergedConnectors;\n    },\n    generateConnectorMapByName(connectors) {\n        const connectorsByNameMap = new Map();\n        connectors.forEach(connector => {\n            const { name } = connector;\n            const connectorName = ConnectorController.getConnectorName(name);\n            if (!connectorName) {\n                return;\n            }\n            const connectorsByName = connectorsByNameMap.get(connectorName) || [];\n            const haveSameConnector = connectorsByName.find(c => c.chain === connector.chain);\n            if (!haveSameConnector) {\n                connectorsByName.push(connector);\n            }\n            connectorsByNameMap.set(connectorName, connectorsByName);\n        });\n        return connectorsByNameMap;\n    },\n    getConnectorName(name) {\n        if (!name) {\n            return name;\n        }\n        const nameOverrideMap = {\n            'Trust Wallet': 'Trust'\n        };\n        return nameOverrideMap[name] || name;\n    },\n    getUniqueConnectorsByName(connectors) {\n        const uniqueConnectors = [];\n        connectors.forEach(c => {\n            if (!uniqueConnectors.find(uc => uc.chain === c.chain)) {\n                uniqueConnectors.push(c);\n            }\n        });\n        return uniqueConnectors;\n    },\n    addConnector(connector) {\n        if (connector.id === ConstantsUtil.CONNECTOR_ID.AUTH) {\n            const authConnector = connector;\n            const optionsState = snapshot(OptionsController.state);\n            const themeMode = ThemeController.getSnapshot().themeMode;\n            const themeVariables = ThemeController.getSnapshot().themeVariables;\n            authConnector?.provider?.syncDappData?.({\n                metadata: optionsState.metadata,\n                sdkVersion: optionsState.sdkVersion,\n                projectId: optionsState.projectId,\n                sdkType: optionsState.sdkType\n            });\n            authConnector?.provider?.syncTheme({\n                themeMode,\n                themeVariables,\n                w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n            });\n            ConnectorController.setConnectors([connector]);\n        }\n        else {\n            ConnectorController.setConnectors([connector]);\n        }\n    },\n    getAuthConnector(chainNamespace) {\n        const activeNamespace = chainNamespace || ChainController.state.activeChain;\n        const authConnector = state.connectors.find(c => c.id === ConstantsUtil.CONNECTOR_ID.AUTH);\n        if (!authConnector) {\n            return undefined;\n        }\n        if (authConnector?.connectors?.length) {\n            const connector = authConnector.connectors.find(c => c.chain === activeNamespace);\n            return connector;\n        }\n        return authConnector;\n    },\n    getAnnouncedConnectorRdns() {\n        return state.connectors.filter(c => c.type === 'ANNOUNCED').map(c => c.info?.rdns);\n    },\n    getConnectorById(id) {\n        return state.allConnectors.find(c => c.id === id);\n    },\n    getConnector(id, rdns) {\n        const connectorsByNamespace = state.allConnectors.filter(c => c.chain === ChainController.state.activeChain);\n        return connectorsByNamespace.find(c => c.explorerId === id || c.info?.rdns === rdns);\n    },\n    syncIfAuthConnector(connector) {\n        if (connector.id !== 'ID_AUTH') {\n            return;\n        }\n        const authConnector = connector;\n        const optionsState = snapshot(OptionsController.state);\n        const themeMode = ThemeController.getSnapshot().themeMode;\n        const themeVariables = ThemeController.getSnapshot().themeVariables;\n        authConnector?.provider?.syncDappData?.({\n            metadata: optionsState.metadata,\n            sdkVersion: optionsState.sdkVersion,\n            sdkType: optionsState.sdkType,\n            projectId: optionsState.projectId\n        });\n        authConnector.provider.syncTheme({\n            themeMode,\n            themeVariables,\n            w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n        });\n    },\n    /**\n     * Returns the connectors filtered by namespace.\n     * @param namespace - The namespace to filter the connectors by.\n     * @returns ConnectorWithProviders[].\n     */\n    getConnectorsByNamespace(namespace) {\n        const namespaceConnectors = state.allConnectors.filter(connector => connector.chain === namespace);\n        return ConnectorController.mergeMultiChainConnectors(namespaceConnectors);\n    },\n    selectWalletConnector(wallet) {\n        const connector = ConnectorController.getConnector(wallet.id, wallet.rdns);\n        const namespace = ChainController.state.activeChain;\n        MobileWalletUtil.handleMobileDeeplinkRedirect(connector?.explorerId || wallet.id, namespace);\n        if (connector) {\n            RouterController.push('ConnectingExternal', { connector });\n        }\n        else {\n            RouterController.push('ConnectingWalletConnect', { wallet });\n        }\n    },\n    /**\n     * Returns the connectors. If a namespace is provided, the connectors are filtered by namespace.\n     * @param namespace - The namespace to filter the connectors by. If not provided, all connectors are returned.\n     * @returns ConnectorWithProviders[].\n     */\n    getConnectors(namespace) {\n        if (namespace) {\n            return ConnectorController.getConnectorsByNamespace(namespace);\n        }\n        return ConnectorController.mergeMultiChainConnectors(state.allConnectors);\n    },\n    /**\n     * Sets the filter by namespace and updates the connectors.\n     * @param namespace - The namespace to filter the connectors by.\n     */\n    setFilterByNamespace(namespace) {\n        state.filterByNamespace = namespace;\n        state.connectors = ConnectorController.getConnectors(namespace);\n        ApiController.setFilterByNamespace(namespace);\n    },\n    setConnectorId(connectorId, namespace) {\n        if (connectorId) {\n            state.activeConnectorIds = {\n                ...state.activeConnectorIds,\n                [namespace]: connectorId\n            };\n            StorageUtil.setConnectedConnectorId(namespace, connectorId);\n        }\n    },\n    removeConnectorId(namespace) {\n        state.activeConnectorIds = {\n            ...state.activeConnectorIds,\n            [namespace]: undefined\n        };\n        StorageUtil.deleteConnectedConnectorId(namespace);\n    },\n    getConnectorId(namespace) {\n        if (!namespace) {\n            return undefined;\n        }\n        return state.activeConnectorIds[namespace];\n    },\n    isConnected(namespace) {\n        if (!namespace) {\n            return Object.values(state.activeConnectorIds).some(id => Boolean(id));\n        }\n        return Boolean(state.activeConnectorIds[namespace]);\n    },\n    resetConnectorIds() {\n        state.activeConnectorIds = { ...defaultActiveConnectors };\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const ConnectorController = withErrorBoundary(controller);\n//# sourceMappingURL=ConnectorController.js.map","const DEFAULT_SDK_URL = 'https://secure.walletconnect.org/sdk';\nexport const SECURE_SITE_SDK = (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n    ? process.env['NEXT_PUBLIC_SECURE_SITE_SDK_URL']\n    : undefined) || DEFAULT_SDK_URL;\nexport const DEFAULT_LOG_LEVEL = (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n    ? process.env['NEXT_PUBLIC_DEFAULT_LOG_LEVEL']\n    : undefined) || 'error';\nexport const SECURE_SITE_SDK_VERSION = (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n    ? process.env['NEXT_PUBLIC_SECURE_SITE_SDK_VERSION']\n    : undefined) || '4';\nexport const W3mFrameConstants = {\n    APP_EVENT_KEY: '@w3m-app/',\n    FRAME_EVENT_KEY: '@w3m-frame/',\n    RPC_METHOD_KEY: 'RPC_',\n    STORAGE_KEY: '@appkit-wallet/',\n    SESSION_TOKEN_KEY: 'SESSION_TOKEN_KEY',\n    EMAIL_LOGIN_USED_KEY: 'EMAIL_LOGIN_USED_KEY',\n    LAST_USED_CHAIN_KEY: 'LAST_USED_CHAIN_KEY',\n    LAST_EMAIL_LOGIN_TIME: 'LAST_EMAIL_LOGIN_TIME',\n    EMAIL: 'EMAIL',\n    PREFERRED_ACCOUNT_TYPE: 'PREFERRED_ACCOUNT_TYPE',\n    SMART_ACCOUNT_ENABLED: 'SMART_ACCOUNT_ENABLED',\n    SMART_ACCOUNT_ENABLED_NETWORKS: 'SMART_ACCOUNT_ENABLED_NETWORKS',\n    SOCIAL_USERNAME: 'SOCIAL_USERNAME',\n    APP_SWITCH_NETWORK: '@w3m-app/SWITCH_NETWORK',\n    APP_CONNECT_EMAIL: '@w3m-app/CONNECT_EMAIL',\n    APP_CONNECT_DEVICE: '@w3m-app/CONNECT_DEVICE',\n    APP_CONNECT_OTP: '@w3m-app/CONNECT_OTP',\n    APP_CONNECT_SOCIAL: '@w3m-app/CONNECT_SOCIAL',\n    APP_GET_SOCIAL_REDIRECT_URI: '@w3m-app/GET_SOCIAL_REDIRECT_URI',\n    APP_GET_USER: '@w3m-app/GET_USER',\n    APP_SIGN_OUT: '@w3m-app/SIGN_OUT',\n    APP_IS_CONNECTED: '@w3m-app/IS_CONNECTED',\n    APP_GET_CHAIN_ID: '@w3m-app/GET_CHAIN_ID',\n    APP_RPC_REQUEST: '@w3m-app/RPC_REQUEST',\n    APP_UPDATE_EMAIL: '@w3m-app/UPDATE_EMAIL',\n    APP_UPDATE_EMAIL_PRIMARY_OTP: '@w3m-app/UPDATE_EMAIL_PRIMARY_OTP',\n    APP_UPDATE_EMAIL_SECONDARY_OTP: '@w3m-app/UPDATE_EMAIL_SECONDARY_OTP',\n    APP_AWAIT_UPDATE_EMAIL: '@w3m-app/AWAIT_UPDATE_EMAIL',\n    APP_SYNC_THEME: '@w3m-app/SYNC_THEME',\n    APP_SYNC_DAPP_DATA: '@w3m-app/SYNC_DAPP_DATA',\n    APP_GET_SMART_ACCOUNT_ENABLED_NETWORKS: '@w3m-app/GET_SMART_ACCOUNT_ENABLED_NETWORKS',\n    APP_INIT_SMART_ACCOUNT: '@w3m-app/INIT_SMART_ACCOUNT',\n    APP_SET_PREFERRED_ACCOUNT: '@w3m-app/SET_PREFERRED_ACCOUNT',\n    APP_CONNECT_FARCASTER: '@w3m-app/CONNECT_FARCASTER',\n    APP_GET_FARCASTER_URI: '@w3m-app/GET_FARCASTER_URI',\n    APP_RELOAD: '@w3m-app/RELOAD',\n    FRAME_SWITCH_NETWORK_ERROR: '@w3m-frame/SWITCH_NETWORK_ERROR',\n    FRAME_SWITCH_NETWORK_SUCCESS: '@w3m-frame/SWITCH_NETWORK_SUCCESS',\n    FRAME_CONNECT_EMAIL_ERROR: '@w3m-frame/CONNECT_EMAIL_ERROR',\n    FRAME_CONNECT_EMAIL_SUCCESS: '@w3m-frame/CONNECT_EMAIL_SUCCESS',\n    FRAME_CONNECT_DEVICE_ERROR: '@w3m-frame/CONNECT_DEVICE_ERROR',\n    FRAME_CONNECT_DEVICE_SUCCESS: '@w3m-frame/CONNECT_DEVICE_SUCCESS',\n    FRAME_CONNECT_OTP_SUCCESS: '@w3m-frame/CONNECT_OTP_SUCCESS',\n    FRAME_CONNECT_OTP_ERROR: '@w3m-frame/CONNECT_OTP_ERROR',\n    FRAME_CONNECT_SOCIAL_SUCCESS: '@w3m-frame/CONNECT_SOCIAL_SUCCESS',\n    FRAME_CONNECT_SOCIAL_ERROR: '@w3m-frame/CONNECT_SOCIAL_ERROR',\n    FRAME_CONNECT_FARCASTER_SUCCESS: '@w3m-frame/CONNECT_FARCASTER_SUCCESS',\n    FRAME_CONNECT_FARCASTER_ERROR: '@w3m-frame/CONNECT_FARCASTER_ERROR',\n    FRAME_GET_FARCASTER_URI_SUCCESS: '@w3m-frame/GET_FARCASTER_URI_SUCCESS',\n    FRAME_GET_FARCASTER_URI_ERROR: '@w3m-frame/GET_FARCASTER_URI_ERROR',\n    FRAME_GET_SOCIAL_REDIRECT_URI_SUCCESS: '@w3m-frame/GET_SOCIAL_REDIRECT_URI_SUCCESS',\n    FRAME_GET_SOCIAL_REDIRECT_URI_ERROR: '@w3m-frame/GET_SOCIAL_REDIRECT_URI_ERROR',\n    FRAME_GET_USER_SUCCESS: '@w3m-frame/GET_USER_SUCCESS',\n    FRAME_GET_USER_ERROR: '@w3m-frame/GET_USER_ERROR',\n    FRAME_SIGN_OUT_SUCCESS: '@w3m-frame/SIGN_OUT_SUCCESS',\n    FRAME_SIGN_OUT_ERROR: '@w3m-frame/SIGN_OUT_ERROR',\n    FRAME_IS_CONNECTED_SUCCESS: '@w3m-frame/IS_CONNECTED_SUCCESS',\n    FRAME_IS_CONNECTED_ERROR: '@w3m-frame/IS_CONNECTED_ERROR',\n    FRAME_GET_CHAIN_ID_SUCCESS: '@w3m-frame/GET_CHAIN_ID_SUCCESS',\n    FRAME_GET_CHAIN_ID_ERROR: '@w3m-frame/GET_CHAIN_ID_ERROR',\n    FRAME_RPC_REQUEST_SUCCESS: '@w3m-frame/RPC_REQUEST_SUCCESS',\n    FRAME_RPC_REQUEST_ERROR: '@w3m-frame/RPC_REQUEST_ERROR',\n    FRAME_SESSION_UPDATE: '@w3m-frame/SESSION_UPDATE',\n    FRAME_UPDATE_EMAIL_SUCCESS: '@w3m-frame/UPDATE_EMAIL_SUCCESS',\n    FRAME_UPDATE_EMAIL_ERROR: '@w3m-frame/UPDATE_EMAIL_ERROR',\n    FRAME_UPDATE_EMAIL_PRIMARY_OTP_SUCCESS: '@w3m-frame/UPDATE_EMAIL_PRIMARY_OTP_SUCCESS',\n    FRAME_UPDATE_EMAIL_PRIMARY_OTP_ERROR: '@w3m-frame/UPDATE_EMAIL_PRIMARY_OTP_ERROR',\n    FRAME_UPDATE_EMAIL_SECONDARY_OTP_SUCCESS: '@w3m-frame/UPDATE_EMAIL_SECONDARY_OTP_SUCCESS',\n    FRAME_UPDATE_EMAIL_SECONDARY_OTP_ERROR: '@w3m-frame/UPDATE_EMAIL_SECONDARY_OTP_ERROR',\n    FRAME_SYNC_THEME_SUCCESS: '@w3m-frame/SYNC_THEME_SUCCESS',\n    FRAME_SYNC_THEME_ERROR: '@w3m-frame/SYNC_THEME_ERROR',\n    FRAME_SYNC_DAPP_DATA_SUCCESS: '@w3m-frame/SYNC_DAPP_DATA_SUCCESS',\n    FRAME_SYNC_DAPP_DATA_ERROR: '@w3m-frame/SYNC_DAPP_DATA_ERROR',\n    FRAME_GET_SMART_ACCOUNT_ENABLED_NETWORKS_SUCCESS: '@w3m-frame/GET_SMART_ACCOUNT_ENABLED_NETWORKS_SUCCESS',\n    FRAME_GET_SMART_ACCOUNT_ENABLED_NETWORKS_ERROR: '@w3m-frame/GET_SMART_ACCOUNT_ENABLED_NETWORKS_ERROR',\n    FRAME_INIT_SMART_ACCOUNT_SUCCESS: '@w3m-frame/INIT_SMART_ACCOUNT_SUCCESS',\n    FRAME_INIT_SMART_ACCOUNT_ERROR: '@w3m-frame/INIT_SMART_ACCOUNT_ERROR',\n    FRAME_SET_PREFERRED_ACCOUNT_SUCCESS: '@w3m-frame/SET_PREFERRED_ACCOUNT_SUCCESS',\n    FRAME_SET_PREFERRED_ACCOUNT_ERROR: '@w3m-frame/SET_PREFERRED_ACCOUNT_ERROR',\n    FRAME_READY: '@w3m-frame/READY',\n    FRAME_RELOAD_SUCCESS: '@w3m-frame/RELOAD_SUCCESS',\n    FRAME_RELOAD_ERROR: '@w3m-frame/RELOAD_ERROR',\n    RPC_RESPONSE_TYPE_ERROR: 'RPC_RESPONSE_ERROR',\n    RPC_RESPONSE_TYPE_TX: 'RPC_RESPONSE_TRANSACTION_HASH',\n    RPC_RESPONSE_TYPE_OBJECT: 'RPC_RESPONSE_OBJECT'\n};\nexport const W3mFrameRpcConstants = {\n    SAFE_RPC_METHODS: [\n        'eth_accounts',\n        'eth_blockNumber',\n        'eth_call',\n        'eth_chainId',\n        'eth_estimateGas',\n        'eth_feeHistory',\n        'eth_gasPrice',\n        'eth_getAccount',\n        'eth_getBalance',\n        'eth_getBlockByHash',\n        'eth_getBlockByNumber',\n        'eth_getBlockReceipts',\n        'eth_getBlockTransactionCountByHash',\n        'eth_getBlockTransactionCountByNumber',\n        'eth_getCode',\n        'eth_getFilterChanges',\n        'eth_getFilterLogs',\n        'eth_getLogs',\n        'eth_getProof',\n        'eth_getStorageAt',\n        'eth_getTransactionByBlockHashAndIndex',\n        'eth_getTransactionByBlockNumberAndIndex',\n        'eth_getTransactionByHash',\n        'eth_getTransactionCount',\n        'eth_getTransactionReceipt',\n        'eth_getUncleCountByBlockHash',\n        'eth_getUncleCountByBlockNumber',\n        'eth_maxPriorityFeePerGas',\n        'eth_newBlockFilter',\n        'eth_newFilter',\n        'eth_newPendingTransactionFilter',\n        'eth_sendRawTransaction',\n        'eth_syncing',\n        'eth_uninstallFilter',\n        'wallet_getCapabilities',\n        'wallet_getCallsStatus',\n        'eth_getUserOperationReceipt',\n        'eth_estimateUserOperationGas',\n        'eth_getUserOperationByHash',\n        'eth_supportedEntryPoints',\n        'wallet_getAssets'\n    ],\n    NOT_SAFE_RPC_METHODS: [\n        'personal_sign',\n        'eth_signTypedData_v4',\n        'eth_sendTransaction',\n        'solana_signMessage',\n        'solana_signTransaction',\n        'solana_signAllTransactions',\n        'solana_signAndSendTransaction',\n        'wallet_sendCalls',\n        'wallet_grantPermissions',\n        'wallet_revokePermissions',\n        'eth_sendUserOperation'\n    ],\n    GET_CHAIN_ID: 'eth_chainId',\n    RPC_METHOD_NOT_ALLOWED_MESSAGE: 'Requested RPC call is not allowed',\n    RPC_METHOD_NOT_ALLOWED_UI_MESSAGE: 'Action not allowed',\n    ACCOUNT_TYPES: {\n        EOA: 'eoa',\n        SMART_ACCOUNT: 'smartAccount'\n    }\n};\n//# sourceMappingURL=W3mFrameConstants.js.map","import { proxy } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\n// -- Constants ----------------------------------------- //\nconst DEFAULT_STATE = Object.freeze({\n    message: '',\n    variant: 'success',\n    svg: undefined,\n    open: false,\n    autoClose: true\n});\n// -- State --------------------------------------------- //\nconst state = proxy({\n    ...DEFAULT_STATE\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    showLoading(message, options = {}) {\n        this._showMessage({ message, variant: 'loading', ...options });\n    },\n    showSuccess(message) {\n        this._showMessage({ message, variant: 'success' });\n    },\n    showSvg(message, svg) {\n        this._showMessage({ message, svg });\n    },\n    showError(message) {\n        const errorMessage = CoreHelperUtil.parseError(message);\n        this._showMessage({ message: errorMessage, variant: 'error' });\n    },\n    hide() {\n        state.message = DEFAULT_STATE.message;\n        state.variant = DEFAULT_STATE.variant;\n        state.svg = DEFAULT_STATE.svg;\n        state.open = DEFAULT_STATE.open;\n        state.autoClose = DEFAULT_STATE.autoClose;\n    },\n    _showMessage({ message, svg, variant = 'success', autoClose = DEFAULT_STATE.autoClose }) {\n        if (state.open) {\n            state.open = false;\n            setTimeout(() => {\n                state.message = message;\n                state.variant = variant;\n                state.svg = svg;\n                state.open = true;\n                state.autoClose = autoClose;\n            }, 150);\n        }\n        else {\n            state.message = message;\n            state.variant = variant;\n            state.svg = svg;\n            state.open = true;\n            state.autoClose = autoClose;\n        }\n    }\n};\nexport const SnackController = controller;\n//# sourceMappingURL=SnackController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { EventsController } from './EventsController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { SnackController } from './SnackController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    transactions: [],\n    coinbaseTransactions: {},\n    transactionsByYear: {},\n    lastNetworkInView: undefined,\n    loading: false,\n    empty: false,\n    next: undefined\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    setLastNetworkInView(lastNetworkInView) {\n        state.lastNetworkInView = lastNetworkInView;\n    },\n    async fetchTransactions(accountAddress, onramp) {\n        if (!accountAddress) {\n            throw new Error(\"Transactions can't be fetched without an accountAddress\");\n        }\n        state.loading = true;\n        try {\n            const response = await BlockchainApiController.fetchTransactions({\n                account: accountAddress,\n                cursor: state.next,\n                onramp,\n                // Coinbase transaction history state updates require the latest data\n                cache: onramp === 'coinbase' ? 'no-cache' : undefined,\n                chainId: ChainController.state.activeCaipNetwork?.caipNetworkId\n            });\n            const nonSpamTransactions = TransactionsController.filterSpamTransactions(response.data);\n            const sameChainTransactions = TransactionsController.filterByConnectedChain(nonSpamTransactions);\n            const filteredTransactions = [...state.transactions, ...sameChainTransactions];\n            state.loading = false;\n            if (onramp === 'coinbase') {\n                state.coinbaseTransactions = TransactionsController.groupTransactionsByYearAndMonth(state.coinbaseTransactions, response.data);\n            }\n            else {\n                state.transactions = filteredTransactions;\n                state.transactionsByYear = TransactionsController.groupTransactionsByYearAndMonth(state.transactionsByYear, sameChainTransactions);\n            }\n            state.empty = filteredTransactions.length === 0;\n            state.next = response.next ? response.next : undefined;\n        }\n        catch (error) {\n            const activeChainNamespace = ChainController.state.activeChain;\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'ERROR_FETCH_TRANSACTIONS',\n                properties: {\n                    address: accountAddress,\n                    projectId: OptionsController.state.projectId,\n                    cursor: state.next,\n                    isSmartAccount: AccountController.state.preferredAccountTypes?.[activeChainNamespace] ===\n                        W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n                }\n            });\n            SnackController.showError('Failed to fetch transactions');\n            state.loading = false;\n            state.empty = true;\n            state.next = undefined;\n        }\n    },\n    groupTransactionsByYearAndMonth(transactionsMap = {}, transactions = []) {\n        const grouped = transactionsMap;\n        transactions.forEach(transaction => {\n            const year = new Date(transaction.metadata.minedAt).getFullYear();\n            const month = new Date(transaction.metadata.minedAt).getMonth();\n            const yearTransactions = grouped[year] ?? {};\n            const monthTransactions = yearTransactions[month] ?? [];\n            // If there's a transaction with the same id, remove the old one\n            const newMonthTransactions = monthTransactions.filter(tx => tx.id !== transaction.id);\n            grouped[year] = {\n                ...yearTransactions,\n                [month]: [...newMonthTransactions, transaction].sort((a, b) => new Date(b.metadata.minedAt).getTime() - new Date(a.metadata.minedAt).getTime())\n            };\n        });\n        return grouped;\n    },\n    filterSpamTransactions(transactions) {\n        return transactions.filter(transaction => {\n            const isAllSpam = transaction.transfers.every(transfer => transfer.nft_info?.flags.is_spam === true);\n            return !isAllSpam;\n        });\n    },\n    filterByConnectedChain(transactions) {\n        const chainId = ChainController.state.activeCaipNetwork?.caipNetworkId;\n        const filteredTransactions = transactions.filter(transaction => transaction.metadata.chain === chainId);\n        return filteredTransactions;\n    },\n    clearCursor() {\n        state.next = undefined;\n    },\n    resetTransactions() {\n        state.transactions = [];\n        state.transactionsByYear = {};\n        state.lastNetworkInView = undefined;\n        state.loading = false;\n        state.empty = false;\n        state.next = undefined;\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const TransactionsController = withErrorBoundary(controller, 'API_ERROR');\n//# sourceMappingURL=TransactionsController.js.map","/* eslint-disable no-console */\nimport { proxy, ref } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport {} from '@reown/appkit-common';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { AppKitError, withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { ModalController } from './ModalController.js';\nimport { RouterController } from './RouterController.js';\nimport { TransactionsController } from './TransactionsController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    connections: new Map(),\n    wcError: false,\n    buffering: false,\n    status: 'disconnected'\n});\n// eslint-disable-next-line init-declarations\nlet wcConnectionPromise;\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    _getClient() {\n        return state._client;\n    },\n    setClient(client) {\n        state._client = ref(client);\n    },\n    async connectWalletConnect() {\n        if (CoreHelperUtil.isTelegram() || (CoreHelperUtil.isSafari() && CoreHelperUtil.isIos())) {\n            if (wcConnectionPromise) {\n                await wcConnectionPromise;\n                wcConnectionPromise = undefined;\n                return;\n            }\n            if (!CoreHelperUtil.isPairingExpired(state?.wcPairingExpiry)) {\n                const link = state.wcUri;\n                state.wcUri = link;\n                return;\n            }\n            wcConnectionPromise = ConnectionController._getClient()\n                ?.connectWalletConnect?.()\n                .catch(() => undefined);\n            ConnectionController.state.status = 'connecting';\n            await wcConnectionPromise;\n            wcConnectionPromise = undefined;\n            state.wcPairingExpiry = undefined;\n            ConnectionController.state.status = 'connected';\n        }\n        else {\n            await ConnectionController._getClient()?.connectWalletConnect?.();\n        }\n    },\n    async connectExternal(options, chain, setChain = true) {\n        await ConnectionController._getClient()?.connectExternal?.(options);\n        if (setChain) {\n            ChainController.setActiveNamespace(chain);\n        }\n    },\n    async reconnectExternal(options) {\n        await ConnectionController._getClient()?.reconnectExternal?.(options);\n        const namespace = options.chain || ChainController.state.activeChain;\n        if (namespace) {\n            ConnectorController.setConnectorId(options.id, namespace);\n        }\n    },\n    async setPreferredAccountType(accountType, namespace) {\n        ModalController.setLoading(true, ChainController.state.activeChain);\n        const authConnector = ConnectorController.getAuthConnector();\n        if (!authConnector) {\n            return;\n        }\n        AccountController.setPreferredAccountType(accountType, namespace);\n        await authConnector.provider.setPreferredAccount(accountType);\n        StorageUtil.setPreferredAccountTypes(AccountController.state.preferredAccountTypes ?? { [namespace]: accountType });\n        await ConnectionController.reconnectExternal(authConnector);\n        ModalController.setLoading(false, ChainController.state.activeChain);\n        EventsController.sendEvent({\n            type: 'track',\n            event: 'SET_PREFERRED_ACCOUNT_TYPE',\n            properties: {\n                accountType,\n                network: ChainController.state.activeCaipNetwork?.caipNetworkId || ''\n            }\n        });\n    },\n    async signMessage(message) {\n        return ConnectionController._getClient()?.signMessage(message);\n    },\n    parseUnits(value, decimals) {\n        return ConnectionController._getClient()?.parseUnits(value, decimals);\n    },\n    formatUnits(value, decimals) {\n        return ConnectionController._getClient()?.formatUnits(value, decimals);\n    },\n    async sendTransaction(args) {\n        return ConnectionController._getClient()?.sendTransaction(args);\n    },\n    async getCapabilities(params) {\n        return ConnectionController._getClient()?.getCapabilities(params);\n    },\n    async grantPermissions(params) {\n        return ConnectionController._getClient()?.grantPermissions(params);\n    },\n    async walletGetAssets(params) {\n        return ConnectionController._getClient()?.walletGetAssets(params) ?? {};\n    },\n    async estimateGas(args) {\n        return ConnectionController._getClient()?.estimateGas(args);\n    },\n    async writeContract(args) {\n        return ConnectionController._getClient()?.writeContract(args);\n    },\n    async getEnsAddress(value) {\n        return ConnectionController._getClient()?.getEnsAddress(value);\n    },\n    async getEnsAvatar(value) {\n        return ConnectionController._getClient()?.getEnsAvatar(value);\n    },\n    checkInstalled(ids) {\n        return ConnectionController._getClient()?.checkInstalled?.(ids) || false;\n    },\n    resetWcConnection() {\n        state.wcUri = undefined;\n        state.wcPairingExpiry = undefined;\n        state.wcLinking = undefined;\n        state.recentWallet = undefined;\n        state.status = 'disconnected';\n        TransactionsController.resetTransactions();\n        StorageUtil.deleteWalletConnectDeepLink();\n    },\n    resetUri() {\n        state.wcUri = undefined;\n        state.wcPairingExpiry = undefined;\n        wcConnectionPromise = undefined;\n    },\n    finalizeWcConnection() {\n        const { wcLinking, recentWallet } = ConnectionController.state;\n        if (wcLinking) {\n            StorageUtil.setWalletConnectDeepLink(wcLinking);\n        }\n        if (recentWallet) {\n            StorageUtil.setAppKitRecent(recentWallet);\n        }\n        EventsController.sendEvent({\n            type: 'track',\n            event: 'CONNECT_SUCCESS',\n            properties: {\n                method: wcLinking ? 'mobile' : 'qrcode',\n                name: RouterController.state.data?.wallet?.name || 'Unknown'\n            }\n        });\n    },\n    setWcBasic(wcBasic) {\n        state.wcBasic = wcBasic;\n    },\n    setUri(uri) {\n        state.wcUri = uri;\n        state.wcPairingExpiry = CoreHelperUtil.getPairingExpiry();\n    },\n    setWcLinking(wcLinking) {\n        state.wcLinking = wcLinking;\n    },\n    setWcError(wcError) {\n        state.wcError = wcError;\n        state.buffering = false;\n    },\n    setRecentWallet(wallet) {\n        state.recentWallet = wallet;\n    },\n    setBuffering(buffering) {\n        state.buffering = buffering;\n    },\n    setStatus(status) {\n        state.status = status;\n    },\n    async disconnect(namespace) {\n        try {\n            await ConnectionController._getClient()?.disconnect(namespace);\n        }\n        catch (error) {\n            throw new AppKitError('Failed to disconnect', 'INTERNAL_SDK_ERROR', error);\n        }\n    },\n    setConnections(connections, chainNamespace) {\n        state.connections.set(chainNamespace, connections);\n    },\n    switchAccount({ connection, address, namespace }) {\n        const connectedConnectorId = ConnectorController.state.activeConnectorIds[namespace];\n        const isConnectorConnected = connectedConnectorId === connection.connectorId;\n        if (isConnectorConnected) {\n            const currentNetwork = ChainController.state.activeCaipNetwork;\n            if (currentNetwork) {\n                const caipAddress = `${namespace}:${currentNetwork.id}:${address}`;\n                AccountController.setCaipAddress(caipAddress, namespace);\n            }\n            else {\n                console.warn(`No current network found for namespace \"${namespace}\"`);\n            }\n        }\n        else {\n            const connector = ConnectorController.getConnector(connection.connectorId);\n            if (connector) {\n                ConnectionController.connectExternal(connector, namespace);\n            }\n            else {\n                console.warn(`No connector found for namespace \"${namespace}\"`);\n            }\n        }\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const ConnectionController = withErrorBoundary(controller);\n//# sourceMappingURL=ConnectionController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey } from 'valtio/vanilla/utils';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    loading: false,\n    open: false,\n    selectedNetworkId: undefined,\n    activeChain: undefined,\n    initialized: false\n});\n// -- Controller ---------------------------------------- //\nexport const PublicStateController = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    subscribeOpen(callback) {\n        return subscribeKey(state, 'open', callback);\n    },\n    set(newState) {\n        Object.assign(state, { ...state, ...newState });\n    }\n};\n//# sourceMappingURL=PublicStateController.js.map","import { formatUnits } from 'viem';\nexport const ERC7811Utils = {\n    /**\n     * Creates a Balance object from an ERC7811 Asset object\n     * @param asset - Asset object to convert\n     * @param chainId - Chain ID in CAIP-2 format\n     * @returns Balance object\n     */\n    createBalance(asset, chainId) {\n        const metadata = {\n            name: (asset.metadata['name'] || ''),\n            symbol: (asset.metadata['symbol'] || ''),\n            decimals: (asset.metadata['decimals'] || 0),\n            value: (asset.metadata['value'] || 0),\n            price: (asset.metadata['price'] || 0),\n            iconUrl: (asset.metadata['iconUrl'] || '')\n        };\n        return {\n            name: metadata.name,\n            symbol: metadata.symbol,\n            chainId,\n            address: asset.address === 'native'\n                ? undefined\n                : this.convertAddressToCAIP10Address(asset.address, chainId),\n            value: metadata.value,\n            price: metadata.price,\n            quantity: {\n                decimals: metadata.decimals.toString(),\n                numeric: this.convertHexToBalance({\n                    hex: asset.balance,\n                    decimals: metadata.decimals\n                })\n            },\n            iconUrl: metadata.iconUrl\n        };\n    },\n    /**\n     * Converts a hex string to a Balance object\n     * @param hex - Hex string to convert\n     * @param decimals - Number of decimals to use\n     * @returns Balance object\n     */\n    convertHexToBalance({ hex, decimals }) {\n        return formatUnits(BigInt(hex), decimals);\n    },\n    /**\n     * Converts an address to a CAIP-10 address\n     * @param address - Address to convert\n     * @param chainId - Chain ID in CAIP-2 format\n     * @returns CAIP-10 address\n     */\n    convertAddressToCAIP10Address(address, chainId) {\n        return `${chainId}:${address}`;\n    },\n    /**\n     *  Creates a CAIP-2 Chain ID from a chain ID and namespace\n     * @param chainId  - Chain ID in hex format\n     * @param namespace  - Chain namespace\n     * @returns\n     */\n    createCAIP2ChainId(chainId, namespace) {\n        return `${namespace}:${parseInt(chainId, 16)}`;\n    },\n    /**\n     * Gets the chain ID in hex format from a CAIP-2 Chain ID\n     * @param caip2ChainId - CAIP-2 Chain ID\n     * @returns Chain ID in hex format\n     */\n    getChainIdHexFromCAIP2ChainId(caip2ChainId) {\n        const parts = caip2ChainId.split(':');\n        if (parts.length < 2 || !parts[1]) {\n            return '0x0';\n        }\n        const chainPart = parts[1];\n        const parsed = parseInt(chainPart, 10);\n        return isNaN(parsed) ? '0x0' : `0x${parsed.toString(16)}`;\n    },\n    /**\n     * Checks if a response is a valid WalletGetAssetsResponse\n     * @param response - The response to check\n     * @returns True if the response is a valid WalletGetAssetsResponse, false otherwise\n     */\n    isWalletGetAssetsResponse(response) {\n        // Check if response is an object and has the expected structure\n        if (typeof response !== 'object' || response === null) {\n            return false;\n        }\n        // Check if all values are arrays and conform to the expected asset structure\n        return Object.values(response).every(value => Array.isArray(value) && value.every(asset => this.isValidAsset(asset)));\n    },\n    /**\n     * Checks if an asset object is valid.\n     * @param asset - The asset object to check.\n     * @returns True if the asset is valid, false otherwise.\n     */\n    isValidAsset(asset) {\n        return (typeof asset === 'object' &&\n            asset !== null &&\n            typeof asset.address === 'string' &&\n            typeof asset.balance === 'string' &&\n            (asset.type === 'ERC20' || asset.type === 'NATIVE') &&\n            typeof asset.metadata === 'object' &&\n            asset.metadata !== null &&\n            typeof asset.metadata['name'] === 'string' &&\n            typeof asset.metadata['symbol'] === 'string' &&\n            typeof asset.metadata['decimals'] === 'number' &&\n            typeof asset.metadata['price'] === 'number' &&\n            typeof asset.metadata['iconUrl'] === 'string');\n    }\n};\n//# sourceMappingURL=ERC7811Util.js.map","import { AccountController } from '../controllers/AccountController.js';\nimport { BlockchainApiController } from '../controllers/BlockchainApiController.js';\nimport { ChainController } from '../controllers/ChainController.js';\nimport { ConnectionController } from '../controllers/ConnectionController.js';\nimport { ERC7811Utils } from './ERC7811Util.js';\n// -- Controller ---------------------------------------- //\nexport const SendApiUtil = {\n    async getMyTokensWithBalance(forceUpdate) {\n        const address = AccountController.state.address;\n        const caipNetwork = ChainController.state.activeCaipNetwork;\n        if (!address || !caipNetwork) {\n            return [];\n        }\n        // Extract EIP-155 specific logic\n        if (caipNetwork.chainNamespace === 'eip155') {\n            const eip155Balances = await this.getEIP155Balances(address, caipNetwork);\n            if (eip155Balances) {\n                return this.filterLowQualityTokens(eip155Balances);\n            }\n        }\n        // Fallback to 1Inch API\n        const response = await BlockchainApiController.getBalance(address, caipNetwork.caipNetworkId, forceUpdate);\n        return this.filterLowQualityTokens(response.balances);\n    },\n    async getEIP155Balances(address, caipNetwork) {\n        try {\n            const chainIdHex = ERC7811Utils.getChainIdHexFromCAIP2ChainId(caipNetwork.caipNetworkId);\n            const walletCapabilities = (await ConnectionController.getCapabilities(address));\n            if (!walletCapabilities?.[chainIdHex]?.['assetDiscovery']?.supported) {\n                return null;\n            }\n            const walletGetAssetsResponse = await ConnectionController.walletGetAssets({\n                account: address,\n                chainFilter: [chainIdHex]\n            });\n            if (!ERC7811Utils.isWalletGetAssetsResponse(walletGetAssetsResponse)) {\n                return null;\n            }\n            const assets = walletGetAssetsResponse[chainIdHex] || [];\n            return assets.map(asset => ERC7811Utils.createBalance(asset, caipNetwork.caipNetworkId));\n        }\n        catch (error) {\n            return null;\n        }\n    },\n    /**\n     * The 1Inch API includes many low-quality tokens in the balance response,\n     * which appear inconsistently. This filter prevents them from being displayed.\n     */\n    filterLowQualityTokens(balances) {\n        return balances.filter(balance => balance.quantity.decimals !== '0');\n    },\n    mapBalancesToSwapTokens(balances) {\n        return (balances?.map(token => ({\n            ...token,\n            address: token?.address\n                ? token.address\n                : ChainController.getActiveNetworkTokenAddress(),\n            decimals: parseInt(token.quantity.decimals, 10),\n            logoUri: token.iconUrl,\n            eip2612: false\n        })) || []);\n    }\n};\n//# sourceMappingURL=SendApiUtil.js.map","import { proxy, ref, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { NumberUtil } from '@reown/appkit-common';\nimport { ContractUtil } from '@reown/appkit-common';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { SendApiUtil } from '../utils/SendApiUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { EventsController } from './EventsController.js';\nimport { RouterController } from './RouterController.js';\nimport { SnackController } from './SnackController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    tokenBalances: [],\n    loading: false\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    setToken(token) {\n        if (token) {\n            state.token = ref(token);\n        }\n    },\n    setTokenAmount(sendTokenAmount) {\n        state.sendTokenAmount = sendTokenAmount;\n    },\n    setReceiverAddress(receiverAddress) {\n        state.receiverAddress = receiverAddress;\n    },\n    setReceiverProfileImageUrl(receiverProfileImageUrl) {\n        state.receiverProfileImageUrl = receiverProfileImageUrl;\n    },\n    setReceiverProfileName(receiverProfileName) {\n        state.receiverProfileName = receiverProfileName;\n    },\n    setNetworkBalanceInUsd(networkBalanceInUSD) {\n        state.networkBalanceInUSD = networkBalanceInUSD;\n    },\n    setLoading(loading) {\n        state.loading = loading;\n    },\n    async sendToken() {\n        try {\n            SendController.setLoading(true);\n            switch (ChainController.state.activeCaipNetwork?.chainNamespace) {\n                case 'eip155':\n                    await SendController.sendEvmToken();\n                    return;\n                case 'solana':\n                    await SendController.sendSolanaToken();\n                    return;\n                default:\n                    throw new Error('Unsupported chain');\n            }\n        }\n        finally {\n            SendController.setLoading(false);\n        }\n    },\n    async sendEvmToken() {\n        const activeChainNamespace = ChainController.state.activeChain;\n        const activeAccountType = AccountController.state.preferredAccountTypes?.[activeChainNamespace];\n        if (!SendController.state.sendTokenAmount || !SendController.state.receiverAddress) {\n            throw new Error('An amount and receiver address are required');\n        }\n        if (!SendController.state.token) {\n            throw new Error('A token is required');\n        }\n        if (SendController.state.token?.address) {\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'SEND_INITIATED',\n                properties: {\n                    isSmartAccount: activeAccountType === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT,\n                    token: SendController.state.token.address,\n                    amount: SendController.state.sendTokenAmount,\n                    network: ChainController.state.activeCaipNetwork?.caipNetworkId || ''\n                }\n            });\n            await SendController.sendERC20Token({\n                receiverAddress: SendController.state.receiverAddress,\n                tokenAddress: SendController.state.token.address,\n                sendTokenAmount: SendController.state.sendTokenAmount,\n                decimals: SendController.state.token.quantity.decimals\n            });\n        }\n        else {\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'SEND_INITIATED',\n                properties: {\n                    isSmartAccount: activeAccountType === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT,\n                    token: SendController.state.token.symbol || '',\n                    amount: SendController.state.sendTokenAmount,\n                    network: ChainController.state.activeCaipNetwork?.caipNetworkId || ''\n                }\n            });\n            await SendController.sendNativeToken({\n                receiverAddress: SendController.state.receiverAddress,\n                sendTokenAmount: SendController.state.sendTokenAmount,\n                decimals: SendController.state.token.quantity.decimals\n            });\n        }\n    },\n    async fetchTokenBalance(onError) {\n        state.loading = true;\n        const chainId = ChainController.state.activeCaipNetwork?.caipNetworkId;\n        const chain = ChainController.state.activeCaipNetwork?.chainNamespace;\n        const caipAddress = ChainController.state.activeCaipAddress;\n        const address = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;\n        if (state.lastRetry &&\n            !CoreHelperUtil.isAllowedRetry(state.lastRetry, 30 * ConstantsUtil.ONE_SEC_MS)) {\n            state.loading = false;\n            return [];\n        }\n        try {\n            if (address && chainId && chain) {\n                const balances = await SendApiUtil.getMyTokensWithBalance();\n                state.tokenBalances = balances;\n                state.lastRetry = undefined;\n                return balances;\n            }\n        }\n        catch (error) {\n            state.lastRetry = Date.now();\n            onError?.(error);\n            SnackController.showError('Token Balance Unavailable');\n        }\n        finally {\n            state.loading = false;\n        }\n        return [];\n    },\n    fetchNetworkBalance() {\n        if (state.tokenBalances.length === 0) {\n            return;\n        }\n        const networkTokenBalances = SendApiUtil.mapBalancesToSwapTokens(state.tokenBalances);\n        if (!networkTokenBalances) {\n            return;\n        }\n        const networkToken = networkTokenBalances.find(token => token.address === ChainController.getActiveNetworkTokenAddress());\n        if (!networkToken) {\n            return;\n        }\n        state.networkBalanceInUSD = networkToken\n            ? NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString()\n            : '0';\n    },\n    async sendNativeToken(params) {\n        RouterController.pushTransactionStack({});\n        const to = params.receiverAddress;\n        const address = AccountController.state.address;\n        const value = ConnectionController.parseUnits(params.sendTokenAmount.toString(), Number(params.decimals));\n        const data = '0x';\n        await ConnectionController.sendTransaction({\n            chainNamespace: 'eip155',\n            to,\n            address,\n            data,\n            value: value ?? BigInt(0)\n        });\n        EventsController.sendEvent({\n            type: 'track',\n            event: 'SEND_SUCCESS',\n            properties: {\n                isSmartAccount: AccountController.state.preferredAccountTypes?.['eip155'] ===\n                    W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT,\n                token: SendController.state.token?.symbol || '',\n                amount: params.sendTokenAmount,\n                network: ChainController.state.activeCaipNetwork?.caipNetworkId || ''\n            }\n        });\n        ConnectionController._getClient()?.updateBalance('eip155');\n        SendController.resetSend();\n    },\n    async sendERC20Token(params) {\n        RouterController.pushTransactionStack({\n            onSuccess() {\n                RouterController.replace('Account');\n            }\n        });\n        const amount = ConnectionController.parseUnits(params.sendTokenAmount.toString(), Number(params.decimals));\n        if (AccountController.state.address &&\n            params.sendTokenAmount &&\n            params.receiverAddress &&\n            params.tokenAddress) {\n            const tokenAddress = CoreHelperUtil.getPlainAddress(params.tokenAddress);\n            await ConnectionController.writeContract({\n                fromAddress: AccountController.state.address,\n                tokenAddress,\n                args: [params.receiverAddress, amount ?? BigInt(0)],\n                method: 'transfer',\n                abi: ContractUtil.getERC20Abi(tokenAddress),\n                chainNamespace: 'eip155'\n            });\n            SendController.resetSend();\n        }\n    },\n    async sendSolanaToken() {\n        if (!SendController.state.sendTokenAmount || !SendController.state.receiverAddress) {\n            throw new Error('An amount and receiver address are required');\n        }\n        RouterController.pushTransactionStack({\n            onSuccess() {\n                RouterController.replace('Account');\n            }\n        });\n        await ConnectionController.sendTransaction({\n            chainNamespace: 'solana',\n            to: SendController.state.receiverAddress,\n            value: SendController.state.sendTokenAmount\n        });\n        ConnectionController._getClient()?.updateBalance('solana');\n        SendController.resetSend();\n    },\n    resetSend() {\n        state.token = undefined;\n        state.sendTokenAmount = undefined;\n        state.receiverAddress = undefined;\n        state.receiverProfileImageUrl = undefined;\n        state.receiverProfileName = undefined;\n        state.loading = false;\n        state.tokenBalances = [];\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const SendController = withErrorBoundary(controller);\n//# sourceMappingURL=SendController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { proxyMap, subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil as CommonConstantsUtil, NetworkUtil } from '@reown/appkit-common';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { ModalController } from './ModalController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { PublicStateController } from './PublicStateController.js';\nimport { RouterController } from './RouterController.js';\nimport { SendController } from './SendController.js';\n// -- Constants ----------------------------------------- //\nconst accountState = {\n    currentTab: 0,\n    tokenBalance: [],\n    smartAccountDeployed: false,\n    addressLabels: new Map(),\n    allAccounts: [],\n    user: undefined\n};\nconst networkState = {\n    caipNetwork: undefined,\n    supportsAllNetworks: true,\n    smartAccountEnabledNetworks: []\n};\n// -- State --------------------------------------------- //\nconst state = proxy({\n    chains: proxyMap(),\n    activeCaipAddress: undefined,\n    activeChain: undefined,\n    activeCaipNetwork: undefined,\n    noAdapters: false,\n    universalAdapter: {\n        networkControllerClient: undefined,\n        connectionControllerClient: undefined\n    },\n    isSwitchingNamespace: false\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => {\n            callback(state);\n        });\n    },\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    subscribeChainProp(property, callback, chain) {\n        let prev = undefined;\n        return sub(state.chains, () => {\n            const activeChain = chain || state.activeChain;\n            if (activeChain) {\n                const nextValue = state.chains.get(activeChain)?.[property];\n                if (prev !== nextValue) {\n                    prev = nextValue;\n                    callback(nextValue);\n                }\n            }\n        });\n    },\n    initialize(adapters, caipNetworks, clients) {\n        const { chainId: activeChainId, namespace: activeNamespace } = StorageUtil.getActiveNetworkProps();\n        const activeCaipNetwork = caipNetworks?.find(network => network.id.toString() === activeChainId?.toString());\n        const defaultAdapter = adapters.find(adapter => adapter?.namespace === activeNamespace);\n        const adapterToActivate = defaultAdapter || adapters?.[0];\n        const namespacesFromAdapters = adapters.map(a => a.namespace).filter(n => n !== undefined);\n        /**\n         * If the AppKit is in embedded mode (for Demo app), we should get the available namespaces from the adapters.\n         */\n        const namespaces = OptionsController.state.enableEmbedded\n            ? new Set([...namespacesFromAdapters])\n            : new Set([...(caipNetworks?.map(network => network.chainNamespace) ?? [])]);\n        if (adapters?.length === 0 || !adapterToActivate) {\n            state.noAdapters = true;\n        }\n        if (!state.noAdapters) {\n            state.activeChain = adapterToActivate?.namespace;\n            state.activeCaipNetwork = activeCaipNetwork;\n            ChainController.setChainNetworkData(adapterToActivate?.namespace, {\n                caipNetwork: activeCaipNetwork\n            });\n            if (state.activeChain) {\n                PublicStateController.set({ activeChain: adapterToActivate?.namespace });\n            }\n        }\n        namespaces.forEach(namespace => {\n            const namespaceNetworks = caipNetworks?.filter(network => network.chainNamespace === namespace);\n            ChainController.state.chains.set(namespace, {\n                namespace,\n                networkState: proxy({\n                    ...networkState,\n                    caipNetwork: namespaceNetworks?.[0]\n                }),\n                accountState: proxy(accountState),\n                caipNetworks: namespaceNetworks ?? [],\n                ...clients\n            });\n            ChainController.setRequestedCaipNetworks(namespaceNetworks ?? [], namespace);\n        });\n    },\n    removeAdapter(namespace) {\n        if (state.activeChain === namespace) {\n            const nextAdapter = Array.from(state.chains.entries()).find(([chainNamespace]) => chainNamespace !== namespace);\n            if (nextAdapter) {\n                const caipNetwork = nextAdapter[1]?.caipNetworks?.[0];\n                if (caipNetwork) {\n                    ChainController.setActiveCaipNetwork(caipNetwork);\n                }\n            }\n        }\n        state.chains.delete(namespace);\n    },\n    addAdapter(adapter, { networkControllerClient, connectionControllerClient }, caipNetworks) {\n        state.chains.set(adapter.namespace, {\n            namespace: adapter.namespace,\n            networkState: {\n                ...networkState,\n                caipNetwork: caipNetworks[0]\n            },\n            accountState,\n            caipNetworks,\n            connectionControllerClient,\n            networkControllerClient\n        });\n        ChainController.setRequestedCaipNetworks(caipNetworks?.filter(caipNetwork => caipNetwork.chainNamespace === adapter.namespace) ?? [], adapter.namespace);\n    },\n    addNetwork(network) {\n        const chainAdapter = state.chains.get(network.chainNamespace);\n        if (chainAdapter) {\n            const newNetworks = [...(chainAdapter.caipNetworks || [])];\n            if (!chainAdapter.caipNetworks?.find(caipNetwork => caipNetwork.id === network.id)) {\n                newNetworks.push(network);\n            }\n            state.chains.set(network.chainNamespace, { ...chainAdapter, caipNetworks: newNetworks });\n            ChainController.setRequestedCaipNetworks(newNetworks, network.chainNamespace);\n            ConnectorController.filterByNamespace(network.chainNamespace, true);\n        }\n    },\n    removeNetwork(namespace, networkId) {\n        const chainAdapter = state.chains.get(namespace);\n        if (chainAdapter) {\n            // Check if network being removed is active network\n            const isActiveNetwork = state.activeCaipNetwork?.id === networkId;\n            // Filter out the network being removed\n            const newCaipNetworksOfAdapter = [\n                ...(chainAdapter.caipNetworks?.filter(network => network.id !== networkId) || [])\n            ];\n            // If active network was removed and there are other networks available, switch to first one\n            if (isActiveNetwork && chainAdapter?.caipNetworks?.[0]) {\n                ChainController.setActiveCaipNetwork(chainAdapter.caipNetworks[0]);\n            }\n            state.chains.set(namespace, { ...chainAdapter, caipNetworks: newCaipNetworksOfAdapter });\n            ChainController.setRequestedCaipNetworks(newCaipNetworksOfAdapter || [], namespace);\n            if (newCaipNetworksOfAdapter.length === 0) {\n                ConnectorController.filterByNamespace(namespace, false);\n            }\n        }\n    },\n    setAdapterNetworkState(chain, props) {\n        const chainAdapter = state.chains.get(chain);\n        if (chainAdapter) {\n            chainAdapter.networkState = {\n                ...(chainAdapter.networkState || networkState),\n                ...props\n            };\n            state.chains.set(chain, chainAdapter);\n        }\n    },\n    setChainAccountData(chain, accountProps, _unknown = true) {\n        if (!chain) {\n            throw new Error('Chain is required to update chain account data');\n        }\n        const chainAdapter = state.chains.get(chain);\n        if (chainAdapter) {\n            const newAccountState = { ...(chainAdapter.accountState || accountState), ...accountProps };\n            state.chains.set(chain, { ...chainAdapter, accountState: newAccountState });\n            if (state.chains.size === 1 || state.activeChain === chain) {\n                if (accountProps.caipAddress) {\n                    state.activeCaipAddress = accountProps.caipAddress;\n                }\n                AccountController.replaceState(newAccountState);\n            }\n        }\n    },\n    setChainNetworkData(chain, networkProps) {\n        if (!chain) {\n            return;\n        }\n        const chainAdapter = state.chains.get(chain);\n        if (chainAdapter) {\n            const newNetworkState = { ...(chainAdapter.networkState || networkState), ...networkProps };\n            state.chains.set(chain, { ...chainAdapter, networkState: newNetworkState });\n        }\n    },\n    // eslint-disable-next-line max-params\n    setAccountProp(prop, value, chain, replaceState = true) {\n        ChainController.setChainAccountData(chain, { [prop]: value }, replaceState);\n        if (prop === 'status' && value === 'disconnected' && chain) {\n            ConnectorController.removeConnectorId(chain);\n        }\n    },\n    setActiveNamespace(chain) {\n        state.activeChain = chain;\n        const newAdapter = chain ? state.chains.get(chain) : undefined;\n        const caipNetwork = newAdapter?.networkState?.caipNetwork;\n        if (caipNetwork?.id && chain) {\n            state.activeCaipAddress = newAdapter?.accountState?.caipAddress;\n            state.activeCaipNetwork = caipNetwork;\n            ChainController.setChainNetworkData(chain, { caipNetwork });\n            StorageUtil.setActiveCaipNetworkId(caipNetwork?.caipNetworkId);\n            PublicStateController.set({\n                activeChain: chain,\n                selectedNetworkId: caipNetwork?.caipNetworkId\n            });\n        }\n    },\n    setActiveCaipNetwork(caipNetwork) {\n        if (!caipNetwork) {\n            return;\n        }\n        if (state.activeChain !== caipNetwork.chainNamespace) {\n            ChainController.setIsSwitchingNamespace(true);\n        }\n        const newAdapter = state.chains.get(caipNetwork.chainNamespace);\n        state.activeChain = caipNetwork.chainNamespace;\n        state.activeCaipNetwork = caipNetwork;\n        ChainController.setChainNetworkData(caipNetwork.chainNamespace, { caipNetwork });\n        if (newAdapter?.accountState?.address) {\n            state.activeCaipAddress = `${caipNetwork.chainNamespace}:${caipNetwork.id}:${newAdapter?.accountState?.address}`;\n        }\n        else {\n            state.activeCaipAddress = undefined;\n        }\n        // Update the chain's account state with the new caip address value\n        ChainController.setAccountProp('caipAddress', state.activeCaipAddress, caipNetwork.chainNamespace);\n        if (newAdapter) {\n            AccountController.replaceState(newAdapter.accountState);\n        }\n        // Reset send state when switching networks\n        SendController.resetSend();\n        PublicStateController.set({\n            activeChain: state.activeChain,\n            selectedNetworkId: state.activeCaipNetwork?.caipNetworkId\n        });\n        StorageUtil.setActiveCaipNetworkId(caipNetwork.caipNetworkId);\n        const isSupported = ChainController.checkIfSupportedNetwork(caipNetwork.chainNamespace);\n        if (!isSupported &&\n            OptionsController.state.enableNetworkSwitch &&\n            !OptionsController.state.allowUnsupportedChain &&\n            !ConnectionController.state.wcBasic) {\n            ChainController.showUnsupportedChainUI();\n        }\n    },\n    addCaipNetwork(caipNetwork) {\n        if (!caipNetwork) {\n            return;\n        }\n        const chain = state.chains.get(caipNetwork.chainNamespace);\n        if (chain) {\n            chain?.caipNetworks?.push(caipNetwork);\n        }\n    },\n    async switchActiveNamespace(namespace) {\n        if (!namespace) {\n            return;\n        }\n        const isDifferentChain = namespace !== ChainController.state.activeChain;\n        const caipNetworkOfNamespace = ChainController.getNetworkData(namespace)?.caipNetwork;\n        const firstNetworkWithChain = ChainController.getCaipNetworkByNamespace(namespace, caipNetworkOfNamespace?.id);\n        if (isDifferentChain && firstNetworkWithChain) {\n            await ChainController.switchActiveNetwork(firstNetworkWithChain);\n        }\n    },\n    async switchActiveNetwork(network) {\n        const activeAdapter = ChainController.state.chains.get(ChainController.state.activeChain);\n        const unsupportedNetwork = !activeAdapter?.caipNetworks?.some(caipNetwork => caipNetwork.id === state.activeCaipNetwork?.id);\n        const networkControllerClient = ChainController.getNetworkControllerClient(network.chainNamespace);\n        if (networkControllerClient) {\n            try {\n                await networkControllerClient.switchCaipNetwork(network);\n                if (unsupportedNetwork) {\n                    ModalController.close();\n                }\n            }\n            catch (error) {\n                RouterController.goBack();\n            }\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'SWITCH_NETWORK',\n                properties: { network: network.caipNetworkId }\n            });\n        }\n    },\n    getNetworkControllerClient(chainNamespace) {\n        const chain = chainNamespace || state.activeChain;\n        const chainAdapter = state.chains.get(chain);\n        if (!chainAdapter) {\n            throw new Error('Chain adapter not found');\n        }\n        if (!chainAdapter.networkControllerClient) {\n            throw new Error('NetworkController client not set');\n        }\n        return chainAdapter.networkControllerClient;\n    },\n    getConnectionControllerClient(_chain) {\n        const chain = _chain || state.activeChain;\n        if (!chain) {\n            throw new Error('Chain is required to get connection controller client');\n        }\n        const chainAdapter = state.chains.get(chain);\n        if (!chainAdapter?.connectionControllerClient) {\n            throw new Error('ConnectionController client not set');\n        }\n        return chainAdapter.connectionControllerClient;\n    },\n    getAccountProp(key, _chain) {\n        let chain = state.activeChain;\n        if (_chain) {\n            chain = _chain;\n        }\n        if (!chain) {\n            return undefined;\n        }\n        const chainAccountState = state.chains.get(chain)?.accountState;\n        if (!chainAccountState) {\n            return undefined;\n        }\n        return chainAccountState[key];\n    },\n    getNetworkProp(key, namespace) {\n        const chainNetworkState = state.chains.get(namespace)?.networkState;\n        if (!chainNetworkState) {\n            return undefined;\n        }\n        return chainNetworkState[key];\n    },\n    getRequestedCaipNetworks(chainToFilter) {\n        const adapter = state.chains.get(chainToFilter);\n        const { approvedCaipNetworkIds = [], requestedCaipNetworks = [] } = adapter?.networkState || {};\n        const sortedNetworks = CoreHelperUtil.sortRequestedNetworks(approvedCaipNetworkIds, requestedCaipNetworks);\n        return sortedNetworks;\n    },\n    getAllRequestedCaipNetworks() {\n        const requestedCaipNetworks = [];\n        state.chains.forEach(chainAdapter => {\n            const caipNetworks = ChainController.getRequestedCaipNetworks(chainAdapter.namespace);\n            requestedCaipNetworks.push(...caipNetworks);\n        });\n        return requestedCaipNetworks;\n    },\n    setRequestedCaipNetworks(caipNetworks, chain) {\n        ChainController.setAdapterNetworkState(chain, { requestedCaipNetworks: caipNetworks });\n        const allRequestedCaipNetworks = ChainController.getAllRequestedCaipNetworks();\n        const namespaces = allRequestedCaipNetworks.map(network => network.chainNamespace);\n        const uniqueNamespaces = Array.from(new Set(namespaces));\n        ConnectorController.filterByNamespaces(uniqueNamespaces);\n    },\n    getAllApprovedCaipNetworkIds() {\n        const approvedCaipNetworkIds = [];\n        state.chains.forEach(chainAdapter => {\n            const approvedIds = ChainController.getApprovedCaipNetworkIds(chainAdapter.namespace);\n            approvedCaipNetworkIds.push(...approvedIds);\n        });\n        return approvedCaipNetworkIds;\n    },\n    getActiveCaipNetwork() {\n        return state.activeCaipNetwork;\n    },\n    getActiveCaipAddress() {\n        return state.activeCaipAddress;\n    },\n    getApprovedCaipNetworkIds(namespace) {\n        const adapter = state.chains.get(namespace);\n        const approvedCaipNetworkIds = adapter?.networkState?.approvedCaipNetworkIds || [];\n        return approvedCaipNetworkIds;\n    },\n    async setApprovedCaipNetworksData(namespace) {\n        const networkControllerClient = ChainController.getNetworkControllerClient();\n        const data = await networkControllerClient?.getApprovedCaipNetworksData();\n        ChainController.setAdapterNetworkState(namespace, {\n            approvedCaipNetworkIds: data?.approvedCaipNetworkIds,\n            supportsAllNetworks: data?.supportsAllNetworks\n        });\n    },\n    checkIfSupportedNetwork(namespace, caipNetwork) {\n        const activeCaipNetwork = caipNetwork || state.activeCaipNetwork;\n        const requestedCaipNetworks = ChainController.getRequestedCaipNetworks(namespace);\n        if (!requestedCaipNetworks.length) {\n            return true;\n        }\n        return requestedCaipNetworks?.some(network => network.id === activeCaipNetwork?.id);\n    },\n    checkIfSupportedChainId(chainId) {\n        if (!state.activeChain) {\n            return true;\n        }\n        const requestedCaipNetworks = ChainController.getRequestedCaipNetworks(state.activeChain);\n        return requestedCaipNetworks?.some(network => network.id === chainId);\n    },\n    // Smart Account Network Handlers\n    setSmartAccountEnabledNetworks(smartAccountEnabledNetworks, chain) {\n        ChainController.setAdapterNetworkState(chain, { smartAccountEnabledNetworks });\n    },\n    checkIfSmartAccountEnabled() {\n        const networkId = NetworkUtil.caipNetworkIdToNumber(state.activeCaipNetwork?.caipNetworkId);\n        const activeChain = state.activeChain;\n        if (!activeChain || !networkId) {\n            return false;\n        }\n        const smartAccountEnabledNetworks = ChainController.getNetworkProp('smartAccountEnabledNetworks', activeChain);\n        return Boolean(smartAccountEnabledNetworks?.includes(Number(networkId)));\n    },\n    getActiveNetworkTokenAddress() {\n        const namespace = state.activeCaipNetwork?.chainNamespace || 'eip155';\n        const chainId = state.activeCaipNetwork?.id || 1;\n        const address = ConstantsUtil.NATIVE_TOKEN_ADDRESS[namespace];\n        return `${namespace}:${chainId}:${address}`;\n    },\n    showUnsupportedChainUI() {\n        ModalController.open({ view: 'UnsupportedChain' });\n    },\n    checkIfNamesSupported() {\n        const activeCaipNetwork = state.activeCaipNetwork;\n        return Boolean(activeCaipNetwork?.chainNamespace &&\n            ConstantsUtil.NAMES_SUPPORTED_CHAIN_NAMESPACES.includes(activeCaipNetwork.chainNamespace));\n    },\n    resetNetwork(namespace) {\n        ChainController.setAdapterNetworkState(namespace, {\n            approvedCaipNetworkIds: undefined,\n            supportsAllNetworks: true,\n            smartAccountEnabledNetworks: []\n        });\n    },\n    resetAccount(chain) {\n        const chainToWrite = chain;\n        if (!chainToWrite) {\n            throw new Error('Chain is required to set account prop');\n        }\n        state.activeCaipAddress = undefined;\n        ChainController.setChainAccountData(chainToWrite, {\n            smartAccountDeployed: false,\n            currentTab: 0,\n            caipAddress: undefined,\n            address: undefined,\n            balance: undefined,\n            balanceSymbol: undefined,\n            profileName: undefined,\n            profileImage: undefined,\n            addressExplorerUrl: undefined,\n            tokenBalance: [],\n            connectedWalletInfo: undefined,\n            preferredAccountTypes: undefined,\n            socialProvider: undefined,\n            socialWindow: undefined,\n            farcasterUrl: undefined,\n            allAccounts: [],\n            user: undefined,\n            status: 'disconnected'\n        });\n        ConnectorController.removeConnectorId(chainToWrite);\n    },\n    setIsSwitchingNamespace(isSwitchingNamespace) {\n        state.isSwitchingNamespace = isSwitchingNamespace;\n    },\n    getFirstCaipNetworkSupportsAuthConnector() {\n        const availableChains = [];\n        let firstCaipNetwork = undefined;\n        state.chains.forEach(chain => {\n            if (CommonConstantsUtil.AUTH_CONNECTOR_SUPPORTED_CHAINS.find(ns => ns === chain.namespace)) {\n                if (chain.namespace) {\n                    availableChains.push(chain.namespace);\n                }\n            }\n        });\n        if (availableChains.length > 0) {\n            const firstAvailableChain = availableChains[0];\n            firstCaipNetwork = firstAvailableChain\n                ? state.chains.get(firstAvailableChain)?.caipNetworks?.[0]\n                : undefined;\n            return firstCaipNetwork;\n        }\n        return undefined;\n    },\n    getAccountData(chainNamespace) {\n        if (!chainNamespace) {\n            return AccountController.state;\n        }\n        return ChainController.state.chains.get(chainNamespace)?.accountState;\n    },\n    getNetworkData(chainNamespace) {\n        const namespace = chainNamespace || state.activeChain;\n        if (!namespace) {\n            return undefined;\n        }\n        return ChainController.state.chains.get(namespace)?.networkState;\n    },\n    getCaipNetworkByNamespace(chainNamespace, chainId) {\n        if (!chainNamespace) {\n            return undefined;\n        }\n        const chain = ChainController.state.chains.get(chainNamespace);\n        const byChainId = chain?.caipNetworks?.find(network => network.id === chainId);\n        if (byChainId) {\n            return byChainId;\n        }\n        return chain?.networkState?.caipNetwork || chain?.caipNetworks?.[0];\n    },\n    /**\n     * Get the requested CaipNetwork IDs for a given namespace. If namespace is not provided, all requested CaipNetwork IDs will be returned\n     * @param namespace - The namespace to get the requested CaipNetwork IDs for\n     * @returns The requested CaipNetwork IDs\n     */\n    getRequestedCaipNetworkIds() {\n        const namespace = ConnectorController.state.filterByNamespace;\n        const chains = namespace ? [state.chains.get(namespace)] : Array.from(state.chains.values());\n        return chains\n            .flatMap(chain => chain?.caipNetworks || [])\n            .map(caipNetwork => caipNetwork.caipNetworkId);\n    },\n    getCaipNetworks(namespace) {\n        if (namespace) {\n            return ChainController.getRequestedCaipNetworks(namespace);\n        }\n        return ChainController.getAllRequestedCaipNetworks();\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const ChainController = withErrorBoundary(controller);\n//# sourceMappingURL=ChainController.js.map","import { proxy } from 'valtio/vanilla';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { AccountController } from './AccountController.js';\nimport { ChainController } from './ChainController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { SnackController } from './SnackController.js';\nconst DEFAULT_OPTIONS = {\n    purchaseCurrencies: [\n        {\n            id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n            name: 'USD Coin',\n            symbol: 'USDC',\n            networks: [\n                {\n                    name: 'ethereum-mainnet',\n                    display_name: 'Ethereum',\n                    chain_id: '1',\n                    contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n                },\n                {\n                    name: 'polygon-mainnet',\n                    display_name: 'Polygon',\n                    chain_id: '137',\n                    contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n                }\n            ]\n        },\n        {\n            id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n            name: 'Ether',\n            symbol: 'ETH',\n            networks: [\n                {\n                    name: 'ethereum-mainnet',\n                    display_name: 'Ethereum',\n                    chain_id: '1',\n                    contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n                },\n                {\n                    name: 'polygon-mainnet',\n                    display_name: 'Polygon',\n                    chain_id: '137',\n                    contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n                }\n            ]\n        }\n    ],\n    paymentCurrencies: [\n        {\n            id: 'USD',\n            payment_method_limits: [\n                {\n                    id: 'card',\n                    min: '10.00',\n                    max: '7500.00'\n                },\n                {\n                    id: 'ach_bank_account',\n                    min: '10.00',\n                    max: '25000.00'\n                }\n            ]\n        },\n        {\n            id: 'EUR',\n            payment_method_limits: [\n                {\n                    id: 'card',\n                    min: '10.00',\n                    max: '7500.00'\n                },\n                {\n                    id: 'ach_bank_account',\n                    min: '10.00',\n                    max: '25000.00'\n                }\n            ]\n        }\n    ]\n};\n// -- Helpers ------------------------------------------- //\nconst baseUrl = CoreHelperUtil.getBlockchainApiUrl();\n// -- State --------------------------------------------- //\nconst state = proxy({\n    clientId: null,\n    api: new FetchUtil({ baseUrl, clientId: null }),\n    supportedChains: { http: [], ws: [] }\n});\n// -- Controller ---------------------------------------- //\nexport const BlockchainApiController = {\n    state,\n    async get(request) {\n        const { st, sv } = BlockchainApiController.getSdkProperties();\n        const projectId = OptionsController.state.projectId;\n        const params = {\n            ...(request.params || {}),\n            st,\n            sv,\n            projectId\n        };\n        return state.api.get({\n            ...request,\n            params\n        });\n    },\n    getSdkProperties() {\n        const { sdkType, sdkVersion } = OptionsController.state;\n        return {\n            st: sdkType || 'unknown',\n            sv: sdkVersion || 'unknown'\n        };\n    },\n    async isNetworkSupported(networkId) {\n        if (!networkId) {\n            return false;\n        }\n        try {\n            if (!state.supportedChains.http.length) {\n                await BlockchainApiController.getSupportedNetworks();\n            }\n        }\n        catch (e) {\n            return false;\n        }\n        return state.supportedChains.http.includes(networkId);\n    },\n    async getSupportedNetworks() {\n        try {\n            const supportedChains = await BlockchainApiController.get({\n                path: 'v1/supported-chains'\n            });\n            state.supportedChains = supportedChains;\n            return supportedChains;\n        }\n        catch {\n            return state.supportedChains;\n        }\n    },\n    async fetchIdentity({ address, caipNetworkId }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(caipNetworkId);\n        if (!isSupported) {\n            return { avatar: '', name: '' };\n        }\n        const identityCache = StorageUtil.getIdentityFromCacheForAddress(address);\n        if (identityCache) {\n            return identityCache;\n        }\n        const result = await BlockchainApiController.get({\n            path: `/v1/identity/${address}`,\n            params: {\n                sender: ChainController.state.activeCaipAddress\n                    ? CoreHelperUtil.getPlainAddress(ChainController.state.activeCaipAddress)\n                    : undefined\n            }\n        });\n        StorageUtil.updateIdentityCache({\n            address,\n            identity: result,\n            timestamp: Date.now()\n        });\n        return result;\n    },\n    async fetchTransactions({ account, cursor, onramp, signal, cache, chainId }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { data: [], next: undefined };\n        }\n        return BlockchainApiController.get({\n            path: `/v1/account/${account}/history`,\n            params: {\n                cursor,\n                onramp,\n                chainId\n            },\n            signal,\n            cache\n        });\n    },\n    async fetchSwapQuote({ amount, userAddress, from, to, gasPrice }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { quotes: [] };\n        }\n        return BlockchainApiController.get({\n            path: `/v1/convert/quotes`,\n            headers: {\n                'Content-Type': 'application/json'\n            },\n            params: {\n                amount,\n                userAddress,\n                from,\n                to,\n                gasPrice\n            }\n        });\n    },\n    async fetchSwapTokens({ chainId }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { tokens: [] };\n        }\n        return BlockchainApiController.get({\n            path: `/v1/convert/tokens`,\n            params: { chainId }\n        });\n    },\n    async fetchTokenPrice({ addresses }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { fungibles: [] };\n        }\n        return state.api.post({\n            path: '/v1/fungible/price',\n            body: {\n                currency: 'usd',\n                addresses,\n                projectId: OptionsController.state.projectId\n            },\n            headers: {\n                'Content-Type': 'application/json'\n            }\n        });\n    },\n    async fetchSwapAllowance({ tokenAddress, userAddress }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { allowance: '0' };\n        }\n        return BlockchainApiController.get({\n            path: `/v1/convert/allowance`,\n            params: {\n                tokenAddress,\n                userAddress\n            },\n            headers: {\n                'Content-Type': 'application/json'\n            }\n        });\n    },\n    async fetchGasPrice({ chainId }) {\n        const { st, sv } = BlockchainApiController.getSdkProperties();\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            throw new Error('Network not supported for Gas Price');\n        }\n        return BlockchainApiController.get({\n            path: `/v1/convert/gas-price`,\n            headers: {\n                'Content-Type': 'application/json'\n            },\n            params: {\n                chainId,\n                st,\n                sv\n            }\n        });\n    },\n    async generateSwapCalldata({ amount, from, to, userAddress, disableEstimate }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            throw new Error('Network not supported for Swaps');\n        }\n        return state.api.post({\n            path: '/v1/convert/build-transaction',\n            headers: {\n                'Content-Type': 'application/json'\n            },\n            body: {\n                amount,\n                eip155: {\n                    slippage: ConstantsUtil.CONVERT_SLIPPAGE_TOLERANCE\n                },\n                projectId: OptionsController.state.projectId,\n                from,\n                to,\n                userAddress,\n                disableEstimate\n            }\n        });\n    },\n    async generateApproveCalldata({ from, to, userAddress }) {\n        const { st, sv } = BlockchainApiController.getSdkProperties();\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            throw new Error('Network not supported for Swaps');\n        }\n        return BlockchainApiController.get({\n            path: `/v1/convert/build-approve`,\n            headers: {\n                'Content-Type': 'application/json'\n            },\n            params: {\n                userAddress,\n                from,\n                to,\n                st,\n                sv\n            }\n        });\n    },\n    async getBalance(address, chainId, forceUpdate) {\n        const { st, sv } = BlockchainApiController.getSdkProperties();\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            SnackController.showError('Token Balance Unavailable');\n            return { balances: [] };\n        }\n        const caipAddress = `${chainId}:${address}`;\n        const cachedBalance = StorageUtil.getBalanceCacheForCaipAddress(caipAddress);\n        if (cachedBalance) {\n            return cachedBalance;\n        }\n        const balance = await BlockchainApiController.get({\n            path: `/v1/account/${address}/balance`,\n            params: {\n                currency: 'usd',\n                chainId,\n                forceUpdate,\n                st,\n                sv\n            }\n        });\n        StorageUtil.updateBalanceCache({\n            caipAddress,\n            balance,\n            timestamp: Date.now()\n        });\n        return balance;\n    },\n    async lookupEnsName(name) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { addresses: {}, attributes: [] };\n        }\n        return BlockchainApiController.get({\n            path: `/v1/profile/account/${name}`,\n            params: { apiVersion: '2' }\n        });\n    },\n    async reverseLookupEnsName({ address }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return [];\n        }\n        return BlockchainApiController.get({\n            path: `/v1/profile/reverse/${address}`,\n            params: {\n                sender: AccountController.state.address,\n                apiVersion: '2'\n            }\n        });\n    },\n    async getEnsNameSuggestions(name) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { suggestions: [] };\n        }\n        return BlockchainApiController.get({\n            path: `/v1/profile/suggestions/${name}`,\n            params: { zone: 'reown.id' }\n        });\n    },\n    async registerEnsName({ coinType, address, message, signature }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { success: false };\n        }\n        return state.api.post({\n            path: `/v1/profile/account`,\n            body: { coin_type: coinType, address, message, signature },\n            headers: {\n                'Content-Type': 'application/json'\n            }\n        });\n    },\n    async generateOnRampURL({ destinationWallets, partnerUserId, defaultNetwork, purchaseAmount, paymentAmount }) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return '';\n        }\n        const response = await state.api.post({\n            path: `/v1/generators/onrampurl`,\n            params: {\n                projectId: OptionsController.state.projectId\n            },\n            body: {\n                destinationWallets,\n                defaultNetwork,\n                partnerUserId,\n                defaultExperience: 'buy',\n                presetCryptoAmount: purchaseAmount,\n                presetFiatAmount: paymentAmount\n            }\n        });\n        return response.url;\n    },\n    async getOnrampOptions() {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { paymentCurrencies: [], purchaseCurrencies: [] };\n        }\n        try {\n            const response = await BlockchainApiController.get({\n                path: `/v1/onramp/options`\n            });\n            return response;\n        }\n        catch (e) {\n            return DEFAULT_OPTIONS;\n        }\n    },\n    async getOnrampQuote({ purchaseCurrency, paymentCurrency, amount, network }) {\n        try {\n            const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n            if (!isSupported) {\n                return null;\n            }\n            const response = await state.api.post({\n                path: `/v1/onramp/quote`,\n                params: {\n                    projectId: OptionsController.state.projectId\n                },\n                body: {\n                    purchaseCurrency,\n                    paymentCurrency,\n                    amount,\n                    network\n                }\n            });\n            return response;\n        }\n        catch (e) {\n            // Mocking response as 1:1 until endpoint is ready\n            return {\n                coinbaseFee: { amount, currency: paymentCurrency.id },\n                networkFee: { amount, currency: paymentCurrency.id },\n                paymentSubtotal: { amount, currency: paymentCurrency.id },\n                paymentTotal: { amount, currency: paymentCurrency.id },\n                purchaseAmount: { amount, currency: paymentCurrency.id },\n                quoteId: 'mocked-quote-id'\n            };\n        }\n    },\n    async getSmartSessions(caipAddress) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return [];\n        }\n        return BlockchainApiController.get({\n            path: `/v1/sessions/${caipAddress}`\n        });\n    },\n    async revokeSmartSession(address, pci, signature) {\n        const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n        if (!isSupported) {\n            return { success: false };\n        }\n        return state.api.post({\n            path: `/v1/sessions/${address}/revoke`,\n            params: {\n                projectId: OptionsController.state.projectId\n            },\n            body: {\n                pci,\n                signature\n            }\n        });\n    },\n    setClientId(clientId) {\n        state.clientId = clientId;\n        state.api = new FetchUtil({ baseUrl, clientId });\n    }\n};\n//# sourceMappingURL=BlockchainApiController.js.map","import { proxy, ref } from 'valtio/vanilla';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { SnackController } from './SnackController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    currentTab: 0,\n    tokenBalance: [],\n    smartAccountDeployed: false,\n    addressLabels: new Map(),\n    allAccounts: []\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    replaceState(newState) {\n        if (!newState) {\n            return;\n        }\n        Object.assign(state, ref(newState));\n    },\n    subscribe(callback) {\n        return ChainController.subscribeChainProp('accountState', accountState => {\n            if (accountState) {\n                return callback(accountState);\n            }\n            return undefined;\n        });\n    },\n    subscribeKey(property, callback, chain) {\n        let prev = undefined;\n        return ChainController.subscribeChainProp('accountState', accountState => {\n            if (accountState) {\n                const nextValue = accountState[property];\n                if (prev !== nextValue) {\n                    prev = nextValue;\n                    callback(nextValue);\n                }\n            }\n        }, chain);\n    },\n    setStatus(status, chain) {\n        ChainController.setAccountProp('status', status, chain);\n    },\n    getCaipAddress(chain) {\n        return ChainController.getAccountProp('caipAddress', chain);\n    },\n    setCaipAddress(caipAddress, chain) {\n        const newAddress = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;\n        if (chain === ChainController.state.activeChain) {\n            ChainController.state.activeCaipAddress = caipAddress;\n        }\n        ChainController.setAccountProp('caipAddress', caipAddress, chain);\n        ChainController.setAccountProp('address', newAddress, chain);\n    },\n    setBalance(balance, balanceSymbol, chain) {\n        ChainController.setAccountProp('balance', balance, chain);\n        ChainController.setAccountProp('balanceSymbol', balanceSymbol, chain);\n    },\n    setProfileName(profileName, chain) {\n        ChainController.setAccountProp('profileName', profileName, chain);\n    },\n    setProfileImage(profileImage, chain) {\n        ChainController.setAccountProp('profileImage', profileImage, chain);\n    },\n    setUser(user, chain) {\n        ChainController.setAccountProp('user', user, chain);\n    },\n    setAddressExplorerUrl(explorerUrl, chain) {\n        ChainController.setAccountProp('addressExplorerUrl', explorerUrl, chain);\n    },\n    setSmartAccountDeployed(isDeployed, chain) {\n        ChainController.setAccountProp('smartAccountDeployed', isDeployed, chain);\n    },\n    setCurrentTab(currentTab) {\n        ChainController.setAccountProp('currentTab', currentTab, ChainController.state.activeChain);\n    },\n    setTokenBalance(tokenBalance, chain) {\n        if (tokenBalance) {\n            ChainController.setAccountProp('tokenBalance', tokenBalance, chain);\n        }\n    },\n    setShouldUpdateToAddress(address, chain) {\n        ChainController.setAccountProp('shouldUpdateToAddress', address, chain);\n    },\n    setAllAccounts(accounts, namespace) {\n        ChainController.setAccountProp('allAccounts', accounts, namespace);\n    },\n    addAddressLabel(address, label, chain) {\n        const map = ChainController.getAccountProp('addressLabels', chain) || new Map();\n        map.set(address, label);\n        ChainController.setAccountProp('addressLabels', map, chain);\n    },\n    removeAddressLabel(address, chain) {\n        const map = ChainController.getAccountProp('addressLabels', chain) || new Map();\n        map.delete(address);\n        ChainController.setAccountProp('addressLabels', map, chain);\n    },\n    setConnectedWalletInfo(connectedWalletInfo, chain) {\n        ChainController.setAccountProp('connectedWalletInfo', connectedWalletInfo, chain, false);\n    },\n    setPreferredAccountType(preferredAccountType, chain) {\n        ChainController.setAccountProp('preferredAccountTypes', {\n            ...state.preferredAccountTypes,\n            [chain]: preferredAccountType\n        }, chain);\n    },\n    setPreferredAccountTypes(preferredAccountTypes) {\n        state.preferredAccountTypes = preferredAccountTypes;\n    },\n    setSocialProvider(socialProvider, chain) {\n        if (socialProvider) {\n            ChainController.setAccountProp('socialProvider', socialProvider, chain);\n        }\n    },\n    setSocialWindow(socialWindow, chain) {\n        ChainController.setAccountProp('socialWindow', socialWindow ? ref(socialWindow) : undefined, chain);\n    },\n    setFarcasterUrl(farcasterUrl, chain) {\n        ChainController.setAccountProp('farcasterUrl', farcasterUrl, chain);\n    },\n    async fetchTokenBalance(onError) {\n        state.balanceLoading = true;\n        const chainId = ChainController.state.activeCaipNetwork?.caipNetworkId;\n        const chain = ChainController.state.activeCaipNetwork?.chainNamespace;\n        const caipAddress = ChainController.state.activeCaipAddress;\n        const address = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;\n        if (state.lastRetry &&\n            !CoreHelperUtil.isAllowedRetry(state.lastRetry, 30 * ConstantsUtil.ONE_SEC_MS)) {\n            state.balanceLoading = false;\n            return [];\n        }\n        try {\n            if (address && chainId && chain) {\n                const response = await BlockchainApiController.getBalance(address, chainId);\n                /*\n                 * The 1Inch API includes many low-quality tokens in the balance response,\n                 * which appear inconsistently. This filter prevents them from being displayed.\n                 */\n                const filteredBalances = response.balances.filter(balance => balance.quantity.decimals !== '0');\n                AccountController.setTokenBalance(filteredBalances, chain);\n                state.lastRetry = undefined;\n                state.balanceLoading = false;\n                return filteredBalances;\n            }\n        }\n        catch (error) {\n            state.lastRetry = Date.now();\n            onError?.(error);\n            SnackController.showError('Token Balance Unavailable');\n        }\n        finally {\n            state.balanceLoading = false;\n        }\n        return [];\n    },\n    resetAccount(chain) {\n        ChainController.resetAccount(chain);\n    }\n};\nexport const AccountController = withErrorBoundary(controller);\n//# sourceMappingURL=AccountController.js.map","import { ConstantsUtil } from '@reown/appkit-common';\nimport { AccountController } from '../controllers/AccountController.js';\nimport { ChainController } from '../controllers/ChainController.js';\nimport { ConnectorController } from '../controllers/ConnectorController.js';\nimport { RouterController } from '../controllers/RouterController.js';\nexport const NetworkUtil = {\n    /**\n     * Function to handle the network switch.\n     * This function has variety of conditions to handle the network switch depending on the connectors or namespace's connection states.\n     * @param args.network - The network to switch to.\n     * @param args.shouldConfirmSwitch - Whether to confirm the switch. If true, the user will be asked to confirm the switch if necessary.\n     * @returns void\n     */\n    onSwitchNetwork({ network, ignoreSwitchConfirmation = false }) {\n        const currentNetwork = ChainController.state.activeCaipNetwork;\n        const routerData = RouterController.state.data;\n        const isSameNetwork = network.id === currentNetwork?.id;\n        if (isSameNetwork) {\n            return;\n        }\n        const isCurrentNamespaceConnected = AccountController.getCaipAddress(ChainController.state.activeChain);\n        const isDifferentNamespace = network.chainNamespace !== ChainController.state.activeChain;\n        const isNextNamespaceConnected = AccountController.getCaipAddress(network.chainNamespace);\n        const connectorId = ConnectorController.getConnectorId(ChainController.state.activeChain);\n        /**\n         * If the network is supported by the auth connector, we don't need to show switch active chain view.\n         * But there are some cases like switching from Ethereum to Bitcoin where Bitcoin is not supported by the auth connector and users should connect with another connector.\n         */\n        const isConnectedWithAuth = connectorId === ConstantsUtil.CONNECTOR_ID.AUTH;\n        const isSupportedForAuthConnector = ConstantsUtil.AUTH_CONNECTOR_SUPPORTED_CHAINS.find(c => c === network.chainNamespace);\n        /**\n         * 1. If the ignoreSwitchConfirmation is set to true, we should switch to the network,\n         * 2. If user connected with auth connector and the next network is supported by the auth connector,\n         * we should switch to the network without confirmation screen.\n         */\n        if (ignoreSwitchConfirmation || (isConnectedWithAuth && isSupportedForAuthConnector)) {\n            RouterController.push('SwitchNetwork', { ...routerData, network });\n        }\n        else if (\n        /**\n         * If user switching to a different namespace and next namespace is not connected, we need to show switch active chain view for confirmation first.\n         */\n        isCurrentNamespaceConnected &&\n            isDifferentNamespace &&\n            !isNextNamespaceConnected) {\n            RouterController.push('SwitchActiveChain', {\n                switchToChain: network.chainNamespace,\n                navigateTo: 'Connect',\n                navigateWithReplace: true,\n                network\n            });\n        }\n        else {\n            RouterController.push('SwitchNetwork', { ...routerData, network });\n        }\n    }\n};\n//# sourceMappingURL=NetworkUtil.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport {} from '@reown/appkit-common';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { NetworkUtil } from '../utils/NetworkUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ApiController } from './ApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { PublicStateController } from './PublicStateController.js';\nimport { RouterController } from './RouterController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    loading: false,\n    loadingNamespaceMap: new Map(),\n    open: false,\n    shake: false,\n    namespace: undefined\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    async open(options) {\n        const isConnected = AccountController.state.status === 'connected';\n        const namespace = options?.namespace;\n        const currentNamespace = ChainController.state.activeChain;\n        const isSwitchingNamespace = namespace && namespace !== currentNamespace;\n        const caipAddress = ChainController.getAccountData(options?.namespace)?.caipAddress;\n        if (ConnectionController.state.wcBasic) {\n            // No need to add an await here if we are use basic\n            ApiController.prefetch({ fetchNetworkImages: false, fetchConnectorImages: false });\n        }\n        else {\n            await ApiController.prefetch({\n                fetchConnectorImages: !isConnected,\n                fetchFeaturedWallets: !isConnected,\n                fetchRecommendedWallets: !isConnected\n            });\n        }\n        ConnectorController.setFilterByNamespace(options?.namespace);\n        ModalController.setLoading(true, namespace);\n        if (namespace && isSwitchingNamespace) {\n            const namespaceNetwork = ChainController.getNetworkData(namespace)?.caipNetwork ||\n                ChainController.getRequestedCaipNetworks(namespace)[0];\n            if (namespaceNetwork) {\n                NetworkUtil.onSwitchNetwork({ network: namespaceNetwork, ignoreSwitchConfirmation: true });\n            }\n        }\n        else {\n            const hasNoAdapters = ChainController.state.noAdapters;\n            if (OptionsController.state.manualWCControl || (hasNoAdapters && !caipAddress)) {\n                if (CoreHelperUtil.isMobile()) {\n                    RouterController.reset('AllWallets');\n                }\n                else {\n                    RouterController.reset('ConnectingWalletConnectBasic');\n                }\n            }\n            else if (options?.view) {\n                RouterController.reset(options.view, options.data);\n            }\n            else if (caipAddress) {\n                RouterController.reset('Account');\n            }\n            else {\n                RouterController.reset('Connect');\n            }\n        }\n        state.open = true;\n        PublicStateController.set({ open: true });\n        EventsController.sendEvent({\n            type: 'track',\n            event: 'MODAL_OPEN',\n            properties: { connected: Boolean(caipAddress) }\n        });\n    },\n    close() {\n        const isEmbeddedEnabled = OptionsController.state.enableEmbedded;\n        const isConnected = Boolean(ChainController.state.activeCaipAddress);\n        // Only send the event if the modal is open and is about to be closed\n        if (state.open) {\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'MODAL_CLOSE',\n                properties: { connected: isConnected }\n            });\n        }\n        state.open = false;\n        RouterController.reset('Connect');\n        ModalController.clearLoading();\n        if (isEmbeddedEnabled) {\n            if (isConnected) {\n                RouterController.replace('Account');\n            }\n            else {\n                RouterController.push('Connect');\n            }\n        }\n        else {\n            PublicStateController.set({ open: false });\n        }\n        ConnectionController.resetUri();\n    },\n    setLoading(loading, namespace) {\n        if (namespace) {\n            state.loadingNamespaceMap.set(namespace, loading);\n        }\n        state.loading = loading;\n        PublicStateController.set({ loading });\n    },\n    clearLoading() {\n        state.loadingNamespaceMap.clear();\n        state.loading = false;\n    },\n    shake() {\n        if (state.shake) {\n            return;\n        }\n        state.shake = true;\n        setTimeout(() => {\n            state.shake = false;\n        }, 500);\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const ModalController = withErrorBoundary(controller);\n//# sourceMappingURL=ModalController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil } from '@reown/appkit-common';\nimport { MELD_PUBLIC_KEY, ONRAMP_PROVIDERS } from '../utils/ConstantsUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ApiController } from './ApiController.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { OptionsController } from './OptionsController.js';\nexport const USDC_CURRENCY_DEFAULT = {\n    id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n    name: 'USD Coin',\n    symbol: 'USDC',\n    networks: [\n        {\n            name: 'ethereum-mainnet',\n            display_name: 'Ethereum',\n            chain_id: '1',\n            contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n        },\n        {\n            name: 'polygon-mainnet',\n            display_name: 'Polygon',\n            chain_id: '137',\n            contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n        }\n    ]\n};\nexport const USD_CURRENCY_DEFAULT = {\n    id: 'USD',\n    payment_method_limits: [\n        {\n            id: 'card',\n            min: '10.00',\n            max: '7500.00'\n        },\n        {\n            id: 'ach_bank_account',\n            min: '10.00',\n            max: '25000.00'\n        }\n    ]\n};\nconst defaultState = {\n    providers: ONRAMP_PROVIDERS,\n    selectedProvider: null,\n    error: null,\n    purchaseCurrency: USDC_CURRENCY_DEFAULT,\n    paymentCurrency: USD_CURRENCY_DEFAULT,\n    purchaseCurrencies: [USDC_CURRENCY_DEFAULT],\n    paymentCurrencies: [],\n    quotesLoading: false\n};\n// -- State --------------------------------------------- //\nconst state = proxy(defaultState);\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    setSelectedProvider(provider) {\n        if (provider && provider.name === 'meld') {\n            const currency = ChainController.state.activeChain === ConstantsUtil.CHAIN.SOLANA ? 'SOL' : 'USDC';\n            const address = AccountController.state.address ?? '';\n            const url = new URL(provider.url);\n            url.searchParams.append('publicKey', MELD_PUBLIC_KEY);\n            url.searchParams.append('destinationCurrencyCode', currency);\n            url.searchParams.append('walletAddress', address);\n            url.searchParams.append('externalCustomerId', OptionsController.state.projectId);\n            state.selectedProvider = { ...provider, url: url.toString() };\n        }\n        else {\n            state.selectedProvider = provider;\n        }\n    },\n    setOnrampProviders(providers) {\n        if (Array.isArray(providers) && providers.every(item => typeof item === 'string')) {\n            const validOnramp = providers;\n            const newProviders = ONRAMP_PROVIDERS.filter(provider => validOnramp.includes(provider.name));\n            state.providers = newProviders;\n        }\n        else {\n            state.providers = [];\n        }\n    },\n    setPurchaseCurrency(currency) {\n        state.purchaseCurrency = currency;\n    },\n    setPaymentCurrency(currency) {\n        state.paymentCurrency = currency;\n    },\n    setPurchaseAmount(amount) {\n        OnRampController.state.purchaseAmount = amount;\n    },\n    setPaymentAmount(amount) {\n        OnRampController.state.paymentAmount = amount;\n    },\n    async getAvailableCurrencies() {\n        const options = await BlockchainApiController.getOnrampOptions();\n        state.purchaseCurrencies = options.purchaseCurrencies;\n        state.paymentCurrencies = options.paymentCurrencies;\n        state.paymentCurrency = options.paymentCurrencies[0] || USD_CURRENCY_DEFAULT;\n        state.purchaseCurrency = options.purchaseCurrencies[0] || USDC_CURRENCY_DEFAULT;\n        await ApiController.fetchCurrencyImages(options.paymentCurrencies.map(currency => currency.id));\n        await ApiController.fetchTokenImages(options.purchaseCurrencies.map(currency => currency.symbol));\n    },\n    async getQuote() {\n        state.quotesLoading = true;\n        try {\n            const quote = await BlockchainApiController.getOnrampQuote({\n                purchaseCurrency: state.purchaseCurrency,\n                paymentCurrency: state.paymentCurrency,\n                amount: state.paymentAmount?.toString() || '0',\n                network: state.purchaseCurrency?.symbol\n            });\n            state.quotesLoading = false;\n            state.purchaseAmount = Number(quote?.purchaseAmount.amount);\n            return quote;\n        }\n        catch (error) {\n            state.error = error.message;\n            state.quotesLoading = false;\n            return null;\n        }\n        finally {\n            state.quotesLoading = false;\n        }\n    },\n    resetState() {\n        state.selectedProvider = null;\n        state.error = null;\n        state.purchaseCurrency = USDC_CURRENCY_DEFAULT;\n        state.paymentCurrency = USD_CURRENCY_DEFAULT;\n        state.purchaseCurrencies = [USDC_CURRENCY_DEFAULT];\n        state.paymentCurrencies = [];\n        state.paymentAmount = undefined;\n        state.purchaseAmount = undefined;\n        state.quotesLoading = false;\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const OnRampController = withErrorBoundary(controller);\n//# sourceMappingURL=OnRampController.js.map","const SLIP44_MSB = 0x80000000;\nexport const EnsUtil = {\n    convertEVMChainIdToCoinType(chainId) {\n        if (chainId >= SLIP44_MSB) {\n            throw new Error('Invalid chainId');\n        }\n        return (SLIP44_MSB | chainId) >>> 0;\n    }\n};\n//# sourceMappingURL=EnsUtil.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { EnsUtil } from '../utils/EnsUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { RouterController } from './RouterController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n    suggestions: [],\n    loading: false\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    async resolveName(name) {\n        try {\n            return await BlockchainApiController.lookupEnsName(name);\n        }\n        catch (e) {\n            const error = e;\n            throw new Error(error?.reasons?.[0]?.description || 'Error resolving name');\n        }\n    },\n    async isNameRegistered(name) {\n        try {\n            await BlockchainApiController.lookupEnsName(name);\n            return true;\n        }\n        catch {\n            return false;\n        }\n    },\n    async getSuggestions(value) {\n        try {\n            state.loading = true;\n            state.suggestions = [];\n            const response = await BlockchainApiController.getEnsNameSuggestions(value);\n            state.suggestions =\n                response.suggestions.map(suggestion => ({\n                    ...suggestion,\n                    name: suggestion.name\n                })) || [];\n            return state.suggestions;\n        }\n        catch (e) {\n            const errorMessage = EnsController.parseEnsApiError(e, 'Error fetching name suggestions');\n            throw new Error(errorMessage);\n        }\n        finally {\n            state.loading = false;\n        }\n    },\n    async getNamesForAddress(address) {\n        try {\n            const network = ChainController.state.activeCaipNetwork;\n            if (!network) {\n                return [];\n            }\n            const cachedEns = StorageUtil.getEnsFromCacheForAddress(address);\n            if (cachedEns) {\n                return cachedEns;\n            }\n            const response = await BlockchainApiController.reverseLookupEnsName({ address });\n            StorageUtil.updateEnsCache({\n                address,\n                ens: response,\n                timestamp: Date.now()\n            });\n            return response;\n        }\n        catch (e) {\n            const errorMessage = EnsController.parseEnsApiError(e, 'Error fetching names for address');\n            throw new Error(errorMessage);\n        }\n    },\n    async registerName(name) {\n        const network = ChainController.state.activeCaipNetwork;\n        if (!network) {\n            throw new Error('Network not found');\n        }\n        const address = AccountController.state.address;\n        const emailConnector = ConnectorController.getAuthConnector();\n        if (!address || !emailConnector) {\n            throw new Error('Address or auth connector not found');\n        }\n        state.loading = true;\n        try {\n            const message = JSON.stringify({\n                name,\n                attributes: {},\n                // Unix timestamp\n                timestamp: Math.floor(Date.now() / 1000)\n            });\n            RouterController.pushTransactionStack({\n                onCancel() {\n                    RouterController.replace('RegisterAccountName');\n                }\n            });\n            const signature = await ConnectionController.signMessage(message);\n            state.loading = false;\n            const networkId = network.id;\n            if (!networkId) {\n                throw new Error('Network not found');\n            }\n            const coinType = EnsUtil.convertEVMChainIdToCoinType(Number(networkId));\n            await BlockchainApiController.registerEnsName({\n                coinType,\n                address: address,\n                signature: signature,\n                message\n            });\n            AccountController.setProfileName(name, network.chainNamespace);\n            RouterController.replace('RegisterAccountNameSuccess');\n        }\n        catch (e) {\n            const errorMessage = EnsController.parseEnsApiError(e, `Error registering name ${name}`);\n            RouterController.replace('RegisterAccountName');\n            throw new Error(errorMessage);\n        }\n        finally {\n            state.loading = false;\n        }\n    },\n    validateName(name) {\n        return /^[a-zA-Z0-9-]{4,}$/u.test(name);\n    },\n    parseEnsApiError(error, defaultError) {\n        const ensError = error;\n        return ensError?.reasons?.[0]?.description || defaultError;\n    }\n};\n// Export the controller wrapped with our error boundary\nexport const EnsController = withErrorBoundary(controller);\n//# sourceMappingURL=EnsController.js.map","import UniversalProvider from '@walletconnect/universal-provider';\nimport { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport { AccountController } from '../controllers/AccountController.js';\nimport { ChainController } from '../controllers/ChainController.js';\nimport { ConnectionController } from '../controllers/ConnectionController.js';\nimport { ConnectorController } from '../controllers/ConnectorController.js';\nimport { EventsController } from '../controllers/EventsController.js';\nimport { ModalController } from '../controllers/ModalController.js';\nimport { OptionsController } from '../controllers/OptionsController.js';\nimport { RouterController } from '../controllers/RouterController.js';\nimport { SnackController } from '../controllers/SnackController.js';\nimport { CoreHelperUtil } from './CoreHelperUtil.js';\n/**\n * SIWXUtil holds the methods to interact with the SIWX plugin and must be called internally on AppKit.\n */\nexport const SIWXUtil = {\n    getSIWX() {\n        return OptionsController.state.siwx;\n    },\n    async initializeIfEnabled() {\n        const siwx = OptionsController.state.siwx;\n        const caipAddress = ChainController.getActiveCaipAddress();\n        if (!(siwx && caipAddress)) {\n            return;\n        }\n        const [namespace, chainId, address] = caipAddress.split(':');\n        if (!ChainController.checkIfSupportedNetwork(namespace)) {\n            return;\n        }\n        try {\n            const sessions = await siwx.getSessions(`${namespace}:${chainId}`, address);\n            if (sessions.length) {\n                return;\n            }\n            await ModalController.open({\n                view: 'SIWXSignMessage'\n            });\n        }\n        catch (error) {\n            // eslint-disable-next-line no-console\n            console.error('SIWXUtil:initializeIfEnabled', error);\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'SIWX_AUTH_ERROR',\n                properties: this.getSIWXEventProperties()\n            });\n            // eslint-disable-next-line no-console\n            await ConnectionController._getClient()?.disconnect().catch(console.error);\n            RouterController.reset('Connect');\n            SnackController.showError('A problem occurred while trying initialize authentication');\n        }\n    },\n    async requestSignMessage() {\n        const siwx = OptionsController.state.siwx;\n        const address = CoreHelperUtil.getPlainAddress(ChainController.getActiveCaipAddress());\n        const network = ChainController.getActiveCaipNetwork();\n        const client = ConnectionController._getClient();\n        if (!siwx) {\n            throw new Error('SIWX is not enabled');\n        }\n        if (!address) {\n            throw new Error('No ActiveCaipAddress found');\n        }\n        if (!network) {\n            throw new Error('No ActiveCaipNetwork or client found');\n        }\n        if (!client) {\n            throw new Error('No ConnectionController client found');\n        }\n        try {\n            const siwxMessage = await siwx.createMessage({\n                chainId: network.caipNetworkId,\n                accountAddress: address\n            });\n            const message = siwxMessage.toString();\n            const connectorId = ConnectorController.getConnectorId(network.chainNamespace);\n            if (connectorId === CommonConstantsUtil.CONNECTOR_ID.AUTH) {\n                RouterController.pushTransactionStack({});\n            }\n            const signature = await client.signMessage(message);\n            await siwx.addSession({\n                data: siwxMessage,\n                message,\n                signature: signature\n            });\n            ModalController.close();\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'SIWX_AUTH_SUCCESS',\n                properties: this.getSIWXEventProperties()\n            });\n        }\n        catch (error) {\n            const properties = this.getSIWXEventProperties();\n            if (!ModalController.state.open || RouterController.state.view === 'ApproveTransaction') {\n                await ModalController.open({\n                    view: 'SIWXSignMessage'\n                });\n            }\n            if (properties.isSmartAccount) {\n                SnackController.showError('This application might not support Smart Accounts');\n            }\n            else {\n                SnackController.showError('Signature declined');\n            }\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'SIWX_AUTH_ERROR',\n                properties\n            });\n            // eslint-disable-next-line no-console\n            console.error('SWIXUtil:requestSignMessage', error);\n        }\n    },\n    async cancelSignMessage() {\n        try {\n            const siwx = this.getSIWX();\n            const isRequired = siwx?.getRequired?.();\n            if (isRequired) {\n                await ConnectionController.disconnect();\n            }\n            else {\n                ModalController.close();\n            }\n            RouterController.reset('Connect');\n            EventsController.sendEvent({\n                event: 'CLICK_CANCEL_SIWX',\n                type: 'track',\n                properties: this.getSIWXEventProperties()\n            });\n        }\n        catch (error) {\n            // eslint-disable-next-line no-console\n            console.error('SIWXUtil:cancelSignMessage', error);\n        }\n    },\n    async getSessions() {\n        const siwx = OptionsController.state.siwx;\n        const address = CoreHelperUtil.getPlainAddress(ChainController.getActiveCaipAddress());\n        const network = ChainController.getActiveCaipNetwork();\n        if (!(siwx && address && network)) {\n            return [];\n        }\n        return siwx.getSessions(network.caipNetworkId, address);\n    },\n    async isSIWXCloseDisabled() {\n        const siwx = this.getSIWX();\n        if (siwx) {\n            const isApproveSignScreen = RouterController.state.view === 'ApproveTransaction';\n            const isSiwxSignMessage = RouterController.state.view === 'SIWXSignMessage';\n            if (isApproveSignScreen || isSiwxSignMessage) {\n                return siwx.getRequired?.() && (await this.getSessions()).length === 0;\n            }\n        }\n        return false;\n    },\n    async universalProviderAuthenticate({ universalProvider, chains, methods }) {\n        const siwx = SIWXUtil.getSIWX();\n        const namespaces = new Set(chains.map(chain => chain.split(':')[0]));\n        if (!siwx || namespaces.size !== 1 || !namespaces.has('eip155')) {\n            return false;\n        }\n        // Ignores chainId and account address to get other message data\n        const siwxMessage = await siwx.createMessage({\n            chainId: ChainController.getActiveCaipNetwork()?.caipNetworkId || '',\n            accountAddress: ''\n        });\n        const result = await universalProvider.authenticate({\n            nonce: siwxMessage.nonce,\n            domain: siwxMessage.domain,\n            uri: siwxMessage.uri,\n            exp: siwxMessage.expirationTime,\n            iat: siwxMessage.issuedAt,\n            nbf: siwxMessage.notBefore,\n            requestId: siwxMessage.requestId,\n            version: siwxMessage.version,\n            resources: siwxMessage.resources,\n            statement: siwxMessage.statement,\n            chainId: siwxMessage.chainId,\n            methods,\n            // The first chainId is what is used for universal provider to build the message\n            chains: [siwxMessage.chainId, ...chains.filter(chain => chain !== siwxMessage.chainId)]\n        });\n        SnackController.showLoading('Authenticating...', { autoClose: false });\n        AccountController.setConnectedWalletInfo({\n            ...result.session.peer.metadata,\n            name: result.session.peer.metadata.name,\n            icon: result.session.peer.metadata.icons?.[0],\n            type: 'WALLET_CONNECT'\n        }, Array.from(namespaces)[0]);\n        if (result?.auths?.length) {\n            const sessions = result.auths.map(cacao => {\n                const message = universalProvider.client.formatAuthMessage({\n                    request: cacao.p,\n                    iss: cacao.p.iss\n                });\n                return {\n                    data: {\n                        ...cacao.p,\n                        accountAddress: cacao.p.iss.split(':').slice(-1).join(''),\n                        chainId: cacao.p.iss.split(':').slice(2, 4).join(':'),\n                        uri: cacao.p.aud,\n                        version: cacao.p.version || siwxMessage.version,\n                        expirationTime: cacao.p.exp,\n                        issuedAt: cacao.p.iat,\n                        notBefore: cacao.p.nbf\n                    },\n                    message,\n                    signature: cacao.s.s,\n                    cacao\n                };\n            });\n            try {\n                await siwx.setSessions(sessions);\n                EventsController.sendEvent({\n                    type: 'track',\n                    event: 'SIWX_AUTH_SUCCESS',\n                    properties: SIWXUtil.getSIWXEventProperties()\n                });\n            }\n            catch (error) {\n                // eslint-disable-next-line no-console\n                console.error('SIWX:universalProviderAuth - failed to set sessions', error);\n                EventsController.sendEvent({\n                    type: 'track',\n                    event: 'SIWX_AUTH_ERROR',\n                    properties: SIWXUtil.getSIWXEventProperties()\n                });\n                // eslint-disable-next-line no-console\n                await universalProvider.disconnect().catch(console.error);\n                throw error;\n            }\n            finally {\n                SnackController.hide();\n            }\n        }\n        return true;\n    },\n    getSIWXEventProperties() {\n        const activeChainNamespace = ChainController.state.activeChain;\n        return {\n            network: ChainController.state.activeCaipNetwork?.caipNetworkId || '',\n            isSmartAccount: AccountController.state.preferredAccountTypes?.[activeChainNamespace] ===\n                W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n        };\n    },\n    async clearSessions() {\n        const siwx = this.getSIWX();\n        if (siwx) {\n            await siwx.setSessions([]);\n        }\n    }\n};\n//# sourceMappingURL=SIWXUtil.js.map","function wrapToPromise(value) {\n  if (!value || typeof value.then !== \"function\") {\n    return Promise.resolve(value);\n  }\n  return value;\n}\nfunction asyncCall(function_, ...arguments_) {\n  try {\n    return wrapToPromise(function_(...arguments_));\n  } catch (error) {\n    return Promise.reject(error);\n  }\n}\nfunction isPrimitive(value) {\n  const type = typeof value;\n  return value === null || type !== \"object\" && type !== \"function\";\n}\nfunction isPureObject(value) {\n  const proto = Object.getPrototypeOf(value);\n  return !proto || proto.isPrototypeOf(Object);\n}\nfunction stringify(value) {\n  if (isPrimitive(value)) {\n    return String(value);\n  }\n  if (isPureObject(value) || Array.isArray(value)) {\n    return JSON.stringify(value);\n  }\n  if (typeof value.toJSON === \"function\") {\n    return stringify(value.toJSON());\n  }\n  throw new Error(\"[unstorage] Cannot stringify value!\");\n}\nconst BASE64_PREFIX = \"base64:\";\nfunction serializeRaw(value) {\n  if (typeof value === \"string\") {\n    return value;\n  }\n  return BASE64_PREFIX + base64Encode(value);\n}\nfunction deserializeRaw(value) {\n  if (typeof value !== \"string\") {\n    return value;\n  }\n  if (!value.startsWith(BASE64_PREFIX)) {\n    return value;\n  }\n  return base64Decode(value.slice(BASE64_PREFIX.length));\n}\nfunction base64Decode(input) {\n  if (globalThis.Buffer) {\n    return Buffer.from(input, \"base64\");\n  }\n  return Uint8Array.from(\n    globalThis.atob(input),\n    (c) => c.codePointAt(0)\n  );\n}\nfunction base64Encode(input) {\n  if (globalThis.Buffer) {\n    return Buffer.from(input).toString(\"base64\");\n  }\n  return globalThis.btoa(String.fromCodePoint(...input));\n}\n\nconst storageKeyProperties = [\n  \"has\",\n  \"hasItem\",\n  \"get\",\n  \"getItem\",\n  \"getItemRaw\",\n  \"set\",\n  \"setItem\",\n  \"setItemRaw\",\n  \"del\",\n  \"remove\",\n  \"removeItem\",\n  \"getMeta\",\n  \"setMeta\",\n  \"removeMeta\",\n  \"getKeys\",\n  \"clear\",\n  \"mount\",\n  \"unmount\"\n];\nfunction prefixStorage(storage, base) {\n  base = normalizeBaseKey(base);\n  if (!base) {\n    return storage;\n  }\n  const nsStorage = { ...storage };\n  for (const property of storageKeyProperties) {\n    nsStorage[property] = (key = \"\", ...args) => (\n      // @ts-ignore\n      storage[property](base + key, ...args)\n    );\n  }\n  nsStorage.getKeys = (key = \"\", ...arguments_) => storage.getKeys(base + key, ...arguments_).then((keys) => keys.map((key2) => key2.slice(base.length)));\n  nsStorage.getItems = async (items, commonOptions) => {\n    const prefixedItems = items.map(\n      (item) => typeof item === \"string\" ? base + item : { ...item, key: base + item.key }\n    );\n    const results = await storage.getItems(prefixedItems, commonOptions);\n    return results.map((entry) => ({\n      key: entry.key.slice(base.length),\n      value: entry.value\n    }));\n  };\n  nsStorage.setItems = async (items, commonOptions) => {\n    const prefixedItems = items.map((item) => ({\n      key: base + item.key,\n      value: item.value,\n      options: item.options\n    }));\n    return storage.setItems(prefixedItems, commonOptions);\n  };\n  return nsStorage;\n}\nfunction normalizeKey(key) {\n  if (!key) {\n    return \"\";\n  }\n  return key.split(\"?\")[0]?.replace(/[/\\\\]/g, \":\").replace(/:+/g, \":\").replace(/^:|:$/g, \"\") || \"\";\n}\nfunction joinKeys(...keys) {\n  return normalizeKey(keys.join(\":\"));\n}\nfunction normalizeBaseKey(base) {\n  base = normalizeKey(base);\n  return base ? base + \":\" : \"\";\n}\nfunction filterKeyByDepth(key, depth) {\n  if (depth === void 0) {\n    return true;\n  }\n  let substrCount = 0;\n  let index = key.indexOf(\":\");\n  while (index > -1) {\n    substrCount++;\n    index = key.indexOf(\":\", index + 1);\n  }\n  return substrCount <= depth;\n}\nfunction filterKeyByBase(key, base) {\n  if (base) {\n    return key.startsWith(base) && key[key.length - 1] !== \"$\";\n  }\n  return key[key.length - 1] !== \"$\";\n}\n\nexport { normalizeKey as a, asyncCall as b, filterKeyByBase as c, stringify as d, deserializeRaw as e, filterKeyByDepth as f, joinKeys as j, normalizeBaseKey as n, prefixStorage as p, serializeRaw as s };\n","import destr from 'destr';\nimport { n as normalizeBaseKey, a as normalizeKey, b as asyncCall, f as filterKeyByDepth, c as filterKeyByBase, s as serializeRaw, d as stringify, e as deserializeRaw, j as joinKeys } from './shared/unstorage.CoCt7NXC.mjs';\nexport { p as prefixStorage } from './shared/unstorage.CoCt7NXC.mjs';\n\nfunction defineDriver(factory) {\n  return factory;\n}\n\nconst DRIVER_NAME = \"memory\";\nconst memory = defineDriver(() => {\n  const data = /* @__PURE__ */ new Map();\n  return {\n    name: DRIVER_NAME,\n    getInstance: () => data,\n    hasItem(key) {\n      return data.has(key);\n    },\n    getItem(key) {\n      return data.get(key) ?? null;\n    },\n    getItemRaw(key) {\n      return data.get(key) ?? null;\n    },\n    setItem(key, value) {\n      data.set(key, value);\n    },\n    setItemRaw(key, value) {\n      data.set(key, value);\n    },\n    removeItem(key) {\n      data.delete(key);\n    },\n    getKeys() {\n      return [...data.keys()];\n    },\n    clear() {\n      data.clear();\n    },\n    dispose() {\n      data.clear();\n    }\n  };\n});\n\nfunction createStorage(options = {}) {\n  const context = {\n    mounts: { \"\": options.driver || memory() },\n    mountpoints: [\"\"],\n    watching: false,\n    watchListeners: [],\n    unwatch: {}\n  };\n  const getMount = (key) => {\n    for (const base of context.mountpoints) {\n      if (key.startsWith(base)) {\n        return {\n          base,\n          relativeKey: key.slice(base.length),\n          driver: context.mounts[base]\n        };\n      }\n    }\n    return {\n      base: \"\",\n      relativeKey: key,\n      driver: context.mounts[\"\"]\n    };\n  };\n  const getMounts = (base, includeParent) => {\n    return context.mountpoints.filter(\n      (mountpoint) => mountpoint.startsWith(base) || includeParent && base.startsWith(mountpoint)\n    ).map((mountpoint) => ({\n      relativeBase: base.length > mountpoint.length ? base.slice(mountpoint.length) : void 0,\n      mountpoint,\n      driver: context.mounts[mountpoint]\n    }));\n  };\n  const onChange = (event, key) => {\n    if (!context.watching) {\n      return;\n    }\n    key = normalizeKey(key);\n    for (const listener of context.watchListeners) {\n      listener(event, key);\n    }\n  };\n  const startWatch = async () => {\n    if (context.watching) {\n      return;\n    }\n    context.watching = true;\n    for (const mountpoint in context.mounts) {\n      context.unwatch[mountpoint] = await watch(\n        context.mounts[mountpoint],\n        onChange,\n        mountpoint\n      );\n    }\n  };\n  const stopWatch = async () => {\n    if (!context.watching) {\n      return;\n    }\n    for (const mountpoint in context.unwatch) {\n      await context.unwatch[mountpoint]();\n    }\n    context.unwatch = {};\n    context.watching = false;\n  };\n  const runBatch = (items, commonOptions, cb) => {\n    const batches = /* @__PURE__ */ new Map();\n    const getBatch = (mount) => {\n      let batch = batches.get(mount.base);\n      if (!batch) {\n        batch = {\n          driver: mount.driver,\n          base: mount.base,\n          items: []\n        };\n        batches.set(mount.base, batch);\n      }\n      return batch;\n    };\n    for (const item of items) {\n      const isStringItem = typeof item === \"string\";\n      const key = normalizeKey(isStringItem ? item : item.key);\n      const value = isStringItem ? void 0 : item.value;\n      const options2 = isStringItem || !item.options ? commonOptions : { ...commonOptions, ...item.options };\n      const mount = getMount(key);\n      getBatch(mount).items.push({\n        key,\n        value,\n        relativeKey: mount.relativeKey,\n        options: options2\n      });\n    }\n    return Promise.all([...batches.values()].map((batch) => cb(batch))).then(\n      (r) => r.flat()\n    );\n  };\n  const storage = {\n    // Item\n    hasItem(key, opts = {}) {\n      key = normalizeKey(key);\n      const { relativeKey, driver } = getMount(key);\n      return asyncCall(driver.hasItem, relativeKey, opts);\n    },\n    getItem(key, opts = {}) {\n      key = normalizeKey(key);\n      const { relativeKey, driver } = getMount(key);\n      return asyncCall(driver.getItem, relativeKey, opts).then(\n        (value) => destr(value)\n      );\n    },\n    getItems(items, commonOptions = {}) {\n      return runBatch(items, commonOptions, (batch) => {\n        if (batch.driver.getItems) {\n          return asyncCall(\n            batch.driver.getItems,\n            batch.items.map((item) => ({\n              key: item.relativeKey,\n              options: item.options\n            })),\n            commonOptions\n          ).then(\n            (r) => r.map((item) => ({\n              key: joinKeys(batch.base, item.key),\n              value: destr(item.value)\n            }))\n          );\n        }\n        return Promise.all(\n          batch.items.map((item) => {\n            return asyncCall(\n              batch.driver.getItem,\n              item.relativeKey,\n              item.options\n            ).then((value) => ({\n              key: item.key,\n              value: destr(value)\n            }));\n          })\n        );\n      });\n    },\n    getItemRaw(key, opts = {}) {\n      key = normalizeKey(key);\n      const { relativeKey, driver } = getMount(key);\n      if (driver.getItemRaw) {\n        return asyncCall(driver.getItemRaw, relativeKey, opts);\n      }\n      return asyncCall(driver.getItem, relativeKey, opts).then(\n        (value) => deserializeRaw(value)\n      );\n    },\n    async setItem(key, value, opts = {}) {\n      if (value === void 0) {\n        return storage.removeItem(key);\n      }\n      key = normalizeKey(key);\n      const { relativeKey, driver } = getMount(key);\n      if (!driver.setItem) {\n        return;\n      }\n      await asyncCall(driver.setItem, relativeKey, stringify(value), opts);\n      if (!driver.watch) {\n        onChange(\"update\", key);\n      }\n    },\n    async setItems(items, commonOptions) {\n      await runBatch(items, commonOptions, async (batch) => {\n        if (batch.driver.setItems) {\n          return asyncCall(\n            batch.driver.setItems,\n            batch.items.map((item) => ({\n              key: item.relativeKey,\n              value: stringify(item.value),\n              options: item.options\n            })),\n            commonOptions\n          );\n        }\n        if (!batch.driver.setItem) {\n          return;\n        }\n        await Promise.all(\n          batch.items.map((item) => {\n            return asyncCall(\n              batch.driver.setItem,\n              item.relativeKey,\n              stringify(item.value),\n              item.options\n            );\n          })\n        );\n      });\n    },\n    async setItemRaw(key, value, opts = {}) {\n      if (value === void 0) {\n        return storage.removeItem(key, opts);\n      }\n      key = normalizeKey(key);\n      const { relativeKey, driver } = getMount(key);\n      if (driver.setItemRaw) {\n        await asyncCall(driver.setItemRaw, relativeKey, value, opts);\n      } else if (driver.setItem) {\n        await asyncCall(driver.setItem, relativeKey, serializeRaw(value), opts);\n      } else {\n        return;\n      }\n      if (!driver.watch) {\n        onChange(\"update\", key);\n      }\n    },\n    async removeItem(key, opts = {}) {\n      if (typeof opts === \"boolean\") {\n        opts = { removeMeta: opts };\n      }\n      key = normalizeKey(key);\n      const { relativeKey, driver } = getMount(key);\n      if (!driver.removeItem) {\n        return;\n      }\n      await asyncCall(driver.removeItem, relativeKey, opts);\n      if (opts.removeMeta || opts.removeMata) {\n        await asyncCall(driver.removeItem, relativeKey + \"$\", opts);\n      }\n      if (!driver.watch) {\n        onChange(\"remove\", key);\n      }\n    },\n    // Meta\n    async getMeta(key, opts = {}) {\n      if (typeof opts === \"boolean\") {\n        opts = { nativeOnly: opts };\n      }\n      key = normalizeKey(key);\n      const { relativeKey, driver } = getMount(key);\n      const meta = /* @__PURE__ */ Object.create(null);\n      if (driver.getMeta) {\n        Object.assign(meta, await asyncCall(driver.getMeta, relativeKey, opts));\n      }\n      if (!opts.nativeOnly) {\n        const value = await asyncCall(\n          driver.getItem,\n          relativeKey + \"$\",\n          opts\n        ).then((value_) => destr(value_));\n        if (value && typeof value === \"object\") {\n          if (typeof value.atime === \"string\") {\n            value.atime = new Date(value.atime);\n          }\n          if (typeof value.mtime === \"string\") {\n            value.mtime = new Date(value.mtime);\n          }\n          Object.assign(meta, value);\n        }\n      }\n      return meta;\n    },\n    setMeta(key, value, opts = {}) {\n      return this.setItem(key + \"$\", value, opts);\n    },\n    removeMeta(key, opts = {}) {\n      return this.removeItem(key + \"$\", opts);\n    },\n    // Keys\n    async getKeys(base, opts = {}) {\n      base = normalizeBaseKey(base);\n      const mounts = getMounts(base, true);\n      let maskedMounts = [];\n      const allKeys = [];\n      let allMountsSupportMaxDepth = true;\n      for (const mount of mounts) {\n        if (!mount.driver.flags?.maxDepth) {\n          allMountsSupportMaxDepth = false;\n        }\n        const rawKeys = await asyncCall(\n          mount.driver.getKeys,\n          mount.relativeBase,\n          opts\n        );\n        for (const key of rawKeys) {\n          const fullKey = mount.mountpoint + normalizeKey(key);\n          if (!maskedMounts.some((p) => fullKey.startsWith(p))) {\n            allKeys.push(fullKey);\n          }\n        }\n        maskedMounts = [\n          mount.mountpoint,\n          ...maskedMounts.filter((p) => !p.startsWith(mount.mountpoint))\n        ];\n      }\n      const shouldFilterByDepth = opts.maxDepth !== void 0 && !allMountsSupportMaxDepth;\n      return allKeys.filter(\n        (key) => (!shouldFilterByDepth || filterKeyByDepth(key, opts.maxDepth)) && filterKeyByBase(key, base)\n      );\n    },\n    // Utils\n    async clear(base, opts = {}) {\n      base = normalizeBaseKey(base);\n      await Promise.all(\n        getMounts(base, false).map(async (m) => {\n          if (m.driver.clear) {\n            return asyncCall(m.driver.clear, m.relativeBase, opts);\n          }\n          if (m.driver.removeItem) {\n            const keys = await m.driver.getKeys(m.relativeBase || \"\", opts);\n            return Promise.all(\n              keys.map((key) => m.driver.removeItem(key, opts))\n            );\n          }\n        })\n      );\n    },\n    async dispose() {\n      await Promise.all(\n        Object.values(context.mounts).map((driver) => dispose(driver))\n      );\n    },\n    async watch(callback) {\n      await startWatch();\n      context.watchListeners.push(callback);\n      return async () => {\n        context.watchListeners = context.watchListeners.filter(\n          (listener) => listener !== callback\n        );\n        if (context.watchListeners.length === 0) {\n          await stopWatch();\n        }\n      };\n    },\n    async unwatch() {\n      context.watchListeners = [];\n      await stopWatch();\n    },\n    // Mount\n    mount(base, driver) {\n      base = normalizeBaseKey(base);\n      if (base && context.mounts[base]) {\n        throw new Error(`already mounted at ${base}`);\n      }\n      if (base) {\n        context.mountpoints.push(base);\n        context.mountpoints.sort((a, b) => b.length - a.length);\n      }\n      context.mounts[base] = driver;\n      if (context.watching) {\n        Promise.resolve(watch(driver, onChange, base)).then((unwatcher) => {\n          context.unwatch[base] = unwatcher;\n        }).catch(console.error);\n      }\n      return storage;\n    },\n    async unmount(base, _dispose = true) {\n      base = normalizeBaseKey(base);\n      if (!base || !context.mounts[base]) {\n        return;\n      }\n      if (context.watching && base in context.unwatch) {\n        context.unwatch[base]?.();\n        delete context.unwatch[base];\n      }\n      if (_dispose) {\n        await dispose(context.mounts[base]);\n      }\n      context.mountpoints = context.mountpoints.filter((key) => key !== base);\n      delete context.mounts[base];\n    },\n    getMount(key = \"\") {\n      key = normalizeKey(key) + \":\";\n      const m = getMount(key);\n      return {\n        driver: m.driver,\n        base: m.base\n      };\n    },\n    getMounts(base = \"\", opts = {}) {\n      base = normalizeKey(base);\n      const mounts = getMounts(base, opts.parents);\n      return mounts.map((m) => ({\n        driver: m.driver,\n        base: m.mountpoint\n      }));\n    },\n    // Aliases\n    keys: (base, opts = {}) => storage.getKeys(base, opts),\n    get: (key, opts = {}) => storage.getItem(key, opts),\n    set: (key, value, opts = {}) => storage.setItem(key, value, opts),\n    has: (key, opts = {}) => storage.hasItem(key, opts),\n    del: (key, opts = {}) => storage.removeItem(key, opts),\n    remove: (key, opts = {}) => storage.removeItem(key, opts)\n  };\n  return storage;\n}\nasync function snapshot(storage, base) {\n  base = normalizeBaseKey(base);\n  const keys = await storage.getKeys(base);\n  const snapshot2 = {};\n  await Promise.all(\n    keys.map(async (key) => {\n      snapshot2[key.slice(base.length)] = await storage.getItem(key);\n    })\n  );\n  return snapshot2;\n}\nasync function restoreSnapshot(driver, snapshot2, base = \"\") {\n  base = normalizeBaseKey(base);\n  await Promise.all(\n    Object.entries(snapshot2).map((e) => driver.setItem(base + e[0], e[1]))\n  );\n}\nfunction watch(driver, onChange, base) {\n  return driver.watch ? driver.watch((event, key) => onChange(event, base + key)) : () => {\n  };\n}\nasync function dispose(driver) {\n  if (typeof driver.dispose === \"function\") {\n    await asyncCall(driver.dispose);\n  }\n}\n\nconst builtinDrivers = {\n  \"azure-app-configuration\": \"unstorage/drivers/azure-app-configuration\",\n  \"azureAppConfiguration\": \"unstorage/drivers/azure-app-configuration\",\n  \"azure-cosmos\": \"unstorage/drivers/azure-cosmos\",\n  \"azureCosmos\": \"unstorage/drivers/azure-cosmos\",\n  \"azure-key-vault\": \"unstorage/drivers/azure-key-vault\",\n  \"azureKeyVault\": \"unstorage/drivers/azure-key-vault\",\n  \"azure-storage-blob\": \"unstorage/drivers/azure-storage-blob\",\n  \"azureStorageBlob\": \"unstorage/drivers/azure-storage-blob\",\n  \"azure-storage-table\": \"unstorage/drivers/azure-storage-table\",\n  \"azureStorageTable\": \"unstorage/drivers/azure-storage-table\",\n  \"capacitor-preferences\": \"unstorage/drivers/capacitor-preferences\",\n  \"capacitorPreferences\": \"unstorage/drivers/capacitor-preferences\",\n  \"cloudflare-kv-binding\": \"unstorage/drivers/cloudflare-kv-binding\",\n  \"cloudflareKVBinding\": \"unstorage/drivers/cloudflare-kv-binding\",\n  \"cloudflare-kv-http\": \"unstorage/drivers/cloudflare-kv-http\",\n  \"cloudflareKVHttp\": \"unstorage/drivers/cloudflare-kv-http\",\n  \"cloudflare-r2-binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n  \"cloudflareR2Binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n  \"db0\": \"unstorage/drivers/db0\",\n  \"deno-kv-node\": \"unstorage/drivers/deno-kv-node\",\n  \"denoKVNode\": \"unstorage/drivers/deno-kv-node\",\n  \"deno-kv\": \"unstorage/drivers/deno-kv\",\n  \"denoKV\": \"unstorage/drivers/deno-kv\",\n  \"fs-lite\": \"unstorage/drivers/fs-lite\",\n  \"fsLite\": \"unstorage/drivers/fs-lite\",\n  \"fs\": \"unstorage/drivers/fs\",\n  \"github\": \"unstorage/drivers/github\",\n  \"http\": \"unstorage/drivers/http\",\n  \"indexedb\": \"unstorage/drivers/indexedb\",\n  \"localstorage\": \"unstorage/drivers/localstorage\",\n  \"lru-cache\": \"unstorage/drivers/lru-cache\",\n  \"lruCache\": \"unstorage/drivers/lru-cache\",\n  \"memory\": \"unstorage/drivers/memory\",\n  \"mongodb\": \"unstorage/drivers/mongodb\",\n  \"netlify-blobs\": \"unstorage/drivers/netlify-blobs\",\n  \"netlifyBlobs\": \"unstorage/drivers/netlify-blobs\",\n  \"null\": \"unstorage/drivers/null\",\n  \"overlay\": \"unstorage/drivers/overlay\",\n  \"planetscale\": \"unstorage/drivers/planetscale\",\n  \"redis\": \"unstorage/drivers/redis\",\n  \"s3\": \"unstorage/drivers/s3\",\n  \"session-storage\": \"unstorage/drivers/session-storage\",\n  \"sessionStorage\": \"unstorage/drivers/session-storage\",\n  \"uploadthing\": \"unstorage/drivers/uploadthing\",\n  \"upstash\": \"unstorage/drivers/upstash\",\n  \"vercel-blob\": \"unstorage/drivers/vercel-blob\",\n  \"vercelBlob\": \"unstorage/drivers/vercel-blob\",\n  \"vercel-kv\": \"unstorage/drivers/vercel-kv\",\n  \"vercelKV\": \"unstorage/drivers/vercel-kv\"\n};\n\nexport { builtinDrivers, createStorage, defineDriver, filterKeyByBase, filterKeyByDepth, joinKeys, normalizeBaseKey, normalizeKey, restoreSnapshot, snapshot };\n","import{createStorage as w}from\"unstorage\";import{createStore as I,get as u,set as p,del as b,keys as v,clear as S}from\"idb-keyval\";import{safeJsonStringify as g,safeJsonParse as d}from\"@walletconnect/safe-json\";function C(i){return i}const x=\"idb-keyval\";var z=(i={})=>{const t=i.base&&i.base.length>0?`${i.base}:`:\"\",e=s=>t+s;let n;return i.dbName&&i.storeName&&(n=I(i.dbName,i.storeName)),{name:x,options:i,async hasItem(s){return!(typeof await u(e(s),n)>\"u\")},async getItem(s){return await u(e(s),n)??null},setItem(s,a){return p(e(s),a,n)},removeItem(s){return b(e(s),n)},getKeys(){return v(n)},clear(){return S(n)}}};const D=\"WALLET_CONNECT_V2_INDEXED_DB\",E=\"keyvaluestorage\";class _{constructor(){this.indexedDb=w({driver:z({dbName:D,storeName:E})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(t=>[t.key,t.value])}async getItem(t){const e=await this.indexedDb.getItem(t);if(e!==null)return e}async setItem(t,e){await this.indexedDb.setItem(t,g(e))}async removeItem(t){await this.indexedDb.removeItem(t)}}var l=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{},c={exports:{}};(function(){let i;function t(){}i=t,i.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},i.prototype.setItem=function(e,n){this[e]=String(n)},i.prototype.removeItem=function(e){delete this[e]},i.prototype.clear=function(){const e=this;Object.keys(e).forEach(function(n){e[n]=void 0,delete e[n]})},i.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},i.prototype.__defineGetter__(\"length\",function(){return Object.keys(this).length}),typeof l<\"u\"&&l.localStorage?c.exports=l.localStorage:typeof window<\"u\"&&window.localStorage?c.exports=window.localStorage:c.exports=new t})();function k(i){var t;return[i[0],d((t=i[1])!=null?t:\"\")]}class K{constructor(){this.localStorage=c.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(k)}async getItem(t){const e=this.localStorage.getItem(t);if(e!==null)return d(e)}async setItem(t,e){this.localStorage.setItem(t,g(e))}async removeItem(t){this.localStorage.removeItem(t)}}const N=\"wc_storage_version\",y=1,O=async(i,t,e)=>{const n=N,s=await t.getItem(n);if(s&&s>=y){e(t);return}const a=await i.getKeys();if(!a.length){e(t);return}const m=[];for(;a.length;){const r=a.shift();if(!r)continue;const o=r.toLowerCase();if(o.includes(\"wc@\")||o.includes(\"walletconnect\")||o.includes(\"wc_\")||o.includes(\"wallet_connect\")){const f=await i.getItem(r);await t.setItem(r,f),m.push(r)}}await t.setItem(n,y),e(t),j(i,m)},j=async(i,t)=>{t.length&&t.forEach(async e=>{await i.removeItem(e)})};class h{constructor(){this.initialized=!1,this.setInitialized=e=>{this.storage=e,this.initialized=!0};const t=new K;this.storage=t;try{const e=new _;O(t,e,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(t){return await this.initialize(),this.storage.getItem(t)}async setItem(t,e){return await this.initialize(),this.storage.setItem(t,e)}async removeItem(t){return await this.initialize(),this.storage.removeItem(t)}async initialize(){this.initialized||await new Promise(t=>{const e=setInterval(()=>{this.initialized&&(clearInterval(e),t())},20)})}}export{h as KeyValueStorage,h as default};\n//# sourceMappingURL=index.es.js.map\n","import{IEvents as o}from\"@walletconnect/events\";import n,{EventEmitter as l}from\"events\";var a=Object.defineProperty,u=(e,s,r)=>s in e?a(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r,c=(e,s,r)=>u(e,typeof s!=\"symbol\"?s+\"\":s,r);class h extends o{constructor(s){super(),this.opts=s,c(this,\"protocol\",\"wc\"),c(this,\"version\",2)}}class g{constructor(s,r,t){this.core=s,this.logger=r}}var p=Object.defineProperty,b=(e,s,r)=>s in e?p(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r,v=(e,s,r)=>b(e,typeof s!=\"symbol\"?s+\"\":s,r);class I extends o{constructor(s,r){super(),this.core=s,this.logger=r,v(this,\"records\",new Map)}}class y{constructor(s,r){this.logger=s,this.core=r}}class m extends o{constructor(s,r){super(),this.relayer=s,this.logger=r}}class d extends o{constructor(s){super()}}class f{constructor(s,r,t,q){this.core=s,this.logger=r,this.name=t}}var E=Object.defineProperty,x=(e,s,r)=>s in e?E(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r,w=(e,s,r)=>x(e,typeof s!=\"symbol\"?s+\"\":s,r);class C{constructor(){w(this,\"map\",new Map)}}class P extends o{constructor(s,r){super(),this.relayer=s,this.logger=r}}class j{constructor(s,r){this.core=s,this.logger=r}}class S extends o{constructor(s,r){super(),this.core=s,this.logger=r}}class ${constructor(s,r){this.logger=s,this.core=r}}class M{constructor(s,r,t){this.core=s,this.logger=r,this.store=t}}class O{constructor(s,r){this.projectId=s,this.logger=r}}class R{constructor(s,r,t){this.core=s,this.logger=r,this.telemetryEnabled=t}}var T=Object.defineProperty,k=(e,s,r)=>s in e?T(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r,i=(e,s,r)=>k(e,typeof s!=\"symbol\"?s+\"\":s,r);class H extends n{constructor(){super()}}class J{constructor(s){this.opts=s,i(this,\"protocol\",\"wc\"),i(this,\"version\",2)}}class K extends l{constructor(){super()}}class V{constructor(s){this.client=s}}export{h as ICore,g as ICrypto,O as IEchoClient,V as IEngine,K as IEngineEvents,R as IEventClient,S as IExpirer,I as IJsonRpcHistory,j as IKeyChain,y as IMessageTracker,$ as IPairing,m as IPublisher,d as IRelayer,J as ISignClient,H as ISignClientEvents,f as IStore,P as ISubscriber,C as ISubscriberTopicMap,M as IVerify};\n//# sourceMappingURL=index.es.js.map\n","export function isHex(value, { strict = true } = {}) {\n    if (!value)\n        return false;\n    if (typeof value !== 'string')\n        return false;\n    return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');\n}\n//# sourceMappingURL=isHex.js.map","import { isHex } from './isHex.js';\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value) {\n    if (isHex(value, { strict: false }))\n        return Math.ceil((value.length - 2) / 2);\n    return value.length;\n}\n//# sourceMappingURL=size.js.map","export const version = '2.23.2';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nlet errorConfig = {\n    getDocsUrl: ({ docsBaseUrl, docsPath = '', docsSlug, }) => docsPath\n        ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${docsSlug ? `#${docsSlug}` : ''}`\n        : undefined,\n    version: `viem@${version}`,\n};\nexport function setErrorConfig(config) {\n    errorConfig = config;\n}\nexport class BaseError extends Error {\n    constructor(shortMessage, args = {}) {\n        const details = (() => {\n            if (args.cause instanceof BaseError)\n                return args.cause.details;\n            if (args.cause?.message)\n                return args.cause.message;\n            return args.details;\n        })();\n        const docsPath = (() => {\n            if (args.cause instanceof BaseError)\n                return args.cause.docsPath || args.docsPath;\n            return args.docsPath;\n        })();\n        const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath });\n        const message = [\n            shortMessage || 'An error occurred.',\n            '',\n            ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n            ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n            ...(details ? [`Details: ${details}`] : []),\n            ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n        ].join('\\n');\n        super(message, args.cause ? { cause: args.cause } : undefined);\n        Object.defineProperty(this, \"details\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"docsPath\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"metaMessages\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"shortMessage\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"version\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"name\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: 'BaseError'\n        });\n        this.details = details;\n        this.docsPath = docsPath;\n        this.metaMessages = args.metaMessages;\n        this.name = args.name ?? this.name;\n        this.shortMessage = shortMessage;\n        this.version = version;\n    }\n    walk(fn) {\n        return walk(this, fn);\n    }\n}\nfunction walk(err, fn) {\n    if (fn?.(err))\n        return err;\n    if (err &&\n        typeof err === 'object' &&\n        'cause' in err &&\n        err.cause !== undefined)\n        return walk(err.cause, fn);\n    return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","import { BaseError } from './base.js';\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n    constructor({ offset, position, size, }) {\n        super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \"${offset}\" is out-of-bounds (size: ${size}).`, { name: 'SliceOffsetOutOfBoundsError' });\n    }\n}\nexport class SizeExceedsPaddingSizeError extends BaseError {\n    constructor({ size, targetSize, type, }) {\n        super(`${type.charAt(0).toUpperCase()}${type\n            .slice(1)\n            .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`, { name: 'SizeExceedsPaddingSizeError' });\n    }\n}\nexport class InvalidBytesLengthError extends BaseError {\n    constructor({ size, targetSize, type, }) {\n        super(`${type.charAt(0).toUpperCase()}${type\n            .slice(1)\n            .toLowerCase()} is expected to be ${targetSize} ${type} long, but is ${size} ${type} long.`, { name: 'InvalidBytesLengthError' });\n    }\n}\n//# sourceMappingURL=data.js.map","import { SizeExceedsPaddingSizeError, } from '../../errors/data.js';\nexport function pad(hexOrBytes, { dir, size = 32 } = {}) {\n    if (typeof hexOrBytes === 'string')\n        return padHex(hexOrBytes, { dir, size });\n    return padBytes(hexOrBytes, { dir, size });\n}\nexport function padHex(hex_, { dir, size = 32 } = {}) {\n    if (size === null)\n        return hex_;\n    const hex = hex_.replace('0x', '');\n    if (hex.length > size * 2)\n        throw new SizeExceedsPaddingSizeError({\n            size: Math.ceil(hex.length / 2),\n            targetSize: size,\n            type: 'hex',\n        });\n    return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\nexport function padBytes(bytes, { dir, size = 32 } = {}) {\n    if (size === null)\n        return bytes;\n    if (bytes.length > size)\n        throw new SizeExceedsPaddingSizeError({\n            size: bytes.length,\n            targetSize: size,\n            type: 'bytes',\n        });\n    const paddedBytes = new Uint8Array(size);\n    for (let i = 0; i < size; i++) {\n        const padEnd = dir === 'right';\n        paddedBytes[padEnd ? i : size - i - 1] =\n            bytes[padEnd ? i : bytes.length - i - 1];\n    }\n    return paddedBytes;\n}\n//# sourceMappingURL=pad.js.map","import { BaseError } from './base.js';\nexport class IntegerOutOfRangeError extends BaseError {\n    constructor({ max, min, signed, size, value, }) {\n        super(`Number \"${value}\" is not in safe ${size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`, { name: 'IntegerOutOfRangeError' });\n    }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n    constructor(bytes) {\n        super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`, {\n            name: 'InvalidBytesBooleanError',\n        });\n    }\n}\nexport class InvalidHexBooleanError extends BaseError {\n    constructor(hex) {\n        super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`, { name: 'InvalidHexBooleanError' });\n    }\n}\nexport class InvalidHexValueError extends BaseError {\n    constructor(value) {\n        super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`, { name: 'InvalidHexValueError' });\n    }\n}\nexport class SizeOverflowError extends BaseError {\n    constructor({ givenSize, maxSize }) {\n        super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`, { name: 'SizeOverflowError' });\n    }\n}\n//# sourceMappingURL=encoding.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n    if (size_(hexOrBytes) > size)\n        throw new SizeOverflowError({\n            givenSize: size_(hexOrBytes),\n            maxSize: size,\n        });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n *   size: 32,\n *   to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n    const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n    const to = opts.to;\n    if (to === 'number')\n        return hexToNumber(hex, opts);\n    if (to === 'bigint')\n        return hexToBigInt(hex, opts);\n    if (to === 'string')\n        return hexToString(hex, opts);\n    if (to === 'boolean')\n        return hexToBool(hex, opts);\n    return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n    const { signed } = opts;\n    if (opts.size)\n        assertSize(hex, { size: opts.size });\n    const value = BigInt(hex);\n    if (!signed)\n        return value;\n    const size = (hex.length - 2) / 2;\n    const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n    if (value <= max)\n        return value;\n    return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n    let hex = hex_;\n    if (opts.size) {\n        assertSize(hex, { size: opts.size });\n        hex = trim(hex);\n    }\n    if (trim(hex) === '0x00')\n        return false;\n    if (trim(hex) === '0x01')\n        return true;\n    throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n    return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n *  size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n    let bytes = hexToBytes(hex);\n    if (opts.size) {\n        assertSize(bytes, { size: opts.size });\n        bytes = trim(bytes, { dir: 'right' });\n    }\n    return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n    if (typeof value === 'number' || typeof value === 'bigint')\n        return numberToHex(value, opts);\n    if (typeof value === 'string') {\n        return stringToHex(value, opts);\n    }\n    if (typeof value === 'boolean')\n        return boolToHex(value, opts);\n    return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n    const hex = `0x${Number(value)}`;\n    if (typeof opts.size === 'number') {\n        assertSize(hex, { size: opts.size });\n        return pad(hex, { size: opts.size });\n    }\n    return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n    let string = '';\n    for (let i = 0; i < value.length; i++) {\n        string += hexes[value[i]];\n    }\n    const hex = `0x${string}`;\n    if (typeof opts.size === 'number') {\n        assertSize(hex, { size: opts.size });\n        return pad(hex, { dir: 'right', size: opts.size });\n    }\n    return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n    const { signed, size } = opts;\n    const value = BigInt(value_);\n    let maxValue;\n    if (size) {\n        if (signed)\n            maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n        else\n            maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n    }\n    else if (typeof value_ === 'number') {\n        maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n    }\n    const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n    if ((maxValue && value > maxValue) || value < minValue) {\n        const suffix = typeof value_ === 'bigint' ? 'n' : '';\n        throw new IntegerOutOfRangeError({\n            max: maxValue ? `${maxValue}${suffix}` : undefined,\n            min: `${minValue}${suffix}`,\n            signed,\n            size,\n            value: `${value_}${suffix}`,\n        });\n    }\n    const hex = `0x${(signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value).toString(16)}`;\n    if (size)\n        return pad(hex, { size });\n    return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n    const value = encoder.encode(value_);\n    return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { isHex } from '../data/isHex.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nimport { numberToHex, } from './toHex.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes\n * - Example: https://viem.sh/docs/utilities/toBytes#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(value, opts = {}) {\n    if (typeof value === 'number' || typeof value === 'bigint')\n        return numberToBytes(value, opts);\n    if (typeof value === 'boolean')\n        return boolToBytes(value, opts);\n    if (isHex(value))\n        return hexToBytes(value, opts);\n    return stringToBytes(value, opts);\n}\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n */\nexport function boolToBytes(value, opts = {}) {\n    const bytes = new Uint8Array(1);\n    bytes[0] = Number(value);\n    if (typeof opts.size === 'number') {\n        assertSize(bytes, { size: opts.size });\n        return pad(bytes, { size: opts.size });\n    }\n    return bytes;\n}\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n    zero: 48,\n    nine: 57,\n    A: 65,\n    F: 70,\n    a: 97,\n    f: 102,\n};\nfunction charCodeToBase16(char) {\n    if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n        return char - charCodeMap.zero;\n    if (char >= charCodeMap.A && char <= charCodeMap.F)\n        return char - (charCodeMap.A - 10);\n    if (char >= charCodeMap.a && char <= charCodeMap.f)\n        return char - (charCodeMap.a - 10);\n    return undefined;\n}\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function hexToBytes(hex_, opts = {}) {\n    let hex = hex_;\n    if (opts.size) {\n        assertSize(hex, { size: opts.size });\n        hex = pad(hex, { dir: 'right', size: opts.size });\n    }\n    let hexString = hex.slice(2);\n    if (hexString.length % 2)\n        hexString = `0${hexString}`;\n    const length = hexString.length / 2;\n    const bytes = new Uint8Array(length);\n    for (let index = 0, j = 0; index < length; index++) {\n        const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));\n        const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));\n        if (nibbleLeft === undefined || nibbleRight === undefined) {\n            throw new BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n        }\n        bytes[index] = nibbleLeft * 16 + nibbleRight;\n    }\n    return bytes;\n}\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(value, opts) {\n    const hex = numberToHex(value, opts);\n    return hexToBytes(hex);\n}\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function stringToBytes(value, opts = {}) {\n    const bytes = encoder.encode(value);\n    if (typeof opts.size === 'number') {\n        assertSize(bytes, { size: opts.size });\n        return pad(bytes, { dir: 'right', size: opts.size });\n    }\n    return bytes;\n}\n//# sourceMappingURL=toBytes.js.map","/**\n * Internal assertion helpers.\n * @module\n */\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n    if (!Number.isSafeInteger(n) || n < 0)\n        throw new Error('positive integer expected, got ' + n);\n}\n/** Is number an Uint8Array? Copied from utils for perf. */\nfunction isBytes(a) {\n    return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n    if (!isBytes(b))\n        throw new Error('Uint8Array expected');\n    if (lengths.length > 0 && !lengths.includes(b.length))\n        throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n    if (typeof h !== 'function' || typeof h.create !== 'function')\n        throw new Error('Hash should be wrapped by utils.wrapConstructor');\n    anumber(h.outputLen);\n    anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n    if (instance.destroyed)\n        throw new Error('Hash instance has been destroyed');\n    if (checkFinished && instance.finished)\n        throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n    abytes(out);\n    const min = instance.outputLen;\n    if (out.length < min) {\n        throw new Error('digestInto() expects output buffer of length at least ' + min);\n    }\n}\nexport { anumber, abytes, ahash, aexists, aoutput };\n//# sourceMappingURL=_assert.js.map","/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n    if (le)\n        return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n    return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n    let Ah = new Uint32Array(lst.length);\n    let Al = new Uint32Array(lst.length);\n    for (let i = 0; i < lst.length; i++) {\n        const { h, l } = fromBig(lst[i], le);\n        [Ah[i], Al[i]] = [h, l];\n    }\n    return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n    const l = (Al >>> 0) + (Bl >>> 0);\n    return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\n// prettier-ignore\nconst u64 = {\n    fromBig, split, toBig,\n    shrSH, shrSL,\n    rotrSH, rotrSL, rotrBH, rotrBL,\n    rotr32H, rotr32L,\n    rotlSH, rotlSL, rotlBH, rotlBL,\n    add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a) {\n    return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n// Cast array to different type\nexport function u8(arr) {\n    return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\nexport function u32(arr) {\n    return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n// Cast array to view\nexport function createView(arr) {\n    return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n    return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n    return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n// The byte swap operation for uint32\nexport function byteSwap(word) {\n    return (((word << 24) & 0xff000000) |\n        ((word << 8) & 0xff0000) |\n        ((word >>> 8) & 0xff00) |\n        ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const byteSwapIfBE = isLE\n    ? (n) => n\n    : (n) => byteSwap(n);\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n    for (let i = 0; i < arr.length; i++) {\n        arr[i] = byteSwap(arr[i]);\n    }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n    abytes(bytes);\n    // pre-caching improves the speed 6x\n    let hex = '';\n    for (let i = 0; i < bytes.length; i++) {\n        hex += hexes[bytes[i]];\n    }\n    return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n    if (ch >= asciis._0 && ch <= asciis._9)\n        return ch - asciis._0; // '2' => 50-48\n    if (ch >= asciis.A && ch <= asciis.F)\n        return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n    if (ch >= asciis.a && ch <= asciis.f)\n        return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n    return;\n}\n/**\n * Convert hex string to byte array.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    const hl = hex.length;\n    const al = hl / 2;\n    if (hl % 2)\n        throw new Error('hex string expected, got unpadded hex of length ' + hl);\n    const array = new Uint8Array(al);\n    for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n        const n1 = asciiToBase16(hex.charCodeAt(hi));\n        const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n        if (n1 === undefined || n2 === undefined) {\n            const char = hex[hi] + hex[hi + 1];\n            throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n        }\n        array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n    }\n    return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async () => { };\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(iters, tick, cb) {\n    let ts = Date.now();\n    for (let i = 0; i < iters; i++) {\n        cb(i);\n        // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n        const diff = Date.now() - ts;\n        if (diff >= 0 && diff < tick)\n            continue;\n        await nextTick();\n        ts += diff;\n    }\n}\n/**\n * Convert JS string to byte array.\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n    if (typeof str !== 'string')\n        throw new Error('utf8ToBytes expected string, got ' + typeof str);\n    return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n    if (typeof data === 'string')\n        data = utf8ToBytes(data);\n    abytes(data);\n    return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n    let sum = 0;\n    for (let i = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        abytes(a);\n        sum += a.length;\n    }\n    const res = new Uint8Array(sum);\n    for (let i = 0, pad = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        res.set(a, pad);\n        pad += a.length;\n    }\n    return res;\n}\n/** For runtime check if class implements interface */\nexport class Hash {\n    // Safe version that clones internal state\n    clone() {\n        return this._cloneInto();\n    }\n}\nexport function checkOpts(defaults, opts) {\n    if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n        throw new Error('Options should be object or undefined');\n    const merged = Object.assign(defaults, opts);\n    return merged;\n}\n/** Wraps hash function, creating an interface on top of it */\nexport function wrapConstructor(hashCons) {\n    const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n    const tmp = hashCons();\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = () => hashCons();\n    return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n    if (crypto && typeof crypto.getRandomValues === 'function') {\n        return crypto.getRandomValues(new Uint8Array(bytesLength));\n    }\n    // Legacy Node.js compatibility\n    if (crypto && typeof crypto.randomBytes === 'function') {\n        return crypto.randomBytes(bytesLength);\n    }\n    throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nimport { abytes, aexists, anumber, aoutput } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { byteSwap32, Hash, isLE, toBytes, u32, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// Various per round constants calculations\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n    // Pi\n    [x, y] = [y, (2 * x + 3 * y) % 5];\n    SHA3_PI.push(2 * (5 * y + x));\n    // Rotational\n    SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n    // Iota\n    let t = _0n;\n    for (let j = 0; j < 7; j++) {\n        R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n        if (R & _2n)\n            t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n    }\n    _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nexport function keccakP(s, rounds = 24) {\n    const B = new Uint32Array(5 * 2);\n    // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n    for (let round = 24 - rounds; round < 24; round++) {\n        // Theta θ\n        for (let x = 0; x < 10; x++)\n            B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n        for (let x = 0; x < 10; x += 2) {\n            const idx1 = (x + 8) % 10;\n            const idx0 = (x + 2) % 10;\n            const B0 = B[idx0];\n            const B1 = B[idx0 + 1];\n            const Th = rotlH(B0, B1, 1) ^ B[idx1];\n            const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n            for (let y = 0; y < 50; y += 10) {\n                s[x + y] ^= Th;\n                s[x + y + 1] ^= Tl;\n            }\n        }\n        // Rho (ρ) and Pi (π)\n        let curH = s[2];\n        let curL = s[3];\n        for (let t = 0; t < 24; t++) {\n            const shift = SHA3_ROTL[t];\n            const Th = rotlH(curH, curL, shift);\n            const Tl = rotlL(curH, curL, shift);\n            const PI = SHA3_PI[t];\n            curH = s[PI];\n            curL = s[PI + 1];\n            s[PI] = Th;\n            s[PI + 1] = Tl;\n        }\n        // Chi (χ)\n        for (let y = 0; y < 50; y += 10) {\n            for (let x = 0; x < 10; x++)\n                B[x] = s[y + x];\n            for (let x = 0; x < 10; x++)\n                s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n        }\n        // Iota (ι)\n        s[0] ^= SHA3_IOTA_H[round];\n        s[1] ^= SHA3_IOTA_L[round];\n    }\n    B.fill(0);\n}\n/** Keccak sponge function. */\nexport class Keccak extends Hash {\n    // NOTE: we accept arguments in bytes instead of bits here.\n    constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n        super();\n        this.blockLen = blockLen;\n        this.suffix = suffix;\n        this.outputLen = outputLen;\n        this.enableXOF = enableXOF;\n        this.rounds = rounds;\n        this.pos = 0;\n        this.posOut = 0;\n        this.finished = false;\n        this.destroyed = false;\n        // Can be passed from user as dkLen\n        anumber(outputLen);\n        // 1600 = 5x5 matrix of 64bit.  1600 bits === 200 bytes\n        // 0 < blockLen < 200\n        if (0 >= this.blockLen || this.blockLen >= 200)\n            throw new Error('Sha3 supports only keccak-f1600 function');\n        this.state = new Uint8Array(200);\n        this.state32 = u32(this.state);\n    }\n    keccak() {\n        if (!isLE)\n            byteSwap32(this.state32);\n        keccakP(this.state32, this.rounds);\n        if (!isLE)\n            byteSwap32(this.state32);\n        this.posOut = 0;\n        this.pos = 0;\n    }\n    update(data) {\n        aexists(this);\n        const { blockLen, state } = this;\n        data = toBytes(data);\n        const len = data.length;\n        for (let pos = 0; pos < len;) {\n            const take = Math.min(blockLen - this.pos, len - pos);\n            for (let i = 0; i < take; i++)\n                state[this.pos++] ^= data[pos++];\n            if (this.pos === blockLen)\n                this.keccak();\n        }\n        return this;\n    }\n    finish() {\n        if (this.finished)\n            return;\n        this.finished = true;\n        const { state, suffix, pos, blockLen } = this;\n        // Do the padding\n        state[pos] ^= suffix;\n        if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n            this.keccak();\n        state[blockLen - 1] ^= 0x80;\n        this.keccak();\n    }\n    writeInto(out) {\n        aexists(this, false);\n        abytes(out);\n        this.finish();\n        const bufferOut = this.state;\n        const { blockLen } = this;\n        for (let pos = 0, len = out.length; pos < len;) {\n            if (this.posOut >= blockLen)\n                this.keccak();\n            const take = Math.min(blockLen - this.posOut, len - pos);\n            out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n            this.posOut += take;\n            pos += take;\n        }\n        return out;\n    }\n    xofInto(out) {\n        // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n        if (!this.enableXOF)\n            throw new Error('XOF is not possible for this instance');\n        return this.writeInto(out);\n    }\n    xof(bytes) {\n        anumber(bytes);\n        return this.xofInto(new Uint8Array(bytes));\n    }\n    digestInto(out) {\n        aoutput(out, this);\n        if (this.finished)\n            throw new Error('digest() was already called');\n        this.writeInto(out);\n        this.destroy();\n        return out;\n    }\n    digest() {\n        return this.digestInto(new Uint8Array(this.outputLen));\n    }\n    destroy() {\n        this.destroyed = true;\n        this.state.fill(0);\n    }\n    _cloneInto(to) {\n        const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n        to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n        to.state32.set(this.state32);\n        to.pos = this.pos;\n        to.posOut = this.posOut;\n        to.finished = this.finished;\n        to.rounds = rounds;\n        // Suffix can change in cSHAKE\n        to.suffix = suffix;\n        to.outputLen = outputLen;\n        to.enableXOF = enableXOF;\n        to.destroyed = this.destroyed;\n        return to;\n    }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/** SHA3-256 hash function. Different from keccak-256. */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\n/** SHA3-384 hash function. */\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\n/** SHA3-512 hash function. */\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\n/** keccak-224 hash function. */\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/** keccak-256 hash function. Different from SHA3-256. */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\n/** keccak-384 hash function. */\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\n/** keccak-512 hash function. */\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\n/** SHAKE256 XOF with 256-bit security. */\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n    const to = to_ || 'hex';\n    const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n    if (to === 'bytes')\n        return bytes;\n    return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n    constructor(size) {\n        super();\n        Object.defineProperty(this, \"maxSize\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.maxSize = size;\n    }\n    get(key) {\n        const value = super.get(key);\n        if (super.has(key) && value !== undefined) {\n            this.delete(key);\n            super.set(key, value);\n        }\n        return value;\n    }\n    set(key, value) {\n        super.set(key, value);\n        if (this.maxSize && this.size > this.maxSize) {\n            const firstKey = this.keys().next().value;\n            if (firstKey)\n                this.delete(firstKey);\n        }\n        return this;\n    }\n}\n//# sourceMappingURL=lru.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { LruMap } from '../lru.js';\nimport { isAddress } from './isAddress.js';\nconst checksumAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function checksumAddress(address_, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n    if (checksumAddressCache.has(`${address_}.${chainId}`))\n        return checksumAddressCache.get(`${address_}.${chainId}`);\n    const hexAddress = chainId\n        ? `${chainId}${address_.toLowerCase()}`\n        : address_.substring(2).toLowerCase();\n    const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n    const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n    for (let i = 0; i < 40; i += 2) {\n        if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n            address[i] = address[i].toUpperCase();\n        }\n        if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n            address[i + 1] = address[i + 1].toUpperCase();\n        }\n    }\n    const result = `0x${address.join('')}`;\n    checksumAddressCache.set(`${address_}.${chainId}`, result);\n    return result;\n}\nexport function getAddress(address, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n    if (!isAddress(address, { strict: false }))\n        throw new InvalidAddressError({ address });\n    return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\nimport { keccak256, } from '../../utils/hash/keccak256.js';\n/**\n * @description Converts an ECDSA public key to an address.\n *\n * @param publicKey The public key to convert.\n *\n * @returns The address.\n */\nexport function publicKeyToAddress(publicKey) {\n    const address = keccak256(`0x${publicKey.substring(4)}`).substring(26);\n    return checksumAddress(`0x${address}`);\n}\n//# sourceMappingURL=publicKeyToAddress.js.map","import { isHex } from '../data/isHex.js';\nimport { hexToBigInt, hexToNumber, } from '../encoding/fromHex.js';\nimport { toHex } from '../encoding/toHex.js';\nexport async function recoverPublicKey({ hash, signature, }) {\n    const hashHex = isHex(hash) ? hash : toHex(hash);\n    const { secp256k1 } = await import('@noble/curves/secp256k1');\n    const signature_ = (() => {\n        // typeof signature: `Signature`\n        if (typeof signature === 'object' && 'r' in signature && 's' in signature) {\n            const { r, s, v, yParity } = signature;\n            const yParityOrV = Number(yParity ?? v);\n            const recoveryBit = toRecoveryBit(yParityOrV);\n            return new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).addRecoveryBit(recoveryBit);\n        }\n        // typeof signature: `Hex | ByteArray`\n        const signatureHex = isHex(signature) ? signature : toHex(signature);\n        const yParityOrV = hexToNumber(`0x${signatureHex.slice(130)}`);\n        const recoveryBit = toRecoveryBit(yParityOrV);\n        return secp256k1.Signature.fromCompact(signatureHex.substring(2, 130)).addRecoveryBit(recoveryBit);\n    })();\n    const publicKey = signature_\n        .recoverPublicKey(hashHex.substring(2))\n        .toHex(false);\n    return `0x${publicKey}`;\n}\nfunction toRecoveryBit(yParityOrV) {\n    if (yParityOrV === 0 || yParityOrV === 1)\n        return yParityOrV;\n    if (yParityOrV === 27)\n        return 0;\n    if (yParityOrV === 28)\n        return 1;\n    throw new Error('Invalid yParityOrV value');\n}\n//# sourceMappingURL=recoverPublicKey.js.map","import { publicKeyToAddress } from '../../accounts/utils/publicKeyToAddress.js';\nimport { recoverPublicKey } from './recoverPublicKey.js';\nexport async function recoverAddress({ hash, signature, }) {\n    return publicKeyToAddress(await recoverPublicKey({ hash: hash, signature }));\n}\n//# sourceMappingURL=recoverAddress.js.map","// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n  if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n  const BASE_MAP = new Uint8Array(256)\n  for (let j = 0; j < BASE_MAP.length; j++) {\n    BASE_MAP[j] = 255\n  }\n  for (let i = 0; i < ALPHABET.length; i++) {\n    const x = ALPHABET.charAt(i)\n    const xc = x.charCodeAt(0)\n    if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n    BASE_MAP[xc] = i\n  }\n  const BASE = ALPHABET.length\n  const LEADER = ALPHABET.charAt(0)\n  const FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n  const iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n  function encode (source) {\n    // eslint-disable-next-line no-empty\n    if (source instanceof Uint8Array) { } else if (ArrayBuffer.isView(source)) {\n      source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n    } else if (Array.isArray(source)) {\n      source = Uint8Array.from(source)\n    }\n    if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n    if (source.length === 0) { return '' }\n    // Skip & count leading zeroes.\n    let zeroes = 0\n    let length = 0\n    let pbegin = 0\n    const pend = source.length\n    while (pbegin !== pend && source[pbegin] === 0) {\n      pbegin++\n      zeroes++\n    }\n    // Allocate enough space in big-endian base58 representation.\n    const size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n    const b58 = new Uint8Array(size)\n    // Process the bytes.\n    while (pbegin !== pend) {\n      let carry = source[pbegin]\n      // Apply \"b58 = b58 * 256 + ch\".\n      let i = 0\n      for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n        carry += (256 * b58[it1]) >>> 0\n        b58[it1] = (carry % BASE) >>> 0\n        carry = (carry / BASE) >>> 0\n      }\n      if (carry !== 0) { throw new Error('Non-zero carry') }\n      length = i\n      pbegin++\n    }\n    // Skip leading zeroes in base58 result.\n    let it2 = size - length\n    while (it2 !== size && b58[it2] === 0) {\n      it2++\n    }\n    // Translate the result into a string.\n    let str = LEADER.repeat(zeroes)\n    for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n    return str\n  }\n  function decodeUnsafe (source) {\n    if (typeof source !== 'string') { throw new TypeError('Expected String') }\n    if (source.length === 0) { return new Uint8Array() }\n    let psz = 0\n    // Skip and count leading '1's.\n    let zeroes = 0\n    let length = 0\n    while (source[psz] === LEADER) {\n      zeroes++\n      psz++\n    }\n    // Allocate enough space in big-endian base256 representation.\n    const size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n    const b256 = new Uint8Array(size)\n    // Process the characters.\n    while (psz < source.length) {\n      // Find code of next character\n      const charCode = source.charCodeAt(psz)\n      // Base map can not be indexed using char code\n      if (charCode > 255) { return }\n      // Decode character\n      let carry = BASE_MAP[charCode]\n      // Invalid character\n      if (carry === 255) { return }\n      let i = 0\n      for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n        carry += (BASE * b256[it3]) >>> 0\n        b256[it3] = (carry % 256) >>> 0\n        carry = (carry / 256) >>> 0\n      }\n      if (carry !== 0) { throw new Error('Non-zero carry') }\n      length = i\n      psz++\n    }\n    // Skip leading zeroes in b256.\n    let it4 = size - length\n    while (it4 !== size && b256[it4] === 0) {\n      it4++\n    }\n    const vch = new Uint8Array(zeroes + (size - it4))\n    let j = zeroes\n    while (it4 !== size) {\n      vch[j++] = b256[it4++]\n    }\n    return vch\n  }\n  function decode (string) {\n    const buffer = decodeUnsafe(string)\n    if (buffer) { return buffer }\n    throw new Error('Non-base' + BASE + ' character')\n  }\n  return {\n    encode,\n    decodeUnsafe,\n    decode\n  }\n}\nexport default base\n","import basex from 'base-x';\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nexport default basex(ALPHABET);\n","export function alloc(size = 0) {\n  if (globalThis.Buffer != null && globalThis.Buffer.alloc != null) {\n    return globalThis.Buffer.alloc(size);\n  }\n  return new Uint8Array(size);\n}\nexport function allocUnsafe(size = 0) {\n  if (globalThis.Buffer != null && globalThis.Buffer.allocUnsafe != null) {\n    return globalThis.Buffer.allocUnsafe(size);\n  }\n  return new Uint8Array(size);\n}","import { allocUnsafe } from './alloc.js';\nexport function concat(arrays, length) {\n  if (!length) {\n    length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n  }\n  const output = allocUnsafe(length);\n  let offset = 0;\n  for (const arr of arrays) {\n    output.set(arr, offset);\n    offset += arr.length;\n  }\n  return output;\n}","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '../alloc.js';\nfunction createCodec(name, prefix, encode, decode) {\n  return {\n    name,\n    prefix,\n    encoder: {\n      name,\n      prefix,\n      encode\n    },\n    decoder: { decode }\n  };\n}\nconst string = createCodec('utf8', 'u', buf => {\n  const decoder = new TextDecoder('utf8');\n  return 'u' + decoder.decode(buf);\n}, str => {\n  const encoder = new TextEncoder();\n  return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n  let string = 'a';\n  for (let i = 0; i < buf.length; i++) {\n    string += String.fromCharCode(buf[i]);\n  }\n  return string;\n}, str => {\n  str = str.substring(1);\n  const buf = allocUnsafe(str.length);\n  for (let i = 0; i < str.length; i++) {\n    buf[i] = str.charCodeAt(i);\n  }\n  return buf;\n});\nconst BASES = {\n  utf8: string,\n  'utf-8': string,\n  hex: bases.base16,\n  latin1: ascii,\n  ascii: ascii,\n  binary: ascii,\n  ...bases\n};\nexport default BASES;","import bases from './util/bases.js';\nexport function fromString(string, encoding = 'utf8') {\n  const base = bases[encoding];\n  if (!base) {\n    throw new Error(`Unsupported encoding \"${ encoding }\"`);\n  }\n  if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n    return globalThis.Buffer.from(string, 'utf8');\n  }\n  return base.decoder.decode(`${ base.prefix }${ string }`);\n}","import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n  const base = bases[encoding];\n  if (!base) {\n    throw new Error(`Unsupported encoding \"${ encoding }\"`);\n  }\n  if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n    return globalThis.Buffer.from(array.buffer, array.byteOffset, array.byteLength).toString('utf8');\n  }\n  return base.encoder.encode(array).substring(1);\n}","import{detect as jo}from\"detect-browser\";import{toMiliseconds as Ie,FIVE_MINUTES as xn,fromMiliseconds as Co}from\"@walletconnect/time\";import{getDocument as Yt,getNavigator as Sn,getLocation as On}from\"@walletconnect/window-getters\";import{getWindowMetadata as Po}from\"@walletconnect/window-metadata\";import{recoverAddress as ko}from\"viem\";import Vo from\"bs58\";import{decodeJWT as Mo}from\"@walletconnect/relay-auth\";import{toString as Q,fromString as rt,concat as Gt}from\"uint8arrays\";import{RELAY_JSONRPC as Do}from\"@walletconnect/relay-api\";const ae=\":\";function Ne(t){const[e,n]=t.split(ae);return{namespace:e,reference:n}}function An(t){const{namespace:e,reference:n}=t;return[e,n].join(ae)}function Ue(t){const[e,n,r]=t.split(ae);return{namespace:e,reference:n,address:r}}function Bn(t){const{namespace:e,reference:n,address:r}=t;return[e,n,r].join(ae)}function Te(t,e){const n=[];return t.forEach(r=>{const o=e(r);n.includes(o)||n.push(o)}),n}function In(t){const{address:e}=Ue(t);return e}function Nn(t){const{namespace:e,reference:n}=Ue(t);return An({namespace:e,reference:n})}function Ho(t,e){const{namespace:n,reference:r}=Ne(e);return Bn({namespace:n,reference:r,address:t})}function qo(t){return Te(t,In)}function Un(t){return Te(t,Nn)}function Ko(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const o=t[r];n.push(...o.accounts)}),n}function Fo(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const o=t[r];n.push(...Un(o.accounts))}),n}function zo(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const o=t[r];n.push(...ue(r,o))}),n}function ue(t,e){return t.includes(\":\")?[t]:e.chains||[]}var Zo=Object.defineProperty,Yo=Object.defineProperties,Go=Object.getOwnPropertyDescriptors,Tn=Object.getOwnPropertySymbols,Wo=Object.prototype.hasOwnProperty,Xo=Object.prototype.propertyIsEnumerable,Rn=(t,e,n)=>e in t?Zo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,_n=(t,e)=>{for(var n in e||(e={}))Wo.call(e,n)&&Rn(t,n,e[n]);if(Tn)for(var n of Tn(e))Xo.call(e,n)&&Rn(t,n,e[n]);return t},Jo=(t,e)=>Yo(t,Go(e));const $n=\"ReactNative\",Y={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},fe=\" \",Qo=\":\",Ln=\"/\",Re=2,ti=1e3,jn=\"js\";function _e(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function pt(){return!Yt()&&!!Sn()&&navigator.product===$n}function ei(){return pt()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"&&(global==null?void 0:global.Platform.OS)===\"android\"}function ni(){return pt()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"&&(global==null?void 0:global.Platform.OS)===\"ios\"}function Tt(){return!_e()&&!!Sn()&&!!Yt()}function xt(){return pt()?Y.reactNative:_e()?Y.node:Tt()?Y.browser:Y.unknown}function ri(){var t;try{return pt()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Application)<\"u\"?(t=global.Application)==null?void 0:t.applicationId:void 0}catch{return}}function Cn(t,e){const n=new URLSearchParams(t);for(const r of Object.keys(e).sort())if(e.hasOwnProperty(r)){const o=e[r];o!==void 0&&n.set(r,o)}return n.toString()}function oi(t){var e,n;const r=Pn();try{return t!=null&&t.url&&r.url&&new URL(t.url).host!==new URL(r.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${t.url} differs from the actual page url:${r.url}. This is probably unintended and can lead to issues.`),t.url=r.url),(e=t?.icons)!=null&&e.length&&t.icons.length>0&&(t.icons=t.icons.filter(o=>o!==\"\")),Jo(_n(_n({},r),t),{url:t?.url||r.url,name:t?.name||r.name,description:t?.description||r.description,icons:(n=t?.icons)!=null&&n.length&&t.icons.length>0?t.icons:r.icons})}catch(o){return console.warn(\"Error populating app metadata\",o),t||r}}function Pn(){return Po()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function ii(t,e){var n;const r=xt(),o={protocol:t,version:e,env:r};return r===\"browser\"&&(o.host=((n=On())==null?void 0:n.host)||\"unknown\"),o}function kn(){if(xt()===Y.reactNative&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"){const{OS:n,Version:r}=global.Platform;return[n,r].join(\"-\")}const t=jo();if(t===null)return\"unknown\";const e=t.os?t.os.replace(\" \",\"\").toLowerCase():\"unknown\";return t.type===\"browser\"?[e,t.name,t.version].join(\"-\"):[e,t.version].join(\"-\")}function Vn(){var t;const e=xt();return e===Y.browser?[e,((t=On())==null?void 0:t.host)||\"unknown\"].join(\":\"):e}function Mn(t,e,n){const r=kn(),o=Vn();return[[t,e].join(\"-\"),[jn,n].join(\"-\"),r,o].join(\"/\")}function si({protocol:t,version:e,relayUrl:n,sdkVersion:r,auth:o,projectId:i,useOnCloseEvent:s,bundleId:c,packageName:a}){const u=n.split(\"?\"),l=Mn(t,e,r),f={auth:o,ua:l,projectId:i,useOnCloseEvent:s||void 0,packageName:a||void 0,bundleId:c||void 0},h=Cn(u[1]||\"\",f);return u[0]+\"?\"+h}function ci(t){let e=(t.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const n=typeof e<\"u\"?t.split(\"://\")[1]:t;return e=e===\"wss\"?\"https\":\"http\",[e,n].join(\"://\")}function ai(t,e,n){if(!t[e]||typeof t[e]!==n)throw new Error(`Missing or invalid \"${e}\" param`)}function Dn(t,e=Re){return Hn(t.split(Ln),e)}function ui(t){return Dn(t).join(fe)}function gt(t,e){return t.filter(n=>e.includes(n)).length===t.length}function Hn(t,e=Re){return t.slice(Math.max(t.length-e,0))}function fi(t){return Object.fromEntries(t.entries())}function li(t){return new Map(Object.entries(t))}function di(t,e){const n={};return Object.keys(t).forEach(r=>{n[r]=e(t[r])}),n}const hi=t=>t;function qn(t){return t.trim().replace(/^\\w/,e=>e.toUpperCase())}function pi(t){return t.split(fe).map(e=>qn(e)).join(fe)}function gi(t=xn,e){const n=Ie(t||xn);let r,o,i,s;return{resolve:c=>{i&&r&&(clearTimeout(i),r(c),s=Promise.resolve(c))},reject:c=>{i&&o&&(clearTimeout(i),o(c))},done:()=>new Promise((c,a)=>{if(s)return c(s);i=setTimeout(()=>{const u=new Error(e);s=Promise.reject(u),a(u)},n),r=c,o=a})}}function yi(t,e,n){return new Promise(async(r,o)=>{const i=setTimeout(()=>o(new Error(n)),e);try{const s=await t;r(s)}catch(s){o(s)}clearTimeout(i)})}function $e(t,e){if(typeof e==\"string\"&&e.startsWith(`${t}:`))return e;if(t.toLowerCase()===\"topic\"){if(typeof e!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${e}`}else if(t.toLowerCase()===\"id\"){if(typeof e!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${e}`}throw new Error(`Unknown expirer target type: ${t}`)}function mi(t){return $e(\"topic\",t)}function wi(t){return $e(\"id\",t)}function bi(t){const[e,n]=t.split(\":\"),r={id:void 0,topic:void 0};if(e===\"topic\"&&typeof n==\"string\")r.topic=n;else if(e===\"id\"&&Number.isInteger(Number(n)))r.id=Number(n);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${n}`);return r}function Ei(t,e){return Co((e||Date.now())+Ie(t))}function vi(t){return Date.now()>=Ie(t)}function xi(t,e){return`${t}${e?`:${e}`:\"\"}`}function ot(t=[],e=[]){return[...new Set([...t,...e])]}async function Si({id:t,topic:e,wcDeepLink:n}){var r;try{if(!n)return;const o=typeof n==\"string\"?JSON.parse(n):n,i=o?.href;if(typeof i!=\"string\")return;const s=Kn(i,t,e),c=xt();if(c===Y.browser){if(!((r=Yt())!=null&&r.hasFocus())){console.warn(\"Document does not have focus, skipping deeplink.\");return}Fn(s)}else c===Y.reactNative&&typeof(global==null?void 0:global.Linking)<\"u\"&&await global.Linking.openURL(s)}catch(o){console.error(o)}}function Kn(t,e,n){const r=`requestId=${e}&sessionTopic=${n}`;t.endsWith(\"/\")&&(t=t.slice(0,-1));let o=`${t}`;if(t.startsWith(\"https://t.me\")){const i=t.includes(\"?\")?\"&startapp=\":\"?startapp=\";o=`${o}${i}${Yn(r,!0)}`}else o=`${o}/wc?${r}`;return o}function Fn(t){let e=\"_self\";Zn()?e=\"_top\":(zn()||t.startsWith(\"https://\")||t.startsWith(\"http://\"))&&(e=\"_blank\"),window.open(t,e,\"noreferrer noopener\")}async function Oi(t,e){let n=\"\";try{if(Tt()&&(n=localStorage.getItem(e),n))return n;n=await t.getItem(e)}catch(r){console.error(r)}return n}function Le(t,e){return t.filter(n=>e.includes(n))}function Ai(t,e){if(!t.includes(e))return null;const n=t.split(/([&,?,=])/),r=n.indexOf(e);return n[r+2]}function Bi(){return typeof crypto<\"u\"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/gu,t=>{const e=Math.random()*16|0;return(t===\"x\"?e:e&3|8).toString(16)})}function Ii(){return typeof process<\"u\"&&process.env.IS_VITEST===\"true\"}function zn(){return typeof window<\"u\"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function Zn(){try{return window.self!==window.top}catch{return!1}}function Yn(t,e=!1){const n=Buffer.from(t).toString(\"base64\");return e?n.replace(/[=]/g,\"\"):n}function je(t){return Buffer.from(t,\"base64\").toString(\"utf-8\")}function Ni(t){return new Promise(e=>setTimeout(e,t))}function Wt(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(\"positive integer expected, got \"+t)}function Ui(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function Xt(t,...e){if(!Ui(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function Ce(t){if(typeof t!=\"function\"||typeof t.create!=\"function\")throw new Error(\"Hash should be wrapped by utils.wrapConstructor\");Wt(t.outputLen),Wt(t.blockLen)}function Rt(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function Gn(t,e){Xt(t);const n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}const le=BigInt(2**32-1),Wn=BigInt(32);function Ti(t,e=!1){return e?{h:Number(t&le),l:Number(t>>Wn&le)}:{h:Number(t>>Wn&le)|0,l:Number(t&le)|0}}function Ri(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let o=0;o<t.length;o++){const{h:i,l:s}=Ti(t[o],e);[n[o],r[o]]=[i,s]}return[n,r]}const _i=(t,e,n)=>t<<n|e>>>32-n,$i=(t,e,n)=>e<<n|t>>>32-n,Li=(t,e,n)=>e<<n-32|t>>>64-n,ji=(t,e,n)=>t<<n-32|e>>>64-n,_t=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0;function Ci(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Pe(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function ct(t,e){return t<<32-e|t>>>e}const Xn=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Pi(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}function Jn(t){for(let e=0;e<t.length;e++)t[e]=Pi(t[e])}function ki(t){if(typeof t!=\"string\")throw new Error(\"utf8ToBytes expected string, got \"+typeof t);return new Uint8Array(new TextEncoder().encode(t))}function $t(t){return typeof t==\"string\"&&(t=ki(t)),Xt(t),t}function Vi(...t){let e=0;for(let r=0;r<t.length;r++){const o=t[r];Xt(o),e+=o.length}const n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){const i=t[r];n.set(i,o),o+=i.length}return n}class ke{clone(){return this._cloneInto()}}function Qn(t){const e=r=>t().update($t(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Lt(t=32){if(_t&&typeof _t.getRandomValues==\"function\")return _t.getRandomValues(new Uint8Array(t));if(_t&&typeof _t.randomBytes==\"function\")return _t.randomBytes(t);throw new Error(\"crypto.getRandomValues must be defined\")}const tr=[],er=[],nr=[],Mi=BigInt(0),Jt=BigInt(1),Di=BigInt(2),Hi=BigInt(7),qi=BigInt(256),Ki=BigInt(113);for(let t=0,e=Jt,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],tr.push(2*(5*r+n)),er.push((t+1)*(t+2)/2%64);let o=Mi;for(let i=0;i<7;i++)e=(e<<Jt^(e>>Hi)*Ki)%qi,e&Di&&(o^=Jt<<(Jt<<BigInt(i))-Jt);nr.push(o)}const[Fi,zi]=Ri(nr,!0),rr=(t,e,n)=>n>32?Li(t,e,n):_i(t,e,n),or=(t,e,n)=>n>32?ji(t,e,n):$i(t,e,n);function Zi(t,e=24){const n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let s=0;s<10;s++)n[s]=t[s]^t[s+10]^t[s+20]^t[s+30]^t[s+40];for(let s=0;s<10;s+=2){const c=(s+8)%10,a=(s+2)%10,u=n[a],l=n[a+1],f=rr(u,l,1)^n[c],h=or(u,l,1)^n[c+1];for(let y=0;y<50;y+=10)t[s+y]^=f,t[s+y+1]^=h}let o=t[2],i=t[3];for(let s=0;s<24;s++){const c=er[s],a=rr(o,i,c),u=or(o,i,c),l=tr[s];o=t[l],i=t[l+1],t[l]=a,t[l+1]=u}for(let s=0;s<50;s+=10){for(let c=0;c<10;c++)n[c]=t[s+c];for(let c=0;c<10;c++)t[s+c]^=~n[(c+2)%10]&n[(c+4)%10]}t[0]^=Fi[r],t[1]^=zi[r]}n.fill(0)}class En extends ke{constructor(e,n,r,o=!1,i=24){if(super(),this.blockLen=e,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Wt(r),0>=this.blockLen||this.blockLen>=200)throw new Error(\"Sha3 supports only keccak-f1600 function\");this.state=new Uint8Array(200),this.state32=Ci(this.state)}keccak(){Xn||Jn(this.state32),Zi(this.state32,this.rounds),Xn||Jn(this.state32),this.posOut=0,this.pos=0}update(e){Rt(this);const{blockLen:n,state:r}=this;e=$t(e);const o=e.length;for(let i=0;i<o;){const s=Math.min(n-this.pos,o-i);for(let c=0;c<s;c++)r[this.pos++]^=e[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:n,pos:r,blockLen:o}=this;e[r]^=n,(n&128)!==0&&r===o-1&&this.keccak(),e[o-1]^=128,this.keccak()}writeInto(e){Rt(this,!1),Xt(e),this.finish();const n=this.state,{blockLen:r}=this;for(let o=0,i=e.length;o<i;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,i-o);e.set(n.subarray(this.posOut,this.posOut+s),o),this.posOut+=s,o+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error(\"XOF is not possible for this instance\");return this.writeInto(e)}xof(e){return Wt(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Gn(e,this),this.finished)throw new Error(\"digest() was already called\");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:n,suffix:r,outputLen:o,rounds:i,enableXOF:s}=this;return e||(e=new En(n,r,o,s,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=o,e.enableXOF=s,e.destroyed=this.destroyed,e}}const Yi=(t,e,n)=>Qn(()=>new En(e,t,n)),Gi=Yi(1,136,256/8),Wi=\"https://rpc.walletconnect.org/v1\";function Ve(t){const e=`\u0019Ethereum Signed Message:\n${t.length}`,n=new TextEncoder().encode(e+t);return\"0x\"+Buffer.from(Gi(n)).toString(\"hex\")}async function ir(t,e,n,r,o,i){switch(n.t){case\"eip191\":return await sr(t,e,n.s);case\"eip1271\":return await cr(t,e,n.s,r,o,i);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${n.t}`)}}async function sr(t,e,n){return(await ko({hash:Ve(e),signature:n})).toLowerCase()===t.toLowerCase()}async function cr(t,e,n,r,o,i){const s=Ne(r);if(!s.namespace||!s.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const c=\"0x1626ba7e\",a=\"0000000000000000000000000000000000000000000000000000000000000040\",u=\"0000000000000000000000000000000000000000000000000000000000000041\",l=n.substring(2),f=Ve(e).substring(2),h=c+f+a+u+l,y=await fetch(`${i||Wi}/?chainId=${r}&projectId=${o}`,{method:\"POST\",body:JSON.stringify({id:Xi(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:t,data:h},\"latest\"]})}),{result:E}=await y.json();return E?E.slice(0,c.length).toLowerCase()===c.toLowerCase():!1}catch(c){return console.error(\"isValidEip1271Signature: \",c),!1}}function Xi(){return Date.now()+Math.floor(Math.random()*1e3)}function Ji(t){const e=atob(t),n=new Uint8Array(e.length);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);const r=n[0];if(r===0)throw new Error(\"No signatures found\");const o=1+r*64;if(n.length<o)throw new Error(\"Transaction data too short for claimed signature count\");if(n.length<100)throw new Error(\"Transaction too short\");const i=Buffer.from(t,\"base64\").slice(1,65);return Vo.encode(i)}var Qi=Object.defineProperty,ts=Object.defineProperties,es=Object.getOwnPropertyDescriptors,ar=Object.getOwnPropertySymbols,ns=Object.prototype.hasOwnProperty,rs=Object.prototype.propertyIsEnumerable,ur=(t,e,n)=>e in t?Qi(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Me=(t,e)=>{for(var n in e||(e={}))ns.call(e,n)&&ur(t,n,e[n]);if(ar)for(var n of ar(e))rs.call(e,n)&&ur(t,n,e[n]);return t},fr=(t,e)=>ts(t,es(e));const os=\"did:pkh:\",de=t=>t?.split(\":\"),lr=t=>{const e=t&&de(t);if(e)return t.includes(os)?e[3]:e[1]},dr=t=>{const e=t&&de(t);if(e)return e[2]+\":\"+e[3]},De=t=>{const e=t&&de(t);if(e)return e.pop()};async function is(t){const{cacao:e,projectId:n}=t,{s:r,p:o}=e,i=hr(o,o.iss),s=De(o.iss);return await ir(s,i,r,dr(o.iss),n)}const hr=(t,e)=>{const n=`${t.domain} wants you to sign in with your Ethereum account:`,r=De(e);if(!t.aud&&!t.uri)throw new Error(\"Either `aud` or `uri` is required to construct the message\");let o=t.statement||void 0;const i=`URI: ${t.aud||t.uri}`,s=`Version: ${t.version}`,c=`Chain ID: ${lr(e)}`,a=`Nonce: ${t.nonce}`,u=`Issued At: ${t.iat}`,l=t.exp?`Expiration Time: ${t.exp}`:void 0,f=t.nbf?`Not Before: ${t.nbf}`:void 0,h=t.requestId?`Request ID: ${t.requestId}`:void 0,y=t.resources?`Resources:${t.resources.map(p=>`\n- ${p}`).join(\"\")}`:void 0,E=pe(t.resources);if(E){const p=yt(E);o=Ke(o,p)}return[n,r,\"\",o,\"\",i,s,c,a,u,l,f,h,y].filter(p=>p!=null).join(`\n`)};function ss(t,e,n){return n.includes(\"did:pkh:\")||(n=`did:pkh:${n}`),{h:{t:\"caip122\"},p:{iss:n,domain:t.domain,aud:t.aud,version:t.version,nonce:t.nonce,iat:t.iat,statement:t.statement,requestId:t.requestId,resources:t.resources,nbf:t.nbf,exp:t.exp},s:e}}function cs(t){var e;const{authPayload:n,chains:r,methods:o}=t,i=n.statement||\"\";if(!(r!=null&&r.length))return n;const s=n.chains,c=Le(s,r);if(!(c!=null&&c.length))throw new Error(\"No supported chains\");const a=pr(n.resources);if(!a)return n;at(a);const u=gr(a,\"eip155\");let l=n?.resources||[];if(u!=null&&u.length){const f=yr(u),h=Le(f,o);if(!(h!=null&&h.length))throw new Error(`Supported methods don't satisfy the requested: ${JSON.stringify(f)}, supported: ${JSON.stringify(o)}`);const y=He(\"request\",h,{chains:c}),E=Er(a,\"eip155\",y);l=((e=n?.resources)==null?void 0:e.slice(0,-1))||[],l.push(he(E))}return fr(Me({},n),{statement:xr(i,pe(l)),chains:c,resources:n!=null&&n.resources||l.length>0?l:void 0})}function pr(t){const e=pe(t);if(e&&qe(e))return yt(e)}function as(t,e){var n;return(n=t?.att)==null?void 0:n.hasOwnProperty(e)}function gr(t,e){var n,r;return(n=t?.att)!=null&&n[e]?Object.keys((r=t?.att)==null?void 0:r[e]):[]}function us(t){return t?.map(e=>Object.keys(e))||[]}function yr(t){return t?.map(e=>{var n;return(n=e.split(\"/\"))==null?void 0:n[1]})||[]}function mr(t){return Buffer.from(JSON.stringify(t)).toString(\"base64\")}function wr(t){return JSON.parse(Buffer.from(t,\"base64\").toString(\"utf-8\"))}function at(t){if(!t)throw new Error(\"No recap provided, value is undefined\");if(!t.att)throw new Error(\"No `att` property found\");const e=Object.keys(t.att);if(!(e!=null&&e.length))throw new Error(\"No resources found in `att` property\");e.forEach(n=>{const r=t.att[n];if(Array.isArray(r))throw new Error(`Resource must be an object: ${n}`);if(typeof r!=\"object\")throw new Error(`Resource must be an object: ${n}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${n}`);Object.keys(r).forEach(o=>{const i=r[o];if(!Array.isArray(i))throw new Error(`Ability limits ${o} must be an array of objects, found: ${i}`);if(!i.length)throw new Error(`Value of ${o} is empty array, must be an array with objects`);i.forEach(s=>{if(typeof s!=\"object\")throw new Error(`Ability limits (${o}) must be an array of objects, found: ${s}`)})})})}function br(t,e,n,r={}){return n?.sort((o,i)=>o.localeCompare(i)),{att:{[t]:He(e,n,r)}}}function Er(t,e,n){var r;t.att[e]=Me({},n);const o=(r=Object.keys(t.att))==null?void 0:r.sort((s,c)=>s.localeCompare(c)),i={att:{}};return o.reduce((s,c)=>(s.att[c]=t.att[c],s),i)}function He(t,e,n={}){e=e?.sort((o,i)=>o.localeCompare(i));const r=e.map(o=>({[`${t}/${o}`]:[n]}));return Object.assign({},...r)}function he(t){return at(t),`urn:recap:${mr(t).replace(/=/g,\"\")}`}function yt(t){const e=wr(t.replace(\"urn:recap:\",\"\"));return at(e),e}function fs(t,e,n){const r=br(t,e,n);return he(r)}function qe(t){return t&&t.includes(\"urn:recap:\")}function ls(t,e){const n=yt(t),r=yt(e),o=vr(n,r);return he(o)}function vr(t,e){at(t),at(e);const n=Object.keys(t.att).concat(Object.keys(e.att)).sort((o,i)=>o.localeCompare(i)),r={att:{}};return n.forEach(o=>{var i,s;Object.keys(((i=t.att)==null?void 0:i[o])||{}).concat(Object.keys(((s=e.att)==null?void 0:s[o])||{})).sort((c,a)=>c.localeCompare(a)).forEach(c=>{var a,u;r.att[o]=fr(Me({},r.att[o]),{[c]:((a=t.att[o])==null?void 0:a[c])||((u=e.att[o])==null?void 0:u[c])})})}),r}function Ke(t=\"\",e){at(e);const n=\"I further authorize the stated URI to perform the following actions on my behalf: \";if(t.includes(n))return t;const r=[];let o=0;Object.keys(e.att).forEach(c=>{const a=Object.keys(e.att[c]).map(f=>({ability:f.split(\"/\")[0],action:f.split(\"/\")[1]}));a.sort((f,h)=>f.action.localeCompare(h.action));const u={};a.forEach(f=>{u[f.ability]||(u[f.ability]=[]),u[f.ability].push(f.action)});const l=Object.keys(u).map(f=>(o++,`(${o}) '${f}': '${u[f].join(\"', '\")}' for '${c}'.`));r.push(l.join(\", \").replace(\".,\",\".\"))});const i=r.join(\" \"),s=`${n}${i}`;return`${t?t+\" \":\"\"}${s}`}function ds(t){var e;const n=yt(t);at(n);const r=(e=n.att)==null?void 0:e.eip155;return r?Object.keys(r).map(o=>o.split(\"/\")[1]):[]}function hs(t){const e=yt(t);at(e);const n=[];return Object.values(e.att).forEach(r=>{Object.values(r).forEach(o=>{var i;(i=o?.[0])!=null&&i.chains&&n.push(o[0].chains)})}),[...new Set(n.flat())]}function xr(t,e){if(!e)return t;const n=yt(e);return at(n),Ke(t,n)}function pe(t){if(!t)return;const e=t?.[t.length-1];return qe(e)?e:void 0}function Fe(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(\"positive integer expected, got \"+t)}function Sr(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function tt(t,...e){if(!Sr(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function Or(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function ps(t,e){tt(t);const n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}function Ar(t){if(typeof t!=\"boolean\")throw new Error(`boolean expected, not ${t}`)}const mt=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),gs=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),ys=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!ys)throw new Error(\"Non little-endian hardware is not supported\");function ms(t){if(typeof t!=\"string\")throw new Error(\"string expected\");return new Uint8Array(new TextEncoder().encode(t))}function ze(t){if(typeof t==\"string\")t=ms(t);else if(Sr(t))t=Ze(t);else throw new Error(\"Uint8Array expected, got \"+typeof t);return t}function ws(t,e){if(e==null||typeof e!=\"object\")throw new Error(\"options must be defined\");return Object.assign(t,e)}function bs(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}const Es=(t,e)=>{function n(r,...o){if(tt(r),t.nonceLength!==void 0){const l=o[0];if(!l)throw new Error(\"nonce / iv required\");t.varSizeNonce?tt(l):tt(l,t.nonceLength)}const i=t.tagLength;i&&o[1]!==void 0&&tt(o[1]);const s=e(r,...o),c=(l,f)=>{if(f!==void 0){if(l!==2)throw new Error(\"cipher output not supported\");tt(f)}};let a=!1;return{encrypt(l,f){if(a)throw new Error(\"cannot encrypt() twice with same key + nonce\");return a=!0,tt(l),c(s.encrypt.length,f),s.encrypt(l,f)},decrypt(l,f){if(tt(l),i&&l.length<i)throw new Error(\"invalid ciphertext length: smaller than tagLength=\"+i);return c(s.decrypt.length,f),s.decrypt(l,f)}}}return Object.assign(n,t),n};function Br(t,e,n=!0){if(e===void 0)return new Uint8Array(t);if(e.length!==t)throw new Error(\"invalid output length, expected \"+t+\", got: \"+e.length);if(n&&!vs(e))throw new Error(\"invalid output, must be aligned\");return e}function Ir(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);const o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),c=Number(n&i),a=r?4:0,u=r?0:4;t.setUint32(e+a,s,r),t.setUint32(e+u,c,r)}function vs(t){return t.byteOffset%4===0}function Ze(t){return Uint8Array.from(t)}function jt(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}const Nr=t=>Uint8Array.from(t.split(\"\").map(e=>e.charCodeAt(0))),xs=Nr(\"expand 16-byte k\"),Ss=Nr(\"expand 32-byte k\"),Os=mt(xs),As=mt(Ss);function V(t,e){return t<<e|t>>>32-e}function Ye(t){return t.byteOffset%4===0}const ge=64,Bs=16,Ur=2**32-1,Tr=new Uint32Array;function Is(t,e,n,r,o,i,s,c){const a=o.length,u=new Uint8Array(ge),l=mt(u),f=Ye(o)&&Ye(i),h=f?mt(o):Tr,y=f?mt(i):Tr;for(let E=0;E<a;s++){if(t(e,n,r,l,s,c),s>=Ur)throw new Error(\"arx: counter overflow\");const p=Math.min(ge,a-E);if(f&&p===ge){const d=E/4;if(E%4!==0)throw new Error(\"arx: invalid block position\");for(let v=0,m;v<Bs;v++)m=d+v,y[m]=h[m]^l[v];E+=ge;continue}for(let d=0,v;d<p;d++)v=E+d,i[v]=o[v]^u[d];E+=p}}function Ns(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:o,counterRight:i,rounds:s}=ws({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof t!=\"function\")throw new Error(\"core must be a function\");return Fe(o),Fe(s),Ar(i),Ar(n),(c,a,u,l,f=0)=>{tt(c),tt(a),tt(u);const h=u.length;if(l===void 0&&(l=new Uint8Array(h)),tt(l),Fe(f),f<0||f>=Ur)throw new Error(\"arx: counter overflow\");if(l.length<h)throw new Error(`arx: output (${l.length}) is shorter than data (${h})`);const y=[];let E=c.length,p,d;if(E===32)y.push(p=Ze(c)),d=As;else if(E===16&&n)p=new Uint8Array(32),p.set(c),p.set(c,16),d=Os,y.push(p);else throw new Error(`arx: invalid 32-byte key, got length=${E}`);Ye(a)||y.push(a=Ze(a));const v=mt(p);if(r){if(a.length!==24)throw new Error(\"arx: extended nonce must be 24 bytes\");r(d,v,mt(a.subarray(0,16)),v),a=a.subarray(16)}const m=16-o;if(m!==a.length)throw new Error(`arx: nonce must be ${m} or 16 bytes`);if(m!==12){const N=new Uint8Array(12);N.set(a,i?0:12-a.length),a=N,y.push(a)}const O=mt(a);return Is(t,d,v,O,u,l,f,s),jt(...y),l}}const F=(t,e)=>t[e++]&255|(t[e++]&255)<<8;class Us{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=ze(e),tt(e,32);const n=F(e,0),r=F(e,2),o=F(e,4),i=F(e,6),s=F(e,8),c=F(e,10),a=F(e,12),u=F(e,14);this.r[0]=n&8191,this.r[1]=(n>>>13|r<<3)&8191,this.r[2]=(r>>>10|o<<6)&7939,this.r[3]=(o>>>7|i<<9)&8191,this.r[4]=(i>>>4|s<<12)&255,this.r[5]=s>>>1&8190,this.r[6]=(s>>>14|c<<2)&8191,this.r[7]=(c>>>11|a<<5)&8065,this.r[8]=(a>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let l=0;l<8;l++)this.pad[l]=F(e,16+2*l)}process(e,n,r=!1){const o=r?0:2048,{h:i,r:s}=this,c=s[0],a=s[1],u=s[2],l=s[3],f=s[4],h=s[5],y=s[6],E=s[7],p=s[8],d=s[9],v=F(e,n+0),m=F(e,n+2),O=F(e,n+4),N=F(e,n+6),$=F(e,n+8),B=F(e,n+10),A=F(e,n+12),T=F(e,n+14);let S=i[0]+(v&8191),L=i[1]+((v>>>13|m<<3)&8191),U=i[2]+((m>>>10|O<<6)&8191),_=i[3]+((O>>>7|N<<9)&8191),j=i[4]+((N>>>4|$<<12)&8191),g=i[5]+($>>>1&8191),w=i[6]+(($>>>14|B<<2)&8191),b=i[7]+((B>>>11|A<<5)&8191),I=i[8]+((A>>>8|T<<8)&8191),R=i[9]+(T>>>5|o),x=0,C=x+S*c+L*(5*d)+U*(5*p)+_*(5*E)+j*(5*y);x=C>>>13,C&=8191,C+=g*(5*h)+w*(5*f)+b*(5*l)+I*(5*u)+R*(5*a),x+=C>>>13,C&=8191;let P=x+S*a+L*c+U*(5*d)+_*(5*p)+j*(5*E);x=P>>>13,P&=8191,P+=g*(5*y)+w*(5*h)+b*(5*f)+I*(5*l)+R*(5*u),x+=P>>>13,P&=8191;let k=x+S*u+L*a+U*c+_*(5*d)+j*(5*p);x=k>>>13,k&=8191,k+=g*(5*E)+w*(5*y)+b*(5*h)+I*(5*f)+R*(5*l),x+=k>>>13,k&=8191;let M=x+S*l+L*u+U*a+_*c+j*(5*d);x=M>>>13,M&=8191,M+=g*(5*p)+w*(5*E)+b*(5*y)+I*(5*h)+R*(5*f),x+=M>>>13,M&=8191;let D=x+S*f+L*l+U*u+_*a+j*c;x=D>>>13,D&=8191,D+=g*(5*d)+w*(5*p)+b*(5*E)+I*(5*y)+R*(5*h),x+=D>>>13,D&=8191;let z=x+S*h+L*f+U*l+_*u+j*a;x=z>>>13,z&=8191,z+=g*c+w*(5*d)+b*(5*p)+I*(5*E)+R*(5*y),x+=z>>>13,z&=8191;let Z=x+S*y+L*h+U*f+_*l+j*u;x=Z>>>13,Z&=8191,Z+=g*a+w*c+b*(5*d)+I*(5*p)+R*(5*E),x+=Z>>>13,Z&=8191;let st=x+S*E+L*y+U*h+_*f+j*l;x=st>>>13,st&=8191,st+=g*u+w*a+b*c+I*(5*d)+R*(5*p),x+=st>>>13,st&=8191;let W=x+S*p+L*E+U*y+_*h+j*f;x=W>>>13,W&=8191,W+=g*l+w*u+b*a+I*c+R*(5*d),x+=W>>>13,W&=8191;let J=x+S*d+L*p+U*E+_*y+j*h;x=J>>>13,J&=8191,J+=g*f+w*l+b*u+I*a+R*c,x+=J>>>13,J&=8191,x=(x<<2)+x|0,x=x+C|0,C=x&8191,x=x>>>13,P+=x,i[0]=C,i[1]=P,i[2]=k,i[3]=M,i[4]=D,i[5]=z,i[6]=Z,i[7]=st,i[8]=W,i[9]=J}finalize(){const{h:e,pad:n}=this,r=new Uint16Array(10);let o=e[1]>>>13;e[1]&=8191;for(let c=2;c<10;c++)e[c]+=o,o=e[c]>>>13,e[c]&=8191;e[0]+=o*5,o=e[0]>>>13,e[0]&=8191,e[1]+=o,o=e[1]>>>13,e[1]&=8191,e[2]+=o,r[0]=e[0]+5,o=r[0]>>>13,r[0]&=8191;for(let c=1;c<10;c++)r[c]=e[c]+o,o=r[c]>>>13,r[c]&=8191;r[9]-=8192;let i=(o^1)-1;for(let c=0;c<10;c++)r[c]&=i;i=~i;for(let c=0;c<10;c++)e[c]=e[c]&i|r[c];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let s=e[0]+n[0];e[0]=s&65535;for(let c=1;c<8;c++)s=(e[c]+n[c]|0)+(s>>>16)|0,e[c]=s&65535;jt(r)}update(e){Or(this);const{buffer:n,blockLen:r}=this;e=ze(e);const o=e.length;for(let i=0;i<o;){const s=Math.min(r-this.pos,o-i);if(s===r){for(;r<=o-i;i+=r)this.process(e,i);continue}n.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===r&&(this.process(n,0,!1),this.pos=0)}return this}destroy(){jt(this.h,this.r,this.buffer,this.pad)}digestInto(e){Or(this),ps(e,this),this.finished=!0;const{buffer:n,h:r}=this;let{pos:o}=this;if(o){for(n[o++]=1;o<16;o++)n[o]=0;this.process(n,0,!0)}this.finalize();let i=0;for(let s=0;s<8;s++)e[i++]=r[s]>>>0,e[i++]=r[s]>>>8;return e}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}}function Ts(t){const e=(r,o)=>t(o).update(ze(r)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}const Rs=Ts(t=>new Us(t));function _s(t,e,n,r,o,i=20){let s=t[0],c=t[1],a=t[2],u=t[3],l=e[0],f=e[1],h=e[2],y=e[3],E=e[4],p=e[5],d=e[6],v=e[7],m=o,O=n[0],N=n[1],$=n[2],B=s,A=c,T=a,S=u,L=l,U=f,_=h,j=y,g=E,w=p,b=d,I=v,R=m,x=O,C=N,P=$;for(let M=0;M<i;M+=2)B=B+L|0,R=V(R^B,16),g=g+R|0,L=V(L^g,12),B=B+L|0,R=V(R^B,8),g=g+R|0,L=V(L^g,7),A=A+U|0,x=V(x^A,16),w=w+x|0,U=V(U^w,12),A=A+U|0,x=V(x^A,8),w=w+x|0,U=V(U^w,7),T=T+_|0,C=V(C^T,16),b=b+C|0,_=V(_^b,12),T=T+_|0,C=V(C^T,8),b=b+C|0,_=V(_^b,7),S=S+j|0,P=V(P^S,16),I=I+P|0,j=V(j^I,12),S=S+j|0,P=V(P^S,8),I=I+P|0,j=V(j^I,7),B=B+U|0,P=V(P^B,16),b=b+P|0,U=V(U^b,12),B=B+U|0,P=V(P^B,8),b=b+P|0,U=V(U^b,7),A=A+_|0,R=V(R^A,16),I=I+R|0,_=V(_^I,12),A=A+_|0,R=V(R^A,8),I=I+R|0,_=V(_^I,7),T=T+j|0,x=V(x^T,16),g=g+x|0,j=V(j^g,12),T=T+j|0,x=V(x^T,8),g=g+x|0,j=V(j^g,7),S=S+L|0,C=V(C^S,16),w=w+C|0,L=V(L^w,12),S=S+L|0,C=V(C^S,8),w=w+C|0,L=V(L^w,7);let k=0;r[k++]=s+B|0,r[k++]=c+A|0,r[k++]=a+T|0,r[k++]=u+S|0,r[k++]=l+L|0,r[k++]=f+U|0,r[k++]=h+_|0,r[k++]=y+j|0,r[k++]=E+g|0,r[k++]=p+w|0,r[k++]=d+b|0,r[k++]=v+I|0,r[k++]=m+R|0,r[k++]=O+x|0,r[k++]=N+C|0,r[k++]=$+P|0}const $s=Ns(_s,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Ls=new Uint8Array(16),Rr=(t,e)=>{t.update(e);const n=e.length%16;n&&t.update(Ls.subarray(n))},js=new Uint8Array(32);function _r(t,e,n,r,o){const i=t(e,n,js),s=Rs.create(i);o&&Rr(s,o),Rr(s,r);const c=new Uint8Array(16),a=gs(c);Ir(a,0,BigInt(o?o.length:0),!0),Ir(a,8,BigInt(r.length),!0),s.update(c);const u=s.digest();return jt(i,c),u}const Cs=t=>(e,n,r)=>({encrypt(i,s){const c=i.length;s=Br(c+16,s,!1),s.set(i);const a=s.subarray(0,-16);t(e,n,a,a,1);const u=_r(t,e,n,a,r);return s.set(u,c),jt(u),s},decrypt(i,s){s=Br(i.length-16,s,!1);const c=i.subarray(0,-16),a=i.subarray(-16),u=_r(t,e,n,c,r);if(!bs(a,u))throw new Error(\"invalid tag\");return s.set(i.subarray(0,-16)),t(e,n,s,s,1),jt(u),s}}),$r=Es({blockSize:64,nonceLength:12,tagLength:16},Cs($s));class Lr extends ke{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,Ce(e);const r=$t(n);if(this.iHash=e.create(),typeof this.iHash.update!=\"function\")throw new Error(\"Expected instance of class which extends utils.Hash\");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,i=new Uint8Array(o);i.set(r.length>o?e.create().update(r).digest():r);for(let s=0;s<i.length;s++)i[s]^=54;this.iHash.update(i),this.oHash=e.create();for(let s=0;s<i.length;s++)i[s]^=106;this.oHash.update(i),i.fill(0)}update(e){return Rt(this),this.iHash.update(e),this}digestInto(e){Rt(this),Xt(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:n,iHash:r,finished:o,destroyed:i,blockLen:s,outputLen:c}=this;return e=e,e.finished=o,e.destroyed=i,e.blockLen=s,e.outputLen=c,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ye=(t,e,n)=>new Lr(t,e).update(n).digest();ye.create=(t,e)=>new Lr(t,e);function Ps(t,e,n){return Ce(t),n===void 0&&(n=new Uint8Array(t.outputLen)),ye(t,$t(n),$t(e))}const Ge=new Uint8Array([0]),jr=new Uint8Array;function ks(t,e,n,r=32){if(Ce(t),Wt(r),r>255*t.outputLen)throw new Error(\"Length should be <= 255*HashLen\");const o=Math.ceil(r/t.outputLen);n===void 0&&(n=jr);const i=new Uint8Array(o*t.outputLen),s=ye.create(t,e),c=s._cloneInto(),a=new Uint8Array(s.outputLen);for(let u=0;u<o;u++)Ge[0]=u+1,c.update(u===0?jr:a).update(n).update(Ge).digestInto(a),i.set(a,t.outputLen*u),s._cloneInto(c);return s.destroy(),c.destroy(),a.fill(0),Ge.fill(0),i.slice(0,r)}const Vs=(t,e,n,r,o)=>ks(t,Ps(t,e,n),r,o);function Ms(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);const o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),c=Number(n&i),a=r?4:0,u=r?0:4;t.setUint32(e+a,s,r),t.setUint32(e+u,c,r)}function Ds(t,e,n){return t&e^~t&n}function Hs(t,e,n){return t&e^t&n^e&n}class qs extends ke{constructor(e,n,r,o){super(),this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Pe(this.buffer)}update(e){Rt(this);const{view:n,buffer:r,blockLen:o}=this;e=$t(e);const i=e.length;for(let s=0;s<i;){const c=Math.min(o-this.pos,i-s);if(c===o){const a=Pe(e);for(;o<=i-s;s+=o)this.process(a,s);continue}r.set(e.subarray(s,s+c),this.pos),this.pos+=c,s+=c,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Rt(this),Gn(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:o,isLE:i}=this;let{pos:s}=this;n[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>o-s&&(this.process(r,0),s=0);for(let f=s;f<o;f++)n[f]=0;Ms(r,o-8,BigInt(this.length*8),i),this.process(r,0);const c=Pe(e),a=this.outputLen;if(a%4)throw new Error(\"_sha2: outputLen should be aligned to 32bit\");const u=a/4,l=this.get();if(u>l.length)throw new Error(\"_sha2: outputLen bigger than state\");for(let f=0;f<u;f++)c.setUint32(4*f,l[f],i)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:o,finished:i,destroyed:s,pos:c}=this;return e.length=o,e.pos=c,e.finished=i,e.destroyed=s,o%n&&e.buffer.set(r),e}}const Ks=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),wt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),bt=new Uint32Array(64);class Fs extends qs{constructor(){super(64,32,8,!1),this.A=wt[0]|0,this.B=wt[1]|0,this.C=wt[2]|0,this.D=wt[3]|0,this.E=wt[4]|0,this.F=wt[5]|0,this.G=wt[6]|0,this.H=wt[7]|0}get(){const{A:e,B:n,C:r,D:o,E:i,F:s,G:c,H:a}=this;return[e,n,r,o,i,s,c,a]}set(e,n,r,o,i,s,c,a){this.A=e|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=c|0,this.H=a|0}process(e,n){for(let f=0;f<16;f++,n+=4)bt[f]=e.getUint32(n,!1);for(let f=16;f<64;f++){const h=bt[f-15],y=bt[f-2],E=ct(h,7)^ct(h,18)^h>>>3,p=ct(y,17)^ct(y,19)^y>>>10;bt[f]=p+bt[f-7]+E+bt[f-16]|0}let{A:r,B:o,C:i,D:s,E:c,F:a,G:u,H:l}=this;for(let f=0;f<64;f++){const h=ct(c,6)^ct(c,11)^ct(c,25),y=l+h+Ds(c,a,u)+Ks[f]+bt[f]|0,p=(ct(r,2)^ct(r,13)^ct(r,22))+Hs(r,o,i)|0;l=u,u=a,a=c,c=s+y|0,s=i,i=o,o=r,r=y+p|0}r=r+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,c=c+this.E|0,a=a+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,o,i,s,c,a,u,l)}roundClean(){bt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Qt=Qn(()=>new Fs);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const me=BigInt(0),we=BigInt(1),zs=BigInt(2);function St(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function te(t){if(!St(t))throw new Error(\"Uint8Array expected\")}function Ct(t,e){if(typeof e!=\"boolean\")throw new Error(t+\" boolean expected, got \"+e)}const Zs=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));function Pt(t){te(t);let e=\"\";for(let n=0;n<t.length;n++)e+=Zs[t[n]];return e}function kt(t){const e=t.toString(16);return e.length&1?\"0\"+e:e}function We(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);return t===\"\"?me:BigInt(\"0x\"+t)}const ut={_0:48,_9:57,A:65,F:70,a:97,f:102};function Cr(t){if(t>=ut._0&&t<=ut._9)return t-ut._0;if(t>=ut.A&&t<=ut.F)return t-(ut.A-10);if(t>=ut.a&&t<=ut.f)return t-(ut.a-10)}function Vt(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error(\"hex string expected, got unpadded hex of length \"+e);const r=new Uint8Array(n);for(let o=0,i=0;o<n;o++,i+=2){const s=Cr(t.charCodeAt(i)),c=Cr(t.charCodeAt(i+1));if(s===void 0||c===void 0){const a=t[i]+t[i+1];throw new Error('hex string expected, got non-hex character \"'+a+'\" at index '+i)}r[o]=s*16+c}return r}function Ot(t){return We(Pt(t))}function ee(t){return te(t),We(Pt(Uint8Array.from(t).reverse()))}function Mt(t,e){return Vt(t.toString(16).padStart(e*2,\"0\"))}function be(t,e){return Mt(t,e).reverse()}function Ys(t){return Vt(kt(t))}function et(t,e,n){let r;if(typeof e==\"string\")try{r=Vt(e)}catch(i){throw new Error(t+\" must be hex string or Uint8Array, cause: \"+i)}else if(St(e))r=Uint8Array.from(e);else throw new Error(t+\" must be hex string or Uint8Array\");const o=r.length;if(typeof n==\"number\"&&o!==n)throw new Error(t+\" of length \"+n+\" expected, got \"+o);return r}function ne(...t){let e=0;for(let r=0;r<t.length;r++){const o=t[r];te(o),e+=o.length}const n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){const i=t[r];n.set(i,o),o+=i.length}return n}function Gs(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}function Ws(t){if(typeof t!=\"string\")throw new Error(\"string expected\");return new Uint8Array(new TextEncoder().encode(t))}const Xe=t=>typeof t==\"bigint\"&&me<=t;function Ee(t,e,n){return Xe(t)&&Xe(e)&&Xe(n)&&e<=t&&t<n}function ft(t,e,n,r){if(!Ee(e,n,r))throw new Error(\"expected valid \"+t+\": \"+n+\" <= n < \"+r+\", got \"+e)}function Pr(t){let e;for(e=0;t>me;t>>=we,e+=1);return e}function Xs(t,e){return t>>BigInt(e)&we}function Js(t,e,n){return t|(n?we:me)<<BigInt(e)}const Je=t=>(zs<<BigInt(t-1))-we,Qe=t=>new Uint8Array(t),kr=t=>Uint8Array.from(t);function Vr(t,e,n){if(typeof t!=\"number\"||t<2)throw new Error(\"hashLen must be a number\");if(typeof e!=\"number\"||e<2)throw new Error(\"qByteLen must be a number\");if(typeof n!=\"function\")throw new Error(\"hmacFn must be a function\");let r=Qe(t),o=Qe(t),i=0;const s=()=>{r.fill(1),o.fill(0),i=0},c=(...f)=>n(o,r,...f),a=(f=Qe())=>{o=c(kr([0]),f),r=c(),f.length!==0&&(o=c(kr([1]),f),r=c())},u=()=>{if(i++>=1e3)throw new Error(\"drbg: tried 1000 values\");let f=0;const h=[];for(;f<e;){r=c();const y=r.slice();h.push(y),f+=r.length}return ne(...h)};return(f,h)=>{s(),a(f);let y;for(;!(y=h(u()));)a();return s(),y}}const Qs={bigint:t=>typeof t==\"bigint\",function:t=>typeof t==\"function\",boolean:t=>typeof t==\"boolean\",string:t=>typeof t==\"string\",stringOrUint8Array:t=>typeof t==\"string\"||St(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t==\"function\"&&Number.isSafeInteger(t.outputLen)};function Dt(t,e,n={}){const r=(o,i,s)=>{const c=Qs[i];if(typeof c!=\"function\")throw new Error(\"invalid validator function\");const a=t[o];if(!(s&&a===void 0)&&!c(a,t))throw new Error(\"param \"+String(o)+\" is invalid. Expected \"+i+\", got \"+a)};for(const[o,i]of Object.entries(e))r(o,i,!1);for(const[o,i]of Object.entries(n))r(o,i,!0);return t}const tc=()=>{throw new Error(\"not implemented\")};function tn(t){const e=new WeakMap;return(n,...r)=>{const o=e.get(n);if(o!==void 0)return o;const i=t(n,...r);return e.set(n,i),i}}var ec=Object.freeze({__proto__:null,isBytes:St,abytes:te,abool:Ct,bytesToHex:Pt,numberToHexUnpadded:kt,hexToNumber:We,hexToBytes:Vt,bytesToNumberBE:Ot,bytesToNumberLE:ee,numberToBytesBE:Mt,numberToBytesLE:be,numberToVarBytesBE:Ys,ensureBytes:et,concatBytes:ne,equalBytes:Gs,utf8ToBytes:Ws,inRange:Ee,aInRange:ft,bitLen:Pr,bitGet:Xs,bitSet:Js,bitMask:Je,createHmacDrbg:Vr,validateObject:Dt,notImplemented:tc,memoized:tn});const q=BigInt(0),H=BigInt(1),At=BigInt(2),nc=BigInt(3),en=BigInt(4),Mr=BigInt(5),Dr=BigInt(8);function X(t,e){const n=t%e;return n>=q?n:e+n}function Hr(t,e,n){if(e<q)throw new Error(\"invalid exponent, negatives unsupported\");if(n<=q)throw new Error(\"invalid modulus\");if(n===H)return q;let r=H;for(;e>q;)e&H&&(r=r*t%n),t=t*t%n,e>>=H;return r}function it(t,e,n){let r=t;for(;e-- >q;)r*=r,r%=n;return r}function nn(t,e){if(t===q)throw new Error(\"invert: expected non-zero number\");if(e<=q)throw new Error(\"invert: expected positive modulus, got \"+e);let n=X(t,e),r=e,o=q,i=H;for(;n!==q;){const c=r/n,a=r%n,u=o-i*c;r=n,n=a,o=i,i=u}if(r!==H)throw new Error(\"invert: does not exist\");return X(o,e)}function rc(t){const e=(t-H)/At;let n,r,o;for(n=t-H,r=0;n%At===q;n/=At,r++);for(o=At;o<t&&Hr(o,e,t)!==t-H;o++)if(o>1e3)throw new Error(\"Cannot find square root: likely non-prime P\");if(r===1){const s=(t+H)/en;return function(a,u){const l=a.pow(u,s);if(!a.eql(a.sqr(l),u))throw new Error(\"Cannot find square root\");return l}}const i=(n+H)/At;return function(c,a){if(c.pow(a,e)===c.neg(c.ONE))throw new Error(\"Cannot find square root\");let u=r,l=c.pow(c.mul(c.ONE,o),n),f=c.pow(a,i),h=c.pow(a,n);for(;!c.eql(h,c.ONE);){if(c.eql(h,c.ZERO))return c.ZERO;let y=1;for(let p=c.sqr(h);y<u&&!c.eql(p,c.ONE);y++)p=c.sqr(p);const E=c.pow(l,H<<BigInt(u-y-1));l=c.sqr(E),f=c.mul(f,E),h=c.mul(h,l),u=y}return f}}function oc(t){if(t%en===nc){const e=(t+H)/en;return function(r,o){const i=r.pow(o,e);if(!r.eql(r.sqr(i),o))throw new Error(\"Cannot find square root\");return i}}if(t%Dr===Mr){const e=(t-Mr)/Dr;return function(r,o){const i=r.mul(o,At),s=r.pow(i,e),c=r.mul(o,s),a=r.mul(r.mul(c,At),s),u=r.mul(c,r.sub(a,r.ONE));if(!r.eql(r.sqr(u),o))throw new Error(\"Cannot find square root\");return u}}return rc(t)}const ic=[\"create\",\"isValid\",\"is0\",\"neg\",\"inv\",\"sqrt\",\"sqr\",\"eql\",\"add\",\"sub\",\"mul\",\"pow\",\"div\",\"addN\",\"subN\",\"mulN\",\"sqrN\"];function sc(t){const e={ORDER:\"bigint\",MASK:\"bigint\",BYTES:\"isSafeInteger\",BITS:\"isSafeInteger\"},n=ic.reduce((r,o)=>(r[o]=\"function\",r),e);return Dt(t,n)}function cc(t,e,n){if(n<q)throw new Error(\"invalid exponent, negatives unsupported\");if(n===q)return t.ONE;if(n===H)return e;let r=t.ONE,o=e;for(;n>q;)n&H&&(r=t.mul(r,o)),o=t.sqr(o),n>>=H;return r}function ac(t,e){const n=new Array(e.length),r=e.reduce((i,s,c)=>t.is0(s)?i:(n[c]=i,t.mul(i,s)),t.ONE),o=t.inv(r);return e.reduceRight((i,s,c)=>t.is0(s)?i:(n[c]=t.mul(i,n[c]),t.mul(i,s)),o),n}function qr(t,e){const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Kr(t,e,n=!1,r={}){if(t<=q)throw new Error(\"invalid field: expected ORDER > 0, got \"+t);const{nBitLength:o,nByteLength:i}=qr(t,e);if(i>2048)throw new Error(\"invalid field: expected ORDER of <= 2048 bytes\");let s;const c=Object.freeze({ORDER:t,isLE:n,BITS:o,BYTES:i,MASK:Je(o),ZERO:q,ONE:H,create:a=>X(a,t),isValid:a=>{if(typeof a!=\"bigint\")throw new Error(\"invalid field element: expected bigint, got \"+typeof a);return q<=a&&a<t},is0:a=>a===q,isOdd:a=>(a&H)===H,neg:a=>X(-a,t),eql:(a,u)=>a===u,sqr:a=>X(a*a,t),add:(a,u)=>X(a+u,t),sub:(a,u)=>X(a-u,t),mul:(a,u)=>X(a*u,t),pow:(a,u)=>cc(c,a,u),div:(a,u)=>X(a*nn(u,t),t),sqrN:a=>a*a,addN:(a,u)=>a+u,subN:(a,u)=>a-u,mulN:(a,u)=>a*u,inv:a=>nn(a,t),sqrt:r.sqrt||(a=>(s||(s=oc(t)),s(c,a))),invertBatch:a=>ac(c,a),cmov:(a,u,l)=>l?u:a,toBytes:a=>n?be(a,i):Mt(a,i),fromBytes:a=>{if(a.length!==i)throw new Error(\"Field.fromBytes: expected \"+i+\" bytes, got \"+a.length);return n?ee(a):Ot(a)}});return Object.freeze(c)}function Fr(t){if(typeof t!=\"bigint\")throw new Error(\"field order must be bigint\");const e=t.toString(2).length;return Math.ceil(e/8)}function zr(t){const e=Fr(t);return e+Math.ceil(e/2)}function uc(t,e,n=!1){const r=t.length,o=Fr(e),i=zr(e);if(r<16||r<i||r>1024)throw new Error(\"expected \"+i+\"-1024 bytes of input, got \"+r);const s=n?ee(t):Ot(t),c=X(s,e-H)+H;return n?be(c,o):Mt(c,o)}const Zr=BigInt(0),ve=BigInt(1);function rn(t,e){const n=e.negate();return t?n:e}function Yr(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error(\"invalid window size, expected [1..\"+e+\"], got W=\"+t)}function on(t,e){Yr(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1);return{windows:n,windowSize:r}}function fc(t,e){if(!Array.isArray(t))throw new Error(\"array expected\");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error(\"invalid point at index \"+r)})}function lc(t,e){if(!Array.isArray(t))throw new Error(\"array of scalars expected\");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error(\"invalid scalar at index \"+r)})}const sn=new WeakMap,Gr=new WeakMap;function cn(t){return Gr.get(t)||1}function dc(t,e){return{constTimeNegate:rn,hasPrecomputes(n){return cn(n)!==1},unsafeLadder(n,r,o=t.ZERO){let i=n;for(;r>Zr;)r&ve&&(o=o.add(i)),i=i.double(),r>>=ve;return o},precomputeWindow(n,r){const{windows:o,windowSize:i}=on(r,e),s=[];let c=n,a=c;for(let u=0;u<o;u++){a=c,s.push(a);for(let l=1;l<i;l++)a=a.add(c),s.push(a);c=a.double()}return s},wNAF(n,r,o){const{windows:i,windowSize:s}=on(n,e);let c=t.ZERO,a=t.BASE;const u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let h=0;h<i;h++){const y=h*s;let E=Number(o&u);o>>=f,E>s&&(E-=l,o+=ve);const p=y,d=y+Math.abs(E)-1,v=h%2!==0,m=E<0;E===0?a=a.add(rn(v,r[p])):c=c.add(rn(m,r[d]))}return{p:c,f:a}},wNAFUnsafe(n,r,o,i=t.ZERO){const{windows:s,windowSize:c}=on(n,e),a=BigInt(2**n-1),u=2**n,l=BigInt(n);for(let f=0;f<s;f++){const h=f*c;if(o===Zr)break;let y=Number(o&a);if(o>>=l,y>c&&(y-=u,o+=ve),y===0)continue;let E=r[h+Math.abs(y)-1];y<0&&(E=E.negate()),i=i.add(E)}return i},getPrecomputes(n,r,o){let i=sn.get(r);return i||(i=this.precomputeWindow(r,n),n!==1&&sn.set(r,o(i))),i},wNAFCached(n,r,o){const i=cn(n);return this.wNAF(i,this.getPrecomputes(i,n,o),r)},wNAFCachedUnsafe(n,r,o,i){const s=cn(n);return s===1?this.unsafeLadder(n,r,i):this.wNAFUnsafe(s,this.getPrecomputes(s,n,o),r,i)},setWindowSize(n,r){Yr(r,e),Gr.set(n,r),sn.delete(n)}}}function hc(t,e,n,r){if(fc(n,t),lc(r,e),n.length!==r.length)throw new Error(\"arrays of points and scalars must have equal length\");const o=t.ZERO,i=Pr(BigInt(n.length)),s=i>12?i-3:i>4?i-2:i?2:1,c=(1<<s)-1,a=new Array(c+1).fill(o),u=Math.floor((e.BITS-1)/s)*s;let l=o;for(let f=u;f>=0;f-=s){a.fill(o);for(let y=0;y<r.length;y++){const E=r[y],p=Number(E>>BigInt(f)&BigInt(c));a[p]=a[p].add(n[y])}let h=o;for(let y=a.length-1,E=o;y>0;y--)E=E.add(a[y]),h=h.add(E);if(l=l.add(h),f!==0)for(let y=0;y<s;y++)l=l.double()}return l}function Wr(t){return sc(t.Fp),Dt(t,{n:\"bigint\",h:\"bigint\",Gx:\"field\",Gy:\"field\"},{nBitLength:\"isSafeInteger\",nByteLength:\"isSafeInteger\"}),Object.freeze({...qr(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}BigInt(0),BigInt(1),BigInt(2),BigInt(8);const Ht=BigInt(0),an=BigInt(1);function pc(t){return Dt(t,{a:\"bigint\"},{montgomeryBits:\"isSafeInteger\",nByteLength:\"isSafeInteger\",adjustScalarBytes:\"function\",domain:\"function\",powPminus2:\"function\",Gu:\"bigint\"}),Object.freeze({...t})}function gc(t){const e=pc(t),{P:n}=e,r=m=>X(m,n),o=e.montgomeryBits,i=Math.ceil(o/8),s=e.nByteLength,c=e.adjustScalarBytes||(m=>m),a=e.powPminus2||(m=>Hr(m,n-BigInt(2),n));function u(m,O,N){const $=r(m*(O-N));return O=r(O-$),N=r(N+$),[O,N]}const l=(e.a-BigInt(2))/BigInt(4);function f(m,O){ft(\"u\",m,Ht,n),ft(\"scalar\",O,Ht,n);const N=O,$=m;let B=an,A=Ht,T=m,S=an,L=Ht,U;for(let j=BigInt(o-1);j>=Ht;j--){const g=N>>j&an;L^=g,U=u(L,B,T),B=U[0],T=U[1],U=u(L,A,S),A=U[0],S=U[1],L=g;const w=B+A,b=r(w*w),I=B-A,R=r(I*I),x=b-R,C=T+S,P=T-S,k=r(P*w),M=r(C*I),D=k+M,z=k-M;T=r(D*D),S=r($*r(z*z)),B=r(b*R),A=r(x*(b+r(l*x)))}U=u(L,B,T),B=U[0],T=U[1],U=u(L,A,S),A=U[0],S=U[1];const _=a(A);return r(B*_)}function h(m){return be(r(m),i)}function y(m){const O=et(\"u coordinate\",m,i);return s===32&&(O[31]&=127),ee(O)}function E(m){const O=et(\"scalar\",m),N=O.length;if(N!==i&&N!==s){let $=\"\"+i+\" or \"+s;throw new Error(\"invalid scalar, expected \"+$+\" bytes, got \"+N)}return ee(c(O))}function p(m,O){const N=y(O),$=E(m),B=f(N,$);if(B===Ht)throw new Error(\"invalid private or public key received\");return h(B)}const d=h(e.Gu);function v(m){return p(m,d)}return{scalarMult:p,scalarMultBase:v,getSharedSecret:(m,O)=>p(m,O),getPublicKey:m=>v(m),utils:{randomPrivateKey:()=>e.randomBytes(e.nByteLength)},GuBytes:d}}const un=BigInt(\"57896044618658097711785492504343953926634992332820282019728792003956564819949\");BigInt(0);const yc=BigInt(1),Xr=BigInt(2),mc=BigInt(3),wc=BigInt(5);BigInt(8);function bc(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),o=BigInt(80),i=un,c=t*t%i*t%i,a=it(c,Xr,i)*c%i,u=it(a,yc,i)*t%i,l=it(u,wc,i)*u%i,f=it(l,e,i)*l%i,h=it(f,n,i)*f%i,y=it(h,r,i)*h%i,E=it(y,o,i)*y%i,p=it(E,o,i)*y%i,d=it(p,e,i)*l%i;return{pow_p_5_8:it(d,Xr,i)*t%i,b2:c}}function Ec(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}const fn=gc({P:un,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:t=>{const e=un,{pow_p_5_8:n,b2:r}=bc(t);return X(it(n,mc,e)*r,e)},adjustScalarBytes:Ec,randomBytes:Lt});function Jr(t){t.lowS!==void 0&&Ct(\"lowS\",t.lowS),t.prehash!==void 0&&Ct(\"prehash\",t.prehash)}function vc(t){const e=Wr(t);Dt(e,{a:\"field\",b:\"field\"},{allowedPrivateKeyLengths:\"array\",wrapPrivateKey:\"boolean\",isTorsionFree:\"function\",clearCofactor:\"function\",allowInfinityPoint:\"boolean\",fromBytes:\"function\",toBytes:\"function\"});const{endo:n,Fp:r,a:o}=e;if(n){if(!r.eql(o,r.ZERO))throw new Error(\"invalid endomorphism, can only be defined for Koblitz curves that have a=0\");if(typeof n!=\"object\"||typeof n.beta!=\"bigint\"||typeof n.splitScalar!=\"function\")throw new Error(\"invalid endomorphism, expected beta: bigint and splitScalar: function\")}return Object.freeze({...e})}const{bytesToNumberBE:xc,hexToBytes:Sc}=ec;class Oc extends Error{constructor(e=\"\"){super(e)}}const lt={Err:Oc,_tlv:{encode:(t,e)=>{const{Err:n}=lt;if(t<0||t>256)throw new n(\"tlv.encode: wrong tag\");if(e.length&1)throw new n(\"tlv.encode: unpadded data\");const r=e.length/2,o=kt(r);if(o.length/2&128)throw new n(\"tlv.encode: long form length too big\");const i=r>127?kt(o.length/2|128):\"\";return kt(t)+i+o+e},decode(t,e){const{Err:n}=lt;let r=0;if(t<0||t>256)throw new n(\"tlv.encode: wrong tag\");if(e.length<2||e[r++]!==t)throw new n(\"tlv.decode: wrong tlv\");const o=e[r++],i=!!(o&128);let s=0;if(!i)s=o;else{const a=o&127;if(!a)throw new n(\"tlv.decode(long): indefinite length not supported\");if(a>4)throw new n(\"tlv.decode(long): byte length is too big\");const u=e.subarray(r,r+a);if(u.length!==a)throw new n(\"tlv.decode: length bytes not complete\");if(u[0]===0)throw new n(\"tlv.decode(long): zero leftmost byte\");for(const l of u)s=s<<8|l;if(r+=a,s<128)throw new n(\"tlv.decode(long): not minimal encoding\")}const c=e.subarray(r,r+s);if(c.length!==s)throw new n(\"tlv.decode: wrong value length\");return{v:c,l:e.subarray(r+s)}}},_int:{encode(t){const{Err:e}=lt;if(t<dt)throw new e(\"integer: negative integers are not allowed\");let n=kt(t);if(Number.parseInt(n[0],16)&8&&(n=\"00\"+n),n.length&1)throw new e(\"unexpected DER parsing assertion: unpadded hex\");return n},decode(t){const{Err:e}=lt;if(t[0]&128)throw new e(\"invalid signature integer: negative\");if(t[0]===0&&!(t[1]&128))throw new e(\"invalid signature integer: unnecessary leading zero\");return xc(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=lt,o=typeof t==\"string\"?Sc(t):t;te(o);const{v:i,l:s}=r.decode(48,o);if(s.length)throw new e(\"invalid signature: left bytes after parsing\");const{v:c,l:a}=r.decode(2,i),{v:u,l}=r.decode(2,a);if(l.length)throw new e(\"invalid signature: left bytes after parsing\");return{r:n.decode(c),s:n.decode(u)}},hexFromSig(t){const{_tlv:e,_int:n}=lt,r=e.encode(2,n.encode(t.r)),o=e.encode(2,n.encode(t.s)),i=r+o;return e.encode(48,i)}},dt=BigInt(0),K=BigInt(1);BigInt(2);const Qr=BigInt(3);BigInt(4);function Ac(t){const e=vc(t),{Fp:n}=e,r=Kr(e.n,e.nBitLength),o=e.toBytes||((p,d,v)=>{const m=d.toAffine();return ne(Uint8Array.from([4]),n.toBytes(m.x),n.toBytes(m.y))}),i=e.fromBytes||(p=>{const d=p.subarray(1),v=n.fromBytes(d.subarray(0,n.BYTES)),m=n.fromBytes(d.subarray(n.BYTES,2*n.BYTES));return{x:v,y:m}});function s(p){const{a:d,b:v}=e,m=n.sqr(p),O=n.mul(m,p);return n.add(n.add(O,n.mul(p,d)),v)}if(!n.eql(n.sqr(e.Gy),s(e.Gx)))throw new Error(\"bad generator point: equation left != right\");function c(p){return Ee(p,K,e.n)}function a(p){const{allowedPrivateKeyLengths:d,nByteLength:v,wrapPrivateKey:m,n:O}=e;if(d&&typeof p!=\"bigint\"){if(St(p)&&(p=Pt(p)),typeof p!=\"string\"||!d.includes(p.length))throw new Error(\"invalid private key\");p=p.padStart(v*2,\"0\")}let N;try{N=typeof p==\"bigint\"?p:Ot(et(\"private key\",p,v))}catch{throw new Error(\"invalid private key, expected hex or \"+v+\" bytes, got \"+typeof p)}return m&&(N=X(N,O)),ft(\"private key\",N,K,O),N}function u(p){if(!(p instanceof h))throw new Error(\"ProjectivePoint expected\")}const l=tn((p,d)=>{const{px:v,py:m,pz:O}=p;if(n.eql(O,n.ONE))return{x:v,y:m};const N=p.is0();d==null&&(d=N?n.ONE:n.inv(O));const $=n.mul(v,d),B=n.mul(m,d),A=n.mul(O,d);if(N)return{x:n.ZERO,y:n.ZERO};if(!n.eql(A,n.ONE))throw new Error(\"invZ was invalid\");return{x:$,y:B}}),f=tn(p=>{if(p.is0()){if(e.allowInfinityPoint&&!n.is0(p.py))return;throw new Error(\"bad point: ZERO\")}const{x:d,y:v}=p.toAffine();if(!n.isValid(d)||!n.isValid(v))throw new Error(\"bad point: x or y not FE\");const m=n.sqr(v),O=s(d);if(!n.eql(m,O))throw new Error(\"bad point: equation left != right\");if(!p.isTorsionFree())throw new Error(\"bad point: not in prime-order subgroup\");return!0});class h{constructor(d,v,m){if(this.px=d,this.py=v,this.pz=m,d==null||!n.isValid(d))throw new Error(\"x required\");if(v==null||!n.isValid(v))throw new Error(\"y required\");if(m==null||!n.isValid(m))throw new Error(\"z required\");Object.freeze(this)}static fromAffine(d){const{x:v,y:m}=d||{};if(!d||!n.isValid(v)||!n.isValid(m))throw new Error(\"invalid affine point\");if(d instanceof h)throw new Error(\"projective point not allowed\");const O=N=>n.eql(N,n.ZERO);return O(v)&&O(m)?h.ZERO:new h(v,m,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){const v=n.invertBatch(d.map(m=>m.pz));return d.map((m,O)=>m.toAffine(v[O])).map(h.fromAffine)}static fromHex(d){const v=h.fromAffine(i(et(\"pointHex\",d)));return v.assertValidity(),v}static fromPrivateKey(d){return h.BASE.multiply(a(d))}static msm(d,v){return hc(h,r,d,v)}_setWindowSize(d){E.setWindowSize(this,d)}assertValidity(){f(this)}hasEvenY(){const{y:d}=this.toAffine();if(n.isOdd)return!n.isOdd(d);throw new Error(\"Field doesn't support isOdd\")}equals(d){u(d);const{px:v,py:m,pz:O}=this,{px:N,py:$,pz:B}=d,A=n.eql(n.mul(v,B),n.mul(N,O)),T=n.eql(n.mul(m,B),n.mul($,O));return A&&T}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){const{a:d,b:v}=e,m=n.mul(v,Qr),{px:O,py:N,pz:$}=this;let B=n.ZERO,A=n.ZERO,T=n.ZERO,S=n.mul(O,O),L=n.mul(N,N),U=n.mul($,$),_=n.mul(O,N);return _=n.add(_,_),T=n.mul(O,$),T=n.add(T,T),B=n.mul(d,T),A=n.mul(m,U),A=n.add(B,A),B=n.sub(L,A),A=n.add(L,A),A=n.mul(B,A),B=n.mul(_,B),T=n.mul(m,T),U=n.mul(d,U),_=n.sub(S,U),_=n.mul(d,_),_=n.add(_,T),T=n.add(S,S),S=n.add(T,S),S=n.add(S,U),S=n.mul(S,_),A=n.add(A,S),U=n.mul(N,$),U=n.add(U,U),S=n.mul(U,_),B=n.sub(B,S),T=n.mul(U,L),T=n.add(T,T),T=n.add(T,T),new h(B,A,T)}add(d){u(d);const{px:v,py:m,pz:O}=this,{px:N,py:$,pz:B}=d;let A=n.ZERO,T=n.ZERO,S=n.ZERO;const L=e.a,U=n.mul(e.b,Qr);let _=n.mul(v,N),j=n.mul(m,$),g=n.mul(O,B),w=n.add(v,m),b=n.add(N,$);w=n.mul(w,b),b=n.add(_,j),w=n.sub(w,b),b=n.add(v,O);let I=n.add(N,B);return b=n.mul(b,I),I=n.add(_,g),b=n.sub(b,I),I=n.add(m,O),A=n.add($,B),I=n.mul(I,A),A=n.add(j,g),I=n.sub(I,A),S=n.mul(L,b),A=n.mul(U,g),S=n.add(A,S),A=n.sub(j,S),S=n.add(j,S),T=n.mul(A,S),j=n.add(_,_),j=n.add(j,_),g=n.mul(L,g),b=n.mul(U,b),j=n.add(j,g),g=n.sub(_,g),g=n.mul(L,g),b=n.add(b,g),_=n.mul(j,b),T=n.add(T,_),_=n.mul(I,b),A=n.mul(w,A),A=n.sub(A,_),_=n.mul(w,j),S=n.mul(I,S),S=n.add(S,_),new h(A,T,S)}subtract(d){return this.add(d.negate())}is0(){return this.equals(h.ZERO)}wNAF(d){return E.wNAFCached(this,d,h.normalizeZ)}multiplyUnsafe(d){const{endo:v,n:m}=e;ft(\"scalar\",d,dt,m);const O=h.ZERO;if(d===dt)return O;if(this.is0()||d===K)return this;if(!v||E.hasPrecomputes(this))return E.wNAFCachedUnsafe(this,d,h.normalizeZ);let{k1neg:N,k1:$,k2neg:B,k2:A}=v.splitScalar(d),T=O,S=O,L=this;for(;$>dt||A>dt;)$&K&&(T=T.add(L)),A&K&&(S=S.add(L)),L=L.double(),$>>=K,A>>=K;return N&&(T=T.negate()),B&&(S=S.negate()),S=new h(n.mul(S.px,v.beta),S.py,S.pz),T.add(S)}multiply(d){const{endo:v,n:m}=e;ft(\"scalar\",d,K,m);let O,N;if(v){const{k1neg:$,k1:B,k2neg:A,k2:T}=v.splitScalar(d);let{p:S,f:L}=this.wNAF(B),{p:U,f:_}=this.wNAF(T);S=E.constTimeNegate($,S),U=E.constTimeNegate(A,U),U=new h(n.mul(U.px,v.beta),U.py,U.pz),O=S.add(U),N=L.add(_)}else{const{p:$,f:B}=this.wNAF(d);O=$,N=B}return h.normalizeZ([O,N])[0]}multiplyAndAddUnsafe(d,v,m){const O=h.BASE,N=(B,A)=>A===dt||A===K||!B.equals(O)?B.multiplyUnsafe(A):B.multiply(A),$=N(this,v).add(N(d,m));return $.is0()?void 0:$}toAffine(d){return l(this,d)}isTorsionFree(){const{h:d,isTorsionFree:v}=e;if(d===K)return!0;if(v)return v(h,this);throw new Error(\"isTorsionFree() has not been declared for the elliptic curve\")}clearCofactor(){const{h:d,clearCofactor:v}=e;return d===K?this:v?v(h,this):this.multiplyUnsafe(e.h)}toRawBytes(d=!0){return Ct(\"isCompressed\",d),this.assertValidity(),o(h,this,d)}toHex(d=!0){return Ct(\"isCompressed\",d),Pt(this.toRawBytes(d))}}h.BASE=new h(e.Gx,e.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);const y=e.nBitLength,E=dc(h,e.endo?Math.ceil(y/2):y);return{CURVE:e,ProjectivePoint:h,normPrivateKeyToScalar:a,weierstrassEquation:s,isWithinCurveOrder:c}}function Bc(t){const e=Wr(t);return Dt(e,{hash:\"hash\",hmac:\"function\",randomBytes:\"function\"},{bits2int:\"function\",bits2int_modN:\"function\",lowS:\"boolean\"}),Object.freeze({lowS:!0,...e})}function Ic(t){const e=Bc(t),{Fp:n,n:r}=e,o=n.BYTES+1,i=2*n.BYTES+1;function s(g){return X(g,r)}function c(g){return nn(g,r)}const{ProjectivePoint:a,normPrivateKeyToScalar:u,weierstrassEquation:l,isWithinCurveOrder:f}=Ac({...e,toBytes(g,w,b){const I=w.toAffine(),R=n.toBytes(I.x),x=ne;return Ct(\"isCompressed\",b),b?x(Uint8Array.from([w.hasEvenY()?2:3]),R):x(Uint8Array.from([4]),R,n.toBytes(I.y))},fromBytes(g){const w=g.length,b=g[0],I=g.subarray(1);if(w===o&&(b===2||b===3)){const R=Ot(I);if(!Ee(R,K,n.ORDER))throw new Error(\"Point is not on curve\");const x=l(R);let C;try{C=n.sqrt(x)}catch(M){const D=M instanceof Error?\": \"+M.message:\"\";throw new Error(\"Point is not on curve\"+D)}const P=(C&K)===K;return(b&1)===1!==P&&(C=n.neg(C)),{x:R,y:C}}else if(w===i&&b===4){const R=n.fromBytes(I.subarray(0,n.BYTES)),x=n.fromBytes(I.subarray(n.BYTES,2*n.BYTES));return{x:R,y:x}}else{const R=o,x=i;throw new Error(\"invalid Point, expected length of \"+R+\", or uncompressed \"+x+\", got \"+w)}}}),h=g=>Pt(Mt(g,e.nByteLength));function y(g){const w=r>>K;return g>w}function E(g){return y(g)?s(-g):g}const p=(g,w,b)=>Ot(g.slice(w,b));class d{constructor(w,b,I){this.r=w,this.s=b,this.recovery=I,this.assertValidity()}static fromCompact(w){const b=e.nByteLength;return w=et(\"compactSignature\",w,b*2),new d(p(w,0,b),p(w,b,2*b))}static fromDER(w){const{r:b,s:I}=lt.toSig(et(\"DER\",w));return new d(b,I)}assertValidity(){ft(\"r\",this.r,K,r),ft(\"s\",this.s,K,r)}addRecoveryBit(w){return new d(this.r,this.s,w)}recoverPublicKey(w){const{r:b,s:I,recovery:R}=this,x=B(et(\"msgHash\",w));if(R==null||![0,1,2,3].includes(R))throw new Error(\"recovery id invalid\");const C=R===2||R===3?b+e.n:b;if(C>=n.ORDER)throw new Error(\"recovery id 2 or 3 invalid\");const P=(R&1)===0?\"02\":\"03\",k=a.fromHex(P+h(C)),M=c(C),D=s(-x*M),z=s(I*M),Z=a.BASE.multiplyAndAddUnsafe(k,D,z);if(!Z)throw new Error(\"point at infinify\");return Z.assertValidity(),Z}hasHighS(){return y(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return Vt(this.toDERHex())}toDERHex(){return lt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Vt(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}const v={isValidPrivateKey(g){try{return u(g),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{const g=zr(e.n);return uc(e.randomBytes(g),e.n)},precompute(g=8,w=a.BASE){return w._setWindowSize(g),w.multiply(BigInt(3)),w}};function m(g,w=!0){return a.fromPrivateKey(g).toRawBytes(w)}function O(g){const w=St(g),b=typeof g==\"string\",I=(w||b)&&g.length;return w?I===o||I===i:b?I===2*o||I===2*i:g instanceof a}function N(g,w,b=!0){if(O(g))throw new Error(\"first arg must be private key\");if(!O(w))throw new Error(\"second arg must be public key\");return a.fromHex(w).multiply(u(g)).toRawBytes(b)}const $=e.bits2int||function(g){if(g.length>8192)throw new Error(\"input is too large\");const w=Ot(g),b=g.length*8-e.nBitLength;return b>0?w>>BigInt(b):w},B=e.bits2int_modN||function(g){return s($(g))},A=Je(e.nBitLength);function T(g){return ft(\"num < 2^\"+e.nBitLength,g,dt,A),Mt(g,e.nByteLength)}function S(g,w,b=L){if([\"recovered\",\"canonical\"].some(W=>W in b))throw new Error(\"sign() legacy options not supported\");const{hash:I,randomBytes:R}=e;let{lowS:x,prehash:C,extraEntropy:P}=b;x==null&&(x=!0),g=et(\"msgHash\",g),Jr(b),C&&(g=et(\"prehashed msgHash\",I(g)));const k=B(g),M=u(w),D=[T(M),T(k)];if(P!=null&&P!==!1){const W=P===!0?R(n.BYTES):P;D.push(et(\"extraEntropy\",W))}const z=ne(...D),Z=k;function st(W){const J=$(W);if(!f(J))return;const Be=c(J),zt=a.BASE.multiply(J).toAffine(),vt=s(zt.x);if(vt===dt)return;const Zt=s(Be*s(Z+vt*M));if(Zt===dt)return;let Ut=(zt.x===vt?0:2)|Number(zt.y&K),vn=Zt;return x&&y(Zt)&&(vn=E(Zt),Ut^=1),new d(vt,vn,Ut)}return{seed:z,k2sig:st}}const L={lowS:e.lowS,prehash:!1},U={lowS:e.lowS,prehash:!1};function _(g,w,b=L){const{seed:I,k2sig:R}=S(g,w,b),x=e;return Vr(x.hash.outputLen,x.nByteLength,x.hmac)(I,R)}a.BASE._setWindowSize(8);function j(g,w,b,I=U){const R=g;w=et(\"msgHash\",w),b=et(\"publicKey\",b);const{lowS:x,prehash:C,format:P}=I;if(Jr(I),\"strict\"in I)throw new Error(\"options.strict was renamed to lowS\");if(P!==void 0&&P!==\"compact\"&&P!==\"der\")throw new Error(\"format must be compact or der\");const k=typeof R==\"string\"||St(R),M=!k&&!P&&typeof R==\"object\"&&R!==null&&typeof R.r==\"bigint\"&&typeof R.s==\"bigint\";if(!k&&!M)throw new Error(\"invalid signature, expected Uint8Array, hex string or Signature instance\");let D,z;try{if(M&&(D=new d(R.r,R.s)),k){try{P!==\"compact\"&&(D=d.fromDER(R))}catch(Ut){if(!(Ut instanceof lt.Err))throw Ut}!D&&P!==\"der\"&&(D=d.fromCompact(R))}z=a.fromHex(b)}catch{return!1}if(!D||x&&D.hasHighS())return!1;C&&(w=e.hash(w));const{r:Z,s:st}=D,W=B(w),J=c(st),Be=s(W*J),zt=s(Z*J),vt=a.BASE.multiplyAndAddUnsafe(z,Be,zt)?.toAffine();return vt?s(vt.x)===Z:!1}return{CURVE:e,getPublicKey:m,getSharedSecret:N,sign:_,verify:j,ProjectivePoint:a,Signature:d,utils:v}}function Nc(t){return{hash:t,hmac:(e,...n)=>ye(t,e,Vi(...n)),randomBytes:Lt}}function Uc(t,e){const n=r=>Ic({...t,...Nc(r)});return{...n(e),create:n}}const to=Kr(BigInt(\"0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff\")),Tc=to.create(BigInt(\"-3\")),Rc=BigInt(\"0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b\"),_c=Uc({a:Tc,b:Rc,Fp:to,n:BigInt(\"0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\"),Gx:BigInt(\"0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296\"),Gy:BigInt(\"0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5\"),h:BigInt(1),lowS:!1},Qt),ln=\"base10\",G=\"base16\",qt=\"base64pad\",xe=\"base64url\",Kt=\"utf8\",dn=0,Ft=1,re=2,$c=0,eo=1,oe=12,hn=32;function Lc(){const t=fn.utils.randomPrivateKey(),e=fn.getPublicKey(t);return{privateKey:Q(t,G),publicKey:Q(e,G)}}function jc(){const t=Lt(hn);return Q(t,G)}function Cc(t,e){const n=fn.getSharedSecret(rt(t,G),rt(e,G)),r=Vs(Qt,n,void 0,void 0,hn);return Q(r,G)}function Pc(t){const e=Qt(rt(t,G));return Q(e,G)}function kc(t){const e=Qt(rt(t,Kt));return Q(e,G)}function pn(t){return rt(`${t}`,ln)}function Bt(t){return Number(Q(t,ln))}function no(t){return t.replace(/\\+/g,\"-\").replace(/\\//g,\"_\").replace(/=/g,\"\")}function ro(t){const e=t.replace(/-/g,\"+\").replace(/_/g,\"/\"),n=(4-e.length%4)%4;return e+\"=\".repeat(n)}function Vc(t){const e=pn(typeof t.type<\"u\"?t.type:dn);if(Bt(e)===Ft&&typeof t.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const n=typeof t.senderPublicKey<\"u\"?rt(t.senderPublicKey,G):void 0,r=typeof t.iv<\"u\"?rt(t.iv,G):Lt(oe),o=rt(t.symKey,G),i=$r(o,r).encrypt(rt(t.message,Kt)),s=gn({type:e,sealed:i,iv:r,senderPublicKey:n});return t.encoding===xe?no(s):s}function Mc(t){const e=rt(t.symKey,G),{sealed:n,iv:r}=Se({encoded:t.encoded,encoding:t.encoding}),o=$r(e,r).decrypt(n);if(o===null)throw new Error(\"Failed to decrypt\");return Q(o,Kt)}function Dc(t,e){const n=pn(re),r=Lt(oe),o=rt(t,Kt),i=gn({type:n,sealed:o,iv:r});return e===xe?no(i):i}function Hc(t,e){const{sealed:n}=Se({encoded:t,encoding:e});return Q(n,Kt)}function gn(t){if(Bt(t.type)===re)return Q(Gt([t.type,t.sealed]),qt);if(Bt(t.type)===Ft){if(typeof t.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return Q(Gt([t.type,t.senderPublicKey,t.iv,t.sealed]),qt)}return Q(Gt([t.type,t.iv,t.sealed]),qt)}function Se(t){const e=(t.encoding||qt)===xe?ro(t.encoded):t.encoded,n=rt(e,qt),r=n.slice($c,eo),o=eo;if(Bt(r)===Ft){const a=o+hn,u=a+oe,l=n.slice(o,a),f=n.slice(a,u),h=n.slice(u);return{type:r,sealed:h,iv:f,senderPublicKey:l}}if(Bt(r)===re){const a=n.slice(o),u=Lt(oe);return{type:r,sealed:a,iv:u}}const i=o+oe,s=n.slice(o,i),c=n.slice(i);return{type:r,sealed:c,iv:s}}function qc(t,e){const n=Se({encoded:t,encoding:e?.encoding});return oo({type:Bt(n.type),senderPublicKey:typeof n.senderPublicKey<\"u\"?Q(n.senderPublicKey,G):void 0,receiverPublicKey:e?.receiverPublicKey})}function oo(t){const e=t?.type||dn;if(e===Ft){if(typeof t?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof t?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:e,senderPublicKey:t?.senderPublicKey,receiverPublicKey:t?.receiverPublicKey}}function Kc(t){return t.type===Ft&&typeof t.senderPublicKey==\"string\"&&typeof t.receiverPublicKey==\"string\"}function Fc(t){return t.type===re}function io(t){const e=Buffer.from(t.x,\"base64\"),n=Buffer.from(t.y,\"base64\");return Gt([new Uint8Array([4]),e,n])}function zc(t,e){const[n,r,o]=t.split(\".\"),i=Buffer.from(ro(o),\"base64\");if(i.length!==64)throw new Error(\"Invalid signature length\");const s=i.slice(0,32),c=i.slice(32,64),a=`${n}.${r}`,u=Qt(a),l=io(e);if(!_c.verify(Gt([s,c]),u,l))throw new Error(\"Invalid signature\");return Mo(t).payload}const so=\"irn\";function Zc(t){return t?.relay||{protocol:so}}function Yc(t){const e=Do[t];if(typeof e>\"u\")throw new Error(`Relay Protocol not supported: ${t}`);return e}function co(t,e=\"-\"){const n={},r=\"relay\"+e;return Object.keys(t).forEach(o=>{if(o.startsWith(r)){const i=o.replace(r,\"\"),s=t[o];n[i]=s}}),n}function Gc(t){if(!t.includes(\"wc:\")){const u=je(t);u!=null&&u.includes(\"wc:\")&&(t=u)}t=t.includes(\"wc://\")?t.replace(\"wc://\",\"\"):t,t=t.includes(\"wc:\")?t.replace(\"wc:\",\"\"):t;const e=t.indexOf(\":\"),n=t.indexOf(\"?\")!==-1?t.indexOf(\"?\"):void 0,r=t.substring(0,e),o=t.substring(e+1,n).split(\"@\"),i=typeof n<\"u\"?t.substring(n):\"\",s=new URLSearchParams(i),c={};s.forEach((u,l)=>{c[l]=u});const a=typeof c.methods==\"string\"?c.methods.split(\",\"):void 0;return{protocol:r,topic:ao(o[0]),version:parseInt(o[1],10),symKey:c.symKey,relay:co(c),methods:a,expiryTimestamp:c.expiryTimestamp?parseInt(c.expiryTimestamp,10):void 0}}function ao(t){return t.startsWith(\"//\")?t.substring(2):t}function uo(t,e=\"-\"){const n=\"relay\",r={};return Object.keys(t).forEach(o=>{const i=o,s=n+e+i;t[i]&&(r[s]=t[i])}),r}function Wc(t){const e=new URLSearchParams,n=uo(t.relay);Object.keys(n).sort().forEach(o=>{e.set(o,n[o])}),e.set(\"symKey\",t.symKey),t.expiryTimestamp&&e.set(\"expiryTimestamp\",t.expiryTimestamp.toString()),t.methods&&e.set(\"methods\",t.methods.join(\",\"));const r=e.toString();return`${t.protocol}:${t.topic}@${t.version}?${r}`}function Xc(t,e,n){return`${t}?wc_ev=${n}&topic=${e}`}var Jc=Object.defineProperty,Qc=Object.defineProperties,ta=Object.getOwnPropertyDescriptors,fo=Object.getOwnPropertySymbols,ea=Object.prototype.hasOwnProperty,na=Object.prototype.propertyIsEnumerable,lo=(t,e,n)=>e in t?Jc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ra=(t,e)=>{for(var n in e||(e={}))ea.call(e,n)&&lo(t,n,e[n]);if(fo)for(var n of fo(e))na.call(e,n)&&lo(t,n,e[n]);return t},oa=(t,e)=>Qc(t,ta(e));function It(t){const e=[];return t.forEach(n=>{const[r,o]=n.split(\":\");e.push(`${r}:${o}`)}),e}function ho(t){const e=[];return Object.values(t).forEach(n=>{e.push(...It(n.accounts))}),e}function po(t,e){const n=[];return Object.values(t).forEach(r=>{It(r.accounts).includes(e)&&n.push(...r.methods)}),n}function go(t,e){const n=[];return Object.values(t).forEach(r=>{It(r.accounts).includes(e)&&n.push(...r.events)}),n}function ia(t,e){const n=Bo(t,e);if(n)throw new Error(n.message);const r={};for(const[o,i]of Object.entries(t))r[o]={methods:i.methods,events:i.events,chains:i.accounts.map(s=>`${s.split(\":\")[0]}:${s.split(\":\")[1]}`)};return r}function sa(t){const{proposal:{requiredNamespaces:e,optionalNamespaces:n={}},supportedNamespaces:r}=t,o=ie(e),i=ie(n),s={};Object.keys(r).forEach(u=>{const l=r[u].chains,f=r[u].methods,h=r[u].events,y=r[u].accounts;l.forEach(E=>{if(!y.some(p=>p.includes(E)))throw new Error(`No accounts provided for chain ${E} in namespace ${u}`)}),s[u]={chains:l,methods:f,events:h,accounts:y}});const c=No(e,s,\"approve()\");if(c)throw new Error(c.message);const a={};return!Object.keys(e).length&&!Object.keys(n).length?s:(Object.keys(o).forEach(u=>{const l=r[u].chains.filter(E=>{var p,d;return(d=(p=o[u])==null?void 0:p.chains)==null?void 0:d.includes(E)}),f=r[u].methods.filter(E=>{var p,d;return(d=(p=o[u])==null?void 0:p.methods)==null?void 0:d.includes(E)}),h=r[u].events.filter(E=>{var p,d;return(d=(p=o[u])==null?void 0:p.events)==null?void 0:d.includes(E)}),y=l.map(E=>r[u].accounts.filter(p=>p.includes(`${E}:`))).flat();a[u]={chains:l,methods:f,events:h,accounts:y}}),Object.keys(i).forEach(u=>{var l,f,h,y,E,p;if(!r[u])return;const d=(f=(l=i[u])==null?void 0:l.chains)==null?void 0:f.filter(N=>r[u].chains.includes(N)),v=r[u].methods.filter(N=>{var $,B;return(B=($=i[u])==null?void 0:$.methods)==null?void 0:B.includes(N)}),m=r[u].events.filter(N=>{var $,B;return(B=($=i[u])==null?void 0:$.events)==null?void 0:B.includes(N)}),O=d?.map(N=>r[u].accounts.filter($=>$.includes(`${N}:`))).flat();a[u]={chains:ot((h=a[u])==null?void 0:h.chains,d),methods:ot((y=a[u])==null?void 0:y.methods,v),events:ot((E=a[u])==null?void 0:E.events,m),accounts:ot((p=a[u])==null?void 0:p.accounts,O)}}),a)}function yn(t){return t.includes(\":\")}function yo(t){return yn(t)?t.split(\":\")[0]:t}function ie(t){var e,n,r;const o={};if(!Oe(t))return o;for(const[i,s]of Object.entries(t)){const c=yn(i)?[i]:s.chains,a=s.methods||[],u=s.events||[],l=yo(i);o[l]=oa(ra({},o[l]),{chains:ot(c,(e=o[l])==null?void 0:e.chains),methods:ot(a,(n=o[l])==null?void 0:n.methods),events:ot(u,(r=o[l])==null?void 0:r.events)})}return o}function mo(t){const e={};return t?.forEach(n=>{var r;const[o,i]=n.split(\":\");e[o]||(e[o]={accounts:[],chains:[],events:[],methods:[]}),e[o].accounts.push(n),(r=e[o].chains)==null||r.push(`${o}:${i}`)}),e}function ca(t,e){e=e.map(r=>r.replace(\"did:pkh:\",\"\"));const n=mo(e);for(const[r,o]of Object.entries(n))o.methods?o.methods=ot(o.methods,t):o.methods=t,o.events=[\"chainChanged\",\"accountsChanged\"];return n}function aa(t,e){var n,r,o,i,s,c;const a=ie(t),u=ie(e),l={},f=Object.keys(a).concat(Object.keys(u));for(const h of f)l[h]={chains:ot((n=a[h])==null?void 0:n.chains,(r=u[h])==null?void 0:r.chains),methods:ot((o=a[h])==null?void 0:o.methods,(i=u[h])==null?void 0:i.methods),events:ot((s=a[h])==null?void 0:s.events,(c=u[h])==null?void 0:c.events)};return l}const wo={INVALID_METHOD:{message:\"Invalid method.\",code:1001},INVALID_EVENT:{message:\"Invalid event.\",code:1002},INVALID_UPDATE_REQUEST:{message:\"Invalid update request.\",code:1003},INVALID_EXTEND_REQUEST:{message:\"Invalid extend request.\",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:\"Invalid session settle request.\",code:1005},UNAUTHORIZED_METHOD:{message:\"Unauthorized method.\",code:3001},UNAUTHORIZED_EVENT:{message:\"Unauthorized event.\",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:\"Unauthorized update request.\",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:\"Unauthorized extend request.\",code:3004},USER_REJECTED:{message:\"User rejected.\",code:5e3},USER_REJECTED_CHAINS:{message:\"User rejected chains.\",code:5001},USER_REJECTED_METHODS:{message:\"User rejected methods.\",code:5002},USER_REJECTED_EVENTS:{message:\"User rejected events.\",code:5003},UNSUPPORTED_CHAINS:{message:\"Unsupported chains.\",code:5100},UNSUPPORTED_METHODS:{message:\"Unsupported methods.\",code:5101},UNSUPPORTED_EVENTS:{message:\"Unsupported events.\",code:5102},UNSUPPORTED_ACCOUNTS:{message:\"Unsupported accounts.\",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:\"Unsupported namespace key.\",code:5104},USER_DISCONNECTED:{message:\"User disconnected.\",code:6e3},SESSION_SETTLEMENT_FAILED:{message:\"Session settlement failed.\",code:7e3},WC_METHOD_UNSUPPORTED:{message:\"Unsupported wc_ method.\",code:10001}},bo={NOT_INITIALIZED:{message:\"Not initialized.\",code:1},NO_MATCHING_KEY:{message:\"No matching key.\",code:2},RESTORE_WILL_OVERRIDE:{message:\"Restore will override.\",code:3},RESUBSCRIBED:{message:\"Resubscribed.\",code:4},MISSING_OR_INVALID:{message:\"Missing or invalid.\",code:5},EXPIRED:{message:\"Expired.\",code:6},UNKNOWN_TYPE:{message:\"Unknown type.\",code:7},MISMATCHED_TOPIC:{message:\"Mismatched topic.\",code:8},NON_CONFORMING_NAMESPACES:{message:\"Non conforming namespaces.\",code:9}};function ht(t,e){const{message:n,code:r}=bo[t];return{message:e?`${n} ${e}`:n,code:r}}function Nt(t,e){const{message:n,code:r}=wo[t];return{message:e?`${n} ${e}`:n,code:r}}function se(t,e){return Array.isArray(t)?typeof e<\"u\"&&t.length?t.every(e):!0:!1}function Oe(t){return Object.getPrototypeOf(t)===Object.prototype&&Object.keys(t).length}function Et(t){return typeof t>\"u\"}function nt(t,e){return e&&Et(t)?!0:typeof t==\"string\"&&!!t.trim().length}function Ae(t,e){return e&&Et(t)?!0:typeof t==\"number\"&&!isNaN(t)}function ua(t,e){const{requiredNamespaces:n}=e,r=Object.keys(t.namespaces),o=Object.keys(n);let i=!0;return gt(o,r)?(r.forEach(s=>{const{accounts:c,methods:a,events:u}=t.namespaces[s],l=It(c),f=n[s];(!gt(ue(s,f),l)||!gt(f.methods,a)||!gt(f.events,u))&&(i=!1)}),i):!1}function ce(t){return nt(t,!1)&&t.includes(\":\")?t.split(\":\").length===2:!1}function Eo(t){if(nt(t,!1)&&t.includes(\":\")){const e=t.split(\":\");if(e.length===3){const n=e[0]+\":\"+e[1];return!!e[2]&&ce(n)}}return!1}function fa(t){function e(n){try{return typeof new URL(n)<\"u\"}catch{return!1}}try{if(nt(t,!1)){if(e(t))return!0;const n=je(t);return e(n)}}catch{}return!1}function la(t){var e;return(e=t?.proposer)==null?void 0:e.publicKey}function da(t){return t?.topic}function ha(t,e){let n=null;return nt(t?.publicKey,!1)||(n=ht(\"MISSING_OR_INVALID\",`${e} controller public key should be a string`)),n}function mn(t){let e=!0;return se(t)?t.length&&(e=t.every(n=>nt(n,!1))):e=!1,e}function vo(t,e,n){let r=null;return se(e)&&e.length?e.forEach(o=>{r||ce(o)||(r=Nt(\"UNSUPPORTED_CHAINS\",`${n}, chain ${o} should be a string and conform to \"namespace:chainId\" format`))}):ce(t)||(r=Nt(\"UNSUPPORTED_CHAINS\",`${n}, chains must be defined as \"namespace:chainId\" e.g. \"eip155:1\": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: [\"eip155:1\", \"eip155:5\"] }`)),r}function xo(t,e,n){let r=null;return Object.entries(t).forEach(([o,i])=>{if(r)return;const s=vo(o,ue(o,i),`${e} ${n}`);s&&(r=s)}),r}function So(t,e){let n=null;return se(t)?t.forEach(r=>{n||Eo(r)||(n=Nt(\"UNSUPPORTED_ACCOUNTS\",`${e}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):n=Nt(\"UNSUPPORTED_ACCOUNTS\",`${e}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),n}function Oo(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const o=So(r?.accounts,`${e} namespace`);o&&(n=o)}),n}function Ao(t,e){let n=null;return mn(t?.methods)?mn(t?.events)||(n=Nt(\"UNSUPPORTED_EVENTS\",`${e}, events should be an array of strings or empty array for no events`)):n=Nt(\"UNSUPPORTED_METHODS\",`${e}, methods should be an array of strings or empty array for no methods`),n}function wn(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const o=Ao(r,`${e}, namespace`);o&&(n=o)}),n}function pa(t,e,n){let r=null;if(t&&Oe(t)){const o=wn(t,e);o&&(r=o);const i=xo(t,e,n);i&&(r=i)}else r=ht(\"MISSING_OR_INVALID\",`${e}, ${n} should be an object with data`);return r}function Bo(t,e){let n=null;if(t&&Oe(t)){const r=wn(t,e);r&&(n=r);const o=Oo(t,e);o&&(n=o)}else n=ht(\"MISSING_OR_INVALID\",`${e}, namespaces should be an object with data`);return n}function Io(t){return nt(t.protocol,!0)}function ga(t,e){let n=!1;return e&&!t?n=!0:t&&se(t)&&t.length&&t.forEach(r=>{n=Io(r)}),n}function ya(t){return typeof t==\"number\"}function ma(t){return typeof t<\"u\"&&typeof t!==null}function wa(t){return!(!t||typeof t!=\"object\"||!t.code||!Ae(t.code,!1)||!t.message||!nt(t.message,!1))}function ba(t){return!(Et(t)||!nt(t.method,!1))}function Ea(t){return!(Et(t)||Et(t.result)&&Et(t.error)||!Ae(t.id,!1)||!nt(t.jsonrpc,!1))}function va(t){return!(Et(t)||!nt(t.name,!1))}function xa(t,e){return!(!ce(e)||!ho(t).includes(e))}function Sa(t,e,n){return nt(n,!1)?po(t,e).includes(n):!1}function Oa(t,e,n){return nt(n,!1)?go(t,e).includes(n):!1}function No(t,e,n){let r=null;const o=Aa(t),i=Ba(e),s=Object.keys(o),c=Object.keys(i),a=Uo(Object.keys(t)),u=Uo(Object.keys(e)),l=a.filter(f=>!u.includes(f));return l.length&&(r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces keys don't satisfy requiredNamespaces.\n      Required: ${l.toString()}\n      Received: ${Object.keys(e).toString()}`)),gt(s,c)||(r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces chains don't satisfy required namespaces.\n      Required: ${s.toString()}\n      Approved: ${c.toString()}`)),Object.keys(e).forEach(f=>{if(!f.includes(\":\")||r)return;const h=It(e[f].accounts);h.includes(f)||(r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces accounts don't satisfy namespace accounts for ${f}\n        Required: ${f}\n        Approved: ${h.toString()}`))}),s.forEach(f=>{r||(gt(o[f].methods,i[f].methods)?gt(o[f].events,i[f].events)||(r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces events don't satisfy namespace events for ${f}`)):r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces methods don't satisfy namespace methods for ${f}`))}),r}function Aa(t){const e={};return Object.keys(t).forEach(n=>{var r;n.includes(\":\")?e[n]=t[n]:(r=t[n].chains)==null||r.forEach(o=>{e[o]={methods:t[n].methods,events:t[n].events}})}),e}function Uo(t){return[...new Set(t.map(e=>e.includes(\":\")?e.split(\":\")[0]:e))]}function Ba(t){const e={};return Object.keys(t).forEach(n=>{if(n.includes(\":\"))e[n]=t[n];else{const r=It(t[n].accounts);r?.forEach(o=>{e[o]={accounts:t[n].accounts.filter(i=>i.includes(`${o}:`)),methods:t[n].methods,events:t[n].events}})}}),e}function Ia(t,e){return Ae(t,!1)&&t<=e.max&&t>=e.min}function Na(){const t=xt();return new Promise(e=>{switch(t){case Y.browser:e(To());break;case Y.reactNative:e(Ro());break;case Y.node:e(_o());break;default:e(!0)}})}function To(){return Tt()&&navigator?.onLine}async function Ro(){if(pt()&&typeof global<\"u\"&&global!=null&&global.NetInfo){const t=await(global==null?void 0:global.NetInfo.fetch());return t?.isConnected}return!0}function _o(){return!0}function Ua(t){switch(xt()){case Y.browser:$o(t);break;case Y.reactNative:Lo(t);break;case Y.node:break}}function $o(t){!pt()&&Tt()&&(window.addEventListener(\"online\",()=>t(!0)),window.addEventListener(\"offline\",()=>t(!1)))}function Lo(t){pt()&&typeof global<\"u\"&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(e=>t(e?.isConnected))}function Ta(){var t;return Tt()&&Yt()?((t=Yt())==null?void 0:t.visibilityState)===\"visible\":!0}const bn={};class Ra{static get(e){return bn[e]}static set(e,n){bn[e]=n}static delete(e){delete bn[e]}}export{ln as BASE10,G as BASE16,qt as BASE64,xe as BASE64URL,Qo as COLON,Re as DEFAULT_DEPTH,fe as EMPTY_SPACE,Y as ENV_MAP,bo as INTERNAL_ERRORS,Ra as MemoryStore,ti as ONE_THOUSAND,$n as REACT_NATIVE_PRODUCT,so as RELAYER_DEFAULT_PROTOCOL,wo as SDK_ERRORS,jn as SDK_TYPE,Ln as SLASH,dn as TYPE_0,Ft as TYPE_1,re as TYPE_2,Kt as UTF8,Er as addResourceToRecap,Cn as appendToQueryString,ai as assertType,He as assignAbilityToActions,wr as base64Decode,mr as base64Encode,sa as buildApprovedNamespaces,ss as buildAuthObject,ca as buildNamespacesFromAuth,xr as buildRecapStatement,Ei as calcExpiry,pi as capitalize,qn as capitalizeWord,gi as createDelayedPromise,fs as createEncodedRecap,yi as createExpiringPromise,br as createRecap,yt as decodeRecap,Bt as decodeTypeByte,Hc as decodeTypeTwoEnvelope,Mc as decrypt,Cc as deriveSymKey,Se as deserialize,he as encodeRecap,pn as encodeTypeByte,Dc as encodeTypeTwoEnvelope,Vc as encrypt,xi as engineEvent,hi as enumify,Ji as extractSolanaTransactionId,Bn as formatAccountId,Ho as formatAccountWithChain,An as formatChainId,Kn as formatDeeplinkUrl,$e as formatExpirerTarget,wi as formatIdTarget,hr as formatMessage,ui as formatMessageContext,uo as formatRelayParams,si as formatRelayRpcUrl,Ke as formatStatementFromRecap,mi as formatTopicTarget,Mn as formatUA,Wc as formatUri,je as fromBase64,Lc as generateKeyPair,jc as generateRandomBytes32,It as getAccountsChains,Ko as getAccountsFromNamespaces,In as getAddressFromAccount,qo as getAddressesFromAccounts,ri as getAppId,Pn as getAppMetadata,To as getBrowserOnlineStatus,Nn as getChainFromAccount,Un as getChainsFromAccounts,ue as getChainsFromNamespace,Fo as getChainsFromNamespaces,hs as getChainsFromRecap,zo as getChainsFromRequiredNamespaces,Le as getCommonValuesInArrays,io as getCryptoKeyFromKeyData,pr as getDecodedRecapFromResources,Oi as getDeepLink,De as getDidAddress,de as getDidAddressSegments,lr as getDidChainId,xt as getEnvironment,ci as getHttpUrl,ht as getInternalError,Vn as getJavascriptID,kn as getJavascriptOS,Hn as getLastItems,Xc as getLinkModeURL,ds as getMethodsFromRecap,dr as getNamespacedDidChainId,ho as getNamespacesChains,go as getNamespacesEventsForChainId,mo as getNamespacesFromAccounts,po as getNamespacesMethodsForChainId,_o as getNodeOnlineStatus,yr as getReCapActions,Ro as getReactNativeOnlineStatus,us as getRecapAbilitiesFromResource,pe as getRecapFromResources,gr as getRecapResource,ii as getRelayClientMetadata,Yc as getRelayProtocolApi,Zc as getRelayProtocolName,ia as getRequiredNamespacesFromNamespaces,Nt as getSdkError,Ai as getSearchParamFromURL,Te as getUniqueValues,Si as handleDeeplinkRedirect,gt as hasOverlap,Ve as hashEthereumMessage,Pc as hashKey,kc as hashMessage,ei as isAndroid,Ta as isAppVisible,Tt as isBrowser,yn as isCaipNamespace,No as isConformingNamespaces,vi as isExpired,Zn as isIframe,ni as isIos,_e as isNode,Na as isOnline,la as isProposalStruct,pt as isReactNative,qe as isRecap,ua as isSessionCompatible,da as isSessionStruct,zn as isTelegram,Ii as isTestRun,Kc as isTypeOneEnvelope,Fc as isTypeTwoEnvelope,Et as isUndefined,Eo as isValidAccountId,So as isValidAccounts,Ao as isValidActions,se as isValidArray,ce as isValidChainId,vo as isValidChains,ha as isValidController,cr as isValidEip1271Signature,sr as isValidEip191Signature,wa as isValidErrorReason,va as isValidEvent,ya as isValidId,Oo as isValidNamespaceAccounts,wn as isValidNamespaceActions,xo as isValidNamespaceChains,mn as isValidNamespaceMethodsOrEvents,Bo as isValidNamespaces,xa as isValidNamespacesChainId,Oa as isValidNamespacesEvent,Sa as isValidNamespacesRequest,Ae as isValidNumber,Oe as isValidObject,ma as isValidParams,at as isValidRecap,Io as isValidRelay,ga as isValidRelays,ba as isValidRequest,Ia as isValidRequestExpiry,pa as isValidRequiredNamespaces,Ea as isValidResponse,nt as isValidString,fa as isValidUrl,di as mapEntries,fi as mapToObj,ot as mergeArrays,ls as mergeEncodedRecaps,vr as mergeRecaps,aa as mergeRequiredAndOptionalNamespaces,ie as normalizeNamespaces,li as objToMap,Fn as openDeeplink,Ue as parseAccountId,Ne as parseChainId,Dn as parseContextNames,bi as parseExpirerTarget,yo as parseNamespaceKey,co as parseRelayParams,ao as parseTopic,Gc as parseUri,oi as populateAppMetadata,cs as populateAuthPayload,as as recapHasResource,gn as serialize,Ni as sleep,$o as subscribeToBrowserNetworkChange,Ua as subscribeToNetworkChange,Lo as subscribeToReactNativeNetworkChange,Yn as toBase64,Bi as uuidv4,qc as validateDecoding,oo as validateEncoding,is as validateSignedCacao,zc as verifyP256Jwt,ir as verifySignature};\n//# sourceMappingURL=index.es.js.map\n","import Gi,{EventEmitter as ee}from\"events\";import{HEARTBEAT_EVENTS as te,HeartBeat as Wi}from\"@walletconnect/heartbeat\";import Hi from\"@walletconnect/keyvaluestorage\";import{generateChildLogger as N,getLoggerContext as U,pino as Yi,getDefaultLoggerOptions as et,generatePlatformLogger as Ji}from\"@walletconnect/logger\";import{IMessageTracker as Xi,IPublisher as Zi,ISubscriber as Qi,IRelayer as es,IStore as ts,IJsonRpcHistory as is,IExpirer as ss,IVerify as rs,IEchoClient as ns,IEventClient as os,ICore as as}from\"@walletconnect/types\";import{ONE_DAY as ie,SIX_HOURS as cs,THIRTY_DAYS as Ce,FIVE_SECONDS as Pe,THIRTY_SECONDS as Se,toMiliseconds as R,ONE_MINUTE as tt,ONE_SECOND as Z,FIVE_MINUTES as fe,fromMiliseconds as it}from\"@walletconnect/time\";import{safeJsonStringify as hs,safeJsonParse as st}from\"@walletconnect/safe-json\";import*as De from\"@walletconnect/relay-auth\";import{decodeJWT as rt}from\"@walletconnect/relay-auth\";import{mapToObj as Oe,objToMap as Re,getInternalError as m,generateRandomBytes32 as Ae,generateKeyPair as ls,deriveSymKey as us,hashKey as ds,validateEncoding as gs,isTypeTwoEnvelope as nt,encodeTypeTwoEnvelope as ps,isTypeOneEnvelope as ot,encrypt as ys,validateDecoding as bs,decodeTypeTwoEnvelope as ms,decrypt as fs,deserialize as at,decodeTypeByte as Ds,BASE64 as ct,BASE16 as vs,hashMessage as ve,getRelayProtocolApi as oe,getRelayProtocolName as we,isUndefined as xe,createExpiringPromise as X,getSdkError as ae,sleep as ws,isAndroid as _s,getAppId as ht,isIos as Es,isOnline as lt,calcExpiry as ce,isNode as ut,formatRelayRpcUrl as Is,subscribeToNetworkChange as Ts,isAppVisible as Cs,isProposalStruct as Ps,isSessionStruct as Ss,parseExpirerTarget as Os,TYPE_1 as Rs,formatUri as dt,parseUri as gt,createDelayedPromise as As,engineEvent as Ne,isExpired as pt,isValidParams as $e,isValidUrl as xs,isValidString as Ns,formatTopicTarget as $s,formatIdTarget as zs,isTestRun as yt,isBrowser as Ls,verifyP256Jwt as ks,uuidv4 as bt,formatUA as js,getAppMetadata as Us}from\"@walletconnect/utils\";import{toString as Fs}from\"uint8arrays\";import{JsonRpcProvider as Ms}from\"@walletconnect/jsonrpc-provider\";import{getBigIntRpcId as mt,isJsonRpcRequest as ft,isJsonRpcResponse as Dt,formatJsonRpcResult as vt,formatJsonRpcRequest as wt,formatJsonRpcError as Ks,isJsonRpcResult as Bs,isJsonRpcError as _t}from\"@walletconnect/jsonrpc-utils\";import Vs from\"@walletconnect/jsonrpc-ws-connection\";import{getDocument as qs}from\"@walletconnect/window-getters\";const ze=\"wc\",Le=2,he=\"core\",B=`${ze}@2:${he}:`,Et={name:he,logger:\"error\"},It={database:\":memory:\"},Tt=\"crypto\",ke=\"client_ed25519_seed\",Ct=ie,Pt=\"keychain\",St=\"0.3\",Ot=\"messages\",Rt=\"0.3\",je=cs,At=\"publisher\",xt=\"irn\",Nt=\"error\",Ue=\"wss://relay.walletconnect.org\",$t=\"relayer\",C={message:\"relayer_message\",message_ack:\"relayer_message_ack\",connect:\"relayer_connect\",disconnect:\"relayer_disconnect\",error:\"relayer_error\",connection_stalled:\"relayer_connection_stalled\",transport_closed:\"relayer_transport_closed\",publish:\"relayer_publish\"},zt=\"_subscription\",L={payload:\"payload\",connect:\"connect\",disconnect:\"disconnect\",error:\"error\"},Lt=.1,Gs={database:\":memory:\"},_e=\"2.21.0\",Ws=1e4,Q={link_mode:\"link_mode\",relay:\"relay\"},le={inbound:\"inbound\",outbound:\"outbound\"},kt=\"0.3\",jt=\"WALLETCONNECT_CLIENT_ID\",Fe=\"WALLETCONNECT_LINK_MODE_APPS\",$={created:\"subscription_created\",deleted:\"subscription_deleted\",expired:\"subscription_expired\",disabled:\"subscription_disabled\",sync:\"subscription_sync\",resubscribed:\"subscription_resubscribed\"},Hs=Ce,Ut=\"subscription\",Ft=\"0.3\",Ys=Pe*1e3,Mt=\"pairing\",Kt=\"0.3\",Js=Ce,se={wc_pairingDelete:{req:{ttl:ie,prompt:!1,tag:1e3},res:{ttl:ie,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:Se,prompt:!1,tag:1002},res:{ttl:Se,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:ie,prompt:!1,tag:0},res:{ttl:ie,prompt:!1,tag:0}}},re={create:\"pairing_create\",expire:\"pairing_expire\",delete:\"pairing_delete\",ping:\"pairing_ping\"},F={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},Bt=\"history\",Vt=\"0.3\",qt=\"expirer\",M={created:\"expirer_created\",deleted:\"expirer_deleted\",expired:\"expirer_expired\",sync:\"expirer_sync\"},Gt=\"0.3\",Xs=ie,Wt=\"verify-api\",Zs=\"https://verify.walletconnect.com\",Ht=\"https://verify.walletconnect.org\",ue=Ht,Yt=`${ue}/v3`,Jt=[Zs,Ht],Xt=\"echo\",Zt=\"https://echo.walletconnect.com\",Qs=\"event-client\",G={pairing_started:\"pairing_started\",pairing_uri_validation_success:\"pairing_uri_validation_success\",pairing_uri_not_expired:\"pairing_uri_not_expired\",store_new_pairing:\"store_new_pairing\",subscribing_pairing_topic:\"subscribing_pairing_topic\",subscribe_pairing_topic_success:\"subscribe_pairing_topic_success\",existing_pairing:\"existing_pairing\",pairing_not_expired:\"pairing_not_expired\",emit_inactive_pairing:\"emit_inactive_pairing\",emit_session_proposal:\"emit_session_proposal\",subscribing_to_pairing_topic:\"subscribing_to_pairing_topic\"},Y={no_wss_connection:\"no_wss_connection\",no_internet_connection:\"no_internet_connection\",malformed_pairing_uri:\"malformed_pairing_uri\",active_pairing_already_exists:\"active_pairing_already_exists\",subscribe_pairing_topic_failure:\"subscribe_pairing_topic_failure\",pairing_expired:\"pairing_expired\",proposal_expired:\"proposal_expired\",proposal_listener_not_found:\"proposal_listener_not_found\"},er={session_approve_started:\"session_approve_started\",proposal_not_expired:\"proposal_not_expired\",session_namespaces_validation_success:\"session_namespaces_validation_success\",create_session_topic:\"create_session_topic\",subscribing_session_topic:\"subscribing_session_topic\",subscribe_session_topic_success:\"subscribe_session_topic_success\",publishing_session_approve:\"publishing_session_approve\",session_approve_publish_success:\"session_approve_publish_success\",store_session:\"store_session\",publishing_session_settle:\"publishing_session_settle\",session_settle_publish_success:\"session_settle_publish_success\"},tr={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",proposal_expired:\"proposal_expired\",subscribe_session_topic_failure:\"subscribe_session_topic_failure\",session_approve_publish_failure:\"session_approve_publish_failure\",session_settle_publish_failure:\"session_settle_publish_failure\",session_approve_namespace_validation_failure:\"session_approve_namespace_validation_failure\",proposal_not_found:\"proposal_not_found\"},ir={authenticated_session_approve_started:\"authenticated_session_approve_started\",authenticated_session_not_expired:\"authenticated_session_not_expired\",chains_caip2_compliant:\"chains_caip2_compliant\",chains_evm_compliant:\"chains_evm_compliant\",create_authenticated_session_topic:\"create_authenticated_session_topic\",cacaos_verified:\"cacaos_verified\",store_authenticated_session:\"store_authenticated_session\",subscribing_authenticated_session_topic:\"subscribing_authenticated_session_topic\",subscribe_authenticated_session_topic_success:\"subscribe_authenticated_session_topic_success\",publishing_authenticated_session_approve:\"publishing_authenticated_session_approve\",authenticated_session_approve_publish_success:\"authenticated_session_approve_publish_success\"},sr={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",missing_session_authenticate_request:\"missing_session_authenticate_request\",session_authenticate_request_expired:\"session_authenticate_request_expired\",chains_caip2_compliant_failure:\"chains_caip2_compliant_failure\",chains_evm_compliant_failure:\"chains_evm_compliant_failure\",invalid_cacao:\"invalid_cacao\",subscribe_authenticated_session_topic_failure:\"subscribe_authenticated_session_topic_failure\",authenticated_session_approve_publish_failure:\"authenticated_session_approve_publish_failure\",authenticated_session_pending_request_not_found:\"authenticated_session_pending_request_not_found\"},Qt=.1,ei=\"event-client\",ti=86400,ii=\"https://pulse.walletconnect.org/batch\";function rr(r,e){if(r.length>=255)throw new TypeError(\"Alphabet too long\");for(var t=new Uint8Array(256),i=0;i<t.length;i++)t[i]=255;for(var s=0;s<r.length;s++){var n=r.charAt(s),o=n.charCodeAt(0);if(t[o]!==255)throw new TypeError(n+\" is ambiguous\");t[o]=s}var a=r.length,c=r.charAt(0),h=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function d(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError(\"Expected Uint8Array\");if(u.length===0)return\"\";for(var b=0,x=0,I=0,D=u.length;I!==D&&u[I]===0;)I++,b++;for(var j=(D-I)*l+1>>>0,T=new Uint8Array(j);I!==D;){for(var q=u[I],J=0,K=j-1;(q!==0||J<x)&&K!==-1;K--,J++)q+=256*T[K]>>>0,T[K]=q%a>>>0,q=q/a>>>0;if(q!==0)throw new Error(\"Non-zero carry\");x=J,I++}for(var H=j-x;H!==j&&T[H]===0;)H++;for(var me=c.repeat(b);H<j;++H)me+=r.charAt(T[H]);return me}function g(u){if(typeof u!=\"string\")throw new TypeError(\"Expected String\");if(u.length===0)return new Uint8Array;var b=0;if(u[b]!==\" \"){for(var x=0,I=0;u[b]===c;)x++,b++;for(var D=(u.length-b)*h+1>>>0,j=new Uint8Array(D);u[b];){var T=t[u.charCodeAt(b)];if(T===255)return;for(var q=0,J=D-1;(T!==0||q<I)&&J!==-1;J--,q++)T+=a*j[J]>>>0,j[J]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error(\"Non-zero carry\");I=q,b++}if(u[b]!==\" \"){for(var K=D-I;K!==D&&j[K]===0;)K++;for(var H=new Uint8Array(x+(D-K)),me=x;K!==D;)H[me++]=j[K++];return H}}}function _(u){var b=g(u);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:g,decode:_}}var nr=rr,or=nr;const si=r=>{if(r instanceof Uint8Array&&r.constructor.name===\"Uint8Array\")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error(\"Unknown type, must be binary type\")},ar=r=>new TextEncoder().encode(r),cr=r=>new TextDecoder().decode(r);class hr{constructor(e,t,i){this.name=e,this.prefix=t,this.baseEncode=i}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(\"Unknown type, must be binary type\")}}class lr{constructor(e,t,i){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=i}decode(e){if(typeof e==\"string\"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error(\"Can only multibase decode strings\")}or(e){return ri(this,e)}}class ur{constructor(e){this.decoders=e}or(e){return ri(this,e)}decode(e){const t=e[0],i=this.decoders[t];if(i)return i.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ri=(r,e)=>new ur({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}});class dr{constructor(e,t,i,s){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=s,this.encoder=new hr(e,t,i),this.decoder=new lr(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Ee=({name:r,prefix:e,encode:t,decode:i})=>new dr(r,e,t,i),de=({prefix:r,name:e,alphabet:t})=>{const{encode:i,decode:s}=or(t,e);return Ee({prefix:r,name:e,encode:i,decode:n=>si(s(n))})},gr=(r,e,t,i)=>{const s={};for(let l=0;l<e.length;++l)s[e[l]]=l;let n=r.length;for(;r[n-1]===\"=\";)--n;const o=new Uint8Array(n*t/8|0);let a=0,c=0,h=0;for(let l=0;l<n;++l){const d=s[r[l]];if(d===void 0)throw new SyntaxError(`Non-${i} character`);c=c<<t|d,a+=t,a>=8&&(a-=8,o[h++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError(\"Unexpected end of data\");return o},pr=(r,e,t)=>{const i=e[e.length-1]===\"=\",s=(1<<t)-1;let n=\"\",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>t;)o-=t,n+=e[s&a>>o];if(o&&(n+=e[s&a<<t-o]),i)for(;n.length*t&7;)n+=\"=\";return n},P=({name:r,prefix:e,bitsPerChar:t,alphabet:i})=>Ee({prefix:e,name:r,encode(s){return pr(s,i,t)},decode(s){return gr(s,i,t,r)}}),yr=Ee({prefix:\"\\0\",name:\"identity\",encode:r=>cr(r),decode:r=>ar(r)});var br=Object.freeze({__proto__:null,identity:yr});const mr=P({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var fr=Object.freeze({__proto__:null,base2:mr});const Dr=P({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var vr=Object.freeze({__proto__:null,base8:Dr});const wr=de({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var _r=Object.freeze({__proto__:null,base10:wr});const Er=P({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),Ir=P({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Tr=Object.freeze({__proto__:null,base16:Er,base16upper:Ir});const Cr=P({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),Pr=P({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),Sr=P({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),Or=P({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),Rr=P({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),Ar=P({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),xr=P({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),Nr=P({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),$r=P({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var zr=Object.freeze({__proto__:null,base32:Cr,base32upper:Pr,base32pad:Sr,base32padupper:Or,base32hex:Rr,base32hexupper:Ar,base32hexpad:xr,base32hexpadupper:Nr,base32z:$r});const Lr=de({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),kr=de({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var jr=Object.freeze({__proto__:null,base36:Lr,base36upper:kr});const Ur=de({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),Fr=de({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var Mr=Object.freeze({__proto__:null,base58btc:Ur,base58flickr:Fr});const Kr=P({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),Br=P({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),Vr=P({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),qr=P({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Gr=Object.freeze({__proto__:null,base64:Kr,base64pad:Br,base64url:Vr,base64urlpad:qr});const ni=Array.from(\"\\u{1F680}\\u{1FA90}\\u2604\\u{1F6F0}\\u{1F30C}\\u{1F311}\\u{1F312}\\u{1F313}\\u{1F314}\\u{1F315}\\u{1F316}\\u{1F317}\\u{1F318}\\u{1F30D}\\u{1F30F}\\u{1F30E}\\u{1F409}\\u2600\\u{1F4BB}\\u{1F5A5}\\u{1F4BE}\\u{1F4BF}\\u{1F602}\\u2764\\u{1F60D}\\u{1F923}\\u{1F60A}\\u{1F64F}\\u{1F495}\\u{1F62D}\\u{1F618}\\u{1F44D}\\u{1F605}\\u{1F44F}\\u{1F601}\\u{1F525}\\u{1F970}\\u{1F494}\\u{1F496}\\u{1F499}\\u{1F622}\\u{1F914}\\u{1F606}\\u{1F644}\\u{1F4AA}\\u{1F609}\\u263A\\u{1F44C}\\u{1F917}\\u{1F49C}\\u{1F614}\\u{1F60E}\\u{1F607}\\u{1F339}\\u{1F926}\\u{1F389}\\u{1F49E}\\u270C\\u2728\\u{1F937}\\u{1F631}\\u{1F60C}\\u{1F338}\\u{1F64C}\\u{1F60B}\\u{1F497}\\u{1F49A}\\u{1F60F}\\u{1F49B}\\u{1F642}\\u{1F493}\\u{1F929}\\u{1F604}\\u{1F600}\\u{1F5A4}\\u{1F603}\\u{1F4AF}\\u{1F648}\\u{1F447}\\u{1F3B6}\\u{1F612}\\u{1F92D}\\u2763\\u{1F61C}\\u{1F48B}\\u{1F440}\\u{1F62A}\\u{1F611}\\u{1F4A5}\\u{1F64B}\\u{1F61E}\\u{1F629}\\u{1F621}\\u{1F92A}\\u{1F44A}\\u{1F973}\\u{1F625}\\u{1F924}\\u{1F449}\\u{1F483}\\u{1F633}\\u270B\\u{1F61A}\\u{1F61D}\\u{1F634}\\u{1F31F}\\u{1F62C}\\u{1F643}\\u{1F340}\\u{1F337}\\u{1F63B}\\u{1F613}\\u2B50\\u2705\\u{1F97A}\\u{1F308}\\u{1F608}\\u{1F918}\\u{1F4A6}\\u2714\\u{1F623}\\u{1F3C3}\\u{1F490}\\u2639\\u{1F38A}\\u{1F498}\\u{1F620}\\u261D\\u{1F615}\\u{1F33A}\\u{1F382}\\u{1F33B}\\u{1F610}\\u{1F595}\\u{1F49D}\\u{1F64A}\\u{1F639}\\u{1F5E3}\\u{1F4AB}\\u{1F480}\\u{1F451}\\u{1F3B5}\\u{1F91E}\\u{1F61B}\\u{1F534}\\u{1F624}\\u{1F33C}\\u{1F62B}\\u26BD\\u{1F919}\\u2615\\u{1F3C6}\\u{1F92B}\\u{1F448}\\u{1F62E}\\u{1F646}\\u{1F37B}\\u{1F343}\\u{1F436}\\u{1F481}\\u{1F632}\\u{1F33F}\\u{1F9E1}\\u{1F381}\\u26A1\\u{1F31E}\\u{1F388}\\u274C\\u270A\\u{1F44B}\\u{1F630}\\u{1F928}\\u{1F636}\\u{1F91D}\\u{1F6B6}\\u{1F4B0}\\u{1F353}\\u{1F4A2}\\u{1F91F}\\u{1F641}\\u{1F6A8}\\u{1F4A8}\\u{1F92C}\\u2708\\u{1F380}\\u{1F37A}\\u{1F913}\\u{1F619}\\u{1F49F}\\u{1F331}\\u{1F616}\\u{1F476}\\u{1F974}\\u25B6\\u27A1\\u2753\\u{1F48E}\\u{1F4B8}\\u2B07\\u{1F628}\\u{1F31A}\\u{1F98B}\\u{1F637}\\u{1F57A}\\u26A0\\u{1F645}\\u{1F61F}\\u{1F635}\\u{1F44E}\\u{1F932}\\u{1F920}\\u{1F927}\\u{1F4CC}\\u{1F535}\\u{1F485}\\u{1F9D0}\\u{1F43E}\\u{1F352}\\u{1F617}\\u{1F911}\\u{1F30A}\\u{1F92F}\\u{1F437}\\u260E\\u{1F4A7}\\u{1F62F}\\u{1F486}\\u{1F446}\\u{1F3A4}\\u{1F647}\\u{1F351}\\u2744\\u{1F334}\\u{1F4A3}\\u{1F438}\\u{1F48C}\\u{1F4CD}\\u{1F940}\\u{1F922}\\u{1F445}\\u{1F4A1}\\u{1F4A9}\\u{1F450}\\u{1F4F8}\\u{1F47B}\\u{1F910}\\u{1F92E}\\u{1F3BC}\\u{1F975}\\u{1F6A9}\\u{1F34E}\\u{1F34A}\\u{1F47C}\\u{1F48D}\\u{1F4E3}\\u{1F942}\"),Wr=ni.reduce((r,e,t)=>(r[t]=e,r),[]),Hr=ni.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Yr(r){return r.reduce((e,t)=>(e+=Wr[t],e),\"\")}function Jr(r){const e=[];for(const t of r){const i=Hr[t.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}const Xr=Ee({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:Yr,decode:Jr});var Zr=Object.freeze({__proto__:null,base256emoji:Xr}),Qr=ai,oi=128,en=127,tn=~en,sn=Math.pow(2,31);function ai(r,e,t){e=e||[],t=t||0;for(var i=t;r>=sn;)e[t++]=r&255|oi,r/=128;for(;r&tn;)e[t++]=r&255|oi,r>>>=7;return e[t]=r|0,ai.bytes=t-i+1,e}var rn=Me,nn=128,ci=127;function Me(r,i){var t=0,i=i||0,s=0,n=i,o,a=r.length;do{if(n>=a)throw Me.bytes=0,new RangeError(\"Could not decode varint\");o=r[n++],t+=s<28?(o&ci)<<s:(o&ci)*Math.pow(2,s),s+=7}while(o>=nn);return Me.bytes=n-i,t}var on=Math.pow(2,7),an=Math.pow(2,14),cn=Math.pow(2,21),hn=Math.pow(2,28),ln=Math.pow(2,35),un=Math.pow(2,42),dn=Math.pow(2,49),gn=Math.pow(2,56),pn=Math.pow(2,63),yn=function(r){return r<on?1:r<an?2:r<cn?3:r<hn?4:r<ln?5:r<un?6:r<dn?7:r<gn?8:r<pn?9:10},bn={encode:Qr,decode:rn,encodingLength:yn},hi=bn;const li=(r,e,t=0)=>(hi.encode(r,e,t),e),ui=r=>hi.encodingLength(r),Ke=(r,e)=>{const t=e.byteLength,i=ui(r),s=i+ui(t),n=new Uint8Array(s+t);return li(r,n,0),li(t,n,i),n.set(e,s),new mn(r,t,e,n)};class mn{constructor(e,t,i,s){this.code=e,this.size=t,this.digest=i,this.bytes=s}}const di=({name:r,code:e,encode:t})=>new fn(r,e,t);class fn{constructor(e,t,i){this.name=e,this.code=t,this.encode=i}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?Ke(this.code,t):t.then(i=>Ke(this.code,i))}else throw Error(\"Unknown type, must be binary type\")}}const gi=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),Dn=di({name:\"sha2-256\",code:18,encode:gi(\"SHA-256\")}),vn=di({name:\"sha2-512\",code:19,encode:gi(\"SHA-512\")});var wn=Object.freeze({__proto__:null,sha256:Dn,sha512:vn});const pi=0,_n=\"identity\",yi=si,En=r=>Ke(pi,yi(r)),In={code:pi,name:_n,encode:yi,digest:En};var Tn=Object.freeze({__proto__:null,identity:In});new TextEncoder,new TextDecoder;const bi={...br,...fr,...vr,..._r,...Tr,...zr,...jr,...Mr,...Gr,...Zr};({...wn,...Tn});function Cn(r=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}function mi(r,e,t,i){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:i}}}const fi=mi(\"utf8\",\"u\",r=>\"u\"+new TextDecoder(\"utf8\").decode(r),r=>new TextEncoder().encode(r.substring(1))),Be=mi(\"ascii\",\"a\",r=>{let e=\"a\";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);const e=Cn(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Pn={utf8:fi,\"utf-8\":fi,hex:bi.base16,latin1:Be,ascii:Be,binary:Be,...bi};function Sn(r,e=\"utf8\"){const t=Pn[e];if(!t)throw new Error(`Unsupported encoding \"${e}\"`);return(e===\"utf8\"||e===\"utf-8\")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(r,\"utf8\"):t.decoder.decode(`${t.prefix}${r}`)}var On=Object.defineProperty,Rn=(r,e,t)=>e in r?On(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,W=(r,e,t)=>Rn(r,typeof e!=\"symbol\"?e+\"\":e,t);class Di{constructor(e,t){this.core=e,this.logger=t,W(this,\"keychain\",new Map),W(this,\"name\",Pt),W(this,\"version\",St),W(this,\"initialized\",!1),W(this,\"storagePrefix\",B),W(this,\"init\",async()=>{if(!this.initialized){const i=await this.getKeyChain();typeof i<\"u\"&&(this.keychain=i),this.initialized=!0}}),W(this,\"has\",i=>(this.isInitialized(),this.keychain.has(i))),W(this,\"set\",async(i,s)=>{this.isInitialized(),this.keychain.set(i,s),await this.persist()}),W(this,\"get\",i=>{this.isInitialized();const s=this.keychain.get(i);if(typeof s>\"u\"){const{message:n}=m(\"NO_MATCHING_KEY\",`${this.name}: ${i}`);throw new Error(n)}return s}),W(this,\"del\",async i=>{this.isInitialized(),this.keychain.delete(i),await this.persist()}),this.core=e,this.logger=N(t,this.name)}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Oe(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?Re(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var An=Object.defineProperty,xn=(r,e,t)=>e in r?An(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,S=(r,e,t)=>xn(r,typeof e!=\"symbol\"?e+\"\":e,t);class vi{constructor(e,t,i){this.core=e,this.logger=t,S(this,\"name\",Tt),S(this,\"keychain\"),S(this,\"randomSessionIdentifier\",Ae()),S(this,\"initialized\",!1),S(this,\"init\",async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)}),S(this,\"hasKeys\",s=>(this.isInitialized(),this.keychain.has(s))),S(this,\"getClientId\",async()=>{this.isInitialized();const s=await this.getClientSeed(),n=De.generateKeyPair(s);return De.encodeIss(n.publicKey)}),S(this,\"generateKeyPair\",()=>{this.isInitialized();const s=ls();return this.setPrivateKey(s.publicKey,s.privateKey)}),S(this,\"signJWT\",async s=>{this.isInitialized();const n=await this.getClientSeed(),o=De.generateKeyPair(n),a=this.randomSessionIdentifier,c=Ct;return await De.signJWT(a,s,c,o)}),S(this,\"generateSharedKey\",(s,n,o)=>{this.isInitialized();const a=this.getPrivateKey(s),c=us(a,n);return this.setSymKey(c,o)}),S(this,\"setSymKey\",async(s,n)=>{this.isInitialized();const o=n||ds(s);return await this.keychain.set(o,s),o}),S(this,\"deleteKeyPair\",async s=>{this.isInitialized(),await this.keychain.del(s)}),S(this,\"deleteSymKey\",async s=>{this.isInitialized(),await this.keychain.del(s)}),S(this,\"encode\",async(s,n,o)=>{this.isInitialized();const a=gs(o),c=hs(n);if(nt(a))return ps(c,o?.encoding);if(ot(a)){const g=a.senderPublicKey,_=a.receiverPublicKey;s=await this.generateSharedKey(g,_)}const h=this.getSymKey(s),{type:l,senderPublicKey:d}=a;return ys({type:l,symKey:h,message:c,senderPublicKey:d,encoding:o?.encoding})}),S(this,\"decode\",async(s,n,o)=>{this.isInitialized();const a=bs(n,o);if(nt(a)){const c=ms(n,o?.encoding);return st(c)}if(ot(a)){const c=a.receiverPublicKey,h=a.senderPublicKey;s=await this.generateSharedKey(c,h)}try{const c=this.getSymKey(s),h=fs({symKey:c,encoded:n,encoding:o?.encoding});return st(h)}catch(c){this.logger.error(`Failed to decode message from topic: '${s}', clientId: '${await this.getClientId()}'`),this.logger.error(c)}}),S(this,\"getPayloadType\",(s,n=ct)=>{const o=at({encoded:s,encoding:n});return Ds(o.type)}),S(this,\"getPayloadSenderPublicKey\",(s,n=ct)=>{const o=at({encoded:s,encoding:n});return o.senderPublicKey?Fs(o.senderPublicKey,vs):void 0}),this.core=e,this.logger=N(t,this.name),this.keychain=i||new Di(this.core,this.logger)}get context(){return U(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e=\"\";try{e=this.keychain.get(ke)}catch{e=Ae(),await this.keychain.set(ke,e)}return Sn(e,\"base16\")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var Nn=Object.defineProperty,$n=Object.defineProperties,zn=Object.getOwnPropertyDescriptors,wi=Object.getOwnPropertySymbols,Ln=Object.prototype.hasOwnProperty,kn=Object.prototype.propertyIsEnumerable,Ve=(r,e,t)=>e in r?Nn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,jn=(r,e)=>{for(var t in e||(e={}))Ln.call(e,t)&&Ve(r,t,e[t]);if(wi)for(var t of wi(e))kn.call(e,t)&&Ve(r,t,e[t]);return r},Un=(r,e)=>$n(r,zn(e)),k=(r,e,t)=>Ve(r,typeof e!=\"symbol\"?e+\"\":e,t);class _i extends Xi{constructor(e,t){super(e,t),this.logger=e,this.core=t,k(this,\"messages\",new Map),k(this,\"messagesWithoutClientAck\",new Map),k(this,\"name\",Ot),k(this,\"version\",Rt),k(this,\"initialized\",!1),k(this,\"storagePrefix\",B),k(this,\"init\",async()=>{if(!this.initialized){this.logger.trace(\"Initialized\");try{const i=await this.getRelayerMessages();typeof i<\"u\"&&(this.messages=i);const s=await this.getRelayerMessagesWithoutClientAck();typeof s<\"u\"&&(this.messagesWithoutClientAck=s),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",size:this.messages.size})}catch(i){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(i)}finally{this.initialized=!0}}}),k(this,\"set\",async(i,s,n)=>{this.isInitialized();const o=ve(s);let a=this.messages.get(i);if(typeof a>\"u\"&&(a={}),typeof a[o]<\"u\")return o;if(a[o]=s,this.messages.set(i,a),n===le.inbound){const c=this.messagesWithoutClientAck.get(i)||{};this.messagesWithoutClientAck.set(i,Un(jn({},c),{[o]:s}))}return await this.persist(),o}),k(this,\"get\",i=>{this.isInitialized();let s=this.messages.get(i);return typeof s>\"u\"&&(s={}),s}),k(this,\"getWithoutAck\",i=>{this.isInitialized();const s={};for(const n of i){const o=this.messagesWithoutClientAck.get(n)||{};s[n]=Object.values(o)}return s}),k(this,\"has\",(i,s)=>{this.isInitialized();const n=this.get(i),o=ve(s);return typeof n[o]<\"u\"}),k(this,\"ack\",async(i,s)=>{this.isInitialized();const n=this.messagesWithoutClientAck.get(i);if(typeof n>\"u\")return;const o=ve(s);delete n[o],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(i):this.messagesWithoutClientAck.set(i,n),await this.persist()}),k(this,\"del\",async i=>{this.isInitialized(),this.messages.delete(i),this.messagesWithoutClientAck.delete(i),await this.persist()}),this.logger=N(e,this.name),this.core=t}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name+\"_withoutClientAck\"}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Oe(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,Oe(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?Re(e):void 0}async getRelayerMessagesWithoutClientAck(){const e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<\"u\"?Re(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var Fn=Object.defineProperty,Mn=Object.defineProperties,Kn=Object.getOwnPropertyDescriptors,Ei=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Vn=Object.prototype.propertyIsEnumerable,qe=(r,e,t)=>e in r?Fn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ie=(r,e)=>{for(var t in e||(e={}))Bn.call(e,t)&&qe(r,t,e[t]);if(Ei)for(var t of Ei(e))Vn.call(e,t)&&qe(r,t,e[t]);return r},Ge=(r,e)=>Mn(r,Kn(e)),V=(r,e,t)=>qe(r,typeof e!=\"symbol\"?e+\"\":e,t);class qn extends Zi{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,V(this,\"events\",new ee),V(this,\"name\",At),V(this,\"queue\",new Map),V(this,\"publishTimeout\",R(tt)),V(this,\"initialPublishTimeout\",R(Z*15)),V(this,\"needsTransportRestart\",!1),V(this,\"publish\",async(i,s,n)=>{var o;this.logger.debug(\"Publishing Payload\"),this.logger.trace({type:\"method\",method:\"publish\",params:{topic:i,message:s,opts:n}});const a=n?.ttl||je,c=we(n),h=n?.prompt||!1,l=n?.tag||0,d=n?.id||mt().toString(),g={topic:i,message:s,opts:{ttl:a,relay:c,prompt:h,tag:l,id:d,attestation:n?.attestation,tvf:n?.tvf}},_=`Failed to publish payload, please try again. id:${d} tag:${l}`;try{const u=new Promise(async b=>{const x=({id:D})=>{g.opts.id===D&&(this.removeRequestFromQueue(D),this.relayer.events.removeListener(C.publish,x),b(g))};this.relayer.events.on(C.publish,x);const I=X(new Promise((D,j)=>{this.rpcPublish({topic:i,message:s,ttl:a,prompt:h,tag:l,id:d,attestation:n?.attestation,tvf:n?.tvf}).then(D).catch(T=>{this.logger.warn(T,T?.message),j(T)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${d} tag:${l}`);try{await I,this.events.removeListener(C.publish,x)}catch(D){this.queue.set(d,Ge(Ie({},g),{attempt:1})),this.logger.warn(D,D?.message)}});this.logger.trace({type:\"method\",method:\"publish\",params:{id:d,topic:i,message:s,opts:n}}),await X(u,this.publishTimeout,_)}catch(u){if(this.logger.debug(\"Failed to Publish Payload\"),this.logger.error(u),(o=n?.internal)!=null&&o.throwOnFailedPublish)throw u}finally{this.queue.delete(d)}}),V(this,\"on\",(i,s)=>{this.events.on(i,s)}),V(this,\"once\",(i,s)=>{this.events.once(i,s)}),V(this,\"off\",(i,s)=>{this.events.off(i,s)}),V(this,\"removeListener\",(i,s)=>{this.events.removeListener(i,s)}),this.relayer=e,this.logger=N(t,this.name),this.registerEventListeners()}get context(){return U(this.logger)}async rpcPublish(e){var t,i,s,n;const{topic:o,message:a,ttl:c=je,prompt:h,tag:l,id:d,attestation:g,tvf:_}=e,u={method:oe(we().protocol).publish,params:Ie({topic:o,message:a,ttl:c,prompt:h,tag:l,attestation:g},_),id:d};xe((t=u.params)==null?void 0:t.prompt)&&((i=u.params)==null||delete i.prompt),xe((s=u.params)==null?void 0:s.tag)&&((n=u.params)==null||delete n.tag),this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"message\",direction:\"outgoing\",request:u});const b=await this.relayer.request(u);return this.relayer.events.emit(C.publish,e),this.logger.debug(\"Successfully Published Payload\"),b}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{const i=e.attempt+1;this.queue.set(t,Ge(Ie({},e),{attempt:i}));const{topic:s,message:n,opts:o,attestation:a}=e;this.logger.warn({},`Publisher: queue->publishing: ${e.opts.id}, tag: ${e.opts.tag}, attempt: ${i}`),await this.rpcPublish(Ge(Ie({},e),{topic:s,message:n,ttl:o.ttl,prompt:o.prompt,tag:o.tag,id:o.id,attestation:a,tvf:o.tvf})),this.logger.warn({},`Publisher: queue->published: ${e.opts.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(te.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(C.connection_stalled);return}this.checkQueue()}),this.relayer.on(C.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}var Gn=Object.defineProperty,Wn=(r,e,t)=>e in r?Gn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ne=(r,e,t)=>Wn(r,typeof e!=\"symbol\"?e+\"\":e,t);class Hn{constructor(){ne(this,\"map\",new Map),ne(this,\"set\",(e,t)=>{const i=this.get(e);this.exists(e,t)||this.map.set(e,[...i,t])}),ne(this,\"get\",e=>this.map.get(e)||[]),ne(this,\"exists\",(e,t)=>this.get(e).includes(t)),ne(this,\"delete\",(e,t)=>{if(typeof t>\"u\"){this.map.delete(e);return}if(!this.map.has(e))return;const i=this.get(e);if(!this.exists(e,t))return;const s=i.filter(n=>n!==t);if(!s.length){this.map.delete(e);return}this.map.set(e,s)}),ne(this,\"clear\",()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}}var Yn=Object.defineProperty,Jn=Object.defineProperties,Xn=Object.getOwnPropertyDescriptors,Ii=Object.getOwnPropertySymbols,Zn=Object.prototype.hasOwnProperty,Qn=Object.prototype.propertyIsEnumerable,We=(r,e,t)=>e in r?Yn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ge=(r,e)=>{for(var t in e||(e={}))Zn.call(e,t)&&We(r,t,e[t]);if(Ii)for(var t of Ii(e))Qn.call(e,t)&&We(r,t,e[t]);return r},He=(r,e)=>Jn(r,Xn(e)),f=(r,e,t)=>We(r,typeof e!=\"symbol\"?e+\"\":e,t);class Ti extends Qi{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,f(this,\"subscriptions\",new Map),f(this,\"topicMap\",new Hn),f(this,\"events\",new ee),f(this,\"name\",Ut),f(this,\"version\",Ft),f(this,\"pending\",new Map),f(this,\"cached\",[]),f(this,\"initialized\",!1),f(this,\"storagePrefix\",B),f(this,\"subscribeTimeout\",R(tt)),f(this,\"initialSubscribeTimeout\",R(Z*15)),f(this,\"clientId\"),f(this,\"batchSubscribeTopicsLimit\",500),f(this,\"init\",async()=>{this.initialized||(this.logger.trace(\"Initialized\"),this.registerEventListeners(),await this.restore()),this.initialized=!0}),f(this,\"subscribe\",async(i,s)=>{this.isInitialized(),this.logger.debug(\"Subscribing Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:i,opts:s}});try{const n=we(s),o={topic:i,relay:n,transportType:s?.transportType};this.pending.set(i,o);const a=await this.rpcSubscribe(i,n,s);return typeof a==\"string\"&&(this.onSubscribe(a,o),this.logger.debug(\"Successfully Subscribed Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:i,opts:s}})),a}catch(n){throw this.logger.debug(\"Failed to Subscribe Topic\"),this.logger.error(n),n}}),f(this,\"unsubscribe\",async(i,s)=>{this.isInitialized(),typeof s?.id<\"u\"?await this.unsubscribeById(i,s.id,s):await this.unsubscribeByTopic(i,s)}),f(this,\"isSubscribed\",i=>new Promise(s=>{s(this.topicMap.topics.includes(i))})),f(this,\"isKnownTopic\",i=>new Promise(s=>{s(this.topicMap.topics.includes(i)||this.pending.has(i)||this.cached.some(n=>n.topic===i))})),f(this,\"on\",(i,s)=>{this.events.on(i,s)}),f(this,\"once\",(i,s)=>{this.events.once(i,s)}),f(this,\"off\",(i,s)=>{this.events.off(i,s)}),f(this,\"removeListener\",(i,s)=>{this.events.removeListener(i,s)}),f(this,\"start\",async()=>{await this.onConnect()}),f(this,\"stop\",async()=>{await this.onDisconnect()}),f(this,\"restart\",async()=>{await this.restore(),await this.onRestart()}),f(this,\"checkPending\",async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;const i=[];this.pending.forEach(s=>{i.push(s)}),await this.batchSubscribe(i)}),f(this,\"registerEventListeners\",()=>{this.relayer.core.heartbeat.on(te.pulse,async()=>{await this.checkPending()}),this.events.on($.created,async i=>{const s=$.created;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,data:i}),await this.persist()}),this.events.on($.deleted,async i=>{const s=$.deleted;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,data:i}),await this.persist()})}),this.relayer=e,this.logger=N(t,this.name),this.clientId=\"\"}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+\"//\"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,t){let i=!1;try{i=this.getSubscription(e).topic===t}catch{}return i}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){const i=this.topicMap.get(e);await Promise.all(i.map(async s=>await this.unsubscribeById(e,s,t)))}async unsubscribeById(e,t,i){this.logger.debug(\"Unsubscribing Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:t,opts:i}});try{const s=we(i);await this.restartToComplete({topic:e,id:t,relay:s}),await this.rpcUnsubscribe(e,t,s);const n=ae(\"USER_DISCONNECTED\",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,n),this.logger.debug(\"Successfully Unsubscribed Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:t,opts:i}})}catch(s){throw this.logger.debug(\"Failed to Unsubscribe Topic\"),this.logger.error(s),s}}async rpcSubscribe(e,t,i){var s;(!i||i?.transportType===Q.relay)&&await this.restartToComplete({topic:e,id:e,relay:t});const n={method:oe(t.protocol).subscribe,params:{topic:e}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:n});const o=(s=i?.internal)==null?void 0:s.throwOnFailedPublish;try{const a=await this.getSubscriptionId(e);if(i?.transportType===Q.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(n).catch(l=>this.logger.warn(l))},R(Z)),a;const c=new Promise(async l=>{const d=g=>{g.topic===e&&(this.events.removeListener($.created,d),l(g.id))};this.events.on($.created,d);try{const g=await X(new Promise((_,u)=>{this.relayer.request(n).catch(b=>{this.logger.warn(b,b?.message),u(b)}).then(_)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener($.created,d),l(g)}catch{}}),h=await X(c,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!h&&o)throw new Error(`Subscribing to ${e} failed, please try again`);return h?a:null}catch(a){if(this.logger.debug(\"Outgoing Relay Subscribe Payload stalled\"),this.relayer.events.emit(C.connection_stalled),o)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return;const t=e[0].relay,i={method:oe(t.protocol).batchSubscribe,params:{topics:e.map(s=>s.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:i});try{await await X(new Promise(s=>{this.relayer.request(i).catch(n=>this.logger.warn(n)).then(s)}),this.subscribeTimeout,\"rpcBatchSubscribe failed, please try again\")}catch{this.relayer.events.emit(C.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;const t=e[0].relay,i={method:oe(t.protocol).batchFetchMessages,params:{topics:e.map(n=>n.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:i});let s;try{s=await await X(new Promise((n,o)=>{this.relayer.request(i).catch(a=>{this.logger.warn(a),o(a)}).then(n)}),this.subscribeTimeout,\"rpcBatchFetchMessages failed, please try again\")}catch{this.relayer.events.emit(C.connection_stalled)}return s}rpcUnsubscribe(e,t,i){const s={method:oe(i.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:s}),this.relayer.request(s)}onSubscribe(e,t){this.setSubscription(e,He(ge({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(t=>{this.setSubscription(t.id,ge({},t)),this.pending.delete(t.topic)})}async onUnsubscribe(e,t,i){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,i),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug(\"Setting subscription\"),this.logger.trace({type:\"method\",method:\"setSubscription\",id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,ge({},t)),this.topicMap.set(t.topic,e),this.events.emit($.created,t)}getSubscription(e){this.logger.debug(\"Getting subscription\"),this.logger.trace({type:\"method\",method:\"getSubscription\",id:e});const t=this.subscriptions.get(e);if(!t){const{message:i}=m(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(i)}return t}deleteSubscription(e,t){this.logger.debug(\"Deleting subscription\"),this.logger.trace({type:\"method\",method:\"deleteSubscription\",id:e,reason:t});const i=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(i.topic,e),this.events.emit($.deleted,He(ge({},i),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit($.sync)}async onRestart(){if(this.cached.length){const e=[...this.cached],t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let i=0;i<t;i++){const s=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(s)}}this.events.emit($.resubscribed)}async restore(){try{const e=await this.getRelayerSubscriptions();if(typeof e>\"u\"||!e.length)return;if(this.subscriptions.size){const{message:t}=m(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){e.length&&(await this.rpcBatchSubscribe(e),this.onBatchSubscribe(await Promise.all(e.map(async t=>He(ge({},t),{id:await this.getSubscriptionId(t.topic)})))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(await ws(R(Z)),await this.relayer.handleBatchMessageEvents(t.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||(this.clientId=await this.relayer.core.crypto.getClientId()),this.clientId}async getSubscriptionId(e){return ve(e+await this.getClientId())}}var eo=Object.defineProperty,Ci=Object.getOwnPropertySymbols,to=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,Ye=(r,e,t)=>e in r?eo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Pi=(r,e)=>{for(var t in e||(e={}))to.call(e,t)&&Ye(r,t,e[t]);if(Ci)for(var t of Ci(e))io.call(e,t)&&Ye(r,t,e[t]);return r},y=(r,e,t)=>Ye(r,typeof e!=\"symbol\"?e+\"\":e,t);class Si extends es{constructor(e){super(e),y(this,\"protocol\",\"wc\"),y(this,\"version\",2),y(this,\"core\"),y(this,\"logger\"),y(this,\"events\",new ee),y(this,\"provider\"),y(this,\"messages\"),y(this,\"subscriber\"),y(this,\"publisher\"),y(this,\"name\",$t),y(this,\"transportExplicitlyClosed\",!1),y(this,\"initialized\",!1),y(this,\"connectionAttemptInProgress\",!1),y(this,\"relayUrl\"),y(this,\"projectId\"),y(this,\"packageName\"),y(this,\"bundleId\"),y(this,\"hasExperiencedNetworkDisruption\",!1),y(this,\"pingTimeout\"),y(this,\"heartBeatTimeout\",R(Se+Pe)),y(this,\"reconnectTimeout\"),y(this,\"connectPromise\"),y(this,\"reconnectInProgress\",!1),y(this,\"requestsInFlight\",[]),y(this,\"connectTimeout\",R(Z*15)),y(this,\"request\",async t=>{var i,s;this.logger.debug(\"Publishing Request Payload\");const n=t.id||mt().toString();await this.toEstablishConnection();try{this.logger.trace({id:n,method:t.method,topic:(i=t.params)==null?void 0:i.topic},\"relayer.request - publishing...\");const o=`${n}:${((s=t.params)==null?void 0:s.tag)||\"\"}`;this.requestsInFlight.push(o);const a=await this.provider.request(t);return this.requestsInFlight=this.requestsInFlight.filter(c=>c!==o),a}catch(o){throw this.logger.debug(`Failed to Publish Request: ${n}`),o}}),y(this,\"resetPingTimeout\",()=>{ut()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var t,i,s,n;try{this.logger.debug({},\"pingTimeout: Connection stalled, terminating...\"),(n=(s=(i=(t=this.provider)==null?void 0:t.connection)==null?void 0:i.socket)==null?void 0:s.terminate)==null||n.call(s)}catch(o){this.logger.warn(o,o?.message)}},this.heartBeatTimeout))}),y(this,\"onPayloadHandler\",t=>{this.onProviderPayload(t),this.resetPingTimeout()}),y(this,\"onConnectHandler\",()=>{this.logger.warn({},\"Relayer connected \\u{1F6DC}\"),this.startPingTimeout(),this.events.emit(C.connect)}),y(this,\"onDisconnectHandler\",()=>{this.logger.warn({},\"Relayer disconnected \\u{1F6D1}\"),this.requestsInFlight=[],this.onProviderDisconnect()}),y(this,\"onProviderErrorHandler\",t=>{this.logger.fatal(`Fatal socket error: ${t.message}`),this.events.emit(C.error,t),this.logger.fatal(\"Fatal socket error received, closing transport\"),this.transportClose()}),y(this,\"registerProviderListeners\",()=>{this.provider.on(L.payload,this.onPayloadHandler),this.provider.on(L.connect,this.onConnectHandler),this.provider.on(L.disconnect,this.onDisconnectHandler),this.provider.on(L.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<\"u\"&&typeof e.logger!=\"string\"?N(e.logger,this.name):Yi(et({level:e.logger||Nt})),this.messages=new _i(this.logger,e.core),this.subscriber=new Ti(this,this.logger),this.publisher=new qn(this,this.logger),this.relayUrl=e?.relayUrl||Ue,this.projectId=e.projectId,_s()?this.packageName=ht():Es()&&(this.bundleId=ht()),this.provider={}}async init(){if(this.logger.trace(\"Initialized\"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.hasAnyTopics)try{await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}}get context(){return U(this.logger)}get connected(){var e,t,i;return((i=(t=(e=this.provider)==null?void 0:e.connection)==null?void 0:t.socket)==null?void 0:i.readyState)===1||!1}get connecting(){var e,t,i;return((i=(t=(e=this.provider)==null?void 0:e.connection)==null?void 0:t.socket)==null?void 0:i.readyState)===0||this.connectPromise!==void 0||!1}async publish(e,t,i){this.isInitialized(),await this.publisher.publish(e,t,i),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:Q.relay},le.outbound)}async subscribe(e,t){var i,s,n;this.isInitialized(),(!(t!=null&&t.transportType)||t?.transportType===\"relay\")&&await this.toEstablishConnection();const o=typeof((i=t?.internal)==null?void 0:i.throwOnFailedPublish)>\"u\"?!0:(s=t?.internal)==null?void 0:s.throwOnFailedPublish;let a=((n=this.subscriber.topicMap.get(e))==null?void 0:n[0])||\"\",c;const h=l=>{l.topic===e&&(this.subscriber.off($.created,h),c())};return await Promise.all([new Promise(l=>{c=l,this.subscriber.on($.created,h)}),new Promise(async(l,d)=>{a=await this.subscriber.subscribe(e,Pi({internal:{throwOnFailedPublish:o}},t)).catch(g=>{o&&d(g)})||a,l()})]),a}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await X(this.provider.disconnect(),2e3,\"provider.disconnect()\").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){if(!this.subscriber.hasAnyTopics){this.logger.warn(\"Starting WS connection skipped because the client has no topics to work with.\");return}if(this.connectPromise?(this.logger.debug({},\"Waiting for existing connection attempt to resolve...\"),await this.connectPromise,this.logger.debug({},\"Existing connection attempt resolved\")):(this.connectPromise=new Promise(async(t,i)=>{await this.connect(e).then(t).catch(i).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw new Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},\"Restarting transport...\"),!this.connectionAttemptInProgress&&(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await lt())throw new Error(\"No internet connection detected. Please restart your network and try again.\")}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace(\"Batch message events is empty. Ignoring...\");return}const t=e.sort((i,s)=>i.publishedAt-s.publishedAt);this.logger.debug(`Batch of ${t.length} message events sorted`);for(const i of t)try{await this.onMessageEvent(i)}catch(s){this.logger.warn(s,\"Error while processing batch message event: \"+s?.message)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){const{topic:i}=e;if(!t.sessionExists){const s=ce(fe),n={topic:i,expiry:s,relay:{protocol:\"irn\"},active:!1};await this.core.pairing.pairings.set(i,n)}this.events.emit(C.message,e),await this.recordMessageEvent(e,le.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;let t=1;for(;t<6;){try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${t}...`),await this.createProvider(),await new Promise(async(i,s)=>{const n=()=>{s(new Error(\"Connection interrupted while trying to subscribe\"))};this.provider.once(L.disconnect,n),await X(new Promise((o,a)=>{this.provider.connect().then(o).catch(a)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(o=>{s(o)}).finally(()=>{this.provider.off(L.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(o,a)=>{const c=()=>{a(new Error(\"Connection interrupted while trying to subscribe\"))};this.provider.once(L.disconnect,c),await this.subscriber.start().then(o).catch(a).finally(()=>{this.provider.off(L.disconnect,c)})}),this.hasExperiencedNetworkDisruption=!1,i()})}catch(i){await this.subscriber.stop();const s=i;this.logger.warn({},s.message),this.hasExperiencedNetworkDisruption=!0}finally{this.connectionAttemptInProgress=!1}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${t}`);break}await new Promise(i=>setTimeout(i,R(t*1))),t++}}startPingTimeout(){var e,t,i,s,n;if(ut())try{(t=(e=this.provider)==null?void 0:e.connection)!=null&&t.socket&&((n=(s=(i=this.provider)==null?void 0:i.connection)==null?void 0:s.socket)==null||n.on(\"ping\",()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(o){this.logger.warn(o,o?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new Ms(new Vs(Is({sdkVersion:_e,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,t){const{topic:i,message:s}=e;await this.messages.set(i,s,t)}async shouldIgnoreMessageEvent(e){const{topic:t,message:i}=e;if(!i||i.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${i}`),!0;if(!await this.subscriber.isKnownTopic(t))return this.logger.warn(`Ignoring message for unknown topic ${t}`),!0;const s=this.messages.has(t,i);return s&&this.logger.warn(`Ignoring duplicate message: ${i}`),s}async onProviderPayload(e){if(this.logger.debug(\"Incoming Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"incoming\",payload:e}),ft(e)){if(!e.method.endsWith(zt))return;const t=e.params,{topic:i,message:s,publishedAt:n,attestation:o}=t.data,a={topic:i,message:s,publishedAt:n,transportType:Q.relay,attestation:o};this.logger.debug(\"Emitting Relayer Payload\"),this.logger.trace(Pi({type:\"event\",event:t.id},a)),this.events.emit(t.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else Dt(e)&&this.events.emit(C.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,le.inbound),this.events.emit(C.message,e))}async acknowledgePayload(e){const t=vt(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(L.payload,this.onPayloadHandler),this.provider.off(L.connect,this.onConnectHandler),this.provider.off(L.disconnect,this.onDisconnectHandler),this.provider.off(L.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await lt();Ts(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(i=>this.logger.error(i,i?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(te.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&Cs())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(t){this.logger.warn(t,t?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(C.disconnect),this.connectionAttemptInProgress=!1,!this.reconnectInProgress&&(this.reconnectInProgress=!0,await this.subscriber.stop(),this.subscriber.hasAnyTopics&&(this.transportExplicitlyClosed||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},R(Lt)))))}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}await this.connect()}}}function so(){}function Oi(r){if(!r||typeof r!=\"object\")return!1;const e=Object.getPrototypeOf(r);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(r)===\"[object Object]\":!1}function Ri(r){return Object.getOwnPropertySymbols(r).filter(e=>Object.prototype.propertyIsEnumerable.call(r,e))}function Ai(r){return r==null?r===void 0?\"[object Undefined]\":\"[object Null]\":Object.prototype.toString.call(r)}const ro=\"[object RegExp]\",no=\"[object String]\",oo=\"[object Number]\",ao=\"[object Boolean]\",xi=\"[object Arguments]\",co=\"[object Symbol]\",ho=\"[object Date]\",lo=\"[object Map]\",uo=\"[object Set]\",go=\"[object Array]\",po=\"[object Function]\",yo=\"[object ArrayBuffer]\",Je=\"[object Object]\",bo=\"[object Error]\",mo=\"[object DataView]\",fo=\"[object Uint8Array]\",Do=\"[object Uint8ClampedArray]\",vo=\"[object Uint16Array]\",wo=\"[object Uint32Array]\",_o=\"[object BigUint64Array]\",Eo=\"[object Int8Array]\",Io=\"[object Int16Array]\",To=\"[object Int32Array]\",Co=\"[object BigInt64Array]\",Po=\"[object Float32Array]\",So=\"[object Float64Array]\";function Oo(r,e){return r===e||Number.isNaN(r)&&Number.isNaN(e)}function Ro(r,e,t){return pe(r,e,void 0,void 0,void 0,void 0,t)}function pe(r,e,t,i,s,n,o){const a=o(r,e,t,i,s,n);if(a!==void 0)return a;if(typeof r==typeof e)switch(typeof r){case\"bigint\":case\"string\":case\"boolean\":case\"symbol\":case\"undefined\":return r===e;case\"number\":return r===e||Object.is(r,e);case\"function\":return r===e;case\"object\":return ye(r,e,n,o)}return ye(r,e,n,o)}function ye(r,e,t,i){if(Object.is(r,e))return!0;let s=Ai(r),n=Ai(e);if(s===xi&&(s=Je),n===xi&&(n=Je),s!==n)return!1;switch(s){case no:return r.toString()===e.toString();case oo:{const c=r.valueOf(),h=e.valueOf();return Oo(c,h)}case ao:case ho:case co:return Object.is(r.valueOf(),e.valueOf());case ro:return r.source===e.source&&r.flags===e.flags;case po:return r===e}t=t??new Map;const o=t.get(r),a=t.get(e);if(o!=null&&a!=null)return o===e;t.set(r,e),t.set(e,r);try{switch(s){case lo:{if(r.size!==e.size)return!1;for(const[c,h]of r.entries())if(!e.has(c)||!pe(h,e.get(c),c,r,e,t,i))return!1;return!0}case uo:{if(r.size!==e.size)return!1;const c=Array.from(r.values()),h=Array.from(e.values());for(let l=0;l<c.length;l++){const d=c[l],g=h.findIndex(_=>pe(d,_,void 0,r,e,t,i));if(g===-1)return!1;h.splice(g,1)}return!0}case go:case fo:case Do:case vo:case wo:case _o:case Eo:case Io:case To:case Co:case Po:case So:{if(typeof Buffer<\"u\"&&Buffer.isBuffer(r)!==Buffer.isBuffer(e)||r.length!==e.length)return!1;for(let c=0;c<r.length;c++)if(!pe(r[c],e[c],c,r,e,t,i))return!1;return!0}case yo:return r.byteLength!==e.byteLength?!1:ye(new Uint8Array(r),new Uint8Array(e),t,i);case mo:return r.byteLength!==e.byteLength||r.byteOffset!==e.byteOffset?!1:ye(new Uint8Array(r),new Uint8Array(e),t,i);case bo:return r.name===e.name&&r.message===e.message;case Je:{if(!(ye(r.constructor,e.constructor,t,i)||Oi(r)&&Oi(e)))return!1;const h=[...Object.keys(r),...Ri(r)],l=[...Object.keys(e),...Ri(e)];if(h.length!==l.length)return!1;for(let d=0;d<h.length;d++){const g=h[d],_=r[g];if(!Object.hasOwn(e,g))return!1;const u=e[g];if(!pe(_,u,g,r,e,t,i))return!1}return!0}default:return!1}}finally{t.delete(r),t.delete(e)}}function Ao(r,e){return Ro(r,e,so)}var xo=Object.defineProperty,Ni=Object.getOwnPropertySymbols,No=Object.prototype.hasOwnProperty,$o=Object.prototype.propertyIsEnumerable,Xe=(r,e,t)=>e in r?xo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,$i=(r,e)=>{for(var t in e||(e={}))No.call(e,t)&&Xe(r,t,e[t]);if(Ni)for(var t of Ni(e))$o.call(e,t)&&Xe(r,t,e[t]);return r},z=(r,e,t)=>Xe(r,typeof e!=\"symbol\"?e+\"\":e,t);class zi extends ts{constructor(e,t,i,s=B,n=void 0){super(e,t,i,s),this.core=e,this.logger=t,this.name=i,z(this,\"map\",new Map),z(this,\"version\",kt),z(this,\"cached\",[]),z(this,\"initialized\",!1),z(this,\"getKey\"),z(this,\"storagePrefix\",B),z(this,\"recentlyDeleted\",[]),z(this,\"recentlyDeletedLimit\",200),z(this,\"init\",async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(o=>{this.getKey&&o!==null&&!xe(o)?this.map.set(this.getKey(o),o):Ps(o)?this.map.set(o.id,o):Ss(o)&&this.map.set(o.topic,o)}),this.cached=[],this.initialized=!0)}),z(this,\"set\",async(o,a)=>{this.isInitialized(),this.map.has(o)?await this.update(o,a):(this.logger.debug(\"Setting value\"),this.logger.trace({type:\"method\",method:\"set\",key:o,value:a}),this.map.set(o,a),await this.persist())}),z(this,\"get\",o=>(this.isInitialized(),this.logger.debug(\"Getting value\"),this.logger.trace({type:\"method\",method:\"get\",key:o}),this.getData(o))),z(this,\"getAll\",o=>(this.isInitialized(),o?this.values.filter(a=>Object.keys(o).every(c=>Ao(a[c],o[c]))):this.values)),z(this,\"update\",async(o,a)=>{this.isInitialized(),this.logger.debug(\"Updating value\"),this.logger.trace({type:\"method\",method:\"update\",key:o,update:a});const c=$i($i({},this.getData(o)),a);this.map.set(o,c),await this.persist()}),z(this,\"delete\",async(o,a)=>{this.isInitialized(),this.map.has(o)&&(this.logger.debug(\"Deleting value\"),this.logger.trace({type:\"method\",method:\"delete\",key:o,reason:a}),this.map.delete(o),this.addToRecentlyDeleted(o),await this.persist())}),this.logger=N(t,this.name),this.storagePrefix=s,this.getKey=n}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){const{message:s}=m(\"MISSING_OR_INVALID\",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(s),new Error(s)}const{message:i}=m(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.error(i),new Error(i)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>\"u\"||!e.length)return;if(this.map.size){const{message:t}=m(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var zo=Object.defineProperty,Lo=(r,e,t)=>e in r?zo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,p=(r,e,t)=>Lo(r,typeof e!=\"symbol\"?e+\"\":e,t);class Li{constructor(e,t){this.core=e,this.logger=t,p(this,\"name\",Mt),p(this,\"version\",Kt),p(this,\"events\",new Gi),p(this,\"pairings\"),p(this,\"initialized\",!1),p(this,\"storagePrefix\",B),p(this,\"ignoredPayloadTypes\",[Rs]),p(this,\"registeredMethods\",[]),p(this,\"init\",async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(\"Initialized\"))}),p(this,\"register\",({methods:i})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...i])]}),p(this,\"create\",async i=>{this.isInitialized();const s=Ae(),n=await this.core.crypto.setSymKey(s),o=ce(fe),a={protocol:xt},c={topic:n,expiry:o,relay:a,active:!1,methods:i?.methods},h=dt({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:s,relay:a,expiryTimestamp:o,methods:i?.methods});return this.events.emit(re.create,c),this.core.expirer.set(n,o),await this.pairings.set(n,c),await this.core.relayer.subscribe(n,{transportType:i?.transportType}),{topic:n,uri:h}}),p(this,\"pair\",async i=>{this.isInitialized();const s=this.core.eventClient.createEvent({properties:{topic:i?.uri,trace:[G.pairing_started]}});this.isValidPair(i,s);const{topic:n,symKey:o,relay:a,expiryTimestamp:c,methods:h}=gt(i.uri);s.props.properties.topic=n,s.addTrace(G.pairing_uri_validation_success),s.addTrace(G.pairing_uri_not_expired);let l;if(this.pairings.keys.includes(n)){if(l=this.pairings.get(n),s.addTrace(G.existing_pairing),l.active)throw s.setError(Y.active_pairing_already_exists),new Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);s.addTrace(G.pairing_not_expired)}const d=c||ce(fe),g={topic:n,relay:a,expiry:d,active:!1,methods:h};this.core.expirer.set(n,d),await this.pairings.set(n,g),s.addTrace(G.store_new_pairing),i.activatePairing&&await this.activate({topic:n}),this.events.emit(re.create,g),s.addTrace(G.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(o,n),s.addTrace(G.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{s.setError(Y.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:a})}catch(_){throw s.setError(Y.subscribe_pairing_topic_failure),_}return s.addTrace(G.subscribe_pairing_topic_success),g}),p(this,\"activate\",async({topic:i})=>{this.isInitialized();const s=ce(fe);this.core.expirer.set(i,s),await this.pairings.update(i,{active:!0,expiry:s})}),p(this,\"ping\",async i=>{this.isInitialized(),await this.isValidPing(i),this.logger.warn(\"ping() is deprecated and will be removed in the next major release.\");const{topic:s}=i;if(this.pairings.keys.includes(s)){const n=await this.sendRequest(s,\"wc_pairingPing\",{}),{done:o,resolve:a,reject:c}=As();this.events.once(Ne(\"pairing_ping\",n),({error:h})=>{h?c(h):a()}),await o()}}),p(this,\"updateExpiry\",async({topic:i,expiry:s})=>{this.isInitialized(),await this.pairings.update(i,{expiry:s})}),p(this,\"updateMetadata\",async({topic:i,metadata:s})=>{this.isInitialized(),await this.pairings.update(i,{peerMetadata:s})}),p(this,\"getPairings\",()=>(this.isInitialized(),this.pairings.values)),p(this,\"disconnect\",async i=>{this.isInitialized(),await this.isValidDisconnect(i);const{topic:s}=i;this.pairings.keys.includes(s)&&(await this.sendRequest(s,\"wc_pairingDelete\",ae(\"USER_DISCONNECTED\")),await this.deletePairing(s))}),p(this,\"formatUriFromPairing\",i=>{this.isInitialized();const{topic:s,relay:n,expiry:o,methods:a}=i,c=this.core.crypto.keychain.get(s);return dt({protocol:this.core.protocol,version:this.core.version,topic:s,symKey:c,relay:n,expiryTimestamp:o,methods:a})}),p(this,\"sendRequest\",async(i,s,n)=>{const o=wt(s,n),a=await this.core.crypto.encode(i,o),c=se[s].req;return this.core.history.set(i,o),this.core.relayer.publish(i,a,c),o.id}),p(this,\"sendResult\",async(i,s,n)=>{const o=vt(i,n),a=await this.core.crypto.encode(s,o),c=(await this.core.history.get(s,i)).request.method,h=se[c].res;await this.core.relayer.publish(s,a,h),await this.core.history.resolve(o)}),p(this,\"sendError\",async(i,s,n)=>{const o=Ks(i,n),a=await this.core.crypto.encode(s,o),c=(await this.core.history.get(s,i)).request.method,h=se[c]?se[c].res:se.unregistered_method.res;await this.core.relayer.publish(s,a,h),await this.core.history.resolve(o)}),p(this,\"deletePairing\",async(i,s)=>{await this.core.relayer.unsubscribe(i),await Promise.all([this.pairings.delete(i,ae(\"USER_DISCONNECTED\")),this.core.crypto.deleteSymKey(i),s?Promise.resolve():this.core.expirer.del(i)])}),p(this,\"cleanup\",async()=>{const i=this.pairings.getAll().filter(s=>pt(s.expiry));await Promise.all(i.map(s=>this.deletePairing(s.topic)))}),p(this,\"onRelayEventRequest\",async i=>{const{topic:s,payload:n}=i;switch(n.method){case\"wc_pairingPing\":return await this.onPairingPingRequest(s,n);case\"wc_pairingDelete\":return await this.onPairingDeleteRequest(s,n);default:return await this.onUnknownRpcMethodRequest(s,n)}}),p(this,\"onRelayEventResponse\",async i=>{const{topic:s,payload:n}=i,o=(await this.core.history.get(s,n.id)).request.method;switch(o){case\"wc_pairingPing\":return this.onPairingPingResponse(s,n);default:return this.onUnknownRpcMethodResponse(o)}}),p(this,\"onPairingPingRequest\",async(i,s)=>{const{id:n}=s;try{this.isValidPing({topic:i}),await this.sendResult(n,i,!0),this.events.emit(re.ping,{id:n,topic:i})}catch(o){await this.sendError(n,i,o),this.logger.error(o)}}),p(this,\"onPairingPingResponse\",(i,s)=>{const{id:n}=s;setTimeout(()=>{Bs(s)?this.events.emit(Ne(\"pairing_ping\",n),{}):_t(s)&&this.events.emit(Ne(\"pairing_ping\",n),{error:s.error})},500)}),p(this,\"onPairingDeleteRequest\",async(i,s)=>{const{id:n}=s;try{this.isValidDisconnect({topic:i}),await this.deletePairing(i),this.events.emit(re.delete,{id:n,topic:i})}catch(o){await this.sendError(n,i,o),this.logger.error(o)}}),p(this,\"onUnknownRpcMethodRequest\",async(i,s)=>{const{id:n,method:o}=s;try{if(this.registeredMethods.includes(o))return;const a=ae(\"WC_METHOD_UNSUPPORTED\",o);await this.sendError(n,i,a),this.logger.error(a)}catch(a){await this.sendError(n,i,a),this.logger.error(a)}}),p(this,\"onUnknownRpcMethodResponse\",i=>{this.registeredMethods.includes(i)||this.logger.error(ae(\"WC_METHOD_UNSUPPORTED\",i))}),p(this,\"isValidPair\",(i,s)=>{var n;if(!$e(i)){const{message:a}=m(\"MISSING_OR_INVALID\",`pair() params: ${i}`);throw s.setError(Y.malformed_pairing_uri),new Error(a)}if(!xs(i.uri)){const{message:a}=m(\"MISSING_OR_INVALID\",`pair() uri: ${i.uri}`);throw s.setError(Y.malformed_pairing_uri),new Error(a)}const o=gt(i?.uri);if(!((n=o?.relay)!=null&&n.protocol)){const{message:a}=m(\"MISSING_OR_INVALID\",\"pair() uri#relay-protocol\");throw s.setError(Y.malformed_pairing_uri),new Error(a)}if(!(o!=null&&o.symKey)){const{message:a}=m(\"MISSING_OR_INVALID\",\"pair() uri#symKey\");throw s.setError(Y.malformed_pairing_uri),new Error(a)}if(o!=null&&o.expiryTimestamp&&R(o?.expiryTimestamp)<Date.now()){s.setError(Y.pairing_expired);const{message:a}=m(\"EXPIRED\",\"pair() URI has expired. Please try again with a new connection URI.\");throw new Error(a)}}),p(this,\"isValidPing\",async i=>{if(!$e(i)){const{message:n}=m(\"MISSING_OR_INVALID\",`ping() params: ${i}`);throw new Error(n)}const{topic:s}=i;await this.isValidPairingTopic(s)}),p(this,\"isValidDisconnect\",async i=>{if(!$e(i)){const{message:n}=m(\"MISSING_OR_INVALID\",`disconnect() params: ${i}`);throw new Error(n)}const{topic:s}=i;await this.isValidPairingTopic(s)}),p(this,\"isValidPairingTopic\",async i=>{if(!Ns(i,!1)){const{message:s}=m(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${i}`);throw new Error(s)}if(!this.pairings.keys.includes(i)){const{message:s}=m(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${i}`);throw new Error(s)}if(pt(this.pairings.get(i).expiry)){await this.deletePairing(i);const{message:s}=m(\"EXPIRED\",`pairing topic: ${i}`);throw new Error(s)}}),this.core=e,this.logger=N(t,this.name),this.pairings=new zi(this.core,this.logger,this.name,this.storagePrefix)}get context(){return U(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(C.message,async e=>{const{topic:t,message:i,transportType:s}=e;if(this.pairings.keys.includes(t)&&s!==Q.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(i)))try{const n=await this.core.crypto.decode(t,i);ft(n)?(this.core.history.set(t,n),await this.onRelayEventRequest({topic:t,payload:n})):Dt(n)&&(await this.core.history.resolve(n),await this.onRelayEventResponse({topic:t,payload:n}),this.core.history.delete(t,n.id)),await this.core.relayer.messages.ack(t,i)}catch(n){this.logger.error(n)}})}registerExpirerEvents(){this.core.expirer.on(M.expired,async e=>{const{topic:t}=Os(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(re.expire,{topic:t}))})}}var ko=Object.defineProperty,jo=(r,e,t)=>e in r?ko(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,O=(r,e,t)=>jo(r,typeof e!=\"symbol\"?e+\"\":e,t);class ki extends is{constructor(e,t){super(e,t),this.core=e,this.logger=t,O(this,\"records\",new Map),O(this,\"events\",new ee),O(this,\"name\",Bt),O(this,\"version\",Vt),O(this,\"cached\",[]),O(this,\"initialized\",!1),O(this,\"storagePrefix\",B),O(this,\"init\",async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(i=>this.records.set(i.id,i)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),O(this,\"set\",(i,s,n)=>{if(this.isInitialized(),this.logger.debug(\"Setting JSON-RPC request history record\"),this.logger.trace({type:\"method\",method:\"set\",topic:i,request:s,chainId:n}),this.records.has(s.id))return;const o={id:s.id,topic:i,request:{method:s.method,params:s.params||null},chainId:n,expiry:ce(Ce)};this.records.set(o.id,o),this.persist(),this.events.emit(F.created,o)}),O(this,\"resolve\",async i=>{if(this.isInitialized(),this.logger.debug(\"Updating JSON-RPC response history record\"),this.logger.trace({type:\"method\",method:\"update\",response:i}),!this.records.has(i.id))return;const s=await this.getRecord(i.id);typeof s.response>\"u\"&&(s.response=_t(i)?{error:i.error}:{result:i.result},this.records.set(s.id,s),this.persist(),this.events.emit(F.updated,s))}),O(this,\"get\",async(i,s)=>(this.isInitialized(),this.logger.debug(\"Getting record\"),this.logger.trace({type:\"method\",method:\"get\",topic:i,id:s}),await this.getRecord(s))),O(this,\"delete\",(i,s)=>{this.isInitialized(),this.logger.debug(\"Deleting record\"),this.logger.trace({type:\"method\",method:\"delete\",id:s}),this.values.forEach(n=>{if(n.topic===i){if(typeof s<\"u\"&&n.id!==s)return;this.records.delete(n.id),this.events.emit(F.deleted,n)}}),this.persist()}),O(this,\"exists\",async(i,s)=>(this.isInitialized(),this.records.has(s)?(await this.getRecord(s)).topic===i:!1)),O(this,\"on\",(i,s)=>{this.events.on(i,s)}),O(this,\"once\",(i,s)=>{this.events.once(i,s)}),O(this,\"off\",(i,s)=>{this.events.off(i,s)}),O(this,\"removeListener\",(i,s)=>{this.events.removeListener(i,s)}),this.logger=N(t,this.name)}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(t=>{if(typeof t.response<\"u\")return;const i={topic:t.topic,request:wt(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(i)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const t=this.records.get(e);if(!t){const{message:i}=m(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(i)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(F.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>\"u\"||!e.length)return;if(this.records.size){const{message:t}=m(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(F.created,e=>{const t=F.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.events.on(F.updated,e=>{const t=F.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.events.on(F.deleted,e=>{const t=F.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.core.heartbeat.on(te.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{R(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(F.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var Uo=Object.defineProperty,Fo=(r,e,t)=>e in r?Uo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,A=(r,e,t)=>Fo(r,typeof e!=\"symbol\"?e+\"\":e,t);class ji extends ss{constructor(e,t){super(e,t),this.core=e,this.logger=t,A(this,\"expirations\",new Map),A(this,\"events\",new ee),A(this,\"name\",qt),A(this,\"version\",Gt),A(this,\"cached\",[]),A(this,\"initialized\",!1),A(this,\"storagePrefix\",B),A(this,\"init\",async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(i=>this.expirations.set(i.target,i)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),A(this,\"has\",i=>{try{const s=this.formatTarget(i);return typeof this.getExpiration(s)<\"u\"}catch{return!1}}),A(this,\"set\",(i,s)=>{this.isInitialized();const n=this.formatTarget(i),o={target:n,expiry:s};this.expirations.set(n,o),this.checkExpiry(n,o),this.events.emit(M.created,{target:n,expiration:o})}),A(this,\"get\",i=>{this.isInitialized();const s=this.formatTarget(i);return this.getExpiration(s)}),A(this,\"del\",i=>{if(this.isInitialized(),this.has(i)){const s=this.formatTarget(i),n=this.getExpiration(s);this.expirations.delete(s),this.events.emit(M.deleted,{target:s,expiration:n})}}),A(this,\"on\",(i,s)=>{this.events.on(i,s)}),A(this,\"once\",(i,s)=>{this.events.once(i,s)}),A(this,\"off\",(i,s)=>{this.events.off(i,s)}),A(this,\"removeListener\",(i,s)=>{this.events.removeListener(i,s)}),this.logger=N(t,this.name)}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e==\"string\")return $s(e);if(typeof e==\"number\")return zs(e);const{message:t}=m(\"UNKNOWN_TYPE\",`Target type: ${typeof e}`);throw new Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(M.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>\"u\"||!e.length)return;if(this.expirations.size){const{message:t}=m(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const t=this.expirations.get(e);if(!t){const{message:i}=m(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.warn(i),new Error(i)}return t}checkExpiry(e,t){const{expiry:i}=t;R(i)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(M.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(te.pulse,()=>this.checkExpirations()),this.events.on(M.created,e=>{const t=M.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()}),this.events.on(M.expired,e=>{const t=M.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()}),this.events.on(M.deleted,e=>{const t=M.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var Mo=Object.defineProperty,Ko=(r,e,t)=>e in r?Mo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,w=(r,e,t)=>Ko(r,typeof e!=\"symbol\"?e+\"\":e,t);class Ui extends rs{constructor(e,t,i){super(e,t,i),this.core=e,this.logger=t,this.store=i,w(this,\"name\",Wt),w(this,\"abortController\"),w(this,\"isDevEnv\"),w(this,\"verifyUrlV3\",Yt),w(this,\"storagePrefix\",B),w(this,\"version\",Le),w(this,\"publicKey\"),w(this,\"fetchPromise\"),w(this,\"init\",async()=>{var s;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&R((s=this.publicKey)==null?void 0:s.expiresAt)<Date.now()&&(this.logger.debug(\"verify v2 public key expired\"),await this.removePublicKey()))}),w(this,\"register\",async s=>{if(!Ls()||this.isDevEnv)return;const n=window.location.origin,{id:o,decryptedId:a}=s,c=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${n}&id=${o}&decryptedId=${a}`;try{const h=qs(),l=this.startAbortTimer(Z*5),d=await new Promise((g,_)=>{const u=()=>{window.removeEventListener(\"message\",x),h.body.removeChild(b),_(\"attestation aborted\")};this.abortController.signal.addEventListener(\"abort\",u);const b=h.createElement(\"iframe\");b.src=c,b.style.display=\"none\",b.addEventListener(\"error\",u,{signal:this.abortController.signal});const x=I=>{if(I.data&&typeof I.data==\"string\")try{const D=JSON.parse(I.data);if(D.type===\"verify_attestation\"){if(rt(D.attestation).payload.id!==o)return;clearInterval(l),h.body.removeChild(b),this.abortController.signal.removeEventListener(\"abort\",u),window.removeEventListener(\"message\",x),g(D.attestation===null?\"\":D.attestation)}}catch(D){this.logger.warn(D)}};h.body.appendChild(b),window.addEventListener(\"message\",x,{signal:this.abortController.signal})});return this.logger.debug(\"jwt attestation\",d),d}catch(h){this.logger.warn(h)}return\"\"}),w(this,\"resolve\",async s=>{if(this.isDevEnv)return\"\";const{attestationId:n,hash:o,encryptedId:a}=s;if(n===\"\"){this.logger.debug(\"resolve: attestationId is empty, skipping\");return}if(n){if(rt(n).payload.id!==a)return;const h=await this.isValidJwtAttestation(n);if(h){if(!h.isVerified){this.logger.warn(\"resolve: jwt attestation: origin url not verified\");return}return h}}if(!o)return;const c=this.getVerifyUrl(s?.verifyUrl);return this.fetchAttestation(o,c)}),w(this,\"fetchAttestation\",async(s,n)=>{this.logger.debug(`resolving attestation: ${s} from url: ${n}`);const o=this.startAbortTimer(Z*5),a=await fetch(`${n}/attestation/${s}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(o),a.status===200?await a.json():void 0}),w(this,\"getVerifyUrl\",s=>{let n=s||ue;return Jt.includes(n)||(this.logger.info(`verify url: ${n}, not included in trusted list, assigning default: ${ue}`),n=ue),n}),w(this,\"fetchPublicKey\",async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const s=this.startAbortTimer(Pe),n=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(s),await n.json()}catch(s){this.logger.warn(s)}}),w(this,\"persistPublicKey\",async s=>{this.logger.debug(\"persisting public key to local storage\",s),await this.store.setItem(this.storeKey,s),this.publicKey=s}),w(this,\"removePublicKey\",async()=>{this.logger.debug(\"removing verify v2 public key from storage\"),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),w(this,\"isValidJwtAttestation\",async s=>{const n=await this.getPublicKey();try{if(n)return this.validateAttestation(s,n)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}const o=await this.fetchAndPersistPublicKey();try{if(o)return this.validateAttestation(s,o)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}}),w(this,\"getPublicKey\",async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),w(this,\"fetchAndPersistPublicKey\",async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async n=>{const o=await this.fetchPublicKey();o&&(await this.persistPublicKey(o),n(o))});const s=await this.fetchPromise;return this.fetchPromise=void 0,s}),w(this,\"validateAttestation\",(s,n)=>{const o=ks(s,n.publicKey),a={hasExpired:R(o.exp)<Date.now(),payload:o};if(a.hasExpired)throw this.logger.warn(\"resolve: jwt attestation expired\"),new Error(\"JWT attestation expired\");return{origin:a.payload.origin,isScam:a.payload.isScam,isVerified:a.payload.isVerified}}),this.logger=N(t,this.name),this.abortController=new AbortController,this.isDevEnv=yt(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//verify:public:key\"}get context(){return U(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),R(e))}}var Bo=Object.defineProperty,Vo=(r,e,t)=>e in r?Bo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Fi=(r,e,t)=>Vo(r,typeof e!=\"symbol\"?e+\"\":e,t);class Mi extends ns{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,Fi(this,\"context\",Xt),Fi(this,\"registerDeviceToken\",async i=>{const{clientId:s,token:n,notificationType:o,enableEncrypted:a=!1}=i,c=`${Zt}/${this.projectId}/clients`;await fetch(c,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({client_id:s,type:o,token:n,always_raw:a})})}),this.logger=N(t,this.context)}}var qo=Object.defineProperty,Ki=Object.getOwnPropertySymbols,Go=Object.prototype.hasOwnProperty,Wo=Object.prototype.propertyIsEnumerable,Ze=(r,e,t)=>e in r?qo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,be=(r,e)=>{for(var t in e||(e={}))Go.call(e,t)&&Ze(r,t,e[t]);if(Ki)for(var t of Ki(e))Wo.call(e,t)&&Ze(r,t,e[t]);return r},E=(r,e,t)=>Ze(r,typeof e!=\"symbol\"?e+\"\":e,t);class Bi extends os{constructor(e,t,i=!0){super(e,t,i),this.core=e,this.logger=t,E(this,\"context\",ei),E(this,\"storagePrefix\",B),E(this,\"storageVersion\",Qt),E(this,\"events\",new Map),E(this,\"shouldPersist\",!1),E(this,\"init\",async()=>{if(!yt())try{const s={eventId:bt(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:\"INIT\",type:\"\",properties:{client_id:await this.core.crypto.getClientId(),user_agent:js(this.core.relayer.protocol,this.core.relayer.version,_e)}}};await this.sendEvent([s])}catch(s){this.logger.warn(s)}}),E(this,\"createEvent\",s=>{const{event:n=\"ERROR\",type:o=\"\",properties:{topic:a,trace:c}}=s,h=bt(),l=this.core.projectId||\"\",d=Date.now(),g=be({eventId:h,timestamp:d,props:{event:n,type:o,properties:{topic:a,trace:c}},bundleId:l,domain:this.getAppDomain()},this.setMethods(h));return this.telemetryEnabled&&(this.events.set(h,g),this.shouldPersist=!0),g}),E(this,\"getEvent\",s=>{const{eventId:n,topic:o}=s;if(n)return this.events.get(n);const a=Array.from(this.events.values()).find(c=>c.props.properties.topic===o);if(a)return be(be({},a),this.setMethods(a.eventId))}),E(this,\"deleteEvent\",s=>{const{eventId:n}=s;this.events.delete(n),this.shouldPersist=!0}),E(this,\"setEventListeners\",()=>{this.core.heartbeat.on(te.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(s=>{it(Date.now())-it(s.timestamp)>ti&&(this.events.delete(s.eventId),this.shouldPersist=!0)})})}),E(this,\"setMethods\",s=>({addTrace:n=>this.addTrace(s,n),setError:n=>this.setError(s,n)})),E(this,\"addTrace\",(s,n)=>{const o=this.events.get(s);o&&(o.props.properties.trace.push(n),this.events.set(s,o),this.shouldPersist=!0)}),E(this,\"setError\",(s,n)=>{const o=this.events.get(s);o&&(o.props.type=n,o.timestamp=Date.now(),this.events.set(s,o),this.shouldPersist=!0)}),E(this,\"persist\",async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),E(this,\"restore\",async()=>{try{const s=await this.core.storage.getItem(this.storageKey)||[];if(!s.length)return;s.forEach(n=>{this.events.set(n.eventId,be(be({},n),this.setMethods(n.eventId)))})}catch(s){this.logger.warn(s)}}),E(this,\"submit\",async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const s=[];for(const[n,o]of this.events)o.props.type&&s.push(o);if(s.length!==0)try{if((await this.sendEvent(s)).ok)for(const n of s)this.events.delete(n.eventId),this.shouldPersist=!0}catch(n){this.logger.warn(n)}}),E(this,\"sendEvent\",async s=>{const n=this.getAppDomain()?\"\":\"&sp=desktop\";return await fetch(`${ii}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${_e}${n}`,{method:\"POST\",body:JSON.stringify(s)})}),E(this,\"getAppDomain\",()=>Us().url),this.logger=N(t,this.context),this.telemetryEnabled=i,i?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+\"//\"+this.context}}var Ho=Object.defineProperty,Vi=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Qe=(r,e,t)=>e in r?Ho(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,qi=(r,e)=>{for(var t in e||(e={}))Yo.call(e,t)&&Qe(r,t,e[t]);if(Vi)for(var t of Vi(e))Jo.call(e,t)&&Qe(r,t,e[t]);return r},v=(r,e,t)=>Qe(r,typeof e!=\"symbol\"?e+\"\":e,t);class Te extends as{constructor(e){var t;super(e),v(this,\"protocol\",ze),v(this,\"version\",Le),v(this,\"name\",he),v(this,\"relayUrl\"),v(this,\"projectId\"),v(this,\"customStoragePrefix\"),v(this,\"events\",new ee),v(this,\"logger\"),v(this,\"heartbeat\"),v(this,\"relayer\"),v(this,\"crypto\"),v(this,\"storage\"),v(this,\"history\"),v(this,\"expirer\"),v(this,\"pairing\"),v(this,\"verify\"),v(this,\"echoClient\"),v(this,\"linkModeSupportedApps\"),v(this,\"eventClient\"),v(this,\"initialized\",!1),v(this,\"logChunkController\"),v(this,\"on\",(a,c)=>this.events.on(a,c)),v(this,\"once\",(a,c)=>this.events.once(a,c)),v(this,\"off\",(a,c)=>this.events.off(a,c)),v(this,\"removeListener\",(a,c)=>this.events.removeListener(a,c)),v(this,\"dispatchEnvelope\",({topic:a,message:c,sessionExists:h})=>{if(!a||!c)return;const l={topic:a,message:c,publishedAt:Date.now(),transportType:Q.link_mode};this.relayer.onLinkMessageEvent(l,{sessionExists:h})});const i=this.getGlobalCore(e?.customStoragePrefix);if(i)try{return this.customStoragePrefix=i.customStoragePrefix,this.logger=i.logger,this.heartbeat=i.heartbeat,this.crypto=i.crypto,this.history=i.history,this.expirer=i.expirer,this.storage=i.storage,this.relayer=i.relayer,this.pairing=i.pairing,this.verify=i.verify,this.echoClient=i.echoClient,this.linkModeSupportedApps=i.linkModeSupportedApps,this.eventClient=i.eventClient,this.initialized=i.initialized,this.logChunkController=i.logChunkController,i}catch(a){console.warn(\"Failed to copy global core\",a)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Ue,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:\"\";const s=et({level:typeof e?.logger==\"string\"&&e.logger?e.logger:Et.logger,name:he}),{logger:n,chunkLoggerController:o}=Ji({opts:s,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=o,(t=this.logChunkController)!=null&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var a,c;(a=this.logChunkController)!=null&&a.downloadLogsBlobInBrowser&&((c=this.logChunkController)==null||c.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=N(n,this.name),this.heartbeat=new Wi,this.crypto=new vi(this,this.logger,e?.keychain),this.history=new ki(this,this.logger),this.expirer=new ji(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new Hi(qi(qi({},It),e?.storageOptions)),this.relayer=new Si({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new Li(this,this.logger),this.verify=new Ui(this,this.logger,this.storage),this.echoClient=new Mi(this.projectId||\"\",this.logger),this.linkModeSupportedApps=[],this.eventClient=new Bi(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){const t=new Te(e);await t.initialize();const i=await t.crypto.getClientId();return await t.storage.setItem(jt,i),t}get context(){return U(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return(e=this.logChunkController)==null?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(Fe,this.linkModeSupportedApps))}async initialize(){this.logger.trace(\"Initialized\");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(Fe)||[],this.initialized=!0,this.logger.info(\"Core Initialization Success\")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}getGlobalCore(e=\"\"){try{if(this.isGlobalCoreDisabled())return;const t=`_walletConnectCore_${e}`,i=`${t}_count`;return globalThis[i]=(globalThis[i]||0)+1,globalThis[i]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[i]} times.`),globalThis[t]}catch(t){console.warn(\"Failed to get global WalletConnect core\",t);return}}setGlobalCore(e){var t;try{if(this.isGlobalCoreDisabled())return;const i=`_walletConnectCore_${((t=e.opts)==null?void 0:t.customStoragePrefix)||\"\"}`;globalThis[i]=e}catch(i){console.warn(\"Failed to set global WalletConnect core\",i)}}isGlobalCoreDisabled(){try{return typeof process<\"u\"&&process.env.DISABLE_GLOBAL_CORE===\"true\"}catch{return!0}}}const Xo=Te;export{he as CORE_CONTEXT,Et as CORE_DEFAULT,ze as CORE_PROTOCOL,It as CORE_STORAGE_OPTIONS,B as CORE_STORAGE_PREFIX,Le as CORE_VERSION,ke as CRYPTO_CLIENT_SEED,Tt as CRYPTO_CONTEXT,Ct as CRYPTO_JWT_TTL,Xo as Core,vi as Crypto,Xt as ECHO_CONTEXT,Zt as ECHO_URL,ii as EVENTS_CLIENT_API_URL,ti as EVENTS_STORAGE_CLEANUP_INTERVAL,ei as EVENTS_STORAGE_CONTEXT,Qt as EVENTS_STORAGE_VERSION,sr as EVENT_CLIENT_AUTHENTICATE_ERRORS,ir as EVENT_CLIENT_AUTHENTICATE_TRACES,Qs as EVENT_CLIENT_CONTEXT,Y as EVENT_CLIENT_PAIRING_ERRORS,G as EVENT_CLIENT_PAIRING_TRACES,tr as EVENT_CLIENT_SESSION_ERRORS,er as EVENT_CLIENT_SESSION_TRACES,qt as EXPIRER_CONTEXT,Xs as EXPIRER_DEFAULT_TTL,M as EXPIRER_EVENTS,Gt as EXPIRER_STORAGE_VERSION,Mi as EchoClient,Bi as EventClient,ji as Expirer,Bt as HISTORY_CONTEXT,F as HISTORY_EVENTS,Vt as HISTORY_STORAGE_VERSION,ki as JsonRpcHistory,Pt as KEYCHAIN_CONTEXT,St as KEYCHAIN_STORAGE_VERSION,Di as KeyChain,Ot as MESSAGES_CONTEXT,Rt as MESSAGES_STORAGE_VERSION,le as MESSAGE_DIRECTION,_i as MessageTracker,Mt as PAIRING_CONTEXT,Js as PAIRING_DEFAULT_TTL,re as PAIRING_EVENTS,se as PAIRING_RPC_OPTS,Kt as PAIRING_STORAGE_VERSION,Ys as PENDING_SUB_RESOLUTION_TIMEOUT,At as PUBLISHER_CONTEXT,je as PUBLISHER_DEFAULT_TTL,Li as Pairing,$t as RELAYER_CONTEXT,Nt as RELAYER_DEFAULT_LOGGER,xt as RELAYER_DEFAULT_PROTOCOL,Ue as RELAYER_DEFAULT_RELAY_URL,C as RELAYER_EVENTS,L as RELAYER_PROVIDER_EVENTS,Lt as RELAYER_RECONNECT_TIMEOUT,_e as RELAYER_SDK_VERSION,Gs as RELAYER_STORAGE_OPTIONS,zt as RELAYER_SUBSCRIBER_SUFFIX,Ws as RELAYER_TRANSPORT_CUTOFF,Si as Relayer,kt as STORE_STORAGE_VERSION,Ut as SUBSCRIBER_CONTEXT,Hs as SUBSCRIBER_DEFAULT_TTL,$ as SUBSCRIBER_EVENTS,Ft as SUBSCRIBER_STORAGE_VERSION,zi as Store,Ti as Subscriber,Q as TRANSPORT_TYPES,Jt as TRUSTED_VERIFY_URLS,Wt as VERIFY_CONTEXT,ue as VERIFY_SERVER,Yt as VERIFY_SERVER_V3,Ui as Verify,jt as WALLETCONNECT_CLIENT_ID,Fe as WALLETCONNECT_LINK_MODE_APPS,Te as default};\n//# sourceMappingURL=index.es.js.map\n","import{RELAYER_EVENTS as Xe,TRANSPORT_TYPES as P,EXPIRER_EVENTS as Tt,PAIRING_EVENTS as Je,RELAYER_DEFAULT_PROTOCOL as qt,EVENT_CLIENT_SESSION_TRACES as k,EVENT_CLIENT_SESSION_ERRORS as H,EVENT_CLIENT_AUTHENTICATE_TRACES as z,EVENT_CLIENT_AUTHENTICATE_ERRORS as re,EVENT_CLIENT_PAIRING_ERRORS as Pt,EVENT_CLIENT_PAIRING_TRACES as Nt,VERIFY_SERVER as Ot,Store as B,Core as bt}from\"@walletconnect/core\";import{pino as At,getDefaultLoggerOptions as xt,generateChildLogger as Ct,getLoggerContext as Vt}from\"@walletconnect/logger\";import{IEngine as Dt,ISignClient as Lt}from\"@walletconnect/types\";import{THIRTY_DAYS as kt,SEVEN_DAYS as Be,FIVE_MINUTES as C,ONE_DAY as U,ONE_HOUR as We,ONE_SECOND as Ze,toMiliseconds as Oe}from\"@walletconnect/time\";import{getInternalError as y,BASE64URL as ne,BASE64 as de,hashMessage as W,parseExpirerTarget as Mt,isValidString as Y,isExpired as Z,isValidId as $t,mergeRequiredAndOptionalNamespaces as Kt,calcExpiry as V,engineEvent as R,createDelayedPromise as ee,getSdkError as O,getDeepLink as Ut,handleDeeplinkRedirect as Gt,isSessionCompatible as jt,hashKey as be,parseChainId as Ae,createEncodedRecap as Ft,getRecapFromResources as xe,mergeEncodedRecaps as Qt,TYPE_2 as Ht,getLinkModeURL as ue,validateSignedCacao as et,getNamespacedDidChainId as tt,getDidAddress as st,getMethodsFromRecap as it,getChainsFromRecap as rt,buildNamespacesFromAuth as nt,formatMessage as zt,MemoryStore as oe,isValidParams as M,isUndefined as X,isValidRelays as Yt,isValidObject as ot,isValidRequiredNamespaces as Xt,isValidNamespaces as Ce,isConformingNamespaces as at,isValidErrorReason as Jt,isValidRelay as Bt,isValidController as Wt,isValidNamespacesChainId as ct,isValidRequest as Zt,isValidNamespacesRequest as es,isValidRequestExpiry as ts,isValidResponse as ss,isValidEvent as is,isValidNamespacesEvent as rs,getSearchParamFromURL as lt,isTestRun as ns,isReactNative as os,isValidArray as as,extractSolanaTransactionId as cs,TYPE_1 as Ve,populateAppMetadata as ls}from\"@walletconnect/utils\";import ps,{EventEmitter as hs}from\"events\";import{isJsonRpcRequest as ds,isJsonRpcResponse as us,payloadId as G,getBigIntRpcId as ge,isJsonRpcResult as j,isJsonRpcError as F,formatJsonRpcRequest as ye,formatJsonRpcResult as gs,formatJsonRpcError as ys}from\"@walletconnect/jsonrpc-utils\";const De=\"wc\",Le=2,ke=\"client\",we=`${De}@${Le}:${ke}:`,me={name:ke,logger:\"error\",controller:!1,relayUrl:\"wss://relay.walletconnect.org\"},ws={session_proposal:\"session_proposal\",session_update:\"session_update\",session_extend:\"session_extend\",session_ping:\"session_ping\",session_delete:\"session_delete\",session_expire:\"session_expire\",session_request:\"session_request\",session_request_sent:\"session_request_sent\",session_event:\"session_event\",proposal_expire:\"proposal_expire\",session_authenticate:\"session_authenticate\",session_request_expire:\"session_request_expire\",session_connect:\"session_connect\"},ms={database:\":memory:\"},Me=\"WALLETCONNECT_DEEPLINK_CHOICE\",_s={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},Es=\"history\",fs=\"0.3\",pt=\"proposal\",Ss=kt,$e=\"Proposal expired\",ht=\"session\",J=Be,dt=\"engine\",N={wc_sessionPropose:{req:{ttl:C,prompt:!0,tag:1100},res:{ttl:C,prompt:!1,tag:1101},reject:{ttl:C,prompt:!1,tag:1120},autoReject:{ttl:C,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:C,prompt:!1,tag:1102},res:{ttl:C,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:U,prompt:!1,tag:1104},res:{ttl:U,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:U,prompt:!1,tag:1106},res:{ttl:U,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:C,prompt:!0,tag:1108},res:{ttl:C,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:C,prompt:!0,tag:1110},res:{ttl:C,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:U,prompt:!1,tag:1112},res:{ttl:U,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:U,prompt:!1,tag:1114},res:{ttl:U,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:We,prompt:!0,tag:1116},res:{ttl:We,prompt:!1,tag:1117},reject:{ttl:C,prompt:!1,tag:1118},autoReject:{ttl:C,prompt:!1,tag:1119}}},_e={min:C,max:Be},$={idle:\"IDLE\",active:\"ACTIVE\"},Ke={eth_sendTransaction:{key:\"\"},eth_sendRawTransaction:{key:\"\"},wallet_sendCalls:{key:\"\"},solana_signTransaction:{key:\"signature\"},solana_signAllTransactions:{key:\"transactions\"},solana_signAndSendTransaction:{key:\"signature\"}},ut=\"request\",gt=[\"wc_sessionPropose\",\"wc_sessionRequest\",\"wc_authRequest\",\"wc_sessionAuthenticate\"],yt=\"wc\",Rs=1.5,wt=\"auth\",mt=\"authKeys\",_t=\"pairingTopics\",Et=\"requests\",ae=`${yt}@${1.5}:${wt}:`,ce=`${ae}:PUB_KEY`;var vs=Object.defineProperty,Is=Object.defineProperties,Ts=Object.getOwnPropertyDescriptors,ft=Object.getOwnPropertySymbols,qs=Object.prototype.hasOwnProperty,Ps=Object.prototype.propertyIsEnumerable,Ue=(S,n,e)=>n in S?vs(S,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):S[n]=e,v=(S,n)=>{for(var e in n||(n={}))qs.call(n,e)&&Ue(S,e,n[e]);if(ft)for(var e of ft(n))Ps.call(n,e)&&Ue(S,e,n[e]);return S},b=(S,n)=>Is(S,Ts(n)),c=(S,n,e)=>Ue(S,typeof n!=\"symbol\"?n+\"\":n,e);class Ns extends Dt{constructor(n){super(n),c(this,\"name\",dt),c(this,\"events\",new ps),c(this,\"initialized\",!1),c(this,\"requestQueue\",{state:$.idle,queue:[]}),c(this,\"sessionRequestQueue\",{state:$.idle,queue:[]}),c(this,\"requestQueueDelay\",Ze),c(this,\"expectedPairingMethodMap\",new Map),c(this,\"recentlyDeletedMap\",new Map),c(this,\"recentlyDeletedLimit\",200),c(this,\"relayMessageCache\",[]),c(this,\"pendingSessions\",new Map),c(this,\"init\",async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(N)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},Oe(this.requestQueueDelay)))}),c(this,\"connect\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const t=b(v({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t),t.optionalNamespaces=Kt(t.requiredNamespaces,t.optionalNamespaces),t.requiredNamespaces={};const{pairingTopic:s,requiredNamespaces:i,optionalNamespaces:r,sessionProperties:o,scopedProperties:a,relays:l}=t;let p=s,h,u=!1;try{if(p){const T=this.client.core.pairing.pairings.get(p);this.client.logger.warn(\"connect() with existing pairing topic is deprecated and will be removed in the next major release.\"),u=T.active}}catch(T){throw this.client.logger.error(`connect() -> pairing.get(${p}) failed`),T}if(!p||!u){const{topic:T,uri:K}=await this.client.core.pairing.create();p=T,h=K}if(!p){const{message:T}=y(\"NO_MATCHING_KEY\",`connect() pairing topic: ${p}`);throw new Error(T)}const d=await this.client.core.crypto.generateKeyPair(),w=N.wc_sessionPropose.req.ttl||C,m=V(w),f=b(v(v({requiredNamespaces:i,optionalNamespaces:r,relays:l??[{protocol:qt}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:m,pairingTopic:p},o&&{sessionProperties:o}),a&&{scopedProperties:a}),{id:G()}),_=R(\"session_connect\",f.id),{reject:g,resolve:A,done:D}=ee(w,$e),I=({id:T})=>{T===f.id&&(this.client.events.off(\"proposal_expire\",I),this.pendingSessions.delete(f.id),this.events.emit(_,{error:{message:$e,code:0}}))};return this.client.events.on(\"proposal_expire\",I),this.events.once(_,({error:T,session:K})=>{this.client.events.off(\"proposal_expire\",I),T?g(T):K&&A(K)}),await this.sendRequest({topic:p,method:\"wc_sessionPropose\",params:f,throwOnFailedPublish:!0,clientRpcId:f.id}),await this.setProposal(f.id,f),{uri:h,approval:D}}),c(this,\"pair\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(t){throw this.client.logger.error(\"pair() failed\"),t}}),c(this,\"approve\",async e=>{var t,s,i;const r=this.client.core.eventClient.createEvent({properties:{topic:(t=e?.id)==null?void 0:t.toString(),trace:[k.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(q){throw r.setError(H.no_internet_connection),q}try{await this.isValidProposalId(e?.id)}catch(q){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),r.setError(H.proposal_not_found),q}try{await this.isValidApprove(e)}catch(q){throw this.client.logger.error(\"approve() -> isValidApprove() failed\"),r.setError(H.session_approve_namespace_validation_failure),q}const{id:o,relayProtocol:a,namespaces:l,sessionProperties:p,scopedProperties:h,sessionConfig:u}=e,d=this.client.proposal.get(o);this.client.core.eventClient.deleteEvent({eventId:r.eventId});const{pairingTopic:w,proposer:m,requiredNamespaces:f,optionalNamespaces:_}=d;let g=(s=this.client.core.eventClient)==null?void 0:s.getEvent({topic:w});g||(g=(i=this.client.core.eventClient)==null?void 0:i.createEvent({type:k.session_approve_started,properties:{topic:w,trace:[k.session_approve_started,k.session_namespaces_validation_success]}}));const A=await this.client.core.crypto.generateKeyPair(),D=m.publicKey,I=await this.client.core.crypto.generateSharedKey(A,D),T=v(v(v({relay:{protocol:a??\"irn\"},namespaces:l,controller:{publicKey:A,metadata:this.client.metadata},expiry:V(J)},p&&{sessionProperties:p}),h&&{scopedProperties:h}),u&&{sessionConfig:u}),K=P.relay;g.addTrace(k.subscribing_session_topic);try{await this.client.core.relayer.subscribe(I,{transportType:K})}catch(q){throw g.setError(H.subscribe_session_topic_failure),q}g.addTrace(k.subscribe_session_topic_success);const fe=b(v({},T),{topic:I,requiredNamespaces:f,optionalNamespaces:_,pairingTopic:w,acknowledged:!1,self:T.controller,peer:{publicKey:m.publicKey,metadata:m.metadata},controller:A,transportType:P.relay});await this.client.session.set(I,fe),g.addTrace(k.store_session);try{g.addTrace(k.publishing_session_settle),await this.sendRequest({topic:I,method:\"wc_sessionSettle\",params:T,throwOnFailedPublish:!0}).catch(q=>{throw g?.setError(H.session_settle_publish_failure),q}),g.addTrace(k.session_settle_publish_success),g.addTrace(k.publishing_session_approve),await this.sendResult({id:o,topic:w,result:{relay:{protocol:a??\"irn\"},responderPublicKey:A},throwOnFailedPublish:!0}).catch(q=>{throw g?.setError(H.session_approve_publish_failure),q}),g.addTrace(k.session_approve_publish_success)}catch(q){throw this.client.logger.error(q),this.client.session.delete(I,O(\"USER_DISCONNECTED\")),await this.client.core.relayer.unsubscribe(I),q}return this.client.core.eventClient.deleteEvent({eventId:g.eventId}),await this.client.core.pairing.updateMetadata({topic:w,metadata:m.metadata}),await this.client.proposal.delete(o,O(\"USER_DISCONNECTED\")),await this.client.core.pairing.activate({topic:w}),await this.setExpiry(I,V(J)),{topic:I,acknowledged:()=>Promise.resolve(this.client.session.get(I))}}),c(this,\"reject\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(r){throw this.client.logger.error(\"reject() -> isValidReject() failed\"),r}const{id:t,reason:s}=e;let i;try{i=this.client.proposal.get(t).pairingTopic}catch(r){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),r}i&&(await this.sendError({id:t,topic:i,error:s,rpcOpts:N.wc_sessionPropose.reject}),await this.client.proposal.delete(t,O(\"USER_DISCONNECTED\")))}),c(this,\"update\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(h){throw this.client.logger.error(\"update() -> isValidUpdate() failed\"),h}const{topic:t,namespaces:s}=e,{done:i,resolve:r,reject:o}=ee(),a=G(),l=ge().toString(),p=this.client.session.get(t).namespaces;return this.events.once(R(\"session_update\",a),({error:h})=>{h?o(h):r()}),await this.client.session.update(t,{namespaces:s}),await this.sendRequest({topic:t,method:\"wc_sessionUpdate\",params:{namespaces:s},throwOnFailedPublish:!0,clientRpcId:a,relayRpcId:l}).catch(h=>{this.client.logger.error(h),this.client.session.update(t,{namespaces:p}),o(h)}),{acknowledged:i}}),c(this,\"extend\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(a){throw this.client.logger.error(\"extend() -> isValidExtend() failed\"),a}const{topic:t}=e,s=G(),{done:i,resolve:r,reject:o}=ee();return this.events.once(R(\"session_extend\",s),({error:a})=>{a?o(a):r()}),await this.setExpiry(t,V(J)),this.sendRequest({topic:t,method:\"wc_sessionExtend\",params:{},clientRpcId:s,throwOnFailedPublish:!0}).catch(a=>{o(a)}),{acknowledged:i}}),c(this,\"request\",async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(_){throw this.client.logger.error(\"request() -> isValidRequest() failed\"),_}const{chainId:t,request:s,topic:i,expiry:r=N.wc_sessionRequest.req.ttl}=e,o=this.client.session.get(i);o?.transportType===P.relay&&await this.confirmOnlineStateOrThrow();const a=G(),l=ge().toString(),{done:p,resolve:h,reject:u}=ee(r,\"Request expired. Please try again.\");this.events.once(R(\"session_request\",a),({error:_,result:g})=>{_?u(_):h(g)});const d=\"wc_sessionRequest\",w=this.getAppLinkIfEnabled(o.peer.metadata,o.transportType);if(w)return await this.sendRequest({clientRpcId:a,relayRpcId:l,topic:i,method:d,params:{request:b(v({},s),{expiryTimestamp:V(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0,appLink:w}).catch(_=>u(_)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),await p();const m={request:b(v({},s),{expiryTimestamp:V(r)}),chainId:t},f=this.shouldSetTVF(d,m);return await Promise.all([new Promise(async _=>{await this.sendRequest(v({clientRpcId:a,relayRpcId:l,topic:i,method:d,params:m,expiry:r,throwOnFailedPublish:!0},f&&{tvf:this.getTVFParams(a,m)})).catch(g=>u(g)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),_()}),new Promise(async _=>{var g;if(!((g=o.sessionConfig)!=null&&g.disableDeepLink)){const A=await Ut(this.client.core.storage,Me);await Gt({id:a,topic:i,wcDeepLink:A})}_()}),p()]).then(_=>_[2])}),c(this,\"respond\",async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:s}=e,{id:i}=s,r=this.client.session.get(t);r.transportType===P.relay&&await this.confirmOnlineStateOrThrow();const o=this.getAppLinkIfEnabled(r.peer.metadata,r.transportType);j(s)?await this.sendResult({id:i,topic:t,result:s.result,throwOnFailedPublish:!0,appLink:o}):F(s)&&await this.sendError({id:i,topic:t,error:s.error,appLink:o}),this.cleanupAfterResponse(e)}),c(this,\"ping\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(s){throw this.client.logger.error(\"ping() -> isValidPing() failed\"),s}const{topic:t}=e;if(this.client.session.keys.includes(t)){const s=G(),i=ge().toString(),{done:r,resolve:o,reject:a}=ee();this.events.once(R(\"session_ping\",s),({error:l})=>{l?a(l):o()}),await Promise.all([this.sendRequest({topic:t,method:\"wc_sessionPing\",params:{},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:i}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&(this.client.logger.warn(\"ping() on pairing topic is deprecated and will be removed in the next major release.\"),await this.client.core.pairing.ping({topic:t}))}),c(this,\"emit\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);const{topic:t,event:s,chainId:i}=e,r=ge().toString(),o=G();await this.sendRequest({topic:t,method:\"wc_sessionEvent\",params:{event:s,chainId:i},throwOnFailedPublish:!0,relayRpcId:r,clientRpcId:o})}),c(this,\"disconnect\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);const{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:\"wc_sessionDelete\",params:O(\"USER_DISCONNECTED\"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{const{message:s}=y(\"MISMATCHED_TOPIC\",`Session or pairing topic not found: ${t}`);throw new Error(s)}}),c(this,\"find\",e=>(this.isInitialized(),this.client.session.getAll().filter(t=>jt(t,e)))),c(this,\"getPendingSessionRequests\",()=>this.client.pendingRequest.getAll()),c(this,\"authenticate\",async(e,t)=>{var s;this.isInitialized(),this.isValidAuthenticate(e);const i=t&&this.client.core.linkModeSupportedApps.includes(t)&&((s=this.client.metadata.redirect)==null?void 0:s.linkMode),r=i?P.link_mode:P.relay;r===P.relay&&await this.confirmOnlineStateOrThrow();const{chains:o,statement:a=\"\",uri:l,domain:p,nonce:h,type:u,exp:d,nbf:w,methods:m=[],expiry:f}=e,_=[...e.resources||[]],{topic:g,uri:A}=await this.client.core.pairing.create({methods:[\"wc_sessionAuthenticate\"],transportType:r});this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:g,uri:A}});const D=await this.client.core.crypto.generateKeyPair(),I=be(D);if(await Promise.all([this.client.auth.authKeys.set(ce,{responseTopic:I,publicKey:D}),this.client.auth.pairingTopics.set(I,{topic:I,pairingTopic:g})]),await this.client.core.relayer.subscribe(I,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${g}`),m.length>0){const{namespace:x}=Ae(o[0]);let L=Ft(x,\"request\",m);xe(_)&&(L=Qt(L,_.pop())),_.push(L)}const T=f&&f>N.wc_sessionAuthenticate.req.ttl?f:N.wc_sessionAuthenticate.req.ttl,K={authPayload:{type:u??\"caip122\",chains:o,statement:a,aud:l,domain:p,version:\"1\",nonce:h,iat:new Date().toISOString(),exp:d,nbf:w,resources:_},requester:{publicKey:D,metadata:this.client.metadata},expiryTimestamp:V(T)},fe={eip155:{chains:o,methods:[...new Set([\"personal_sign\",...m])],events:[\"chainChanged\",\"accountsChanged\"]}},q={requiredNamespaces:{},optionalNamespaces:fe,relays:[{protocol:\"irn\"}],pairingTopic:g,proposer:{publicKey:D,metadata:this.client.metadata},expiryTimestamp:V(N.wc_sessionPropose.req.ttl),id:G()},{done:Rt,resolve:je,reject:Se}=ee(T,\"Request expired\"),te=G(),le=R(\"session_connect\",q.id),Re=R(\"session_request\",te),pe=async({error:x,session:L})=>{this.events.off(Re,ve),x?Se(x):L&&je({session:L})},ve=async x=>{var L,Fe,Qe;if(await this.deletePendingAuthRequest(te,{message:\"fulfilled\",code:0}),x.error){const ie=O(\"WC_METHOD_UNSUPPORTED\",\"wc_sessionAuthenticate\");return x.error.code===ie.code?void 0:(this.events.off(le,pe),Se(x.error.message))}await this.deleteProposal(q.id),this.events.off(le,pe);const{cacaos:He,responder:Q}=x.result,Te=[],ze=[];for(const ie of He){await et({cacao:ie,projectId:this.client.core.projectId})||(this.client.logger.error(ie,\"Signature verification failed\"),Se(O(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\")));const{p:qe}=ie,Pe=xe(qe.resources),Ye=[tt(qe.iss)],vt=st(qe.iss);if(Pe){const Ne=it(Pe),It=rt(Pe);Te.push(...Ne),Ye.push(...It)}for(const Ne of Ye)ze.push(`${Ne}:${vt}`)}const se=await this.client.core.crypto.generateSharedKey(D,Q.publicKey);let he;Te.length>0&&(he={topic:se,acknowledged:!0,self:{publicKey:D,metadata:this.client.metadata},peer:Q,controller:Q.publicKey,expiry:V(J),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:g,namespaces:nt([...new Set(Te)],[...new Set(ze)]),transportType:r},await this.client.core.relayer.subscribe(se,{transportType:r}),await this.client.session.set(se,he),g&&await this.client.core.pairing.updateMetadata({topic:g,metadata:Q.metadata}),he=this.client.session.get(se)),(L=this.client.metadata.redirect)!=null&&L.linkMode&&(Fe=Q.metadata.redirect)!=null&&Fe.linkMode&&(Qe=Q.metadata.redirect)!=null&&Qe.universal&&t&&(this.client.core.addLinkModeSupportedApp(Q.metadata.redirect.universal),this.client.session.update(se,{transportType:P.link_mode})),je({auths:He,session:he})};this.events.once(le,pe),this.events.once(Re,ve);let Ie;try{if(i){const x=ye(\"wc_sessionAuthenticate\",K,te);this.client.core.history.set(g,x);const L=await this.client.core.crypto.encode(\"\",x,{type:Ht,encoding:ne});Ie=ue(t,g,L)}else await Promise.all([this.sendRequest({topic:g,method:\"wc_sessionAuthenticate\",params:K,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:te}),this.sendRequest({topic:g,method:\"wc_sessionPropose\",params:q,expiry:N.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:q.id})])}catch(x){throw this.events.off(le,pe),this.events.off(Re,ve),x}return await this.setProposal(q.id,q),await this.setAuthRequest(te,{request:b(v({},K),{verifyContext:{}}),pairingTopic:g,transportType:r}),{uri:Ie??A,response:Rt}}),c(this,\"approveSessionAuthenticate\",async e=>{const{id:t,auths:s}=e,i=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[z.authenticated_session_approve_started]}});try{this.isInitialized()}catch(f){throw i.setError(re.no_internet_connection),f}const r=this.getPendingAuthRequest(t);if(!r)throw i.setError(re.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${t}`);const o=r.transportType||P.relay;o===P.relay&&await this.confirmOnlineStateOrThrow();const a=r.requester.publicKey,l=await this.client.core.crypto.generateKeyPair(),p=be(a),h={type:Ve,receiverPublicKey:a,senderPublicKey:l},u=[],d=[];for(const f of s){if(!await et({cacao:f,projectId:this.client.core.projectId})){i.setError(re.invalid_cacao);const I=O(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\");throw await this.sendError({id:t,topic:p,error:I,encodeOpts:h}),new Error(I.message)}i.addTrace(z.cacaos_verified);const{p:_}=f,g=xe(_.resources),A=[tt(_.iss)],D=st(_.iss);if(g){const I=it(g),T=rt(g);u.push(...I),A.push(...T)}for(const I of A)d.push(`${I}:${D}`)}const w=await this.client.core.crypto.generateSharedKey(l,a);i.addTrace(z.create_authenticated_session_topic);let m;if(u?.length>0){m={topic:w,acknowledged:!0,self:{publicKey:l,metadata:this.client.metadata},peer:{publicKey:a,metadata:r.requester.metadata},controller:a,expiry:V(J),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:r.pairingTopic,namespaces:nt([...new Set(u)],[...new Set(d)]),transportType:o},i.addTrace(z.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(w,{transportType:o})}catch(f){throw i.setError(re.subscribe_authenticated_session_topic_failure),f}i.addTrace(z.subscribe_authenticated_session_topic_success),await this.client.session.set(w,m),i.addTrace(z.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:r.pairingTopic,metadata:r.requester.metadata})}i.addTrace(z.publishing_authenticated_session_approve);try{await this.sendResult({topic:p,id:t,result:{cacaos:s,responder:{publicKey:l,metadata:this.client.metadata}},encodeOpts:h,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(r.requester.metadata,o)})}catch(f){throw i.setError(re.authenticated_session_approve_publish_failure),f}return await this.client.auth.requests.delete(t,{message:\"fulfilled\",code:0}),await this.client.core.pairing.activate({topic:r.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:i.eventId}),{session:m}}),c(this,\"rejectSessionAuthenticate\",async e=>{this.isInitialized();const{id:t,reason:s}=e,i=this.getPendingAuthRequest(t);if(!i)throw new Error(`Could not find pending auth request with id ${t}`);i.transportType===P.relay&&await this.confirmOnlineStateOrThrow();const r=i.requester.publicKey,o=await this.client.core.crypto.generateKeyPair(),a=be(r),l={type:Ve,receiverPublicKey:r,senderPublicKey:o};await this.sendError({id:t,topic:a,error:s,encodeOpts:l,rpcOpts:N.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(i.requester.metadata,i.transportType)}),await this.client.auth.requests.delete(t,{message:\"rejected\",code:0}),await this.client.proposal.delete(t,O(\"USER_DISCONNECTED\"))}),c(this,\"formatAuthMessage\",e=>{this.isInitialized();const{request:t,iss:s}=e;return zt(t,s)}),c(this,\"processRelayMessageCache\",()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)}),c(this,\"cleanupDuplicatePairings\",async e=>{if(e.pairingTopic)try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),s=this.client.core.pairing.pairings.getAll().filter(i=>{var r,o;return((r=i.peerMetadata)==null?void 0:r.url)&&((o=i.peerMetadata)==null?void 0:o.url)===e.peer.metadata.url&&i.topic&&i.topic!==t.topic});if(s.length===0)return;this.client.logger.info(`Cleaning up ${s.length} duplicate pairing(s)`),await Promise.all(s.map(i=>this.client.core.pairing.disconnect({topic:i.topic}))),this.client.logger.info(\"Duplicate pairings clean up finished\")}catch(t){this.client.logger.error(t)}}),c(this,\"deleteSession\",async e=>{var t;const{topic:s,expirerHasDeleted:i=!1,emitEvent:r=!0,id:o=0}=e,{self:a}=this.client.session.get(s);await this.client.core.relayer.unsubscribe(s),await this.client.session.delete(s,O(\"USER_DISCONNECTED\")),this.addToRecentlyDeleted(s,\"session\"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(s)&&await this.client.core.crypto.deleteSymKey(s),i||this.client.core.expirer.del(s),this.client.core.storage.removeItem(Me).catch(l=>this.client.logger.warn(l)),this.getPendingSessionRequests().forEach(l=>{l.topic===s&&this.deletePendingSessionRequest(l.id,O(\"USER_DISCONNECTED\"))}),s===((t=this.sessionRequestQueue.queue[0])==null?void 0:t.topic)&&(this.sessionRequestQueue.state=$.idle),r&&this.client.events.emit(\"session_delete\",{id:o,topic:s})}),c(this,\"deleteProposal\",async(e,t)=>{if(t)try{const s=this.client.proposal.get(e),i=this.client.core.eventClient.getEvent({topic:s.pairingTopic});i?.setError(H.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,O(\"USER_DISCONNECTED\")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"proposal\")}),c(this,\"deletePendingSessionRequest\",async(e,t,s=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"request\"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(i=>i.id!==e),s&&(this.sessionRequestQueue.state=$.idle,this.client.events.emit(\"session_request_expire\",{id:e}))}),c(this,\"deletePendingAuthRequest\",async(e,t,s=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)])}),c(this,\"setExpiry\",async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))}),c(this,\"setProposal\",async(e,t)=>{this.client.core.expirer.set(e,V(N.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),c(this,\"setAuthRequest\",async(e,t)=>{const{request:s,pairingTopic:i,transportType:r=P.relay}=t;this.client.core.expirer.set(e,s.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:s.authPayload,requester:s.requester,expiryTimestamp:s.expiryTimestamp,id:e,pairingTopic:i,verifyContext:s.verifyContext,transportType:r})}),c(this,\"setPendingSessionRequest\",async e=>{const{id:t,topic:s,params:i,verifyContext:r}=e,o=i.request.expiryTimestamp||V(N.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,o),await this.client.pendingRequest.set(t,{id:t,topic:s,params:i,verifyContext:r})}),c(this,\"sendRequest\",async e=>{const{topic:t,method:s,params:i,expiry:r,relayRpcId:o,clientRpcId:a,throwOnFailedPublish:l,appLink:p,tvf:h}=e,u=ye(s,i,a);let d;const w=!!p;try{const _=w?ne:de;d=await this.client.core.crypto.encode(t,u,{encoding:_})}catch(_){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),_}let m;if(gt.includes(s)){const _=W(JSON.stringify(u)),g=W(d);m=await this.client.core.verify.register({id:g,decryptedId:_})}const f=N[s].req;if(f.attestation=m,r&&(f.ttl=r),o&&(f.id=o),this.client.core.history.set(t,u),w){const _=ue(p,t,d);await global.Linking.openURL(_,this.client.name)}else{const _=N[s].req;r&&(_.ttl=r),o&&(_.id=o),_.tvf=b(v({},h),{correlationId:u.id}),l?(_.internal=b(v({},_.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,d,_)):this.client.core.relayer.publish(t,d,_).catch(g=>this.client.logger.error(g))}return u.id}),c(this,\"sendResult\",async e=>{const{id:t,topic:s,result:i,throwOnFailedPublish:r,encodeOpts:o,appLink:a}=e,l=gs(t,i);let p;const h=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const w=h?ne:de;p=await this.client.core.crypto.encode(s,l,b(v({},o||{}),{encoding:w}))}catch(w){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${s} failed`),w}let u,d;try{u=await this.client.core.history.get(s,t);const w=u.request;try{this.shouldSetTVF(w.method,w.params)&&(d=this.getTVFParams(t,w.params,i))}catch(m){this.client.logger.warn(\"sendResult() -> getTVFParams() failed\",m)}}catch(w){throw this.client.logger.error(`sendResult() -> history.get(${s}, ${t}) failed`),w}if(h){const w=ue(a,s,p);await global.Linking.openURL(w,this.client.name)}else{const w=u.request.method,m=N[w].res;m.tvf=b(v({},d),{correlationId:t}),r?(m.internal=b(v({},m.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,p,m)):this.client.core.relayer.publish(s,p,m).catch(f=>this.client.logger.error(f))}await this.client.core.history.resolve(l)}),c(this,\"sendError\",async e=>{const{id:t,topic:s,error:i,encodeOpts:r,rpcOpts:o,appLink:a}=e,l=ys(t,i);let p;const h=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const d=h?ne:de;p=await this.client.core.crypto.encode(s,l,b(v({},r||{}),{encoding:d}))}catch(d){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${s} failed`),d}let u;try{u=await this.client.core.history.get(s,t)}catch(d){throw this.client.logger.error(`sendError() -> history.get(${s}, ${t}) failed`),d}if(h){const d=ue(a,s,p);await global.Linking.openURL(d,this.client.name)}else{const d=u.request.method,w=o||N[d].res;this.client.core.relayer.publish(s,p,w)}await this.client.core.history.resolve(l)}),c(this,\"cleanup\",async()=>{const e=[],t=[];this.client.session.getAll().forEach(s=>{let i=!1;Z(s.expiry)&&(i=!0),this.client.core.crypto.keychain.has(s.topic)||(i=!0),i&&e.push(s.topic)}),this.client.proposal.getAll().forEach(s=>{Z(s.expiryTimestamp)&&t.push(s.id)}),await Promise.all([...e.map(s=>this.deleteSession({topic:s})),...t.map(s=>this.deleteProposal(s))])}),c(this,\"onProviderMessageEvent\",async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),c(this,\"onRelayEventRequest\",async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),c(this,\"processRequestsQueue\",async()=>{if(this.requestQueue.state===$.active){this.client.logger.info(\"Request queue already active, skipping...\");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=$.active;const e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(t){this.client.logger.warn(t)}}this.requestQueue.state=$.idle}),c(this,\"processRequest\",async e=>{const{topic:t,payload:s,attestation:i,transportType:r,encryptedId:o}=e,a=s.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:a}))switch(a){case\"wc_sessionPropose\":return await this.onSessionProposeRequest({topic:t,payload:s,attestation:i,encryptedId:o});case\"wc_sessionSettle\":return await this.onSessionSettleRequest(t,s);case\"wc_sessionUpdate\":return await this.onSessionUpdateRequest(t,s);case\"wc_sessionExtend\":return await this.onSessionExtendRequest(t,s);case\"wc_sessionPing\":return await this.onSessionPingRequest(t,s);case\"wc_sessionDelete\":return await this.onSessionDeleteRequest(t,s);case\"wc_sessionRequest\":return await this.onSessionRequest({topic:t,payload:s,attestation:i,encryptedId:o,transportType:r});case\"wc_sessionEvent\":return await this.onSessionEventRequest(t,s);case\"wc_sessionAuthenticate\":return await this.onSessionAuthenticateRequest({topic:t,payload:s,attestation:i,encryptedId:o,transportType:r});default:return this.client.logger.info(`Unsupported request method ${a}`)}}),c(this,\"onRelayEventResponse\",async e=>{const{topic:t,payload:s,transportType:i}=e,r=(await this.client.core.history.get(t,s.id)).request.method;switch(r){case\"wc_sessionPropose\":return this.onSessionProposeResponse(t,s,i);case\"wc_sessionSettle\":return this.onSessionSettleResponse(t,s);case\"wc_sessionUpdate\":return this.onSessionUpdateResponse(t,s);case\"wc_sessionExtend\":return this.onSessionExtendResponse(t,s);case\"wc_sessionPing\":return this.onSessionPingResponse(t,s);case\"wc_sessionRequest\":return this.onSessionRequestResponse(t,s);case\"wc_sessionAuthenticate\":return this.onSessionAuthenticateResponse(t,s);default:return this.client.logger.info(`Unsupported response method ${r}`)}}),c(this,\"onRelayEventUnknownPayload\",e=>{const{topic:t}=e,{message:s}=y(\"MISSING_OR_INVALID\",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw new Error(s)}),c(this,\"shouldIgnorePairingRequest\",e=>{const{topic:t,requestMethod:s}=e,i=this.expectedPairingMethodMap.get(t);return!i||i.includes(s)?!1:!!(i.includes(\"wc_sessionAuthenticate\")&&this.client.events.listenerCount(\"session_authenticate\")>0)}),c(this,\"onSessionProposeRequest\",async e=>{const{topic:t,payload:s,attestation:i,encryptedId:r}=e,{params:o,id:a}=s;try{const l=this.client.core.eventClient.getEvent({topic:t});this.client.events.listenerCount(\"session_proposal\")===0&&(console.warn(\"No listener for session_proposal event\"),l?.setError(Pt.proposal_listener_not_found)),this.isValidConnect(v({},s.params));const p=o.expiryTimestamp||V(N.wc_sessionPropose.req.ttl),h=v({id:a,pairingTopic:t,expiryTimestamp:p},o);await this.setProposal(a,h);const u=await this.getVerifyContext({attestationId:i,hash:W(JSON.stringify(s)),encryptedId:r,metadata:h.proposer.metadata});l?.addTrace(Nt.emit_session_proposal),this.client.events.emit(\"session_proposal\",{id:a,params:h,verifyContext:u})}catch(l){await this.sendError({id:a,topic:t,error:l,rpcOpts:N.wc_sessionPropose.autoReject}),this.client.logger.error(l)}}),c(this,\"onSessionProposeResponse\",async(e,t,s)=>{const{id:i}=t;if(j(t)){const{result:r}=t;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",result:r});const o=this.client.proposal.get(i);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",proposal:o});const a=o.proposer.publicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",selfPublicKey:a});const l=r.responderPublicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",peerPublicKey:l});const p=await this.client.core.crypto.generateSharedKey(a,l);this.pendingSessions.set(i,{sessionTopic:p,pairingTopic:e,proposalId:i,publicKey:a});const h=await this.client.core.relayer.subscribe(p,{transportType:s});this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",subscriptionId:h}),await this.client.core.pairing.activate({topic:e})}else if(F(t)){await this.client.proposal.delete(i,O(\"USER_DISCONNECTED\"));const r=R(\"session_connect\",i);if(this.events.listenerCount(r)===0)throw new Error(`emitting ${r} without any listeners, 954`);this.events.emit(r,{error:t.error})}}),c(this,\"onSessionSettleRequest\",async(e,t)=>{const{id:s,params:i}=t;try{this.isValidSessionSettleRequest(i);const{relay:r,controller:o,expiry:a,namespaces:l,sessionProperties:p,scopedProperties:h,sessionConfig:u}=t.params,d=[...this.pendingSessions.values()].find(f=>f.sessionTopic===e);if(!d)return this.client.logger.error(`Pending session not found for topic ${e}`);const w=this.client.proposal.get(d.proposalId),m=b(v(v(v({topic:e,relay:r,expiry:a,namespaces:l,acknowledged:!0,pairingTopic:d.pairingTopic,requiredNamespaces:w.requiredNamespaces,optionalNamespaces:w.optionalNamespaces,controller:o.publicKey,self:{publicKey:d.publicKey,metadata:this.client.metadata},peer:{publicKey:o.publicKey,metadata:o.metadata}},p&&{sessionProperties:p}),h&&{scopedProperties:h}),u&&{sessionConfig:u}),{transportType:P.relay});await this.client.session.set(m.topic,m),await this.setExpiry(m.topic,m.expiry),await this.client.core.pairing.updateMetadata({topic:d.pairingTopic,metadata:m.peer.metadata}),this.client.events.emit(\"session_connect\",{session:m}),this.events.emit(R(\"session_connect\",d.proposalId),{session:m}),this.pendingSessions.delete(d.proposalId),this.deleteProposal(d.proposalId,!1),this.cleanupDuplicatePairings(m),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}}),c(this,\"onSessionSettleResponse\",async(e,t)=>{const{id:s}=t;j(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(R(\"session_approve\",s),{})):F(t)&&(await this.client.session.delete(e,O(\"USER_DISCONNECTED\")),this.events.emit(R(\"session_approve\",s),{error:t.error}))}),c(this,\"onSessionUpdateRequest\",async(e,t)=>{const{params:s,id:i}=t;try{const r=`${e}_session_update`,o=oe.get(r);if(o&&this.isRequestOutOfSync(o,i)){this.client.logger.warn(`Discarding out of sync request - ${i}`),this.sendError({id:i,topic:e,error:O(\"INVALID_UPDATE_REQUEST\")});return}this.isValidUpdate(v({topic:e},s));try{oe.set(r,i),await this.client.session.update(e,{namespaces:s.namespaces}),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0})}catch(a){throw oe.delete(r),a}this.client.events.emit(\"session_update\",{id:i,topic:e,params:s})}catch(r){await this.sendError({id:i,topic:e,error:r}),this.client.logger.error(r)}}),c(this,\"isRequestOutOfSync\",(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),c(this,\"onSessionUpdateResponse\",(e,t)=>{const{id:s}=t,i=R(\"session_update\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);j(t)?this.events.emit(R(\"session_update\",s),{}):F(t)&&this.events.emit(R(\"session_update\",s),{error:t.error})}),c(this,\"onSessionExtendRequest\",async(e,t)=>{const{id:s}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,V(J)),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_extend\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}}),c(this,\"onSessionExtendResponse\",(e,t)=>{const{id:s}=t,i=R(\"session_extend\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);j(t)?this.events.emit(R(\"session_extend\",s),{}):F(t)&&this.events.emit(R(\"session_extend\",s),{error:t.error})}),c(this,\"onSessionPingRequest\",async(e,t)=>{const{id:s}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_ping\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}}),c(this,\"onSessionPingResponse\",(e,t)=>{const{id:s}=t,i=R(\"session_ping\",s);setTimeout(()=>{if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners 2176`);j(t)?this.events.emit(R(\"session_ping\",s),{}):F(t)&&this.events.emit(R(\"session_ping\",s),{error:t.error})},500)}),c(this,\"onSessionDeleteRequest\",async(e,t)=>{const{id:s}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(i=>{this.client.core.relayer.once(Xe.publish,async()=>{i(await this.deleteSession({topic:e,id:s}))})}),this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:O(\"USER_DISCONNECTED\")})]).catch(i=>this.client.logger.error(i))}catch(i){this.client.logger.error(i)}}),c(this,\"onSessionRequest\",async e=>{var t,s,i;const{topic:r,payload:o,attestation:a,encryptedId:l,transportType:p}=e,{id:h,params:u}=o;try{await this.isValidRequest(v({topic:r},u));const d=this.client.session.get(r),w=await this.getVerifyContext({attestationId:a,hash:W(JSON.stringify(ye(\"wc_sessionRequest\",u,h))),encryptedId:l,metadata:d.peer.metadata,transportType:p}),m={id:h,topic:r,params:u,verifyContext:w};await this.setPendingSessionRequest(m),p===P.link_mode&&(t=d.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp((s=d.peer.metadata.redirect)==null?void 0:s.universal),(i=this.client.signConfig)!=null&&i.disableRequestQueue?this.emitSessionRequest(m):(this.addSessionRequestToSessionRequestQueue(m),this.processSessionRequestQueue())}catch(d){await this.sendError({id:h,topic:r,error:d}),this.client.logger.error(d)}}),c(this,\"onSessionRequestResponse\",(e,t)=>{const{id:s}=t,i=R(\"session_request\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);j(t)?this.events.emit(R(\"session_request\",s),{result:t.result}):F(t)&&this.events.emit(R(\"session_request\",s),{error:t.error})}),c(this,\"onSessionEventRequest\",async(e,t)=>{const{id:s,params:i}=t;try{const r=`${e}_session_event_${i.event.name}`,o=oe.get(r);if(o&&this.isRequestOutOfSync(o,s)){this.client.logger.info(`Discarding out of sync request - ${s}`);return}this.isValidEmit(v({topic:e},i)),this.client.events.emit(\"session_event\",{id:s,topic:e,params:i}),oe.set(r,s)}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}}),c(this,\"onSessionAuthenticateResponse\",(e,t)=>{const{id:s}=t;this.client.logger.trace({type:\"method\",method:\"onSessionAuthenticateResponse\",topic:e,payload:t}),j(t)?this.events.emit(R(\"session_request\",s),{result:t.result}):F(t)&&this.events.emit(R(\"session_request\",s),{error:t.error})}),c(this,\"onSessionAuthenticateRequest\",async e=>{var t;const{topic:s,payload:i,attestation:r,encryptedId:o,transportType:a}=e;try{const{requester:l,authPayload:p,expiryTimestamp:h}=i.params,u=await this.getVerifyContext({attestationId:r,hash:W(JSON.stringify(i)),encryptedId:o,metadata:l.metadata,transportType:a}),d={requester:l,pairingTopic:s,id:i.id,authPayload:p,verifyContext:u,expiryTimestamp:h};await this.setAuthRequest(i.id,{request:d,pairingTopic:s,transportType:a}),a===P.link_mode&&(t=l.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(l.metadata.redirect.universal),this.client.events.emit(\"session_authenticate\",{topic:s,params:i.params,id:i.id,verifyContext:u})}catch(l){this.client.logger.error(l);const p=i.params.requester.publicKey,h=await this.client.core.crypto.generateKeyPair(),u=this.getAppLinkIfEnabled(i.params.requester.metadata,a),d={type:Ve,receiverPublicKey:p,senderPublicKey:h};await this.sendError({id:i.id,topic:s,error:l,encodeOpts:d,rpcOpts:N.wc_sessionAuthenticate.autoReject,appLink:u})}}),c(this,\"addSessionRequestToSessionRequestQueue\",e=>{this.sessionRequestQueue.queue.push(e)}),c(this,\"cleanupAfterResponse\",e=>{this.deletePendingSessionRequest(e.response.id,{message:\"fulfilled\",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=$.idle,this.processSessionRequestQueue()},Oe(this.requestQueueDelay))}),c(this,\"cleanupPendingSentRequestsForTopic\",({topic:e,error:t})=>{const s=this.client.core.history.pending;s.length>0&&s.filter(i=>i.topic===e&&i.request.method===\"wc_sessionRequest\").forEach(i=>{const r=i.request.id,o=R(\"session_request\",r);if(this.events.listenerCount(o)===0)throw new Error(`emitting ${o} without any listeners`);this.events.emit(R(\"session_request\",i.request.id),{error:t})})}),c(this,\"processSessionRequestQueue\",()=>{if(this.sessionRequestQueue.state===$.active){this.client.logger.info(\"session request queue is already active.\");return}const e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(\"session request queue is empty.\");return}try{this.sessionRequestQueue.state=$.active,this.emitSessionRequest(e)}catch(t){this.client.logger.error(t)}}),c(this,\"emitSessionRequest\",e=>{this.client.events.emit(\"session_request\",e)}),c(this,\"onPairingCreated\",e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const t=this.client.proposal.getAll().find(s=>s.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:ye(\"wc_sessionPropose\",b(v({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties}),t.id)})}),c(this,\"isValidConnect\",async e=>{if(!M(e)){const{message:l}=y(\"MISSING_OR_INVALID\",`connect() params: ${JSON.stringify(e)}`);throw new Error(l)}const{pairingTopic:t,requiredNamespaces:s,optionalNamespaces:i,sessionProperties:r,scopedProperties:o,relays:a}=e;if(X(t)||await this.isValidPairingTopic(t),!Yt(a,!0)){const{message:l}=y(\"MISSING_OR_INVALID\",`connect() relays: ${a}`);throw new Error(l)}if(!X(s)&&ot(s)!==0){const l=\"requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces\";[\"fatal\",\"error\",\"silent\"].includes(this.client.logger.level)?console.warn(l):this.client.logger.warn(l),this.validateNamespaces(s,\"requiredNamespaces\")}if(!X(i)&&ot(i)!==0&&this.validateNamespaces(i,\"optionalNamespaces\"),X(r)||this.validateSessionProps(r,\"sessionProperties\"),!X(o)){this.validateSessionProps(o,\"scopedProperties\");const l=Object.keys(s||{}).concat(Object.keys(i||{}));if(!Object.keys(o).every(p=>l.includes(p)))throw new Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(o)}, required/optional namespaces: ${JSON.stringify(l)}`)}}),c(this,\"validateNamespaces\",(e,t)=>{const s=Xt(e,\"connect()\",t);if(s)throw new Error(s.message)}),c(this,\"isValidApprove\",async e=>{if(!M(e))throw new Error(y(\"MISSING_OR_INVALID\",`approve() params: ${e}`).message);const{id:t,namespaces:s,relayProtocol:i,sessionProperties:r,scopedProperties:o}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);const a=this.client.proposal.get(t),l=Ce(s,\"approve()\");if(l)throw new Error(l.message);const p=at(a.requiredNamespaces,s,\"approve()\");if(p)throw new Error(p.message);if(!Y(i,!0)){const{message:h}=y(\"MISSING_OR_INVALID\",`approve() relayProtocol: ${i}`);throw new Error(h)}if(X(r)||this.validateSessionProps(r,\"sessionProperties\"),!X(o)){this.validateSessionProps(o,\"scopedProperties\");const h=new Set(Object.keys(s));if(!Object.keys(o).every(u=>h.has(u)))throw new Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(o)}, approved namespaces: ${Array.from(h).join(\", \")}`)}}),c(this,\"isValidReject\",async e=>{if(!M(e)){const{message:i}=y(\"MISSING_OR_INVALID\",`reject() params: ${e}`);throw new Error(i)}const{id:t,reason:s}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Jt(s)){const{message:i}=y(\"MISSING_OR_INVALID\",`reject() reason: ${JSON.stringify(s)}`);throw new Error(i)}}),c(this,\"isValidSessionSettleRequest\",e=>{if(!M(e)){const{message:l}=y(\"MISSING_OR_INVALID\",`onSessionSettleRequest() params: ${e}`);throw new Error(l)}const{relay:t,controller:s,namespaces:i,expiry:r}=e;if(!Bt(t)){const{message:l}=y(\"MISSING_OR_INVALID\",\"onSessionSettleRequest() relay protocol should be a string\");throw new Error(l)}const o=Wt(s,\"onSessionSettleRequest()\");if(o)throw new Error(o.message);const a=Ce(i,\"onSessionSettleRequest()\");if(a)throw new Error(a.message);if(Z(r)){const{message:l}=y(\"EXPIRED\",\"onSessionSettleRequest()\");throw new Error(l)}}),c(this,\"isValidUpdate\",async e=>{if(!M(e)){const{message:a}=y(\"MISSING_OR_INVALID\",`update() params: ${e}`);throw new Error(a)}const{topic:t,namespaces:s}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const i=this.client.session.get(t),r=Ce(s,\"update()\");if(r)throw new Error(r.message);const o=at(i.requiredNamespaces,s,\"update()\");if(o)throw new Error(o.message)}),c(this,\"isValidExtend\",async e=>{if(!M(e)){const{message:s}=y(\"MISSING_OR_INVALID\",`extend() params: ${e}`);throw new Error(s)}const{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),c(this,\"isValidRequest\",async e=>{if(!M(e)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() params: ${e}`);throw new Error(a)}const{topic:t,request:s,chainId:i,expiry:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const{namespaces:o}=this.client.session.get(t);if(!ct(o,i)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() chainId: ${i}`);throw new Error(a)}if(!Zt(s)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() ${JSON.stringify(s)}`);throw new Error(a)}if(!es(o,i,s.method)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() method: ${s.method}`);throw new Error(a)}if(r&&!ts(r,_e)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() expiry: ${r}. Expiry must be a number (in seconds) between ${_e.min} and ${_e.max}`);throw new Error(a)}}),c(this,\"isValidRespond\",async e=>{var t;if(!M(e)){const{message:r}=y(\"MISSING_OR_INVALID\",`respond() params: ${e}`);throw new Error(r)}const{topic:s,response:i}=e;try{await this.isValidSessionTopic(s)}catch(r){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),r}if(!ss(i)){const{message:r}=y(\"MISSING_OR_INVALID\",`respond() response: ${JSON.stringify(i)}`);throw new Error(r)}}),c(this,\"isValidPing\",async e=>{if(!M(e)){const{message:s}=y(\"MISSING_OR_INVALID\",`ping() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),c(this,\"isValidEmit\",async e=>{if(!M(e)){const{message:o}=y(\"MISSING_OR_INVALID\",`emit() params: ${e}`);throw new Error(o)}const{topic:t,event:s,chainId:i}=e;await this.isValidSessionTopic(t);const{namespaces:r}=this.client.session.get(t);if(!ct(r,i)){const{message:o}=y(\"MISSING_OR_INVALID\",`emit() chainId: ${i}`);throw new Error(o)}if(!is(s)){const{message:o}=y(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(o)}if(!rs(r,i,s.name)){const{message:o}=y(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(o)}}),c(this,\"isValidDisconnect\",async e=>{if(!M(e)){const{message:s}=y(\"MISSING_OR_INVALID\",`disconnect() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),c(this,\"isValidAuthenticate\",e=>{const{chains:t,uri:s,domain:i,nonce:r}=e;if(!Array.isArray(t)||t.length===0)throw new Error(\"chains is required and must be a non-empty array\");if(!Y(s,!1))throw new Error(\"uri is required parameter\");if(!Y(i,!1))throw new Error(\"domain is required parameter\");if(!Y(r,!1))throw new Error(\"nonce is required parameter\");if([...new Set(t.map(a=>Ae(a).namespace))].length>1)throw new Error(\"Multi-namespace requests are not supported. Please request single namespace only.\");const{namespace:o}=Ae(t[0]);if(o!==\"eip155\")throw new Error(\"Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.\")}),c(this,\"getVerifyContext\",async e=>{const{attestationId:t,hash:s,encryptedId:i,metadata:r,transportType:o}=e,a={verified:{verifyUrl:r.verifyUrl||Ot,validation:\"UNKNOWN\",origin:r.url||\"\"}};try{if(o===P.link_mode){const p=this.getAppLinkIfEnabled(r,o);return a.verified.validation=p&&new URL(p).origin===new URL(r.url).origin?\"VALID\":\"INVALID\",a}const l=await this.client.core.verify.resolve({attestationId:t,hash:s,encryptedId:i,verifyUrl:r.verifyUrl});l&&(a.verified.origin=l.origin,a.verified.isScam=l.isScam,a.verified.validation=l.origin===new URL(r.url).origin?\"VALID\":\"INVALID\")}catch(l){this.client.logger.warn(l)}return this.client.logger.debug(`Verify context: ${JSON.stringify(a)}`),a}),c(this,\"validateSessionProps\",(e,t)=>{Object.values(e).forEach((s,i)=>{if(s==null){const{message:r}=y(\"MISSING_OR_INVALID\",`${t} must contain an existing value for each key. Received: ${s} for key ${Object.keys(e)[i]}`);throw new Error(r)}})}),c(this,\"getPendingAuthRequest\",e=>{const t=this.client.auth.requests.get(e);return typeof t==\"object\"?t:void 0}),c(this,\"addToRecentlyDeleted\",(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let s=0;const i=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(s++>=i)break;this.recentlyDeletedMap.delete(r)}}}),c(this,\"checkRecentlyDeleted\",e=>{const t=this.recentlyDeletedMap.get(e);if(t){const{message:s}=y(\"MISSING_OR_INVALID\",`Record was recently deleted - ${t}: ${e}`);throw new Error(s)}}),c(this,\"isLinkModeEnabled\",(e,t)=>{var s,i,r,o,a,l,p,h,u;return!e||t!==P.link_mode?!1:((i=(s=this.client.metadata)==null?void 0:s.redirect)==null?void 0:i.linkMode)===!0&&((o=(r=this.client.metadata)==null?void 0:r.redirect)==null?void 0:o.universal)!==void 0&&((l=(a=this.client.metadata)==null?void 0:a.redirect)==null?void 0:l.universal)!==\"\"&&((p=e?.redirect)==null?void 0:p.universal)!==void 0&&((h=e?.redirect)==null?void 0:h.universal)!==\"\"&&((u=e?.redirect)==null?void 0:u.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(global==null?void 0:global.Linking)<\"u\"}),c(this,\"getAppLinkIfEnabled\",(e,t)=>{var s;return this.isLinkModeEnabled(e,t)?(s=e?.redirect)==null?void 0:s.universal:void 0}),c(this,\"handleLinkModeMessage\",({url:e})=>{if(!e||!e.includes(\"wc_ev\")||!e.includes(\"topic\"))return;const t=lt(e,\"topic\")||\"\",s=decodeURIComponent(lt(e,\"wc_ev\")||\"\"),i=this.client.session.keys.includes(t);i&&this.client.session.update(t,{transportType:P.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:s,sessionExists:i})}),c(this,\"registerLinkModeListeners\",async()=>{var e;if(ns()||os()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){const t=global==null?void 0:global.Linking;if(typeof t<\"u\"){t.addEventListener(\"url\",this.handleLinkModeMessage,this.client.name);const s=await t.getInitialURL();s&&setTimeout(()=>{this.handleLinkModeMessage({url:s})},50)}}}),c(this,\"shouldSetTVF\",(e,t)=>{if(!t||e!==\"wc_sessionRequest\")return!1;const{request:s}=t;return Object.keys(Ke).includes(s.method)}),c(this,\"getTVFParams\",(e,t,s)=>{var i,r;try{const o=t.request.method,a=this.extractTxHashesFromResult(o,s);return b(v({correlationId:e,rpcMethods:[o],chainId:t.chainId},this.isValidContractData(t.request.params)&&{contractAddresses:[(r=(i=t.request.params)==null?void 0:i[0])==null?void 0:r.to]}),{txHashes:a})}catch(o){this.client.logger.warn(\"Error getting TVF params\",o)}return{}}),c(this,\"isValidContractData\",e=>{var t;if(!e)return!1;try{const s=e?.data||((t=e?.[0])==null?void 0:t.data);if(!s.startsWith(\"0x\"))return!1;const i=s.slice(2);return/^[0-9a-fA-F]*$/.test(i)?i.length%2===0:!1}catch{}return!1}),c(this,\"extractTxHashesFromResult\",(e,t)=>{try{const s=Ke[e];if(typeof t==\"string\")return[t];const i=t[s.key];if(as(i))return e===\"solana_signAllTransactions\"?i.map(r=>cs(r)):i;if(typeof i==\"string\")return[i]}catch(s){this.client.logger.warn(\"Error extracting tx hashes from result\",s)}return[]})}async processPendingMessageEvents(){try{const n=this.client.session.keys,e=this.client.core.relayer.messages.getWithoutAck(n);for(const[t,s]of Object.entries(e))for(const i of s)try{await this.onProviderMessageEvent({topic:t,message:i,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${t}, message: ${i}`)}}catch(n){this.client.logger.warn(\"processPendingMessageEvents failed\",n)}}isInitialized(){if(!this.initialized){const{message:n}=y(\"NOT_INITIALIZED\",this.name);throw new Error(n)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Xe.message,n=>{this.onProviderMessageEvent(n)})}async onRelayMessage(n){const{topic:e,message:t,attestation:s,transportType:i}=n,{publicKey:r}=this.client.auth.authKeys.keys.includes(ce)?this.client.auth.authKeys.get(ce):{responseTopic:void 0,publicKey:void 0};try{const o=await this.client.core.crypto.decode(e,t,{receiverPublicKey:r,encoding:i===P.link_mode?ne:de});ds(o)?(this.client.core.history.set(e,o),await this.onRelayEventRequest({topic:e,payload:o,attestation:s,transportType:i,encryptedId:W(t)})):us(o)?(await this.client.core.history.resolve(o),await this.onRelayEventResponse({topic:e,payload:o,transportType:i}),this.client.core.history.delete(e,o.id)):await this.onRelayEventUnknownPayload({topic:e,payload:o,transportType:i}),await this.client.core.relayer.messages.ack(e,t)}catch(o){this.client.logger.error(o)}}registerExpirerEvents(){this.client.core.expirer.on(Tt.expired,async n=>{const{topic:e,id:t}=Mt(n.target);if(t&&this.client.pendingRequest.keys.includes(t))return await this.deletePendingSessionRequest(t,y(\"EXPIRED\"),!0);if(t&&this.client.auth.requests.keys.includes(t))return await this.deletePendingAuthRequest(t,y(\"EXPIRED\"),!0);e?this.client.session.keys.includes(e)&&(await this.deleteSession({topic:e,expirerHasDeleted:!0}),this.client.events.emit(\"session_expire\",{topic:e})):t&&(await this.deleteProposal(t,!0),this.client.events.emit(\"proposal_expire\",{id:t}))})}registerPairingEvents(){this.client.core.pairing.events.on(Je.create,n=>this.onPairingCreated(n)),this.client.core.pairing.events.on(Je.delete,n=>{this.addToRecentlyDeleted(n.topic,\"pairing\")})}isValidPairingTopic(n){if(!Y(n,!1)){const{message:e}=y(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${n}`);throw new Error(e)}if(!this.client.core.pairing.pairings.keys.includes(n)){const{message:e}=y(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${n}`);throw new Error(e)}if(Z(this.client.core.pairing.pairings.get(n).expiry)){const{message:e}=y(\"EXPIRED\",`pairing topic: ${n}`);throw new Error(e)}}async isValidSessionTopic(n){if(!Y(n,!1)){const{message:e}=y(\"MISSING_OR_INVALID\",`session topic should be a string: ${n}`);throw new Error(e)}if(this.checkRecentlyDeleted(n),!this.client.session.keys.includes(n)){const{message:e}=y(\"NO_MATCHING_KEY\",`session topic doesn't exist: ${n}`);throw new Error(e)}if(Z(this.client.session.get(n).expiry)){await this.deleteSession({topic:n});const{message:e}=y(\"EXPIRED\",`session topic: ${n}`);throw new Error(e)}if(!this.client.core.crypto.keychain.has(n)){const{message:e}=y(\"MISSING_OR_INVALID\",`session topic does not exist in keychain: ${n}`);throw await this.deleteSession({topic:n}),new Error(e)}}async isValidSessionOrPairingTopic(n){if(this.checkRecentlyDeleted(n),this.client.session.keys.includes(n))await this.isValidSessionTopic(n);else if(this.client.core.pairing.pairings.keys.includes(n))this.isValidPairingTopic(n);else if(Y(n,!1)){const{message:e}=y(\"NO_MATCHING_KEY\",`session or pairing topic doesn't exist: ${n}`);throw new Error(e)}else{const{message:e}=y(\"MISSING_OR_INVALID\",`session or pairing topic should be a string: ${n}`);throw new Error(e)}}async isValidProposalId(n){if(!$t(n)){const{message:e}=y(\"MISSING_OR_INVALID\",`proposal id should be a number: ${n}`);throw new Error(e)}if(!this.client.proposal.keys.includes(n)){const{message:e}=y(\"NO_MATCHING_KEY\",`proposal id doesn't exist: ${n}`);throw new Error(e)}if(Z(this.client.proposal.get(n).expiryTimestamp)){await this.deleteProposal(n);const{message:e}=y(\"EXPIRED\",`proposal id: ${n}`);throw new Error(e)}}}class Os extends B{constructor(n,e){super(n,e,pt,we),this.core=n,this.logger=e}}class St extends B{constructor(n,e){super(n,e,ht,we),this.core=n,this.logger=e}}class bs extends B{constructor(n,e){super(n,e,ut,we,t=>t.id),this.core=n,this.logger=e}}class As extends B{constructor(n,e){super(n,e,mt,ae,()=>ce),this.core=n,this.logger=e}}class xs extends B{constructor(n,e){super(n,e,_t,ae),this.core=n,this.logger=e}}class Cs extends B{constructor(n,e){super(n,e,Et,ae,t=>t.id),this.core=n,this.logger=e}}var Vs=Object.defineProperty,Ds=(S,n,e)=>n in S?Vs(S,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):S[n]=e,Ge=(S,n,e)=>Ds(S,typeof n!=\"symbol\"?n+\"\":n,e);class Ls{constructor(n,e){this.core=n,this.logger=e,Ge(this,\"authKeys\"),Ge(this,\"pairingTopics\"),Ge(this,\"requests\"),this.authKeys=new As(this.core,this.logger),this.pairingTopics=new xs(this.core,this.logger),this.requests=new Cs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}var ks=Object.defineProperty,Ms=(S,n,e)=>n in S?ks(S,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):S[n]=e,E=(S,n,e)=>Ms(S,typeof n!=\"symbol\"?n+\"\":n,e);class Ee extends Lt{constructor(n){super(n),E(this,\"protocol\",De),E(this,\"version\",Le),E(this,\"name\",me.name),E(this,\"metadata\"),E(this,\"core\"),E(this,\"logger\"),E(this,\"events\",new hs),E(this,\"engine\"),E(this,\"session\"),E(this,\"proposal\"),E(this,\"pendingRequest\"),E(this,\"auth\"),E(this,\"signConfig\"),E(this,\"on\",(t,s)=>this.events.on(t,s)),E(this,\"once\",(t,s)=>this.events.once(t,s)),E(this,\"off\",(t,s)=>this.events.off(t,s)),E(this,\"removeListener\",(t,s)=>this.events.removeListener(t,s)),E(this,\"removeAllListeners\",t=>this.events.removeAllListeners(t)),E(this,\"connect\",async t=>{try{return await this.engine.connect(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"pair\",async t=>{try{return await this.engine.pair(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"approve\",async t=>{try{return await this.engine.approve(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"reject\",async t=>{try{return await this.engine.reject(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"update\",async t=>{try{return await this.engine.update(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"extend\",async t=>{try{return await this.engine.extend(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"request\",async t=>{try{return await this.engine.request(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"respond\",async t=>{try{return await this.engine.respond(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"ping\",async t=>{try{return await this.engine.ping(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"emit\",async t=>{try{return await this.engine.emit(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"disconnect\",async t=>{try{return await this.engine.disconnect(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"find\",t=>{try{return this.engine.find(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"getPendingSessionRequests\",()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}}),E(this,\"authenticate\",async(t,s)=>{try{return await this.engine.authenticate(t,s)}catch(i){throw this.logger.error(i.message),i}}),E(this,\"formatAuthMessage\",t=>{try{return this.engine.formatAuthMessage(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"approveSessionAuthenticate\",async t=>{try{return await this.engine.approveSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"rejectSessionAuthenticate\",async t=>{try{return await this.engine.rejectSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}}),this.name=n?.name||me.name,this.metadata=ls(n?.metadata),this.signConfig=n?.signConfig;const e=typeof n?.logger<\"u\"&&typeof n?.logger!=\"string\"?n.logger:At(xt({level:n?.logger||me.logger}));this.core=n?.core||new bt(n),this.logger=Ct(e,this.name),this.session=new St(this.core,this.logger),this.proposal=new Os(this.core,this.logger),this.pendingRequest=new bs(this.core,this.logger),this.engine=new Ns(this),this.auth=new Ls(this.core,this.logger)}static async init(n){const e=new Ee(n);return await e.initialize(),e}get context(){return Vt(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(\"SignClient Initialization Success\"),setTimeout(()=>{this.engine.processRelayMessageCache()},Oe(Ze))}catch(n){throw this.logger.info(\"SignClient Initialization Failure\"),this.logger.error(n.message),n}}}const $s=St,Ks=Ee;export{wt as AUTH_CONTEXT,mt as AUTH_KEYS_CONTEXT,_t as AUTH_PAIRING_TOPIC_CONTEXT,yt as AUTH_PROTOCOL,ce as AUTH_PUBLIC_KEY_NAME,Et as AUTH_REQUEST_CONTEXT,ae as AUTH_STORAGE_PREFIX,Rs as AUTH_VERSION,dt as ENGINE_CONTEXT,$ as ENGINE_QUEUE_STATES,N as ENGINE_RPC_OPTS,Es as HISTORY_CONTEXT,_s as HISTORY_EVENTS,fs as HISTORY_STORAGE_VERSION,gt as METHODS_TO_VERIFY,pt as PROPOSAL_CONTEXT,Ss as PROPOSAL_EXPIRY,$e as PROPOSAL_EXPIRY_MESSAGE,ut as REQUEST_CONTEXT,ht as SESSION_CONTEXT,J as SESSION_EXPIRY,_e as SESSION_REQUEST_EXPIRY_BOUNDARIES,ke as SIGN_CLIENT_CONTEXT,me as SIGN_CLIENT_DEFAULT,ws as SIGN_CLIENT_EVENTS,De as SIGN_CLIENT_PROTOCOL,ms as SIGN_CLIENT_STORAGE_OPTIONS,we as SIGN_CLIENT_STORAGE_PREFIX,Le as SIGN_CLIENT_VERSION,$s as SessionStore,Ks as SignClient,Ke as TVF_METHODS,Me as WALLETCONNECT_DEEPLINK_CHOICE,Ee as default};\n//# sourceMappingURL=index.es.js.map\n","import $t from\"@walletconnect/sign-client\";import{isValidObject as G,isCaipNamespace as Z,parseNamespaceKey as _,mergeArrays as J,parseChainId as T,getSdkError as tt,isValidArray as z}from\"@walletconnect/utils\";import{pino as Ot,getDefaultLoggerOptions as At}from\"@walletconnect/logger\";import g,{HttpConnection as Ct}from\"@walletconnect/jsonrpc-http-connection\";import{JsonRpcProvider as f}from\"@walletconnect/jsonrpc-provider\";import{formatJsonRpcRequest as Ht,formatJsonRpcResult as Et}from\"@walletconnect/jsonrpc-utils\";import Nt from\"events\";const et=\"error\",St=\"wss://relay.walletconnect.org\",Dt=\"wc\",qt=\"universal_provider\",U=`${Dt}@2:${qt}:`,st=\"https://rpc.walletconnect.org/v1/\",I=\"generic\",jt=`${st}bundler`,u={DEFAULT_CHAIN_CHANGED:\"default_chain_changed\"};function Rt(){}function k(s){return s==null||typeof s!=\"object\"&&typeof s!=\"function\"}function W(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)}function _t(s){if(k(s))return s;if(Array.isArray(s)||W(s)||s instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&s instanceof SharedArrayBuffer)return s.slice(0);const t=Object.getPrototypeOf(s),e=t.constructor;if(s instanceof Date||s instanceof Map||s instanceof Set)return new e(s);if(s instanceof RegExp){const i=new e(s);return i.lastIndex=s.lastIndex,i}if(s instanceof DataView)return new e(s.buffer.slice(0));if(s instanceof Error){const i=new e(s.message);return i.stack=s.stack,i.name=s.name,i.cause=s.cause,i}if(typeof File<\"u\"&&s instanceof File)return new e([s],s.name,{type:s.type,lastModified:s.lastModified});if(typeof s==\"object\"){const i=Object.create(t);return Object.assign(i,s)}return s}function it(s){return typeof s==\"object\"&&s!==null}function rt(s){return Object.getOwnPropertySymbols(s).filter(t=>Object.prototype.propertyIsEnumerable.call(s,t))}function nt(s){return s==null?s===void 0?\"[object Undefined]\":\"[object Null]\":Object.prototype.toString.call(s)}const Ut=\"[object RegExp]\",at=\"[object String]\",ct=\"[object Number]\",ot=\"[object Boolean]\",ht=\"[object Arguments]\",Ft=\"[object Symbol]\",Lt=\"[object Date]\",Mt=\"[object Map]\",xt=\"[object Set]\",Bt=\"[object Array]\",Gt=\"[object ArrayBuffer]\",Jt=\"[object Object]\",zt=\"[object DataView]\",kt=\"[object Uint8Array]\",Wt=\"[object Uint8ClampedArray]\",Kt=\"[object Uint16Array]\",Vt=\"[object Uint32Array]\",Xt=\"[object Int8Array]\",Yt=\"[object Int16Array]\",Qt=\"[object Int32Array]\",Zt=\"[object Float32Array]\",Tt=\"[object Float64Array]\";function te(s,t){return $(s,void 0,s,new Map,t)}function $(s,t,e,i=new Map,n=void 0){const a=n?.(s,t,e,i);if(a!=null)return a;if(k(s))return s;if(i.has(s))return i.get(s);if(Array.isArray(s)){const r=new Array(s.length);i.set(s,r);for(let c=0;c<s.length;c++)r[c]=$(s[c],c,e,i,n);return Object.hasOwn(s,\"index\")&&(r.index=s.index),Object.hasOwn(s,\"input\")&&(r.input=s.input),r}if(s instanceof Date)return new Date(s.getTime());if(s instanceof RegExp){const r=new RegExp(s.source,s.flags);return r.lastIndex=s.lastIndex,r}if(s instanceof Map){const r=new Map;i.set(s,r);for(const[c,o]of s)r.set(c,$(o,c,e,i,n));return r}if(s instanceof Set){const r=new Set;i.set(s,r);for(const c of s)r.add($(c,void 0,e,i,n));return r}if(typeof Buffer<\"u\"&&Buffer.isBuffer(s))return s.subarray();if(W(s)){const r=new(Object.getPrototypeOf(s)).constructor(s.length);i.set(s,r);for(let c=0;c<s.length;c++)r[c]=$(s[c],c,e,i,n);return r}if(s instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&s instanceof SharedArrayBuffer)return s.slice(0);if(s instanceof DataView){const r=new DataView(s.buffer.slice(0),s.byteOffset,s.byteLength);return i.set(s,r),y(r,s,e,i,n),r}if(typeof File<\"u\"&&s instanceof File){const r=new File([s],s.name,{type:s.type});return i.set(s,r),y(r,s,e,i,n),r}if(s instanceof Blob){const r=new Blob([s],{type:s.type});return i.set(s,r),y(r,s,e,i,n),r}if(s instanceof Error){const r=new s.constructor;return i.set(s,r),r.message=s.message,r.name=s.name,r.stack=s.stack,r.cause=s.cause,y(r,s,e,i,n),r}if(typeof s==\"object\"&&ee(s)){const r=Object.create(Object.getPrototypeOf(s));return i.set(s,r),y(r,s,e,i,n),r}return s}function y(s,t,e=s,i,n){const a=[...Object.keys(t),...rt(t)];for(let r=0;r<a.length;r++){const c=a[r],o=Object.getOwnPropertyDescriptor(s,c);(o==null||o.writable)&&(s[c]=$(t[c],c,e,i,n))}}function ee(s){switch(nt(s)){case ht:case Bt:case Gt:case zt:case ot:case Lt:case Zt:case Tt:case Xt:case Yt:case Qt:case Mt:case ct:case Jt:case Ut:case xt:case at:case Ft:case kt:case Wt:case Kt:case Vt:return!0;default:return!1}}function se(s,t){return te(s,(e,i,n,a)=>{const r=t?.(e,i,n,a);if(r!=null)return r;if(typeof s==\"object\")switch(Object.prototype.toString.call(s)){case ct:case at:case ot:{const c=new s.constructor(s?.valueOf());return y(c,s),c}case ht:{const c={};return y(c,s),c.length=s.length,c[Symbol.iterator]=s[Symbol.iterator],c}default:return}})}function pt(s){return se(s)}function dt(s){return s!==null&&typeof s==\"object\"&&nt(s)===\"[object Arguments]\"}function ie(s){return W(s)}function re(s){if(typeof s!=\"object\"||s==null)return!1;if(Object.getPrototypeOf(s)===null)return!0;if(Object.prototype.toString.call(s)!==\"[object Object]\"){const e=s[Symbol.toStringTag];return e==null||!Object.getOwnPropertyDescriptor(s,Symbol.toStringTag)?.writable?!1:s.toString()===`[object ${e}]`}let t=s;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(s)===t}function ne(s,...t){const e=t.slice(0,-1),i=t[t.length-1];let n=s;for(let a=0;a<e.length;a++){const r=e[a];n=F(n,r,i,new Map)}return n}function F(s,t,e,i){if(k(s)&&(s=Object(s)),t==null||typeof t!=\"object\")return s;if(i.has(t))return _t(i.get(t));if(i.set(t,s),Array.isArray(t)){t=t.slice();for(let a=0;a<t.length;a++)t[a]=t[a]??void 0}const n=[...Object.keys(t),...rt(t)];for(let a=0;a<n.length;a++){const r=n[a];let c=t[r],o=s[r];if(dt(c)&&(c={...c}),dt(o)&&(o={...o}),typeof Buffer<\"u\"&&Buffer.isBuffer(c)&&(c=pt(c)),Array.isArray(c))if(typeof o==\"object\"&&o!=null){const w=[],v=Reflect.ownKeys(o);for(let P=0;P<v.length;P++){const p=v[P];w[p]=o[p]}o=w}else o=[];const m=e(o,c,r,s,t,i);m!=null?s[r]=m:Array.isArray(c)||it(o)&&it(c)?s[r]=F(o,c,e,i):o==null&&re(c)?s[r]=F({},c,e,i):o==null&&ie(c)?s[r]=pt(c):(o===void 0||c!==void 0)&&(s[r]=c)}return s}function ae(s,...t){return ne(s,...t,Rt)}var ce=Object.defineProperty,oe=Object.defineProperties,he=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,pe=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable,lt=(s,t,e)=>t in s?ce(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,L=(s,t)=>{for(var e in t||(t={}))pe.call(t,e)&&lt(s,e,t[e]);if(ut)for(var e of ut(t))de.call(t,e)&&lt(s,e,t[e]);return s},ue=(s,t)=>oe(s,he(t));function d(s,t,e){var i;const n=T(s);return((i=t.rpcMap)==null?void 0:i[n.reference])||`${st}?chainId=${n.namespace}:${n.reference}&projectId=${e}`}function b(s){return s.includes(\":\")?s.split(\":\")[1]:s}function ft(s){return s.map(t=>`${t.split(\":\")[0]}:${t.split(\":\")[1]}`)}function le(s,t){const e=Object.keys(t.namespaces).filter(n=>n.includes(s));if(!e.length)return[];const i=[];return e.forEach(n=>{const a=t.namespaces[n].accounts;i.push(...a)}),i}function M(s={},t={}){const e=mt(s),i=mt(t);return ae(e,i)}function mt(s){var t,e,i,n,a;const r={};if(!G(s))return r;for(const[c,o]of Object.entries(s)){const m=Z(c)?[c]:o.chains,w=o.methods||[],v=o.events||[],P=o.rpcMap||{},p=_(c);r[p]=ue(L(L({},r[p]),o),{chains:J(m,(t=r[p])==null?void 0:t.chains),methods:J(w,(e=r[p])==null?void 0:e.methods),events:J(v,(i=r[p])==null?void 0:i.events)}),(G(P)||G(((n=r[p])==null?void 0:n.rpcMap)||{}))&&(r[p].rpcMap=L(L({},P),(a=r[p])==null?void 0:a.rpcMap))}return r}function vt(s){return s.includes(\":\")?s.split(\":\")[2]:s}function gt(s){const t={};for(const[e,i]of Object.entries(s)){const n=i.methods||[],a=i.events||[],r=i.accounts||[],c=Z(e)?[e]:i.chains?i.chains:ft(i.accounts);t[e]={chains:c,methods:n,events:a,accounts:r}}return t}function K(s){return typeof s==\"number\"?s:s.includes(\"0x\")?parseInt(s,16):(s=s.includes(\":\")?s.split(\":\")[1]:s,isNaN(Number(s))?s:Number(s))}const Pt={},h=s=>Pt[s],V=(s,t)=>{Pt[s]=t};var fe=Object.defineProperty,me=(s,t,e)=>t in s?fe(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,O=(s,t,e)=>me(s,typeof t!=\"symbol\"?t+\"\":t,e);class ve{constructor(t){O(this,\"name\",\"polkadot\"),O(this,\"client\"),O(this,\"httpProviders\"),O(this,\"events\"),O(this,\"namespace\"),O(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var ge=Object.defineProperty,Pe=Object.defineProperties,we=Object.getOwnPropertyDescriptors,wt=Object.getOwnPropertySymbols,ye=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,X=(s,t,e)=>t in s?ge(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,yt=(s,t)=>{for(var e in t||(t={}))ye.call(t,e)&&X(s,e,t[e]);if(wt)for(var e of wt(t))be.call(t,e)&&X(s,e,t[e]);return s},bt=(s,t)=>Pe(s,we(t)),A=(s,t,e)=>X(s,typeof t!=\"symbol\"?t+\"\":t,e);class Ie{constructor(t){A(this,\"name\",\"eip155\"),A(this,\"client\"),A(this,\"chainId\"),A(this,\"namespace\"),A(this,\"httpProviders\"),A(this,\"events\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(t){switch(t.request.method){case\"eth_requestAccounts\":return this.getAccounts();case\"eth_accounts\":return this.getAccounts();case\"wallet_switchEthereumChain\":return await this.handleSwitchChain(t);case\"eth_chainId\":return parseInt(this.getDefaultChain());case\"wallet_getCapabilities\":return await this.getCapabilities(t);case\"wallet_getCallsStatus\":return await this.getCallStatus(t)}return this.namespace.methods.includes(t.request.method)?await this.client.request(t):this.getHttpProvider().request(t.request)}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(parseInt(t),e),this.chainId=parseInt(t),this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}createHttpProvider(t,e){const i=e||d(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new Ct(i,h(\"disableProviderPing\")))}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=parseInt(b(e));t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}getHttpProvider(){const t=this.chainId,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}async handleSwitchChain(t){var e,i;let n=t.request.params?(e=t.request.params[0])==null?void 0:e.chainId:\"0x0\";n=n.startsWith(\"0x\")?n:`0x${n}`;const a=parseInt(n,16);if(this.isChainApproved(a))this.setDefaultChain(`${a}`);else if(this.namespace.methods.includes(\"wallet_switchEthereumChain\"))await this.client.request({topic:t.topic,request:{method:t.request.method,params:[{chainId:n}]},chainId:(i=this.namespace.chains)==null?void 0:i[0]}),this.setDefaultChain(`${a}`);else throw new Error(`Failed to switch to chain 'eip155:${a}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(t){return this.namespace.chains.includes(`${this.name}:${t}`)}async getCapabilities(t){var e,i,n,a,r;const c=(i=(e=t.request)==null?void 0:e.params)==null?void 0:i[0],o=((a=(n=t.request)==null?void 0:n.params)==null?void 0:a[1])||[],m=`${c}${o.join(\",\")}`;if(!c)throw new Error(\"Missing address parameter in `wallet_getCapabilities` request\");const w=this.client.session.get(t.topic),v=((r=w?.sessionProperties)==null?void 0:r.capabilities)||{};if(v!=null&&v[m])return v?.[m];const P=await this.client.request(t);try{await this.client.session.update(t.topic,{sessionProperties:bt(yt({},w.sessionProperties||{}),{capabilities:bt(yt({},v||{}),{[m]:P})})})}catch(p){console.warn(\"Failed to update session with capabilities\",p)}return P}async getCallStatus(t){var e,i;const n=this.client.session.get(t.topic),a=(e=n.sessionProperties)==null?void 0:e.bundler_name;if(a){const c=this.getBundlerUrl(t.chainId,a);try{return await this.getUserOperationReceipt(c,t)}catch(o){console.warn(\"Failed to fetch call status from bundler\",o,c)}}const r=(i=n.sessionProperties)==null?void 0:i.bundler_url;if(r)try{return await this.getUserOperationReceipt(r,t)}catch(c){console.warn(\"Failed to fetch call status from custom bundler\",c,r)}if(this.namespace.methods.includes(t.request.method))return await this.client.request(t);throw new Error(\"Fetching call status not approved by the wallet.\")}async getUserOperationReceipt(t,e){var i;const n=new URL(t),a=await fetch(n,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(Ht(\"eth_getUserOperationReceipt\",[(i=e.request.params)==null?void 0:i[0]]))});if(!a.ok)throw new Error(`Failed to fetch user operation receipt - ${a.status}`);return await a.json()}getBundlerUrl(t,e){return`${jt}?projectId=${this.client.core.projectId}&chainId=${t}&bundler=${e}`}}var $e=Object.defineProperty,Oe=(s,t,e)=>t in s?$e(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,C=(s,t,e)=>Oe(s,typeof t!=\"symbol\"?t+\"\":t,e);class Ae{constructor(t){C(this,\"name\",\"solana\"),C(this,\"client\"),C(this,\"httpProviders\"),C(this,\"events\"),C(this,\"namespace\"),C(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Ce=Object.defineProperty,He=(s,t,e)=>t in s?Ce(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,H=(s,t,e)=>He(s,typeof t!=\"symbol\"?t+\"\":t,e);class Ee{constructor(t){H(this,\"name\",\"cosmos\"),H(this,\"client\"),H(this,\"httpProviders\"),H(this,\"events\"),H(this,\"namespace\"),H(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Ne=Object.defineProperty,Se=(s,t,e)=>t in s?Ne(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,E=(s,t,e)=>Se(s,typeof t!=\"symbol\"?t+\"\":t,e);class De{constructor(t){E(this,\"name\",\"algorand\"),E(this,\"client\"),E(this,\"httpProviders\"),E(this,\"events\"),E(this,\"namespace\"),E(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){if(!this.httpProviders[t]){const i=e||d(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,i)}this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;t[e]=this.createHttpProvider(e,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);return typeof i>\"u\"?void 0:new f(new g(i,h(\"disableProviderPing\")))}}var qe=Object.defineProperty,je=(s,t,e)=>t in s?qe(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,N=(s,t,e)=>je(s,typeof t!=\"symbol\"?t+\"\":t,e);class Re{constructor(t){N(this,\"name\",\"cip34\"),N(this,\"client\"),N(this,\"httpProviders\"),N(this,\"events\"),N(this,\"namespace\"),N(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{const i=this.getCardanoRPCUrl(e),n=b(e);t[n]=this.createHttpProvider(n,i)}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}getCardanoRPCUrl(t){const e=this.namespace.rpcMap;if(e)return e[t]}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||this.getCardanoRPCUrl(t);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var _e=Object.defineProperty,Ue=(s,t,e)=>t in s?_e(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,S=(s,t,e)=>Ue(s,typeof t!=\"symbol\"?t+\"\":t,e);class Fe{constructor(t){S(this,\"name\",\"elrond\"),S(this,\"client\"),S(this,\"httpProviders\"),S(this,\"events\"),S(this,\"namespace\"),S(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Le=Object.defineProperty,Me=(s,t,e)=>t in s?Le(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,D=(s,t,e)=>Me(s,typeof t!=\"symbol\"?t+\"\":t,e);class xe{constructor(t){D(this,\"name\",\"multiversx\"),D(this,\"client\"),D(this,\"httpProviders\"),D(this,\"events\"),D(this,\"namespace\"),D(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Be=Object.defineProperty,Ge=(s,t,e)=>t in s?Be(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,q=(s,t,e)=>Ge(s,typeof t!=\"symbol\"?t+\"\":t,e);class Je{constructor(t){q(this,\"name\",\"near\"),q(this,\"client\"),q(this,\"httpProviders\"),q(this,\"events\"),q(this,\"namespace\"),q(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){if(this.chainId=t,!this.httpProviders[t]){const i=e||d(`${this.name}:${t}`,this.namespace);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,i)}this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;t[e]=this.createHttpProvider(e,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace);return typeof i>\"u\"?void 0:new f(new g(i,h(\"disableProviderPing\")))}}var ze=Object.defineProperty,ke=(s,t,e)=>t in s?ze(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,j=(s,t,e)=>ke(s,typeof t!=\"symbol\"?t+\"\":t,e);class We{constructor(t){j(this,\"name\",\"tezos\"),j(this,\"client\"),j(this,\"httpProviders\"),j(this,\"events\"),j(this,\"namespace\"),j(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){if(this.chainId=t,!this.httpProviders[t]){const i=e||d(`${this.name}:${t}`,this.namespace);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,i)}this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{t[e]=this.createHttpProvider(e)}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace);return typeof i>\"u\"?void 0:new f(new g(i))}}var Ke=Object.defineProperty,Ve=(s,t,e)=>t in s?Ke(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,R=(s,t,e)=>Ve(s,typeof t!=\"symbol\"?t+\"\":t,e);class Xe{constructor(t){R(this,\"name\",I),R(this,\"client\"),R(this,\"httpProviders\"),R(this,\"events\"),R(this,\"namespace\"),R(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(t.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(t.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(t.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(t.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider(t.chainId).request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){var t,e;const i={};return(e=(t=this.namespace)==null?void 0:t.accounts)==null||e.forEach(n=>{const a=T(n);i[`${a.namespace}:${a.reference}`]=this.createHttpProvider(n)}),i}getHttpProvider(t){const e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Ye=Object.defineProperty,Qe=Object.defineProperties,Ze=Object.getOwnPropertyDescriptors,It=Object.getOwnPropertySymbols,Te=Object.prototype.hasOwnProperty,ts=Object.prototype.propertyIsEnumerable,Y=(s,t,e)=>t in s?Ye(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,x=(s,t)=>{for(var e in t||(t={}))Te.call(t,e)&&Y(s,e,t[e]);if(It)for(var e of It(t))ts.call(t,e)&&Y(s,e,t[e]);return s},Q=(s,t)=>Qe(s,Ze(t)),l=(s,t,e)=>Y(s,typeof t!=\"symbol\"?t+\"\":t,e);class B{constructor(t){l(this,\"client\"),l(this,\"namespaces\"),l(this,\"optionalNamespaces\"),l(this,\"sessionProperties\"),l(this,\"scopedProperties\"),l(this,\"events\",new Nt),l(this,\"rpcProviders\",{}),l(this,\"session\"),l(this,\"providerOpts\"),l(this,\"logger\"),l(this,\"uri\"),l(this,\"disableProviderPing\",!1),this.providerOpts=t,this.logger=typeof t?.logger<\"u\"&&typeof t?.logger!=\"string\"?t.logger:Ot(At({level:t?.logger||et})),this.disableProviderPing=t?.disableProviderPing||!1}static async init(t){const e=new B(t);return await e.initialize(),e}async request(t,e,i){const[n,a]=this.validateChain(e);if(!this.session)throw new Error(\"Please call connect() before request()\");return await this.getProvider(n).request({request:x({},t),chainId:`${n}:${a}`,topic:this.session.topic,expiry:i})}sendAsync(t,e,i,n){const a=new Date().getTime();this.request(t,i,n).then(r=>e(null,Et(a,r))).catch(r=>e(r,void 0))}async enable(){if(!this.client)throw new Error(\"Sign Client not initialized\");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties}),await this.requestAccounts()}async disconnect(){var t;if(!this.session)throw new Error(\"Please call connect() before enable()\");await this.client.disconnect({topic:(t=this.session)==null?void 0:t.topic,reason:tt(\"USER_DISCONNECTED\")}),await this.cleanup()}async connect(t){if(!this.client)throw new Error(\"Sign Client not initialized\");if(this.setNamespaces(t),await this.cleanupPendingPairings(),!t.skipPairing)return await this.pair(t.pairingTopic)}async authenticate(t,e){if(!this.client)throw new Error(\"Sign Client not initialized\");this.setNamespaces(t),await this.cleanupPendingPairings();const{uri:i,response:n}=await this.client.authenticate(t,e);i&&(this.uri=i,this.events.emit(\"display_uri\",i));const a=await n();if(this.session=a.session,this.session){const r=gt(this.session.namespaces);this.namespaces=M(this.namespaces,r),await this.persist(\"namespaces\",this.namespaces),this.onConnect()}return a}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}removeListener(t,e){this.events.removeListener(t,e)}off(t,e){this.events.off(t,e)}get isWalletConnect(){return!0}async pair(t){const{uri:e,approval:i}=await this.client.connect({pairingTopic:t,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});e&&(this.uri=e,this.events.emit(\"display_uri\",e));const n=await i();this.session=n;const a=gt(n.namespaces);return this.namespaces=M(this.namespaces,a),await this.persist(\"namespaces\",this.namespaces),await this.persist(\"optionalNamespaces\",this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(t,e){try{if(!this.session)return;const[i,n]=this.validateChain(t),a=this.getProvider(i);a.name===I?a.setDefaultChain(`${i}:${n}`,e):a.setDefaultChain(n,e)}catch(i){if(!/Please call connect/.test(i.message))throw i}}async cleanupPendingPairings(t={}){this.logger.info(\"Cleaning up inactive pairings...\");const e=this.client.pairing.getAll();if(z(e)){for(const i of e)t.deletePairings?this.client.core.expirer.set(i.topic,0):await this.client.core.relayer.subscriber.unsubscribe(i.topic);this.logger.info(`Inactive pairings cleared: ${e.length}`)}}abortPairingAttempt(){this.logger.warn(\"abortPairingAttempt is deprecated. This is now a no-op.\")}async checkStorage(){this.namespaces=await this.getFromStore(\"namespaces\")||{},this.optionalNamespaces=await this.getFromStore(\"optionalNamespaces\")||{},this.session&&this.createProviders()}async initialize(){this.logger.trace(\"Initialized\"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){var t,e;if(this.client=this.providerOpts.client||await $t.init({core:this.providerOpts.core,logger:this.providerOpts.logger||et,relayUrl:this.providerOpts.relayUrl||St,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name,customStoragePrefix:this.providerOpts.customStoragePrefix,telemetryEnabled:this.providerOpts.telemetryEnabled}),this.providerOpts.session)try{this.session=this.client.session.get(this.providerOpts.session.topic)}catch(i){throw this.logger.error(\"Failed to get session\",i),new Error(`The provided session: ${(e=(t=this.providerOpts)==null?void 0:t.session)==null?void 0:e.topic} doesn't exist in the Sign client`)}else{const i=this.client.session.getAll();this.session=i[0]}this.logger.trace(\"SignClient Initialized\")}createProviders(){if(!this.client)throw new Error(\"Sign Client not initialized\");if(!this.session)throw new Error(\"Session not initialized. Please call connect() before enable()\");const t=[...new Set(Object.keys(this.session.namespaces).map(e=>_(e)))];V(\"client\",this.client),V(\"events\",this.events),V(\"disableProviderPing\",this.disableProviderPing),t.forEach(e=>{if(!this.session)return;const i=le(e,this.session),n=ft(i),a=M(this.namespaces,this.optionalNamespaces),r=Q(x({},a[e]),{accounts:i,chains:n});switch(e){case\"eip155\":this.rpcProviders[e]=new Ie({namespace:r});break;case\"algorand\":this.rpcProviders[e]=new De({namespace:r});break;case\"solana\":this.rpcProviders[e]=new Ae({namespace:r});break;case\"cosmos\":this.rpcProviders[e]=new Ee({namespace:r});break;case\"polkadot\":this.rpcProviders[e]=new ve({namespace:r});break;case\"cip34\":this.rpcProviders[e]=new Re({namespace:r});break;case\"elrond\":this.rpcProviders[e]=new Fe({namespace:r});break;case\"multiversx\":this.rpcProviders[e]=new xe({namespace:r});break;case\"near\":this.rpcProviders[e]=new Je({namespace:r});break;case\"tezos\":this.rpcProviders[e]=new We({namespace:r});break;default:this.rpcProviders[I]?this.rpcProviders[I].updateNamespace(r):this.rpcProviders[I]=new Xe({namespace:r})}})}registerEventListeners(){if(typeof this.client>\"u\")throw new Error(\"Sign Client is not initialized\");this.client.on(\"session_ping\",t=>{var e;const{topic:i}=t;i===((e=this.session)==null?void 0:e.topic)&&this.events.emit(\"session_ping\",t)}),this.client.on(\"session_event\",t=>{var e;const{params:i,topic:n}=t;if(n!==((e=this.session)==null?void 0:e.topic))return;const{event:a}=i;if(a.name===\"accountsChanged\"){const r=a.data;r&&z(r)&&this.events.emit(\"accountsChanged\",r.map(vt))}else if(a.name===\"chainChanged\"){const r=i.chainId,c=i.event.data,o=_(r),m=K(r)!==K(c)?`${o}:${K(c)}`:r;this.onChainChanged(m)}else this.events.emit(a.name,a.data);this.events.emit(\"session_event\",t)}),this.client.on(\"session_update\",({topic:t,params:e})=>{var i,n;if(t!==((i=this.session)==null?void 0:i.topic))return;const{namespaces:a}=e,r=(n=this.client)==null?void 0:n.session.get(t);this.session=Q(x({},r),{namespaces:a}),this.onSessionUpdate(),this.events.emit(\"session_update\",{topic:t,params:e})}),this.client.on(\"session_delete\",async t=>{var e;t.topic===((e=this.session)==null?void 0:e.topic)&&(await this.cleanup(),this.events.emit(\"session_delete\",t),this.events.emit(\"disconnect\",Q(x({},tt(\"USER_DISCONNECTED\")),{data:t.topic})))}),this.on(u.DEFAULT_CHAIN_CHANGED,t=>{this.onChainChanged(t,!0)})}getProvider(t){return this.rpcProviders[t]||this.rpcProviders[I]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(t=>{var e;this.getProvider(t).updateNamespace((e=this.session)==null?void 0:e.namespaces[t])})}setNamespaces(t){const{namespaces:e={},optionalNamespaces:i={},sessionProperties:n,scopedProperties:a}=t;this.optionalNamespaces=M(e,i),this.sessionProperties=n,this.scopedProperties=a}validateChain(t){const[e,i]=t?.split(\":\")||[\"\",\"\"];if(!this.namespaces||!Object.keys(this.namespaces).length)return[e,i];if(e&&!Object.keys(this.namespaces||{}).map(r=>_(r)).includes(e))throw new Error(`Namespace '${e}' is not configured. Please call connect() first with namespace config.`);if(e&&i)return[e,i];const n=_(Object.keys(this.namespaces)[0]),a=this.rpcProviders[n].getDefaultChain();return[n,a]}async requestAccounts(){const[t]=this.validateChain();return await this.getProvider(t).requestAccounts()}async onChainChanged(t,e=!1){if(!this.namespaces)return;const[i,n]=this.validateChain(t);if(!n)return;this.updateNamespaceChain(i,n),this.events.emit(\"chainChanged\",n);const a=this.getProvider(i).getDefaultChain();e||this.getProvider(i).setDefaultChain(n),this.emitAccountsChangedOnChainChange({namespace:i,previousChainId:a,newChainId:t}),await this.persist(\"namespaces\",this.namespaces)}emitAccountsChangedOnChainChange({namespace:t,previousChainId:e,newChainId:i}){var n,a;try{if(e===i)return;const r=(a=(n=this.session)==null?void 0:n.namespaces[t])==null?void 0:a.accounts;if(!r)return;const c=r.filter(o=>o.includes(`${i}:`)).map(vt);if(!z(c))return;this.events.emit(\"accountsChanged\",c)}catch(r){this.logger.warn(\"Failed to emit accountsChanged on chain change\",r)}}updateNamespaceChain(t,e){if(!this.namespaces)return;const i=this.namespaces[t]?t:`${t}:${e}`,n={chains:[],methods:[],events:[],defaultChain:e};this.namespaces[i]?this.namespaces[i]&&(this.namespaces[i].defaultChain=e):this.namespaces[i]=n}onConnect(){this.createProviders(),this.events.emit(\"connect\",{session:this.session})}async cleanup(){this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,await this.deleteFromStore(\"namespaces\"),await this.deleteFromStore(\"optionalNamespaces\"),await this.deleteFromStore(\"sessionProperties\"),this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0}),await this.cleanupStorage()}async persist(t,e){var i;const n=((i=this.session)==null?void 0:i.topic)||\"\";await this.client.core.storage.setItem(`${U}/${t}${n}`,e)}async getFromStore(t){var e;const i=((e=this.session)==null?void 0:e.topic)||\"\";return await this.client.core.storage.getItem(`${U}/${t}${i}`)}async deleteFromStore(t){var e;const i=((e=this.session)==null?void 0:e.topic)||\"\";await this.client.core.storage.removeItem(`${U}/${t}${i}`)}async cleanupStorage(){var t;try{if(((t=this.client)==null?void 0:t.session.length)>0)return;const e=await this.client.core.storage.getKeys();for(const i of e)i.startsWith(U)&&await this.client.core.storage.removeItem(i)}catch(e){this.logger.warn(\"Failed to cleanup storage\",e)}}}const es=B;export{es as UniversalProvider,B as default};\n//# sourceMappingURL=index.es.js.map\n","import { ConnectorController } from '../controllers/ConnectorController.js';\n/**\n * Checks if the given namespace is associated with the specified connector id.\n * @param namespace - The namespace to check.\n * @param connectorId - The connector id to compare against.\n * @returns True if the namespace is associated with the connector id, false otherwise.\n */\nexport function checkNamespaceConnectorId(namespace, connectorId) {\n    return ConnectorController.getConnectorId(namespace) === connectorId;\n}\n//# sourceMappingURL=ConnectorControllerUtil.js.map","import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { ChainController } from '../controllers/ChainController.js';\nimport { checkNamespaceConnectorId } from './ConnectorControllerUtil.js';\n/**\n * Returns the array of chains to disconnect from the connector with the given namespace.\n * If no namespace is provided, it returns all chains.\n * @param namespace - The namespace of the connector to disconnect from.\n * @returns An array of chains to disconnect.\n */\nexport function getChainsToDisconnect(namespace) {\n    const namespaces = Array.from(ChainController.state.chains.keys());\n    let chains = [];\n    if (namespace) {\n        chains.push([namespace, ChainController.state.chains.get(namespace)]);\n        if (checkNamespaceConnectorId(namespace, CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT)) {\n            namespaces.forEach(ns => {\n                if (ns !== namespace &&\n                    checkNamespaceConnectorId(ns, CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT)) {\n                    chains.push([ns, ChainController.state.chains.get(ns)]);\n                }\n            });\n        }\n        else if (checkNamespaceConnectorId(namespace, CommonConstantsUtil.CONNECTOR_ID.AUTH)) {\n            namespaces.forEach(ns => {\n                if (ns !== namespace &&\n                    checkNamespaceConnectorId(ns, CommonConstantsUtil.CONNECTOR_ID.AUTH)) {\n                    chains.push([ns, ChainController.state.chains.get(ns)]);\n                }\n            });\n        }\n    }\n    else {\n        chains = Array.from(ChainController.state.chains.entries());\n    }\n    return chains;\n}\n//# sourceMappingURL=ChainControllerUtil.js.map","export const ConstantsUtil = {\n    METMASK_CONNECTOR_NAME: 'MetaMask',\n    TRUST_CONNECTOR_NAME: 'Trust Wallet',\n    SOLFLARE_CONNECTOR_NAME: 'Solflare',\n    PHANTOM_CONNECTOR_NAME: 'Phantom',\n    COIN98_CONNECTOR_NAME: 'Coin98',\n    MAGIC_EDEN_CONNECTOR_NAME: 'Magic Eden',\n    BACKPACK_CONNECTOR_NAME: 'Backpack',\n    BITGET_CONNECTOR_NAME: 'Bitget Wallet',\n    FRONTIER_CONNECTOR_NAME: 'Frontier',\n    XVERSE_CONNECTOR_NAME: 'Xverse Wallet',\n    LEATHER_CONNECTOR_NAME: 'Leather',\n    EIP155: 'eip155',\n    ADD_CHAIN_METHOD: 'wallet_addEthereumChain',\n    EIP6963_ANNOUNCE_EVENT: 'eip6963:announceProvider',\n    EIP6963_REQUEST_EVENT: 'eip6963:requestProvider',\n    CONNECTOR_RDNS_MAP: {\n        coinbaseWallet: 'com.coinbase.wallet',\n        coinbaseWalletSDK: 'com.coinbase.wallet'\n    },\n    CONNECTOR_TYPE_EXTERNAL: 'EXTERNAL',\n    CONNECTOR_TYPE_WALLET_CONNECT: 'WALLET_CONNECT',\n    CONNECTOR_TYPE_INJECTED: 'INJECTED',\n    CONNECTOR_TYPE_ANNOUNCED: 'ANNOUNCED',\n    CONNECTOR_TYPE_AUTH: 'AUTH',\n    CONNECTOR_TYPE_MULTI_CHAIN: 'MULTI_CHAIN',\n    CONNECTOR_TYPE_W3M_AUTH: 'ID_AUTH'\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nexport const PresetsUtil = {\n    ConnectorExplorerIds: {\n        [CommonConstantsUtil.CONNECTOR_ID.COINBASE]: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa',\n        [CommonConstantsUtil.CONNECTOR_ID.COINBASE_SDK]: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa',\n        [CommonConstantsUtil.CONNECTOR_ID.SAFE]: '225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f',\n        [CommonConstantsUtil.CONNECTOR_ID.LEDGER]: '19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927',\n        [CommonConstantsUtil.CONNECTOR_ID.OKX]: '971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709',\n        [ConstantsUtil.METMASK_CONNECTOR_NAME]: 'c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96',\n        [ConstantsUtil.TRUST_CONNECTOR_NAME]: '4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0',\n        [ConstantsUtil.SOLFLARE_CONNECTOR_NAME]: '1ca0bdd4747578705b1939af023d120677c64fe6ca76add81fda36e350605e79',\n        [ConstantsUtil.PHANTOM_CONNECTOR_NAME]: 'a797aa35c0fadbfc1a53e7f675162ed5226968b44a19ee3d24385c64d1d3c393',\n        [ConstantsUtil.COIN98_CONNECTOR_NAME]: '2a3c89040ac3b723a1972a33a125b1db11e258a6975d3a61252cd64e6ea5ea01',\n        [ConstantsUtil.MAGIC_EDEN_CONNECTOR_NAME]: '8b830a2b724a9c3fbab63af6f55ed29c9dfa8a55e732dc88c80a196a2ba136c6',\n        [ConstantsUtil.BACKPACK_CONNECTOR_NAME]: '2bd8c14e035c2d48f184aaa168559e86b0e3433228d3c4075900a221785019b0',\n        [ConstantsUtil.BITGET_CONNECTOR_NAME]: '38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662',\n        [ConstantsUtil.FRONTIER_CONNECTOR_NAME]: '85db431492aa2e8672e93f4ea7acf10c88b97b867b0d373107af63dc4880f041',\n        [ConstantsUtil.XVERSE_CONNECTOR_NAME]: '2a87d74ae02e10bdd1f51f7ce6c4e1cc53cd5f2c0b6b5ad0d7b3007d2b13de7b',\n        [ConstantsUtil.LEATHER_CONNECTOR_NAME]: '483afe1df1df63daf313109971ff3ef8356ddf1cc4e45877d205eee0b7893a13'\n    },\n    NetworkImageIds: {\n        1: 'ba0ba0cd-17c6-4806-ad93-f9d174f17900',\n        42161: '3bff954d-5cb0-47a0-9a23-d20192e74600',\n        43114: '30c46e53-e989-45fb-4549-be3bd4eb3b00',\n        56: '93564157-2e8e-4ce7-81df-b264dbee9b00',\n        250: '06b26297-fe0c-4733-5d6b-ffa5498aac00',\n        10: 'ab9c186a-c52f-464b-2906-ca59d760a400',\n        137: '41d04d42-da3b-4453-8506-668cc0727900',\n        5000: 'e86fae9b-b770-4eea-e520-150e12c81100',\n        295: '6a97d510-cac8-4e58-c7ce-e8681b044c00',\n        11_155_111: 'e909ea0a-f92a-4512-c8fc-748044ea6800',\n        84532: 'a18a7ecd-e307-4360-4746-283182228e00',\n        1301: '4eeea7ef-0014-4649-5d1d-07271a80f600',\n        130: '2257980a-3463-48c6-cbac-a42d2a956e00',\n        10_143: '0a728e83-bacb-46db-7844-948f05434900',\n        100: '02b53f6a-e3d4-479e-1cb4-21178987d100',\n        9001: 'f926ff41-260d-4028-635e-91913fc28e00',\n        324: 'b310f07f-4ef7-49f3-7073-2a0a39685800',\n        314: '5a73b3dd-af74-424e-cae0-0de859ee9400',\n        4689: '34e68754-e536-40da-c153-6ef2e7188a00',\n        1088: '3897a66d-40b9-4833-162f-a2c90531c900',\n        1284: '161038da-44ae-4ec7-1208-0ea569454b00',\n        1285: 'f1d73bb6-5450-4e18-38f7-fb6484264a00',\n        7777777: '845c60df-d429-4991-e687-91ae45791600',\n        42220: 'ab781bbc-ccc6-418d-d32d-789b15da1f00',\n        8453: '7289c336-3981-4081-c5f4-efc26ac64a00',\n        1313161554: '3ff73439-a619-4894-9262-4470c773a100',\n        2020: 'b8101fc0-9c19-4b6f-ec65-f6dfff106e00',\n        2021: 'b8101fc0-9c19-4b6f-ec65-f6dfff106e00',\n        80094: 'e329c2c9-59b0-4a02-83e4-212ff3779900',\n        2741: 'fc2427d1-5af9-4a9c-8da5-6f94627cd900',\n        '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n        '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z': 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n        EtWTRABZaYq6iMfeYKouRu166VU2xqa1: 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n        '000000000019d6689c085ae165831e93': '0b4838db-0161-4ffe-022d-532bf03dba00',\n        '000000000933ea01ad0ee984209779ba': '39354064-d79b-420b-065d-f980c4b78200'\n    },\n    ConnectorImageIds: {\n        [CommonConstantsUtil.CONNECTOR_ID.COINBASE]: '0c2840c3-5b04-4c44-9661-fbd4b49e1800',\n        [CommonConstantsUtil.CONNECTOR_ID.COINBASE_SDK]: '0c2840c3-5b04-4c44-9661-fbd4b49e1800',\n        [CommonConstantsUtil.CONNECTOR_ID.SAFE]: '461db637-8616-43ce-035a-d89b8a1d5800',\n        [CommonConstantsUtil.CONNECTOR_ID.LEDGER]: '54a1aa77-d202-4f8d-0fb2-5d2bb6db0300',\n        [CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT]: 'ef1a1fcf-7fe8-4d69-bd6d-fda1345b4400',\n        [CommonConstantsUtil.CONNECTOR_ID.INJECTED]: '07ba87ed-43aa-4adf-4540-9e6a2b9cae00'\n    },\n    ConnectorNamesMap: {\n        [CommonConstantsUtil.CONNECTOR_ID.INJECTED]: 'Browser Wallet',\n        [CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT]: 'WalletConnect',\n        [CommonConstantsUtil.CONNECTOR_ID.COINBASE]: 'Coinbase',\n        [CommonConstantsUtil.CONNECTOR_ID.COINBASE_SDK]: 'Coinbase',\n        [CommonConstantsUtil.CONNECTOR_ID.LEDGER]: 'Ledger',\n        [CommonConstantsUtil.CONNECTOR_ID.SAFE]: 'Safe'\n    },\n    ConnectorTypesMap: {\n        [CommonConstantsUtil.CONNECTOR_ID.INJECTED]: 'INJECTED',\n        [CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT]: 'WALLET_CONNECT',\n        [CommonConstantsUtil.CONNECTOR_ID.EIP6963]: 'ANNOUNCED',\n        [CommonConstantsUtil.CONNECTOR_ID.AUTH]: 'AUTH'\n    },\n    WalletConnectRpcChainIds: [\n        1,\n        5,\n        11155111,\n        10,\n        420,\n        42161,\n        421613,\n        137,\n        80001,\n        42220,\n        1313161554,\n        1313161555,\n        56,\n        97,\n        43114,\n        43113,\n        100,\n        8453,\n        84531,\n        7777777,\n        999,\n        324,\n        280\n    ]\n};\n//# sourceMappingURL=PresetsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const HelpersUtil = {\n    getCaipTokens(tokens) {\n        if (!tokens) {\n            return undefined;\n        }\n        const caipTokens = {};\n        Object.entries(tokens).forEach(([id, token]) => {\n            caipTokens[`${ConstantsUtil.EIP155}:${id}`] = token;\n        });\n        return caipTokens;\n    },\n    isLowerCaseMatch(str1, str2) {\n        return str1?.toLowerCase() === str2?.toLowerCase();\n    }\n};\n//# sourceMappingURL=HelpersUtil.js.map","const abortController = new AbortController();\nexport const ErrorUtil = {\n    EmbeddedWalletAbortController: abortController,\n    UniversalProviderErrors: {\n        UNAUTHORIZED_DOMAIN_NOT_ALLOWED: {\n            message: 'Unauthorized: origin not allowed',\n            alertErrorKey: 'INVALID_APP_CONFIGURATION'\n        },\n        JWT_VALIDATION_ERROR: {\n            message: 'JWT validation error: JWT Token is not yet valid',\n            alertErrorKey: 'JWT_TOKEN_NOT_VALID'\n        },\n        INVALID_KEY: {\n            message: 'Unauthorized: invalid key',\n            alertErrorKey: 'INVALID_PROJECT_ID'\n        }\n    },\n    ALERT_ERRORS: {\n        SWITCH_NETWORK_NOT_FOUND: {\n            shortMessage: 'Network Not Found',\n            longMessage: \"Network not found - please make sure it is included in 'networks' array in createAppKit function\"\n        },\n        INVALID_APP_CONFIGURATION: {\n            shortMessage: 'Invalid App Configuration',\n            longMessage: () => `Origin ${isSafe() ? window.origin : 'unknown'} not found on Allowlist - update configuration on cloud.reown.com`\n        },\n        IFRAME_LOAD_FAILED: {\n            shortMessage: 'Network Error - Could not load embedded wallet',\n            longMessage: () => 'There was an issue loading the embedded wallet. Please try again later.'\n        },\n        IFRAME_REQUEST_TIMEOUT: {\n            shortMessage: 'Embedded Wallet Request Timed Out',\n            longMessage: () => 'There was an issue doing the request to the embedded wallet. Please try again later.'\n        },\n        UNVERIFIED_DOMAIN: {\n            shortMessage: 'Invalid App Configuration',\n            longMessage: () => 'There was an issue loading the embedded wallet. Please verify that your domain is allowed at cloud.reown.com'\n        },\n        JWT_TOKEN_NOT_VALID: {\n            shortMessage: 'Session Expired',\n            longMessage: 'Invalid session found on UniversalProvider - please check your time settings and connect again'\n        },\n        INVALID_PROJECT_ID: {\n            shortMessage: 'Invalid App Configuration',\n            longMessage: 'Invalid Project ID - update configuration'\n        },\n        PROJECT_ID_NOT_CONFIGURED: {\n            shortMessage: 'Project ID Not Configured',\n            longMessage: 'Project ID Not Configured - update configuration on cloud.reown.com'\n        }\n    }\n};\nfunction isSafe() {\n    return typeof window !== 'undefined';\n}\n//# sourceMappingURL=ErrorUtil.js.map","import { generatePlatformLogger, getDefaultLoggerOptions } from '@walletconnect/logger';\nexport const LoggerUtil = {\n    createLogger(onError, level = 'error') {\n        const loggerOptions = getDefaultLoggerOptions({\n            level\n        });\n        const { logger } = generatePlatformLogger({\n            opts: loggerOptions\n        });\n        logger.error = (...args) => {\n            for (const arg of args) {\n                if (arg instanceof Error) {\n                    onError(arg, ...args);\n                    return;\n                }\n            }\n            onError(undefined, ...args);\n        };\n        return logger;\n    }\n};\n//# sourceMappingURL=LoggerUtil.js.map","import { fallback, http } from 'viem';\nimport { ConstantsUtil } from '@reown/appkit-common';\nimport { ChainController, StorageUtil } from '@reown/appkit-controllers';\nimport { PresetsUtil } from './PresetsUtil.js';\nconst RPC_URL_HOST = 'rpc.walletconnect.org';\nexport function getBlockchainApiRpcUrl(caipNetworkId, projectId) {\n    const url = new URL('https://rpc.walletconnect.org/v1/');\n    url.searchParams.set('chainId', caipNetworkId);\n    url.searchParams.set('projectId', projectId);\n    return url.toString();\n}\nconst WC_HTTP_RPC_SUPPORTED_CHAINS = [\n    'near:mainnet',\n    'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n    'eip155:1101',\n    'eip155:56',\n    'eip155:42161',\n    'eip155:7777777',\n    'eip155:59144',\n    'eip155:324',\n    'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n    'eip155:5000',\n    'solana:4sgjmw1sunhzsxgspuhpqldx6wiyjntz',\n    'eip155:80084',\n    'eip155:5003',\n    'eip155:100',\n    'eip155:8453',\n    'eip155:42220',\n    'eip155:1313161555',\n    'eip155:17000',\n    'eip155:1',\n    'eip155:300',\n    'eip155:1313161554',\n    'eip155:1329',\n    'eip155:84532',\n    'eip155:421614',\n    'eip155:11155111',\n    'eip155:8217',\n    'eip155:43114',\n    'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',\n    'eip155:999999999',\n    'eip155:11155420',\n    'eip155:80002',\n    'eip155:97',\n    'eip155:43113',\n    'eip155:137',\n    'eip155:10',\n    'eip155:1301',\n    'bip122:000000000019d6689c085ae165831e93',\n    'bip122:000000000933ea01ad0ee984209779ba'\n];\nexport const CaipNetworksUtil = {\n    extendRpcUrlWithProjectId(rpcUrl, projectId) {\n        let isReownUrl = false;\n        try {\n            const url = new URL(rpcUrl);\n            isReownUrl = url.host === RPC_URL_HOST;\n        }\n        catch (e) {\n            isReownUrl = false;\n        }\n        if (isReownUrl) {\n            const url = new URL(rpcUrl);\n            if (!url.searchParams.has('projectId')) {\n                url.searchParams.set('projectId', projectId);\n            }\n            return url.toString();\n        }\n        return rpcUrl;\n    },\n    isCaipNetwork(network) {\n        return 'chainNamespace' in network && 'caipNetworkId' in network;\n    },\n    getChainNamespace(network) {\n        if (this.isCaipNetwork(network)) {\n            return network.chainNamespace;\n        }\n        return ConstantsUtil.CHAIN.EVM;\n    },\n    getCaipNetworkId(network) {\n        if (this.isCaipNetwork(network)) {\n            return network.caipNetworkId;\n        }\n        return `${ConstantsUtil.CHAIN.EVM}:${network.id}`;\n    },\n    getDefaultRpcUrl(caipNetwork, caipNetworkId, projectId) {\n        const defaultRpcUrl = caipNetwork.rpcUrls?.default?.http?.[0];\n        if (WC_HTTP_RPC_SUPPORTED_CHAINS.includes(caipNetworkId)) {\n            return getBlockchainApiRpcUrl(caipNetworkId, projectId);\n        }\n        return defaultRpcUrl || '';\n    },\n    extendCaipNetwork(caipNetwork, { customNetworkImageUrls, projectId, customRpcUrls }) {\n        const chainNamespace = this.getChainNamespace(caipNetwork);\n        const caipNetworkId = this.getCaipNetworkId(caipNetwork);\n        const networkDefaultRpcUrl = caipNetwork.rpcUrls.default.http?.[0];\n        const reownRpcUrl = this.getDefaultRpcUrl(caipNetwork, caipNetworkId, projectId);\n        const chainDefaultRpcUrl = caipNetwork?.rpcUrls?.['chainDefault']?.http?.[0] || networkDefaultRpcUrl;\n        const customRpcUrlsOfNetwork = customRpcUrls?.[caipNetworkId]?.map(i => i.url) || [];\n        const rpcUrls = [...customRpcUrlsOfNetwork, reownRpcUrl];\n        const rpcUrlsWithoutReown = [...customRpcUrlsOfNetwork];\n        if (chainDefaultRpcUrl && !rpcUrlsWithoutReown.includes(chainDefaultRpcUrl)) {\n            rpcUrlsWithoutReown.push(chainDefaultRpcUrl);\n        }\n        return {\n            ...caipNetwork,\n            chainNamespace,\n            caipNetworkId,\n            assets: {\n                imageId: PresetsUtil.NetworkImageIds[caipNetwork.id],\n                imageUrl: customNetworkImageUrls?.[caipNetwork.id]\n            },\n            rpcUrls: {\n                ...caipNetwork.rpcUrls,\n                default: {\n                    http: rpcUrls\n                },\n                chainDefault: {\n                    http: rpcUrlsWithoutReown\n                }\n            }\n        };\n    },\n    extendCaipNetworks(caipNetworks, { customNetworkImageUrls, projectId, customRpcUrls }) {\n        return caipNetworks.map(caipNetwork => CaipNetworksUtil.extendCaipNetwork(caipNetwork, {\n            customNetworkImageUrls,\n            customRpcUrls,\n            projectId\n        }));\n    },\n    getViemTransport(caipNetwork, projectId, customRpcUrls) {\n        const transports = [];\n        customRpcUrls?.forEach(rpcUrl => {\n            transports.push(http(rpcUrl.url, rpcUrl.config));\n        });\n        if (WC_HTTP_RPC_SUPPORTED_CHAINS.includes(caipNetwork.caipNetworkId)) {\n            transports.push(http(getBlockchainApiRpcUrl(caipNetwork.caipNetworkId, projectId), {\n                fetchOptions: {\n                    headers: {\n                        'Content-Type': 'text/plain'\n                    }\n                }\n            }));\n        }\n        caipNetwork?.rpcUrls?.default?.http?.forEach(rpcUrl => {\n            transports.push(http(rpcUrl));\n        });\n        return fallback(transports);\n    },\n    extendWagmiTransports(caipNetwork, projectId, transport) {\n        if (WC_HTTP_RPC_SUPPORTED_CHAINS.includes(caipNetwork.caipNetworkId)) {\n            const reownRpcUrl = this.getDefaultRpcUrl(caipNetwork, caipNetwork.caipNetworkId, projectId);\n            return fallback([transport, http(reownRpcUrl)]);\n        }\n        return transport;\n    },\n    getUnsupportedNetwork(caipNetworkId) {\n        return {\n            id: caipNetworkId.split(':')[1],\n            caipNetworkId,\n            name: ConstantsUtil.UNSUPPORTED_NETWORK_NAME,\n            chainNamespace: caipNetworkId.split(':')[0],\n            nativeCurrency: {\n                name: '',\n                decimals: 0,\n                symbol: ''\n            },\n            rpcUrls: {\n                default: {\n                    http: []\n                }\n            }\n        };\n    },\n    getCaipNetworkFromStorage(defaultCaipNetwork) {\n        const caipNetworkIdFromStorage = StorageUtil.getActiveCaipNetworkId();\n        const caipNetworks = ChainController.getAllRequestedCaipNetworks();\n        const availableNamespaces = Array.from(ChainController.state.chains?.keys() || []);\n        const namespace = caipNetworkIdFromStorage?.split(':')[0];\n        const isNamespaceAvailable = namespace ? availableNamespaces.includes(namespace) : false;\n        const caipNetwork = caipNetworks?.find(cn => cn.caipNetworkId === caipNetworkIdFromStorage);\n        const isUnsupportedNetwork = isNamespaceAvailable && !caipNetwork && caipNetworkIdFromStorage;\n        if (isUnsupportedNetwork) {\n            return this.getUnsupportedNetwork(caipNetworkIdFromStorage);\n        }\n        if (caipNetwork) {\n            return caipNetwork;\n        }\n        if (defaultCaipNetwork) {\n            return defaultCaipNetwork;\n        }\n        return caipNetworks?.[0];\n    }\n};\n//# sourceMappingURL=CaipNetworkUtil.js.map","import { proxy, ref, subscribe } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nconst CLEAN_PROVIDERS_STATE = {\n    eip155: undefined,\n    solana: undefined,\n    polkadot: undefined,\n    bip122: undefined,\n    cosmos: undefined\n};\nconst state = proxy({\n    providers: { ...CLEAN_PROVIDERS_STATE },\n    providerIds: { ...CLEAN_PROVIDERS_STATE }\n});\nexport const ProviderUtil = {\n    state,\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    subscribe(callback) {\n        return subscribe(state, () => {\n            callback(state);\n        });\n    },\n    subscribeProviders(callback) {\n        return subscribe(state.providers, () => callback(state.providers));\n    },\n    setProvider(chainNamespace, provider) {\n        if (provider) {\n            state.providers[chainNamespace] = ref(provider);\n        }\n    },\n    getProvider(chainNamespace) {\n        return state.providers[chainNamespace];\n    },\n    setProviderId(chainNamespace, providerId) {\n        if (providerId) {\n            state.providerIds[chainNamespace] = providerId;\n        }\n    },\n    getProviderId(chainNamespace) {\n        if (!chainNamespace) {\n            return undefined;\n        }\n        return state.providerIds[chainNamespace];\n    },\n    reset() {\n        state.providers = { ...CLEAN_PROVIDERS_STATE };\n        state.providerIds = { ...CLEAN_PROVIDERS_STATE };\n    },\n    resetChain(chainNamespace) {\n        state.providers[chainNamespace] = undefined;\n        state.providerIds[chainNamespace] = undefined;\n    }\n};\n//# sourceMappingURL=ProviderUtil.js.map","export const ConstantsUtil = {\n    ACCOUNT_TABS: [{ label: 'Tokens' }, { label: 'NFTs' }, { label: 'Activity' }],\n    SECURE_SITE_ORIGIN: (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n        ? process.env['NEXT_PUBLIC_SECURE_SITE_ORIGIN']\n        : undefined) || 'https://secure.walletconnect.org',\n    VIEW_DIRECTION: {\n        Next: 'next',\n        Prev: 'prev'\n    },\n    DEFAULT_CONNECT_METHOD_ORDER: ['email', 'social', 'wallet'],\n    ANIMATION_DURATIONS: {\n        HeaderText: 120,\n        ModalHeight: 150,\n        ViewTransition: 150\n    }\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ApiController, ConnectorController, CoreHelperUtil, OptionsController, StorageUtil } from '@reown/appkit-controllers';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { ConnectorUtil } from './ConnectorUtil.js';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nexport const WalletUtil = {\n    filterOutDuplicatesByRDNS(wallets) {\n        const connectors = OptionsController.state.enableEIP6963\n            ? ConnectorController.state.connectors\n            : [];\n        const recent = StorageUtil.getRecentWallets();\n        const connectorRDNSs = connectors\n            .map(connector => connector.info?.rdns)\n            .filter(Boolean);\n        const recentRDNSs = recent.map(wallet => wallet.rdns).filter(Boolean);\n        const allRDNSs = connectorRDNSs.concat(recentRDNSs);\n        if (allRDNSs.includes('io.metamask.mobile') && CoreHelperUtil.isMobile()) {\n            const index = allRDNSs.indexOf('io.metamask.mobile');\n            allRDNSs[index] = 'io.metamask';\n        }\n        const filtered = wallets.filter(wallet => !allRDNSs.includes(String(wallet?.rdns)));\n        return filtered;\n    },\n    filterOutDuplicatesByIds(wallets) {\n        const connectors = ConnectorController.state.connectors.filter(connector => connector.type === 'ANNOUNCED' || connector.type === 'INJECTED');\n        const recent = StorageUtil.getRecentWallets();\n        const connectorIds = connectors.map(connector => connector.explorerId);\n        const recentIds = recent.map(wallet => wallet.id);\n        const allIds = connectorIds.concat(recentIds);\n        const filtered = wallets.filter(wallet => !allIds.includes(wallet?.id));\n        return filtered;\n    },\n    filterOutDuplicateWallets(wallets) {\n        const uniqueByRDNS = this.filterOutDuplicatesByRDNS(wallets);\n        const uniqueWallets = this.filterOutDuplicatesByIds(uniqueByRDNS);\n        return uniqueWallets;\n    },\n    markWalletsAsInstalled(wallets) {\n        const { connectors } = ConnectorController.state;\n        const { featuredWalletIds } = OptionsController.state;\n        const installedWalletRdnsMap = connectors\n            .filter(connector => connector.type === 'ANNOUNCED')\n            .reduce((rdnsMap, connector) => {\n            if (!connector.info?.rdns) {\n                return rdnsMap;\n            }\n            rdnsMap[connector.info.rdns] = true;\n            return rdnsMap;\n        }, {});\n        const walletsWithInstallationStatus = wallets.map(wallet => ({\n            ...wallet,\n            installed: Boolean(wallet.rdns) && Boolean(installedWalletRdnsMap[wallet.rdns ?? ''])\n        }));\n        const sortedWallets = walletsWithInstallationStatus.sort((walletA, walletB) => {\n            const installationComparison = Number(walletB.installed) - Number(walletA.installed);\n            if (installationComparison !== 0) {\n                return installationComparison;\n            }\n            if (featuredWalletIds?.length) {\n                const walletAFeaturedIndex = featuredWalletIds.indexOf(walletA.id);\n                const walletBFeaturedIndex = featuredWalletIds.indexOf(walletB.id);\n                if (walletAFeaturedIndex !== -1 && walletBFeaturedIndex !== -1) {\n                    return walletAFeaturedIndex - walletBFeaturedIndex;\n                }\n                if (walletAFeaturedIndex !== -1) {\n                    return -1;\n                }\n                if (walletBFeaturedIndex !== -1) {\n                    return 1;\n                }\n            }\n            return 0;\n        });\n        return sortedWallets;\n    },\n    getConnectOrderMethod(_features, _connectors) {\n        const connectMethodOrder = _features?.connectMethodsOrder || OptionsController.state.features?.connectMethodsOrder;\n        const connectors = _connectors || ConnectorController.state.connectors;\n        if (connectMethodOrder) {\n            return connectMethodOrder;\n        }\n        const { injected, announced } = ConnectorUtil.getConnectorsByType(connectors, ApiController.state.recommended, ApiController.state.featured);\n        const shownInjected = injected.filter(ConnectorUtil.showConnector);\n        const shownAnnounced = announced.filter(ConnectorUtil.showConnector);\n        if (shownInjected.length || shownAnnounced.length) {\n            return ['wallet', 'email', 'social'];\n        }\n        return ConstantsUtil.DEFAULT_CONNECT_METHOD_ORDER;\n    },\n    isExcluded(wallet) {\n        const isRDNSExcluded = Boolean(wallet.rdns) && ApiController.state.excludedWallets.some(w => w.rdns === wallet.rdns);\n        const isNameExcluded = Boolean(wallet.name) &&\n            ApiController.state.excludedWallets.some(w => HelpersUtil.isLowerCaseMatch(w.name, wallet.name));\n        return isRDNSExcluded || isNameExcluded;\n    }\n};\n//# sourceMappingURL=WalletUtil.js.map","import { ConstantsUtil } from '@reown/appkit-common';\nimport { ApiController, ChainController, ConnectionController, ConnectorController, CoreHelperUtil, OptionsController, StorageUtil } from '@reown/appkit-controllers';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { WalletUtil } from './WalletUtil.js';\nexport const ConnectorUtil = {\n    getConnectorsByType(connectors, recommended, featured) {\n        const { customWallets } = OptionsController.state;\n        const recent = StorageUtil.getRecentWallets();\n        const filteredRecommended = WalletUtil.filterOutDuplicateWallets(recommended);\n        const filteredFeatured = WalletUtil.filterOutDuplicateWallets(featured);\n        const multiChain = connectors.filter(connector => connector.type === 'MULTI_CHAIN');\n        const announced = connectors.filter(connector => connector.type === 'ANNOUNCED');\n        const injected = connectors.filter(connector => connector.type === 'INJECTED');\n        const external = connectors.filter(connector => connector.type === 'EXTERNAL');\n        return {\n            custom: customWallets,\n            recent,\n            external,\n            multiChain,\n            announced,\n            injected,\n            recommended: filteredRecommended,\n            featured: filteredFeatured\n        };\n    },\n    showConnector(connector) {\n        const rdns = connector.info?.rdns;\n        const isRDNSExcluded = Boolean(rdns) &&\n            ApiController.state.excludedWallets.some(wallet => Boolean(wallet.rdns) && wallet.rdns === rdns);\n        const isNameExcluded = Boolean(connector.name) &&\n            ApiController.state.excludedWallets.some(wallet => HelpersUtil.isLowerCaseMatch(wallet.name, connector.name));\n        if (connector.type === 'INJECTED') {\n            const isBrowserWallet = connector.name === 'Browser Wallet';\n            if (isBrowserWallet) {\n                if (!CoreHelperUtil.isMobile()) {\n                    return false;\n                }\n                if (CoreHelperUtil.isMobile() && !rdns && !ConnectionController.checkInstalled()) {\n                    return false;\n                }\n            }\n            if (isRDNSExcluded || isNameExcluded) {\n                return false;\n            }\n        }\n        if ((connector.type === 'ANNOUNCED' || connector.type === 'EXTERNAL') &&\n            (isRDNSExcluded || isNameExcluded)) {\n            return false;\n        }\n        return true;\n    },\n    getIsConnectedWithWC() {\n        const chains = Array.from(ChainController.state.chains.values());\n        const isConnectedWithWC = chains.some(chain => {\n            const connectorId = ConnectorController.getConnectorId(chain.namespace);\n            return connectorId === ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT;\n        });\n        return isConnectedWithWC;\n    },\n    getConnectorTypeOrder({ recommended, featured, custom, recent, announced, injected, multiChain, external, overriddenConnectors = OptionsController.state.features?.connectorTypeOrder ?? [] }) {\n        const isConnectedWithWC = ConnectorUtil.getIsConnectedWithWC();\n        const isWCEnabled = OptionsController.state.enableWalletConnect;\n        const allConnectors = [\n            { type: 'walletConnect', isEnabled: isWCEnabled && !isConnectedWithWC },\n            { type: 'recent', isEnabled: recent.length > 0 },\n            { type: 'injected', isEnabled: [...injected, ...announced, ...multiChain].length > 0 },\n            { type: 'featured', isEnabled: featured.length > 0 },\n            { type: 'custom', isEnabled: custom && custom.length > 0 },\n            { type: 'external', isEnabled: external.length > 0 },\n            { type: 'recommended', isEnabled: recommended.length > 0 }\n        ];\n        const enabledConnectors = allConnectors.filter(option => option.isEnabled);\n        const enabledConnectorTypes = new Set(enabledConnectors.map(option => option.type));\n        const prioritizedConnectors = overriddenConnectors\n            .filter(type => enabledConnectorTypes.has(type))\n            .map(type => ({ type, isEnabled: true }));\n        const remainingConnectors = enabledConnectors.filter(({ type: enabledConnectorType }) => {\n            const hasPrioritizedConnector = prioritizedConnectors.some(({ type: prioritizedConnectorType }) => prioritizedConnectorType === enabledConnectorType);\n            return !hasPrioritizedConnector;\n        });\n        return Array.from(new Set([...prioritizedConnectors, ...remainingConnectors].map(({ type }) => type)));\n    }\n};\n//# sourceMappingURL=ConnectorUtil.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { css, unsafeCSS } from 'lit';\nimport { getW3mThemeVariables } from '@reown/appkit-common';\nlet themeTag = undefined;\nlet darkModeTag = undefined;\nlet lightModeTag = undefined;\nexport function initializeTheming(themeVariables, themeMode) {\n    themeTag = document.createElement('style');\n    darkModeTag = document.createElement('style');\n    lightModeTag = document.createElement('style');\n    themeTag.textContent = createRootStyles(themeVariables).core.cssText;\n    darkModeTag.textContent = createRootStyles(themeVariables).dark.cssText;\n    lightModeTag.textContent = createRootStyles(themeVariables).light.cssText;\n    document.head.appendChild(themeTag);\n    document.head.appendChild(darkModeTag);\n    document.head.appendChild(lightModeTag);\n    setColorTheme(themeMode);\n}\nexport function setColorTheme(themeMode) {\n    if (darkModeTag && lightModeTag) {\n        if (themeMode === 'light') {\n            darkModeTag.removeAttribute('media');\n            lightModeTag.media = 'enabled';\n        }\n        else {\n            lightModeTag.removeAttribute('media');\n            darkModeTag.media = 'enabled';\n        }\n    }\n}\nexport function setThemeVariables(themeVariables) {\n    if (themeTag && darkModeTag && lightModeTag) {\n        themeTag.textContent = createRootStyles(themeVariables).core.cssText;\n        darkModeTag.textContent = createRootStyles(themeVariables).dark.cssText;\n        lightModeTag.textContent = createRootStyles(themeVariables).light.cssText;\n    }\n}\nfunction createRootStyles(themeVariables) {\n    return {\n        core: css `\n      @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');\n      @keyframes w3m-shake {\n        0% {\n          transform: scale(1) rotate(0deg);\n        }\n        20% {\n          transform: scale(1) rotate(-1deg);\n        }\n        40% {\n          transform: scale(1) rotate(1.5deg);\n        }\n        60% {\n          transform: scale(1) rotate(-1.5deg);\n        }\n        80% {\n          transform: scale(1) rotate(1deg);\n        }\n        100% {\n          transform: scale(1) rotate(0deg);\n        }\n      }\n      @keyframes w3m-iframe-fade-out {\n        0% {\n          opacity: 1;\n        }\n        100% {\n          opacity: 0;\n        }\n      }\n      @keyframes w3m-iframe-zoom-in {\n        0% {\n          transform: translateY(50px);\n          opacity: 0;\n        }\n        100% {\n          transform: translateY(0px);\n          opacity: 1;\n        }\n      }\n      @keyframes w3m-iframe-zoom-in-mobile {\n        0% {\n          transform: scale(0.95);\n          opacity: 0;\n        }\n        100% {\n          transform: scale(1);\n          opacity: 1;\n        }\n      }\n      :root {\n        --w3m-modal-width: 360px;\n        --w3m-color-mix-strength: ${unsafeCSS(themeVariables?.['--w3m-color-mix-strength']\n            ? `${themeVariables['--w3m-color-mix-strength']}%`\n            : '0%')};\n        --w3m-font-family: ${unsafeCSS(themeVariables?.['--w3m-font-family'] ||\n            'Inter, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;')};\n        --w3m-font-size-master: ${unsafeCSS(themeVariables?.['--w3m-font-size-master'] || '10px')};\n        --w3m-border-radius-master: ${unsafeCSS(themeVariables?.['--w3m-border-radius-master'] || '4px')};\n        --w3m-z-index: ${unsafeCSS(themeVariables?.['--w3m-z-index'] || 999)};\n\n        --wui-font-family: var(--w3m-font-family);\n\n        --wui-font-size-mini: calc(var(--w3m-font-size-master) * 0.8);\n        --wui-font-size-micro: var(--w3m-font-size-master);\n        --wui-font-size-tiny: calc(var(--w3m-font-size-master) * 1.2);\n        --wui-font-size-small: calc(var(--w3m-font-size-master) * 1.4);\n        --wui-font-size-paragraph: calc(var(--w3m-font-size-master) * 1.6);\n        --wui-font-size-medium: calc(var(--w3m-font-size-master) * 1.8);\n        --wui-font-size-large: calc(var(--w3m-font-size-master) * 2);\n        --wui-font-size-title-6: calc(var(--w3m-font-size-master) * 2.2);\n        --wui-font-size-medium-title: calc(var(--w3m-font-size-master) * 2.4);\n        --wui-font-size-2xl: calc(var(--w3m-font-size-master) * 4);\n\n        --wui-border-radius-5xs: var(--w3m-border-radius-master);\n        --wui-border-radius-4xs: calc(var(--w3m-border-radius-master) * 1.5);\n        --wui-border-radius-3xs: calc(var(--w3m-border-radius-master) * 2);\n        --wui-border-radius-xxs: calc(var(--w3m-border-radius-master) * 3);\n        --wui-border-radius-xs: calc(var(--w3m-border-radius-master) * 4);\n        --wui-border-radius-s: calc(var(--w3m-border-radius-master) * 5);\n        --wui-border-radius-m: calc(var(--w3m-border-radius-master) * 7);\n        --wui-border-radius-l: calc(var(--w3m-border-radius-master) * 9);\n        --wui-border-radius-3xl: calc(var(--w3m-border-radius-master) * 20);\n\n        --wui-font-weight-light: 400;\n        --wui-font-weight-regular: 500;\n        --wui-font-weight-medium: 600;\n        --wui-font-weight-bold: 700;\n\n        --wui-letter-spacing-2xl: -1.6px;\n        --wui-letter-spacing-medium-title: -0.96px;\n        --wui-letter-spacing-title-6: -0.88px;\n        --wui-letter-spacing-large: -0.8px;\n        --wui-letter-spacing-medium: -0.72px;\n        --wui-letter-spacing-paragraph: -0.64px;\n        --wui-letter-spacing-small: -0.56px;\n        --wui-letter-spacing-tiny: -0.48px;\n        --wui-letter-spacing-micro: -0.2px;\n        --wui-letter-spacing-mini: -0.16px;\n\n        --wui-spacing-0: 0px;\n        --wui-spacing-4xs: 2px;\n        --wui-spacing-3xs: 4px;\n        --wui-spacing-xxs: 6px;\n        --wui-spacing-2xs: 7px;\n        --wui-spacing-xs: 8px;\n        --wui-spacing-1xs: 10px;\n        --wui-spacing-s: 12px;\n        --wui-spacing-m: 14px;\n        --wui-spacing-l: 16px;\n        --wui-spacing-2l: 18px;\n        --wui-spacing-xl: 20px;\n        --wui-spacing-xxl: 24px;\n        --wui-spacing-2xl: 32px;\n        --wui-spacing-3xl: 40px;\n        --wui-spacing-4xl: 90px;\n        --wui-spacing-5xl: 95px;\n\n        --wui-icon-box-size-xxs: 14px;\n        --wui-icon-box-size-xs: 20px;\n        --wui-icon-box-size-sm: 24px;\n        --wui-icon-box-size-md: 32px;\n        --wui-icon-box-size-mdl: 36px;\n        --wui-icon-box-size-lg: 40px;\n        --wui-icon-box-size-2lg: 48px;\n        --wui-icon-box-size-xl: 64px;\n\n        --wui-icon-size-inherit: inherit;\n        --wui-icon-size-xxs: 10px;\n        --wui-icon-size-xs: 12px;\n        --wui-icon-size-sm: 14px;\n        --wui-icon-size-md: 16px;\n        --wui-icon-size-mdl: 18px;\n        --wui-icon-size-lg: 20px;\n        --wui-icon-size-xl: 24px;\n        --wui-icon-size-xxl: 28px;\n\n        --wui-wallet-image-size-inherit: inherit;\n        --wui-wallet-image-size-sm: 40px;\n        --wui-wallet-image-size-md: 56px;\n        --wui-wallet-image-size-lg: 80px;\n\n        --wui-visual-size-size-inherit: inherit;\n        --wui-visual-size-sm: 40px;\n        --wui-visual-size-md: 55px;\n        --wui-visual-size-lg: 80px;\n\n        --wui-box-size-md: 100px;\n        --wui-box-size-lg: 120px;\n\n        --wui-ease-out-power-2: cubic-bezier(0, 0, 0.22, 1);\n        --wui-ease-out-power-1: cubic-bezier(0, 0, 0.55, 1);\n\n        --wui-ease-in-power-3: cubic-bezier(0.66, 0, 1, 1);\n        --wui-ease-in-power-2: cubic-bezier(0.45, 0, 1, 1);\n        --wui-ease-in-power-1: cubic-bezier(0.3, 0, 1, 1);\n\n        --wui-ease-inout-power-1: cubic-bezier(0.45, 0, 0.55, 1);\n\n        --wui-duration-lg: 200ms;\n        --wui-duration-md: 125ms;\n        --wui-duration-sm: 75ms;\n\n        --wui-path-network-sm: path(\n          'M15.4 2.1a5.21 5.21 0 0 1 5.2 0l11.61 6.7a5.21 5.21 0 0 1 2.61 4.52v13.4c0 1.87-1 3.59-2.6 4.52l-11.61 6.7c-1.62.93-3.6.93-5.22 0l-11.6-6.7a5.21 5.21 0 0 1-2.61-4.51v-13.4c0-1.87 1-3.6 2.6-4.52L15.4 2.1Z'\n        );\n\n        --wui-path-network-md: path(\n          'M43.4605 10.7248L28.0485 1.61089C25.5438 0.129705 22.4562 0.129705 19.9515 1.61088L4.53951 10.7248C2.03626 12.2051 0.5 14.9365 0.5 17.886V36.1139C0.5 39.0635 2.03626 41.7949 4.53951 43.2752L19.9515 52.3891C22.4562 53.8703 25.5438 53.8703 28.0485 52.3891L43.4605 43.2752C45.9637 41.7949 47.5 39.0635 47.5 36.114V17.8861C47.5 14.9365 45.9637 12.2051 43.4605 10.7248Z'\n        );\n\n        --wui-path-network-lg: path(\n          'M78.3244 18.926L50.1808 2.45078C45.7376 -0.150261 40.2624 -0.150262 35.8192 2.45078L7.6756 18.926C3.23322 21.5266 0.5 26.3301 0.5 31.5248V64.4752C0.5 69.6699 3.23322 74.4734 7.6756 77.074L35.8192 93.5492C40.2624 96.1503 45.7376 96.1503 50.1808 93.5492L78.3244 77.074C82.7668 74.4734 85.5 69.6699 85.5 64.4752V31.5248C85.5 26.3301 82.7668 21.5266 78.3244 18.926Z'\n        );\n\n        --wui-width-network-sm: 36px;\n        --wui-width-network-md: 48px;\n        --wui-width-network-lg: 86px;\n\n        --wui-height-network-sm: 40px;\n        --wui-height-network-md: 54px;\n        --wui-height-network-lg: 96px;\n\n        --wui-icon-size-network-xs: 12px;\n        --wui-icon-size-network-sm: 16px;\n        --wui-icon-size-network-md: 24px;\n        --wui-icon-size-network-lg: 42px;\n\n        --wui-color-inherit: inherit;\n\n        --wui-color-inverse-100: #fff;\n        --wui-color-inverse-000: #000;\n\n        --wui-cover: rgba(20, 20, 20, 0.8);\n\n        --wui-color-modal-bg: var(--wui-color-modal-bg-base);\n\n        --wui-color-accent-100: var(--wui-color-accent-base-100);\n        --wui-color-accent-090: var(--wui-color-accent-base-090);\n        --wui-color-accent-080: var(--wui-color-accent-base-080);\n\n        --wui-color-success-100: var(--wui-color-success-base-100);\n        --wui-color-success-125: var(--wui-color-success-base-125);\n\n        --wui-color-warning-100: var(--wui-color-warning-base-100);\n\n        --wui-color-error-100: var(--wui-color-error-base-100);\n        --wui-color-error-125: var(--wui-color-error-base-125);\n\n        --wui-color-blue-100: var(--wui-color-blue-base-100);\n        --wui-color-blue-90: var(--wui-color-blue-base-90);\n\n        --wui-icon-box-bg-error-100: var(--wui-icon-box-bg-error-base-100);\n        --wui-icon-box-bg-blue-100: var(--wui-icon-box-bg-blue-base-100);\n        --wui-icon-box-bg-success-100: var(--wui-icon-box-bg-success-base-100);\n        --wui-icon-box-bg-inverse-100: var(--wui-icon-box-bg-inverse-base-100);\n\n        --wui-all-wallets-bg-100: var(--wui-all-wallets-bg-100);\n\n        --wui-avatar-border: var(--wui-avatar-border-base);\n\n        --wui-thumbnail-border: var(--wui-thumbnail-border-base);\n\n        --wui-wallet-button-bg: var(--wui-wallet-button-bg-base);\n\n        --wui-box-shadow-blue: var(--wui-color-accent-glass-020);\n      }\n\n      @supports (background: color-mix(in srgb, white 50%, black)) {\n        :root {\n          --wui-color-modal-bg: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-modal-bg-base)\n          );\n\n          --wui-box-shadow-blue: color-mix(in srgb, var(--wui-color-accent-100) 20%, transparent);\n\n          --wui-color-accent-100: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 100%,\n            transparent\n          );\n          --wui-color-accent-090: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 90%,\n            transparent\n          );\n          --wui-color-accent-080: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 80%,\n            transparent\n          );\n          --wui-color-accent-glass-090: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 90%,\n            transparent\n          );\n          --wui-color-accent-glass-080: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 80%,\n            transparent\n          );\n          --wui-color-accent-glass-020: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 20%,\n            transparent\n          );\n          --wui-color-accent-glass-015: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 15%,\n            transparent\n          );\n          --wui-color-accent-glass-010: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 10%,\n            transparent\n          );\n          --wui-color-accent-glass-005: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 5%,\n            transparent\n          );\n          --wui-color-accent-002: color-mix(\n            in srgb,\n            var(--wui-color-accent-base-100) 2%,\n            transparent\n          );\n\n          --wui-color-fg-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-100)\n          );\n          --wui-color-fg-125: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-125)\n          );\n          --wui-color-fg-150: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-150)\n          );\n          --wui-color-fg-175: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-175)\n          );\n          --wui-color-fg-200: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-200)\n          );\n          --wui-color-fg-225: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-225)\n          );\n          --wui-color-fg-250: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-250)\n          );\n          --wui-color-fg-275: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-275)\n          );\n          --wui-color-fg-300: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-300)\n          );\n          --wui-color-fg-325: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-325)\n          );\n          --wui-color-fg-350: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-fg-350)\n          );\n\n          --wui-color-bg-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-100)\n          );\n          --wui-color-bg-125: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-125)\n          );\n          --wui-color-bg-150: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-150)\n          );\n          --wui-color-bg-175: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-175)\n          );\n          --wui-color-bg-200: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-200)\n          );\n          --wui-color-bg-225: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-225)\n          );\n          --wui-color-bg-250: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-250)\n          );\n          --wui-color-bg-275: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-275)\n          );\n          --wui-color-bg-300: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-300)\n          );\n          --wui-color-bg-325: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-325)\n          );\n          --wui-color-bg-350: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-bg-350)\n          );\n\n          --wui-color-success-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-success-base-100)\n          );\n          --wui-color-success-125: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-success-base-125)\n          );\n\n          --wui-color-warning-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-warning-base-100)\n          );\n\n          --wui-color-error-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-error-base-100)\n          );\n          --wui-color-blue-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-blue-base-100)\n          );\n          --wui-color-blue-90: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-blue-base-90)\n          );\n          --wui-color-error-125: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-color-error-base-125)\n          );\n\n          --wui-icon-box-bg-error-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-icon-box-bg-error-base-100)\n          );\n          --wui-icon-box-bg-accent-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-icon-box-bg-blue-base-100)\n          );\n          --wui-icon-box-bg-success-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-icon-box-bg-success-base-100)\n          );\n          --wui-icon-box-bg-inverse-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-icon-box-bg-inverse-base-100)\n          );\n\n          --wui-all-wallets-bg-100: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-all-wallets-bg-100)\n          );\n\n          --wui-avatar-border: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-avatar-border-base)\n          );\n\n          --wui-thumbnail-border: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-thumbnail-border-base)\n          );\n\n          --wui-wallet-button-bg: color-mix(\n            in srgb,\n            var(--w3m-color-mix) var(--w3m-color-mix-strength),\n            var(--wui-wallet-button-bg-base)\n          );\n        }\n      }\n    `,\n        light: css `\n      :root {\n        --w3m-color-mix: ${unsafeCSS(themeVariables?.['--w3m-color-mix'] || '#fff')};\n        --w3m-accent: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'dark')['--w3m-accent'])};\n        --w3m-default: #fff;\n\n        --wui-color-modal-bg-base: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'dark')['--w3m-background'])};\n        --wui-color-accent-base-100: var(--w3m-accent);\n\n        --wui-color-blueberry-100: hsla(230, 100%, 67%, 1);\n        --wui-color-blueberry-090: hsla(231, 76%, 61%, 1);\n        --wui-color-blueberry-080: hsla(230, 59%, 55%, 1);\n        --wui-color-blueberry-050: hsla(231, 100%, 70%, 0.1);\n\n        --wui-color-fg-100: #e4e7e7;\n        --wui-color-fg-125: #d0d5d5;\n        --wui-color-fg-150: #a8b1b1;\n        --wui-color-fg-175: #a8b0b0;\n        --wui-color-fg-200: #949e9e;\n        --wui-color-fg-225: #868f8f;\n        --wui-color-fg-250: #788080;\n        --wui-color-fg-275: #788181;\n        --wui-color-fg-300: #6e7777;\n        --wui-color-fg-325: #9a9a9a;\n        --wui-color-fg-350: #363636;\n\n        --wui-color-bg-100: #141414;\n        --wui-color-bg-125: #191a1a;\n        --wui-color-bg-150: #1e1f1f;\n        --wui-color-bg-175: #222525;\n        --wui-color-bg-200: #272a2a;\n        --wui-color-bg-225: #2c3030;\n        --wui-color-bg-250: #313535;\n        --wui-color-bg-275: #363b3b;\n        --wui-color-bg-300: #3b4040;\n        --wui-color-bg-325: #252525;\n        --wui-color-bg-350: #ffffff;\n\n        --wui-color-success-base-100: #26d962;\n        --wui-color-success-base-125: #30a46b;\n\n        --wui-color-warning-base-100: #f3a13f;\n\n        --wui-color-error-base-100: #f25a67;\n        --wui-color-error-base-125: #df4a34;\n\n        --wui-color-blue-base-100: rgba(102, 125, 255, 1);\n        --wui-color-blue-base-90: rgba(102, 125, 255, 0.9);\n\n        --wui-color-success-glass-001: rgba(38, 217, 98, 0.01);\n        --wui-color-success-glass-002: rgba(38, 217, 98, 0.02);\n        --wui-color-success-glass-005: rgba(38, 217, 98, 0.05);\n        --wui-color-success-glass-010: rgba(38, 217, 98, 0.1);\n        --wui-color-success-glass-015: rgba(38, 217, 98, 0.15);\n        --wui-color-success-glass-020: rgba(38, 217, 98, 0.2);\n        --wui-color-success-glass-025: rgba(38, 217, 98, 0.25);\n        --wui-color-success-glass-030: rgba(38, 217, 98, 0.3);\n        --wui-color-success-glass-060: rgba(38, 217, 98, 0.6);\n        --wui-color-success-glass-080: rgba(38, 217, 98, 0.8);\n\n        --wui-color-success-glass-reown-020: rgba(48, 164, 107, 0.2);\n\n        --wui-color-warning-glass-reown-020: rgba(243, 161, 63, 0.2);\n\n        --wui-color-error-glass-001: rgba(242, 90, 103, 0.01);\n        --wui-color-error-glass-002: rgba(242, 90, 103, 0.02);\n        --wui-color-error-glass-005: rgba(242, 90, 103, 0.05);\n        --wui-color-error-glass-010: rgba(242, 90, 103, 0.1);\n        --wui-color-error-glass-015: rgba(242, 90, 103, 0.15);\n        --wui-color-error-glass-020: rgba(242, 90, 103, 0.2);\n        --wui-color-error-glass-025: rgba(242, 90, 103, 0.25);\n        --wui-color-error-glass-030: rgba(242, 90, 103, 0.3);\n        --wui-color-error-glass-060: rgba(242, 90, 103, 0.6);\n        --wui-color-error-glass-080: rgba(242, 90, 103, 0.8);\n\n        --wui-color-error-glass-reown-020: rgba(223, 74, 52, 0.2);\n\n        --wui-color-gray-glass-001: rgba(255, 255, 255, 0.01);\n        --wui-color-gray-glass-002: rgba(255, 255, 255, 0.02);\n        --wui-color-gray-glass-005: rgba(255, 255, 255, 0.05);\n        --wui-color-gray-glass-010: rgba(255, 255, 255, 0.1);\n        --wui-color-gray-glass-015: rgba(255, 255, 255, 0.15);\n        --wui-color-gray-glass-020: rgba(255, 255, 255, 0.2);\n        --wui-color-gray-glass-025: rgba(255, 255, 255, 0.25);\n        --wui-color-gray-glass-030: rgba(255, 255, 255, 0.3);\n        --wui-color-gray-glass-060: rgba(255, 255, 255, 0.6);\n        --wui-color-gray-glass-080: rgba(255, 255, 255, 0.8);\n        --wui-color-gray-glass-090: rgba(255, 255, 255, 0.9);\n\n        --wui-color-dark-glass-100: rgba(42, 42, 42, 1);\n\n        --wui-icon-box-bg-error-base-100: #3c2426;\n        --wui-icon-box-bg-blue-base-100: #20303f;\n        --wui-icon-box-bg-success-base-100: #1f3a28;\n        --wui-icon-box-bg-inverse-base-100: #243240;\n\n        --wui-all-wallets-bg-100: #222b35;\n\n        --wui-avatar-border-base: #252525;\n\n        --wui-thumbnail-border-base: #252525;\n\n        --wui-wallet-button-bg-base: var(--wui-color-bg-125);\n\n        --w3m-card-embedded-shadow-color: rgb(17 17 18 / 25%);\n      }\n    `,\n        dark: css `\n      :root {\n        --w3m-color-mix: ${unsafeCSS(themeVariables?.['--w3m-color-mix'] || '#000')};\n        --w3m-accent: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'light')['--w3m-accent'])};\n        --w3m-default: #000;\n\n        --wui-color-modal-bg-base: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'light')['--w3m-background'])};\n        --wui-color-accent-base-100: var(--w3m-accent);\n\n        --wui-color-blueberry-100: hsla(231, 100%, 70%, 1);\n        --wui-color-blueberry-090: hsla(231, 97%, 72%, 1);\n        --wui-color-blueberry-080: hsla(231, 92%, 74%, 1);\n\n        --wui-color-fg-100: #141414;\n        --wui-color-fg-125: #2d3131;\n        --wui-color-fg-150: #474d4d;\n        --wui-color-fg-175: #636d6d;\n        --wui-color-fg-200: #798686;\n        --wui-color-fg-225: #828f8f;\n        --wui-color-fg-250: #8b9797;\n        --wui-color-fg-275: #95a0a0;\n        --wui-color-fg-300: #9ea9a9;\n        --wui-color-fg-325: #9a9a9a;\n        --wui-color-fg-350: #d0d0d0;\n\n        --wui-color-bg-100: #ffffff;\n        --wui-color-bg-125: #f5fafa;\n        --wui-color-bg-150: #f3f8f8;\n        --wui-color-bg-175: #eef4f4;\n        --wui-color-bg-200: #eaf1f1;\n        --wui-color-bg-225: #e5eded;\n        --wui-color-bg-250: #e1e9e9;\n        --wui-color-bg-275: #dce7e7;\n        --wui-color-bg-300: #d8e3e3;\n        --wui-color-bg-325: #f3f3f3;\n        --wui-color-bg-350: #202020;\n\n        --wui-color-success-base-100: #26b562;\n        --wui-color-success-base-125: #30a46b;\n\n        --wui-color-warning-base-100: #f3a13f;\n\n        --wui-color-error-base-100: #f05142;\n        --wui-color-error-base-125: #df4a34;\n\n        --wui-color-blue-base-100: rgba(102, 125, 255, 1);\n        --wui-color-blue-base-90: rgba(102, 125, 255, 0.9);\n\n        --wui-color-success-glass-001: rgba(38, 181, 98, 0.01);\n        --wui-color-success-glass-002: rgba(38, 181, 98, 0.02);\n        --wui-color-success-glass-005: rgba(38, 181, 98, 0.05);\n        --wui-color-success-glass-010: rgba(38, 181, 98, 0.1);\n        --wui-color-success-glass-015: rgba(38, 181, 98, 0.15);\n        --wui-color-success-glass-020: rgba(38, 181, 98, 0.2);\n        --wui-color-success-glass-025: rgba(38, 181, 98, 0.25);\n        --wui-color-success-glass-030: rgba(38, 181, 98, 0.3);\n        --wui-color-success-glass-060: rgba(38, 181, 98, 0.6);\n        --wui-color-success-glass-080: rgba(38, 181, 98, 0.8);\n\n        --wui-color-success-glass-reown-020: rgba(48, 164, 107, 0.2);\n\n        --wui-color-warning-glass-reown-020: rgba(243, 161, 63, 0.2);\n\n        --wui-color-error-glass-001: rgba(240, 81, 66, 0.01);\n        --wui-color-error-glass-002: rgba(240, 81, 66, 0.02);\n        --wui-color-error-glass-005: rgba(240, 81, 66, 0.05);\n        --wui-color-error-glass-010: rgba(240, 81, 66, 0.1);\n        --wui-color-error-glass-015: rgba(240, 81, 66, 0.15);\n        --wui-color-error-glass-020: rgba(240, 81, 66, 0.2);\n        --wui-color-error-glass-025: rgba(240, 81, 66, 0.25);\n        --wui-color-error-glass-030: rgba(240, 81, 66, 0.3);\n        --wui-color-error-glass-060: rgba(240, 81, 66, 0.6);\n        --wui-color-error-glass-080: rgba(240, 81, 66, 0.8);\n\n        --wui-color-error-glass-reown-020: rgba(223, 74, 52, 0.2);\n\n        --wui-icon-box-bg-error-base-100: #f4dfdd;\n        --wui-icon-box-bg-blue-base-100: #d9ecfb;\n        --wui-icon-box-bg-success-base-100: #daf0e4;\n        --wui-icon-box-bg-inverse-base-100: #dcecfc;\n\n        --wui-all-wallets-bg-100: #e8f1fa;\n\n        --wui-avatar-border-base: #f3f4f4;\n\n        --wui-thumbnail-border-base: #eaefef;\n\n        --wui-wallet-button-bg-base: var(--wui-color-bg-125);\n\n        --wui-color-gray-glass-001: rgba(0, 0, 0, 0.01);\n        --wui-color-gray-glass-002: rgba(0, 0, 0, 0.02);\n        --wui-color-gray-glass-005: rgba(0, 0, 0, 0.05);\n        --wui-color-gray-glass-010: rgba(0, 0, 0, 0.1);\n        --wui-color-gray-glass-015: rgba(0, 0, 0, 0.15);\n        --wui-color-gray-glass-020: rgba(0, 0, 0, 0.2);\n        --wui-color-gray-glass-025: rgba(0, 0, 0, 0.25);\n        --wui-color-gray-glass-030: rgba(0, 0, 0, 0.3);\n        --wui-color-gray-glass-060: rgba(0, 0, 0, 0.6);\n        --wui-color-gray-glass-080: rgba(0, 0, 0, 0.8);\n        --wui-color-gray-glass-090: rgba(0, 0, 0, 0.9);\n\n        --wui-color-dark-glass-100: rgba(233, 233, 233, 1);\n\n        --w3m-card-embedded-shadow-color: rgb(224 225 233 / 25%);\n      }\n    `\n    };\n}\nexport const resetStyles = css `\n  *,\n  *::after,\n  *::before,\n  :host {\n    margin: 0;\n    padding: 0;\n    box-sizing: border-box;\n    font-style: normal;\n    text-rendering: optimizeSpeed;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-tap-highlight-color: transparent;\n    font-family: var(--wui-font-family);\n    backface-visibility: hidden;\n  }\n`;\nexport const elementStyles = css `\n  button,\n  a {\n    cursor: pointer;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    position: relative;\n    transition:\n      color var(--wui-duration-lg) var(--wui-ease-out-power-1),\n      background-color var(--wui-duration-lg) var(--wui-ease-out-power-1),\n      border var(--wui-duration-lg) var(--wui-ease-out-power-1),\n      border-radius var(--wui-duration-lg) var(--wui-ease-out-power-1),\n      box-shadow var(--wui-duration-lg) var(--wui-ease-out-power-1);\n    will-change: background-color, color, border, box-shadow, border-radius;\n    outline: none;\n    border: none;\n    column-gap: var(--wui-spacing-3xs);\n    background-color: transparent;\n    text-decoration: none;\n  }\n\n  wui-flex {\n    transition: border-radius var(--wui-duration-lg) var(--wui-ease-out-power-1);\n    will-change: border-radius;\n  }\n\n  button:disabled > wui-wallet-image,\n  button:disabled > wui-all-wallets-image,\n  button:disabled > wui-network-image,\n  button:disabled > wui-image,\n  button:disabled > wui-transaction-visual,\n  button:disabled > wui-logo {\n    filter: grayscale(1);\n  }\n\n  @media (hover: hover) and (pointer: fine) {\n    button:hover:enabled {\n      background-color: var(--wui-color-gray-glass-005);\n    }\n\n    button:active:enabled {\n      background-color: var(--wui-color-gray-glass-010);\n    }\n  }\n\n  button:disabled > wui-icon-box {\n    opacity: 0.5;\n  }\n\n  input {\n    border: none;\n    outline: none;\n    appearance: none;\n  }\n`;\nexport const colorStyles = css `\n  .wui-color-inherit {\n    color: var(--wui-color-inherit);\n  }\n\n  .wui-color-accent-100 {\n    color: var(--wui-color-accent-100);\n  }\n\n  .wui-color-error-100 {\n    color: var(--wui-color-error-100);\n  }\n\n  .wui-color-blue-100 {\n    color: var(--wui-color-blue-100);\n  }\n\n  .wui-color-blue-90 {\n    color: var(--wui-color-blue-90);\n  }\n\n  .wui-color-error-125 {\n    color: var(--wui-color-error-125);\n  }\n\n  .wui-color-success-100 {\n    color: var(--wui-color-success-100);\n  }\n\n  .wui-color-success-125 {\n    color: var(--wui-color-success-125);\n  }\n\n  .wui-color-inverse-100 {\n    color: var(--wui-color-inverse-100);\n  }\n\n  .wui-color-inverse-000 {\n    color: var(--wui-color-inverse-000);\n  }\n\n  .wui-color-fg-100 {\n    color: var(--wui-color-fg-100);\n  }\n\n  .wui-color-fg-200 {\n    color: var(--wui-color-fg-200);\n  }\n\n  .wui-color-fg-300 {\n    color: var(--wui-color-fg-300);\n  }\n\n  .wui-color-fg-325 {\n    color: var(--wui-color-fg-325);\n  }\n\n  .wui-color-fg-350 {\n    color: var(--wui-color-fg-350);\n  }\n\n  .wui-bg-color-inherit {\n    background-color: var(--wui-color-inherit);\n  }\n\n  .wui-bg-color-blue-100 {\n    background-color: var(--wui-color-accent-100);\n  }\n\n  .wui-bg-color-error-100 {\n    background-color: var(--wui-color-error-100);\n  }\n\n  .wui-bg-color-error-125 {\n    background-color: var(--wui-color-error-125);\n  }\n\n  .wui-bg-color-success-100 {\n    background-color: var(--wui-color-success-100);\n  }\n\n  .wui-bg-color-success-125 {\n    background-color: var(--wui-color-success-100);\n  }\n\n  .wui-bg-color-inverse-100 {\n    background-color: var(--wui-color-inverse-100);\n  }\n\n  .wui-bg-color-inverse-000 {\n    background-color: var(--wui-color-inverse-000);\n  }\n\n  .wui-bg-color-fg-100 {\n    background-color: var(--wui-color-fg-100);\n  }\n\n  .wui-bg-color-fg-200 {\n    background-color: var(--wui-color-fg-200);\n  }\n\n  .wui-bg-color-fg-300 {\n    background-color: var(--wui-color-fg-300);\n  }\n\n  .wui-color-fg-325 {\n    background-color: var(--wui-color-fg-325);\n  }\n\n  .wui-color-fg-350 {\n    background-color: var(--wui-color-fg-350);\n  }\n`;\n//# sourceMappingURL=ThemeUtil.js.map","export const WcConstantsUtil = {\n    ERROR_CODE_UNRECOGNIZED_CHAIN_ID: 4902,\n    ERROR_CODE_DEFAULT: 5000,\n    ERROR_INVALID_CHAIN_ID: 32603,\n    DEFAULT_ALLOWED_ANCESTORS: [\n        'http://localhost:*',\n        'https://*.pages.dev',\n        'https://*.vercel.app',\n        'https://*.ngrok-free.app',\n        'https://secure-mobile.walletconnect.com',\n        'https://secure-mobile.walletconnect.org'\n    ]\n};\n//# sourceMappingURL=ConstantsUtil.js.map","export function defineChain(chain) {\n    return {\n        formatters: undefined,\n        fees: undefined,\n        serializers: undefined,\n        ...chain\n    };\n}\n//# sourceMappingURL=utils.js.map","import { defineChain } from '../utils.js';\nexport const solana = defineChain({\n    id: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n    name: 'Solana',\n    network: 'solana-mainnet',\n    nativeCurrency: { name: 'Solana', symbol: 'SOL', decimals: 9 },\n    rpcUrls: {\n        default: { http: ['https://rpc.walletconnect.org/v1'] }\n    },\n    blockExplorers: { default: { name: 'Solscan', url: 'https://solscan.io' } },\n    testnet: false,\n    chainNamespace: 'solana',\n    caipNetworkId: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n    deprecatedCaipNetworkId: 'solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ'\n});\n//# sourceMappingURL=solana.js.map","import { defineChain } from '../utils.js';\nexport const solanaDevnet = defineChain({\n    id: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n    name: 'Solana Devnet',\n    network: 'solana-devnet',\n    nativeCurrency: { name: 'Solana', symbol: 'SOL', decimals: 9 },\n    rpcUrls: {\n        default: { http: ['https://rpc.walletconnect.org/v1'] }\n    },\n    blockExplorers: { default: { name: 'Solscan', url: 'https://solscan.io' } },\n    testnet: true,\n    chainNamespace: 'solana',\n    caipNetworkId: 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n    deprecatedCaipNetworkId: 'solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K'\n});\n//# sourceMappingURL=solanaDevnet.js.map","import { defineChain } from '../utils.js';\nexport const solanaTestnet = defineChain({\n    id: '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',\n    name: 'Solana Testnet',\n    network: 'solana-testnet',\n    nativeCurrency: { name: 'Solana', symbol: 'SOL', decimals: 9 },\n    rpcUrls: {\n        default: { http: ['https://rpc.walletconnect.org/v1'] }\n    },\n    blockExplorers: { default: { name: 'Solscan', url: 'https://solscan.io' } },\n    testnet: true,\n    chainNamespace: 'solana',\n    caipNetworkId: 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z'\n});\n//# sourceMappingURL=solanaTestnet.js.map","import { defineChain } from './utils.js';\nexport const bitcoin = defineChain({\n    id: '000000000019d6689c085ae165831e93',\n    caipNetworkId: 'bip122:000000000019d6689c085ae165831e93',\n    chainNamespace: 'bip122',\n    name: 'Bitcoin',\n    nativeCurrency: {\n        name: 'Bitcoin',\n        symbol: 'BTC',\n        decimals: 8\n    },\n    rpcUrls: {\n        default: { http: ['https://rpc.walletconnect.org/v1'] }\n    }\n});\nexport const bitcoinTestnet = defineChain({\n    id: '000000000933ea01ad0ee984209779ba',\n    caipNetworkId: 'bip122:000000000933ea01ad0ee984209779ba',\n    chainNamespace: 'bip122',\n    name: 'Bitcoin Testnet',\n    nativeCurrency: {\n        name: 'Bitcoin',\n        symbol: 'BTC',\n        decimals: 8\n    },\n    rpcUrls: {\n        default: { http: ['https://rpc.walletconnect.org/v1'] }\n    },\n    testnet: true\n});\n//# sourceMappingURL=bitcoin.js.map","import { EnsController } from '@reown/appkit-controllers';\nimport { solana, solanaDevnet } from '../networks/index.js';\nexport const DEFAULT_METHODS = {\n    solana: [\n        'solana_signMessage',\n        'solana_signTransaction',\n        'solana_requestAccounts',\n        'solana_getAccounts',\n        'solana_signAllTransactions',\n        'solana_signAndSendTransaction'\n    ],\n    eip155: [\n        'eth_accounts',\n        'eth_requestAccounts',\n        'eth_sendRawTransaction',\n        'eth_sign',\n        'eth_signTransaction',\n        'eth_signTypedData',\n        'eth_signTypedData_v3',\n        'eth_signTypedData_v4',\n        'eth_sendTransaction',\n        'personal_sign',\n        'wallet_switchEthereumChain',\n        'wallet_addEthereumChain',\n        'wallet_getPermissions',\n        'wallet_requestPermissions',\n        'wallet_registerOnboarding',\n        'wallet_watchAsset',\n        'wallet_scanQRCode',\n        // EIP-5792\n        'wallet_getCallsStatus',\n        'wallet_showCallsStatus',\n        'wallet_sendCalls',\n        'wallet_getCapabilities',\n        // EIP-7715\n        'wallet_grantPermissions',\n        'wallet_revokePermissions',\n        //EIP-7811\n        'wallet_getAssets'\n    ],\n    bip122: ['sendTransfer', 'signMessage', 'signPsbt', 'getAccountAddresses']\n};\nexport const WcHelpersUtil = {\n    getMethodsByChainNamespace(chainNamespace) {\n        return DEFAULT_METHODS[chainNamespace] || [];\n    },\n    createDefaultNamespace(chainNamespace) {\n        return {\n            methods: this.getMethodsByChainNamespace(chainNamespace),\n            events: ['accountsChanged', 'chainChanged'],\n            chains: [],\n            rpcMap: {}\n        };\n    },\n    applyNamespaceOverrides(baseNamespaces, overrides) {\n        if (!overrides) {\n            return { ...baseNamespaces };\n        }\n        const result = { ...baseNamespaces };\n        const namespacesToOverride = new Set();\n        if (overrides.methods) {\n            Object.keys(overrides.methods).forEach(ns => namespacesToOverride.add(ns));\n        }\n        if (overrides.chains) {\n            Object.keys(overrides.chains).forEach(ns => namespacesToOverride.add(ns));\n        }\n        if (overrides.events) {\n            Object.keys(overrides.events).forEach(ns => namespacesToOverride.add(ns));\n        }\n        if (overrides.rpcMap) {\n            Object.keys(overrides.rpcMap).forEach(chainId => {\n                const [ns] = chainId.split(':');\n                if (ns) {\n                    namespacesToOverride.add(ns);\n                }\n            });\n        }\n        namespacesToOverride.forEach(ns => {\n            if (!result[ns]) {\n                result[ns] = this.createDefaultNamespace(ns);\n            }\n        });\n        if (overrides.methods) {\n            Object.entries(overrides.methods).forEach(([ns, methods]) => {\n                if (result[ns]) {\n                    result[ns].methods = methods;\n                }\n            });\n        }\n        if (overrides.chains) {\n            Object.entries(overrides.chains).forEach(([ns, chains]) => {\n                if (result[ns]) {\n                    result[ns].chains = chains;\n                }\n            });\n        }\n        if (overrides.events) {\n            Object.entries(overrides.events).forEach(([ns, events]) => {\n                if (result[ns]) {\n                    result[ns].events = events;\n                }\n            });\n        }\n        if (overrides.rpcMap) {\n            const processedNamespaces = new Set();\n            Object.entries(overrides.rpcMap).forEach(([chainId, rpcUrl]) => {\n                const [ns, id] = chainId.split(':');\n                if (!ns || !id || !result[ns]) {\n                    return;\n                }\n                if (!result[ns].rpcMap) {\n                    result[ns].rpcMap = {};\n                }\n                if (!processedNamespaces.has(ns)) {\n                    result[ns].rpcMap = {};\n                    processedNamespaces.add(ns);\n                }\n                result[ns].rpcMap[id] = rpcUrl;\n            });\n        }\n        return result;\n    },\n    createNamespaces(caipNetworks, configOverride) {\n        const defaultNamespaces = caipNetworks.reduce((acc, chain) => {\n            const { id, chainNamespace, rpcUrls } = chain;\n            const rpcUrl = rpcUrls.default.http[0];\n            if (!acc[chainNamespace]) {\n                acc[chainNamespace] = this.createDefaultNamespace(chainNamespace);\n            }\n            const caipNetworkId = `${chainNamespace}:${id}`;\n            // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style\n            const namespace = acc[chainNamespace];\n            namespace.chains.push(caipNetworkId);\n            // Workaround for wallets that only support deprecated Solana network ID\n            switch (caipNetworkId) {\n                case solana.caipNetworkId:\n                    namespace.chains.push(solana.deprecatedCaipNetworkId);\n                    break;\n                case solanaDevnet.caipNetworkId:\n                    namespace.chains.push(solanaDevnet.deprecatedCaipNetworkId);\n                    break;\n                default:\n            }\n            if (namespace?.rpcMap && rpcUrl) {\n                namespace.rpcMap[id] = rpcUrl;\n            }\n            return acc;\n        }, {});\n        return this.applyNamespaceOverrides(defaultNamespaces, configOverride);\n    },\n    resolveReownName: async (name) => {\n        const wcNameAddress = await EnsController.resolveName(name);\n        const networkNameAddresses = Object.values(wcNameAddress?.addresses) || [];\n        return networkNameAddresses[0]?.address || false;\n    },\n    getChainsFromNamespaces(namespaces = {}) {\n        return Object.values(namespaces).flatMap(namespace => {\n            const chains = (namespace.chains || []);\n            const accountsChains = namespace.accounts.map(account => {\n                const [chainNamespace, chainId] = account.split(':');\n                return `${chainNamespace}:${chainId}`;\n            });\n            return Array.from(new Set([...chains, ...accountsChains]));\n        });\n    },\n    isSessionEventData(data) {\n        return (typeof data === 'object' &&\n            data !== null &&\n            'id' in data &&\n            'topic' in data &&\n            'params' in data &&\n            typeof data.params === 'object' &&\n            data.params !== null &&\n            'chainId' in data.params &&\n            'event' in data.params &&\n            typeof data.params.event === 'object' &&\n            data.params.event !== null);\n    },\n    isOriginAllowed(currentOrigin, allowedPatterns, defaultAllowedOrigins) {\n        for (const pattern of [...allowedPatterns, ...defaultAllowedOrigins]) {\n            if (pattern.includes('*')) {\n                // Convert wildcard pattern to regex, escape special chars, replace *, match whole string\n                const escapedPattern = pattern.replace(/[.*+?^${}()|[\\]\\\\]/gu, '\\\\$&');\n                const regexString = `^${escapedPattern.replace(/\\\\\\*/gu, '.*')}$`;\n                const regex = new RegExp(regexString, 'u');\n                if (regex.test(currentOrigin)) {\n                    return true;\n                }\n            }\n            else {\n                /**\n                 * There are some cases where pattern is getting just the origin, where using new URL(pattern).origin will throw an error\n                 * thus we a try catch to handle this case\n                 */\n                try {\n                    if (new URL(pattern).origin === currentOrigin) {\n                        return true;\n                    }\n                }\n                catch (e) {\n                    if (pattern === currentOrigin) {\n                        return true;\n                    }\n                }\n            }\n        }\n        // No match found\n        return false;\n    }\n};\n//# sourceMappingURL=HelpersUtil.js.map","import UniversalProvider from '@walletconnect/universal-provider';\nimport { ConstantsUtil } from '@reown/appkit-common';\nimport { ChainController, OptionsController, SIWXUtil } from '@reown/appkit-controllers';\nimport { PresetsUtil } from '@reown/appkit-utils';\nimport { WcHelpersUtil } from '../utils/index.js';\nexport class WalletConnectConnector {\n    constructor({ provider, namespace }) {\n        this.id = ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT;\n        this.name = PresetsUtil.ConnectorNamesMap[ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT];\n        this.type = 'WALLET_CONNECT';\n        this.imageId = PresetsUtil.ConnectorImageIds[ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT];\n        this.getCaipNetworks = ChainController.getCaipNetworks.bind(ChainController);\n        this.caipNetworks = this.getCaipNetworks();\n        this.provider = provider;\n        this.chain = namespace;\n    }\n    get chains() {\n        return this.getCaipNetworks();\n    }\n    async connectWalletConnect() {\n        const isAuthenticated = await this.authenticate();\n        if (!isAuthenticated) {\n            const caipNetworks = this.getCaipNetworks();\n            const universalProviderConfigOverride = OptionsController.state.universalProviderConfigOverride;\n            const namespaces = WcHelpersUtil.createNamespaces(caipNetworks, universalProviderConfigOverride);\n            await this.provider.connect({ optionalNamespaces: namespaces });\n        }\n        return {\n            clientId: await this.provider.client.core.crypto.getClientId(),\n            session: this.provider.session\n        };\n    }\n    async disconnect() {\n        await this.provider.disconnect();\n    }\n    async authenticate() {\n        const chains = this.chains.map(network => network.caipNetworkId);\n        return SIWXUtil.universalProviderAuthenticate({\n            universalProvider: this.provider,\n            chains,\n            methods: OPTIONAL_METHODS\n        });\n    }\n}\nconst OPTIONAL_METHODS = [\n    'eth_accounts',\n    'eth_requestAccounts',\n    'eth_sendRawTransaction',\n    'eth_sign',\n    'eth_signTransaction',\n    'eth_signTypedData',\n    'eth_signTypedData_v3',\n    'eth_signTypedData_v4',\n    'eth_sendTransaction',\n    'personal_sign',\n    'wallet_switchEthereumChain',\n    'wallet_addEthereumChain',\n    'wallet_getPermissions',\n    'wallet_requestPermissions',\n    'wallet_registerOnboarding',\n    'wallet_watchAsset',\n    'wallet_scanQRCode',\n    // EIP-5792\n    'wallet_getCallsStatus',\n    'wallet_sendCalls',\n    'wallet_getCapabilities',\n    // EIP-7715\n    'wallet_grantPermissions',\n    'wallet_revokePermissions',\n    //EIP-7811\n    'wallet_getAssets'\n];\n//# sourceMappingURL=WalletConnectConnector.js.map","import UniversalProvider from '@walletconnect/universal-provider';\nimport { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { AccountController, ChainController } from '@reown/appkit-controllers';\nimport { PresetsUtil } from '@reown/appkit-utils';\nimport { WalletConnectConnector } from '../connectors/WalletConnectConnector.js';\n/**\n * Abstract class representing a chain adapter blueprint.\n * @template Connector - The type of connector extending ChainAdapterConnector\n */\nexport class AdapterBlueprint {\n    /**\n     * Creates an instance of AdapterBlueprint.\n     * @param {AdapterBlueprint.Params} params - The parameters for initializing the adapter\n     */\n    constructor(params) {\n        this.availableConnectors = [];\n        this.eventListeners = new Map();\n        this.getCaipNetworks = (namespace) => ChainController.getCaipNetworks(namespace);\n        if (params) {\n            this.construct(params);\n        }\n    }\n    /**\n     * Initializes the adapter with the given parameters.\n     * @param {AdapterBlueprint.Params} params - The parameters for initializing the adapter\n     */\n    construct(params) {\n        this.projectId = params.projectId;\n        this.namespace = params.namespace;\n        this.adapterType = params.adapterType;\n    }\n    /**\n     * Gets the available connectors.\n     * @returns {Connector[]} An array of available connectors\n     */\n    get connectors() {\n        return this.availableConnectors;\n    }\n    /**\n     * Gets the supported networks.\n     * @returns {CaipNetwork[]} An array of supported networks\n     */\n    get networks() {\n        return this.getCaipNetworks(this.namespace);\n    }\n    /**\n     * Sets the auth provider.\n     * @param {W3mFrameProvider} authProvider - The auth provider instance\n     */\n    setAuthProvider(authProvider) {\n        this.addConnector({\n            id: CommonConstantsUtil.CONNECTOR_ID.AUTH,\n            type: 'AUTH',\n            name: CommonConstantsUtil.CONNECTOR_NAMES.AUTH,\n            provider: authProvider,\n            imageId: PresetsUtil.ConnectorImageIds[CommonConstantsUtil.CONNECTOR_ID.AUTH],\n            chain: this.namespace,\n            chains: []\n        });\n    }\n    /**\n     * Adds one or more connectors to the available connectors list.\n     * @param {...Connector} connectors - The connectors to add\n     */\n    addConnector(...connectors) {\n        const connectorsAdded = new Set();\n        this.availableConnectors = [...connectors, ...this.availableConnectors].filter(connector => {\n            if (connectorsAdded.has(connector.id)) {\n                return false;\n            }\n            connectorsAdded.add(connector.id);\n            return true;\n        });\n        this.emit('connectors', this.availableConnectors);\n    }\n    setStatus(status, chainNamespace) {\n        AccountController.setStatus(status, chainNamespace);\n    }\n    /**\n     * Adds an event listener for a specific event.\n     * @template T\n     * @param {T} eventName - The name of the event\n     * @param {EventCallback<T>} callback - The callback function to be called when the event is emitted\n     */\n    on(eventName, callback) {\n        if (!this.eventListeners.has(eventName)) {\n            this.eventListeners.set(eventName, new Set());\n        }\n        this.eventListeners.get(eventName)?.add(callback);\n    }\n    /**\n     * Removes an event listener for a specific event.\n     * @template T\n     * @param {T} eventName - The name of the event\n     * @param {EventCallback<T>} callback - The callback function to be removed\n     */\n    off(eventName, callback) {\n        const listeners = this.eventListeners.get(eventName);\n        if (listeners) {\n            listeners.delete(callback);\n        }\n    }\n    /**\n     * Removes all event listeners.\n     */\n    removeAllEventListeners() {\n        this.eventListeners.forEach(listeners => {\n            listeners.clear();\n        });\n    }\n    /**\n     * Emits an event with the given name and optional data.\n     * @template T\n     * @param {T} eventName - The name of the event to emit\n     * @param {EventData[T]} [data] - The optional data to be passed to the event listeners\n     */\n    emit(eventName, data) {\n        const listeners = this.eventListeners.get(eventName);\n        if (listeners) {\n            listeners.forEach(callback => callback(data));\n        }\n    }\n    /**\n     * Connects to WalletConnect.\n     * @param {number | string} [_chainId] - Optional chain ID to connect to\n     */\n    async connectWalletConnect(_chainId) {\n        const connector = this.getWalletConnectConnector();\n        const result = await connector.connectWalletConnect();\n        return { clientId: result.clientId };\n    }\n    /**\n     * Switches the network.\n     * @param {AdapterBlueprint.SwitchNetworkParams} params - Network switching parameters\n     */\n    async switchNetwork(params) {\n        const { caipNetwork, providerType } = params;\n        if (!params.provider) {\n            return;\n        }\n        const provider = 'provider' in params.provider ? params.provider.provider : params.provider;\n        if (providerType === 'WALLET_CONNECT') {\n            ;\n            provider.setDefaultChain(caipNetwork.caipNetworkId);\n            return;\n        }\n        if (provider && providerType === 'AUTH') {\n            const authProvider = provider;\n            const preferredAccountType = AccountController.state.preferredAccountTypes?.[caipNetwork.chainNamespace];\n            await authProvider.switchNetwork(caipNetwork.caipNetworkId);\n            const user = await authProvider.getUser({\n                chainId: caipNetwork.caipNetworkId,\n                preferredAccountType\n            });\n            this.emit('switchNetwork', user);\n        }\n    }\n    getWalletConnectConnector() {\n        const connector = this.connectors.find(c => c instanceof WalletConnectConnector);\n        if (!connector) {\n            throw new Error('WalletConnectConnector not found');\n        }\n        return connector;\n    }\n}\n//# sourceMappingURL=ChainAdapterBlueprint.js.map","import bs58 from 'bs58';\nimport { toHex } from 'viem';\nimport { ConstantsUtil } from '@reown/appkit-common';\nimport { AccountController, ChainController, ConstantsUtil as CoreConstantsUtil, CoreHelperUtil } from '@reown/appkit-controllers';\nimport { AdapterBlueprint } from '../adapters/ChainAdapterBlueprint.js';\nimport { WalletConnectConnector } from '../connectors/WalletConnectConnector.js';\nimport { WcConstantsUtil } from '../utils/ConstantsUtil.js';\nexport class UniversalAdapter extends AdapterBlueprint {\n    setUniversalProvider(universalProvider) {\n        this.addConnector(new WalletConnectConnector({\n            provider: universalProvider,\n            caipNetworks: this.getCaipNetworks(),\n            namespace: this.namespace\n        }));\n    }\n    async connect(params) {\n        return Promise.resolve({\n            id: 'WALLET_CONNECT',\n            type: 'WALLET_CONNECT',\n            chainId: Number(params.chainId),\n            provider: this.provider,\n            address: ''\n        });\n    }\n    async disconnect() {\n        try {\n            const connector = this.getWalletConnectConnector();\n            await connector.disconnect();\n        }\n        catch (error) {\n            console.warn('UniversalAdapter:disconnect - error', error);\n        }\n    }\n    async getAccounts({ namespace }) {\n        const provider = this.provider;\n        const addresses = (provider?.session?.namespaces?.[namespace]?.accounts\n            ?.map(account => {\n            const [, , address] = account.split(':');\n            return address;\n        })\n            .filter((address, index, self) => self.indexOf(address) === index) || []);\n        return Promise.resolve({\n            accounts: addresses.map(address => CoreHelperUtil.createAccount(namespace, address, namespace === 'bip122' ? 'payment' : 'eoa'))\n        });\n    }\n    async syncConnectors() {\n        return Promise.resolve();\n    }\n    async getBalance(params) {\n        const isBalanceSupported = params.caipNetwork &&\n            CoreConstantsUtil.BALANCE_SUPPORTED_CHAINS.includes(params.caipNetwork?.chainNamespace);\n        if (!isBalanceSupported || params.caipNetwork?.testnet) {\n            return {\n                balance: '0.00',\n                symbol: params.caipNetwork?.nativeCurrency.symbol || ''\n            };\n        }\n        if (AccountController.state.balanceLoading &&\n            params.chainId === ChainController.state.activeCaipNetwork?.id) {\n            return {\n                balance: AccountController.state.balance || '0.00',\n                symbol: AccountController.state.balanceSymbol || ''\n            };\n        }\n        const balances = await AccountController.fetchTokenBalance();\n        const balance = balances.find(b => b.chainId === `${params.caipNetwork?.chainNamespace}:${params.chainId}` &&\n            b.symbol === params.caipNetwork?.nativeCurrency.symbol);\n        return {\n            balance: balance?.quantity.numeric || '0.00',\n            symbol: balance?.symbol || params.caipNetwork?.nativeCurrency.symbol || ''\n        };\n    }\n    async signMessage(params) {\n        const { provider, message, address } = params;\n        if (!provider) {\n            throw new Error('UniversalAdapter:signMessage - provider is undefined');\n        }\n        let signature = '';\n        if (ChainController.state.activeCaipNetwork?.chainNamespace === ConstantsUtil.CHAIN.SOLANA) {\n            const response = await provider.request({\n                method: 'solana_signMessage',\n                params: {\n                    message: bs58.encode(new TextEncoder().encode(message)),\n                    pubkey: address\n                }\n            }, ChainController.state.activeCaipNetwork?.caipNetworkId);\n            signature = response.signature;\n        }\n        else {\n            signature = await provider.request({\n                method: 'personal_sign',\n                params: [message, address]\n            }, ChainController.state.activeCaipNetwork?.caipNetworkId);\n        }\n        return { signature };\n    }\n    // -- Transaction methods ---------------------------------------------------\n    /**\n     *\n     * These methods are supported only on `wagmi` and `ethers` since the Solana SDK does not support them in the same way.\n     * These function definition is to have a type parity between the clients. Currently not in use.\n     */\n    async estimateGas() {\n        return Promise.resolve({\n            gas: BigInt(0)\n        });\n    }\n    async sendTransaction() {\n        return Promise.resolve({\n            hash: ''\n        });\n    }\n    walletGetAssets(_params) {\n        return Promise.resolve({});\n    }\n    async writeContract() {\n        return Promise.resolve({\n            hash: ''\n        });\n    }\n    parseUnits() {\n        return 0n;\n    }\n    formatUnits() {\n        return '0';\n    }\n    async getCapabilities() {\n        return Promise.resolve({});\n    }\n    async grantPermissions() {\n        return Promise.resolve({});\n    }\n    async revokePermissions() {\n        return Promise.resolve('0x');\n    }\n    async syncConnection() {\n        return Promise.resolve({\n            id: 'WALLET_CONNECT',\n            type: 'WALLET_CONNECT',\n            chainId: 1,\n            provider: this.provider,\n            address: ''\n        });\n    }\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async switchNetwork(params) {\n        const { caipNetwork } = params;\n        const connector = this.getWalletConnectConnector();\n        if (caipNetwork.chainNamespace === ConstantsUtil.CHAIN.EVM) {\n            try {\n                await connector.provider?.request({\n                    method: 'wallet_switchEthereumChain',\n                    params: [{ chainId: toHex(caipNetwork.id) }]\n                });\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            }\n            catch (switchError) {\n                if (switchError.code === WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID ||\n                    switchError.code === WcConstantsUtil.ERROR_INVALID_CHAIN_ID ||\n                    switchError.code === WcConstantsUtil.ERROR_CODE_DEFAULT ||\n                    switchError?.data?.originalError?.code ===\n                        WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID) {\n                    try {\n                        await connector.provider?.request({\n                            method: 'wallet_addEthereumChain',\n                            params: [\n                                {\n                                    chainId: toHex(caipNetwork.id),\n                                    rpcUrls: [caipNetwork?.rpcUrls['chainDefault']?.http],\n                                    chainName: caipNetwork.name,\n                                    nativeCurrency: caipNetwork.nativeCurrency,\n                                    blockExplorerUrls: [caipNetwork.blockExplorers?.default.url]\n                                }\n                            ]\n                        });\n                    }\n                    catch (error) {\n                        throw new Error('Chain is not supported');\n                    }\n                }\n            }\n        }\n        connector.provider.setDefaultChain(caipNetwork.caipNetworkId);\n    }\n    getWalletConnectProvider() {\n        const connector = this.connectors.find(c => c.type === 'WALLET_CONNECT');\n        const provider = connector?.provider;\n        return provider;\n    }\n}\n//# sourceMappingURL=client.js.map","import { AlertController, ApiController, ConstantsUtil } from '@reown/appkit-controllers';\nconst FEATURE_KEYS = [\n    'email',\n    'socials',\n    'swaps',\n    'onramp',\n    'activity',\n    'reownBranding'\n];\nconst featureConfig = {\n    email: {\n        apiFeatureName: 'social_login',\n        localFeatureName: 'email',\n        returnType: false,\n        isLegacy: false,\n        isAvailableOnBasic: false,\n        processApi: (apiConfig) => {\n            if (!apiConfig?.config) {\n                return false;\n            }\n            const config = apiConfig.config;\n            return Boolean(apiConfig.isEnabled) && config.includes('email');\n        },\n        processFallback: (localValue) => {\n            if (localValue === undefined) {\n                return ConstantsUtil.DEFAULT_REMOTE_FEATURES.email;\n            }\n            return Boolean(localValue);\n        }\n    },\n    socials: {\n        apiFeatureName: 'social_login',\n        localFeatureName: 'socials',\n        returnType: false,\n        isLegacy: false,\n        isAvailableOnBasic: false,\n        processApi: (apiConfig) => {\n            if (!apiConfig?.config) {\n                return false;\n            }\n            const config = apiConfig.config;\n            return Boolean(apiConfig.isEnabled) && config.length > 0\n                ? config.filter((s) => s !== 'email')\n                : false;\n        },\n        processFallback: (localValue) => {\n            if (localValue === undefined) {\n                return ConstantsUtil.DEFAULT_REMOTE_FEATURES.socials;\n            }\n            if (typeof localValue === 'boolean') {\n                return localValue ? ConstantsUtil.DEFAULT_REMOTE_FEATURES.socials : false;\n            }\n            return localValue;\n        }\n    },\n    swaps: {\n        apiFeatureName: 'swap',\n        localFeatureName: 'swaps',\n        returnType: false,\n        isLegacy: false,\n        isAvailableOnBasic: false,\n        processApi: (apiConfig) => {\n            if (!apiConfig?.config) {\n                return false;\n            }\n            const config = apiConfig.config;\n            return Boolean(apiConfig.isEnabled) && config.length > 0 ? config : false;\n        },\n        processFallback: (localValue) => {\n            if (localValue === undefined) {\n                return ConstantsUtil.DEFAULT_REMOTE_FEATURES.swaps;\n            }\n            if (typeof localValue === 'boolean') {\n                return localValue ? ConstantsUtil.DEFAULT_REMOTE_FEATURES.swaps : false;\n            }\n            return localValue;\n        }\n    },\n    onramp: {\n        apiFeatureName: 'onramp',\n        localFeatureName: 'onramp',\n        returnType: false,\n        isLegacy: false,\n        isAvailableOnBasic: false,\n        processApi: (apiConfig) => {\n            if (!apiConfig?.config) {\n                return false;\n            }\n            const config = apiConfig.config;\n            return Boolean(apiConfig.isEnabled) && config.length > 0 ? config : false;\n        },\n        processFallback: (localValue) => {\n            if (localValue === undefined) {\n                return ConstantsUtil.DEFAULT_REMOTE_FEATURES.onramp;\n            }\n            if (typeof localValue === 'boolean') {\n                return localValue ? ConstantsUtil.DEFAULT_REMOTE_FEATURES.onramp : false;\n            }\n            return localValue;\n        }\n    },\n    activity: {\n        apiFeatureName: 'activity',\n        localFeatureName: 'history',\n        returnType: false,\n        isLegacy: true,\n        isAvailableOnBasic: false,\n        processApi: (apiConfig) => Boolean(apiConfig.isEnabled),\n        processFallback: (localValue) => {\n            if (localValue === undefined) {\n                return ConstantsUtil.DEFAULT_REMOTE_FEATURES.activity;\n            }\n            return Boolean(localValue);\n        }\n    },\n    reownBranding: {\n        apiFeatureName: 'reown_branding',\n        localFeatureName: 'reownBranding',\n        returnType: false,\n        isLegacy: false,\n        isAvailableOnBasic: false,\n        processApi: (apiConfig) => Boolean(apiConfig.isEnabled),\n        processFallback: (localValue) => {\n            if (localValue === undefined) {\n                return ConstantsUtil.DEFAULT_REMOTE_FEATURES.reownBranding;\n            }\n            return Boolean(localValue);\n        }\n    }\n};\nexport const ConfigUtil = {\n    localSettingsOverridden: new Set(),\n    getApiConfig(id, apiProjectConfig) {\n        return apiProjectConfig?.find((f) => f.id === id);\n    },\n    addWarning(localFeatureValue, featureKey) {\n        if (localFeatureValue !== undefined) {\n            const config = featureConfig[featureKey];\n            const warningName = config.isLegacy\n                ? `\"features.${config.localFeatureName}\" (now \"${featureKey}\")`\n                : `\"features.${featureKey}\"`;\n            this.localSettingsOverridden.add(warningName);\n        }\n    },\n    processFeature(featureKey, localFeatures, apiProjectConfig, useApi, isBasic) {\n        const config = featureConfig[featureKey];\n        const localValue = localFeatures[config.localFeatureName];\n        if (isBasic && !config.isAvailableOnBasic) {\n            return false;\n        }\n        if (useApi) {\n            const apiConfig = this.getApiConfig(config.apiFeatureName, apiProjectConfig);\n            if (apiConfig?.config === null) {\n                return this.processFallbackFeature(featureKey, localValue);\n            }\n            if (!apiConfig?.config) {\n                return false;\n            }\n            if (localValue !== undefined) {\n                this.addWarning(localValue, featureKey);\n            }\n            return this.processApiFeature(featureKey, apiConfig);\n        }\n        return this.processFallbackFeature(featureKey, localValue);\n    },\n    processApiFeature(featureKey, apiConfig) {\n        return featureConfig[featureKey].processApi(apiConfig);\n    },\n    processFallbackFeature(featureKey, localValue) {\n        return featureConfig[featureKey].processFallback(localValue);\n    },\n    async fetchRemoteFeatures(config) {\n        const isBasic = config.basic ?? false;\n        const localFeatures = config.features || {};\n        this.localSettingsOverridden.clear();\n        let apiProjectConfig = null;\n        let useApiConfig = false;\n        try {\n            apiProjectConfig = await ApiController.fetchProjectConfig();\n            useApiConfig = apiProjectConfig !== null && apiProjectConfig !== undefined;\n        }\n        catch (e) {\n            console.warn('[Reown Config] Failed to fetch remote project configuration. Using local/default values.', e);\n        }\n        const remoteFeaturesConfig = useApiConfig && !isBasic\n            ? ConstantsUtil.DEFAULT_REMOTE_FEATURES\n            : ConstantsUtil.DEFAULT_REMOTE_FEATURES_DISABLED;\n        try {\n            for (const featureKey of FEATURE_KEYS) {\n                const result = this.processFeature(featureKey, localFeatures, apiProjectConfig, useApiConfig, isBasic);\n                Object.assign(remoteFeaturesConfig, { [featureKey]: result });\n            }\n        }\n        catch (e) {\n            console.warn('[Reown Config] Failed to process the configuration from Cloud. Using default values.', e);\n            return ConstantsUtil.DEFAULT_REMOTE_FEATURES;\n        }\n        if (useApiConfig && this.localSettingsOverridden.size > 0) {\n            const warningMessage = `Your local configuration for ${Array.from(this.localSettingsOverridden).join(', ')} was ignored because a remote configuration was successfully fetched. Please manage these features via your project dashboard on dashboard.reown.com.`;\n            AlertController.open({\n                shortMessage: 'Local configuration ignored',\n                longMessage: `[Reown Config Notice] ${warningMessage}`\n            }, 'warning');\n        }\n        return remoteFeaturesConfig;\n    }\n};\n//# sourceMappingURL=ConfigUtil.js.map","import UniversalProvider from '@walletconnect/universal-provider';\nimport { ConstantsUtil, NetworkUtil, ParseUtil } from '@reown/appkit-common';\nimport { AccountController, AlertController, ApiController, AssetUtil, BlockchainApiController, ChainController, ConnectionController, ConnectorController, ConstantsUtil as CoreConstantsUtil, CoreHelperUtil, EnsController, EventsController, ModalController, OnRampController, OptionsController, PublicStateController, RouterController, SIWXUtil, SendController, SnackController, StorageUtil, ThemeController } from '@reown/appkit-controllers';\nimport { getChainsToDisconnect } from '@reown/appkit-controllers/utils';\nimport { WalletUtil } from '@reown/appkit-scaffold-ui/utils';\nimport { setColorTheme, setThemeVariables } from '@reown/appkit-ui';\nimport { CaipNetworksUtil, ErrorUtil, HelpersUtil, LoggerUtil, ConstantsUtil as UtilConstantsUtil } from '@reown/appkit-utils';\nimport { ProviderUtil } from '@reown/appkit-utils';\nimport { UniversalAdapter } from '../universal-adapter/client.js';\nimport { ConfigUtil } from '../utils/ConfigUtil.js';\nimport { WcConstantsUtil, WcHelpersUtil } from '../utils/index.js';\nexport class AppKitBaseClient {\n    constructor(options) {\n        this.chainNamespaces = [];\n        this.remoteFeatures = {};\n        this.reportedAlertErrors = {};\n        // -- Public Internal ---------------------------------------------------\n        this.getCaipNetwork = (chainNamespace, id) => {\n            if (chainNamespace) {\n                const caipNetworkWithId = ChainController.getNetworkData(chainNamespace)?.requestedCaipNetworks?.find(c => c.id === id);\n                if (caipNetworkWithId) {\n                    return caipNetworkWithId;\n                }\n                const namespaceCaipNetwork = ChainController.getNetworkData(chainNamespace)?.caipNetwork;\n                if (namespaceCaipNetwork) {\n                    return namespaceCaipNetwork;\n                }\n                const requestedCaipNetworks = ChainController.getRequestedCaipNetworks(chainNamespace);\n                return requestedCaipNetworks.filter(c => c.chainNamespace === chainNamespace)?.[0];\n            }\n            return ChainController.state.activeCaipNetwork || this.defaultCaipNetwork;\n        };\n        this.getCaipNetworkId = () => {\n            const network = this.getCaipNetwork();\n            if (network) {\n                return network.id;\n            }\n            return undefined;\n        };\n        this.getCaipNetworks = (namespace) => ChainController.getCaipNetworks(namespace);\n        this.getActiveChainNamespace = () => ChainController.state.activeChain;\n        this.setRequestedCaipNetworks = (requestedCaipNetworks, chain) => {\n            ChainController.setRequestedCaipNetworks(requestedCaipNetworks, chain);\n        };\n        this.getApprovedCaipNetworkIds = () => ChainController.getAllApprovedCaipNetworkIds();\n        this.getCaipAddress = (chainNamespace) => {\n            if (ChainController.state.activeChain === chainNamespace || !chainNamespace) {\n                return ChainController.state.activeCaipAddress;\n            }\n            return ChainController.getAccountProp('caipAddress', chainNamespace);\n        };\n        this.setClientId = clientId => {\n            BlockchainApiController.setClientId(clientId);\n        };\n        this.getProvider = (namespace) => ProviderUtil.getProvider(namespace);\n        this.getProviderType = (namespace) => ProviderUtil.getProviderId(namespace);\n        this.getPreferredAccountType = (namespace) => AccountController.state.preferredAccountTypes?.[namespace];\n        this.setCaipAddress = (caipAddress, chain) => {\n            AccountController.setCaipAddress(caipAddress, chain);\n            /**\n             * For the embedded use cases (Demo app), we should call close() when the user is connected to redirect them to Account View.\n             */\n            if (caipAddress && OptionsController.state.enableEmbedded) {\n                this.close();\n            }\n        };\n        this.setBalance = (balance, balanceSymbol, chain) => {\n            AccountController.setBalance(balance, balanceSymbol, chain);\n        };\n        this.setProfileName = (profileName, chain) => {\n            AccountController.setProfileName(profileName, chain);\n        };\n        this.setProfileImage = (profileImage, chain) => {\n            AccountController.setProfileImage(profileImage, chain);\n        };\n        this.setUser = (user, chain) => {\n            AccountController.setUser(user, chain);\n        };\n        this.resetAccount = (chain) => {\n            AccountController.resetAccount(chain);\n        };\n        this.setCaipNetwork = caipNetwork => {\n            ChainController.setActiveCaipNetwork(caipNetwork);\n        };\n        this.setCaipNetworkOfNamespace = (caipNetwork, chainNamespace) => {\n            ChainController.setChainNetworkData(chainNamespace, { caipNetwork });\n        };\n        this.setAllAccounts = (addresses, chain) => {\n            AccountController.setAllAccounts(addresses, chain);\n            OptionsController.setHasMultipleAddresses(addresses?.length > 1);\n        };\n        this.setStatus = (status, chain) => {\n            AccountController.setStatus(status, chain);\n            // If at least one namespace is connected, set the connection status\n            if (ConnectorController.isConnected()) {\n                StorageUtil.setConnectionStatus('connected');\n            }\n            else {\n                StorageUtil.setConnectionStatus('disconnected');\n            }\n        };\n        this.getAddressByChainNamespace = (chainNamespace) => ChainController.getAccountProp('address', chainNamespace);\n        this.setConnectors = connectors => {\n            const allConnectors = [...ConnectorController.state.allConnectors, ...connectors];\n            ConnectorController.setConnectors(allConnectors);\n        };\n        this.setConnections = (connections, chainNamespace) => {\n            ConnectionController.setConnections(connections, chainNamespace);\n        };\n        this.fetchIdentity = request => BlockchainApiController.fetchIdentity(request);\n        this.getReownName = address => EnsController.getNamesForAddress(address);\n        this.getConnectors = () => ConnectorController.getConnectors();\n        this.getConnectorImage = connector => AssetUtil.getConnectorImage(connector);\n        this.setConnectedWalletInfo = (connectedWalletInfo, chain) => {\n            const type = ProviderUtil.getProviderId(chain);\n            const walletInfo = connectedWalletInfo ? { ...connectedWalletInfo, type } : undefined;\n            AccountController.setConnectedWalletInfo(walletInfo, chain);\n        };\n        this.getIsConnectedState = () => Boolean(ChainController.state.activeCaipAddress);\n        this.addAddressLabel = (address, label, chain) => {\n            AccountController.addAddressLabel(address, label, chain);\n        };\n        this.removeAddressLabel = (address, chain) => {\n            AccountController.removeAddressLabel(address, chain);\n        };\n        this.getAddress = (chainNamespace) => {\n            if (ChainController.state.activeChain === chainNamespace || !chainNamespace) {\n                return AccountController.state.address;\n            }\n            return ChainController.getAccountProp('address', chainNamespace);\n        };\n        this.setApprovedCaipNetworksData = namespace => ChainController.setApprovedCaipNetworksData(namespace);\n        this.resetNetwork = (namespace) => {\n            ChainController.resetNetwork(namespace);\n        };\n        this.addConnector = connector => {\n            ConnectorController.addConnector(connector);\n        };\n        this.resetWcConnection = () => {\n            ConnectionController.resetWcConnection();\n        };\n        this.setAddressExplorerUrl = (addressExplorerUrl, chain) => {\n            AccountController.setAddressExplorerUrl(addressExplorerUrl, chain);\n        };\n        this.setSmartAccountDeployed = (isDeployed, chain) => {\n            AccountController.setSmartAccountDeployed(isDeployed, chain);\n        };\n        this.setSmartAccountEnabledNetworks = (smartAccountEnabledNetworks, chain) => {\n            ChainController.setSmartAccountEnabledNetworks(smartAccountEnabledNetworks, chain);\n        };\n        this.setPreferredAccountType = (preferredAccountType, chain) => {\n            AccountController.setPreferredAccountType(preferredAccountType, chain);\n        };\n        this.setEIP6963Enabled = enabled => {\n            OptionsController.setEIP6963Enabled(enabled);\n        };\n        this.handleUnsafeRPCRequest = () => {\n            if (this.isOpen()) {\n                // If we are on the modal but there is no transaction stack, close the modal\n                if (this.isTransactionStackEmpty()) {\n                    return;\n                }\n                // Check if we need to replace or redirect\n                this.redirect('ApproveTransaction');\n            }\n            else {\n                // If called from outside the modal, open ApproveTransaction\n                this.open({ view: 'ApproveTransaction' });\n            }\n        };\n        this.options = options;\n        this.version = options.sdkVersion;\n        this.caipNetworks = this.extendCaipNetworks(options);\n        this.chainNamespaces = this.getChainNamespacesSet(options.adapters, this.caipNetworks);\n        this.defaultCaipNetwork = this.extendDefaultCaipNetwork(options);\n        this.chainAdapters = this.createAdapters(options.adapters);\n        this.readyPromise = this.initialize(options);\n    }\n    getChainNamespacesSet(adapters, caipNetworks) {\n        const adapterNamespaces = adapters\n            ?.map(adapter => adapter.namespace)\n            .filter((namespace) => Boolean(namespace));\n        if (adapterNamespaces?.length) {\n            return [...new Set(adapterNamespaces)];\n        }\n        const networkNamespaces = caipNetworks?.map(network => network.chainNamespace);\n        return [...new Set(networkNamespaces)];\n    }\n    async initialize(options) {\n        this.initializeProjectSettings(options);\n        this.initControllers(options);\n        await this.initChainAdapters();\n        this.sendInitializeEvent(options);\n        await this.syncExistingConnection();\n        this.remoteFeatures = await ConfigUtil.fetchRemoteFeatures(options);\n        OptionsController.setRemoteFeatures(this.remoteFeatures);\n        if (this.remoteFeatures.onramp) {\n            OnRampController.setOnrampProviders(this.remoteFeatures.onramp);\n        }\n        // Check allowed origins only if email or social features are enabled\n        if (OptionsController.state.remoteFeatures?.email ||\n            (Array.isArray(OptionsController.state.remoteFeatures?.socials) &&\n                OptionsController.state.remoteFeatures?.socials.length > 0)) {\n            await this.checkAllowedOrigins();\n        }\n    }\n    async checkAllowedOrigins() {\n        const allowedOrigins = await ApiController.fetchAllowedOrigins();\n        if (allowedOrigins && CoreHelperUtil.isClient()) {\n            const currentOrigin = window.location.origin;\n            const isOriginAllowed = WcHelpersUtil.isOriginAllowed(currentOrigin, allowedOrigins, WcConstantsUtil.DEFAULT_ALLOWED_ANCESTORS);\n            if (!isOriginAllowed) {\n                AlertController.open(ErrorUtil.ALERT_ERRORS.INVALID_APP_CONFIGURATION, 'error');\n            }\n        }\n        else {\n            AlertController.open(ErrorUtil.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED, 'error');\n        }\n    }\n    sendInitializeEvent(options) {\n        const { ...optionsCopy } = options;\n        delete optionsCopy.adapters;\n        delete optionsCopy.universalProvider;\n        EventsController.sendEvent({\n            type: 'track',\n            event: 'INITIALIZE',\n            properties: {\n                ...optionsCopy,\n                networks: options.networks.map(n => n.id),\n                siweConfig: {\n                    options: options.siweConfig?.options || {}\n                }\n            }\n        });\n    }\n    // -- Controllers initialization ---------------------------------------------------\n    initControllers(options) {\n        this.initializeOptionsController(options);\n        this.initializeChainController(options);\n        this.initializeThemeController(options);\n        this.initializeConnectionController(options);\n        this.initializeConnectorController();\n    }\n    initializeThemeController(options) {\n        if (options.themeMode) {\n            ThemeController.setThemeMode(options.themeMode);\n        }\n        if (options.themeVariables) {\n            ThemeController.setThemeVariables(options.themeVariables);\n        }\n    }\n    initializeChainController(options) {\n        if (!this.connectionControllerClient || !this.networkControllerClient) {\n            throw new Error('ConnectionControllerClient and NetworkControllerClient must be set');\n        }\n        ChainController.initialize(options.adapters ?? [], this.caipNetworks, {\n            connectionControllerClient: this.connectionControllerClient,\n            networkControllerClient: this.networkControllerClient\n        });\n        const network = this.getDefaultNetwork();\n        if (network) {\n            ChainController.setActiveCaipNetwork(network);\n        }\n    }\n    initializeConnectionController(options) {\n        ConnectionController.setWcBasic(options.basic ?? false);\n    }\n    initializeConnectorController() {\n        ConnectorController.initialize(this.chainNamespaces);\n    }\n    initializeProjectSettings(options) {\n        OptionsController.setProjectId(options.projectId);\n        OptionsController.setSdkVersion(options.sdkVersion);\n    }\n    initializeOptionsController(options) {\n        OptionsController.setDebug(options.debug !== false);\n        // On by default\n        OptionsController.setEnableWalletConnect(options.enableWalletConnect !== false);\n        OptionsController.setEnableWalletGuide(options.enableWalletGuide !== false);\n        OptionsController.setEnableWallets(options.enableWallets !== false);\n        OptionsController.setEIP6963Enabled(options.enableEIP6963 !== false);\n        OptionsController.setEnableNetworkSwitch(options.enableNetworkSwitch !== false);\n        OptionsController.setEnableAuthLogger(options.enableAuthLogger !== false);\n        OptionsController.setCustomRpcUrls(options.customRpcUrls);\n        OptionsController.setEnableEmbedded(options.enableEmbedded);\n        OptionsController.setAllWallets(options.allWallets);\n        OptionsController.setIncludeWalletIds(options.includeWalletIds);\n        OptionsController.setExcludeWalletIds(options.excludeWalletIds);\n        OptionsController.setFeaturedWalletIds(options.featuredWalletIds);\n        OptionsController.setTokens(options.tokens);\n        OptionsController.setTermsConditionsUrl(options.termsConditionsUrl);\n        OptionsController.setPrivacyPolicyUrl(options.privacyPolicyUrl);\n        OptionsController.setCustomWallets(options.customWallets);\n        OptionsController.setFeatures(options.features);\n        OptionsController.setAllowUnsupportedChain(options.allowUnsupportedChain);\n        OptionsController.setUniversalProviderConfigOverride(options.universalProviderConfigOverride);\n        OptionsController.setPreferUniversalLinks(options.experimental_preferUniversalLinks);\n        // Save option in controller\n        OptionsController.setDefaultAccountTypes(options.defaultAccountTypes);\n        // Get stored account types\n        const storedAccountTypes = StorageUtil.getPreferredAccountTypes() || {};\n        const defaultTypes = { ...OptionsController.state.defaultAccountTypes, ...storedAccountTypes };\n        AccountController.setPreferredAccountTypes(defaultTypes);\n        const defaultMetaData = this.getDefaultMetaData();\n        if (!options.metadata && defaultMetaData) {\n            options.metadata = defaultMetaData;\n        }\n        OptionsController.setMetadata(options.metadata);\n        OptionsController.setDisableAppend(options.disableAppend);\n        OptionsController.setEnableEmbedded(options.enableEmbedded);\n        OptionsController.setSIWX(options.siwx);\n        if (!options.projectId) {\n            AlertController.open(ErrorUtil.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED, 'error');\n            return;\n        }\n        const evmAdapter = options.adapters?.find(adapter => adapter.namespace === ConstantsUtil.CHAIN.EVM);\n        // Set the SIWE client for EVM chains\n        if (evmAdapter) {\n            if (options.siweConfig) {\n                if (options.siwx) {\n                    throw new Error('Cannot set both `siweConfig` and `siwx` options');\n                }\n                OptionsController.setSIWX(options.siweConfig.mapToSIWX());\n            }\n        }\n    }\n    getDefaultMetaData() {\n        if (CoreHelperUtil.isClient()) {\n            return {\n                name: document.getElementsByTagName('title')?.[0]?.textContent || '',\n                description: document.querySelector('meta[property=\"og:description\"]')?.content || '',\n                url: window.location.origin,\n                icons: [document.querySelector('link[rel~=\"icon\"]')?.href || '']\n            };\n        }\n        return null;\n    }\n    // -- Network Initialization ---------------------------------------------------\n    setUnsupportedNetwork(chainId) {\n        const namespace = this.getActiveChainNamespace();\n        if (namespace) {\n            const unsupportedNetwork = CaipNetworksUtil.getUnsupportedNetwork(`${namespace}:${chainId}`);\n            ChainController.setActiveCaipNetwork(unsupportedNetwork);\n        }\n    }\n    getDefaultNetwork() {\n        return CaipNetworksUtil.getCaipNetworkFromStorage(this.defaultCaipNetwork);\n    }\n    extendCaipNetwork(network, options) {\n        const extendedNetwork = CaipNetworksUtil.extendCaipNetwork(network, {\n            customNetworkImageUrls: options.chainImages,\n            projectId: options.projectId\n        });\n        return extendedNetwork;\n    }\n    extendCaipNetworks(options) {\n        const extendedNetworks = CaipNetworksUtil.extendCaipNetworks(options.networks, {\n            customNetworkImageUrls: options.chainImages,\n            customRpcUrls: options.customRpcUrls,\n            projectId: options.projectId\n        });\n        return extendedNetworks;\n    }\n    extendDefaultCaipNetwork(options) {\n        const defaultNetwork = options.networks.find(n => n.id === options.defaultNetwork?.id);\n        const extendedNetwork = defaultNetwork\n            ? CaipNetworksUtil.extendCaipNetwork(defaultNetwork, {\n                customNetworkImageUrls: options.chainImages,\n                customRpcUrls: options.customRpcUrls,\n                projectId: options.projectId\n            })\n            : undefined;\n        return extendedNetwork;\n    }\n    async disconnectNamespace(namespace) {\n        try {\n            const adapter = this.getAdapter(namespace);\n            const provider = ProviderUtil.getProvider(namespace);\n            const providerType = ProviderUtil.getProviderId(namespace);\n            const { caipAddress } = ChainController.getAccountData(namespace) || {};\n            this.setLoading(true, namespace);\n            if (caipAddress && adapter?.disconnect) {\n                await adapter.disconnect({ provider, providerType });\n            }\n            StorageUtil.removeConnectedNamespace(namespace);\n            ProviderUtil.resetChain(namespace);\n            this.setUser(undefined, namespace);\n            this.setStatus('disconnected', namespace);\n            this.setConnectedWalletInfo(undefined, namespace);\n            ConnectorController.removeConnectorId(namespace);\n            ChainController.resetAccount(namespace);\n            ChainController.resetNetwork(namespace);\n            this.setLoading(false, namespace);\n        }\n        catch (error) {\n            this.setLoading(false, namespace);\n            throw new Error(`Failed to disconnect chain ${namespace}: ${error.message}`);\n        }\n    }\n    // -- Client Initialization ---------------------------------------------------\n    createClients() {\n        this.connectionControllerClient = {\n            connectWalletConnect: async () => {\n                const activeChain = ChainController.state.activeChain;\n                const adapter = this.getAdapter(activeChain);\n                const chainId = this.getCaipNetwork(activeChain)?.id;\n                if (!adapter) {\n                    throw new Error('Adapter not found');\n                }\n                const result = await adapter.connectWalletConnect(chainId);\n                this.close();\n                this.setClientId(result?.clientId || null);\n                StorageUtil.setConnectedNamespaces([...ChainController.state.chains.keys()]);\n                this.chainNamespaces.forEach(namespace => {\n                    ConnectorController.setConnectorId(UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT, namespace);\n                });\n                await this.syncWalletConnectAccount();\n            },\n            connectExternal: async ({ id, info, type, provider, chain, caipNetwork, socialUri }) => {\n                const activeChain = ChainController.state.activeChain;\n                const chainToUse = chain || activeChain;\n                const adapter = this.getAdapter(chainToUse);\n                if (chain && chain !== activeChain && !caipNetwork) {\n                    const toConnectNetwork = this.getCaipNetworks().find(network => network.chainNamespace === chain);\n                    if (toConnectNetwork) {\n                        this.setCaipNetwork(toConnectNetwork);\n                    }\n                }\n                if (!adapter) {\n                    throw new Error('Adapter not found');\n                }\n                const fallbackCaipNetwork = this.getCaipNetwork(chainToUse);\n                const res = await adapter.connect({\n                    id,\n                    info,\n                    type,\n                    provider,\n                    socialUri,\n                    chainId: caipNetwork?.id || fallbackCaipNetwork?.id,\n                    rpcUrl: caipNetwork?.rpcUrls?.default?.http?.[0] ||\n                        fallbackCaipNetwork?.rpcUrls?.default?.http?.[0]\n                });\n                if (!res) {\n                    return;\n                }\n                StorageUtil.addConnectedNamespace(chainToUse);\n                this.syncProvider({ ...res, chainNamespace: chainToUse });\n                /*\n                 * SyncAllAccounts already set the accounts in the state\n                 * and its more efficient to use the stored accounts rather than fetching them again\n                 */\n                const syncedAccounts = AccountController.state.allAccounts;\n                const { accounts } = syncedAccounts?.length > 0\n                    ? // eslint-disable-next-line line-comment-position\n                        // Using new array else the accounts will have the same reference and react will not re-render\n                        { accounts: [...syncedAccounts] }\n                    : await adapter.getAccounts({ namespace: chainToUse, id });\n                this.setAllAccounts(accounts, chainToUse);\n                this.setStatus('connected', chainToUse);\n                this.syncConnectedWalletInfo(chainToUse);\n            },\n            reconnectExternal: async ({ id, info, type, provider }) => {\n                const namespace = ChainController.state.activeChain;\n                const adapter = this.getAdapter(namespace);\n                if (adapter?.reconnect) {\n                    await adapter?.reconnect({ id, info, type, provider, chainId: this.getCaipNetwork()?.id });\n                    StorageUtil.addConnectedNamespace(namespace);\n                    this.syncConnectedWalletInfo(namespace);\n                }\n            },\n            disconnect: async (chainNamespace) => {\n                const chainsToDisconnect = getChainsToDisconnect(chainNamespace);\n                try {\n                    // Reset send state when disconnecting\n                    const disconnectResults = await Promise.allSettled(chainsToDisconnect.map(async ([ns]) => this.disconnectNamespace(ns)));\n                    SendController.resetSend();\n                    ConnectionController.resetWcConnection();\n                    await SIWXUtil.clearSessions();\n                    ConnectorController.setFilterByNamespace(undefined);\n                    const failures = disconnectResults.filter((result) => result.status === 'rejected');\n                    if (failures.length > 0) {\n                        throw new Error(failures.map(f => f.reason.message).join(', '));\n                    }\n                    StorageUtil.deleteConnectedSocialProvider();\n                    EventsController.sendEvent({\n                        type: 'track',\n                        event: 'DISCONNECT_SUCCESS',\n                        properties: {\n                            namespace: chainNamespace || 'all'\n                        }\n                    });\n                }\n                catch (error) {\n                    throw new Error(`Failed to disconnect chains: ${error.message}`);\n                }\n            },\n            checkInstalled: (ids) => {\n                if (!ids) {\n                    return Boolean(window.ethereum);\n                }\n                return ids.some(id => Boolean(window.ethereum?.[String(id)]));\n            },\n            signMessage: async (message) => {\n                const adapter = this.getAdapter(ChainController.state.activeChain);\n                const result = await adapter?.signMessage({\n                    message,\n                    address: AccountController.state.address,\n                    provider: ProviderUtil.getProvider(ChainController.state.activeChain)\n                });\n                return result?.signature || '';\n            },\n            sendTransaction: async (args) => {\n                const namespace = args.chainNamespace;\n                if (CoreConstantsUtil.SEND_SUPPORTED_NAMESPACES.includes(namespace)) {\n                    const adapter = this.getAdapter(ChainController.state.activeChain);\n                    const provider = ProviderUtil.getProvider(namespace);\n                    const result = await adapter?.sendTransaction({\n                        ...args,\n                        caipNetwork: this.getCaipNetwork(),\n                        provider\n                    });\n                    return result?.hash || '';\n                }\n                return '';\n            },\n            estimateGas: async (args) => {\n                if (args.chainNamespace === ConstantsUtil.CHAIN.EVM) {\n                    const adapter = this.getAdapter(ChainController.state.activeChain);\n                    const provider = ProviderUtil.getProvider(ChainController.state.activeChain);\n                    const caipNetwork = this.getCaipNetwork();\n                    if (!caipNetwork) {\n                        throw new Error('CaipNetwork is undefined');\n                    }\n                    const result = await adapter?.estimateGas({\n                        ...args,\n                        provider,\n                        caipNetwork\n                    });\n                    return result?.gas || 0n;\n                }\n                return 0n;\n            },\n            getEnsAvatar: async () => {\n                await this.syncIdentity({\n                    address: AccountController.state.address,\n                    chainId: Number(this.getCaipNetwork()?.id),\n                    chainNamespace: ChainController.state.activeChain\n                });\n                return AccountController.state.profileImage || false;\n            },\n            getEnsAddress: async (name) => await WcHelpersUtil.resolveReownName(name),\n            writeContract: async (args) => {\n                const adapter = this.getAdapter(ChainController.state.activeChain);\n                const caipNetwork = this.getCaipNetwork();\n                const caipAddress = this.getCaipAddress();\n                const provider = ProviderUtil.getProvider(ChainController.state.activeChain);\n                if (!caipNetwork || !caipAddress) {\n                    throw new Error('CaipNetwork or CaipAddress is undefined');\n                }\n                const result = await adapter?.writeContract({ ...args, caipNetwork, provider, caipAddress });\n                return result?.hash;\n            },\n            parseUnits: (value, decimals) => {\n                const adapter = this.getAdapter(ChainController.state.activeChain);\n                return adapter?.parseUnits({ value, decimals }) ?? 0n;\n            },\n            formatUnits: (value, decimals) => {\n                const adapter = this.getAdapter(ChainController.state.activeChain);\n                return adapter?.formatUnits({ value, decimals }) ?? '0';\n            },\n            getCapabilities: async (params) => {\n                const adapter = this.getAdapter(ChainController.state.activeChain);\n                return await adapter?.getCapabilities(params);\n            },\n            grantPermissions: async (params) => {\n                const adapter = this.getAdapter(ChainController.state.activeChain);\n                return await adapter?.grantPermissions(params);\n            },\n            revokePermissions: async (params) => {\n                const adapter = this.getAdapter(ChainController.state.activeChain);\n                if (adapter?.revokePermissions) {\n                    return await adapter.revokePermissions(params);\n                }\n                return '0x';\n            },\n            walletGetAssets: async (params) => {\n                const adapter = this.getAdapter(ChainController.state.activeChain);\n                return (await adapter?.walletGetAssets(params)) ?? {};\n            },\n            updateBalance: (namespace) => {\n                const caipNetwork = this.getCaipNetwork(namespace);\n                if (!caipNetwork || !AccountController.state.address) {\n                    return;\n                }\n                this.updateNativeBalance(AccountController.state.address, caipNetwork?.id, namespace);\n            }\n        };\n        this.networkControllerClient = {\n            switchCaipNetwork: async (caipNetwork) => await this.switchCaipNetwork(caipNetwork),\n            // eslint-disable-next-line @typescript-eslint/require-await\n            getApprovedCaipNetworksData: async () => this.getApprovedCaipNetworksData()\n        };\n        ConnectionController.setClient(this.connectionControllerClient);\n    }\n    getApprovedCaipNetworksData() {\n        const providerType = ProviderUtil.getProviderId(ChainController.state.activeChain);\n        if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT) {\n            const namespaces = this.universalProvider?.session?.namespaces;\n            return {\n                /*\n                 * MetaMask Wallet only returns 1 namespace in the session object. This makes it imposible\n                 * to switch to other networks. Setting supportsAllNetworks to true for MetaMask Wallet\n                 * will make it possible to switch to other networks.\n                 */\n                supportsAllNetworks: this.universalProvider?.session?.peer?.metadata.name === 'MetaMask Wallet',\n                approvedCaipNetworkIds: this.getChainsFromNamespaces(namespaces)\n            };\n        }\n        return { supportsAllNetworks: true, approvedCaipNetworkIds: [] };\n    }\n    async switchCaipNetwork(caipNetwork) {\n        if (!caipNetwork) {\n            return;\n        }\n        const networkNamespace = caipNetwork.chainNamespace;\n        const namespaceAddress = this.getAddressByChainNamespace(caipNetwork.chainNamespace);\n        if (namespaceAddress) {\n            const provider = ProviderUtil.getProvider(networkNamespace);\n            const providerType = ProviderUtil.getProviderId(networkNamespace);\n            if (caipNetwork.chainNamespace === ChainController.state.activeChain) {\n                const adapter = this.getAdapter(networkNamespace);\n                await adapter?.switchNetwork({ caipNetwork, provider, providerType });\n            }\n            else {\n                this.setCaipNetwork(caipNetwork);\n                if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT) {\n                    this.syncWalletConnectAccount();\n                }\n                else {\n                    const address = this.getAddressByChainNamespace(networkNamespace);\n                    if (address) {\n                        this.syncAccount({\n                            address,\n                            chainId: caipNetwork.id,\n                            chainNamespace: networkNamespace\n                        });\n                    }\n                }\n            }\n        }\n        else {\n            this.setCaipNetwork(caipNetwork);\n        }\n    }\n    getChainsFromNamespaces(namespaces = {}) {\n        return Object.values(namespaces).flatMap((namespace) => {\n            const chains = (namespace.chains || []);\n            const accountsChains = namespace.accounts.map(account => {\n                const { chainId, chainNamespace } = ParseUtil.parseCaipAddress(account);\n                return `${chainNamespace}:${chainId}`;\n            });\n            return Array.from(new Set([...chains, ...accountsChains]));\n        });\n    }\n    // -- Adapter Initialization ---------------------------------------------------\n    createAdapters(blueprints) {\n        this.createClients();\n        return this.chainNamespaces.reduce((adapters, namespace) => {\n            const blueprint = blueprints?.find(b => b.namespace === namespace);\n            if (blueprint) {\n                blueprint.construct({\n                    namespace,\n                    projectId: this.options?.projectId,\n                    networks: this.getCaipNetworks()\n                });\n                adapters[namespace] = blueprint;\n            }\n            else {\n                adapters[namespace] = new UniversalAdapter({\n                    namespace: namespace,\n                    networks: this.getCaipNetworks()\n                });\n            }\n            return adapters;\n            // eslint-disable-next-line @typescript-eslint/prefer-reduce-type-parameter\n        }, {});\n    }\n    async initChainAdapter(namespace) {\n        this.onConnectors(namespace);\n        this.listenAdapter(namespace);\n        await this.chainAdapters?.[namespace].syncConnectors(this.options, this);\n        await this.createUniversalProviderForAdapter(namespace);\n    }\n    async initChainAdapters() {\n        await Promise.all(this.chainNamespaces.map(async (namespace) => {\n            await this.initChainAdapter(namespace);\n        }));\n    }\n    onConnectors(chainNamespace) {\n        const adapter = this.getAdapter(chainNamespace);\n        adapter?.on('connectors', this.setConnectors.bind(this));\n    }\n    listenAdapter(chainNamespace) {\n        const adapter = this.getAdapter(chainNamespace);\n        if (!adapter) {\n            return;\n        }\n        const connectionStatus = StorageUtil.getConnectionStatus();\n        if (connectionStatus === 'connected') {\n            this.setStatus('connecting', chainNamespace);\n        }\n        else if (connectionStatus === 'disconnected') {\n            /*\n             * Address cache is kept after disconnecting from the wallet\n             * but should be cleared if appkit is launched in disconnected state\n             */\n            StorageUtil.clearAddressCache();\n            this.setStatus(connectionStatus, chainNamespace);\n        }\n        else {\n            this.setStatus(connectionStatus, chainNamespace);\n        }\n        adapter.on('switchNetwork', ({ address, chainId }) => {\n            const caipNetwork = this.getCaipNetworks().find(n => n.id === chainId || n.caipNetworkId === chainId);\n            const isSameNamespace = ChainController.state.activeChain === chainNamespace;\n            const accountAddress = ChainController.getAccountProp('address', chainNamespace);\n            if (caipNetwork) {\n                const account = isSameNamespace && address ? address : accountAddress;\n                if (account) {\n                    this.syncAccount({ address: account, chainId: caipNetwork.id, chainNamespace });\n                }\n            }\n            else {\n                this.setUnsupportedNetwork(chainId);\n            }\n        });\n        adapter.on('disconnect', this.disconnect.bind(this, chainNamespace));\n        adapter.on('connections', connections => {\n            this.setConnections(connections, chainNamespace);\n        });\n        adapter.on('pendingTransactions', () => {\n            const address = AccountController.state.address;\n            const activeCaipNetwork = ChainController.state.activeCaipNetwork;\n            if (!address || !activeCaipNetwork?.id) {\n                return;\n            }\n            this.updateNativeBalance(address, activeCaipNetwork.id, activeCaipNetwork.chainNamespace);\n        });\n        adapter.on('accountChanged', ({ address, chainId }) => {\n            const isActiveChain = ChainController.state.activeChain === chainNamespace;\n            if (isActiveChain && chainId) {\n                this.syncAccount({\n                    address,\n                    chainId,\n                    chainNamespace\n                });\n            }\n            else if (isActiveChain && ChainController.state.activeCaipNetwork?.id) {\n                this.syncAccount({\n                    address,\n                    chainId: ChainController.state.activeCaipNetwork?.id,\n                    chainNamespace\n                });\n            }\n            else {\n                this.syncAccountInfo(address, chainId, chainNamespace);\n            }\n            this.syncAllAccounts(chainNamespace);\n        });\n    }\n    async createUniversalProviderForAdapter(chainNamespace) {\n        await this.getUniversalProvider();\n        if (this.universalProvider) {\n            this.chainAdapters?.[chainNamespace]?.setUniversalProvider?.(this.universalProvider);\n        }\n    }\n    // -- Connection Sync ---------------------------------------------------\n    async syncExistingConnection() {\n        await Promise.allSettled(this.chainNamespaces.map(namespace => this.syncNamespaceConnection(namespace)));\n    }\n    async syncNamespaceConnection(namespace) {\n        try {\n            if (namespace === ConstantsUtil.CHAIN.EVM && CoreHelperUtil.isSafeApp()) {\n                ConnectorController.setConnectorId(ConstantsUtil.CONNECTOR_ID.SAFE, namespace);\n            }\n            const connectorId = ConnectorController.getConnectorId(namespace);\n            this.setStatus('connecting', namespace);\n            switch (connectorId) {\n                case ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT:\n                    await this.syncWalletConnectAccount();\n                    break;\n                case ConstantsUtil.CONNECTOR_ID.AUTH:\n                    // Handled during initialization of adapters' auth provider\n                    break;\n                default:\n                    await this.syncAdapterConnection(namespace);\n            }\n        }\n        catch (err) {\n            console.warn(\"AppKit couldn't sync existing connection\", err);\n            this.setStatus('disconnected', namespace);\n        }\n    }\n    async syncAdapterConnection(namespace) {\n        const adapter = this.getAdapter(namespace);\n        const connectorId = ConnectorController.getConnectorId(namespace);\n        const caipNetwork = this.getCaipNetwork(namespace);\n        const connectors = ConnectorController.getConnectors(namespace);\n        const connector = connectors.find(c => c.id === connectorId);\n        try {\n            if (!adapter || !connector) {\n                throw new Error(`Adapter or connector not found for namespace ${namespace}`);\n            }\n            if (!caipNetwork?.id) {\n                throw new Error('CaipNetwork not found');\n            }\n            const connection = await adapter?.syncConnection({\n                namespace,\n                id: connector.id,\n                chainId: caipNetwork.id,\n                rpcUrl: caipNetwork?.rpcUrls?.default?.http?.[0]\n            });\n            if (connection) {\n                const accounts = await adapter?.getAccounts({\n                    namespace,\n                    id: connector.id\n                });\n                if (accounts && accounts.accounts.length > 0) {\n                    this.setAllAccounts(accounts.accounts, namespace);\n                }\n                else {\n                    this.setAllAccounts([CoreHelperUtil.createAccount(namespace, connection.address, 'eoa')], namespace);\n                }\n                this.syncProvider({ ...connection, chainNamespace: namespace });\n                await this.syncAccount({ ...connection, chainNamespace: namespace });\n                this.setStatus('connected', namespace);\n            }\n            else {\n                this.setStatus('disconnected', namespace);\n            }\n        }\n        catch (e) {\n            this.setStatus('disconnected', namespace);\n        }\n    }\n    async syncWalletConnectAccount() {\n        const syncTasks = this.chainNamespaces.map(async (chainNamespace) => {\n            const adapter = this.getAdapter(chainNamespace);\n            const namespaceAccounts = this.universalProvider?.session?.namespaces?.[chainNamespace]?.accounts || [];\n            // We try and find the address for this network in the session object.\n            const activeChainId = ChainController.state.activeCaipNetwork?.id;\n            const sessionAddress = namespaceAccounts.find(account => {\n                const { chainId } = ParseUtil.parseCaipAddress(account);\n                return chainId === activeChainId?.toString();\n            }) || namespaceAccounts[0];\n            if (sessionAddress) {\n                const caipAddress = ParseUtil.validateCaipAddress(sessionAddress);\n                const { chainId, address } = ParseUtil.parseCaipAddress(caipAddress);\n                ProviderUtil.setProviderId(chainNamespace, UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT);\n                if (this.caipNetworks &&\n                    ChainController.state.activeCaipNetwork &&\n                    adapter?.namespace !== ConstantsUtil.CHAIN.EVM) {\n                    const provider = adapter?.getWalletConnectProvider({\n                        caipNetworks: this.getCaipNetworks(),\n                        provider: this.universalProvider,\n                        activeCaipNetwork: ChainController.state.activeCaipNetwork\n                    });\n                    ProviderUtil.setProvider(chainNamespace, provider);\n                }\n                else {\n                    ProviderUtil.setProvider(chainNamespace, this.universalProvider);\n                }\n                ConnectorController.setConnectorId(ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT, chainNamespace);\n                StorageUtil.addConnectedNamespace(chainNamespace);\n                this.syncWalletConnectAccounts(chainNamespace);\n                await this.syncAccount({\n                    address,\n                    chainId,\n                    chainNamespace\n                });\n            }\n            else {\n                this.setStatus('disconnected', chainNamespace);\n            }\n            this.syncConnectedWalletInfo(chainNamespace);\n            await ChainController.setApprovedCaipNetworksData(chainNamespace);\n        });\n        await Promise.all(syncTasks);\n    }\n    syncWalletConnectAccounts(chainNamespace) {\n        const addresses = this.universalProvider?.session?.namespaces?.[chainNamespace]?.accounts\n            ?.map(account => {\n            const { address } = ParseUtil.parseCaipAddress(account);\n            return address;\n        })\n            .filter((address, index, self) => self.indexOf(address) === index);\n        if (addresses) {\n            this.setAllAccounts(addresses.map(address => CoreHelperUtil.createAccount(chainNamespace, address, chainNamespace === 'bip122' ? 'payment' : 'eoa')), chainNamespace);\n        }\n    }\n    syncProvider({ type, provider, id, chainNamespace }) {\n        ProviderUtil.setProviderId(chainNamespace, type);\n        ProviderUtil.setProvider(chainNamespace, provider);\n        ConnectorController.setConnectorId(id, chainNamespace);\n    }\n    async syncAllAccounts(namespace) {\n        const connectorId = ConnectorController.getConnectorId(namespace);\n        if (!connectorId) {\n            return;\n        }\n        const adapter = this.getAdapter(namespace);\n        const accounts = await adapter?.getAccounts({ namespace, id: connectorId });\n        if (accounts && accounts.accounts.length > 0) {\n            this.setAllAccounts(accounts.accounts, namespace);\n        }\n    }\n    async syncAccount(params) {\n        const isActiveNamespace = params.chainNamespace === ChainController.state.activeChain;\n        const networkOfChain = ChainController.getCaipNetworkByNamespace(params.chainNamespace, params.chainId);\n        const { address, chainId, chainNamespace } = params;\n        const { chainId: activeChainId } = StorageUtil.getActiveNetworkProps();\n        const chainIdToUse = chainId || activeChainId;\n        const isUnsupportedNetwork = ChainController.state.activeCaipNetwork?.name === ConstantsUtil.UNSUPPORTED_NETWORK_NAME;\n        const shouldSupportAllNetworks = ChainController.getNetworkProp('supportsAllNetworks', chainNamespace);\n        this.setStatus('connected', chainNamespace);\n        if (isUnsupportedNetwork && !shouldSupportAllNetworks) {\n            return;\n        }\n        if (chainIdToUse) {\n            let caipNetwork = this.getCaipNetworks().find(n => n.id.toString() === chainIdToUse.toString());\n            let fallbackCaipNetwork = this.getCaipNetworks().find(n => n.chainNamespace === chainNamespace);\n            // If doesn't support all networks, we need to use approved networks\n            if (!shouldSupportAllNetworks && !caipNetwork && !fallbackCaipNetwork) {\n                // Connection can be requested for a chain that is not supported by the wallet so we need to use approved networks here\n                const caipNetworkIds = this.getApprovedCaipNetworkIds() || [];\n                const caipNetworkId = caipNetworkIds.find(id => ParseUtil.parseCaipNetworkId(id)?.chainId === chainIdToUse.toString());\n                const fallBackCaipNetworkId = caipNetworkIds.find(id => ParseUtil.parseCaipNetworkId(id)?.chainNamespace === chainNamespace);\n                caipNetwork = this.getCaipNetworks().find(n => n.caipNetworkId === caipNetworkId);\n                fallbackCaipNetwork = this.getCaipNetworks().find(n => n.caipNetworkId === fallBackCaipNetworkId ||\n                    // This is a workaround used in Solana network to support deprecated caipNetworkId\n                    ('deprecatedCaipNetworkId' in n && n.deprecatedCaipNetworkId === fallBackCaipNetworkId));\n            }\n            const network = caipNetwork || fallbackCaipNetwork;\n            if (network?.chainNamespace === ChainController.state.activeChain) {\n                // If the network is unsupported and the user doesn't allow unsupported chains, we show the unsupported chain UI\n                if (OptionsController.state.enableNetworkSwitch &&\n                    !OptionsController.state.allowUnsupportedChain &&\n                    ChainController.state.activeCaipNetwork?.name === ConstantsUtil.UNSUPPORTED_NETWORK_NAME) {\n                    ChainController.showUnsupportedChainUI();\n                }\n                else {\n                    this.setCaipNetwork(network);\n                }\n            }\n            else if (!isActiveNamespace) {\n                if (networkOfChain) {\n                    this.setCaipNetworkOfNamespace(networkOfChain, chainNamespace);\n                }\n            }\n            this.syncConnectedWalletInfo(chainNamespace);\n            if (!HelpersUtil.isLowerCaseMatch(address, AccountController.state.address)) {\n                this.syncAccountInfo(address, network?.id, chainNamespace);\n            }\n            if (isActiveNamespace) {\n                await this.syncBalance({ address, chainId: network?.id, chainNamespace });\n            }\n            else {\n                await this.syncBalance({ address, chainId: networkOfChain?.id, chainNamespace });\n            }\n        }\n    }\n    async syncAccountInfo(address, chainId, chainNamespace) {\n        const caipAddress = this.getCaipAddress(chainNamespace);\n        const newChainId = chainId || caipAddress?.split(':')[1];\n        if (!newChainId) {\n            return;\n        }\n        const newCaipAddress = `${chainNamespace}:${newChainId}:${address}`;\n        this.setCaipAddress(newCaipAddress, chainNamespace);\n        await this.syncIdentity({\n            address,\n            chainId: newChainId,\n            chainNamespace\n        });\n    }\n    async syncReownName(address, chainNamespace) {\n        try {\n            const registeredWcNames = await this.getReownName(address);\n            if (registeredWcNames[0]) {\n                const wcName = registeredWcNames[0];\n                this.setProfileName(wcName.name, chainNamespace);\n            }\n            else {\n                this.setProfileName(null, chainNamespace);\n            }\n        }\n        catch {\n            this.setProfileName(null, chainNamespace);\n        }\n    }\n    syncConnectedWalletInfo(chainNamespace) {\n        const connectorId = ConnectorController.getConnectorId(chainNamespace);\n        const providerType = ProviderUtil.getProviderId(chainNamespace);\n        if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_ANNOUNCED ||\n            providerType === UtilConstantsUtil.CONNECTOR_TYPE_INJECTED) {\n            if (connectorId) {\n                const connector = this.getConnectors().find(c => c.id === connectorId);\n                if (connector) {\n                    const { info, name, imageUrl } = connector;\n                    const icon = imageUrl || this.getConnectorImage(connector);\n                    this.setConnectedWalletInfo({ name, icon, ...info }, chainNamespace);\n                }\n            }\n        }\n        else if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT) {\n            const provider = ProviderUtil.getProvider(chainNamespace);\n            if (provider?.session) {\n                this.setConnectedWalletInfo({\n                    ...provider.session.peer.metadata,\n                    name: provider.session.peer.metadata.name,\n                    icon: provider.session.peer.metadata.icons?.[0]\n                }, chainNamespace);\n            }\n        }\n        else if (connectorId) {\n            if (connectorId === ConstantsUtil.CONNECTOR_ID.COINBASE) {\n                const connector = this.getConnectors().find(c => c.id === ConstantsUtil.CONNECTOR_ID.COINBASE);\n                this.setConnectedWalletInfo({ name: 'Coinbase Wallet', icon: this.getConnectorImage(connector) }, chainNamespace);\n            }\n        }\n    }\n    async syncBalance(params) {\n        const caipNetwork = NetworkUtil.getNetworksByNamespace(this.getCaipNetworks(), params.chainNamespace).find(n => n.id.toString() === params.chainId?.toString());\n        if (!caipNetwork || !params.chainId) {\n            return;\n        }\n        await this.updateNativeBalance(params.address, params.chainId, params.chainNamespace);\n    }\n    async ready() {\n        await this.readyPromise;\n    }\n    async updateNativeBalance(address, chainId, namespace) {\n        const adapter = this.getAdapter(namespace);\n        const caipNetwork = ChainController.getCaipNetworkByNamespace(namespace, chainId);\n        if (adapter) {\n            const balance = await adapter.getBalance({\n                address,\n                chainId,\n                caipNetwork,\n                tokens: this.options.tokens\n            });\n            this.setBalance(balance.balance, balance.symbol, namespace);\n            return balance;\n        }\n        return undefined;\n    }\n    // -- Universal Provider ---------------------------------------------------\n    async initializeUniversalAdapter() {\n        const logger = LoggerUtil.createLogger((error, ...args) => {\n            if (error) {\n                this.handleAlertError(error);\n            }\n            // eslint-disable-next-line no-console\n            console.error(...args);\n        });\n        const universalProviderOptions = {\n            projectId: this.options?.projectId,\n            metadata: {\n                name: this.options?.metadata ? this.options?.metadata.name : '',\n                description: this.options?.metadata ? this.options?.metadata.description : '',\n                url: this.options?.metadata ? this.options?.metadata.url : '',\n                icons: this.options?.metadata ? this.options?.metadata.icons : ['']\n            },\n            logger\n        };\n        OptionsController.setManualWCControl(Boolean(this.options?.manualWCControl));\n        this.universalProvider =\n            this.options.universalProvider ?? (await UniversalProvider.init(universalProviderOptions));\n        this.listenWalletConnect();\n    }\n    listenWalletConnect() {\n        if (this.universalProvider) {\n            this.universalProvider.on('display_uri', (uri) => {\n                ConnectionController.setUri(uri);\n            });\n            this.universalProvider.on('connect', ConnectionController.finalizeWcConnection);\n            this.universalProvider.on('disconnect', () => {\n                this.chainNamespaces.forEach(namespace => {\n                    this.resetAccount(namespace);\n                });\n                ConnectionController.resetWcConnection();\n            });\n            this.universalProvider.on('chainChanged', (chainId) => {\n                // eslint-disable-next-line eqeqeq\n                const caipNetwork = this.getCaipNetworks().find(c => c.id == chainId);\n                const currentCaipNetwork = this.getCaipNetwork();\n                if (!caipNetwork) {\n                    this.setUnsupportedNetwork(chainId);\n                    return;\n                }\n                if (currentCaipNetwork?.id !== caipNetwork?.id) {\n                    this.setCaipNetwork(caipNetwork);\n                }\n            });\n            this.universalProvider.on('session_event', (callbackData) => {\n                if (WcHelpersUtil.isSessionEventData(callbackData)) {\n                    const { name, data } = callbackData.params.event;\n                    if (name === 'accountsChanged' &&\n                        Array.isArray(data) &&\n                        CoreHelperUtil.isCaipAddress(data[0])) {\n                        this.syncAccount(ParseUtil.parseCaipAddress(data[0]));\n                    }\n                }\n            });\n        }\n    }\n    createUniversalProvider() {\n        if (!this.universalProviderInitPromise &&\n            CoreHelperUtil.isClient() &&\n            this.options?.projectId) {\n            this.universalProviderInitPromise = this.initializeUniversalAdapter();\n        }\n        return this.universalProviderInitPromise;\n    }\n    async getUniversalProvider() {\n        if (!this.universalProvider) {\n            try {\n                await this.createUniversalProvider();\n            }\n            catch (err) {\n                EventsController.sendEvent({\n                    type: 'error',\n                    event: 'INTERNAL_SDK_ERROR',\n                    properties: {\n                        errorType: 'UniversalProviderInitError',\n                        errorMessage: err instanceof Error ? err.message : 'Unknown',\n                        uncaught: false\n                    }\n                });\n                // eslint-disable-next-line no-console\n                console.error('AppKit:getUniversalProvider - Cannot create provider', err);\n            }\n        }\n        return this.universalProvider;\n    }\n    // - Utils -------------------------------------------------------------------\n    handleAlertError(error) {\n        const matchedUniversalProviderError = Object.entries(ErrorUtil.UniversalProviderErrors).find(([, { message }]) => error.message.includes(message));\n        const [errorKey, errorValue] = matchedUniversalProviderError ?? [];\n        const { message, alertErrorKey } = errorValue ?? {};\n        if (errorKey && message && !this.reportedAlertErrors[errorKey]) {\n            const alertError = ErrorUtil.ALERT_ERRORS[alertErrorKey];\n            if (alertError) {\n                AlertController.open(alertError, 'error');\n                this.reportedAlertErrors[errorKey] = true;\n            }\n        }\n    }\n    getAdapter(namespace) {\n        if (!namespace) {\n            return undefined;\n        }\n        return this.chainAdapters?.[namespace];\n    }\n    createAdapter(blueprint) {\n        if (!blueprint) {\n            return;\n        }\n        const namespace = blueprint.namespace;\n        if (!namespace) {\n            return;\n        }\n        this.createClients();\n        const adapterBlueprint = blueprint;\n        adapterBlueprint.namespace = namespace;\n        adapterBlueprint.construct({\n            namespace,\n            projectId: this.options?.projectId,\n            networks: this.getCaipNetworks()\n        });\n        if (!this.chainNamespaces.includes(namespace)) {\n            this.chainNamespaces.push(namespace);\n        }\n        if (this.chainAdapters) {\n            this.chainAdapters[namespace] = adapterBlueprint;\n        }\n    }\n    // -- Public -------------------------------------------------------------------\n    async open(options) {\n        await this.injectModalUi();\n        if (options?.uri) {\n            ConnectionController.setUri(options.uri);\n        }\n        if (options?.arguments) {\n            switch (options?.view) {\n                case 'Swap':\n                    return ModalController.open({ ...options, data: { swap: options.arguments } });\n                default:\n            }\n        }\n        return ModalController.open(options);\n    }\n    async close() {\n        await this.injectModalUi();\n        ModalController.close();\n    }\n    setLoading(loading, namespace) {\n        ModalController.setLoading(loading, namespace);\n    }\n    async disconnect(chainNamespace) {\n        await ConnectionController.disconnect(chainNamespace);\n    }\n    getSIWX() {\n        return OptionsController.state.siwx;\n    }\n    // -- review these -------------------------------------------------------------------\n    getError() {\n        return '';\n    }\n    getChainId() {\n        return ChainController.state.activeCaipNetwork?.id;\n    }\n    async switchNetwork(appKitNetwork) {\n        const network = this.getCaipNetworks().find(n => n.id === appKitNetwork.id);\n        if (!network) {\n            AlertController.open(ErrorUtil.ALERT_ERRORS.SWITCH_NETWORK_NOT_FOUND, 'error');\n            return;\n        }\n        await ChainController.switchActiveNetwork(network);\n    }\n    getWalletProvider() {\n        return ChainController.state.activeChain\n            ? ProviderUtil.state.providers[ChainController.state.activeChain]\n            : null;\n    }\n    getWalletProviderType() {\n        return ProviderUtil.getProviderId(ChainController.state.activeChain);\n    }\n    subscribeProviders(callback) {\n        return ProviderUtil.subscribeProviders(callback);\n    }\n    getThemeMode() {\n        return ThemeController.state.themeMode;\n    }\n    getThemeVariables() {\n        return ThemeController.state.themeVariables;\n    }\n    setThemeMode(themeMode) {\n        ThemeController.setThemeMode(themeMode);\n        setColorTheme(ThemeController.state.themeMode);\n    }\n    setTermsConditionsUrl(termsConditionsUrl) {\n        OptionsController.setTermsConditionsUrl(termsConditionsUrl);\n    }\n    setPrivacyPolicyUrl(privacyPolicyUrl) {\n        OptionsController.setPrivacyPolicyUrl(privacyPolicyUrl);\n    }\n    setThemeVariables(themeVariables) {\n        ThemeController.setThemeVariables(themeVariables);\n        setThemeVariables(ThemeController.state.themeVariables);\n    }\n    subscribeTheme(callback) {\n        return ThemeController.subscribe(callback);\n    }\n    getWalletInfo() {\n        return AccountController.state.connectedWalletInfo;\n    }\n    getAccount(namespace) {\n        const authConnector = ConnectorController.getAuthConnector(namespace);\n        const accountState = ChainController.getAccountData(namespace);\n        const activeChain = ChainController.state.activeChain;\n        const activeConnectorId = StorageUtil.getConnectedConnectorId(namespace || activeChain);\n        if (!accountState) {\n            return undefined;\n        }\n        return {\n            allAccounts: accountState.allAccounts,\n            caipAddress: accountState.caipAddress,\n            address: CoreHelperUtil.getPlainAddress(accountState.caipAddress),\n            isConnected: Boolean(accountState.caipAddress),\n            status: accountState.status,\n            embeddedWalletInfo: authConnector && activeConnectorId === ConstantsUtil.CONNECTOR_ID.AUTH\n                ? {\n                    user: accountState.user\n                        ? {\n                            ...accountState.user,\n                            /*\n                             * Getting the username from the chain controller works well for social logins,\n                             * but Farcaster uses a different connection flow and doesn't emit the username via events.\n                             * Since the username is stored in local storage before the chain controller updates,\n                             * it's safe to use the local storage value here.\n                             */\n                            username: StorageUtil.getConnectedSocialUsername()\n                        }\n                        : undefined,\n                    authProvider: accountState.socialProvider ||\n                        'email',\n                    accountType: accountState.preferredAccountTypes?.[namespace || activeChain],\n                    isSmartAccountDeployed: Boolean(accountState.smartAccountDeployed)\n                }\n                : undefined\n        };\n    }\n    subscribeAccount(callback, namespace) {\n        const updateVal = () => {\n            const account = this.getAccount(namespace);\n            if (!account) {\n                return;\n            }\n            callback(account);\n        };\n        if (namespace) {\n            ChainController.subscribeChainProp('accountState', updateVal, namespace);\n        }\n        else {\n            ChainController.subscribe(updateVal);\n        }\n        ConnectorController.subscribe(updateVal);\n    }\n    subscribeNetwork(callback) {\n        return ChainController.subscribe(({ activeCaipNetwork }) => {\n            callback({\n                caipNetwork: activeCaipNetwork,\n                chainId: activeCaipNetwork?.id,\n                caipNetworkId: activeCaipNetwork?.caipNetworkId\n            });\n        });\n    }\n    subscribeWalletInfo(callback) {\n        return AccountController.subscribeKey('connectedWalletInfo', callback);\n    }\n    subscribeShouldUpdateToAddress(callback) {\n        AccountController.subscribeKey('shouldUpdateToAddress', callback);\n    }\n    subscribeCaipNetworkChange(callback) {\n        ChainController.subscribeKey('activeCaipNetwork', callback);\n    }\n    getState() {\n        return PublicStateController.state;\n    }\n    subscribeState(callback) {\n        return PublicStateController.subscribe(callback);\n    }\n    showErrorMessage(message) {\n        SnackController.showError(message);\n    }\n    showSuccessMessage(message) {\n        SnackController.showSuccess(message);\n    }\n    getEvent() {\n        return { ...EventsController.state };\n    }\n    subscribeEvents(callback) {\n        return EventsController.subscribe(callback);\n    }\n    replace(route) {\n        RouterController.replace(route);\n    }\n    redirect(route) {\n        RouterController.push(route);\n    }\n    popTransactionStack(status) {\n        RouterController.popTransactionStack(status);\n    }\n    isOpen() {\n        return ModalController.state.open;\n    }\n    isTransactionStackEmpty() {\n        return RouterController.state.transactionStack.length === 0;\n    }\n    static getInstance() {\n        return this.instance;\n    }\n    updateFeatures(newFeatures) {\n        OptionsController.setFeatures(newFeatures);\n    }\n    updateRemoteFeatures(newRemoteFeatures) {\n        OptionsController.setRemoteFeatures(newRemoteFeatures);\n    }\n    updateOptions(newOptions) {\n        const currentOptions = OptionsController.state || {};\n        const updatedOptions = { ...currentOptions, ...newOptions };\n        OptionsController.setOptions(updatedOptions);\n    }\n    setConnectMethodsOrder(connectMethodsOrder) {\n        OptionsController.setConnectMethodsOrder(connectMethodsOrder);\n    }\n    setWalletFeaturesOrder(walletFeaturesOrder) {\n        OptionsController.setWalletFeaturesOrder(walletFeaturesOrder);\n    }\n    setCollapseWallets(collapseWallets) {\n        OptionsController.setCollapseWallets(collapseWallets);\n    }\n    setSocialsOrder(socialsOrder) {\n        OptionsController.setSocialsOrder(socialsOrder);\n    }\n    getConnectMethodsOrder() {\n        return WalletUtil.getConnectOrderMethod(OptionsController.state.features, ConnectorController.getConnectors());\n    }\n    /**\n     * Adds a network to an existing adapter in AppKit.\n     * @param namespace - The chain namespace to add the network to (e.g. 'eip155', 'solana')\n     * @param network - The network configuration to add\n     * @throws Error if adapter for namespace doesn't exist\n     */\n    addNetwork(namespace, network) {\n        if (this.chainAdapters && !this.chainAdapters[namespace]) {\n            throw new Error(`Adapter for namespace ${namespace} doesn't exist`);\n        }\n        const extendedNetwork = this.extendCaipNetwork(network, this.options);\n        if (!this.getCaipNetworks().find(n => n.id === extendedNetwork.id)) {\n            ChainController.addNetwork(extendedNetwork);\n        }\n    }\n    /**\n     * Removes a network from an existing adapter in AppKit.\n     * @param namespace - The chain namespace the network belongs to\n     * @param networkId - The network ID to remove\n     * @throws Error if adapter for namespace doesn't exist or if removing last network\n     */\n    removeNetwork(namespace, networkId) {\n        if (this.chainAdapters && !this.chainAdapters[namespace]) {\n            throw new Error(`Adapter for namespace ${namespace} doesn't exist`);\n        }\n        const networkToRemove = this.getCaipNetworks().find(n => n.id === networkId);\n        if (!networkToRemove) {\n            return;\n        }\n        ChainController.removeNetwork(namespace, networkId);\n    }\n}\n//# sourceMappingURL=appkit-base-client.js.map","import {} from '@reown/appkit-common';\nimport { AccountController, ConnectionController, ConnectorController, CoreHelperUtil, OptionsController } from '@reown/appkit-controllers';\nimport { AppKitBaseClient } from './appkit-base-client.js';\n// -- Export Controllers -------------------------------------------------------\nexport { AccountController };\n// -- Helpers -------------------------------------------------------------------\nlet isInitialized = false;\n// -- Client --------------------------------------------------------------------\nexport class AppKit extends AppKitBaseClient {\n    // -- Overrides --------------------------------------------------------------\n    async open(options) {\n        // Only open modal when not connected\n        const isConnected = ConnectorController.isConnected();\n        if (!isConnected) {\n            await super.open(options);\n        }\n    }\n    async close() {\n        await super.close();\n        if (this.options.manualWCControl) {\n            ConnectionController.finalizeWcConnection();\n        }\n    }\n    async syncIdentity(_request) {\n        return Promise.resolve();\n    }\n    async syncBalance(_params) {\n        return Promise.resolve();\n    }\n    async injectModalUi() {\n        if (!isInitialized && CoreHelperUtil.isClient()) {\n            await import('@reown/appkit-scaffold-ui/basic');\n            await import('@reown/appkit-scaffold-ui/w3m-modal');\n            const isElementCreated = document.querySelector('w3m-modal');\n            if (!isElementCreated) {\n                const modal = document.createElement('w3m-modal');\n                if (!OptionsController.state.disableAppend && !OptionsController.state.enableEmbedded) {\n                    document.body.insertAdjacentElement('beforeend', modal);\n                }\n            }\n            isInitialized = true;\n        }\n    }\n}\n//# sourceMappingURL=appkit-core.js.map","export const PACKAGE_VERSION = '1.7.8';\n//# sourceMappingURL=constants.js.map","import { AppKit } from '../src/client/appkit-core.js';\nimport { PACKAGE_VERSION } from './constants.js';\nexport function createAppKit(options) {\n    return new AppKit({\n        ...options,\n        basic: true,\n        sdkVersion: `html-core-${PACKAGE_VERSION}`\n    });\n}\nexport { AppKit };\n//# sourceMappingURL=core.js.map"],"names":["fetch","i","transport","fn","transports_","sample","_","a","b","ConstantsUtil","process","NetworkUtil","P","Big","n","x","e","xc","stringify","s","y","yc","j","k","l","bt","ri","ai","r","q","qc","qi","p","t","xe","ye","c","isSafe","h","version","markToTrack","getUntracked","v","entries","w","ua","CommonConstants","set","baseUrl","state","subKey","DEFAULT_STATE","api","controller","sub","d","uc","to","CommonConstantsUtil","ns","st","accountState","keys","base","m","z","I","u","S","D","E","g","N","O","o","f","K","T","size","size_","string","encoder","toBytes","le","crypto","pad","round","R","B","yParityOrV","recoveryBit","ALPHABET","basex","bases","ae","Ne","ue","Yo","Go","Tn","Wo","Xo","Rn","_n","Jo","$n","Y","jn","_e","pt","Yt","Sn","ei","ni","Tt","xt","Cn","oi","Pn","Po","kn","jo","Vn","On","Mn","si","gt","fi","li","gi","xn","Ie","yi","$e","mi","wi","bi","Ei","Co","vi","xi","ot","Si","Kn","Fn","Yn","Zn","zn","Oi","Ai","Bi","Ii","je","Ni","Wt","Ui","Xt","Ce","Rt","Gn","Wn","Ti","Ri","_i","$i","Li","ji","_t","Ci","Pe","ct","Xn","Pi","Jn","ki","$t","Vi","Qn","Lt","tr","er","nr","Mi","Jt","Di","Ki","Fi","zi","rr","or","ke","En","Ve","ir","sr","cr","ko","Vo","ts","ar","ur","Me","fr","de","lr","dr","De","hr","pe","yt","Ke","mr","wr","at","br","He","he","qe","vr","Fe","Sr","Or","Ar","mt","ze","Ze","bs","Br","vs","Ir","jt","Nr","xs","Os","As","V","Ye","ge","Ur","Tr","Is","Ns","F","$","A","L","U","C","M","W","J","Ts","Ls","Rr","_r","Cs","$r","Lr","Ps","Ge","jr","ks","Vs","Ms","Ds","wt","qs","Qt","me","we","St","te","Ct","Zs","Pt","kt","We","ut","Cr","Vt","Ot","ee","Mt","be","et","ne","Xe","Ee","ft","Pr","Je","Qe","kr","Vr","Dt","tn","H","At","en","Mr","Dr","X","Hr","it","nn","qr","Kr","Fr","zr","Zr","ve","rn","Yr","on","sn","Gr","cn","Wr","Ht","an","un","Xr","Jr","lt","dt","Qr","Be","zt","vt","Zt","Ut","vn","ln","G","qt","Kt","dn","Ft","re","eo","oe","hn","Q","rt","pn","Bt","no","ro","gn","Se","Gt","oo","io","Mo","so","Do","co","ao","uo","fo","lo","It","ho","po","go","yn","yo","ie","Oe","mo","wo","bo","ht","Nt","se","Et","nt","Ae","ce","Eo","mn","vo","xo","So","Oo","Ao","wn","Bo","Io","No","Uo","To","Ro","_o","$o","Lo","bn","Le","cs","Ue","Re","De.generateKeyPair","De.encodeIss","ls","De.signJWT","us","ds","gs","hs","ps","ys","ms","fs","Fs","Xi","Zi","tt","Z","Qi","ws","es","Yi","_s","Es","fe","Ss","Gi","Rs","Ks","Bs","is","ss","$s","zs","rs","os","js","Us","as","Ji","Wi","Hi","Te","getDefaultLoggerOptions","generatePlatformLogger","css","unsafeCSS","self","CoreConstantsUtil","toHex","UtilConstantsUtil","UniversalProvider","message"],"mappings":"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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116]}