const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["chunks/secp256k1-DZocU3FW.js","chunks/page-dQ9JVnW5.js","chunks/_virtual_wxt-plugins-BmVIaedU.js","assets/page-Ct60yFcd.css","chunks/events-DQ172AOg.js","chunks/index-GNIBJyRi.js","chunks/core-C6BKi5VB.js"])))=>i.map(i=>d[i]);
import{_ as Yu,au as Sd}from"./page-dQ9JVnW5.js";import{K as yo,aV as Od,M as bt}from"./_virtual_wxt-plugins-BmVIaedU.js";import{r as Pd}from"./events-DQ172AOg.js";import{c as $d,a as Ad,k as xd,d as Cd,s as Td,g as Wo}from"./index-GNIBJyRi.js";var Ye=Pd();const mo=yo(Ye);var Go=function(r,e,t){if(t||arguments.length===2)for(var i=0,s=e.length,n;i<s;i++)(n||!(i in e))&&(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return r.concat(n||Array.prototype.slice.call(e))},Rd=(function(){function r(e,t,i){this.name=e,this.version=t,this.os=i,this.type="browser"}return r})(),Nd=(function(){function r(e){this.version=e,this.type="node",this.name="node",this.os=process.platform}return r})(),Bd=(function(){function r(e,t,i,s){this.name=e,this.version=t,this.os=i,this.bot=s,this.type="bot-device"}return r})(),jd=(function(){function r(){this.type="bot",this.bot=!0,this.name="bot",this.version=null,this.os=null}return r})(),Ud=(function(){function r(){this.type="react-native",this.name="react-native",this.version=null,this.os=null}return r})(),Ld=/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/,Fd=/(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,Yo=3,qd=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["edge-ios",/EdgiOS\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/EdgA?\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["pie",/^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],["pie",/^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],["netfront",/^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FB[AS]V\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["curl",/^curl\/([0-9\.]+)$/],["searchbot",Ld]],Jo=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Windows CE",/Windows CE|WinCE|Microsoft Pocket Internet Explorer/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/]];function kd(r){return typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new Ud:typeof navigator<"u"?zd(navigator.userAgent):Vd()}function Md(r){return r!==""&&qd.reduce(function(e,t){var i=t[0],s=t[1];if(e)return e;var n=s.exec(r);return!!n&&[i,n]},!1)}function zd(r){var e=Md(r);if(!e)return null;var t=e[0],i=e[1];if(t==="searchbot")return new jd;var s=i[1]&&i[1].split(".").join("_").split("_").slice(0,3);s?s.length<Yo&&(s=Go(Go([],s,!0),Kd(Yo-s.length),!0)):s=[];var n=s.join("."),o=Hd(r),a=Fd.exec(r);return a&&a[1]?new Bd(t,n,o,a[1]):new Rd(t,n,o)}function Hd(r){for(var e=0,t=Jo.length;e<t;e++){var i=Jo[e],s=i[0],n=i[1],o=n.exec(r);if(o)return s}return null}function Vd(){var r=typeof process<"u"&&process.version;return r?new Nd(process.version.slice(1)):null}function Kd(r){for(var e=[],t=0;t<r;t++)e.push("0");return e}var qs={};/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */var An=function(r,e){return An=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var s in i)i.hasOwnProperty(s)&&(t[s]=i[s])},An(r,e)};function Wd(r,e){An(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var xn=function(){return xn=Object.assign||function(e){for(var t,i=1,s=arguments.length;i<s;i++){t=arguments[i];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},xn.apply(this,arguments)};function Gd(r,e){var t={};for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&e.indexOf(i)<0&&(t[i]=r[i]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,i=Object.getOwnPropertySymbols(r);s<i.length;s++)e.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(r,i[s])&&(t[i[s]]=r[i[s]]);return t}function Yd(r,e,t,i){var s=arguments.length,n=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(r,e,t,i);else for(var a=r.length-1;a>=0;a--)(o=r[a])&&(n=(s<3?o(n):s>3?o(e,t,n):o(e,t))||n);return s>3&&n&&Object.defineProperty(e,t,n),n}function Jd(r,e){return function(t,i){e(t,i,r)}}function Zd(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function Qd(r,e,t,i){function s(n){return n instanceof t?n:new t(function(o){o(n)})}return new(t||(t=Promise))(function(n,o){function a(h){try{u(i.next(h))}catch(l){o(l)}}function c(h){try{u(i.throw(h))}catch(l){o(l)}}function u(h){h.done?n(h.value):s(h.value).then(a,c)}u((i=i.apply(r,e||[])).next())})}function Xd(r,e){var t={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,s,n,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(h){return c([u,h])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;t;)try{if(i=1,s&&(n=u[0]&2?s.return:u[0]?s.throw||((n=s.return)&&n.call(s),0):s.next)&&!(n=n.call(s,u[1])).done)return n;switch(s=0,n&&(u=[u[0]&2,n.value]),u[0]){case 0:case 1:n=u;break;case 4:return t.label++,{value:u[1],done:!1};case 5:t.label++,s=u[1],u=[0];continue;case 7:u=t.ops.pop(),t.trys.pop();continue;default:if(n=t.trys,!(n=n.length>0&&n[n.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!n||u[1]>n[0]&&u[1]<n[3])){t.label=u[1];break}if(u[0]===6&&t.label<n[1]){t.label=n[1],n=u;break}if(n&&t.label<n[2]){t.label=n[2],t.ops.push(u);break}n[2]&&t.ops.pop(),t.trys.pop();continue}u=e.call(r,t)}catch(h){u=[6,h],s=0}finally{i=n=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function ep(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}function tp(r,e){for(var t in r)t!=="default"&&!e.hasOwnProperty(t)&&(e[t]=r[t])}function Cn(r){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&r[e],i=0;if(t)return t.call(r);if(r&&typeof r.length=="number")return{next:function(){return r&&i>=r.length&&(r=void 0),{value:r&&r[i++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ju(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var i=t.call(r),s,n=[],o;try{for(;(e===void 0||e-- >0)&&!(s=i.next()).done;)n.push(s.value)}catch(a){o={error:a}}finally{try{s&&!s.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return n}function rp(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(Ju(arguments[e]));return r}function ip(){for(var r=0,e=0,t=arguments.length;e<t;e++)r+=arguments[e].length;for(var i=Array(r),s=0,e=0;e<t;e++)for(var n=arguments[e],o=0,a=n.length;o<a;o++,s++)i[s]=n[o];return i}function vi(r){return this instanceof vi?(this.v=r,this):new vi(r)}function sp(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=t.apply(r,e||[]),s,n=[];return s={},o("next"),o("throw"),o("return"),s[Symbol.asyncIterator]=function(){return this},s;function o(d){i[d]&&(s[d]=function(f){return new Promise(function(p,g){n.push([d,f,p,g])>1||a(d,f)})})}function a(d,f){try{c(i[d](f))}catch(p){l(n[0][3],p)}}function c(d){d.value instanceof vi?Promise.resolve(d.value.v).then(u,h):l(n[0][2],d)}function u(d){a("next",d)}function h(d){a("throw",d)}function l(d,f){d(f),n.shift(),n.length&&a(n[0][0],n[0][1])}}function np(r){var e,t;return e={},i("next"),i("throw",function(s){throw s}),i("return"),e[Symbol.iterator]=function(){return this},e;function i(s,n){e[s]=r[s]?function(o){return(t=!t)?{value:vi(r[s](o)),done:s==="return"}:n?n(o):o}:n}}function op(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof Cn=="function"?Cn(r):r[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(n){t[n]=r[n]&&function(o){return new Promise(function(a,c){o=r[n](o),s(a,c,o.done,o.value)})}}function s(n,o,a,c){Promise.resolve(c).then(function(u){n({value:u,done:a})},o)}}function ap(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function cp(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)Object.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e.default=r,e}function up(r){return r&&r.__esModule?r:{default:r}}function hp(r,e){if(!e.has(r))throw new TypeError("attempted to get private field on non-instance");return e.get(r)}function lp(r,e,t){if(!e.has(r))throw new TypeError("attempted to set private field on non-instance");return e.set(r,t),t}const dp=Object.freeze(Object.defineProperty({__proto__:null,get __assign(){return xn},__asyncDelegator:np,__asyncGenerator:sp,__asyncValues:op,__await:vi,__awaiter:Qd,__classPrivateFieldGet:hp,__classPrivateFieldSet:lp,__createBinding:ep,__decorate:Yd,__exportStar:tp,__extends:Wd,__generator:Xd,__importDefault:up,__importStar:cp,__makeTemplateObject:ap,__metadata:Zd,__param:Jd,__read:Ju,__rest:Gd,__spread:rp,__spreadArrays:ip,__values:Cn},Symbol.toStringTag,{value:"Module"})),Pi=Od(dp);var ks={},ti={},Zo;function pp(){if(Zo)return ti;Zo=1,Object.defineProperty(ti,"__esModule",{value:!0}),ti.delay=void 0;function r(e){return new Promise(t=>{setTimeout(()=>{t(!0)},e)})}return ti.delay=r,ti}var Gt={},Ms={},Yt={},Qo;function fp(){return Qo||(Qo=1,Object.defineProperty(Yt,"__esModule",{value:!0}),Yt.ONE_THOUSAND=Yt.ONE_HUNDRED=void 0,Yt.ONE_HUNDRED=100,Yt.ONE_THOUSAND=1e3),Yt}var zs={},Xo;function gp(){return Xo||(Xo=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.ONE_YEAR=r.FOUR_WEEKS=r.THREE_WEEKS=r.TWO_WEEKS=r.ONE_WEEK=r.THIRTY_DAYS=r.SEVEN_DAYS=r.FIVE_DAYS=r.THREE_DAYS=r.ONE_DAY=r.TWENTY_FOUR_HOURS=r.TWELVE_HOURS=r.SIX_HOURS=r.THREE_HOURS=r.ONE_HOUR=r.SIXTY_MINUTES=r.THIRTY_MINUTES=r.TEN_MINUTES=r.FIVE_MINUTES=r.ONE_MINUTE=r.SIXTY_SECONDS=r.THIRTY_SECONDS=r.TEN_SECONDS=r.FIVE_SECONDS=r.ONE_SECOND=void 0,r.ONE_SECOND=1,r.FIVE_SECONDS=5,r.TEN_SECONDS=10,r.THIRTY_SECONDS=30,r.SIXTY_SECONDS=60,r.ONE_MINUTE=r.SIXTY_SECONDS,r.FIVE_MINUTES=r.ONE_MINUTE*5,r.TEN_MINUTES=r.ONE_MINUTE*10,r.THIRTY_MINUTES=r.ONE_MINUTE*30,r.SIXTY_MINUTES=r.ONE_MINUTE*60,r.ONE_HOUR=r.SIXTY_MINUTES,r.THREE_HOURS=r.ONE_HOUR*3,r.SIX_HOURS=r.ONE_HOUR*6,r.TWELVE_HOURS=r.ONE_HOUR*12,r.TWENTY_FOUR_HOURS=r.ONE_HOUR*24,r.ONE_DAY=r.TWENTY_FOUR_HOURS,r.THREE_DAYS=r.ONE_DAY*3,r.FIVE_DAYS=r.ONE_DAY*5,r.SEVEN_DAYS=r.ONE_DAY*7,r.THIRTY_DAYS=r.ONE_DAY*30,r.ONE_WEEK=r.SEVEN_DAYS,r.TWO_WEEKS=r.ONE_WEEK*2,r.THREE_WEEKS=r.ONE_WEEK*3,r.FOUR_WEEKS=r.ONE_WEEK*4,r.ONE_YEAR=r.ONE_DAY*365})(zs)),zs}var ea;function Zu(){return ea||(ea=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0});const e=Pi;e.__exportStar(fp(),r),e.__exportStar(gp(),r)})(Ms)),Ms}var ta;function yp(){if(ta)return Gt;ta=1,Object.defineProperty(Gt,"__esModule",{value:!0}),Gt.fromMiliseconds=Gt.toMiliseconds=void 0;const r=Zu();function e(i){return i*r.ONE_THOUSAND}Gt.toMiliseconds=e;function t(i){return Math.floor(i/r.ONE_THOUSAND)}return Gt.fromMiliseconds=t,Gt}var ra;function mp(){return ra||(ra=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0});const e=Pi;e.__exportStar(pp(),r),e.__exportStar(yp(),r)})(ks)),ks}var mr={},ia;function wp(){if(ia)return mr;ia=1,Object.defineProperty(mr,"__esModule",{value:!0}),mr.Watch=void 0;class r{constructor(){this.timestamps=new Map}start(t){if(this.timestamps.has(t))throw new Error(`Watch already started for label: ${t}`);this.timestamps.set(t,{started:Date.now()})}stop(t){const i=this.get(t);if(typeof i.elapsed<"u")throw new Error(`Watch already stopped for label: ${t}`);const s=Date.now()-i.started;this.timestamps.set(t,{started:i.started,elapsed:s})}get(t){const i=this.timestamps.get(t);if(typeof i>"u")throw new Error(`No timestamp found for label: ${t}`);return i}elapsed(t){const i=this.get(t);return i.elapsed||Date.now()-i.started}}return mr.Watch=r,mr.default=r,mr}var Hs={},ri={},sa;function bp(){if(sa)return ri;sa=1,Object.defineProperty(ri,"__esModule",{value:!0}),ri.IWatch=void 0;class r{}return ri.IWatch=r,ri}var na;function vp(){return na||(na=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0}),Pi.__exportStar(bp(),r)})(Hs)),Hs}var oa;function Ep(){return oa||(oa=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0});const e=Pi;e.__exportStar(mp(),r),e.__exportStar(wp(),r),e.__exportStar(vp(),r),e.__exportStar(Zu(),r)})(qs)),qs}var U=Ep(),re={},aa;function Qu(){if(aa)return re;aa=1,Object.defineProperty(re,"__esModule",{value:!0}),re.getLocalStorage=re.getLocalStorageOrThrow=re.getCrypto=re.getCryptoOrThrow=re.getLocation=re.getLocationOrThrow=re.getNavigator=re.getNavigatorOrThrow=re.getDocument=re.getDocumentOrThrow=re.getFromWindowOrThrow=re.getFromWindow=void 0;function r(d){let f;return typeof window<"u"&&typeof window[d]<"u"&&(f=window[d]),f}re.getFromWindow=r;function e(d){const f=r(d);if(!f)throw new Error(`${d} is not defined in Window`);return f}re.getFromWindowOrThrow=e;function t(){return e("document")}re.getDocumentOrThrow=t;function i(){return r("document")}re.getDocument=i;function s(){return e("navigator")}re.getNavigatorOrThrow=s;function n(){return r("navigator")}re.getNavigator=n;function o(){return e("location")}re.getLocationOrThrow=o;function a(){return r("location")}re.getLocation=a;function c(){return e("crypto")}re.getCryptoOrThrow=c;function u(){return r("crypto")}re.getCrypto=u;function h(){return e("localStorage")}re.getLocalStorageOrThrow=h;function l(){return r("localStorage")}return re.getLocalStorage=l,re}var Bt=Qu(),ii={},ca;function _p(){if(ca)return ii;ca=1,Object.defineProperty(ii,"__esModule",{value:!0}),ii.getWindowMetadata=void 0;const r=Qu();function e(){let t,i;try{t=r.getDocumentOrThrow(),i=r.getLocationOrThrow()}catch{return null}function s(){const f=t.getElementsByTagName("link"),p=[];for(let g=0;g<f.length;g++){const w=f[g],E=w.getAttribute("rel");if(E&&E.toLowerCase().indexOf("icon")>-1){const b=w.getAttribute("href");if(b)if(b.toLowerCase().indexOf("https:")===-1&&b.toLowerCase().indexOf("http:")===-1&&b.indexOf("//")!==0){let _=i.protocol+"//"+i.host;if(b.indexOf("/")===0)_+=b;else{const C=i.pathname.split("/");C.pop();const T=C.join("/");_+=T+"/"+b}p.push(_)}else if(b.indexOf("//")===0){const _=i.protocol+b;p.push(_)}else p.push(b)}}return p}function n(...f){const p=t.getElementsByTagName("meta");for(let g=0;g<p.length;g++){const w=p[g],E=["itemprop","property","name"].map(b=>w.getAttribute(b)).filter(b=>b?f.includes(b):!1);if(E.length&&E){const b=w.getAttribute("content");if(b)return b}}return""}function o(){let f=n("name","og:site_name","og:title","twitter:title");return f||(f=t.title),f}function a(){return n("description","og:description","twitter:description","keywords")}const c=o(),u=a(),h=i.origin,l=s();return{description:u,url:h,icons:l,name:c}}return ii.getWindowMetadata=e,ii}var Ip=_p();function Ei(r,{strict:e=!0}={}){return!r||typeof r!="string"?!1:e?/^0x[0-9a-fA-F]*$/.test(r):r.startsWith("0x")}function ua(r){return Ei(r,{strict:!1})?Math.ceil((r.length-2)/2):r.length}const Xu="2.23.2";let Vs={getDocsUrl:({docsBaseUrl:r,docsPath:e="",docsSlug:t})=>e?`${r??"https://viem.sh"}${e}${t?`#${t}`:""}`:void 0,version:`viem@${Xu}`};class ar extends Error{constructor(e,t={}){const i=t.cause instanceof ar?t.cause.details:t.cause?.message?t.cause.message:t.details,s=t.cause instanceof ar&&t.cause.docsPath||t.docsPath,n=Vs.getDocsUrl?.({...t,docsPath:s}),o=[e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...n?[`Docs: ${n}`]:[],...i?[`Details: ${i}`]:[],...Vs.version?[`Version: ${Vs.version}`]:[]].join(`
`);super(o,t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=i,this.docsPath=s,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=Xu}walk(e){return eh(this,e)}}function eh(r,e){return e?.(r)?r:r&&typeof r=="object"&&"cause"in r&&r.cause!==void 0?eh(r.cause,e):e?null:r}class th extends ar{constructor({size:e,targetSize:t,type:i}){super(`${i.charAt(0).toUpperCase()}${i.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:"SizeExceedsPaddingSizeError"})}}function Gr(r,{dir:e,size:t=32}={}){return typeof r=="string"?Dp(r,{dir:e,size:t}):Sp(r,{dir:e,size:t})}function Dp(r,{dir:e,size:t=32}={}){if(t===null)return r;const i=r.replace("0x","");if(i.length>t*2)throw new th({size:Math.ceil(i.length/2),targetSize:t,type:"hex"});return`0x${i[e==="right"?"padEnd":"padStart"](t*2,"0")}`}function Sp(r,{dir:e,size:t=32}={}){if(t===null)return r;if(r.length>t)throw new th({size:r.length,targetSize:t,type:"bytes"});const i=new Uint8Array(t);for(let s=0;s<t;s++){const n=e==="right";i[n?s:t-s-1]=r[n?s:r.length-s-1]}return i}class Op extends ar{constructor({max:e,min:t,signed:i,size:s,value:n}){super(`Number "${n}" is not in safe ${s?`${s*8}-bit ${i?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class Pp extends ar{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function Yr(r,{size:e}){if(ua(r)>e)throw new Pp({givenSize:ua(r),maxSize:e})}function Tn(r,e={}){const{signed:t}=e;e.size&&Yr(r,{size:e.size});const i=BigInt(r);if(!t)return i;const s=(r.length-2)/2,n=(1n<<BigInt(s)*8n-1n)-1n;return i<=n?i:i-BigInt(`0x${"f".padStart(s*2,"f")}`)-1n}function $p(r,e={}){return Number(Tn(r,e))}const Ap=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function Rn(r,e={}){return typeof r=="number"||typeof r=="bigint"?ih(r,e):typeof r=="string"?Tp(r,e):typeof r=="boolean"?xp(r,e):rh(r,e)}function xp(r,e={}){const t=`0x${Number(r)}`;return typeof e.size=="number"?(Yr(t,{size:e.size}),Gr(t,{size:e.size})):t}function rh(r,e={}){let t="";for(let s=0;s<r.length;s++)t+=Ap[r[s]];const i=`0x${t}`;return typeof e.size=="number"?(Yr(i,{size:e.size}),Gr(i,{dir:"right",size:e.size})):i}function ih(r,e={}){const{signed:t,size:i}=e,s=BigInt(r);let n;i?t?n=(1n<<BigInt(i)*8n-1n)-1n:n=2n**(BigInt(i)*8n)-1n:typeof r=="number"&&(n=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof n=="bigint"&&t?-n-1n:0;if(n&&s>n||s<o){const c=typeof r=="bigint"?"n":"";throw new Op({max:n?`${n}${c}`:void 0,min:`${o}${c}`,signed:t,size:i,value:`${r}${c}`})}const a=`0x${(t&&s<0?(1n<<BigInt(i*8))+BigInt(s):s).toString(16)}`;return i?Gr(a,{size:i}):a}const Cp=new TextEncoder;function Tp(r,e={}){const t=Cp.encode(r);return rh(t,e)}const Rp=new TextEncoder;function Np(r,e={}){return typeof r=="number"||typeof r=="bigint"?jp(r,e):typeof r=="boolean"?Bp(r,e):Ei(r)?sh(r,e):nh(r,e)}function Bp(r,e={}){const t=new Uint8Array(1);return t[0]=Number(r),typeof e.size=="number"?(Yr(t,{size:e.size}),Gr(t,{size:e.size})):t}const Dt={zero:48,nine:57,A:65,F:70,a:97,f:102};function ha(r){if(r>=Dt.zero&&r<=Dt.nine)return r-Dt.zero;if(r>=Dt.A&&r<=Dt.F)return r-(Dt.A-10);if(r>=Dt.a&&r<=Dt.f)return r-(Dt.a-10)}function sh(r,e={}){let t=r;e.size&&(Yr(t,{size:e.size}),t=Gr(t,{dir:"right",size:e.size}));let i=t.slice(2);i.length%2&&(i=`0${i}`);const s=i.length/2,n=new Uint8Array(s);for(let o=0,a=0;o<s;o++){const c=ha(i.charCodeAt(a++)),u=ha(i.charCodeAt(a++));if(c===void 0||u===void 0)throw new ar(`Invalid byte sequence ("${i[a-2]}${i[a-1]}" in "${i}").`);n[o]=c*16+u}return n}function jp(r,e){const t=ih(r,e);return sh(t)}function nh(r,e={}){const t=Rp.encode(r);return typeof e.size=="number"?(Yr(t,{size:e.size}),Gr(t,{dir:"right",size:e.size})):t}function us(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function Up(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Es(r,...e){if(!Up(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function VO(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");us(r.outputLen),us(r.blockLen)}function la(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function Lp(r,e){Es(r);const t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}const Fi=BigInt(2**32-1),da=BigInt(32);function Fp(r,e=!1){return e?{h:Number(r&Fi),l:Number(r>>da&Fi)}:{h:Number(r>>da&Fi)|0,l:Number(r&Fi)|0}}function qp(r,e=!1){let t=new Uint32Array(r.length),i=new Uint32Array(r.length);for(let s=0;s<r.length;s++){const{h:n,l:o}=Fp(r[s],e);[t[s],i[s]]=[n,o]}return[t,i]}const kp=(r,e,t)=>r<<t|e>>>32-t,Mp=(r,e,t)=>e<<t|r>>>32-t,zp=(r,e,t)=>e<<t-32|r>>>64-t,Hp=(r,e,t)=>r<<t-32|e>>>64-t,wr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Vp(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function KO(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function WO(r,e){return r<<32-e|r>>>e}const pa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Kp(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function fa(r){for(let e=0;e<r.length;e++)r[e]=Kp(r[e])}function Wp(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function oh(r){return typeof r=="string"&&(r=Wp(r)),Es(r),r}function GO(...r){let e=0;for(let i=0;i<r.length;i++){const s=r[i];Es(s),e+=s.length}const t=new Uint8Array(e);for(let i=0,s=0;i<r.length;i++){const n=r[i];t.set(n,s),s+=n.length}return t}class Gp{clone(){return this._cloneInto()}}function Yp(r){const e=i=>r().update(oh(i)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function YO(r=32){if(wr&&typeof wr.getRandomValues=="function")return wr.getRandomValues(new Uint8Array(r));if(wr&&typeof wr.randomBytes=="function")return wr.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}const ah=[],ch=[],uh=[],Jp=BigInt(0),si=BigInt(1),Zp=BigInt(2),Qp=BigInt(7),Xp=BigInt(256),ef=BigInt(113);for(let r=0,e=si,t=1,i=0;r<24;r++){[t,i]=[i,(2*t+3*i)%5],ah.push(2*(5*i+t)),ch.push((r+1)*(r+2)/2%64);let s=Jp;for(let n=0;n<7;n++)e=(e<<si^(e>>Qp)*ef)%Xp,e&Zp&&(s^=si<<(si<<BigInt(n))-si);uh.push(s)}const[tf,rf]=qp(uh,!0),ga=(r,e,t)=>t>32?zp(r,e,t):kp(r,e,t),ya=(r,e,t)=>t>32?Hp(r,e,t):Mp(r,e,t);function sf(r,e=24){const t=new Uint32Array(10);for(let i=24-e;i<24;i++){for(let o=0;o<10;o++)t[o]=r[o]^r[o+10]^r[o+20]^r[o+30]^r[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=t[c],h=t[c+1],l=ga(u,h,1)^t[a],d=ya(u,h,1)^t[a+1];for(let f=0;f<50;f+=10)r[o+f]^=l,r[o+f+1]^=d}let s=r[2],n=r[3];for(let o=0;o<24;o++){const a=ch[o],c=ga(s,n,a),u=ya(s,n,a),h=ah[o];s=r[h],n=r[h+1],r[h]=c,r[h+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=r[o+a];for(let a=0;a<10;a++)r[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}r[0]^=tf[i],r[1]^=rf[i]}t.fill(0)}class wo extends Gp{constructor(e,t,i,s=!1,n=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=i,this.enableXOF=s,this.rounds=n,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,us(i),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Vp(this.state)}keccak(){pa||fa(this.state32),sf(this.state32,this.rounds),pa||fa(this.state32),this.posOut=0,this.pos=0}update(e){la(this);const{blockLen:t,state:i}=this;e=oh(e);const s=e.length;for(let n=0;n<s;){const o=Math.min(t-this.pos,s-n);for(let a=0;a<o;a++)i[this.pos++]^=e[n++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:i,blockLen:s}=this;e[i]^=t,(t&128)!==0&&i===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){la(this,!1),Es(e),this.finish();const t=this.state,{blockLen:i}=this;for(let s=0,n=e.length;s<n;){this.posOut>=i&&this.keccak();const o=Math.min(i-this.posOut,n-s);e.set(t.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return us(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Lp(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:t,suffix:i,outputLen:s,rounds:n,enableXOF:o}=this;return e||(e=new wo(t,i,s,o,n)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=n,e.suffix=i,e.outputLen=s,e.enableXOF=o,e.destroyed=this.destroyed,e}}const nf=(r,e,t)=>Yp(()=>new wo(e,r,t)),of=nf(1,136,256/8);function hh(r,e){const t=e||"hex",i=of(Ei(r,{strict:!1})?Np(r):r);return t==="bytes"?i:Rn(i)}class af extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const i=this.keys().next().value;i&&this.delete(i)}return this}}const Ks=new af(8192);function cf(r,e){if(Ks.has(`${r}.${e}`))return Ks.get(`${r}.${e}`);const t=r.substring(2).toLowerCase(),i=hh(nh(t),"bytes"),s=t.split("");for(let o=0;o<40;o+=2)i[o>>1]>>4>=8&&s[o]&&(s[o]=s[o].toUpperCase()),(i[o>>1]&15)>=8&&s[o+1]&&(s[o+1]=s[o+1].toUpperCase());const n=`0x${s.join("")}`;return Ks.set(`${r}.${e}`,n),n}function uf(r){const e=hh(`0x${r.substring(4)}`).substring(26);return cf(`0x${e}`)}async function hf({hash:r,signature:e}){const t=Ei(r)?r:Rn(r),{secp256k1:i}=await Yu(async()=>{const{secp256k1:o}=await import("./secp256k1-DZocU3FW.js");return{secp256k1:o}},__vite__mapDeps([0,1,2,3,4,5]));return`0x${(()=>{if(typeof e=="object"&&"r"in e&&"s"in e){const{r:u,s:h,v:l,yParity:d}=e,f=Number(d??l),p=ma(f);return new i.Signature(Tn(u),Tn(h)).addRecoveryBit(p)}const o=Ei(e)?e:Rn(e),a=$p(`0x${o.slice(130)}`),c=ma(a);return i.Signature.fromCompact(o.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(t.substring(2)).toHex(!1)}`}function ma(r){if(r===0||r===1)return r;if(r===27)return 0;if(r===28)return 1;throw new Error("Invalid yParityOrV value")}async function lf({hash:r,signature:e}){return uf(await hf({hash:r,signature:e}))}const df=r=>JSON.stringify(r,(e,t)=>typeof t=="bigint"?t.toString()+"n":t),pf=r=>{const e=/([\[:])?(\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,t=r.replace(e,'$1"$2n"$3');return JSON.parse(t,(i,s)=>typeof s=="string"&&s.match(/^\d+n$/)?BigInt(s.substring(0,s.length-1)):s)};function cr(r){if(typeof r!="string")throw new Error(`Cannot safe json parse value of type ${typeof r}`);try{return pf(r)}catch{return r}}function jt(r){return typeof r=="string"?r:df(r)||""}function ff(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function lh(r,...e){if(!ff(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function wa(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function gf(r,e){lh(r);const t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}const br=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ws=r=>new DataView(r.buffer,r.byteOffset,r.byteLength);function yf(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function dh(r){return typeof r=="string"&&(r=yf(r)),lh(r),r}let mf=class{clone(){return this._cloneInto()}};function wf(r){const e=i=>r().update(dh(i)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function ph(r=32){if(br&&typeof br.getRandomValues=="function")return br.getRandomValues(new Uint8Array(r));if(br&&typeof br.randomBytes=="function")return br.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function bf(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);const s=BigInt(32),n=BigInt(4294967295),o=Number(t>>s&n),a=Number(t&n),c=i?4:0,u=i?0:4;r.setUint32(e+c,o,i),r.setUint32(e+u,a,i)}let vf=class extends mf{constructor(e,t,i,s){super(),this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Ws(this.buffer)}update(e){wa(this);const{view:t,buffer:i,blockLen:s}=this;e=dh(e);const n=e.length;for(let o=0;o<n;){const a=Math.min(s-this.pos,n-o);if(a===s){const c=Ws(e);for(;s<=n-o;o+=s)this.process(c,o);continue}i.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){wa(this),gf(e,this),this.finished=!0;const{buffer:t,view:i,blockLen:s,isLE:n}=this;let{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(i,0),o=0);for(let l=o;l<s;l++)t[l]=0;bf(i,s-8,BigInt(this.length*8),n),this.process(i,0);const a=Ws(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,h=this.get();if(u>h.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,h[l],n)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:i,length:s,finished:n,destroyed:o,pos:a}=this;return e.length=s,e.pos=a,e.finished=n,e.destroyed=o,s%t&&e.buffer.set(i),e}};const qi=BigInt(2**32-1),Nn=BigInt(32);function fh(r,e=!1){return e?{h:Number(r&qi),l:Number(r>>Nn&qi)}:{h:Number(r>>Nn&qi)|0,l:Number(r&qi)|0}}function Ef(r,e=!1){let t=new Uint32Array(r.length),i=new Uint32Array(r.length);for(let s=0;s<r.length;s++){const{h:n,l:o}=fh(r[s],e);[t[s],i[s]]=[n,o]}return[t,i]}const _f=(r,e)=>BigInt(r>>>0)<<Nn|BigInt(e>>>0),If=(r,e,t)=>r>>>t,Df=(r,e,t)=>r<<32-t|e>>>t,Sf=(r,e,t)=>r>>>t|e<<32-t,Of=(r,e,t)=>r<<32-t|e>>>t,Pf=(r,e,t)=>r<<64-t|e>>>t-32,$f=(r,e,t)=>r>>>t-32|e<<64-t,Af=(r,e)=>e,xf=(r,e)=>r,Cf=(r,e,t)=>r<<t|e>>>32-t,Tf=(r,e,t)=>e<<t|r>>>32-t,Rf=(r,e,t)=>e<<t-32|r>>>64-t,Nf=(r,e,t)=>r<<t-32|e>>>64-t;function Bf(r,e,t,i){const s=(e>>>0)+(i>>>0);return{h:r+t+(s/2**32|0)|0,l:s|0}}const jf=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),Uf=(r,e,t,i)=>e+t+i+(r/2**32|0)|0,Lf=(r,e,t,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0),Ff=(r,e,t,i,s)=>e+t+i+s+(r/2**32|0)|0,qf=(r,e,t,i,s)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0)+(s>>>0),kf=(r,e,t,i,s,n)=>e+t+i+s+n+(r/2**32|0)|0,K={fromBig:fh,split:Ef,toBig:_f,shrSH:If,shrSL:Df,rotrSH:Sf,rotrSL:Of,rotrBH:Pf,rotrBL:$f,rotr32H:Af,rotr32L:xf,rotlSH:Cf,rotlSL:Tf,rotlBH:Rf,rotlBL:Nf,add:Bf,add3L:jf,add3H:Uf,add4L:Lf,add4H:Ff,add5H:kf,add5L:qf},[Mf,zf]=K.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(r=>BigInt(r))),Ut=new Uint32Array(80),Lt=new Uint32Array(80);let Hf=class extends vf{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:t,Bh:i,Bl:s,Ch:n,Cl:o,Dh:a,Dl:c,Eh:u,El:h,Fh:l,Fl:d,Gh:f,Gl:p,Hh:g,Hl:w}=this;return[e,t,i,s,n,o,a,c,u,h,l,d,f,p,g,w]}set(e,t,i,s,n,o,a,c,u,h,l,d,f,p,g,w){this.Ah=e|0,this.Al=t|0,this.Bh=i|0,this.Bl=s|0,this.Ch=n|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=h|0,this.Fh=l|0,this.Fl=d|0,this.Gh=f|0,this.Gl=p|0,this.Hh=g|0,this.Hl=w|0}process(e,t){for(let _=0;_<16;_++,t+=4)Ut[_]=e.getUint32(t),Lt[_]=e.getUint32(t+=4);for(let _=16;_<80;_++){const C=Ut[_-15]|0,T=Lt[_-15]|0,v=K.rotrSH(C,T,1)^K.rotrSH(C,T,8)^K.shrSH(C,T,7),I=K.rotrSL(C,T,1)^K.rotrSL(C,T,8)^K.shrSL(C,T,7),P=Ut[_-2]|0,S=Lt[_-2]|0,B=K.rotrSH(P,S,19)^K.rotrBH(P,S,61)^K.shrSH(P,S,6),N=K.rotrSL(P,S,19)^K.rotrBL(P,S,61)^K.shrSL(P,S,6),j=K.add4L(I,N,Lt[_-7],Lt[_-16]),M=K.add4H(j,v,B,Ut[_-7],Ut[_-16]);Ut[_]=M|0,Lt[_]=j|0}let{Ah:i,Al:s,Bh:n,Bl:o,Ch:a,Cl:c,Dh:u,Dl:h,Eh:l,El:d,Fh:f,Fl:p,Gh:g,Gl:w,Hh:E,Hl:b}=this;for(let _=0;_<80;_++){const C=K.rotrSH(l,d,14)^K.rotrSH(l,d,18)^K.rotrBH(l,d,41),T=K.rotrSL(l,d,14)^K.rotrSL(l,d,18)^K.rotrBL(l,d,41),v=l&f^~l&g,I=d&p^~d&w,P=K.add5L(b,T,I,zf[_],Lt[_]),S=K.add5H(P,E,C,v,Mf[_],Ut[_]),B=P|0,N=K.rotrSH(i,s,28)^K.rotrBH(i,s,34)^K.rotrBH(i,s,39),j=K.rotrSL(i,s,28)^K.rotrBL(i,s,34)^K.rotrBL(i,s,39),M=i&n^i&a^n&a,$=s&o^s&c^o&c;E=g|0,b=w|0,g=f|0,w=p|0,f=l|0,p=d|0,{h:l,l:d}=K.add(u|0,h|0,S|0,B|0),u=a|0,h=c|0,a=n|0,c=o|0,n=i|0,o=s|0;const y=K.add3L(B,j,$);i=K.add3H(y,S,N,M),s=y|0}({h:i,l:s}=K.add(this.Ah|0,this.Al|0,i|0,s|0)),{h:n,l:o}=K.add(this.Bh|0,this.Bl|0,n|0,o|0),{h:a,l:c}=K.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:h}=K.add(this.Dh|0,this.Dl|0,u|0,h|0),{h:l,l:d}=K.add(this.Eh|0,this.El|0,l|0,d|0),{h:f,l:p}=K.add(this.Fh|0,this.Fl|0,f|0,p|0),{h:g,l:w}=K.add(this.Gh|0,this.Gl|0,g|0,w|0),{h:E,l:b}=K.add(this.Hh|0,this.Hl|0,E|0,b|0),this.set(i,s,n,o,a,c,u,h,l,d,f,p,g,w,E,b)}roundClean(){Ut.fill(0),Lt.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 Vf=wf(()=>new Hf);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const bo=BigInt(0),gh=BigInt(1),Kf=BigInt(2);function vo(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Eo(r){if(!vo(r))throw new Error("Uint8Array expected")}function Gs(r,e){if(typeof e!="boolean")throw new Error(r+" boolean expected, got "+e)}const Wf=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function _o(r){Eo(r);let e="";for(let t=0;t<r.length;t++)e+=Wf[r[t]];return e}function yh(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?bo:BigInt("0x"+r)}const St={_0:48,_9:57,A:65,F:70,a:97,f:102};function ba(r){if(r>=St._0&&r<=St._9)return r-St._0;if(r>=St.A&&r<=St.F)return r-(St.A-10);if(r>=St.a&&r<=St.f)return r-(St.a-10)}function mh(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);const e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const i=new Uint8Array(t);for(let s=0,n=0;s<t;s++,n+=2){const o=ba(r.charCodeAt(n)),a=ba(r.charCodeAt(n+1));if(o===void 0||a===void 0){const c=r[n]+r[n+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+n)}i[s]=o*16+a}return i}function Gf(r){return yh(_o(r))}function rs(r){return Eo(r),yh(_o(Uint8Array.from(r).reverse()))}function wh(r,e){return mh(r.toString(16).padStart(e*2,"0"))}function Bn(r,e){return wh(r,e).reverse()}function Ot(r,e,t){let i;if(typeof e=="string")try{i=mh(e)}catch(n){throw new Error(r+" must be hex string or Uint8Array, cause: "+n)}else if(vo(e))i=Uint8Array.from(e);else throw new Error(r+" must be hex string or Uint8Array");const s=i.length;if(typeof t=="number"&&s!==t)throw new Error(r+" of length "+t+" expected, got "+s);return i}function va(...r){let e=0;for(let i=0;i<r.length;i++){const s=r[i];Eo(s),e+=s.length}const t=new Uint8Array(e);for(let i=0,s=0;i<r.length;i++){const n=r[i];t.set(n,s),s+=n.length}return t}const Ys=r=>typeof r=="bigint"&&bo<=r;function Yf(r,e,t){return Ys(r)&&Ys(e)&&Ys(t)&&e<=r&&r<t}function ni(r,e,t,i){if(!Yf(e,t,i))throw new Error("expected valid "+r+": "+t+" <= n < "+i+", got "+e)}function Jf(r){let e;for(e=0;r>bo;r>>=gh,e+=1);return e}const Zf=r=>(Kf<<BigInt(r-1))-gh,Qf={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||vo(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function Io(r,e,t={}){const i=(s,n,o)=>{const a=Qf[n];if(typeof a!="function")throw new Error("invalid validator function");const c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error("param "+String(s)+" is invalid. Expected "+n+", got "+c)};for(const[s,n]of Object.entries(e))i(s,n,!1);for(const[s,n]of Object.entries(t))i(s,n,!0);return r}function Ea(r){const e=new WeakMap;return(t,...i)=>{const s=e.get(t);if(s!==void 0)return s;const n=r(t,...i);return e.set(t,n),n}}const be=BigInt(0),ce=BigInt(1),er=BigInt(2),Xf=BigInt(3),jn=BigInt(4),_a=BigInt(5),Ia=BigInt(8);function pe(r,e){const t=r%e;return t>=be?t:e+t}function eg(r,e,t){if(e<be)throw new Error("invalid exponent, negatives unsupported");if(t<=be)throw new Error("invalid modulus");if(t===ce)return be;let i=ce;for(;e>be;)e&ce&&(i=i*r%t),r=r*r%t,e>>=ce;return i}function dt(r,e,t){let i=r;for(;e-- >be;)i*=i,i%=t;return i}function Da(r,e){if(r===be)throw new Error("invert: expected non-zero number");if(e<=be)throw new Error("invert: expected positive modulus, got "+e);let t=pe(r,e),i=e,s=be,n=ce;for(;t!==be;){const o=i/t,a=i%t,c=s-n*o;i=t,t=a,s=n,n=c}if(i!==ce)throw new Error("invert: does not exist");return pe(s,e)}function tg(r){const e=(r-ce)/er;let t,i,s;for(t=r-ce,i=0;t%er===be;t/=er,i++);for(s=er;s<r&&eg(s,e,r)!==r-ce;s++)if(s>1e3)throw new Error("Cannot find square root: likely non-prime P");if(i===1){const o=(r+ce)/jn;return function(a,c){const u=a.pow(c,o);if(!a.eql(a.sqr(u),c))throw new Error("Cannot find square root");return u}}const n=(t+ce)/er;return function(o,a){if(o.pow(a,e)===o.neg(o.ONE))throw new Error("Cannot find square root");let c=i,u=o.pow(o.mul(o.ONE,s),t),h=o.pow(a,n),l=o.pow(a,t);for(;!o.eql(l,o.ONE);){if(o.eql(l,o.ZERO))return o.ZERO;let d=1;for(let p=o.sqr(l);d<c&&!o.eql(p,o.ONE);d++)p=o.sqr(p);const f=o.pow(u,ce<<BigInt(c-d-1));u=o.sqr(f),h=o.mul(h,f),l=o.mul(l,u),c=d}return h}}function rg(r){if(r%jn===Xf){const e=(r+ce)/jn;return function(t,i){const s=t.pow(i,e);if(!t.eql(t.sqr(s),i))throw new Error("Cannot find square root");return s}}if(r%Ia===_a){const e=(r-_a)/Ia;return function(t,i){const s=t.mul(i,er),n=t.pow(s,e),o=t.mul(i,n),a=t.mul(t.mul(o,er),n),c=t.mul(o,t.sub(a,t.ONE));if(!t.eql(t.sqr(c),i))throw new Error("Cannot find square root");return c}}return tg(r)}const ig=(r,e)=>(pe(r,e)&ce)===ce,sg=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ng(r){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=sg.reduce((i,s)=>(i[s]="function",i),e);return Io(r,t)}function og(r,e,t){if(t<be)throw new Error("invalid exponent, negatives unsupported");if(t===be)return r.ONE;if(t===ce)return e;let i=r.ONE,s=e;for(;t>be;)t&ce&&(i=r.mul(i,s)),s=r.sqr(s),t>>=ce;return i}function ag(r,e){const t=new Array(e.length),i=e.reduce((n,o,a)=>r.is0(o)?n:(t[a]=n,r.mul(n,o)),r.ONE),s=r.inv(i);return e.reduceRight((n,o,a)=>r.is0(o)?n:(t[a]=r.mul(n,t[a]),r.mul(n,o)),s),t}function bh(r,e){const t=e!==void 0?e:r.toString(2).length,i=Math.ceil(t/8);return{nBitLength:t,nByteLength:i}}function vh(r,e,t=!1,i={}){if(r<=be)throw new Error("invalid field: expected ORDER > 0, got "+r);const{nBitLength:s,nByteLength:n}=bh(r,e);if(n>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:r,isLE:t,BITS:s,BYTES:n,MASK:Zf(s),ZERO:be,ONE:ce,create:c=>pe(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return be<=c&&c<r},is0:c=>c===be,isOdd:c=>(c&ce)===ce,neg:c=>pe(-c,r),eql:(c,u)=>c===u,sqr:c=>pe(c*c,r),add:(c,u)=>pe(c+u,r),sub:(c,u)=>pe(c-u,r),mul:(c,u)=>pe(c*u,r),pow:(c,u)=>og(a,c,u),div:(c,u)=>pe(c*Da(u,r),r),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Da(c,r),sqrt:i.sqrt||(c=>(o||(o=rg(r)),o(a,c))),invertBatch:c=>ag(a,c),cmov:(c,u,h)=>h?u:c,toBytes:c=>t?Bn(c,n):wh(c,n),fromBytes:c=>{if(c.length!==n)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+c.length);return t?rs(c):Gf(c)}});return Object.freeze(a)}const Sa=BigInt(0),ki=BigInt(1);function Js(r,e){const t=e.negate();return r?t:e}function Eh(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function Zs(r,e){Eh(r,e);const t=Math.ceil(e/r)+1,i=2**(r-1);return{windows:t,windowSize:i}}function cg(r,e){if(!Array.isArray(r))throw new Error("array expected");r.forEach((t,i)=>{if(!(t instanceof e))throw new Error("invalid point at index "+i)})}function ug(r,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((t,i)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+i)})}const Qs=new WeakMap,_h=new WeakMap;function Xs(r){return _h.get(r)||1}function hg(r,e){return{constTimeNegate:Js,hasPrecomputes(t){return Xs(t)!==1},unsafeLadder(t,i,s=r.ZERO){let n=t;for(;i>Sa;)i&ki&&(s=s.add(n)),n=n.double(),i>>=ki;return s},precomputeWindow(t,i){const{windows:s,windowSize:n}=Zs(i,e),o=[];let a=t,c=a;for(let u=0;u<s;u++){c=a,o.push(c);for(let h=1;h<n;h++)c=c.add(a),o.push(c);a=c.double()}return o},wNAF(t,i,s){const{windows:n,windowSize:o}=Zs(t,e);let a=r.ZERO,c=r.BASE;const u=BigInt(2**t-1),h=2**t,l=BigInt(t);for(let d=0;d<n;d++){const f=d*o;let p=Number(s&u);s>>=l,p>o&&(p-=h,s+=ki);const g=f,w=f+Math.abs(p)-1,E=d%2!==0,b=p<0;p===0?c=c.add(Js(E,i[g])):a=a.add(Js(b,i[w]))}return{p:a,f:c}},wNAFUnsafe(t,i,s,n=r.ZERO){const{windows:o,windowSize:a}=Zs(t,e),c=BigInt(2**t-1),u=2**t,h=BigInt(t);for(let l=0;l<o;l++){const d=l*a;if(s===Sa)break;let f=Number(s&c);if(s>>=h,f>a&&(f-=u,s+=ki),f===0)continue;let p=i[d+Math.abs(f)-1];f<0&&(p=p.negate()),n=n.add(p)}return n},getPrecomputes(t,i,s){let n=Qs.get(i);return n||(n=this.precomputeWindow(i,t),t!==1&&Qs.set(i,s(n))),n},wNAFCached(t,i,s){const n=Xs(t);return this.wNAF(n,this.getPrecomputes(n,t,s),i)},wNAFCachedUnsafe(t,i,s,n){const o=Xs(t);return o===1?this.unsafeLadder(t,i,n):this.wNAFUnsafe(o,this.getPrecomputes(o,t,s),i,n)},setWindowSize(t,i){Eh(i,e),_h.set(t,i),Qs.delete(t)}}}function lg(r,e,t,i){if(cg(t,r),ug(i,e),t.length!==i.length)throw new Error("arrays of points and scalars must have equal length");const s=r.ZERO,n=Jf(BigInt(t.length)),o=n>12?n-3:n>4?n-2:n?2:1,a=(1<<o)-1,c=new Array(a+1).fill(s),u=Math.floor((e.BITS-1)/o)*o;let h=s;for(let l=u;l>=0;l-=o){c.fill(s);for(let f=0;f<i.length;f++){const p=i[f],g=Number(p>>BigInt(l)&BigInt(a));c[g]=c[g].add(t[f])}let d=s;for(let f=c.length-1,p=s;f>0;f--)p=p.add(c[f]),d=d.add(p);if(h=h.add(d),l!==0)for(let f=0;f<o;f++)h=h.double()}return h}function dg(r){return ng(r.Fp),Io(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...bh(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}const st=BigInt(0),Be=BigInt(1),Mi=BigInt(2),pg=BigInt(8),fg={zip215:!0};function gg(r){const e=dg(r);return Io(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function yg(r){const e=gg(r),{Fp:t,n:i,prehash:s,hash:n,randomBytes:o,nByteLength:a,h:c}=e,u=Mi<<BigInt(a*8)-Be,h=t.create,l=vh(e.n,e.nBitLength),d=e.uvRatio||((y,m)=>{try{return{isValid:!0,value:t.sqrt(y*t.inv(m))}}catch{return{isValid:!1,value:st}}}),f=e.adjustScalarBytes||(y=>y),p=e.domain||((y,m,D)=>{if(Gs("phflag",D),m.length||D)throw new Error("Contexts/pre-hash are not supported");return y});function g(y,m){ni("coordinate "+y,m,st,u)}function w(y){if(!(y instanceof _))throw new Error("ExtendedPoint expected")}const E=Ea((y,m)=>{const{ex:D,ey:A,ez:O}=y,x=y.is0();m==null&&(m=x?pg:t.inv(O));const F=h(D*m),k=h(A*m),z=h(O*m);if(x)return{x:st,y:Be};if(z!==Be)throw new Error("invZ was invalid");return{x:F,y:k}}),b=Ea(y=>{const{a:m,d:D}=e;if(y.is0())throw new Error("bad point: ZERO");const{ex:A,ey:O,ez:x,et:F}=y,k=h(A*A),z=h(O*O),q=h(x*x),H=h(q*q),V=h(k*m),ne=h(q*h(V+z)),ee=h(H+h(D*h(k*z)));if(ne!==ee)throw new Error("bad point: equation left != right (1)");const Y=h(A*O),Ae=h(x*F);if(Y!==Ae)throw new Error("bad point: equation left != right (2)");return!0});class _{constructor(m,D,A,O){this.ex=m,this.ey=D,this.ez=A,this.et=O,g("x",m),g("y",D),g("z",A),g("t",O),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(m){if(m instanceof _)throw new Error("extended point not allowed");const{x:D,y:A}=m||{};return g("x",D),g("y",A),new _(D,A,Be,h(D*A))}static normalizeZ(m){const D=t.invertBatch(m.map(A=>A.ez));return m.map((A,O)=>A.toAffine(D[O])).map(_.fromAffine)}static msm(m,D){return lg(_,l,m,D)}_setWindowSize(m){v.setWindowSize(this,m)}assertValidity(){b(this)}equals(m){w(m);const{ex:D,ey:A,ez:O}=this,{ex:x,ey:F,ez:k}=m,z=h(D*k),q=h(x*O),H=h(A*k),V=h(F*O);return z===q&&H===V}is0(){return this.equals(_.ZERO)}negate(){return new _(h(-this.ex),this.ey,this.ez,h(-this.et))}double(){const{a:m}=e,{ex:D,ey:A,ez:O}=this,x=h(D*D),F=h(A*A),k=h(Mi*h(O*O)),z=h(m*x),q=D+A,H=h(h(q*q)-x-F),V=z+F,ne=V-k,ee=z-F,Y=h(H*ne),Ae=h(V*ee),Ee=h(H*ee),Ce=h(ne*V);return new _(Y,Ae,Ce,Ee)}add(m){w(m);const{a:D,d:A}=e,{ex:O,ey:x,ez:F,et:k}=this,{ex:z,ey:q,ez:H,et:V}=m;if(D===BigInt(-1)){const qo=h((x-O)*(q+z)),ko=h((x+O)*(q-z)),Fs=h(ko-qo);if(Fs===st)return this.double();const Mo=h(F*Mi*V),zo=h(k*Mi*H),Ho=zo+Mo,Vo=ko+qo,Ko=zo-Mo,Ed=h(Ho*Fs),_d=h(Vo*Ko),Id=h(Ho*Ko),Dd=h(Fs*Vo);return new _(Ed,_d,Dd,Id)}const ne=h(O*z),ee=h(x*q),Y=h(k*A*V),Ae=h(F*H),Ee=h((O+x)*(z+q)-ne-ee),Ce=Ae-Y,Je=Ae+Y,It=h(ee-D*ne),yr=h(Ee*Ce),wd=h(Je*It),bd=h(Ee*It),vd=h(Ce*Je);return new _(yr,wd,vd,bd)}subtract(m){return this.add(m.negate())}wNAF(m){return v.wNAFCached(this,m,_.normalizeZ)}multiply(m){const D=m;ni("scalar",D,Be,i);const{p:A,f:O}=this.wNAF(D);return _.normalizeZ([A,O])[0]}multiplyUnsafe(m,D=_.ZERO){const A=m;return ni("scalar",A,st,i),A===st?T:this.is0()||A===Be?this:v.wNAFCachedUnsafe(this,A,_.normalizeZ,D)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return v.unsafeLadder(this,i).is0()}toAffine(m){return E(this,m)}clearCofactor(){const{h:m}=e;return m===Be?this:this.multiplyUnsafe(m)}static fromHex(m,D=!1){const{d:A,a:O}=e,x=t.BYTES;m=Ot("pointHex",m,x),Gs("zip215",D);const F=m.slice(),k=m[x-1];F[x-1]=k&-129;const z=rs(F),q=D?u:t.ORDER;ni("pointHex.y",z,st,q);const H=h(z*z),V=h(H-Be),ne=h(A*H-O);let{isValid:ee,value:Y}=d(V,ne);if(!ee)throw new Error("Point.fromHex: invalid y coordinate");const Ae=(Y&Be)===Be,Ee=(k&128)!==0;if(!D&&Y===st&&Ee)throw new Error("Point.fromHex: x=0 and x_0=1");return Ee!==Ae&&(Y=h(-Y)),_.fromAffine({x:Y,y:z})}static fromPrivateKey(m){return S(m).point}toRawBytes(){const{x:m,y:D}=this.toAffine(),A=Bn(D,t.BYTES);return A[A.length-1]|=m&Be?128:0,A}toHex(){return _o(this.toRawBytes())}}_.BASE=new _(e.Gx,e.Gy,Be,h(e.Gx*e.Gy)),_.ZERO=new _(st,Be,Be,st);const{BASE:C,ZERO:T}=_,v=hg(_,a*8);function I(y){return pe(y,i)}function P(y){return I(rs(y))}function S(y){const m=t.BYTES;y=Ot("private key",y,m);const D=Ot("hashed private key",n(y),2*m),A=f(D.slice(0,m)),O=D.slice(m,2*m),x=P(A),F=C.multiply(x),k=F.toRawBytes();return{head:A,prefix:O,scalar:x,point:F,pointBytes:k}}function B(y){return S(y).pointBytes}function N(y=new Uint8Array,...m){const D=va(...m);return P(n(p(D,Ot("context",y),!!s)))}function j(y,m,D={}){y=Ot("message",y),s&&(y=s(y));const{prefix:A,scalar:O,pointBytes:x}=S(m),F=N(D.context,A,y),k=C.multiply(F).toRawBytes(),z=N(D.context,k,x,y),q=I(F+z*O);ni("signature.s",q,st,i);const H=va(k,Bn(q,t.BYTES));return Ot("result",H,t.BYTES*2)}const M=fg;function $(y,m,D,A=M){const{context:O,zip215:x}=A,F=t.BYTES;y=Ot("signature",y,2*F),m=Ot("message",m),D=Ot("publicKey",D,F),x!==void 0&&Gs("zip215",x),s&&(m=s(m));const k=rs(y.slice(F,2*F));let z,q,H;try{z=_.fromHex(D,x),q=_.fromHex(y.slice(0,F),x),H=C.multiplyUnsafe(k)}catch{return!1}if(!x&&z.isSmallOrder())return!1;const V=N(O,q.toRawBytes(),z.toRawBytes(),m);return q.add(z.multiplyUnsafe(V)).subtract(H).clearCofactor().equals(_.ZERO)}return C._setWindowSize(8),{CURVE:e,getPublicKey:B,sign:j,verify:$,ExtendedPoint:_,utils:{getExtendedPublicKey:S,randomPrivateKey:()=>o(t.BYTES),precompute(y=8,m=_.BASE){return m._setWindowSize(y),m.multiply(BigInt(3)),m}}}}BigInt(0),BigInt(1);const Do=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Oa=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt(0);const mg=BigInt(1),Pa=BigInt(2);BigInt(3);const wg=BigInt(5),bg=BigInt(8);function vg(r){const e=BigInt(10),t=BigInt(20),i=BigInt(40),s=BigInt(80),n=Do,o=r*r%n*r%n,a=dt(o,Pa,n)*o%n,c=dt(a,mg,n)*r%n,u=dt(c,wg,n)*c%n,h=dt(u,e,n)*u%n,l=dt(h,t,n)*h%n,d=dt(l,i,n)*l%n,f=dt(d,s,n)*d%n,p=dt(f,s,n)*d%n,g=dt(p,e,n)*u%n;return{pow_p_5_8:dt(g,Pa,n)*r%n,b2:o}}function Eg(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function _g(r,e){const t=Do,i=pe(e*e*e,t),s=pe(i*i*e,t),n=vg(r*s).pow_p_5_8;let o=pe(r*i*n,t);const a=pe(e*o*o,t),c=o,u=pe(o*Oa,t),h=a===r,l=a===pe(-r,t),d=a===pe(-r*Oa,t);return h&&(o=c),(l||d)&&(o=u),ig(o,t)&&(o=pe(-o,t)),{isValid:h||l,value:o}}const Ig=vh(Do,void 0,!0),Dg={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Ig,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:bg,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Vf,randomBytes:ph,adjustScalarBytes:Eg,uvRatio:_g},Ih=yg(Dg),Sg="EdDSA",Og="JWT",hs=".",_s="base64url",Dh="utf8",Sh="utf8",Pg=":",$g="did",Ag="key",$a="base58btc",xg="z",Cg="K36",Tg=32;function So(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function Oh(r=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?So(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function Ph(r,e){e||(e=r.reduce((s,n)=>s+n.length,0));const t=Oh(e);let i=0;for(const s of r)t.set(s,i),i+=s.length;return So(t)}function Rg(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),u=Math.log(a)/Math.log(256),h=Math.log(256)/Math.log(a);function l(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var g=0,w=0,E=0,b=p.length;E!==b&&p[E]===0;)E++,g++;for(var _=(b-E)*h+1>>>0,C=new Uint8Array(_);E!==b;){for(var T=p[E],v=0,I=_-1;(T!==0||v<w)&&I!==-1;I--,v++)T+=256*C[I]>>>0,C[I]=T%a>>>0,T=T/a>>>0;if(T!==0)throw new Error("Non-zero carry");w=v,E++}for(var P=_-w;P!==_&&C[P]===0;)P++;for(var S=c.repeat(g);P<_;++P)S+=r.charAt(C[P]);return S}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var g=0;if(p[g]!==" "){for(var w=0,E=0;p[g]===c;)w++,g++;for(var b=(p.length-g)*u+1>>>0,_=new Uint8Array(b);p[g];){var C=t[p.charCodeAt(g)];if(C===255)return;for(var T=0,v=b-1;(C!==0||T<E)&&v!==-1;v--,T++)C+=a*_[v]>>>0,_[v]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");E=T,g++}if(p[g]!==" "){for(var I=b-E;I!==b&&_[I]===0;)I++;for(var P=new Uint8Array(w+(b-I)),S=w;I!==b;)P[S++]=_[I++];return P}}}function f(p){var g=d(p);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:d,decode:f}}var Ng=Rg,Bg=Ng;const $h=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")},jg=r=>new TextEncoder().encode(r),Ug=r=>new TextDecoder().decode(r);let Lg=class{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")}},Fg=class{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 Ah(this,e)}},qg=class{constructor(e){this.decoders=e}or(e){return Ah(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 Ah=(r,e)=>new qg({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}});let kg=class{constructor(e,t,i,s){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=s,this.encoder=new Lg(e,t,i),this.decoder=new Fg(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};const Is=({name:r,prefix:e,encode:t,decode:i})=>new kg(r,e,t,i),$i=({prefix:r,name:e,alphabet:t})=>{const{encode:i,decode:s}=Bg(t,e);return Is({prefix:r,name:e,encode:i,decode:n=>$h(s(n))})},Mg=(r,e,t,i)=>{const s={};for(let h=0;h<e.length;++h)s[e[h]]=h;let n=r.length;for(;r[n-1]==="=";)--n;const o=new Uint8Array(n*t/8|0);let a=0,c=0,u=0;for(let h=0;h<n;++h){const l=s[r[h]];if(l===void 0)throw new SyntaxError(`Non-${i} character`);c=c<<t|l,a+=t,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},zg=(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},Oe=({name:r,prefix:e,bitsPerChar:t,alphabet:i})=>Is({prefix:e,name:r,encode(s){return zg(s,i,t)},decode(s){return Mg(s,i,t,r)}}),Hg=Is({prefix:"\0",name:"identity",encode:r=>Ug(r),decode:r=>jg(r)});var Vg=Object.freeze({__proto__:null,identity:Hg});const Kg=Oe({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Wg=Object.freeze({__proto__:null,base2:Kg});const Gg=Oe({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Yg=Object.freeze({__proto__:null,base8:Gg});const Jg=$i({prefix:"9",name:"base10",alphabet:"0123456789"});var Zg=Object.freeze({__proto__:null,base10:Jg});const Qg=Oe({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Xg=Oe({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ey=Object.freeze({__proto__:null,base16:Qg,base16upper:Xg});const ty=Oe({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ry=Oe({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),iy=Oe({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),sy=Oe({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),ny=Oe({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),oy=Oe({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ay=Oe({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),cy=Oe({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),uy=Oe({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var hy=Object.freeze({__proto__:null,base32:ty,base32upper:ry,base32pad:iy,base32padupper:sy,base32hex:ny,base32hexupper:oy,base32hexpad:ay,base32hexpadupper:cy,base32z:uy});const ly=$i({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),dy=$i({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var py=Object.freeze({__proto__:null,base36:ly,base36upper:dy});const fy=$i({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),gy=$i({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var yy=Object.freeze({__proto__:null,base58btc:fy,base58flickr:gy});const my=Oe({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),wy=Oe({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),by=Oe({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),vy=Oe({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ey=Object.freeze({__proto__:null,base64:my,base64pad:wy,base64url:by,base64urlpad:vy});const xh=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),_y=xh.reduce((r,e,t)=>(r[t]=e,r),[]),Iy=xh.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Dy(r){return r.reduce((e,t)=>(e+=_y[t],e),"")}function Sy(r){const e=[];for(const t of r){const i=Iy[t.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}const Oy=Is({prefix:"🚀",name:"base256emoji",encode:Dy,decode:Sy});var Py=Object.freeze({__proto__:null,base256emoji:Oy}),$y=Ch,Aa=128,Ay=-128,xy=Math.pow(2,31);function Ch(r,e,t){e=e||[],t=t||0;for(var i=t;r>=xy;)e[t++]=r&255|Aa,r/=128;for(;r&Ay;)e[t++]=r&255|Aa,r>>>=7;return e[t]=r|0,Ch.bytes=t-i+1,e}var Cy=Un,Ty=128,xa=127;function Un(r,i){var t=0,i=i||0,s=0,n=i,o,a=r.length;do{if(n>=a)throw Un.bytes=0,new RangeError("Could not decode varint");o=r[n++],t+=s<28?(o&xa)<<s:(o&xa)*Math.pow(2,s),s+=7}while(o>=Ty);return Un.bytes=n-i,t}var Ry=Math.pow(2,7),Ny=Math.pow(2,14),By=Math.pow(2,21),jy=Math.pow(2,28),Uy=Math.pow(2,35),Ly=Math.pow(2,42),Fy=Math.pow(2,49),qy=Math.pow(2,56),ky=Math.pow(2,63),My=function(r){return r<Ry?1:r<Ny?2:r<By?3:r<jy?4:r<Uy?5:r<Ly?6:r<Fy?7:r<qy?8:r<ky?9:10},zy={encode:$y,decode:Cy,encodingLength:My},Th=zy;const Ca=(r,e,t=0)=>(Th.encode(r,e,t),e),Ta=r=>Th.encodingLength(r),Ln=(r,e)=>{const t=e.byteLength,i=Ta(r),s=i+Ta(t),n=new Uint8Array(s+t);return Ca(r,n,0),Ca(t,n,i),n.set(e,s),new Hy(r,t,e,n)};let Hy=class{constructor(e,t,i,s){this.code=e,this.size=t,this.digest=i,this.bytes=s}};const Rh=({name:r,code:e,encode:t})=>new Vy(r,e,t);let Vy=class{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?Ln(this.code,t):t.then(i=>Ln(this.code,i))}else throw Error("Unknown type, must be binary type")}};const Nh=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),Ky=Rh({name:"sha2-256",code:18,encode:Nh("SHA-256")}),Wy=Rh({name:"sha2-512",code:19,encode:Nh("SHA-512")});var Gy=Object.freeze({__proto__:null,sha256:Ky,sha512:Wy});const Bh=0,Yy="identity",jh=$h,Jy=r=>Ln(Bh,jh(r)),Zy={code:Bh,name:Yy,encode:jh,digest:Jy};var Qy=Object.freeze({__proto__:null,identity:Zy});new TextEncoder,new TextDecoder;const Ra={...Vg,...Wg,...Yg,...Zg,...ey,...hy,...py,...yy,...Ey,...Py};({...Gy,...Qy});function Uh(r,e,t,i){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:i}}}const Na=Uh("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),en=Uh("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=Oh(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Lh={utf8:Na,"utf-8":Na,hex:Ra.base16,latin1:en,ascii:en,binary:en,...Ra};function Ds(r,e="utf8"){const t=Lh[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.buffer,r.byteOffset,r.byteLength).toString("utf8"):t.encoder.encode(r).substring(1)}function Jr(r,e="utf8"){const t=Lh[e];if(!t)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?So(globalThis.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}function Ba(r){return cr(Ds(Jr(r,_s),Dh))}function ls(r){return Ds(Jr(jt(r),Dh),_s)}function Fh(r){const e=Jr(Cg,$a),t=xg+Ds(Ph([e,r]),$a);return[$g,Ag,t].join(Pg)}function Xy(r){return Ds(r,_s)}function em(r){return Jr(r,_s)}function tm(r){return Jr([ls(r.header),ls(r.payload)].join(hs),Sh)}function rm(r){return[ls(r.header),ls(r.payload),Xy(r.signature)].join(hs)}function Fn(r){const e=r.split(hs),t=Ba(e[0]),i=Ba(e[1]),s=em(e[2]),n=Jr(e.slice(0,2).join(hs),Sh);return{header:t,payload:i,signature:s,data:n}}function ja(r=ph(Tg)){const e=Ih.getPublicKey(r);return{secretKey:Ph([r,e]),publicKey:e}}async function im(r,e,t,i,s=U.fromMiliseconds(Date.now())){const n={alg:Sg,typ:Og},o=Fh(i.publicKey),a=s+t,c={iss:o,sub:r,aud:e,iat:s,exp:a},u=tm({header:n,payload:c}),h=Ih.sign(u,i.secretKey.slice(0,32));return rm({header:n,payload:c,signature:h})}function qh(r=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}function gi(r,e){e||(e=r.reduce((s,n)=>s+n.length,0));const t=qh(e);let i=0;for(const s of r)t.set(s,i),i+=s.length;return t}function sm(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),u=Math.log(a)/Math.log(256),h=Math.log(256)/Math.log(a);function l(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var g=0,w=0,E=0,b=p.length;E!==b&&p[E]===0;)E++,g++;for(var _=(b-E)*h+1>>>0,C=new Uint8Array(_);E!==b;){for(var T=p[E],v=0,I=_-1;(T!==0||v<w)&&I!==-1;I--,v++)T+=256*C[I]>>>0,C[I]=T%a>>>0,T=T/a>>>0;if(T!==0)throw new Error("Non-zero carry");w=v,E++}for(var P=_-w;P!==_&&C[P]===0;)P++;for(var S=c.repeat(g);P<_;++P)S+=r.charAt(C[P]);return S}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var g=0;if(p[g]!==" "){for(var w=0,E=0;p[g]===c;)w++,g++;for(var b=(p.length-g)*u+1>>>0,_=new Uint8Array(b);p[g];){var C=t[p.charCodeAt(g)];if(C===255)return;for(var T=0,v=b-1;(C!==0||T<E)&&v!==-1;v--,T++)C+=a*_[v]>>>0,_[v]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");E=T,g++}if(p[g]!==" "){for(var I=b-E;I!==b&&_[I]===0;)I++;for(var P=new Uint8Array(w+(b-I)),S=w;I!==b;)P[S++]=_[I++];return P}}}function f(p){var g=d(p);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:d,decode:f}}var nm=sm,om=nm;const am=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")},cm=r=>new TextEncoder().encode(r),um=r=>new TextDecoder().decode(r);class hm{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 lm{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 kh(this,e)}}class dm{constructor(e){this.decoders=e}or(e){return kh(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 kh=(r,e)=>new dm({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}});class pm{constructor(e,t,i,s){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=s,this.encoder=new hm(e,t,i),this.decoder=new lm(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Ss=({name:r,prefix:e,encode:t,decode:i})=>new pm(r,e,t,i),Ai=({prefix:r,name:e,alphabet:t})=>{const{encode:i,decode:s}=om(t,e);return Ss({prefix:r,name:e,encode:i,decode:n=>am(s(n))})},fm=(r,e,t,i)=>{const s={};for(let h=0;h<e.length;++h)s[e[h]]=h;let n=r.length;for(;r[n-1]==="=";)--n;const o=new Uint8Array(n*t/8|0);let a=0,c=0,u=0;for(let h=0;h<n;++h){const l=s[r[h]];if(l===void 0)throw new SyntaxError(`Non-${i} character`);c=c<<t|l,a+=t,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},gm=(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},Pe=({name:r,prefix:e,bitsPerChar:t,alphabet:i})=>Ss({prefix:e,name:r,encode(s){return gm(s,i,t)},decode(s){return fm(s,i,t,r)}}),ym=Ss({prefix:"\0",name:"identity",encode:r=>um(r),decode:r=>cm(r)}),mm=Object.freeze(Object.defineProperty({__proto__:null,identity:ym},Symbol.toStringTag,{value:"Module"})),wm=Pe({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),bm=Object.freeze(Object.defineProperty({__proto__:null,base2:wm},Symbol.toStringTag,{value:"Module"})),vm=Pe({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),Em=Object.freeze(Object.defineProperty({__proto__:null,base8:vm},Symbol.toStringTag,{value:"Module"})),_m=Ai({prefix:"9",name:"base10",alphabet:"0123456789"}),Im=Object.freeze(Object.defineProperty({__proto__:null,base10:_m},Symbol.toStringTag,{value:"Module"})),Dm=Pe({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Sm=Pe({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),Om=Object.freeze(Object.defineProperty({__proto__:null,base16:Dm,base16upper:Sm},Symbol.toStringTag,{value:"Module"})),Pm=Pe({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),$m=Pe({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Am=Pe({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),xm=Pe({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Cm=Pe({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Tm=Pe({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Rm=Pe({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Nm=Pe({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Bm=Pe({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),jm=Object.freeze(Object.defineProperty({__proto__:null,base32:Pm,base32hex:Cm,base32hexpad:Rm,base32hexpadupper:Nm,base32hexupper:Tm,base32pad:Am,base32padupper:xm,base32upper:$m,base32z:Bm},Symbol.toStringTag,{value:"Module"})),Um=Ai({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Lm=Ai({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),Fm=Object.freeze(Object.defineProperty({__proto__:null,base36:Um,base36upper:Lm},Symbol.toStringTag,{value:"Module"})),qm=Ai({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),km=Ai({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),Mm=Object.freeze(Object.defineProperty({__proto__:null,base58btc:qm,base58flickr:km},Symbol.toStringTag,{value:"Module"})),zm=Pe({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Hm=Pe({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Vm=Pe({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Km=Pe({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),Wm=Object.freeze(Object.defineProperty({__proto__:null,base64:zm,base64pad:Hm,base64url:Vm,base64urlpad:Km},Symbol.toStringTag,{value:"Module"})),Mh=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),Gm=Mh.reduce((r,e,t)=>(r[t]=e,r),[]),Ym=Mh.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Jm(r){return r.reduce((e,t)=>(e+=Gm[t],e),"")}function Zm(r){const e=[];for(const t of r){const i=Ym[t.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}const Qm=Ss({prefix:"🚀",name:"base256emoji",encode:Jm,decode:Zm}),Xm=Object.freeze(Object.defineProperty({__proto__:null,base256emoji:Qm},Symbol.toStringTag,{value:"Module"}));new TextEncoder;new TextDecoder;const Ua={...mm,...bm,...Em,...Im,...Om,...jm,...Fm,...Mm,...Wm,...Xm};function zh(r,e,t,i){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:i}}}const La=zh("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),tn=zh("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=qh(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Hh={utf8:La,"utf-8":La,hex:Ua.base16,latin1:tn,ascii:tn,binary:tn,...Ua};function tt(r,e="utf8"){const t=Hh[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}`)}function qe(r,e="utf8"){const t=Hh[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.buffer,r.byteOffset,r.byteLength).toString("utf8"):t.encoder.encode(r).substring(1)}const ew={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"}};var tw={};const rw=":";function qr(r){const[e,t]=r.split(rw);return{namespace:e,reference:t}}function Fa(r,e=[]){const t=[];return Object.keys(r).forEach(i=>{if(e.length&&!e.includes(i))return;const s=r[i];t.push(...s.accounts)}),t}function Vh(r,e){return r.includes(":")?[r]:e.chains||[]}var iw=Object.defineProperty,sw=Object.defineProperties,nw=Object.getOwnPropertyDescriptors,qa=Object.getOwnPropertySymbols,ow=Object.prototype.hasOwnProperty,aw=Object.prototype.propertyIsEnumerable,ka=(r,e,t)=>e in r?iw(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ma=(r,e)=>{for(var t in e||(e={}))ow.call(e,t)&&ka(r,t,e[t]);if(qa)for(var t of qa(e))aw.call(e,t)&&ka(r,t,e[t]);return r},cw=(r,e)=>sw(r,nw(e));const uw="ReactNative",We={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},hw="js";function ds(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}function Wt(){return!Bt.getDocument()&&!!Bt.getNavigator()&&navigator.product===uw}function lw(){return Wt()&&typeof global<"u"&&typeof(global==null?void 0:global.Platform)<"u"&&(global==null?void 0:global.Platform.OS)==="android"}function dw(){return Wt()&&typeof global<"u"&&typeof(global==null?void 0:global.Platform)<"u"&&(global==null?void 0:global.Platform.OS)==="ios"}function Zr(){return!ds()&&!!Bt.getNavigator()&&!!Bt.getDocument()}function xi(){return Wt()?We.reactNative:ds()?We.node:Zr()?We.browser:We.unknown}function za(){var r;try{return Wt()&&typeof global<"u"&&typeof(global==null?void 0:global.Application)<"u"?(r=global.Application)==null?void 0:r.applicationId:void 0}catch{return}}function pw(r,e){const t=new URLSearchParams(r);for(const i of Object.keys(e).sort())if(e.hasOwnProperty(i)){const s=e[i];s!==void 0&&t.set(i,s)}return t.toString()}function fw(r){var e,t;const i=Kh();try{return r!=null&&r.url&&i.url&&new URL(r.url).host!==new URL(i.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${r.url} differs from the actual page url:${i.url}. This is probably unintended and can lead to issues.`),r.url=i.url),(e=r?.icons)!=null&&e.length&&r.icons.length>0&&(r.icons=r.icons.filter(s=>s!=="")),cw(Ma(Ma({},i),r),{url:r?.url||i.url,name:r?.name||i.name,description:r?.description||i.description,icons:(t=r?.icons)!=null&&t.length&&r.icons.length>0?r.icons:i.icons})}catch(s){return console.warn("Error populating app metadata",s),r||i}}function Kh(){return Ip.getWindowMetadata()||{name:"",description:"",url:"",icons:[""]}}function gw(){if(xi()===We.reactNative&&typeof global<"u"&&typeof(global==null?void 0:global.Platform)<"u"){const{OS:t,Version:i}=global.Platform;return[t,i].join("-")}const r=kd();if(r===null)return"unknown";const e=r.os?r.os.replace(" ","").toLowerCase():"unknown";return r.type==="browser"?[e,r.name,r.version].join("-"):[e,r.version].join("-")}function yw(){var r;const e=xi();return e===We.browser?[e,((r=Bt.getLocation())==null?void 0:r.host)||"unknown"].join(":"):e}function Wh(r,e,t){const i=gw(),s=yw();return[[r,e].join("-"),[hw,t].join("-"),i,s].join("/")}function mw({protocol:r,version:e,relayUrl:t,sdkVersion:i,auth:s,projectId:n,useOnCloseEvent:o,bundleId:a,packageName:c}){const u=t.split("?"),h=Wh(r,e,i),l={auth:s,ua:h,projectId:n,useOnCloseEvent:o,packageName:c||void 0,bundleId:a||void 0},d=pw(u[1]||"",l);return u[0]+"?"+d}function sr(r,e){return r.filter(t=>e.includes(t)).length===r.length}function qn(r){return Object.fromEntries(r.entries())}function kn(r){return new Map(Object.entries(r))}function Qt(r=U.FIVE_MINUTES,e){const t=U.toMiliseconds(r||U.FIVE_MINUTES);let i,s,n,o;return{resolve:a=>{n&&i&&(clearTimeout(n),i(a),o=Promise.resolve(a))},reject:a=>{n&&s&&(clearTimeout(n),s(a))},done:()=>new Promise((a,c)=>{if(o)return a(o);n=setTimeout(()=>{const u=new Error(e);o=Promise.reject(u),c(u)},t),i=a,s=c})}}function zt(r,e,t){return new Promise(async(i,s)=>{const n=setTimeout(()=>s(new Error(t)),e);try{const o=await r;i(o)}catch(o){s(o)}clearTimeout(n)})}function Gh(r,e){if(typeof e=="string"&&e.startsWith(`${r}:`))return e;if(r.toLowerCase()==="topic"){if(typeof e!="string")throw new Error('Value must be "string" for expirer target type: topic');return`topic:${e}`}else if(r.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: ${r}`)}function ww(r){return Gh("topic",r)}function bw(r){return Gh("id",r)}function Yh(r){const[e,t]=r.split(":"),i={id:void 0,topic:void 0};if(e==="topic"&&typeof t=="string")i.topic=t;else if(e==="id"&&Number.isInteger(Number(t)))i.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${t}`);return i}function de(r,e){return U.fromMiliseconds(Date.now()+U.toMiliseconds(r))}function kt(r){return Date.now()>=U.toMiliseconds(r)}function X(r,e){return`${r}${e?`:${e}`:""}`}function Et(r=[],e=[]){return[...new Set([...r,...e])]}async function vw({id:r,topic:e,wcDeepLink:t}){var i;try{if(!t)return;const s=typeof t=="string"?JSON.parse(t):t,n=s?.href;if(typeof n!="string")return;const o=Ew(n,r,e),a=xi();if(a===We.browser){if(!((i=Bt.getDocument())!=null&&i.hasFocus())){console.warn("Document does not have focus, skipping deeplink.");return}_w(o)}else a===We.reactNative&&typeof(global==null?void 0:global.Linking)<"u"&&await global.Linking.openURL(o)}catch(s){console.error(s)}}function Ew(r,e,t){const i=`requestId=${e}&sessionTopic=${t}`;r.endsWith("/")&&(r=r.slice(0,-1));let s=`${r}`;if(r.startsWith("https://t.me")){const n=r.includes("?")?"&startapp=":"?startapp=";s=`${s}${n}${Ow(i,!0)}`}else s=`${s}/wc?${i}`;return s}function _w(r){let e="_self";Sw()?e="_top":(Dw()||r.startsWith("https://")||r.startsWith("http://"))&&(e="_blank"),window.open(r,e,"noreferrer noopener")}async function Iw(r,e){let t="";try{if(Zr()&&(t=localStorage.getItem(e),t))return t;t=await r.getItem(e)}catch(i){console.error(i)}return t}function Ha(r,e){if(!r.includes(e))return null;const t=r.split(/([&,?,=])/),i=t.indexOf(e);return t[i+2]}function Va(){return typeof crypto<"u"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,r=>{const e=Math.random()*16|0;return(r==="x"?e:e&3|8).toString(16)})}function Oo(){return typeof process<"u"&&tw.IS_VITEST==="true"}function Dw(){return typeof window<"u"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function Sw(){try{return window.self!==window.top}catch{return!1}}function Ow(r,e=!1){const t=Buffer.from(r).toString("base64");return e?t.replace(/[=]/g,""):t}function Jh(r){return Buffer.from(r,"base64").toString("utf-8")}function Pw(r){return new Promise(e=>setTimeout(e,r))}function _i(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function $w(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Ci(r,...e){if(!$w(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function Po(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");_i(r.outputLen),_i(r.blockLen)}function kr(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function Zh(r,e){Ci(r);const t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}const zi=BigInt(2**32-1),Ka=BigInt(32);function Aw(r,e=!1){return e?{h:Number(r&zi),l:Number(r>>Ka&zi)}:{h:Number(r>>Ka&zi)|0,l:Number(r&zi)|0}}function xw(r,e=!1){let t=new Uint32Array(r.length),i=new Uint32Array(r.length);for(let s=0;s<r.length;s++){const{h:n,l:o}=Aw(r[s],e);[t[s],i[s]]=[n,o]}return[t,i]}const Cw=(r,e,t)=>r<<t|e>>>32-t,Tw=(r,e,t)=>e<<t|r>>>32-t,Rw=(r,e,t)=>e<<t-32|r>>>64-t,Nw=(r,e,t)=>r<<t-32|e>>>64-t,vr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function Bw(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function rn(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function pt(r,e){return r<<32-e|r>>>e}const Wa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function jw(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function Ga(r){for(let e=0;e<r.length;e++)r[e]=jw(r[e])}function Uw(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function Mr(r){return typeof r=="string"&&(r=Uw(r)),Ci(r),r}function Lw(...r){let e=0;for(let i=0;i<r.length;i++){const s=r[i];Ci(s),e+=s.length}const t=new Uint8Array(e);for(let i=0,s=0;i<r.length;i++){const n=r[i];t.set(n,s),s+=n.length}return t}let $o=class{clone(){return this._cloneInto()}};function Qh(r){const e=i=>r().update(Mr(i)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Qr(r=32){if(vr&&typeof vr.getRandomValues=="function")return vr.getRandomValues(new Uint8Array(r));if(vr&&typeof vr.randomBytes=="function")return vr.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}const Xh=[],el=[],tl=[],Fw=BigInt(0),oi=BigInt(1),qw=BigInt(2),kw=BigInt(7),Mw=BigInt(256),zw=BigInt(113);for(let r=0,e=oi,t=1,i=0;r<24;r++){[t,i]=[i,(2*t+3*i)%5],Xh.push(2*(5*i+t)),el.push((r+1)*(r+2)/2%64);let s=Fw;for(let n=0;n<7;n++)e=(e<<oi^(e>>kw)*zw)%Mw,e&qw&&(s^=oi<<(oi<<BigInt(n))-oi);tl.push(s)}const[Hw,Vw]=xw(tl,!0),Ya=(r,e,t)=>t>32?Rw(r,e,t):Cw(r,e,t),Ja=(r,e,t)=>t>32?Nw(r,e,t):Tw(r,e,t);function Kw(r,e=24){const t=new Uint32Array(10);for(let i=24-e;i<24;i++){for(let o=0;o<10;o++)t[o]=r[o]^r[o+10]^r[o+20]^r[o+30]^r[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=t[c],h=t[c+1],l=Ya(u,h,1)^t[a],d=Ja(u,h,1)^t[a+1];for(let f=0;f<50;f+=10)r[o+f]^=l,r[o+f+1]^=d}let s=r[2],n=r[3];for(let o=0;o<24;o++){const a=el[o],c=Ya(s,n,a),u=Ja(s,n,a),h=Xh[o];s=r[h],n=r[h+1],r[h]=c,r[h+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=r[o+a];for(let a=0;a<10;a++)r[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}r[0]^=Hw[i],r[1]^=Vw[i]}t.fill(0)}let Ww=class rl extends $o{constructor(e,t,i,s=!1,n=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=i,this.enableXOF=s,this.rounds=n,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,_i(i),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Bw(this.state)}keccak(){Wa||Ga(this.state32),Kw(this.state32,this.rounds),Wa||Ga(this.state32),this.posOut=0,this.pos=0}update(e){kr(this);const{blockLen:t,state:i}=this;e=Mr(e);const s=e.length;for(let n=0;n<s;){const o=Math.min(t-this.pos,s-n);for(let a=0;a<o;a++)i[this.pos++]^=e[n++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:i,blockLen:s}=this;e[i]^=t,(t&128)!==0&&i===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){kr(this,!1),Ci(e),this.finish();const t=this.state,{blockLen:i}=this;for(let s=0,n=e.length;s<n;){this.posOut>=i&&this.keccak();const o=Math.min(i-this.posOut,n-s);e.set(t.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return _i(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Zh(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:t,suffix:i,outputLen:s,rounds:n,enableXOF:o}=this;return e||(e=new rl(t,i,s,o,n)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=n,e.suffix=i,e.outputLen=s,e.enableXOF=o,e.destroyed=this.destroyed,e}};const Gw=(r,e,t)=>Qh(()=>new Ww(e,r,t)),Yw=Gw(1,136,256/8),Jw="https://rpc.walletconnect.org/v1";function il(r){const e=`Ethereum Signed Message:
${r.length}`,t=new TextEncoder().encode(e+r);return"0x"+Buffer.from(Yw(t)).toString("hex")}async function Zw(r,e,t,i,s,n){switch(t.t){case"eip191":return await Qw(r,e,t.s);case"eip1271":return await Xw(r,e,t.s,i,s,n);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${t.t}`)}}async function Qw(r,e,t){return(await lf({hash:il(e),signature:t})).toLowerCase()===r.toLowerCase()}async function Xw(r,e,t,i,s,n){const o=qr(i);if(!o.namespace||!o.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${i}`);try{const a="0x1626ba7e",c="0000000000000000000000000000000000000000000000000000000000000040",u="0000000000000000000000000000000000000000000000000000000000000041",h=t.substring(2),l=il(e).substring(2),d=a+l+c+u+h,f=await fetch(`${n||Jw}/?chainId=${i}&projectId=${s}`,{method:"POST",body:JSON.stringify({id:eb(),jsonrpc:"2.0",method:"eth_call",params:[{to:r,data:d},"latest"]})}),{result:p}=await f.json();return p?p.slice(0,a.length).toLowerCase()===a.toLowerCase():!1}catch(a){return console.error("isValidEip1271Signature: ",a),!1}}function eb(){return Date.now()+Math.floor(Math.random()*1e3)}function tb(r){const e=atob(r),t=new Uint8Array(e.length);for(let o=0;o<e.length;o++)t[o]=e.charCodeAt(o);const i=t[0];if(i===0)throw new Error("No signatures found");const s=1+i*64;if(t.length<s)throw new Error("Transaction data too short for claimed signature count");if(t.length<100)throw new Error("Transaction too short");const n=Buffer.from(r,"base64").slice(1,65);return Sd.encode(n)}var rb=Object.defineProperty,ib=Object.defineProperties,sb=Object.getOwnPropertyDescriptors,Za=Object.getOwnPropertySymbols,nb=Object.prototype.hasOwnProperty,ob=Object.prototype.propertyIsEnumerable,Qa=(r,e,t)=>e in r?rb(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ab=(r,e)=>{for(var t in e||(e={}))nb.call(e,t)&&Qa(r,t,e[t]);if(Za)for(var t of Za(e))ob.call(e,t)&&Qa(r,t,e[t]);return r},cb=(r,e)=>ib(r,sb(e));const ub="did:pkh:",Ao=r=>r?.split(":"),hb=r=>{const e=r&&Ao(r);if(e)return r.includes(ub)?e[3]:e[1]},Mn=r=>{const e=r&&Ao(r);if(e)return e[2]+":"+e[3]},ps=r=>{const e=r&&Ao(r);if(e)return e.pop()};async function Xa(r){const{cacao:e,projectId:t}=r,{s:i,p:s}=e,n=sl(s,s.iss),o=ps(s.iss);return await Zw(o,n,i,Mn(s.iss),t)}const sl=(r,e)=>{const t=`${r.domain} wants you to sign in with your Ethereum account:`,i=ps(e);if(!r.aud&&!r.uri)throw new Error("Either `aud` or `uri` is required to construct the message");let s=r.statement||void 0;const n=`URI: ${r.aud||r.uri}`,o=`Version: ${r.version}`,a=`Chain ID: ${hb(e)}`,c=`Nonce: ${r.nonce}`,u=`Issued At: ${r.iat}`,h=r.exp?`Expiration Time: ${r.exp}`:void 0,l=r.nbf?`Not Before: ${r.nbf}`:void 0,d=r.requestId?`Request ID: ${r.requestId}`:void 0,f=r.resources?`Resources:${r.resources.map(g=>`
- ${g}`).join("")}`:void 0,p=is(r.resources);if(p){const g=Ii(p);s=bb(s,g)}return[t,i,"",s,"",n,o,a,c,u,h,l,d,f].filter(g=>g!=null).join(`
`)};function lb(r){return Buffer.from(JSON.stringify(r)).toString("base64")}function db(r){return JSON.parse(Buffer.from(r,"base64").toString("utf-8"))}function ur(r){if(!r)throw new Error("No recap provided, value is undefined");if(!r.att)throw new Error("No `att` property found");const e=Object.keys(r.att);if(!(e!=null&&e.length))throw new Error("No resources found in `att` property");e.forEach(t=>{const i=r.att[t];if(Array.isArray(i))throw new Error(`Resource must be an object: ${t}`);if(typeof i!="object")throw new Error(`Resource must be an object: ${t}`);if(!Object.keys(i).length)throw new Error(`Resource object is empty: ${t}`);Object.keys(i).forEach(s=>{const n=i[s];if(!Array.isArray(n))throw new Error(`Ability limits ${s} must be an array of objects, found: ${n}`);if(!n.length)throw new Error(`Value of ${s} is empty array, must be an array with objects`);n.forEach(o=>{if(typeof o!="object")throw new Error(`Ability limits (${s}) must be an array of objects, found: ${o}`)})})})}function pb(r,e,t,i={}){return t?.sort((s,n)=>s.localeCompare(n)),{att:{[r]:fb(e,t,i)}}}function fb(r,e,t={}){e=e?.sort((s,n)=>s.localeCompare(n));const i=e.map(s=>({[`${r}/${s}`]:[t]}));return Object.assign({},...i)}function nl(r){return ur(r),`urn:recap:${lb(r).replace(/=/g,"")}`}function Ii(r){const e=db(r.replace("urn:recap:",""));return ur(e),e}function gb(r,e,t){const i=pb(r,e,t);return nl(i)}function yb(r){return r&&r.includes("urn:recap:")}function mb(r,e){const t=Ii(r),i=Ii(e),s=wb(t,i);return nl(s)}function wb(r,e){ur(r),ur(e);const t=Object.keys(r.att).concat(Object.keys(e.att)).sort((s,n)=>s.localeCompare(n)),i={att:{}};return t.forEach(s=>{var n,o;Object.keys(((n=r.att)==null?void 0:n[s])||{}).concat(Object.keys(((o=e.att)==null?void 0:o[s])||{})).sort((a,c)=>a.localeCompare(c)).forEach(a=>{var c,u;i.att[s]=cb(ab({},i.att[s]),{[a]:((c=r.att[s])==null?void 0:c[a])||((u=e.att[s])==null?void 0:u[a])})})}),i}function bb(r="",e){ur(e);const t="I further authorize the stated URI to perform the following actions on my behalf: ";if(r.includes(t))return r;const i=[];let s=0;Object.keys(e.att).forEach(a=>{const c=Object.keys(e.att[a]).map(l=>({ability:l.split("/")[0],action:l.split("/")[1]}));c.sort((l,d)=>l.action.localeCompare(d.action));const u={};c.forEach(l=>{u[l.ability]||(u[l.ability]=[]),u[l.ability].push(l.action)});const h=Object.keys(u).map(l=>(s++,`(${s}) '${l}': '${u[l].join("', '")}' for '${a}'.`));i.push(h.join(", ").replace(".,","."))});const n=i.join(" "),o=`${t}${n}`;return`${r?r+" ":""}${o}`}function ec(r){var e;const t=Ii(r);ur(t);const i=(e=t.att)==null?void 0:e.eip155;return i?Object.keys(i).map(s=>s.split("/")[1]):[]}function tc(r){const e=Ii(r);ur(e);const t=[];return Object.values(e.att).forEach(i=>{Object.values(i).forEach(s=>{var n;(n=s?.[0])!=null&&n.chains&&t.push(s[0].chains)})}),[...new Set(t.flat())]}function is(r){if(!r)return;const e=r?.[r.length-1];return yb(e)?e:void 0}function sn(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function ol(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Ke(r,...e){if(!ol(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function rc(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function vb(r,e){Ke(r);const t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function ic(r){if(typeof r!="boolean")throw new Error(`boolean expected, not ${r}`)}const Vt=r=>new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)),Eb=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),_b=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!_b)throw new Error("Non little-endian hardware is not supported");function Ib(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function zn(r){if(typeof r=="string")r=Ib(r);else if(ol(r))r=Hn(r);else throw new Error("Uint8Array expected, got "+typeof r);return r}function Db(r,e){if(e==null||typeof e!="object")throw new Error("options must be defined");return Object.assign(r,e)}function Sb(r,e){if(r.length!==e.length)return!1;let t=0;for(let i=0;i<r.length;i++)t|=r[i]^e[i];return t===0}const Ob=(r,e)=>{function t(i,...s){if(Ke(i),r.nonceLength!==void 0){const u=s[0];if(!u)throw new Error("nonce / iv required");r.varSizeNonce?Ke(u):Ke(u,r.nonceLength)}const n=r.tagLength;n&&s[1]!==void 0&&Ke(s[1]);const o=e(i,...s),a=(u,h)=>{if(h!==void 0){if(u!==2)throw new Error("cipher output not supported");Ke(h)}};let c=!1;return{encrypt(u,h){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,Ke(u),a(o.encrypt.length,h),o.encrypt(u,h)},decrypt(u,h){if(Ke(u),n&&u.length<n)throw new Error("invalid ciphertext length: smaller than tagLength="+n);return a(o.decrypt.length,h),o.decrypt(u,h)}}}return Object.assign(t,r),t};function sc(r,e,t=!0){if(e===void 0)return new Uint8Array(r);if(e.length!==r)throw new Error("invalid output length, expected "+r+", got: "+e.length);if(t&&!Pb(e))throw new Error("invalid output, must be aligned");return e}function nc(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);const s=BigInt(32),n=BigInt(4294967295),o=Number(t>>s&n),a=Number(t&n);r.setUint32(e+4,o,i),r.setUint32(e+0,a,i)}function Pb(r){return r.byteOffset%4===0}function Hn(r){return Uint8Array.from(r)}function zr(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}const al=r=>Uint8Array.from(r.split("").map(e=>e.charCodeAt(0))),$b=al("expand 16-byte k"),Ab=al("expand 32-byte k"),xb=Vt($b),Cb=Vt(Ab);function J(r,e){return r<<e|r>>>32-e}function Vn(r){return r.byteOffset%4===0}const Hi=64,Tb=16,cl=2**32-1,oc=new Uint32Array;function Rb(r,e,t,i,s,n,o,a){const c=s.length,u=new Uint8Array(Hi),h=Vt(u),l=Vn(s)&&Vn(n),d=l?Vt(s):oc,f=l?Vt(n):oc;for(let p=0;p<c;o++){if(r(e,t,i,h,o,a),o>=cl)throw new Error("arx: counter overflow");const g=Math.min(Hi,c-p);if(l&&g===Hi){const w=p/4;if(p%4!==0)throw new Error("arx: invalid block position");for(let E=0,b;E<Tb;E++)b=w+E,f[b]=d[b]^h[E];p+=Hi;continue}for(let w=0,E;w<g;w++)E=p+w,n[E]=s[E]^u[w];p+=g}}function Nb(r,e){const{allowShortKeys:t,extendNonceFn:i,counterLength:s,counterRight:n,rounds:o}=Db({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof r!="function")throw new Error("core must be a function");return sn(s),sn(o),ic(n),ic(t),(a,c,u,h,l=0)=>{Ke(a),Ke(c),Ke(u);const d=u.length;if(h===void 0&&(h=new Uint8Array(d)),Ke(h),sn(l),l<0||l>=cl)throw new Error("arx: counter overflow");if(h.length<d)throw new Error(`arx: output (${h.length}) is shorter than data (${d})`);const f=[];let p=a.length,g,w;if(p===32)f.push(g=Hn(a)),w=Cb;else if(p===16&&t)g=new Uint8Array(32),g.set(a),g.set(a,16),w=xb,f.push(g);else throw new Error(`arx: invalid 32-byte key, got length=${p}`);Vn(c)||f.push(c=Hn(c));const E=Vt(g);if(i){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");i(w,E,Vt(c.subarray(0,16)),E),c=c.subarray(16)}const b=16-s;if(b!==c.length)throw new Error(`arx: nonce must be ${b} or 16 bytes`);if(b!==12){const C=new Uint8Array(12);C.set(c,n?0:12-c.length),c=C,f.push(c)}const _=Vt(c);return Rb(r,w,E,_,u,h,l,o),zr(...f),h}}const _e=(r,e)=>r[e++]&255|(r[e++]&255)<<8;class Bb{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=zn(e),Ke(e,32);const t=_e(e,0),i=_e(e,2),s=_e(e,4),n=_e(e,6),o=_e(e,8),a=_e(e,10),c=_e(e,12),u=_e(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|i<<3)&8191,this.r[2]=(i>>>10|s<<6)&7939,this.r[3]=(s>>>7|n<<9)&8191,this.r[4]=(n>>>4|o<<12)&255,this.r[5]=o>>>1&8190,this.r[6]=(o>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let h=0;h<8;h++)this.pad[h]=_e(e,16+2*h)}process(e,t,i=!1){const s=i?0:2048,{h:n,r:o}=this,a=o[0],c=o[1],u=o[2],h=o[3],l=o[4],d=o[5],f=o[6],p=o[7],g=o[8],w=o[9],E=_e(e,t+0),b=_e(e,t+2),_=_e(e,t+4),C=_e(e,t+6),T=_e(e,t+8),v=_e(e,t+10),I=_e(e,t+12),P=_e(e,t+14);let S=n[0]+(E&8191),B=n[1]+((E>>>13|b<<3)&8191),N=n[2]+((b>>>10|_<<6)&8191),j=n[3]+((_>>>7|C<<9)&8191),M=n[4]+((C>>>4|T<<12)&8191),$=n[5]+(T>>>1&8191),y=n[6]+((T>>>14|v<<2)&8191),m=n[7]+((v>>>11|I<<5)&8191),D=n[8]+((I>>>8|P<<8)&8191),A=n[9]+(P>>>5|s),O=0,x=O+S*a+B*(5*w)+N*(5*g)+j*(5*p)+M*(5*f);O=x>>>13,x&=8191,x+=$*(5*d)+y*(5*l)+m*(5*h)+D*(5*u)+A*(5*c),O+=x>>>13,x&=8191;let F=O+S*c+B*a+N*(5*w)+j*(5*g)+M*(5*p);O=F>>>13,F&=8191,F+=$*(5*f)+y*(5*d)+m*(5*l)+D*(5*h)+A*(5*u),O+=F>>>13,F&=8191;let k=O+S*u+B*c+N*a+j*(5*w)+M*(5*g);O=k>>>13,k&=8191,k+=$*(5*p)+y*(5*f)+m*(5*d)+D*(5*l)+A*(5*h),O+=k>>>13,k&=8191;let z=O+S*h+B*u+N*c+j*a+M*(5*w);O=z>>>13,z&=8191,z+=$*(5*g)+y*(5*p)+m*(5*f)+D*(5*d)+A*(5*l),O+=z>>>13,z&=8191;let q=O+S*l+B*h+N*u+j*c+M*a;O=q>>>13,q&=8191,q+=$*(5*w)+y*(5*g)+m*(5*p)+D*(5*f)+A*(5*d),O+=q>>>13,q&=8191;let H=O+S*d+B*l+N*h+j*u+M*c;O=H>>>13,H&=8191,H+=$*a+y*(5*w)+m*(5*g)+D*(5*p)+A*(5*f),O+=H>>>13,H&=8191;let V=O+S*f+B*d+N*l+j*h+M*u;O=V>>>13,V&=8191,V+=$*c+y*a+m*(5*w)+D*(5*g)+A*(5*p),O+=V>>>13,V&=8191;let ne=O+S*p+B*f+N*d+j*l+M*h;O=ne>>>13,ne&=8191,ne+=$*u+y*c+m*a+D*(5*w)+A*(5*g),O+=ne>>>13,ne&=8191;let ee=O+S*g+B*p+N*f+j*d+M*l;O=ee>>>13,ee&=8191,ee+=$*h+y*u+m*c+D*a+A*(5*w),O+=ee>>>13,ee&=8191;let Y=O+S*w+B*g+N*p+j*f+M*d;O=Y>>>13,Y&=8191,Y+=$*l+y*h+m*u+D*c+A*a,O+=Y>>>13,Y&=8191,O=(O<<2)+O|0,O=O+x|0,x=O&8191,O=O>>>13,F+=O,n[0]=x,n[1]=F,n[2]=k,n[3]=z,n[4]=q,n[5]=H,n[6]=V,n[7]=ne,n[8]=ee,n[9]=Y}finalize(){const{h:e,pad:t}=this,i=new Uint16Array(10);let s=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=s,s=e[a]>>>13,e[a]&=8191;e[0]+=s*5,s=e[0]>>>13,e[0]&=8191,e[1]+=s,s=e[1]>>>13,e[1]&=8191,e[2]+=s,i[0]=e[0]+5,s=i[0]>>>13,i[0]&=8191;for(let a=1;a<10;a++)i[a]=e[a]+s,s=i[a]>>>13,i[a]&=8191;i[9]-=8192;let n=(s^1)-1;for(let a=0;a<10;a++)i[a]&=n;n=~n;for(let a=0;a<10;a++)e[a]=e[a]&n|i[a];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 o=e[0]+t[0];e[0]=o&65535;for(let a=1;a<8;a++)o=(e[a]+t[a]|0)+(o>>>16)|0,e[a]=o&65535;zr(i)}update(e){rc(this);const{buffer:t,blockLen:i}=this;e=zn(e);const s=e.length;for(let n=0;n<s;){const o=Math.min(i-this.pos,s-n);if(o===i){for(;i<=s-n;n+=i)this.process(e,n);continue}t.set(e.subarray(n,n+o),this.pos),this.pos+=o,n+=o,this.pos===i&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){zr(this.h,this.r,this.buffer,this.pad)}digestInto(e){rc(this),vb(e,this),this.finished=!0;const{buffer:t,h:i}=this;let{pos:s}=this;if(s){for(t[s++]=1;s<16;s++)t[s]=0;this.process(t,0,!0)}this.finalize();let n=0;for(let o=0;o<8;o++)e[n++]=i[o]>>>0,e[n++]=i[o]>>>8;return e}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const i=e.slice(0,t);return this.destroy(),i}}function jb(r){const e=(i,s)=>r(s).update(zn(i)).digest(),t=r(new Uint8Array(32));return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=i=>r(i),e}const Ub=jb(r=>new Bb(r));function Lb(r,e,t,i,s,n=20){let o=r[0],a=r[1],c=r[2],u=r[3],h=e[0],l=e[1],d=e[2],f=e[3],p=e[4],g=e[5],w=e[6],E=e[7],b=s,_=t[0],C=t[1],T=t[2],v=o,I=a,P=c,S=u,B=h,N=l,j=d,M=f,$=p,y=g,m=w,D=E,A=b,O=_,x=C,F=T;for(let z=0;z<n;z+=2)v=v+B|0,A=J(A^v,16),$=$+A|0,B=J(B^$,12),v=v+B|0,A=J(A^v,8),$=$+A|0,B=J(B^$,7),I=I+N|0,O=J(O^I,16),y=y+O|0,N=J(N^y,12),I=I+N|0,O=J(O^I,8),y=y+O|0,N=J(N^y,7),P=P+j|0,x=J(x^P,16),m=m+x|0,j=J(j^m,12),P=P+j|0,x=J(x^P,8),m=m+x|0,j=J(j^m,7),S=S+M|0,F=J(F^S,16),D=D+F|0,M=J(M^D,12),S=S+M|0,F=J(F^S,8),D=D+F|0,M=J(M^D,7),v=v+N|0,F=J(F^v,16),m=m+F|0,N=J(N^m,12),v=v+N|0,F=J(F^v,8),m=m+F|0,N=J(N^m,7),I=I+j|0,A=J(A^I,16),D=D+A|0,j=J(j^D,12),I=I+j|0,A=J(A^I,8),D=D+A|0,j=J(j^D,7),P=P+M|0,O=J(O^P,16),$=$+O|0,M=J(M^$,12),P=P+M|0,O=J(O^P,8),$=$+O|0,M=J(M^$,7),S=S+B|0,x=J(x^S,16),y=y+x|0,B=J(B^y,12),S=S+B|0,x=J(x^S,8),y=y+x|0,B=J(B^y,7);let k=0;i[k++]=o+v|0,i[k++]=a+I|0,i[k++]=c+P|0,i[k++]=u+S|0,i[k++]=h+B|0,i[k++]=l+N|0,i[k++]=d+j|0,i[k++]=f+M|0,i[k++]=p+$|0,i[k++]=g+y|0,i[k++]=w+m|0,i[k++]=E+D|0,i[k++]=b+A|0,i[k++]=_+O|0,i[k++]=C+x|0,i[k++]=T+F|0}const Fb=Nb(Lb,{counterRight:!1,counterLength:4,allowShortKeys:!1}),qb=new Uint8Array(16),ac=(r,e)=>{r.update(e);const t=e.length%16;t&&r.update(qb.subarray(t))},kb=new Uint8Array(32);function cc(r,e,t,i,s){const n=r(e,t,kb),o=Ub.create(n);s&&ac(o,s),ac(o,i);const a=new Uint8Array(16),c=Eb(a);nc(c,0,BigInt(s?s.length:0),!0),nc(c,8,BigInt(i.length),!0),o.update(a);const u=o.digest();return zr(n,a),u}const Mb=r=>(e,t,i)=>({encrypt(s,n){const o=s.length;n=sc(o+16,n,!1),n.set(s);const a=n.subarray(0,-16);r(e,t,a,a,1);const c=cc(r,e,t,a,i);return n.set(c,o),zr(c),n},decrypt(s,n){n=sc(s.length-16,n,!1);const o=s.subarray(0,-16),a=s.subarray(-16),c=cc(r,e,t,o,i);if(!Sb(a,c))throw new Error("invalid tag");return n.set(s.subarray(0,-16)),r(e,t,n,n,1),zr(c),n}}),ul=Ob({blockSize:64,nonceLength:12,tagLength:16},Mb(Fb));let hl=class extends $o{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Po(e);const i=Mr(t);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 s=this.blockLen,n=new Uint8Array(s);n.set(i.length>s?e.create().update(i).digest():i);for(let o=0;o<n.length;o++)n[o]^=54;this.iHash.update(n),this.oHash=e.create();for(let o=0;o<n.length;o++)n[o]^=106;this.oHash.update(n),n.fill(0)}update(e){return kr(this),this.iHash.update(e),this}digestInto(e){kr(this),Ci(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:t,iHash:i,finished:s,destroyed:n,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=n,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=i._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};const Os=(r,e,t)=>new hl(r,e).update(t).digest();Os.create=(r,e)=>new hl(r,e);function zb(r,e,t){return Po(r),t===void 0&&(t=new Uint8Array(r.outputLen)),Os(r,Mr(t),Mr(e))}const nn=new Uint8Array([0]),uc=new Uint8Array;function Hb(r,e,t,i=32){if(Po(r),_i(i),i>255*r.outputLen)throw new Error("Length should be <= 255*HashLen");const s=Math.ceil(i/r.outputLen);t===void 0&&(t=uc);const n=new Uint8Array(s*r.outputLen),o=Os.create(r,e),a=o._cloneInto(),c=new Uint8Array(o.outputLen);for(let u=0;u<s;u++)nn[0]=u+1,a.update(u===0?uc:c).update(t).update(nn).digestInto(c),n.set(c,r.outputLen*u),o._cloneInto(a);return o.destroy(),a.destroy(),c.fill(0),nn.fill(0),n.slice(0,i)}const Vb=(r,e,t,i,s)=>Hb(r,zb(r,e,t),i,s);function Kb(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);const s=BigInt(32),n=BigInt(4294967295),o=Number(t>>s&n),a=Number(t&n),c=i?4:0,u=i?0:4;r.setUint32(e+c,o,i),r.setUint32(e+u,a,i)}function Wb(r,e,t){return r&e^~r&t}function Gb(r,e,t){return r&e^r&t^e&t}let Yb=class extends $o{constructor(e,t,i,s){super(),this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=rn(this.buffer)}update(e){kr(this);const{view:t,buffer:i,blockLen:s}=this;e=Mr(e);const n=e.length;for(let o=0;o<n;){const a=Math.min(s-this.pos,n-o);if(a===s){const c=rn(e);for(;s<=n-o;o+=s)this.process(c,o);continue}i.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){kr(this),Zh(e,this),this.finished=!0;const{buffer:t,view:i,blockLen:s,isLE:n}=this;let{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(i,0),o=0);for(let l=o;l<s;l++)t[l]=0;Kb(i,s-8,BigInt(this.length*8),n),this.process(i,0);const a=rn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,h=this.get();if(u>h.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,h[l],n)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:i,length:s,finished:n,destroyed:o,pos:a}=this;return e.length=s,e.pos=a,e.finished=n,e.destroyed=o,s%t&&e.buffer.set(i),e}};const Jb=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]),Ft=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),qt=new Uint32Array(64);class Zb extends Yb{constructor(){super(64,32,8,!1),this.A=Ft[0]|0,this.B=Ft[1]|0,this.C=Ft[2]|0,this.D=Ft[3]|0,this.E=Ft[4]|0,this.F=Ft[5]|0,this.G=Ft[6]|0,this.H=Ft[7]|0}get(){const{A:e,B:t,C:i,D:s,E:n,F:o,G:a,H:c}=this;return[e,t,i,s,n,o,a,c]}set(e,t,i,s,n,o,a,c){this.A=e|0,this.B=t|0,this.C=i|0,this.D=s|0,this.E=n|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)qt[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){const d=qt[l-15],f=qt[l-2],p=pt(d,7)^pt(d,18)^d>>>3,g=pt(f,17)^pt(f,19)^f>>>10;qt[l]=g+qt[l-7]+p+qt[l-16]|0}let{A:i,B:s,C:n,D:o,E:a,F:c,G:u,H:h}=this;for(let l=0;l<64;l++){const d=pt(a,6)^pt(a,11)^pt(a,25),f=h+d+Wb(a,c,u)+Jb[l]+qt[l]|0,p=(pt(i,2)^pt(i,13)^pt(i,22))+Gb(i,s,n)|0;h=u,u=c,c=a,a=o+f|0,o=n,n=s,s=i,i=f+p|0}i=i+this.A|0,s=s+this.B|0,n=n+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,h=h+this.H|0,this.set(i,s,n,o,a,c,u,h)}roundClean(){qt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Ti=Qh(()=>new Zb);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ps=BigInt(0),$s=BigInt(1),Qb=BigInt(2);function hr(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Ri(r){if(!hr(r))throw new Error("Uint8Array expected")}function Hr(r,e){if(typeof e!="boolean")throw new Error(r+" boolean expected, got "+e)}const Xb=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function Vr(r){Ri(r);let e="";for(let t=0;t<r.length;t++)e+=Xb[r[t]];return e}function Ur(r){const e=r.toString(16);return e.length&1?"0"+e:e}function xo(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?Ps:BigInt("0x"+r)}const Pt={_0:48,_9:57,A:65,F:70,a:97,f:102};function hc(r){if(r>=Pt._0&&r<=Pt._9)return r-Pt._0;if(r>=Pt.A&&r<=Pt.F)return r-(Pt.A-10);if(r>=Pt.a&&r<=Pt.f)return r-(Pt.a-10)}function Kr(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);const e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const i=new Uint8Array(t);for(let s=0,n=0;s<t;s++,n+=2){const o=hc(r.charCodeAt(n)),a=hc(r.charCodeAt(n+1));if(o===void 0||a===void 0){const c=r[n]+r[n+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+n)}i[s]=o*16+a}return i}function or(r){return xo(Vr(r))}function Di(r){return Ri(r),xo(Vr(Uint8Array.from(r).reverse()))}function Wr(r,e){return Kr(r.toString(16).padStart(e*2,"0"))}function As(r,e){return Wr(r,e).reverse()}function ev(r){return Kr(Ur(r))}function Ve(r,e,t){let i;if(typeof e=="string")try{i=Kr(e)}catch(n){throw new Error(r+" must be hex string or Uint8Array, cause: "+n)}else if(hr(e))i=Uint8Array.from(e);else throw new Error(r+" must be hex string or Uint8Array");const s=i.length;if(typeof t=="number"&&s!==t)throw new Error(r+" of length "+t+" expected, got "+s);return i}function Si(...r){let e=0;for(let i=0;i<r.length;i++){const s=r[i];Ri(s),e+=s.length}const t=new Uint8Array(e);for(let i=0,s=0;i<r.length;i++){const n=r[i];t.set(n,s),s+=n.length}return t}function tv(r,e){if(r.length!==e.length)return!1;let t=0;for(let i=0;i<r.length;i++)t|=r[i]^e[i];return t===0}function rv(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}const on=r=>typeof r=="bigint"&&Ps<=r;function xs(r,e,t){return on(r)&&on(e)&&on(t)&&e<=r&&r<t}function Rt(r,e,t,i){if(!xs(e,t,i))throw new Error("expected valid "+r+": "+t+" <= n < "+i+", got "+e)}function ll(r){let e;for(e=0;r>Ps;r>>=$s,e+=1);return e}function iv(r,e){return r>>BigInt(e)&$s}function sv(r,e,t){return r|(t?$s:Ps)<<BigInt(e)}const Co=r=>(Qb<<BigInt(r-1))-$s,an=r=>new Uint8Array(r),lc=r=>Uint8Array.from(r);function dl(r,e,t){if(typeof r!="number"||r<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 t!="function")throw new Error("hmacFn must be a function");let i=an(r),s=an(r),n=0;const o=()=>{i.fill(1),s.fill(0),n=0},a=(...h)=>t(s,i,...h),c=(h=an())=>{s=a(lc([0]),h),i=a(),h.length!==0&&(s=a(lc([1]),h),i=a())},u=()=>{if(n++>=1e3)throw new Error("drbg: tried 1000 values");let h=0;const l=[];for(;h<e;){i=a();const d=i.slice();l.push(d),h+=i.length}return Si(...l)};return(h,l)=>{o(),c(h);let d;for(;!(d=l(u()));)c();return o(),d}}const nv={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||hr(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function Xr(r,e,t={}){const i=(s,n,o)=>{const a=nv[n];if(typeof a!="function")throw new Error("invalid validator function");const c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error("param "+String(s)+" is invalid. Expected "+n+", got "+c)};for(const[s,n]of Object.entries(e))i(s,n,!1);for(const[s,n]of Object.entries(t))i(s,n,!0);return r}const ov=()=>{throw new Error("not implemented")};function Kn(r){const e=new WeakMap;return(t,...i)=>{const s=e.get(t);if(s!==void 0)return s;const n=r(t,...i);return e.set(t,n),n}}var av=Object.freeze({__proto__:null,isBytes:hr,abytes:Ri,abool:Hr,bytesToHex:Vr,numberToHexUnpadded:Ur,hexToNumber:xo,hexToBytes:Kr,bytesToNumberBE:or,bytesToNumberLE:Di,numberToBytesBE:Wr,numberToBytesLE:As,numberToVarBytesBE:ev,ensureBytes:Ve,concatBytes:Si,equalBytes:tv,utf8ToBytes:rv,inRange:xs,aInRange:Rt,bitLen:ll,bitGet:iv,bitSet:sv,bitMask:Co,createHmacDrbg:dl,validateObject:Xr,notImplemented:ov,memoized:Kn});const ve=BigInt(0),ue=BigInt(1),tr=BigInt(2),cv=BigInt(3),Wn=BigInt(4),dc=BigInt(5),pc=BigInt(8);function Fe(r,e){const t=r%e;return t>=ve?t:e+t}function pl(r,e,t){if(e<ve)throw new Error("invalid exponent, negatives unsupported");if(t<=ve)throw new Error("invalid modulus");if(t===ue)return ve;let i=ue;for(;e>ve;)e&ue&&(i=i*r%t),r=r*r%t,e>>=ue;return i}function ct(r,e,t){let i=r;for(;e-- >ve;)i*=i,i%=t;return i}function Gn(r,e){if(r===ve)throw new Error("invert: expected non-zero number");if(e<=ve)throw new Error("invert: expected positive modulus, got "+e);let t=Fe(r,e),i=e,s=ve,n=ue;for(;t!==ve;){const o=i/t,a=i%t,c=s-n*o;i=t,t=a,s=n,n=c}if(i!==ue)throw new Error("invert: does not exist");return Fe(s,e)}function uv(r){const e=(r-ue)/tr;let t,i,s;for(t=r-ue,i=0;t%tr===ve;t/=tr,i++);for(s=tr;s<r&&pl(s,e,r)!==r-ue;s++)if(s>1e3)throw new Error("Cannot find square root: likely non-prime P");if(i===1){const o=(r+ue)/Wn;return function(a,c){const u=a.pow(c,o);if(!a.eql(a.sqr(u),c))throw new Error("Cannot find square root");return u}}const n=(t+ue)/tr;return function(o,a){if(o.pow(a,e)===o.neg(o.ONE))throw new Error("Cannot find square root");let c=i,u=o.pow(o.mul(o.ONE,s),t),h=o.pow(a,n),l=o.pow(a,t);for(;!o.eql(l,o.ONE);){if(o.eql(l,o.ZERO))return o.ZERO;let d=1;for(let p=o.sqr(l);d<c&&!o.eql(p,o.ONE);d++)p=o.sqr(p);const f=o.pow(u,ue<<BigInt(c-d-1));u=o.sqr(f),h=o.mul(h,f),l=o.mul(l,u),c=d}return h}}function hv(r){if(r%Wn===cv){const e=(r+ue)/Wn;return function(t,i){const s=t.pow(i,e);if(!t.eql(t.sqr(s),i))throw new Error("Cannot find square root");return s}}if(r%pc===dc){const e=(r-dc)/pc;return function(t,i){const s=t.mul(i,tr),n=t.pow(s,e),o=t.mul(i,n),a=t.mul(t.mul(o,tr),n),c=t.mul(o,t.sub(a,t.ONE));if(!t.eql(t.sqr(c),i))throw new Error("Cannot find square root");return c}}return uv(r)}const lv=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function dv(r){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=lv.reduce((i,s)=>(i[s]="function",i),e);return Xr(r,t)}function pv(r,e,t){if(t<ve)throw new Error("invalid exponent, negatives unsupported");if(t===ve)return r.ONE;if(t===ue)return e;let i=r.ONE,s=e;for(;t>ve;)t&ue&&(i=r.mul(i,s)),s=r.sqr(s),t>>=ue;return i}function fv(r,e){const t=new Array(e.length),i=e.reduce((n,o,a)=>r.is0(o)?n:(t[a]=n,r.mul(n,o)),r.ONE),s=r.inv(i);return e.reduceRight((n,o,a)=>r.is0(o)?n:(t[a]=r.mul(n,t[a]),r.mul(n,o)),s),t}function fl(r,e){const t=e!==void 0?e:r.toString(2).length,i=Math.ceil(t/8);return{nBitLength:t,nByteLength:i}}function gl(r,e,t=!1,i={}){if(r<=ve)throw new Error("invalid field: expected ORDER > 0, got "+r);const{nBitLength:s,nByteLength:n}=fl(r,e);if(n>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:r,isLE:t,BITS:s,BYTES:n,MASK:Co(s),ZERO:ve,ONE:ue,create:c=>Fe(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return ve<=c&&c<r},is0:c=>c===ve,isOdd:c=>(c&ue)===ue,neg:c=>Fe(-c,r),eql:(c,u)=>c===u,sqr:c=>Fe(c*c,r),add:(c,u)=>Fe(c+u,r),sub:(c,u)=>Fe(c-u,r),mul:(c,u)=>Fe(c*u,r),pow:(c,u)=>pv(a,c,u),div:(c,u)=>Fe(c*Gn(u,r),r),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Gn(c,r),sqrt:i.sqrt||(c=>(o||(o=hv(r)),o(a,c))),invertBatch:c=>fv(a,c),cmov:(c,u,h)=>h?u:c,toBytes:c=>t?As(c,n):Wr(c,n),fromBytes:c=>{if(c.length!==n)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+c.length);return t?Di(c):or(c)}});return Object.freeze(a)}function yl(r){if(typeof r!="bigint")throw new Error("field order must be bigint");const e=r.toString(2).length;return Math.ceil(e/8)}function ml(r){const e=yl(r);return e+Math.ceil(e/2)}function gv(r,e,t=!1){const i=r.length,s=yl(e),n=ml(e);if(i<16||i<n||i>1024)throw new Error("expected "+n+"-1024 bytes of input, got "+i);const o=t?Di(r):or(r),a=Fe(o,e-ue)+ue;return t?As(a,s):Wr(a,s)}const fc=BigInt(0),Vi=BigInt(1);function cn(r,e){const t=e.negate();return r?t:e}function wl(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function un(r,e){wl(r,e);const t=Math.ceil(e/r)+1,i=2**(r-1);return{windows:t,windowSize:i}}function yv(r,e){if(!Array.isArray(r))throw new Error("array expected");r.forEach((t,i)=>{if(!(t instanceof e))throw new Error("invalid point at index "+i)})}function mv(r,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((t,i)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+i)})}const hn=new WeakMap,bl=new WeakMap;function ln(r){return bl.get(r)||1}function wv(r,e){return{constTimeNegate:cn,hasPrecomputes(t){return ln(t)!==1},unsafeLadder(t,i,s=r.ZERO){let n=t;for(;i>fc;)i&Vi&&(s=s.add(n)),n=n.double(),i>>=Vi;return s},precomputeWindow(t,i){const{windows:s,windowSize:n}=un(i,e),o=[];let a=t,c=a;for(let u=0;u<s;u++){c=a,o.push(c);for(let h=1;h<n;h++)c=c.add(a),o.push(c);a=c.double()}return o},wNAF(t,i,s){const{windows:n,windowSize:o}=un(t,e);let a=r.ZERO,c=r.BASE;const u=BigInt(2**t-1),h=2**t,l=BigInt(t);for(let d=0;d<n;d++){const f=d*o;let p=Number(s&u);s>>=l,p>o&&(p-=h,s+=Vi);const g=f,w=f+Math.abs(p)-1,E=d%2!==0,b=p<0;p===0?c=c.add(cn(E,i[g])):a=a.add(cn(b,i[w]))}return{p:a,f:c}},wNAFUnsafe(t,i,s,n=r.ZERO){const{windows:o,windowSize:a}=un(t,e),c=BigInt(2**t-1),u=2**t,h=BigInt(t);for(let l=0;l<o;l++){const d=l*a;if(s===fc)break;let f=Number(s&c);if(s>>=h,f>a&&(f-=u,s+=Vi),f===0)continue;let p=i[d+Math.abs(f)-1];f<0&&(p=p.negate()),n=n.add(p)}return n},getPrecomputes(t,i,s){let n=hn.get(i);return n||(n=this.precomputeWindow(i,t),t!==1&&hn.set(i,s(n))),n},wNAFCached(t,i,s){const n=ln(t);return this.wNAF(n,this.getPrecomputes(n,t,s),i)},wNAFCachedUnsafe(t,i,s,n){const o=ln(t);return o===1?this.unsafeLadder(t,i,n):this.wNAFUnsafe(o,this.getPrecomputes(o,t,s),i,n)},setWindowSize(t,i){wl(i,e),bl.set(t,i),hn.delete(t)}}}function bv(r,e,t,i){if(yv(t,r),mv(i,e),t.length!==i.length)throw new Error("arrays of points and scalars must have equal length");const s=r.ZERO,n=ll(BigInt(t.length)),o=n>12?n-3:n>4?n-2:n?2:1,a=(1<<o)-1,c=new Array(a+1).fill(s),u=Math.floor((e.BITS-1)/o)*o;let h=s;for(let l=u;l>=0;l-=o){c.fill(s);for(let f=0;f<i.length;f++){const p=i[f],g=Number(p>>BigInt(l)&BigInt(a));c[g]=c[g].add(t[f])}let d=s;for(let f=c.length-1,p=s;f>0;f--)p=p.add(c[f]),d=d.add(p);if(h=h.add(d),l!==0)for(let f=0;f<o;f++)h=h.double()}return h}function vl(r){return dv(r.Fp),Xr(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...fl(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}BigInt(0),BigInt(1),BigInt(2),BigInt(8);const Er=BigInt(0),dn=BigInt(1);function vv(r){return Xr(r,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...r})}function Ev(r){const e=vv(r),{P:t}=e,i=b=>Fe(b,t),s=e.montgomeryBits,n=Math.ceil(s/8),o=e.nByteLength,a=e.adjustScalarBytes||(b=>b),c=e.powPminus2||(b=>pl(b,t-BigInt(2),t));function u(b,_,C){const T=i(b*(_-C));return _=i(_-T),C=i(C+T),[_,C]}const h=(e.a-BigInt(2))/BigInt(4);function l(b,_){Rt("u",b,Er,t),Rt("scalar",_,Er,t);const C=_,T=b;let v=dn,I=Er,P=b,S=dn,B=Er,N;for(let M=BigInt(s-1);M>=Er;M--){const $=C>>M&dn;B^=$,N=u(B,v,P),v=N[0],P=N[1],N=u(B,I,S),I=N[0],S=N[1],B=$;const y=v+I,m=i(y*y),D=v-I,A=i(D*D),O=m-A,x=P+S,F=P-S,k=i(F*y),z=i(x*D),q=k+z,H=k-z;P=i(q*q),S=i(T*i(H*H)),v=i(m*A),I=i(O*(m+i(h*O)))}N=u(B,v,P),v=N[0],P=N[1],N=u(B,I,S),I=N[0],S=N[1];const j=c(I);return i(v*j)}function d(b){return As(i(b),n)}function f(b){const _=Ve("u coordinate",b,n);return o===32&&(_[31]&=127),Di(_)}function p(b){const _=Ve("scalar",b),C=_.length;if(C!==n&&C!==o){let T=""+n+" or "+o;throw new Error("invalid scalar, expected "+T+" bytes, got "+C)}return Di(a(_))}function g(b,_){const C=f(_),T=p(b),v=l(C,T);if(v===Er)throw new Error("invalid private or public key received");return d(v)}const w=d(e.Gu);function E(b){return g(b,w)}return{scalarMult:g,scalarMultBase:E,getSharedSecret:(b,_)=>g(b,_),getPublicKey:b=>E(b),utils:{randomPrivateKey:()=>e.randomBytes(e.nByteLength)},GuBytes:w}}const Yn=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949");BigInt(0);const _v=BigInt(1),gc=BigInt(2),Iv=BigInt(3),Dv=BigInt(5);BigInt(8);function Sv(r){const e=BigInt(10),t=BigInt(20),i=BigInt(40),s=BigInt(80),n=Yn,o=r*r%n*r%n,a=ct(o,gc,n)*o%n,c=ct(a,_v,n)*r%n,u=ct(c,Dv,n)*c%n,h=ct(u,e,n)*u%n,l=ct(h,t,n)*h%n,d=ct(l,i,n)*l%n,f=ct(d,s,n)*d%n,p=ct(f,s,n)*d%n,g=ct(p,e,n)*u%n;return{pow_p_5_8:ct(g,gc,n)*r%n,b2:o}}function Ov(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}const Jn=Ev({P:Yn,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:r=>{const e=Yn,{pow_p_5_8:t,b2:i}=Sv(r);return Fe(ct(t,Iv,e)*i,e)},adjustScalarBytes:Ov,randomBytes:Qr});function yc(r){r.lowS!==void 0&&Hr("lowS",r.lowS),r.prehash!==void 0&&Hr("prehash",r.prehash)}function Pv(r){const e=vl(r);Xr(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:t,Fp:i,a:s}=e;if(t){if(!i.eql(s,i.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...e})}const{bytesToNumberBE:$v,hexToBytes:Av}=av;class xv extends Error{constructor(e=""){super(e)}}const Ct={Err:xv,_tlv:{encode:(r,e)=>{const{Err:t}=Ct;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");const i=e.length/2,s=Ur(i);if(s.length/2&128)throw new t("tlv.encode: long form length too big");const n=i>127?Ur(s.length/2|128):"";return Ur(r)+n+s+e},decode(r,e){const{Err:t}=Ct;let i=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[i++]!==r)throw new t("tlv.decode: wrong tlv");const s=e[i++],n=!!(s&128);let o=0;if(!n)o=s;else{const c=s&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");const u=e.subarray(i,i+c);if(u.length!==c)throw new t("tlv.decode: length bytes not complete");if(u[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(const h of u)o=o<<8|h;if(i+=c,o<128)throw new t("tlv.decode(long): not minimal encoding")}const a=e.subarray(i,i+o);if(a.length!==o)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(i+o)}}},_int:{encode(r){const{Err:e}=Ct;if(r<Tt)throw new e("integer: negative integers are not allowed");let t=Ur(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){const{Err:e}=Ct;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return $v(r)}},toSig(r){const{Err:e,_int:t,_tlv:i}=Ct,s=typeof r=="string"?Av(r):r;Ri(s);const{v:n,l:o}=i.decode(48,s);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:c}=i.decode(2,n),{v:u,l:h}=i.decode(2,c);if(h.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(u)}},hexFromSig(r){const{_tlv:e,_int:t}=Ct,i=e.encode(2,t.encode(r.r)),s=e.encode(2,t.encode(r.s)),n=i+s;return e.encode(48,n)}},Tt=BigInt(0),me=BigInt(1);BigInt(2);const mc=BigInt(3);BigInt(4);function Cv(r){const e=Pv(r),{Fp:t}=e,i=gl(e.n,e.nBitLength),s=e.toBytes||((g,w,E)=>{const b=w.toAffine();return Si(Uint8Array.from([4]),t.toBytes(b.x),t.toBytes(b.y))}),n=e.fromBytes||(g=>{const w=g.subarray(1),E=t.fromBytes(w.subarray(0,t.BYTES)),b=t.fromBytes(w.subarray(t.BYTES,2*t.BYTES));return{x:E,y:b}});function o(g){const{a:w,b:E}=e,b=t.sqr(g),_=t.mul(b,g);return t.add(t.add(_,t.mul(g,w)),E)}if(!t.eql(t.sqr(e.Gy),o(e.Gx)))throw new Error("bad generator point: equation left != right");function a(g){return xs(g,me,e.n)}function c(g){const{allowedPrivateKeyLengths:w,nByteLength:E,wrapPrivateKey:b,n:_}=e;if(w&&typeof g!="bigint"){if(hr(g)&&(g=Vr(g)),typeof g!="string"||!w.includes(g.length))throw new Error("invalid private key");g=g.padStart(E*2,"0")}let C;try{C=typeof g=="bigint"?g:or(Ve("private key",g,E))}catch{throw new Error("invalid private key, expected hex or "+E+" bytes, got "+typeof g)}return b&&(C=Fe(C,_)),Rt("private key",C,me,_),C}function u(g){if(!(g instanceof d))throw new Error("ProjectivePoint expected")}const h=Kn((g,w)=>{const{px:E,py:b,pz:_}=g;if(t.eql(_,t.ONE))return{x:E,y:b};const C=g.is0();w==null&&(w=C?t.ONE:t.inv(_));const T=t.mul(E,w),v=t.mul(b,w),I=t.mul(_,w);if(C)return{x:t.ZERO,y:t.ZERO};if(!t.eql(I,t.ONE))throw new Error("invZ was invalid");return{x:T,y:v}}),l=Kn(g=>{if(g.is0()){if(e.allowInfinityPoint&&!t.is0(g.py))return;throw new Error("bad point: ZERO")}const{x:w,y:E}=g.toAffine();if(!t.isValid(w)||!t.isValid(E))throw new Error("bad point: x or y not FE");const b=t.sqr(E),_=o(w);if(!t.eql(b,_))throw new Error("bad point: equation left != right");if(!g.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class d{constructor(w,E,b){if(this.px=w,this.py=E,this.pz=b,w==null||!t.isValid(w))throw new Error("x required");if(E==null||!t.isValid(E))throw new Error("y required");if(b==null||!t.isValid(b))throw new Error("z required");Object.freeze(this)}static fromAffine(w){const{x:E,y:b}=w||{};if(!w||!t.isValid(E)||!t.isValid(b))throw new Error("invalid affine point");if(w instanceof d)throw new Error("projective point not allowed");const _=C=>t.eql(C,t.ZERO);return _(E)&&_(b)?d.ZERO:new d(E,b,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){const E=t.invertBatch(w.map(b=>b.pz));return w.map((b,_)=>b.toAffine(E[_])).map(d.fromAffine)}static fromHex(w){const E=d.fromAffine(n(Ve("pointHex",w)));return E.assertValidity(),E}static fromPrivateKey(w){return d.BASE.multiply(c(w))}static msm(w,E){return bv(d,i,w,E)}_setWindowSize(w){p.setWindowSize(this,w)}assertValidity(){l(this)}hasEvenY(){const{y:w}=this.toAffine();if(t.isOdd)return!t.isOdd(w);throw new Error("Field doesn't support isOdd")}equals(w){u(w);const{px:E,py:b,pz:_}=this,{px:C,py:T,pz:v}=w,I=t.eql(t.mul(E,v),t.mul(C,_)),P=t.eql(t.mul(b,v),t.mul(T,_));return I&&P}negate(){return new d(this.px,t.neg(this.py),this.pz)}double(){const{a:w,b:E}=e,b=t.mul(E,mc),{px:_,py:C,pz:T}=this;let v=t.ZERO,I=t.ZERO,P=t.ZERO,S=t.mul(_,_),B=t.mul(C,C),N=t.mul(T,T),j=t.mul(_,C);return j=t.add(j,j),P=t.mul(_,T),P=t.add(P,P),v=t.mul(w,P),I=t.mul(b,N),I=t.add(v,I),v=t.sub(B,I),I=t.add(B,I),I=t.mul(v,I),v=t.mul(j,v),P=t.mul(b,P),N=t.mul(w,N),j=t.sub(S,N),j=t.mul(w,j),j=t.add(j,P),P=t.add(S,S),S=t.add(P,S),S=t.add(S,N),S=t.mul(S,j),I=t.add(I,S),N=t.mul(C,T),N=t.add(N,N),S=t.mul(N,j),v=t.sub(v,S),P=t.mul(N,B),P=t.add(P,P),P=t.add(P,P),new d(v,I,P)}add(w){u(w);const{px:E,py:b,pz:_}=this,{px:C,py:T,pz:v}=w;let I=t.ZERO,P=t.ZERO,S=t.ZERO;const B=e.a,N=t.mul(e.b,mc);let j=t.mul(E,C),M=t.mul(b,T),$=t.mul(_,v),y=t.add(E,b),m=t.add(C,T);y=t.mul(y,m),m=t.add(j,M),y=t.sub(y,m),m=t.add(E,_);let D=t.add(C,v);return m=t.mul(m,D),D=t.add(j,$),m=t.sub(m,D),D=t.add(b,_),I=t.add(T,v),D=t.mul(D,I),I=t.add(M,$),D=t.sub(D,I),S=t.mul(B,m),I=t.mul(N,$),S=t.add(I,S),I=t.sub(M,S),S=t.add(M,S),P=t.mul(I,S),M=t.add(j,j),M=t.add(M,j),$=t.mul(B,$),m=t.mul(N,m),M=t.add(M,$),$=t.sub(j,$),$=t.mul(B,$),m=t.add(m,$),j=t.mul(M,m),P=t.add(P,j),j=t.mul(D,m),I=t.mul(y,I),I=t.sub(I,j),j=t.mul(y,M),S=t.mul(D,S),S=t.add(S,j),new d(I,P,S)}subtract(w){return this.add(w.negate())}is0(){return this.equals(d.ZERO)}wNAF(w){return p.wNAFCached(this,w,d.normalizeZ)}multiplyUnsafe(w){const{endo:E,n:b}=e;Rt("scalar",w,Tt,b);const _=d.ZERO;if(w===Tt)return _;if(this.is0()||w===me)return this;if(!E||p.hasPrecomputes(this))return p.wNAFCachedUnsafe(this,w,d.normalizeZ);let{k1neg:C,k1:T,k2neg:v,k2:I}=E.splitScalar(w),P=_,S=_,B=this;for(;T>Tt||I>Tt;)T&me&&(P=P.add(B)),I&me&&(S=S.add(B)),B=B.double(),T>>=me,I>>=me;return C&&(P=P.negate()),v&&(S=S.negate()),S=new d(t.mul(S.px,E.beta),S.py,S.pz),P.add(S)}multiply(w){const{endo:E,n:b}=e;Rt("scalar",w,me,b);let _,C;if(E){const{k1neg:T,k1:v,k2neg:I,k2:P}=E.splitScalar(w);let{p:S,f:B}=this.wNAF(v),{p:N,f:j}=this.wNAF(P);S=p.constTimeNegate(T,S),N=p.constTimeNegate(I,N),N=new d(t.mul(N.px,E.beta),N.py,N.pz),_=S.add(N),C=B.add(j)}else{const{p:T,f:v}=this.wNAF(w);_=T,C=v}return d.normalizeZ([_,C])[0]}multiplyAndAddUnsafe(w,E,b){const _=d.BASE,C=(v,I)=>I===Tt||I===me||!v.equals(_)?v.multiplyUnsafe(I):v.multiply(I),T=C(this,E).add(C(w,b));return T.is0()?void 0:T}toAffine(w){return h(this,w)}isTorsionFree(){const{h:w,isTorsionFree:E}=e;if(w===me)return!0;if(E)return E(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:w,clearCofactor:E}=e;return w===me?this:E?E(d,this):this.multiplyUnsafe(e.h)}toRawBytes(w=!0){return Hr("isCompressed",w),this.assertValidity(),s(d,this,w)}toHex(w=!0){return Hr("isCompressed",w),Vr(this.toRawBytes(w))}}d.BASE=new d(e.Gx,e.Gy,t.ONE),d.ZERO=new d(t.ZERO,t.ONE,t.ZERO);const f=e.nBitLength,p=wv(d,e.endo?Math.ceil(f/2):f);return{CURVE:e,ProjectivePoint:d,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Tv(r){const e=vl(r);return Xr(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Rv(r){const e=Tv(r),{Fp:t,n:i}=e,s=t.BYTES+1,n=2*t.BYTES+1;function o($){return Fe($,i)}function a($){return Gn($,i)}const{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:h,isWithinCurveOrder:l}=Cv({...e,toBytes($,y,m){const D=y.toAffine(),A=t.toBytes(D.x),O=Si;return Hr("isCompressed",m),m?O(Uint8Array.from([y.hasEvenY()?2:3]),A):O(Uint8Array.from([4]),A,t.toBytes(D.y))},fromBytes($){const y=$.length,m=$[0],D=$.subarray(1);if(y===s&&(m===2||m===3)){const A=or(D);if(!xs(A,me,t.ORDER))throw new Error("Point is not on curve");const O=h(A);let x;try{x=t.sqrt(O)}catch(k){const z=k instanceof Error?": "+k.message:"";throw new Error("Point is not on curve"+z)}const F=(x&me)===me;return(m&1)===1!==F&&(x=t.neg(x)),{x:A,y:x}}else if(y===n&&m===4){const A=t.fromBytes(D.subarray(0,t.BYTES)),O=t.fromBytes(D.subarray(t.BYTES,2*t.BYTES));return{x:A,y:O}}else{const A=s,O=n;throw new Error("invalid Point, expected length of "+A+", or uncompressed "+O+", got "+y)}}}),d=$=>Vr(Wr($,e.nByteLength));function f($){const y=i>>me;return $>y}function p($){return f($)?o(-$):$}const g=($,y,m)=>or($.slice(y,m));class w{constructor(y,m,D){this.r=y,this.s=m,this.recovery=D,this.assertValidity()}static fromCompact(y){const m=e.nByteLength;return y=Ve("compactSignature",y,m*2),new w(g(y,0,m),g(y,m,2*m))}static fromDER(y){const{r:m,s:D}=Ct.toSig(Ve("DER",y));return new w(m,D)}assertValidity(){Rt("r",this.r,me,i),Rt("s",this.s,me,i)}addRecoveryBit(y){return new w(this.r,this.s,y)}recoverPublicKey(y){const{r:m,s:D,recovery:A}=this,O=v(Ve("msgHash",y));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");const x=A===2||A===3?m+e.n:m;if(x>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");const F=(A&1)===0?"02":"03",k=c.fromHex(F+d(x)),z=a(x),q=o(-O*z),H=o(D*z),V=c.BASE.multiplyAndAddUnsafe(k,q,H);if(!V)throw new Error("point at infinify");return V.assertValidity(),V}hasHighS(){return f(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Kr(this.toDERHex())}toDERHex(){return Ct.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Kr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const E={isValidPrivateKey($){try{return u($),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{const $=ml(e.n);return gv(e.randomBytes($),e.n)},precompute($=8,y=c.BASE){return y._setWindowSize($),y.multiply(BigInt(3)),y}};function b($,y=!0){return c.fromPrivateKey($).toRawBytes(y)}function _($){const y=hr($),m=typeof $=="string",D=(y||m)&&$.length;return y?D===s||D===n:m?D===2*s||D===2*n:$ instanceof c}function C($,y,m=!0){if(_($))throw new Error("first arg must be private key");if(!_(y))throw new Error("second arg must be public key");return c.fromHex(y).multiply(u($)).toRawBytes(m)}const T=e.bits2int||function($){if($.length>8192)throw new Error("input is too large");const y=or($),m=$.length*8-e.nBitLength;return m>0?y>>BigInt(m):y},v=e.bits2int_modN||function($){return o(T($))},I=Co(e.nBitLength);function P($){return Rt("num < 2^"+e.nBitLength,$,Tt,I),Wr($,e.nByteLength)}function S($,y,m=B){if(["recovered","canonical"].some(ee=>ee in m))throw new Error("sign() legacy options not supported");const{hash:D,randomBytes:A}=e;let{lowS:O,prehash:x,extraEntropy:F}=m;O==null&&(O=!0),$=Ve("msgHash",$),yc(m),x&&($=Ve("prehashed msgHash",D($)));const k=v($),z=u(y),q=[P(z),P(k)];if(F!=null&&F!==!1){const ee=F===!0?A(t.BYTES):F;q.push(Ve("extraEntropy",ee))}const H=Si(...q),V=k;function ne(ee){const Y=T(ee);if(!l(Y))return;const Ae=a(Y),Ee=c.BASE.multiply(Y).toAffine(),Ce=o(Ee.x);if(Ce===Tt)return;const Je=o(Ae*o(V+Ce*z));if(Je===Tt)return;let It=(Ee.x===Ce?0:2)|Number(Ee.y&me),yr=Je;return O&&f(Je)&&(yr=p(Je),It^=1),new w(Ce,yr,It)}return{seed:H,k2sig:ne}}const B={lowS:e.lowS,prehash:!1},N={lowS:e.lowS,prehash:!1};function j($,y,m=B){const{seed:D,k2sig:A}=S($,y,m),O=e;return dl(O.hash.outputLen,O.nByteLength,O.hmac)(D,A)}c.BASE._setWindowSize(8);function M($,y,m,D=N){const A=$;y=Ve("msgHash",y),m=Ve("publicKey",m);const{lowS:O,prehash:x,format:F}=D;if(yc(D),"strict"in D)throw new Error("options.strict was renamed to lowS");if(F!==void 0&&F!=="compact"&&F!=="der")throw new Error("format must be compact or der");const k=typeof A=="string"||hr(A),z=!k&&!F&&typeof A=="object"&&A!==null&&typeof A.r=="bigint"&&typeof A.s=="bigint";if(!k&&!z)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let q,H;try{if(z&&(q=new w(A.r,A.s)),k){try{F!=="compact"&&(q=w.fromDER(A))}catch(Je){if(!(Je instanceof Ct.Err))throw Je}!q&&F!=="der"&&(q=w.fromCompact(A))}H=c.fromHex(m)}catch{return!1}if(!q||O&&q.hasHighS())return!1;x&&(y=e.hash(y));const{r:V,s:ne}=q,ee=v(y),Y=a(ne),Ae=o(ee*Y),Ee=o(V*Y),Ce=c.BASE.multiplyAndAddUnsafe(H,Ae,Ee)?.toAffine();return Ce?o(Ce.x)===V:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:C,sign:j,verify:M,ProjectivePoint:c,Signature:w,utils:E}}function Nv(r){return{hash:r,hmac:(e,...t)=>Os(r,e,Lw(...t)),randomBytes:Qr}}function Bv(r,e){const t=i=>Rv({...r,...Nv(i)});return{...t(e),create:t}}const El=gl(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),jv=El.create(BigInt("-3")),Uv=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Lv=Bv({a:jv,b:Uv,Fp:El,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},Ti),_l="base10",Re="base16",ut="base64pad",Mt="base64url",Ni="utf8",Il=0,Nt=1,Bi=2,Fv=0,wc=1,yi=12,To=32;function qv(){const r=Jn.utils.randomPrivateKey(),e=Jn.getPublicKey(r);return{privateKey:qe(r,Re),publicKey:qe(e,Re)}}function Zn(){const r=Qr(To);return qe(r,Re)}function kv(r,e){const t=Jn.getSharedSecret(tt(r,Re),tt(e,Re)),i=Vb(Ti,t,void 0,void 0,To);return qe(i,Re)}function ss(r){const e=Ti(tt(r,Re));return qe(e,Re)}function vt(r){const e=Ti(tt(r,Ni));return qe(e,Re)}function Dl(r){return tt(`${r}`,_l)}function lr(r){return Number(qe(r,_l))}function Sl(r){return r.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Ol(r){const e=r.replace(/-/g,"+").replace(/_/g,"/"),t=(4-e.length%4)%4;return e+"=".repeat(t)}function Mv(r){const e=Dl(typeof r.type<"u"?r.type:Il);if(lr(e)===Nt&&typeof r.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const t=typeof r.senderPublicKey<"u"?tt(r.senderPublicKey,Re):void 0,i=typeof r.iv<"u"?tt(r.iv,Re):Qr(yi),s=tt(r.symKey,Re),n=ul(s,i).encrypt(tt(r.message,Ni)),o=Pl({type:e,sealed:n,iv:i,senderPublicKey:t});return r.encoding===Mt?Sl(o):o}function zv(r){const e=tt(r.symKey,Re),{sealed:t,iv:i}=Oi({encoded:r.encoded,encoding:r.encoding}),s=ul(e,i).decrypt(t);if(s===null)throw new Error("Failed to decrypt");return qe(s,Ni)}function Hv(r,e){const t=Dl(Bi),i=Qr(yi),s=tt(r,Ni),n=Pl({type:t,sealed:s,iv:i});return e===Mt?Sl(n):n}function Vv(r,e){const{sealed:t}=Oi({encoded:r,encoding:e});return qe(t,Ni)}function Pl(r){if(lr(r.type)===Bi)return qe(gi([r.type,r.sealed]),ut);if(lr(r.type)===Nt){if(typeof r.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return qe(gi([r.type,r.senderPublicKey,r.iv,r.sealed]),ut)}return qe(gi([r.type,r.iv,r.sealed]),ut)}function Oi(r){const e=(r.encoding||ut)===Mt?Ol(r.encoded):r.encoded,t=tt(e,ut),i=t.slice(Fv,wc),s=wc;if(lr(i)===Nt){const c=s+To,u=c+yi,h=t.slice(s,c),l=t.slice(c,u),d=t.slice(u);return{type:i,sealed:d,iv:l,senderPublicKey:h}}if(lr(i)===Bi){const c=t.slice(s),u=Qr(yi);return{type:i,sealed:c,iv:u}}const n=s+yi,o=t.slice(s,n),a=t.slice(n);return{type:i,sealed:a,iv:o}}function Kv(r,e){const t=Oi({encoded:r,encoding:e?.encoding});return $l({type:lr(t.type),senderPublicKey:typeof t.senderPublicKey<"u"?qe(t.senderPublicKey,Re):void 0,receiverPublicKey:e?.receiverPublicKey})}function $l(r){const e=r?.type||Il;if(e===Nt){if(typeof r?.senderPublicKey>"u")throw new Error("missing sender public key");if(typeof r?.receiverPublicKey>"u")throw new Error("missing receiver public key")}return{type:e,senderPublicKey:r?.senderPublicKey,receiverPublicKey:r?.receiverPublicKey}}function bc(r){return r.type===Nt&&typeof r.senderPublicKey=="string"&&typeof r.receiverPublicKey=="string"}function vc(r){return r.type===Bi}function Wv(r){const e=Buffer.from(r.x,"base64"),t=Buffer.from(r.y,"base64");return gi([new Uint8Array([4]),e,t])}function Gv(r,e){const[t,i,s]=r.split("."),n=Buffer.from(Ol(s),"base64");if(n.length!==64)throw new Error("Invalid signature length");const o=n.slice(0,32),a=n.slice(32,64),c=`${t}.${i}`,u=Ti(c),h=Wv(e);if(!Lv.verify(gi([o,a]),u,h))throw new Error("Invalid signature");return Fn(r).payload}const Yv="irn";function fs(r){return r?.relay||{protocol:Yv}}function pi(r){const e=ew[r];if(typeof e>"u")throw new Error(`Relay Protocol not supported: ${r}`);return e}function Jv(r,e="-"){const t={},i="relay"+e;return Object.keys(r).forEach(s=>{if(s.startsWith(i)){const n=s.replace(i,""),o=r[s];t[n]=o}}),t}function Ec(r){if(!r.includes("wc:")){const u=Jh(r);u!=null&&u.includes("wc:")&&(r=u)}r=r.includes("wc://")?r.replace("wc://",""):r,r=r.includes("wc:")?r.replace("wc:",""):r;const e=r.indexOf(":"),t=r.indexOf("?")!==-1?r.indexOf("?"):void 0,i=r.substring(0,e),s=r.substring(e+1,t).split("@"),n=typeof t<"u"?r.substring(t):"",o=new URLSearchParams(n),a={};o.forEach((u,h)=>{a[h]=u});const c=typeof a.methods=="string"?a.methods.split(","):void 0;return{protocol:i,topic:Zv(s[0]),version:parseInt(s[1],10),symKey:a.symKey,relay:Jv(a),methods:c,expiryTimestamp:a.expiryTimestamp?parseInt(a.expiryTimestamp,10):void 0}}function Zv(r){return r.startsWith("//")?r.substring(2):r}function Qv(r,e="-"){const t="relay",i={};return Object.keys(r).forEach(s=>{const n=s,o=t+e+n;r[n]&&(i[o]=r[n])}),i}function _c(r){const e=new URLSearchParams,t=Qv(r.relay);Object.keys(t).sort().forEach(s=>{e.set(s,t[s])}),e.set("symKey",r.symKey),r.expiryTimestamp&&e.set("expiryTimestamp",r.expiryTimestamp.toString()),r.methods&&e.set("methods",r.methods.join(","));const i=e.toString();return`${r.protocol}:${r.topic}@${r.version}?${i}`}function Ki(r,e,t){return`${r}?wc_ev=${t}&topic=${e}`}var Xv=Object.defineProperty,e0=Object.defineProperties,t0=Object.getOwnPropertyDescriptors,Ic=Object.getOwnPropertySymbols,r0=Object.prototype.hasOwnProperty,i0=Object.prototype.propertyIsEnumerable,Dc=(r,e,t)=>e in r?Xv(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,s0=(r,e)=>{for(var t in e||(e={}))r0.call(e,t)&&Dc(r,t,e[t]);if(Ic)for(var t of Ic(e))i0.call(e,t)&&Dc(r,t,e[t]);return r},n0=(r,e)=>e0(r,t0(e));function ei(r){const e=[];return r.forEach(t=>{const[i,s]=t.split(":");e.push(`${i}:${s}`)}),e}function o0(r){const e=[];return Object.values(r).forEach(t=>{e.push(...ei(t.accounts))}),e}function a0(r,e){const t=[];return Object.values(r).forEach(i=>{ei(i.accounts).includes(e)&&t.push(...i.methods)}),t}function c0(r,e){const t=[];return Object.values(r).forEach(i=>{ei(i.accounts).includes(e)&&t.push(...i.events)}),t}function Cs(r){return r.includes(":")}function Lr(r){return Cs(r)?r.split(":")[0]:r}function Sc(r){var e,t,i;const s={};if(!Kt(r))return s;for(const[n,o]of Object.entries(r)){const a=Cs(n)?[n]:o.chains,c=o.methods||[],u=o.events||[],h=Lr(n);s[h]=n0(s0({},s[h]),{chains:Et(a,(e=s[h])==null?void 0:e.chains),methods:Et(c,(t=s[h])==null?void 0:t.methods),events:Et(u,(i=s[h])==null?void 0:i.events)})}return s}function u0(r){const e={};return r?.forEach(t=>{var i;const[s,n]=t.split(":");e[s]||(e[s]={accounts:[],chains:[],events:[],methods:[]}),e[s].accounts.push(t),(i=e[s].chains)==null||i.push(`${s}:${n}`)}),e}function Oc(r,e){e=e.map(i=>i.replace("did:pkh:",""));const t=u0(e);for(const[i,s]of Object.entries(t))s.methods?s.methods=Et(s.methods,r):s.methods=r,s.events=["chainChanged","accountsChanged"];return t}function h0(r,e){var t,i,s,n,o,a;const c=Sc(r),u=Sc(e),h={},l=Object.keys(c).concat(Object.keys(u));for(const d of l)h[d]={chains:Et((t=c[d])==null?void 0:t.chains,(i=u[d])==null?void 0:i.chains),methods:Et((s=c[d])==null?void 0:s.methods,(n=u[d])==null?void 0:n.methods),events:Et((o=c[d])==null?void 0:o.events,(a=u[d])==null?void 0:a.events)};return h}const l0={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}},d0={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 L(r,e){const{message:t,code:i}=d0[r];return{message:e?`${t} ${e}`:t,code:i}}function te(r,e){const{message:t,code:i}=l0[r];return{message:e?`${t} ${e}`:t,code:i}}function ht(r,e){return!!Array.isArray(r)}function Kt(r){return Object.getPrototypeOf(r)===Object.prototype&&Object.keys(r).length}function Se(r){return typeof r>"u"}function le(r,e){return e&&Se(r)?!0:typeof r=="string"&&!!r.trim().length}function Ro(r,e){return e&&Se(r)?!0:typeof r=="number"&&!isNaN(r)}function p0(r,e){const{requiredNamespaces:t}=e,i=Object.keys(r.namespaces),s=Object.keys(t);let n=!0;return sr(s,i)?(i.forEach(o=>{const{accounts:a,methods:c,events:u}=r.namespaces[o],h=ei(a),l=t[o];(!sr(Vh(o,l),h)||!sr(l.methods,c)||!sr(l.events,u))&&(n=!1)}),n):!1}function gs(r){return le(r,!1)&&r.includes(":")?r.split(":").length===2:!1}function f0(r){if(le(r,!1)&&r.includes(":")){const e=r.split(":");if(e.length===3){const t=e[0]+":"+e[1];return!!e[2]&&gs(t)}}return!1}function g0(r){function e(t){try{return typeof new URL(t)<"u"}catch{return!1}}try{if(le(r,!1)){if(e(r))return!0;const t=Jh(r);return e(t)}}catch{}return!1}function y0(r){var e;return(e=r?.proposer)==null?void 0:e.publicKey}function m0(r){return r?.topic}function w0(r,e){let t=null;return le(r?.publicKey,!1)||(t=L("MISSING_OR_INVALID",`${e} controller public key should be a string`)),t}function Pc(r){let e=!0;return ht(r)?r.length&&(e=r.every(t=>le(t,!1))):e=!1,e}function b0(r,e,t){let i=null;return ht(e)&&e.length?e.forEach(s=>{i||gs(s)||(i=te("UNSUPPORTED_CHAINS",`${t}, chain ${s} should be a string and conform to "namespace:chainId" format`))}):gs(r)||(i=te("UNSUPPORTED_CHAINS",`${t}, 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"] }`)),i}function v0(r,e,t){let i=null;return Object.entries(r).forEach(([s,n])=>{if(i)return;const o=b0(s,Vh(s,n),`${e} ${t}`);o&&(i=o)}),i}function E0(r,e){let t=null;return ht(r)?r.forEach(i=>{t||f0(i)||(t=te("UNSUPPORTED_ACCOUNTS",`${e}, account ${i} should be a string and conform to "namespace:chainId:address" format`))}):t=te("UNSUPPORTED_ACCOUNTS",`${e}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),t}function _0(r,e){let t=null;return Object.values(r).forEach(i=>{if(t)return;const s=E0(i?.accounts,`${e} namespace`);s&&(t=s)}),t}function I0(r,e){let t=null;return Pc(r?.methods)?Pc(r?.events)||(t=te("UNSUPPORTED_EVENTS",`${e}, events should be an array of strings or empty array for no events`)):t=te("UNSUPPORTED_METHODS",`${e}, methods should be an array of strings or empty array for no methods`),t}function Al(r,e){let t=null;return Object.values(r).forEach(i=>{if(t)return;const s=I0(i,`${e}, namespace`);s&&(t=s)}),t}function D0(r,e,t){let i=null;if(r&&Kt(r)){const s=Al(r,e);s&&(i=s);const n=v0(r,e,t);n&&(i=n)}else i=L("MISSING_OR_INVALID",`${e}, ${t} should be an object with data`);return i}function pn(r,e){let t=null;if(r&&Kt(r)){const i=Al(r,e);i&&(t=i);const s=_0(r,e);s&&(t=s)}else t=L("MISSING_OR_INVALID",`${e}, namespaces should be an object with data`);return t}function xl(r){return le(r.protocol,!0)}function S0(r,e){let t=!1;return r?r&&ht(r)&&r.length&&r.forEach(i=>{t=xl(i)}):t=!0,t}function O0(r){return typeof r=="number"}function Le(r){return typeof r<"u"&&typeof r!==null}function P0(r){return!(!r||typeof r!="object"||!r.code||!Ro(r.code,!1)||!r.message||!le(r.message,!1))}function $0(r){return!(Se(r)||!le(r.method,!1))}function A0(r){return!(Se(r)||Se(r.result)&&Se(r.error)||!Ro(r.id,!1)||!le(r.jsonrpc,!1))}function x0(r){return!(Se(r)||!le(r.name,!1))}function $c(r,e){return!(!gs(e)||!o0(r).includes(e))}function C0(r,e,t){return le(t,!1)?a0(r,e).includes(t):!1}function T0(r,e,t){return le(t,!1)?c0(r,e).includes(t):!1}function Ac(r,e,t){let i=null;const s=R0(r),n=N0(e),o=Object.keys(s),a=Object.keys(n),c=xc(Object.keys(r)),u=xc(Object.keys(e)),h=c.filter(l=>!u.includes(l));return h.length&&(i=L("NON_CONFORMING_NAMESPACES",`${t} namespaces keys don't satisfy requiredNamespaces.
      Required: ${h.toString()}
      Received: ${Object.keys(e).toString()}`)),sr(o,a)||(i=L("NON_CONFORMING_NAMESPACES",`${t} namespaces chains don't satisfy required namespaces.
      Required: ${o.toString()}
      Approved: ${a.toString()}`)),Object.keys(e).forEach(l=>{if(!l.includes(":")||i)return;const d=ei(e[l].accounts);d.includes(l)||(i=L("NON_CONFORMING_NAMESPACES",`${t} namespaces accounts don't satisfy namespace accounts for ${l}
        Required: ${l}
        Approved: ${d.toString()}`))}),o.forEach(l=>{i||(sr(s[l].methods,n[l].methods)?sr(s[l].events,n[l].events)||(i=L("NON_CONFORMING_NAMESPACES",`${t} namespaces events don't satisfy namespace events for ${l}`)):i=L("NON_CONFORMING_NAMESPACES",`${t} namespaces methods don't satisfy namespace methods for ${l}`))}),i}function R0(r){const e={};return Object.keys(r).forEach(t=>{var i;t.includes(":")?e[t]=r[t]:(i=r[t].chains)==null||i.forEach(s=>{e[s]={methods:r[t].methods,events:r[t].events}})}),e}function xc(r){return[...new Set(r.map(e=>e.includes(":")?e.split(":")[0]:e))]}function N0(r){const e={};return Object.keys(r).forEach(t=>{t.includes(":")?e[t]=r[t]:ei(r[t].accounts)?.forEach(s=>{e[s]={accounts:r[t].accounts.filter(n=>n.includes(`${s}:`)),methods:r[t].methods,events:r[t].events}})}),e}function B0(r,e){return Ro(r,!1)&&r<=e.max&&r>=e.min}function Cc(){const r=xi();return new Promise(e=>{switch(r){case We.browser:e(j0());break;case We.reactNative:e(U0());break;case We.node:e(L0());break;default:e(!0)}})}function j0(){return Zr()&&navigator?.onLine}async function U0(){return Wt()&&typeof global<"u"&&global!=null&&global.NetInfo?(await(global==null?void 0:global.NetInfo.fetch()))?.isConnected:!0}function L0(){return!0}function F0(r){switch(xi()){case We.browser:q0(r);break;case We.reactNative:k0(r);break}}function q0(r){!Wt()&&Zr()&&(window.addEventListener("online",()=>r(!0)),window.addEventListener("offline",()=>r(!1)))}function k0(r){Wt()&&typeof global<"u"&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(e=>r(e?.isConnected))}function M0(){var r;return Zr()&&Bt.getDocument()?((r=Bt.getDocument())==null?void 0:r.visibilityState)==="visible":!0}const fn={};class ai{static get(e){return fn[e]}static set(e,t){fn[e]=t}static delete(e){delete fn[e]}}class dr{}let z0=class extends dr{constructor(e){super()}};const Tc=U.FIVE_SECONDS,pr={pulse:"heartbeat_pulse"};let H0=class Cl extends z0{constructor(e){super(e),this.events=new Ye.EventEmitter,this.interval=Tc,this.interval=e?.interval||Tc}static async init(e){const t=new Cl(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(),U.toMiliseconds(this.interval))}pulse(){this.events.emit(pr.pulse)}};const V0=/"(?:_|\\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*:/,K0=/"(?: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*:/,W0=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function G0(r,e){if(r==="__proto__"||r==="constructor"&&e&&typeof e=="object"&&"prototype"in e){Y0(r);return}return e}function Y0(r){console.warn(`[destr] Dropping "${r}" key to prevent prototype pollution.`)}function Wi(r,e={}){if(typeof r!="string")return r;if(r[0]==='"'&&r[r.length-1]==='"'&&r.indexOf("\\")===-1)return r.slice(1,-1);const t=r.trim();if(t.length<=9)switch(t.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!W0.test(r)){if(e.strict)throw new SyntaxError("[destr] Invalid JSON");return r}try{if(V0.test(r)||K0.test(r)){if(e.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(r,G0)}return JSON.parse(r)}catch(i){if(e.strict)throw i;return r}}function J0(r){return!r||typeof r.then!="function"?Promise.resolve(r):r}function ye(r,...e){try{return J0(r(...e))}catch(t){return Promise.reject(t)}}function Z0(r){const e=typeof r;return r===null||e!=="object"&&e!=="function"}function Q0(r){const e=Object.getPrototypeOf(r);return!e||e.isPrototypeOf(Object)}function ns(r){if(Z0(r))return String(r);if(Q0(r)||Array.isArray(r))return JSON.stringify(r);if(typeof r.toJSON=="function")return ns(r.toJSON());throw new Error("[unstorage] Cannot stringify value!")}const Qn="base64:";function X0(r){return typeof r=="string"?r:Qn+rE(r)}function eE(r){return typeof r!="string"||!r.startsWith(Qn)?r:tE(r.slice(Qn.length))}function tE(r){return globalThis.Buffer?Buffer.from(r,"base64"):Uint8Array.from(globalThis.atob(r),e=>e.codePointAt(0))}function rE(r){return globalThis.Buffer?Buffer.from(r).toString("base64"):globalThis.btoa(String.fromCodePoint(...r))}function Ue(r){return r&&r.split("?")[0]?.replace(/[/\\]/g,":").replace(/:+/g,":").replace(/^:|:$/g,"")||""}function iE(...r){return Ue(r.join(":"))}function Gi(r){return r=Ue(r),r?r+":":""}function sE(r,e){if(e===void 0)return!0;let t=0,i=r.indexOf(":");for(;i>-1;)t++,i=r.indexOf(":",i+1);return t<=e}function nE(r,e){return e?r.startsWith(e)&&r[r.length-1]!=="$":r[r.length-1]!=="$"}const oE="memory",aE=()=>{const r=new Map;return{name:oE,getInstance:()=>r,hasItem(e){return r.has(e)},getItem(e){return r.get(e)??null},getItemRaw(e){return r.get(e)??null},setItem(e,t){r.set(e,t)},setItemRaw(e,t){r.set(e,t)},removeItem(e){r.delete(e)},getKeys(){return[...r.keys()]},clear(){r.clear()},dispose(){r.clear()}}};function cE(r={}){const e={mounts:{"":r.driver||aE()},mountpoints:[""],watching:!1,watchListeners:[],unwatch:{}},t=u=>{for(const h of e.mountpoints)if(u.startsWith(h))return{base:h,relativeKey:u.slice(h.length),driver:e.mounts[h]};return{base:"",relativeKey:u,driver:e.mounts[""]}},i=(u,h)=>e.mountpoints.filter(l=>l.startsWith(u)||h&&u.startsWith(l)).map(l=>({relativeBase:u.length>l.length?u.slice(l.length):void 0,mountpoint:l,driver:e.mounts[l]})),s=(u,h)=>{if(e.watching){h=Ue(h);for(const l of e.watchListeners)l(u,h)}},n=async()=>{if(!e.watching){e.watching=!0;for(const u in e.mounts)e.unwatch[u]=await Rc(e.mounts[u],s,u)}},o=async()=>{if(e.watching){for(const u in e.unwatch)await e.unwatch[u]();e.unwatch={},e.watching=!1}},a=(u,h,l)=>{const d=new Map,f=p=>{let g=d.get(p.base);return g||(g={driver:p.driver,base:p.base,items:[]},d.set(p.base,g)),g};for(const p of u){const g=typeof p=="string",w=Ue(g?p:p.key),E=g?void 0:p.value,b=g||!p.options?h:{...h,...p.options},_=t(w);f(_).items.push({key:w,value:E,relativeKey:_.relativeKey,options:b})}return Promise.all([...d.values()].map(p=>l(p))).then(p=>p.flat())},c={hasItem(u,h={}){u=Ue(u);const{relativeKey:l,driver:d}=t(u);return ye(d.hasItem,l,h)},getItem(u,h={}){u=Ue(u);const{relativeKey:l,driver:d}=t(u);return ye(d.getItem,l,h).then(f=>Wi(f))},getItems(u,h={}){return a(u,h,l=>l.driver.getItems?ye(l.driver.getItems,l.items.map(d=>({key:d.relativeKey,options:d.options})),h).then(d=>d.map(f=>({key:iE(l.base,f.key),value:Wi(f.value)}))):Promise.all(l.items.map(d=>ye(l.driver.getItem,d.relativeKey,d.options).then(f=>({key:d.key,value:Wi(f)})))))},getItemRaw(u,h={}){u=Ue(u);const{relativeKey:l,driver:d}=t(u);return d.getItemRaw?ye(d.getItemRaw,l,h):ye(d.getItem,l,h).then(f=>eE(f))},async setItem(u,h,l={}){if(h===void 0)return c.removeItem(u);u=Ue(u);const{relativeKey:d,driver:f}=t(u);f.setItem&&(await ye(f.setItem,d,ns(h),l),f.watch||s("update",u))},async setItems(u,h){await a(u,h,async l=>{if(l.driver.setItems)return ye(l.driver.setItems,l.items.map(d=>({key:d.relativeKey,value:ns(d.value),options:d.options})),h);l.driver.setItem&&await Promise.all(l.items.map(d=>ye(l.driver.setItem,d.relativeKey,ns(d.value),d.options)))})},async setItemRaw(u,h,l={}){if(h===void 0)return c.removeItem(u,l);u=Ue(u);const{relativeKey:d,driver:f}=t(u);if(f.setItemRaw)await ye(f.setItemRaw,d,h,l);else if(f.setItem)await ye(f.setItem,d,X0(h),l);else return;f.watch||s("update",u)},async removeItem(u,h={}){typeof h=="boolean"&&(h={removeMeta:h}),u=Ue(u);const{relativeKey:l,driver:d}=t(u);d.removeItem&&(await ye(d.removeItem,l,h),(h.removeMeta||h.removeMata)&&await ye(d.removeItem,l+"$",h),d.watch||s("remove",u))},async getMeta(u,h={}){typeof h=="boolean"&&(h={nativeOnly:h}),u=Ue(u);const{relativeKey:l,driver:d}=t(u),f=Object.create(null);if(d.getMeta&&Object.assign(f,await ye(d.getMeta,l,h)),!h.nativeOnly){const p=await ye(d.getItem,l+"$",h).then(g=>Wi(g));p&&typeof p=="object"&&(typeof p.atime=="string"&&(p.atime=new Date(p.atime)),typeof p.mtime=="string"&&(p.mtime=new Date(p.mtime)),Object.assign(f,p))}return f},setMeta(u,h,l={}){return this.setItem(u+"$",h,l)},removeMeta(u,h={}){return this.removeItem(u+"$",h)},async getKeys(u,h={}){u=Gi(u);const l=i(u,!0);let d=[];const f=[];let p=!0;for(const w of l){w.driver.flags?.maxDepth||(p=!1);const E=await ye(w.driver.getKeys,w.relativeBase,h);for(const b of E){const _=w.mountpoint+Ue(b);d.some(C=>_.startsWith(C))||f.push(_)}d=[w.mountpoint,...d.filter(b=>!b.startsWith(w.mountpoint))]}const g=h.maxDepth!==void 0&&!p;return f.filter(w=>(!g||sE(w,h.maxDepth))&&nE(w,u))},async clear(u,h={}){u=Gi(u),await Promise.all(i(u,!1).map(async l=>{if(l.driver.clear)return ye(l.driver.clear,l.relativeBase,h);if(l.driver.removeItem){const d=await l.driver.getKeys(l.relativeBase||"",h);return Promise.all(d.map(f=>l.driver.removeItem(f,h)))}}))},async dispose(){await Promise.all(Object.values(e.mounts).map(u=>Nc(u)))},async watch(u){return await n(),e.watchListeners.push(u),async()=>{e.watchListeners=e.watchListeners.filter(h=>h!==u),e.watchListeners.length===0&&await o()}},async unwatch(){e.watchListeners=[],await o()},mount(u,h){if(u=Gi(u),u&&e.mounts[u])throw new Error(`already mounted at ${u}`);return u&&(e.mountpoints.push(u),e.mountpoints.sort((l,d)=>d.length-l.length)),e.mounts[u]=h,e.watching&&Promise.resolve(Rc(h,s,u)).then(l=>{e.unwatch[u]=l}).catch(console.error),c},async unmount(u,h=!0){u=Gi(u),!(!u||!e.mounts[u])&&(e.watching&&u in e.unwatch&&(e.unwatch[u]?.(),delete e.unwatch[u]),h&&await Nc(e.mounts[u]),e.mountpoints=e.mountpoints.filter(l=>l!==u),delete e.mounts[u])},getMount(u=""){u=Ue(u)+":";const h=t(u);return{driver:h.driver,base:h.base}},getMounts(u="",h={}){return u=Ue(u),i(u,h.parents).map(d=>({driver:d.driver,base:d.mountpoint}))},keys:(u,h={})=>c.getKeys(u,h),get:(u,h={})=>c.getItem(u,h),set:(u,h,l={})=>c.setItem(u,h,l),has:(u,h={})=>c.hasItem(u,h),del:(u,h={})=>c.removeItem(u,h),remove:(u,h={})=>c.removeItem(u,h)};return c}function Rc(r,e,t){return r.watch?r.watch((i,s)=>e(i,t+s)):()=>{}}async function Nc(r){typeof r.dispose=="function"&&await ye(r.dispose)}const uE="idb-keyval";var hE=(r={})=>{const e=r.base&&r.base.length>0?`${r.base}:`:"",t=s=>e+s;let i;return r.dbName&&r.storeName&&(i=$d(r.dbName,r.storeName)),{name:uE,options:r,async hasItem(s){return!(typeof await Wo(t(s),i)>"u")},async getItem(s){return await Wo(t(s),i)??null},setItem(s,n){return Td(t(s),n,i)},removeItem(s){return Cd(t(s),i)},getKeys(){return xd(i)},clear(){return Ad(i)}}};const lE="WALLET_CONNECT_V2_INDEXED_DB",dE="keyvaluestorage";let pE=class{constructor(){this.indexedDb=cE({driver:hE({dbName:lE,storeName:dE})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(e=>[e.key,e.value])}async getItem(e){const t=await this.indexedDb.getItem(e);if(t!==null)return t}async setItem(e,t){await this.indexedDb.setItem(e,jt(t))}async removeItem(e){await this.indexedDb.removeItem(e)}};var gn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},os={exports:{}};(function(){let r;function e(){}r=e,r.prototype.getItem=function(t){return this.hasOwnProperty(t)?String(this[t]):null},r.prototype.setItem=function(t,i){this[t]=String(i)},r.prototype.removeItem=function(t){delete this[t]},r.prototype.clear=function(){const t=this;Object.keys(t).forEach(function(i){t[i]=void 0,delete t[i]})},r.prototype.key=function(t){return t=t||0,Object.keys(this)[t]},r.prototype.__defineGetter__("length",function(){return Object.keys(this).length}),typeof gn<"u"&&gn.localStorage?os.exports=gn.localStorage:typeof window<"u"&&window.localStorage?os.exports=window.localStorage:os.exports=new e})();function fE(r){var e;return[r[0],cr((e=r[1])!=null?e:"")]}let gE=class{constructor(){this.localStorage=os.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(fE)}async getItem(e){const t=this.localStorage.getItem(e);if(t!==null)return cr(t)}async setItem(e,t){this.localStorage.setItem(e,jt(t))}async removeItem(e){this.localStorage.removeItem(e)}};const yE="wc_storage_version",Bc=1,mE=async(r,e,t)=>{const i=yE,s=await e.getItem(i);if(s&&s>=Bc){t(e);return}const n=await r.getKeys();if(!n.length){t(e);return}const o=[];for(;n.length;){const a=n.shift();if(!a)continue;const c=a.toLowerCase();if(c.includes("wc@")||c.includes("walletconnect")||c.includes("wc_")||c.includes("wallet_connect")){const u=await r.getItem(a);await e.setItem(a,u),o.push(a)}}await e.setItem(i,Bc),t(e),wE(r,o)},wE=async(r,e)=>{e.length&&e.forEach(async t=>{await r.removeItem(t)})};let bE=class{constructor(){this.initialized=!1,this.setInitialized=t=>{this.storage=t,this.initialized=!0};const e=new gE;this.storage=e;try{const t=new pE;mE(e,t,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(e){return await this.initialize(),this.storage.getItem(e)}async setItem(e,t){return await this.initialize(),this.storage.setItem(e,t)}async removeItem(e){return await this.initialize(),this.storage.removeItem(e)}async initialize(){this.initialized||await new Promise(e=>{const t=setInterval(()=>{this.initialized&&(clearInterval(t),e())},20)})}};var yn,jc;function vE(){if(jc)return yn;jc=1;function r(t){try{return JSON.stringify(t)}catch{return'"[Circular]"'}}yn=e;function e(t,i,s){var n=s&&s.stringify||r,o=1;if(typeof t=="object"&&t!==null){var a=i.length+o;if(a===1)return t;var c=new Array(a);c[0]=n(t);for(var u=1;u<a;u++)c[u]=n(i[u]);return c.join(" ")}if(typeof t!="string")return t;var h=i.length;if(h===0)return t;for(var l="",d=1-o,f=-1,p=t&&t.length||0,g=0;g<p;){if(t.charCodeAt(g)===37&&g+1<p){switch(f=f>-1?f:0,t.charCodeAt(g+1)){case 100:case 102:if(d>=h||i[d]==null)break;f<g&&(l+=t.slice(f,g)),l+=Number(i[d]),f=g+2,g++;break;case 105:if(d>=h||i[d]==null)break;f<g&&(l+=t.slice(f,g)),l+=Math.floor(Number(i[d])),f=g+2,g++;break;case 79:case 111:case 106:if(d>=h||i[d]===void 0)break;f<g&&(l+=t.slice(f,g));var w=typeof i[d];if(w==="string"){l+="'"+i[d]+"'",f=g+2,g++;break}if(w==="function"){l+=i[d].name||"<anonymous>",f=g+2,g++;break}l+=n(i[d]),f=g+2,g++;break;case 115:if(d>=h)break;f<g&&(l+=t.slice(f,g)),l+=String(i[d]),f=g+2,g++;break;case 37:f<g&&(l+=t.slice(f,g)),l+="%",f=g+2,g++,d--;break}++d}++g}return f===-1?t:(f<p&&(l+=t.slice(f)),l)}return yn}var mn,Uc;function EE(){if(Uc)return mn;Uc=1;const r=vE();mn=s;const e=T().console||{},t={mapHttpRequest:p,mapHttpResponse:p,wrapRequestSerializer:g,wrapResponseSerializer:g,wrapErrorSerializer:g,req:p,res:p,err:d};function i(v,I){return Array.isArray(v)?v.filter(function(S){return S!=="!stdSerializers.err"}):v===!0?Object.keys(I):!1}function s(v){v=v||{},v.browser=v.browser||{};const I=v.browser.transmit;if(I&&typeof I.send!="function")throw Error("pino: transmit option must have a send function");const P=v.browser.write||e;v.browser.write&&(v.browser.asObject=!0);const S=v.serializers||{},B=i(v.browser.serialize,S);let N=v.browser.serialize;Array.isArray(v.browser.serialize)&&v.browser.serialize.indexOf("!stdSerializers.err")>-1&&(N=!1);const j=["error","fatal","warn","info","debug","trace"];typeof P=="function"&&(P.error=P.fatal=P.warn=P.info=P.debug=P.trace=P),v.enabled===!1&&(v.level="silent");const M=v.level||"info",$=Object.create(P);$.log||($.log=w),Object.defineProperty($,"levelVal",{get:m}),Object.defineProperty($,"level",{get:D,set:A});const y={transmit:I,serialize:B,asObject:v.browser.asObject,levels:j,timestamp:f(v)};$.levels=s.levels,$.level=M,$.setMaxListeners=$.getMaxListeners=$.emit=$.addListener=$.on=$.prependListener=$.once=$.prependOnceListener=$.removeListener=$.removeAllListeners=$.listeners=$.listenerCount=$.eventNames=$.write=$.flush=w,$.serializers=S,$._serialize=B,$._stdErrSerialize=N,$.child=O,I&&($._logEvent=l());function m(){return this.level==="silent"?1/0:this.levels.values[this.level]}function D(){return this._level}function A(x){if(x!=="silent"&&!this.levels.values[x])throw Error("unknown level "+x);this._level=x,n(y,$,"error","log"),n(y,$,"fatal","error"),n(y,$,"warn","error"),n(y,$,"info","log"),n(y,$,"debug","log"),n(y,$,"trace","log")}function O(x,F){if(!x)throw new Error("missing bindings for child Pino");F=F||{},B&&x.serializers&&(F.serializers=x.serializers);const k=F.serializers;if(B&&k){var z=Object.assign({},S,k),q=v.browser.serialize===!0?Object.keys(z):B;delete x.serializers,c([x],q,z,this._stdErrSerialize)}function H(V){this._childLevel=(V._childLevel|0)+1,this.error=u(V,x,"error"),this.fatal=u(V,x,"fatal"),this.warn=u(V,x,"warn"),this.info=u(V,x,"info"),this.debug=u(V,x,"debug"),this.trace=u(V,x,"trace"),z&&(this.serializers=z,this._serialize=q),I&&(this._logEvent=l([].concat(V._logEvent.bindings,x)))}return H.prototype=this,new H(this)}return $}s.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},s.stdSerializers=t,s.stdTimeFunctions=Object.assign({},{nullTime:E,epochTime:b,unixTime:_,isoTime:C});function n(v,I,P,S){const B=Object.getPrototypeOf(I);I[P]=I.levelVal>I.levels.values[P]?w:B[P]?B[P]:e[P]||e[S]||w,o(v,I,P)}function o(v,I,P){!v.transmit&&I[P]===w||(I[P]=(function(S){return function(){const N=v.timestamp(),j=new Array(arguments.length),M=Object.getPrototypeOf&&Object.getPrototypeOf(this)===e?e:this;for(var $=0;$<j.length;$++)j[$]=arguments[$];if(v.serialize&&!v.asObject&&c(j,this._serialize,this.serializers,this._stdErrSerialize),v.asObject?S.call(M,a(this,P,j,N)):S.apply(M,j),v.transmit){const y=v.transmit.level||I.level,m=s.levels.values[y],D=s.levels.values[P];if(D<m)return;h(this,{ts:N,methodLevel:P,methodValue:D,transmitValue:s.levels.values[v.transmit.level||I.level],send:v.transmit.send,val:I.levelVal},j)}}})(I[P]))}function a(v,I,P,S){v._serialize&&c(P,v._serialize,v.serializers,v._stdErrSerialize);const B=P.slice();let N=B[0];const j={};S&&(j.time=S),j.level=s.levels.values[I];let M=(v._childLevel|0)+1;if(M<1&&(M=1),N!==null&&typeof N=="object"){for(;M--&&typeof B[0]=="object";)Object.assign(j,B.shift());N=B.length?r(B.shift(),B):void 0}else typeof N=="string"&&(N=r(B.shift(),B));return N!==void 0&&(j.msg=N),j}function c(v,I,P,S){for(const B in v)if(S&&v[B]instanceof Error)v[B]=s.stdSerializers.err(v[B]);else if(typeof v[B]=="object"&&!Array.isArray(v[B]))for(const N in v[B])I&&I.indexOf(N)>-1&&N in P&&(v[B][N]=P[N](v[B][N]))}function u(v,I,P){return function(){const S=new Array(1+arguments.length);S[0]=I;for(var B=1;B<S.length;B++)S[B]=arguments[B-1];return v[P].apply(this,S)}}function h(v,I,P){const S=I.send,B=I.ts,N=I.methodLevel,j=I.methodValue,M=I.val,$=v._logEvent.bindings;c(P,v._serialize||Object.keys(v.serializers),v.serializers,v._stdErrSerialize===void 0?!0:v._stdErrSerialize),v._logEvent.ts=B,v._logEvent.messages=P.filter(function(y){return $.indexOf(y)===-1}),v._logEvent.level.label=N,v._logEvent.level.value=j,S(N,v._logEvent,M),v._logEvent=l($)}function l(v){return{ts:0,messages:[],bindings:v||[],level:{label:"",value:0}}}function d(v){const I={type:v.constructor.name,msg:v.message,stack:v.stack};for(const P in v)I[P]===void 0&&(I[P]=v[P]);return I}function f(v){return typeof v.timestamp=="function"?v.timestamp:v.timestamp===!1?E:b}function p(){return{}}function g(v){return v}function w(){}function E(){return!1}function b(){return Date.now()}function _(){return Math.round(Date.now()/1e3)}function C(){return new Date(Date.now()).toISOString()}function T(){function v(I){return typeof I<"u"&&I}try{return typeof globalThis<"u"||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return v(self)||v(window)||v(this)||{}}}return mn}var Br=EE();const ji=yo(Br),_E={level:"info"},Ui="custom_context",No=1e3*1024;let IE=class{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}},Lc=class{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const t=new IE(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}}}}},Tl=class{constructor(e,t=No){this.level=e??"error",this.levelValue=Br.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new Lc(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===Br.levels.values.error?console.error(e):t===Br.levels.values.warn?console.warn(e):t===Br.levels.values.debug?console.debug(e):t===Br.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(jt({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 Lc(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(jt({extraMetadata:e})),new Blob(t,{type:"application/json"})}},DE=class{constructor(e,t=No){this.baseChunkLogger=new Tl(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)),i=document.createElement("a");i.href=t,i.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(t)}},SE=class{constructor(e,t=No){this.baseChunkLogger=new Tl(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 OE=Object.defineProperty,PE=Object.defineProperties,$E=Object.getOwnPropertyDescriptors,Fc=Object.getOwnPropertySymbols,AE=Object.prototype.hasOwnProperty,xE=Object.prototype.propertyIsEnumerable,qc=(r,e,t)=>e in r?OE(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ys=(r,e)=>{for(var t in e||(e={}))AE.call(e,t)&&qc(r,t,e[t]);if(Fc)for(var t of Fc(e))xE.call(e,t)&&qc(r,t,e[t]);return r},ms=(r,e)=>PE(r,$E(e));function Ts(r){return ms(ys({},r),{level:r?.level||_E.level})}function CE(r,e=Ui){return r[e]||""}function TE(r,e,t=Ui){return r[t]=e,r}function ke(r,e=Ui){let t="";return typeof r.bindings>"u"?t=CE(r,e):t=r.bindings().context||"",t}function RE(r,e,t=Ui){const i=ke(r,t);return i.trim()?`${i}/${e}`:e}function Ne(r,e,t=Ui){const i=RE(r,e,t),s=r.child({context:i});return TE(s,i,t)}function NE(r){var e,t;const i=new DE((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:ji(ms(ys({},r.opts),{level:"trace",browser:ms(ys({},(t=r.opts)==null?void 0:t.browser),{write:s=>i.write(s)})})),chunkLoggerController:i}}function BE(r){var e;const t=new SE((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:ji(ms(ys({},r.opts),{level:"trace"}),t),chunkLoggerController:t}}function jE(r){return typeof r.loggerOverride<"u"&&typeof r.loggerOverride!="string"?{logger:r.loggerOverride,chunkLoggerController:null}:typeof window<"u"?NE(r):BE(r)}var UE=Object.defineProperty,LE=(r,e,t)=>e in r?UE(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,kc=(r,e,t)=>LE(r,typeof e!="symbol"?e+"":e,t);let FE=class extends dr{constructor(e){super(),this.opts=e,kc(this,"protocol","wc"),kc(this,"version",2)}};var qE=Object.defineProperty,kE=(r,e,t)=>e in r?qE(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ME=(r,e,t)=>kE(r,e+"",t);let zE=class extends dr{constructor(e,t){super(),this.core=e,this.logger=t,ME(this,"records",new Map)}},HE=class{constructor(e,t){this.logger=e,this.core=t}};class VE extends dr{constructor(e,t){super(),this.relayer=e,this.logger=t}}let KE=class extends dr{constructor(e){super()}},WE=class{constructor(e,t,i,s){this.core=e,this.logger=t,this.name=i}},GE=class extends dr{constructor(e,t){super(),this.relayer=e,this.logger=t}},YE=class extends dr{constructor(e,t){super(),this.core=e,this.logger=t}},JE=class{constructor(e,t,i){this.core=e,this.logger=t,this.store=i}},ZE=class{constructor(e,t){this.projectId=e,this.logger=t}},QE=class{constructor(e,t,i){this.core=e,this.logger=t,this.telemetryEnabled=i}};var XE=Object.defineProperty,e1=(r,e,t)=>e in r?XE(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Mc=(r,e,t)=>e1(r,typeof e!="symbol"?e+"":e,t);let t1=class{constructor(e){this.opts=e,Mc(this,"protocol","wc"),Mc(this,"version",2)}},r1=class{constructor(e){this.client=e}};const i1="PARSE_ERROR",s1="INVALID_REQUEST",n1="METHOD_NOT_FOUND",o1="INVALID_PARAMS",Rl="INTERNAL_ERROR",Bo="SERVER_ERROR",a1=[-32700,-32600,-32601,-32602,-32603],mi={[i1]:{code:-32700,message:"Parse error"},[s1]:{code:-32600,message:"Invalid Request"},[n1]:{code:-32601,message:"Method not found"},[o1]:{code:-32602,message:"Invalid params"},[Rl]:{code:-32603,message:"Internal error"},[Bo]:{code:-32e3,message:"Server error"}},Nl=Bo;function c1(r){return a1.includes(r)}function zc(r){return Object.keys(mi).includes(r)?mi[r]:mi[Nl]}function u1(r){const e=Object.values(mi).find(t=>t.code===r);return e||mi[Nl]}function Bl(r,e,t){return r.message.includes("getaddrinfo ENOTFOUND")||r.message.includes("connect ECONNREFUSED")?new Error(`Unavailable ${t} RPC url at ${e}`):r}var wn={},$t={},Hc;function h1(){if(Hc)return $t;Hc=1,Object.defineProperty($t,"__esModule",{value:!0}),$t.isBrowserCryptoAvailable=$t.getSubtleCrypto=$t.getBrowerCrypto=void 0;function r(){return(bt===null||bt===void 0?void 0:bt.crypto)||(bt===null||bt===void 0?void 0:bt.msCrypto)||{}}$t.getBrowerCrypto=r;function e(){const i=r();return i.subtle||i.webkitSubtle}$t.getSubtleCrypto=e;function t(){return!!r()&&!!e()}return $t.isBrowserCryptoAvailable=t,$t}var At={},Vc;function l1(){if(Vc)return At;Vc=1,Object.defineProperty(At,"__esModule",{value:!0}),At.isBrowser=At.isNode=At.isReactNative=void 0;function r(){return typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"}At.isReactNative=r;function e(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}At.isNode=e;function t(){return!r()&&!e()}return At.isBrowser=t,At}var Kc;function d1(){return Kc||(Kc=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0});const e=Pi;e.__exportStar(h1(),r),e.__exportStar(l1(),r)})(wn)),wn}var p1=d1();function mt(r=3){const e=Date.now()*Math.pow(10,r),t=Math.floor(Math.random()*Math.pow(10,r));return e+t}function nr(r=6){return BigInt(mt(r))}function Ht(r,e,t){return{id:t||mt(),jsonrpc:"2.0",method:r,params:e}}function Rs(r,e){return{id:r,jsonrpc:"2.0",result:e}}function Ns(r,e,t){return{id:r,jsonrpc:"2.0",error:f1(e)}}function f1(r,e){return typeof r>"u"?zc(Rl):(typeof r=="string"&&(r=Object.assign(Object.assign({},zc(Bo)),{message:r})),c1(r.code)&&(r=u1(r.code)),r)}class g1{}class y1 extends g1{constructor(){super()}}class m1 extends y1{constructor(e){super()}}const w1="^https?:",b1="^wss?:";function v1(r){const e=r.match(new RegExp(/^\w+:/,"gi"));if(!(!e||!e.length))return e[0]}function jl(r,e){const t=v1(r);return typeof t>"u"?!1:new RegExp(e).test(t)}function Wc(r){return jl(r,w1)}function Gc(r){return jl(r,b1)}function E1(r){return new RegExp("wss?://localhost(:d{2,5})?").test(r)}function Ul(r){return typeof r=="object"&&"id"in r&&"jsonrpc"in r&&r.jsonrpc==="2.0"}function jo(r){return Ul(r)&&"method"in r}function Bs(r){return Ul(r)&&(wt(r)||et(r))}function wt(r){return"result"in r}function et(r){return"error"in r}let rt=class extends m1{constructor(e){super(e),this.events=new Ye.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}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 request(e,t){return this.requestStrict(Ht(e.method,e.params||[],e.id||nr().toString()),t)}async requestStrict(e,t){return new Promise(async(i,s)=>{if(!this.connection.connected)try{await this.open()}catch(n){s(n)}this.events.on(`${e.id}`,n=>{et(n)?s(n.error):i(n.result)});try{await this.connection.send(e,t)}catch(n){s(n)}})}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),Bs(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&e.code===3e3&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),typeof e=="string"&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",e=>this.onPayload(e)),this.connection.on("close",e=>this.onClose(e)),this.connection.on("error",e=>this.events.emit("error",e)),this.connection.on("register_error",e=>this.onClose()),this.hasRegisteredEventListeners=!0)}};const _1=()=>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"),I1=()=>typeof WebSocket<"u"||typeof global<"u"&&typeof global.WebSocket<"u"||typeof window<"u"&&typeof window.WebSocket<"u"||typeof self<"u"&&typeof self.WebSocket<"u",Yc=r=>r.split("?")[0],Jc=10,D1=_1();let S1=class{constructor(e){if(this.url=e,this.events=new Ye.EventEmitter,this.registering=!1,!Gc(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=i=>{this.onClose(i),e()},this.socket.close()})}async send(e){typeof this.socket>"u"&&(this.socket=await this.register());try{this.socket.send(jt(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!Gc(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((i,s)=>{this.events.once("register_error",n=>{this.resetMaxListeners(),s(n)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.socket>"u")return s(new Error("WebSocket connection is missing or invalid"));i(this.socket)})})}return this.url=e,this.registering=!0,new Promise((t,i)=>{const s=p1.isReactNative()?void 0:{rejectUnauthorized:!E1(e)},n=new D1(e,[],s);I1()?n.onerror=o=>{const a=o;i(this.emitError(a.error))}:n.on("error",o=>{i(this.emitError(o))}),n.onopen=()=>{this.onOpen(n),t(n)}})}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"?cr(e.data):e.data;this.events.emit("payload",t)}onError(e,t){const i=this.parseError(t),s=i.message||i.toString(),n=Ns(e,s);this.events.emit("payload",n)}parseError(e,t=this.url){return Bl(e,Yc(t),"WS")}resetMaxListeners(){this.events.getMaxListeners()>Jc&&this.events.setMaxListeners(Jc)}emitError(e){const t=this.parseError(new Error(e?.message||`WebSocket connection failed for host: ${Yc(this.url)}`));return this.events.emit("register_error",t),t}};var O1={ALCHEMY_API_KEYS:"test",INFURA_API_KEY:"test",COINGECKO_API_KEY:"test",MERCURYO_SECRET_KEY:"test",VERCEL:"test",VERCEL_ENV:"test"};const Ll="wc",Fl=2,Xn="core",_t=`${Ll}@2:${Xn}:`,P1={logger:"error"},$1={database:":memory:"},A1="crypto",Zc="client_ed25519_seed",x1=U.ONE_DAY,C1="keychain",T1="0.3",R1="messages",N1="0.3",Qc=U.SIX_HOURS,B1="publisher",ql="irn",j1="error",kl="wss://relay.walletconnect.org",U1="relayer",we={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"},L1="_subscription",Ze={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},F1=.1,eo="2.21.1",ae={link_mode:"link_mode",relay:"relay"},as={inbound:"inbound",outbound:"outbound"},q1="0.3",k1="WALLETCONNECT_CLIENT_ID",Xc="WALLETCONNECT_LINK_MODE_APPS",He={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},M1="subscription",z1="0.3",H1="pairing",V1="0.3",ci={wc_pairingDelete:{req:{ttl:U.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:U.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:U.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:U.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:U.ONE_DAY,prompt:!1,tag:0},res:{ttl:U.ONE_DAY,prompt:!1,tag:0}}},rr={create:"pairing_create",expire:"pairing_expire",delete:"pairing_delete",ping:"pairing_ping"},nt={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},K1="history",W1="0.3",G1="expirer",Xe={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},Y1="0.3",J1="verify-api",Z1="https://verify.walletconnect.com",Ml="https://verify.walletconnect.org",wi=Ml,Q1=`${wi}/v3`,X1=[Z1,Ml],e_="echo",t_="https://echo.walletconnect.com",yt={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"},xt={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"},ot={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"},Jt={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"},Zt={authenticated_session_approve_started:"authenticated_session_approve_started",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"},ui={no_internet_connection:"no_internet_connection",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"},r_=.1,i_="event-client",s_=86400,n_="https://pulse.walletconnect.org/batch";function o_(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),u=Math.log(a)/Math.log(256),h=Math.log(256)/Math.log(a);function l(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var g=0,w=0,E=0,b=p.length;E!==b&&p[E]===0;)E++,g++;for(var _=(b-E)*h+1>>>0,C=new Uint8Array(_);E!==b;){for(var T=p[E],v=0,I=_-1;(T!==0||v<w)&&I!==-1;I--,v++)T+=256*C[I]>>>0,C[I]=T%a>>>0,T=T/a>>>0;if(T!==0)throw new Error("Non-zero carry");w=v,E++}for(var P=_-w;P!==_&&C[P]===0;)P++;for(var S=c.repeat(g);P<_;++P)S+=r.charAt(C[P]);return S}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var g=0;if(p[g]!==" "){for(var w=0,E=0;p[g]===c;)w++,g++;for(var b=(p.length-g)*u+1>>>0,_=new Uint8Array(b);p[g];){var C=t[p.charCodeAt(g)];if(C===255)return;for(var T=0,v=b-1;(C!==0||T<E)&&v!==-1;v--,T++)C+=a*_[v]>>>0,_[v]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");E=T,g++}if(p[g]!==" "){for(var I=b-E;I!==b&&_[I]===0;)I++;for(var P=new Uint8Array(w+(b-I)),S=w;I!==b;)P[S++]=_[I++];return P}}}function f(p){var g=d(p);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:d,decode:f}}var a_=o_,c_=a_;const zl=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")},u_=r=>new TextEncoder().encode(r),h_=r=>new TextDecoder().decode(r);class l_{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 d_{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 Hl(this,e)}}class p_{constructor(e){this.decoders=e}or(e){return Hl(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 Hl=(r,e)=>new p_({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}});class f_{constructor(e,t,i,s){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=s,this.encoder=new l_(e,t,i),this.decoder=new d_(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const js=({name:r,prefix:e,encode:t,decode:i})=>new f_(r,e,t,i),Li=({prefix:r,name:e,alphabet:t})=>{const{encode:i,decode:s}=c_(t,e);return js({prefix:r,name:e,encode:i,decode:n=>zl(s(n))})},g_=(r,e,t,i)=>{const s={};for(let h=0;h<e.length;++h)s[e[h]]=h;let n=r.length;for(;r[n-1]==="=";)--n;const o=new Uint8Array(n*t/8|0);let a=0,c=0,u=0;for(let h=0;h<n;++h){const l=s[r[h]];if(l===void 0)throw new SyntaxError(`Non-${i} character`);c=c<<t|l,a+=t,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},y_=(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},$e=({name:r,prefix:e,bitsPerChar:t,alphabet:i})=>js({prefix:e,name:r,encode(s){return y_(s,i,t)},decode(s){return g_(s,i,t,r)}}),m_=js({prefix:"\0",name:"identity",encode:r=>h_(r),decode:r=>u_(r)});var w_=Object.freeze({__proto__:null,identity:m_});const b_=$e({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var v_=Object.freeze({__proto__:null,base2:b_});const E_=$e({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var __=Object.freeze({__proto__:null,base8:E_});const I_=Li({prefix:"9",name:"base10",alphabet:"0123456789"});var D_=Object.freeze({__proto__:null,base10:I_});const S_=$e({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),O_=$e({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var P_=Object.freeze({__proto__:null,base16:S_,base16upper:O_});const $_=$e({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),A_=$e({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),x_=$e({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),C_=$e({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),T_=$e({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),R_=$e({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),N_=$e({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),B_=$e({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),j_=$e({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var U_=Object.freeze({__proto__:null,base32:$_,base32upper:A_,base32pad:x_,base32padupper:C_,base32hex:T_,base32hexupper:R_,base32hexpad:N_,base32hexpadupper:B_,base32z:j_});const L_=Li({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),F_=Li({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var q_=Object.freeze({__proto__:null,base36:L_,base36upper:F_});const k_=Li({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),M_=Li({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var z_=Object.freeze({__proto__:null,base58btc:k_,base58flickr:M_});const H_=$e({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),V_=$e({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),K_=$e({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),W_=$e({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var G_=Object.freeze({__proto__:null,base64:H_,base64pad:V_,base64url:K_,base64urlpad:W_});const Vl=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),Y_=Vl.reduce((r,e,t)=>(r[t]=e,r),[]),J_=Vl.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Z_(r){return r.reduce((e,t)=>(e+=Y_[t],e),"")}function Q_(r){const e=[];for(const t of r){const i=J_[t.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}const X_=js({prefix:"🚀",name:"base256emoji",encode:Z_,decode:Q_});var eI=Object.freeze({__proto__:null,base256emoji:X_}),tI=Kl,eu=128,rI=-128,iI=Math.pow(2,31);function Kl(r,e,t){e=e||[],t=t||0;for(var i=t;r>=iI;)e[t++]=r&255|eu,r/=128;for(;r&rI;)e[t++]=r&255|eu,r>>>=7;return e[t]=r|0,Kl.bytes=t-i+1,e}var sI=to,nI=128,tu=127;function to(r,i){var t=0,i=i||0,s=0,n=i,o,a=r.length;do{if(n>=a)throw to.bytes=0,new RangeError("Could not decode varint");o=r[n++],t+=s<28?(o&tu)<<s:(o&tu)*Math.pow(2,s),s+=7}while(o>=nI);return to.bytes=n-i,t}var oI=Math.pow(2,7),aI=Math.pow(2,14),cI=Math.pow(2,21),uI=Math.pow(2,28),hI=Math.pow(2,35),lI=Math.pow(2,42),dI=Math.pow(2,49),pI=Math.pow(2,56),fI=Math.pow(2,63),gI=function(r){return r<oI?1:r<aI?2:r<cI?3:r<uI?4:r<hI?5:r<lI?6:r<dI?7:r<pI?8:r<fI?9:10},yI={encode:tI,decode:sI,encodingLength:gI},Wl=yI;const ru=(r,e,t=0)=>(Wl.encode(r,e,t),e),iu=r=>Wl.encodingLength(r),ro=(r,e)=>{const t=e.byteLength,i=iu(r),s=i+iu(t),n=new Uint8Array(s+t);return ru(r,n,0),ru(t,n,i),n.set(e,s),new mI(r,t,e,n)};class mI{constructor(e,t,i,s){this.code=e,this.size=t,this.digest=i,this.bytes=s}}const Gl=({name:r,code:e,encode:t})=>new wI(r,e,t);class wI{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?ro(this.code,t):t.then(i=>ro(this.code,i))}else throw Error("Unknown type, must be binary type")}}const Yl=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),bI=Gl({name:"sha2-256",code:18,encode:Yl("SHA-256")}),vI=Gl({name:"sha2-512",code:19,encode:Yl("SHA-512")});var EI=Object.freeze({__proto__:null,sha256:bI,sha512:vI});const Jl=0,_I="identity",Zl=zl,II=r=>ro(Jl,Zl(r)),DI={code:Jl,name:_I,encode:Zl,digest:II};var SI=Object.freeze({__proto__:null,identity:DI});new TextEncoder,new TextDecoder;const su={...w_,...v_,...__,...D_,...P_,...U_,...q_,...z_,...G_,...eI};({...EI,...SI});function OI(r=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}function Ql(r,e,t,i){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:i}}}const nu=Ql("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),bn=Ql("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=OI(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),PI={utf8:nu,"utf-8":nu,hex:su.base16,latin1:bn,ascii:bn,binary:bn,...su};function $I(r,e="utf8"){const t=PI[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 AI=Object.defineProperty,xI=(r,e,t)=>e in r?AI(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ft=(r,e,t)=>xI(r,typeof e!="symbol"?e+"":e,t);class CI{constructor(e,t){this.core=e,this.logger=t,ft(this,"keychain",new Map),ft(this,"name",C1),ft(this,"version",T1),ft(this,"initialized",!1),ft(this,"storagePrefix",_t),ft(this,"init",async()=>{if(!this.initialized){const i=await this.getKeyChain();typeof i<"u"&&(this.keychain=i),this.initialized=!0}}),ft(this,"has",i=>(this.isInitialized(),this.keychain.has(i))),ft(this,"set",async(i,s)=>{this.isInitialized(),this.keychain.set(i,s),await this.persist()}),ft(this,"get",i=>{this.isInitialized();const s=this.keychain.get(i);if(typeof s>"u"){const{message:n}=L("NO_MATCHING_KEY",`${this.name}: ${i}`);throw new Error(n)}return s}),ft(this,"del",async i=>{this.isInitialized(),this.keychain.delete(i),await this.persist()}),this.core=e,this.logger=Ne(t,this.name)}get context(){return ke(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,qn(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?kn(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=L("NOT_INITIALIZED",this.name);throw new Error(e)}}}var TI=Object.defineProperty,RI=(r,e,t)=>e in r?TI(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ie=(r,e,t)=>RI(r,typeof e!="symbol"?e+"":e,t);class NI{constructor(e,t,i){this.core=e,this.logger=t,Ie(this,"name",A1),Ie(this,"keychain"),Ie(this,"randomSessionIdentifier",Zn()),Ie(this,"initialized",!1),Ie(this,"init",async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)}),Ie(this,"hasKeys",s=>(this.isInitialized(),this.keychain.has(s))),Ie(this,"getClientId",async()=>{this.isInitialized();const s=await this.getClientSeed(),n=ja(s);return Fh(n.publicKey)}),Ie(this,"generateKeyPair",()=>{this.isInitialized();const s=qv();return this.setPrivateKey(s.publicKey,s.privateKey)}),Ie(this,"signJWT",async s=>{this.isInitialized();const n=await this.getClientSeed(),o=ja(n),a=this.randomSessionIdentifier;return await im(a,s,x1,o)}),Ie(this,"generateSharedKey",(s,n,o)=>{this.isInitialized();const a=this.getPrivateKey(s),c=kv(a,n);return this.setSymKey(c,o)}),Ie(this,"setSymKey",async(s,n)=>{this.isInitialized();const o=n||ss(s);return await this.keychain.set(o,s),o}),Ie(this,"deleteKeyPair",async s=>{this.isInitialized(),await this.keychain.del(s)}),Ie(this,"deleteSymKey",async s=>{this.isInitialized(),await this.keychain.del(s)}),Ie(this,"encode",async(s,n,o)=>{this.isInitialized();const a=$l(o),c=jt(n);if(vc(a))return Hv(c,o?.encoding);if(bc(a)){const d=a.senderPublicKey,f=a.receiverPublicKey;s=await this.generateSharedKey(d,f)}const u=this.getSymKey(s),{type:h,senderPublicKey:l}=a;return Mv({type:h,symKey:u,message:c,senderPublicKey:l,encoding:o?.encoding})}),Ie(this,"decode",async(s,n,o)=>{this.isInitialized();const a=Kv(n,o);if(vc(a)){const c=Vv(n,o?.encoding);return cr(c)}if(bc(a)){const c=a.receiverPublicKey,u=a.senderPublicKey;s=await this.generateSharedKey(c,u)}try{const c=this.getSymKey(s),u=zv({symKey:c,encoded:n,encoding:o?.encoding});return cr(u)}catch(c){this.logger.error(`Failed to decode message from topic: '${s}', clientId: '${await this.getClientId()}'`),this.logger.error(c)}}),Ie(this,"getPayloadType",(s,n=ut)=>{const o=Oi({encoded:s,encoding:n});return lr(o.type)}),Ie(this,"getPayloadSenderPublicKey",(s,n=ut)=>{const o=Oi({encoded:s,encoding:n});return o.senderPublicKey?qe(o.senderPublicKey,Re):void 0}),this.core=e,this.logger=Ne(t,this.name),this.keychain=i||new CI(this.core,this.logger)}get context(){return ke(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(Zc)}catch{e=Zn(),await this.keychain.set(Zc,e)}return $I(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=L("NOT_INITIALIZED",this.name);throw new Error(e)}}}var BI=Object.defineProperty,jI=Object.defineProperties,UI=Object.getOwnPropertyDescriptors,ou=Object.getOwnPropertySymbols,LI=Object.prototype.hasOwnProperty,FI=Object.prototype.propertyIsEnumerable,io=(r,e,t)=>e in r?BI(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,qI=(r,e)=>{for(var t in e||(e={}))LI.call(e,t)&&io(r,t,e[t]);if(ou)for(var t of ou(e))FI.call(e,t)&&io(r,t,e[t]);return r},kI=(r,e)=>jI(r,UI(e)),Me=(r,e,t)=>io(r,typeof e!="symbol"?e+"":e,t);class MI extends HE{constructor(e,t){super(e,t),this.logger=e,this.core=t,Me(this,"messages",new Map),Me(this,"messagesWithoutClientAck",new Map),Me(this,"name",R1),Me(this,"version",N1),Me(this,"initialized",!1),Me(this,"storagePrefix",_t),Me(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}}}),Me(this,"set",async(i,s,n)=>{this.isInitialized();const o=vt(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===as.inbound){const c=this.messagesWithoutClientAck.get(i)||{};this.messagesWithoutClientAck.set(i,kI(qI({},c),{[o]:s}))}return await this.persist(),o}),Me(this,"get",i=>{this.isInitialized();let s=this.messages.get(i);return typeof s>"u"&&(s={}),s}),Me(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}),Me(this,"has",(i,s)=>{this.isInitialized();const n=this.get(i),o=vt(s);return typeof n[o]<"u"}),Me(this,"ack",async(i,s)=>{this.isInitialized();const n=this.messagesWithoutClientAck.get(i);if(typeof n>"u")return;const o=vt(s);delete n[o],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(i):this.messagesWithoutClientAck.set(i,n),await this.persist()}),Me(this,"del",async i=>{this.isInitialized(),this.messages.delete(i),this.messagesWithoutClientAck.delete(i),await this.persist()}),this.logger=Ne(e,this.name),this.core=t}get context(){return ke(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,qn(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,qn(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?kn(e):void 0}async getRelayerMessagesWithoutClientAck(){const e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<"u"?kn(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){const{message:e}=L("NOT_INITIALIZED",this.name);throw new Error(e)}}}var zI=Object.defineProperty,HI=Object.defineProperties,VI=Object.getOwnPropertyDescriptors,au=Object.getOwnPropertySymbols,KI=Object.prototype.hasOwnProperty,WI=Object.prototype.propertyIsEnumerable,so=(r,e,t)=>e in r?zI(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Yi=(r,e)=>{for(var t in e||(e={}))KI.call(e,t)&&so(r,t,e[t]);if(au)for(var t of au(e))WI.call(e,t)&&so(r,t,e[t]);return r},vn=(r,e)=>HI(r,VI(e)),at=(r,e,t)=>so(r,typeof e!="symbol"?e+"":e,t);class GI extends VE{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,at(this,"events",new Ye.EventEmitter),at(this,"name",B1),at(this,"queue",new Map),at(this,"publishTimeout",U.toMiliseconds(U.ONE_MINUTE)),at(this,"initialPublishTimeout",U.toMiliseconds(U.ONE_SECOND*15)),at(this,"needsTransportRestart",!1),at(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||Qc,c=fs(n),u=n?.prompt||!1,h=n?.tag||0,l=n?.id||nr().toString(),d={topic:i,message:s,opts:{ttl:a,relay:c,prompt:u,tag:h,id:l,attestation:n?.attestation,tvf:n?.tvf}},f=`Failed to publish payload, please try again. id:${l} tag:${h}`;try{const p=new Promise(async g=>{const w=({id:b})=>{d.opts.id===b&&(this.removeRequestFromQueue(b),this.relayer.events.removeListener(we.publish,w),g(d))};this.relayer.events.on(we.publish,w);const E=zt(new Promise((b,_)=>{this.rpcPublish({topic:i,message:s,ttl:a,prompt:u,tag:h,id:l,attestation:n?.attestation,tvf:n?.tvf}).then(b).catch(C=>{this.logger.warn(C,C?.message),_(C)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${l} tag:${h}`);try{await E,this.events.removeListener(we.publish,w)}catch(b){this.queue.set(l,vn(Yi({},d),{attempt:1})),this.logger.warn(b,b?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:l,topic:i,message:s,opts:n}}),await zt(p,this.publishTimeout,f)}catch(p){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(p),(o=n?.internal)!=null&&o.throwOnFailedPublish)throw p}finally{this.queue.delete(l)}}),at(this,"on",(i,s)=>{this.events.on(i,s)}),at(this,"once",(i,s)=>{this.events.once(i,s)}),at(this,"off",(i,s)=>{this.events.off(i,s)}),at(this,"removeListener",(i,s)=>{this.events.removeListener(i,s)}),this.relayer=e,this.logger=Ne(t,this.name),this.registerEventListeners()}get context(){return ke(this.logger)}async rpcPublish(e){var t,i,s,n;const{topic:o,message:a,ttl:c=Qc,prompt:u,tag:h,id:l,attestation:d,tvf:f}=e,p={method:pi(fs().protocol).publish,params:Yi({topic:o,message:a,ttl:c,prompt:u,tag:h,attestation:d},f),id:l};Se((t=p.params)==null?void 0:t.prompt)&&((i=p.params)==null||delete i.prompt),Se((s=p.params)==null?void 0:s.tag)&&((n=p.params)==null||delete n.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:p});const g=await this.relayer.request(p);return this.relayer.events.emit(we.publish,e),this.logger.debug("Successfully Published Payload"),g}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{const i=e.attempt+1;this.queue.set(t,vn(Yi({},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(vn(Yi({},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(pr.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(we.connection_stalled);return}this.checkQueue()}),this.relayer.on(we.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}var YI=Object.defineProperty,JI=(r,e,t)=>e in r?YI(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,_r=(r,e,t)=>JI(r,typeof e!="symbol"?e+"":e,t);class ZI{constructor(){_r(this,"map",new Map),_r(this,"set",(e,t)=>{const i=this.get(e);this.exists(e,t)||this.map.set(e,[...i,t])}),_r(this,"get",e=>this.map.get(e)||[]),_r(this,"exists",(e,t)=>this.get(e).includes(t)),_r(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)}),_r(this,"clear",()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}}var QI=Object.defineProperty,XI=Object.defineProperties,e2=Object.getOwnPropertyDescriptors,cu=Object.getOwnPropertySymbols,t2=Object.prototype.hasOwnProperty,r2=Object.prototype.propertyIsEnumerable,no=(r,e,t)=>e in r?QI(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,hi=(r,e)=>{for(var t in e||(e={}))t2.call(e,t)&&no(r,t,e[t]);if(cu)for(var t of cu(e))r2.call(e,t)&&no(r,t,e[t]);return r},En=(r,e)=>XI(r,e2(e)),ie=(r,e,t)=>no(r,typeof e!="symbol"?e+"":e,t);class i2 extends GE{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,ie(this,"subscriptions",new Map),ie(this,"topicMap",new ZI),ie(this,"events",new Ye.EventEmitter),ie(this,"name",M1),ie(this,"version",z1),ie(this,"pending",new Map),ie(this,"cached",[]),ie(this,"initialized",!1),ie(this,"storagePrefix",_t),ie(this,"subscribeTimeout",U.toMiliseconds(U.ONE_MINUTE)),ie(this,"initialSubscribeTimeout",U.toMiliseconds(U.ONE_SECOND*15)),ie(this,"clientId"),ie(this,"batchSubscribeTopicsLimit",500),ie(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),await this.restore()),this.initialized=!0}),ie(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=fs(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}}),ie(this,"unsubscribe",async(i,s)=>{this.isInitialized(),typeof s?.id<"u"?await this.unsubscribeById(i,s.id,s):await this.unsubscribeByTopic(i,s)}),ie(this,"isSubscribed",i=>new Promise(s=>{s(this.topicMap.topics.includes(i))})),ie(this,"isKnownTopic",i=>new Promise(s=>{s(this.topicMap.topics.includes(i)||this.pending.has(i)||this.cached.some(n=>n.topic===i))})),ie(this,"on",(i,s)=>{this.events.on(i,s)}),ie(this,"once",(i,s)=>{this.events.once(i,s)}),ie(this,"off",(i,s)=>{this.events.off(i,s)}),ie(this,"removeListener",(i,s)=>{this.events.removeListener(i,s)}),ie(this,"start",async()=>{await this.onConnect()}),ie(this,"stop",async()=>{await this.onDisconnect()}),ie(this,"restart",async()=>{await this.restore(),await this.onRestart()}),ie(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)}),ie(this,"registerEventListeners",()=>{this.relayer.core.heartbeat.on(pr.pulse,async()=>{await this.checkPending()}),this.events.on(He.created,async i=>{const s=He.created;this.logger.info(`Emitting ${s}`),this.logger.debug({type:"event",event:s,data:i}),await this.persist()}),this.events.on(He.deleted,async i=>{const s=He.deleted;this.logger.info(`Emitting ${s}`),this.logger.debug({type:"event",event:s,data:i}),await this.persist()})}),this.relayer=e,this.logger=Ne(t,this.name),this.clientId=""}get context(){return ke(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=fs(i);await this.restartToComplete({topic:e,id:t,relay:s}),await this.rpcUnsubscribe(e,t,s);const n=te("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===ae.relay)&&await this.restartToComplete({topic:e,id:e,relay:t});const n={method:pi(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===ae.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(n).catch(h=>this.logger.warn(h))},U.toMiliseconds(U.ONE_SECOND)),a;const c=new Promise(async h=>{const l=d=>{d.topic===e&&(this.events.removeListener(He.created,l),h(d.id))};this.events.on(He.created,l);try{const d=await zt(new Promise((f,p)=>{this.relayer.request(n).catch(g=>{this.logger.warn(g,g?.message),p(g)}).then(f)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(He.created,l),h(d)}catch{}}),u=await zt(c,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!u&&o)throw new Error(`Subscribing to ${e} failed, please try again`);return u?a:null}catch(a){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(we.connection_stalled),o)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return;const t=e[0].relay,i={method:pi(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 zt(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(we.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;const t=e[0].relay,i={method:pi(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 zt(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(we.connection_stalled)}return s}rpcUnsubscribe(e,t,i){const s={method:pi(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,En(hi({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(t=>{this.setSubscription(t.id,hi({},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,hi({},t)),this.topicMap.set(t.topic,e),this.events.emit(He.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}=L("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(He.deleted,En(hi({},i),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(He.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(He.resubscribed)}async restore(){try{const e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size){const{message:t}=L("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=>En(hi({},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 Pw(U.toMiliseconds(U.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(t.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){const{message:e}=L("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 vt(e+await this.getClientId())}}var s2=Object.defineProperty,uu=Object.getOwnPropertySymbols,n2=Object.prototype.hasOwnProperty,o2=Object.prototype.propertyIsEnumerable,oo=(r,e,t)=>e in r?s2(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,hu=(r,e)=>{for(var t in e||(e={}))n2.call(e,t)&&oo(r,t,e[t]);if(uu)for(var t of uu(e))o2.call(e,t)&&oo(r,t,e[t]);return r},Z=(r,e,t)=>oo(r,typeof e!="symbol"?e+"":e,t);class a2 extends KE{constructor(e){super(e),Z(this,"protocol","wc"),Z(this,"version",2),Z(this,"core"),Z(this,"logger"),Z(this,"events",new Ye.EventEmitter),Z(this,"provider"),Z(this,"messages"),Z(this,"subscriber"),Z(this,"publisher"),Z(this,"name",U1),Z(this,"transportExplicitlyClosed",!1),Z(this,"initialized",!1),Z(this,"connectionAttemptInProgress",!1),Z(this,"relayUrl"),Z(this,"projectId"),Z(this,"packageName"),Z(this,"bundleId"),Z(this,"hasExperiencedNetworkDisruption",!1),Z(this,"pingTimeout"),Z(this,"heartBeatTimeout",U.toMiliseconds(U.THIRTY_SECONDS+U.FIVE_SECONDS)),Z(this,"reconnectTimeout"),Z(this,"connectPromise"),Z(this,"reconnectInProgress",!1),Z(this,"requestsInFlight",[]),Z(this,"connectTimeout",U.toMiliseconds(U.ONE_SECOND*15)),Z(this,"request",async t=>{var i,s;this.logger.debug("Publishing Request Payload");const n=t.id||nr().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}}),Z(this,"resetPingTimeout",()=>{ds()&&(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))}),Z(this,"onPayloadHandler",t=>{this.onProviderPayload(t),this.resetPingTimeout()}),Z(this,"onConnectHandler",()=>{this.logger.warn({},"Relayer connected 🛜"),this.startPingTimeout(),this.events.emit(we.connect)}),Z(this,"onDisconnectHandler",()=>{this.logger.warn({},"Relayer disconnected 🛑"),this.requestsInFlight=[],this.onProviderDisconnect()}),Z(this,"onProviderErrorHandler",t=>{this.logger.fatal(`Fatal socket error: ${t.message}`),this.events.emit(we.error,t),this.logger.fatal("Fatal socket error received, closing transport"),this.transportClose()}),Z(this,"registerProviderListeners",()=>{this.provider.on(Ze.payload,this.onPayloadHandler),this.provider.on(Ze.connect,this.onConnectHandler),this.provider.on(Ze.disconnect,this.onDisconnectHandler),this.provider.on(Ze.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<"u"&&typeof e.logger!="string"?Ne(e.logger,this.name):ji(Ts({level:e.logger||j1})),this.messages=new MI(this.logger,e.core),this.subscriber=new i2(this,this.logger),this.publisher=new GI(this,this.logger),this.relayUrl=e?.relayUrl||kl,this.projectId=e.projectId,lw()?this.packageName=za():dw()&&(this.bundleId=za()),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 ke(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:ae.relay},as.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 u=h=>{h.topic===e&&(this.subscriber.off(He.created,u),c())};return await Promise.all([new Promise(h=>{c=h,this.subscriber.on(He.created,u)}),new Promise(async(h,l)=>{a=await this.subscriber.subscribe(e,hu({internal:{throwOnFailedPublish:o}},t)).catch(d=>{o&&l(d)})||a,h()})]),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 zt(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 Cc())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=de(U.FIVE_MINUTES),n={topic:i,expiry:s,relay:{protocol:"irn"},active:!1};await this.core.pairing.pairings.set(i,n)}this.events.emit(we.message,e),await this.recordMessageEvent(e,as.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(Ze.disconnect,n),await zt(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(Ze.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(Ze.disconnect,c),await this.subscriber.start().then(o).catch(a).finally(()=>{this.provider.off(Ze.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,U.toMiliseconds(t*1))),t++}}startPingTimeout(){var e,t,i,s,n;if(ds())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 rt(new S1(mw({sdkVersion:eo,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}),jo(e)){if(!e.method.endsWith(L1))return;const t=e.params,{topic:i,message:s,publishedAt:n,attestation:o}=t.data,a={topic:i,message:s,publishedAt:n,transportType:ae.relay,attestation:o};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(hu({type:"event",event:t.id},a)),this.events.emit(t.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else Bs(e)&&this.events.emit(we.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,as.inbound),this.events.emit(we.message,e))}async acknowledgePayload(e){const t=Rs(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(Ze.payload,this.onPayloadHandler),this.provider.off(Ze.connect,this.onConnectHandler),this.provider.off(Ze.disconnect,this.onDisconnectHandler),this.provider.off(Ze.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await Cc();F0(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(pr.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&M0())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(t){this.logger.warn(t,t?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(we.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},U.toMiliseconds(F1)))))}isInitialized(){if(!this.initialized){const{message:e}=L("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 c2(){}function lu(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 du(r){return Object.getOwnPropertySymbols(r).filter(e=>Object.prototype.propertyIsEnumerable.call(r,e))}function pu(r){return r==null?r===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(r)}const u2="[object RegExp]",h2="[object String]",l2="[object Number]",d2="[object Boolean]",fu="[object Arguments]",p2="[object Symbol]",f2="[object Date]",g2="[object Map]",y2="[object Set]",m2="[object Array]",w2="[object Function]",b2="[object ArrayBuffer]",_n="[object Object]",v2="[object Error]",E2="[object DataView]",_2="[object Uint8Array]",I2="[object Uint8ClampedArray]",D2="[object Uint16Array]",S2="[object Uint32Array]",O2="[object BigUint64Array]",P2="[object Int8Array]",$2="[object Int16Array]",A2="[object Int32Array]",x2="[object BigInt64Array]",C2="[object Float32Array]",T2="[object Float64Array]";function R2(r,e){return r===e||Number.isNaN(r)&&Number.isNaN(e)}function N2(r,e,t){return fi(r,e,void 0,void 0,void 0,void 0,t)}function fi(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 bi(r,e,n,o)}return bi(r,e,n,o)}function bi(r,e,t,i){if(Object.is(r,e))return!0;let s=pu(r),n=pu(e);if(s===fu&&(s=_n),n===fu&&(n=_n),s!==n)return!1;switch(s){case h2:return r.toString()===e.toString();case l2:{const c=r.valueOf(),u=e.valueOf();return R2(c,u)}case d2:case f2:case p2:return Object.is(r.valueOf(),e.valueOf());case u2:return r.source===e.source&&r.flags===e.flags;case w2: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 g2:{if(r.size!==e.size)return!1;for(const[c,u]of r.entries())if(!e.has(c)||!fi(u,e.get(c),c,r,e,t,i))return!1;return!0}case y2:{if(r.size!==e.size)return!1;const c=Array.from(r.values()),u=Array.from(e.values());for(let h=0;h<c.length;h++){const l=c[h],d=u.findIndex(f=>fi(l,f,void 0,r,e,t,i));if(d===-1)return!1;u.splice(d,1)}return!0}case m2:case _2:case I2:case D2:case S2:case O2:case P2:case $2:case A2:case x2:case C2:case T2:{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(!fi(r[c],e[c],c,r,e,t,i))return!1;return!0}case b2:return r.byteLength!==e.byteLength?!1:bi(new Uint8Array(r),new Uint8Array(e),t,i);case E2:return r.byteLength!==e.byteLength||r.byteOffset!==e.byteOffset?!1:bi(new Uint8Array(r),new Uint8Array(e),t,i);case v2:return r.name===e.name&&r.message===e.message;case _n:{if(!(bi(r.constructor,e.constructor,t,i)||lu(r)&&lu(e)))return!1;const c=[...Object.keys(r),...du(r)],u=[...Object.keys(e),...du(e)];if(c.length!==u.length)return!1;for(let h=0;h<c.length;h++){const l=c[h],d=r[l];if(!Object.hasOwn(e,l))return!1;const f=e[l];if(!fi(d,f,l,r,e,t,i))return!1}return!0}default:return!1}}finally{t.delete(r),t.delete(e)}}function B2(r,e){return N2(r,e,c2)}var j2=Object.defineProperty,gu=Object.getOwnPropertySymbols,U2=Object.prototype.hasOwnProperty,L2=Object.prototype.propertyIsEnumerable,ao=(r,e,t)=>e in r?j2(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,yu=(r,e)=>{for(var t in e||(e={}))U2.call(e,t)&&ao(r,t,e[t]);if(gu)for(var t of gu(e))L2.call(e,t)&&ao(r,t,e[t]);return r},je=(r,e,t)=>ao(r,typeof e!="symbol"?e+"":e,t);class fr extends WE{constructor(e,t,i,s=_t,n=void 0){super(e,t,i,s),this.core=e,this.logger=t,this.name=i,je(this,"map",new Map),je(this,"version",q1),je(this,"cached",[]),je(this,"initialized",!1),je(this,"getKey"),je(this,"storagePrefix",_t),je(this,"recentlyDeleted",[]),je(this,"recentlyDeletedLimit",200),je(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(o=>{this.getKey&&o!==null&&!Se(o)?this.map.set(this.getKey(o),o):y0(o)?this.map.set(o.id,o):m0(o)&&this.map.set(o.topic,o)}),this.cached=[],this.initialized=!0)}),je(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())}),je(this,"get",o=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:o}),this.getData(o))),je(this,"getAll",o=>(this.isInitialized(),o?this.values.filter(a=>Object.keys(o).every(c=>B2(a[c],o[c]))):this.values)),je(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=yu(yu({},this.getData(o)),a);this.map.set(o,c),await this.persist()}),je(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=Ne(t,this.name),this.storagePrefix=s,this.getKey=n}get context(){return ke(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}=L("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(s),new Error(s)}const{message:i}=L("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}=L("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}=L("NOT_INITIALIZED",this.name);throw new Error(e)}}}var F2=Object.defineProperty,q2=(r,e,t)=>e in r?F2(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,W=(r,e,t)=>q2(r,typeof e!="symbol"?e+"":e,t);class k2{constructor(e,t){this.core=e,this.logger=t,W(this,"name",H1),W(this,"version",V1),W(this,"events",new mo),W(this,"pairings"),W(this,"initialized",!1),W(this,"storagePrefix",_t),W(this,"ignoredPayloadTypes",[Nt]),W(this,"registeredMethods",[]),W(this,"init",async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))}),W(this,"register",({methods:i})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...i])]}),W(this,"create",async i=>{this.isInitialized();const s=Zn(),n=await this.core.crypto.setSymKey(s),o=de(U.FIVE_MINUTES),a={protocol:ql},c={topic:n,expiry:o,relay:a,active:!1,methods:i?.methods},u=_c({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:s,relay:a,expiryTimestamp:o,methods:i?.methods});return this.events.emit(rr.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:u}}),W(this,"pair",async i=>{this.isInitialized();const s=this.core.eventClient.createEvent({properties:{topic:i?.uri,trace:[yt.pairing_started]}});this.isValidPair(i,s);const{topic:n,symKey:o,relay:a,expiryTimestamp:c,methods:u}=Ec(i.uri);s.props.properties.topic=n,s.addTrace(yt.pairing_uri_validation_success),s.addTrace(yt.pairing_uri_not_expired);let h;if(this.pairings.keys.includes(n)){if(h=this.pairings.get(n),s.addTrace(yt.existing_pairing),h.active)throw s.setError(xt.active_pairing_already_exists),new Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);s.addTrace(yt.pairing_not_expired)}const l=c||de(U.FIVE_MINUTES),d={topic:n,relay:a,expiry:l,active:!1,methods:u};this.core.expirer.set(n,l),await this.pairings.set(n,d),s.addTrace(yt.store_new_pairing),i.activatePairing&&await this.activate({topic:n}),this.events.emit(rr.create,d),s.addTrace(yt.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(o,n),s.addTrace(yt.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{s.setError(xt.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:a})}catch(f){throw s.setError(xt.subscribe_pairing_topic_failure),f}return s.addTrace(yt.subscribe_pairing_topic_success),d}),W(this,"activate",async({topic:i})=>{this.isInitialized();const s=de(U.FIVE_MINUTES);this.core.expirer.set(i,s),await this.pairings.update(i,{active:!0,expiry:s})}),W(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}=Qt();this.events.once(X("pairing_ping",n),({error:u})=>{u?c(u):a()}),await o()}}),W(this,"updateExpiry",async({topic:i,expiry:s})=>{this.isInitialized(),await this.pairings.update(i,{expiry:s})}),W(this,"updateMetadata",async({topic:i,metadata:s})=>{this.isInitialized(),await this.pairings.update(i,{peerMetadata:s})}),W(this,"getPairings",()=>(this.isInitialized(),this.pairings.values)),W(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",te("USER_DISCONNECTED")),await this.deletePairing(s))}),W(this,"formatUriFromPairing",i=>{this.isInitialized();const{topic:s,relay:n,expiry:o,methods:a}=i,c=this.core.crypto.keychain.get(s);return _c({protocol:this.core.protocol,version:this.core.version,topic:s,symKey:c,relay:n,expiryTimestamp:o,methods:a})}),W(this,"sendRequest",async(i,s,n)=>{const o=Ht(s,n),a=await this.core.crypto.encode(i,o),c=ci[s].req;return this.core.history.set(i,o),this.core.relayer.publish(i,a,c),o.id}),W(this,"sendResult",async(i,s,n)=>{const o=Rs(i,n),a=await this.core.crypto.encode(s,o),c=(await this.core.history.get(s,i)).request.method,u=ci[c].res;await this.core.relayer.publish(s,a,u),await this.core.history.resolve(o)}),W(this,"sendError",async(i,s,n)=>{const o=Ns(i,n),a=await this.core.crypto.encode(s,o),c=(await this.core.history.get(s,i)).request.method,u=ci[c]?ci[c].res:ci.unregistered_method.res;await this.core.relayer.publish(s,a,u),await this.core.history.resolve(o)}),W(this,"deletePairing",async(i,s)=>{await this.core.relayer.unsubscribe(i),await Promise.all([this.pairings.delete(i,te("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(i),s?Promise.resolve():this.core.expirer.del(i)])}),W(this,"cleanup",async()=>{const i=this.pairings.getAll().filter(s=>kt(s.expiry));await Promise.all(i.map(s=>this.deletePairing(s.topic)))}),W(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)}}),W(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)}}),W(this,"onPairingPingRequest",async(i,s)=>{const{id:n}=s;try{this.isValidPing({topic:i}),await this.sendResult(n,i,!0),this.events.emit(rr.ping,{id:n,topic:i})}catch(o){await this.sendError(n,i,o),this.logger.error(o)}}),W(this,"onPairingPingResponse",(i,s)=>{const{id:n}=s;setTimeout(()=>{wt(s)?this.events.emit(X("pairing_ping",n),{}):et(s)&&this.events.emit(X("pairing_ping",n),{error:s.error})},500)}),W(this,"onPairingDeleteRequest",async(i,s)=>{const{id:n}=s;try{this.isValidDisconnect({topic:i}),await this.deletePairing(i),this.events.emit(rr.delete,{id:n,topic:i})}catch(o){await this.sendError(n,i,o),this.logger.error(o)}}),W(this,"onUnknownRpcMethodRequest",async(i,s)=>{const{id:n,method:o}=s;try{if(this.registeredMethods.includes(o))return;const a=te("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)}}),W(this,"onUnknownRpcMethodResponse",i=>{this.registeredMethods.includes(i)||this.logger.error(te("WC_METHOD_UNSUPPORTED",i))}),W(this,"isValidPair",(i,s)=>{var n;if(!Le(i)){const{message:a}=L("MISSING_OR_INVALID",`pair() params: ${i}`);throw s.setError(xt.malformed_pairing_uri),new Error(a)}if(!g0(i.uri)){const{message:a}=L("MISSING_OR_INVALID",`pair() uri: ${i.uri}`);throw s.setError(xt.malformed_pairing_uri),new Error(a)}const o=Ec(i?.uri);if(!((n=o?.relay)!=null&&n.protocol)){const{message:a}=L("MISSING_OR_INVALID","pair() uri#relay-protocol");throw s.setError(xt.malformed_pairing_uri),new Error(a)}if(!(o!=null&&o.symKey)){const{message:a}=L("MISSING_OR_INVALID","pair() uri#symKey");throw s.setError(xt.malformed_pairing_uri),new Error(a)}if(o!=null&&o.expiryTimestamp&&U.toMiliseconds(o?.expiryTimestamp)<Date.now()){s.setError(xt.pairing_expired);const{message:a}=L("EXPIRED","pair() URI has expired. Please try again with a new connection URI.");throw new Error(a)}}),W(this,"isValidPing",async i=>{if(!Le(i)){const{message:n}=L("MISSING_OR_INVALID",`ping() params: ${i}`);throw new Error(n)}const{topic:s}=i;await this.isValidPairingTopic(s)}),W(this,"isValidDisconnect",async i=>{if(!Le(i)){const{message:n}=L("MISSING_OR_INVALID",`disconnect() params: ${i}`);throw new Error(n)}const{topic:s}=i;await this.isValidPairingTopic(s)}),W(this,"isValidPairingTopic",async i=>{if(!le(i,!1)){const{message:s}=L("MISSING_OR_INVALID",`pairing topic should be a string: ${i}`);throw new Error(s)}if(!this.pairings.keys.includes(i)){const{message:s}=L("NO_MATCHING_KEY",`pairing topic doesn't exist: ${i}`);throw new Error(s)}if(kt(this.pairings.get(i).expiry)){await this.deletePairing(i);const{message:s}=L("EXPIRED",`pairing topic: ${i}`);throw new Error(s)}}),this.core=e,this.logger=Ne(t,this.name),this.pairings=new fr(this.core,this.logger,this.name,this.storagePrefix)}get context(){return ke(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=L("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(we.message,async e=>{const{topic:t,message:i,transportType:s}=e;if(this.pairings.keys.includes(t)&&s!==ae.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(i)))try{const n=await this.core.crypto.decode(t,i);jo(n)?(this.core.history.set(t,n),await this.onRelayEventRequest({topic:t,payload:n})):Bs(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(Xe.expired,async e=>{const{topic:t}=Yh(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(rr.expire,{topic:t}))})}}var M2=Object.defineProperty,z2=(r,e,t)=>e in r?M2(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,De=(r,e,t)=>z2(r,typeof e!="symbol"?e+"":e,t);class H2 extends zE{constructor(e,t){super(e,t),this.core=e,this.logger=t,De(this,"records",new Map),De(this,"events",new Ye.EventEmitter),De(this,"name",K1),De(this,"version",W1),De(this,"cached",[]),De(this,"initialized",!1),De(this,"storagePrefix",_t),De(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)}),De(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:de(U.THIRTY_DAYS)};this.records.set(o.id,o),this.persist(),this.events.emit(nt.created,o)}),De(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=et(i)?{error:i.error}:{result:i.result},this.records.set(s.id,s),this.persist(),this.events.emit(nt.updated,s))}),De(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))),De(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(nt.deleted,n)}}),this.persist()}),De(this,"exists",async(i,s)=>(this.isInitialized(),this.records.has(s)?(await this.getRecord(s)).topic===i:!1)),De(this,"on",(i,s)=>{this.events.on(i,s)}),De(this,"once",(i,s)=>{this.events.once(i,s)}),De(this,"off",(i,s)=>{this.events.off(i,s)}),De(this,"removeListener",(i,s)=>{this.events.removeListener(i,s)}),this.logger=Ne(t,this.name)}get context(){return ke(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:Ht(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}=L("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(i)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(nt.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:t}=L("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(nt.created,e=>{const t=nt.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})}),this.events.on(nt.updated,e=>{const t=nt.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})}),this.events.on(nt.deleted,e=>{const t=nt.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})}),this.core.heartbeat.on(pr.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{U.toMiliseconds(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(nt.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=L("NOT_INITIALIZED",this.name);throw new Error(e)}}}var V2=Object.defineProperty,K2=(r,e,t)=>e in r?V2(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,xe=(r,e,t)=>K2(r,typeof e!="symbol"?e+"":e,t);class W2 extends YE{constructor(e,t){super(e,t),this.core=e,this.logger=t,xe(this,"expirations",new Map),xe(this,"events",new Ye.EventEmitter),xe(this,"name",G1),xe(this,"version",Y1),xe(this,"cached",[]),xe(this,"initialized",!1),xe(this,"storagePrefix",_t),xe(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)}),xe(this,"has",i=>{try{const s=this.formatTarget(i);return typeof this.getExpiration(s)<"u"}catch{return!1}}),xe(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(Xe.created,{target:n,expiration:o})}),xe(this,"get",i=>{this.isInitialized();const s=this.formatTarget(i);return this.getExpiration(s)}),xe(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(Xe.deleted,{target:s,expiration:n})}}),xe(this,"on",(i,s)=>{this.events.on(i,s)}),xe(this,"once",(i,s)=>{this.events.once(i,s)}),xe(this,"off",(i,s)=>{this.events.off(i,s)}),xe(this,"removeListener",(i,s)=>{this.events.removeListener(i,s)}),this.logger=Ne(t,this.name)}get context(){return ke(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 ww(e);if(typeof e=="number")return bw(e);const{message:t}=L("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(Xe.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:t}=L("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}=L("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(i),new Error(i)}return t}checkExpiry(e,t){const{expiry:i}=t;U.toMiliseconds(i)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(Xe.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(pr.pulse,()=>this.checkExpirations()),this.events.on(Xe.created,e=>{const t=Xe.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}),this.events.on(Xe.expired,e=>{const t=Xe.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}),this.events.on(Xe.deleted,e=>{const t=Xe.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=L("NOT_INITIALIZED",this.name);throw new Error(e)}}}var G2=Object.defineProperty,Y2=(r,e,t)=>e in r?G2(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,he=(r,e,t)=>Y2(r,typeof e!="symbol"?e+"":e,t);class J2 extends JE{constructor(e,t,i){super(e,t,i),this.core=e,this.logger=t,this.store=i,he(this,"name",J1),he(this,"abortController"),he(this,"isDevEnv"),he(this,"verifyUrlV3",Q1),he(this,"storagePrefix",_t),he(this,"version",Fl),he(this,"publicKey"),he(this,"fetchPromise"),he(this,"init",async()=>{var s;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&U.toMiliseconds((s=this.publicKey)==null?void 0:s.expiresAt)<Date.now()&&(this.logger.debug("verify v2 public key expired"),await this.removePublicKey()))}),he(this,"register",async s=>{if(!Zr()||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 u=Bt.getDocument(),h=this.startAbortTimer(U.ONE_SECOND*5),l=await new Promise((d,f)=>{const p=()=>{window.removeEventListener("message",w),u.body.removeChild(g),f("attestation aborted")};this.abortController.signal.addEventListener("abort",p);const g=u.createElement("iframe");g.src=c,g.style.display="none",g.addEventListener("error",p,{signal:this.abortController.signal});const w=E=>{if(E.data&&typeof E.data=="string")try{const b=JSON.parse(E.data);if(b.type==="verify_attestation"){if(Fn(b.attestation).payload.id!==o)return;clearInterval(h),u.body.removeChild(g),this.abortController.signal.removeEventListener("abort",p),window.removeEventListener("message",w),d(b.attestation===null?"":b.attestation)}}catch(b){this.logger.warn(b)}};u.body.appendChild(g),window.addEventListener("message",w,{signal:this.abortController.signal})});return this.logger.debug("jwt attestation",l),l}catch(u){this.logger.warn(u)}return""}),he(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(Fn(n).payload.id!==a)return;const u=await this.isValidJwtAttestation(n);if(u){if(!u.isVerified){this.logger.warn("resolve: jwt attestation: origin url not verified");return}return u}}if(!o)return;const c=this.getVerifyUrl(s?.verifyUrl);return this.fetchAttestation(o,c)}),he(this,"fetchAttestation",async(s,n)=>{this.logger.debug(`resolving attestation: ${s} from url: ${n}`);const o=this.startAbortTimer(U.ONE_SECOND*5),a=await fetch(`${n}/attestation/${s}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(o),a.status===200?await a.json():void 0}),he(this,"getVerifyUrl",s=>{let n=s||wi;return X1.includes(n)||(this.logger.info(`verify url: ${n}, not included in trusted list, assigning default: ${wi}`),n=wi),n}),he(this,"fetchPublicKey",async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const s=this.startAbortTimer(U.FIVE_SECONDS),n=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(s),await n.json()}catch(s){this.logger.warn(s)}}),he(this,"persistPublicKey",async s=>{this.logger.debug("persisting public key to local storage",s),await this.store.setItem(this.storeKey,s),this.publicKey=s}),he(this,"removePublicKey",async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),he(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")}}),he(this,"getPublicKey",async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),he(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}),he(this,"validateAttestation",(s,n)=>{const o=Gv(s,n.publicKey),a={hasExpired:U.toMiliseconds(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=Ne(t,this.name),this.abortController=new AbortController,this.isDevEnv=Oo(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//verify:public:key"}get context(){return ke(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),U.toMiliseconds(e))}}var Z2=Object.defineProperty,Q2=(r,e,t)=>e in r?Z2(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,mu=(r,e,t)=>Q2(r,typeof e!="symbol"?e+"":e,t);class X2 extends ZE{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,mu(this,"context",e_),mu(this,"registerDeviceToken",async i=>{const{clientId:s,token:n,notificationType:o,enableEncrypted:a=!1}=i,c=`${t_}/${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=Ne(t,this.context)}}var eD=Object.defineProperty,wu=Object.getOwnPropertySymbols,tD=Object.prototype.hasOwnProperty,rD=Object.prototype.propertyIsEnumerable,co=(r,e,t)=>e in r?eD(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,li=(r,e)=>{for(var t in e||(e={}))tD.call(e,t)&&co(r,t,e[t]);if(wu)for(var t of wu(e))rD.call(e,t)&&co(r,t,e[t]);return r},fe=(r,e,t)=>co(r,typeof e!="symbol"?e+"":e,t);class iD extends QE{constructor(e,t,i=!0){super(e,t,i),this.core=e,this.logger=t,fe(this,"context",i_),fe(this,"storagePrefix",_t),fe(this,"storageVersion",r_),fe(this,"events",new Map),fe(this,"shouldPersist",!1),fe(this,"init",async()=>{if(!Oo())try{const s={eventId:Va(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:Wh(this.core.relayer.protocol,this.core.relayer.version,eo)}}};await this.sendEvent([s])}catch(s){this.logger.warn(s)}}),fe(this,"createEvent",s=>{const{event:n="ERROR",type:o="",properties:{topic:a,trace:c}}=s,u=Va(),h=this.core.projectId||"",l=Date.now(),d=li({eventId:u,timestamp:l,props:{event:n,type:o,properties:{topic:a,trace:c}},bundleId:h,domain:this.getAppDomain()},this.setMethods(u));return this.telemetryEnabled&&(this.events.set(u,d),this.shouldPersist=!0),d}),fe(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 li(li({},a),this.setMethods(a.eventId))}),fe(this,"deleteEvent",s=>{const{eventId:n}=s;this.events.delete(n),this.shouldPersist=!0}),fe(this,"setEventListeners",()=>{this.core.heartbeat.on(pr.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(s=>{U.fromMiliseconds(Date.now())-U.fromMiliseconds(s.timestamp)>s_&&(this.events.delete(s.eventId),this.shouldPersist=!0)})})}),fe(this,"setMethods",s=>({addTrace:n=>this.addTrace(s,n),setError:n=>this.setError(s,n)})),fe(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)}),fe(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)}),fe(this,"persist",async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),fe(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,li(li({},n),this.setMethods(n.eventId)))})}catch(s){this.logger.warn(s)}}),fe(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)}}),fe(this,"sendEvent",async s=>{const n=this.getAppDomain()?"":"&sp=desktop";return await fetch(`${n_}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${eo}${n}`,{method:"POST",body:JSON.stringify(s)})}),fe(this,"getAppDomain",()=>Kh().url),this.logger=Ne(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 sD=Object.defineProperty,bu=Object.getOwnPropertySymbols,nD=Object.prototype.hasOwnProperty,oD=Object.prototype.propertyIsEnumerable,uo=(r,e,t)=>e in r?sD(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,vu=(r,e)=>{for(var t in e||(e={}))nD.call(e,t)&&uo(r,t,e[t]);if(bu)for(var t of bu(e))oD.call(e,t)&&uo(r,t,e[t]);return r},oe=(r,e,t)=>uo(r,typeof e!="symbol"?e+"":e,t);let aD=class Xl extends FE{constructor(e){var t;super(e),oe(this,"protocol",Ll),oe(this,"version",Fl),oe(this,"name",Xn),oe(this,"relayUrl"),oe(this,"projectId"),oe(this,"customStoragePrefix"),oe(this,"events",new Ye.EventEmitter),oe(this,"logger"),oe(this,"heartbeat"),oe(this,"relayer"),oe(this,"crypto"),oe(this,"storage"),oe(this,"history"),oe(this,"expirer"),oe(this,"pairing"),oe(this,"verify"),oe(this,"echoClient"),oe(this,"linkModeSupportedApps"),oe(this,"eventClient"),oe(this,"initialized",!1),oe(this,"logChunkController"),oe(this,"on",(a,c)=>this.events.on(a,c)),oe(this,"once",(a,c)=>this.events.once(a,c)),oe(this,"off",(a,c)=>this.events.off(a,c)),oe(this,"removeListener",(a,c)=>this.events.removeListener(a,c)),oe(this,"dispatchEnvelope",({topic:a,message:c,sessionExists:u})=>{if(!a||!c)return;const h={topic:a,message:c,publishedAt:Date.now(),transportType:ae.link_mode};this.relayer.onLinkMessageEvent(h,{sessionExists:u})});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||kl,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:"";const s=Ts({level:typeof e?.logger=="string"&&e.logger?e.logger:P1.logger,name:Xn}),{logger:n,chunkLoggerController:o}=jE({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=Ne(n,this.name),this.heartbeat=new H0,this.crypto=new NI(this,this.logger,e?.keychain),this.history=new H2(this,this.logger),this.expirer=new W2(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new bE(vu(vu({},$1),e?.storageOptions)),this.relayer=new a2({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new k2(this,this.logger),this.verify=new J2(this,this.logger,this.storage),this.echoClient=new X2(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new iD(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){const t=new Xl(e);await t.initialize();const i=await t.crypto.getClientId();return await t.storage.setItem(k1,i),t}get context(){return ke(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(Xc,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(Xc)||[],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"&&O1.DISABLE_GLOBAL_CORE==="true"}catch{return!0}}};const cD=aD,ed="wc",td=2,rd="client",Uo=`${ed}@${td}:${rd}:`,In={name:rd,logger:"error"},Eu="WALLETCONNECT_DEEPLINK_CHOICE",uD="proposal",_u="Proposal expired",hD="session",Ir=U.SEVEN_DAYS,lD="engine",ge={wc_sessionPropose:{req:{ttl:U.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:U.ONE_DAY,prompt:!1,tag:1104},res:{ttl:U.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:U.ONE_DAY,prompt:!1,tag:1106},res:{ttl:U.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:U.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:U.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:U.ONE_DAY,prompt:!1,tag:1112},res:{ttl:U.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:U.ONE_DAY,prompt:!1,tag:1114},res:{ttl:U.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:U.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:U.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:U.FIVE_MINUTES,prompt:!1,tag:1119}}},Dn={min:U.FIVE_MINUTES,max:U.SEVEN_DAYS},gt={idle:"IDLE",active:"ACTIVE"},Iu={eth_sendTransaction:{key:""},eth_sendRawTransaction:{key:""},wallet_sendCalls:{key:""},solana_signTransaction:{key:"signature"},solana_signAllTransactions:{key:"transactions"},solana_signAndSendTransaction:{key:"signature"}},dD="request",pD=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],fD="wc",gD="auth",yD="authKeys",mD="pairingTopics",wD="requests",Us=`${fD}@${1.5}:${gD}:`,cs=`${Us}:PUB_KEY`;var bD=Object.defineProperty,vD=Object.defineProperties,ED=Object.getOwnPropertyDescriptors,Du=Object.getOwnPropertySymbols,_D=Object.prototype.hasOwnProperty,ID=Object.prototype.propertyIsEnumerable,ho=(r,e,t)=>e in r?bD(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,se=(r,e)=>{for(var t in e||(e={}))_D.call(e,t)&&ho(r,t,e[t]);if(Du)for(var t of Du(e))ID.call(e,t)&&ho(r,t,e[t]);return r},Te=(r,e)=>vD(r,ED(e)),R=(r,e,t)=>ho(r,typeof e!="symbol"?e+"":e,t);class DD extends r1{constructor(e){super(e),R(this,"name",lD),R(this,"events",new mo),R(this,"initialized",!1),R(this,"requestQueue",{state:gt.idle,queue:[]}),R(this,"sessionRequestQueue",{state:gt.idle,queue:[]}),R(this,"requestQueueDelay",U.ONE_SECOND),R(this,"expectedPairingMethodMap",new Map),R(this,"recentlyDeletedMap",new Map),R(this,"recentlyDeletedLimit",200),R(this,"relayMessageCache",[]),R(this,"pendingSessions",new Map),R(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(ge)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},U.toMiliseconds(this.requestQueueDelay)))}),R(this,"connect",async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const i=Te(se({},t),{requiredNamespaces:t.requiredNamespaces||{},optionalNamespaces:t.optionalNamespaces||{}});await this.isValidConnect(i),i.optionalNamespaces=h0(i.requiredNamespaces,i.optionalNamespaces),i.requiredNamespaces={};const{pairingTopic:s,requiredNamespaces:n,optionalNamespaces:o,sessionProperties:a,scopedProperties:c,relays:u}=i;let h=s,l,d=!1;try{if(h){const v=this.client.core.pairing.pairings.get(h);this.client.logger.warn("connect() with existing pairing topic is deprecated and will be removed in the next major release."),d=v.active}}catch(v){throw this.client.logger.error(`connect() -> pairing.get(${h}) failed`),v}if(!h||!d){const{topic:v,uri:I}=await this.client.core.pairing.create();h=v,l=I}if(!h){const{message:v}=L("NO_MATCHING_KEY",`connect() pairing topic: ${h}`);throw new Error(v)}const f=await this.client.core.crypto.generateKeyPair(),p=ge.wc_sessionPropose.req.ttl||U.FIVE_MINUTES,g=de(p),w=Te(se(se({requiredNamespaces:n,optionalNamespaces:o,relays:u??[{protocol:ql}],proposer:{publicKey:f,metadata:this.client.metadata},expiryTimestamp:g,pairingTopic:h},a&&{sessionProperties:a}),c&&{scopedProperties:c}),{id:mt()}),E=X("session_connect",w.id),{reject:b,resolve:_,done:C}=Qt(p,_u),T=({id:v})=>{v===w.id&&(this.client.events.off("proposal_expire",T),this.pendingSessions.delete(w.id),this.events.emit(E,{error:{message:_u,code:0}}))};return this.client.events.on("proposal_expire",T),this.events.once(E,({error:v,session:I})=>{this.client.events.off("proposal_expire",T),v?b(v):I&&_(I)}),await this.sendRequest({topic:h,method:"wc_sessionPropose",params:w,throwOnFailedPublish:!0,clientRpcId:w.id}),await this.setProposal(w.id,w),{uri:l,approval:C}}),R(this,"pair",async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(t)}catch(i){throw this.client.logger.error("pair() failed"),i}}),R(this,"approve",async t=>{var i,s,n;const o=this.client.core.eventClient.createEvent({properties:{topic:(i=t?.id)==null?void 0:i.toString(),trace:[ot.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(S){throw o.setError(Jt.no_internet_connection),S}try{await this.isValidProposalId(t?.id)}catch(S){throw this.client.logger.error(`approve() -> proposal.get(${t?.id}) failed`),o.setError(Jt.proposal_not_found),S}try{await this.isValidApprove(t)}catch(S){throw this.client.logger.error("approve() -> isValidApprove() failed"),o.setError(Jt.session_approve_namespace_validation_failure),S}const{id:a,relayProtocol:c,namespaces:u,sessionProperties:h,scopedProperties:l,sessionConfig:d}=t,f=this.client.proposal.get(a);this.client.core.eventClient.deleteEvent({eventId:o.eventId});const{pairingTopic:p,proposer:g,requiredNamespaces:w,optionalNamespaces:E}=f;let b=(s=this.client.core.eventClient)==null?void 0:s.getEvent({topic:p});b||(b=(n=this.client.core.eventClient)==null?void 0:n.createEvent({type:ot.session_approve_started,properties:{topic:p,trace:[ot.session_approve_started,ot.session_namespaces_validation_success]}}));const _=await this.client.core.crypto.generateKeyPair(),C=g.publicKey,T=await this.client.core.crypto.generateSharedKey(_,C),v=se(se(se({relay:{protocol:c??"irn"},namespaces:u,controller:{publicKey:_,metadata:this.client.metadata},expiry:de(Ir)},h&&{sessionProperties:h}),l&&{scopedProperties:l}),d&&{sessionConfig:d}),I=ae.relay;b.addTrace(ot.subscribing_session_topic);try{await this.client.core.relayer.subscribe(T,{transportType:I})}catch(S){throw b.setError(Jt.subscribe_session_topic_failure),S}b.addTrace(ot.subscribe_session_topic_success);const P=Te(se({},v),{topic:T,requiredNamespaces:w,optionalNamespaces:E,pairingTopic:p,acknowledged:!1,self:v.controller,peer:{publicKey:g.publicKey,metadata:g.metadata},controller:_,transportType:ae.relay});await this.client.session.set(T,P),b.addTrace(ot.store_session);try{b.addTrace(ot.publishing_session_settle),await this.sendRequest({topic:T,method:"wc_sessionSettle",params:v,throwOnFailedPublish:!0}).catch(S=>{throw b?.setError(Jt.session_settle_publish_failure),S}),b.addTrace(ot.session_settle_publish_success),b.addTrace(ot.publishing_session_approve),await this.sendResult({id:a,topic:p,result:{relay:{protocol:c??"irn"},responderPublicKey:_},throwOnFailedPublish:!0}).catch(S=>{throw b?.setError(Jt.session_approve_publish_failure),S}),b.addTrace(ot.session_approve_publish_success)}catch(S){throw this.client.logger.error(S),this.client.session.delete(T,te("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(T),S}return this.client.core.eventClient.deleteEvent({eventId:b.eventId}),await this.client.core.pairing.updateMetadata({topic:p,metadata:g.metadata}),await this.client.proposal.delete(a,te("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:p}),await this.setExpiry(T,de(Ir)),{topic:T,acknowledged:()=>Promise.resolve(this.client.session.get(T))}}),R(this,"reject",async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(t)}catch(o){throw this.client.logger.error("reject() -> isValidReject() failed"),o}const{id:i,reason:s}=t;let n;try{n=this.client.proposal.get(i).pairingTopic}catch(o){throw this.client.logger.error(`reject() -> proposal.get(${i}) failed`),o}n&&(await this.sendError({id:i,topic:n,error:s,rpcOpts:ge.wc_sessionPropose.reject}),await this.client.proposal.delete(i,te("USER_DISCONNECTED")))}),R(this,"update",async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(t)}catch(l){throw this.client.logger.error("update() -> isValidUpdate() failed"),l}const{topic:i,namespaces:s}=t,{done:n,resolve:o,reject:a}=Qt(),c=mt(),u=nr().toString(),h=this.client.session.get(i).namespaces;return this.events.once(X("session_update",c),({error:l})=>{l?a(l):o()}),await this.client.session.update(i,{namespaces:s}),await this.sendRequest({topic:i,method:"wc_sessionUpdate",params:{namespaces:s},throwOnFailedPublish:!0,clientRpcId:c,relayRpcId:u}).catch(l=>{this.client.logger.error(l),this.client.session.update(i,{namespaces:h}),a(l)}),{acknowledged:n}}),R(this,"extend",async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(t)}catch(c){throw this.client.logger.error("extend() -> isValidExtend() failed"),c}const{topic:i}=t,s=mt(),{done:n,resolve:o,reject:a}=Qt();return this.events.once(X("session_extend",s),({error:c})=>{c?a(c):o()}),await this.setExpiry(i,de(Ir)),this.sendRequest({topic:i,method:"wc_sessionExtend",params:{},clientRpcId:s,throwOnFailedPublish:!0}).catch(c=>{a(c)}),{acknowledged:n}}),R(this,"request",async t=>{this.isInitialized();try{await this.isValidRequest(t)}catch(E){throw this.client.logger.error("request() -> isValidRequest() failed"),E}const{chainId:i,request:s,topic:n,expiry:o=ge.wc_sessionRequest.req.ttl}=t,a=this.client.session.get(n);a?.transportType===ae.relay&&await this.confirmOnlineStateOrThrow();const c=mt(),u=nr().toString(),{done:h,resolve:l,reject:d}=Qt(o,"Request expired. Please try again.");this.events.once(X("session_request",c),({error:E,result:b})=>{E?d(E):l(b)});const f="wc_sessionRequest",p=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);if(p)return await this.sendRequest({clientRpcId:c,relayRpcId:u,topic:n,method:f,params:{request:Te(se({},s),{expiryTimestamp:de(o)}),chainId:i},expiry:o,throwOnFailedPublish:!0,appLink:p}).catch(E=>d(E)),this.client.events.emit("session_request_sent",{topic:n,request:s,chainId:i,id:c}),await h();const g={request:Te(se({},s),{expiryTimestamp:de(o)}),chainId:i},w=this.shouldSetTVF(f,g);return await Promise.all([new Promise(async E=>{await this.sendRequest(se({clientRpcId:c,relayRpcId:u,topic:n,method:f,params:g,expiry:o,throwOnFailedPublish:!0},w&&{tvf:this.getTVFParams(c,g)})).catch(b=>d(b)),this.client.events.emit("session_request_sent",{topic:n,request:s,chainId:i,id:c}),E()}),new Promise(async E=>{var b;if(!((b=a.sessionConfig)!=null&&b.disableDeepLink)){const _=await Iw(this.client.core.storage,Eu);await vw({id:c,topic:n,wcDeepLink:_})}E()}),h()]).then(E=>E[2])}),R(this,"respond",async t=>{this.isInitialized(),await this.isValidRespond(t);const{topic:i,response:s}=t,{id:n}=s,o=this.client.session.get(i);o.transportType===ae.relay&&await this.confirmOnlineStateOrThrow();const a=this.getAppLinkIfEnabled(o.peer.metadata,o.transportType);wt(s)?await this.sendResult({id:n,topic:i,result:s.result,throwOnFailedPublish:!0,appLink:a}):et(s)&&await this.sendError({id:n,topic:i,error:s.error,appLink:a}),this.cleanupAfterResponse(t)}),R(this,"ping",async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(t)}catch(s){throw this.client.logger.error("ping() -> isValidPing() failed"),s}const{topic:i}=t;if(this.client.session.keys.includes(i)){const s=mt(),n=nr().toString(),{done:o,resolve:a,reject:c}=Qt();this.events.once(X("session_ping",s),({error:u})=>{u?c(u):a()}),await Promise.all([this.sendRequest({topic:i,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:n}),o()])}else this.client.core.pairing.pairings.keys.includes(i)&&(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:i}))}),R(this,"emit",async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(t);const{topic:i,event:s,chainId:n}=t,o=nr().toString(),a=mt();await this.sendRequest({topic:i,method:"wc_sessionEvent",params:{event:s,chainId:n},throwOnFailedPublish:!0,relayRpcId:o,clientRpcId:a})}),R(this,"disconnect",async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(t);const{topic:i}=t;if(this.client.session.keys.includes(i))await this.sendRequest({topic:i,method:"wc_sessionDelete",params:te("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:i,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(i))await this.client.core.pairing.disconnect({topic:i});else{const{message:s}=L("MISMATCHED_TOPIC",`Session or pairing topic not found: ${i}`);throw new Error(s)}}),R(this,"find",t=>(this.isInitialized(),this.client.session.getAll().filter(i=>p0(i,t)))),R(this,"getPendingSessionRequests",()=>this.client.pendingRequest.getAll()),R(this,"authenticate",async(t,i)=>{var s;this.isInitialized(),this.isValidAuthenticate(t);const n=i&&this.client.core.linkModeSupportedApps.includes(i)&&((s=this.client.metadata.redirect)==null?void 0:s.linkMode),o=n?ae.link_mode:ae.relay;o===ae.relay&&await this.confirmOnlineStateOrThrow();const{chains:a,statement:c="",uri:u,domain:h,nonce:l,type:d,exp:f,nbf:p,methods:g=[],expiry:w}=t,E=[...t.resources||[]],{topic:b,uri:_}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:o});this.client.logger.info({message:"Generated new pairing",pairing:{topic:b,uri:_}});const C=await this.client.core.crypto.generateKeyPair(),T=ss(C);if(await Promise.all([this.client.auth.authKeys.set(cs,{responseTopic:T,publicKey:C}),this.client.auth.pairingTopics.set(T,{topic:T,pairingTopic:b})]),await this.client.core.relayer.subscribe(T,{transportType:o}),this.client.logger.info(`sending request to new pairing topic: ${b}`),g.length>0){const{namespace:O}=qr(a[0]);let x=gb(O,"request",g);is(E)&&(x=mb(x,E.pop())),E.push(x)}const v=w&&w>ge.wc_sessionAuthenticate.req.ttl?w:ge.wc_sessionAuthenticate.req.ttl,I={authPayload:{type:d??"caip122",chains:a,statement:c,aud:u,domain:h,version:"1",nonce:l,iat:new Date().toISOString(),exp:f,nbf:p,resources:E},requester:{publicKey:C,metadata:this.client.metadata},expiryTimestamp:de(v)},P={eip155:{chains:a,methods:[...new Set(["personal_sign",...g])],events:["chainChanged","accountsChanged"]}},S={requiredNamespaces:{},optionalNamespaces:P,relays:[{protocol:"irn"}],pairingTopic:b,proposer:{publicKey:C,metadata:this.client.metadata},expiryTimestamp:de(ge.wc_sessionPropose.req.ttl),id:mt()},{done:B,resolve:N,reject:j}=Qt(v,"Request expired"),M=mt(),$=X("session_connect",S.id),y=X("session_request",M),m=async({error:O,session:x})=>{this.events.off(y,D),O?j(O):x&&N({session:x})},D=async O=>{var x,F,k;if(await this.deletePendingAuthRequest(M,{message:"fulfilled",code:0}),O.error){const Y=te("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return O.error.code===Y.code?void 0:(this.events.off($,m),j(O.error.message))}await this.deleteProposal(S.id),this.events.off($,m);const{cacaos:z,responder:q}=O.result,H=[],V=[];for(const Y of z){await Xa({cacao:Y,projectId:this.client.core.projectId})||(this.client.logger.error(Y,"Signature verification failed"),j(te("SESSION_SETTLEMENT_FAILED","Signature verification failed")));const{p:Ae}=Y,Ee=is(Ae.resources),Ce=[Mn(Ae.iss)],Je=ps(Ae.iss);if(Ee){const It=ec(Ee),yr=tc(Ee);H.push(...It),Ce.push(...yr)}for(const It of Ce)V.push(`${It}:${Je}`)}const ne=await this.client.core.crypto.generateSharedKey(C,q.publicKey);let ee;H.length>0&&(ee={topic:ne,acknowledged:!0,self:{publicKey:C,metadata:this.client.metadata},peer:q,controller:q.publicKey,expiry:de(Ir),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:b,namespaces:Oc([...new Set(H)],[...new Set(V)]),transportType:o},await this.client.core.relayer.subscribe(ne,{transportType:o}),await this.client.session.set(ne,ee),b&&await this.client.core.pairing.updateMetadata({topic:b,metadata:q.metadata}),ee=this.client.session.get(ne)),(x=this.client.metadata.redirect)!=null&&x.linkMode&&(F=q.metadata.redirect)!=null&&F.linkMode&&(k=q.metadata.redirect)!=null&&k.universal&&i&&(this.client.core.addLinkModeSupportedApp(q.metadata.redirect.universal),this.client.session.update(ne,{transportType:ae.link_mode})),N({auths:z,session:ee})};this.events.once($,m),this.events.once(y,D);let A;try{if(n){const O=Ht("wc_sessionAuthenticate",I,M);this.client.core.history.set(b,O);const x=await this.client.core.crypto.encode("",O,{type:Bi,encoding:Mt});A=Ki(i,b,x)}else await Promise.all([this.sendRequest({topic:b,method:"wc_sessionAuthenticate",params:I,expiry:t.expiry,throwOnFailedPublish:!0,clientRpcId:M}),this.sendRequest({topic:b,method:"wc_sessionPropose",params:S,expiry:ge.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:S.id})])}catch(O){throw this.events.off($,m),this.events.off(y,D),O}return await this.setProposal(S.id,S),await this.setAuthRequest(M,{request:Te(se({},I),{verifyContext:{}}),pairingTopic:b,transportType:o}),{uri:A??_,response:B}}),R(this,"approveSessionAuthenticate",async t=>{const{id:i,auths:s}=t,n=this.client.core.eventClient.createEvent({properties:{topic:i.toString(),trace:[Zt.authenticated_session_approve_started]}});try{this.isInitialized()}catch(w){throw n.setError(ui.no_internet_connection),w}const o=this.getPendingAuthRequest(i);if(!o)throw n.setError(ui.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${i}`);const a=o.transportType||ae.relay;a===ae.relay&&await this.confirmOnlineStateOrThrow();const c=o.requester.publicKey,u=await this.client.core.crypto.generateKeyPair(),h=ss(c),l={type:Nt,receiverPublicKey:c,senderPublicKey:u},d=[],f=[];for(const w of s){if(!await Xa({cacao:w,projectId:this.client.core.projectId})){n.setError(ui.invalid_cacao);const T=te("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:i,topic:h,error:T,encodeOpts:l}),new Error(T.message)}n.addTrace(Zt.cacaos_verified);const{p:E}=w,b=is(E.resources),_=[Mn(E.iss)],C=ps(E.iss);if(b){const T=ec(b),v=tc(b);d.push(...T),_.push(...v)}for(const T of _)f.push(`${T}:${C}`)}const p=await this.client.core.crypto.generateSharedKey(u,c);n.addTrace(Zt.create_authenticated_session_topic);let g;if(d?.length>0){g={topic:p,acknowledged:!0,self:{publicKey:u,metadata:this.client.metadata},peer:{publicKey:c,metadata:o.requester.metadata},controller:c,expiry:de(Ir),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:o.pairingTopic,namespaces:Oc([...new Set(d)],[...new Set(f)]),transportType:a},n.addTrace(Zt.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(p,{transportType:a})}catch(w){throw n.setError(ui.subscribe_authenticated_session_topic_failure),w}n.addTrace(Zt.subscribe_authenticated_session_topic_success),await this.client.session.set(p,g),n.addTrace(Zt.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:o.pairingTopic,metadata:o.requester.metadata})}n.addTrace(Zt.publishing_authenticated_session_approve);try{await this.sendResult({topic:h,id:i,result:{cacaos:s,responder:{publicKey:u,metadata:this.client.metadata}},encodeOpts:l,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(o.requester.metadata,a)})}catch(w){throw n.setError(ui.authenticated_session_approve_publish_failure),w}return await this.client.auth.requests.delete(i,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:o.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:n.eventId}),{session:g}}),R(this,"rejectSessionAuthenticate",async t=>{this.isInitialized();const{id:i,reason:s}=t,n=this.getPendingAuthRequest(i);if(!n)throw new Error(`Could not find pending auth request with id ${i}`);n.transportType===ae.relay&&await this.confirmOnlineStateOrThrow();const o=n.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),c=ss(o),u={type:Nt,receiverPublicKey:o,senderPublicKey:a};await this.sendError({id:i,topic:c,error:s,encodeOpts:u,rpcOpts:ge.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(n.requester.metadata,n.transportType)}),await this.client.auth.requests.delete(i,{message:"rejected",code:0}),await this.client.proposal.delete(i,te("USER_DISCONNECTED"))}),R(this,"formatAuthMessage",t=>{this.isInitialized();const{request:i,iss:s}=t;return sl(i,s)}),R(this,"processRelayMessageCache",()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const t=this.relayMessageCache.shift();t&&await this.onRelayMessage(t)}catch(t){this.client.logger.error(t)}},50)}),R(this,"cleanupDuplicatePairings",async t=>{if(t.pairingTopic)try{const i=this.client.core.pairing.pairings.get(t.pairingTopic),s=this.client.core.pairing.pairings.getAll().filter(n=>{var o,a;return((o=n.peerMetadata)==null?void 0:o.url)&&((a=n.peerMetadata)==null?void 0:a.url)===t.peer.metadata.url&&n.topic&&n.topic!==i.topic});if(s.length===0)return;this.client.logger.info(`Cleaning up ${s.length} duplicate pairing(s)`),await Promise.all(s.map(n=>this.client.core.pairing.disconnect({topic:n.topic}))),this.client.logger.info("Duplicate pairings clean up finished")}catch(i){this.client.logger.error(i)}}),R(this,"deleteSession",async t=>{var i;const{topic:s,expirerHasDeleted:n=!1,emitEvent:o=!0,id:a=0}=t,{self:c}=this.client.session.get(s);await this.client.core.relayer.unsubscribe(s),await this.client.session.delete(s,te("USER_DISCONNECTED")),this.addToRecentlyDeleted(s,"session"),this.client.core.crypto.keychain.has(c.publicKey)&&await this.client.core.crypto.deleteKeyPair(c.publicKey),this.client.core.crypto.keychain.has(s)&&await this.client.core.crypto.deleteSymKey(s),n||this.client.core.expirer.del(s),this.client.core.storage.removeItem(Eu).catch(u=>this.client.logger.warn(u)),this.getPendingSessionRequests().forEach(u=>{u.topic===s&&this.deletePendingSessionRequest(u.id,te("USER_DISCONNECTED"))}),s===((i=this.sessionRequestQueue.queue[0])==null?void 0:i.topic)&&(this.sessionRequestQueue.state=gt.idle),o&&this.client.events.emit("session_delete",{id:a,topic:s})}),R(this,"deleteProposal",async(t,i)=>{if(i)try{const s=this.client.proposal.get(t);this.client.core.eventClient.getEvent({topic:s.pairingTopic})?.setError(Jt.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(t,te("USER_DISCONNECTED")),i?Promise.resolve():this.client.core.expirer.del(t)]),this.addToRecentlyDeleted(t,"proposal")}),R(this,"deletePendingSessionRequest",async(t,i,s=!1)=>{await Promise.all([this.client.pendingRequest.delete(t,i),s?Promise.resolve():this.client.core.expirer.del(t)]),this.addToRecentlyDeleted(t,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(n=>n.id!==t),s&&(this.sessionRequestQueue.state=gt.idle,this.client.events.emit("session_request_expire",{id:t}))}),R(this,"deletePendingAuthRequest",async(t,i,s=!1)=>{await Promise.all([this.client.auth.requests.delete(t,i),s?Promise.resolve():this.client.core.expirer.del(t)])}),R(this,"setExpiry",async(t,i)=>{this.client.session.keys.includes(t)&&(this.client.core.expirer.set(t,i),await this.client.session.update(t,{expiry:i}))}),R(this,"setProposal",async(t,i)=>{this.client.core.expirer.set(t,de(ge.wc_sessionPropose.req.ttl)),await this.client.proposal.set(t,i)}),R(this,"setAuthRequest",async(t,i)=>{const{request:s,pairingTopic:n,transportType:o=ae.relay}=i;this.client.core.expirer.set(t,s.expiryTimestamp),await this.client.auth.requests.set(t,{authPayload:s.authPayload,requester:s.requester,expiryTimestamp:s.expiryTimestamp,id:t,pairingTopic:n,verifyContext:s.verifyContext,transportType:o})}),R(this,"setPendingSessionRequest",async t=>{const{id:i,topic:s,params:n,verifyContext:o}=t,a=n.request.expiryTimestamp||de(ge.wc_sessionRequest.req.ttl);this.client.core.expirer.set(i,a),await this.client.pendingRequest.set(i,{id:i,topic:s,params:n,verifyContext:o})}),R(this,"sendRequest",async t=>{const{topic:i,method:s,params:n,expiry:o,relayRpcId:a,clientRpcId:c,throwOnFailedPublish:u,appLink:h,tvf:l}=t,d=Ht(s,n,c);let f;const p=!!h;try{const E=p?Mt:ut;f=await this.client.core.crypto.encode(i,d,{encoding:E})}catch(E){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${i} failed`),E}let g;if(pD.includes(s)){const E=vt(JSON.stringify(d)),b=vt(f);g=await this.client.core.verify.register({id:b,decryptedId:E})}const w=ge[s].req;if(w.attestation=g,o&&(w.ttl=o),a&&(w.id=a),this.client.core.history.set(i,d),p){const E=Ki(h,i,f);await global.Linking.openURL(E,this.client.name)}else{const E=ge[s].req;o&&(E.ttl=o),a&&(E.id=a),E.tvf=Te(se({},l),{correlationId:d.id}),u?(E.internal=Te(se({},E.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(i,f,E)):this.client.core.relayer.publish(i,f,E).catch(b=>this.client.logger.error(b))}return d.id}),R(this,"sendResult",async t=>{const{id:i,topic:s,result:n,throwOnFailedPublish:o,encodeOpts:a,appLink:c}=t,u=Rs(i,n);let h;const l=c&&typeof(global==null?void 0:global.Linking)<"u";try{const p=l?Mt:ut;h=await this.client.core.crypto.encode(s,u,Te(se({},a||{}),{encoding:p}))}catch(p){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${s} failed`),p}let d,f;try{d=await this.client.core.history.get(s,i);const p=d.request;try{this.shouldSetTVF(p.method,p.params)&&(f=this.getTVFParams(i,p.params,n))}catch(g){this.client.logger.warn("sendResult() -> getTVFParams() failed",g)}}catch(p){throw this.client.logger.error(`sendResult() -> history.get(${s}, ${i}) failed`),p}if(l){const p=Ki(c,s,h);await global.Linking.openURL(p,this.client.name)}else{const p=d.request.method,g=ge[p].res;g.tvf=Te(se({},f),{correlationId:i}),o?(g.internal=Te(se({},g.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,h,g)):this.client.core.relayer.publish(s,h,g).catch(w=>this.client.logger.error(w))}await this.client.core.history.resolve(u)}),R(this,"sendError",async t=>{const{id:i,topic:s,error:n,encodeOpts:o,rpcOpts:a,appLink:c}=t,u=Ns(i,n);let h;const l=c&&typeof(global==null?void 0:global.Linking)<"u";try{const f=l?Mt:ut;h=await this.client.core.crypto.encode(s,u,Te(se({},o||{}),{encoding:f}))}catch(f){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${s} failed`),f}let d;try{d=await this.client.core.history.get(s,i)}catch(f){throw this.client.logger.error(`sendError() -> history.get(${s}, ${i}) failed`),f}if(l){const f=Ki(c,s,h);await global.Linking.openURL(f,this.client.name)}else{const f=d.request.method,p=a||ge[f].res;this.client.core.relayer.publish(s,h,p)}await this.client.core.history.resolve(u)}),R(this,"cleanup",async()=>{const t=[],i=[];this.client.session.getAll().forEach(s=>{let n=!1;kt(s.expiry)&&(n=!0),this.client.core.crypto.keychain.has(s.topic)||(n=!0),n&&t.push(s.topic)}),this.client.proposal.getAll().forEach(s=>{kt(s.expiryTimestamp)&&i.push(s.id)}),await Promise.all([...t.map(s=>this.deleteSession({topic:s})),...i.map(s=>this.deleteProposal(s))])}),R(this,"onProviderMessageEvent",async t=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(t):await this.onRelayMessage(t)}),R(this,"onRelayEventRequest",async t=>{this.requestQueue.queue.push(t),await this.processRequestsQueue()}),R(this,"processRequestsQueue",async()=>{if(this.requestQueue.state===gt.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=gt.active;const t=this.requestQueue.queue.shift();if(t)try{await this.processRequest(t)}catch(i){this.client.logger.warn(i)}}this.requestQueue.state=gt.idle}),R(this,"processRequest",async t=>{const{topic:i,payload:s,attestation:n,transportType:o,encryptedId:a}=t,c=s.method;if(!this.shouldIgnorePairingRequest({topic:i,requestMethod:c}))switch(c){case"wc_sessionPropose":return await this.onSessionProposeRequest({topic:i,payload:s,attestation:n,encryptedId:a});case"wc_sessionSettle":return await this.onSessionSettleRequest(i,s);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(i,s);case"wc_sessionExtend":return await this.onSessionExtendRequest(i,s);case"wc_sessionPing":return await this.onSessionPingRequest(i,s);case"wc_sessionDelete":return await this.onSessionDeleteRequest(i,s);case"wc_sessionRequest":return await this.onSessionRequest({topic:i,payload:s,attestation:n,encryptedId:a,transportType:o});case"wc_sessionEvent":return await this.onSessionEventRequest(i,s);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:i,payload:s,attestation:n,encryptedId:a,transportType:o});default:return this.client.logger.info(`Unsupported request method ${c}`)}}),R(this,"onRelayEventResponse",async t=>{const{topic:i,payload:s,transportType:n}=t,o=(await this.client.core.history.get(i,s.id)).request.method;switch(o){case"wc_sessionPropose":return this.onSessionProposeResponse(i,s,n);case"wc_sessionSettle":return this.onSessionSettleResponse(i,s);case"wc_sessionUpdate":return this.onSessionUpdateResponse(i,s);case"wc_sessionExtend":return this.onSessionExtendResponse(i,s);case"wc_sessionPing":return this.onSessionPingResponse(i,s);case"wc_sessionRequest":return this.onSessionRequestResponse(i,s);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(i,s);default:return this.client.logger.info(`Unsupported response method ${o}`)}}),R(this,"onRelayEventUnknownPayload",t=>{const{topic:i}=t,{message:s}=L("MISSING_OR_INVALID",`Decoded payload on topic ${i} is not identifiable as a JSON-RPC request or a response.`);throw new Error(s)}),R(this,"shouldIgnorePairingRequest",t=>{const{topic:i,requestMethod:s}=t,n=this.expectedPairingMethodMap.get(i);return!n||n.includes(s)?!1:!!(n.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)}),R(this,"onSessionProposeRequest",async t=>{const{topic:i,payload:s,attestation:n,encryptedId:o}=t,{params:a,id:c}=s;try{const u=this.client.core.eventClient.getEvent({topic:i});this.client.events.listenerCount("session_proposal")===0&&(console.warn("No listener for session_proposal event"),u?.setError(xt.proposal_listener_not_found)),this.isValidConnect(se({},s.params));const h=a.expiryTimestamp||de(ge.wc_sessionPropose.req.ttl),l=se({id:c,pairingTopic:i,expiryTimestamp:h},a);await this.setProposal(c,l);const d=await this.getVerifyContext({attestationId:n,hash:vt(JSON.stringify(s)),encryptedId:o,metadata:l.proposer.metadata});u?.addTrace(yt.emit_session_proposal),this.client.events.emit("session_proposal",{id:c,params:l,verifyContext:d})}catch(u){await this.sendError({id:c,topic:i,error:u,rpcOpts:ge.wc_sessionPropose.autoReject}),this.client.logger.error(u)}}),R(this,"onSessionProposeResponse",async(t,i,s)=>{const{id:n}=i;if(wt(i)){const{result:o}=i;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:o});const a=this.client.proposal.get(n);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:a});const c=a.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:c});const u=o.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:u});const h=await this.client.core.crypto.generateSharedKey(c,u);this.pendingSessions.set(n,{sessionTopic:h,pairingTopic:t,proposalId:n,publicKey:c});const l=await this.client.core.relayer.subscribe(h,{transportType:s});this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:l}),await this.client.core.pairing.activate({topic:t})}else if(et(i)){await this.client.proposal.delete(n,te("USER_DISCONNECTED"));const o=X("session_connect",n);if(this.events.listenerCount(o)===0)throw new Error(`emitting ${o} without any listeners, 954`);this.events.emit(o,{error:i.error})}}),R(this,"onSessionSettleRequest",async(t,i)=>{const{id:s,params:n}=i;try{this.isValidSessionSettleRequest(n);const{relay:o,controller:a,expiry:c,namespaces:u,sessionProperties:h,scopedProperties:l,sessionConfig:d}=i.params,f=[...this.pendingSessions.values()].find(w=>w.sessionTopic===t);if(!f)return this.client.logger.error(`Pending session not found for topic ${t}`);const p=this.client.proposal.get(f.proposalId),g=Te(se(se(se({topic:t,relay:o,expiry:c,namespaces:u,acknowledged:!0,pairingTopic:f.pairingTopic,requiredNamespaces:p.requiredNamespaces,optionalNamespaces:p.optionalNamespaces,controller:a.publicKey,self:{publicKey:f.publicKey,metadata:this.client.metadata},peer:{publicKey:a.publicKey,metadata:a.metadata}},h&&{sessionProperties:h}),l&&{scopedProperties:l}),d&&{sessionConfig:d}),{transportType:ae.relay});await this.client.session.set(g.topic,g),await this.setExpiry(g.topic,g.expiry),await this.client.core.pairing.updateMetadata({topic:f.pairingTopic,metadata:g.peer.metadata}),this.client.events.emit("session_connect",{session:g}),this.events.emit(X("session_connect",f.proposalId),{session:g}),this.pendingSessions.delete(f.proposalId),this.deleteProposal(f.proposalId,!1),this.cleanupDuplicatePairings(g),await this.sendResult({id:i.id,topic:t,result:!0,throwOnFailedPublish:!0})}catch(o){await this.sendError({id:s,topic:t,error:o}),this.client.logger.error(o)}}),R(this,"onSessionSettleResponse",async(t,i)=>{const{id:s}=i;wt(i)?(await this.client.session.update(t,{acknowledged:!0}),this.events.emit(X("session_approve",s),{})):et(i)&&(await this.client.session.delete(t,te("USER_DISCONNECTED")),this.events.emit(X("session_approve",s),{error:i.error}))}),R(this,"onSessionUpdateRequest",async(t,i)=>{const{params:s,id:n}=i;try{const o=`${t}_session_update`,a=ai.get(o);if(a&&this.isRequestOutOfSync(a,n)){this.client.logger.warn(`Discarding out of sync request - ${n}`),this.sendError({id:n,topic:t,error:te("INVALID_UPDATE_REQUEST")});return}this.isValidUpdate(se({topic:t},s));try{ai.set(o,n),await this.client.session.update(t,{namespaces:s.namespaces}),await this.sendResult({id:n,topic:t,result:!0,throwOnFailedPublish:!0})}catch(c){throw ai.delete(o),c}this.client.events.emit("session_update",{id:n,topic:t,params:s})}catch(o){await this.sendError({id:n,topic:t,error:o}),this.client.logger.error(o)}}),R(this,"isRequestOutOfSync",(t,i)=>i.toString().slice(0,-3)<t.toString().slice(0,-3)),R(this,"onSessionUpdateResponse",(t,i)=>{const{id:s}=i,n=X("session_update",s);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);wt(i)?this.events.emit(X("session_update",s),{}):et(i)&&this.events.emit(X("session_update",s),{error:i.error})}),R(this,"onSessionExtendRequest",async(t,i)=>{const{id:s}=i;try{this.isValidExtend({topic:t}),await this.setExpiry(t,de(Ir)),await this.sendResult({id:s,topic:t,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_extend",{id:s,topic:t})}catch(n){await this.sendError({id:s,topic:t,error:n}),this.client.logger.error(n)}}),R(this,"onSessionExtendResponse",(t,i)=>{const{id:s}=i,n=X("session_extend",s);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);wt(i)?this.events.emit(X("session_extend",s),{}):et(i)&&this.events.emit(X("session_extend",s),{error:i.error})}),R(this,"onSessionPingRequest",async(t,i)=>{const{id:s}=i;try{this.isValidPing({topic:t}),await this.sendResult({id:s,topic:t,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:s,topic:t})}catch(n){await this.sendError({id:s,topic:t,error:n}),this.client.logger.error(n)}}),R(this,"onSessionPingResponse",(t,i)=>{const{id:s}=i,n=X("session_ping",s);setTimeout(()=>{if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners 2176`);wt(i)?this.events.emit(X("session_ping",s),{}):et(i)&&this.events.emit(X("session_ping",s),{error:i.error})},500)}),R(this,"onSessionDeleteRequest",async(t,i)=>{const{id:s}=i;try{this.isValidDisconnect({topic:t,reason:i.params}),Promise.all([new Promise(n=>{this.client.core.relayer.once(we.publish,async()=>{n(await this.deleteSession({topic:t,id:s}))})}),this.sendResult({id:s,topic:t,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:t,error:te("USER_DISCONNECTED")})]).catch(n=>this.client.logger.error(n))}catch(n){this.client.logger.error(n)}}),R(this,"onSessionRequest",async t=>{var i,s,n;const{topic:o,payload:a,attestation:c,encryptedId:u,transportType:h}=t,{id:l,params:d}=a;try{await this.isValidRequest(se({topic:o},d));const f=this.client.session.get(o),p=await this.getVerifyContext({attestationId:c,hash:vt(JSON.stringify(Ht("wc_sessionRequest",d,l))),encryptedId:u,metadata:f.peer.metadata,transportType:h}),g={id:l,topic:o,params:d,verifyContext:p};await this.setPendingSessionRequest(g),h===ae.link_mode&&(i=f.peer.metadata.redirect)!=null&&i.universal&&this.client.core.addLinkModeSupportedApp((s=f.peer.metadata.redirect)==null?void 0:s.universal),(n=this.client.signConfig)!=null&&n.disableRequestQueue?this.emitSessionRequest(g):(this.addSessionRequestToSessionRequestQueue(g),this.processSessionRequestQueue())}catch(f){await this.sendError({id:l,topic:o,error:f}),this.client.logger.error(f)}}),R(this,"onSessionRequestResponse",(t,i)=>{const{id:s}=i,n=X("session_request",s);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);wt(i)?this.events.emit(X("session_request",s),{result:i.result}):et(i)&&this.events.emit(X("session_request",s),{error:i.error})}),R(this,"onSessionEventRequest",async(t,i)=>{const{id:s,params:n}=i;try{const o=`${t}_session_event_${n.event.name}`,a=ai.get(o);if(a&&this.isRequestOutOfSync(a,s)){this.client.logger.info(`Discarding out of sync request - ${s}`);return}this.isValidEmit(se({topic:t},n)),this.client.events.emit("session_event",{id:s,topic:t,params:n}),ai.set(o,s)}catch(o){await this.sendError({id:s,topic:t,error:o}),this.client.logger.error(o)}}),R(this,"onSessionAuthenticateResponse",(t,i)=>{const{id:s}=i;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:t,payload:i}),wt(i)?this.events.emit(X("session_request",s),{result:i.result}):et(i)&&this.events.emit(X("session_request",s),{error:i.error})}),R(this,"onSessionAuthenticateRequest",async t=>{var i;const{topic:s,payload:n,attestation:o,encryptedId:a,transportType:c}=t;try{const{requester:u,authPayload:h,expiryTimestamp:l}=n.params,d=await this.getVerifyContext({attestationId:o,hash:vt(JSON.stringify(n)),encryptedId:a,metadata:u.metadata,transportType:c}),f={requester:u,pairingTopic:s,id:n.id,authPayload:h,verifyContext:d,expiryTimestamp:l};await this.setAuthRequest(n.id,{request:f,pairingTopic:s,transportType:c}),c===ae.link_mode&&(i=u.metadata.redirect)!=null&&i.universal&&this.client.core.addLinkModeSupportedApp(u.metadata.redirect.universal),this.client.events.emit("session_authenticate",{topic:s,params:n.params,id:n.id,verifyContext:d})}catch(u){this.client.logger.error(u);const h=n.params.requester.publicKey,l=await this.client.core.crypto.generateKeyPair(),d=this.getAppLinkIfEnabled(n.params.requester.metadata,c),f={type:Nt,receiverPublicKey:h,senderPublicKey:l};await this.sendError({id:n.id,topic:s,error:u,encodeOpts:f,rpcOpts:ge.wc_sessionAuthenticate.autoReject,appLink:d})}}),R(this,"addSessionRequestToSessionRequestQueue",t=>{this.sessionRequestQueue.queue.push(t)}),R(this,"cleanupAfterResponse",t=>{this.deletePendingSessionRequest(t.response.id,{message:"fulfilled",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=gt.idle,this.processSessionRequestQueue()},U.toMiliseconds(this.requestQueueDelay))}),R(this,"cleanupPendingSentRequestsForTopic",({topic:t,error:i})=>{const s=this.client.core.history.pending;s.length>0&&s.filter(n=>n.topic===t&&n.request.method==="wc_sessionRequest").forEach(n=>{const o=n.request.id,a=X("session_request",o);if(this.events.listenerCount(a)===0)throw new Error(`emitting ${a} without any listeners`);this.events.emit(X("session_request",n.request.id),{error:i})})}),R(this,"processSessionRequestQueue",()=>{if(this.sessionRequestQueue.state===gt.active){this.client.logger.info("session request queue is already active.");return}const t=this.sessionRequestQueue.queue[0];if(!t){this.client.logger.info("session request queue is empty.");return}try{this.sessionRequestQueue.state=gt.active,this.emitSessionRequest(t)}catch(i){this.client.logger.error(i)}}),R(this,"emitSessionRequest",t=>{this.client.events.emit("session_request",t)}),R(this,"onPairingCreated",t=>{if(t.methods&&this.expectedPairingMethodMap.set(t.topic,t.methods),t.active)return;const i=this.client.proposal.getAll().find(s=>s.pairingTopic===t.topic);i&&this.onSessionProposeRequest({topic:t.topic,payload:Ht("wc_sessionPropose",Te(se({},i),{requiredNamespaces:i.requiredNamespaces,optionalNamespaces:i.optionalNamespaces,relays:i.relays,proposer:i.proposer,sessionProperties:i.sessionProperties,scopedProperties:i.scopedProperties}),i.id)})}),R(this,"isValidConnect",async t=>{if(!Le(t)){const{message:u}=L("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(t)}`);throw new Error(u)}const{pairingTopic:i,requiredNamespaces:s,optionalNamespaces:n,sessionProperties:o,scopedProperties:a,relays:c}=t;if(Se(i)||await this.isValidPairingTopic(i),!S0(c)){const{message:u}=L("MISSING_OR_INVALID",`connect() relays: ${c}`);throw new Error(u)}if(!Se(s)&&Kt(s)!==0){const u="requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces";["fatal","error","silent"].includes(this.client.logger.level)?console.warn(u):this.client.logger.warn(u),this.validateNamespaces(s,"requiredNamespaces")}if(!Se(n)&&Kt(n)!==0&&this.validateNamespaces(n,"optionalNamespaces"),Se(o)||this.validateSessionProps(o,"sessionProperties"),!Se(a)){this.validateSessionProps(a,"scopedProperties");const u=Object.keys(s||{}).concat(Object.keys(n||{}));if(!Object.keys(a).every(h=>u.includes(h)))throw new Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(u)}`)}}),R(this,"validateNamespaces",(t,i)=>{const s=D0(t,"connect()",i);if(s)throw new Error(s.message)}),R(this,"isValidApprove",async t=>{if(!Le(t))throw new Error(L("MISSING_OR_INVALID",`approve() params: ${t}`).message);const{id:i,namespaces:s,relayProtocol:n,sessionProperties:o,scopedProperties:a}=t;this.checkRecentlyDeleted(i),await this.isValidProposalId(i);const c=this.client.proposal.get(i),u=pn(s,"approve()");if(u)throw new Error(u.message);const h=Ac(c.requiredNamespaces,s,"approve()");if(h)throw new Error(h.message);if(!le(n,!0)){const{message:l}=L("MISSING_OR_INVALID",`approve() relayProtocol: ${n}`);throw new Error(l)}if(Se(o)||this.validateSessionProps(o,"sessionProperties"),!Se(a)){this.validateSessionProps(a,"scopedProperties");const l=new Set(Object.keys(s));if(!Object.keys(a).every(d=>l.has(d)))throw new Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(l).join(", ")}`)}}),R(this,"isValidReject",async t=>{if(!Le(t)){const{message:n}=L("MISSING_OR_INVALID",`reject() params: ${t}`);throw new Error(n)}const{id:i,reason:s}=t;if(this.checkRecentlyDeleted(i),await this.isValidProposalId(i),!P0(s)){const{message:n}=L("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(s)}`);throw new Error(n)}}),R(this,"isValidSessionSettleRequest",t=>{if(!Le(t)){const{message:u}=L("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${t}`);throw new Error(u)}const{relay:i,controller:s,namespaces:n,expiry:o}=t;if(!xl(i)){const{message:u}=L("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(u)}const a=w0(s,"onSessionSettleRequest()");if(a)throw new Error(a.message);const c=pn(n,"onSessionSettleRequest()");if(c)throw new Error(c.message);if(kt(o)){const{message:u}=L("EXPIRED","onSessionSettleRequest()");throw new Error(u)}}),R(this,"isValidUpdate",async t=>{if(!Le(t)){const{message:c}=L("MISSING_OR_INVALID",`update() params: ${t}`);throw new Error(c)}const{topic:i,namespaces:s}=t;this.checkRecentlyDeleted(i),await this.isValidSessionTopic(i);const n=this.client.session.get(i),o=pn(s,"update()");if(o)throw new Error(o.message);const a=Ac(n.requiredNamespaces,s,"update()");if(a)throw new Error(a.message)}),R(this,"isValidExtend",async t=>{if(!Le(t)){const{message:s}=L("MISSING_OR_INVALID",`extend() params: ${t}`);throw new Error(s)}const{topic:i}=t;this.checkRecentlyDeleted(i),await this.isValidSessionTopic(i)}),R(this,"isValidRequest",async t=>{if(!Le(t)){const{message:c}=L("MISSING_OR_INVALID",`request() params: ${t}`);throw new Error(c)}const{topic:i,request:s,chainId:n,expiry:o}=t;this.checkRecentlyDeleted(i),await this.isValidSessionTopic(i);const{namespaces:a}=this.client.session.get(i);if(!$c(a,n)){const{message:c}=L("MISSING_OR_INVALID",`request() chainId: ${n}`);throw new Error(c)}if(!$0(s)){const{message:c}=L("MISSING_OR_INVALID",`request() ${JSON.stringify(s)}`);throw new Error(c)}if(!C0(a,n,s.method)){const{message:c}=L("MISSING_OR_INVALID",`request() method: ${s.method}`);throw new Error(c)}if(o&&!B0(o,Dn)){const{message:c}=L("MISSING_OR_INVALID",`request() expiry: ${o}. Expiry must be a number (in seconds) between ${Dn.min} and ${Dn.max}`);throw new Error(c)}}),R(this,"isValidRespond",async t=>{var i;if(!Le(t)){const{message:o}=L("MISSING_OR_INVALID",`respond() params: ${t}`);throw new Error(o)}const{topic:s,response:n}=t;try{await this.isValidSessionTopic(s)}catch(o){throw(i=t?.response)!=null&&i.id&&this.cleanupAfterResponse(t),o}if(!A0(n)){const{message:o}=L("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(n)}`);throw new Error(o)}}),R(this,"isValidPing",async t=>{if(!Le(t)){const{message:s}=L("MISSING_OR_INVALID",`ping() params: ${t}`);throw new Error(s)}const{topic:i}=t;await this.isValidSessionOrPairingTopic(i)}),R(this,"isValidEmit",async t=>{if(!Le(t)){const{message:a}=L("MISSING_OR_INVALID",`emit() params: ${t}`);throw new Error(a)}const{topic:i,event:s,chainId:n}=t;await this.isValidSessionTopic(i);const{namespaces:o}=this.client.session.get(i);if(!$c(o,n)){const{message:a}=L("MISSING_OR_INVALID",`emit() chainId: ${n}`);throw new Error(a)}if(!x0(s)){const{message:a}=L("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(s)}`);throw new Error(a)}if(!T0(o,n,s.name)){const{message:a}=L("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(s)}`);throw new Error(a)}}),R(this,"isValidDisconnect",async t=>{if(!Le(t)){const{message:s}=L("MISSING_OR_INVALID",`disconnect() params: ${t}`);throw new Error(s)}const{topic:i}=t;await this.isValidSessionOrPairingTopic(i)}),R(this,"isValidAuthenticate",t=>{const{chains:i,uri:s,domain:n,nonce:o}=t;if(!Array.isArray(i)||i.length===0)throw new Error("chains is required and must be a non-empty array");if(!le(s,!1))throw new Error("uri is required parameter");if(!le(n,!1))throw new Error("domain is required parameter");if(!le(o,!1))throw new Error("nonce is required parameter");if([...new Set(i.map(c=>qr(c).namespace))].length>1)throw new Error("Multi-namespace requests are not supported. Please request single namespace only.");const{namespace:a}=qr(i[0]);if(a!=="eip155")throw new Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")}),R(this,"getVerifyContext",async t=>{const{attestationId:i,hash:s,encryptedId:n,metadata:o,transportType:a}=t,c={verified:{verifyUrl:o.verifyUrl||wi,validation:"UNKNOWN",origin:o.url||""}};try{if(a===ae.link_mode){const h=this.getAppLinkIfEnabled(o,a);return c.verified.validation=h&&new URL(h).origin===new URL(o.url).origin?"VALID":"INVALID",c}const u=await this.client.core.verify.resolve({attestationId:i,hash:s,encryptedId:n,verifyUrl:o.verifyUrl});u&&(c.verified.origin=u.origin,c.verified.isScam=u.isScam,c.verified.validation=u.origin===new URL(o.url).origin?"VALID":"INVALID")}catch(u){this.client.logger.warn(u)}return this.client.logger.debug(`Verify context: ${JSON.stringify(c)}`),c}),R(this,"validateSessionProps",(t,i)=>{Object.values(t).forEach((s,n)=>{if(s==null){const{message:o}=L("MISSING_OR_INVALID",`${i} must contain an existing value for each key. Received: ${s} for key ${Object.keys(t)[n]}`);throw new Error(o)}})}),R(this,"getPendingAuthRequest",t=>{const i=this.client.auth.requests.get(t);return typeof i=="object"?i:void 0}),R(this,"addToRecentlyDeleted",(t,i)=>{if(this.recentlyDeletedMap.set(t,i),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let s=0;const n=this.recentlyDeletedLimit/2;for(const o of this.recentlyDeletedMap.keys()){if(s++>=n)break;this.recentlyDeletedMap.delete(o)}}}),R(this,"checkRecentlyDeleted",t=>{const i=this.recentlyDeletedMap.get(t);if(i){const{message:s}=L("MISSING_OR_INVALID",`Record was recently deleted - ${i}: ${t}`);throw new Error(s)}}),R(this,"isLinkModeEnabled",(t,i)=>{var s,n,o,a,c,u,h,l,d;return!t||i!==ae.link_mode?!1:((n=(s=this.client.metadata)==null?void 0:s.redirect)==null?void 0:n.linkMode)===!0&&((a=(o=this.client.metadata)==null?void 0:o.redirect)==null?void 0:a.universal)!==void 0&&((u=(c=this.client.metadata)==null?void 0:c.redirect)==null?void 0:u.universal)!==""&&((h=t?.redirect)==null?void 0:h.universal)!==void 0&&((l=t?.redirect)==null?void 0:l.universal)!==""&&((d=t?.redirect)==null?void 0:d.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(t.redirect.universal)&&typeof(global==null?void 0:global.Linking)<"u"}),R(this,"getAppLinkIfEnabled",(t,i)=>{var s;return this.isLinkModeEnabled(t,i)?(s=t?.redirect)==null?void 0:s.universal:void 0}),R(this,"handleLinkModeMessage",({url:t})=>{if(!t||!t.includes("wc_ev")||!t.includes("topic"))return;const i=Ha(t,"topic")||"",s=decodeURIComponent(Ha(t,"wc_ev")||""),n=this.client.session.keys.includes(i);n&&this.client.session.update(i,{transportType:ae.link_mode}),this.client.core.dispatchEnvelope({topic:i,message:s,sessionExists:n})}),R(this,"registerLinkModeListeners",async()=>{var t;if(Oo()||Wt()&&(t=this.client.metadata.redirect)!=null&&t.linkMode){const i=global==null?void 0:global.Linking;if(typeof i<"u"){i.addEventListener("url",this.handleLinkModeMessage,this.client.name);const s=await i.getInitialURL();s&&setTimeout(()=>{this.handleLinkModeMessage({url:s})},50)}}}),R(this,"shouldSetTVF",(t,i)=>{if(!i||t!=="wc_sessionRequest")return!1;const{request:s}=i;return Object.keys(Iu).includes(s.method)}),R(this,"getTVFParams",(t,i,s)=>{var n,o;try{const a=i.request.method,c=this.extractTxHashesFromResult(a,s);return Te(se({correlationId:t,rpcMethods:[a],chainId:i.chainId},this.isValidContractData(i.request.params)&&{contractAddresses:[(o=(n=i.request.params)==null?void 0:n[0])==null?void 0:o.to]}),{txHashes:c})}catch(a){this.client.logger.warn("Error getting TVF params",a)}return{}}),R(this,"isValidContractData",t=>{var i;if(!t)return!1;try{const s=t?.data||((i=t?.[0])==null?void 0:i.data);if(!s.startsWith("0x"))return!1;const n=s.slice(2);return/^[0-9a-fA-F]*$/.test(n)?n.length%2===0:!1}catch{}return!1}),R(this,"extractTxHashesFromResult",(t,i)=>{try{const s=Iu[t];if(typeof i=="string")return[i];const n=i[s.key];if(ht(n))return t==="solana_signAllTransactions"?n.map(o=>tb(o)):n;if(typeof n=="string")return[n]}catch(s){this.client.logger.warn("Error extracting tx hashes from result",s)}return[]})}async processPendingMessageEvents(){try{const e=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(e);for(const[i,s]of Object.entries(t))for(const n of s)try{await this.onProviderMessageEvent({topic:i,message:n,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${i}, message: ${n}`)}}catch(e){this.client.logger.warn("processPendingMessageEvents failed",e)}}isInitialized(){if(!this.initialized){const{message:e}=L("NOT_INITIALIZED",this.name);throw new Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(we.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){const{topic:t,message:i,attestation:s,transportType:n}=e,{publicKey:o}=this.client.auth.authKeys.keys.includes(cs)?this.client.auth.authKeys.get(cs):{publicKey:void 0};try{const a=await this.client.core.crypto.decode(t,i,{receiverPublicKey:o,encoding:n===ae.link_mode?Mt:ut});jo(a)?(this.client.core.history.set(t,a),await this.onRelayEventRequest({topic:t,payload:a,attestation:s,transportType:n,encryptedId:vt(i)})):Bs(a)?(await this.client.core.history.resolve(a),await this.onRelayEventResponse({topic:t,payload:a,transportType:n}),this.client.core.history.delete(t,a.id)):await this.onRelayEventUnknownPayload({topic:t,payload:a,transportType:n}),await this.client.core.relayer.messages.ack(t,i)}catch(a){this.client.logger.error(a)}}registerExpirerEvents(){this.client.core.expirer.on(Xe.expired,async e=>{const{topic:t,id:i}=Yh(e.target);if(i&&this.client.pendingRequest.keys.includes(i))return await this.deletePendingSessionRequest(i,L("EXPIRED"),!0);if(i&&this.client.auth.requests.keys.includes(i))return await this.deletePendingAuthRequest(i,L("EXPIRED"),!0);t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:t})):i&&(await this.deleteProposal(i,!0),this.client.events.emit("proposal_expire",{id:i}))})}registerPairingEvents(){this.client.core.pairing.events.on(rr.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(rr.delete,e=>{this.addToRecentlyDeleted(e.topic,"pairing")})}isValidPairingTopic(e){if(!le(e,!1)){const{message:t}=L("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:t}=L("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(kt(this.client.core.pairing.pairings.get(e).expiry)){const{message:t}=L("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}}async isValidSessionTopic(e){if(!le(e,!1)){const{message:t}=L("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){const{message:t}=L("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(t)}if(kt(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});const{message:t}=L("EXPIRED",`session topic: ${e}`);throw new Error(t)}if(!this.client.core.crypto.keychain.has(e)){const{message:t}=L("MISSING_OR_INVALID",`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),new Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(le(e,!1)){const{message:t}=L("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(t)}else{const{message:t}=L("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(t)}}async isValidProposalId(e){if(!O0(e)){const{message:t}=L("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(t)}if(!this.client.proposal.keys.includes(e)){const{message:t}=L("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(t)}if(kt(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);const{message:t}=L("EXPIRED",`proposal id: ${e}`);throw new Error(t)}}}class SD extends fr{constructor(e,t){super(e,t,uD,Uo),this.core=e,this.logger=t}}let OD=class extends fr{constructor(e,t){super(e,t,hD,Uo),this.core=e,this.logger=t}};class PD extends fr{constructor(e,t){super(e,t,dD,Uo,i=>i.id),this.core=e,this.logger=t}}class $D extends fr{constructor(e,t){super(e,t,yD,Us,()=>cs),this.core=e,this.logger=t}}class AD extends fr{constructor(e,t){super(e,t,mD,Us),this.core=e,this.logger=t}}class xD extends fr{constructor(e,t){super(e,t,wD,Us,i=>i.id),this.core=e,this.logger=t}}var CD=Object.defineProperty,TD=(r,e,t)=>e in r?CD(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Sn=(r,e,t)=>TD(r,typeof e!="symbol"?e+"":e,t);class RD{constructor(e,t){this.core=e,this.logger=t,Sn(this,"authKeys"),Sn(this,"pairingTopics"),Sn(this,"requests"),this.authKeys=new $D(this.core,this.logger),this.pairingTopics=new AD(this.core,this.logger),this.requests=new xD(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}var ND=Object.defineProperty,BD=(r,e,t)=>e in r?ND(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,G=(r,e,t)=>BD(r,typeof e!="symbol"?e+"":e,t);let jD=class id extends t1{constructor(e){super(e),G(this,"protocol",ed),G(this,"version",td),G(this,"name",In.name),G(this,"metadata"),G(this,"core"),G(this,"logger"),G(this,"events",new Ye.EventEmitter),G(this,"engine"),G(this,"session"),G(this,"proposal"),G(this,"pendingRequest"),G(this,"auth"),G(this,"signConfig"),G(this,"on",(i,s)=>this.events.on(i,s)),G(this,"once",(i,s)=>this.events.once(i,s)),G(this,"off",(i,s)=>this.events.off(i,s)),G(this,"removeListener",(i,s)=>this.events.removeListener(i,s)),G(this,"removeAllListeners",i=>this.events.removeAllListeners(i)),G(this,"connect",async i=>{try{return await this.engine.connect(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"pair",async i=>{try{return await this.engine.pair(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"approve",async i=>{try{return await this.engine.approve(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"reject",async i=>{try{return await this.engine.reject(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"update",async i=>{try{return await this.engine.update(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"extend",async i=>{try{return await this.engine.extend(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"request",async i=>{try{return await this.engine.request(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"respond",async i=>{try{return await this.engine.respond(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"ping",async i=>{try{return await this.engine.ping(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"emit",async i=>{try{return await this.engine.emit(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"disconnect",async i=>{try{return await this.engine.disconnect(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"find",i=>{try{return this.engine.find(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"getPendingSessionRequests",()=>{try{return this.engine.getPendingSessionRequests()}catch(i){throw this.logger.error(i.message),i}}),G(this,"authenticate",async(i,s)=>{try{return await this.engine.authenticate(i,s)}catch(n){throw this.logger.error(n.message),n}}),G(this,"formatAuthMessage",i=>{try{return this.engine.formatAuthMessage(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"approveSessionAuthenticate",async i=>{try{return await this.engine.approveSessionAuthenticate(i)}catch(s){throw this.logger.error(s.message),s}}),G(this,"rejectSessionAuthenticate",async i=>{try{return await this.engine.rejectSessionAuthenticate(i)}catch(s){throw this.logger.error(s.message),s}}),this.name=e?.name||In.name,this.metadata=fw(e?.metadata),this.signConfig=e?.signConfig;const t=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:ji(Ts({level:e?.logger||In.logger}));this.core=e?.core||new cD(e),this.logger=Ne(t,this.name),this.session=new OD(this.core,this.logger),this.proposal=new SD(this.core,this.logger),this.pendingRequest=new PD(this.core,this.logger),this.engine=new DD(this),this.auth=new RD(this.core,this.logger)}static async init(e){const t=new id(e);return await t.initialize(),t}get context(){return ke(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()},U.toMiliseconds(U.ONE_SECOND))}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}};var Ji={exports:{}},Su;function UD(){return Su||(Su=1,(function(r,e){var t=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof bt<"u"&&bt,i=(function(){function n(){this.fetch=!1,this.DOMException=t.DOMException}return n.prototype=t,new n})();(function(n){(function(o){var a=typeof n<"u"&&n||typeof self<"u"&&self||typeof bt<"u"&&bt||{},c={searchParams:"URLSearchParams"in a,iterable:"Symbol"in a&&"iterator"in Symbol,blob:"FileReader"in a&&"Blob"in a&&(function(){try{return new Blob,!0}catch{return!1}})(),formData:"FormData"in a,arrayBuffer:"ArrayBuffer"in a};function u(y){return y&&DataView.prototype.isPrototypeOf(y)}if(c.arrayBuffer)var h=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],l=ArrayBuffer.isView||function(y){return y&&h.indexOf(Object.prototype.toString.call(y))>-1};function d(y){if(typeof y!="string"&&(y=String(y)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(y)||y==="")throw new TypeError('Invalid character in header field name: "'+y+'"');return y.toLowerCase()}function f(y){return typeof y!="string"&&(y=String(y)),y}function p(y){var m={next:function(){var D=y.shift();return{done:D===void 0,value:D}}};return c.iterable&&(m[Symbol.iterator]=function(){return m}),m}function g(y){this.map={},y instanceof g?y.forEach(function(m,D){this.append(D,m)},this):Array.isArray(y)?y.forEach(function(m){if(m.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+m.length);this.append(m[0],m[1])},this):y&&Object.getOwnPropertyNames(y).forEach(function(m){this.append(m,y[m])},this)}g.prototype.append=function(y,m){y=d(y),m=f(m);var D=this.map[y];this.map[y]=D?D+", "+m:m},g.prototype.delete=function(y){delete this.map[d(y)]},g.prototype.get=function(y){return y=d(y),this.has(y)?this.map[y]:null},g.prototype.has=function(y){return this.map.hasOwnProperty(d(y))},g.prototype.set=function(y,m){this.map[d(y)]=f(m)},g.prototype.forEach=function(y,m){for(var D in this.map)this.map.hasOwnProperty(D)&&y.call(m,this.map[D],D,this)},g.prototype.keys=function(){var y=[];return this.forEach(function(m,D){y.push(D)}),p(y)},g.prototype.values=function(){var y=[];return this.forEach(function(m){y.push(m)}),p(y)},g.prototype.entries=function(){var y=[];return this.forEach(function(m,D){y.push([D,m])}),p(y)},c.iterable&&(g.prototype[Symbol.iterator]=g.prototype.entries);function w(y){if(!y._noBody){if(y.bodyUsed)return Promise.reject(new TypeError("Already read"));y.bodyUsed=!0}}function E(y){return new Promise(function(m,D){y.onload=function(){m(y.result)},y.onerror=function(){D(y.error)}})}function b(y){var m=new FileReader,D=E(m);return m.readAsArrayBuffer(y),D}function _(y){var m=new FileReader,D=E(m),A=/charset=([A-Za-z0-9_-]+)/.exec(y.type),O=A?A[1]:"utf-8";return m.readAsText(y,O),D}function C(y){for(var m=new Uint8Array(y),D=new Array(m.length),A=0;A<m.length;A++)D[A]=String.fromCharCode(m[A]);return D.join("")}function T(y){if(y.slice)return y.slice(0);var m=new Uint8Array(y.byteLength);return m.set(new Uint8Array(y)),m.buffer}function v(){return this.bodyUsed=!1,this._initBody=function(y){this.bodyUsed=this.bodyUsed,this._bodyInit=y,y?typeof y=="string"?this._bodyText=y:c.blob&&Blob.prototype.isPrototypeOf(y)?this._bodyBlob=y:c.formData&&FormData.prototype.isPrototypeOf(y)?this._bodyFormData=y:c.searchParams&&URLSearchParams.prototype.isPrototypeOf(y)?this._bodyText=y.toString():c.arrayBuffer&&c.blob&&u(y)?(this._bodyArrayBuffer=T(y.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):c.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(y)||l(y))?this._bodyArrayBuffer=T(y):this._bodyText=y=Object.prototype.toString.call(y):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||(typeof y=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):c.searchParams&&URLSearchParams.prototype.isPrototypeOf(y)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},c.blob&&(this.blob=function(){var y=w(this);if(y)return y;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var y=w(this);return y||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(c.blob)return this.blob().then(b);throw new Error("could not read as ArrayBuffer")}},this.text=function(){var y=w(this);if(y)return y;if(this._bodyBlob)return _(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(C(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},c.formData&&(this.formData=function(){return this.text().then(B)}),this.json=function(){return this.text().then(JSON.parse)},this}var I=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function P(y){var m=y.toUpperCase();return I.indexOf(m)>-1?m:y}function S(y,m){if(!(this instanceof S))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');m=m||{};var D=m.body;if(y instanceof S){if(y.bodyUsed)throw new TypeError("Already read");this.url=y.url,this.credentials=y.credentials,m.headers||(this.headers=new g(y.headers)),this.method=y.method,this.mode=y.mode,this.signal=y.signal,!D&&y._bodyInit!=null&&(D=y._bodyInit,y.bodyUsed=!0)}else this.url=String(y);if(this.credentials=m.credentials||this.credentials||"same-origin",(m.headers||!this.headers)&&(this.headers=new g(m.headers)),this.method=P(m.method||this.method||"GET"),this.mode=m.mode||this.mode||null,this.signal=m.signal||this.signal||(function(){if("AbortController"in a){var x=new AbortController;return x.signal}})(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&D)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(D),(this.method==="GET"||this.method==="HEAD")&&(m.cache==="no-store"||m.cache==="no-cache")){var A=/([?&])_=[^&]*/;if(A.test(this.url))this.url=this.url.replace(A,"$1_="+new Date().getTime());else{var O=/\?/;this.url+=(O.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}S.prototype.clone=function(){return new S(this,{body:this._bodyInit})};function B(y){var m=new FormData;return y.trim().split("&").forEach(function(D){if(D){var A=D.split("="),O=A.shift().replace(/\+/g," "),x=A.join("=").replace(/\+/g," ");m.append(decodeURIComponent(O),decodeURIComponent(x))}}),m}function N(y){var m=new g,D=y.replace(/\r?\n[\t ]+/g," ");return D.split("\r").map(function(A){return A.indexOf(`
`)===0?A.substr(1,A.length):A}).forEach(function(A){var O=A.split(":"),x=O.shift().trim();if(x){var F=O.join(":").trim();try{m.append(x,F)}catch(k){console.warn("Response "+k.message)}}}),m}v.call(S.prototype);function j(y,m){if(!(this instanceof j))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(m||(m={}),this.type="default",this.status=m.status===void 0?200:m.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=m.statusText===void 0?"":""+m.statusText,this.headers=new g(m.headers),this.url=m.url||"",this._initBody(y)}v.call(j.prototype),j.prototype.clone=function(){return new j(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new g(this.headers),url:this.url})},j.error=function(){var y=new j(null,{status:200,statusText:""});return y.ok=!1,y.status=0,y.type="error",y};var M=[301,302,303,307,308];j.redirect=function(y,m){if(M.indexOf(m)===-1)throw new RangeError("Invalid status code");return new j(null,{status:m,headers:{location:y}})},o.DOMException=a.DOMException;try{new o.DOMException}catch{o.DOMException=function(m,D){this.message=m,this.name=D;var A=Error(m);this.stack=A.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function $(y,m){return new Promise(function(D,A){var O=new S(y,m);if(O.signal&&O.signal.aborted)return A(new o.DOMException("Aborted","AbortError"));var x=new XMLHttpRequest;function F(){x.abort()}x.onload=function(){var q={statusText:x.statusText,headers:N(x.getAllResponseHeaders()||"")};O.url.indexOf("file://")===0&&(x.status<200||x.status>599)?q.status=200:q.status=x.status,q.url="responseURL"in x?x.responseURL:q.headers.get("X-Request-URL");var H="response"in x?x.response:x.responseText;setTimeout(function(){D(new j(H,q))},0)},x.onerror=function(){setTimeout(function(){A(new TypeError("Network request failed"))},0)},x.ontimeout=function(){setTimeout(function(){A(new TypeError("Network request timed out"))},0)},x.onabort=function(){setTimeout(function(){A(new o.DOMException("Aborted","AbortError"))},0)};function k(q){try{return q===""&&a.location.href?a.location.href:q}catch{return q}}if(x.open(O.method,k(O.url),!0),O.credentials==="include"?x.withCredentials=!0:O.credentials==="omit"&&(x.withCredentials=!1),"responseType"in x&&(c.blob?x.responseType="blob":c.arrayBuffer&&(x.responseType="arraybuffer")),m&&typeof m.headers=="object"&&!(m.headers instanceof g||a.Headers&&m.headers instanceof a.Headers)){var z=[];Object.getOwnPropertyNames(m.headers).forEach(function(q){z.push(d(q)),x.setRequestHeader(q,f(m.headers[q]))}),O.headers.forEach(function(q,H){z.indexOf(H)===-1&&x.setRequestHeader(H,q)})}else O.headers.forEach(function(q,H){x.setRequestHeader(H,q)});O.signal&&(O.signal.addEventListener("abort",F),x.onreadystatechange=function(){x.readyState===4&&O.signal.removeEventListener("abort",F)}),x.send(typeof O._bodyInit>"u"?null:O._bodyInit)})}return $.polyfill=!0,a.fetch||(a.fetch=$,a.Headers=g,a.Request=S,a.Response=j),o.Headers=g,o.Request=S,o.Response=j,o.fetch=$,Object.defineProperty(o,"__esModule",{value:!0}),o})({})})(i),i.fetch.ponyfill=!0,delete i.fetch.polyfill;var s=t.fetch?t:i;e=s.fetch,e.default=s.fetch,e.fetch=s.fetch,e.Headers=s.Headers,e.Request=s.Request,e.Response=s.Response,r.exports=e})(Ji,Ji.exports)),Ji.exports}var LD=UD();const Ou=yo(LD);var FD=Object.defineProperty,qD=Object.defineProperties,kD=Object.getOwnPropertyDescriptors,Pu=Object.getOwnPropertySymbols,MD=Object.prototype.hasOwnProperty,zD=Object.prototype.propertyIsEnumerable,$u=(r,e,t)=>e in r?FD(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Au=(r,e)=>{for(var t in e||(e={}))MD.call(e,t)&&$u(r,t,e[t]);if(Pu)for(var t of Pu(e))zD.call(e,t)&&$u(r,t,e[t]);return r},xu=(r,e)=>qD(r,kD(e));const HD={Accept:"application/json","Content-Type":"application/json"},VD="POST",Cu={headers:HD,method:VD},Tu=10;let lt=class{constructor(e,t=!1){if(this.url=e,this.disableProviderPing=t,this.events=new Ye.EventEmitter,this.isAvailable=!1,this.registering=!1,!Wc(e))throw new Error(`Provided URL is not compatible with HTTP connection: ${e}`);this.url=e,this.disableProviderPing=t}get connected(){return this.isAvailable}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(){if(!this.isAvailable)throw new Error("Connection already closed");this.onClose()}async send(e){this.isAvailable||await this.register();try{const t=jt(e),i=await(await Ou(this.url,xu(Au({},Cu),{body:t}))).json();this.onPayload({data:i})}catch(t){this.onError(e.id,t)}}async register(e=this.url){if(!Wc(e))throw new Error(`Provided URL is not compatible with HTTP 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((i,s)=>{this.events.once("register_error",n=>{this.resetMaxListeners(),s(n)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.isAvailable>"u")return s(new Error("HTTP connection is missing or invalid"));i()})})}this.url=e,this.registering=!0;try{if(!this.disableProviderPing){const t=jt({id:1,jsonrpc:"2.0",method:"test",params:[]});await Ou(e,xu(Au({},Cu),{body:t}))}this.onOpen()}catch(t){const i=this.parseError(t);throw this.events.emit("register_error",i),this.onClose(),i}}onOpen(){this.isAvailable=!0,this.registering=!1,this.events.emit("open")}onClose(){this.isAvailable=!1,this.registering=!1,this.events.emit("close")}onPayload(e){if(typeof e.data>"u")return;const t=typeof e.data=="string"?cr(e.data):e.data;this.events.emit("payload",t)}onError(e,t){const i=this.parseError(t),s=i.message||i.toString(),n=Ns(e,s);this.events.emit("payload",n)}parseError(e,t=this.url){return Bl(e,t,"HTTP")}resetMaxListeners(){this.events.getMaxListeners()>Tu&&this.events.setMaxListeners(Tu)}};const Ru="error",KD="wss://relay.walletconnect.org",WD="wc",GD="universal_provider",Zi=`${WD}@2:${GD}:`,sd="https://rpc.walletconnect.org/v1/",jr="generic",YD=`${sd}bundler`,it={DEFAULT_CHAIN_CHANGED:"default_chain_changed"};function JD(){}function Lo(r){return r==null||typeof r!="object"&&typeof r!="function"}function Fo(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function ZD(r){if(Lo(r))return r;if(Array.isArray(r)||Fo(r)||r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer)return r.slice(0);const e=Object.getPrototypeOf(r),t=e.constructor;if(r instanceof Date||r instanceof Map||r instanceof Set)return new t(r);if(r instanceof RegExp){const i=new t(r);return i.lastIndex=r.lastIndex,i}if(r instanceof DataView)return new t(r.buffer.slice(0));if(r instanceof Error){const i=new t(r.message);return i.stack=r.stack,i.name=r.name,i.cause=r.cause,i}if(typeof File<"u"&&r instanceof File)return new t([r],r.name,{type:r.type,lastModified:r.lastModified});if(typeof r=="object"){const i=Object.create(e);return Object.assign(i,r)}return r}function Nu(r){return typeof r=="object"&&r!==null}function nd(r){return Object.getOwnPropertySymbols(r).filter(e=>Object.prototype.propertyIsEnumerable.call(r,e))}function od(r){return r==null?r===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(r)}const QD="[object RegExp]",ad="[object String]",cd="[object Number]",ud="[object Boolean]",hd="[object Arguments]",XD="[object Symbol]",eS="[object Date]",tS="[object Map]",rS="[object Set]",iS="[object Array]",sS="[object ArrayBuffer]",nS="[object Object]",oS="[object DataView]",aS="[object Uint8Array]",cS="[object Uint8ClampedArray]",uS="[object Uint16Array]",hS="[object Uint32Array]",lS="[object Int8Array]",dS="[object Int16Array]",pS="[object Int32Array]",fS="[object Float32Array]",gS="[object Float64Array]";function yS(r,e){return Fr(r,void 0,r,new Map,e)}function Fr(r,e,t,i=new Map,s=void 0){const n=s?.(r,e,t,i);if(n!=null)return n;if(Lo(r))return r;if(i.has(r))return i.get(r);if(Array.isArray(r)){const o=new Array(r.length);i.set(r,o);for(let a=0;a<r.length;a++)o[a]=Fr(r[a],a,t,i,s);return Object.hasOwn(r,"index")&&(o.index=r.index),Object.hasOwn(r,"input")&&(o.input=r.input),o}if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp){const o=new RegExp(r.source,r.flags);return o.lastIndex=r.lastIndex,o}if(r instanceof Map){const o=new Map;i.set(r,o);for(const[a,c]of r)o.set(a,Fr(c,a,t,i,s));return o}if(r instanceof Set){const o=new Set;i.set(r,o);for(const a of r)o.add(Fr(a,void 0,t,i,s));return o}if(typeof Buffer<"u"&&Buffer.isBuffer(r))return r.subarray();if(Fo(r)){const o=new(Object.getPrototypeOf(r)).constructor(r.length);i.set(r,o);for(let a=0;a<r.length;a++)o[a]=Fr(r[a],a,t,i,s);return o}if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer)return r.slice(0);if(r instanceof DataView){const o=new DataView(r.buffer.slice(0),r.byteOffset,r.byteLength);return i.set(r,o),ir(o,r,t,i,s),o}if(typeof File<"u"&&r instanceof File){const o=new File([r],r.name,{type:r.type});return i.set(r,o),ir(o,r,t,i,s),o}if(r instanceof Blob){const o=new Blob([r],{type:r.type});return i.set(r,o),ir(o,r,t,i,s),o}if(r instanceof Error){const o=new r.constructor;return i.set(r,o),o.message=r.message,o.name=r.name,o.stack=r.stack,o.cause=r.cause,ir(o,r,t,i,s),o}if(typeof r=="object"&&mS(r)){const o=Object.create(Object.getPrototypeOf(r));return i.set(r,o),ir(o,r,t,i,s),o}return r}function ir(r,e,t=r,i,s){const n=[...Object.keys(e),...nd(e)];for(let o=0;o<n.length;o++){const a=n[o],c=Object.getOwnPropertyDescriptor(r,a);(c==null||c.writable)&&(r[a]=Fr(e[a],a,t,i,s))}}function mS(r){switch(od(r)){case hd:case iS:case sS:case oS:case ud:case eS:case fS:case gS:case lS:case dS:case pS:case tS:case cd:case nS:case QD:case rS:case ad:case XD:case aS:case cS:case uS:case hS:return!0;default:return!1}}function wS(r,e){return yS(r,(t,i,s,n)=>{if(typeof r=="object")switch(Object.prototype.toString.call(r)){case cd:case ad:case ud:{const o=new r.constructor(r?.valueOf());return ir(o,r),o}case hd:{const o={};return ir(o,r),o.length=r.length,o[Symbol.iterator]=r[Symbol.iterator],o}default:return}})}function Bu(r){return wS(r)}function ju(r){return r!==null&&typeof r=="object"&&od(r)==="[object Arguments]"}function bS(r){return Fo(r)}function vS(r){if(typeof r!="object"||r==null)return!1;if(Object.getPrototypeOf(r)===null)return!0;if(Object.prototype.toString.call(r)!=="[object Object]"){const t=r[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(r,Symbol.toStringTag)?.writable?!1:r.toString()===`[object ${t}]`}let e=r;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(r)===e}function ES(r,...e){const t=e.slice(0,-1),i=e[e.length-1];let s=r;for(let n=0;n<t.length;n++){const o=t[n];s=lo(s,o,i,new Map)}return s}function lo(r,e,t,i){if(Lo(r)&&(r=Object(r)),e==null||typeof e!="object")return r;if(i.has(e))return ZD(i.get(e));if(i.set(e,r),Array.isArray(e)){e=e.slice();for(let n=0;n<e.length;n++)e[n]=e[n]??void 0}const s=[...Object.keys(e),...nd(e)];for(let n=0;n<s.length;n++){const o=s[n];let a=e[o],c=r[o];if(ju(a)&&(a={...a}),ju(c)&&(c={...c}),typeof Buffer<"u"&&Buffer.isBuffer(a)&&(a=Bu(a)),Array.isArray(a))if(typeof c=="object"&&c!=null){const h=[],l=Reflect.ownKeys(c);for(let d=0;d<l.length;d++){const f=l[d];h[f]=c[f]}c=h}else c=[];const u=t(c,a,o,r,e,i);u!=null?r[o]=u:Array.isArray(a)||Nu(c)&&Nu(a)?r[o]=lo(c,a,t,i):c==null&&vS(a)?r[o]=lo({},a,t,i):c==null&&bS(a)?r[o]=Bu(a):(c===void 0||a!==void 0)&&(r[o]=a)}return r}function _S(r,...e){return ES(r,...e,JD)}var IS=Object.defineProperty,DS=Object.defineProperties,SS=Object.getOwnPropertyDescriptors,Uu=Object.getOwnPropertySymbols,OS=Object.prototype.hasOwnProperty,PS=Object.prototype.propertyIsEnumerable,Lu=(r,e,t)=>e in r?IS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Qi=(r,e)=>{for(var t in e||(e={}))OS.call(e,t)&&Lu(r,t,e[t]);if(Uu)for(var t of Uu(e))PS.call(e,t)&&Lu(r,t,e[t]);return r},$S=(r,e)=>DS(r,SS(e));function Ge(r,e,t){var i;const s=qr(r);return((i=e.rpcMap)==null?void 0:i[s.reference])||`${sd}?chainId=${s.namespace}:${s.reference}&projectId=${t}`}function gr(r){return r.includes(":")?r.split(":")[1]:r}function ld(r){return r.map(e=>`${e.split(":")[0]}:${e.split(":")[1]}`)}function AS(r,e){const t=Object.keys(e.namespaces).filter(s=>s.includes(r));if(!t.length)return[];const i=[];return t.forEach(s=>{const n=e.namespaces[s].accounts;i.push(...n)}),i}function Xi(r={},e={}){const t=Fu(r),i=Fu(e);return _S(t,i)}function Fu(r){var e,t,i,s,n;const o={};if(!Kt(r))return o;for(const[a,c]of Object.entries(r)){const u=Cs(a)?[a]:c.chains,h=c.methods||[],l=c.events||[],d=c.rpcMap||{},f=Lr(a);o[f]=$S(Qi(Qi({},o[f]),c),{chains:Et(u,(e=o[f])==null?void 0:e.chains),methods:Et(h,(t=o[f])==null?void 0:t.methods),events:Et(l,(i=o[f])==null?void 0:i.events)}),(Kt(d)||Kt(((s=o[f])==null?void 0:s.rpcMap)||{}))&&(o[f].rpcMap=Qi(Qi({},d),(n=o[f])==null?void 0:n.rpcMap))}return o}function qu(r){return r.includes(":")?r.split(":")[2]:r}function ku(r){const e={};for(const[t,i]of Object.entries(r)){const s=i.methods||[],n=i.events||[],o=i.accounts||[],a=Cs(t)?[t]:i.chains?i.chains:ld(i.accounts);e[t]={chains:a,methods:s,events:n,accounts:o}}return e}function On(r){return typeof r=="number"?r:r.includes("0x")?parseInt(r,16):(r=r.includes(":")?r.split(":")[1]:r,isNaN(Number(r))?r:Number(r))}const dd={},Q=r=>dd[r],Pn=(r,e)=>{dd[r]=e};var xS=Object.defineProperty,CS=(r,e,t)=>e in r?xS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Dr=(r,e,t)=>CS(r,typeof e!="symbol"?e+"":e,t);class TS{constructor(e){Dr(this,"name","polkadot"),Dr(this,"client"),Dr(this,"httpProviders"),Dr(this,"events"),Dr(this,"namespace"),Dr(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getAccounts(){const e=this.namespace.accounts;return e?e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2])||[]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{var i;const s=gr(t);e[s]=this.createHttpProvider(s,(i=this.namespace.rpcMap)==null?void 0:i[t])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);return new rt(new lt(i,Q("disableProviderPing")))}}var RS=Object.defineProperty,NS=Object.defineProperties,BS=Object.getOwnPropertyDescriptors,Mu=Object.getOwnPropertySymbols,jS=Object.prototype.hasOwnProperty,US=Object.prototype.propertyIsEnumerable,po=(r,e,t)=>e in r?RS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,zu=(r,e)=>{for(var t in e||(e={}))jS.call(e,t)&&po(r,t,e[t]);if(Mu)for(var t of Mu(e))US.call(e,t)&&po(r,t,e[t]);return r},Hu=(r,e)=>NS(r,BS(e)),Sr=(r,e,t)=>po(r,typeof e!="symbol"?e+"":e,t);class LS{constructor(e){Sr(this,"name","eip155"),Sr(this,"client"),Sr(this,"chainId"),Sr(this,"namespace"),Sr(this,"httpProviders"),Sr(this,"events"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){switch(e.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return await this.handleSwitchChain(e);case"eth_chainId":return parseInt(this.getDefaultChain());case"wallet_getCapabilities":return await this.getCapabilities(e);case"wallet_getCallsStatus":return await this.getCallStatus(e)}return this.namespace.methods.includes(e.request.method)?await this.client.request(e):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(parseInt(e),t),this.chainId=parseInt(e),this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}createHttpProvider(e,t){const i=t||Ge(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);return new rt(new lt(i,Q("disableProviderPing")))}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{var i;const s=parseInt(gr(t));e[s]=this.createHttpProvider(s,(i=this.namespace.rpcMap)==null?void 0:i[t])}),e}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}getHttpProvider(){const e=this.chainId,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}async handleSwitchChain(e){var t,i;let s=e.request.params?(t=e.request.params[0])==null?void 0:t.chainId:"0x0";s=s.startsWith("0x")?s:`0x${s}`;const n=parseInt(s,16);if(this.isChainApproved(n))this.setDefaultChain(`${n}`);else if(this.namespace.methods.includes("wallet_switchEthereumChain"))await this.client.request({topic:e.topic,request:{method:e.request.method,params:[{chainId:s}]},chainId:(i=this.namespace.chains)==null?void 0:i[0]}),this.setDefaultChain(`${n}`);else throw new Error(`Failed to switch to chain 'eip155:${n}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(e){return this.namespace.chains.includes(`${this.name}:${e}`)}async getCapabilities(e){var t,i,s,n,o;const a=(i=(t=e.request)==null?void 0:t.params)==null?void 0:i[0],c=((n=(s=e.request)==null?void 0:s.params)==null?void 0:n[1])||[],u=`${a}${c.join(",")}`;if(!a)throw new Error("Missing address parameter in `wallet_getCapabilities` request");const h=this.client.session.get(e.topic),l=((o=h?.sessionProperties)==null?void 0:o.capabilities)||{};if(l!=null&&l[u])return l?.[u];const d=await this.client.request(e);try{await this.client.session.update(e.topic,{sessionProperties:Hu(zu({},h.sessionProperties||{}),{capabilities:Hu(zu({},l||{}),{[u]:d})})})}catch(f){console.warn("Failed to update session with capabilities",f)}return d}async getCallStatus(e){var t,i;const s=this.client.session.get(e.topic),n=(t=s.sessionProperties)==null?void 0:t.bundler_name;if(n){const a=this.getBundlerUrl(e.chainId,n);try{return await this.getUserOperationReceipt(a,e)}catch(c){console.warn("Failed to fetch call status from bundler",c,a)}}const o=(i=s.sessionProperties)==null?void 0:i.bundler_url;if(o)try{return await this.getUserOperationReceipt(o,e)}catch(a){console.warn("Failed to fetch call status from custom bundler",a,o)}if(this.namespace.methods.includes(e.request.method))return await this.client.request(e);throw new Error("Fetching call status not approved by the wallet.")}async getUserOperationReceipt(e,t){var i;const s=new URL(e),n=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ht("eth_getUserOperationReceipt",[(i=t.request.params)==null?void 0:i[0]]))});if(!n.ok)throw new Error(`Failed to fetch user operation receipt - ${n.status}`);return await n.json()}getBundlerUrl(e,t){return`${YD}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${t}`}}var FS=Object.defineProperty,qS=(r,e,t)=>e in r?FS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Or=(r,e,t)=>qS(r,typeof e!="symbol"?e+"":e,t);class kS{constructor(e){Or(this,"name","solana"),Or(this,"client"),Or(this,"httpProviders"),Or(this,"events"),Or(this,"namespace"),Or(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{var i;const s=gr(t);e[s]=this.createHttpProvider(s,(i=this.namespace.rpcMap)==null?void 0:i[t])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);return new rt(new lt(i,Q("disableProviderPing")))}}var MS=Object.defineProperty,zS=(r,e,t)=>e in r?MS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Pr=(r,e,t)=>zS(r,typeof e!="symbol"?e+"":e,t);class HS{constructor(e){Pr(this,"name","cosmos"),Pr(this,"client"),Pr(this,"httpProviders"),Pr(this,"events"),Pr(this,"namespace"),Pr(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{var i;const s=gr(t);e[s]=this.createHttpProvider(s,(i=this.namespace.rpcMap)==null?void 0:i[t])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);return new rt(new lt(i,Q("disableProviderPing")))}}var VS=Object.defineProperty,KS=(r,e,t)=>e in r?VS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,$r=(r,e,t)=>KS(r,typeof e!="symbol"?e+"":e,t);class WS{constructor(e){$r(this,"name","algorand"),$r(this,"client"),$r(this,"httpProviders"),$r(this,"events"),$r(this,"namespace"),$r(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){const i=t||Ge(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,i)}this.chainId=e,this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{var i;e[t]=this.createHttpProvider(t,(i=this.namespace.rpcMap)==null?void 0:i[t])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace,this.client.core.projectId);return typeof i>"u"?void 0:new rt(new lt(i,Q("disableProviderPing")))}}var GS=Object.defineProperty,YS=(r,e,t)=>e in r?GS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ar=(r,e,t)=>YS(r,typeof e!="symbol"?e+"":e,t);class JS{constructor(e){Ar(this,"name","cip34"),Ar(this,"client"),Ar(this,"httpProviders"),Ar(this,"events"),Ar(this,"namespace"),Ar(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{const i=this.getCardanoRPCUrl(t),s=gr(t);e[s]=this.createHttpProvider(s,i)}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}getCardanoRPCUrl(e){const t=this.namespace.rpcMap;if(t)return t[e]}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||this.getCardanoRPCUrl(e);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);return new rt(new lt(i,Q("disableProviderPing")))}}var ZS=Object.defineProperty,QS=(r,e,t)=>e in r?ZS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,xr=(r,e,t)=>QS(r,typeof e!="symbol"?e+"":e,t);class XS{constructor(e){xr(this,"name","elrond"),xr(this,"client"),xr(this,"httpProviders"),xr(this,"events"),xr(this,"namespace"),xr(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{var i;const s=gr(t);e[s]=this.createHttpProvider(s,(i=this.namespace.rpcMap)==null?void 0:i[t])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);return new rt(new lt(i,Q("disableProviderPing")))}}var eO=Object.defineProperty,tO=(r,e,t)=>e in r?eO(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Cr=(r,e,t)=>tO(r,typeof e!="symbol"?e+"":e,t);class rO{constructor(e){Cr(this,"name","multiversx"),Cr(this,"client"),Cr(this,"httpProviders"),Cr(this,"events"),Cr(this,"namespace"),Cr(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{var i;const s=gr(t);e[s]=this.createHttpProvider(s,(i=this.namespace.rpcMap)==null?void 0:i[t])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);return new rt(new lt(i,Q("disableProviderPing")))}}var iO=Object.defineProperty,sO=(r,e,t)=>e in r?iO(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Tr=(r,e,t)=>sO(r,typeof e!="symbol"?e+"":e,t);class nO{constructor(e){Tr(this,"name","near"),Tr(this,"client"),Tr(this,"httpProviders"),Tr(this,"events"),Tr(this,"namespace"),Tr(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){const i=t||Ge(`${this.name}:${e}`,this.namespace);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,i)}this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2])||[]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{var i;e[t]=this.createHttpProvider(t,(i=this.namespace.rpcMap)==null?void 0:i[t])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace);return typeof i>"u"?void 0:new rt(new lt(i,Q("disableProviderPing")))}}var oO=Object.defineProperty,aO=(r,e,t)=>e in r?oO(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Rr=(r,e,t)=>aO(r,typeof e!="symbol"?e+"":e,t);class cO{constructor(e){Rr(this,"name","tezos"),Rr(this,"client"),Rr(this,"httpProviders"),Rr(this,"events"),Rr(this,"namespace"),Rr(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){const i=t||Ge(`${this.name}:${e}`,this.namespace);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,i)}this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2])||[]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t)}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace);return typeof i>"u"?void 0:new rt(new lt(i))}}var uO=Object.defineProperty,hO=(r,e,t)=>e in r?uO(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Nr=(r,e,t)=>hO(r,typeof e!="symbol"?e+"":e,t);class lO{constructor(e){Nr(this,"name",jr),Nr(this,"client"),Nr(this,"httpProviders"),Nr(this,"events"),Nr(this,"namespace"),Nr(this,"chainId"),this.namespace=e.namespace,this.events=Q("events"),this.client=Q("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(e.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(e.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(e.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(e.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider(e.chainId).request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(it.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){var e,t;const i={};return(t=(e=this.namespace)==null?void 0:e.accounts)==null||t.forEach(s=>{const n=qr(s);i[`${n.namespace}:${n.reference}`]=this.createHttpProvider(s)}),i}getHttpProvider(e){const t=this.httpProviders[e];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){const i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){const i=t||Ge(e,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${e}`);return new rt(new lt(i,Q("disableProviderPing")))}}var dO=Object.defineProperty,pO=Object.defineProperties,fO=Object.getOwnPropertyDescriptors,Vu=Object.getOwnPropertySymbols,gO=Object.prototype.hasOwnProperty,yO=Object.prototype.propertyIsEnumerable,fo=(r,e,t)=>e in r?dO(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,es=(r,e)=>{for(var t in e||(e={}))gO.call(e,t)&&fo(r,t,e[t]);if(Vu)for(var t of Vu(e))yO.call(e,t)&&fo(r,t,e[t]);return r},$n=(r,e)=>pO(r,fO(e)),Qe=(r,e,t)=>fo(r,typeof e!="symbol"?e+"":e,t);let mO=class pd{constructor(e){Qe(this,"client"),Qe(this,"namespaces"),Qe(this,"optionalNamespaces"),Qe(this,"sessionProperties"),Qe(this,"scopedProperties"),Qe(this,"events",new mo),Qe(this,"rpcProviders",{}),Qe(this,"session"),Qe(this,"providerOpts"),Qe(this,"logger"),Qe(this,"uri"),Qe(this,"disableProviderPing",!1),this.providerOpts=e,this.logger=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:ji(Ts({level:e?.logger||Ru})),this.disableProviderPing=e?.disableProviderPing||!1}static async init(e){const t=new pd(e);return await t.initialize(),t}async request(e,t,i){const[s,n]=this.validateChain(t);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(s).request({request:es({},e),chainId:`${s}:${n}`,topic:this.session.topic,expiry:i})}sendAsync(e,t,i,s){const n=new Date().getTime();this.request(e,i,s).then(o=>t(null,Rs(n,o))).catch(o=>t(o,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 e;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(e=this.session)==null?void 0:e.topic,reason:te("USER_DISCONNECTED")}),await this.cleanup()}async connect(e){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}async authenticate(e,t){if(!this.client)throw new Error("Sign Client not initialized");this.setNamespaces(e),await this.cleanupPendingPairings();const{uri:i,response:s}=await this.client.authenticate(e,t);i&&(this.uri=i,this.events.emit("display_uri",i));const n=await s();if(this.session=n.session,this.session){const o=ku(this.session.namespaces);this.namespaces=Xi(this.namespaces,o),await this.persist("namespaces",this.namespaces),this.onConnect()}return n}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}removeListener(e,t){this.events.removeListener(e,t)}off(e,t){this.events.off(e,t)}get isWalletConnect(){return!0}async pair(e){const{uri:t,approval:i}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});t&&(this.uri=t,this.events.emit("display_uri",t));const s=await i();this.session=s;const n=ku(s.namespaces);return this.namespaces=Xi(this.namespaces,n),await this.persist("namespaces",this.namespaces),await this.persist("optionalNamespaces",this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(e,t){try{if(!this.session)return;const[i,s]=this.validateChain(e),n=this.getProvider(i);n.name===jr?n.setDefaultChain(`${i}:${s}`,t):n.setDefaultChain(s,t)}catch(i){if(!/Please call connect/.test(i.message))throw i}}async cleanupPendingPairings(e={}){this.logger.info("Cleaning up inactive pairings...");const t=this.client.pairing.getAll();if(ht(t)){for(const i of t)e.deletePairings?this.client.core.expirer.set(i.topic,0):await this.client.core.relayer.subscriber.unsubscribe(i.topic);this.logger.info(`Inactive pairings cleared: ${t.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 e,t;if(this.client=this.providerOpts.client||await jD.init({core:this.providerOpts.core,logger:this.providerOpts.logger||Ru,relayUrl:this.providerOpts.relayUrl||KD,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: ${(t=(e=this.providerOpts)==null?void 0:e.session)==null?void 0:t.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 e=[...new Set(Object.keys(this.session.namespaces).map(t=>Lr(t)))];Pn("client",this.client),Pn("events",this.events),Pn("disableProviderPing",this.disableProviderPing),e.forEach(t=>{if(!this.session)return;const i=AS(t,this.session),s=ld(i),n=Xi(this.namespaces,this.optionalNamespaces),o=$n(es({},n[t]),{accounts:i,chains:s});switch(t){case"eip155":this.rpcProviders[t]=new LS({namespace:o});break;case"algorand":this.rpcProviders[t]=new WS({namespace:o});break;case"solana":this.rpcProviders[t]=new kS({namespace:o});break;case"cosmos":this.rpcProviders[t]=new HS({namespace:o});break;case"polkadot":this.rpcProviders[t]=new TS({namespace:o});break;case"cip34":this.rpcProviders[t]=new JS({namespace:o});break;case"elrond":this.rpcProviders[t]=new XS({namespace:o});break;case"multiversx":this.rpcProviders[t]=new rO({namespace:o});break;case"near":this.rpcProviders[t]=new nO({namespace:o});break;case"tezos":this.rpcProviders[t]=new cO({namespace:o});break;default:this.rpcProviders[jr]?this.rpcProviders[jr].updateNamespace(o):this.rpcProviders[jr]=new lO({namespace:o})}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",e=>{var t;const{topic:i}=e;i===((t=this.session)==null?void 0:t.topic)&&this.events.emit("session_ping",e)}),this.client.on("session_event",e=>{var t;const{params:i,topic:s}=e;if(s!==((t=this.session)==null?void 0:t.topic))return;const{event:n}=i;if(n.name==="accountsChanged"){const o=n.data;o&&ht(o)&&this.events.emit("accountsChanged",o.map(qu))}else if(n.name==="chainChanged"){const o=i.chainId,a=i.event.data,c=Lr(o),u=On(o)!==On(a)?`${c}:${On(a)}`:o;this.onChainChanged(u)}else this.events.emit(n.name,n.data);this.events.emit("session_event",e)}),this.client.on("session_update",({topic:e,params:t})=>{var i,s;if(e!==((i=this.session)==null?void 0:i.topic))return;const{namespaces:n}=t,o=(s=this.client)==null?void 0:s.session.get(e);this.session=$n(es({},o),{namespaces:n}),this.onSessionUpdate(),this.events.emit("session_update",{topic:e,params:t})}),this.client.on("session_delete",async e=>{var t;e.topic===((t=this.session)==null?void 0:t.topic)&&(await this.cleanup(),this.events.emit("session_delete",e),this.events.emit("disconnect",$n(es({},te("USER_DISCONNECTED")),{data:e.topic})))}),this.on(it.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[jr]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{var t;this.getProvider(e).updateNamespace((t=this.session)==null?void 0:t.namespaces[e])})}setNamespaces(e){const{namespaces:t={},optionalNamespaces:i={},sessionProperties:s,scopedProperties:n}=e;this.optionalNamespaces=Xi(t,i),this.sessionProperties=s,this.scopedProperties=n}validateChain(e){const[t,i]=e?.split(":")||["",""];if(!this.namespaces||!Object.keys(this.namespaces).length)return[t,i];if(t&&!Object.keys(this.namespaces||{}).map(o=>Lr(o)).includes(t))throw new Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&i)return[t,i];const s=Lr(Object.keys(this.namespaces)[0]),n=this.rpcProviders[s].getDefaultChain();return[s,n]}async requestAccounts(){const[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}async onChainChanged(e,t=!1){if(!this.namespaces)return;const[i,s]=this.validateChain(e);if(!s)return;this.updateNamespaceChain(i,s),this.events.emit("chainChanged",s);const n=this.getProvider(i).getDefaultChain();t||this.getProvider(i).setDefaultChain(s),this.emitAccountsChangedOnChainChange({namespace:i,previousChainId:n,newChainId:e}),await this.persist("namespaces",this.namespaces)}emitAccountsChangedOnChainChange({namespace:e,previousChainId:t,newChainId:i}){var s,n;try{if(t===i)return;const o=(n=(s=this.session)==null?void 0:s.namespaces[e])==null?void 0:n.accounts;if(!o)return;const a=o.filter(c=>c.includes(`${i}:`)).map(qu);if(!ht(a))return;this.events.emit("accountsChanged",a)}catch(o){this.logger.warn("Failed to emit accountsChanged on chain change",o)}}updateNamespaceChain(e,t){if(!this.namespaces)return;const i=this.namespaces[e]?e:`${e}:${t}`,s={chains:[],methods:[],events:[],defaultChain:t};this.namespaces[i]?this.namespaces[i]&&(this.namespaces[i].defaultChain=t):this.namespaces[i]=s}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(e,t){var i;const s=((i=this.session)==null?void 0:i.topic)||"";await this.client.core.storage.setItem(`${Zi}/${e}${s}`,t)}async getFromStore(e){var t;const i=((t=this.session)==null?void 0:t.topic)||"";return await this.client.core.storage.getItem(`${Zi}/${e}${i}`)}async deleteFromStore(e){var t;const i=((t=this.session)==null?void 0:t.topic)||"";await this.client.core.storage.removeItem(`${Zi}/${e}${i}`)}async cleanupStorage(){var e;try{if(((e=this.client)==null?void 0:e.session.length)>0)return;const t=await this.client.core.storage.getKeys();for(const i of t)i.startsWith(Zi)&&await this.client.core.storage.removeItem(i)}catch(t){this.logger.warn("Failed to cleanup storage",t)}}};const wO=mO,bO="wc",vO="ethereum_provider",EO=`${bO}@2:${vO}:`,_O="https://rpc.walletconnect.org/v1/",ws=["eth_sendTransaction","personal_sign"],fd=["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"],bs=["chainChanged","accountsChanged"],gd=["chainChanged","accountsChanged","message","disconnect","connect"],IO=async()=>{const{createAppKit:r}=await Yu(()=>import("./core-C6BKi5VB.js").then(e=>e.G),__vite__mapDeps([6,1,2,3]));return r};var DO=Object.defineProperty,SO=Object.defineProperties,OO=Object.getOwnPropertyDescriptors,Ku=Object.getOwnPropertySymbols,PO=Object.prototype.hasOwnProperty,$O=Object.prototype.propertyIsEnumerable,go=(r,e,t)=>e in r?DO(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Xt=(r,e)=>{for(var t in e||(e={}))PO.call(e,t)&&go(r,t,e[t]);if(Ku)for(var t of Ku(e))$O.call(e,t)&&go(r,t,e[t]);return r},di=(r,e)=>SO(r,OO(e)),ze=(r,e,t)=>go(r,typeof e!="symbol"?e+"":e,t);function vs(r){return Number(r[0].split(":")[1])}function ts(r){return`0x${r.toString(16)}`}function AO(r){const{chains:e,optionalChains:t,methods:i,optionalMethods:s,events:n,optionalEvents:o,rpcMap:a}=r;if(!ht(e))throw new Error("Invalid chains");const c={chains:e,methods:i||ws,events:n||bs,rpcMap:Xt({},e.length?{[vs(e)]:a[vs(e)]}:{})},u=n?.filter(f=>!bs.includes(f)),h=i?.filter(f=>!ws.includes(f));if(!t&&!o&&!s&&!(u!=null&&u.length)&&!(h!=null&&h.length))return{required:e.length?c:void 0};const l=u?.length&&h?.length||!t,d={chains:[...new Set(l?c.chains.concat(t||[]):t)],methods:[...new Set(c.methods.concat(s!=null&&s.length?s:fd))],events:[...new Set(c.events.concat(o!=null&&o.length?o:gd))],rpcMap:a};return{required:e.length?c:void 0,optional:t.length?d:void 0}}class Ls{constructor(){ze(this,"events",new Ye.EventEmitter),ze(this,"namespace","eip155"),ze(this,"accounts",[]),ze(this,"signer"),ze(this,"chainId",1),ze(this,"modal"),ze(this,"rpc"),ze(this,"STORAGE_KEY",EO),ze(this,"on",(e,t)=>(this.events.on(e,t),this)),ze(this,"once",(e,t)=>(this.events.once(e,t),this)),ze(this,"removeListener",(e,t)=>(this.events.removeListener(e,t),this)),ze(this,"off",(e,t)=>(this.events.off(e,t),this)),ze(this,"parseAccount",e=>this.isCompatibleChainId(e)?this.parseAccountId(e).address:e),this.signer={},this.rpc={}}static async init(e){const t=new Ls;return await t.initialize(e),t}async request(e,t){return await this.signer.request(e,this.formatChainId(this.chainId),t)}sendAsync(e,t,i){this.signer.sendAsync(e,t,this.formatChainId(this.chainId),i)}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(e){var t;if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(e);const{required:i,optional:s}=AO(this.rpc);try{const n=await new Promise(async(a,c)=>{var u,h;this.rpc.showQrModal&&((u=this.modal)==null||u.open(),(h=this.modal)==null||h.subscribeState(d=>{!d.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),c(new Error("Connection request reset. Please try again.")))}));const l=e!=null&&e.scopedProperties?{[this.namespace]:e.scopedProperties}:void 0;await this.signer.connect(di(Xt({namespaces:Xt({},i&&{[this.namespace]:i})},s&&{optionalNamespaces:{[this.namespace]:s}}),{pairingTopic:e?.pairingTopic,scopedProperties:l})).then(d=>{a(d)}).catch(d=>{var f;(f=this.modal)==null||f.showErrorMessage("Unable to connect"),c(new Error(d.message))})});if(!n)return;const o=Fa(n.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:o),this.setAccounts(o),this.events.emit("connect",{chainId:ts(this.chainId)})}catch(n){throw this.signer.logger.error(n),n}finally{(t=this.modal)==null||t.close()}}async authenticate(e,t){var i;if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts({chains:e?.chains});try{const s=await new Promise(async(o,a)=>{var c,u;this.rpc.showQrModal&&((c=this.modal)==null||c.open(),(u=this.modal)==null||u.subscribeState(h=>{!h.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),a(new Error("Connection request reset. Please try again.")))})),await this.signer.authenticate(di(Xt({},e),{chains:this.rpc.chains}),t).then(h=>{o(h)}).catch(h=>{var l;(l=this.modal)==null||l.showErrorMessage("Unable to connect"),a(new Error(h.message))})}),n=s.session;if(n){const o=Fa(n.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:o),this.setAccounts(o),this.events.emit("connect",{chainId:ts(this.chainId)})}return s}catch(s){throw this.signer.logger.error(s),s}finally{(i=this.modal)==null||i.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",e=>{const{params:t}=e,{event:i}=t;i.name==="accountsChanged"?(this.accounts=this.parseAccounts(i.data),this.events.emit("accountsChanged",this.accounts)):i.name==="chainChanged"?this.setChainId(this.formatChainId(i.data)):this.events.emit(i.name,i.data),this.events.emit("session_event",e)}),this.signer.on("accountsChanged",e=>{this.accounts=this.parseAccounts(e),this.events.emit("accountsChanged",this.accounts)}),this.signer.on("chainChanged",e=>{const t=parseInt(e);this.chainId=t,this.events.emit("chainChanged",ts(this.chainId)),this.persist()}),this.signer.on("session_update",e=>{this.events.emit("session_update",e)}),this.signer.on("session_delete",e=>{this.reset(),this.events.emit("session_delete",e),this.events.emit("disconnect",di(Xt({},te("USER_DISCONNECTED")),{data:e.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",e=>{this.events.emit("display_uri",e)})}switchEthereumChain(e){this.request({method:"wallet_switchEthereumChain",params:[{chainId:e.toString(16)}]})}isCompatibleChainId(e){return typeof e=="string"?e.startsWith(`${this.namespace}:`):!1}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(":")[1])}setChainIds(e){const t=e.filter(i=>this.isCompatibleChainId(i)).map(i=>this.parseChainId(i));t.length&&(this.chainId=t[0],this.events.emit("chainChanged",ts(this.chainId)),this.persist())}setChainId(e){if(this.isCompatibleChainId(e)){const t=this.parseChainId(e);this.chainId=t,this.switchEthereumChain(t)}}parseAccountId(e){const[t,i,s]=e.split(":");return{chainId:`${t}:${i}`,address:s}}setAccounts(e){this.accounts=e.filter(t=>this.parseChainId(this.parseAccountId(t).chainId)===this.chainId).map(t=>this.parseAccountId(t).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(e){var t,i;const s=(t=e?.chains)!=null?t:[],n=(i=e?.optionalChains)!=null?i:[],o=s.concat(n);if(!o.length)throw new Error("No chains specified in either `chains` or `optionalChains`");const a=s.length?e?.methods||ws:[],c=s.length?e?.events||bs:[],u=e?.optionalMethods||[],h=e?.optionalEvents||[],l=e?.rpcMap||this.buildRpcMap(o,e.projectId),d=e?.qrModalOptions||void 0;return{chains:s?.map(f=>this.formatChainId(f)),optionalChains:n.map(f=>this.formatChainId(f)),methods:a,events:c,optionalMethods:u,optionalEvents:h,rpcMap:l,showQrModal:!!(e!=null&&e.showQrModal),qrModalOptions:d,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,t){const i={};return e.forEach(s=>{i[s]=this.getRpcUrl(s,t)}),i}async initialize(e){if(this.rpc=this.getRpcConfig(e),this.chainId=this.rpc.chains.length?vs(this.rpc.chains):vs(this.rpc.optionalChains),this.signer=await wO.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:e.disableProviderPing,relayUrl:e.relayUrl,storage:e.storage,storageOptions:e.storageOptions,customStoragePrefix:e.customStoragePrefix,telemetryEnabled:e.telemetryEnabled,logger:e.logger}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let t;try{const i=await IO(),{convertWCMToAppKitOptions:s}=await Promise.resolve().then(function(){return qO}),n=s(di(Xt({},this.rpc.qrModalOptions),{chains:[...new Set([...this.rpc.chains,...this.rpc.optionalChains])],metadata:this.rpc.metadata,projectId:this.rpc.projectId}));if(!n.networks.length)throw new Error("No networks found for WalletConnect·");t=i(di(Xt({},n),{universalProvider:this.signer,manualWCControl:!0}))}catch(i){throw console.warn(i),new Error("To use QR modal, please install @reown/appkit package")}if(t)try{this.modal=t}catch(i){throw this.signer.logger.error(i),new Error("Could not generate WalletConnectModal Instance")}}}loadConnectOpts(e){if(!e)return;const{chains:t,optionalChains:i,rpcMap:s}=e;t&&ht(t)&&(this.rpc.chains=t.map(n=>this.formatChainId(n)),t.forEach(n=>{this.rpc.rpcMap[n]=s?.[n]||this.getRpcUrl(n)})),i&&ht(i)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=i?.map(n=>this.formatChainId(n)),i.forEach(n=>{this.rpc.rpcMap[n]=s?.[n]||this.getRpcUrl(n)}))}getRpcUrl(e,t){var i;return((i=this.rpc.rpcMap)==null?void 0:i[e])||`${_O}?chainId=eip155:${e}&projectId=${t||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{const e=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),t=this.session.namespaces[`${this.namespace}:${e}`]?this.session.namespaces[`${this.namespace}:${e}`]:this.session.namespaces[this.namespace];this.setChainIds(e?[this.formatChainId(e)]:t?.accounts),this.setAccounts(t?.accounts)}catch(e){this.signer.logger.error("Failed to load persisted session, clearing state..."),this.signer.logger.error(e),await this.disconnect().catch(t=>this.signer.logger.warn(t))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(e){return typeof e=="string"||e instanceof String?[this.parseAccount(e)]:e.map(t=>this.parseAccount(t))}}const xO=Ls;var CO=Object.defineProperty,TO=Object.defineProperties,RO=Object.getOwnPropertyDescriptors,Wu=Object.getOwnPropertySymbols,NO=Object.prototype.hasOwnProperty,BO=Object.prototype.propertyIsEnumerable,Gu=(r,e,t)=>e in r?CO(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,yd=(r,e)=>{for(var t in e||(e={}))NO.call(e,t)&&Gu(r,t,e[t]);if(Wu)for(var t of Wu(e))BO.call(e,t)&&Gu(r,t,e[t]);return r},jO=(r,e)=>TO(r,RO(e));function UO(r){if(r)return{"--w3m-font-family":r["--wcm-font-family"],"--w3m-accent":r["--wcm-accent-color"],"--w3m-color-mix":r["--wcm-background-color"],"--w3m-z-index":r["--wcm-z-index"]?Number(r["--wcm-z-index"]):void 0,"--w3m-qr-color":r["--wcm-accent-color"],"--w3m-font-size-master":r["--wcm-text-medium-regular-size"],"--w3m-border-radius-master":r["--wcm-container-border-radius"],"--w3m-color-mix-strength":0}}const LO=r=>{const[e,t]=r.split(":");return md({id:t,caipNetworkId:r,chainNamespace:e,name:"",nativeCurrency:{name:"",symbol:"",decimals:8},rpcUrls:{default:{http:["https://rpc.walletconnect.org/v1"]}}})};function FO(r){var e,t,i,s,n,o,a;const c=(e=r.chains)==null?void 0:e.map(LO).filter(Boolean);if(c.length===0)throw new Error("At least one chain must be specified");const u=c.find(l=>{var d;return l.id===((d=r.defaultChain)==null?void 0:d.id)}),h={projectId:r.projectId,networks:c,themeMode:r.themeMode,themeVariables:UO(r.themeVariables),chainImages:r.chainImages,connectorImages:r.walletImages,defaultNetwork:u,metadata:jO(yd({},r.metadata),{name:((t=r.metadata)==null?void 0:t.name)||"WalletConnect",description:((i=r.metadata)==null?void 0:i.description)||"Connect to WalletConnect-compatible wallets",url:((s=r.metadata)==null?void 0:s.url)||"https://walletconnect.org",icons:((n=r.metadata)==null?void 0:n.icons)||["https://walletconnect.org/walletconnect-logo.png"]}),showWallets:!0,featuredWalletIds:r.explorerRecommendedWalletIds==="NONE"?[]:Array.isArray(r.explorerRecommendedWalletIds)?r.explorerRecommendedWalletIds:[],excludeWalletIds:r.explorerExcludedWalletIds==="ALL"?[]:Array.isArray(r.explorerExcludedWalletIds)?r.explorerExcludedWalletIds:[],enableEIP6963:!1,enableInjected:!1,enableCoinbase:!0,enableWalletConnect:!0,features:{email:!1,socials:!1}};if((o=r.mobileWallets)!=null&&o.length||(a=r.desktopWallets)!=null&&a.length){const l=[...(r.mobileWallets||[]).map(p=>({id:p.id,name:p.name,links:p.links})),...(r.desktopWallets||[]).map(p=>({id:p.id,name:p.name,links:{native:p.links.native,universal:p.links.universal}}))],d=[...h.featuredWalletIds||[],...h.excludeWalletIds||[]],f=l.filter(p=>!d.includes(p.id));f.length&&(h.customWallets=f)}return h}function md(r){return yd({formatters:void 0,fees:void 0,serializers:void 0},r)}var qO=Object.freeze({__proto__:null,convertWCMToAppKitOptions:FO,defineChain:md});const RP=Object.freeze(Object.defineProperty({__proto__:null,EthereumProvider:xO,OPTIONAL_EVENTS:gd,OPTIONAL_METHODS:fd,REQUIRED_EVENTS:bs,REQUIRED_METHODS:ws,default:Ls},Symbol.toStringTag,{value:"Module"}));export{jE as A,wt as B,ew as C,et as D,Ne as E,mt as F,lt as G,Gp as H,dr as I,KO as J,la as K,oh as L,Lp as M,mo as N,ji as O,ja as P,Fh as Q,Yp as R,WO as S,VO as T,Es as U,YO as V,GO as W,RP as X,U as a,Bt as b,Ip as c,kd as d,gi as e,tt as f,Ye as g,bE as h,H0 as i,Ht as j,Ts as k,pr as l,S1 as m,jo as n,rt as o,Bs as p,Rs as q,lf as r,Fn as s,qe as t,im as u,jt as v,cr as w,nr as x,ke as y,Ns as z};
