1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1504],{61504:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{EthereumProvider:function(){return ethereum_provider_dist_index_es_Y},OPTIONAL_EVENTS:function(){return ethereum_provider_dist_index_es_U},OPTIONAL_METHODS:function(){return ethereum_provider_dist_index_es_D},REQUIRED_EVENTS:function(){return ethereum_provider_dist_index_es_u},REQUIRED_METHODS:function(){return dist_index_es_p},default:function(){return ethereum_provider_dist_index_es_m}});var events=__webpack_require__(17187),events_default=__webpack_require__.n(events),chacha20poly1305=__webpack_require__(15501),hkdf=__webpack_require__(512),random=__webpack_require__(31416),sha256=__webpack_require__(73294),x25519=__webpack_require__(57664),src=__webpack_require__(37466),cjs=__webpack_require__(66736),dist_cjs=__webpack_require__(62873),window_metadata_dist_cjs=__webpack_require__(65755);__webpack_require__(69808);var esm=__webpack_require__(60075);__webpack_require__(34155),Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;let St={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}};function C(e,n){return!!Array.isArray(e)&&(!("u">typeof n)||!e.length||e.every(n))}var browser=__webpack_require__(36559),browser_default=__webpack_require__.n(browser),cjs_browser=__webpack_require__(85150),heartbeat_dist_cjs=__webpack_require__(33108),logger_dist_cjs=__webpack_require__(9107),esm_events=__webpack_require__(38200);class n extends esm_events.q{constructor(s){super(),this.opts=s,this.protocol="wc",this.version=2}}class index_es_h extends esm_events.q{constructor(s,t){super(),this.core=s,this.logger=t,this.records=new Map}}class a{constructor(s,t){this.logger=s,this.core=t}}class u extends esm_events.q{constructor(s,t){super(),this.relayer=s,this.logger=t}}class g extends esm_events.q{constructor(s){super()}}class p{constructor(s,t,o,S){this.core=s,this.logger=t,this.name=o}}class index_es_x extends esm_events.q{constructor(s,t){super(),this.relayer=s,this.logger=t}}class index_es_E extends esm_events.q{constructor(s,t){super(),this.core=s,this.logger=t}}class y{constructor(s){this.opts=s,this.protocol="wc",this.version=2}}class index_es_C{constructor(s){this.client=s}}var dist_esm=__webpack_require__(85094),relay_auth_dist_esm=__webpack_require__(21878),es=__webpack_require__(43631),node_modules_query_string=__webpack_require__(87338),index_es_process=__webpack_require__(34155);function index_es_V(e,n){return e.includes(":")?[e]:n.chains||[]}let index_es_G="base10",index_es_f="base16",index_es_K="base64pad",index_es_k="utf8";function index_es_An(){let e=(0,random.randomBytes)(32);return(0,src.BB)(e,index_es_f)}function index_es_wn(e){let n=(0,sha256.vp)((0,src.mL)(e,index_es_k));return(0,src.BB)(n,index_es_f)}function index_es_j(e){return Number((0,src.BB)(e,index_es_G))}function index_es_Q(e){let n=(0,src.mL)(e,index_es_K),t=n.slice(0,1);if(1===index_es_j(t)){let i=n.slice(1,33),u=n.slice(33,45),a=n.slice(45);return{type:t,sealed:a,iv:u,senderPublicKey:i}}let s=n.slice(1,13),c=n.slice(13);return{type:t,sealed:c,iv:s}}function index_es_Pe(e){let n=e?.type||0;if(1===n){if(typeof e?.senderPublicKey>"u")throw Error("missing sender public key");if(typeof e?.receiverPublicKey>"u")throw Error("missing receiver public key")}return{type:n,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function index_es_Dn(e){return 1===e.type&&"string"==typeof e.senderPublicKey&&"string"==typeof e.receiverPublicKey}var index_es_Vn=Object.defineProperty,index_es_Te=Object.getOwnPropertySymbols,index_es_Mn=Object.prototype.hasOwnProperty,index_es_Kn=Object.prototype.propertyIsEnumerable,index_es_Re=(e,n,t)=>n in e?index_es_Vn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}
1):e[n]=t,index_es_Ae=(e,n)=>{for(var t in n||(n={}))index_es_Mn.call(n,t)&&index_es_Re(e,t,n[t]);if(index_es_Te)for(var t of index_es_Te(n))index_es_Kn.call(n,t)&&index_es_Re(e,t,n[t]);return e};let index_es_={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"};function index_es_X(){return"u">typeof index_es_process&&"u">typeof index_es_process.versions&&"u">typeof index_es_process.versions.node}function dist_index_es_b(e,n){return e.filter(t=>n.includes(t)).length===e.length}function index_es_Gn(e){return Object.fromEntries(e.entries())}function index_es_Yn(e){return new Map(Object.entries(e))}function index_es_Zn(e=cjs.FIVE_MINUTES,n){let r,o,s;let t=(0,cjs.toMiliseconds)(e||cjs.FIVE_MINUTES);return{resolve(c){s&&r&&(clearTimeout(s),r(c))},reject(c){s&&o&&(clearTimeout(s),o(c))},done:()=>new Promise((c,d)=>{s=setTimeout(()=>{d(Error(n))},t),r=c,o=d})}}function index_es_Xn(e,n,t){return new Promise(async(r,o)=>{let s=setTimeout(()=>o(Error(t)),n);try{let c=await e;r(c)}catch(c1){o(c1)}clearTimeout(s)})}function index_es_ne(e,n){if("string"==typeof n&&n.startsWith(`${e}:`))return n;if("topic"===e.toLowerCase()){if("string"!=typeof n)throw Error('Value must be "string" for expirer target type: topic');return`topic:${n}`}if("id"===e.toLowerCase()){if("number"!=typeof n)throw Error('Value must be "number" for expirer target type: id');return`id:${n}`}throw Error(`Unknown expirer target type: ${e}`)}function index_es_tt(e){let[n,t]=e.split(":"),r={id:void 0,topic:void 0};if("topic"===n&&"string"==typeof t)r.topic=t;else if("id"===n&&Number.isInteger(Number(t)))r.id=Number(t);else throw Error(`Invalid target, expected id:number or topic:string, got ${n}:${t}`);return r}function index_es_rt(e,n){return(0,cjs.fromMiliseconds)((n||Date.now())+(0,cjs.toMiliseconds)(e))}function index_es_ot(e){return Date.now()>=(0,cjs.toMiliseconds)(e)}function index_es_st(e,n){return`${e}${n?`:${n}`:""}`}function index_es_it(e){return e?.relay||{protocol:"irn"}}function index_es_ct(e){let n=esm.RELAY_JSONRPC[e];if(typeof n>"u")throw Error(`Relay Protocol not supported: ${e}`);return n}var index_es_at=Object.defineProperty,index_es_Fe=Object.getOwnPropertySymbols,index_es_ut=Object.prototype.hasOwnProperty,index_es_dt=Object.prototype.propertyIsEnumerable,index_es_He=(e,n,t)=>n in e?index_es_at(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,index_es_lt=(e,n)=>{for(var t in n||(n={}))index_es_ut.call(n,t)&&index_es_He(e,t,n[t]);if(index_es_Fe)for(var t of index_es_Fe(n))index_es_dt.call(n,t)&&index_es_He(e,t,n[t]);return e};
1function index_es_T(e){let n=[];return e.forEach(t=>{let[r,o]=t.split(":");n.push(`${r}:${o}`)}),n}Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;let index_es_St={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}},index_es_It={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 index_es_N(e,n){let{message:t,code:r}=index_es_It[e];return{message:n?`${t} ${n}`:t,code:r}}function index_es_R(e,n){let{message:t,code:r}=index_es_St[e];return{message:n?`${t} ${n}`:t,code:r}}function dist_index_es_C(e,n){return!!Array.isArray(e)&&(!("u">typeof n)||!e.length||e.every(n))}function dist_index_es_x(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function index_es_S(e){return typeof e>"u"}function dist_index_es_m(e,n){return!!(n&&index_es_S(e))||"string"==typeof e&&Boolean(e.trim().length)}function index_es_F(e,n){return!!(n&&index_es_S(e))||"number"==typeof e&&!isNaN(e)}function index_es_H(e){return!!(dist_index_es_m(e,!1)&&e.includes(":"))&&2===e.split(":").length}function index_es_oe(e){let n=!0;return dist_index_es_C(e)?e.length&&(n=e.every(t=>dist_index_es_m(t,!1))):n=!1,n}function index_es_se(e,n){let t=null;return Object.values(e).forEach(r=>{var n1;let t1;if(t)return;let o=(n1=`${n}, namespace`,t1=null,index_es_oe(r?.methods)?index_es_oe(r?.events)||(t1=index_es_R("UNSUPPORTED_EVENTS",`${n1}, events should be an array of strings or empty array for no events`)):t1=index_es_R("UNSUPPORTED_METHODS",`${n1}, methods should be an array of strings or empty array for no methods`),t1);o&&(t=o)}),t}function index_es_on(e,n){let t=null;if(e&&dist_index_es_x(e)){let t1;let r=index_es_se(e,n);r&&(t=r);let o=(t1=null,Object.values(e).forEach(r=>{var e,n1;let t;if(t1)return;let o=(e=r?.accounts,n1=`${n} namespace`,t=null,dist_index_es_C(e)?e.forEach(r=>{t||function(e){if(dist_index_es_m(e,!1)&&e.includes(":")){let n=e.split(":");if(3===n.length){let t=n[0]+":"+n[1];return!!n[2]&&index_es_H(t)}}return!1}(r)||(t=index_es_R("UNSUPPORTED_ACCOUNTS",`${n1}, account ${r} should be a string and conform to "namespace:chainId:address" format`))}):t=index_es_R("UNSUPPORTED_ACCOUNTS",`${n1}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),t);o&&(t1=o)}),t1);o&&(t=o)}else t=index_es_N("MISSING_OR_INVALID",`${n}, namespaces should be an object with data`);return t}function index_es_sn(e){return dist_index_es_m(e.protocol,!0)}function index_es_Ct(e){return"u">typeof e}function index_es_Kt(e,n){return!(!index_es_H(n)||!(function(e){let n=[];return Object.values(e).forEach(t=>
1{n.push(...index_es_T(t.accounts))}),n})(e).includes(n))}function index_es_cn(e,n,t){let r=null,o=function(e){let n={};return Object.keys(e).forEach(t=>{var r;t.includes(":")?n[t]=e[t]:null==(r=e[t].chains)||r.forEach(o=>{n[o]={methods:e[t].methods,events:e[t].events}})}),n}(e),s=function(e){let n={};return Object.keys(e).forEach(t=>{if(t.includes(":"))n[t]=e[t];else{let r=index_es_T(e[t].accounts);r?.forEach(o=>{n[o]={accounts:e[t].accounts.filter(s=>s.includes(`${o}:`)),methods:e[t].methods,events:e[t].events}})}}),n}(n),c=Object.keys(o),d=Object.keys(s),l=index_es_an(Object.keys(e)),i=index_es_an(Object.keys(n)),u=l.filter(a=>!i.includes(a));return u.length&&(r=index_es_N("NON_CONFORMING_NAMESPACES",`${t} namespaces keys don't satisfy requiredNamespaces. 2 Required: ${u.toString()} 3 Received: ${Object.keys(n).toString()}`)),dist_index_es_b(c,d)||(r=index_es_N("NON_CONFORMING_NAMESPACES",`${t} namespaces chains don't satisfy required namespaces. 4 Required: ${c.toString()} 5 Approved: ${d.toString()}`)),Object.keys(n).forEach(a=>{if(!a.includes(":")||r)return;let g=index_es_T(n[a].accounts);g.includes(a)||(r=index_es_N("NON_CONFORMING_NAMESPACES",`${t} namespaces accounts don't satisfy namespace accounts for ${a} 6 Required: ${a} 7 Approved: ${g.toString()}`))}),c.forEach(a=>{r||(dist_index_es_b(o[a].methods,s[a].methods)?dist_index_es_b(o[a].events,s[a].events)||(r=index_es_N("NON_CONFORMING_NAMESPACES",`${t} namespaces events don't satisfy namespace events for ${a}`)):r=index_es_N("NON_CONFORMING_NAMESPACES",`${t} namespaces methods don't satisfy namespace methods for ${a}`))}),r}function index_es_an(e){return[...new Set(e.map(n=>n.includes(":")?n.split(":")[0]:n))]}var jsonrpc_utils_dist_esm=__webpack_require__(56186);class JsonRpcProvider extends jsonrpc_utils_dist_esm.IJsonRpcProvider{constructor(connection){super(connection),this.events=new events.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(connection),this.connection.connected&&this.registerEventListeners()}async connect(connection=this.connection){await this.open(connection)}async disconnect(){await this.close()}on(event,listener){this.events.on(event,listener)}once(event,listener){this.events.once(event,listener)}off(event,listener){this.events.off(event,listener)}removeListener(event,listener){this.events.removeListener(event,listener)}async request(request,context){return this.requestStrict((0,jsonrpc_utils_dist_esm.formatJsonRpcRequest)(request.method,request.params||[]),context)}async requestStrict(request,context){return new Promise(async(resolve,reject)=>{if(!this.connection.connected)try{await this.open()}catch(e){reject(e)}this.events.on(`${request.id}`,response=>{(0,jsonrpc_utils_dist_esm.isJsonRpcError)(response)?reject(response.error):resolve(response.result)});try{await this.connection.send(request,context)}catch(e1){reject(e1)}})}setConnection(connection=this.connection){return connection}onPayload(payload){this.events.emit("payload",payload),(0,jsonrpc_utils_dist_esm.isJsonRpcResponse)(payload)?this.events.emit(`${payload.id}`,payload):this.events.emit("message",{type:payload.method,data:payload.params})}onClose(event){event&&3e3===event.code&&this.events.emit("error",Error(`WebSocket connection closed abnormally with code: ${event.code} ${event.reason?`(${event.reason})`:""}`)),this.events.emit("disconnect")}async open(connection=this.connection){this.connection===connection&&this.connection.connected||(this.connection.connected&&this.close(),"string"==typeof connection&&(await this.connection.open(connection),connection=this.connection),this.connection=this.setConnection(connection),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",payload=>this.onPayload(payload)),this.connection.on("close",event=>this.onClose(event)),this.connection.on("error",error=>this.events.emit("error",error)),this.connection.on("register_error",error=>this.onClose()),this.hasRegisteredEventListeners=!0)}}let isBrowser=()=>"undefined"!=typeof window,WS=void 0!==__webpack_require__.g&&void 0!==__webpack_require__.g.WebSocket?__webpack_require__.g.WebSocket:"undefined"!=typeof window&&void 0!==window.WebSocket?window.WebSocket:__webpack_require__(57026);var ws=class{constructor(url){if(this.url=url,this.events=new events.EventEmitter,this.registering=!1,!(0,jsonrpc_utils_dist_esm.isWsUrl)(url))throw Error(`Provided URL is not compatible with WebSocket connection: ${url}`);this.url=url}get connected(){return void 0!==this.socket}get connecting(){return this.registering}on(event,listener){this.events.on(event,listener)}once(event,listener){this.events.once(event,listener)}off(event,listener){this.events.off(event,listener)}removeListener(event,listener){this.events.removeListener(event,listener)}async open(url=this.url){await this.register(url)}async close(){return new Promise((resolve,reject)=>{if(void 0===this.socket){reject(Error("Connection already closed"));return}this.socket.onclose=event=>{this.onClose(event),resolve()},this.socket.close()})}async send(payload,context){void 0===this.socket&&(this.socket=await this.register());try{this.socket.send((0,dist_esm.u)(payload))}catch(e){this.onError(payload.id,e)}}register(url=this.url){if(!(0,jsonrpc_utils_dist_esm.isWsUrl)(url))throw Error(`Provided URL is not compatible with WebSocket connection: ${url}`);if(this.registering){let currentMaxListeners=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=currentMaxListeners||this.events.listenerCount("open")>=currentMaxListeners)&&this.events.setMaxListeners(currentMaxListeners+1),new Promise((resolve,reject)=>{this.events.once("register_error",error=>{this.resetMaxListeners(),reject(error)}),this.events.once("open",()=>{if(this.resetMaxListeners(),void 0===this.socket)return reject(Error("WebSocket connection is missing or invalid"));resolve(this.socket)})})}return this.url=url,this.registering=!0,new Promise((resolve,reject)=>{let opts=(0,jsonrpc_utils_dist_esm.isReactNative)()?void 0:{rejectUnauthorized:!(0,jsonrpc_utils_dist_esm.isLocalhostUrl)(url)},socket=new WS(url,[],opts);isBrowser()?socket.onerror=event=>{reject(this.emitError(event.error))}:socket.on("error",errorEvent=>{reject(this.emitError(errorEvent))}),socket.onopen=()=>{this.onOpen(socket),resolve(socket)}})}onOpen(socket){socket.onmessage=event=>this.onPayload(event),socket.onclose=event=>this.onClose(event),this.socket=socket,this.registering=!1,this.events.emit("open")}onClose(event){this.socket=void 0,this.registering=!1,this.events.emit("close",event)}onPayload(e){if(void 0===e.data)return;let payload="string"==typeof e.data?(0,dist_esm.D)(e.data):e.data;this.events.emit("payload",payload)}onError(id,e){let error=this.parseError(e),message=error.message||error.toString(),payload=(0,jsonrpc_utils_dist_esm.formatJsonRpcError)(id,message);this.events.emit("payload",payload)}parseError(e,url=this.url){return(0,jsonrpc_utils_dist_esm.parseConnectionError)(e,url,"WS")}
7resetMaxListeners(){this.events.getMaxListeners()>10&&this.events.setMaxListeners(10)}emitError(errorEvent){let error=this.parseError(Error((null==errorEvent?void 0:errorEvent.message)||`WebSocket connection failed for URL: ${this.url}`));return this.events.emit("register_error",error),error}},lodash_isequal=__webpack_require__(72307),lodash_isequal_default=__webpack_require__.n(lodash_isequal),Ri=function(r,e){if(r.length>=255)throw 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),a=n.charCodeAt(0);if(255!==t[a])throw TypeError(n+" is ambiguous");t[a]=s}var o=r.length,h=r.charAt(0),d=Math.log(o)/Math.log(256),l=Math.log(256)/Math.log(o);function U(u){if("string"!=typeof u)throw TypeError("Expected String");if(0===u.length)return new Uint8Array;var y=0;if(" "!==u[0]){for(var O=0,E=0;u[y]===h;)O++,y++;for(var _=(u.length-y)*d+1>>>0,R=new Uint8Array(_);u[y];){var b=t[u.charCodeAt(y)];if(255===b)return;for(var S=0,x=_-1;(0!==b||S<E)&&-1!==x;x--,S++)b+=o*R[x]>>>0,R[x]=b%256>>>0,b=b/256>>>0;if(0!==b)throw Error("Non-zero carry");E=S,y++}if(" "!==u[y]){for(var f=_-E;f!==_&&0===R[f];)f++;for(var P=new Uint8Array(O+(_-f)),K=O;f!==_;)P[K++]=R[f++];return P}}}return{encode:function(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw TypeError("Expected Uint8Array");if(0===u.length)return"";for(var y=0,O=0,E=0,_=u.length;E!==_&&0===u[E];)E++,y++;for(var R=(_-E)*l+1>>>0,b=new Uint8Array(R);E!==_;){for(var S=u[E],x=0,f=R-1;(0!==S||x<O)&&-1!==f;f--,x++)S+=256*b[f]>>>0,b[f]=S%o>>>0,S=S/o>>>0;if(0!==S)throw Error("Non-zero carry");O=x,E++}for(var P=R-O;P!==R&&0===b[P];)P++;for(var K=h.repeat(y);P<R;++P)K+=r.charAt(b[P]);return K},decodeUnsafe:U,decode:function(u){var y=U(u);if(y)return y;throw Error(`Non-${e} character`)}}};let dist_index_es_Ce=r=>{if(r instanceof Uint8Array&&"Uint8Array"===r.constructor.name)return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw Error("Unknown type, must be binary type")},Si=r=>new TextEncoder().encode(r),Pi=r=>new TextDecoder().decode(r);class Ti{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 xi{constructor(e,t,i){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=i}decode(e){if("string"==typeof e){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))}throw Error("Can only multibase decode strings")}or(e){return dist_index_es_e(this,e)}}class Oi{constructor(e){this.decoders=e}or(e){return dist_index_es_e(this,e)}decode(e){let 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`)}}let dist_index_es_e=(r,e)=>new Oi({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}});class Ai{constructor(e,t,i,s){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=s,this.encoder=new Ti(e,t,i),this.decoder=new xi(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}let index_es_q=({name:r,prefix:e,encode:t,decode:i})=>new Ai(r,e,t,i),dist_index_es_F=({prefix:r,name:e,alphabet:t})=>{let{encode:i,decode:s}=Ri(t,e);return index_es_q({prefix:r,name:e,encode:i,decode:n=>dist_index_es_Ce(s(n))})},zi=(r,e,t,i)=>{let s={};for(let l=0;l<e.length;++l)s[e[l]]=l;let n=r.length;for(;"="===r[n-1];)--n;let a=new Uint8Array(n*t/8|0),o=0,h=0,d=0;for(let l1=0;l1<n;++l1){let g=s[r[l1]];if(void 0===g)throw SyntaxError(`Non-${i} character`);h=h<<t|g,(o+=t)>=8&&(o-=8,a[d++]=255&h>>o)}if(o>=t||255&h<<8-o)throw SyntaxError("Unexpected end of data");return a},Ni=(r,e,t)=>{let i="="===e[e.length-1],s=(1<<t)-1,n="",a=0,o=0;for(let h=0;h<r.length;++h)for(o=o<<8|r[h],a+=8;a>t;)a-=t,n+=e[s&o>>a];if(a&&(n+=e[s&o<<t-a]),i)for(;n.length*t&7;)n+="=";return n},index_es_p=({name:r,prefix:e,bitsPerChar:t,alphabet:i})=>index_es_q({prefix:e,name:r,encode:s=>Ni(s,i,t),decode:s=>zi(s,i,t,r)}),Ui=index_es_q({prefix:"\0",name:"identity",encode:r=>Pi(r),decode:r=>Si(r)});var Li=Object.freeze({__proto__:null,identity:Ui});let Fi=index_es_p({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Mi=Object.freeze({__proto__:null,base2:Fi});let $i=index_es_p({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ki=Object.freeze({__proto__:null,base8:$i});let ki=dist_index_es_F({prefix:"9",name:"base10",alphabet:"0123456789"});var Bi=Object.freeze({__proto__:null,base10:ki}
7);let ji=index_es_p({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Vi=index_es_p({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var qi=Object.freeze({__proto__:null,base16:ji,base16upper:Vi});let Gi=index_es_p({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Yi=index_es_p({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ji=index_es_p({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Hi=index_es_p({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Xi=index_es_p({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Wi=index_es_p({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Zi=index_es_p({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Qi=index_es_p({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),index_es_es=index_es_p({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ts=Object.freeze({__proto__:null,base32:Gi,base32upper:Yi,base32pad:Ji,base32padupper:Hi,base32hex:Xi,base32hexupper:Wi,base32hexpad:Zi,base32hexpadupper:Qi,base32z:index_es_es});let is=dist_index_es_F({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ss=dist_index_es_F({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var rs=Object.freeze({__proto__:null,base36:is,base36upper:ss});let ns=dist_index_es_F({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),as=dist_index_es_F({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var os=Object.freeze({__proto__:null,base58btc:ns,base58flickr:as});let hs=index_es_p({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),cs=index_es_p({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),us=index_es_p({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ls=index_es_p({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ds=Object.freeze({__proto__:null,base64:hs,base64pad:cs,base64url:us,base64urlpad:ls});let dist_index_es_Re=Array.from("\uD83D\uDE80\uD83E\uDE90â\uD83D\uDEF0\uD83C\uDF0C\uD83C\uDF11\uD83C\uDF12\uD83C\uDF13\uD83C\uDF14\uD83C\uDF15\uD83C\uDF16\uD83C\uDF17\uD83C\uDF18\uD83C\uDF0D\uD83C\uDF0F\uD83C\uDF0E\uD83D\uDC09â\uD83D\uDCBB\uD83D\uDDA5\uD83D\uDCBE\uD83D\uDCBF\uD83D\uDE02â¤\uD83D\uDE0D\uD83E\uDD23\uD83D\uDE0A\uD83D\uDE4F\uD83D\uDC95\uD83D\uDE2D\uD83D\uDE18\uD83D\uDC4D\uD83D\uDE05\uD83D\uDC4F\uD83D\uDE01\uD83D\uDD25\uD83E\uDD70\uD83D\uDC94\uD83D\uDC96\uD83D\uDC99\uD83D\uDE22\uD83E\uDD14\uD83D\uDE06\uD83D\uDE44\uD83D\uDCAA\uD83D\uDE09âº\uD83D\uDC4C\uD83E\uDD17\uD83D\uDC9C\uD83D\uDE14\uD83D\uDE0E\uD83D\uDE07\uD83C\uDF39\uD83E\uDD26\uD83C\uDF89\uD83D\uDC9Eââ¨\uD83E\uDD37\uD83D\uDE31\uD83D\uDE0C\uD83C\uDF38\uD83D\uDE4C\uD83D\uDE0B\uD83D\uDC97\uD83D\uDC9A\uD83D\uDE0F\uD83D\uDC9B\uD83D\uDE42\uD83D\uDC93\uD83E\uDD29\uD83D\uDE04\uD83D\uDE00\uD83D\uDDA4\uD83D\uDE03\uD83D\uDCAF\uD83D\uDE48\uD83D\uDC47\uD83C\uDFB6\uD83D\uDE12\uD83E\uDD2Dâ£\uD83D\uDE1C\uD83D\uDC8B\uD83D\uDC40\uD83D\uDE2A\uD83D\uDE11\uD83D\uDCA5\uD83D\uDE4B\uD83D\uDE1E\uD83D\uDE29\uD83D\uDE21\uD83E\uDD2A\uD83D\uDC4A\uD83E\uDD73\uD83D\uDE25\uD83E\uDD24\uD83D\uDC49\uD83D\uDC83\uD83D\uDE33â\uD83D\uDE1A\uD83D\uDE1D\uD83D\uDE34\uD83C\uDF1F\uD83D\uDE2C\uD83D\uDE43\uD83C\uDF40\uD83C\uDF37\uD83D\uDE3B\uD83D\uDE13ââ
\uD83E\uDD7A\uD83C\uDF08\uD83D\uDE08\uD83E\uDD18\uD83D\uDCA6â\uD83D\uDE23\uD83C\uDFC3\uD83D\uDC90â¹\uD83C\uDF8A\uD83D\uDC98\uD83D\uDE20â\uD83D\uDE15\uD83C\uDF3A\uD83C\uDF82\uD83C\uDF3B\uD83D\uDE10\uD83D\uDD95\uD83D\uDC9D\uD83D\uDE4A\uD83D\uDE39\uD83D\uDDE3\uD83D\uDCAB\uD83D\uDC80\uD83D\uDC51\uD83C\uDFB5\uD83E\uDD1E\uD83D\uDE1B\uD83D\uDD34\uD83D\uDE24\uD83C\uDF3C\uD83D\uDE2Bâ½\uD83E\uDD19â\uD83C\uDFC6\uD83E\uDD2B\uD83D\uDC48\uD83D\uDE2E\uD83D\uDE46\uD83C\uDF7B\uD83C\uDF43\uD83D\uDC36\uD83D\uDC81\uD83D\uDE32\uD83C\uDF3F\uD83E\uDDE1\uD83C\uDF81â¡\uD83C\uDF1E\uD83C\uDF88ââ\uD83D\uDC4B\uD83D\uDE30\uD83E\uDD28\uD83D\uDE36\uD83E\uDD1D\uD83D\uDEB6\uD83D\uDCB0\uD83C\uDF53\uD83D\uDCA2\uD83E\uDD1F\uD83D\uDE41\uD83D\uDEA8\uD83D\uDCA8\uD83E\uDD2Câ\uD83C\uDF80\uD83C\uDF7A\uD83E\uDD13\uD83D\uDE19\uD83D\uDC9F\uD83C\uDF31\uD83D\uDE16\uD83D\uDC76\uD83E\uDD74â¶â¡â\uD83D\uDC8E\uD83D\uDCB8â¬\uD83D\uDE28\uD83C\uDF1A\uD83E\uDD8B\uD83D\uDE37\uD83D\uDD7Aâ \uD83D\uDE45\uD83D\uDE1F\uD83D\uDE35\uD83D\uDC4E\uD83E\uDD32\uD83E\uDD20\uD83E\uDD27\uD83D\uDCCC\uD83D\uDD35\uD83D\uDC85\uD83E\uDDD0\uD83D\uDC3E\uD83C\uDF52\uD83D\uDE17\uD83E\uDD11\uD83C\uDF0A\uD83E\uDD2F\uD83D\uDC37â\uD83D\uDCA7\uD83D\uDE2F\uD83D\uDC86\uD83D\uDC46\uD83C\uDFA4\uD83D\uDE47\uD83C\uDF51â\uD83C\uDF34\uD83D\uDCA3\uD83D\uDC38\uD83D\uDC8C\uD83D\uDCCD\uD83E\uDD40\uD83E\uDD22\uD83D\uDC45\uD83D\uDCA1\uD83D\uDCA9\uD83D\uDC50\uD83D\uDCF8\uD83D\uDC7B\uD83E\uDD10\uD83E\uDD2E\uD83C\uDFBC\uD83E\uDD75\uD83D\uDEA9\uD83C\uDF4E\uD83C\uDF4A\uD83D\uDC7C\uD83D\uDC8D\uD83D\uDCE3\uD83E\uDD42"),gs=dist_index_es_Re.reduce((r,e,t)=>(r[t]=e,r),[]),ps=dist_index_es_Re.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]),bs=index_es_q({prefix:"\uD83D\uDE80",name:"base256emoji",encode:function(r){return r.reduce((e,t)=>
7e+=gs[t],"")},decode:function(r){let e=[];for(let t of r){let i=ps[t.codePointAt(0)];if(void 0===i)throw Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}});var ms=Object.freeze({__proto__:null,base256emoji:bs});function dist_index_es_Pe(r,e,t){e=e||[],t=t||0;for(var i=t;r>=2147483648;)e[t++]=255&r|128,r/=128;for(;-128&r;)e[t++]=255&r|128,r>>>=7;return e[t]=0|r,dist_index_es_Pe.bytes=t-i+1,e}function dist_index_es_se(r,i){var a,t=0,i=i||0,s=0,n=i,o=r.length;do{if(n>=o)throw dist_index_es_se.bytes=0,RangeError("Could not decode varint");a=r[n++],t+=s<28?(127&a)<<s:(127&a)*Math.pow(2,s),s+=7}while(a>=128);return dist_index_es_se.bytes=n-i,t}var dist_index_es_xe={encode:dist_index_es_Pe,decode:dist_index_es_se,encodingLength:function(r){return r<128?1:r<16384?2:r<2097152?3:r<268435456?4:r<34359738368?5:r<4398046511104?6:r<562949953421312?7:r<72057594037927940?8:r<0x7fffffffffffffff?9:10}};let dist_index_es_Oe=(r,e,t=0)=>(dist_index_es_xe.encode(r,e,t),e),dist_index_es_Ae=r=>dist_index_es_xe.encodingLength(r),dist_index_es_re=(r,e)=>{let t=e.byteLength,i=dist_index_es_Ae(r),s=i+dist_index_es_Ae(t),n=new Uint8Array(s+t);return dist_index_es_Oe(r,n,0),dist_index_es_Oe(t,n,i),n.set(e,s),new Ls(r,t,e,n)};class Ls{constructor(e,t,i,s){this.code=e,this.size=t,this.digest=i,this.bytes=s}}let dist_index_es_ze=({name:r,code:e,encode:t})=>new Fs(r,e,t);class Fs{constructor(e,t,i){this.name=e,this.code=t,this.encode=i}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?dist_index_es_re(this.code,t):t.then(i=>dist_index_es_re(this.code,i))}throw Error("Unknown type, must be binary type")}}let dist_index_es_Ne=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),Ms=dist_index_es_ze({name:"sha2-256",code:18,encode:dist_index_es_Ne("SHA-256")}),$s=dist_index_es_ze({name:"sha2-512",code:19,encode:dist_index_es_Ne("SHA-512")});Object.freeze({__proto__:null,sha256:Ms,sha512:$s});let Bs=r=>dist_index_es_re(0,dist_index_es_Ce(r));Object.freeze({__proto__:null,identity:{code:0,name:"identity",encode:dist_index_es_Ce,digest:Bs}}),new TextEncoder,new TextDecoder;let dist_index_es_Fe={...Li,...Mi,...Ki,...Bi,...qi,...ts,...rs,...os,...ds,...ms};function dist_index_es_Me(r,e,t,i){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:i}}}let dist_index_es_$e=dist_index_es_Me("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>
7new TextEncoder().encode(r.substring(1))),dist_index_es_ne=dist_index_es_Me("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);let e=function(r=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Gs={utf8:dist_index_es_$e,"utf-8":dist_index_es_$e,hex:dist_index_es_Fe.base16,latin1:dist_index_es_ne,ascii:dist_index_es_ne,binary:dist_index_es_ne,...dist_index_es_Fe},dist_index_es_G="core",dist_index_es_T=`wc@2:${dist_index_es_G}:`,dist_index_es_ke={name:dist_index_es_G,logger:"error"},dist_index_es_Be={database:":memory:"},dist_index_es_oe="client_ed25519_seed",dist_index_es_Ve=cjs.ONE_DAY,dist_index_es_He=cjs.SIX_HOURS,dist_index_es_he="wss://relay.walletconnect.com",dist_index_es_D={message:"relayer_message",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},dist_index_es_M={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},dist_index_es_tt=cjs.ONE_SECOND,index_es_I={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},dist_index_es_at=1e3*cjs.FIVE_SECONDS,dist_index_es_N={wc_pairingDelete:{req:{ttl:cjs.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:cjs.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:cjs.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:cjs.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:cjs.ONE_DAY,prompt:!1,tag:0},res:{ttl:cjs.ONE_DAY,prompt:!1,tag:0}}},core_dist_index_es_C={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},core_dist_index_es_m={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"};class dist_index_es_gt{constructor(e,t){this.core=e,this.logger=t,this.keychain=new Map,this.name="keychain",this.version="0.3",this.initialized=!1,this.storagePrefix=dist_index_es_T,this.init=async()=>{if(!this.initialized){let i=await this.getKeyChain();"u">typeof i&&(this.keychain=i),this.initialized=!0}},this.has=i=>(this.isInitialized(),this.keychain.has(i)),this.set=async(i,s)=>{this.isInitialized(),this.keychain.set(i,s),await this.persist()},this.get=i=>{this.isInitialized();let s=this.keychain.get(i);if(typeof s>"u"){let{message:n}=index_es_N("NO_MATCHING_KEY",`${this.name}: ${i}`);throw Error(n)}return s},this.del=async i=>{this.isInitialized(),this.keychain.delete(i),await this.persist()},this.core=e,this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name)}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,index_es_Gn(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return"u">typeof e?index_es_Yn(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}}class dist_index_es_pt{constructor(e,t,i){this.core=e,this.logger=t,this.name="crypto",this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=s=>(this.isInitialized(),this.keychain.has(s)),this.getClientId=async()=>{this.isInitialized();let s=await this.getClientSeed(),n=relay_auth_dist_esm.generateKeyPair(s);return relay_auth_dist_esm.encodeIss(n.publicKey)},this.generateKeyPair=()=>{this.isInitialized();let s=function(){let e=x25519.Au();return{privateKey:(0,src.BB)(e.secretKey,index_es_f),publicKey:(0,src.BB)(e.publicKey,index_es_f)}}();return this.setPrivateKey(s.publicKey,s.privateKey)},this.signJWT=async s=>{this.isInitialized();let n=await this.getClientSeed(),a=relay_auth_dist_esm.generateKeyPair(n),o=index_es_An();return await relay_auth_dist_esm.signJWT(o,s,dist_index_es_Ve,a)},this.generateSharedKey=(s,n,a)=>{this.isInitialized();let o=this.getPrivateKey(s),h=function(e,n){let t=x25519.gi((0,src.mL)(e,index_es_f),(0,src.mL)(n,index_es_f)),r=new hkdf.t(sha256.mE,t).expand(32);return(0,src.BB)(r,index_es_f)}(o,n);return this.setSymKey(h,a)},this.setSymKey=async(s,n)=>{this.isInitialized();let a=n||function(e){let n=(0,sha256.vp)((0,src.mL)(e,index_es_f));return(0,src.BB)(n,index_es_f)}(s);return await this.keychain.set(a,s),a},this.deleteKeyPair=async s=>{this.isInitialized(),await this.keychain.del(s)},this.deleteSymKey=async s=>{this.isInitialized(),await this.keychain.del(s)},this.encode=async(s,n,a)=>{this.isInitialized();let o=index_es_Pe(a),h=(0,dist_esm.u)(n);if(index_es_Dn(o)){let U=o.senderPublicKey,J=o.receiverPublicKey;s=await this.generateSharedKey(U,J)}let d=this.getSymKey(s),{type:l,senderPublicKey:g}=o;return function(e){var e1;let n=(e1="u">typeof e.type?e.type:0,(0,src.mL)(`${e1}`,index_es_G));if(1===index_es_j(n)&&typeof e.senderPublicKey>"u")throw Error("Missing sender public key for type 1 envelope");let t="u">typeof e.senderPublicKey?(0,src.mL)(e.senderPublicKey,index_es_f):void 0,r="u">typeof e.iv?(0,src.mL)(e.iv,index_es_f):(0,random.randomBytes)(12),o=new chacha20poly1305.OK((0,src.mL)(e.symKey,index_es_f)).seal(r,(0,src.mL)(e.message,index_es_k));return function(e){if(1===index_es_j(e.type)){if(typeof e.senderPublicKey>"u")throw Error("Missing sender public key for type 1 envelope");
7return(0,src.BB)((0,src.zo)([e.type,e.senderPublicKey,e.iv,e.sealed]),index_es_K)}return(0,src.BB)((0,src.zo)([e.type,e.iv,e.sealed]),index_es_K)}({type:n,sealed:o,iv:r,senderPublicKey:t})}({type:l,symKey:d,message:h,senderPublicKey:g})},this.decode=async(s,n,a)=>{this.isInitialized();let o=function(e,n){let t=index_es_Q(e);return index_es_Pe({type:index_es_j(t.type),senderPublicKey:"u">typeof t.senderPublicKey?(0,src.BB)(t.senderPublicKey,index_es_f):void 0,receiverPublicKey:n?.receiverPublicKey})}(n,a);if(index_es_Dn(o)){let l=o.receiverPublicKey,g=o.senderPublicKey;s=await this.generateSharedKey(l,g)}let h=this.getSymKey(s),d=function(e){let n=new chacha20poly1305.OK((0,src.mL)(e.symKey,index_es_f)),{sealed:t,iv:r}=index_es_Q(e.encoded),o=n.open(r,t);if(null===o)throw Error("Failed to decrypt");return(0,src.BB)(o,index_es_k)}({symKey:h,encoded:n});return(0,dist_esm.D)(d)},this.getPayloadType=s=>{let n=index_es_Q(s);return index_es_j(n.type)},this.getPayloadSenderPublicKey=s=>{let n=index_es_Q(s);return n.senderPublicKey?(0,src.BB)(n.senderPublicKey,index_es_f):void 0},this.core=e,this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name),this.keychain=i||new dist_index_es_gt(this.core,this.logger)}get context(){return(0,logger_dist_cjs.getLoggerContext)(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(dist_index_es_oe)}catch{await this.keychain.set(dist_index_es_oe,e=index_es_An())}return function(r,e="utf8"){let t=Gs[e];if(!t)throw Error(`Unsupported encoding "${e}"`);return("utf8"===e||"utf-8"===e)&&null!=globalThis.Buffer&&null!=globalThis.Buffer.from?globalThis.Buffer.from(r,"utf8"):t.decoder.decode(`${t.prefix}${r}`)}(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}}class dist_index_es_Dt extends a{constructor(e,t){super(e,t),this.logger=e,this.core=t,this.messages=new Map,this.name="messages",this.version="0.3",this.initialized=!1,this.storagePrefix=dist_index_es_T,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{let i=await this.getRelayerMessages();"u">typeof i&&(this.messages=i),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(i1){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(i1)}finally{this.initialized=!0}}},this.set=async(i,s)=>{this.isInitialized();let n=index_es_wn(s),a=this.messages.get(i);return typeof a>"u"&&(a={}),"u">typeof a[n]||(a[n]=s,this.messages.set(i,a),await this.persist()),n},this.get=i=>{this.isInitialized();let s=this.messages.get(i);return typeof s>"u"&&(s={}),s},this.has=(i,s)=>{this.isInitialized();let n=this.get(i),a=index_es_wn(s);return"u">typeof n[a]},this.del=async i=>{this.isInitialized(),this.messages.delete(i),await this.persist()},this.logger=(0,logger_dist_cjs.generateChildLogger)(e,this.name),this.core=t}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,index_es_Gn(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return"u">typeof e?index_es_Yn(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}}class Zs extends u{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.events=new events.EventEmitter,this.name="publisher",this.queue=new Map,this.publishTimeout=1e4,this.publish=async(i,s,n)=>{this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:i,message:s,opts:n}});try{let a=n?.ttl||dist_index_es_He,o=index_es_it(n),h=n?.prompt||!1,d=n?.tag||0,l={topic:i,message:s,opts:{ttl:a,relay:o,prompt:h,tag:d}},g=index_es_wn(s);this.queue.set(g,l);try{await await index_es_Xn(this.rpcPublish(i,s,a,o,h,d),this.publishTimeout),this.relayer.events.emit(dist_index_es_D.publish,l)}catch{this.logger.debug("Publishing Payload stalled"),this.relayer.events.emit(dist_index_es_D.connection_stalled);return}this.onPublish(g,l),this.logger.debug("Successfully Published Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:i,message:s,opts:n}})}catch(a1){throw this.logger.debug("Failed to Publish Payload"),this.logger.error(a1),a1}},this.on=(i,s)=>{this.events.on(i,s)},this.once=(i,s)=>{this.events.once(i,s)},this.off=(i,s)=>{this.events.off(i,s)},this.removeListener=(i,s)=>{this.events.removeListener(i,s)},this.relayer=e,this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name),this.registerEventListeners()}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}rpcPublish(e,t,i,s,n,a){var o,h,d,l;let g={method:index_es_ct(s.protocol).publish,params:{topic:e,message:t,ttl:i,prompt:n,tag:a}};return index_es_S(null==(o=g.params)?void 0:o.prompt)&&(null==(h=g.params)||delete h.prompt),index_es_S(null==(d=g.params)?void 0:d.tag)&&(null==(l=g.params)||delete l.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:g}),this.relayer.request(g)}onPublish(e,t){this.queue.delete(e)}checkQueue(){this.queue.forEach(async e=>{let{topic:t,message:i,opts:s}=e;await this.publish(t,i,s)})}registerEventListeners(){this.relayer.core.heartbeat.on(heartbeat_dist_cjs.HEARTBEAT_EVENTS.pulse,()=>{this.checkQueue()})}}class Qs{constructor(){this.map=new Map,this.set=(e,t)=>{let i=this.get(e);this.exists(e,t)||this.map.set(e,[...i,t])},this.get=e=>this.map.get(e)||[],this.exists=(e,t)=>this.get(e).includes(t),this.delete=(e,t)=>
7{if(typeof t>"u"){this.map.delete(e);return}if(!this.map.has(e))return;let i=this.get(e);if(!this.exists(e,t))return;let s=i.filter(n=>n!==t);if(!s.length){this.map.delete(e);return}this.map.set(e,s)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var er=Object.defineProperty,tr=Object.defineProperties,ir=Object.getOwnPropertyDescriptors,dist_index_es_yt=Object.getOwnPropertySymbols,sr=Object.prototype.hasOwnProperty,rr=Object.prototype.propertyIsEnumerable,dist_index_es_bt=(r,e,t)=>e in r?er(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,index_es_$=(r,e)=>{for(var t in e||(e={}))sr.call(e,t)&&dist_index_es_bt(r,t,e[t]);if(dist_index_es_yt)for(var t of dist_index_es_yt(e))rr.call(e,t)&&dist_index_es_bt(r,t,e[t]);return r},index_es_ce=(r,e)=>tr(r,ir(e));class dist_index_es_mt extends index_es_x{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.subscriptions=new Map,this.topicMap=new Qs,this.events=new events.EventEmitter,this.name="subscription",this.version="0.3",this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel="pending_sub_watch_label",this.pollingInterval=20,this.storagePrefix=dist_index_es_T,this.subscribeTimeout=1e4,this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restart(),this.registerEventListeners(),this.onEnable(),this.clientId=await this.relayer.core.crypto.getClientId())},this.subscribe=async(i,s)=>{await this.restartToComplete(),this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:i,opts:s}});try{let n=index_es_it(s),a={topic:i,relay:n};this.pending.set(i,a);let o=await this.rpcSubscribe(i,n);return this.onSubscribe(o,a),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:i,opts:s}}),o}catch(n1){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(n1),n1}},this.unsubscribe=async(i,s)=>{await this.restartToComplete(),this.isInitialized(),"u">typeof s?.id?await this.unsubscribeById(i,s.id,s):await this.unsubscribeByTopic(i,s)},this.isSubscribed=async i=>!!this.topics.includes(i)||await new Promise((s,n)=>{let a=new cjs.Watch;a.start(this.pendingSubscriptionWatchLabel);let o=setInterval(()=>{!this.pending.has(i)&&this.topics.includes(i)&&(clearInterval(o),a.stop(this.pendingSubscriptionWatchLabel),s(!0)),a.elapsed(this.pendingSubscriptionWatchLabel)>=dist_index_es_at&&(clearInterval(o),a.stop(this.pendingSubscriptionWatchLabel),n(!1))},this.pollingInterval)}),this.on=(i,s)=>{this.events.on(i,s)},this.once=(i,s)=>{this.events.once(i,s)},this.off=(i,s)=>{this.events.off(i,s)},this.removeListener=(i,s)=>{this.events.removeListener(i,s)},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name),this.clientId=""}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+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}hasSubscription(e,t){let i=!1;try{i=this.getSubscription(e).topic===t}catch{}return i}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){let 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{let s=index_es_it(i);await this.rpcUnsubscribe(e,t,s);let n=index_es_R("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(s1){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(s1),s1}}async rpcSubscribe(e,t){let i={method:index_es_ct(t.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i});try{await await index_es_Xn(this.relayer.request(i),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(dist_index_es_D.connection_stalled)}return index_es_wn(e+this.clientId)}async rpcBatchSubscribe(e){if(!e.length)return;let t=e[0].relay,i={method:index_es_ct(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{return await await index_es_Xn(this.relayer.request(i),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Payload stalled"),this.relayer.events.emit(dist_index_es_D.connection_stalled)}}rpcUnsubscribe(e,t,i){let s={method:index_es_ct(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,index_es_ce(index_es_$({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(t=>{this.setSubscription(t.id,index_es_$({},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)}
7async 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.subscriptions.has(e)||(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,index_es_$({},t)),this.topicMap.set(t.topic,e),this.events.emit(index_es_I.created,t)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});let t=this.subscriptions.get(e);if(!t){let{message:i}=index_es_N("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(i)}return t}deleteSubscription(e,t){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:t});let i=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(i.topic,e),this.events.emit(index_es_I.deleted,index_es_ce(index_es_$({},i),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(index_es_I.sync)}async reset(){if(!this.cached.length)return;let e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let t=0;t<e;t++){let i=this.cached.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(i)}this.events.emit(index_es_I.resubscribed)}async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size){let{message:t}=index_es_N("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(t),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),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(e1){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e1)}}async batchSubscribe(e){if(!e.length)return;let t=await this.rpcBatchSubscribe(e);dist_index_es_C(t)&&this.onBatchSubscribe(t.map((i,s)=>index_es_ce(index_es_$({},e[s]),{id:i})))}async onConnect(){this.restartInProgress||(await this.restart(),this.onEnable())}onDisconnect(){this.onDisable()}async checkPending(){if(this.relayer.transportExplicitlyClosed)return;let e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e)}registerEventListeners(){this.relayer.core.heartbeat.on(heartbeat_dist_cjs.HEARTBEAT_EVENTS.pulse,async()=>{await this.checkPending()}),this.relayer.on(dist_index_es_D.connect,async()=>{await this.onConnect()}),this.relayer.on(dist_index_es_D.disconnect,()=>{this.onDisconnect()}),this.events.on(index_es_I.created,async e=>{let t=index_es_I.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()}),this.events.on(index_es_I.deleted,async e=>{let t=index_es_I.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}async restartToComplete(){this.restartInProgress&&await new Promise(e=>{let t=setInterval(()=>{this.restartInProgress||(clearInterval(t),e())},this.pollingInterval)})}}var nr=Object.defineProperty,dist_index_es_Et=Object.getOwnPropertySymbols,ar=Object.prototype.hasOwnProperty,or=Object.prototype.propertyIsEnumerable,dist_index_es_ft=(r,e,t)=>e in r?nr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,hr=(r,e)=>{for(var t in e||(e={}))ar.call(e,t)&&dist_index_es_ft(r,t,e[t]);if(dist_index_es_Et)for(var t of dist_index_es_Et(e))or.call(e,t)&&dist_index_es_ft(r,t,e[t]);return r};class dist_index_es_wt extends g{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new events.EventEmitter,this.name="relayer",this.transportExplicitlyClosed=!1,this.initialized=!1,this.reconnecting=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=["socket hang up","socket stalled"],this.request=async t=>{this.logger.debug("Publishing Request Payload");try{return await this.toEstablishConnection(),await this.provider.request(t)}catch(i){throw this.logger.debug("Failed to Publish Request"),this.logger.error(i),i}},this.core=e.core,this.logger="u">typeof e.logger&&"string"!=typeof e.logger?(0,logger_dist_cjs.generateChildLogger)(e.logger,this.name):browser_default()((0,logger_dist_cjs.getDefaultLoggerOptions)({level:e.logger||"error"})),this.messages=new dist_index_es_Dt(this.logger,e.core),this.subscriber=new dist_index_es_mt(this,this.logger),this.publisher=new Zs(this,this.logger),this.relayUrl=e?.relayUrl||dist_index_es_he,this.projectId=e.projectId,this.provider={}}
7async init(){this.logger.trace("Initialized"),await this.createProvider(),await Promise.all([this.messages.init(),this.transportOpen(),this.subscriber.init()]),this.registerEventListeners(),this.initialized=!0}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}get connected(){return this.provider.connection.connected}get connecting(){return this.provider.connection.connecting}async publish(e,t,i){this.isInitialized(),await this.publisher.publish(e,t,i),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now()})}async subscribe(e,t){this.isInitialized();let i="";return await Promise.all([new Promise(s=>{this.subscriber.once(index_es_I.created,n=>{n.topic===e&&s()})}),new Promise(async s=>{i=await this.subscriber.subscribe(e,t),s()})]),i}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 transportClose(){this.transportExplicitlyClosed=!0,this.connected&&(await this.provider.disconnect(),this.events.emit(dist_index_es_D.transport_closed))}async transportOpen(e){if(!this.reconnecting){this.relayUrl=e||this.relayUrl,this.transportExplicitlyClosed=!1,this.reconnecting=!0;try{await Promise.all([new Promise(t=>{this.initialized||t(),this.subscriber.once(index_es_I.resubscribed,()=>{t()})}),await Promise.race([new Promise(async(t,i)=>{await index_es_Xn(this.provider.connect(),5e3,"socket stalled").cat
7ch(s=>i(s)).then(()=>t()).finally(()=>this.removeListener(dist_index_es_D.transport_closed,this.rejectTransportOpen))}),new Promise(t=>this.once(dist_index_es_D.transport_closed,this.rejectTransportOpen))])])}catch(t){if(this.logger.error(t),!this.isConnectionStalled(t.message))throw t;this.events.emit(dist_index_es_D.transport_closed)}finally{this.reconnecting=!1}}}async restartTransport(e){this.transportExplicitlyClosed||(this.relayUrl=e||this.relayUrl,await this.transportClose(),await this.createProvider(),await this.transportOpen())}isConnectionStalled(e){return this.staleConnectionErrors.some(t=>e.includes(t))}rejectTransportOpen(){throw Error("closeTransport called before connection was established")}async createProvider(){let e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new JsonRpcProvider(new ws(function({protocol:e,version:n,relayUrl:t,sdkVersion:r,auth:o,projectId:s,useOnCloseEvent:c}){var e1;let t1;let d=t.split("?"),l=function(e,n,t){let r=function(){let e=(0,es.qY)();if(null===e)return"unknown";let n=e.os?e.os.replace(" ","").toLowerCase():"unknown";return"browser"===e.type?[n,e.name,e.version].join("-"):[n,e.version].join("-")}(),o=function(){var e;let n=!(0,dist_cjs.getDocument)()&&(0,dist_cjs.getNavigator)()&&"ReactNative"===navigator.product?index_es_.reactNative:index_es_X()?index_es_.node:!index_es_X()&&(0,dist_cjs.getNavigator)()?index_es_.browser:index_es_.unknown;return n===index_es_.browser?[n,(null==(e=(0,dist_cjs.getLocation)())?void 0:e.host)||"unknown"].join(":"):n}();return[[e,n].join("-"),["js",t].join("-"),r,o].join("/")}(e,n,r),u=(e1=d[1]||"",t1=index_es_Ae(index_es_Ae({},t1=node_modules_query_string.parse(e1)),{auth:o,ua:l,projectId:s,useOnCloseEvent:c||void 0}),e1=node_modules_query_string.stringify(t1));return d[0]+"?"+u}({sdkVersion:"2.6.0",protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0}))),this.registerProviderListeners()}async recordMessageEvent(e){let{topic:t,message:i}=e;await this.messages.set(t,i)}async shouldIgnoreMessageEvent(e){let{topic:t,message:i}=e;return!await this.subscriber.isSubscribed(t)||this.messages.has(t,i)}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),(0,jsonrpc_utils_dist_esm.isJsonRpcRequest)(e)){if(!e.method.endsWith("_subscription"))return;let t=e.params,{topic:i,message:s,publishedAt:n}=t.data,a={topic:i,message:s,publishedAt:n};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(hr({type:"event",event:t.id},a)),this.events.emit(t.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(this.events.emit(dist_index_es_D.message,e),await this.recordMessageEvent(e))}async acknowledgePayload(e){let t=(0,jsonrpc_utils_dist_esm.formatJsonRpcResult)(e.id,!0);await this.provider.connection.send(t)}registerProviderListeners(){this.provider.on(dist_index_es_M.payload,e=>this.onProviderPayload(e)),this.provider.on(dist_index_es_M.connect,()=>{this.events.emit(dist_index_es_D.connect)}),this.provider.on(dist_index_es_M.disconnect,()=>{this.onProviderDisconnect()}),this.provider.on(dist_index_es_M.error,e=>{this.logger.error(e),this.events.emit(dist_index_es_D.error,e)})}registerEventListeners(){this.events.on(dist_index_es_D.connection_stalled,async()=>{await this.restartTransport()})}onProviderDisconnect(){this.events.emit(dist_index_es_D.disconnect),this.attemptToReconnect()}attemptToReconnect(){this.transportExplicitlyClosed||setTimeout(async()=>{await this.restartTransport()},(0,cjs.toMiliseconds)(dist_index_es_tt))}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}async toEstablishConnection(){if(!this.connected){if(this.connecting)return await new Promise(e=>{let t=setInterval(()=>{this.connected&&(clearInterval(t),e())},this.connectionStatusPollingInterval)});await this.restartTransport()}}}var cr=Object.defineProperty,dist_index_es_vt=Object.getOwnPropertySymbols,ur=Object.prototype.hasOwnProperty,lr=Object.prototype.propertyIsEnumerable,dist_index_es_It=(r,e,t)=>e in r?cr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,dist_index_es_Ct=(r,e)=>{for(var t in e||(e={}))ur.call(e,t)&&dist_index_es_It(r,t,e[t]);if(dist_index_es_vt)for(var t of dist_index_es_vt(e))lr.call(e,t)&&dist_index_es_It(r,t,e[t]);return r};class dist_index_es_t extends p{constructor(e,t,i,s=dist_index_es_T,n){super(e,t,i,s),this.core=e,this.logger=t,this.name=i,this.map=new Map,this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=dist_index_es_T,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(
7),this.cached.forEach(a=>{var n;this.getKey&&null!==a&&!index_es_S(a)?this.map.set(this.getKey(a),a):(null==(n=a?.proposer)?void 0:n.publicKey)?this.map.set(a.id,a):a?.topic&&this.map.set(a.topic,a)}),this.cached=[],this.initialized=!0)},this.set=async(a,o)=>{this.isInitialized(),this.map.has(a)?await this.update(a,o):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:a,value:o}),this.map.set(a,o),await this.persist())},this.get=a=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:a}),this.getData(a)),this.getAll=a=>(this.isInitialized(),a?this.values.filter(o=>Object.keys(a).every(h=>lodash_isequal_default()(o[h],a[h]))):this.values),this.update=async(a,o)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:a,update:o});let h=dist_index_es_Ct(dist_index_es_Ct({},this.getData(a)),o);this.map.set(a,h),await this.persist()},this.delete=async(a,o)=>{this.isInitialized(),this.map.has(a)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:a,reason:o}),this.map.delete(a),await this.persist())},this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name),this.storagePrefix=s,this.getKey=n}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){let t=this.map.get(e);if(!t){let{message:i}=index_es_N("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(i),Error(i)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{let e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){let{message:t}=index_es_N("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(t),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(e1){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e1)}}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}}class dist_index_es_Rt{constructor(e,t){this.core=e,this.logger=t,this.name="pairing",this.version="0.3",this.events=new(events_default()),this.initialized=!1,this.storagePrefix=dist_index_es_T,this.ignoredPayloadTypes=[1],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:i})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...i])]},this.create=async()=>{var e;this.isInitialized();let i=index_es_An(),s=await this.core.crypto.setSymKey(i),n=index_es_rt(cjs.FIVE_MINUTES),a={protocol:"irn"},h=(e={protocol:this.core.protocol,version:this.core.version,topic:s,symKey:i,relay:a},`${e.protocol}:${e.topic}@${e.version}?`+node_modules_query_string.stringify(index_es_lt({symKey:e.symKey},function(e,n="-"){let r={};return Object.keys(e).forEach(o=>{e[o]&&(r["relay"+n+o]=e[o])}),r}(e.relay))));return await this.pairings.set(s,{topic:s,expiry:n,relay:a,active:!1}),await this.core.relayer.subscribe(s),this.core.expirer.set(s,n),{topic:s,uri:h}},this.pair=async i=>{this.isInitialized(),this.isValidPair(i);let{topic:s,symKey:n,relay:a}=function(e){let n=e.indexOf(":"),t=-1!==e.indexOf("?")?e.indexOf("?"):void 0,r=e.substring(0,n),o=e.substring(n+1,t).split("@"),s="u">typeof t?e.substring(t):"",c=node_modules_query_string.parse(s);return{protocol:r,topic:o[0],version:parseInt(o[1],10),symKey:c.symKey,relay:function(e,n="-"){let t={},r="relay"+n;return Object.keys(e).forEach(o=>{if(o.startsWith(r)){let s=o.replace(r,""),c=e[o];t[s]=c}}),t}(c)}}(i.uri);if(this.pairings.keys.includes(s))throw Error(`Pairing already exists: ${s}`);if(this.core.crypto.hasKeys(s))throw Error(`Keychain already exists: ${s}`);let o=index_es_rt(cjs.FIVE_MINUTES),h={topic:s,relay:a,expiry:o,active:!1};return await this.pairings.set(s,h),await this.core.crypto.setSymKey(n,s),await this.core.relayer.subscribe(s,{relay:a}),this.core.expirer.set(s,o),i.activatePairing&&await this.activate({topic:s}),h},this.activate=async({topic:i})=>{this.isInitialized();let s=index_es_rt(cjs.THIRTY_DAYS);await this.pairings.update(i,{active:!0,expiry:s}),this.core.expirer.set(i,s)},this.ping=async i=>{this.isInitialized(),await this.isValidPing(i);let{topic:s}=i;
7if(this.pairings.keys.includes(s)){let n=await this.sendRequest(s,"wc_pairingPing",{}),{done:a,resolve:o,reject:h}=index_es_Zn();this.events.once(index_es_st("pairing_ping",n),({error:d})=>{d?h(d):o()}),await a()}},this.updateExpiry=async({topic:i,expiry:s})=>{this.isInitialized(),await this.pairings.update(i,{expiry:s})},this.updateMetadata=async({topic:i,metadata:s})=>{this.isInitialized(),await this.pairings.update(i,{peerMetadata:s})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async i=>{this.isInitialized(),await this.isValidDisconnect(i);let{topic:s}=i;this.pairings.keys.includes(s)&&(await this.sendRequest(s,"wc_pairingDelete",index_es_R("USER_DISCONNECTED")),await this.deletePairing(s))},this.sendRequest=async(i,s,n)=>{let a=(0,jsonrpc_utils_dist_esm.formatJsonRpcRequest)(s,n),o=await this.core.crypto.encode(i,a),h=dist_index_es_N[s].req;return this.core.history.set(i,a),await this.core.relayer.publish(i,o,h),a.id},this.sendResult=async(i,s,n)=>{let a=(0,jsonrpc_utils_dist_esm.formatJsonRpcResult)(i,n),o=await this.core.crypto.encode(s,a),h=await this.core.history.get(s,i),d=dist_index_es_N[h.request.method].res;await this.core.relayer.publish(s,o,d),await this.core.history.resolve(a)},this.sendError=async(i,s,n)=>{let a=(0,jsonrpc_utils_dist_esm.formatJsonRpcError)(i,n),o=await this.core.crypto.encode(s,a),h=await this.core.history.get(s,i),d=dist_index_es_N[h.request.method]?dist_index_es_N[h.request.method].res:dist_index_es_N.unregistered_method.res;await this.core.relayer.publish(s,o,d),await this.core.history.resolve(a)},this.deletePairing=async(i,s)=>{await this.core.relayer.unsubscribe(i),await Promise.all([this.pairings.delete(i,index_es_R("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(i),s?Promise.resolve():this.core.expirer.del(i)])},this.cleanup=async()=>{let i=this.pairings.getAll().filter(s=>index_es_ot(s.expiry));await Promise.all(i.map(s=>this.deletePairing(s.topic)))},this.onRelayEventRequest=i=>{let{topic:s,payload:n}=i,a=n.method;if(this.pairings.keys.includes(s))switch(a){case"wc_pairingPing":return this.onPairingPingRequest(s,n);case"wc_pairingDelete":return this.onPairingDeleteRequest(s,n);default:return this.onUnknownRpcMethodRequest(s,n)}},this.onRelayEventResponse=async i=>{let{topic:s,payload:n}=i,a=(await this.core.history.get(s,n.id)).request.method;if(this.pairings.keys.includes(s))return"wc_pairingPing"===a?this.onPairingPingResponse(s,n):this.onUnknownRpcMethodResponse(a)},this.onPairingPingRequest=async(i,s)=>{let{id:n}=s;try{this.isValidPing({topic:i}),await this.sendResult(n,i,!0),this.events.emit("pairing_ping",{id:n,topic:i})}catch(a){await this.sendError(n,i,a),this.logger.error(a)}},this.onPairingPingResponse=(i,s)=>{let{id:n}=s;setTimeout(()=>{(0,jsonrpc_utils_dist_esm.isJsonRpcResult)(s)?this.events.emit(index_es_st("pairing_ping",n),{}):(0,jsonrpc_utils_dist_esm.isJsonRpcError)(s)&&this.events.emit(index_es_st("pairing_ping",n),{error:s.error})},500)},this.onPairingDeleteRequest=async(i,s)=>{let{id:n}=s;try{this.isValidDisconnect({topic:i}),await this.deletePairing(i),this.events.emit("pairing_delete",{id:n,topic:i})}catch(a){await this.sendError(n,i,a),this.logger.error(a)}},this.onUnknownRpcMethodRequest=async(i,s)=>{let{id:n,method:a}=s;try{if(this.registeredMethods.includes(a))return;let o=index_es_R("WC_METHOD_UNSUPPORTED",a);await this.sendError(n,i,o),this.logger.error(o)}catch(o1){await this.sendError(n,i,o1),this.logger.error(o1)}},this.onUnknownRpcMethodResponse=i=>{this.registeredMethods.includes(i)||this.logger.error(index_es_R("WC_METHOD_UNSUPPORTED",i))},this.isValidPair=i=>{if(!index_es_Ct(i)){let{message:s}=index_es_N("MISSING_OR_INVALID",`pair() params: ${i}`);throw Error(s)}if(!function(e){if(dist_index_es_m(e,!1))try{return"u">typeof new URL(e)}catch{}return!1}(i.uri)){let{message:s1}=index_es_N("MISSING_OR_INVALID",`pair() uri: ${i.uri}`);throw Error(s1)}},this.isValidPing=async i=>{if(!index_es_Ct(i)){let{message:n}=index_es_N("MISSING_OR_INVALID",`ping() params: ${i}`);throw Error(n)}let{topic:s}=i;await this.isValidPairingTopic(s)},this.isValidDisconnect=async i=>{if(!index_es_Ct(i)){let{message:n}=index_es_N("MISSING_OR_INVALID",`disconnect() params: ${i}`);throw Error(n)}let{topic:s}=i;await this.isValidPairingTopic(s)},this.isValidPairingTopic=async i=>{if(!dist_index_es_m(i,!1)){let{message:s}=index_es_N("MISSING_OR_INVALID",`pairing topic should be a string: ${i}`);throw Error(s)}if(!this.pairings.keys.includes(i)){let{message:s1}=index_es_N("NO_MATCHING_KEY",`pairing topic doesn't exist: ${i}`);throw Error(s1)}if(index_es_ot(this.pairings.get(i).expiry)){await this.deletePairing(i);let{message:s2}=index_es_N("EXPIRED",`pairing topic: ${i}`);throw Error(s2)}},this.core=e,this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name),this.pairings=new dist_index_es_t(this.core,this.logger,this.name,this.storagePrefix)}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(dist_index_es_D.message,async e=>{let{topic:t,message:i}=e;if(this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(i)))return;let s=await this.core.crypto.decode(t,i);(0,jsonrpc_utils_dist_esm.isJsonRpcRequest)(s)?(this.core.history.set(t,s),this.onRelayEventRequest({topic:t,payload:s})):(0,jsonrpc_utils_dist_esm.isJsonRpcResponse)(s)&&(await this.core.history.resolve(s),this.onRelayEventResponse({topic:t,payload:s}))})}registerExpirerEvents(){this.core.expirer.on(core_dist_index_es_m.expired,async e=>{let{topic:t}=index_es_tt(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit("pairing_expire",{topic:t}))})}}class dist_index_es_St extends index_es_h{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.records=new Map,this.events=new events.EventEmitter,this.name="history",this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=dist_index_es_T,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(
7),this.cached.forEach(i=>this.records.set(i.id,i)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},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;let a={id:s.id,topic:i,request:{method:s.method,params:s.params||null},chainId:n};this.records.set(a.id,a),this.events.emit(core_dist_index_es_C.created,a)},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;let s=await this.getRecord(i.id);typeof s.response>"u"&&(s.response=(0,jsonrpc_utils_dist_esm.isJsonRpcError)(i)?{error:i.error}:{result:i.result},this.records.set(s.id,s),this.events.emit(core_dist_index_es_C.updated,s))},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)),this.delete=(i,s)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:s}),this.values.forEach(n=>{n.topic!==i||"u">typeof s&&n.id!==s||(this.records.delete(n.id),this.events.emit(core_dist_index_es_C.deleted,n))})},this.exists=async(i,s)=>(this.isInitialized(),!!this.records.has(s)&&(await this.getRecord(s)).topic===i),this.on=(i,s)=>{this.events.on(i,s)},this.once=(i,s)=>{this.events.once(i,s)},this.off=(i,s)=>{this.events.off(i,s)},this.removeListener=(i,s)=>{this.events.removeListener(i,s)},this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name)}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+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(){let e=[];return this.values.forEach(t=>{if("u">typeof t.response)return;let i={topic:t.topic,request:(0,jsonrpc_utils_dist_esm.formatJsonRpcRequest)(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();let t=this.records.get(e);if(!t){let{message:i}=index_es_N("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(i)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(core_dist_index_es_C.sync)}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){let{message:t}=index_es_N("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(t),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(e1){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e1)}}registerEventListeners(){this.events.on(core_dist_index_es_C.created,e=>{let t=core_dist_index_es_C.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()}),this.events.on(core_dist_index_es_C.updated,e=>{let t=core_dist_index_es_C.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()}),this.events.on(core_dist_index_es_C.deleted,e=>{let t=core_dist_index_es_C.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}}class dist_index_es_Pt extends index_es_E{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.expirations=new Map,this.events=new events.EventEmitter,this.name="expirer",this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=dist_index_es_T,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(
7),this.cached.forEach(i=>this.expirations.set(i.target,i)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=i=>{try{let s=this.formatTarget(i);return"u">typeof this.getExpiration(s)}catch{return!1}},this.set=(i,s)=>{this.isInitialized();let n=this.formatTarget(i),a={target:n,expiry:s};this.expirations.set(n,a),this.checkExpiry(n,a),this.events.emit(core_dist_index_es_m.created,{target:n,expiration:a})},this.get=i=>{this.isInitialized();let s=this.formatTarget(i);return this.getExpiration(s)},this.del=i=>{if(this.isInitialized(),this.has(i)){let s=this.formatTarget(i),n=this.getExpiration(s);this.expirations.delete(s),this.events.emit(core_dist_index_es_m.deleted,{target:s,expiration:n})}},this.on=(i,s)=>{this.events.on(i,s)},this.once=(i,s)=>{this.events.once(i,s)},this.off=(i,s)=>{this.events.off(i,s)},this.removeListener=(i,s)=>{this.events.removeListener(i,s)},this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name)}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+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("string"==typeof e)return index_es_ne("topic",e);if("number"==typeof e)return index_es_ne("id",e);let{message:t}=index_es_N("UNKNOWN_TYPE",`Target type: ${typeof e}`);throw 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(core_dist_index_es_m.sync)}async restore(){try{let e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){let{message:t}=index_es_N("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(t),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(e1){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e1)}}getExpiration(e){let t=this.expirations.get(e);if(!t){let{message:i}=index_es_N("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(i),Error(i)}return t}checkExpiry(e,t){let{expiry:i}=t;(0,cjs.toMiliseconds)(i)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(core_dist_index_es_m.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(heartbeat_dist_cjs.HEARTBEAT_EVENTS.pulse,()=>this.checkExpirations()),this.events.on(core_dist_index_es_m.created,e=>{let t=core_dist_index_es_m.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}),this.events.on(core_dist_index_es_m.expired,e=>{let t=core_dist_index_es_m.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}),this.events.on(core_dist_index_es_m.deleted,e=>{let t=core_dist_index_es_m.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=index_es_N("NOT_INITIALIZED",this.name);throw Error(e)}}}var dr=Object.defineProperty,dist_index_es_Tt=Object.getOwnPropertySymbols,gr=Object.prototype.hasOwnProperty,pr=Object.prototype.propertyIsEnumerable,dist_index_es_xt=(r,e,t)=>e in r?dr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,dist_index_es_Ot=(r,e)=>{for(var t in e||(e={}))gr.call(e,t)&&dist_index_es_xt(r,t,e[t]);if(dist_index_es_Tt)for(var t of dist_index_es_Tt(e))pr.call(e,t)&&dist_index_es_xt(r,t,e[t]);return r};class dist_index_es_Y extends n{constructor(e){super(e),this.protocol="wc",this.version=2,this.name=dist_index_es_G,this.events=new events.EventEmitter,this.initialized=!1,this.on=(i,s)=>this.events.on(i,s),this.once=(i,s)=>this.events.once(i,s),this.off=(i,s)=>this.events.off(i,s),this.removeListener=(i,s)=>this.events.removeListener(i,s),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||dist_index_es_he;let t="u">typeof e?.logger&&"string"!=typeof e?.logger?e.logger:browser_default()((0,logger_dist_cjs.getDefaultLoggerOptions)({level:e?.logger||dist_index_es_ke.logger}));this.logger=(0,logger_dist_cjs.generateChildLogger)(t,this.name),this.heartbeat=new heartbeat_dist_cjs.HeartBeat,this.crypto=new dist_index_es_pt(this,this.logger,e?.keychain),this.history=new dist_index_es_St(this,this.logger),this.expirer=new dist_index_es_Pt(this,this.logger),this.storage=null!=e&&e.storage?e.storage:new cjs_browser.ZP(dist_index_es_Ot(dist_index_es_Ot({},dist_index_es_Be),e?.storageOptions)),this.relayer=new dist_index_es_wt({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new dist_index_es_Rt(this,this.logger)}static async init(e){let t=new dist_index_es_Y(e);return await t.initialize(),t}get context(){return(0,logger_dist_cjs.getLoggerContext)(this.logger)}async start(){this.initialized||await this.initialize()}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(
7),await this.pairing.init(),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}}}let dist_index_es_J="client",sign_client_dist_index_es_C=`wc@2:${dist_index_es_J}:`,sign_client_dist_index_es_G={name:dist_index_es_J,logger:"error",controller:!1,relayUrl:"wss://relay.walletconnect.com"},sign_client_dist_index_es_se="Proposal expired",sign_client_dist_index_es_b=cjs.SEVEN_DAYS,dist_index_es_V={wc_sessionPropose:{req:{ttl:cjs.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:cjs.FIVE_MINUTES,prompt:!1,tag:1101}},wc_sessionSettle:{req:{ttl:cjs.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:cjs.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:cjs.ONE_DAY,prompt:!1,tag:1104},res:{ttl:cjs.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:cjs.ONE_DAY,prompt:!1,tag:1106},res:{ttl:cjs.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:cjs.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:cjs.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:cjs.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:cjs.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:cjs.ONE_DAY,prompt:!1,tag:1112},res:{ttl:cjs.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:cjs.THIRTY_SECONDS,prompt:!1,tag:1114},res:{ttl:cjs.THIRTY_SECONDS,prompt:!1,tag:1115}}},dist_index_es_$={min:cjs.FIVE_MINUTES,max:cjs.SEVEN_DAYS};var sign_client_dist_index_es_Je=Object.defineProperty,sign_client_dist_index_es_He=Object.defineProperties,sign_client_dist_index_es_Fe=Object.getOwnPropertyDescriptors,sign_client_dist_index_es_oe=Object.getOwnPropertySymbols,sign_client_dist_index_es_Qe=Object.prototype.hasOwnProperty,sign_client_dist_index_es_Be=Object.prototype.propertyIsEnumerable,sign_client_dist_index_es_re=(d,n,e)=>n in d?sign_client_dist_index_es_Je(d,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[n]=e,index_es_u=(d,n)=>{for(var e in n||(n={}))sign_client_dist_index_es_Qe.call(n,e)&&sign_client_dist_index_es_re(d,e,n[e]);if(sign_client_dist_index_es_oe)for(var e of sign_client_dist_index_es_oe(n))sign_client_dist_index_es_Be.call(n,e)&&sign_client_dist_index_es_re(d,e,n[e]);return d},dist_index_es_H=(d,n)=>sign_client_dist_index_es_He(d,sign_client_dist_index_es_Fe(n));class sign_client_dist_index_es_We extends index_es_C{constructor(n){super(n),this.name="engine",this.events=new(events_default()),this.initialized=!1,this.ignoredPayloadTypes=[1],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.client.core.pairing.register({methods:Object.keys(dist_index_es_V)}),this.initialized=!0)},this.connect=async e=>{this.isInitialized();let s=dist_index_es_H(index_es_u({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(s);let{pairingTopic:t,requiredNamespaces:i,optionalNamespaces:o,sessionProperties:a,relays:r}=s,p=t,h,E=!1;if(p&&(E=this.client.core.pairing.pairings.get(p).active),!p||!E){let{topic:I,uri:g}=await this.client.core.pairing.create();p=I,h=g}let m=await this.client.core.crypto.generateKeyPair(),P=index_es_u({requiredNamespaces:i,optionalNamespaces:o,relays:r??[{protocol:"irn"}],proposer:{publicKey:m,metadata:this.client.metadata}},a&&{sessionProperties:a}),{reject:y,resolve:T,done:U}=index_es_Zn(cjs.FIVE_MINUTES,sign_client_dist_index_es_se);if(this.events.once(index_es_st("session_connect"),async({error:I,session:g})=>{if(I)y(I);else if(g){g.self.publicKey=m;let x=dist_index_es_H(index_es_u({},g),{requiredNamespaces:g.requiredNamespaces,optionalNamespaces:g.optionalNamespaces});await this.client.session.set(g.topic,x),await this.setExpiry(g.topic,g.expiry),p&&await this.client.core.pairing.updateMetadata({topic:p,metadata:g.peer.metadata}),T(x)}}),!p){let{message:I1}=index_es_N("NO_MATCHING_KEY",`connect() pairing topic: ${p}`);throw Error(I1)}let L=await this.sendRequest(p,"wc_sessionPropose",P),K=index_es_rt(cjs.FIVE_MINUTES);return await this.setProposal(L,index_es_u({id:L,expiry:K},P)),{uri:h,approval:U}},this.pair=async e=>(this.isInitialized(),await this.client.core.pairing.pair(e)),this.approve=async e=>{this.isInitialized(),await this.isValidApprove(e);let{id:s,relayProtocol:t,namespaces:i,sessionProperties:o}=e,a=this.client.proposal.get(s),{pairingTopic:r,proposer:p,requiredNamespaces:h,optionalNamespaces:E}=a;r=r||"",dist_index_es_x(h)||(h=function(e,n){let t=index_es_on(e,n);if(t)throw Error(t.message);let r={};for(let[o,s]of Object.entries(e))r[o]={methods:s.methods,events:s.events,chains:s.accounts.map(c=>`${c.split(":")[0]}:${c.split(":")[1]}`)};return r}(i,"approve()"));let m=await this.client.core.crypto.generateKeyPair(),P=p.publicKey,y=await this.client.core.crypto.generateSharedKey(m,P);r&&s&&(await this.client.core.pairing.updateMetadata({topic:r,metadata:p.metadata}),await this.sendResult(s,r,{relay:{protocol:t??"irn"},responderPublicKey:m}),await this.client.proposal.delete(s,index_es_R("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:r}));let T=index_es_u({relay:{protocol:t??"irn"},namespaces:i,requiredNamespaces:h,optionalNamespaces:E,pairingTopic:r,controller:{publicKey:m,metadata:this.client.metadata},expiry:index_es_rt(sign_client_dist_index_es_b)},o&&{sessionProperties:o});await this.client.core.relayer.subscribe(y);
7let U=await this.sendRequest(y,"wc_sessionSettle",T),{done:L,resolve:K,reject:I}=index_es_Zn();this.events.once(index_es_st("session_approve",U),({error:x})=>{x?I(x):K(this.client.session.get(y))});let g=dist_index_es_H(index_es_u({},T),{topic:y,pairingTopic:r,acknowledged:!1,self:T.controller,peer:{publicKey:p.publicKey,metadata:p.metadata},controller:m});return await this.client.session.set(y,g),await this.setExpiry(y,index_es_rt(sign_client_dist_index_es_b)),{topic:y,acknowledged:L}},this.reject=async e=>{this.isInitialized(),await this.isValidReject(e);let{id:s,reason:t}=e,{pairingTopic:i}=this.client.proposal.get(s);i&&(await this.sendError(s,i,t),await this.client.proposal.delete(s,index_es_R("USER_DISCONNECTED")))},this.update=async e=>{this.isInitialized(),await this.isValidUpdate(e);let{topic:s,namespaces:t}=e,i=await this.sendRequest(s,"wc_sessionUpdate",{namespaces:t}),{done:o,resolve:a,reject:r}=index_es_Zn();return this.events.once(index_es_st("session_update",i),({error:p})=>{p?r(p):a()}),await this.client.session.update(s,{namespaces:t}),{acknowledged:o}},this.extend=async e=>{this.isInitialized(),await this.isValidExtend(e);let{topic:s}=e,t=await this.sendRequest(s,"wc_sessionExtend",{}),{done:i,resolve:o,reject:a}=index_es_Zn();return this.events.once(index_es_st("session_extend",t),({error:r})=>{r?a(r):o()}),await this.setExpiry(s,index_es_rt(sign_client_dist_index_es_b)),{acknowledged:i}},this.request=async e=>{this.isInitialized(),await this.isValidRequest(e);let{chainId:s,request:t,topic:i,expiry:o}=e,a=await this.sendRequest(i,"wc_sessionRequest",{request:t,chainId:s},o),{done:r,resolve:p,reject:h}=index_es_Zn(o);return this.events.once(index_es_st("session_request",a),({error:E,result:m})=>{E?h(E):p(m)}),this.client.events.emit("session_request_sent",{topic:i,request:t,chainId:s,id:a}),await r()},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);let{topic:s,response:t}=e,{id:i}=t;(0,jsonrpc_utils_dist_esm.isJsonRpcResult)(t)?await this.sendResult(i,s,t.result):(0,jsonrpc_utils_dist_esm.isJsonRpcError)(t)&&await this.sendError(i,s,t.error),this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0})},this.ping=async e=>{this.isInitialized(),await this.isValidPing(e);let{topic:s}=e;if(this.client.session.keys.includes(s)){let t=await this.sendRequest(s,"wc_sessionPing",{}),{done:i,resolve:o,reject:a}=index_es_Zn();this.events.once(index_es_st("session_ping",t),({error:r})=>{r?a(r):o()}),await i()}else this.client.core.pairing.pairings.keys.includes(s)&&await this.client.core.pairing.ping({topic:s})},this.emit=async e=>{this.isInitialized(),await this.isValidEmit(e);let{topic:s,event:t,chainId:i}=e;await this.sendRequest(s,"wc_sessionEvent",{event:t,chainId:i})},this.disconnect=async e=>{this.isInitialized(),await this.isValidDisconnect(e);let{topic:s}=e;this.client.session.keys.includes(s)?(await this.sendRequest(s,"wc_sessionDelete",index_es_R("USER_DISCONNECTED")),await this.deleteSession(s)):await this.client.core.pairing.disconnect({topic:s})},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter(s=>(function(e,n){let{requiredNamespaces:t}=n,r=Object.keys(e.namespaces),o=Object.keys(t),s=!0;return!!dist_index_es_b(o,r)&&(r.forEach(c=>{let{accounts:d,methods:l,events:i}=e.namespaces[c],u=index_es_T(d),a=t[c];dist_index_es_b(index_es_V(c,a),u)&&dist_index_es_b(a.methods,l)&&dist_index_es_b(a.events,i)||(s=!1)}),s)})(s,e))),this.getPendingSessionRequests=()=>(this.isInitialized(),this.client.pendingRequest.getAll()),this.deleteSession=async(e,s)=>{let{self:t}=this.client.session.get(e);await this.client.core.relayer.unsubscribe(e),await Promise.all([this.client.session.delete(e,index_es_R("USER_DISCONNECTED")),this.client.core.crypto.deleteKeyPair(t.publicKey),this.client.core.crypto.deleteSymKey(e),s?Promise.resolve():this.client.core.expirer.del(e)])},this.deleteProposal=async(e,s)=>{await Promise.all([this.client.proposal.delete(e,index_es_R("USER_DISCONNECTED")),s?Promise.resolve():this.client.core.expirer.del(e)])},this.deletePendingSessionRequest=async(e,s,t=!1)=>
7{await Promise.all([this.client.pendingRequest.delete(e,s),t?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,s)=>{this.client.session.keys.includes(e)&&await this.client.session.update(e,{expiry:s}),this.client.core.expirer.set(e,s)},this.setProposal=async(e,s)=>{await this.client.proposal.set(e,s),this.client.core.expirer.set(e,s.expiry)},this.setPendingSessionRequest=async e=>{let s=dist_index_es_V.wc_sessionRequest.req.ttl,{id:t,topic:i,params:o}=e;await this.client.pendingRequest.set(t,{id:t,topic:i,params:o}),s&&this.client.core.expirer.set(t,index_es_rt(s))},this.sendRequest=async(e,s,t,i)=>{let o=(0,jsonrpc_utils_dist_esm.formatJsonRpcRequest)(s,t),a=await this.client.core.crypto.encode(e,o),r=dist_index_es_V[s].req;return i&&(r.ttl=i),this.client.core.history.set(e,o),this.client.core.relayer.publish(e,a,r),o.id},this.sendResult=async(e,s,t)=>{let i=(0,jsonrpc_utils_dist_esm.formatJsonRpcResult)(e,t),o=await this.client.core.crypto.encode(s,i),a=await this.client.core.history.get(s,e),r=dist_index_es_V[a.request.method].res;this.client.core.relayer.publish(s,o,r),await this.client.core.history.resolve(i)},this.sendError=async(e,s,t)=>{let i=(0,jsonrpc_utils_dist_esm.formatJsonRpcError)(e,t),o=await this.client.core.crypto.encode(s,i),a=await this.client.core.history.get(s,e),r=dist_index_es_V[a.request.method].res;this.client.core.relayer.publish(s,o,r),await this.client.core.history.resolve(i)},this.cleanup=async()=>{let e=[],s=[];this.client.session.getAll().forEach(t=>{index_es_ot(t.expiry)&&e.push(t.topic)}),this.client.proposal.getAll().forEach(t=>{index_es_ot(t.expiry)&&s.push(t.id)}),await Promise.all([...e.map(t=>this.deleteSession(t)),...s.map(t=>this.deleteProposal(t))])},this.onRelayEventRequest=e=>{let{topic:s,payload:t}=e,i=t.method;switch(i){case"wc_sessionPropose":return this.onSessionProposeRequest
7(s,t);case"wc_sessionSettle":return this.onSessionSettleRequest(s,t);case"wc_sessionUpdate":return this.onSessionUpdateRequest(s,t);case"wc_sessionExtend":return this.onSessionExtendRequest(s,t);case"wc_sessionPing":return this.onSessionPingRequest(s,t);case"wc_sessionDelete":return this.onSessionDeleteRequest(s,t);case"wc_sessionRequest":return this.onSessionRequest(s,t);case"wc_sessionEvent":return this.onSessionEventRequest(s,t);default:return this.client.logger.info(`Unsupported request method ${i}`)}},this.onRelayEventResponse=async e=>{let{topic:s,payload:t}=e,i=(await this.client.core.history.get(s,t.id)).request.method;switch(i){case"wc_sessionPropose":return this.onSessionProposeResponse(s,t);case"wc_sessionSettle":return this.onSessionSettleResponse(s,t);case"wc_sessionUpdate":return this.onSessionUpdateResponse(s,t);case"wc_sessionExtend":return this.onSessionExtendResponse(s,t);case"wc_sessionPing":return this.onSessionPingResponse(s,t);case"wc_sessionRequest":return this.onSessionRequestResponse(s,t);default:return this.client.logger.info(`Unsupported response method ${i}`)}},this.onSessionProposeRequest=async(e,s)=>{let{params:t,id:i}=s;try{this.isValidConnect(index_es_u({},s.params));let o=index_es_rt(cjs.FIVE_MINUTES),a=index_es_u({id:i,pairingTopic:e,expiry:o},t);await this.setProposal(i,a),this.client.events.emit("session_proposal",{id:i,params:a})}catch(o1){await this.sendError(i,e,o1),this.client.logger.error(o1)}},this.onSessionProposeResponse=async(e,s)=>{let{id:t}=s;if((0,jsonrpc_utils_dist_esm.isJsonRpcResult)(s)){let{result:i}=s;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:i});let o=this.client.proposal.get(t);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:o});let a=o.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:a});let r=i.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:r});let p=await this.client.core.crypto.generateSharedKey(a,r);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",sessionTopic:p});let h=await this.client.core.relayer.subscribe(p);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:h}),await this.client.core.pairing.activate({topic:e})}else(0,jsonrpc_utils_dist_esm.isJsonRpcError)(s)&&(await this.client.proposal.delete(t,index_es_R("USER_DISCONNECTED")),this.events.emit(index_es_st("session_connect"),{error:s.error}))},this.onSessionSettleRequest=async(e,s)=>{let{id:t,params:i}=s;try{this.isValidSessionSettleRequest(i);let{relay:o,controller:a,expiry:r,namespaces:p,requiredNamespaces:h,optionalNamespaces:E,sessionProperties:m,pairingTopic:P}=s.params,y=index_es_u({topic:e,relay:o,expiry:r,namespaces:p,acknowledged:!0,pairingTopic:P,requiredNamespaces:h,optionalNamespaces:E,controller:a.publicKey,self:{publicKey:"",metadata:this.client.metadata},peer:{publicKey:a.publicKey,metadata:a.metadata}},m&&{sessionProperties:m});await this.sendResult(s.id,e,!0),this.events.emit(index_es_st("session_connect"),{session:y})}catch(o1){await this.sendError(t,e,o1),this.client.logger.error(o1)}},this.onSessionSettleResponse=async(e,s)=>{let{id:t}=s;(0,jsonrpc_utils_dist_esm.isJsonRpcResult)(s)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(index_es_st("session_approve",t),{})):(0,jsonrpc_utils_dist_esm.isJsonRpcError)(s)&&(await this.client.session.delete(e,index_es_R("USER_DISCONNECTED")),this.events.emit(index_es_st("session_approve",t),{error:s.error}))},this.onSessionUpdateRequest=async(e,s)=>{let{params:t,id:i}=s;try{this.isValidUpdate(index_es_u({topic:e},t)),await this.client.session.update(e,{namespaces:t.namespaces}),await this.sendResult(i,e,!0),this.client.events.emit("session_update",{id:i,topic:e,params:t})}catch(o){await this.sendError(i,e,o),this.client.logger.error(o)}},this.onSessionUpdateResponse=(e,s)=>{let{id:t}=s;(0,jsonrpc_utils_dist_esm.isJsonRpcResult)(s)?this.events.emit(index_es_st("session_update",t),{}):(0,jsonrpc_utils_dist_esm.isJsonRpcError)(s)&&this.events.emit(index_es_st("session_update",t),{error:s.error})},this.onSessionExtendRequest=async(e,s)=>{let{id:t}=s;try{this.isValidExtend({topic:e}),await this.setExpiry(e,index_es_rt(sign_client_dist_index_es_b)),await this.sendResult(t,e,!0),this.client.events.emit("session_extend",{id:t,topic:e})}catch(i){await this.sendError(t,e,i),this.client.logger.error(i)}},this.onSessionExtendResponse=(e,s)=>{let{id:t}=s;(0,jsonrpc_utils_dist_esm.isJsonRpcResult)(s)?this.events.emit(index_es_st("session_extend",t),{}):(0,jsonrpc_utils_dist_esm.isJsonRpcError)(s)&&this.events.emit(index_es_st("session_extend",t),{error:s.error})},this.onSessionPingRequest=async(e,s)=>{let{id:t}=s;try{this.isValidPing({topic:e}),await this.sendResult(t,e,!0),this.client.events.emit("session_ping",{id:t,topic:e})}catch(i){await this.sendError(t,e,i),this.client.logger.error(i)}},this.onSessionPingResponse=(e,s)=>{let{id:t}=s;setTimeout(()=>{(0,jsonrpc_utils_dist_esm.isJsonRpcResult)(s)?this.events.emit(index_es_st("session_ping",t),{}):(0,jsonrpc_utils_dist_esm.isJsonRpcError)(s)&&this.events.emit(index_es_st("session_ping",t),{error:s.error})},500)},this.onSessionDeleteRequest=async(e,s)=>{let{id:t}=s;try{this.isValidDisconnect({topic:e,reason:s.params}),this.client.core.relayer.once(dist_index_es_D.publish,async()=>{await this.deleteSession(e)}),await this.sendResult(t,e,!0),this.client.events.emit("session_delete",{id:t,topic:e})}catch(i){await this.sendError(t,e,i),this.client.logger.error(i)}},this.onSessionRequest=async(e,s)=>{let{id:t,params:i}=s;try{this.isValidRequest(index_es_u({topic:e},i)),await this.setPendingSessionRequest({id:t,topic:e,params:i}),this.client.events.emit("session_request",{id:t,topic:e,params:i})}catch(o){await this.sendError(t,e,o),this.client.logger.error(o)}},this.onSessionRequestResponse=(e,s)=>{let{id:t}=s;(0,jsonrpc_utils_dist_esm.isJsonRpcResult)(s)?this.events.emit(index_es_st("session_request",t),{result:s.result}):(0,jsonrpc_utils_dist_esm.isJsonRpcError)(s)&&this.events.emit(index_es_st("session_request",t),{error:s.error})},this.onSessionEventRequest=async(e,s)=>{let{id:t,params:i}=s;try{this.isValidEmit(index_es_u({topic:e},i)),this.client.events.emit("session_event",{id:t,topic:e,params:i})}catch(o){await this.sendError(t,e,o),this.client.logger.error(o)}},this.isValidConnect=async e=>{let t;if(!index_es_Ct(e)){let{message:r}=index_es_N("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw Error(r)}let{pairingTopic:s,requiredNamespaces:t1,optionalNamespaces:i,sessionProperties:o,relays:a}=e;if(index_es_S(s)||await this.isValidPairingTopic(s),t=!1,a?a&&dist_index_es_C(a)&&a.length&&a.forEach(r=>{t=index_es_sn(r)}):t=!0,!t){let{message:r1}=index_es_N("MISSING_OR_INVALID",`connect() relays: ${a}`);throw Error(r1)}
7index_es_S(t1)||0===dist_index_es_x(t1)||this.validateNamespaces(t1,"requiredNamespaces"),index_es_S(i)||0===dist_index_es_x(i)||this.validateNamespaces(i,"optionalNamespaces"),index_es_S(o)||this.validateSessionProps(o,"sessionProperties")},this.validateNamespaces=(e,s)=>{let t=function(e,n,t){let r=null;if(e&&dist_index_es_x(e)){let t1;let o=index_es_se(e,n);o&&(r=o);let s=(t1=null,Object.entries(e).forEach(([r,o])=>{var n1,t;let r1;if(t1)return;let s=(n1=index_es_V(r,o),t=`${n} requiredNamespace`,r1=null,dist_index_es_C(n1)?n1.forEach(o=>{!r1&&(index_es_H(o)&&o.includes(r)||(r1=index_es_R("UNSUPPORTED_CHAINS",`${t}, chain ${o} should be a string and conform to "namespace:chainId" format`)))}):r1=index_es_R("UNSUPPORTED_CHAINS",`${t}, chains ${n1} should be an array of strings conforming to "namespace:chainId" format`),r1);s&&(t1=s)}),t1);s&&(r=s)}else r=index_es_N("MISSING_OR_INVALID",`${n}, ${t} should be an object with data`);return r}(e,"connect()",s);if(t)throw Error(t.message)},this.isValidApprove=async e=>{if(!index_es_Ct(e))throw Error(index_es_N("MISSING_OR_INVALID",`approve() params: ${e}`).message);let{id:s,namespaces:t,relayProtocol:i,sessionProperties:o}=e;await this.isValidProposalId(s);let a=this.client.proposal.get(s),r=index_es_on(t,"approve()");if(r)throw Error(r.message);let p=index_es_cn(a.requiredNamespaces,t,"approve()");if(p)throw Error(p.message);if(!dist_index_es_m(i,!0)){let{message:h}=index_es_N("MISSING_OR_INVALID",`approve() relayProtocol: ${i}`);throw Error(h)}index_es_S(o)||this.validateSessionProps(o,"sessionProperties")},this.isValidReject=async e=>{if(!index_es_Ct(e)){let{message:i}=index_es_N("MISSING_OR_INVALID",`reject() params: ${e}`);throw Error(i)}let{id:s,reason:t}=e;if(await this.isValidProposalId(s),!t||"object"!=typeof t||!t.code||!index_es_F(t.code,!1)||!t.message||!dist_index_es_m(t.message,!1)){let{message:i1}=index_es_N("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(t)}`);throw Error(i1)}},this.isValidSessionSettleRequest=e=>{let t;if(!index_es_Ct(e)){let{message:p}=index_es_N("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw Error(p)}let{relay:s,controller:t1,namespaces:i,expiry:o}=e;if(!index_es_sn(s)){let{message:p1}=index_es_N("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw Error(p1)}let a=(t=null,dist_index_es_m(t1?.publicKey,!1)||(t=index_es_N("MISSING_OR_INVALID","onSessionSettleRequest() controller public key should be a string")),t);if(a)throw Error(a.message);let r=index_es_on(i,"onSessionSettleRequest()");if(r)throw Error(r.message);if(index_es_ot(o)){let{message:p2}=index_es_N("EXPIRED","onSessionSettleRequest()");throw Error(p2)}},this.isValidUpdate=async e=>{if(!index_es_Ct(e)){let{message:r}=index_es_N("MISSING_OR_INVALID",`update() params: ${e}`);throw Error(r)}let{topic:s,namespaces:t}=e;await this.isValidSessionTopic(s);let i=this.client.session.get(s),o=index_es_on(t,"update()");if(o)throw Error(o.message);let a=index_es_cn(i.requiredNamespaces,t,"update()");if(a)throw Error(a.message)},this.isValidExtend=async e=>{if(!index_es_Ct(e)){let{message:t}=index_es_N("MISSING_OR_INVALID",`extend() params: ${e}`);throw Error(t)}let{topic:s}=e;await this.isValidSessionTopic(s)},this.isValidRequest=async e=>{var t;if(!index_es_Ct(e)){let{message:r}=index_es_N("MISSING_OR_INVALID",`request() params: ${e}`);throw Error(r)}let{topic:s,request:t1,chainId:i,expiry:o}=e;await this.isValidSessionTopic(s);let{namespaces:a}=this.client.session.get(s);if(!index_es_Kt(a,i)){let{message:r1}=index_es_N("MISSING_OR_INVALID",`request() chainId: ${i}`);throw Error(r1)}if(index_es_S(t1)||!dist_index_es_m(t1.method,!1)){let{message:r2}=index_es_N("MISSING_OR_INVALID",`request() ${JSON.stringify(t1)}`);throw Error(r2)}if(!(dist_index_es_m(t=t1.method,!1)&&(function(e,n){let t=[];return Object.values(e).forEach(r=>
7{index_es_T(r.accounts).includes(n)&&t.push(...r.methods)}),t})(a,i).includes(t))){let{message:r3}=index_es_N("MISSING_OR_INVALID",`request() method: ${t1.method}`);throw Error(r3)}if(o&&(!index_es_F(o,!1)||!(o<=dist_index_es_$.max)||!(o>=dist_index_es_$.min))){let{message:r4}=index_es_N("MISSING_OR_INVALID",`request() expiry: ${o}. Expiry must be a number (in seconds) between ${dist_index_es_$.min} and ${dist_index_es_$.max}`);throw Error(r4)}},this.isValidRespond=async e=>{if(!index_es_Ct(e)){let{message:i}=index_es_N("MISSING_OR_INVALID",`respond() params: ${e}`);throw Error(i)}let{topic:s,response:t}=e;if(await this.isValidSessionTopic(s),index_es_S(t)||index_es_S(t.result)&&index_es_S(t.error)||!index_es_F(t.id,!1)||!dist_index_es_m(t.jsonrpc,!1)){let{message:i1}=index_es_N("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(t)}`);throw Error(i1)}},this.isValidPing=async e=>{if(!index_es_Ct(e)){let{message:t}=index_es_N("MISSING_OR_INVALID",`ping() params: ${e}`);throw Error(t)}let{topic:s}=e;await this.isValidSessionOrPairingTopic(s)},this.isValidEmit=async e=>{var t;if(!index_es_Ct(e)){let{message:a}=index_es_N("MISSING_OR_INVALID",`emit() params: ${e}`);throw Error(a)}let{topic:s,event:t1,chainId:i}=e;await this.isValidSessionTopic(s);let{namespaces:o}=this.client.session.get(s);if(!index_es_Kt(o,i)){let{message:a1}=index_es_N("MISSING_OR_INVALID",`emit() chainId: ${i}`);throw Error(a1)}if(index_es_S(t1)||!dist_index_es_m(t1.name,!1)){let{message:a2}=index_es_N("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(t1)}`);throw Error(a2)}if(!(dist_index_es_m(t=t1.name,!1)&&(function(e,n){let t=[];return Object.values(e).forEach(r=>
7{index_es_T(r.accounts).includes(n)&&t.push(...r.events)}),t})(o,i).includes(t))){let{message:a3}=index_es_N("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(t1)}`);throw Error(a3)}},this.isValidDisconnect=async e=>{if(!index_es_Ct(e)){let{message:t}=index_es_N("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw Error(t)}let{topic:s}=e;await this.isValidSessionOrPairingTopic(s)},this.validateSessionProps=(e,s)=>{Object.values(e).forEach(t=>{if(!dist_index_es_m(t,!1)){let{message:i}=index_es_N("MISSING_OR_INVALID",`${s} must be in Record<string, string> format. Received: ${JSON.stringify(t)}`);throw Error(i)}})}}isInitialized(){if(!this.initialized){let{message:n}=index_es_N("NOT_INITIALIZED",this.name);throw Error(n)}}registerRelayerEvents(){this.client.core.relayer.on(dist_index_es_D.message,async n=>{let{topic:e,message:s}=n;if(this.ignoredPayloadTypes.includes(this.client.core.crypto.getPayloadType(s)))return;let t=await this.client.core.crypto.decode(e,s);(0,jsonrpc_utils_dist_esm.isJsonRpcRequest)(t)?(this.client.core.history.set(e,t),this.onRelayEventRequest({topic:e,payload:t})):(0,jsonrpc_utils_dist_esm.isJsonRpcResponse)(t)&&(await this.client.core.history.resolve(t),this.onRelayEventResponse({topic:e,payload:t}))})}registerExpirerEvents(){this.client.core.expirer.on(core_dist_index_es_m.expired,async n=>{let{topic:e,id:s}=index_es_tt(n.target);if(s&&this.client.pendingRequest.keys.includes(s))return await this.deletePendingSessionRequest(s,index_es_N("EXPIRED"),!0);e?this.client.session.keys.includes(e)&&(await this.deleteSession(e,!0),this.client.events.emit("session_expire",{topic:e})):s&&(await this.deleteProposal(s,!0),this.client.events.emit("proposal_expire",{id:s}))})}isValidPairingTopic(n){if(!dist_index_es_m(n,!1)){let{message:e}=index_es_N("MISSING_OR_INVALID",`pairing topic should be a string: ${n}`);throw Error(e)}if(!this.client.core.pairing.pairings.keys.includes(n)){let{message:e1}=index_es_N("NO_MATCHING_KEY",`pairing topic doesn't exist: ${n}`);throw Error(e1)}if(index_es_ot(this.client.core.pairing.pairings.get(n).expiry)){let{message:e2}=index_es_N("EXPIRED",`pairing topic: ${n}`);throw Error(e2)}}async isValidSessionTopic(n){if(!dist_index_es_m(n,!1)){let{message:e}=index_es_N("MISSING_OR_INVALID",`session topic should be a string: ${n}`);throw Error(e)}if(!this.client.session.keys.includes(n)){let{message:e1}=index_es_N("NO_MATCHING_KEY",`session topic doesn't exist: ${n}`);throw Error(e1)}if(index_es_ot(this.client.session.get(n).expiry)){await this.deleteSession(n);let{message:e2}=index_es_N("EXPIRED",`session topic: ${n}`);throw Error(e2)}}async isValidSessionOrPairingTopic(n){if(this.client.session.keys.includes(n))await this.isValidSessionTopic(n);else if(this.client.core.pairing.pairings.keys.includes(n))this.isValidPairingTopic(n);else if(dist_index_es_m(n,!1)){let{message:e}=index_es_N("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${n}`);throw Error(e)}else{let{message:e1}=index_es_N("MISSING_OR_INVALID",`session or pairing topic should be a string: ${n}`);throw Error(e1)}}async isValidProposalId(n){if("number"!=typeof n){let{message:e}=index_es_N("MISSING_OR_INVALID",`proposal id should be a number: ${n}`);throw Error(e)}if(!this.client.proposal.keys.includes(n)){let{message:e1}=index_es_N("NO_MATCHING_KEY",`proposal id doesn't exist: ${n}`);throw Error(e1)}if(index_es_ot(this.client.proposal.get(n).expiry)){await this.deleteProposal(n);let{message:e2}=index_es_N("EXPIRED",`proposal id: ${n}`);throw Error(e2)}}}class sign_client_dist_index_es_Ze extends dist_index_es_t{constructor(n,e){super(n,e,"proposal",sign_client_dist_index_es_C),this.core=n,this.logger=e}}class dist_index_es_es extends dist_index_es_t{constructor(n,e){super(n,e,"session",sign_client_dist_index_es_C),this.core=n,this.logger=e}}class index_es_ss extends dist_index_es_t{constructor(n,e){super(n,e,"request",sign_client_dist_index_es_C,s=>s.id),this.core=n,this.logger=e}}class sign_client_dist_index_es_M extends y{constructor(n){super(n),this.protocol="wc",this.version=2,this.name=sign_client_dist_index_es_G.name,this.events=new events.EventEmitter,this.on=(s,t)=>this.events.on(s,t),this.once=(s,t)=>this.events.once(s,t),this.off=(s,t)=>this.events.off(s,t),this.removeListener=(s,t)=>this.events.removeListener(s,t),this.removeAllListeners=s=>this.events.removeAllListeners(s),this.connect=async s=>{try{return await this.engine.connect(s)}catch(t){throw this.logger.error(t.message),t}},this.pair=async s=>{try{return await this.engine.pair(s)}catch(t){throw this.logger.error(t.message),t}},this.approve=async s=>{try{return await this.engine.approve(s)}catch(t){throw this.logger.error(t.message),t}},this.reject=async s=>{try{return await this.engine.reject(s)}catch(t){throw this.logger.error(t.message),t}},this.update=async s=>{try{return await this.engine.update(s)}catch(t){throw this.logger.error(t.message),t}},this.extend=async s=>{try{return await this.engine.extend(s)}catch(t){throw this.logger.error(t.message),t}},this.request=async s=>{try{return await this.engine.request(s)}catch(t){throw this.logger.error(t.message),t}},this.respond=async s=>{try{return await this.engine.respond(s)}catch(t){throw this.logger.error(t.message),t}},this.ping=async s=>{try{return await this.engine.ping(s)}catch(t){throw this.logger.error(t.message),t}},this.emit=async s=>{try{return await this.engine.emit(s)}catch(t){throw this.logger.error(t.message),t}},this.disconnect=async s=>{try{return await this.engine.disconnect(s)}catch(t){throw this.logger.error(t.message),t}},this.find=s=>{try{return this.engine.find(s)}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(s){throw this.logger.error(s.message),s}},this.name=n?.name||sign_client_dist_index_es_G.name,this.metadata=n?.metadata||(0,window_metadata_dist_cjs.D)()||{name:"",description:"",url:"",icons:[""]};let e="u">typeof n?.logger&&"string"!=typeof n?.logger?n.logger:browser_default()((0,logger_dist_cjs.getDefaultLoggerOptions)({level:n?.logger||sign_client_dist_index_es_G.logger}));this.core=n?.core||new dist_index_es_Y(n),this.logger=(0,logger_dist_cjs.generateChildLogger)(e,this.name),this.session=new dist_index_es_es(this.core,this.logger),this.proposal=new sign_client_dist_index_es_Ze(this.core,this.logger),this.pendingRequest=new index_es_ss(this.core,this.logger),this.engine=new sign_client_dist_index_es_We(this)}static async init(n){let e=new sign_client_dist_index_es_M(n);return await e.initialize(),e}get context(){return(0,logger_dist_cjs.getLoggerContext)(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.engine.init(),this.logger.info("SignClient Initialization Success")}catch(n){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(n.message),n}}}__webpack_require__(94543),__webpack_require__(34155),Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;let utils_dist_index_es_St={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}};function dist_index_es_R(e,n){let{message:t,code:r}=utils_dist_index_es_St[e];return{message:n?`${t} ${n}`:t,code:r}}var _walletconnect_jsonrpc_provider_dist_esm=__webpack_require__(46160),jsonrpc_http_connection_dist_esm=__webpack_require__(96641);let dist_index_es_I="error",dist_index_es_E="wc@2:universal_provider:",o={DEFAULT_CHAIN_CHANGED:"default_chain_changed"};var universal_provider_dist_index_es_J=Object.defineProperty,universal_provider_dist_index_es_$=Object.getOwnPropertySymbols,universal_provider_dist_index_es_V=Object.prototype.hasOwnProperty,universal_provider_dist_index_es_W=Object.prototype.propertyIsEnumerable,universal_provider_dist_index_es_H=(i,e,t)=>e in i?universal_provider_dist_index_es_J(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,universal_provider_dist_index_es_f=(i,e)=>{for(var t in e||(e={}))universal_provider_dist_index_es_V.call(e,t)&&universal_provider_dist_index_es_H(i,t,e[t]);if(universal_provider_dist_index_es_$)for(var t of universal_provider_dist_index_es_$(e))universal_provider_dist_index_es_W.call(e,t)&&universal_provider_dist_index_es_H(i,t,e[t]);return i};function index_es_a(i,e,t){let s;let n=index_es_g(i);return e.rpcMap&&(s=e.rpcMap[n]),s||(s=`https://rpc.walletconnect.com/v1?chainId=eip155:${n}&projectId=${t}`),s}function index_es_g(i){return i.includes("eip155")?Number(i.split(":")[1]):Number(i)}function A(i){var e,t,s,n;let r={};if(!(Object.getPrototypeOf(i)===Object.prototype&&Object.keys(i).length))return r;for(let[v,l]of Object.entries(i)){let q=index_es_y(v)?[v]:l.chains,S=l.methods||[],D=l.events||[],p=universal_provider_dist_index_es_N(v);r[p]={chains:P(q,null==(e=r[p])?void 0:e.chains),methods:P(S,null==(t=r[p]
7)?void 0:t.methods),events:P(D,null==(s=r[p])?void 0:s.events),rpcMap:universal_provider_dist_index_es_f(universal_provider_dist_index_es_f({},null==(n=r[p])?void 0:n.rpcMap),l.rpcMap)}}return r}function index_es_y(i){return i.includes(":")}function universal_provider_dist_index_es_N(i){return index_es_y(i)?i.split(":")[0]:i}function P(i=[],e=[]){return[...new Set([...i,...e])]}let dist_index_es_h=(i,e)=>{let t=s=>{s.request!==e.request||s.topic!==e.topic||(i.events.removeListener("session_request_sent",t),function(i){if("u">typeof window)try{let e=window.localStorage.getItem("WALLETCONNECT_DEEPLINK_CHOICE");if(e){let t=JSON.parse(e),s=t?.href;if("string"==typeof s){s.endsWith("/")&&s.slice(0,-1);let n=`${s}/wc?requestId=${i.id}&sessionTopic=${i.topic}`;window.open(n,"_self","noreferrer noopener")}}}catch(e1){console.error(e1)}}(e))};i.on("session_request_sent",t)};class universal_provider_dist_index_es_Z{constructor(e){this.name="eip155",this.namespace=e.namespace,this.client=e.client,this.events=e.events,this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){var t;switch(e.request.method){case"eth_requestAccounts":case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return this.handleSwitchChain(e.request.params?null==(t=e.request.params[0])?void 0:t.chainId:"0x0"),null;case"eth_chainId":return parseInt(this.getDefaultChain())}return this.namespace.methods.includes(e.request.method)?(dist_index_es_h(this.client,e),await this.client.request(e)):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,t){let s=index_es_g(e);if(!this.httpProviders[s]){let n=t||index_es_a(`${this.name}:${s}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${s}`);this.setHttpProvider(s,n)}this.chainId=s,this.events.emit(o.DEFAULT_CHAIN_CHANGED,`${this.name}:${s}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}createHttpProvider(e,t){let s=t||index_es_a(`${this.name}:${e}`,this.namespace,this.client.core.projectId);return typeof s>"u"?void 0:new _walletconnect_jsonrpc_provider_dist_esm.r(new jsonrpc_http_connection_dist_esm.k(s))}setHttpProvider(e,t){let s=this.createHttpProvider(e,t);s&&(this.httpProviders[e]=s)}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var s;let n=index_es_g(t);e[n]=this.createHttpProvider(n,null==(s=this.namespace.rpcMap)?void 0:s[t])}),e}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}getHttpProvider(){let e=this.chainId,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}handleSwitchChain(e){let t=parseInt(e,16),s=`${this.name}:${t}`;(function(i,e){if(!e.includes(i))throw Error(`Chain '${i}' not approved. Please use one of the following: ${e.toString()}`)})(s,this.namespace.chains),this.setDefaultChain(`${t}`)}}class universal_provider_dist_index_es_ee{constructor(e){this.name="solana",this.namespace=e.namespace,this.events=e.events,this.client=e.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)?(dist_index_es_h(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){let s=t||index_es_a(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!s)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,s)}this.chainId=e,this.events.emit(o.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var s;e[t]=this.createHttpProvider(t,null==(s=this.namespace.rpcMap)?void 0:s[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let s=this.createHttpProvider(e,t);s&&(this.httpProviders[e]=s)}createHttpProvider(e,t){let s=t||index_es_a(e,this.namespace,this.client.core.projectId);return typeof s>"u"?void 0:new _walletconnect_jsonrpc_provider_dist_esm.r(new jsonrpc_http_connection_dist_esm.Z(s))}}class universal_provider_dist_index_es_te{constructor(e){this.name="cosmos",this.namespace=e.namespace,this.events=e.events,this.client=e.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;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?(dist_index_es_h(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let s=t||index_es_a(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!s)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,s)}this.events.emit(o.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var s;e[t]=this.createHttpProvider(t,null==(s=this.namespace.rpcMap)?void 0:s[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let s=this.createHttpProvider(e,t);s&&(this.httpProviders[e]=s)}createHttpProvider(e,t){let s=t||index_es_a(e,this.namespace,this.client.core.projectId);return typeof s>"u"?void 0:new _walletconnect_jsonrpc_provider_dist_esm.r(new jsonrpc_http_connection_dist_esm.Z(s))}}class universal_provider_dist_index_es_se{constructor(e){this.name="cip34",this.namespace=e.namespace,this.events=e.events,this.client=e.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;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?(dist_index_es_h(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let s=t||this.getCardanoRPCUrl(e);if(!s)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,s)}this.events.emit(o.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let s=this.getCardanoRPCUrl(t);e[t]=this.createHttpProvider(t,s)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}getCardanoRPCUrl(e){let t=this.namespace.rpcMap;if(t)return t[e]}setHttpProvider(e,t){let s=this.createHttpProvider(e,t);s&&(this.httpProviders[e]=s)}createHttpProvider(e,t){let s=t||this.getCardanoRPCUrl(e);return typeof s>"u"?void 0:new _walletconnect_jsonrpc_provider_dist_esm.r(new jsonrpc_http_connection_dist_esm.Z(s))}}class dist_index_es_ie{constructor(e){this.name="elrond",this.namespace=e.namespace,this.events=e.events,this.client=e.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)?(dist_index_es_h(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){let s=t||index_es_a(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!s)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,s)}this.chainId=e,this.events.emit(o.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var s;e[t]=this.createHttpProvider(t,null==(s=this.namespace.rpcMap)?void 0:s[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let s=this.createHttpProvider(e,t);s&&(this.httpProviders[e]=s)}createHttpProvider(e,t){let s=t||index_es_a(e,this.namespace,this.client.core.projectId);return typeof s>"u"?void 0:new _walletconnect_jsonrpc_provider_dist_esm.r(new jsonrpc_http_connection_dist_esm.Z(s))}}class universal_provider_dist_index_es_ne{constructor(e){this.name="multiversx",this.namespace=e.namespace,this.events=e.events,this.client=e.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)?(dist_index_es_h(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){let s=t||index_es_a(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!s)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,s)}this.chainId=e,this.events.emit(o.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var s;e[t]=this.createHttpProvider(t,null==(s=this.namespace.rpcMap)?void 0:s[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let s=this.createHttpProvider(e,t);s&&(this.httpProviders[e]=s)}createHttpProvider(e,t){let s=t||index_es_a(e,this.namespace,this.client.core.projectId);return typeof s>"u"?void 0:new _walletconnect_jsonrpc_provider_dist_esm.r(new jsonrpc_http_connection_dist_esm.Z(s))}}var universal_provider_dist_index_es_re=Object.defineProperty,dist_index_es_ae=Object.defineProperties,universal_provider_dist_index_es_oe=Object.getOwnPropertyDescriptors,universal_provider_dist_index_es_O=Object.getOwnPropertySymbols,dist_index_es_ce=Object.prototype.hasOwnProperty,universal_provider_dist_index_es_he=Object.prototype.propertyIsEnumerable,universal_provider_dist_index_es_b=(i,e,t)=>e in i?universal_provider_dist_index_es_re(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,dist_index_es_u=(i,e)=>{for(var t in e||(e={}))dist_index_es_ce.call(e,t)&&universal_provider_dist_index_es_b(i,t,e[t]);if(universal_provider_dist_index_es_O)for(var t of universal_provider_dist_index_es_O(e))universal_provider_dist_index_es_he.call(e,t)&&universal_provider_dist_index_es_b(i,t,e[t]);return i},w=(i,e)=>dist_index_es_ae(i,universal_provider_dist_index_es_oe(e));class universal_provider_dist_index_es_m{constructor(e){this.events=new(events_default()),this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.providerOpts=e,this.logger="u">typeof e?.logger&&"string"!=typeof e?.logger?e.logger:browser_default()((0,logger_dist_cjs.getDefaultLoggerOptions)({level:e?.logger||dist_index_es_I}))}static async init(e){let t=new universal_provider_dist_index_es_m(e);return await t.initialize(),t}async request(e,t){let[s,n]=this.validateChain(t);if(!this.session)throw Error("Please call connect() before request()");return await this.getProvider(s).request({request:dist_index_es_u({},e),chainId:`${s}:${n}`,topic:this.session.topic})}sendAsync(e,t,s){this.request(e,s).then(n=>
7t(null,n)).catch(n=>t(n,void 0))}async enable(){if(!this.client)throw Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var e;if(!this.session)throw Error("Please call connect() before enable()");await this.client.disconnect({topic:null==(e=this.session)?void 0:e.topic,reason:dist_index_es_R("USER_DISCONNECTED")}),await this.cleanup()}async connect(e){if(!this.client)throw Error("Sign Client not initialized");if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}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){this.shouldAbortPairingAttempt=!1;let t=0;do{if(this.shouldAbortPairingAttempt)throw Error("Pairing aborted");if(t>=this.maxPairingAttempts)throw Error("Max auto pairing attempts reached");let{uri:s,approval:n}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});s&&(this.uri=s,this.events.emit("display_uri",s)),await n().then(r=>{this.session=r}).catch(r=>{if(r.message!==sign_client_dist_index_es_se)throw r;t++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(e,t){try{let[s,n]=this.validateChain(e);this.getProvider(s).setDefaultChain(n,t)}catch(s1){if(!/Please call connect/.test(s1.message))throw s1}}async cleanupPendingPairings(e={}){var n;this.logger.info("Cleaning up inactive pairings...");let t=this.client.pairing.getAll();if(Array.isArray(t)&&(!("u">typeof n)||!t.length||t.every(n))){for(let s of t)e.deletePairings?this.client.core.expirer.set(s.topic,0):await this.client.core.relayer.subscriber.unsubscribe(s.topic);this.logger.info(`Inactive pairings cleared: ${t.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore("namespaces")||{},this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.client.session.length){let e=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[e]),this.createProviders()}}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await sign_client_dist_index_es_M.init({logger:this.providerOpts.logger||dist_index_es_I,relayUrl:this.providerOpts.relayUrl||"wss://relay.walletconnect.com",projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,name:this.providerOpts.name}),this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw Error("Sign Client not initialized");if(!this.session)throw Error("Session not initialized. Please call connect() before enable()");[...new Set(Object.keys(this.session.namespaces).map(e=>universal_provider_dist_index_es_N(e)))].forEach(e=>{if(!this.session)return;let t=function(i,e){let t=Object.keys(e.namespaces).filter(n=>n.includes(i));if(!t.length)return[];let s=[];return t.forEach(n=>{let r=e.namespaces[n].accounts;s.push(...r)}),s}(e,this.session),s=t.map(e=>`${e.split(":")[0]}:${e.split(":")[1]}`),n=function(i,e={}){let t=A(i),s=A(e);return universal_provider_dist_index_es_f({},Object.assign(t,s))}(this.namespaces,this.optionalNamespaces),r=w(dist_index_es_u({},n[e]),{accounts:t,chains:s});switch(e){case"eip155":this.rpcProviders[e]=new universal_provider_dist_index_es_Z({client:this.client,namespace:r,events:this.events});break;case"solana":this.rpcProviders[e]=new universal_provider_dist_index_es_ee({client:this.client,namespace:r,events:this.events});break;case"cosmos":this.rpcProviders[e]=new universal_provider_dist_index_es_te({client:this.client,namespace:r,events:this.events});break;case"polkadot":break;case"cip34":this.rpcProviders[e]=new universal_provider_dist_index_es_se({client:this.client,namespace:r,events:this.events});break;case"elrond":this.rpcProviders[e]=new dist_index_es_ie({client:this.client,namespace:r,events:this.events});break;case"multiversx":this.rpcProviders[e]=new universal_provider_dist_index_es_ne({client:this.client,namespace:r,events:this.events})}})}registerEventListeners(){if(typeof this.client>"u")throw Error("Sign Client is not initialized");this.client.on("session_ping",e=>{this.events.emit("session_ping",e)}),this.client.on("session_event",e=>{let{params:t}=e,{event:s}=t;"accountsChanged"===s.name?this.events.emit("accountsChanged",s.data):"chainChanged"===s.name?this.onChainChanged(t.chainId):this.events.emit(s.name,s.data),this.events.emit("session_event",e)}),this.client.on("session_update",({topic:e,params:t})=>{var s;let{namespaces:n}=t,r=null==(s=this.client)?void 0:s.session.get(e);this.session=w(dist_index_es_u({},r),{namespaces:n}),this.onSessionUpdate(),this.events.emit("session_update",{topic:e,params:t})}),this.client.on("session_delete",async e=>{await this.cleanup(),this.events.emit("session_delete",e),this.events.emit("disconnect",w(dist_index_es_u({},dist_index_es_R("USER_DISCONNECTED")),{data:e.topic}))}),this.on(o.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){if(!this.rpcProviders[e])throw Error(`Provider not found: ${e}`);return this.rpcProviders[e]}
7onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{var t;this.getProvider(e).updateNamespace(null==(t=this.session)?void 0:t.namespaces[e])})}setNamespaces(e){let{namespaces:t,optionalNamespaces:s,sessionProperties:n}=e;if(!t||!Object.keys(t).length)throw Error("Namespaces must be not empty");this.namespaces=t,this.optionalNamespaces=s,this.sessionProperties=n,this.persist("namespaces",t),this.persist("optionalNamespaces",s)}validateChain(e){let[t,s]=e?.split(":")||["",""];if(t&&!Object.keys(this.namespaces).includes(t))throw Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&s)return[t,s];let n=Object.keys(this.namespaces)[0],r=this.rpcProviders[n].getDefaultChain();return[n,r]}async requestAccounts(){let[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}onChainChanged(e,t=!1){let[s,n]=this.validateChain(e);t||this.getProvider(s).setDefaultChain(n),this.namespaces[s].defaultChain=n,this.persist("namespaces",this.namespaces),this.events.emit("chainChanged",n)}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0})}persist(e,t){this.client.core.storage.setItem(`${dist_index_es_E}/${e}`,t)}async getFromStore(e){return await this.client.core.storage.getItem(`${dist_index_es_E}/${e}`)}}let dist_index_es_p=["eth_sendTransaction","personal_sign"],ethereum_provider_dist_index_es_D=["eth_accounts","eth_requestAccounts","eth_call","eth_getBalance","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],ethereum_provider_dist_index_es_u=["chainChanged","accountsChanged"],ethereum_provider_dist_index_es_U=["message","disconnect","connect"];var ethereum_provider_dist_index_es_Q=Object.defineProperty,ethereum_provider_dist_index_es_L=Object.defineProperties,ethereum_provider_dist_index_es_H=Object.getOwnPropertyDescriptors,ethereum_provider_dist_index_es_=Object.getOwnPropertySymbols,ethereum_provider_dist_index_es_G=Object.prototype.hasOwnProperty,ethereum_provider_dist_index_es_K=Object.prototype.propertyIsEnumerable,dist_index_es_y=(a,t,s)=>t in a?ethereum_provider_dist_index_es_Q(a,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[t]=s,ethereum_provider_dist_index_es_I=(a,t)=>{for(var s in t||(t={}))ethereum_provider_dist_index_es_G.call(t,s)&&dist_index_es_y(a,s,t[s]);if(ethereum_provider_dist_index_es_)for(var s of ethereum_provider_dist_index_es_(t))ethereum_provider_dist_index_es_K.call(t,s)&&dist_index_es_y(a,s,t[s]);return a},ethereum_provider_dist_index_es_O=(a,t)=>ethereum_provider_dist_index_es_L(a,ethereum_provider_dist_index_es_H(t));function ethereum_provider_dist_index_es_C(a){return Number(a[0].split(":")[1])}function index_es_w(a){return`0x${a.toString(16)}`}class ethereum_provider_dist_index_es_m{constructor(){this.events=new events.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.STORAGE_KEY="wc@2:ethereum_provider:",this.on=(t,s)=>(this.events.on(t,s),this),this.once=(t,s)=>(this.events.once(t,s),this),this.removeListener=(t,s)=>(this.events.removeListener(t,s),this),this.off=(t,s)=>(this.events.off(t,s),this),this.parseAccount=t=>this.isCompatibleChainId(t)?this.parseAccountId(t).address:t,this.signer={},this.rpc={}}static async init(t){let s=new ethereum_provider_dist_index_es_m;return await s.initialize(t),s}async request(t){return await this.signer.request(t,this.formatChainId(this.chainId))}sendAsync(t,s){this.signer.sendAsync(t,s,this.formatChainId(this.chainId))}get connected(){return!!this.signer.client&&this.signer.client.core.relayer.connected}get connecting(){return!!this.signer.client&&this.signer.client.core.relayer.connecting}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(t){if(!this.signer.client)throw Error("Provider not initialized. Call init() first");this.loadConnectOpts(t);let{required:s,optional:i}=function(a){let{chains:t,optionalChains:s,methods:i,optionalMethods:e,events:n,optionalEvents:c,rpcMap:h}=a;if(!C(t))throw Error("Invalid chains");let r=i||dist_index_es_p,f=n||ethereum_provider_dist_index_es_u,M={[ethereum_provider_dist_index_es_C(t)]:h[ethereum_provider_dist_index_es_C(t)]},E={chains:t,methods:r,events:f,rpcMap:M},l=n?.filter(g=>!ethereum_provider_dist_index_es_u.includes(g)),d=i?.filter(g=>!dist_index_es_p.includes(g));if(!s&&!c&&!e&&!(null!=l&&l.length)&&!(null!=d&&d.length))return{required:E};let b=l?.length&&d?.length||!s,A={chains:[...new Set(b?t.concat(s||[]):s)],methods:[...new Set(r.concat(e||[]))],events:[...new Set(f.concat(c||[]))],rpcMap:h};return{required:E,optional:A}}(this.rpc);try{let e=await new Promise(async(c,h)=>{var o;this.rpc.showQrModal&&(null==(o=this.modal)||o.subscribeModal(r=>{r.open||this.signer.session||(this.signer.abortPairingAttempt(),h(Error("Connection request reset. Please try again.")))})),await this.signer.connect(ethereum_provider_dist_index_es_O(ethereum_provider_dist_index_es_I({namespaces:{[this.namespace]:s}},i&&{optionalNamespaces:{[this.namespace]:i}}),{pairingTopic:t?.pairingTopic})).then(r=>{c(r)}).catch(r=>{h(Error(r.message))})});if(!e)return;this.setChainIds(this.rpc.chains);let n=function(e,n=[]){let t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;let o=e[r];t.push(...o.accounts)}),t}(e.namespaces,[this.namespace]);this.setAccounts(n),this.events.emit("connect",{chainId:index_es_w(this.chainId)})}catch(e1){throw this.signer.logger.error(e1),e1}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}
7registerEventListeners(){this.signer.on("session_event",t=>{let{params:s}=t,{event:i}=s;"accountsChanged"===i.name?(this.accounts=this.parseAccounts(i.data),this.events.emit("accountsChanged",this.accounts)):"chainChanged"===i.name?this.setChainId(this.formatChainId(i.data)):this.events.emit(i.name,i.data),this.events.emit("session_event",t)}),this.signer.on("chainChanged",t=>{let s=parseInt(t);this.chainId=s,this.events.emit("chainChanged",index_es_w(this.chainId)),this.persist()}),this.signer.on("session_update",t=>{this.events.emit("session_update",t)}),this.signer.on("session_delete",t=>{this.reset(),this.events.emit("session_delete",t),this.events.emit("disconnect",ethereum_provider_dist_index_es_O(ethereum_provider_dist_index_es_I({},function(e,n){let{message:t,code:r}=St[e];return{message:n?`${t} ${n}`:t,code:r}}("USER_DISCONNECTED")),{data:t.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",t=>{var s,i;this.rpc.showQrModal&&(null==(s=this.modal)||s.closeModal(),null==(i=this.modal)||i.openModal({uri:t})),this.events.emit("display_uri",t)})}setHttpProvider(t){this.request({method:"wallet_switchEthereumChain",params:[{chainId:t.toString(16)}]})}isCompatibleChainId(t){return"string"==typeof t&&t.startsWith(`${this.namespace}:`)}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(":")[1])}setChainIds(t){let s=t.filter(i=>this.isCompatibleChainId(i)).map(i=>this.parseChainId(i));s.length&&(this.chainId=s[0],this.events.emit("chainChanged",index_es_w(this.chainId)),this.persist())}setChainId(t){if(this.isCompatibleChainId(t)){let s=this.parseChainId(t);this.chainId=s,this.setHttpProvider(s)}}parseAccountId(t){let[s,i,e]=t.split(":");return{chainId:`${s}:${i}`,address:e}}setAccounts(t){this.accounts=t.filter(s=>this.parseChainId(this.parseAccountId(s).chainId)===this.chainId).map(s=>this.parseAccountId(s).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(t){var s,i;return{chains:(null==(s=t.chains)?void 0:s.map(e=>this.formatChainId(e)))||[`${this.namespace}:1`],optionalChains:t.optionalChains?t.optionalChains.map(e=>this.formatChainId(e)):void 0,methods:t?.methods||dist_index_es_p,events:t?.events||ethereum_provider_dist_index_es_u,optionalMethods:t?.optionalMethods||[],optionalEvents:t?.optionalEvents||[],rpcMap:t?.rpcMap||this.buildRpcMap(t.chains.concat(t.optionalChains||[]),t.projectId),showQrModal:Boolean(t?.showQrModal),qrModalOptions:null!=(i=t?.qrModalOptions)?i:void 0,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,s){let i={};return t.forEach(e=>{i[e]=this.getRpcUrl(e,s)}),i}async initialize(t){if(this.rpc=this.getRpcConfig(t),this.chainId=ethereum_provider_dist_index_es_C(this.rpc.chains),this.signer=await universal_provider_dist_index_es_m.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal)try{let{Web3Modal:s}=await __webpack_require__.e(4599).then(__webpack_require__.bind(__webpack_require__,64599));this.modal=new s(ethereum_provider_dist_index_es_I({walletConnectVersion:2,projectId:this.rpc.projectId,standaloneChains:this.rpc.chains},this.rpc.qrModalOptions))}catch{throw Error("To use QR modal, please install @web3modal/standalone package")}}loadConnectOpts(t){if(!t)return;let{chains:s,optionalChains:i,rpcMap:e}=t;s&&C(s)&&(this.rpc.chains=s.map(n=>this.formatChainId(n)),s.forEach(n=>{this.rpc.rpcMap[n]=e?.[n]||this.getRpcUrl(n)})),i&&C(i)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=i?.map(n=>
7this.formatChainId(n)),i.forEach(n=>{this.rpc.rpcMap[n]=e?.[n]||this.getRpcUrl(n)}))}getRpcUrl(t,s){var i;return(null==(i=this.rpc.rpcMap)?void 0:i[t])||`https://rpc.walletconnect.com/v1/?chainId=eip155:${t}&projectId=${s||this.rpc.projectId}`}async loadPersistedSession(){if(!this.session)return;let t=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`);this.setChainIds(t?[this.formatChainId(t)]:this.session.namespaces[this.namespace].accounts),this.setAccounts(this.session.namespaces[this.namespace].accounts)}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(t){return"string"==typeof t||t instanceof String?[this.parseAccount(t)]:t.map(s=>this.parseAccount(s))}}let ethereum_provider_dist_index_es_Y=ethereum_provider_dist_index_es_m},69808:function(__unused_webpack_module,exports,__webpack_require__){let strictUriEncode=__webpack_require__(70610),decodeComponent=__webpack_require__(44020),splitOnFirst=__webpack_require__(80500),filterObject=__webpack_require__(92806),isNullOrUndefined=value=>null==value,encodeFragmentIdentifier=Symbol("encodeFragmentIdentifier");function validateArrayFormatSeparator(value){if("string"!=typeof value||1!==value.length)throw TypeError("arrayFormatSeparator must be single character string")}function encode(value,options){return options.encode?options.strict?strictUriEncode(value):encodeURIComponent(value):value}function decode(value,options){return options.decode?decodeComponent(value):value}function removeHash(input){let hashStart=input.indexOf("#");return -1!==hashStart&&(input=input.slice(0,hashStart)),input}
7function extract(input){input=removeHash(input);let queryStart=input.indexOf("?");return -1===queryStart?"":input.slice(queryStart+1)}function parseValue(value,options){return options.parseNumbers&&!Number.isNaN(Number(value))&&"string"==typeof value&&""!==value.trim()?value=Number(value):options.parseBooleans&&null!==value&&("true"===value.toLowerCase()||"false"===value.toLowerCase())&&(value="true"===value.toLowerCase()),value}function parse(query,options){validateArrayFormatSeparator((options=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},options)).arrayFormatSeparator);let formatter=function(options){let result;switch(options.arrayFormat){case"index":return(key,value,accumulator)=>{if(result=/\[(\d*)\]$/.exec(key),key=key.replace(/\[\d*\]$/,""),!result){accumulator[key]=value;return}void 0===accumulator[key]&&(accumulator[key]={}),accumulator[key][result[1]]=value};case"bracket":return(key,value,accumulator)=>{if(result=/(\[\])$/.exec(key),key=key.replace(/\[\]$/,""),!result){accumulator[key]=value;return}if(void 0===accumulator[key]){accumulator[key]=[value];return}accumulator[key]=[].concat(accumulator[key],value)};case"colon-list-separator":return(key,value,accumulator)=>{if(result=/(:list)$/.exec(key),key=key.replace(/:list$/,""),!result){accumulator[key]=value;return}if(void 0===accumulator[key]){accumulator[key]=[value];return}accumulator[key]=[].concat(accumulator[key],value)};case"comma":case"separator":return(key,value,accumulator)=>{let isArray="string"==typeof value&&value.includes(options.arrayFormatSeparator),isEncodedArray="string"==typeof value&&!isArray&&decode(value,options).includes(options.arrayFormatSeparator);value=isEncodedArray?decode(value,options):value;let newValue=isArray||isEncodedArray?value.split(options.arrayFormatSeparator).map(item=>decode(item,options)):null===value?value:decode(value,options);accumulator[key]=newValue};case"bracket-separator":return(key,value,accumulator)=>{let isArray=/(\[\])$/.test(key);if(key=key.replace(/\[\]$/,""),!isArray){accumulator[key]=value?decode(value,options):value;return}let arrayValue=null===value?[]:value.split(options.arrayFormatSeparator).map(item=>decode(item,options));if(void 0===accumulator[key]){accumulator[key]=arrayValue;return}accumulator[key]=[].concat(accumulator[key],arrayValue)};default:return(key,value,accumulator)=>{if(void 0===accumulator[key]){accumulator[key]=value;return}accumulator[key]=[].concat(accumulator[key],value)}}}(options),ret=Object.create(null);if("string"!=typeof query||!(query=query.trim().replace(/^[?#&]/,"")))return ret;for(let param of query.split("&")){if(""===param)continue;let[key,value]=splitOnFirst(options.decode?param.replace(/\+/g," "):param,"=");value=void 0===value?null:["comma","separator","bracket-separator"].includes(options.arrayFormat)?value:decode(value,options),formatter(decode(key,options),value,ret)}for(let key1 of Object.keys(ret)){let value1=ret[key1];if("object"==typeof value1&&null!==value1)for(let k of Object.keys(value1))value1[k]=parseValue(value1[k],options);else ret[key1]=parseValue(value1,options)}return!1===options.sort?ret:(!0===options.sort?Object.keys(ret).sort():Object.keys(ret).sort(options.sort)).reduce((result,key)=>{let value=ret[key];return Boolean(value)&&"object"==typeof value&&!Array.isArray(value)?result[key]=function keysSorter(input){return Array.isArray(input)?input.sort():"object"==typeof input?keysSorter(Object.keys(input)).sort((a,b)=>Number(a)-Number(b)).map(key=>input[key]):input}(value):result[key]=value,result},Object.create(null))}exports.extract=extract,exports.parse=parse,exports.stringify=(object,options)=>{if(!object)return"";validateArrayFormatSeparator((options=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},options)).arrayFormatSeparator);let shouldFilter=key=>options.skipNull&&isNullOrUndefined(object[key])||options.skipEmptyString&&""===object[key],formatter=function(options){switch(options.arrayFormat){case"index":return key=>(result,value)=>{let index=result.length;return void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),"[",index,"]"].join("")]:[...result,[encode(key,options),"[",encode(index,options),"]=",encode(value,options)].join("")]};case"bracket":return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),"[]"].join("")]:[...result,[encode(key,options),"[]=",encode(value,options)].join("")];case"colon-list-separator":return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),":list="].join("")]:[...result,[encode(key,options),":list=",encode(value,options)].join("")];case"comma":case"separator":case"bracket-separator":{let keyValueSep="bracket-separator"===options.arrayFormat?"[]=":"=";return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:(value=null===value?"":value,0===result.length)?[[encode(key,options),keyValueSep,encode(value,options)].join("")]:[[result,encode(value,options)].join(options.arrayFormatSeparator)]}default:return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,encode(key,options)]:[...result,[encode(key,options),"=",encode(value,options)].join("")]}}(options),objectCopy={};for(let key of Object.keys(object))shouldFilter(key)||(objectCopy[key]=object[key]);let keys=Object.keys(objectCopy);return!1!==options.sort&&keys.sort(options.sort),keys.map(key=>{let value=object[key];return void 0===value?"":null===value?encode(key,options):Array.isArray(value)?0===value.length&&"bracket-separator"===options.arrayFormat?encode(key,options)+"[]":value.reduce(formatter(key),[]).join("&"):encode(key,options)+"="+encode(value,options)}).filter(x=>x.length>0).join("&")},exports.parseUrl=(url,options)=>{options=Object.assign({decode:!0},options);let[url_,hash]=splitOnFirst(url,"#");
7return Object.assign({url:url_.split("?")[0]||"",query:parse(extract(url),options)},options&&options.parseFragmentIdentifier&&hash?{fragmentIdentifier:decode(hash,options)}:{})},exports.stringifyUrl=(object,options)=>{options=Object.assign({encode:!0,strict:!0,[encodeFragmentIdentifier]:!0},options);let url=removeHash(object.url).split("?")[0]||"",queryFromUrl=exports.extract(object.url),parsedQueryFromUrl=exports.parse(queryFromUrl,{sort:!1}),query=Object.assign(parsedQueryFromUrl,object.query),queryString=exports.stringify(query,options);queryString&&(queryString=`?${queryString}`);let hash=function(url){let hash="",hashStart=url.indexOf("#");return -1!==hashStart&&(hash=url.slice(hashStart)),hash}(object.url);return object.fragmentIdentifier&&(hash=`#${options[encodeFragmentIdentifier]?encode(object.fragmentIdentifier,options):object.fragmentIdentifier}`),`${url}${queryString}${hash}`},exports.pick=(input,filter,options)=>{options=Object.assign({parseFragmentIdentifier:!0,[encodeFragmentIdentifier]:!1},options);let{url,query,fragmentIdentifier}=exports.parseUrl(input,options);return exports.stringifyUrl({url,query:filterObject(query,filter),fragmentIdentifier},options)},exports.exclude=(input,filter,options)=>{let exclusionFilter=Array.isArray(filter)?key=>!filter.includes(key):(key,value)=>!filter(key,value);return exports.pick(input,exclusionFilter,options)}},96641:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{k:function(){return HttpConnection},Z:function(){return jsonrpc_http_connection_dist_esm}});var events=__webpack_require__(17187),browser_ponyfill=__webpack_require__(54098),browser_ponyfill_default=__webpack_require__.n(browser_ponyfill),esm=__webpack_require__(85094),dist_esm=__webpack_require__(56186);let DEFAULT_FETCH_OPTS={headers:{Accept:"application/json","Content-Type":"application/json"},method:"POST"};class HttpConnection{constructor(url,disableProviderPing=!1){if(this.url=url,this.disableProviderPing=disableProviderPing,this.events=new events.EventEmitter,this.isAvailable=!1,this.registering=!1,!(0,dist_esm.isHttpUrl)(url))throw Error(`Provided URL is not compatible with HTTP connection: ${url}`);this.url=url,this.disableProviderPing=disableProviderPing}get connected(){return this.isAvailable}get connecting(){return this.registering}on(event,listener){this.events.on(event,listener)}once(event,listener){this.events.once(event,listener)}off(event,listener){this.events.off(event,listener)}removeListener(event,listener){this.events.removeListener(event,listener)}async open(url=this.url){await this.register(url)}async close(){if(!this.isAvailable)throw Error("Connection already closed");this.onClose()}async send(payload,context){this.isAvailable||await this.register();try{let body=(0,esm.u)(payload),res=await browser_ponyfill_default()(this.url,Object.assign(Object.assign({},DEFAULT_FETCH_OPTS),{body})),data=await res.json();this.onPayload({data})}catch(e){this.onError(payload.id,e)}}async register(url=this.url){if(!(0,dist_esm.isHttpUrl)(url))throw Error(`Provided URL is not compatible with HTTP connection: ${url}`);if(this.registering){let currentMaxListeners=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=currentMaxListeners||this.events.listenerCount("open")>=currentMaxListeners)&&this.events.setMaxListeners(currentMaxListeners+1),new Promise((resolve,reject)=>{this.events.once("register_error",error=>{this.resetMaxListeners(),reject(error)}),this.events.once("open",()=>{if(this.resetMaxListeners(),void 0===this.isAvailable)return reject(Error("HTTP connection is missing or invalid"));resolve()})})}this.url=url,this.registering=!0;try{if(!this.disableProviderPing){let body=(0,esm.u)({id:1,jsonrpc:"2.0",method:"test",params:[]});await browser_ponyfill_default()(url,Object.assign(Object.assign({},DEFAULT_FETCH_OPTS),{body}))}this.onOpen()}catch(e){let error=this.parseError(e);throw this.events.emit("register_error",error),this.onClose(),error}}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(void 0===e.data)return;let payload="string"==typeof e.data?(0,esm.D)(e.data):e.data;this.events.emit("payload",payload)}onError(id,e){let error=this.parseError(e),message=error.message||error.toString(),payload=(0,dist_esm.formatJsonRpcError)(id,message);this.events.emit("payload",payload)}parseError(e,url=this.url){return(0,dist_esm.parseConnectionError)(e,url,"HTTP")}
7resetMaxListeners(){this.events.getMaxListeners()>10&&this.events.setMaxListeners(10)}}var jsonrpc_http_connection_dist_esm=HttpConnection},28003:function(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.HEARTBEAT_EVENTS=exports.HEARTBEAT_INTERVAL=void 0;let time_1=__webpack_require__(66736);exports.HEARTBEAT_INTERVAL=time_1.FIVE_SECONDS,exports.HEARTBEAT_EVENTS={pulse:"heartbeat_pulse"}},58850:function(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0});let tslib_1=__webpack_require__(70655);tslib_1.__exportStar(__webpack_require__(28003),exports)},22034:function(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.HeartBeat=void 0;let tslib_1=__webpack_require__(70655),events_1=__webpack_require__(17187),time_1=__webpack_require__(66736),types_1=__webpack_require__(24033),constants_1=__webpack_require__(58850);class HeartBeat extends types_1.IHeartBeat{constructor(opts){super(opts),this.events=new events_1.EventEmitter,this.interval=constants_1.HEARTBEAT_INTERVAL,this.interval=(null==opts?void 0:opts.interval)||constants_1.HEARTBEAT_INTERVAL}static init(opts){return tslib_1.__awaiter(this,void 0,void 0,function*(){let heartbeat=new HeartBeat(opts);return yield heartbeat.init(),heartbeat})}init(){return tslib_1.__awaiter(this,void 0,void 0,function*(){yield this.initialize()})}stop(){clearInterval(this.intervalRef)}on(event,listener){this.events.on(event,listener)}once(event,listener){this.events.once(event,listener)}off(event,listener){this.events.off(event,listener)}removeListener(event,listener){this.events.removeListener(event,listener)}initialize(){return tslib_1.__awaiter(this,void 0,void 0,function*(){this.intervalRef=setInterval(()=>this.pulse(),time_1.toMiliseconds(this.interval))})}pulse(){this.events.emit(constants_1.HEARTBEAT_EVENTS.pulse)}}exports.HeartBeat=HeartBeat},33108:function(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0});let tslib_1=__webpack_require__(70655);tslib_1.__exportStar(__webpack_require__(22034),exports),tslib_1.__exportStar(__webpack_require__(24033),exports),tslib_1.__exportStar(__webpack_require__(58850),exports)},65446:function(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.IHeartBeat=void 0;let events_1=__webpack_require__(30997);class IHeartBeat extends events_1.IEvents{constructor(opts){super()}}exports.IHeartBeat=IHeartBeat},24033:function(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0});let tslib_1=__webpack_require__(70655);tslib_1.__exportStar(__webpack_require__(65446),exports)},87338:function(__unused_webpack_module,exports,__webpack_require__){let strictUriEncode=__webpack_require__(70610),decodeComponent=__webpack_require__(44020),splitOnFirst=__webpack_require__(80500),filterObject=__webpack_require__(92806),isNullOrUndefined=value=>null==value,encodeFragmentIdentifier=Symbol("encodeFragmentIdentifier");function validateArrayFormatSeparator(value){if("string"!=typeof value||1!==value.length)throw TypeError("arrayFormatSeparator must be single character string")}function encode(value,options){return options.encode?options.strict?strictUriEncode(value):encodeURIComponent(value):value}function decode(value,options){return options.decode?decodeComponent(value):value}function removeHash(input){let hashStart=input.indexOf("#");return -1!==hashStart&&(input=input.slice(0,hashStart)),input}
7function extract(input){input=removeHash(input);let queryStart=input.indexOf("?");return -1===queryStart?"":input.slice(queryStart+1)}function parseValue(value,options){return options.parseNumbers&&!Number.isNaN(Number(value))&&"string"==typeof value&&""!==value.trim()?value=Number(value):options.parseBooleans&&null!==value&&("true"===value.toLowerCase()||"false"===value.toLowerCase())&&(value="true"===value.toLowerCase()),value}function parse(query,options){validateArrayFormatSeparator((options=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},options)).arrayFormatSeparator);let formatter=function(options){let result;switch(options.arrayFormat){case"index":return(key,value,accumulator)=>{if(result=/\[(\d*)\]$/.exec(key),key=key.replace(/\[\d*\]$/,""),!result){accumulator[key]=value;return}void 0===accumulator[key]&&(accumulator[key]={}),accumulator[key][result[1]]=value};case"bracket":return(key,value,accumulator)=>{if(result=/(\[\])$/.exec(key),key=key.replace(/\[\]$/,""),!result){accumulator[key]=value;return}if(void 0===accumulator[key]){accumulator[key]=[value];return}accumulator[key]=[].concat(accumulator[key],value)};case"colon-list-separator":return(key,value,accumulator)=>{if(result=/(:list)$/.exec(key),key=key.replace(/:list$/,""),!result){accumulator[key]=value;return}if(void 0===accumulator[key]){accumulator[key]=[value];return}accumulator[key]=[].concat(accumulator[key],value)};case"comma":case"separator":return(key,value,accumulator)=>{let isArray="string"==typeof value&&value.includes(options.arrayFormatSeparator),isEncodedArray="string"==typeof value&&!isArray&&decode(value,options).includes(options.arrayFormatSeparator);value=isEncodedArray?decode(value,options):value;let newValue=isArray||isEncodedArray?value.split(options.arrayFormatSeparator).map(item=>decode(item,options)):null===value?value:decode(value,options);accumulator[key]=newValue};case"bracket-separator":return(key,value,accumulator)=>{let isArray=/(\[\])$/.test(key);if(key=key.replace(/\[\]$/,""),!isArray){accumulator[key]=value?decode(value,options):value;return}let arrayValue=null===value?[]:value.split(options.arrayFormatSeparator).map(item=>decode(item,options));if(void 0===accumulator[key]){accumulator[key]=arrayValue;return}accumulator[key]=[].concat(accumulator[key],arrayValue)};default:return(key,value,accumulator)=>{if(void 0===accumulator[key]){accumulator[key]=value;return}accumulator[key]=[].concat(accumulator[key],value)}}}(options),ret=Object.create(null);if("string"!=typeof query||!(query=query.trim().replace(/^[?#&]/,"")))return ret;for(let param of query.split("&")){if(""===param)continue;let[key,value]=splitOnFirst(options.decode?param.replace(/\+/g," "):param,"=");value=void 0===value?null:["comma","separator","bracket-separator"].includes(options.arrayFormat)?value:decode(value,options),formatter(decode(key,options),value,ret)}for(let key1 of Object.keys(ret)){let value1=ret[key1];if("object"==typeof value1&&null!==value1)for(let k of Object.keys(value1))value1[k]=parseValue(value1[k],options);else ret[key1]=parseValue(value1,options)}return!1===options.sort?ret:(!0===options.sort?Object.keys(ret).sort():Object.keys(ret).sort(options.sort)).reduce((result,key)=>{let value=ret[key];return Boolean(value)&&"object"==typeof value&&!Array.isArray(value)?result[key]=function keysSorter(input){return Array.isArray(input)?input.sort():"object"==typeof input?keysSorter(Object.keys(input)).sort((a,b)=>Number(a)-Number(b)).map(key=>input[key]):input}(value):result[key]=value,result},Object.create(null))}exports.extract=extract,exports.parse=parse,exports.stringify=(object,options)=>{if(!object)return"";validateArrayFormatSeparator((options=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},options)).arrayFormatSeparator);let shouldFilter=key=>options.skipNull&&isNullOrUndefined(object[key])||options.skipEmptyString&&""===object[key],formatter=function(options){switch(options.arrayFormat){case"index":return key=>(result,value)=>{let index=result.length;return void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),"[",index,"]"].join("")]:[...result,[encode(key,options),"[",encode(index,options),"]=",encode(value,options)].join("")]};case"bracket":return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),"[]"].join("")]:[...result,[encode(key,options),"[]=",encode(value,options)].join("")];case"colon-list-separator":return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),":list="].join("")]:[...result,[encode(key,options),":list=",encode(value,options)].join("")];case"comma":case"separator":case"bracket-separator":{let keyValueSep="bracket-separator"===options.arrayFormat?"[]=":"=";return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:(value=null===value?"":value,0===result.length)?[[encode(key,options),keyValueSep,encode(value,options)].join("")]:[[result,encode(value,options)].join(options.arrayFormatSeparator)]}default:return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,encode(key,options)]:[...result,[encode(key,options),"=",encode(value,options)].join("")]}}(options),objectCopy={};for(let key of Object.keys(object))shouldFilter(key)||(objectCopy[key]=object[key]);let keys=Object.keys(objectCopy);return!1!==options.sort&&keys.sort(options.sort),keys.map(key=>{let value=object[key];return void 0===value?"":null===value?encode(key,options):Array.isArray(value)?0===value.length&&"bracket-separator"===options.arrayFormat?encode(key,options)+"[]":value.reduce(formatter(key),[]).join("&"):encode(key,options)+"="+encode(value,options)}).filter(x=>x.length>0).join("&")},exports.parseUrl=(url,options)=>{options=Object.assign({decode:!0},options);let[url_,hash]=splitOnFirst(url,"#");
7return Object.assign({url:url_.split("?")[0]||"",query:parse(extract(url),options)},options&&options.parseFragmentIdentifier&&hash?{fragmentIdentifier:decode(hash,options)}:{})},exports.stringifyUrl=(object,options)=>{options=Object.assign({encode:!0,strict:!0,[encodeFragmentIdentifier]:!0},options);let url=removeHash(object.url).split("?")[0]||"",queryFromUrl=exports.extract(object.url),parsedQueryFromUrl=exports.parse(queryFromUrl,{sort:!1}),query=Object.assign(parsedQueryFromUrl,object.query),queryString=exports.stringify(query,options);queryString&&(queryString=`?${queryString}`);let hash=function(url){let hash="",hashStart=url.indexOf("#");return -1!==hashStart&&(hash=url.slice(hashStart)),hash}(object.url);return object.fragmentIdentifier&&(hash=`#${options[encodeFragmentIdentifier]?encode(object.fragmentIdentifier,options):object.fragmentIdentifier}`),`${url}${queryString}${hash}`},exports.pick=(input,filter,options)=>{options=Object.assign({parseFragmentIdentifier:!0,[encodeFragmentIdentifier]:!1},options);let{url,query,fragmentIdentifier}=exports.parseUrl(input,options);return exports.stringifyUrl({url,query:filterObject(query,filter),fragmentIdentifier},options)},exports.exclude=(input,filter,options)=>{let exclusionFilter=Array.isArray(filter)?key=>!filter.includes(key):(key,value)=>!filter(key,value);return exports.pick(input,exclusionFilter,options)}},94543:function(__unused_webpack_module,exports,__webpack_require__){let strictUriEncode=__webpack_require__(70610),decodeComponent=__webpack_require__(44020),splitOnFirst=__webpack_require__(80500),filterObject=__webpack_require__(92806),isNullOrUndefined=value=>null==value,encodeFragmentIdentifier=Symbol("encodeFragmentIdentifier");function validateArrayFormatSeparator(value){if("string"!=typeof value||1!==value.length)throw TypeError("arrayFormatSeparator must be single character string")}function encode(value,options){return options.encode?options.strict?strictUriEncode(value):encodeURIComponent(value):value}function decode(value,options){return options.decode?decodeComponent(value):value}function removeHash(input){let hashStart=input.indexOf("#");return -1!==hashStart&&(input=input.slice(0,hashStart)),input}
7function extract(input){input=removeHash(input);let queryStart=input.indexOf("?");return -1===queryStart?"":input.slice(queryStart+1)}function parseValue(value,options){return options.parseNumbers&&!Number.isNaN(Number(value))&&"string"==typeof value&&""!==value.trim()?value=Number(value):options.parseBooleans&&null!==value&&("true"===value.toLowerCase()||"false"===value.toLowerCase())&&(value="true"===value.toLowerCase()),value}function parse(query,options){validateArrayFormatSeparator((options=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},options)).arrayFormatSeparator);let formatter=function(options){let result;switch(options.arrayFormat){case"index":return(key,value,accumulator)=>{if(result=/\[(\d*)\]$/.exec(key),key=key.replace(/\[\d*\]$/,""),!result){accumulator[key]=value;return}void 0===accumulator[key]&&(accumulator[key]={}),accumulator[key][result[1]]=value};case"bracket":return(key,value,accumulator)=>{if(result=/(\[\])$/.exec(key),key=key.replace(/\[\]$/,""),!result){accumulator[key]=value;return}if(void 0===accumulator[key]){accumulator[key]=[value];return}accumulator[key]=[].concat(accumulator[key],value)};case"colon-list-separator":return(key,value,accumulator)=>{if(result=/(:list)$/.exec(key),key=key.replace(/:list$/,""),!result){accumulator[key]=value;return}if(void 0===accumulator[key]){accumulator[key]=[value];return}accumulator[key]=[].concat(accumulator[key],value)};case"comma":case"separator":return(key,value,accumulator)=>{let isArray="string"==typeof value&&value.includes(options.arrayFormatSeparator),isEncodedArray="string"==typeof value&&!isArray&&decode(value,options).includes(options.arrayFormatSeparator);value=isEncodedArray?decode(value,options):value;let newValue=isArray||isEncodedArray?value.split(options.arrayFormatSeparator).map(item=>decode(item,options)):null===value?value:decode(value,options);accumulator[key]=newValue};case"bracket-separator":return(key,value,accumulator)=>{let isArray=/(\[\])$/.test(key);if(key=key.replace(/\[\]$/,""),!isArray){accumulator[key]=value?decode(value,options):value;return}let arrayValue=null===value?[]:value.split(options.arrayFormatSeparator).map(item=>decode(item,options));if(void 0===accumulator[key]){accumulator[key]=arrayValue;return}accumulator[key]=[].concat(accumulator[key],arrayValue)};default:return(key,value,accumulator)=>{if(void 0===accumulator[key]){accumulator[key]=value;return}accumulator[key]=[].concat(accumulator[key],value)}}}(options),ret=Object.create(null);if("string"!=typeof query||!(query=query.trim().replace(/^[?#&]/,"")))return ret;for(let param of query.split("&")){if(""===param)continue;let[key,value]=splitOnFirst(options.decode?param.replace(/\+/g," "):param,"=");value=void 0===value?null:["comma","separator","bracket-separator"].includes(options.arrayFormat)?value:decode(value,options),formatter(decode(key,options),value,ret)}for(let key1 of Object.keys(ret)){let value1=ret[key1];if("object"==typeof value1&&null!==value1)for(let k of Object.keys(value1))value1[k]=parseValue(value1[k],options);else ret[key1]=parseValue(value1,options)}return!1===options.sort?ret:(!0===options.sort?Object.keys(ret).sort():Object.keys(ret).sort(options.sort)).reduce((result,key)=>{let value=ret[key];return Boolean(value)&&"object"==typeof value&&!Array.isArray(value)?result[key]=function keysSorter(input){return Array.isArray(input)?input.sort():"object"==typeof input?keysSorter(Object.keys(input)).sort((a,b)=>Number(a)-Number(b)).map(key=>input[key]):input}(value):result[key]=value,result},Object.create(null))}exports.extract=extract,exports.parse=parse,exports.stringify=(object,options)=>{if(!object)return"";validateArrayFormatSeparator((options=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},options)).arrayFormatSeparator);let shouldFilter=key=>options.skipNull&&isNullOrUndefined(object[key])||options.skipEmptyString&&""===object[key],formatter=function(options){switch(options.arrayFormat){case"index":return key=>(result,value)=>{let index=result.length;return void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),"[",index,"]"].join("")]:[...result,[encode(key,options),"[",encode(index,options),"]=",encode(value,options)].join("")]};case"bracket":return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),"[]"].join("")]:[...result,[encode(key,options),"[]=",encode(value,options)].join("")];case"colon-list-separator":return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,[encode(key,options),":list="].join("")]:[...result,[encode(key,options),":list=",encode(value,options)].join("")];case"comma":case"separator":case"bracket-separator":{let keyValueSep="bracket-separator"===options.arrayFormat?"[]=":"=";return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:(value=null===value?"":value,0===result.length)?[[encode(key,options),keyValueSep,encode(value,options)].join("")]:[[result,encode(value,options)].join(options.arrayFormatSeparator)]}default:return key=>(result,value)=>void 0===value||options.skipNull&&null===value||options.skipEmptyString&&""===value?result:null===value?[...result,encode(key,options)]:[...result,[encode(key,options),"=",encode(value,options)].join("")]}}(options),objectCopy={};for(let key of Object.keys(object))shouldFilter(key)||(objectCopy[key]=object[key]);let keys=Object.keys(objectCopy);return!1!==options.sort&&keys.sort(options.sort),keys.map(key=>{let value=object[key];return void 0===value?"":null===value?encode(key,options):Array.isArray(value)?0===value.length&&"bracket-separator"===options.arrayFormat?encode(key,options)+"[]":value.reduce(formatter(key),[]).join("&"):encode(key,options)+"="+encode(value,options)}).filter(x=>x.length>0).join("&")},exports.parseUrl=(url,options)=>{options=Object.assign({decode:!0},options);let[url_,hash]=splitOnFirst(url,"#");
7return Object.assign({url:url_.split("?")[0]||"",query:parse(extract(url),options)},options&&options.parseFragmentIdentifier&&hash?{fragmentIdentifier:decode(hash,options)}:{})},exports.stringifyUrl=(object,options)=>{options=Object.assign({encode:!0,strict:!0,[encodeFragmentIdentifier]:!0},options);let url=removeHash(object.url).split("?")[0]||"",queryFromUrl=exports.extract(object.url),parsedQueryFromUrl=exports.parse(queryFromUrl,{sort:!1}),query=Object.assign(parsedQueryFromUrl,object.query),queryString=exports.stringify(query,options);queryString&&(queryString=`?${queryString}`);let hash=function(url){let hash="",hashStart=url.indexOf("#");return -1!==hashStart&&(hash=url.slice(hashStart)),hash}(object.url);return object.fragmentIdentifier&&(hash=`#${options[encodeFragmentIdentifier]?encode(object.fragmentIdentifier,options):object.fragmentIdentifier}`),`${url}${queryString}${hash}`},exports.pick=(input,filter,options)=>{options=Object.assign({parseFragmentIdentifier:!0,[encodeFragmentIdentifier]:!1},options);let{url,query,fragmentIdentifier}=exports.parseUrl(input,options);return exports.stringifyUrl({url,query:filterObject(query,filter),fragmentIdentifier},options)},exports.exclude=(input,filter,options)=>{let exclusionFilter=Array.isArray(filter)?key=>!filter.includes(key):(key,value)=>!filter(key,value);return exports.pick(input,exclusionFilter,options)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.