{"version":3,"file":"index.es-2cef285a.mjs","sources":["../node_modules/detect-browser/es/index.js","../node_modules/@walletconnect/time/node_modules/tslib/tslib.es6.js","../node_modules/@walletconnect/time/dist/cjs/utils/delay.js","../node_modules/@walletconnect/time/dist/cjs/constants/misc.js","../node_modules/@walletconnect/time/dist/cjs/constants/time.js","../node_modules/@walletconnect/time/dist/cjs/constants/index.js","../node_modules/@walletconnect/time/dist/cjs/utils/convert.js","../node_modules/@walletconnect/time/dist/cjs/utils/index.js","../node_modules/@walletconnect/time/dist/cjs/watch.js","../node_modules/@walletconnect/time/dist/cjs/types/watch.js","../node_modules/@walletconnect/time/dist/cjs/types/index.js","../node_modules/@walletconnect/time/dist/cjs/index.js","../node_modules/@walletconnect/window-getters/dist/cjs/index.js","../node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/data/isHex.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/data/size.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/errors/version.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/errors/base.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/errors/data.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/data/pad.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/errors/encoding.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/encoding/fromHex.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/encoding/toHex.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/encoding/toBytes.js","../node_modules/@wagmi/connectors/node_modules/@noble/hashes/esm/_assert.js","../node_modules/@wagmi/connectors/node_modules/@noble/hashes/esm/_u64.js","../node_modules/@wagmi/connectors/node_modules/@noble/hashes/esm/crypto.js","../node_modules/@wagmi/connectors/node_modules/@noble/hashes/esm/utils.js","../node_modules/@wagmi/connectors/node_modules/@noble/hashes/esm/sha3.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/hash/keccak256.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/lru.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/address/getAddress.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/accounts/utils/publicKeyToAddress.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/signature/recoverPublicKey.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/node_modules/viem/_esm/utils/signature/recoverAddress.js","../node_modules/@wagmi/connectors/node_modules/base-x/src/esm/index.js","../node_modules/@wagmi/connectors/node_modules/bs58/src/esm/index.js","../node_modules/@walletconnect/safe-json/dist/esm/index.js","../node_modules/@walletconnect/relay-auth/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/uint8arrays/esm/src/alloc.js","../node_modules/@wagmi/connectors/node_modules/uint8arrays/esm/src/concat.js","../node_modules/multiformats/esm/vendor/base-x.js","../node_modules/multiformats/esm/src/bytes.js","../node_modules/multiformats/esm/src/bases/base.js","../node_modules/multiformats/esm/src/bases/identity.js","../node_modules/multiformats/esm/src/bases/base2.js","../node_modules/multiformats/esm/src/bases/base8.js","../node_modules/multiformats/esm/src/bases/base10.js","../node_modules/multiformats/esm/src/bases/base16.js","../node_modules/multiformats/esm/src/bases/base32.js","../node_modules/multiformats/esm/src/bases/base36.js","../node_modules/multiformats/esm/src/bases/base58.js","../node_modules/multiformats/esm/src/bases/base64.js","../node_modules/multiformats/esm/src/bases/base256emoji.js","../node_modules/multiformats/esm/src/codecs/json.js","../node_modules/multiformats/esm/src/basics.js","../node_modules/@wagmi/connectors/node_modules/uint8arrays/esm/src/util/bases.js","../node_modules/@wagmi/connectors/node_modules/uint8arrays/esm/src/from-string.js","../node_modules/@wagmi/connectors/node_modules/uint8arrays/esm/src/to-string.js","../node_modules/@walletconnect/relay-api/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/dist/index.es.js","../node_modules/@walletconnect/events/dist/esm/events.js","../node_modules/@walletconnect/heartbeat/dist/index.es.js","../node_modules/destr/dist/index.mjs","../node_modules/@wagmi/connectors/node_modules/unstorage/dist/shared/unstorage.CoCt7NXC.mjs","../node_modules/@wagmi/connectors/node_modules/unstorage/dist/index.mjs","../node_modules/@wagmi/connectors/node_modules/@walletconnect/keyvaluestorage/dist/index.es.js","../node_modules/quick-format-unescaped/index.js","../node_modules/pino/browser.js","../node_modules/@walletconnect/logger/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/types/dist/index.es.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","../node_modules/@walletconnect/environment/node_modules/tslib/tslib.es6.js","../node_modules/@walletconnect/environment/dist/cjs/crypto.js","../node_modules/@walletconnect/environment/dist/cjs/env.js","../node_modules/@walletconnect/environment/dist/cjs/index.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","../node_modules/@walletconnect/jsonrpc-types/dist/index.es.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/url.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/validators.js","../node_modules/@walletconnect/jsonrpc-provider/dist/index.es.js","../node_modules/@walletconnect/jsonrpc-ws-connection/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/core/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/sign-client/dist/index.es.js","../node_modules/@walletconnect/jsonrpc-http-connection/node_modules/cross-fetch/dist/browser-ponyfill.js","../node_modules/@walletconnect/jsonrpc-http-connection/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/universal-provider/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@walletconnect/ethereum-provider/dist/index.es.js"],"sourcesContent":["var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n    function BrowserInfo(name, version, os) {\n        this.name = name;\n        this.version = version;\n        this.os = os;\n        this.type = 'browser';\n    }\n    return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n    function NodeInfo(version) {\n        this.version = version;\n        this.type = 'node';\n        this.name = 'node';\n        this.os = process.platform;\n    }\n    return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n    function SearchBotDeviceInfo(name, version, os, bot) {\n        this.name = name;\n        this.version = version;\n        this.os = os;\n        this.bot = bot;\n        this.type = 'bot-device';\n    }\n    return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n    function BotInfo() {\n        this.type = 'bot';\n        this.bot = true; // NOTE: deprecated test name instead\n        this.name = 'bot';\n        this.version = null;\n        this.os = null;\n    }\n    return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n    function ReactNativeInfo() {\n        this.type = 'react-native';\n        this.name = 'react-native';\n        this.version = null;\n        this.os = null;\n    }\n    return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n    ['aol', /AOLShield\\/([0-9\\._]+)/],\n    ['edge', /Edge\\/([0-9\\._]+)/],\n    ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n    ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n    ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n    ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n    ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n    ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n    ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n    ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n    [\n        'chromium-webview',\n        /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n    ],\n    ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n    ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n    ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n    ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n    ['fxios', /FxiOS\\/([0-9\\.]+)/],\n    ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n    ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n    ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n    ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n    ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n    ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n    ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n    ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n    ['ie', /MSIE\\s(7\\.0)/],\n    ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n    ['android', /Android\\s([0-9\\.]+)/],\n    ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n    ['safari', /Version\\/([0-9\\._]+).*Safari/],\n    ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n    ['instagram', /Instagram\\s([0-9\\.]+)/],\n    ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n    ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n    ['curl', /^curl\\/([0-9\\.]+)$/],\n    ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n    ['iOS', /iP(hone|od|ad)/],\n    ['Android OS', /Android/],\n    ['BlackBerry OS', /BlackBerry|BB10/],\n    ['Windows Mobile', /IEMobile/],\n    ['Amazon OS', /Kindle/],\n    ['Windows 3.11', /Win16/],\n    ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n    ['Windows 98', /(Windows 98)|(Win98)/],\n    ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n    ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n    ['Windows Server 2003', /(Windows NT 5.2)/],\n    ['Windows Vista', /(Windows NT 6.0)/],\n    ['Windows 7', /(Windows NT 6.1)/],\n    ['Windows 8', /(Windows NT 6.2)/],\n    ['Windows 8.1', /(Windows NT 6.3)/],\n    ['Windows 10', /(Windows NT 10.0)/],\n    ['Windows ME', /Windows ME/],\n    ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n    ['Open BSD', /OpenBSD/],\n    ['Sun OS', /SunOS/],\n    ['Chrome OS', /CrOS/],\n    ['Linux', /(Linux)|(X11)/],\n    ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n    ['QNX', /QNX/],\n    ['BeOS', /BeOS/],\n    ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n    if (!!userAgent) {\n        return parseUserAgent(userAgent);\n    }\n    if (typeof document === 'undefined' &&\n        typeof navigator !== 'undefined' &&\n        navigator.product === 'ReactNative') {\n        return new ReactNativeInfo();\n    }\n    if (typeof navigator !== 'undefined') {\n        return parseUserAgent(navigator.userAgent);\n    }\n    return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n    // opted for using reduce here rather than Array#first with a regex.test call\n    // this is primarily because using the reduce we only perform the regex\n    // execution once rather than once for the test and for the exec again below\n    // probably something that needs to be benchmarked though\n    return (ua !== '' &&\n        userAgentRules.reduce(function (matched, _a) {\n            var browser = _a[0], regex = _a[1];\n            if (matched) {\n                return matched;\n            }\n            var uaMatch = regex.exec(ua);\n            return !!uaMatch && [browser, uaMatch];\n        }, false));\n}\nexport function browserName(ua) {\n    var data = matchUserAgent(ua);\n    return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n    var matchedRule = matchUserAgent(ua);\n    if (!matchedRule) {\n        return null;\n    }\n    var name = matchedRule[0], match = matchedRule[1];\n    if (name === 'searchbot') {\n        return new BotInfo();\n    }\n    // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n    var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n    if (versionParts) {\n        if (versionParts.length < REQUIRED_VERSION_PARTS) {\n            versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n        }\n    }\n    else {\n        versionParts = [];\n    }\n    var version = versionParts.join('.');\n    var os = detectOS(ua);\n    var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n    if (searchBotMatch && searchBotMatch[1]) {\n        return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n    }\n    return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n    for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n        var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n        var match = regex.exec(ua);\n        if (match) {\n            return os;\n        }\n    }\n    return null;\n}\nexport function getNodeVersion() {\n    var isNode = typeof process !== 'undefined' && process.version;\n    return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n    var output = [];\n    for (var ii = 0; ii < count; ii++) {\n        output.push('0');\n    }\n    return output;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nfunction delay(timeout) {\n    return new Promise(resolve => {\n        setTimeout(() => {\n            resolve(true);\n        }, timeout);\n    });\n}\nexports.delay = delay;\n//# sourceMappingURL=delay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_THOUSAND = exports.ONE_HUNDRED = void 0;\nexports.ONE_HUNDRED = 100;\nexports.ONE_THOUSAND = 1000;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_YEAR = exports.FOUR_WEEKS = exports.THREE_WEEKS = exports.TWO_WEEKS = exports.ONE_WEEK = exports.THIRTY_DAYS = exports.SEVEN_DAYS = exports.FIVE_DAYS = exports.THREE_DAYS = exports.ONE_DAY = exports.TWENTY_FOUR_HOURS = exports.TWELVE_HOURS = exports.SIX_HOURS = exports.THREE_HOURS = exports.ONE_HOUR = exports.SIXTY_MINUTES = exports.THIRTY_MINUTES = exports.TEN_MINUTES = exports.FIVE_MINUTES = exports.ONE_MINUTE = exports.SIXTY_SECONDS = exports.THIRTY_SECONDS = exports.TEN_SECONDS = exports.FIVE_SECONDS = exports.ONE_SECOND = void 0;\nexports.ONE_SECOND = 1;\nexports.FIVE_SECONDS = 5;\nexports.TEN_SECONDS = 10;\nexports.THIRTY_SECONDS = 30;\nexports.SIXTY_SECONDS = 60;\nexports.ONE_MINUTE = exports.SIXTY_SECONDS;\nexports.FIVE_MINUTES = exports.ONE_MINUTE * 5;\nexports.TEN_MINUTES = exports.ONE_MINUTE * 10;\nexports.THIRTY_MINUTES = exports.ONE_MINUTE * 30;\nexports.SIXTY_MINUTES = exports.ONE_MINUTE * 60;\nexports.ONE_HOUR = exports.SIXTY_MINUTES;\nexports.THREE_HOURS = exports.ONE_HOUR * 3;\nexports.SIX_HOURS = exports.ONE_HOUR * 6;\nexports.TWELVE_HOURS = exports.ONE_HOUR * 12;\nexports.TWENTY_FOUR_HOURS = exports.ONE_HOUR * 24;\nexports.ONE_DAY = exports.TWENTY_FOUR_HOURS;\nexports.THREE_DAYS = exports.ONE_DAY * 3;\nexports.FIVE_DAYS = exports.ONE_DAY * 5;\nexports.SEVEN_DAYS = exports.ONE_DAY * 7;\nexports.THIRTY_DAYS = exports.ONE_DAY * 30;\nexports.ONE_WEEK = exports.SEVEN_DAYS;\nexports.TWO_WEEKS = exports.ONE_WEEK * 2;\nexports.THREE_WEEKS = exports.ONE_WEEK * 3;\nexports.FOUR_WEEKS = exports.ONE_WEEK * 4;\nexports.ONE_YEAR = exports.ONE_DAY * 365;\n//# sourceMappingURL=time.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./time\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromMiliseconds = exports.toMiliseconds = void 0;\nconst constants_1 = require(\"../constants\");\nfunction toMiliseconds(seconds) {\n    return seconds * constants_1.ONE_THOUSAND;\n}\nexports.toMiliseconds = toMiliseconds;\nfunction fromMiliseconds(miliseconds) {\n    return Math.floor(miliseconds / constants_1.ONE_THOUSAND);\n}\nexports.fromMiliseconds = fromMiliseconds;\n//# sourceMappingURL=convert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./delay\"), exports);\ntslib_1.__exportStar(require(\"./convert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Watch = void 0;\nclass Watch {\n    constructor() {\n        this.timestamps = new Map();\n    }\n    start(label) {\n        if (this.timestamps.has(label)) {\n            throw new Error(`Watch already started for label: ${label}`);\n        }\n        this.timestamps.set(label, { started: Date.now() });\n    }\n    stop(label) {\n        const timestamp = this.get(label);\n        if (typeof timestamp.elapsed !== \"undefined\") {\n            throw new Error(`Watch already stopped for label: ${label}`);\n        }\n        const elapsed = Date.now() - timestamp.started;\n        this.timestamps.set(label, { started: timestamp.started, elapsed });\n    }\n    get(label) {\n        const timestamp = this.timestamps.get(label);\n        if (typeof timestamp === \"undefined\") {\n            throw new Error(`No timestamp found for label: ${label}`);\n        }\n        return timestamp;\n    }\n    elapsed(label) {\n        const timestamp = this.get(label);\n        const elapsed = timestamp.elapsed || Date.now() - timestamp.started;\n        return elapsed;\n    }\n}\nexports.Watch = Watch;\nexports.default = Watch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWatch = void 0;\nclass IWatch {\n}\nexports.IWatch = IWatch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./utils\"), exports);\ntslib_1.__exportStar(require(\"./watch\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n    let res = undefined;\n    if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n        res = window[name];\n    }\n    return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n    const res = getFromWindow(name);\n    if (!res) {\n        throw new Error(`${name} is not defined in Window`);\n    }\n    return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n    return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n    return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n    return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n    return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n    return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n    return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n    return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n    return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n    return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n    return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n    let doc;\n    let loc;\n    try {\n        doc = window_getters_1.getDocumentOrThrow();\n        loc = window_getters_1.getLocationOrThrow();\n    }\n    catch (e) {\n        return null;\n    }\n    function getIcons() {\n        const links = doc.getElementsByTagName(\"link\");\n        const icons = [];\n        for (let i = 0; i < links.length; i++) {\n            const link = links[i];\n            const rel = link.getAttribute(\"rel\");\n            if (rel) {\n                if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n                    const href = link.getAttribute(\"href\");\n                    if (href) {\n                        if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n                            href.toLowerCase().indexOf(\"http:\") === -1 &&\n                            href.indexOf(\"//\") !== 0) {\n                            let absoluteHref = loc.protocol + \"//\" + loc.host;\n                            if (href.indexOf(\"/\") === 0) {\n                                absoluteHref += href;\n                            }\n                            else {\n                                const path = loc.pathname.split(\"/\");\n                                path.pop();\n                                const finalPath = path.join(\"/\");\n                                absoluteHref += finalPath + \"/\" + href;\n                            }\n                            icons.push(absoluteHref);\n                        }\n                        else if (href.indexOf(\"//\") === 0) {\n                            const absoluteUrl = loc.protocol + href;\n                            icons.push(absoluteUrl);\n                        }\n                        else {\n                            icons.push(href);\n                        }\n                    }\n                }\n            }\n        }\n        return icons;\n    }\n    function getWindowMetadataOfAny(...args) {\n        const metaTags = doc.getElementsByTagName(\"meta\");\n        for (let i = 0; i < metaTags.length; i++) {\n            const tag = metaTags[i];\n            const attributes = [\"itemprop\", \"property\", \"name\"]\n                .map((target) => tag.getAttribute(target))\n                .filter((attr) => {\n                if (attr) {\n                    return args.includes(attr);\n                }\n                return false;\n            });\n            if (attributes.length && attributes) {\n                const content = tag.getAttribute(\"content\");\n                if (content) {\n                    return content;\n                }\n            }\n        }\n        return \"\";\n    }\n    function getName() {\n        let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n        if (!name) {\n            name = doc.title;\n        }\n        return name;\n    }\n    function getDescription() {\n        const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n        return description;\n    }\n    const name = getName();\n    const description = getDescription();\n    const url = loc.origin;\n    const icons = getIcons();\n    const meta = {\n        description,\n        url,\n        icons,\n        name,\n    };\n    return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","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","const JSONStringify = data => JSON.stringify(data, (_, value) => typeof value === \"bigint\" ? value.toString() + \"n\" : value);\nconst JSONParse = json => {\n    const numbersBiggerThanMaxInt = /([\\[:])?(\\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\\}\\]])/g;\n    const serializedData = json.replace(numbersBiggerThanMaxInt, \"$1\\\"$2n\\\"$3\");\n    return JSON.parse(serializedData, (_, value) => {\n        const isCustomFormatBigInt = typeof value === \"string\" && value.match(/^\\d+n$/);\n        if (isCustomFormatBigInt)\n            return BigInt(value.substring(0, value.length - 1));\n        return value;\n    });\n};\nexport function safeJsonParse(value) {\n    if (typeof value !== \"string\") {\n        throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n    }\n    try {\n        return JSONParse(value);\n    }\n    catch (_a) {\n        return value;\n    }\n}\nexport function safeJsonStringify(value) {\n    return typeof value === \"string\" ? value : JSONStringify(value) || \"\";\n}\n//# sourceMappingURL=index.js.map","import{fromMiliseconds as bn}from\"@walletconnect/time\";import{safeJsonParse as pn,safeJsonStringify as wn}from\"@walletconnect/safe-json\";function En(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function fe(t,...e){if(!En(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 De(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){fe(t);const n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}const it=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _t=t=>new DataView(t.buffer,t.byteOffset,t.byteLength);function yn(t){if(typeof t!=\"string\")throw new Error(\"utf8ToBytes expected string, got \"+typeof t);return new Uint8Array(new TextEncoder().encode(t))}function de(t){return typeof t==\"string\"&&(t=yn(t)),fe(t),t}class xn{clone(){return this._cloneInto()}}function Bn(t){const e=r=>t().update(de(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function he(t=32){if(it&&typeof it.getRandomValues==\"function\")return it.getRandomValues(new Uint8Array(t));if(it&&typeof it.randomBytes==\"function\")return it.randomBytes(t);throw new Error(\"crypto.getRandomValues must be defined\")}function Cn(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);const o=BigInt(32),s=BigInt(4294967295),a=Number(n>>o&s),u=Number(n&s),i=r?4:0,D=r?0:4;t.setUint32(e+i,a,r),t.setUint32(e+D,u,r)}class An extends xn{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=_t(this.buffer)}update(e){De(this);const{view:n,buffer:r,blockLen:o}=this;e=de(e);const s=e.length;for(let a=0;a<s;){const u=Math.min(o-this.pos,s-a);if(u===o){const i=_t(e);for(;o<=s-a;a+=o)this.process(i,a);continue}r.set(e.subarray(a,a+u),this.pos),this.pos+=u,a+=u,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){De(this),gn(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:o,isLE:s}=this;let{pos:a}=this;n[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>o-a&&(this.process(r,0),a=0);for(let l=a;l<o;l++)n[l]=0;Cn(r,o-8,BigInt(this.length*8),s),this.process(r,0);const u=_t(e),i=this.outputLen;if(i%4)throw new Error(\"_sha2: outputLen should be aligned to 32bit\");const D=i/4,c=this.get();if(D>c.length)throw new Error(\"_sha2: outputLen bigger than state\");for(let l=0;l<D;l++)u.setUint32(4*l,c[l],s)}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:s,destroyed:a,pos:u}=this;return e.length=o,e.pos=u,e.finished=s,e.destroyed=a,o%n&&e.buffer.set(r),e}}const wt=BigInt(2**32-1),St=BigInt(32);function le(t,e=!1){return e?{h:Number(t&wt),l:Number(t>>St&wt)}:{h:Number(t>>St&wt)|0,l:Number(t&wt)|0}}function mn(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let o=0;o<t.length;o++){const{h:s,l:a}=le(t[o],e);[n[o],r[o]]=[s,a]}return[n,r]}const _n=(t,e)=>BigInt(t>>>0)<<St|BigInt(e>>>0),Sn=(t,e,n)=>t>>>n,vn=(t,e,n)=>t<<32-n|e>>>n,In=(t,e,n)=>t>>>n|e<<32-n,Un=(t,e,n)=>t<<32-n|e>>>n,Tn=(t,e,n)=>t<<64-n|e>>>n-32,Fn=(t,e,n)=>t>>>n-32|e<<64-n,Nn=(t,e)=>e,Ln=(t,e)=>t,On=(t,e,n)=>t<<n|e>>>32-n,Hn=(t,e,n)=>e<<n|t>>>32-n,zn=(t,e,n)=>e<<n-32|t>>>64-n,Mn=(t,e,n)=>t<<n-32|e>>>64-n;function qn(t,e,n,r){const o=(e>>>0)+(r>>>0);return{h:t+n+(o/2**32|0)|0,l:o|0}}const $n=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),kn=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,Rn=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),jn=(t,e,n,r,o)=>e+n+r+o+(t/2**32|0)|0,Zn=(t,e,n,r,o)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(o>>>0),Gn=(t,e,n,r,o,s)=>e+n+r+o+s+(t/2**32|0)|0,x={fromBig:le,split:mn,toBig:_n,shrSH:Sn,shrSL:vn,rotrSH:In,rotrSL:Un,rotrBH:Tn,rotrBL:Fn,rotr32H:Nn,rotr32L:Ln,rotlSH:On,rotlSL:Hn,rotlBH:zn,rotlBL:Mn,add:qn,add3L:$n,add3H:kn,add4L:Rn,add4H:jn,add5H:Gn,add5L:Zn},[Vn,Yn]=(()=>x.split([\"0x428a2f98d728ae22\",\"0x7137449123ef65cd\",\"0xb5c0fbcfec4d3b2f\",\"0xe9b5dba58189dbbc\",\"0x3956c25bf348b538\",\"0x59f111f1b605d019\",\"0x923f82a4af194f9b\",\"0xab1c5ed5da6d8118\",\"0xd807aa98a3030242\",\"0x12835b0145706fbe\",\"0x243185be4ee4b28c\",\"0x550c7dc3d5ffb4e2\",\"0x72be5d74f27b896f\",\"0x80deb1fe3b1696b1\",\"0x9bdc06a725c71235\",\"0xc19bf174cf692694\",\"0xe49b69c19ef14ad2\",\"0xefbe4786384f25e3\",\"0x0fc19dc68b8cd5b5\",\"0x240ca1cc77ac9c65\",\"0x2de92c6f592b0275\",\"0x4a7484aa6ea6e483\",\"0x5cb0a9dcbd41fbd4\",\"0x76f988da831153b5\",\"0x983e5152ee66dfab\",\"0xa831c66d2db43210\",\"0xb00327c898fb213f\",\"0xbf597fc7beef0ee4\",\"0xc6e00bf33da88fc2\",\"0xd5a79147930aa725\",\"0x06ca6351e003826f\",\"0x142929670a0e6e70\",\"0x27b70a8546d22ffc\",\"0x2e1b21385c26c926\",\"0x4d2c6dfc5ac42aed\",\"0x53380d139d95b3df\",\"0x650a73548baf63de\",\"0x766a0abb3c77b2a8\",\"0x81c2c92e47edaee6\",\"0x92722c851482353b\",\"0xa2bfe8a14cf10364\",\"0xa81a664bbc423001\",\"0xc24b8b70d0f89791\",\"0xc76c51a30654be30\",\"0xd192e819d6ef5218\",\"0xd69906245565a910\",\"0xf40e35855771202a\",\"0x106aa07032bbd1b8\",\"0x19a4c116b8d2d0c8\",\"0x1e376c085141ab53\",\"0x2748774cdf8eeb99\",\"0x34b0bcb5e19b48a8\",\"0x391c0cb3c5c95a63\",\"0x4ed8aa4ae3418acb\",\"0x5b9cca4f7763e373\",\"0x682e6ff3d6b2b8a3\",\"0x748f82ee5defb2fc\",\"0x78a5636f43172f60\",\"0x84c87814a1f0ab72\",\"0x8cc702081a6439ec\",\"0x90befffa23631e28\",\"0xa4506cebde82bde9\",\"0xbef9a3f7b2c67915\",\"0xc67178f2e372532b\",\"0xca273eceea26619c\",\"0xd186b8c721c0c207\",\"0xeada7dd6cde0eb1e\",\"0xf57d4f7fee6ed178\",\"0x06f067aa72176fba\",\"0x0a637dc5a2c898a6\",\"0x113f9804bef90dae\",\"0x1b710b35131c471b\",\"0x28db77f523047d84\",\"0x32caab7b40c72493\",\"0x3c9ebe0a15c9bebc\",\"0x431d67c49c100d4c\",\"0x4cc5d4becb3e42b6\",\"0x597f299cfc657e2a\",\"0x5fcb6fab3ad6faec\",\"0x6c44198c4a475817\"].map(t=>BigInt(t))))(),P=new Uint32Array(80),Q=new Uint32Array(80);class Jn extends An{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:n,Bh:r,Bl:o,Ch:s,Cl:a,Dh:u,Dl:i,Eh:D,El:c,Fh:l,Fl:p,Gh:w,Gl:h,Hh:g,Hl:S}=this;return[e,n,r,o,s,a,u,i,D,c,l,p,w,h,g,S]}set(e,n,r,o,s,a,u,i,D,c,l,p,w,h,g,S){this.Ah=e|0,this.Al=n|0,this.Bh=r|0,this.Bl=o|0,this.Ch=s|0,this.Cl=a|0,this.Dh=u|0,this.Dl=i|0,this.Eh=D|0,this.El=c|0,this.Fh=l|0,this.Fl=p|0,this.Gh=w|0,this.Gl=h|0,this.Hh=g|0,this.Hl=S|0}process(e,n){for(let d=0;d<16;d++,n+=4)P[d]=e.getUint32(n),Q[d]=e.getUint32(n+=4);for(let d=16;d<80;d++){const m=P[d-15]|0,F=Q[d-15]|0,q=x.rotrSH(m,F,1)^x.rotrSH(m,F,8)^x.shrSH(m,F,7),z=x.rotrSL(m,F,1)^x.rotrSL(m,F,8)^x.shrSL(m,F,7),I=P[d-2]|0,O=Q[d-2]|0,ot=x.rotrSH(I,O,19)^x.rotrBH(I,O,61)^x.shrSH(I,O,6),tt=x.rotrSL(I,O,19)^x.rotrBL(I,O,61)^x.shrSL(I,O,6),st=x.add4L(z,tt,Q[d-7],Q[d-16]),at=x.add4H(st,q,ot,P[d-7],P[d-16]);P[d]=at|0,Q[d]=st|0}let{Ah:r,Al:o,Bh:s,Bl:a,Ch:u,Cl:i,Dh:D,Dl:c,Eh:l,El:p,Fh:w,Fl:h,Gh:g,Gl:S,Hh:v,Hl:L}=this;for(let d=0;d<80;d++){const m=x.rotrSH(l,p,14)^x.rotrSH(l,p,18)^x.rotrBH(l,p,41),F=x.rotrSL(l,p,14)^x.rotrSL(l,p,18)^x.rotrBL(l,p,41),q=l&w^~l&g,z=p&h^~p&S,I=x.add5L(L,F,z,Yn[d],Q[d]),O=x.add5H(I,v,m,q,Vn[d],P[d]),ot=I|0,tt=x.rotrSH(r,o,28)^x.rotrBH(r,o,34)^x.rotrBH(r,o,39),st=x.rotrSL(r,o,28)^x.rotrBL(r,o,34)^x.rotrBL(r,o,39),at=r&s^r&u^s&u,Ct=o&a^o&i^a&i;v=g|0,L=S|0,g=w|0,S=h|0,w=l|0,h=p|0,{h:l,l:p}=x.add(D|0,c|0,O|0,ot|0),D=u|0,c=i|0,u=s|0,i=a|0,s=r|0,a=o|0;const At=x.add3L(ot,st,Ct);r=x.add3H(At,O,tt,at),o=At|0}({h:r,l:o}=x.add(this.Ah|0,this.Al|0,r|0,o|0)),{h:s,l:a}=x.add(this.Bh|0,this.Bl|0,s|0,a|0),{h:u,l:i}=x.add(this.Ch|0,this.Cl|0,u|0,i|0),{h:D,l:c}=x.add(this.Dh|0,this.Dl|0,D|0,c|0),{h:l,l:p}=x.add(this.Eh|0,this.El|0,l|0,p|0),{h:w,l:h}=x.add(this.Fh|0,this.Fl|0,w|0,h|0),{h:g,l:S}=x.add(this.Gh|0,this.Gl|0,g|0,S|0),{h:v,l:L}=x.add(this.Hh|0,this.Hl|0,v|0,L|0),this.set(r,o,s,a,u,i,D,c,l,p,w,h,g,S,v,L)}roundClean(){P.fill(0),Q.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Kn=Bn(()=>new Jn);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const vt=BigInt(0),be=BigInt(1),Wn=BigInt(2);function It(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function Ut(t){if(!It(t))throw new Error(\"Uint8Array expected\")}function Tt(t,e){if(typeof e!=\"boolean\")throw new Error(t+\" boolean expected, got \"+e)}const Xn=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));function Ft(t){Ut(t);let e=\"\";for(let n=0;n<t.length;n++)e+=Xn[t[n]];return e}function pe(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);return t===\"\"?vt:BigInt(\"0x\"+t)}const K={_0:48,_9:57,A:65,F:70,a:97,f:102};function we(t){if(t>=K._0&&t<=K._9)return t-K._0;if(t>=K.A&&t<=K.F)return t-(K.A-10);if(t>=K.a&&t<=K.f)return t-(K.a-10)}function Ee(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,s=0;o<n;o++,s+=2){const a=we(t.charCodeAt(s)),u=we(t.charCodeAt(s+1));if(a===void 0||u===void 0){const i=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character \"'+i+'\" at index '+s)}r[o]=a*16+u}return r}function Pn(t){return pe(Ft(t))}function Et(t){return Ut(t),pe(Ft(Uint8Array.from(t).reverse()))}function ge(t,e){return Ee(t.toString(16).padStart(e*2,\"0\"))}function Nt(t,e){return ge(t,e).reverse()}function W(t,e,n){let r;if(typeof e==\"string\")try{r=Ee(e)}catch(s){throw new Error(t+\" must be hex string or Uint8Array, cause: \"+s)}else if(It(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 ye(...t){let e=0;for(let r=0;r<t.length;r++){const o=t[r];Ut(o),e+=o.length}const n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){const s=t[r];n.set(s,o),o+=s.length}return n}const Lt=t=>typeof t==\"bigint\"&&vt<=t;function Qn(t,e,n){return Lt(t)&&Lt(e)&&Lt(n)&&e<=t&&t<n}function ft(t,e,n,r){if(!Qn(e,n,r))throw new Error(\"expected valid \"+t+\": \"+n+\" <= n < \"+r+\", got \"+e)}function tr(t){let e;for(e=0;t>vt;t>>=be,e+=1);return e}const er=t=>(Wn<<BigInt(t-1))-be,nr={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\"||It(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 Ot(t,e,n={}){const r=(o,s,a)=>{const u=nr[s];if(typeof u!=\"function\")throw new Error(\"invalid validator function\");const i=t[o];if(!(a&&i===void 0)&&!u(i,t))throw new Error(\"param \"+String(o)+\" is invalid. Expected \"+s+\", got \"+i)};for(const[o,s]of Object.entries(e))r(o,s,!1);for(const[o,s]of Object.entries(n))r(o,s,!0);return t}function xe(t){const e=new WeakMap;return(n,...r)=>{const o=e.get(n);if(o!==void 0)return o;const s=t(n,...r);return e.set(n,s),s}}const M=BigInt(0),N=BigInt(1),nt=BigInt(2),rr=BigInt(3),Ht=BigInt(4),Be=BigInt(5),Ce=BigInt(8);function H(t,e){const n=t%e;return n>=M?n:e+n}function or(t,e,n){if(e<M)throw new Error(\"invalid exponent, negatives unsupported\");if(n<=M)throw new Error(\"invalid modulus\");if(n===N)return M;let r=N;for(;e>M;)e&N&&(r=r*t%n),t=t*t%n,e>>=N;return r}function J(t,e,n){let r=t;for(;e-- >M;)r*=r,r%=n;return r}function Ae(t,e){if(t===M)throw new Error(\"invert: expected non-zero number\");if(e<=M)throw new Error(\"invert: expected positive modulus, got \"+e);let n=H(t,e),r=e,o=M,s=N;for(;n!==M;){const u=r/n,i=r%n,D=o-s*u;r=n,n=i,o=s,s=D}if(r!==N)throw new Error(\"invert: does not exist\");return H(o,e)}function sr(t){const e=(t-N)/nt;let n,r,o;for(n=t-N,r=0;n%nt===M;n/=nt,r++);for(o=nt;o<t&&or(o,e,t)!==t-N;o++)if(o>1e3)throw new Error(\"Cannot find square root: likely non-prime P\");if(r===1){const a=(t+N)/Ht;return function(i,D){const c=i.pow(D,a);if(!i.eql(i.sqr(c),D))throw new Error(\"Cannot find square root\");return c}}const s=(n+N)/nt;return function(u,i){if(u.pow(i,e)===u.neg(u.ONE))throw new Error(\"Cannot find square root\");let D=r,c=u.pow(u.mul(u.ONE,o),n),l=u.pow(i,s),p=u.pow(i,n);for(;!u.eql(p,u.ONE);){if(u.eql(p,u.ZERO))return u.ZERO;let w=1;for(let g=u.sqr(p);w<D&&!u.eql(g,u.ONE);w++)g=u.sqr(g);const h=u.pow(c,N<<BigInt(D-w-1));c=u.sqr(h),l=u.mul(l,h),p=u.mul(p,c),D=w}return l}}function ir(t){if(t%Ht===rr){const e=(t+N)/Ht;return function(r,o){const s=r.pow(o,e);if(!r.eql(r.sqr(s),o))throw new Error(\"Cannot find square root\");return s}}if(t%Ce===Be){const e=(t-Be)/Ce;return function(r,o){const s=r.mul(o,nt),a=r.pow(s,e),u=r.mul(o,a),i=r.mul(r.mul(u,nt),a),D=r.mul(u,r.sub(i,r.ONE));if(!r.eql(r.sqr(D),o))throw new Error(\"Cannot find square root\");return D}}return sr(t)}const ur=(t,e)=>(H(t,e)&N)===N,cr=[\"create\",\"isValid\",\"is0\",\"neg\",\"inv\",\"sqrt\",\"sqr\",\"eql\",\"add\",\"sub\",\"mul\",\"pow\",\"div\",\"addN\",\"subN\",\"mulN\",\"sqrN\"];function ar(t){const e={ORDER:\"bigint\",MASK:\"bigint\",BYTES:\"isSafeInteger\",BITS:\"isSafeInteger\"},n=cr.reduce((r,o)=>(r[o]=\"function\",r),e);return Ot(t,n)}function fr(t,e,n){if(n<M)throw new Error(\"invalid exponent, negatives unsupported\");if(n===M)return t.ONE;if(n===N)return e;let r=t.ONE,o=e;for(;n>M;)n&N&&(r=t.mul(r,o)),o=t.sqr(o),n>>=N;return r}function Dr(t,e){const n=new Array(e.length),r=e.reduce((s,a,u)=>t.is0(a)?s:(n[u]=s,t.mul(s,a)),t.ONE),o=t.inv(r);return e.reduceRight((s,a,u)=>t.is0(a)?s:(n[u]=t.mul(s,n[u]),t.mul(s,a)),o),n}function me(t,e){const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function _e(t,e,n=!1,r={}){if(t<=M)throw new Error(\"invalid field: expected ORDER > 0, got \"+t);const{nBitLength:o,nByteLength:s}=me(t,e);if(s>2048)throw new Error(\"invalid field: expected ORDER of <= 2048 bytes\");let a;const u=Object.freeze({ORDER:t,isLE:n,BITS:o,BYTES:s,MASK:er(o),ZERO:M,ONE:N,create:i=>H(i,t),isValid:i=>{if(typeof i!=\"bigint\")throw new Error(\"invalid field element: expected bigint, got \"+typeof i);return M<=i&&i<t},is0:i=>i===M,isOdd:i=>(i&N)===N,neg:i=>H(-i,t),eql:(i,D)=>i===D,sqr:i=>H(i*i,t),add:(i,D)=>H(i+D,t),sub:(i,D)=>H(i-D,t),mul:(i,D)=>H(i*D,t),pow:(i,D)=>fr(u,i,D),div:(i,D)=>H(i*Ae(D,t),t),sqrN:i=>i*i,addN:(i,D)=>i+D,subN:(i,D)=>i-D,mulN:(i,D)=>i*D,inv:i=>Ae(i,t),sqrt:r.sqrt||(i=>(a||(a=ir(t)),a(u,i))),invertBatch:i=>Dr(u,i),cmov:(i,D,c)=>c?D:i,toBytes:i=>n?Nt(i,s):ge(i,s),fromBytes:i=>{if(i.length!==s)throw new Error(\"Field.fromBytes: expected \"+s+\" bytes, got \"+i.length);return n?Et(i):Pn(i)}});return Object.freeze(u)}const Se=BigInt(0),gt=BigInt(1);function zt(t,e){const n=e.negate();return t?n:e}function ve(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error(\"invalid window size, expected [1..\"+e+\"], got W=\"+t)}function Mt(t,e){ve(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1);return{windows:n,windowSize:r}}function dr(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 hr(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 qt=new WeakMap,Ie=new WeakMap;function $t(t){return Ie.get(t)||1}function lr(t,e){return{constTimeNegate:zt,hasPrecomputes(n){return $t(n)!==1},unsafeLadder(n,r,o=t.ZERO){let s=n;for(;r>Se;)r&gt&&(o=o.add(s)),s=s.double(),r>>=gt;return o},precomputeWindow(n,r){const{windows:o,windowSize:s}=Mt(r,e),a=[];let u=n,i=u;for(let D=0;D<o;D++){i=u,a.push(i);for(let c=1;c<s;c++)i=i.add(u),a.push(i);u=i.double()}return a},wNAF(n,r,o){const{windows:s,windowSize:a}=Mt(n,e);let u=t.ZERO,i=t.BASE;const D=BigInt(2**n-1),c=2**n,l=BigInt(n);for(let p=0;p<s;p++){const w=p*a;let h=Number(o&D);o>>=l,h>a&&(h-=c,o+=gt);const g=w,S=w+Math.abs(h)-1,v=p%2!==0,L=h<0;h===0?i=i.add(zt(v,r[g])):u=u.add(zt(L,r[S]))}return{p:u,f:i}},wNAFUnsafe(n,r,o,s=t.ZERO){const{windows:a,windowSize:u}=Mt(n,e),i=BigInt(2**n-1),D=2**n,c=BigInt(n);for(let l=0;l<a;l++){const p=l*u;if(o===Se)break;let w=Number(o&i);if(o>>=c,w>u&&(w-=D,o+=gt),w===0)continue;let h=r[p+Math.abs(w)-1];w<0&&(h=h.negate()),s=s.add(h)}return s},getPrecomputes(n,r,o){let s=qt.get(r);return s||(s=this.precomputeWindow(r,n),n!==1&&qt.set(r,o(s))),s},wNAFCached(n,r,o){const s=$t(n);return this.wNAF(s,this.getPrecomputes(s,n,o),r)},wNAFCachedUnsafe(n,r,o,s){const a=$t(n);return a===1?this.unsafeLadder(n,r,s):this.wNAFUnsafe(a,this.getPrecomputes(a,n,o),r,s)},setWindowSize(n,r){ve(r,e),Ie.set(n,r),qt.delete(n)}}}function br(t,e,n,r){if(dr(n,t),hr(r,e),n.length!==r.length)throw new Error(\"arrays of points and scalars must have equal length\");const o=t.ZERO,s=tr(BigInt(n.length)),a=s>12?s-3:s>4?s-2:s?2:1,u=(1<<a)-1,i=new Array(u+1).fill(o),D=Math.floor((e.BITS-1)/a)*a;let c=o;for(let l=D;l>=0;l-=a){i.fill(o);for(let w=0;w<r.length;w++){const h=r[w],g=Number(h>>BigInt(l)&BigInt(u));i[g]=i[g].add(n[w])}let p=o;for(let w=i.length-1,h=o;w>0;w--)h=h.add(i[w]),p=p.add(h);if(c=c.add(p),l!==0)for(let w=0;w<a;w++)c=c.double()}return c}function pr(t){return ar(t.Fp),Ot(t,{n:\"bigint\",h:\"bigint\",Gx:\"field\",Gy:\"field\"},{nBitLength:\"isSafeInteger\",nByteLength:\"isSafeInteger\"}),Object.freeze({...me(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}const G=BigInt(0),j=BigInt(1),yt=BigInt(2),wr=BigInt(8),Er={zip215:!0};function gr(t){const e=pr(t);return Ot(t,{hash:\"function\",a:\"bigint\",d:\"bigint\",randomBytes:\"function\"},{adjustScalarBytes:\"function\",domain:\"function\",uvRatio:\"function\",mapToCurve:\"function\"}),Object.freeze({...e})}function yr(t){const e=gr(t),{Fp:n,n:r,prehash:o,hash:s,randomBytes:a,nByteLength:u,h:i}=e,D=yt<<BigInt(u*8)-j,c=n.create,l=_e(e.n,e.nBitLength),p=e.uvRatio||((y,f)=>{try{return{isValid:!0,value:n.sqrt(y*n.inv(f))}}catch{return{isValid:!1,value:G}}}),w=e.adjustScalarBytes||(y=>y),h=e.domain||((y,f,b)=>{if(Tt(\"phflag\",b),f.length||b)throw new Error(\"Contexts/pre-hash are not supported\");return y});function g(y,f){ft(\"coordinate \"+y,f,G,D)}function S(y){if(!(y instanceof d))throw new Error(\"ExtendedPoint expected\")}const v=xe((y,f)=>{const{ex:b,ey:E,ez:B}=y,C=y.is0();f==null&&(f=C?wr:n.inv(B));const A=c(b*f),U=c(E*f),_=c(B*f);if(C)return{x:G,y:j};if(_!==j)throw new Error(\"invZ was invalid\");return{x:A,y:U}}),L=xe(y=>{const{a:f,d:b}=e;if(y.is0())throw new Error(\"bad point: ZERO\");const{ex:E,ey:B,ez:C,et:A}=y,U=c(E*E),_=c(B*B),T=c(C*C),$=c(T*T),R=c(U*f),V=c(T*c(R+_)),Y=c($+c(b*c(U*_)));if(V!==Y)throw new Error(\"bad point: equation left != right (1)\");const Z=c(E*B),X=c(C*A);if(Z!==X)throw new Error(\"bad point: equation left != right (2)\");return!0});class d{constructor(f,b,E,B){this.ex=f,this.ey=b,this.ez=E,this.et=B,g(\"x\",f),g(\"y\",b),g(\"z\",E),g(\"t\",B),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(f){if(f instanceof d)throw new Error(\"extended point not allowed\");const{x:b,y:E}=f||{};return g(\"x\",b),g(\"y\",E),new d(b,E,j,c(b*E))}static normalizeZ(f){const b=n.invertBatch(f.map(E=>E.ez));return f.map((E,B)=>E.toAffine(b[B])).map(d.fromAffine)}static msm(f,b){return br(d,l,f,b)}_setWindowSize(f){q.setWindowSize(this,f)}assertValidity(){L(this)}equals(f){S(f);const{ex:b,ey:E,ez:B}=this,{ex:C,ey:A,ez:U}=f,_=c(b*U),T=c(C*B),$=c(E*U),R=c(A*B);return _===T&&$===R}is0(){return this.equals(d.ZERO)}negate(){return new d(c(-this.ex),this.ey,this.ez,c(-this.et))}double(){const{a:f}=e,{ex:b,ey:E,ez:B}=this,C=c(b*b),A=c(E*E),U=c(yt*c(B*B)),_=c(f*C),T=b+E,$=c(c(T*T)-C-A),R=_+A,V=R-U,Y=_-A,Z=c($*V),X=c(R*Y),et=c($*Y),pt=c(V*R);return new d(Z,X,pt,et)}add(f){S(f);const{a:b,d:E}=e,{ex:B,ey:C,ez:A,et:U}=this,{ex:_,ey:T,ez:$,et:R}=f;if(b===BigInt(-1)){const re=c((C-B)*(T+_)),oe=c((C+B)*(T-_)),mt=c(oe-re);if(mt===G)return this.double();const se=c(A*yt*R),ie=c(U*yt*$),ue=ie+se,ce=oe+re,ae=ie-se,Dn=c(ue*mt),dn=c(ce*ae),hn=c(ue*ae),ln=c(mt*ce);return new d(Dn,dn,ln,hn)}const V=c(B*_),Y=c(C*T),Z=c(U*E*R),X=c(A*$),et=c((B+C)*(_+T)-V-Y),pt=X-Z,ee=X+Z,ne=c(Y-b*V),un=c(et*pt),cn=c(ee*ne),an=c(et*ne),fn=c(pt*ee);return new d(un,cn,fn,an)}subtract(f){return this.add(f.negate())}wNAF(f){return q.wNAFCached(this,f,d.normalizeZ)}multiply(f){const b=f;ft(\"scalar\",b,j,r);const{p:E,f:B}=this.wNAF(b);return d.normalizeZ([E,B])[0]}multiplyUnsafe(f,b=d.ZERO){const E=f;return ft(\"scalar\",E,G,r),E===G?F:this.is0()||E===j?this:q.wNAFCachedUnsafe(this,E,d.normalizeZ,b)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return q.unsafeLadder(this,r).is0()}toAffine(f){return v(this,f)}clearCofactor(){const{h:f}=e;return f===j?this:this.multiplyUnsafe(f)}static fromHex(f,b=!1){const{d:E,a:B}=e,C=n.BYTES;f=W(\"pointHex\",f,C),Tt(\"zip215\",b);const A=f.slice(),U=f[C-1];A[C-1]=U&-129;const _=Et(A),T=b?D:n.ORDER;ft(\"pointHex.y\",_,G,T);const $=c(_*_),R=c($-j),V=c(E*$-B);let{isValid:Y,value:Z}=p(R,V);if(!Y)throw new Error(\"Point.fromHex: invalid y coordinate\");const X=(Z&j)===j,et=(U&128)!==0;if(!b&&Z===G&&et)throw new Error(\"Point.fromHex: x=0 and x_0=1\");return et!==X&&(Z=c(-Z)),d.fromAffine({x:Z,y:_})}static fromPrivateKey(f){return O(f).point}toRawBytes(){const{x:f,y:b}=this.toAffine(),E=Nt(b,n.BYTES);return E[E.length-1]|=f&j?128:0,E}toHex(){return Ft(this.toRawBytes())}}d.BASE=new d(e.Gx,e.Gy,j,c(e.Gx*e.Gy)),d.ZERO=new d(G,j,j,G);const{BASE:m,ZERO:F}=d,q=lr(d,u*8);function z(y){return H(y,r)}function I(y){return z(Et(y))}function O(y){const f=n.BYTES;y=W(\"private key\",y,f);const b=W(\"hashed private key\",s(y),2*f),E=w(b.slice(0,f)),B=b.slice(f,2*f),C=I(E),A=m.multiply(C),U=A.toRawBytes();return{head:E,prefix:B,scalar:C,point:A,pointBytes:U}}function ot(y){return O(y).pointBytes}function tt(y=new Uint8Array,...f){const b=ye(...f);return I(s(h(b,W(\"context\",y),!!o)))}function st(y,f,b={}){y=W(\"message\",y),o&&(y=o(y));const{prefix:E,scalar:B,pointBytes:C}=O(f),A=tt(b.context,E,y),U=m.multiply(A).toRawBytes(),_=tt(b.context,U,C,y),T=z(A+_*B);ft(\"signature.s\",T,G,r);const $=ye(U,Nt(T,n.BYTES));return W(\"result\",$,n.BYTES*2)}const at=Er;function Ct(y,f,b,E=at){const{context:B,zip215:C}=E,A=n.BYTES;y=W(\"signature\",y,2*A),f=W(\"message\",f),b=W(\"publicKey\",b,A),C!==void 0&&Tt(\"zip215\",C),o&&(f=o(f));const U=Et(y.slice(A,2*A));let _,T,$;try{_=d.fromHex(b,C),T=d.fromHex(y.slice(0,A),C),$=m.multiplyUnsafe(U)}catch{return!1}if(!C&&_.isSmallOrder())return!1;const R=tt(B,T.toRawBytes(),_.toRawBytes(),f);return T.add(_.multiplyUnsafe(R)).subtract($).clearCofactor().equals(d.ZERO)}return m._setWindowSize(8),{CURVE:e,getPublicKey:ot,sign:st,verify:Ct,ExtendedPoint:d,utils:{getExtendedPublicKey:O,randomPrivateKey:()=>a(n.BYTES),precompute(y=8,f=d.BASE){return f._setWindowSize(y),f.multiply(BigInt(3)),f}}}}BigInt(0),BigInt(1);const kt=BigInt(\"57896044618658097711785492504343953926634992332820282019728792003956564819949\"),Ue=BigInt(\"19681161376707505956807079304988542015446066515923890162744021073123829784752\");BigInt(0);const xr=BigInt(1),Te=BigInt(2);BigInt(3);const Br=BigInt(5),Cr=BigInt(8);function Ar(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),o=BigInt(80),s=kt,u=t*t%s*t%s,i=J(u,Te,s)*u%s,D=J(i,xr,s)*t%s,c=J(D,Br,s)*D%s,l=J(c,e,s)*c%s,p=J(l,n,s)*l%s,w=J(p,r,s)*p%s,h=J(w,o,s)*w%s,g=J(h,o,s)*w%s,S=J(g,e,s)*c%s;return{pow_p_5_8:J(S,Te,s)*t%s,b2:u}}function mr(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function _r(t,e){const n=kt,r=H(e*e*e,n),o=H(r*r*e,n),s=Ar(t*o).pow_p_5_8;let a=H(t*r*s,n);const u=H(e*a*a,n),i=a,D=H(a*Ue,n),c=u===t,l=u===H(-t,n),p=u===H(-t*Ue,n);return c&&(a=i),(l||p)&&(a=D),ur(a,n)&&(a=H(-a,n)),{isValid:c||l,value:a}}const Sr=(()=>_e(kt,void 0,!0))(),vr=(()=>({a:BigInt(-1),d:BigInt(\"37095705934669439343138083508754565189542113879843219016388785533085940283555\"),Fp:Sr,n:BigInt(\"7237005577332262213973186563042994240857116359379907606001950938285454250989\"),h:Cr,Gx:BigInt(\"15112221349535400772501151409588531511454012693041857206046113283949847762202\"),Gy:BigInt(\"46316835694926478169428394003475163141307993866256225615783033603165251855960\"),hash:Kn,randomBytes:he,adjustScalarBytes:mr,uvRatio:_r}))(),Rt=(()=>yr(vr))(),jt=\"EdDSA\",Zt=\"JWT\",ut=\".\",Dt=\"base64url\",Gt=\"utf8\",xt=\"utf8\",Vt=\":\",Yt=\"did\",Jt=\"key\",dt=\"base58btc\",Kt=\"z\",Wt=\"K36\",Fe=32,Ne=32;function Xt(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Le(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?Xt(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Oe(t,e){e||(e=t.reduce((o,s)=>o+s.length,0));const n=Le(e);let r=0;for(const o of t)n.set(o,r),r+=o.length;return Xt(n)}function Ir(t,e){if(t.length>=255)throw new TypeError(\"Alphabet too long\");for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),a=s.charCodeAt(0);if(n[a]!==255)throw new TypeError(s+\" is ambiguous\");n[a]=o}var u=t.length,i=t.charAt(0),D=Math.log(u)/Math.log(256),c=Math.log(256)/Math.log(u);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError(\"Expected Uint8Array\");if(h.length===0)return\"\";for(var g=0,S=0,v=0,L=h.length;v!==L&&h[v]===0;)v++,g++;for(var d=(L-v)*c+1>>>0,m=new Uint8Array(d);v!==L;){for(var F=h[v],q=0,z=d-1;(F!==0||q<S)&&z!==-1;z--,q++)F+=256*m[z]>>>0,m[z]=F%u>>>0,F=F/u>>>0;if(F!==0)throw new Error(\"Non-zero carry\");S=q,v++}for(var I=d-S;I!==d&&m[I]===0;)I++;for(var O=i.repeat(g);I<d;++I)O+=t.charAt(m[I]);return O}function p(h){if(typeof h!=\"string\")throw new TypeError(\"Expected String\");if(h.length===0)return new Uint8Array;var g=0;if(h[g]!==\" \"){for(var S=0,v=0;h[g]===i;)S++,g++;for(var L=(h.length-g)*D+1>>>0,d=new Uint8Array(L);h[g];){var m=n[h.charCodeAt(g)];if(m===255)return;for(var F=0,q=L-1;(m!==0||F<v)&&q!==-1;q--,F++)m+=u*d[q]>>>0,d[q]=m%256>>>0,m=m/256>>>0;if(m!==0)throw new Error(\"Non-zero carry\");v=F,g++}if(h[g]!==\" \"){for(var z=L-v;z!==L&&d[z]===0;)z++;for(var I=new Uint8Array(S+(L-z)),O=S;z!==L;)I[O++]=d[z++];return I}}}function w(h){var g=p(h);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:p,decode:w}}var Ur=Ir,Tr=Ur;const He=t=>{if(t instanceof Uint8Array&&t.constructor.name===\"Uint8Array\")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error(\"Unknown type, must be binary type\")},Fr=t=>new TextEncoder().encode(t),Nr=t=>new TextDecoder().decode(t);class Lr{constructor(e,n,r){this.name=e,this.prefix=n,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(\"Unknown type, must be binary type\")}}class Or{constructor(e,n,r){if(this.name=e,this.prefix=n,n.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=n.codePointAt(0),this.baseDecode=r}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 ze(this,e)}}class Hr{constructor(e){this.decoders=e}or(e){return ze(this,e)}decode(e){const n=e[0],r=this.decoders[n];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ze=(t,e)=>new Hr({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}});class zr{constructor(e,n,r,o){this.name=e,this.prefix=n,this.baseEncode=r,this.baseDecode=o,this.encoder=new Lr(e,n,r),this.decoder=new Or(e,n,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Bt=({name:t,prefix:e,encode:n,decode:r})=>new zr(t,e,n,r),ht=({prefix:t,name:e,alphabet:n})=>{const{encode:r,decode:o}=Tr(n,e);return Bt({prefix:t,name:e,encode:r,decode:s=>He(o(s))})},Mr=(t,e,n,r)=>{const o={};for(let c=0;c<e.length;++c)o[e[c]]=c;let s=t.length;for(;t[s-1]===\"=\";)--s;const a=new Uint8Array(s*n/8|0);let u=0,i=0,D=0;for(let c=0;c<s;++c){const l=o[t[c]];if(l===void 0)throw new SyntaxError(`Non-${r} character`);i=i<<n|l,u+=n,u>=8&&(u-=8,a[D++]=255&i>>u)}if(u>=n||255&i<<8-u)throw new SyntaxError(\"Unexpected end of data\");return a},qr=(t,e,n)=>{const r=e[e.length-1]===\"=\",o=(1<<n)-1;let s=\"\",a=0,u=0;for(let i=0;i<t.length;++i)for(u=u<<8|t[i],a+=8;a>n;)a-=n,s+=e[o&u>>a];if(a&&(s+=e[o&u<<n-a]),r)for(;s.length*n&7;)s+=\"=\";return s},k=({name:t,prefix:e,bitsPerChar:n,alphabet:r})=>Bt({prefix:e,name:t,encode(o){return qr(o,r,n)},decode(o){return Mr(o,r,n,t)}}),$r=Bt({prefix:\"\\0\",name:\"identity\",encode:t=>Nr(t),decode:t=>Fr(t)});var kr=Object.freeze({__proto__:null,identity:$r});const Rr=k({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var jr=Object.freeze({__proto__:null,base2:Rr});const Zr=k({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var Gr=Object.freeze({__proto__:null,base8:Zr});const Vr=ht({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var Yr=Object.freeze({__proto__:null,base10:Vr});const Jr=k({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),Kr=k({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Wr=Object.freeze({__proto__:null,base16:Jr,base16upper:Kr});const Xr=k({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),Pr=k({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),Qr=k({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),to=k({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),eo=k({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),no=k({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),ro=k({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),oo=k({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),so=k({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var io=Object.freeze({__proto__:null,base32:Xr,base32upper:Pr,base32pad:Qr,base32padupper:to,base32hex:eo,base32hexupper:no,base32hexpad:ro,base32hexpadupper:oo,base32z:so});const uo=ht({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),co=ht({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var ao=Object.freeze({__proto__:null,base36:uo,base36upper:co});const fo=ht({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),Do=ht({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var ho=Object.freeze({__proto__:null,base58btc:fo,base58flickr:Do});const lo=k({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),bo=k({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),po=k({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),wo=k({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Eo=Object.freeze({__proto__:null,base64:lo,base64pad:bo,base64url:po,base64urlpad:wo});const Me=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}\"),go=Me.reduce((t,e,n)=>(t[n]=e,t),[]),yo=Me.reduce((t,e,n)=>(t[e.codePointAt(0)]=n,t),[]);function xo(t){return t.reduce((e,n)=>(e+=go[n],e),\"\")}function Bo(t){const e=[];for(const n of t){const r=yo[n.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${n}`);e.push(r)}return new Uint8Array(e)}const Co=Bt({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:xo,decode:Bo});var Ao=Object.freeze({__proto__:null,base256emoji:Co}),mo=$e,qe=128,_o=127,So=~_o,vo=Math.pow(2,31);function $e(t,e,n){e=e||[],n=n||0;for(var r=n;t>=vo;)e[n++]=t&255|qe,t/=128;for(;t&So;)e[n++]=t&255|qe,t>>>=7;return e[n]=t|0,$e.bytes=n-r+1,e}var Io=Pt,Uo=128,ke=127;function Pt(t,r){var n=0,r=r||0,o=0,s=r,a,u=t.length;do{if(s>=u)throw Pt.bytes=0,new RangeError(\"Could not decode varint\");a=t[s++],n+=o<28?(a&ke)<<o:(a&ke)*Math.pow(2,o),o+=7}while(a>=Uo);return Pt.bytes=s-r,n}var To=Math.pow(2,7),Fo=Math.pow(2,14),No=Math.pow(2,21),Lo=Math.pow(2,28),Oo=Math.pow(2,35),Ho=Math.pow(2,42),zo=Math.pow(2,49),Mo=Math.pow(2,56),qo=Math.pow(2,63),$o=function(t){return t<To?1:t<Fo?2:t<No?3:t<Lo?4:t<Oo?5:t<Ho?6:t<zo?7:t<Mo?8:t<qo?9:10},ko={encode:mo,decode:Io,encodingLength:$o},Re=ko;const je=(t,e,n=0)=>(Re.encode(t,e,n),e),Ze=t=>Re.encodingLength(t),Qt=(t,e)=>{const n=e.byteLength,r=Ze(t),o=r+Ze(n),s=new Uint8Array(o+n);return je(t,s,0),je(n,s,r),s.set(e,o),new Ro(t,n,e,s)};class Ro{constructor(e,n,r,o){this.code=e,this.size=n,this.digest=r,this.bytes=o}}const Ge=({name:t,code:e,encode:n})=>new jo(t,e,n);class jo{constructor(e,n,r){this.name=e,this.code=n,this.encode=r}digest(e){if(e instanceof Uint8Array){const n=this.encode(e);return n instanceof Uint8Array?Qt(this.code,n):n.then(r=>Qt(this.code,r))}else throw Error(\"Unknown type, must be binary type\")}}const Ve=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),Zo=Ge({name:\"sha2-256\",code:18,encode:Ve(\"SHA-256\")}),Go=Ge({name:\"sha2-512\",code:19,encode:Ve(\"SHA-512\")});var Vo=Object.freeze({__proto__:null,sha256:Zo,sha512:Go});const Ye=0,Yo=\"identity\",Je=He,Jo=t=>Qt(Ye,Je(t)),Ko={code:Ye,name:Yo,encode:Je,digest:Jo};var Wo=Object.freeze({__proto__:null,identity:Ko});new TextEncoder,new TextDecoder;const Ke={...kr,...jr,...Gr,...Yr,...Wr,...io,...ao,...ho,...Eo,...Ao};({...Vo,...Wo});function We(t,e,n,r){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:n},decoder:{decode:r}}}const Xe=We(\"utf8\",\"u\",t=>\"u\"+new TextDecoder(\"utf8\").decode(t),t=>new TextEncoder().encode(t.substring(1))),te=We(\"ascii\",\"a\",t=>{let e=\"a\";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return e},t=>{t=t.substring(1);const e=Le(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}),Pe={utf8:Xe,\"utf-8\":Xe,hex:Ke.base16,latin1:te,ascii:te,binary:te,...Ke};function ct(t,e=\"utf8\"){const n=Pe[e];if(!n)throw new Error(`Unsupported encoding \"${e}\"`);return(e===\"utf8\"||e===\"utf-8\")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString(\"utf8\"):n.encoder.encode(t).substring(1)}function rt(t,e=\"utf8\"){const n=Pe[e];if(!n)throw new Error(`Unsupported encoding \"${e}\"`);return(e===\"utf8\"||e===\"utf-8\")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Xt(globalThis.Buffer.from(t,\"utf-8\")):n.decoder.decode(`${n.prefix}${t}`)}function lt(t){return pn(ct(rt(t,Dt),Gt))}function bt(t){return ct(rt(wn(t),Gt),Dt)}function Qe(t){const e=rt(Wt,dt),n=Kt+ct(Oe([e,t]),dt);return[Yt,Jt,n].join(Vt)}function tn(t){const[e,n,r]=t.split(Vt);if(e!==Yt||n!==Jt)throw new Error('Issuer must be a DID with method \"key\"');if(r.slice(0,1)!==Kt)throw new Error(\"Issuer must be a key in mulicodec format\");const o=rt(r.slice(1),dt);if(ct(o.slice(0,2),dt)!==Wt)throw new Error('Issuer must be a public key with type \"Ed25519\"');const s=o.slice(2);if(s.length!==Fe)throw new Error(\"Issuer must be a public key with length 32 bytes\");return s}function en(t){return ct(t,Dt)}function nn(t){return rt(t,Dt)}function rn(t){return rt([bt(t.header),bt(t.payload)].join(ut),xt)}function Xo(t){const e=ct(t,xt).split(ut),n=lt(e[0]),r=lt(e[1]);return{header:n,payload:r}}function on(t){return[bt(t.header),bt(t.payload),en(t.signature)].join(ut)}function sn(t){const e=t.split(ut),n=lt(e[0]),r=lt(e[1]),o=nn(e[2]),s=rt(e.slice(0,2).join(ut),xt);return{header:n,payload:r,signature:o,data:s}}function Po(t=he(Ne)){const e=Rt.getPublicKey(t);return{secretKey:Oe([t,e]),publicKey:e}}async function Qo(t,e,n,r,o=bn(Date.now())){const s={alg:jt,typ:Zt},a=Qe(r.publicKey),u=o+n,i={iss:a,sub:t,aud:e,iat:o,exp:u},D=rn({header:s,payload:i}),c=Rt.sign(D,r.secretKey.slice(0,32));return on({header:s,payload:i,signature:c})}async function ts(t){const{header:e,payload:n,data:r,signature:o}=sn(t);if(e.alg!==jt||e.typ!==Zt)throw new Error(\"JWT must use EdDSA algorithm\");const s=tn(n.iss);return Rt.verify(o,r,s)}export{xt as DATA_ENCODING,Vt as DID_DELIMITER,Jt as DID_METHOD,Yt as DID_PREFIX,Gt as JSON_ENCODING,ut as JWT_DELIMITER,Dt as JWT_ENCODING,jt as JWT_IRIDIUM_ALG,Zt as JWT_IRIDIUM_TYP,Ne as KEY_PAIR_SEED_LENGTH,Kt as MULTICODEC_ED25519_BASE,dt as MULTICODEC_ED25519_ENCODING,Wt as MULTICODEC_ED25519_HEADER,Fe as MULTICODEC_ED25519_LENGTH,Xo as decodeData,tn as decodeIss,lt as decodeJSON,sn as decodeJWT,nn as decodeSig,rn as encodeData,Qe as encodeIss,bt as encodeJSON,on as encodeJWT,en as encodeSig,Po as generateKeyPair,Qo as signJWT,ts as verifyJWT};\n//# sourceMappingURL=index.es.js.map\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}","function base(ALPHABET, name) {\n  if (ALPHABET.length >= 255) {\n    throw new TypeError('Alphabet too long');\n  }\n  var BASE_MAP = new Uint8Array(256);\n  for (var j = 0; j < BASE_MAP.length; j++) {\n    BASE_MAP[j] = 255;\n  }\n  for (var i = 0; i < ALPHABET.length; i++) {\n    var x = ALPHABET.charAt(i);\n    var xc = x.charCodeAt(0);\n    if (BASE_MAP[xc] !== 255) {\n      throw new TypeError(x + ' is ambiguous');\n    }\n    BASE_MAP[xc] = i;\n  }\n  var BASE = ALPHABET.length;\n  var LEADER = ALPHABET.charAt(0);\n  var FACTOR = Math.log(BASE) / Math.log(256);\n  var iFACTOR = Math.log(256) / Math.log(BASE);\n  function encode(source) {\n    if (source instanceof Uint8Array);\n    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)) {\n      throw new TypeError('Expected Uint8Array');\n    }\n    if (source.length === 0) {\n      return '';\n    }\n    var zeroes = 0;\n    var length = 0;\n    var pbegin = 0;\n    var pend = source.length;\n    while (pbegin !== pend && source[pbegin] === 0) {\n      pbegin++;\n      zeroes++;\n    }\n    var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n    var b58 = new Uint8Array(size);\n    while (pbegin !== pend) {\n      var carry = source[pbegin];\n      var i = 0;\n      for (var 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) {\n        throw new Error('Non-zero carry');\n      }\n      length = i;\n      pbegin++;\n    }\n    var it2 = size - length;\n    while (it2 !== size && b58[it2] === 0) {\n      it2++;\n    }\n    var str = LEADER.repeat(zeroes);\n    for (; it2 < size; ++it2) {\n      str += ALPHABET.charAt(b58[it2]);\n    }\n    return str;\n  }\n  function decodeUnsafe(source) {\n    if (typeof source !== 'string') {\n      throw new TypeError('Expected String');\n    }\n    if (source.length === 0) {\n      return new Uint8Array();\n    }\n    var psz = 0;\n    if (source[psz] === ' ') {\n      return;\n    }\n    var zeroes = 0;\n    var length = 0;\n    while (source[psz] === LEADER) {\n      zeroes++;\n      psz++;\n    }\n    var size = (source.length - psz) * FACTOR + 1 >>> 0;\n    var b256 = new Uint8Array(size);\n    while (source[psz]) {\n      var carry = BASE_MAP[source.charCodeAt(psz)];\n      if (carry === 255) {\n        return;\n      }\n      var i = 0;\n      for (var 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) {\n        throw new Error('Non-zero carry');\n      }\n      length = i;\n      psz++;\n    }\n    if (source[psz] === ' ') {\n      return;\n    }\n    var it4 = size - length;\n    while (it4 !== size && b256[it4] === 0) {\n      it4++;\n    }\n    var vch = new Uint8Array(zeroes + (size - it4));\n    var j = zeroes;\n    while (it4 !== size) {\n      vch[j++] = b256[it4++];\n    }\n    return vch;\n  }\n  function decode(string) {\n    var buffer = decodeUnsafe(string);\n    if (buffer) {\n      return buffer;\n    }\n    throw new Error(`Non-${ name } character`);\n  }\n  return {\n    encode: encode,\n    decodeUnsafe: decodeUnsafe,\n    decode: decode\n  };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;","const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n  const hexes = hex.match(/../g);\n  return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n  if (aa === bb)\n    return true;\n  if (aa.byteLength !== bb.byteLength) {\n    return false;\n  }\n  for (let ii = 0; ii < aa.byteLength; ii++) {\n    if (aa[ii] !== bb[ii]) {\n      return false;\n    }\n  }\n  return true;\n};\nconst coerce = o => {\n  if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n    return o;\n  if (o instanceof ArrayBuffer)\n    return new Uint8Array(o);\n  if (ArrayBuffer.isView(o)) {\n    return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n  }\n  throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n  equals,\n  coerce,\n  isBinary,\n  fromHex,\n  toHex,\n  fromString,\n  toString,\n  empty\n};","import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n  constructor(name, prefix, baseEncode) {\n    this.name = name;\n    this.prefix = prefix;\n    this.baseEncode = baseEncode;\n  }\n  encode(bytes) {\n    if (bytes instanceof Uint8Array) {\n      return `${ this.prefix }${ this.baseEncode(bytes) }`;\n    } else {\n      throw Error('Unknown type, must be binary type');\n    }\n  }\n}\nclass Decoder {\n  constructor(name, prefix, baseDecode) {\n    this.name = name;\n    this.prefix = prefix;\n    if (prefix.codePointAt(0) === undefined) {\n      throw new Error('Invalid prefix character');\n    }\n    this.prefixCodePoint = prefix.codePointAt(0);\n    this.baseDecode = baseDecode;\n  }\n  decode(text) {\n    if (typeof text === 'string') {\n      if (text.codePointAt(0) !== this.prefixCodePoint) {\n        throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n      }\n      return this.baseDecode(text.slice(this.prefix.length));\n    } else {\n      throw Error('Can only multibase decode strings');\n    }\n  }\n  or(decoder) {\n    return or(this, decoder);\n  }\n}\nclass ComposedDecoder {\n  constructor(decoders) {\n    this.decoders = decoders;\n  }\n  or(decoder) {\n    return or(this, decoder);\n  }\n  decode(input) {\n    const prefix = input[0];\n    const decoder = this.decoders[prefix];\n    if (decoder) {\n      return decoder.decode(input);\n    } else {\n      throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n    }\n  }\n}\nexport const or = (left, right) => new ComposedDecoder({\n  ...left.decoders || { [left.prefix]: left },\n  ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n  constructor(name, prefix, baseEncode, baseDecode) {\n    this.name = name;\n    this.prefix = prefix;\n    this.baseEncode = baseEncode;\n    this.baseDecode = baseDecode;\n    this.encoder = new Encoder(name, prefix, baseEncode);\n    this.decoder = new Decoder(name, prefix, baseDecode);\n  }\n  encode(input) {\n    return this.encoder.encode(input);\n  }\n  decode(input) {\n    return this.decoder.decode(input);\n  }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n  const {encode, decode} = basex(alphabet, name);\n  return from({\n    prefix,\n    name,\n    encode,\n    decode: text => coerce(decode(text))\n  });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n  const codes = {};\n  for (let i = 0; i < alphabet.length; ++i) {\n    codes[alphabet[i]] = i;\n  }\n  let end = string.length;\n  while (string[end - 1] === '=') {\n    --end;\n  }\n  const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n  let bits = 0;\n  let buffer = 0;\n  let written = 0;\n  for (let i = 0; i < end; ++i) {\n    const value = codes[string[i]];\n    if (value === undefined) {\n      throw new SyntaxError(`Non-${ name } character`);\n    }\n    buffer = buffer << bitsPerChar | value;\n    bits += bitsPerChar;\n    if (bits >= 8) {\n      bits -= 8;\n      out[written++] = 255 & buffer >> bits;\n    }\n  }\n  if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n    throw new SyntaxError('Unexpected end of data');\n  }\n  return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n  const pad = alphabet[alphabet.length - 1] === '=';\n  const mask = (1 << bitsPerChar) - 1;\n  let out = '';\n  let bits = 0;\n  let buffer = 0;\n  for (let i = 0; i < data.length; ++i) {\n    buffer = buffer << 8 | data[i];\n    bits += 8;\n    while (bits > bitsPerChar) {\n      bits -= bitsPerChar;\n      out += alphabet[mask & buffer >> bits];\n    }\n  }\n  if (bits) {\n    out += alphabet[mask & buffer << bitsPerChar - bits];\n  }\n  if (pad) {\n    while (out.length * bitsPerChar & 7) {\n      out += '=';\n    }\n  }\n  return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n  return from({\n    prefix,\n    name,\n    encode(input) {\n      return encode(input, alphabet, bitsPerChar);\n    },\n    decode(input) {\n      return decode(input, alphabet, bitsPerChar, name);\n    }\n  });\n};","import { from } from './base.js';\nimport {\n  fromString,\n  toString\n} from '../bytes.js';\nexport const identity = from({\n  prefix: '\\0',\n  name: 'identity',\n  encode: buf => toString(buf),\n  decode: str => fromString(str)\n});","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n  prefix: '0',\n  name: 'base2',\n  alphabet: '01',\n  bitsPerChar: 1\n});","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n  prefix: '7',\n  name: 'base8',\n  alphabet: '01234567',\n  bitsPerChar: 3\n});","import { baseX } from './base.js';\nexport const base10 = baseX({\n  prefix: '9',\n  name: 'base10',\n  alphabet: '0123456789'\n});","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n  prefix: 'f',\n  name: 'base16',\n  alphabet: '0123456789abcdef',\n  bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n  prefix: 'F',\n  name: 'base16upper',\n  alphabet: '0123456789ABCDEF',\n  bitsPerChar: 4\n});","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n  prefix: 'b',\n  name: 'base32',\n  alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n  bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n  prefix: 'B',\n  name: 'base32upper',\n  alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n  bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n  prefix: 'c',\n  name: 'base32pad',\n  alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n  bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n  prefix: 'C',\n  name: 'base32padupper',\n  alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n  bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n  prefix: 'v',\n  name: 'base32hex',\n  alphabet: '0123456789abcdefghijklmnopqrstuv',\n  bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n  prefix: 'V',\n  name: 'base32hexupper',\n  alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n  bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n  prefix: 't',\n  name: 'base32hexpad',\n  alphabet: '0123456789abcdefghijklmnopqrstuv=',\n  bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n  prefix: 'T',\n  name: 'base32hexpadupper',\n  alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n  bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n  prefix: 'h',\n  name: 'base32z',\n  alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n  bitsPerChar: 5\n});","import { baseX } from './base.js';\nexport const base36 = baseX({\n  prefix: 'k',\n  name: 'base36',\n  alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n  prefix: 'K',\n  name: 'base36upper',\n  alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});","import { baseX } from './base.js';\nexport const base58btc = baseX({\n  name: 'base58btc',\n  prefix: 'z',\n  alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n  name: 'base58flickr',\n  prefix: 'Z',\n  alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n  prefix: 'm',\n  name: 'base64',\n  alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n  bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n  prefix: 'M',\n  name: 'base64pad',\n  alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n  bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n  prefix: 'u',\n  name: 'base64url',\n  alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n  bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n  prefix: 'U',\n  name: 'base64urlpad',\n  alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n  bitsPerChar: 6\n});","import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n  p[i] = c;\n  return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n  p[c.codePointAt(0)] = i;\n  return p;\n}, []);\nfunction encode(data) {\n  return data.reduce((p, c) => {\n    p += alphabetBytesToChars[c];\n    return p;\n  }, '');\n}\nfunction decode(str) {\n  const byts = [];\n  for (const char of str) {\n    const byt = alphabetCharsToBytes[char.codePointAt(0)];\n    if (byt === undefined) {\n      throw new Error(`Non-base256emoji character: ${ char }`);\n    }\n    byts.push(byt);\n  }\n  return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n  prefix: '\\uD83D\\uDE80',\n  name: 'base256emoji',\n  encode,\n  decode\n});","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));","import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n  CID,\n  hasher,\n  digest,\n  varint,\n  bytes\n} from './index.js';\nconst bases = {\n  ...identityBase,\n  ...base2,\n  ...base8,\n  ...base10,\n  ...base16,\n  ...base32,\n  ...base36,\n  ...base58,\n  ...base64,\n  ...base256emoji\n};\nconst hashes = {\n  ...sha2,\n  ...identity\n};\nconst codecs = {\n  raw,\n  json\n};\nexport {\n  CID,\n  hasher,\n  digest,\n  varint,\n  bytes,\n  hashes,\n  bases,\n  codecs\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}","function e(s,r,i=\"string\"){if(!s[r]||typeof s[r]!==i)throw new Error(`Missing or invalid \"${r}\" param`)}function l(s,r){let i=!0;return r.forEach(t=>{t in s||(i=!1)}),i}function f(s,r){return Array.isArray(s)?s.length===r:Object.keys(s).length===r}function w(s,r){return Array.isArray(s)?s.length>=r:Object.keys(s).length>=r}function u(s,r,i){return(i.length?w(s,r.length):f(s,r.length))?l(s,r):!1}function n(s,r,i=\"_\"){const t=s.split(i);return t[t.length-1].trim().toLowerCase()===r.trim().toLowerCase()}function R(s){return b(s.method)&&a(s.params)}function b(s){return n(s,\"subscribe\")}function a(s){return u(s,[\"topic\"],[])}function P(s){return c(s.method)&&h(s.params)}function c(s){return n(s,\"publish\")}function h(s){return u(s,[\"message\",\"topic\",\"ttl\"],[\"prompt\",\"tag\"])}function _(s){return o(s.method)&&p(s.params)}function o(s){return n(s,\"unsubscribe\")}function p(s){return u(s,[\"id\",\"topic\"],[])}function S(s){return m(s.method)&&d(s.params)}function m(s){return n(s,\"subscription\")}function d(s){return u(s,[\"id\",\"data\"],[])}function g(s){if(!b(s.method))throw new Error(\"JSON-RPC Request has invalid subscribe method\");if(!a(s.params))throw new Error(\"JSON-RPC Request has invalid subscribe params\");const r=s.params;return e(r,\"topic\"),r}function q(s){if(!c(s.method))throw new Error(\"JSON-RPC Request has invalid publish method\");if(!h(s.params))throw new Error(\"JSON-RPC Request has invalid publish params\");const r=s.params;return e(r,\"topic\"),e(r,\"message\"),e(r,\"ttl\",\"number\"),r}function E(s){if(!o(s.method))throw new Error(\"JSON-RPC Request has invalid unsubscribe method\");if(!p(s.params))throw new Error(\"JSON-RPC Request has invalid unsubscribe params\");const r=s.params;return e(r,\"id\"),r}function k(s){if(!m(s.method))throw new Error(\"JSON-RPC Request has invalid subscription method\");if(!d(s.params))throw new Error(\"JSON-RPC Request has invalid subscription params\");const r=s.params;return e(r,\"id\"),e(r,\"data\"),r}const C={waku:{publish:\"waku_publish\",batchPublish:\"waku_batchPublish\",subscribe:\"waku_subscribe\",batchSubscribe:\"waku_batchSubscribe\",subscription:\"waku_subscription\",unsubscribe:\"waku_unsubscribe\",batchUnsubscribe:\"waku_batchUnsubscribe\",batchFetchMessages:\"waku_batchFetchMessages\"},irn:{publish:\"irn_publish\",batchPublish:\"irn_batchPublish\",subscribe:\"irn_subscribe\",batchSubscribe:\"irn_batchSubscribe\",subscription:\"irn_subscription\",unsubscribe:\"irn_unsubscribe\",batchUnsubscribe:\"irn_batchUnsubscribe\",batchFetchMessages:\"irn_batchFetchMessages\"},iridium:{publish:\"iridium_publish\",batchPublish:\"iridium_batchPublish\",subscribe:\"iridium_subscribe\",batchSubscribe:\"iridium_batchSubscribe\",subscription:\"iridium_subscription\",unsubscribe:\"iridium_unsubscribe\",batchUnsubscribe:\"iridium_batchUnsubscribe\",batchFetchMessages:\"iridium_batchFetchMessages\"}};export{C as RELAY_JSONRPC,c as isPublishMethod,h as isPublishParams,P as isPublishRequest,b as isSubscribeMethod,a as isSubscribeParams,R as isSubscribeRequest,m as isSubscriptionMethod,d as isSubscriptionParams,S as isSubscriptionRequest,o as isUnsubscribeMethod,p as isUnsubscribeParams,_ as isUnsubscribeRequest,q as parsePublishRequest,g as parseSubscribeRequest,k as parseSubscriptionRequest,E as parseUnsubscribeRequest};\n//# sourceMappingURL=index.es.js.map\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","export class IEvents {\n}\n//# sourceMappingURL=events.js.map","import{EventEmitter as a}from\"events\";import{FIVE_SECONDS as o,toMiliseconds as l}from\"@walletconnect/time\";import{IEvents as v}from\"@walletconnect/events\";class n extends v{constructor(e){super()}}const s=o,r={pulse:\"heartbeat_pulse\"};class i extends n{constructor(e){super(e),this.events=new a,this.interval=s,this.interval=e?.interval||s}static async init(e){const t=new i(e);return await t.init(),t}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}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 initialize(){this.intervalRef=setInterval(()=>this.pulse(),l(this.interval))}pulse(){this.events.emit(r.pulse)}}export{r as HEARTBEAT_EVENTS,s as HEARTBEAT_INTERVAL,i as HeartBeat,n as IHeartBeat};\n//# sourceMappingURL=index.es.js.map\n","const suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n  if (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n    warnKeyDropped(key);\n    return;\n  }\n  return value;\n}\nfunction warnKeyDropped(key) {\n  console.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n  if (typeof value !== \"string\") {\n    return value;\n  }\n  if (value[0] === '\"' && value[value.length - 1] === '\"' && value.indexOf(\"\\\\\") === -1) {\n    return value.slice(1, -1);\n  }\n  const _value = value.trim();\n  if (_value.length <= 9) {\n    switch (_value.toLowerCase()) {\n      case \"true\": {\n        return true;\n      }\n      case \"false\": {\n        return false;\n      }\n      case \"undefined\": {\n        return void 0;\n      }\n      case \"null\": {\n        return null;\n      }\n      case \"nan\": {\n        return Number.NaN;\n      }\n      case \"infinity\": {\n        return Number.POSITIVE_INFINITY;\n      }\n      case \"-infinity\": {\n        return Number.NEGATIVE_INFINITY;\n      }\n    }\n  }\n  if (!JsonSigRx.test(value)) {\n    if (options.strict) {\n      throw new SyntaxError(\"[destr] Invalid JSON\");\n    }\n    return value;\n  }\n  try {\n    if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n      if (options.strict) {\n        throw new Error(\"[destr] Possible prototype pollution\");\n      }\n      return JSON.parse(value, jsonParseTransform);\n    }\n    return JSON.parse(value);\n  } catch (error) {\n    if (options.strict) {\n      throw error;\n    }\n    return value;\n  }\n}\nfunction safeDestr(value, options = {}) {\n  return destr(value, { ...options, strict: true });\n}\n\nexport { destr as default, destr, safeDestr };\n","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","'use strict'\nfunction tryStringify (o) {\n  try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n  var ss = (opts && opts.stringify) || tryStringify\n  var offset = 1\n  if (typeof f === 'object' && f !== null) {\n    var len = args.length + offset\n    if (len === 1) return f\n    var objects = new Array(len)\n    objects[0] = ss(f)\n    for (var index = 1; index < len; index++) {\n      objects[index] = ss(args[index])\n    }\n    return objects.join(' ')\n  }\n  if (typeof f !== 'string') {\n    return f\n  }\n  var argLen = args.length\n  if (argLen === 0) return f\n  var str = ''\n  var a = 1 - offset\n  var lastPos = -1\n  var flen = (f && f.length) || 0\n  for (var i = 0; i < flen;) {\n    if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n      lastPos = lastPos > -1 ? lastPos : 0\n      switch (f.charCodeAt(i + 1)) {\n        case 100: // 'd'\n        case 102: // 'f'\n          if (a >= argLen)\n            break\n          if (args[a] == null)  break\n          if (lastPos < i)\n            str += f.slice(lastPos, i)\n          str += Number(args[a])\n          lastPos = i + 2\n          i++\n          break\n        case 105: // 'i'\n          if (a >= argLen)\n            break\n          if (args[a] == null)  break\n          if (lastPos < i)\n            str += f.slice(lastPos, i)\n          str += Math.floor(Number(args[a]))\n          lastPos = i + 2\n          i++\n          break\n        case 79: // 'O'\n        case 111: // 'o'\n        case 106: // 'j'\n          if (a >= argLen)\n            break\n          if (args[a] === undefined) break\n          if (lastPos < i)\n            str += f.slice(lastPos, i)\n          var type = typeof args[a]\n          if (type === 'string') {\n            str += '\\'' + args[a] + '\\''\n            lastPos = i + 2\n            i++\n            break\n          }\n          if (type === 'function') {\n            str += args[a].name || '<anonymous>'\n            lastPos = i + 2\n            i++\n            break\n          }\n          str += ss(args[a])\n          lastPos = i + 2\n          i++\n          break\n        case 115: // 's'\n          if (a >= argLen)\n            break\n          if (lastPos < i)\n            str += f.slice(lastPos, i)\n          str += String(args[a])\n          lastPos = i + 2\n          i++\n          break\n        case 37: // '%'\n          if (lastPos < i)\n            str += f.slice(lastPos, i)\n          str += '%'\n          lastPos = i + 2\n          i++\n          a--\n          break\n      }\n      ++a\n    }\n    ++i\n  }\n  if (lastPos === -1)\n    return f\n  else if (lastPos < flen) {\n    str += f.slice(lastPos)\n  }\n\n  return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n  mapHttpRequest: mock,\n  mapHttpResponse: mock,\n  wrapRequestSerializer: passthrough,\n  wrapResponseSerializer: passthrough,\n  wrapErrorSerializer: passthrough,\n  req: mock,\n  res: mock,\n  err: asErrValue\n}\n\nfunction shouldSerialize (serialize, serializers) {\n  if (Array.isArray(serialize)) {\n    const hasToFilter = serialize.filter(function (k) {\n      return k !== '!stdSerializers.err'\n    })\n    return hasToFilter\n  } else if (serialize === true) {\n    return Object.keys(serializers)\n  }\n\n  return false\n}\n\nfunction pino (opts) {\n  opts = opts || {}\n  opts.browser = opts.browser || {}\n\n  const transmit = opts.browser.transmit\n  if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n  const proto = opts.browser.write || _console\n  if (opts.browser.write) opts.browser.asObject = true\n  const serializers = opts.serializers || {}\n  const serialize = shouldSerialize(opts.browser.serialize, serializers)\n  let stdErrSerialize = opts.browser.serialize\n\n  if (\n    Array.isArray(opts.browser.serialize) &&\n    opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n  ) stdErrSerialize = false\n\n  const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace']\n\n  if (typeof proto === 'function') {\n    proto.error = proto.fatal = proto.warn =\n    proto.info = proto.debug = proto.trace = proto\n  }\n  if (opts.enabled === false) opts.level = 'silent'\n  const level = opts.level || 'info'\n  const logger = Object.create(proto)\n  if (!logger.log) logger.log = noop\n\n  Object.defineProperty(logger, 'levelVal', {\n    get: getLevelVal\n  })\n  Object.defineProperty(logger, 'level', {\n    get: getLevel,\n    set: setLevel\n  })\n\n  const setOpts = {\n    transmit,\n    serialize,\n    asObject: opts.browser.asObject,\n    levels,\n    timestamp: getTimeFunction(opts)\n  }\n  logger.levels = pino.levels\n  logger.level = level\n\n  logger.setMaxListeners = logger.getMaxListeners =\n  logger.emit = logger.addListener = logger.on =\n  logger.prependListener = logger.once =\n  logger.prependOnceListener = logger.removeListener =\n  logger.removeAllListeners = logger.listeners =\n  logger.listenerCount = logger.eventNames =\n  logger.write = logger.flush = noop\n  logger.serializers = serializers\n  logger._serialize = serialize\n  logger._stdErrSerialize = stdErrSerialize\n  logger.child = child\n\n  if (transmit) logger._logEvent = createLogEventShape()\n\n  function getLevelVal () {\n    return this.level === 'silent'\n      ? Infinity\n      : this.levels.values[this.level]\n  }\n\n  function getLevel () {\n    return this._level\n  }\n  function setLevel (level) {\n    if (level !== 'silent' && !this.levels.values[level]) {\n      throw Error('unknown level ' + level)\n    }\n    this._level = level\n\n    set(setOpts, logger, 'error', 'log') // <-- must stay first\n    set(setOpts, logger, 'fatal', 'error')\n    set(setOpts, logger, 'warn', 'error')\n    set(setOpts, logger, 'info', 'log')\n    set(setOpts, logger, 'debug', 'log')\n    set(setOpts, logger, 'trace', 'log')\n  }\n\n  function child (bindings, childOptions) {\n    if (!bindings) {\n      throw new Error('missing bindings for child Pino')\n    }\n    childOptions = childOptions || {}\n    if (serialize && bindings.serializers) {\n      childOptions.serializers = bindings.serializers\n    }\n    const childOptionsSerializers = childOptions.serializers\n    if (serialize && childOptionsSerializers) {\n      var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n      var childSerialize = opts.browser.serialize === true\n        ? Object.keys(childSerializers)\n        : serialize\n      delete bindings.serializers\n      applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n    }\n    function Child (parent) {\n      this._childLevel = (parent._childLevel | 0) + 1\n      this.error = bind(parent, bindings, 'error')\n      this.fatal = bind(parent, bindings, 'fatal')\n      this.warn = bind(parent, bindings, 'warn')\n      this.info = bind(parent, bindings, 'info')\n      this.debug = bind(parent, bindings, 'debug')\n      this.trace = bind(parent, bindings, 'trace')\n      if (childSerializers) {\n        this.serializers = childSerializers\n        this._serialize = childSerialize\n      }\n      if (transmit) {\n        this._logEvent = createLogEventShape(\n          [].concat(parent._logEvent.bindings, bindings)\n        )\n      }\n    }\n    Child.prototype = this\n    return new Child(this)\n  }\n  return logger\n}\n\npino.levels = {\n  values: {\n    fatal: 60,\n    error: 50,\n    warn: 40,\n    info: 30,\n    debug: 20,\n    trace: 10\n  },\n  labels: {\n    10: 'trace',\n    20: 'debug',\n    30: 'info',\n    40: 'warn',\n    50: 'error',\n    60: 'fatal'\n  }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction set (opts, logger, level, fallback) {\n  const proto = Object.getPrototypeOf(logger)\n  logger[level] = logger.levelVal > logger.levels.values[level]\n    ? noop\n    : (proto[level] ? proto[level] : (_console[level] || _console[fallback] || noop))\n\n  wrap(opts, logger, level)\n}\n\nfunction wrap (opts, logger, level) {\n  if (!opts.transmit && logger[level] === noop) return\n\n  logger[level] = (function (write) {\n    return function LOG () {\n      const ts = opts.timestamp()\n      const args = new Array(arguments.length)\n      const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n      for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n      if (opts.serialize && !opts.asObject) {\n        applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n      }\n      if (opts.asObject) write.call(proto, asObject(this, level, args, ts))\n      else write.apply(proto, args)\n\n      if (opts.transmit) {\n        const transmitLevel = opts.transmit.level || logger.level\n        const transmitValue = pino.levels.values[transmitLevel]\n        const methodValue = pino.levels.values[level]\n        if (methodValue < transmitValue) return\n        transmit(this, {\n          ts,\n          methodLevel: level,\n          methodValue,\n          transmitLevel,\n          transmitValue: pino.levels.values[opts.transmit.level || logger.level],\n          send: opts.transmit.send,\n          val: logger.levelVal\n        }, args)\n      }\n    }\n  })(logger[level])\n}\n\nfunction asObject (logger, level, args, ts) {\n  if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n  const argsCloned = args.slice()\n  let msg = argsCloned[0]\n  const o = {}\n  if (ts) {\n    o.time = ts\n  }\n  o.level = pino.levels.values[level]\n  let lvl = (logger._childLevel | 0) + 1\n  if (lvl < 1) lvl = 1\n  // deliberate, catching objects, arrays\n  if (msg !== null && typeof msg === 'object') {\n    while (lvl-- && typeof argsCloned[0] === 'object') {\n      Object.assign(o, argsCloned.shift())\n    }\n    msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n  } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n  if (msg !== undefined) o.msg = msg\n  return o\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n  for (const i in args) {\n    if (stdErrSerialize && args[i] instanceof Error) {\n      args[i] = pino.stdSerializers.err(args[i])\n    } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n      for (const k in args[i]) {\n        if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n          args[i][k] = serializers[k](args[i][k])\n        }\n      }\n    }\n  }\n}\n\nfunction bind (parent, bindings, level) {\n  return function () {\n    const args = new Array(1 + arguments.length)\n    args[0] = bindings\n    for (var i = 1; i < args.length; i++) {\n      args[i] = arguments[i - 1]\n    }\n    return parent[level].apply(this, args)\n  }\n}\n\nfunction transmit (logger, opts, args) {\n  const send = opts.send\n  const ts = opts.ts\n  const methodLevel = opts.methodLevel\n  const methodValue = opts.methodValue\n  const val = opts.val\n  const bindings = logger._logEvent.bindings\n\n  applySerializers(\n    args,\n    logger._serialize || Object.keys(logger.serializers),\n    logger.serializers,\n    logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n  )\n  logger._logEvent.ts = ts\n  logger._logEvent.messages = args.filter(function (arg) {\n    // bindings can only be objects, so reference equality check via indexOf is fine\n    return bindings.indexOf(arg) === -1\n  })\n\n  logger._logEvent.level.label = methodLevel\n  logger._logEvent.level.value = methodValue\n\n  send(methodLevel, logger._logEvent, val)\n\n  logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n  return {\n    ts: 0,\n    messages: [],\n    bindings: bindings || [],\n    level: { label: '', value: 0 }\n  }\n}\n\nfunction asErrValue (err) {\n  const obj = {\n    type: err.constructor.name,\n    msg: err.message,\n    stack: err.stack\n  }\n  for (const key in err) {\n    if (obj[key] === undefined) {\n      obj[key] = err[key]\n    }\n  }\n  return obj\n}\n\nfunction getTimeFunction (opts) {\n  if (typeof opts.timestamp === 'function') {\n    return opts.timestamp\n  }\n  if (opts.timestamp === false) {\n    return nullTime\n  }\n  return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n  function defd (o) { return typeof o !== 'undefined' && o }\n  try {\n    if (typeof globalThis !== 'undefined') return globalThis\n    Object.defineProperty(Object.prototype, 'globalThis', {\n      get: function () {\n        delete Object.prototype.globalThis\n        return (this.globalThis = this)\n      },\n      configurable: true\n    })\n    return globalThis\n  } catch (e) {\n    return defd(self) || defd(window) || defd(this) || {}\n  }\n}\n/* eslint-enable */\n","import h,{levels as s}from\"pino\";import{default as U}from\"pino\";import{safeJsonStringify as u}from\"@walletconnect/safe-json\";const c={level:\"info\"},n=\"custom_context\",l=1e3*1024;class O{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class d{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const t=new O(e);if(t.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const t=e.value;return e=e.next,{done:!1,value:t}}}}}class L{constructor(e,t=l){this.level=e??\"error\",this.levelValue=s.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===s.values.error?console.error(e):t===s.values.warn?console.warn(e):t===s.values.debug?console.debug(e):t===s.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(u({timestamp:new Date().toISOString(),log:e}));const t=typeof e==\"string\"?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(u({extraMetadata:e})),new Blob(t,{type:\"application/json\"})}}class m{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const t=URL.createObjectURL(this.logsToBlob(e)),o=document.createElement(\"a\");o.href=t,o.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(t)}}class B{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var x=Object.defineProperty,S=Object.defineProperties,_=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,f=(r,e,t)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,i=(r,e)=>{for(var t in e||(e={}))T.call(e,t)&&f(r,t,e[t]);if(p)for(var t of p(e))z.call(e,t)&&f(r,t,e[t]);return r},g=(r,e)=>S(r,_(e));function k(r){return g(i({},r),{level:r?.level||c.level})}function v(r,e=n){return r[e]||\"\"}function b(r,e,t=n){return r[t]=e,r}function y(r,e=n){let t=\"\";return typeof r.bindings>\"u\"?t=v(r,e):t=r.bindings().context||\"\",t}function w(r,e,t=n){const o=y(r,t);return o.trim()?`${o}/${e}`:e}function E(r,e,t=n){const o=w(r,e,t),a=r.child({context:o});return b(a,o,t)}function C(r){var e,t;const o=new m((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\",browser:g(i({},(t=r.opts)==null?void 0:t.browser),{write:a=>o.write(a)})})),chunkLoggerController:o}}function I(r){var e;const t=new B((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\"}),t),chunkLoggerController:t}}function A(r){return typeof r.loggerOverride<\"u\"&&typeof r.loggerOverride!=\"string\"?{logger:r.loggerOverride,chunkLoggerController:null}:typeof window<\"u\"?C(r):I(r)}export{l as MAX_LOG_SIZE_IN_BYTES_DEFAULT,n as PINO_CUSTOM_CONTEXT_KEY,c as PINO_LOGGER_DEFAULTS,w as formatChildLoggerContext,E as generateChildLogger,C as generateClientLogger,A as generatePlatformLogger,I as generateServerLogger,v as getBrowserLoggerContext,k as getDefaultLoggerOptions,y as getLoggerContext,U as pino,b as setBrowserLoggerContext};\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 const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n    [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n    [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n    [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n    [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n    [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n    [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nexport const DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map","import { SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, DEFAULT_ERROR, } from \"./constants\";\nexport function isServerErrorCode(code) {\n    return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n    return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n    return typeof code === \"number\";\n}\nexport function getError(type) {\n    if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n        return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n    }\n    return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n    const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n    if (!match) {\n        return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n    }\n    return match;\n}\nexport function validateJsonRpcError(response) {\n    if (typeof response.error.code === \"undefined\") {\n        return { valid: false, error: \"Missing code for JSON-RPC error\" };\n    }\n    if (typeof response.error.message === \"undefined\") {\n        return { valid: false, error: \"Missing message for JSON-RPC error\" };\n    }\n    if (!isValidErrorCode(response.error.code)) {\n        return {\n            valid: false,\n            error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n        };\n    }\n    if (isReservedErrorCode(response.error.code)) {\n        const error = getErrorByCode(response.error.code);\n        if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n            response.error.message === error.message) {\n            return {\n                valid: false,\n                error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n            };\n        }\n    }\n    return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n    return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n        ? new Error(`Unavailable ${type} RPC url at ${url}`)\n        : e;\n}\n//# sourceMappingURL=error.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n    return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n    const browserCrypto = getBrowerCrypto();\n    return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n    return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n    return (typeof document === \"undefined\" &&\n        typeof navigator !== \"undefined\" &&\n        navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n    return (typeof process !== \"undefined\" &&\n        typeof process.versions !== \"undefined\" &&\n        typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n    return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crypto\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId(entropy = 3) {\n    const date = Date.now() * Math.pow(10, entropy);\n    const extra = Math.floor(Math.random() * Math.pow(10, entropy));\n    return date + extra;\n}\nexport function getBigIntRpcId(entropy = 6) {\n    return BigInt(payloadId(entropy));\n}\nexport function formatJsonRpcRequest(method, params, id) {\n    return {\n        id: id || payloadId(),\n        jsonrpc: \"2.0\",\n        method,\n        params,\n    };\n}\nexport function formatJsonRpcResult(id, result) {\n    return {\n        id,\n        jsonrpc: \"2.0\",\n        result,\n    };\n}\nexport function formatJsonRpcError(id, error, data) {\n    return {\n        id,\n        jsonrpc: \"2.0\",\n        error: formatErrorMessage(error, data),\n    };\n}\nexport function formatErrorMessage(error, data) {\n    if (typeof error === \"undefined\") {\n        return getError(INTERNAL_ERROR);\n    }\n    if (typeof error === \"string\") {\n        error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n    }\n    if (typeof data !== \"undefined\") {\n        error.data = data;\n    }\n    if (isReservedErrorCode(error.code)) {\n        error = getErrorByCode(error.code);\n    }\n    return error;\n}\n//# sourceMappingURL=format.js.map","class e{}class o extends e{constructor(c){super()}}class n extends e{constructor(){super()}}class r extends n{constructor(c){super()}}export{n as IBaseJsonRpcProvider,e as IEvents,o as IJsonRpcConnection,r as IJsonRpcProvider};\n//# sourceMappingURL=index.es.js.map\n","const HTTP_REGEX = \"^https?:\";\nconst WS_REGEX = \"^wss?:\";\nfunction getUrlProtocol(url) {\n    const matches = url.match(new RegExp(/^\\w+:/, \"gi\"));\n    if (!matches || !matches.length)\n        return;\n    return matches[0];\n}\nfunction matchRegexProtocol(url, regex) {\n    const protocol = getUrlProtocol(url);\n    if (typeof protocol === \"undefined\")\n        return false;\n    return new RegExp(regex).test(protocol);\n}\nexport function isHttpUrl(url) {\n    return matchRegexProtocol(url, HTTP_REGEX);\n}\nexport function isWsUrl(url) {\n    return matchRegexProtocol(url, WS_REGEX);\n}\nexport function isLocalhostUrl(url) {\n    return new RegExp(\"wss?://localhost(:d{2,5})?\").test(url);\n}\n//# sourceMappingURL=url.js.map","export function isJsonRpcPayload(payload) {\n    return (typeof payload === \"object\" &&\n        \"id\" in payload &&\n        \"jsonrpc\" in payload &&\n        payload.jsonrpc === \"2.0\");\n}\nexport function isJsonRpcRequest(payload) {\n    return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n    return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n    return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n    return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n    return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","import{EventEmitter as c}from\"events\";import{IJsonRpcProvider as r,formatJsonRpcRequest as h,getBigIntRpcId as a,isJsonRpcError as d,isJsonRpcResponse as v}from\"@walletconnect/jsonrpc-utils\";class o extends r{constructor(t){super(t),this.events=new c,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(t),this.connection.connected&&this.registerEventListeners()}async connect(t=this.connection){await this.open(t)}async disconnect(){await this.close()}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async request(t,e){return this.requestStrict(h(t.method,t.params||[],t.id||a().toString()),e)}async requestStrict(t,e){return new Promise(async(i,s)=>{if(!this.connection.connected)try{await this.open()}catch(n){s(n)}this.events.on(`${t.id}`,n=>{d(n)?s(n.error):i(n.result)});try{await this.connection.send(t,e)}catch(n){s(n)}})}setConnection(t=this.connection){return t}onPayload(t){this.events.emit(\"payload\",t),v(t)?this.events.emit(`${t.id}`,t):this.events.emit(\"message\",{type:t.method,data:t.params})}onClose(t){t&&t.code===3e3&&this.events.emit(\"error\",new Error(`WebSocket connection closed abnormally with code: ${t.code} ${t.reason?`(${t.reason})`:\"\"}`)),this.events.emit(\"disconnect\")}async open(t=this.connection){this.connection===t&&this.connection.connected||(this.connection.connected&&this.close(),typeof t==\"string\"&&(await this.connection.open(t),t=this.connection),this.connection=this.setConnection(t),await this.connection.open(),this.registerEventListeners(),this.events.emit(\"connect\"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on(\"payload\",t=>this.onPayload(t)),this.connection.on(\"close\",t=>this.onClose(t)),this.connection.on(\"error\",t=>this.events.emit(\"error\",t)),this.connection.on(\"register_error\",t=>this.onClose()),this.hasRegisteredEventListeners=!0)}}export{o as JsonRpcProvider,o as default};\n//# sourceMappingURL=index.es.js.map\n","import{EventEmitter as l}from\"events\";import{safeJsonStringify as u,safeJsonParse as p}from\"@walletconnect/safe-json\";import{isWsUrl as c,isReactNative as g,isLocalhostUrl as y,formatJsonRpcError as k,parseConnectionError as m}from\"@walletconnect/jsonrpc-utils\";const v=()=>typeof WebSocket<\"u\"?WebSocket:typeof global<\"u\"&&typeof global.WebSocket<\"u\"?global.WebSocket:typeof window<\"u\"&&typeof window.WebSocket<\"u\"?window.WebSocket:typeof self<\"u\"&&typeof self.WebSocket<\"u\"?self.WebSocket:require(\"ws\"),w=()=>typeof WebSocket<\"u\"||typeof global<\"u\"&&typeof global.WebSocket<\"u\"||typeof window<\"u\"&&typeof window.WebSocket<\"u\"||typeof self<\"u\"&&typeof self.WebSocket<\"u\",d=r=>r.split(\"?\")[0],h=10,b=v();class f{constructor(e){if(this.url=e,this.events=new l,this.registering=!1,!c(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<\"u\"}get connecting(){return this.registering}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 open(e=this.url){await this.register(e)}async close(){return new Promise((e,t)=>{if(typeof this.socket>\"u\"){t(new Error(\"Connection already closed\"));return}this.socket.onclose=n=>{this.onClose(n),e()},this.socket.close()})}async send(e){typeof this.socket>\"u\"&&(this.socket=await this.register());try{this.socket.send(u(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!c(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const t=this.events.getMaxListeners();return(this.events.listenerCount(\"register_error\")>=t||this.events.listenerCount(\"open\")>=t)&&this.events.setMaxListeners(t+1),new Promise((n,s)=>{this.events.once(\"register_error\",o=>{this.resetMaxListeners(),s(o)}),this.events.once(\"open\",()=>{if(this.resetMaxListeners(),typeof this.socket>\"u\")return s(new Error(\"WebSocket connection is missing or invalid\"));n(this.socket)})})}return this.url=e,this.registering=!0,new Promise((t,n)=>{const s=g()?void 0:{rejectUnauthorized:!y(e)},o=new b(e,[],s);w()?o.onerror=i=>{const a=i;n(this.emitError(a.error))}:o.on(\"error\",i=>{n(this.emitError(i))}),o.onopen=()=>{this.onOpen(o),t(o)}})}onOpen(e){e.onmessage=t=>this.onPayload(t),e.onclose=t=>this.onClose(t),this.socket=e,this.registering=!1,this.events.emit(\"open\")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit(\"close\",e)}onPayload(e){if(typeof e.data>\"u\")return;const t=typeof e.data==\"string\"?p(e.data):e.data;this.events.emit(\"payload\",t)}onError(e,t){const n=this.parseError(t),s=n.message||n.toString(),o=k(e,s);this.events.emit(\"payload\",o)}parseError(e,t=this.url){return m(e,d(t),\"WS\")}resetMaxListeners(){this.events.getMaxListeners()>h&&this.events.setMaxListeners(h)}emitError(e){const t=this.parseError(new Error(e?.message||`WebSocket connection failed for host: ${d(this.url)}`));return this.events.emit(\"register_error\",t),t}}export{f as WsConnection,f as default};\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.1\",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","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n  /* eslint-disable no-prototype-builtins */\n  var g =\n    (typeof globalThis !== 'undefined' && globalThis) ||\n    (typeof self !== 'undefined' && self) ||\n    // eslint-disable-next-line no-undef\n    (typeof global !== 'undefined' && global) ||\n    {};\n\n  var support = {\n    searchParams: 'URLSearchParams' in g,\n    iterable: 'Symbol' in g && 'iterator' in Symbol,\n    blob:\n      'FileReader' in g &&\n      'Blob' in g &&\n      (function() {\n        try {\n          new Blob();\n          return true\n        } catch (e) {\n          return false\n        }\n      })(),\n    formData: 'FormData' in g,\n    arrayBuffer: 'ArrayBuffer' in g\n  };\n\n  function isDataView(obj) {\n    return obj && DataView.prototype.isPrototypeOf(obj)\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ];\n\n    var isArrayBufferView =\n      ArrayBuffer.isView ||\n      function(obj) {\n        return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n      };\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name);\n    }\n    if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n      throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value);\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift();\n        return {done: value === undefined, value: value}\n      }\n    };\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      };\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {};\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value);\n      }, this);\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        if (header.length != 2) {\n          throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n        }\n        this.append(header[0], header[1]);\n      }, this);\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name]);\n      }, this);\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name);\n    value = normalizeValue(value);\n    var oldValue = this.map[name];\n    this.map[name] = oldValue ? oldValue + ', ' + value : value;\n  };\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)];\n  };\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name);\n    return this.has(name) ? this.map[name] : null\n  };\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  };\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value);\n  };\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this);\n      }\n    }\n  };\n\n  Headers.prototype.keys = function() {\n    var items = [];\n    this.forEach(function(value, name) {\n      items.push(name);\n    });\n    return iteratorFor(items)\n  };\n\n  Headers.prototype.values = function() {\n    var items = [];\n    this.forEach(function(value) {\n      items.push(value);\n    });\n    return iteratorFor(items)\n  };\n\n  Headers.prototype.entries = function() {\n    var items = [];\n    this.forEach(function(value, name) {\n      items.push([name, value]);\n    });\n    return iteratorFor(items)\n  };\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n  }\n\n  function consumed(body) {\n    if (body._noBody) return\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true;\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result);\n      };\n      reader.onerror = function() {\n        reject(reader.error);\n      };\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader();\n    var promise = fileReaderReady(reader);\n    reader.readAsArrayBuffer(blob);\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader();\n    var promise = fileReaderReady(reader);\n    var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);\n    var encoding = match ? match[1] : 'utf-8';\n    reader.readAsText(blob, encoding);\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf);\n    var chars = new Array(view.length);\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i]);\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength);\n      view.set(new Uint8Array(buf));\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false;\n\n    this._initBody = function(body) {\n      /*\n        fetch-mock wraps the Response object in an ES6 Proxy to\n        provide useful test harness features such as flush. However, on\n        ES5 browsers without fetch or Proxy support pollyfills must be used;\n        the proxy-pollyfill is unable to proxy an attribute unless it exists\n        on the object before the Proxy is created. This change ensures\n        Response.bodyUsed exists on the instance, while maintaining the\n        semantic of setting Request.bodyUsed in the constructor before\n        _initBody is called.\n      */\n      // eslint-disable-next-line no-self-assign\n      this.bodyUsed = this.bodyUsed;\n      this._bodyInit = body;\n      if (!body) {\n        this._noBody = true;\n        this._bodyText = '';\n      } else if (typeof body === 'string') {\n        this._bodyText = body;\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body;\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body;\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString();\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer);\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer]);\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body);\n      } else {\n        this._bodyText = body = Object.prototype.toString.call(body);\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8');\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type);\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n        }\n      }\n    };\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this);\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      };\n    }\n\n    this.arrayBuffer = function() {\n      if (this._bodyArrayBuffer) {\n        var isConsumed = consumed(this);\n        if (isConsumed) {\n          return isConsumed\n        } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n          return Promise.resolve(\n            this._bodyArrayBuffer.buffer.slice(\n              this._bodyArrayBuffer.byteOffset,\n              this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n            )\n          )\n        } else {\n          return Promise.resolve(this._bodyArrayBuffer)\n        }\n      } else if (support.blob) {\n        return this.blob().then(readBlobAsArrayBuffer)\n      } else {\n        throw new Error('could not read as ArrayBuffer')\n      }\n    };\n\n    this.text = function() {\n      var rejected = consumed(this);\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    };\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      };\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    };\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase();\n    return methods.indexOf(upcased) > -1 ? upcased : method\n  }\n\n  function Request(input, options) {\n    if (!(this instanceof Request)) {\n      throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n    }\n\n    options = options || {};\n    var body = options.body;\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url;\n      this.credentials = input.credentials;\n      if (!options.headers) {\n        this.headers = new Headers(input.headers);\n      }\n      this.method = input.method;\n      this.mode = input.mode;\n      this.signal = input.signal;\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit;\n        input.bodyUsed = true;\n      }\n    } else {\n      this.url = String(input);\n    }\n\n    this.credentials = options.credentials || this.credentials || 'same-origin';\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers);\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET');\n    this.mode = options.mode || this.mode || null;\n    this.signal = options.signal || this.signal || (function () {\n      if ('AbortController' in g) {\n        var ctrl = new AbortController();\n        return ctrl.signal;\n      }\n    }());\n    this.referrer = null;\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body);\n\n    if (this.method === 'GET' || this.method === 'HEAD') {\n      if (options.cache === 'no-store' || options.cache === 'no-cache') {\n        // Search for a '_' parameter in the query string\n        var reParamSearch = /([?&])_=[^&]*/;\n        if (reParamSearch.test(this.url)) {\n          // If it already exists then set the value with the current time\n          this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n        } else {\n          // Otherwise add a new '_' parameter to the end with the current time\n          var reQueryString = /\\?/;\n          this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n        }\n      }\n    }\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, {body: this._bodyInit})\n  };\n\n  function decode(body) {\n    var form = new FormData();\n    body\n      .trim()\n      .split('&')\n      .forEach(function(bytes) {\n        if (bytes) {\n          var split = bytes.split('=');\n          var name = split.shift().replace(/\\+/g, ' ');\n          var value = split.join('=').replace(/\\+/g, ' ');\n          form.append(decodeURIComponent(name), decodeURIComponent(value));\n        }\n      });\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers();\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n    // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n    // https://github.com/github/fetch/issues/748\n    // https://github.com/zloirock/core-js/issues/751\n    preProcessedHeaders\n      .split('\\r')\n      .map(function(header) {\n        return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n      })\n      .forEach(function(line) {\n        var parts = line.split(':');\n        var key = parts.shift().trim();\n        if (key) {\n          var value = parts.join(':').trim();\n          try {\n            headers.append(key, value);\n          } catch (error) {\n            console.warn('Response ' + error.message);\n          }\n        }\n      });\n    return headers\n  }\n\n  Body.call(Request.prototype);\n\n  function Response(bodyInit, options) {\n    if (!(this instanceof Response)) {\n      throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n    }\n    if (!options) {\n      options = {};\n    }\n\n    this.type = 'default';\n    this.status = options.status === undefined ? 200 : options.status;\n    if (this.status < 200 || this.status > 599) {\n      throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n    }\n    this.ok = this.status >= 200 && this.status < 300;\n    this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n    this.headers = new Headers(options.headers);\n    this.url = options.url || '';\n    this._initBody(bodyInit);\n  }\n\n  Body.call(Response.prototype);\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  };\n\n  Response.error = function() {\n    var response = new Response(null, {status: 200, statusText: ''});\n    response.ok = false;\n    response.status = 0;\n    response.type = 'error';\n    return response\n  };\n\n  var redirectStatuses = [301, 302, 303, 307, 308];\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  };\n\n  exports.DOMException = g.DOMException;\n  try {\n    new exports.DOMException();\n  } catch (err) {\n    exports.DOMException = function(message, name) {\n      this.message = message;\n      this.name = name;\n      var error = Error(message);\n      this.stack = error.stack;\n    };\n    exports.DOMException.prototype = Object.create(Error.prototype);\n    exports.DOMException.prototype.constructor = exports.DOMException;\n  }\n\n  function fetch(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init);\n\n      if (request.signal && request.signal.aborted) {\n        return reject(new exports.DOMException('Aborted', 'AbortError'))\n      }\n\n      var xhr = new XMLHttpRequest();\n\n      function abortXhr() {\n        xhr.abort();\n      }\n\n      xhr.onload = function() {\n        var options = {\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        };\n        // This check if specifically for when a user fetches a file locally from the file system\n        // Only if the status is out of a normal range\n        if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n          options.status = 200;\n        } else {\n          options.status = xhr.status;\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n        var body = 'response' in xhr ? xhr.response : xhr.responseText;\n        setTimeout(function() {\n          resolve(new Response(body, options));\n        }, 0);\n      };\n\n      xhr.onerror = function() {\n        setTimeout(function() {\n          reject(new TypeError('Network request failed'));\n        }, 0);\n      };\n\n      xhr.ontimeout = function() {\n        setTimeout(function() {\n          reject(new TypeError('Network request timed out'));\n        }, 0);\n      };\n\n      xhr.onabort = function() {\n        setTimeout(function() {\n          reject(new exports.DOMException('Aborted', 'AbortError'));\n        }, 0);\n      };\n\n      function fixUrl(url) {\n        try {\n          return url === '' && g.location.href ? g.location.href : url\n        } catch (e) {\n          return url\n        }\n      }\n\n      xhr.open(request.method, fixUrl(request.url), true);\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true;\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false;\n      }\n\n      if ('responseType' in xhr) {\n        if (support.blob) {\n          xhr.responseType = 'blob';\n        } else if (\n          support.arrayBuffer\n        ) {\n          xhr.responseType = 'arraybuffer';\n        }\n      }\n\n      if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n        var names = [];\n        Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n          names.push(normalizeName(name));\n          xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n        });\n        request.headers.forEach(function(value, name) {\n          if (names.indexOf(name) === -1) {\n            xhr.setRequestHeader(name, value);\n          }\n        });\n      } else {\n        request.headers.forEach(function(value, name) {\n          xhr.setRequestHeader(name, value);\n        });\n      }\n\n      if (request.signal) {\n        request.signal.addEventListener('abort', abortXhr);\n\n        xhr.onreadystatechange = function() {\n          // DONE (success or failure)\n          if (xhr.readyState === 4) {\n            request.signal.removeEventListener('abort', abortXhr);\n          }\n        };\n      }\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n    })\n  }\n\n  fetch.polyfill = true;\n\n  if (!g.fetch) {\n    g.fetch = fetch;\n    g.Headers = Headers;\n    g.Request = Request;\n    g.Response = Response;\n  }\n\n  exports.Headers = Headers;\n  exports.Request = Request;\n  exports.Response = Response;\n  exports.fetch = fetch;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","import{EventEmitter as m}from\"events\";import o from\"cross-fetch\";import{safeJsonStringify as a,safeJsonParse as y}from\"@walletconnect/safe-json\";import{isHttpUrl as h,formatJsonRpcError as b,parseConnectionError as u}from\"@walletconnect/jsonrpc-utils\";var P=Object.defineProperty,w=Object.defineProperties,E=Object.getOwnPropertyDescriptors,c=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,l=(r,t,e)=>t in r?P(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,p=(r,t)=>{for(var e in t||(t={}))L.call(t,e)&&l(r,e,t[e]);if(c)for(var e of c(t))O.call(t,e)&&l(r,e,t[e]);return r},v=(r,t)=>w(r,E(t));const j={Accept:\"application/json\",\"Content-Type\":\"application/json\"},T=\"POST\",d={headers:j,method:T},g=10;class f{constructor(t,e=!1){if(this.url=t,this.disableProviderPing=e,this.events=new m,this.isAvailable=!1,this.registering=!1,!h(t))throw new Error(`Provided URL is not compatible with HTTP connection: ${t}`);this.url=t,this.disableProviderPing=e}get connected(){return this.isAvailable}get connecting(){return this.registering}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async open(t=this.url){await this.register(t)}async close(){if(!this.isAvailable)throw new Error(\"Connection already closed\");this.onClose()}async send(t){this.isAvailable||await this.register();try{const e=a(t),s=await(await o(this.url,v(p({},d),{body:e}))).json();this.onPayload({data:s})}catch(e){this.onError(t.id,e)}}async register(t=this.url){if(!h(t))throw new Error(`Provided URL is not compatible with HTTP connection: ${t}`);if(this.registering){const e=this.events.getMaxListeners();return(this.events.listenerCount(\"register_error\")>=e||this.events.listenerCount(\"open\")>=e)&&this.events.setMaxListeners(e+1),new Promise((s,i)=>{this.events.once(\"register_error\",n=>{this.resetMaxListeners(),i(n)}),this.events.once(\"open\",()=>{if(this.resetMaxListeners(),typeof this.isAvailable>\"u\")return i(new Error(\"HTTP connection is missing or invalid\"));s()})})}this.url=t,this.registering=!0;try{if(!this.disableProviderPing){const e=a({id:1,jsonrpc:\"2.0\",method:\"test\",params:[]});await o(t,v(p({},d),{body:e}))}this.onOpen()}catch(e){const s=this.parseError(e);throw this.events.emit(\"register_error\",s),this.onClose(),s}}onOpen(){this.isAvailable=!0,this.registering=!1,this.events.emit(\"open\")}onClose(){this.isAvailable=!1,this.registering=!1,this.events.emit(\"close\")}onPayload(t){if(typeof t.data>\"u\")return;const e=typeof t.data==\"string\"?y(t.data):t.data;this.events.emit(\"payload\",e)}onError(t,e){const s=this.parseError(e),i=s.message||s.toString(),n=b(t,i);this.events.emit(\"payload\",n)}parseError(t,e=this.url){return u(t,e,\"HTTP\")}resetMaxListeners(){this.events.getMaxListeners()>g&&this.events.setMaxListeners(g)}}export{f as HttpConnection,f 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{EventEmitter as j}from\"events\";import{getAccountsFromNamespaces as O,getSdkError as x,isValidArray as y}from\"@walletconnect/utils\";import{UniversalProvider as N}from\"@walletconnect/universal-provider\";const $=\"wc\",k=\"ethereum_provider\",q=`${$}@2:${k}:`,U=\"https://rpc.walletconnect.org/v1/\",f=[\"eth_sendTransaction\",\"personal_sign\"],A=[\"eth_accounts\",\"eth_requestAccounts\",\"eth_sendRawTransaction\",\"eth_sign\",\"eth_signTransaction\",\"eth_signTypedData\",\"eth_signTypedData_v3\",\"eth_signTypedData_v4\",\"eth_sendTransaction\",\"personal_sign\",\"wallet_switchEthereumChain\",\"wallet_addEthereumChain\",\"wallet_getPermissions\",\"wallet_requestPermissions\",\"wallet_registerOnboarding\",\"wallet_watchAsset\",\"wallet_scanQRCode\",\"wallet_sendCalls\",\"wallet_getCapabilities\",\"wallet_getCallsStatus\",\"wallet_showCallsStatus\"],C=[\"chainChanged\",\"accountsChanged\"],P=[\"chainChanged\",\"accountsChanged\",\"message\",\"disconnect\",\"connect\"],D=async()=>{const{createAppKit:s}=await import(\"@reown/appkit/core\");return s};var z=Object.defineProperty,L=Object.defineProperties,K=Object.getOwnPropertyDescriptors,M=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,_=(s,t,e)=>t in s?z(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,v=(s,t)=>{for(var e in t||(t={}))Q.call(t,e)&&_(s,e,t[e]);if(M)for(var e of M(t))V.call(t,e)&&_(s,e,t[e]);return s},w=(s,t)=>L(s,K(t)),p=(s,t,e)=>_(s,typeof t!=\"symbol\"?t+\"\":t,e);function I(s){return Number(s[0].split(\":\")[1])}function E(s){return`0x${s.toString(16)}`}function G(s){const{chains:t,optionalChains:e,methods:n,optionalMethods:i,events:a,optionalEvents:o,rpcMap:u}=s;if(!y(t))throw new Error(\"Invalid chains\");const c={chains:t,methods:n||f,events:a||C,rpcMap:v({},t.length?{[I(t)]:u[I(t)]}:{})},l=a?.filter(d=>!C.includes(d)),r=n?.filter(d=>!f.includes(d));if(!e&&!o&&!i&&!(l!=null&&l.length)&&!(r!=null&&r.length))return{required:t.length?c:void 0};const m=l?.length&&r?.length||!e,h={chains:[...new Set(m?c.chains.concat(e||[]):e)],methods:[...new Set(c.methods.concat(i!=null&&i.length?i:A))],events:[...new Set(c.events.concat(o!=null&&o.length?o:P))],rpcMap:u};return{required:t.length?c:void 0,optional:e.length?h:void 0}}class b{constructor(){p(this,\"events\",new j),p(this,\"namespace\",\"eip155\"),p(this,\"accounts\",[]),p(this,\"signer\"),p(this,\"chainId\",1),p(this,\"modal\"),p(this,\"rpc\"),p(this,\"STORAGE_KEY\",q),p(this,\"on\",(t,e)=>(this.events.on(t,e),this)),p(this,\"once\",(t,e)=>(this.events.once(t,e),this)),p(this,\"removeListener\",(t,e)=>(this.events.removeListener(t,e),this)),p(this,\"off\",(t,e)=>(this.events.off(t,e),this)),p(this,\"parseAccount\",t=>this.isCompatibleChainId(t)?this.parseAccountId(t).address:t),this.signer={},this.rpc={}}static async init(t){const e=new b;return await e.initialize(t),e}async request(t,e){return await this.signer.request(t,this.formatChainId(this.chainId),e)}sendAsync(t,e,n){this.signer.sendAsync(t,e,this.formatChainId(this.chainId),n)}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:\"eth_requestAccounts\"})}async connect(t){var e;if(!this.signer.client)throw new Error(\"Provider not initialized. Call init() first\");this.loadConnectOpts(t);const{required:n,optional:i}=G(this.rpc);try{const a=await new Promise(async(u,c)=>{var l,r;this.rpc.showQrModal&&((l=this.modal)==null||l.open(),(r=this.modal)==null||r.subscribeState(h=>{!h.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),c(new Error(\"Connection request reset. Please try again.\")))}));const m=t!=null&&t.scopedProperties?{[this.namespace]:t.scopedProperties}:void 0;await this.signer.connect(w(v({namespaces:v({},n&&{[this.namespace]:n})},i&&{optionalNamespaces:{[this.namespace]:i}}),{pairingTopic:t?.pairingTopic,scopedProperties:m})).then(h=>{u(h)}).catch(h=>{var d;(d=this.modal)==null||d.showErrorMessage(\"Unable to connect\"),c(new Error(h.message))})});if(!a)return;const o=O(a.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:o),this.setAccounts(o),this.events.emit(\"connect\",{chainId:E(this.chainId)})}catch(a){throw this.signer.logger.error(a),a}finally{(e=this.modal)==null||e.close()}}async authenticate(t,e){var n;if(!this.signer.client)throw new Error(\"Provider not initialized. Call init() first\");this.loadConnectOpts({chains:t?.chains});try{const i=await new Promise(async(o,u)=>{var c,l;this.rpc.showQrModal&&((c=this.modal)==null||c.open(),(l=this.modal)==null||l.subscribeState(r=>{!r.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),u(new Error(\"Connection request reset. Please try again.\")))})),await this.signer.authenticate(w(v({},t),{chains:this.rpc.chains}),e).then(r=>{o(r)}).catch(r=>{var m;(m=this.modal)==null||m.showErrorMessage(\"Unable to connect\"),u(new Error(r.message))})}),a=i.session;if(a){const o=O(a.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:o),this.setAccounts(o),this.events.emit(\"connect\",{chainId:E(this.chainId)})}return i}catch(i){throw this.signer.logger.error(i),i}finally{(n=this.modal)==null||n.close()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on(\"session_event\",t=>{const{params:e}=t,{event:n}=e;n.name===\"accountsChanged\"?(this.accounts=this.parseAccounts(n.data),this.events.emit(\"accountsChanged\",this.accounts)):n.name===\"chainChanged\"?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit(\"session_event\",t)}),this.signer.on(\"accountsChanged\",t=>{this.accounts=this.parseAccounts(t),this.events.emit(\"accountsChanged\",this.accounts)}),this.signer.on(\"chainChanged\",t=>{const e=parseInt(t);this.chainId=e,this.events.emit(\"chainChanged\",E(this.chainId)),this.persist()}),this.signer.on(\"session_update\",t=>{this.events.emit(\"session_update\",t)}),this.signer.on(\"session_delete\",t=>{this.reset(),this.events.emit(\"session_delete\",t),this.events.emit(\"disconnect\",w(v({},x(\"USER_DISCONNECTED\")),{data:t.topic,name:\"USER_DISCONNECTED\"}))}),this.signer.on(\"display_uri\",t=>{this.events.emit(\"display_uri\",t)})}switchEthereumChain(t){this.request({method:\"wallet_switchEthereumChain\",params:[{chainId:t.toString(16)}]})}isCompatibleChainId(t){return typeof t==\"string\"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(\":\")[1])}setChainIds(t){const e=t.filter(n=>this.isCompatibleChainId(n)).map(n=>this.parseChainId(n));e.length&&(this.chainId=e[0],this.events.emit(\"chainChanged\",E(this.chainId)),this.persist())}setChainId(t){if(this.isCompatibleChainId(t)){const e=this.parseChainId(t);this.chainId=e,this.switchEthereumChain(e)}}parseAccountId(t){const[e,n,i]=t.split(\":\");return{chainId:`${e}:${n}`,address:i}}setAccounts(t){this.accounts=t.filter(e=>this.parseChainId(this.parseAccountId(e).chainId)===this.chainId).map(e=>this.parseAccountId(e).address),this.events.emit(\"accountsChanged\",this.accounts)}getRpcConfig(t){var e,n;const i=(e=t?.chains)!=null?e:[],a=(n=t?.optionalChains)!=null?n:[],o=i.concat(a);if(!o.length)throw new Error(\"No chains specified in either `chains` or `optionalChains`\");const u=i.length?t?.methods||f:[],c=i.length?t?.events||C:[],l=t?.optionalMethods||[],r=t?.optionalEvents||[],m=t?.rpcMap||this.buildRpcMap(o,t.projectId),h=t?.qrModalOptions||void 0;return{chains:i?.map(d=>this.formatChainId(d)),optionalChains:a.map(d=>this.formatChainId(d)),methods:u,events:c,optionalMethods:l,optionalEvents:r,rpcMap:m,showQrModal:!!(t!=null&&t.showQrModal),qrModalOptions:h,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,e){const n={};return t.forEach(i=>{n[i]=this.getRpcUrl(i,e)}),n}async initialize(t){if(this.rpc=this.getRpcConfig(t),this.chainId=this.rpc.chains.length?I(this.rpc.chains):I(this.rpc.optionalChains),this.signer=await N.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:t.disableProviderPing,relayUrl:t.relayUrl,storage:t.storage,storageOptions:t.storageOptions,customStoragePrefix:t.customStoragePrefix,telemetryEnabled:t.telemetryEnabled,logger:t.logger}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let e;try{const n=await D(),{convertWCMToAppKitOptions:i}=await Promise.resolve().then(function(){return nt}),a=i(w(v({},this.rpc.qrModalOptions),{chains:[...new Set([...this.rpc.chains,...this.rpc.optionalChains])],metadata:this.rpc.metadata,projectId:this.rpc.projectId}));if(!a.networks.length)throw new Error(\"No networks found for WalletConnect\\xB7\");e=n(w(v({},a),{universalProvider:this.signer,manualWCControl:!0}))}catch(n){throw console.warn(n),new Error(\"To use QR modal, please install @reown/appkit package\")}if(e)try{this.modal=e}catch(n){throw this.signer.logger.error(n),new Error(\"Could not generate WalletConnectModal Instance\")}}}loadConnectOpts(t){if(!t)return;const{chains:e,optionalChains:n,rpcMap:i}=t;e&&y(e)&&(this.rpc.chains=e.map(a=>this.formatChainId(a)),e.forEach(a=>{this.rpc.rpcMap[a]=i?.[a]||this.getRpcUrl(a)})),n&&y(n)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=n?.map(a=>this.formatChainId(a)),n.forEach(a=>{this.rpc.rpcMap[a]=i?.[a]||this.getRpcUrl(a)}))}getRpcUrl(t,e){var n;return((n=this.rpc.rpcMap)==null?void 0:n[t])||`${U}?chainId=eip155:${t}&projectId=${e||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{const t=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),e=this.session.namespaces[`${this.namespace}:${t}`]?this.session.namespaces[`${this.namespace}:${t}`]:this.session.namespaces[this.namespace];this.setChainIds(t?[this.formatChainId(t)]:e?.accounts),this.setAccounts(e?.accounts)}catch(t){this.signer.logger.error(\"Failed to load persisted session, clearing state...\"),this.signer.logger.error(t),await this.disconnect().catch(e=>this.signer.logger.warn(e))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(t){return typeof t==\"string\"||t instanceof String?[this.parseAccount(t)]:t.map(e=>this.parseAccount(e))}}const Y=b;var H=Object.defineProperty,B=Object.defineProperties,F=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertySymbols,X=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,T=(s,t,e)=>t in s?H(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,R=(s,t)=>{for(var e in t||(t={}))X.call(t,e)&&T(s,e,t[e]);if(S)for(var e of S(t))J.call(t,e)&&T(s,e,t[e]);return s},Z=(s,t)=>B(s,F(t));function tt(s){if(s)return{\"--w3m-font-family\":s[\"--wcm-font-family\"],\"--w3m-accent\":s[\"--wcm-accent-color\"],\"--w3m-color-mix\":s[\"--wcm-background-color\"],\"--w3m-z-index\":s[\"--wcm-z-index\"]?Number(s[\"--wcm-z-index\"]):void 0,\"--w3m-qr-color\":s[\"--wcm-accent-color\"],\"--w3m-font-size-master\":s[\"--wcm-text-medium-regular-size\"],\"--w3m-border-radius-master\":s[\"--wcm-container-border-radius\"],\"--w3m-color-mix-strength\":0}}const et=s=>{const[t,e]=s.split(\":\");return W({id:e,caipNetworkId:s,chainNamespace:t,name:\"\",nativeCurrency:{name:\"\",symbol:\"\",decimals:8},rpcUrls:{default:{http:[\"https://rpc.walletconnect.org/v1\"]}}})};function st(s){var t,e,n,i,a,o,u;const c=(t=s.chains)==null?void 0:t.map(et).filter(Boolean);if(c.length===0)throw new Error(\"At least one chain must be specified\");const l=c.find(m=>{var h;return m.id===((h=s.defaultChain)==null?void 0:h.id)}),r={projectId:s.projectId,networks:c,themeMode:s.themeMode,themeVariables:tt(s.themeVariables),chainImages:s.chainImages,connectorImages:s.walletImages,defaultNetwork:l,metadata:Z(R({},s.metadata),{name:((e=s.metadata)==null?void 0:e.name)||\"WalletConnect\",description:((n=s.metadata)==null?void 0:n.description)||\"Connect to WalletConnect-compatible wallets\",url:((i=s.metadata)==null?void 0:i.url)||\"https://walletconnect.org\",icons:((a=s.metadata)==null?void 0:a.icons)||[\"https://walletconnect.org/walletconnect-logo.png\"]}),showWallets:!0,featuredWalletIds:s.explorerRecommendedWalletIds===\"NONE\"?[]:Array.isArray(s.explorerRecommendedWalletIds)?s.explorerRecommendedWalletIds:[],excludeWalletIds:s.explorerExcludedWalletIds===\"ALL\"?[]:Array.isArray(s.explorerExcludedWalletIds)?s.explorerExcludedWalletIds:[],enableEIP6963:!1,enableInjected:!1,enableCoinbase:!0,enableWalletConnect:!0,features:{email:!1,socials:!1}};if((o=s.mobileWallets)!=null&&o.length||(u=s.desktopWallets)!=null&&u.length){const m=[...(s.mobileWallets||[]).map(g=>({id:g.id,name:g.name,links:g.links})),...(s.desktopWallets||[]).map(g=>({id:g.id,name:g.name,links:{native:g.links.native,universal:g.links.universal}}))],h=[...r.featuredWalletIds||[],...r.excludeWalletIds||[]],d=m.filter(g=>!h.includes(g.id));d.length&&(r.customWallets=d)}return r}function W(s){return R({formatters:void 0,fees:void 0,serializers:void 0},s)}var nt=Object.freeze({__proto__:null,convertWCMToAppKitOptions:st,defineChain:W});export{Y as EthereumProvider,P as OPTIONAL_EVENTS,A as OPTIONAL_METHODS,C as REQUIRED_EVENTS,f as REQUIRED_METHODS,b as default};\n//# sourceMappingURL=index.es.js.map\n"],"names":["this","to","from","i","l","ar","BrowserInfo","version","os","NodeInfo","process","SearchBotDeviceInfo","BotInfo","ReactNativeInfo","ua","browser","ii","extendStatics","d","b","p","__extends","__assign","s","n","__rest","e","__decorate","c","r","__param","__metadata","__awaiter","P","__generator","_","f","y","g","v","__createBinding","o","m","k","k2","__exportStar","__values","__read","__spread","__spreadArrays","a","j","__await","__asyncGenerator","q","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","delay_1","delay","require$$0","require$$1","require$$2","watch","require$$3","require$$4","cjs","icons","name","description","fn","size","size_","string","encoder","toBytes","h","le","crypto","pad","R","x","B","yParityOrV","recoveryBit","base","ALPHABET","xc","encode","decode","basex","En","fe","De","gn","it","_t","yn","de","Bn","he","Cn","u","D","xn","wt","St","mn","_n","Sn","vn","In","Un","Tn","Fn","Nn","Ln","On","Hn","zn","Mn","qn","$n","kn","Rn","jn","Zn","Gn","Vn","Yn","Q","An","w","S","F","z","I","O","ot","tt","st","at","L","Ct","At","Kn","Jn","vt","be","Wn","It","Ut","Tt","Xn","Ft","pe","K","we","Ee","Pn","Et","ge","Nt","W","ye","Lt","Qn","ft","tr","er","nr","Ot","xe","M","N","nt","rr","Ht","Be","Ce","H","or","J","Ae","sr","ir","ur","cr","fr","Dr","me","_e","Se","gt","zt","ve","Mt","dr","hr","qt","Ie","$t","lr","br","pr","G","yt","wr","Er","gr","yr","E","C","A","U","T","$","V","Y","Z","X","et","pt","re","oe","mt","se","ie","ue","ce","ae","Dn","dn","hn","ln","ee","ne","un","cn","an","kt","Ue","xr","Te","Br","Cr","Ar","mr","_r","Sr","vr","Rt","jt","Zt","ut","Dt","Gt","xt","Vt","Yt","Jt","dt","Kt","Wt","Ne","Xt","Le","Oe","Ir","Ur","Tr","He","Fr","Nr","ze","Hr","Lr","Or","Bt","zr","ht","Mr","qr","$r","kr","Rr","jr","Zr","Gr","Vr","Yr","Jr","Kr","Wr","Xr","Pr","Qr","eo","no","ro","oo","so","io","uo","co","ao","fo","Do","ho","lo","bo","po","wo","Eo","Me","go","yo","xo","Bo","Co","Ao","mo","$e","qe","_o","So","vo","Io","Pt","Uo","ke","To","Fo","No","Lo","Oo","Ho","zo","Mo","qo","$o","ko","Re","je","Ze","Qt","Ro","Ge","jo","Ve","Zo","Go","Vo","Ye","Yo","Je","Jo","Ko","Wo","Ke","We","Xe","te","Pe","ct","rt","lt","pn","bt","wn","Qe","en","nn","rn","on","sn","Po","bn","fromString","toString","alphabet","base2","base8","base10","base16","base32","base36","base64","base256emoji","bases","Xo","ei","ni","ri","oi","si","fi","li","gi","yi","mi","wi","bi","Ei","vi","xi","Si","Oi","Ai","Bi","Ii","Ni","Ui","Ti","Ri","_i","$i","Li","ji","Ci","Pi","ki","Vi","Mi","Di","qi","Ki","Fi","zi","ts","es","Fe","bs","vs","xs","Os","As","Is","Ns","Ts","Ls","Cs","Ps","ks","Vs","Ms","Ds","qs","Zs","tn","keys","format","transmit","level","global","cs","De.generateKeyPair","De.encodeIss","ls","De.signJWT","us","ds","gs","hs","ps","ys","ms","fs","Fs","Xi","Zi","Qi","ws","Yi","_s","Es","Ss","Gi","Rs","Ks","Bs","is","ss","$s","zs","rs","ns","js","Us","as","Ji","Wi","Hi","globalThis","exports","split","fetch"],"mappings":"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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]}