PageSourceSearch

https://www.xstable.ai/_next/static/chunks/6058.95b55ddb3de4a58f.js

js xstable.ai collected 2026-10-05 14:39:08 UTC 285,133 bytes, 10 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6058],{6058:(e,t,i)=>{i.d(t,{SignClient:()=>cA});var s=i(35632),r=i.n(s),n=i(33683),o=i(78320),a={exports:{}};function l(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}let c=function(e,t,i){var s=i&&i.stringify||l;if("object"==typeof e&&null!==e){var r=t.length+1;if(1===r)return e;var n=Array(r);n[0]=s(e);for(var o=1;o<r;o++)n[o]=s(t[o]);return n.join(" ")}if("string"!=typeof e)return e;var a=t.length;if(0===a)return e;for(var c="",h=0,u=-1,d=e&&e.length||0,p=0;p<d;){if(37===e.charCodeAt(p)&&p+1<d){switch(u=u>-1?u:0,e.charCodeAt(p+1)){case 100:case 102:if(h>=a||null==t[h])break;u<p&&(c+=e.slice(u,p)),c+=Number(t[h]),u=p+2,p++;break;case 105:if(h>=a||null==t[h])break;u<p&&(c+=e.slice(u,p)),c+=Math.floor(Number(t[h])),u=p+2,p++;break;case 79:case 111:case 106:if(h>=a||void 0===t[h])break;u<p&&(c+=e.slice(u,p));var f=typeof t[h];if("string"===f){c+="'"+t[h]+"'",u=p+2,p++;break}if("function"===f){c+=t[h].name||"<anonymous>",u=p+2,p++;break}c+=s(t[h]),u=p+2,p++;break;case 115:if(h>=a)break;u<p&&(c+=e.slice(u,p)),c+=String(t[h]),u=p+2,p++;break;case 37:u<p&&(c+=e.slice(u,p)),c+="%",u=p+2,p++,h--}++h}++p}return -1===u?e:(u<d&&(c+=e.slice(u)),c)};a.exports=y;let h=function(){function e(e){return"u">typeof e&&e}try{return"u">typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return e(self)||e(window)||e(this)||{}}}().console||{};function u(e,t){return"silent"===e?1/0:t.levels.values[e]}let d=Symbol("pino.logFuncs"),p=Symbol("pino.hierarchy"),f={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function g(e,t){let i={logger:t,parent:e[p]};t[p]=i}function y(e){var t,i;(e=e||{}).browser=e.browser||{};let s=e.browser.transmit;if(s&&"function"!=typeof s.send)throw Error("pino: transmit option must have a send function");let r=e.browser.write||h;e.browser.write&&(e.browser.asObject=!0);let n=e.serializers||{},o=(t=e.browser.serialize,Array.isArray(t)?t.filter(function(e){return"!stdSerializers.err"!==e}):!0===t&&Object.keys(n)),a=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(a=!1);let l=Object.keys(e.customLevels||{}),c=["error","fatal","warn","info","debug","trace"].concat(l);"function"==typeof r&&c.forEach(function(e){r[e]=r}),(!1===e.enabled||e.browser.disabled)&&(e.level="silent");let p=e.level||"info",v=Object.create(r);v.log||(v.log=I),function(e,t,i){let s={};t.forEach(e=>{s[e]=i[e]?i[e]:h[e]||h[f[e]||"log"]||I}),e[d]=s}(v,c,r),g({},v),Object.defineProperty(v,"levelVal",{get:function(){return u(this.level,this)}}),Object.defineProperty(v,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,m(this,E,v,"error"),m(this,E,v,"fatal"),m(this,E,v,"warn"),m(this,E,v,"info"),m(this,E,v,"debug"),m(this,E,v,"trace"),l.forEach(e=>{m(this,E,v,e)})}});let E={transmit:s,serialize:o,asObject:e.browser.asObject,asObjectBindingsOnly:e.browser.asObjectBindingsOnly,formatters:e.browser.formatters,levels:c,timestamp:"function"==typeof(i=e).timestamp?i.timestamp:!1===i.timestamp?_:S,messageKey:e.messageKey||"msg",onChild:e.onChild||I};function x(t,i,r){if(!i)throw Error("missing bindings for child Pino");r=r||{},o&&i.serializers&&(r.serializers=i.serializers);let a=r.serializers;if(o&&a){var l=Object.assign({},n,a),c=!0===e.browser.serialize?Object.keys(l):o;delete i.serializers,b([i],c,l,this._stdErrSerialize)}function h(e){this._childLevel=(0|e._childLevel)+1,this.bindings=i,l&&(this.serializers=l,this._serialize=c),s&&(this._logEvent=w([].concat(e._logEvent.bindings,i)))}h.prototype=this;let u=new h(this);return g(this,u),u.child=function(...e){return x.call(this,t,...e)},u.level=r.level||this.level,t.onChild(u),u}return v.levels=function(e){let t=e.customLevels||{};return{values:Object.assign({},y.levels.values,t),labels:Object.assign({},y.levels.labels,function(e){let t={};return Object.keys(e).forEach(function(i){t[e[i]]=i}),t}(t))}}(e),v.level=p,v.isLevelEnabled=function(e){return!!this.levels.values[e]&&this.levels.values[e]>=this.levels.values[this.level]},v.setMaxListeners=v.getMaxListeners=v.emit=v.addListener=v.on=v.prependListener=v.once=v.prependOnceListener=v.removeListener=v.removeAllListeners=v.listeners=v.listenerCount=v.eventNames=v.write=v.flush=I,v.serializers=n,v._serialize=o,v._stdErrSerialize=a,v.child=function(...e){return x.call(this,E,...e)},s&&(v._logEvent=w()),v}function m(e,t,i,s){var r,n,o,a,l,f,g;if(Object.defineProperty(e,s,{value:u(e.level,i)>u(s,i)?I:i[d][s],writable:!0,enumerable:!0,configurable:!0}),e[s]===I){if(!t.transmit)return;let r=u(t.transmit.level||e.level,i);if(u(s,i)<r)return}e[s]=(r=e,n=t,o=i,a=s,l=r[d][a],function(){let e=n.timestamp(),t=Array(arguments.length),i=Object.getPrototypeOf&&Object.getPrototypeOf(this)===h?h:this;for(var s=0;s<t.length;s++)t[s]=arguments[s];var d=!1;
1if(n.serialize&&(b(t,this._serialize,this.serializers,this._stdErrSerialize),d=!0),n.asObject||n.formatters?l.call(i,...function(e,t,i,s,r){let{level:n,log:o=e=>e}=r.formatters||{},a=i.slice(),l=a[0],h={},u=(0|e._childLevel)+1;if((u<1&&(u=1),s&&(h.time=s),n)?Object.assign(h,n(t,e.levels.values[t])):h.level=e.levels.values[t],r.asObjectBindingsOnly){if(null!==l&&"object"==typeof l)for(;u--&&"object"==typeof a[0];)Object.assign(h,a.shift());return[o(h),...a]}if(null!==l&&"object"==typeof l){for(;u--&&"object"==typeof a[0];)Object.assign(h,a.shift());l=a.length?c(a.shift(),a):void 0}else"string"==typeof l&&(l=c(a.shift(),a));return void 0!==l&&(h[r.messageKey]=l),[o(h)]}(this,a,t,e,n)):l.apply(i,t),n.transmit){let i=n.transmit.level||r._level,s=u(i,o),l=u(a,o);if(l<s)return;!function(e,t,i,s=!1){let r=t.send,n=t.ts,o=t.methodLevel,a=t.methodValue,l=t.val,c=e._logEvent.bindings;s||b(i,e._serialize||Object.keys(e.serializers),e.serializers,void 0===e._stdErrSerialize||e._stdErrSerialize),e._logEvent.ts=n,e._logEvent.messages=i.filter(function(e){return -1===c.indexOf(e)}),e._logEvent.level.label=o,e._logEvent.level.value=a,r(o,e._logEvent,l),e._logEvent=w(c)}(this,{ts:e,methodLevel:a,methodValue:l,transmitLevel:i,transmitValue:o.levels.values[n.transmit.level||r._level],send:n.transmit.send,val:u(r._level,o)},t,d)}});let y=function(e){let t=[];e.bindings&&t.push(e.bindings);let i=e[p];for(;i.parent;)(i=i.parent).logger.bindings&&t.push(i.logger.bindings);return t.reverse()}(e);0!==y.length&&(e[s]=(f=y,g=e[s],function(){return g.apply(this,[...f,...arguments])}))}function b(e,t,i,s){for(let r in e)if(s&&e[r]instanceof Error)e[r]=y.stdSerializers.err(e[r]);else if("object"==typeof e[r]&&!Array.isArray(e[r])&&t)for(let s in e[r])t.indexOf(s)>-1&&s in i&&(e[r][s]=i[s](e[r][s]))}function w(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function v(e){let t={type:e.constructor.name,msg:e.message,stack:e.stack};for(let i in e)void 0===t[i]&&(t[i]=e[i]);return t}function E(){return{}}function x(e){return e}function I(){}function _(){return!1}function S(){return Date.now()}y.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},y.stdSerializers={mapHttpRequest:E,mapHttpResponse:E,wrapRequestSerializer:x,wrapResponseSerializer:x,wrapErrorSerializer:x,req:E,res:E,err:v,errWithCause:v},y.stdTimeFunctions=Object.assign({},{nullTime:_,epochTime:S,unixTime:function(){return Math.round(Date.now()/1e3)},isoTime:function(){return new Date(Date.now()).toISOString()}}),a.exports.default=y,a.exports.pino=y;let O={level:"info"},P="custom_context";var R=Object.defineProperty,T=(e,t,i)=>((e,t,i)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class A{constructor(e){T(this,"nodeValue"),T(this,"sizeInBytes"),T(this,"next"),this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class N{constructor(e){T(this,"lengthInNodes"),T(this,"sizeInBytes"),T(this,"head"),T(this,"tail"),T(this,"maxSizeInBytes"),this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){let t=new A(e);if(t.size>this.maxSizeInBytes)throw Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?this.tail&&(this.tail.next=t):this.head=t,this.tail=t,this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;let e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){let e=[],t=this.head;for(;null!==t;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};let t=e.value;return e=e.next,{done:!1,value:t}}}}}function U(e){return"string"==typeof e?e:JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString()+"n":t)||""}var k=Object.defineProperty,B=(e,t,i)=>((e,t,i)=>t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class C{constructor(e,t=1024e3){B(this,"logs"),B(this,"level"),B(this,"levelValue"),B(this,"MAX_LOG_SIZE_IN_BYTES"),this.level=e??"error",this.levelValue=a.exports.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new N(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===a.exports.levels.values.error?console.error(e):t===a.exports.levels.values.warn?console.warn(e):t===a.exports.levels.values.debug?console.debug(e):t===a.exports.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(U({timestamp:new Date().toISOString(),log:e}));let t="string"==typeof e?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new N(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){let t=this.getLogArray();return t.push(U({extraMetadata:e})),new Blob(t,{type:"application/json"})}}var q=Object.defineProperty;class L{constructor(e,t=1024e3){((e,t,i)=>((e,t,i)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i))(this,"baseChunkLogger"),this.baseChunkLogger=new C(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){let t=URL.createObjectURL(this.logsToBlob(e)),i=document.createElement("a");i.href=t,i.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(t)}}var D=Object.defineProperty;
1class j{constructor(e,t=1024e3){((e,t,i)=>((e,t,i)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i))(this,"baseChunkLogger"),this.baseChunkLogger=new C(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var M=Object.defineProperty,$=Object.defineProperties,z=Object.getOwnPropertyDescriptors,K=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,H=(e,t,i)=>t in e?M(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,G=(e,t)=>{for(var i in t||(t={}))V.call(t,i)&&H(e,i,t[i]);if(K)for(var i of K(t))F.call(t,i)&&H(e,i,t[i]);return e},W=(e,t)=>$(e,z(t));function J(e,t=P){return e[t]||""}function Z(e,t,i=P){let s=function(e,t,i=P){let s=J(e,i);return s.trim()?`${s}/${t}`:t}(e,t,i);return function(e,t,i=P){return e[i]=t,e}(e.child({context:s}),s,i)}function Y(e){return"u">typeof e.loggerOverride&&"string"!=typeof e.loggerOverride?{logger:e.loggerOverride,chunkLoggerController:null}:"u">typeof window?function(e){var t,i;let s=new L(null==(t=e.opts)?void 0:t.level,e.maxSizeInBytes);return{logger:a.exports(W(G({},e.opts),{level:"trace",browser:W(G({},null==(i=e.opts)?void 0:i.browser),{write:e=>s.write(e)})})),chunkLoggerController:s}}(e):function(e){var t;let i=new j(null==(t=e.opts)?void 0:t.level,e.maxSizeInBytes);return{logger:a.exports(W(G({},e.opts),{level:"trace"}),i),chunkLoggerController:i}}(e)}var Q=i(51205),X=Object.defineProperty,ee=(e,t,i)=>((e,t,i)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class et extends Q.H{constructor(e){super(),this.opts=e,ee(this,"protocol","wc"),ee(this,"version",2)}}var ei=Object.defineProperty;class es extends Q.H{constructor(e,t){super(),this.core=e,this.logger=t,((e,t,i)=>((e,t,i)=>t in e?ei(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i))(this,"records",new Map)}}class er{constructor(e,t){this.logger=e,this.core=t}}class en extends Q.H{constructor(e,t){super(),this.relayer=e,this.logger=t}}class eo extends Q.H{constructor(e){super()}}class ea{constructor(e,t,i,s){this.core=e,this.logger=t,this.name=i}}class el extends Q.H{constructor(e,t){super(),this.relayer=e,this.logger=t}}class ec extends Q.H{constructor(e,t){super(),this.core=e,this.logger=t}}class eh{constructor(e,t,i){this.core=e,this.logger=t,this.store=i}}class eu{constructor(e,t){this.projectId=e,this.logger=t}}class ed{constructor(e,t,i){this.core=e,this.logger=t,this.telemetryEnabled=i}}var ep=Object.defineProperty,ef=(e,t,i)=>((e,t,i)=>t in e?ep(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);r();class eg{constructor(e){this.opts=e,ef(this,"protocol","wc"),ef(this,"version",2)}}s.EventEmitter;class ey{constructor(e){this.client=e}}var em=i(39588),eb=i(11065),ew=i(96708),ev=i(53768),eE=i(81109),ex=i(97051),eI=i(95263),e_=i(37844),eS=i(69760);function eO(e){return`${e<0?"-":""}0x${Math.abs(e).toString(16).padStart(2,"0")}`}class eP{constructor(e,t){this.type=e,this.data=t}}
1class eR extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Object.create(eR.prototype)),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:eR.name})}}function eT(e,t,i){let s=Math.floor(i/0x100000000);e.setUint32(t,s),e.setUint32(t+4,i)}function eA(e,t){return 0x100000000*e.getInt32(t)+e.getUint32(t+4)}let eN={type:-1,encode:function(e){return e instanceof Date?function({sec:e,nsec:t}){if(e>=0&&t>=0&&e<=0x3ffffffff)if(0===t&&e<=0xffffffff){let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e),t}else{let i=e/0x100000000,s=new Uint8Array(8),r=new DataView(s.buffer);return r.setUint32(0,t<<2|3&i),r.setUint32(4,0|e),s}{let i=new Uint8Array(12),s=new DataView(i.buffer);return s.setUint32(0,t),eT(s,4,e),i}}(function(e){let t=e.getTime(),i=Math.floor(t/1e3),s=(t-1e3*i)*1e6,r=Math.floor(s/1e9);return{sec:i+r,nsec:s-1e9*r}}(e)):null},decode:function(e){let t=function(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);switch(e.byteLength){case 4:return{sec:t.getUint32(0),nsec:0};case 8:{let e=t.getUint32(0);return{sec:(3&e)*0x100000000+t.getUint32(4),nsec:e>>>2}}case 12:return{sec:eA(t,4),nsec:t.getUint32(0)};default:throw new eR(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${e.length}`)}}(e);return new Date(1e3*t.sec+t.nsec/1e6)}};class eU{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(eN)}register({type:e,encode:t,decode:i}){if(e>=0)this.encoders[e]=t,this.decoders[e]=i;else{let s=-1-e;this.builtInEncoders[s]=t,this.builtInDecoders[s]=i}}tryToEncode(e,t){for(let i=0;i<this.builtInEncoders.length;i++){let s=this.builtInEncoders[i];if(null!=s){let r=s(e,t);if(null!=r)return new eP(-1-i,r)}}for(let i=0;i<this.encoders.length;i++){let s=this.encoders[i];if(null!=s){let r=s(e,t);if(null!=r)return new eP(i,r)}}return e instanceof eP?e:null}decode(e,t,i){let s=t<0?this.builtInDecoders[-1-t]:this.decoders[t];return s?s(e,t,i):new eP(t,e)}}eU.defaultCodec=new eU;let ek=new TextEncoder;function eB(e,t,i){let s=t,r=s+i,n=[],o="";for(;s<r;){let t=e[s++];if((128&t)==0)n.push(t);else if((224&t)==192){let i=63&e[s++];n.push((31&t)<<6|i)}else if((240&t)==224){let i=63&e[s++],r=63&e[s++];n.push((31&t)<<12|i<<6|r)}else if((248&t)==240){let i=63&e[s++],r=(7&t)<<18|i<<12|(63&e[s++])<<6|63&e[s++];r>65535&&(r-=65536,n.push(r>>>10&1023|55296),r=56320|1023&r),n.push(r)}else n.push(t);n.length>=4096&&(o+=String.fromCharCode(...n),n.length=0)}return n.length>0&&(o+=String.fromCharCode(...n)),o}let eC=new TextDecoder;function eq(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer?new Uint8Array(e):Uint8Array.from(e)}class eL{constructor(e=16,t=16){this.hit=0,this.miss=0,this.maxKeyLength=e,this.maxLengthPerKey=t,this.caches=[];for(let e=0;e<this.maxKeyLength;e++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,i){let s=this.caches[i-1];e:for(let r of s){let s=r.bytes;for(let r=0;r<i;r++)if(s[r]!==e[t+r])continue e;return r.str}return null}store(e,t){let i=this.caches[e.length-1],s={bytes:e,str:t};i.length>=this.maxLengthPerKey?i[Math.random()*i.length|0]=s:i.push(s)}decode(e,t,i){let s=this.find(e,t,i);if(null!=s)return this.hit++,s;this.miss++;let r=eB(e,t,i),n=Uint8Array.prototype.slice.call(e,t,t+i);return this.store(n,r),r}}let eD="array",ej="map_key",eM="map_value",e$=e=>{if("string"==typeof e||"number"==typeof e)return e;throw new eR("The type of key must be string or number but "+typeof e)};class ez{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){let t=this.getUninitializedStateFromPool();t.type=eD,t.position=0,t.size=e,t.array=Array(e)}pushMapState(e){let t=this.getUninitializedStateFromPool();t.type=ej,t.readCount=0,t.size=e,t.map={}}getUninitializedStateFromPool(){return this.stackHeadPosition++,this.stackHeadPosition===this.stack.length&&this.stack.push({type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null}),this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw Error("Invalid stack state. Released state is not on top of the stack.");e.type===eD&&(e.size=0,e.array=void 0,e.position=0,e.type=void 0),(e.type===ej||e.type===eM)&&(e.size=0,e.map=void 0,e.readCount=0,e.type=void 0),this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}let eK=new DataView(new ArrayBuffer(0)),eV=new Uint8Array(eK.buffer);try{eK.getInt8(0)}catch(e){if(!(e instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}let eF=RangeError("Insufficient data"),eH=new eL;class eG{constructor(e){this.totalPos=0,this.pos=0,this.view=eK,this.bytes=eV,this.headByte=-1,this.stack=new ez,this.entered=!1,this.extensionCodec=e?.extensionCodec??eU.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.rawStrings=e?.rawStrings??!1,this.maxStrLength=e?.maxStrLength??0xffffffff,this.maxBinLength=e?.maxBinLength??0xffffffff,this.maxArrayLength=e?.maxArrayLength??0xffffffff,this.maxMapLength=e?.maxMapLength??0xffffffff,this.maxExtLength=e?.maxExtLength??0xffffffff,this.keyDecoder=e?.keyDecoder!==void 0?e.keyDecoder:eH,this.mapKeyConverter=e?.mapKeyConverter??e$}clone(){return new eG({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=-1,this.stack.reset()}setBuffer(e){let t=eq(e);this.bytes=t,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.pos=0}appendBuffer(e){if(-1!==this.headByte||this.hasRemaining(1)){let t=this.bytes.subarray(this.pos),i=eq(e),s=new Uint8Array(t.length+i.length);s.set(t),s.set(i,t.length),this.setBuffer(s)}else this.setBuffer(e)}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){let{view:t,pos:i}=this;return RangeError(`Extra ${t.byteLength-i} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);let t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){let t=this.clone();yield*t.decodeMulti(e);return}try{for(this.entered=!0,this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{let t;this.entered=!0;let i=!1;for await(let s of e){if(i)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(s);try{t=this.doDecodeSync(),i=!0}catch(e){if(!(e instanceof RangeError))throw e}this.totalPos+=this.pos}if(i){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return t}let{headByte:s,pos:r,totalPos:n}=this;throw RangeError(`Insufficient data in parsing ${eO(s)} at ${n} (${r} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async *decodeMultiAsync(e,t){if(this.entered){let i=this.clone();yield*i.decodeMultiAsync(e,t);return}try{this.entered=!0;let i=t,s=-1;for await(let r of e){if(t&&0===s)throw this.createExtraByteError(this.totalPos);this.appendBuffer(r),i&&(s=this.readArraySize(),i=!1,this.complete());try{for(;yield this.doDecodeSync(),0!=--s;);}catch(e){if(!(e instanceof RangeError))throw e}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){t:for(;;){let e,t=this.readHeadByte();if(t>=224)e=t-256;else if(t<192)if(t<128)e=t;else if(t<144){let i=t-128;if(0!==i){this.pushMapState(i),this.complete();continue}e={}}else if(t<160){let i=t-144;if(0!==i){this.pushArrayState(i),this.complete();continue}e=[]}else{let i=t-160;e=this.decodeString(i,0)}else if(192===t)e=null;else if(194===t)e=!1;else if(195===t)e=!0;else if(202===t)e=this.readF32();else if(203===t)e=this.readF64();else if(204===t)e=this.readU8();else if(205===t)e=this.readU16();else if(206===t)e=this.readU32();else if(207===t)e=this.useBigInt64?this.readU64AsBigInt():this.readU64();else if(208===t)e=this.readI8();else if(209===t)e=this.readI16();else if(210===t)e=this.readI32();else if(211===t)e=this.useBigInt64?this.readI64AsBigInt():this.readI64();else if(217===t){let t=this.lookU8();e=this.decodeString(t,1)}else if(218===t){let t=this.lookU16();e=this.decodeString(t,2)}else if(219===t){let t=this.lookU32();e=this.decodeString(t,4)}else if(220===t){let t=this.readU16();if(0!==t){this.pushArrayState(t),this.complete();continue}e=[]}else if(221===t){let t=this.readU32();if(0!==t){this.pushArrayState(t),this.complete();continue}e=[]}else if(222===t){let t=this.readU16();if(0!==t){this.pushMapState(t),this.complete();continue}e={}}else if(223===t){let t=this.readU32();if(0!==t){this.pushMapState(t),this.complete();continue}e={}}else if(196===t){let t=this.lookU8();e=this.decodeBinary(t,1)}else if(197===t){let t=this.lookU16();e=this.decodeBinary(t,2)}else if(198===t){let t=this.lookU32();e=this.decodeBinary(t,4)}else if(212===t)e=this.decodeExtension(1,0);else if(213===t)e=this.decodeExtension(2,0);else if(214===t)e=this.decodeExtension(4,0);else if(215===t)e=this.decodeExtension(8,0);else if(216===t)e=this.decodeExtension(16,0);else if(199===t){let t=this.lookU8();e=this.decodeExtension(t,1)}else if(200===t){let t=this.lookU16();e=this.decodeExtension(t,2)}else if(201===t){let t=this.lookU32();e=this.decodeExtension(t,4)}else throw new eR(`Unrecognized type byte: ${eO(t)}`);this.complete();let i=this.stack;for(;i.length>0;){let t=i.top();if(t.type===eD)if(t.array[t.position]=e,t.position++,t.position===t.size)e=t.array,i.release(t);else continue t;else if(t.type===ej){if("__proto__"===e)throw new eR("The key __proto__ is not allowed");t.key=this.mapKeyConverter(e),t.type=eM;continue t}else if(t.map[t.key]=e,t.readCount++,t.readCount===t.size)e=t.map,i.release(t);else{t.key=null,t.type=ej;continue t}}return e}}readHeadByte(){return -1===this.headByte&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=-1}readArraySize(){let e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:if(e<160)return e-144;throw new eR(`Unrecognized array type byte: ${eO(e)}`)}}pushMapState(e){if(e>this.maxMapLength)throw new eR(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new eR(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,t){return!this.rawStrings||this.stateIsMapKey()?this.decodeUtf8String(e,t):this.decodeBinary(e,t)}decodeUtf8String(e,t){let i;if(e>this.maxStrLength)throw new eR(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw eF;let s=this.pos+t;return i=this.stateIsMapKey()&&this.keyDecoder?.canBeCached(e)?this.keyDecoder.decode(this.bytes,s,e):function(e,t,i){if(!(i>200))return eB(e,t,i);let s=e.subarray(t,t+i);return eC.decode(s)}(this.bytes,s,e),this.pos+=t+e,i}stateIsMapKey(){return this.stack.length>0&&this.stack.top().type===ej}decodeBinary(e,t){if(e>this.maxBinLength)throw new eR(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw eF;let i=this.pos+t,s=this.bytes.subarray(i,i+e);return this.pos+=t+e,s}decodeExtension(e,t){if(e>this.maxExtLength)throw new eR(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);let i=this.view.getInt8(this.pos+t),s=this.decodeBinary(e,t+1);return this.extensionCodec.decode(s,i,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){let e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){let e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){let e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){let e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){var e,t;let i=(e=this.view,t=this.pos,0x100000000*e.getUint32(t)+e.getUint32(t+4));return this.pos+=8,i}readI64(){let e=eA(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){let e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){let e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}}class eW{constructor(e){this.entered=!1,this.extensionCodec=e?.extensionCodec??eU.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.maxDepth=e?.maxDepth??100,this.initialBufferSize=e?.initialBufferSize??2048,this.sortKeys=e?.sortKeys??!1,this.forceFloat32=e?.forceFloat32??!1,this.ignoreUndefined=e?.ignoreUndefined??!1,this.forceIntegerToFloat=e?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new eW({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,t){if(t>this.maxDepth)throw Error(`Too deep objects in depth ${t}`);null==e?this.encodeNil():"boolean"==typeof e?this.encodeBoolean(e):"number"==typeof e?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):"str
1ing"==typeof e?this.encodeString(e):this.useBigInt64&&"bigint"==typeof e?this.encodeBigInt64(e):this.encodeObject(e,t)}ensureBufferSizeToWrite(e){let t=this.pos+e;this.view.byteLength<t&&this.resizeBuffer(2*t)}resizeBuffer(e){let t=new ArrayBuffer(e),i=new Uint8Array(t),s=new DataView(t);i.set(this.bytes),this.view=s,this.bytes=i}encodeNil(){this.writeU8(192)}encodeBoolean(e){!1===e?this.writeU8(194):this.writeU8(195)}encodeNumber(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<0x100000000?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-0x80000000?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}encodeBigInt64(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<0x100000000)this.writeU8(219),this.writeU32(e);else throw Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){let t=function(e){let t=e.length,i=0,s=0;for(;s<t;){let r=e.charCodeAt(s++);if((0xffffff80&r)==0){i++;continue}if((0xfffff800&r)==0)i+=2;else{if(r>=55296&&r<=56319&&s<t){let t=e.charCodeAt(s);(64512&t)==56320&&(++s,r=((1023&r)<<10)+(1023&t)+65536)}(0xffff0000&r)==0?i+=3:i+=4}}return i}(e);this.ensureBufferSizeToWrite(5+t),this.writeStringHeader(t),function(e,t,i){if(e.length>50)ek.encodeInto(e,t.subarray(i));else!function(e,t,i){let s=e.length,r=i,n=0;for(;n<s;){let i=e.charCodeAt(n++);if((0xffffff80&i)==0){t[r++]=i;continue}if((0xfffff800&i)==0)t[r++]=i>>6&31|192;else{if(i>=55296&&i<=56319&&n<s){let t=e.charCodeAt(n);(64512&t)==56320&&(++n,i=((1023&i)<<10)+(1023&t)+65536)}(0xffff0000&i)==0?t[r++]=i>>12&15|224:(t[r++]=i>>18&7|240,t[r++]=i>>12&63|128),t[r++]=i>>6&63|128}t[r++]=63&i|128}}(e,t,i)}(e,this.bytes,this.pos),this.pos+=t}encodeObject(e,t){let i=this.extensionCodec.tryToEncode(e,this.context);if(null!=i)this.encodeExtension(i);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if("object"==typeof e)this.encodeMap(e,t);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){let t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<0x100000000)this.writeU8(198),this.writeU32(t);else throw Error(`Too large binary: ${t}`);let i=eq(e);this.writeU8a(i)}encodeArray(e,t){let i=e.length;if(i<16)this.writeU8(144+i);else if(i<65536)this.writeU8(220),this.writeU16(i);else if(i<0x100000000)this.writeU8(221),this.writeU32(i);else throw Error(`Too large array: ${i}`);for(let i of e)this.doEncode(i,t+1)}countWithoutUndefined(e,t){let i=0;for(let s of t)void 0!==e[s]&&i++;return i}encodeMap(e,t){let i=Object.keys(e);this.sortKeys&&i.sort();let s=this.ignoreUndefined?this.countWithoutUndefined(e,i):i.length;if(s<16)this.writeU8(128+s);else if(s<65536)this.writeU8(222),this.writeU16(s);else if(s<0x100000000)this.writeU8(223),this.writeU32(s);else throw Error(`Too large map object: ${s}`);for(let s of i){let i=e[s];this.ignoreUndefined&&void 0===i||(this.encodeString(s),this.doEncode(i,t+1))}}encodeExtension(e){if("function"==typeof e.data){let t=e.data(this.pos+6),i=t.length;if(i>=0x100000000)throw Error(`Too large extension object: ${i}`);this.writeU8(201),this.writeU32(i),this.writeI8(e.type),this.writeU8a(t);return}let t=e.data.length;if(1===t)this.writeU8(212);else if(2===t)this.writeU8(213);else if(4===t)this.writeU8(214);else if(8===t)this.writeU8(215);else if(16===t)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<0x100000000)this.writeU8(201),this.writeU32(t);else throw Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){let t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){var t,i;this.ensureBufferSizeToWrite(8),t=this.view,i=this.pos,t.setUint32(i,e/0x100000000),t.setUint32(i+4,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),eT(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}}var eJ=i(82692),eZ=i(64190),eY=i(6203),eQ=i(57785),eX=i(55036),e0=i(44168).Buffer;function e1(e){let[t,i]=e.split(":");return{namespace:t,reference:i}}function e2(e,t){return e.includes(":")?[e]:t.chains||[]}var e8=Object.defineProperty,e6=Object.defineProperties,e3=Object.getOwnPropertyDescriptors,e5=Object.getOwnPropertySymbols,e4=Object.prototype.hasOwnProperty,e9=Object.prototype.propertyIsEnumerable,e7=(e,t,i)=>t in e?e8(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,te=(e,t)=>
1{for(var i in t||(t={}))e4.call(t,i)&&e7(e,i,t[i]);if(e5)for(var i of e5(t))e9.call(t,i)&&e7(e,i,t[i]);return e},tt=(e,t,i)=>e7(e,"symbol"!=typeof t?t+"":t,i);let ti={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"};function ts(){return"u">typeof eX&&"u">typeof eX.versions&&"u">typeof eX.versions.node}function tr(){return!(0,eE.getDocument)()&&!!(0,eE.getNavigator)()&&"ReactNative"===navigator.product}function tn(){return!ts()&&!!(0,eE.getNavigator)()&&!!(0,eE.getDocument)()}function to(){return tr()?ti.reactNative:ts()?ti.node:tn()?ti.browser:ti.unknown}function ta(){var e;try{return tr()&&"u">typeof global&&"u">typeof(null==global?void 0:global.Application)?null==(e=global.Application)?void 0:e.applicationId:void 0}catch{return}}function tl(){return(0,ex.g)()||{name:"",description:"",url:"",icons:[""]}}function tc(e,t,i){let s=function(){if(to()===ti.reactNative&&"u">typeof global&&"u">typeof(null==global?void 0:global.Platform)){let{OS:e,Version:t}=global.Platform;return[e,t].join("-")}let e=(0,ev.o0)();if(null===e)return"unknown";let t=e.os?e.os.replace(" ","").toLowerCase():"unknown";return"browser"===e.type?[t,e.name,e.version].join("-"):[t,e.version].join("-")}(),r=function(){var e;let t=to();return t===ti.browser?[t,(null==(e=(0,eE.getLocation)())?void 0:e.host)||"unknown"].join(":"):t}();return[[e,t].join("-"),["js",i].join("-"),s,r].join("/")}function th(e,t){return e.filter(e=>t.includes(e)).length===e.length}function tu(e){return Object.fromEntries(e.entries())}function td(e){return new Map(Object.entries(e))}function tp(e=em.FIVE_MINUTES,t){let i,s,r,n,o=(0,em.toMiliseconds)(e||em.FIVE_MINUTES);return{resolve:e=>{r&&i&&(clearTimeout(r),i(e),n=Promise.resolve(e))},reject:e=>{r&&s&&(clearTimeout(r),s(e))},done:()=>new Promise((e,a)=>{if(n)return e(n);r=setTimeout(()=>{let e=Error(t);n=Promise.reject(e),a(e)},o),i=e,s=a})}}function tf(e,t,i){return new Promise(async(s,r)=>{let n=setTimeout(()=>r(Error(i)),t);try{let t=await e;s(t)}catch(e){r(e)}clearTimeout(n)})}function tg(e,t){if("string"==typeof t&&t.startsWith(`${e}:`))return t;if("topic"===e.toLowerCase()){if("string"!=typeof t)throw Error('Value must be "string" for expirer target type: topic');return`topic:${t}`}if("id"===e.toLowerCase()){if("number"!=typeof t)throw Error('Value must be "number" for expirer target type: id');return`id:${t}`}throw Error(`Unknown expirer target type: ${e}`)}function ty(e){let[t,i]=e.split(":"),s={id:void 0,topic:void 0};if("topic"===t&&"string"==typeof i)s.topic=i;else if("id"===t&&Number.isInteger(Number(i)))s.id=Number(i);else throw Error(`Invalid target, expected id:number or topic:string, got ${t}:${i}`);return s}function tm(e,t){return(0,em.fromMiliseconds)((t||Date.now())+(0,em.toMiliseconds)(e))}function tb(e){return Date.now()>=(0,em.toMiliseconds)(e)}function tw(e,t){return`${e}${t?`:${t}`:""}`}function tv(e=[],t=[]){return[...new Set([...e,...t])]}async function tE({id:e,topic:t,wcDeepLink:i}){var s,r;try{if(!i)return;let n="string"==typeof i?JSON.parse(i):i,o=n?.href;if("string"!=typeof o)return;let a=function(e,t,i){let s=`requestId=${t}&sessionTopic=${i}`;e.endsWith("/")&&(e=e.slice(0,-1));let r=`${e}`;if(e.startsWith("https://t.me")){let t=e.includes("?")?"&startapp=":"?startapp=";r=`${r}${t}${function(e,t=!1){let i=e0.from(e).toString("base64");return t?i.replace(/[=]/g,""):i}(s,!0)}`}else r=`${r}/wc?${s}`;return r}(o,e,t),l=to();if(l===ti.browser){let e;if(!(null!=(s=(0,eE.getDocument)())&&s.hasFocus()))return void console.warn("Document does not have focus, skipping deeplink.");r=a,e="_self",!function(){try{return window.self!==window.top}catch{return!1}}()?("u">typeof window&&(window.TelegramWebviewProxy||window.Telegram||window.TelegramWebviewProxyProto)||r.startsWith("https://")||r.startsWith("http://"))&&(e="_blank"):e="_top",window.open(r,e,"noreferrer noopener")}else l===ti.reactNative&&"u">typeof(null==global?void 0:global.Linking)&&await global.Linking.openURL(a)}catch(e){console.error(e)}}async function tx(e,t){let i="";try{if(tn()&&(i=localStorage.getItem(t)))return i;i=await e.getItem(t)}catch(e){console.error(e)}return i}function tI(e,t){if(!e.includes(t))return null;let i=e.split(/([&,?,=])/),s=i.indexOf(t);return i[s+2]}function t_(){return"u">typeof crypto&&null!=crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function tS(){return"u">typeof eX&&"true"===eX.env.IS_VITEST}function tO(e){return e0.from(e,"base64").toString("utf-8")}class tP{constructor({limit:e}){tt(this,"limit"),tt(this,"set"),this.limit=e,this.set=new Set}
1add(e){if(!this.set.has(e)){if(this.set.size>=this.limit){let e=this.set.values().next().value;e&&this.set.delete(e)}this.set.add(e)}}has(e){return this.set.has(e)}}let tR=BigInt(0x100000000-1),tT=BigInt(32);function tA(e,t=!1){return t?{h:Number(e&tR),l:Number(e>>tT&tR)}:{h:0|Number(e>>tT&tR),l:0|Number(e&tR)}}function tN(e,t=!1){let i=e.length,s=new Uint32Array(i),r=new Uint32Array(i);for(let n=0;n<i;n++){let{h:i,l:o}=tA(e[n],t);[s[n],r[n]]=[i,o]}return[s,r]}let tU=(e,t,i)=>e>>>i,tk=(e,t,i)=>e<<32-i|t>>>i,tB=(e,t,i)=>e>>>i|t<<32-i,tC=(e,t,i)=>e<<32-i|t>>>i,tq=(e,t,i)=>e<<64-i|t>>>i-32,tL=(e,t,i)=>e>>>i-32|t<<64-i;function tD(e,t,i,s){let r=(t>>>0)+(s>>>0);return{h:e+i+(r/0x100000000|0)|0,l:0|r}}let tj=(e,t,i)=>(e>>>0)+(t>>>0)+(i>>>0),tM=(e,t,i,s)=>t+i+s+(e/0x100000000|0)|0,t$=(e,t,i,s)=>(e>>>0)+(t>>>0)+(i>>>0)+(s>>>0),tz=(e,t,i,s,r)=>t+i+s+r+(e/0x100000000|0)|0,tK=(e,t,i,s,r)=>(e>>>0)+(t>>>0)+(i>>>0)+(s>>>0)+(r>>>0),tV=(e,t,i,s,r,n)=>t+i+s+r+n+(e/0x100000000|0)|0,tF="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function tH(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function tG(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function tW(e,...t){if(!tH(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function tJ(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.createHasher");tG(e.outputLen),tG(e.blockLen)}function tZ(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function tY(e,t){tW(e);let i=t.outputLen;if(e.length<i)throw Error("digestInto() expects output buffer of length at least "+i)}function tQ(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function tX(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function t0(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function t1(e,t){return e<<32-t|e>>>t}let t2=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0];function t8(e){return e<<24&0xff000000|e<<8&0xff0000|e>>>8&65280|e>>>24&255}let t6=t2?e=>e:e=>t8(e),t3=t2?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=t8(e[t]);return e},t5="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,t4=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function t9(e){if(tW(e),t5)return e.toHex();let t="";for(let i=0;i<e.length;i++)t+=t4[e[i]];return t}let t7={_0:48,_9:57,A:65,F:70,a:97,f:102};function ie(e){return e>=t7._0&&e<=t7._9?e-t7._0:e>=t7.A&&e<=t7.F?e-(t7.A-10):e>=t7.a&&e<=t7.f?e-(t7.a-10):void 0}function it(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);if(t5)return Uint8Array.fromHex(e);let t=e.length,i=t/2;if(t%2)throw Error("hex string expected, got unpadded hex of length "+t);let s=new Uint8Array(i);for(let t=0,r=0;t<i;t++,r+=2){let i=ie(e.charCodeAt(r)),n=ie(e.charCodeAt(r+1));if(void 0===i||void 0===n)throw Error('hex string expected, got non-hex character "'+(e[r]+e[r+1])+'" at index '+r);s[t]=16*i+n}return s}function ii(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function is(e){return"string"==typeof e&&(e=ii(e)),tW(e),e}function ir(...e){let t=0;for(let i=0;i<e.length;i++){let s=e[i];tW(s),t+=s.length}let i=new Uint8Array(t);for(let t=0,s=0;t<e.length;t++){let r=e[t];i.set(r,s),s+=r.length}return i}class io{}function ia(e){let t=t=>e().update(is(t)).digest(),i=e();return t.outputLen=i.outputLen,t.blockLen=i.blockLen,t.create=()=>e(),t}function il(e=32){if(tF&&"function"==typeof tF.getRandomValues)return tF.getRandomValues(new Uint8Array(e));if(tF&&"function"==typeof tF.randomBytes)return Uint8Array.from(tF.randomBytes(e));throw Error("crypto.getRandomValues must be defined")}let ic=BigInt(0),ih=BigInt(1),iu=BigInt(2),id=BigInt(7),ip=BigInt(256),ig=BigInt(113),iy=[],im=[],ib=[];for(let e=0,t=ih,i=1,s=0;e<24;e++){[i,s]=[s,(2*i+3*s)%5],iy.push(2*(5*s+i)),im.push((e+1)*(e+2)/2%64);let r=ic;for(let e=0;e<7;e++)(t=(t<<ih^(t>>id)*ig)%ip)&iu&&(r^=ih<<(ih<<BigInt(e))-ih);ib.push(r)}let iw=tN(ib,!0),iv=iw[0],iE=iw[1],ix=(e,t,i)=>i>32?((e,t,i)=>t<<i-32|e>>>64-i)(e,t,i):((e,t,i)=>e<<i|t>>>32-i)(e,t,i),iI=(e,t,i)=>i>32?((e,t,i)=>e<<i-32|t>>>64-i)(e,t,i):((e,t,i)=>t<<i|e>>>32-i)(e,t,i);class i_ extends io{constructor(e,t,i,s=!1,r=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=i,this.enableXOF=s,this.rounds=r,tG(i),!(0<e&&e<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=tQ(this.state)}clone(){return this._cloneInto()}keccak(){t3(this.state32),function(e,t=24){let i=new Uint32Array(10);for(let s=24-t;s<24;s++){for(let t=0;t<10;t++)i[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let s=(t+8)%10,r=(t+2)%10,n=i[r],o=i[r+1],a=ix(n,o,1)^i[s],l=iI(n,o,1)^i[s+1];for(let i=0;i<50;i+=10)e[t+i]^=a,e[t+i+1]^=l}let t=e[2],r=e[3];for(let i=0;i<24;i++){let s=im[i],n=ix(t,r,s),o=iI(t,r,s),a=iy[i];t=e[a],r=e[a+1],e[a]=n,e[a+1]=o}for(let t=0;t<50;t+=10){for(let s=0;s<10;s++)i[s]=e[t+s];for(let s=0;s<10;s++)e[t+s]^=~i[(s+2)%10]&i[(s+4)%10]}e[0]^=iv[s],e[1]^=iE[s]}tX(i)}(this.state32,this.rounds),t3(this.state32),this.posOut=0,this.pos=0}update(e){tZ(this),tW(e=is(e));let{blockLen:t,state:i}=this,s=e.length;for(let r=0;r<s;){let n=Math.min(t-this.pos,s-r);for(let t=0;t<n;t++)i[this.pos++]^=e[r++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:i,blockLen:s}=this;e[i]^=t,(128&t)!=0&&i===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){tZ(this,!1),tW(e),this.finish();let t=this.state,{blockLen:i}=this;for(let s=0,r=e.length;s<r;){this.posOut>=i&&this.keccak();let n=Math.min(i-this.posOut,r-s);e.set(t.subarray(this.posOut,this.posOut+n),s),this.posOut+=n,s+=n}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return tG(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(tY(e,this),this.finished)throw Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,tX(this.state)}_cloneInto(e){let{blockLen:t,suffix:i,outputLen:s,rounds:r,enableXOF:n}=this;return e||(e=new i_(t,i,s,n,r)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=r,e.suffix=i,e.outputLen=s,e.enableXOF=n,e.destroyed=this.destroyed,e}}let iS=ia(()=>new i_(136,1,32));class iO extends io{constructor(e,t,i,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=s,this.buffer=new Uint8Array(e),this.view=t0(this.buffer)}update(e){tZ(this),tW(e=is(e));let{view:t,buffer:i,blockLen:s}=this,r=e.length;for(let n=0;n<r;){let o=Math.min(s-this.pos,r-n);if(o===s){let t=t0(e);for(;s<=r-n;n+=s)this.process(t,n);continue}i.set(e.subarray(n,n+o),this.pos),this.pos+=o,n+=o,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){tZ(this),tY(e,this),this.finished=!0;let{buffer:t,view:i,blockLen:s,isLE:r}=this,{pos:n}=this;t[n++]=128,tX(this.buffer.subarray(n)),this.padOffset>s-n&&(this.process(i,0),n=0);for(let e=n;e<s;e++)t[e]=0;(function(e,t,i,s){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,i,s);let r=BigInt(32),n=BigInt(0xffffffff),o=Number(i>>r&n),a=Number(i&n),l=4*!!s,c=4*!s;e.setUint32(t+l,o,s),e.setUint32(t+c,a,s)})(i,s-8,BigInt(8*this.length),r),this.process(i,0);let o=t0(e),a=this.outputLen;if(a%4)throw Error("_sha2: outputLen should be aligned to 32bit");let l=a/4,c=this.get();if(l>c.length)throw Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)o.setUint32(4*e,c[e],r)}
1digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:i,length:s,finished:r,destroyed:n,pos:o}=this;return e.destroyed=n,e.finished=r,e.length=s,e.pos=o,s%t&&e.buffer.set(i),e}clone(){return this._cloneInto()}}let iP=Uint32Array.from([0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19]),iR=Uint32Array.from([0xcbbb9d5d,0xc1059ed8,0x629a292a,0x367cd507,0x9159015a,0x3070dd17,0x152fecd8,0xf70e5939,0x67332667,0xffc00b31,0x8eb44a87,0x68581511,0xdb0c2e0d,0x64f98fa7,0x47b5481d,0xbefa4fa4]),iT=Uint32Array.from([0x6a09e667,0xf3bcc908,0xbb67ae85,0x84caa73b,0x3c6ef372,0xfe94f82b,0xa54ff53a,0x5f1d36f1,0x510e527f,0xade682d1,0x9b05688c,0x2b3e6c1f,0x1f83d9ab,0xfb41bd6b,0x5be0cd19,0x137e2179]),iA=Uint32Array.from([0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2]),iN=new Uint32Array(64);class iU extends iO{constructor(e=32){super(64,e,8,!1),this.A=0|iP[0],this.B=0|iP[1],this.C=0|iP[2],this.D=0|iP[3],this.E=0|iP[4],this.F=0|iP[5],this.G=0|iP[6],this.H=0|iP[7]}get(){let{A:e,B:t,C:i,D:s,E:r,F:n,G:o,H:a}=this;return[e,t,i,s,r,n,o,a]}set(e,t,i,s,r,n,o,a){this.A=0|e,this.B=0|t,this.C=0|i,this.D=0|s,this.E=0|r,this.F=0|n,this.G=0|o,this.H=0|a}process(e,t){for(let i=0;i<16;i++,t+=4)iN[i]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=iN[e-15],i=iN[e-2],s=t1(t,7)^t1(t,18)^t>>>3,r=t1(i,17)^t1(i,19)^i>>>10;iN[e]=r+iN[e-7]+s+iN[e-16]|0}let{A:i,B:s,C:r,D:n,E:o,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){var h,u,d,p;let t=c+(t1(o,6)^t1(o,11)^t1(o,25))+((h=o)&a^~h&l)+iA[e]+iN[e]|0,f=(t1(i,2)^t1(i,13)^t1(i,22))+((u=i)&(d=s)^u&(p=r)^d&p)|0;c=l,l=a,a=o,o=n+t|0,n=r,r=s,s=i,i=t+f|0}i=i+this.A|0,s=s+this.B|0,r=r+this.C|0,n=n+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(i,s,r,n,o,a,l,c)}roundClean(){tX(iN)}destroy(){this.set(0,0,0,0,0,0,0,0),tX(this.buffer)}}let ik=tN(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e3585
15771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),iB=ik[0],iC=ik[1],iq=new Uint32Array(80),iL=new Uint32Array(80);class iD extends iO{constructor(e=64){super(128,e,16,!1),this.Ah=0|iT[0],this.Al=0|iT[1],this.Bh=0|iT[2],this.Bl=0|iT[3],this.Ch=0|iT[4],this.Cl=0|iT[5],this.Dh=0|iT[6],this.Dl=0|iT[7],this.Eh=0|iT[8],this.El=0|iT[9],this.Fh=0|iT[10],this.Fl=0|iT[11],this.Gh=0|iT[12],this.Gl=0|iT[13],this.Hh=0|iT[14],this.Hl=0|iT[15]}get(){let{Ah:e,Al:t,Bh:i,Bl:s,Ch:r,Cl:n,Dh:o,Dl:a,Eh:l,El:c,Fh:h,Fl:u,Gh:d,Gl:p,Hh:f,Hl:g}=this;return[e,t,i,s,r,n,o,a,l,c,h,u,d,p,f,g]}set(e,t,i,s,r,n,o,a,l,c,h,u,d,p,f,g){this.Ah=0|e,this.Al=0|t,this.Bh=0|i,this.Bl=0|s,this.Ch=0|r,this.Cl=0|n,this.Dh=0|o,this.Dl=0|a,this.Eh=0|l,this.El=0|c,this.Fh=0|h,this.Fl=0|u,this.Gh=0|d,this.Gl=0|p,this.Hh=0|f,this.Hl=0|g}process(e,t){for(let i=0;i<16;i++,t+=4)iq[i]=e.getUint32(t),iL[i]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=0|iq[e-15],i=0|iL[e-15],s=tB(t,i,1)^tB(t,i,8)^tU(t,i,7),r=tC(t,i,1)^tC(t,i,8)^tk(t,i,7),n=0|iq[e-2],o=0|iL[e-2],a=tB(n,o,19)^tq(n,o,61)^tU(n,o,6),l=t$(r,tC(n,o,19)^tL(n,o,61)^tk(n,o,6),iL[e-7],iL[e-16]),c=tz(l,s,a,iq[e-7],iq[e-16]);iq[e]=0|c,iL[e]=0|l}let{Ah:i,Al:s,Bh:r,Bl:n,Ch:o,Cl:a,Dh:l,Dl:c,Eh:h,El:u,Fh:d,Fl:p,Gh:f,Gl:g,Hh:y,Hl:m}=this;for(let e=0;e<80;e++){let t=tB(h,u,14)^tB(h,u,18)^tq(h,u,41),b=tC(h,u,14)^tC(h,u,18)^tL(h,u,41),w=h&d^~h&f,v=tK(m,b,u&p^~u&g,iC[e],iL[e]),E=tV(v,y,t,w,iB[e],iq[e]),x=0|v,I=tB(i,s,28)^tq(i,s,34)^tq(i,s,39),_=tC(i,s,28)^tL(i,s,34)^tL(i,s,39),S=i&r^i&o^r&o,O=s&n^s&a^n&a;y=0|f,m=0|g,f=0|d,g=0|p,d=0|h,p=0|u,({h:h,l:u}=tD(0|l,0|c,0|E,0|x)),l=0|o,c=0|a,o=0|r,a=0|n,r=0|i,n=0|s;let P=tj(x,_,O);i=tM(P,E,I,S),s=0|P}({h:i,l:s}=tD(0|this.Ah,0|this.Al,0|i,0|s)),({h:r,l:n}=tD(0|this.Bh,0|this.Bl,0|r,0|n)),({h:o,l:a}=tD(0|this.Ch,0|this.Cl,0|o,0|a)),({h:l,l:c}=tD(0|this.Dh,0|this.Dl,0|l,0|c)),({h:h,l:u}=tD(0|this.Eh,0|this.El,0|h,0|u)),({h:d,l:p}=tD(0|this.Fh,0|this.Fl,0|d,0|p)),({h:f,l:g}=tD(0|this.Gh,0|this.Gl,0|f,0|g)),({h:y,l:m}=tD(0|this.Hh,0|this.Hl,0|y,0|m)),this.set(i,s,r,n,o,a,l,c,h,u,d,p,f,g,y,m)}roundClean(){tX(iq,iL)}destroy(){tX(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class ij extends iD{constructor(){super(48),this.Ah=0|iR[0],this.Al=0|iR[1],this.Bh=0|iR[2],this.Bl=0|iR[3],this.Ch=0|iR[4],this.Cl=0|iR[5],this.Dh=0|iR[6],this.Dl=0|iR[7],this.Eh=0|iR[8],this.El=0|iR[9],this.Fh=0|iR[10],this.Fl=0|iR[11],this.Gh=0|iR[12],this.Gl=0|iR[13],this.Hh=0|iR[14],this.Hl=0|iR[15]}}let iM=Uint32Array.from([0x22312194,0xfc2bf72c,0x9f555fa3,0xc84c64c2,0x2393b86b,0x6f53b151,0x96387719,0x5940eabd,0x96283ee2,0xa88effe3,0xbe5e1e25,0x53863992,0x2b0199fc,0x2c85b8aa,0xeb72ddc,0x81c52ca2]);class i$ extends iD{constructor(){super(32),this.Ah=0|iM[0],this.Al=0|iM[1],this.Bh=0|iM[2],this.Bl=0|iM[3],this.Ch=0|iM[4],this.Cl=0|iM[5],this.Dh=0|iM[6],this.Dl=0|iM[7],this.Eh=0|iM[8],this.El=0|iM[9],this.Fh=0|iM[10],this.Fl=0|iM[11],this.Gh=0|iM[12],this.Gl=0|iM[13],this.Hh=0|iM[14],this.Hl=0|iM[15]}}let iz=ia(()=>new iU),iK=ia(()=>new iD),iV=ia(()=>new ij),iF=ia(()=>new i$),iH=Uint8Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]),iG=Uint32Array.from([0xf3bcc908,0x6a09e66
17,0x84caa73b,0xbb67ae85,0xfe94f82b,0x3c6ef372,0x5f1d36f1,0xa54ff53a,0xade682d1,0x510e527f,0x2b3e6c1f,0x9b05688c,0xfb41bd6b,0x1f83d9ab,0x137e2179,0x5be0cd19]),iW=new Uint32Array(32);function iJ(e,t,i,s,r,n){let o=r[n],a=r[n+1],l=iW[2*e],c=iW[2*e+1],h=iW[2*t],u=iW[2*t+1],d=iW[2*i],p=iW[2*i+1],f=iW[2*s],g=iW[2*s+1],y=tj(l,h,o);c=tM(y,c,u,a),l=0|y,({Dh:g,Dl:f}={Dh:g^c,Dl:f^l}),({Dh:g,Dl:f}={Dh:f,Dl:g}),({h:p,l:d}=tD(p,d,g,f)),({Bh:u,Bl:h}={Bh:u^p,Bl:h^d}),({Bh:u,Bl:h}={Bh:tB(u,h,24),Bl:tC(u,h,24)}),iW[2*e]=l,iW[2*e+1]=c,iW[2*t]=h,iW[2*t+1]=u,iW[2*i]=d,iW[2*i+1]=p,iW[2*s]=f,iW[2*s+1]=g}function iZ(e,t,i,s,r,n){let o=r[n],a=r[n+1],l=iW[2*e],c=iW[2*e+1],h=iW[2*t],u=iW[2*t+1],d=iW[2*i],p=iW[2*i+1],f=iW[2*s],g=iW[2*s+1],y=tj(l,h,o);c=tM(y,c,u,a),l=0|y,({Dh:g,Dl:f}={Dh:g^c,Dl:f^l}),({Dh:g,Dl:f}={Dh:tB(g,f,16),Dl:tC(g,f,16)}),({h:p,l:d}=tD(p,d,g,f)),({Bh:u,Bl:h}={Bh:u^p,Bl:h^d}),({Bh:u,Bl:h}={Bh:tq(u,h,63),Bl:tL(u,h,63)}),iW[2*e]=l,iW[2*e+1]=c,iW[2*t]=h,iW[2*t+1]=u,iW[2*i]=d,iW[2*i+1]=p,iW[2*s]=f,iW[2*s+1]=g}class iY extends io{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,tG(e),tG(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=tQ(this.buffer)}update(e){tZ(this),tW(e=is(e));let{blockLen:t,buffer:i,buffer32:s}=this,r=e.length,n=e.byteOffset,o=e.buffer;for(let a=0;a<r;){this.pos===t&&(t3(s),this.compress(s,0,!1),t3(s),this.pos=0);let l=Math.min(t-this.pos,r-a),c=n+a;if(l===t&&!(c%4)&&a+l<r){let e=new Uint32Array(o,c,Math.floor((r-a)/4));t3(e);for(let i=0;a+t<r;i+=s.length,a+=t)this.length+=t,this.compress(e,i,!1);t3(e);continue}i.set(e.subarray(a,a+l),this.pos),this.pos+=l,this.length+=l,a+=l}return this}digestInto(e){tZ(this),tY(e,this);let{pos:t,buffer32:i}=this;this.finished=!0,tX(this.buffer.subarray(t)),t3(i),this.compress(i,0,!0),t3(i);let s=tQ(e);this.get().forEach((e,t)=>s[t]=t6(e))}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){let{buffer:t,length:i,finished:s,destroyed:r,outputLen:n,pos:o}=this;return e||(e=new this.constructor({dkLen:n})),e.set(...this.get()),e.buffer.set(t),e.destroyed=r,e.finished=s,e.length=i,e.pos=o,e.outputLen=n,e}clone(){return this._cloneInto()}}class iQ extends iY{constructor(e={}){let t=void 0===e.dkLen?64:e.dkLen;super(128,t),this.v0l=0|iG[0],this.v0h=0|iG[1],this.v1l=0|iG[2],this.v1h=0|iG[3],this.v2l=0|iG[4],this.v2h=0|iG[5],this.v3l=0|iG[6],this.v3h=0|iG[7],this.v4l=0|iG[8],this.v4h=0|iG[9],this.v5l=0|iG[10],this.v5h=0|iG[11],this.v6l=0|iG[12],this.v6h=0|iG[13],this.v7l=0|iG[14],this.v7h=0|iG[15],function(e,t={},i,s,r){if(tG(64),e<0||e>64)throw Error("outputLen bigger than keyLen");let{key:n,salt:o,personalization:a}=t;if(void 0!==n&&(n.length<1||n.length>i))throw Error("key length must be undefined or 1.."+i);if(void 0!==o&&16!==o.length)throw Error("salt must be undefined or 16");if(void 0!==a&&16!==a.length)throw Error("personalization must be undefined or 16")}(t,e,64,16,16);let{key:i,personalization:s,salt:r}=e,n=0;if(void 0!==i&&(n=(i=is(i)).length),this.v0l^=this.outputLen|n<<8|0x1010000,void 0!==r){let e=tQ(r=is(r));this.v4l^=t6(e[0]),this.v4h^=t6(e[1]),this.v5l^=t6(e[2]),this.v5h^=t6(e[3])}if(void 0!==s){let e=tQ(s=is(s));this.v6l^=t6(e[0]),this.v6h^=t6(e[1]),this.v7l^=t6(e[2]),this.v7h^=t6(e[3])}if(void 0!==i){let e=new Uint8Array(this.blockLen);e.set(i),this.update(e)}}get(){let{v0l:e,v0h:t,v1l:i,v1h:s,v2l:r,v2h:n,v3l:o,v3h:a,v4l:l,v4h:c,v5l:h,v5h:u,v6l:d,v6h:p,v7l:f,v7h:g}=this;return[e,t,i,s,r,n,o,a,l,c,h,u,d,p,f,g]}set(e,t,i,s,r,n,o,a,l,c,h,u,d,p,f,g){this.v0l=0|e,this.v0h=0|t,this.v1l=0|i,this.v1h=0|s,this.v2l=0|r,this.v2h=0|n,this.v3l=0|o,this.v3h=0|a,this.v4l=0|l,this.v4h=0|c,this.v5l=0|h,this.v5h=0|u,this.v6l=0|d,this.v6h=0|p,this.v7l=0|f,this.v7h=0|g}compress(e,t,i){this.get().forEach((e,t)=>iW[t]=e),iW.set(iG,16);let{h:s,l:r}=tA(BigInt(this.length));iW[24]=iG[8]^r,iW[25]=iG[9]^s,i&&(iW[28]=~iW[28],iW[29]=~iW[29]);let n=0;for(let i=0;i<12;i++)iJ(0,4,8,12,e,t+2*iH[n++]),iZ(0,4,8,12,e,t+2*iH[n++]),iJ(1,5,9,13,e,t+2*iH[n++]),iZ(1,5,9,13,e,t+2*iH[n++]),iJ(2,6,10,14,e,t+2*iH[n++]),iZ(2,6,10,14,e,t+2*iH[n++]),iJ(3,7,11,15,e,t+2*iH[n++]),iZ(3,7,11,15,e,t+2*iH[n++]),iJ(0,5,10,15,e,t+2*iH[n++]),iZ(0,5,10,15,e,t+2*iH[n++]),iJ(1,6,11,12,e,t+2*iH[n++]),iZ(1,6,11,12,e,t+2*iH[n++]),iJ(2,7,8,13,e,t+2*iH[n++]),iZ(2,7,8,13,e,t+2*iH[n++]),iJ(3,4,9,14,e,t+2*iH[n++]),iZ(3,4,9,14,e,t+2*iH[n++]);this.v0l^=iW[0]^iW[16],this.v0h^=iW[1]^iW[17],this.v1l^=iW[2]^iW[18],this.v1h^=iW[3]^iW[19],this.v2l^=iW[4]^iW[20],this.v2h^=iW[5]^iW[21],this.v3l^=iW[6]^iW[22],this.v3h^=iW[7]^iW[23],this.v4l^=iW[8]^iW[24],this.v4h^=iW[9]^iW[25],this.v5l^=iW[10]^iW[26],this.v5h^=iW[11]^iW[27],this.v6l^=iW[12]^iW[28],this.v6h^=iW[13]^iW[29],this.v7l^=iW[14]^iW[30],this.v7h^=iW[15]^iW[31],tX(iW)}destroy(){this.destroyed=!0,tX(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}let iX=function(e){let t=(t,i)=>e(i).update(is(t)).digest(),i=e({});return t.outputLen=i.outputLen,t.blockLen=i.blockLen,t.create=t=>e(t),t}(e=>
1new iQ(e));function i0(e){let t=`�Ethereum Signed Message:
2${e.length}`,i=new TextEncoder().encode(t+e);return"0x"+e0.from(iS(i)).toString("hex")}async function i1(e,t,i,s,r,n){switch(i.t){case"eip191":return await function(e,t,i){let s=eI.aD(i);return e_.x_({payload:i0(t),signature:s}).toLowerCase()===e.toLowerCase()}(e,t,i.s);case"eip1271":return await i2(e,t,i.s,s,r,n);default:throw Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${i.t}`)}}async function i2(e,t,i,s,r,n){let o=e1(s);if(!o.namespace||!o.reference)throw Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${s}`);try{let o="0x1626ba7e",a=i.substring(2),l=(a.length/2).toString(16).padStart(64,"0"),c=(t.startsWith("0x")?t:i0(t)).substring(2),h=o+c+"0000000000000000000000000000000000000000000000000000000000000040"+l+a,u=await fetch(`${n||"https://rpc.walletconnect.org/v1"}/?chainId=${s}&projectId=${r}`,{headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify({id:Date.now()+Math.floor(1e3*Math.random()),jsonrpc:"2.0",method:"eth_call",params:[{to:e,data:h},"latest"]})}),{result:d}=await u.json();return!!d&&d.slice(0,o.length).toLowerCase()===o.toLowerCase()}catch(e){return console.error("isValidEip1271Signature: ",e),!1}}function i8(e){let t=new Uint8Array(iz(function(e){if(e instanceof Uint8Array)return e;if(Array.isArray(e))return new Uint8Array(e);if("object"==typeof e&&null!=e&&e.data)return new Uint8Array(Object.values(e.data));if("object"==typeof e&&e)return new Uint8Array(Object.values(e));throw Error("getNearUint8ArrayFromBytes: Unexpected result type from bytes array")}(e)));return eS.A.encode(t)}function i6(e){var t;let i=(t=e0.from(e,"base64"),new eG(void 0).decode(t)).txn;if(!i)throw Error("Invalid signed transaction: missing 'txn' field");let s=new eW(void 0).encodeSharedRef(i),r=e0.from("TX"),n=iF(e0.concat([r,e0.from(s)]));return eJ.RG.encode(n).replace(/=+$/,"")}function i3(e){let t=[],i=BigInt(e);for(;i>=BigInt(128);)t.push(Number(i&BigInt(127)|BigInt(128))),i>>=BigInt(7);return t.push(Number(i)),e0.from(t)}var i5=Object.defineProperty,i4=Object.defineProperties,i9=Object.getOwnPropertyDescriptors,i7=Object.getOwnPropertySymbols,se=Object.prototype.hasOwnProperty,st=Object.prototype.propertyIsEnumerable,si=(e,t,i)=>t in e?i5(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;let ss="did:pkh:",sr={eip155:"Ethereum",solana:"Solana",bip122:"Bitcoin"},sn=e=>e?.split(":"),so=e=>{let t=e&&sn(e);if(t)return t[2]+":"+t[3]},sa=e=>{let t=e&&sn(e);if(t)return t.pop()};async function sl(e){let{cacao:t,projectId:i}=e,{s:s,p:r}=t,n=sc(r,r.iss),o=sa(r.iss);return await i1(o,n,s,so(r.iss),i)}let sc=(e,t)=>{let i=(e=>{let t=e&&sn(e);if(t)return e.includes(ss)?t[2]:t[0]})(t);if(!i)throw Error("Invalid issuer: "+t);let s=`${e.domain} wants you to sign in with your ${(e=>e?sr[e]||e:"")(i)} account:`,r=sa(t);if(!e.aud&&!e.uri)throw Error("Either `aud` or `uri` is required to construct the message");let n=e.statement||void 0,o=`URI: ${e.aud||e.uri}`,a=`Version: ${e.version}`,l=`Chain ID: ${(e=>{let t=e&&sn(e);if(t)return e.includes(ss)?t[3]:t[1]})(t)}`,c=`Nonce: ${e.nonce}`,h=`Issued At: ${e.iat}`,u=e.exp?`Expiration Time: ${e.exp}`:void 0,d=e.nbf?`Not Before: ${e.nbf}`:void 0,p=e.requestId?`Request ID: ${e.requestId}`:void 0,f=e.resources?`Resources:${e.resources.map(e=>`
3- ${e}`).join("")}`:void 0,g=sg(e.resources);return g&&(n=function(e="",t){sh(t);let i="I further authorize the stated URI to perform the following actions on my behalf: ";if(e.includes(i))return e;let s=[],r=0;Object.keys(t.att).forEach(e=>{let i=Object.keys(t.att[e]).map(e=>({ability:e.split("/")[0],action:e.split("/")[1]}));i.sort((e,t)=>e.action.localeCompare(t.action));let n={};i.forEach(e=>{n[e.ability]||(n[e.ability]=[]),n[e.ability].push(e.action)});let o=Object.keys(n).map(t=>(r++,`(${r}) '${t}': '${n[t].join("', '")}' for '${e}'.`));s.push(o.join(", ").replace(".,","."))});let n=s.join(" "),o=`${i}${n}`;return`${e?e+" ":""}${o}`}(n,sd(g))),[s,r,"",n,"",o,a,l,c,h,u,d,p,f].filter(e=>null!=e).join(`
4`)};function sh(e){if(!e)throw Error("No recap provided, value is undefined");if(!e.att)throw Error("No `att` property found");let t=Object.keys(e.att);if(!(null!=t&&t.length))throw Error("No resources found in `att` property");t.forEach(t=>{let i=e.att[t];if(Array.isArray(i)||"object"!=typeof i)throw Error(`Resource must be an object: ${t}`);if(!Object.keys(i).length)throw Error(`Resource object is empty: ${t}`);
4Object.keys(i).forEach(e=>{let t=i[e];if(!Array.isArray(t))throw Error(`Ability limits ${e} must be an array of objects, found: ${t}`);if(!t.length)throw Error(`Value of ${e} is empty array, must be an array with objects`);t.forEach(t=>{if("object"!=typeof t)throw Error(`Ability limits (${e}) must be an array of objects, found: ${t}`)})})})}function su(e){return sh(e),`urn:recap:${e0.from(JSON.stringify(e)).toString("base64").replace(/=/g,"")}`}function sd(e){var t;let i=(t=e.replace("urn:recap:",""),JSON.parse(e0.from(t,"base64").toString("utf-8")));return sh(i),i}function sp(e){var t;let i=sd(e);sh(i);let s=null==(t=i.att)?void 0:t.eip155;return s?Object.keys(s).map(e=>e.split("/")[1]):[]}function sf(e){let t=sd(e);sh(t);let i=[];return Object.values(t.att).forEach(e=>{Object.values(e).forEach(e=>{var t;null!=(t=e?.[0])&&t.chains&&i.push(e[0].chains)})}),[...new Set(i.flat())]}function sg(e){if(!e)return;let t=e?.[e.length-1];return t&&t.includes("urn:recap:")?t:void 0}function sy(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function sm(e){if("boolean"!=typeof e)throw Error(`boolean expected, not ${e}`)}function sb(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function sw(e,...t){if(!sy(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function sv(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function sE(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function sx(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}let sI=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0];function s_(e){if("string"==typeof e)e=function(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}(e);else if(sy(e))e=sP(e);else throw Error("Uint8Array expected, got "+typeof e);return e}function sS(e,t,i=!0){if(void 0===t)return new Uint8Array(e);if(t.length!==e)throw Error("invalid output length, expected "+e+", got: "+t.length);if(i&&t.byteOffset%4!=0)throw Error("invalid output, must be aligned");return t}function sO(e,t,i,s){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,i,s);let r=BigInt(32),n=BigInt(0xffffffff),o=Number(i>>r&n),a=Number(i&n),l=4*!!s,c=4*!s;e.setUint32(t+l,o,s),e.setUint32(t+c,a,s)}function sP(e){return Uint8Array.from(e)}let sR=e=>Uint8Array.from(e.split("").map(e=>e.charCodeAt(0))),sT=sR("expand 16-byte k"),sA=sR("expand 32-byte k"),sN=sE(sT),sU=sE(sA);function sk(e,t){return e<<t|e>>>32-t}function sB(e){return e.byteOffset%4==0}let sC=0x100000000-1,sq=new Uint32Array,sL=(e,t)=>255&e[t++]|(255&e[t++])<<8;class sD{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,sw(e=s_(e),32);let t=sL(e,0),i=sL(e,2),s=sL(e,4),r=sL(e,6),n=sL(e,8),o=sL(e,10),a=sL(e,12),l=sL(e,14);this.r[0]=8191&t,this.r[1]=(t>>>13|i<<3)&8191,this.r[2]=(i>>>10|s<<6)&7939,this.r[3]=(s>>>7|r<<9)&8191,this.r[4]=(r>>>4|n<<12)&255,this.r[5]=n>>>1&8190,this.r[6]=(n>>>14|o<<2)&8191,this.r[7]=(o>>>11|a<<5)&8065,this.r[8]=(a>>>8|l<<8)&8191,this.r[9]=l>>>5&127;for(let t=0;t<8;t++)this.pad[t]=sL(e,16+2*t)}process(e,t,i=!1){let{h:s,r:r}=this,n=r[0],o=r[1],a=r[2],l=r[3],c=r[4],h=r[5],u=r[6],d=r[7],p=r[8],f=r[9],g=sL(e,t+0),y=sL(e,t+2),m=sL(e,t+4),b=sL(e,t+6),w=sL(e,t+8),v=sL(e,t+10),E=sL(e,t+12),x=sL(e,t+14),I=s[0]+(8191&g),_=s[1]+((g>>>13|y<<3)&8191),S=s[2]+((y>>>10|m<<6)&8191),O=s[3]+((m>>>7|b<<9)&8191),P=s[4]+((b>>>4|w<<12)&8191),R=s[5]+(w>>>1&8191),T=s[6]+((w>>>14|v<<2)&8191),A=s[7]+((v>>>11|E<<5)&8191),N=s[8]+((E>>>8|x<<8)&8191),U=s[9]+(x>>>5|2048*!i),k=0,B=0+I*n+5*f*_+5*p*S+5*d*O+5*u*P;k=B>>>13,B&=8191,B+=5*h*R+5*c*T+5*l*A+5*a*N+5*o*U,k+=B>>>13,B&=8191;let C=k+I*o+_*n+5*f*S+5*p*O+5*d*P;k=C>>>13,C&=8191,C+=5*u*R+5*h*T+5*c*A+5*l*N+5*a*U,k+=C>>>13,C&=8191;let q=k+I*a+_*o+S*n+5*f*O+5*p*P;k=q>>>13,q&=8191,q+=5*d*R+5*u*T+5*h*A+5*c*N+5*l*U,k+=q>>>13,q&=8191;let L=k+I*l+_*a+S*o+O*n+5*f*P;k=L>>>13,L&=8191,L+=5*p*R+5*d*T+5*u*A+5*h*N+5*c*U,k+=L>>>13,L&=8191;let D=k+I*c+_*l+S*a+O*o+P*n;k=D>>>13,D&=8191,D+=5*f*R+5*p*T+5*d*A+5*u*N+5*h*U,k+=D>>>13,D&=8191;let j=k+I*h+_*c+S*l+O*a+P*o;k=j>>>13,j&=8191,j+=R*n+5*f*T+5*p*A+5*d*N+5*u*U,k+=j>>>13,j&=8191;let M=k+I*u+_*h+S*c+O*l+P*a;k=M>>>13,M&=8191,M+=R*o+T*n+5*f*A+5*p*N+5*d*U,k+=M>>>13,M&=8191;let $=k+I*d+_*u+S*h+O*c+P*l;k=$>>
4>13,$&=8191,$+=R*a+T*o+A*n+5*f*N+5*p*U,k+=$>>>13,$&=8191;let z=k+I*p+_*d+S*u+O*h+P*c;k=z>>>13,z&=8191,z+=R*l+T*a+A*o+N*n+5*f*U,k+=z>>>13,z&=8191;let K=k+I*f+_*p+S*d+O*u+P*h;k=K>>>13,K&=8191,K+=R*c+T*l+A*a+N*o+U*n,k+=K>>>13,K&=8191,B=8191&(k=(k=(k<<2)+k|0)+B|0),k>>>=13,C+=k,s[0]=B,s[1]=C,s[2]=q,s[3]=L,s[4]=D,s[5]=j,s[6]=M,s[7]=$,s[8]=z,s[9]=K}finalize(){let{h:e,pad:t}=this,i=new Uint16Array(10),s=e[1]>>>13;e[1]&=8191;for(let t=2;t<10;t++)e[t]+=s,s=e[t]>>>13,e[t]&=8191;e[0]+=5*s,s=e[0]>>>13,e[0]&=8191,e[1]+=s,s=e[1]>>>13,e[1]&=8191,e[2]+=s,i[0]=e[0]+5,s=i[0]>>>13,i[0]&=8191;for(let t=1;t<10;t++)i[t]=e[t]+s,s=i[t]>>>13,i[t]&=8191;i[9]-=8192;let r=(1^s)-1;for(let e=0;e<10;e++)i[e]&=r;r=~r;for(let t=0;t<10;t++)e[t]=e[t]&r|i[t];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let n=e[0]+t[0];e[0]=65535&n;for(let i=1;i<8;i++)n=(e[i]+t[i]|0)+(n>>>16)|0,e[i]=65535&n;sx(i)}update(e){sv(this),sw(e=s_(e));let{buffer:t,blockLen:i}=this,s=e.length;for(let r=0;r<s;){let n=Math.min(i-this.pos,s-r);if(n===i){for(;i<=s-r;r+=i)this.process(e,r);continue}t.set(e.subarray(r,r+n),this.pos),this.pos+=n,r+=n,this.pos===i&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){sx(this.h,this.r,this.buffer,this.pad)}digestInto(e){sv(this),function(e,t){sw(e);let i=t.outputLen;if(e.length<i)throw Error("digestInto() expects output buffer of length at least "+i)}(e,this),this.finished=!0;let{buffer:t,h:i}=this,{pos:s}=this;if(s){for(t[s++]=1;s<16;s++)t[s]=0;this.process(t,0,!0)}this.finalize();let r=0;for(let t=0;t<8;t++)e[r++]=i[t]>>>0,e[r++]=i[t]>>>8;return e}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}}let sj=function(e){let t=(t,i)=>e(i).update(s_(t)).digest(),i=e(new Uint8Array(32));return t.outputLen=i.outputLen,t.blockLen=i.blockLen,t.create=t=>e(t),t}(e=>new sD(e)),sM=function(e,t){let{allowShortKeys:i,extendNonceFn:s,counterLength:r,counterRight:n,rounds:o}=function(e,t){if(null==t||"object"!=typeof t)throw Error("options must be defined");return Object.assign(e,t)}({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if("function"!=typeof e)throw Error("core must be a function");return sb(r),sb(o),sm(n),sm(i),(t,a,l,c,h=0)=>{sw(t),sw(a),sw(l);let u=l.length;if(void 0===c&&(c=new Uint8Array(u)),sw(c),sb(h),h<0||h>=sC)throw Error("arx: counter overflow");if(c.length<u)throw Error(`arx: output (${c.length}) is shorter than data (${u})`);let d=[],p=t.length,f,g;if(32===p)d.push(f=sP(t)),g=sU;else if(16===p&&i)(f=new Uint8Array(32)).set(t),f.set(t,16),g=sN,d.push(f);else throw Error(`arx: invalid 32-byte key, got length=${p}`);sB(a)||d.push(a=sP(a));let y=sE(f);if(s){if(24!==a.length)throw Error("arx: extended nonce must be 24 bytes");s(g,y,sE(a.subarray(0,16)),y),a=a.subarray(16)}let m=16-r;if(m!==a.length)throw Error(`arx: nonce must be ${m} or 16 bytes`);if(12!==m){let e=new Uint8Array(12);e.set(a,n?0:12-a.length),a=e,d.push(a)}return function(e,t,i,s,r,n,o,a){let l=r.length,c=new Uint8Array(64),h=sE(c),u=sB(r)&&sB(n),d=u?sE(r):sq,p=u?sE(n):sq;for(let f=0;f<l;o++){if(e(t,i,s,h,o,a),o>=sC)throw Error("arx: counter overflow");let g=Math.min(64,l-f);if(u&&64===g){let e=f/4;if(f%4!=0)throw Error("arx: invalid block position");for(let t=0,i;t<16;t++)p[i=e+t]=d[i]^h[t];f+=64;continue}for(let e=0,t;e<g;e++)n[t=f+e]=r[t]^c[e];f+=g}}(e,g,y,sE(a),l,c,h,o),sx(...d),c}}(function(e,t,i,s,r,n=20){let o=e[0],a=e[1],l=e[2],c=e[3],h=t[0],u=t[1],d=t[2],p=t[3],f=t[4],g=t[5],y=t[6],m=t[7],b=i[0],w=i[1],v=i[2],E=o,x=a,I=l,_=c,S=h,O=u,P=d,R=p,T=f,A=g,N=y,U=m,k=r,B=b,C=w,q=v;for(let e=0;e<n;e+=2)T=T+(k=sk(k^(E=E+S|0),16))|0,E=E+(S=sk(S^T,12))|0,T=T+(k=sk(k^E,8))|0,S=sk(S^T,7),A=A+(B=sk(B^(x=x+O|0),16))|0,x=x+(O=sk(O^A,12))|0,A=A+(B=sk(B^x,8))|0,O=sk(O^A,7),N=N+(C=sk(C^(I=I+P|0),16))|0,I=I+(P=sk(P^N,12))|0,N=N+(C=sk(C^I,8))|0,P=sk(P^N,7),U=U+(q=sk(q^(_=_+R|0),16))|0,_=_+(R=sk(R^U,12))|0,U=U+(q=sk(q^_,8))|0,R=sk(R^U,7),N=N+(q=sk(q^(E=E+O|0),16))|0,E=E+(O=sk(O^N,12))|0,N=N+(q=sk(q^E,8))|0,O=sk(O^N,7),U=U+(k=sk(k^(x=x+P|0),16))|0,x=x+(P=sk(P^U,12))|0,U=U+(k=sk(k^x,8))|0,P=sk(P^U,7),T=T+(B=sk(B^(
4I=I+R|0),16))|0,I=I+(R=sk(R^T,12))|0,T=T+(B=sk(B^I,8))|0,R=sk(R^T,7),A=A+(C=sk(C^(_=_+S|0),16))|0,_=_+(S=sk(S^A,12))|0,A=A+(C=sk(C^_,8))|0,S=sk(S^A,7);let L=0;s[L++]=o+E|0,s[L++]=a+x|0,s[L++]=l+I|0,s[L++]=c+_|0,s[L++]=h+S|0,s[L++]=u+O|0,s[L++]=d+P|0,s[L++]=p+R|0,s[L++]=f+T|0,s[L++]=g+A|0,s[L++]=y+N|0,s[L++]=m+U|0,s[L++]=r+k|0,s[L++]=b+B|0,s[L++]=w+C|0,s[L++]=v+q|0},{counterRight:!1,counterLength:4,allowShortKeys:!1}),s$=new Uint8Array(16),sz=(e,t)=>{e.update(t);let i=t.length%16;i&&e.update(s$.subarray(i))},sK=new Uint8Array(32);function sV(e,t,i,s,r){let n=e(t,i,sK),o=sj.create(n);r&&sz(o,r),sz(o,s);let a=function(e,t,i){sm(i);let s=new Uint8Array(16),r=new DataView(s.buffer,s.byteOffset,s.byteLength);return sO(r,0,BigInt(t),i),sO(r,8,BigInt(e),i),s}(s.length,r?r.length:0,!0);o.update(a);let l=o.digest();return sx(n,a),l}let sF=((e,t)=>{function i(s,...r){if(sw(s),!sI)throw Error("Non little-endian hardware is not yet supported");if(void 0!==e.nonceLength){let t=r[0];if(!t)throw Error("nonce / iv required");e.varSizeNonce?sw(t):sw(t,e.nonceLength)}let n=e.tagLength;n&&void 0!==r[1]&&sw(r[1]);let o=t(s,...r),a=(e,t)=>{if(void 0!==t){if(2!==e)throw Error("cipher output not supported");sw(t)}},l=!1;return{encrypt(e,t){if(l)throw Error("cannot encrypt() twice with same key + nonce");return l=!0,sw(e),a(o.encrypt.length,t),o.encrypt(e,t)},decrypt(e,t){if(sw(e),n&&e.length<n)throw Error("invalid ciphertext length: smaller than tagLength="+n);return a(o.decrypt.length,t),o.decrypt(e,t)}}}return Object.assign(i,e),i})({blockSize:64,nonceLength:12,tagLength:16},(e=>(t,i,s)=>({encrypt(r,n){let o=r.length;(n=sS(o+16,n,!1)).set(r);let a=n.subarray(0,-16);e(t,i,a,a,1);let l=sV(e,t,i,a,s);return n.set(l,o),sx(l),n},decrypt(r,n){n=sS(r.length-16,n,!1);let o=r.subarray(0,-16),a=r.subarray(-16),l=sV(e,t,i,o,s);if(!function(e,t){if(e.length!==t.length)return!1;let i=0;for(let s=0;s<e.length;s++)i|=e[s]^t[s];return 0===i}(a,l))throw Error("invalid tag");return n.set(r.subarray(0,-16)),e(t,i,n,n,1),sx(l),n}}))(sM));class sH extends io{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,tJ(e);let i=is(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,r=new Uint8Array(s);r.set(i.length>s?e.create().update(i).digest():i);for(let e=0;e<r.length;e++)r[e]^=54;this.iHash.update(r),this.oHash=e.create();for(let e=0;e<r.length;e++)r[e]^=106;this.oHash.update(r),tX(r)}update(e){return tZ(this),this.iHash.update(e),this}digestInto(e){tZ(this),tW(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:i,finished:s,destroyed:r,blockLen:n,outputLen:o}=this;return e.finished=s,e.destroyed=r,e.blockLen=n,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=i._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}let sG=(e,t,i)=>new sH(e,t).update(i).digest();sG.create=(e,t)=>new sH(e,t);let sW=Uint8Array.from([0]),sJ=Uint8Array.of(),sZ=BigInt(0),sY=BigInt(1);function sQ(e,t=""){if("boolean"!=typeof e)throw Error((t&&`"${t}"`)+"expected boolean, got type="+typeof e);return e}function sX(e,t,i=""){let s=tH(e),r=e?.length,n=void 0!==t;if(!s||n&&r!==t)throw Error((i&&`"${i}" `)+"expected Uint8Array"+(n?` of length ${t}`:"")+", got "+(s?`length=${r}`:`type=${typeof e}`));return e}function s0(e){let t=e.toString(16);return 1&t.length?"0"+t:t}function s1(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);return""===e?sZ:BigInt("0x"+e)}function s2(e){return tW(e),s1(t9(Uint8Array.from(e).reverse()))}function s8(e,t){return it(e.toString(16).padStart(2*t,"0"))}function s6(e,t){return s8(e,t).reverse()}function s3(e,t,i){let s;if("string"==typeof t)try{s=it(t)}catch(t){throw Error(e+" must be hex string or Uint8Array, cause: "+t)}else if(tH(t))s=Uint8Array.from(t);else throw Error(e+" must be hex string or Uint8Array");let r=s.length;if("number"==typeof i&&r!==i)throw Error(e+" of length "+i+" expected, got "+r);return s}let s5=e=>"bigint"==typeof e&&sZ<=e;function s4(e,t,i,s){if(!(s5(t)&&s5(i)&&s5(s))||!(i<=t)||!(t<s))throw Error("expected valid "+e+": "+i+" <= n < "+s+", got "+t)}function s9(e){let t;for(t=0;e>sZ;e>>=sY,t+=1);return t}let s7=e=>(sY<<BigInt(e))-sY;function re(e,t,i={}){if(!e||"object"!=typeof e)throw Error("expected valid options object");function s(t,i,s){let r=e[t];if(s&&void 0===r)return;let n=typeof r;if(n!==i||null===r)throw Error(`param "${t}
4" is invalid: expected ${i}, got ${n}`)}Object.entries(t).forEach(([e,t])=>s(e,t,!1)),Object.entries(i).forEach(([e,t])=>s(e,t,!0))}function rt(e){let t=new WeakMap;return(i,...s)=>{let r=t.get(i);if(void 0!==r)return r;let n=e(i,...s);return t.set(i,n),n}}let ri=BigInt(0),rs=BigInt(1),rr=BigInt(2),rn=BigInt(3),ro=BigInt(4),ra=BigInt(5),rl=BigInt(7),rc=BigInt(8),rh=BigInt(9),ru=BigInt(16);function rd(e,t){let i=e%t;return i>=ri?i:t+i}function rp(e,t,i){let s=e;for(;t-- >ri;)s*=s,s%=i;return s}function rf(e,t){if(e===ri)throw Error("invert: expected non-zero number");if(t<=ri)throw Error("invert: expected positive modulus, got "+t);let i=rd(e,t),s=t,r=ri,n=rs;for(;i!==ri;){let e=s/i,t=s%i,o=r-n*e;s=i,i=t,r=n,n=o}if(s!==rs)throw Error("invert: does not exist");return rd(r,t)}function rg(e,t,i){if(!e.eql(e.sqr(t),i))throw Error("Cannot find square root")}function ry(e,t){let i=(e.ORDER+rs)/ro,s=e.pow(t,i);return rg(e,s,t),s}function rm(e,t){let i=(e.ORDER-ra)/rc,s=e.mul(t,rr),r=e.pow(s,i),n=e.mul(t,r),o=e.mul(e.mul(n,rr),r),a=e.mul(n,e.sub(o,e.ONE));return rg(e,a,t),a}function rb(e){if(e<rn)throw Error("sqrt is not defined for small field");let t=e-rs,i=0;for(;t%rr===ri;)t/=rr,i++;let s=rr,r=rI(e);for(;1===rE(r,s);)if(s++>1e3)throw Error("Cannot find square root: probably non-prime P");if(1===i)return ry;let n=r.pow(s,t),o=(t+rs)/rr;return function(e,s){if(e.is0(s))return s;if(1!==rE(e,s))throw Error("Cannot find square root");let r=i,a=e.mul(e.ONE,n),l=e.pow(s,t),c=e.pow(s,o);for(;!e.eql(l,e.ONE);){if(e.is0(l))return e.ZERO;let t=1,i=e.sqr(l);for(;!e.eql(i,e.ONE);)if(t++,i=e.sqr(i),t===r)throw Error("Cannot find square root");let s=rs<<BigInt(r-t-1),n=e.pow(a,s);r=t,a=e.sqr(n),l=e.mul(l,a),c=e.mul(c,n)}return c}}let rw=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function rv(e,t,i=!1){let s=Array(t.length).fill(i?e.ZERO:void 0),r=t.reduce((t,i,r)=>e.is0(i)?t:(s[r]=t,e.mul(t,i)),e.ONE),n=e.inv(r);return t.reduceRight((t,i,r)=>e.is0(i)?t:(s[r]=e.mul(t,s[r]),e.mul(t,i)),n),s}function rE(e,t){let i=(e.ORDER-rs)/rr,s=e.pow(t,i),r=e.eql(s,e.ONE),n=e.eql(s,e.ZERO),o=e.eql(s,e.neg(e.ONE));if(!r&&!n&&!o)throw Error("invalid Legendre symbol result");return r?1:n?0:-1}function rx(e,t){void 0!==t&&tG(t);let i=void 0!==t?t:e.toString(2).length,s=Math.ceil(i/8);return{nBitLength:i,nByteLength:s}}function rI(e,t,i=!1,s={}){let r;if(e<=ri)throw Error("invalid field: expected ORDER > 0, got "+e);let n,o,a=!1,l;if("object"==typeof t&&null!=t){if(s.sqrt||i)throw Error("cannot specify opts in two arguments");t.BITS&&(n=t.BITS),t.sqrt&&(o=t.sqrt),"boolean"==typeof t.isLE&&(i=t.isLE),"boolean"==typeof t.modFromBytes&&(a=t.modFromBytes),l=t.allowedLengths}else"number"==typeof t&&(n=t),s.sqrt&&(o=s.sqrt);let{nBitLength:c,nByteLength:h}=rx(e,n);if(h>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let u=Object.freeze({ORDER:e,isLE:i,BITS:c,BYTES:h,MASK:s7(c),ZERO:ri,ONE:rs,allowedLengths:l,create:t=>rd(t,e),isValid:t=>{if("bigint"!=typeof t)throw Error("invalid field element: expected bigint, got "+typeof t);return ri<=t&&t<e},is0:e=>e===ri,isValidNot0:e=>!u.is0(e)&&u.isValid(e),isOdd:e=>(e&rs)===rs,neg:t=>rd(-t,e),eql:(e,t)=>e===t,sqr:t=>rd(t*t,e),add:(t,i)=>rd(t+i,e),sub:(t,i)=>rd(t-i,e),mul:(t,i)=>rd(t*i,e),pow:(e,t)=>(function(e,t,i){if(i<ri)throw Error("invalid exponent, negatives unsupported");if(i===ri)return e.ONE;if(i===rs)return t;let s=e.ONE,r=t;for(;i>ri;)i&rs&&(s=e.mul(s,r)),r=e.sqr(r),i>>=rs;return s})(u,e,t),div:(t,i)=>rd(t*rf(i,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>rf(t,e),sqrt:o||(t=>(r||(r=e%ro===rn?ry:e%rc===ra?rm:e%ru===rh?function(e){let t=rI(e),i=rb(e),s=i(t,t.neg(t.ONE)),r=i(t,s),n=i(t,t.neg(s)),o=(e+rl)/ru;return(e,t)=>{let i=e.pow(t,o),a=e.mul(i,s),l=e.mul(i,r),c=e.mul(i,n),h=e.eql(e.sqr(a),t),u=e.eql(e.sqr(l),t);i=e.cmov(i,a,h),a=e.cmov(c,l,u);let d=e.eql(e.sqr(a),t),p=e.cmov(i,a,d);return rg(e,p,t),p}}(e):rb(e)),r(u,t))),toBytes:e=>i?s6(e,h):s8(e,h),fromBytes:(t,s=!0)=>{if(l){if(!l.includes(t.length)||t.length>h)throw Error("Field.fromBytes: expected "+l+" bytes, got "+t.length);let e=new Uint8Array(h);e.set(t,i?0:e.length-t.length),t=e}if(t.length!==h)throw Error("Field.fromBytes: expected "+h+" bytes, got "+t.length);let r=i?s2(t):s1(t9(t));if(a&&(r=rd(r,e)),!s&&!u.isValid(r))throw Error("invalid field element: outside of range 0..ORDER");return r},invertBatch:e=>rv(u,e),cmov:(e,t,i)=>i?t:e});return Object.freeze(u)}function r_(e){if("bigint"!=typeof e)throw Error("field order must be bigint");return Math.ceil(e.toString(2).length/8)}function rS(e){let t=r_(e);return t+Math.ceil(t/2)}let rO=BigInt(0),rP=BigInt(1);function rR(e,t){let i=t.negate();return e?i:t}function rT(e,t){let i=rv(e.Fp,t.map(e=>e.Z));return t.map((t,s)=>e.fromAffine(t.toAffine(i[s])))}function rA(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error("invalid window size, expected [1.."+t+"], got W="+e)}function rN(e,t){rA(e,t);let i=Math.ceil(t/e)+1,s=2**(e-1),r=2**e;return{windows:i,windowSize:s,mask:s7(e),maxNumber:r,shiftBy:BigInt(e)}}function rU(e,t,i){let{windowSize:s,mask:r,maxNumber:n,shiftBy:o}=i,a=Number(e&r),l=e>>o;a>s&&(a-=n,l+=rP);let c=t*s;return{nextN:l,offset:c+Math.abs(a)-1,isZero:0===a,isNeg:a<0,isNegF:t%2!=0,offsetF:c}}let rk=new WeakMap,rB=new WeakMap;function rC(e){return rB.get(e)||1}function rq(e){if(e!==rO)throw Error("invalid wNAF")}class rL{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,i=this.ZERO){let s=e;for(;t>rO;)t&rP&&(i=i.add(s)),s=s.double(),t>>=rP;return i}precomputeWindow(e,t){let{windows:i,windowSize:s}=rN(t,this.bits),r=[],n=e,o=n;for(let e=0;e<i;e++){o=n,r.push(o);for(let e=1;e<s;e++)o=o.add(n),r.push(o);n=o.double()}return r}wNAF(e,t,i){if(!this.Fn.isValid(i))throw Error("invalid scalar");let s=this.ZERO,r=this.BASE,n=rN(e,this.bits);for(let e=0;e<n.windows;e++){let{nextN:o,offset:a,isZero:l,isNeg:c,isNegF:h,offsetF:u}=rU(i,e,n);i=o,l?r=r.add(rR(h,t[u])):s=s.add(rR(c,t[a]))}return rq(i),{p:s,f:r}}wNAFUnsafe(e,t,i,s=this.ZERO){let r=rN(e,this.bits);for(let e=0;e<r.windows&&i!==rO;e++){let{nextN:n,offset:o,isZero:a,isNeg:l}=rU(i,e,r);if(i=n,!a){let e=t[o];s=s.add(l?e.negate():e)}}return rq(i),s}getPrecomputes(e,t,i){let s=rk.get(t);
4return s||(s=this.precomputeWindow(t,e),1!==e&&("function"==typeof i&&(s=i(s)),rk.set(t,s))),s}cached(e,t,i){let s=rC(e);return this.wNAF(s,this.getPrecomputes(s,e,i),t)}unsafe(e,t,i,s){let r=rC(e);return 1===r?this._unsafeLadder(e,t,s):this.wNAFUnsafe(r,this.getPrecomputes(r,e,i),t,s)}createCache(e,t){rA(t,this.bits),rB.set(e,t),rk.delete(e)}hasCache(e){return 1!==rC(e)}}function rD(e,t,i){if(!t)return rI(e,{isLE:i});if(t.ORDER!==e)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return re(t,rw.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"})),t}BigInt(0),BigInt(1),BigInt(2),BigInt(8),ii("HashToScalar-");let rj=BigInt(0),rM=BigInt(1),r$=BigInt(2),rz=BigInt(1),rK=BigInt(2),rV=BigInt(3),rF=BigInt(5),rH=BigInt(8),rG=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed");function rW(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}let rJ=rI({p:rG,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:rH,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")}.p,{isLE:!0}),rZ=(()=>{let e=rJ.ORDER;return function(e){let{P:t,type:i,adjustScalarBytes:s,powPminus2:r,randomBytes:n}=(re(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})),o="x25519"===i;if(!o&&"x448"!==i)throw Error("invalid type");let a=n||il,l=o?255:448,c=o?32:56,h=BigInt(o?9:5),u=BigInt(o?121665:39081),d=o?r$**BigInt(254):r$**BigInt(447),p=d+(o?BigInt(8)*r$**BigInt(251)-rM:BigInt(4)*r$**BigInt(445)-rM)+rM,f=e=>rd(e,t),g=s6(f(h),c);function y(e,i){let n=function(e,i){s4("u",e,rj,t),s4("scalar",i,d,p);let s=rM,n=rj,o=e,a=rM,c=rj;for(let t=BigInt(l-1);t>=rj;t--){let r=i>>t&rM;c^=r,({x_2:s,x_3:o}=b(c,s,o)),({x_2:n,x_3:a}=b(c,n,a)),c=r;let l=s+n,h=f(l*l),d=s-n,p=f(d*d),g=h-p,y=o+a,m=f((o-a)*l),w=f(y*d),v=m+w,E=m-w;o=f(v*v),a=f(e*f(E*E)),s=f(h*p),n=f(g*(h+f(u*g)))}return{x_2:s,x_3:o}=b(c,s,o),{x_2:n,x_3:a}=b(c,n,a),f(s*r(n))}(function(e){let t=s3("u coordinate",e,c);return o&&(t[31]&=127),f(s2(t))}(i),s2(s(s3("scalar",e,c))));if(n===rj)throw Error("invalid private or public key received");return s6(f(n),c)}function m(e){return y(e,g)}function b(e,t,i){let s=f(e*(t-i));return{x_2:t=f(t-s),x_3:i=f(i+s)}}let w={secretKey:c,publicKey:c,seed:c},v=(e=a(c))=>(tW(e,w.seed),e);return{keygen:function(e){let t=v(e);return{secretKey:t,publicKey:m(t)}},getSharedSecret:(e,t)=>y(e,t),getPublicKey:e=>m(e),scalarMult:y,scalarMultBase:m,utils:{randomSecretKey:v,randomPrivateKey:v},GuBytes:g.slice(),lengths:w}}({P:e,type:"x25519",powPminus2:t=>{let{pow_p_5_8:i,b2:s}=function(e){let t=BigInt(10),i=BigInt(20),s=BigInt(40),r=BigInt(80),n=e*e%rG*e%rG,o=rp(n,rK,rG)*n%rG,a=rp(o,rz,rG)*e%rG,l=rp(a,rF,rG)*a%rG,c=rp(l,t,rG)*l%rG,h=rp(c,i,rG)*c%rG,u=rp(h,s,rG)*h%rG,d=rp(u,r,rG)*u%rG,p=rp(d,r,rG)*u%rG,f=rp(p,t,rG)*l%rG;return{pow_p_5_8:rp(f,rK,rG)*e%rG,b2:n}}(t);return rd(rp(i,rV,e)*s,e)},adjustScalarBytes:rW})})(),rY=(e,t)=>(e+(e>=0?t:-t)/r6)/t;function rQ(e){if(!["compact","recovered","der"].includes(e))throw Error('Signature format must be "compact", "recovered", or "der"');return e}function rX(e,t){let i={};for(let s of Object.keys(t))i[s]=void 0===e[s]?t[s]:e[s];return sQ(i.lowS,"lowS"),sQ(i.prehash,"prehash"),void 0!==i.format&&rQ(i.format),i}class r0 extends Error{constructor(e=""){super(e)}}let r1={Err:r0,_tlv:{encode:(e,t)=>{let{Err:i}=r1;if(e<0||e>256)throw new i("tlv.encode: wrong tag");if(1&t.length)throw new i("tlv.encode: unpadded data");let s=t.length/2,r=s0(s);if(r.length/2&128)throw new i("tlv.encode: long form length too big");let n=s>127?s0(r.length/2|128):"";return s0(e)+n+r+t},decode(e,t){let{Err:i}=r1,s=0;if(e<0||e>256)throw new i("tlv.encode: wrong tag");if(t.length<2||t[s++]!==e)throw new i("tlv.decode: wrong tlv");let r=t[s++],n=0;if(128&r){let e=127&r;if(!e)throw new i("tlv.decode(long): indefinite length not supported");if(e>4)throw new i("tlv.decode(long): byte length is too big");let o=t.subarray(s,s+e);
4if(o.length!==e)throw new i("tlv.decode: length bytes not complete");if(0===o[0])throw new i("tlv.decode(long): zero leftmost byte");for(let e of o)n=n<<8|e;if(s+=e,n<128)throw new i("tlv.decode(long): not minimal encoding")}else n=r;let o=t.subarray(s,s+n);if(o.length!==n)throw new i("tlv.decode: wrong value length");return{v:o,l:t.subarray(s+n)}}},_int:{encode(e){let{Err:t}=r1;if(e<r2)throw new t("integer: negative integers are not allowed");let i=s0(e);if(8&Number.parseInt(i[0],16)&&(i="00"+i),1&i.length)throw new t("unexpected DER parsing assertion: unpadded hex");return i},decode(e){let{Err:t}=r1;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return s1(t9(e))}},toSig(e){let{Err:t,_int:i,_tlv:s}=r1,r=s3("signature",e),{v:n,l:o}=s.decode(48,r);if(o.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:l}=s.decode(2,n),{v:c,l:h}=s.decode(2,l);if(h.length)throw new t("invalid signature: left bytes after parsing");return{r:i.decode(a),s:i.decode(c)}},hexFromSig(e){let{_tlv:t,_int:i}=r1,s=t.encode(2,i.encode(e.r)),r=t.encode(2,i.encode(e.s));return t.encode(48,s+r)}},r2=BigInt(0),r8=BigInt(1),r6=BigInt(2),r3=BigInt(3),r5=BigInt(4);function r4(e,t){let i,{BYTES:s}=e;if("bigint"==typeof t)i=t;else{let r=s3("private key",t);try{i=e.fromBytes(r)}catch{throw Error(`invalid private key: expected ui8a of size ${s}, got ${typeof t}`)}}if(!e.isValidNot0(i))throw Error("invalid private key: out of range [1..N-1]");return i}function r9(e){return Uint8Array.of(e?2:3)}function r7(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function ne(e,t){let i=t=>(function(e){let{CURVE:t,curveOpts:i,hash:s,ecdsaOpts:r}=function(e){let{CURVE:t,curveOpts:i}=function(e){let t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},i=e.Fp,s=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(e=>Math.ceil(e/2)))):void 0,r={Fp:i,Fn:rI(t.n,{BITS:e.nBitLength,allowedLengths:s,modFromBytes:e.wrapPrivateKey}),allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:r}}(e),s={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:i,hash:e.hash,ecdsaOpts:s}}(e),n=function(e,t,i={}){tJ(t),re(i,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let s=i.randomBytes||il,r=i.hmac||((e,...i)=>sG(t,e,ir(...i))),{Fp:n,Fn:o}=e,{ORDER:a,BITS:l}=o,{keygen:c,getPublicKey:h,getSharedSecret:u,utils:d,lengths:p}=function(e,t={}){let{Fn:i}=e,s=t.randomBytes||il,r=Object.assign(r7(e.Fp,i),{seed:rS(i.ORDER)});function n(e){try{return!!r4(i,e)}catch{return!1}}function o(e=s(r.seed)){return function(e,t,i=!1){let s=e.length,r=r_(t),n=rS(t);if(s<16||s<n||s>1024)throw Error("expected "+n+"-1024 bytes of input, got "+s);let o=rd(i?s2(e):s1(t9(e)),t-rs)+rs;return i?s6(o,r):s8(o,r)}(sX(e,r.seed,"seed"),i.ORDER)}function a(t,s=!0){return e.BASE.multiply(r4(i,t)).toBytes(s)}function l(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;let{secretKey:s,publicKey:n,publicKeyUncompressed:o}=r;if(i.allowedLengths||s===n)return;let a=s3("key",t).length;return a===n||a===o}return Object.freeze({getPublicKey:a,getSharedSecret:function(t,s,r=!0){if(!0===l(t))throw Error("first arg must be private key");if(!1===l(s))throw Error("second arg must be public key");let n=r4(i,t);return e.fromHex(s).multiply(n).toBytes(r)},keygen:function(e){let t=o(e);return{secretKey:t,publicKey:a(t)}},Point:e,utils:{isValidSecretKey:n,isValidPublicKey:function(t,i){let{publicKey:s,publicKeyUncompressed:n}=r;try{let r=t.length;return(!0!==i||r===s)&&(!1!==i||r===n)&&!!e.fromBytes(t)}catch{return!1}},randomSecretKey:o,isValidPrivateKey:n,randomPrivateKey:o,normPrivateKeyToScalar:e=>r4(i,e),precompute:(t=8,i=e.BASE)=>i.precompute(t,!1)},lengths:r})}(e,i),f={prehash:!1,lowS:"boolean"==typeof i.lowS&&i.lowS,format:void 0,extraEntropy:!1},g="compact";function y(e,t){if(!o.isValidNot0(t))throw Error(`invalid signature ${e}: out of range 1..Point.Fn.ORDER`);return t}class m{constructor(e,t,i){this.r=y("r",e),this.s=y("s",t),null!=i&&(this.recovery=i),Object.freeze(this)}static fromBytes(e,t=g){let i;if(!function(e,t){rQ(t);let i=p.signature;sX(e,"compact"===t?i:"recovered"===t?i+1:void 0,`${t} signature`)}
4(e,t),"der"===t){let{r:t,s:i}=r1.toSig(sX(e));return new m(t,i)}"recovered"===t&&(i=e[0],t="compact",e=e.subarray(1));let s=o.BYTES,r=e.subarray(0,s),n=e.subarray(s,2*s);return new m(o.fromBytes(r),o.fromBytes(n),i)}static fromHex(e,t){return this.fromBytes(it(e),t)}addRecoveryBit(e){return new m(this.r,this.s,e)}recoverPublicKey(t){let i=n.ORDER,{r:s,s:r,recovery:l}=this;if(null==l||![0,1,2,3].includes(l))throw Error("recovery id invalid");if(a*r6<i&&l>1)throw Error("recovery id is ambiguous for h>1 curve");let c=2===l||3===l?s+a:s;if(!n.isValid(c))throw Error("recovery id 2 or 3 invalid");let h=n.toBytes(c),u=e.fromBytes(ir(r9((1&l)==0),h)),d=o.inv(c),p=w(s3("msgHash",t)),f=o.create(-p*d),g=o.create(r*d),y=e.BASE.multiplyUnsafe(f).add(u.multiplyUnsafe(g));if(y.is0())throw Error("point at infinify");return y.assertValidity(),y}hasHighS(){return this.s>a>>r8}toBytes(e=g){if(rQ(e),"der"===e)return it(r1.hexFromSig(this));let t=o.toBytes(this.r),i=o.toBytes(this.s);if("recovered"===e){if(null==this.recovery)throw Error("recovery bit must be present");return ir(Uint8Array.of(this.recovery),t,i)}return ir(t,i)}toHex(e){return t9(this.toBytes(e))}assertValidity(){}static fromCompact(e){return m.fromBytes(s3("sig",e),"compact")}static fromDER(e){return m.fromBytes(s3("sig",e),"der")}normalizeS(){return this.hasHighS()?new m(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return t9(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return t9(this.toBytes("compact"))}}let b=i.bits2int||function(e){if(e.length>8192)throw Error("input is too large");let t=s1(t9(e)),i=8*e.length-l;return i>0?t>>BigInt(i):t},w=i.bits2int_modN||function(e){return o.create(b(e))},v=s7(l);function E(e){return s4("num < 2^"+l,e,r2,v),o.toBytes(e)}function x(e,i){return sX(e,void 0,"message"),i?sX(t(e),void 0,"prehashed message"):e}return Object.freeze({keygen:c,getPublicKey:h,getSharedSecret:u,utils:d,lengths:p,Point:e,sign:function(i,n,l={}){let{seed:c,k2sig:h}=function(t,i,r){if(["recovered","canonical"].some(e=>e in r))throw Error("sign() legacy options not supported");let{lowS:n,prehash:l,extraEntropy:c}=rX(r,f),h=w(t=x(t,l)),u=r4(o,i),d=[E(u),E(h)];if(null!=c&&!1!==c){let e=!0===c?s(p.secretKey):c;d.push(s3("extraEntropy",e))}return{seed:ir(...d),k2sig:function(t){let i=b(t);if(!o.isValidNot0(i))return;let s=o.inv(i),r=e.BASE.multiply(i).toAffine(),l=o.create(r.x);if(l===r2)return;let c=o.create(s*o.create(h+l*u));if(c===r2)return;let d=2*(r.x!==l)|Number(r.y&r8),p=c;return n&&c>a>>r8&&(p=o.neg(c),d^=1),new m(l,p,d)}}}(i=s3("message",i),n,l);return(function(e,t,i){if("number"!=typeof e||e<2)throw Error("hashLen must be a number");if("number"!=typeof t||t<2)throw Error("qByteLen must be a number");if("function"!=typeof i)throw Error("hmacFn must be a function");let s=e=>new Uint8Array(e),r=e=>Uint8Array.of(e),n=s(e),o=s(e),a=0,l=()=>{n.fill(1),o.fill(0),a=0},c=(...e)=>i(o,n,...e),h=(e=s(0))=>{o=c(r(0),e),n=c(),0!==e.length&&(o=c(r(1),e),n=c())},u=()=>{if(a++>=1e3)throw Error("drbg: tried 1000 values");let e=0,i=[];for(;e<t;){let t=(n=c()).slice();i.push(t),e+=n.length}return ir(...i)};return(e,t)=>{let i;for(l(),h(e);!(i=t(u()));)h();return l(),i}})(t.outputLen,o.BYTES,r)(c,h)},verify:function(t,i,s,r={}){let{lowS:n,prehash:a,format:l}=rX(r,f);if(s=s3("publicKey",s),i=x(s3("message",i),a),"strict"in r)throw Error("options.strict was renamed to lowS");let c=void 0===l?function(e){let t,i="string"==typeof e||tH(e),s=!i&&null!==e&&"object"==typeof e&&"bigint"==typeof e.r&&"bigint"==typeof e.s;if(!i&&!s)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(s)t=new m(e.r,e.s);else if(i){try{t=m.fromBytes(s3("sig",e),"der")}catch(e){if(!(e instanceof r1.Err))throw e}if(!t)try{t=m.fromBytes(s3("sig",e),"compact")}catch{return!1}}return t||!1}(t):m.fromBytes(s3("sig",t),l);if(!1===c)return!1;try{let t=e.fromBytes(s);if(n&&c.hasHighS())return!1;let{r:r,s:a}=c,l=w(i),h=o.inv(a),u=o.create(l*h),d=o.create(r*h),p=e.BASE.multiplyUnsafe(u).add(t.multiplyUnsafe(d));return!p.is0()&&o.create(p.x)===r}catch{return!1}},recoverPublicKey:function(e,t,i={}){let{prehash:s}=rX(i,f);return t=x(t,s),m.fromBytes(e,"recovered").recoverPublicKey(t).toBytes()},Signature:m,hash:t})}(function(e,t={}){let i=function(e,t,i={}
vendor: 4,981 bytes, line 4
4,s){if(void 0===s&&(s="edwards"===e),!t||"object"!=typeof t)throw Error(`expected valid ${e} CURVE object`);for(let e of["p","n","h"]){let i=t[e];if(!("bigint"==typeof i&&i>rO))throw Error(`CURVE.${e} must be positive bigint`)}let r=rD(t.p,i.Fp,s),n=rD(t.n,i.Fn,s);for(let i of["Gx","Gy","a","weierstrass"===e?"b":"d"])if(!r.isValid(t[i]))throw Error(`CURVE.${i} must be valid field element of CURVE.Fp`);return{CURVE:t=Object.freeze(Object.assign({},t)),Fp:r,Fn:n}}("weierstrass",e,t),{Fp:s,Fn:r}=i,n=i.CURVE,{h:o,n:a}=n;re(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:l}=t;if(l&&(!s.is0(n.a)||"bigint"!=typeof l.beta||!Array.isArray(l.basises)))throw Error('invalid endo: expected "beta": bigint and "basises": array');let c=r7(s,r);function h(){if(!s.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}let u=t.toBytes||function(e,t,i){let{x:r,y:n}=t.toAffine(),o=s.toBytes(r);return(sQ(i,"isCompressed"),i)?(h(),ir(r9(!s.isOdd(n)),o)):ir(Uint8Array.of(4),o,s.toBytes(n))},d=t.fromBytes||function(e){sX(e,void 0,"Point");let{publicKey:t,publicKeyUncompressed:i}=c,r=e.length,n=e[0],o=e.subarray(1);if(r===t&&(2===n||3===n)){let e,t=s.fromBytes(o);if(!s.isValid(t))throw Error("bad point: is not on curve, wrong x");let i=p(t);try{e=s.sqrt(i)}catch(e){throw Error("bad point: is not on curve, sqrt error"+(e instanceof Error?": "+e.message:""))}return h(),(1&n)==1!==s.isOdd(e)&&(e=s.neg(e)),{x:t,y:e}}if(r===i&&4===n){let e=s.BYTES,t=s.fromBytes(o.subarray(0,e)),i=s.fromBytes(o.subarray(e,2*e));if(!f(t,i))throw Error("bad point: is not on curve");return{x:t,y:i}}throw Error(`bad point: got length ${r}, expected compressed=${t} or uncompressed=${i}`)};function p(e){let t=s.sqr(e),i=s.mul(t,e);return s.add(s.add(i,s.mul(e,n.a)),n.b)}function f(e,t){let i=s.sqr(t),r=p(e);return s.eql(i,r)}if(!f(n.Gx,n.Gy))throw Error("bad curve params: generator point");let g=s.mul(s.pow(n.a,r3),r5),y=s.mul(s.sqr(n.b),BigInt(27));if(s.is0(s.add(g,y)))throw Error("bad curve params: a or b");function m(e,t,i=!1){if(!s.isValid(t)||i&&s.is0(t))throw Error(`bad point coordinate ${e}`);return t}function b(e){if(!(e instanceof I))throw Error("ProjectivePoint expected")}function w(e){if(!l||!l.basises)throw Error("no endo");return function(e,t,i){let[[s,r],[n,o]]=t,a=rY(o*e,i),l=rY(-r*e,i),c=e-a*s-l*n,h=-a*r-l*o,u=c<r2,d=h<r2;u&&(c=-c),d&&(h=-h);let p=s7(Math.ceil(s9(i)/2))+r8;if(c<r2||c>=p||h<r2||h>=p)throw Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:u,k1:c,k2neg:d,k2:h}}(e,l.basises,r.ORDER)}let v=rt((e,t)=>{let{X:i,Y:r,Z:n}=e;if(s.eql(n,s.ONE))return{x:i,y:r};let o=e.is0();null==t&&(t=o?s.ONE:s.inv(n));let a=s.mul(i,t),l=s.mul(r,t),c=s.mul(n,t);if(o)return{x:s.ZERO,y:s.ZERO};if(!s.eql(c,s.ONE))throw Error("invZ was invalid");return{x:a,y:l}}),E=rt(e=>{if(e.is0()){if(t.allowInfinityPoint&&!s.is0(e.Y))return;throw Error("bad point: ZERO")}let{x:i,y:r}=e.toAffine();if(!s.isValid(i)||!s.isValid(r))throw Error("bad point: x or y not field elements");if(!f(i,r))throw Error("bad point: equation left != right");if(!e.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function x(e,t,i,r,n){return i=new I(s.mul(i.X,e),i.Y,i.Z),t=rR(r,t),i=rR(n,i),t.add(i)}class I{constructor(e,t,i){this.X=m("x",e),this.Y=m("y",t,!0),this.Z=m("z",i),Object.freeze(this)}static CURVE(){return n}static fromAffine(e){let{x:t,y:i}=e||{};if(!e||!s.isValid(t)||!s.isValid(i))throw Error("invalid affine point");if(e instanceof I)throw Error("projective point not allowed");return s.is0(t)&&s.is0(i)?I.ZERO:new I(t,i,s.ONE)}static fromBytes(e){let t=I.fromAffine(d(sX(e,void 0,"point")));return t.assertValidity(),t}static fromHex(e){return I.fromBytes(s3("pointHex",e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(e=8,t=!0){return S.createCache(this,e),t||this.multiply(r3),this}assertValidity(){E(this)}hasEvenY(){let{y:e}=this.toAffine();if(!s.isOdd)throw Error("Field doesn't support isOdd");return!s.isOdd(e)}equals(e){b(e);let{X:t,Y:i,Z:r}=this,{X:n,Y:o,Z:a}=e,l=s.eql(s.mul(t,a),s.mul(n,r)),c=s.eql(s.mul(i,a),s.mul(o,r));return l&&c}negate(){return new I(this.X,s.neg(this.Y),this.Z)}double(){let{a:e,b:t}=n,i=s.mul(t,r3),{X:r,Y:o,Z:a}=this,l=s.ZERO,c=s.ZERO,h=s.ZERO,u=s.mul(r,r),d=s.mul(o,o),p=s.mul(a,a),f=s.mul(r,o);return f=s.add(f,f),h=s.mul(r,a),h=s.add(h,h),l=s.mul(e,h),c=s.mul(i,p),c=s.add(l,c),l=s.sub(d,c),c=s.add(d,c),c=s.mul(l,c),l=s.mul(f,l),h=s.mul(i,h),p=s.mul(e,p),f=s.sub(u,p),f=s.mul(e,f),f=s.add(f,h),h=s.add(u,u),u=s.add(h,u),u=s.add(u,p),u=s.mul(u,f),c=s.add(c,u),p=s.mul(o,a),p=s.add(p,p),u=s.mul(p,f),l=s.sub(l,u),h=s.mul(p,d),h=s.add(h,h),new I(l,c,h=s.add(h,h))}add(e){b(e);let{X:t,Y:i,Z:r}=this,{X:o,Y:a,Z:l}=e,c=s.ZERO,h=s.ZERO,u=s.ZERO,d=n.a,p=s.mul(n.b,r3),f=s.mul(t,o),g=s.mul(i,a),y=s.mul(r,l),m=s.add(t,i),w=s.add(o,a);
4m=s.mul(m,w),w=s.add(f,g),m=s.sub(m,w),w=s.add(t,r);let v=s.add(o,l);return w=s.mul(w,v),v=s.add(f,y),w=s.sub(w,v),v=s.add(i,r),c=s.add(a,l),v=s.mul(v,c),c=s.add(g,y),v=s.sub(v,c),u=s.mul(d,w),c=s.mul(p,y),u=s.add(c,u),c=s.sub(g,u),u=s.add(g,u),h=s.mul(c,u),g=s.add(f,f),g=s.add(g,f),y=s.mul(d,y),w=s.mul(p,w),g=s.add(g,y),y=s.sub(f,y),y=s.mul(d,y),w=s.add(w,y),f=s.mul(g,w),h=s.add(h,f),f=s.mul(v,w),c=s.mul(m,c),c=s.sub(c,f),f=s.mul(m,g),u=s.mul(v,u),new I(c,h,u=s.add(u,f))}subtract(e){return this.add(e.negate())}is0(){return this.equals(I.ZERO)}multiply(e){let i,s,{endo:n}=t;if(!r.isValidNot0(e))throw Error("invalid scalar: out of range");let o=e=>S.cached(this,e,e=>rT(I,e));if(n){let{k1neg:t,k1:r,k2neg:a,k2:l}=w(e),{p:c,f:h}=o(r),{p:u,f:d}=o(l);s=h.add(d),i=x(n.beta,c,u,t,a)}else{let{p:t,f:r}=o(e);i=t,s=r}return rT(I,[i,s])[0]}multiplyUnsafe(e){let{endo:i}=t;if(!r.isValid(e))throw Error("invalid scalar: out of range");if(e===r2||this.is0())return I.ZERO;if(e===r8)return this;if(S.hasCache(this))return this.multiply(e);if(!i)return S.unsafe(this,e);{let{k1neg:t,k1:s,k2neg:r,k2:n}=w(e),{p1:o,p2:a}=function(e,t,i,s){let r=t,n=e.ZERO,o=e.ZERO;for(;i>rO||s>rO;)i&rP&&(n=n.add(r)),s&rP&&(o=o.add(r)),r=r.double(),i>>=rP,s>>=rP;return{p1:n,p2:o}}(I,this,s,n);return x(i.beta,o,a,t,r)}}multiplyAndAddUnsafe(e,t,i){let s=this.multiplyUnsafe(t).add(e.multiplyUnsafe(i));return s.is0()?void 0:s}toAffine(e){return v(this,e)}isTorsionFree(){let{isTorsionFree:e}=t;return o===r8||(e?e(I,this):S.unsafe(this,a).is0())}clearCofactor(){let{clearCofactor:e}=t;return o===r8?this:e?e(I,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(e=!0){return sQ(e,"isCompressed"),this.assertValidity(),u(I,this,e)}toHex(e=!0){return t9(this.toBytes(e))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(e=!0){return this.toBytes(e)}_setWindowSize(e){this.precompute(e)}static normalizeZ(e){return rT(I,e)}static msm(e,t){return function(e,t,i,s){(function(e,t){if(!Array.isArray(e))throw Error("array expected");e.forEach((e,i)=>{if(!(e instanceof t))throw Error("invalid point at index "+i)})})(i,e),function(e,t){if(!Array.isArray(e))throw Error("array of scalars expected");e.forEach((e,i)=>{if(!t.isValid(e))throw Error("invalid scalar at index "+i)})}(s,t);let r=i.length,n=s.length;if(r!==n)throw Error("arrays of points and scalars must have equal length");let o=e.ZERO,a=s9(BigInt(r)),l=1;a>12?l=a-3:a>4?l=a-2:a>0&&(l=2);let c=s7(l),h=Array(Number(c)+1).fill(o),u=Math.floor((t.BITS-1)/l)*l,d=o;for(let e=u;e>=0;e-=l){h.fill(o);for(let t=0;t<n;t++){let r=Number(s[t]>>BigInt(e)&c);h[r]=h[r].add(i[t])}let t=o;for(let e=h.length-1,i=o;e>0;e--)i=i.add(h[e]),t=t.add(i);if(d=d.add(t),0!==e)for(let e=0;e<l;e++)d=d.double()}return d}(I,r,e,t)}static fromPrivateKey(e){return I.BASE.multiply(r4(r,e))}}I.BASE=new I(n.Gx,n.Gy,s.ONE),I.ZERO=new I(s.ZERO,s.ONE,s.ZERO),I.Fp=s,I.Fn=r;let _=r.BITS,S=new rL(I,t.endo?Math.ceil(_/2):_);return I.BASE.precompute(8),I}(t,i),s,r),o=n.Point;return Object.assign({},n,{ProjectivePoint:o,CURVE:Object.assign({},e,rx(o.Fn.ORDER,o.Fn.BITS))})})({...e,hash:t});return{...i(t),create:i}}let nt={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},ni={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},ns={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},nr=rI(nt.p),nn=rI(ni.p),no=rI(ns.p),na=ne({...nt,Fp:nr,lowS:!1},iz);ne({...ni,Fp:nn,lowS:!1},iV),ne({...ns,Fp:no,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},iK);let nl="base10",nc="base16",nh="base64pad",nu="base64url",nd="utf8";function np(){let e=il(32);return(0,eZ.dI)(e,nc)}function nf(e){let t=iz((0,eZ.sH)(e,nc));return(0,eZ.dI)(t,nc)}function ng(e){let t=iz((0,eZ.sH)(e,nd));return(0,eZ.dI)(t,nc)}function ny(e){return(0,eZ.sH)(`${e}`,nl)}function nm(e){return Number((0,eZ.dI)(e,nl))}function nb(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function nw(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),i=(4-t.length%4)%4;return t+"=".repeat(i)}function nv(e){if(2===nm(e.type))return(0,eZ.dI)((0,eZ.xW)([e.type,e.sealed]),nh);if(1===nm(e.type)){if(typeof e.senderPublicKey>"u")throw Error("Missing sender public key for type 1 envelope");
4return(0,eZ.dI)((0,eZ.xW)([e.type,e.senderPublicKey,e.iv,e.sealed]),nh)}return(0,eZ.dI)((0,eZ.xW)([e.type,e.iv,e.sealed]),nh)}function nE(e){let t=(e.encoding||nh)===nu?nw(e.encoded):e.encoded,i=(0,eZ.sH)(t,nh),s=i.slice(0,1);if(1===nm(s)){let e=i.slice(1,33),t=i.slice(33,45);return{type:s,sealed:i.slice(45),iv:t,senderPublicKey:e}}if(2===nm(s))return{type:s,sealed:i.slice(1),iv:il(12)};let r=i.slice(1,13);return{type:s,sealed:i.slice(13),iv:r}}function nx(e){let t=e?.type||0;if(1===t){if(typeof e?.senderPublicKey>"u")throw Error("missing sender public key");if(typeof e?.receiverPublicKey>"u")throw Error("missing receiver public key")}return{type:t,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function nI(e){return 1===e.type&&"string"==typeof e.senderPublicKey&&"string"==typeof e.receiverPublicKey}function n_(e){return e?.relay||{protocol:"irn"}}function nS(e){let t=eY.CG[e];if(typeof t>"u")throw Error(`Relay Protocol not supported: ${e}`);return t}var nO=Object.defineProperty,nP=Object.defineProperties,nR=Object.getOwnPropertyDescriptors,nT=Object.getOwnPropertySymbols,nA=Object.prototype.hasOwnProperty,nN=Object.prototype.propertyIsEnumerable,nU=(e,t,i)=>t in e?nO(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,nk=(e,t)=>{for(var i in t||(t={}))nA.call(t,i)&&nU(e,i,t[i]);if(nT)for(var i of nT(t))nN.call(t,i)&&nU(e,i,t[i]);return e};function nB(e){var t;if(!e.includes("wc:")){let t=tO(e);null!=t&&t.includes("wc:")&&(e=t)}let i=(e=(e=e.includes("wc://")?e.replace("wc://",""):e).includes("wc:")?e.replace("wc:",""):e).indexOf(":"),s=-1!==e.indexOf("?")?e.indexOf("?"):void 0,r=e.substring(0,i),n=e.substring(i+1,s).split("@"),o=Object.fromEntries(new URLSearchParams("u">typeof s?e.substring(s):"").entries()),a="string"==typeof o.methods?o.methods.split(","):void 0;return{protocol:r,topic:(t=n[0]).startsWith("//")?t.substring(2):t,version:parseInt(n[1],10),symKey:o.symKey,relay:function(e,t="-"){let i={},s="relay"+t;return Object.keys(e).forEach(t=>{if(t.startsWith(s)){let r=t.replace(s,""),n=e[t];i[r]=n}}),i}(o),methods:a,expiryTimestamp:o.expiryTimestamp?parseInt(o.expiryTimestamp,10):void 0}}function nC(e){let t=new URLSearchParams;return Object.entries(nk(nk(nP(nk({},function(e,t="-"){let i={};return Object.keys(e).forEach(s=>{e[s]&&(i["relay"+t+s]=e[s])}),i}(e.relay)),nR({symKey:e.symKey})),e.expiryTimestamp&&{expiryTimestamp:e.expiryTimestamp.toString()}),e.methods&&{methods:e.methods.join(",")})).sort(([e],[t])=>e.localeCompare(t)).forEach(([e,i])=>{void 0!==i&&t.append(e,String(i))}),`${e.protocol}:${e.topic}@${e.version}?${t}`}function nq(e,t,i){return`${e}?wc_ev=${i}&topic=${t}`}var nL=Object.defineProperty,nD=Object.defineProperties,nj=Object.getOwnPropertyDescriptors,nM=Object.getOwnPropertySymbols,n$=Object.prototype.hasOwnProperty,nz=Object.prototype.propertyIsEnumerable,nK=(e,t,i)=>t in e?nL(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,nV=(e,t)=>{for(var i in t||(t={}))n$.call(t,i)&&nK(e,i,t[i]);if(nM)for(var i of nM(t))nz.call(t,i)&&nK(e,i,t[i]);return e},nF=(e,t)=>nD(e,nj(t));function nH(e){let t=[];return e.forEach(e=>{let[i,s]=e.split(":");t.push(`${i}:${s}`)}),t}function nG(e){let t=[];return Object.values(e).forEach(e=>{t.push(...nH(e.accounts))}),[...new Set(t)]}function nW(e){return e.includes(":")}function nJ(e){var t,i,s;let r={};if(!n2(e))return r;for(let[n,o]of Object.entries(e)){let e=nW(n)?[n]:o.chains,a=o.methods||[],l=o.events||[],c=nW(n)?n.split(":")[0]:n;r[c]=nF(nV({},r[c]),{chains:tv(e,null==(t=r[c])?void 0:t.chains),methods:tv(a,null==(i=r[c])?void 0:i.methods),events:tv(l,null==(s=r[c])?void 0:s.events)})}return r}function nZ(e,t){let i=function(e){let t={};return e?.forEach(e=>{var i;let[s,r]=e.split(":");t[s]||(t[s]={accounts:[],chains:[],events:[],methods:[]}),t[s].accounts.push(e),null==(i=t[s].chains)||i.push(`${s}:${r}`)}),t}(t=t.map(e=>e.replace("did:pkh:","")));for(let[t,s]of Object.entries(i))s.methods?s.methods=tv(s.methods,e):s.methods=e,s.events=["chainChanged","accountsChanged"];return i}let nY={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}},nQ={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 nX(e,t){let{message:i,code:s}=nQ[e];return{message:t?`${i} ${t}`:i,code:s}}function n0(e,t){let{message:i,code:s}=nY[e];return{message:t?`${i} ${t}`:i,code:s}}function n1(e,t){return!!Array.isArray(e)&&(!("u">typeof t)||!e.length||e.every(t))}function n2(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function n8(e){return typeof e>"u"}function n6(e,t){return!!(t&&n8(e))||"string"==typeof e&&!!e.trim().length}function n3(e,t){return!!(t&&n8(e))||"number"==typeof e&&!isNaN(e)}function n5(e){return!!(n6(e,!1)&&e.includes(":"))&&2===e.split(":").length}function n4(e){let t=!0;return n1(e)?e.length&&(t=e.every(e=>n6(e,!1))):t=!1,t}function n9(e,t){let i=null;
4return Object.values(e).forEach(e=>{var s;let r;if(i)return;let n=(s=`${t}, namespace`,r=null,n4(e?.methods)?n4(e?.events)||(r=n0("UNSUPPORTED_EVENTS",`${s}, events should be an array of strings or empty array for no events`)):r=n0("UNSUPPORTED_METHODS",`${s}, methods should be an array of strings or empty array for no methods`),r);n&&(i=n)}),i}function n7(e,t){let i=null;if(e&&n2(e)){let s,r=n9(e,t);r&&(i=r);let n=(s=null,Object.values(e).forEach(e=>{var i,r;let n;if(s)return;let o=(i=e?.accounts,r=`${t} namespace`,n=null,n1(i)?i.forEach(e=>{n||function(e){if(n6(e,!1)&&e.includes(":")){let t=e.split(":");if(3===t.length){let e=t[0]+":"+t[1];return!!t[2]&&n5(e)}}return!1}(e)||(n=n0("UNSUPPORTED_ACCOUNTS",`${r}, account ${e} should be a string and conform to "namespace:chainId:address" format`))}):n=n0("UNSUPPORTED_ACCOUNTS",`${r}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n);o&&(s=o)}),s);n&&(i=n)}else i=nX("MISSING_OR_INVALID",`${t}, namespaces should be an object with data`);return i}function oe(e){return n6(e.protocol,!0)}function ot(e){return"u">typeof e}function oi(e,t){return!(!n5(t)||!nG(e).includes(t))}function os(e,t,i){let s=null,r=function(e){let t={};return Object.keys(e).forEach(i=>{var s;i.includes(":")?t[i]=e[i]:null==(s=e[i].chains)||s.forEach(s=>{t[s]={methods:e[i].methods,events:e[i].events}})}),t}(e),n=function(e){let t={};return Object.keys(e).forEach(i=>{if(i.includes(":"))t[i]=e[i];else{let s=nH(e[i].accounts);s?.forEach(s=>{t[s]={accounts:e[i].accounts.filter(e=>e.includes(`${s}:`)),methods:e[i].methods,events:e[i].events}})}}),t}(t),o=Object.keys(r),a=Object.keys(n),l=or(Object.keys(e)),c=or(Object.keys(t)),h=l.filter(e=>!c.includes(e));return h.length&&(s=nX("NON_CONFORMING_NAMESPACES",`${i} namespaces keys don't satisfy requiredNamespaces.
5      Required: ${h.toString()}
6      Received: ${Object.keys(t).toString()}`)),th(o,a)||(s=nX("NON_CONFORMING_NAMESPACES",`${i} namespaces chains don't satisfy required namespaces.
7      Required: ${o.toString()}
8      Approved: ${a.toString()}`)),Object.keys(t).forEach(e=>{if(!e.includes(":")||s)return;let r=nH(t[e].accounts);r.includes(e)||(s=nX("NON_CONFORMING_NAMESPACES",`${i} namespaces accounts don't satisfy namespace accounts for ${e}
9        Required: ${e}
10        Approved: ${r.toString()}`))}),o.forEach(e=>{s||(th(r[e].methods,n[e].methods)?th(r[e].events,n[e].events)||(s=nX("NON_CONFORMING_NAMESPACES",`${i} namespaces events don't satisfy namespace events for ${e}`)):s=nX("NON_CONFORMING_NAMESPACES",`${i} namespaces methods don't satisfy namespace methods for ${e}`))}),s}function or(e){return[...new Set(e.map(e=>e.includes(":")?e.split(":")[0]:e))]}function on(){let e=to();return new Promise(t=>{switch(e){case ti.browser:t(tn()&&navigator?.onLine);break;case ti.reactNative:t(oo());break;case ti.node:default:t(!0)}})}async function oo(){if(tr()&&"u">typeof global&&null!=global&&global.NetInfo){let e=await (null==global?void 0:global.NetInfo.fetch());return e?.isConnected}return!0}let oa={};class ol{static get(e){return oa[e]}static set(e,t){oa[e]=t}static delete(e){delete oa[e]}}function oc(e){return new Uint8Array(e.replace(/^0x/,"").match(/.{1,2}/g).map(e=>parseInt(e,16)))}function oh({logger:e,name:t}){let i="string"==typeof e?Y({opts:{level:e,name:t}}).logger:e;return i.level="string"==typeof e?e:e.level,i}var ou=i(96776),od=i(7227),op=i(63850),of=i(44168).Buffer,og=i(55036);let oy="core",om=`wc@2:${oy}:`,ob={logger:"error"},ow={database:":memory:"},ov="client_ed25519_seed",oE=em.ONE_DAY,ox=em.SIX_HOURS,oI="wss://relay.walletconnect.org",o_={message:"relayer_message",message_ack:"relayer_message_ack",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",publish:"relayer_publish"},oS={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},oO="2.23.1",oP={link_mode:"link_mode",relay:"relay"},oR={inbound:"inbound",outbound:"outbound"},oT="WALLETCONNECT_LINK_MODE_APPS",oA={created:"subscription_created",deleted:"subscription_deleted",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},oN=(em.FIVE_SECONDS,{wc_pairingDelete:{req:{ttl:em.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:em.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:em.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:em.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:em.ONE_DAY,prompt:!1,tag:0},res:{ttl:em.ONE_DAY,prompt:!1,tag:0}}}),oU={create:"pairing_create",expire:"pairing_expire",delete:"pairing_delete",ping:"pairing_ping"},ok={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},oB={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},oC="https://verify.walletconnect.org",oq=`${oC}/v3`,oL=["https://verify.walletconnect.com",oC],oD={pairing_started:"pairing_started",pairing_uri_validation_success:"pairing_uri_validation_success",pairing_uri_not_expired:"pairing_uri_not_expired",store_new_pairing:"store_new_pairing",subscribing_pairing_topic:"subscribing_pairing_topic",subscribe_pairing_topic_success:"subscribe_pairing_topic_success",existing_pairing:"existing_pairing",pairing_not_expired:"pairing_not_expired",emit_inactive_pairing:"emit_inactive_pairing",emit_session_proposal:"emit_session_proposal"}
10,oj={no_internet_connection:"no_internet_connection",malformed_pairing_uri:"malformed_pairing_uri",active_pairing_already_exists:"active_pairing_already_exists",subscribe_pairing_topic_failure:"subscribe_pairing_topic_failure",pairing_expired:"pairing_expired",proposal_listener_not_found:"proposal_listener_not_found"},oM={session_approve_started:"session_approve_started",session_namespaces_validation_success:"session_namespaces_validation_success",subscribing_session_topic:"subscribing_session_topic",subscribe_session_topic_success:"subscribe_session_topic_success",session_approve_publish_success:"session_approve_publish_success",store_session:"store_session",session_request_response_started:"session_request_response_started",session_request_response_validation_success:"session_request_response_validation_success",session_request_response_publish_started:"session_request_response_publish_started"},o$={no_internet_connection:"no_internet_connection",proposal_expired:"proposal_expired",subscribe_session_topic_failure:"subscribe_session_topic_failure",session_approve_namespace_validation_failure:"session_approve_namespace_validation_failure",proposal_not_found:"proposal_not_found",session_request_response_validation_failure:"session_request_response_validation_failure",session_request_response_publish_failure:"session_request_response_publish_failure"},oz={authenticated_session_approve_started:"authenticated_session_approve_started",create_authenticated_session_topic:"create_authenticated_session_topic",cacaos_verified:"cacaos_verified",store_authenticated_session:"store_authenticated_session",subscribing_authenticated_session_topic:"subscribing_authenticated_session_topic",subscribe_authenticated_session_topic_success:"subscribe_authenticated_session_topic_success",publishing_authenticated_session_approve:"publishing_authenticated_session_approve"},oK={no_internet_connection:"no_internet_connection",invalid_cacao:"invalid_cacao",subscribe_authenticated_session_topic_failure:"subscribe_authenticated_session_topic_failure",authenticated_session_approve_publish_failure:"authenticated_session_approve_publish_failure",authenticated_session_pending_request_not_found:"authenticated_session_pending_request_not_found"};var oV=function(e,t){if(e.length>=255)throw TypeError("Alphabet too long");for(var i=new Uint8Array(256),s=0;s<i.length;s++)i[s]=255;for(var r=0;r<e.length;r++){var n=e.charAt(r),o=n.charCodeAt(0);if(255!==i[o])throw TypeError(n+" is ambiguous");i[o]=r}var a=e.length,l=e.charAt(0),c=Math.log(a)/Math.log(256),h=Math.log(256)/Math.log(a);function u(e){if("string"!=typeof e)throw TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[0]){for(var s=0,r=0;e[t]===l;)s++,t++;for(var n=(e.length-t)*c+1>>>0,o=new Uint8Array(n);e[t];){var h=i[e.charCodeAt(t)];if(255===h)return;for(var u=0,d=n-1;(0!==h||u<r)&&-1!==d;d--,u++)h+=a*o[d]>>>0,o[d]=h%256>>>0,h=h/256>>>0;if(0!==h)throw Error("Non-zero carry");r=u,t++}if(" "!==e[t]){for(var p=n-r;p!==n&&0===o[p];)p++;for(var f=new Uint8Array(s+(n-p)),g=s;p!==n;)f[g++]=o[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError("Expected Uint8Array");if(0===t.length)return"";for(var i=0,s=0,r=0,n=t.length;r!==n&&0===t[r];)r++,i++;for(var o=(n-r)*h+1>>>0,c=new Uint8Array(o);r!==n;){for(var u=t[r],d=0,p=o-1;(0!==u||d<s)&&-1!==p;p--,d++)u+=256*c[p]>>>0,c[p]=u%a>>>0,u=u/a>>>0;if(0!==u)throw Error("Non-zero carry");s=d,r++}for(var f=o-s;f!==o&&0===c[f];)f++;for(var g=l.repeat(i);f<o;++f)g+=e.charAt(c[f]);return g},decodeUnsafe:u,decode:function(e){var i=u(e);if(i)return i;throw Error(`Non-${t} character`)}}};let oF=e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error("Unknown type, must be binary type")};class oH{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 oG{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}
10 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 oJ(this,e)}}class oW{constructor(e){this.decoders=e}or(e){return oJ(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 oJ=(e,t)=>new oW({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class oZ{constructor(e,t,i,s){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=s,this.encoder=new oH(e,t,i),this.decoder=new oG(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}let oY=({name:e,prefix:t,encode:i,decode:s})=>new oZ(e,t,i,s),oQ=({prefix:e,name:t,alphabet:i})=>{let{encode:s,decode:r}=oV(i,t);return oY({prefix:e,name:t,encode:s,decode:e=>oF(r(e))})},oX=({name:e,prefix:t,bitsPerChar:i,alphabet:s})=>oY({prefix:t,name:e,encode:e=>((e,t,i)=>{let s="="===t[t.length-1],r=(1<<i)-1,n="",o=0,a=0;for(let s=0;s<e.length;++s)for(a=a<<8|e[s],o+=8;o>i;)o-=i,n+=t[r&a>>o];if(o&&(n+=t[r&a<<i-o]),s)for(;n.length*i&7;)n+="=";return n})(e,s,i),decode:t=>((e,t,i,s)=>{let r={};for(let e=0;e<t.length;++e)r[t[e]]=e;let n=e.length;for(;"="===e[n-1];)--n;let o=new Uint8Array(n*i/8|0),a=0,l=0,c=0;for(let t=0;t<n;++t){let n=r[e[t]];if(void 0===n)throw SyntaxError(`Non-${s} character`);l=l<<i|n,(a+=i)>=8&&(a-=8,o[c++]=255&l>>a)}if(a>=i||255&l<<8-a)throw SyntaxError("Unexpected end of data");return o})(t,s,i,e)});var o0=Object.freeze({__proto__:null,identity:oY({prefix:"\0",name:"identity",encode:e=>new TextDecoder().decode(e),decode:e=>new TextEncoder().encode(e)})}),o1=Object.freeze({__proto__:null,base2:oX({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1})}),o2=Object.freeze({__proto__:null,base8:oX({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3})}),o8=Object.freeze({__proto__:null,base10:oQ({prefix:"9",name:"base10",alphabet:"0123456789"})}),o6=Object.freeze({__proto__:null,base16:oX({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),base16upper:oX({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4})});let o3=oX({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),o5=oX({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),o4=oX({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),o9=oX({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),o7=oX({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),ae=oX({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),at=oX({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5});var ai=Object.freeze({__proto__:null,base32:o3,base32upper:o5,base32pad:o4,base32padupper:o9,base32hex:o7,base32hexupper:ae,base32hexpad:at,base32hexpadupper:oX({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),base32z:oX({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5})}),as=Object.freeze({__proto__:null,base36:oQ({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),base36upper:oQ({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"})}),ar=Object.freeze({__proto__:null,base58btc:oQ({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),base58flickr:oQ({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"})});let an=oX({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ao=oX({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6});var aa=Object.freeze({__proto__:null,base64:an,base64pad:ao,base64url:oX({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),base64urlpad:oX({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6})});let al=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"),ac=al.reduce((e,t,i)=>(e[i]=t,e),[]),ah=al.reduce((e,t,i)=>(e[t.codePointAt(0)]=i,e),[]);var au=Object.freeze({__proto__:null,base256emoji:oY({prefix:"\uD83D\uDE80",name:"base256emoji",encode:function(e){return e.reduce((e,t)=>
10e+=ac[t],"")},decode:function(e){let t=[];for(let i of e){let e=ah[i.codePointAt(0)];if(void 0===e)throw Error(`Non-base256emoji character: ${i}`);t.push(e)}return new Uint8Array(t)}})});function ad(e,t,i){t=t||[],i=i||0;for(var s=i;e>=0x80000000;)t[i++]=255&e|128,e/=128;for(;-128&e;)t[i++]=255&e|128,e>>>=7;return t[i]=0|e,ad.bytes=i-s+1,t}var ap={encode:ad,encodingLength:function(e){return e<128?1:e<16384?2:e<2097152?3:e<0x10000000?4:e<0x800000000?5:e<0x40000000000?6:e<0x2000000000000?7:e<0x100000000000000?8:e<0x8000000000000000?9:10}};let af=(e,t,i=0)=>(ap.encode(e,t,i),t),ag=e=>ap.encodingLength(e),ay=(e,t)=>{let i=t.byteLength,s=ag(e),r=s+ag(i),n=new Uint8Array(r+i);return af(e,n,0),af(i,n,s),n.set(t,r),new am(e,i,t,n)};class am{constructor(e,t,i,s){this.code=e,this.size=t,this.digest=i,this.bytes=s}}let ab=({name:e,code:t,encode:i})=>new aw(e,t,i);class aw{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?ay(this.code,t):t.then(e=>ay(this.code,e))}throw Error("Unknown type, must be binary type")}}let av=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t));var aE=Object.freeze({__proto__:null,sha256:ab({name:"sha2-256",code:18,encode:av("SHA-256")}),sha512:ab({name:"sha2-512",code:19,encode:av("SHA-512")})}),ax=Object.freeze({__proto__:null,identity:{code:0,name:"identity",encode:oF,digest:e=>ay(0,oF(e))}});new TextEncoder,new TextDecoder;let aI={...o0,...o1,...o2,...o8,...o6,...ai,...as,...ar,...aa,...au};function a_(e){return null!=globalThis.Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function aS(e,t,i,s){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:i},decoder:{decode:s}}}({...aE,...ax});let aO=aS("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),aP=aS("ascii","a",e=>{let t="a";for(let i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return t},e=>{let t=function(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?a_(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}((e=e.substring(1)).length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}),aR={utf8:aO,"utf-8":aO,hex:aI.base16,latin1:aP,ascii:aP,binary:aP,...aI};var aT=Object.defineProperty,aA=(e,t,i)=>((e,t,i)=>t in e?aT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class aN{constructor(e,t){this.core=e,this.logger=t,aA(this,"keychain",new Map),aA(this,"name","keychain"),aA(this,"version","0.3"),aA(this,"initialized",!1),aA(this,"storagePrefix",om),aA(this,"init",async()=>{if(!this.initialized){let e=await this.getKeyChain();"u">typeof e&&(this.keychain=e),this.initialized=!0}}),aA(this,"has",e=>(this.isInitialized(),this.keychain.has(e))),aA(this,"set",async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),aA(this,"get",e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>"u"){let{message:t}=nX("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(t)}return t}),aA(this,"del",async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=Z(t,this.name)}get context(){return J(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,tu(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return"u">typeof e?td(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}}var aU=Object.defineProperty,ak=(e,t,i)=>((e,t,i)=>t in e?aU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class aB{constructor(e,t,i){this.core=e,this.logger=t,ak(this,"name","crypto"),ak(this,"keychain"),ak(this,"randomSessionIdentifier",np()),ak(this,"initialized",!1),ak(this,"clientId"),ak(this,"init",async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)}),ak(this,"hasKeys",e=>(this.isInitialized(),this.keychain.has(e))),ak(this,"getClientId",async()=>
10{if(this.isInitialized(),this.clientId)return this.clientId;let e=await this.getClientSeed(),t=ew.TZ(e),i=ew.UF(t.publicKey);return this.clientId=i,i}),ak(this,"generateKeyPair",()=>{this.isInitialized();let e=function(){let e=rZ.utils.randomPrivateKey(),t=rZ.getPublicKey(e);return{privateKey:(0,eZ.dI)(e,nc),publicKey:(0,eZ.dI)(t,nc)}}();return this.setPrivateKey(e.publicKey,e.privateKey)}),ak(this,"signJWT",async e=>{this.isInitialized();let t=await this.getClientSeed(),i=ew.TZ(t),s=this.randomSessionIdentifier;return await ew.FA(s,e,oE,i)}),ak(this,"generateSharedKey",(e,t,i)=>{this.isInitialized();let s=function(e,t){var i;let s,r=rZ.getSharedSecret((0,eZ.sH)(e,nc),(0,eZ.sH)(t,nc)),n=(s=void 0,function(e,t,i,s=32){tJ(e),tG(s);let r=e.outputLen;if(s>255*r)throw Error("Length should be <= 255*HashLen");let n=Math.ceil(s/r);void 0===i&&(i=sJ);let o=new Uint8Array(n*r),a=sG.create(e,t),l=a._cloneInto(),c=new Uint8Array(a.outputLen);for(let e=0;e<n;e++)sW[0]=e+1,l.update(0===e?sJ:c).update(i).update(sW).digestInto(c),o.set(c,r*e),a._cloneInto(l);return a.destroy(),l.destroy(),tX(c,sW),o.slice(0,s)}(iz,(i=void 0,tJ(iz),void 0===i&&(i=new Uint8Array(iz.outputLen)),sG(iz,is(i),is(r))),s,32));return(0,eZ.dI)(n,nc)}(this.getPrivateKey(e),t);return this.setSymKey(s,i)}),ak(this,"setSymKey",async(e,t)=>{this.isInitialized();let i=t||nf(e);return await this.keychain.set(i,e),i}),ak(this,"deleteKeyPair",async e=>{this.isInitialized(),await this.keychain.del(e)}),ak(this,"deleteSymKey",async e=>{this.isInitialized(),await this.keychain.del(e)}),ak(this,"encode",async(e,t,i)=>{this.isInitialized();let s=nx(i),r=(0,eb.h)(t);if(2===s.type)return function(e,t){let i=ny(2),s=il(12),r=nv({type:i,sealed:(0,eZ.sH)(e,nd),iv:s});return t===nu?nb(r):r}(r,i?.encoding);if(nI(s)){let t=s.senderPublicKey,i=s.receiverPublicKey;e=await this.generateSharedKey(t,i)}let n=this.getSymKey(e),{type:o,senderPublicKey:a}=s;return function(e){let t=ny("u">typeof e.type?e.type:0);if(1===nm(t)&&typeof e.senderPublicKey>"u")throw Error("Missing sender public key for type 1 envelope");let i="u">typeof e.senderPublicKey?(0,eZ.sH)(e.senderPublicKey,nc):void 0,s="u">typeof e.iv?(0,eZ.sH)(e.iv,nc):il(12),r=nv({type:t,sealed:sF((0,eZ.sH)(e.symKey,nc),s).encrypt((0,eZ.sH)(e.message,nd)),iv:s,senderPublicKey:i});return e.encoding===nu?nb(r):r}({type:o,symKey:n,message:r,senderPublicKey:a,encoding:i?.encoding})}),ak(this,"decode",async(e,t,i)=>{this.isInitialized();let s=function(e,t){let i=nE({encoded:e,encoding:t?.encoding});return nx({type:nm(i.type),senderPublicKey:"u">typeof i.senderPublicKey?(0,eZ.dI)(i.senderPublicKey,nc):void 0,receiverPublicKey:t?.receiverPublicKey})}(t,i);if(2===s.type){let e=function(e,t){let{sealed:i}=nE({encoded:e,encoding:t});return(0,eZ.dI)(i,nd)}(t,i?.encoding);return(0,eb.j)(e)}if(nI(s)){let t=s.receiverPublicKey,i=s.senderPublicKey;e=await this.generateSharedKey(t,i)}try{let s=this.getSymKey(e),r=function(e){let t=(0,eZ.sH)(e.symKey,nc),{sealed:i,iv:s}=nE({encoded:e.encoded,encoding:e.encoding}),r=sF(t,s).decrypt(i);if(null===r)throw Error("Failed to decrypt");return(0,eZ.dI)(r,nd)}({symKey:s,encoded:t,encoding:i?.encoding});return(0,eb.j)(r)}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),ak(this,"getPayloadType",(e,t=nh)=>nm(nE({encoded:e,encoding:t}).type)),ak(this,"getPayloadSenderPublicKey",(e,t=nh)=>{let i=nE({encoded:e,encoding:t});return i.senderPublicKey?(0,eZ.dI)(i.senderPublicKey,nc):void 0}),this.core=e,this.logger=Z(t,this.name),this.keychain=i||new aN(this.core,this.logger)}get context(){return J(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(ov)}catch{e=np(),await this.keychain.set(ov,e)}return function(e,t="utf8"){let i=aR[t];if(!i)throw Error(`Unsupported encoding "${t}"`);return("utf8"===t||"utf-8"===t)&&null!=globalThis.Buffer&&null!=globalThis.Buffer.from?a_(globalThis.Buffer.from(e,"utf-8")):i.decoder.decode(`${i.prefix}${e}`)}(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}}var aC=Object.defineProperty,aq=Object.defineProperties,aL=Object.getOwnPropertyDescriptors,aD=Object.getOwnPropertySymbols,aj=Object.prototype.hasOwnProperty,aM=Object.prototype.propertyIsEnumerable,a$=(e,t,i)=>t in e?aC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,az=(e,t,i)=>a$(e,"symbol"!=typeof t?t+"":t,i);class aK extends er{constructor(e,t){super(e,t),this.logger=e,this.core=t,az(this,"messages",new Map),az(this,"messagesWithoutClientAck",new Map),az(this,"name","messages"),az(this,"version","0.3"),az(this,"initialized",!1),az(this,"storagePrefix",om),az(this,"init",async()=>
10{if(!this.initialized){this.logger.trace("Initialized");try{let e=await this.getRelayerMessages();"u">typeof e&&(this.messages=e);let t=await this.getRelayerMessagesWithoutClientAck();"u">typeof t&&(this.messagesWithoutClientAck=t),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}}),az(this,"set",async(e,t,i)=>{this.isInitialized();let s=ng(t),r=this.messages.get(e);if(typeof r>"u"&&(r={}),"u">typeof r[s])return s;if(r[s]=t,this.messages.set(e,r),i===oR.inbound){let i=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,aq(((e,t)=>{for(var i in t||(t={}))aj.call(t,i)&&a$(e,i,t[i]);if(aD)for(var i of aD(t))aM.call(t,i)&&a$(e,i,t[i]);return e})({},i),aL({[s]:t})))}return await this.persist(),s}),az(this,"get",e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>"u"&&(t={}),t}),az(this,"getWithoutAck",e=>{this.isInitialized();let t={};for(let i of e){let e=this.messagesWithoutClientAck.get(i)||{};t[i]=Object.values(e)}return t}),az(this,"has",(e,t)=>(this.isInitialized(),"u">typeof this.get(e)[ng(t)])),az(this,"ack",async(e,t)=>{this.isInitialized();let i=this.messagesWithoutClientAck.get(e);if(typeof i>"u")return;let s=ng(t);delete i[s],0===Object.keys(i).length?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,i),await this.persist()}),az(this,"del",async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=Z(e,this.name),this.core=t}get context(){return J(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name+"_withoutClientAck"}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,tu(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,tu(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return"u">typeof e?td(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return"u">typeof e?td(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}}var aV=Object.defineProperty,aF=Object.defineProperties,aH=Object.getOwnPropertyDescriptors,aG=Object.getOwnPropertySymbols,aW=Object.prototype.hasOwnProperty,aJ=Object.prototype.propertyIsEnumerable,aZ=(e,t,i)=>t in e?aV(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,aY=(e,t)=>{for(var i in t||(t={}))aW.call(t,i)&&aZ(e,i,t[i]);if(aG)for(var i of aG(t))aJ.call(t,i)&&aZ(e,i,t[i]);return e},aQ=(e,t)=>aF(e,aH(t)),aX=(e,t,i)=>aZ(e,"symbol"!=typeof t?t+"":t,i);class a0 extends en{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,aX(this,"events",new s.EventEmitter),aX(this,"name","publisher"),aX(this,"queue",new Map),aX(this,"publishTimeout",(0,em.toMiliseconds)(em.ONE_MINUTE)),aX(this,"initialPublishTimeout",(0,em.toMiliseconds)(15*em.ONE_SECOND)),aX(this,"needsTransportRestart",!1),aX(this,"publish",async(e,t,i)=>{var s,r,n,o,a;this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:i}});let l=i?.ttl||ox,c=i?.prompt||!1,h=i?.tag||0,u=i?.id||(0,od.getBigIntRpcId)().toString(),d=nS(n_().protocol),p={id:u,method:i?.publishMethod||d.publish,params:aY({topic:e,message:t,ttl:l,prompt:c,tag:h,attestation:i?.attestation},i?.tvf)},f=`Failed to publish payload, please try again. id:${u} tag:${h}`;try{n8(null==(s=p.params)?void 0:s.prompt)&&(null==(r=p.params)||delete r.prompt),n8(null==(n=p.params)?void 0:n.tag)&&(null==(o=p.params)||delete o.tag);let a=new Promise(async e=>{let t=({id:i})=>{var s;(null==(s=p.id)?void 0:s.toString())===i.toString()&&(this.removeRequestFromQueue(i),this.relayer.events.removeListener(o_.publish,t),e())};this.relayer.events.on(o_.publish,t);let s=tf(new Promise((e,t)=>
10{this.rpcPublish(p,i).then(e).catch(e=>{this.logger.warn(e,e?.message),t(e)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${u} tag:${h}`);try{await s,this.events.removeListener(o_.publish,t)}catch(e){this.queue.set(u,{request:p,opts:i,attempt:1}),this.logger.warn(e,e?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:u,topic:e,message:t,opts:i}}),await tf(a,this.publishTimeout,f)}catch(e){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(e),null!=(a=i?.internal)&&a.throwOnFailedPublish)throw e}finally{this.queue.delete(u)}}),aX(this,"publishCustom",async e=>{var t,i,s,r,n;this.logger.debug("Publishing custom payload"),this.logger.trace({type:"method",method:"publishCustom",params:e});let{payload:o,opts:a={}}=e,{attestation:l,tvf:c,publishMethod:h,prompt:u,tag:d,ttl:p=em.FIVE_MINUTES}=a,f=a.id||(0,od.getBigIntRpcId)().toString(),g=nS(n_().protocol),y=h||g.publish,m={id:f,method:y,params:aY(aQ(aY({},o),{ttl:p,prompt:u,tag:d,attestation:l}),c)},b=`Failed to publish custom payload, please try again. id:${f} tag:${d}`;try{n8(null==(t=m.params)?void 0:t.prompt)&&(null==(i=m.params)||delete i.prompt),n8(null==(s=m.params)?void 0:s.tag)&&(null==(r=m.params)||delete r.tag);let e=new Promise(async e=>{let t=({id:i})=>{var s;(null==(s=m.id)?void 0:s.toString())===i.toString()&&(this.removeRequestFromQueue(i),this.relayer.events.removeListener(o_.publish,t),e())};this.relayer.events.on(o_.publish,t);let i=tf(new Promise((e,t)=>{this.rpcPublish(m,a).then(e).catch(e=>{this.logger.warn(e,e?.message),t(e)})}),this.initialPublishTimeout,`Failed initial custom payload publish, retrying.... method:${y} id:${f} tag:${d}`);try{await i,this.events.removeListener(o_.publish,t)}catch(e){this.queue.set(f,{request:m,opts:a,attempt:1}),this.logger.warn(e,e?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:f,payload:o,opts:a}}),await tf(e,this.publishTimeout,b)}catch(e){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(e),null!=(n=a?.internal)&&n.throwOnFailedPublish)throw e}finally{this.queue.delete(f)}}),aX(this,"on",(e,t)=>{this.events.on(e,t)}),aX(this,"once",(e,t)=>{this.events.once(e,t)}),aX(this,"off",(e,t)=>{this.events.off(e,t)}),aX(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=Z(t,this.name),this.registerEventListeners()}get context(){return J(this.logger)}async rpcPublish(e,t){this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:e});let i=await this.relayer.request(e);return this.relayer.events.emit(o_.publish,aY(aY({},e),t)),this.logger.debug("Successfully Published Payload"),i}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{var i;let s=e.attempt+1;this.queue.set(t,aQ(aY({},e),{attempt:s})),this.logger.warn({},`Publisher: queue->publishing: ${e.request.id}, tag: ${null==(i=e.request.params)?void 0:i.tag}, attempt: ${s}`),await this.rpcPublish(e.request,e.opts),this.logger.warn({},`Publisher: queue->published: ${e.request.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(n.li.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(o_.connection_stalled);return}this.checkQueue()}),this.relayer.on(o_.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}var a1=Object.defineProperty,a2=(e,t,i)=>((e,t,i)=>t in e?a1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class a8{constructor(){a2(this,"map",new Map),a2(this,"set",(e,t)=>{let i=this.get(e);this.exists(e,t)||this.map.set(e,[...i,t])}),a2(this,"get",e=>this.map.get(e)||[]),a2(this,"exists",(e,t)=>this.get(e).includes(t)),a2(this,"delete",(e,t)=>{if(typeof t>"u")return void this.map.delete(e);if(!this.map.has(e))return;let i=this.get(e);if(!this.exists(e,t))return;let s=i.filter(e=>e!==t);if(!s.length)return void this.map.delete(e);this.map.set(e,s)}),a2(this,"clear",()=>{this.map.clear()})}
10get topics(){return Array.from(this.map.keys())}}var a6=Object.defineProperty,a3=Object.defineProperties,a5=Object.getOwnPropertyDescriptors,a4=Object.getOwnPropertySymbols,a9=Object.prototype.hasOwnProperty,a7=Object.prototype.propertyIsEnumerable,le=(e,t,i)=>t in e?a6(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,lt=(e,t)=>{for(var i in t||(t={}))a9.call(t,i)&&le(e,i,t[i]);if(a4)for(var i of a4(t))a7.call(t,i)&&le(e,i,t[i]);return e},li=(e,t)=>a3(e,a5(t)),ls=(e,t,i)=>le(e,"symbol"!=typeof t?t+"":t,i);class lr extends el{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,ls(this,"subscriptions",new Map),ls(this,"topicMap",new a8),ls(this,"events",new s.EventEmitter),ls(this,"name","subscription"),ls(this,"version","0.3"),ls(this,"pending",new Map),ls(this,"cached",[]),ls(this,"initialized",!1),ls(this,"storagePrefix",om),ls(this,"subscribeTimeout",(0,em.toMiliseconds)(em.ONE_MINUTE)),ls(this,"initialSubscribeTimeout",(0,em.toMiliseconds)(15*em.ONE_SECOND)),ls(this,"clientId"),ls(this,"batchSubscribeTopicsLimit",500),ls(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),await this.restore()),this.initialized=!0}),ls(this,"subscribe",async(e,t)=>{var i;this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}});try{let s=n_(t),r={topic:e,relay:s,transportType:t?.transportType};null!=(i=t?.internal)&&i.skipSubscribe||this.pending.set(e,r);let n=await this.rpcSubscribe(e,s,t);return"string"==typeof n&&(this.onSubscribe(n,r),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}})),n}catch(e){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(e),e}}),ls(this,"unsubscribe",async(e,t)=>{this.isInitialized(),"u">typeof t?.id?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)}),ls(this,"isSubscribed",e=>new Promise(t=>{t(this.topicMap.topics.includes(e))})),ls(this,"isKnownTopic",e=>new Promise(t=>{t(this.topicMap.topics.includes(e)||this.pending.has(e)||this.cached.some(t=>t.topic===e))})),ls(this,"on",(e,t)=>{this.events.on(e,t)}),ls(this,"once",(e,t)=>{this.events.once(e,t)}),ls(this,"off",(e,t)=>{this.events.off(e,t)}),ls(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),ls(this,"start",async()=>{await this.onConnect()}),ls(this,"stop",async()=>{await this.onDisconnect()}),ls(this,"restart",async()=>{await this.restore(),await this.onRestart()}),ls(this,"checkPending",async()=>{if(0===this.pending.size&&(!this.initialized||!this.relayer.connected))return;let e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e)}),ls(this,"registerEventListeners",()=>{this.relayer.core.heartbeat.on(n.li.pulse,async()=>{await this.checkPending()}),this.events.on(oA.created,async e=>{let t=oA.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()}),this.events.on(oA.deleted,async e=>{let t=oA.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()})}),this.relayer=e,this.logger=Z(t,this.name),this.clientId=""}get context(){return J(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,t){let i=!1;try{i=this.getSubscription(e).topic===t}catch{}return i}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){let i=this.topicMap.get(e);await Promise.all(i.map(async i=>await this.unsubscribeById(e,i,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=n_(i);await this.restartToComplete({topic:e,id:t,relay:s}
10),await this.rpcUnsubscribe(e,t,s);let r=n0("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,r),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:i}})}catch(e){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(e),e}}async rpcSubscribe(e,t,i){var s,r;let n=await this.getSubscriptionId(e);if(null!=(s=i?.internal)&&s.skipSubscribe)return n;i&&i?.transportType!==oP.relay||await this.restartToComplete({topic:e,id:e,relay:t});let o={method:nS(t.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:o});let a=null==(r=i?.internal)?void 0:r.throwOnFailedPublish;try{if(i?.transportType===oP.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(o).catch(e=>this.logger.warn(e))},(0,em.toMiliseconds)(em.ONE_SECOND)),n;let t=new Promise(async t=>{let i=s=>{s.topic===e&&(this.events.removeListener(oA.created,i),t(s.id))};this.events.on(oA.created,i);try{let s=await tf(new Promise((e,t)=>{this.relayer.request(o).catch(e=>{this.logger.warn(e,e?.message),t(e)}).then(e)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(oA.created,i),t(s)}catch{}}),s=await tf(t,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!s&&a)throw Error(`Subscribing to ${e} failed, please try again`);return s?n:null}catch(e){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(o_.connection_stalled),a)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t={method:nS(e[0].relay.protocol).batchSubscribe,params:{topics:e.map(e=>e.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:t});try{await await tf(new Promise(e=>{this.relayer.request(t).catch(e=>this.logger.warn(e)).then(e)}),this.subscribeTimeout,"rpcBatchSubscribe failed, please try again")}catch{this.relayer.events.emit(o_.connection_stalled)}}async rpcBatchFetchMessages(e){let t;if(!e.length)return;let i={method:nS(e[0].relay.protocol).batchFetchMessages,params:{topics:e.map(e=>e.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i});try{t=await await tf(new Promise((e,t)=>{this.relayer.request(i).catch(e=>{this.logger.warn(e),t(e)}).then(e)}),this.subscribeTimeout,"rpcBatchFetchMessages failed, please try again")}catch{this.relayer.events.emit(o_.connection_stalled)}return t}rpcUnsubscribe(e,t,i){let s={method:nS(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,li(lt({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,lt({},e)),this.pending.delete(e.topic)})}async onUnsubscribe(e,t,i){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,i),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,lt({},t)),this.topicMap.set(t.topic,e),this.events.emit(oA.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:t}=nX("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(t)}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(oA.deleted,li(lt({},i),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(oA.sync)}
10async onRestart(){if(this.cached.length){let e=[...this.cached],t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let i=0;i<t;i++){let t=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(t)}}this.events.emit(oA.resubscribed)}async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size&&!e.every(e=>{var t;return e.topic===(null==(t=this.subscriptions.get(e.id))?void 0:t.topic)})){let{message:e}=nX("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){e.length&&(await this.rpcBatchSubscribe(e),this.onBatchSubscribe(await Promise.all(e.map(async e=>li(lt({}
10,e),{id:await this.getSubscriptionId(e.topic)})))))}async batchFetchMessages(e){var t;if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);let i=await this.rpcBatchFetchMessages(e);i&&i.messages&&(await (t=(0,em.toMiliseconds)(em.ONE_SECOND),new Promise(e=>setTimeout(e,t))),await this.relayer.handleBatchMessageEvents(i.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}async restartToComplete(e){this.relayer.connected||this.relayer.connecting||(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||(this.clientId=await this.relayer.core.crypto.getClientId()),this.clientId}async getSubscriptionId(e){return ng(e+await this.getClientId())}}var ln=Object.defineProperty,lo=Object.getOwnPropertySymbols,la=Object.prototype.hasOwnProperty,ll=Object.prototype.propertyIsEnumerable,lc=(e,t,i)=>t in e?ln(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,lh=(e,t)=>{for(var i in t||(t={}))la.call(t,i)&&lc(e,i,t[i]);if(lo)for(var i of lo(t))ll.call(t,i)&&lc(e,i,t[i]);return e},lu=(e,t,i)=>lc(e,"symbol"!=typeof t?t+"":t,i);class ld extends eo{constructor(e){var t;super(e),lu(this,"protocol","wc"),lu(this,"version",2),lu(this,"core"),lu(this,"logger"),lu(this,"events",new s.EventEmitter),lu(this,"provider"),lu(this,"messages"),lu(this,"subscriber"),lu(this,"publisher"),lu(this,"name","relayer"),lu(this,"transportExplicitlyClosed",!1),lu(this,"initialized",!1),lu(this,"connectionAttemptInProgress",!1),lu(this,"relayUrl"),lu(this,"projectId"),lu(this,"packageName"),lu(this,"bundleId"),lu(this,"hasExperiencedNetworkDisruption",!1),lu(this,"pingTimeout"),lu(this,"heartBeatTimeout",(0,em.toMiliseconds)(em.THIRTY_SECONDS+em.FIVE_SECONDS)),lu(this,"reconnectTimeout"),lu(this,"connectPromise"),lu(this,"reconnectInProgress",!1),lu(this,"requestsInFlight",[]),lu(this,"connectTimeout",(0,em.toMiliseconds)(15*em.ONE_SECOND)),lu(this,"request",async e=>{var t,i;this.logger.debug("Publishing Request Payload");let s=e.id||(0,od.getBigIntRpcId)().toString();await this.toEstablishConnection();try{this.logger.trace({id:s,method:e.method,topic:null==(t=e.params)?void 0:t.topic},"relayer.request - publishing...");let r=`${s}:${(null==(i=e.params)?void 0:i.tag)||""}`;this.requestsInFlight.push(r);let n=await this.provider.request(e);return this.requestsInFlight=this.requestsInFlight.filter(e=>e!==r),n}catch(e){throw this.logger.debug(`Failed to Publish Request: ${s}`),e}}),lu(this,"resetPingTimeout",()=>{ts()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var e,t,i,s;try{this.logger.debug({},"pingTimeout: Connection stalled, terminating..."),null==(s=null==(i=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:i.terminate)||s.call(i)}catch(e){this.logger.warn(e,e?.message)}},this.heartBeatTimeout))}),lu(this,"onPayloadHandler",e=>{this.onProviderPayload(e),this.resetPingTimeout()}),lu(this,"onConnectHandler",()=>{this.logger.warn({},"Relayer connected \uD83D\uDEDC"),this.startPingTimeout(),this.events.emit(o_.connect)}),lu(this,"onDisconnectHandler",()=>{this.logger.warn({},"Relayer disconnected \uD83D\uDED1"),this.requestsInFlight=[],this.onProviderDisconnect()}),lu(this,"onProviderErrorHandler",e=>{this.logger.fatal(`Fatal socket error: ${e.message}`),this.events.emit(o_.error,e),this.logger.fatal("Fatal socket error received, closing transport"),this.transportClose()}),lu(this,"registerProviderListeners",()=>{this.provider.on(oS.payload,this.onPayloadHandler),this.provider.on(oS.connect,this.onConnectHandler),this.provider.on(oS.disconnect,this.onDisconnectHandler),this.provider.on(oS.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=oh({logger:null!=(t=e.logger)?t:"error",name:this.name}),this.messages=new aK(this.logger,e.core),this.subscriber=new lr(this,this.logger),this.publisher=new a0(this,this.logger),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||oI,tr()&&"u">typeof global&&"u">typeof(null==global?void 0:global.Platform)&&(null==global?void 0:global.Platform.OS)==="android"?this.packageName=ta():tr()&&"u">typeof global&&"u">typeof(null==global?void 0:global.Platform)&&(null==global?void 0:global.Platform.OS)==="ios"&&(this.bundleId=ta()),this.provider={}}
10async init(){this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.transportOpen().catch(e=>this.logger.warn(e,e?.message))}get context(){return J(this.logger)}get connected(){var e,t,i;return(null==(i=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:i.readyState)===1}get connecting(){var e,t,i;return(null==(i=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:i.readyState)===0||void 0!==this.connectPromise}async publish(e,t,i){this.isInitialized(),await this.publisher.publish(e,t,i),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:oP.relay},oR.outbound)}async publishCustom(e){this.isInitialized(),await this.publisher.publishCustom(e)}async subscribe(e,t){var i,s,r;this.isInitialized(),null!=t&&t.transportType&&t?.transportType!=="relay"||await this.toEstablishConnection();let n=typeof(null==(i=t?.internal)?void 0:i.throwOnFailedPublish)>"u"||(null==(s=t?.internal)?void 0:s.throwOnFailedPublish),o=(null==(r=this.subscriber.topicMap.get(e))?void 0:r[0])||"",a,l=t=>{t.topic===e&&(this.subscriber.off(oA.created,l),a())};return await Promise.all([new Promise(e=>{a=e,this.subscriber.on(oA.created,l)}),new Promise(async(i,s)=>{o=await this.subscriber.subscribe(e,lh({internal:{throwOnFailedPublish:n}},t)).catch(e=>{n&&s(e)})||o,i()})]),o}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await tf(this.provider.disconnect(),2e3,"provider.disconnect()").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){if(!this.subscriber.hasAnyTopics)return void this.logger.info("Starting WS connection skipped because the client has no topics to work with.");if(this.connectPromise?(this.logger.debug({},"Waiting for existing connection attempt to resolve..."),await this.connectPromise,this.logger.debug({},"Existing connection attempt resolved")):(this.connectPromise=new Promise(async(t,i)=>{await this.connect(e).then(t).catch(i).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},"Restarting transport..."),this.connectionAttemptInProgress||(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await on())throw Error("No internet connection detected. Please restart your network and try again.")}async handleBatchMessageEvents(e){if(e?.length===0)return void this.logger.trace("Batch message events is empty. Ignoring...");let t=e.sort((e,t)=>e.publishedAt-t.publishedAt);for(let e of(this.logger.debug(`Batch of ${t.length} message events sorted`),t))try{await this.onMessageEvent(e)}catch(e){this.logger.warn(e,"Error while processing batch message event: "+e?.message)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){let{topic:i}=e;if(!t.sessionExists){let e=tm(em.FIVE_MINUTES);await this.core.pairing.pairings.set(i,{topic:i,expiry:e,relay:{protocol:"irn"},active:!1})}this.events.emit(o_.message,e),await this.recordMessageEvent(e,oR.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;let t=1;for(;t<6;){try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${t}...`),await this.createProvider(),await new Promise(async(e,t)=>{let i=()=>
10{t(Error("Connection interrupted while trying to connect"))};this.provider.once(oS.disconnect,i),await tf(new Promise((e,t)=>{this.provider.connect().then(e).catch(t)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(e=>{t(e)}).finally(()=>{this.provider.off(oS.disconnect,i),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,i)=>{let s=()=>{t(Error("Connection interrupted while trying to subscribe"))};this.provider.once(oS.disconnect,s),await this.subscriber.start().then(e).catch(i).finally(()=>{this.provider.off(oS.disconnect,s)})}),this.hasExperiencedNetworkDisruption=!1,e()})}catch(e){await this.subscriber.stop(),this.logger.warn({},e.message),this.hasExperiencedNetworkDisruption=!0}finally{this.connectionAttemptInProgress=!1}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${t}`);break}await new Promise(e=>setTimeout(e,(0,em.toMiliseconds)(+t))),t++}}startPingTimeout(){var e,t,i,s,r;if(ts())try{null!=(t=null==(e=this.provider)?void 0:e.connection)&&t.socket&&(null==(r=null==(s=null==(i=this.provider)?void 0:i.connection)?void 0:s.socket)||r.on("ping",()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();let e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new ou.F(new op.A(function({protocol:e,version:t,relayUrl:i,sdkVersion:s,auth:r,projectId:n,useOnCloseEvent:o,bundleId:a,packageName:l}){let c=i.split("?"),h=tc(e,t,s),u=function(e,t){let i=new URLSearchParams(e);return Object.entries(t).sort(([e],[t])=>e.localeCompare(t)).forEach(([e,t])=>{null!=t&&i.set(e,String(t))}),i.toString()}(c[1]||"",{auth:r,ua:h,projectId:n,useOnCloseEvent:o||void 0,packageName:l||void 0,bundleId:a||void 0});return c[0]+"?"+u}({sdkVersion:oO,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,t){let{topic:i,message:s}=e;await this.messages.set(i,s,t)}
10async shouldIgnoreMessageEvent(e){let{topic:t,message:i}=e;if(!i||0===i.length)return this.logger.warn(`Ignoring invalid/empty message: ${i}`),!0;if(!await this.subscriber.isKnownTopic(t))return this.logger.warn(`Ignoring message for unknown topic ${t}`),!0;let s=this.messages.has(t,i);return s&&this.logger.warn(`Ignoring duplicate message: ${i}`),s}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),(0,od.isJsonRpcRequest)(e)){if(!e.method.endsWith("_subscription"))return;let t=e.params,{topic:i,message:s,publishedAt:r,attestation:n}=t.data,o={topic:i,message:s,publishedAt:r,transportType:oP.relay,attestation:n};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(lh({type:"event",event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else(0,od.isJsonRpcResponse)(e)&&this.events.emit(o_.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,oR.inbound),this.events.emit(o_.message,e))}async acknowledgePayload(e){let t=(0,od.formatJsonRpcResult)(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(oS.payload,this.onPayloadHandler),this.provider.off(oS.connect,this.onConnectHandler),this.provider.off(oS.disconnect,this.onDisconnectHandler),this.provider.off(oS.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await on();(function(e){var t,i;switch(to()){case ti.browser:t=e,!tr()&&tn()&&(window.addEventListener("online",()=>t(!0)),window.addEventListener("offline",()=>t(!1)));break;case ti.reactNative:i=e,tr()&&"u">typeof global&&null!=global&&global.NetInfo&&global?.NetInfo.addEventListener(e=>i(e?.isConnected));case ti.node:}})(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(e=>this.logger.error(e,e?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(n.li.pulse,async()=>{var e;if(!this.transportExplicitlyClosed&&!this.connected&&(!(tn()&&(0,eE.getDocument)())||(null==(e=(0,eE.getDocument)())?void 0:e.visibilityState)==="visible"))try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(o_.disconnect),this.connectionAttemptInProgress=!1,!this.reconnectInProgress&&(this.reconnectInProgress=!0,await this.subscriber.stop(),this.subscriber.hasAnyTopics&&(this.transportExplicitlyClosed||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},(0,em.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise)return void await this.connectPromise;await this.connect()}}}function lp(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function lf(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let lg="[object Arguments]",ly="[object Object]";function lm(){}function lb(e){if(!e||"object"!=typeof e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}var lw=Object.defineProperty,lv=Object.getOwnPropertySymbols,lE=Object.prototype.hasOwnProperty,lx=Object.prototype.propertyIsEnumerable,lI=(e,t,i)=>t in e?lw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,l_=(e,t)=>
10{for(var i in t||(t={}))lE.call(t,i)&&lI(e,i,t[i]);if(lv)for(var i of lv(t))lx.call(t,i)&&lI(e,i,t[i]);return e},lS=(e,t,i)=>lI(e,"symbol"!=typeof t?t+"":t,i);class lO extends ea{constructor(e,t,i,s=om,r){super(e,t,i,s),this.core=e,this.logger=t,this.name=i,lS(this,"map",new Map),lS(this,"version","0.3"),lS(this,"cached",[]),lS(this,"initialized",!1),lS(this,"getKey"),lS(this,"storagePrefix",om),lS(this,"recentlyDeleted",[]),lS(this,"recentlyDeletedLimit",200),lS(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(e=>{this.getKey&&null!==e&&!n8(e)?this.map.set(this.getKey(e),e):function(e){var t;return null==(t=e?.proposer)?void 0:t.publicKey}(e)?this.map.set(e.id,e):e?.topic&&this.map.set(e.topic,e)}),this.cached=[],this.initialized=!0)}),lS(this,"set",async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:e,value:t}),this.map.set(e,t),await this.persist())}),lS(this,"get",e=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:e}),this.getData(e))),lS(this,"getAll",e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(i=>{var s;return s=t[i],function e(t,i,s,r,n,o,a){let l=a(t,i,s,r,n,o);if(void 0!==l)return l;if(typeof t==typeof i)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return t===i;case"number":return t===i||Object.is(t,i)}return function t(i,s,r,n){if(Object.is(i,s))return!0;let o=lf(i),a=lf(s);if(o===lg&&(o=ly),a===lg&&(a=ly),o!==a)return!1;switch(o){case"[object String]":return i.toString()===s.toString();case"[object Number]":{let e=i.valueOf(),t=s.valueOf();return e===t||Number.isNaN(e)&&Number.isNaN(t)}case"[object Boolean]":case"[object Date]":case"[object Symbol]":return Object.is(i.valueOf(),s.valueOf());case"[object RegExp]":return i.source===s.source&&i.flags===s.flags;case"[object Function]":return i===s}let l=(r=r??new Map).get(i),c=r.get(s);if(null!=l&&null!=c)return l===s;r.set(i,s),r.set(s,i);try{switch(o){case"[object Map]":if(i.size!==s.size)return!1;for(let[t,o]of i.entries())if(!s.has(t)||!e(o,s.get(t),t,i,s,r,n))return!1;return!0;case"[object Set]":{if(i.size!==s.size)return!1;let t=Array.from(i.values()),o=Array.from(s.values());for(let a=0;a<t.length;a++){let l=t[a],c=o.findIndex(t=>e(l,t,void 0,i,s,r,n));if(-1===c)return!1;o.splice(c,1)}return!0}case"[object Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":case"[object BigUint64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object BigInt64Array]":case"[object Float32Array]":case"[object Float64Array]":if("u">typeof of&&of.isBuffer(i)!==of.isBuffer(s)||i.length!==s.length)return!1;for(let t=0;t<i.length;t++)if(!e(i[t],s[t],t,i,s,r,n))return!1;return!0;case"[object ArrayBuffer]":return i.byteLength===s.byteLength&&t(new Uint8Array(i),new Uint8Array(s),r,n);case"[object DataView]":return i.byteLength===s.byteLength&&i.byteOffset===s.byteOffset&&t(new Uint8Array(i),new Uint8Array(s),r,n);case"[object Error]":return i.name===s.name&&i.message===s.message;case ly:{if(!(t(i.constructor,s.constructor,r,n)||lb(i)&&lb(s)))return!1;let o=[...Object.keys(i),...lp(i)],a=[...Object.keys(s),...lp(s)];if(o.length!==a.length)return!1;for(let t=0;t<o.length;t++){let a=o[t],l=i[a];if(!Object.hasOwn(s,a))return!1;let c=s[a];if(!e(l,c,a,i,s,r,n))return!1}return!0}default:return!1}}finally{r.delete(i),r.delete(s)}}(t,i,o,a)}(s,e[i],void 0,void 0,void 0,void 0,lm)})):this.values)),lS(this,"update",async(e,t)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:e,update:t});let i=l_(l_({},this.getData(e)),t);this.map.set(e,i),await this.persist()}),lS(this,"delete",async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())}),this.logger=Z(t,this.name),this.storagePrefix=s,this.getKey=r}get context(){return J(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.map.size}
10get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){let t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){let{message:t}=nX("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=nX("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(t),Error(t)}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:e}=nX("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}}var lP=Object.defineProperty,lR=(e,t,i)=>((e,t,i)=>t in e?lP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class lT{constructor(e,t){this.core=e,this.logger=t,lR(this,"name","pairing"),lR(this,"version","0.3"),lR(this,"events",new s),lR(this,"pairings"),lR(this,"initialized",!1),lR(this,"storagePrefix",om),lR(this,"ignoredPayloadTypes",[1]),lR(this,"registeredMethods",[]),lR(this,"init",async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))}),lR(this,"register",({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]}),lR(this,"create",async e=>{this.isInitialized();let t=np(),i=await this.core.crypto.setSymKey(t),s=tm(em.FIVE_MINUTES),r={protocol:"irn"},n={topic:i,expiry:s,relay:r,active:!1,methods:e?.methods},o=nC({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:t,relay:r,expiryTimestamp:s,methods:e?.methods});return this.events.emit(oU.create,n),this.core.expirer.set(i,s),await this.pairings.set(i,n),await this.core.relayer.subscribe(i,{transportType:e?.transportType,internal:e?.internal}),{topic:i,uri:o}}),lR(this,"pair",async e=>{let t;this.isInitialized();let i=this.core.eventClient.createEvent({properties:{topic:e?.uri,trace:[oD.pairing_started]}});this.isValidPair(e,i);let{topic:s,symKey:r,relay:n,expiryTimestamp:o,methods:a}=nB(e.uri);if(i.props.properties.topic=s,i.addTrace(oD.pairing_uri_validation_success),i.addTrace(oD.pairing_uri_not_expired),this.pairings.keys.includes(s)){if(t=this.pairings.get(s),i.addTrace(oD.existing_pairing),t.active)throw i.setError(oj.active_pairing_already_exists),Error(`Pairing already exists: ${s}. Please try again with a new connection URI.`);i.addTrace(oD.pairing_not_expired)}let l=o||tm(em.FIVE_MINUTES),c={topic:s,relay:n,expiry:l,active:!1,methods:a};this.core.expirer.set(s,l),await this.pairings.set(s,c),i.addTrace(oD.store_new_pairing),e.activatePairing&&await this.activate({topic:s}),this.events.emit(oU.create,c),i.addTrace(oD.emit_inactive_pairing),this.core.crypto.keychain.has(s)||await this.core.crypto.setSymKey(r,s),i.addTrace(oD.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{i.setError(oj.no_internet_connection)}try{await this.core.relayer.subscribe(s,{relay:n})}catch(e){throw i.setError(oj.subscribe_pairing_topic_failure),e}return i.addTrace(oD.subscribe_pairing_topic_success),c}),lR(this,"activate",async({topic:e})=>{this.isInitialized();let t=tm(em.FIVE_MINUTES);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})}),lR(this,"ping",async e=>{this.isInitialized(),await this.isValidPing(e),this.logger.warn("ping() is deprecated and will be removed in the next major release.");let{topic:t}=e;if(this.pairings.keys.includes(t)){let e=await this.sendRequest(t,"wc_pairingPing",{}),{done:i,resolve:s,reject:r}=tp();this.events.once(tw("pairing_ping",e),({error:e})=>{e?r(e):s()}),await i()}}),lR(this,"updateExpiry",async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})}),lR(this,"updateMetadata",async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})}),lR(this,"getPairings",()=>(this.isInitialized(),this.pairings.values)),lR(this,"disconnect",async e=>{this.isInitialized(),await this.isValidDisconnect(e);let{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,"wc_pairingDelete",n0("USER_DISCONNECTED")),await this.deletePairing(t))}),lR(this,"formatUriFromPairing",e=>{this.isInitialized();let{topic:t,relay:i,expiry:s,methods:r}=e,n=this.core.crypto.keychain.get(t);return nC({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:n,relay:i,expiryTimestamp:s,methods:r})}),lR(this,"sendRequest",async(e,t,i)=>{let s=(0,od.formatJsonRpcRequest)(t,i),r=await this.core.crypto.encode(e,s),n=oN[t].req;return this.core.history.set(e,s),this.core.relayer.publish(e,r,n),s.id}),lR(this,"sendResult",async(e,t,i)=>{let s=(0,od.formatJsonRpcResult)(e,i),r=await this.core.crypto.encode(t,s),n=oN[(await this.core.history.get(t,e)).request.method].res;await this.core.relayer.publish(t,r,n),await this.core.history.resolve(s)}),lR(this,"sendError",async(e,t,i)=>{let s=(0,od.formatJsonRpcError)(e,i),r=await this.core.crypto.encode(t,s),n=(await this.core.history.get(t,e)).request.method,o=oN[n]?oN[n].res:oN.unregistered_method.res;await this.core.relayer.publish(t,r,o),await this.core.history.resolve(s)}),lR(this,"deletePairing",async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,n0("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])}),lR(this,"cleanup",async()=>{let e=this.pairings.getAll().filter(e=>tb(e.expiry));await Promise.all(e.map(e=>this.deletePairing(e.topic)))}),lR(this,"onRelayEventRequest",async e=>{let{topic:t,payload:i}=e;switch(i.method){case"wc_pairingPing":return await this.onPairingPingRequest(t,i);case"wc_pairingDelete":return await this.onPairingDeleteRequest(t,i);default:return await this.onUnknownRpcMethodRequest(t,i)}}),lR(this,"onRelayEventResponse",async e=>{let{topic:t,payload:i}=e,s=(await this.core.history.get(t,i.id)).request.method;return"wc_pairingPing"===s?this.onPairingPingResponse(t,i):this.onUnknownRpcMethodResponse(s)}),lR(this,"onPairingPingRequest",async(e,t)=>{let{id:i}=t;try{this.isValidPing({topic:e}),await this.sendResult(i,e,!0),this.events.emit(oU.ping,{id:i,topic:e})}catch(t){await this.sendError(i,e,t),this.logger.error(t)}}),lR(this,"onPairingPingResponse",(e,t)=>{let{id:i}=t;setTimeout(()=>{(0,od.isJsonRpcResult)(t)?this.events.emit(tw("pairing_ping",i),{}):(0,od.isJsonRpcError)(t)&&this.events.emit(tw("pairing_ping",i),{error:t.error})},500)}),lR(this,"onPairingDeleteRequest",async(e,t)=>{let{id:i}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(oU.delete,{id:i,topic:e})}catch(t){await this.sendError(i,e,t),this.logger.error(t)}}),lR(this,"onUnknownRpcMethodRequest",async(e,t)=>{let{id:i,method:s}=t;try{if(this.registeredMethods.includes(s))return;let t=n0("WC_METHOD_UNSUPPORTED",s);await this.sendError(i,e,t),this.logger.error(t)}catch(t){await this.sendError(i,e,t),this.logger.error(t)}}),lR(this,"onUnknownRpcMethodResponse",e=>{this.registeredMethods.includes(e)||this.logger.error(n0("WC_METHOD_UNSUPPORTED",e))}),lR(this,"isValidPair",(e,t)=>{var i;if(!ot(e)){let{message:i}=nX("MISSING_OR_INVALID",`pair() params: ${e}`);throw t.setError(oj.malformed_pairing_uri),Error(i)}if(!function(e){function t(e){try{return"u">typeof new URL(e)}catch{return!1}}try{if(n6(e,!1)){if(t(e))return!0;let i=tO(e);return t(i)}}catch{}return!1}(e.uri)){let{message:i}=nX("MISSING_OR_INVALID",`pair() uri: ${e.uri}`);throw t.setError(oj.malformed_pairing_uri),Error(i)}let s=nB(e?.uri);if(!(null!=(i=s?.relay)&&i.protocol)){let{message:e}=nX("MISSING_OR_INVALID","pair() uri#relay-protocol");throw t.setError(oj.malformed_pairing_uri),Error(e)}if(!(null!=s&&s.symKey)){let{message:e}=nX("MISSING_OR_INVALID","pair() uri#symKey");throw t.setError(oj.malformed_pairing_uri),Error(e)}if(null!=s&&s.expiryTimestamp&&(0,em.toMiliseconds)(s?.expiryTimestamp)<Date.now()){t.setError(oj.pairing_expired);let{message:e}=nX("EXPIRED","pair() URI has expired. Please try again with a new connection URI.");throw Error(e)}}),lR(this,"isValidPing",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),lR(this,"isValidDisconnect",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),lR(this,"isValidPairingTopic",async e=>{if(!n6(e,!1)){let{message:t}=nX("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=nX("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw Error(t)}if(tb(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=nX("EXPIRED",`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=Z(t,this.name),this.pairings=new lO(this.core,this.logger,this.name,this.storagePrefix)}get context(){return J(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(o_.message,async e=>{let{topic:t,message:i,transportType:s}=e;if(this.pairings.keys.includes(t)&&s!==oP.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(i)))try{let e=await this.core.crypto.decode(t,i);(0,od.isJsonRpcRequest)(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):(0,od.isJsonRpcResponse)(e)&&(await this.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e}),this.core.history.delete(t,e.id)),await this.core.relayer.messages.ack(t,i)}catch(e){this.logger.error(e)}})}registerExpirerEvents(){this.core.expirer.on(oB.expired,async e=>{let{topic:t}=ty(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(oU.expire,{topic:t}))})}}var lA=Object.defineProperty,lN=(e,t,i)=>((e,t,i)=>t in e?lA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class lU extends es{constructor(e,t){super(e,t),this.core=e,this.logger=t,lN(this,"records",new Map),lN(this,"events",new s.EventEmitter),lN(this,"name","history"),lN(this,"version","0.3"),lN(this,"cac
10hed",[]),lN(this,"initialized",!1),lN(this,"storagePrefix",om),lN(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(e=>this.records.set(e.id,e)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),lN(this,"set",(e,t,i)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:e,request:t,chainId:i}),this.records.has(t.id))return;let s={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:i,expiry:tm(em.THIRTY_DAYS)};this.records.set(s.id,s),this.persist(),this.events.emit(ok.created,s)}),lN(this,"resolve",async e=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:e}),!this.records.has(e.id))return;let t=await this.getRecord(e.id);typeof t.response>"u"&&(t.response=(0,od.isJsonRpcError)(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(ok.updated,t))}),lN(this,"get",async(e,t)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:e,id:t}),await this.getRecord(t))),lN(this,"delete",(e,t)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:t}),this.values.forEach(i=>{i.topic===e&&("u">typeof t&&i.id!==t||(this.records.delete(i.id),this.events.emit(ok.deleted,i)))}),this.persist()}),lN(this,"exists",async(e,t)=>(this.isInitialized(),!!this.records.has(t)&&(await this.getRecord(t)).topic===e)),lN(this,"on",(e,t)=>{this.events.on(e,t)}),lN(this,"once",(e,t)=>{this.events.once(e,t)}),lN(this,"off",(e,t)=>{this.events.off(e,t)}),lN(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.logger=Z(t,this.name)}get context(){return J(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){let e=[];return this.values.forEach(t=>{if("u">typeof t.response)return;let i={topic:t.topic,request:(0,od.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:t}=nX("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(ok.sync)}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){let{message:e}=nX("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(ok.created,e=>{let t=ok.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})}),this.events.on(ok.updated,e=>{let t=ok.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})}),this.events.on(ok.deleted,e=>{let t=ok.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})}),this.core.heartbeat.on(n.li.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,em.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(ok.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}}var lk=Object.defineProperty,lB=(e,t,i)=>((e,t,i)=>t in e?lk(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class lC extends ec{constructor(e,t){super(e,t),this.core=e,this.logger=t,lB(this,"expirations",new Map),lB(this,"events",new s.EventEmitter),lB(this,"name","expirer"),lB(this,"version","0.3"),lB(this,"cac
10hed",[]),lB(this,"initialized",!1),lB(this,"storagePrefix",om),lB(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(e=>this.expirations.set(e.target,e)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),lB(this,"has",e=>{try{let t=this.formatTarget(e);return"u">typeof this.getExpiration(t)}catch{return!1}}),lB(this,"set",(e,t)=>{this.isInitialized();let i=this.formatTarget(e),s={target:i,expiry:t};this.expirations.set(i,s),this.checkExpiry(i,s),this.events.emit(oB.created,{target:i,expiration:s})}),lB(this,"get",e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),lB(this,"del",e=>{if(this.isInitialized(),this.has(e)){let t=this.formatTarget(e),i=this.getExpiration(t);this.expirations.delete(t),this.events.emit(oB.deleted,{target:t,expiration:i})}}),lB(this,"on",(e,t)=>{this.events.on(e,t)}),lB(this,"once",(e,t)=>{this.events.once(e,t)}),lB(this,"off",(e,t)=>{this.events.off(e,t)}),lB(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.logger=Z(t,this.name)}get context(){return J(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if("string"==typeof e)return tg("topic",e);if("number"==typeof e)return tg("id",e);let{message:t}=nX("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(oB.sync)}async restore(){try{let e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){let{message:e}=nX("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){let t=this.expirations.get(e);if(!t){let{message:t}=nX("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:i}=t;(0,em.toMiliseconds)(i)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(oB.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(n.li.pulse,()=>this.checkExpirations()),this.events.on(oB.created,e=>{let t=oB.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}),this.events.on(oB.expired,e=>{let t=oB.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}),this.events.on(oB.deleted,e=>{let t=oB.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}}var lq=Object.defineProperty,lL=(e,t,i)=>((e,t,i)=>t in e?lq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class lD extends eh{constructor(e,t,i){super(e,t,i),this.core=e,this.logger=t,this.store=i,lL(this,"name","verify-api"),lL(this,"abortController"),lL(this,"isDevEnv"),lL(this,"verifyUrlV3",oq),lL(this,"storagePrefix",om),lL(this,"version",2),lL(this,"publicKey"),lL(this,"fetchPromise"),lL(this,"init",async()=>{var e;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,em.toMiliseconds)(null==(e=this.publicKey)?void 0:e.expiresAt)<Date.now()&&(this.logger.debug("verify v2 public key expired"),await this.removePublicKey()))}),lL(this,"register",async e=>{if(!tn()||this.isDevEnv)return;let t=window.location.origin,{id:i,decryptedId:s}=e,r=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${t}&id=${i}&decryptedId=${s}`;try{let e=(0,eE.getDocument)(),t=this.startAbortTimer(5*em.ONE_SECOND),s=await new Promise((s,n)=>{let o=()=>{window.removeEventListener("message",l),e.body.removeChild(a),n("attestation aborted")};this.abortController.signal.addEventListener("abort",o);let a=e.createElement("iframe");a.src=r,a.style.display="none",a.addEventListener("error",o,{signal:this.abortController.signal});let l=r=>{if(r.data&&"string"==typeof r.data)try{let n=JSON.parse(r.data);if("verify_attestation"===n.type){if((0,ew.Cq)(n.attestation).payload.id!==i)return;clearInterval(t),e.body.removeChild(a),this.abortController.signal.removeEventListener("abort",o),window.removeEventListener("message",l),s(null===n.attestation?"":n.attestation)}}catch(e){this.logger.warn(e)}};e.body.appendChild(a),window.addEventListener("message",l,{signal:this.abortController.signal})});return this.logger.debug(s,"jwt attestation"),s}catch(e){this.logger.warn(e)}return""}),lL(this,"resolve",async e=>{if(this.isDevEnv)return"";let{attestationId:t,hash:i,encryptedId:s}=e;if(""===t)return void this.logger.debug("resolve: attestationId is empty, skipping");if(t){if((0,ew.Cq)(t).payload.id!==s)return;let e=await this.isValidJwtAttestation(t);
10if(e)return e.isVerified?e:void this.logger.warn("resolve: jwt attestation: origin url not verified")}if(!i)return;let r=this.getVerifyUrl(e?.verifyUrl);return this.fetchAttestation(i,r)}),lL(this,"fetchAttestation",async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let i=this.startAbortTimer(5*em.ONE_SECOND),s=await fetch(`${t}/attestation/${e}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(i),200===s.status?await s.json():void 0}),lL(this,"getVerifyUrl",e=>{let t=e||oC;return oL.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: ${oC}`),t=oC),t}),lL(this,"fetchPublicKey",async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(em.FIVE_SECONDS),t=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(e),await t.json()}catch(e){this.logger.warn(e)}}),lL(this,"persistPublicKey",async e=>{this.logger.debug(e,"persisting public key to local storage"),await this.store.setItem(this.storeKey,e),this.publicKey=e}),lL(this,"removePublicKey",async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),lL(this,"isValidJwtAttestation",async e=>{let t=await this.getPublicKey();try{if(t)return this.validateAttestation(e,t)}catch(e){this.logger.error(e),this.logger.warn("error validating attestation")}let i=await this.fetchAndPersistPublicKey();try{if(i)return this.validateAttestation(e,i)}catch(e){this.logger.error(e),this.logger.warn("error validating attestation")}}),lL(this,"getPublicKey",async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),lL(this,"fetchAndPersistPublicKey",async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async e=>{let t=await this.fetchPublicKey();t&&(await this.persistPublicKey(t),e(t))});let e=await this.fetchPromise;return this.fetchPromise=void 0,e}),lL(this,"validateAttestation",(e,t)=>{let i=function(e,t){let[i,s,r]=e.split("."),n=e0.from(nw(r),"base64");if(64!==n.length)throw Error("Invalid signature length");let o=n.slice(0,32),a=n.slice(32,64),l=iz(`${i}.${s}`),c=function(e){let t=e0.from(e.x,"base64"),i=e0.from(e.y,"base64");return(0,eZ.xW)([new Uint8Array([4]),t,i])}(t);if(!na.verify((0,eZ.xW)([o,a]),l,c))throw Error("Invalid signature");return(0,ew.Cq)(e).payload}(e,t.publicKey),s={hasExpired:(0,em.toMiliseconds)(i.exp)<Date.now(),payload:i};if(s.hasExpired)throw this.logger.warn("resolve: jwt attestation expired"),Error("JWT attestation expired");return{origin:s.payload.origin,isScam:s.payload.isScam,isVerified:s.payload.isVerified}}),this.logger=Z(t,this.name),this.abortController=new AbortController,this.isDevEnv=tS(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//verify:public:key"}get context(){return J(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,em.toMiliseconds)(e))}}var lj=Object.defineProperty,lM=(e,t,i)=>((e,t,i)=>t in e?lj(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class l$ extends eu{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,lM(this,"context","echo"),lM(this,"registerDeviceToken",async e=>{let{clientId:t,token:i,notificationType:s,enableEncrypted:r=!1}=e,n=`https://echo.walletconnect.com/${this.projectId}/clients`;await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:t,type:s,token:i,always_raw:r})})}),this.logger=Z(t,this.context)}}var lz=Object.defineProperty,lK=Object.getOwnPropertySymbols,lV=Object.prototype.hasOwnProperty,lF=Object.prototype.propertyIsEnumerable,lH=(e,t,i)=>t in e?lz(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,lG=(e,t)=>{for(var i in t||(t={}))lV.call(t,i)&&lH(e,i,t[i]);if(lK)for(var i of lK(t))lF.call(t,i)&&lH(e,i,t[i]);return e},lW=(e,t,i)=>lH(e,"symbol"!=typeof t?t+"":t,i);class lJ extends ed{constructor(e,t,i=!0){super(e,t,i),this.core=e,this.logger=t,lW(this,"context","event-client"),lW(this,"storagePrefix",om),lW(this,"storageVersion",.1),lW(this,"events",new Map),lW(this,"shouldPersist",!1),lW(this,"init",async()=>
10{if(!tS())try{let e={eventId:t_(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:tc(this.core.relayer.protocol,this.core.relayer.version,oO)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),lW(this,"createEvent",e=>{let{event:t="ERROR",type:i="",properties:{topic:s,trace:r}}=e,n=t_(),o=this.core.projectId||"",a=lG({eventId:n,timestamp:Date.now(),props:{event:t,type:i,properties:{topic:s,trace:r}},bundleId:o,domain:this.getAppDomain()},this.setMethods(n));return this.telemetryEnabled&&(this.events.set(n,a),this.shouldPersist=!0),a}),lW(this,"getEvent",e=>{let{eventId:t,topic:i}=e;if(t)return this.events.get(t);let s=Array.from(this.events.values()).find(e=>e.props.properties.topic===i);if(s)return lG(lG({},s),this.setMethods(s.eventId))}),lW(this,"deleteEvent",e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),lW(this,"setEventListeners",()=>{this.core.heartbeat.on(n.li.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,em.fromMiliseconds)(Date.now())-(0,em.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),lW(this,"setMethods",e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),lW(this,"addTrace",(e,t)=>{let i=this.events.get(e);i&&(i.props.properties.trace.push(t),this.events.set(e,i),this.shouldPersist=!0)}),lW(this,"setError",(e,t)=>{let i=this.events.get(e);i&&(i.props.type=t,i.timestamp=Date.now(),this.events.set(e,i),this.shouldPersist=!0)}),lW(this,"persist",async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),lW(this,"restore",async()=>{try{let e=await this.core.storage.getItem(this.storageKey)||[];if(!e.length)return;e.forEach(e=>{this.events.set(e.eventId,lG(lG({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),lW(this,"submit",async()=>{if(!this.telemetryEnabled||0===this.events.size)return;let e=[];for(let[t,i]of this.events)i.props.type&&e.push(i);if(0!==e.length)try{if((await this.sendEvent(e)).ok)for(let t of e)this.events.delete(t.eventId),this.shouldPersist=!0}catch(e){this.logger.warn(e)}}),lW(this,"sendEvent",async e=>{let t=this.getAppDomain()?"":"&sp=desktop";return await fetch(`https://pulse.walletconnect.org/batch?projectId=${this.core.projectId}&st=events_sdk&sv=js-${oO}${t}`,{method:"POST",body:JSON.stringify(e)})}),lW(this,"getAppDomain",()=>tl().url),this.logger=Z(t,this.context),this.telemetryEnabled=i,i?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+"//"+this.context}}var lZ=Object.defineProperty,lY=Object.getOwnPropertySymbols,lQ=Object.prototype.hasOwnProperty,lX=Object.prototype.propertyIsEnumerable,l0=(e,t,i)=>t in e?lZ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,l1=(e,t)=>{for(var i in t||(t={}))lQ.call(t,i)&&l0(e,i,t[i]);if(lY)for(var i of lY(t))lX.call(t,i)&&l0(e,i,t[i]);return e},l2=(e,t,i)=>l0(e,"symbol"!=typeof t?t+"":t,i);class l8 extends et{constructor(e){var t;super(e),l2(this,"protocol","wc"),l2(this,"version",2),l2(this,"name",oy),l2(this,"relayUrl"),l2(this,"projectId"),l2(this,"customStoragePrefix"),l2(this,"events",new s.EventEmitter),l2(this,"logger"),l2(this,"heartbeat"),l2(this,"relayer"),l2(this,"crypto"),l2(this,"storage"),l2(this,"history"),l2(this,"expirer"),l2(this,"pairing"),l2(this,"verify"),l2(this,"echoClient"),l2(this,"linkModeSupportedApps"),l2(this,"eventClient"),l2(this,"initialized",!1),l2(this,"logChunkController"),l2(this,"on",(e,t)=>this.events.on(e,t)),l2(this,"once",(e,t)=>this.events.once(e,t)),l2(this,"off",(e,t)=>this.events.off(e,t)),l2(this,"removeListener",(e,t)=>this.events.removeListener(e,t)),l2(this,"dispatchEnvelope",({topic:e,message:t,sessionExists:i})=>{if(!e||!t)return;let s={topic:e,message:t,publishedAt:Date.now(),transportType:oP.link_mode};this.relayer.onLinkMessageEvent(s,{sessionExists:i})});let i=this.getGlobalCore(e?.customStoragePrefix);if(i)try{return this.customStoragePrefix=i.customStoragePrefix,this.logger=i.logger,this.heartbeat=i.heartbeat,this.crypto=i.crypto,this.history=i.history,this.expirer=i.expirer,this.storage=i.storage,this.relayer=i.relayer,this.pairing=i.pairing,this.verify=i.verify,this.echoClient=i.echoClient,this.linkModeSupportedApps=i.linkModeSupportedApps,this.eventClient=i.eventClient,this.initialized=i.initialized,this.logChunkController=i.logChunkController,i}catch(e){console.warn("Failed to copy global core",e)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||oI,this.customStoragePrefix=null!=e&&e.customStoragePrefix?`:${e.customStoragePrefix}`:"";let{logger:r,chunkLoggerController:a}=Y({opts:function(e){return W(G({},e),{level:e?.level||O.level})}({level:"string"==typeof e?.logger&&e.logger?e.logger:ob.logger,name:oy}),maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=a,null!=(t=this.logChunkController)&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var e,t;null!=(e=this.logChunkController)&&e.downloadLogsBlobInBrowser&&(null==(t=this.logChunkController)||t.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=Z(r,this.name),this.heartbeat=new n.VH,this.crypto=new aB(this,this.logger,e?.keychain),this.history=new lU(this,this.logger),this.expirer=new lC(this,this.logger),this.storage=null!=e&&e.storage?e.storage:new o.A(l1(l1({},ow),e?.storageOptions)),this.relayer=new ld({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new lT(this,this.logger),this.verify=new lD(this,this.logger,this.storage),this.echoClient=new l$(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new lJ(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){let t=new l8(e);await t.initialize();let i=await t.crypto.getClientId();return await t.storage.setItem("WALLETCONNECT_CLIENT_ID",i),t}get context(){return J(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return null==(e=this.logChunkController)?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(oT,this.linkModeSupportedApps))}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(
10),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(oT)||[],this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(e,`Core Initialization Failure at epoch ${Date.now()}`),this.logger.error(e.message),e}}getGlobalCore(e=""){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e}`,i=`${t}_count`;return globalThis[i]=(globalThis[i]||0)+1,globalThis[i]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[i]} times.`),globalThis[t]}catch(e){console.warn("Failed to get global WalletConnect core",e);return}}setGlobalCore(e){var t;try{if(this.isGlobalCoreDisabled())return;let i=`_walletConnectCore_${(null==(t=e.opts)?void 0:t.customStoragePrefix)||""}`;globalThis[i]=e}catch(e){console.warn("Failed to set global WalletConnect core",e)}}isGlobalCoreDisabled(){try{return"u">typeof og&&"true"===og.env.DISABLE_GLOBAL_CORE}catch{return!0}}}let l6="client",l3=`wc@2:${l6}:`,l5={name:l6,logger:"error"},l4="WALLETCONNECT_DEEPLINK_CHOICE",l9="Proposal expired",l7=em.SEVEN_DAYS,ce={wc_sessionPropose:{req:{ttl:em.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:em.ONE_DAY,prompt:!1,tag:1104},res:{ttl:em.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:em.ONE_DAY,prompt:!1,tag:1106},res:{ttl:em.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:em.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:em.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:em.ONE_DAY,prompt:!1,tag:1112},res:{ttl:em.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:em.ONE_DAY,prompt:!1,tag:1114},res:{ttl:em.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:em.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:em.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:em.FIVE_MINUTES,prompt:!1,tag:1119}}},ct={min:em.FIVE_MINUTES,max:em.SEVEN_DAYS},ci={idle:"IDLE",active:"ACTIVE"},cs={eth_sendTransaction:{key:""},eth_sendRawTransaction:{key:""},wallet_sendCalls:{key:""},solana_signTransaction:{key:"signature"},solana_signAllTransactions:{key:"transactions"},solana_signAndSendTransaction:{key:"signature"},sui_signAndExecuteTransaction:{key:"digest"},sui_signTransaction:{key:""},hedera_signAndExecuteTransaction:{key:"transactionId"},hedera_executeTransaction:{key:"transactionId"},near_signTransaction:{key:""},near_signTransactions:{key:""},tron_signTransaction:{key:"txID"},xrpl_signTransaction:{key:""},xrpl_signTransactionFor:{key:""},algo_signTxn:{key:""},sendTransfer:{key:"txid"},stacks_stxTransfer:{key:"txId"},polkadot_signTransaction:{key:""},cosmos_signDirect:{key:""}},cr=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],cn="[email protected]:auth:",co=`${cn}:PUB_KEY`;var ca=Object.defineProperty,cl=Object.defineProperties,cc=Object.getOwnPropertyDescriptors,ch=Object.getOwnPropertySymbols,cu=Object.prototype.hasOwnProperty,cd=Object.prototype.propertyIsEnumerable,cp=(e,t,i)=>t in e?ca(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,cf=(e,t)=>{for(var i in t||(t={}))cu.call(t,i)&&cp(e,i,t[i]);if(ch)for(var i of ch(t))cd.call(t,i)&&cp(e,i,t[i]);return e},cg=(e,t)=>cl(e,cc(t)),cy=(e,t,i)=>cp(e,"symbol"!=typeof t?t+"":t,i);class cm extends ey{constructor(e){super(e),cy(this,"name","engine"),cy(this,"events",new s),cy(this,"initialized",!1),cy(this,"requestQueue",{state:ci.idle,queue:[]}),cy(this,"sessionRequestQueue",{state:ci.idle,queue:[]}),cy(this,"emittedSessionRequests",new tP({limit:500})),cy(this,"requestQueueDelay",em.ONE_SECOND),cy(this,"expectedPairingMethodMap",new Map),cy(this,"recentlyDeletedMap",new Map),cy(this,"recentlyDeletedLimit",200),cy(this,"relayMessageCache",[]),cy(this,"pendingSessions",new Map),cy(this,"init",async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(ce)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,em.toMiliseconds)(this.requestQueueDelay)))}),cy(this,"connect",async e=>{var t;this.isInitialized(),await this.confirmOnlineStateOrThrow();let i=cg(cf({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(i),i.optionalNamespaces=function(e,t){var i,s,r,n,o,a;let l=nJ(e),c=nJ(t),h={};for(let e of Object.keys(l).concat(Object.keys(c)))h[e]={chains:tv(null==(i=l[e])?void 0:i.chains,null==(s=c[e])?void 0:s.chains),methods:tv(null==(r=l[e])?void 0:r.methods,null==(n=c[e])?void 0:n.methods),events:tv(null==(o=l[e])?void 0:o.events,null==(a=c[e])?void 0:a.events)};return h}(i.requiredNamespaces,i.optionalNamespaces),i.requiredNamespaces={};let{pairingTopic:s,requiredNamespaces:r,optionalNamespaces:n,sessionProperties:o,scopedProperties:a,relays:l,authentication:c,walletPay:h}=i,u=(null==(t=c?.[0])?void 0:t.ttl)||ce.wc_sessionPropose.req.ttl||em.FIVE_MINUTES;this.validateRequestExpiry(u);let d=s,p,f=!1;try{if(d){let e=this.client.core.pairing.pairings.get(d);this.client.logger.warn("connect() with existing pairing topic is deprecated and will be removed in the next major release."),f=e.active}}catch(e){throw this.client.logger.error(`connect() -> pairing.get(${d}) failed`),e}if(!d||!f){let{topic:e,uri:t}=await this.client.core.pairing.create({internal:{skipSubscribe:!0}});d=e,p=t}if(!d){let{message:e}=nX("NO_MATCHING_KEY",`connect() pairing topic: ${d}`);throw Error(e)}let g=await this.client.core.crypto.generateKeyPair(),y=tm(u),m=cf(cg(cf(cf({requiredNamespaces:r,optionalNamespaces:n,relays:l??[{protocol:"irn"}],proposer:{publicKey:g,metadata:this.client.metadata},expiryTimestamp:y,pairingTopic:d},o&&{sessionProperties:o}),a&&{scopedProperties:a}),{id:(0,od.payloadId)()}),(c||h)&&{requests:{authentication:c?.map(e=>{let{domain:t,chains:i,nonce:s,uri:r,exp:n,nbf:o,type:a,statement:l,requestId:c,resources:h,signatureTypes:u}=e;
10return{domain:t,chains:i,nonce:s,type:a??"caip122",aud:r,version:"1",iat:new Date().toISOString(),exp:n,nbf:o,statement:l,requestId:c,resources:h,signatureTypes:u}}),walletPay:h}}),b=tw("session_connect",m.id),{reject:w,resolve:v,done:E}=tp(u,l9),x=({id:e})=>{e===m.id&&(this.client.events.off("proposal_expire",x),this.pendingSessions.delete(m.id),this.events.emit(b,{error:{message:l9,code:0}}))};return this.client.events.on("proposal_expire",x),this.events.once(b,({error:e,session:t})=>{this.client.events.off("proposal_expire",x),e?w(e):t&&v(t)}),await this.setProposal(m.id,m),await this.sendProposeSession({proposal:m,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:m.id}}}).catch(e=>{throw this.deleteProposal(m.id),e}),{uri:p,approval:E}}),cy(this,"pair",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(e){throw this.client.logger.error("pair() failed"),e}}),cy(this,"approve",async e=>{var t,i,s;let r=this.client.core.eventClient.createEvent({properties:{topic:null==(t=e?.id)?void 0:t.toString(),trace:[oM.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(e){throw r.setError(o$.no_internet_connection),e}try{await this.isValidProposalId(e?.id)}catch(t){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),r.setError(o$.proposal_not_found),t}try{await this.isValidApprove(e)}catch(e){throw this.client.logger.error("approve() -> isValidApprove() failed"),r.setError(o$.session_approve_namespace_validation_failure),e}let{id:n,relayProtocol:o,namespaces:a,sessionProperties:l,scopedProperties:c,sessionConfig:h,proposalRequestsResponses:u}=e,d=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:r.eventId});let{pairingTopic:p,proposer:f,requiredNamespaces:g,optionalNamespaces:y}=d,m=null==(i=this.client.core.eventClient)?void 0:i.getEvent({topic:p});m||(m=null==(s=this.client.core.eventClient)?void 0:s.createEvent({type:oM.session_approve_started,properties:{topic:p,trace:[oM.session_approve_started,oM.session_namespaces_validation_success]}}));let b=await this.client.core.crypto.generateKeyPair(),w=f.publicKey,v=await this.client.core.crypto.generateSharedKey(b,w),E=cg(cf(cf(cf({relay:{protocol:o??"irn"},namespaces:a,controller:{publicKey:b,metadata:this.client.metadata},expiry:tm(l7)},l&&{sessionProperties:l}),c&&{scopedProperties:c}),h&&{sessionConfig:h}),{proposalRequestsResponses:u}),x=oP.relay;m.addTrace(oM.subscribing_session_topic);try{await this.client.core.relayer.subscribe(v,{transportType:x,internal:{skipSubscribe:!0}})}catch(e){throw m.setError(o$.subscribe_session_topic_failure),e}m.addTrace(oM.subscribe_session_topic_success);let I=cg(cf({},E),{topic:v,requiredNamespaces:g,optionalNamespaces:y,pairingTopic:p,acknowledged:!1,self:E.controller,peer:{publicKey:f.publicKey,metadata:f.metadata},controller:b,transportType:oP.relay,authentication:u?.authentication,walletPayResult:u?.walletPay});await this.client.session.set(v,I),m.addTrace(oM.store_session);try{await this.sendApproveSession({sessionTopic:v,proposal:d,pairingProposalResponse:{relay:{protocol:o??"irn"},responderPublicKey:b},sessionSettleRequest:E,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:cf({correlationId:n},this.getTVFApproveParams(I))}}),m.addTrace(oM.session_approve_publish_success)}catch(e){throw this.client.logger.error(e),this.client.session.delete(v,n0("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(v),e}return this.client.core.eventClient.deleteEvent({eventId:m.eventId}),await this.client.core.pairing.updateMetadata({topic:p,metadata:f.metadata}),await this.deleteProposal(n),await this.client.core.pairing.activate({topic:p}),await this.setExpiry(v,tm(l7)),{topic:v,acknowledged:()=>Promise.resolve(this.client.session.get(v))}}),cy(this,"reject",async e=>{let t;this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(e){throw this.client.logger.error("reject() -> isValidReject() failed"),e}let{id:i,reason:s}=e;try{t=this.client.proposal.get(i).pairingTopic}catch(e){throw this.client.logger.error(`reject() -> proposal.get(${i}) failed`),e}
10t&&await this.sendError({id:i,topic:t,error:s,rpcOpts:ce.wc_sessionPropose.reject}),await this.deleteProposal(i)}),cy(this,"update",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(e){throw this.client.logger.error("update() -> isValidUpdate() failed"),e}let{topic:t,namespaces:i}=e,{done:s,resolve:r,reject:n}=tp(em.FIVE_MINUTES,"Session update request expired without receiving any acknowledgement"),o=(0,od.payloadId)(),a=(0,od.getBigIntRpcId)().toString(),l=this.client.session.get(t).namespaces;return this.events.once(tw("session_update",o),({error:e})=>{e?n(e):r()}),await this.client.session.update(t,{namespaces:i}),await this.sendRequest({topic:t,method:"wc_sessionUpdate",params:{namespaces:i},throwOnFailedPublish:!0,clientRpcId:o,relayRpcId:a}).catch(e=>{this.client.logger.error(e),this.client.session.update(t,{namespaces:l}),n(e)}),{acknowledged:s}}),cy(this,"extend",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(e){throw this.client.logger.error("extend() -> isValidExtend() failed"),e}let{topic:t}=e,i=(0,od.payloadId)(),{done:s,resolve:r,reject:n}=tp(em.FIVE_MINUTES,"Session extend request expired without receiving any acknowledgement");return this.events.once(tw("session_extend",i),({error:e})=>{e?n(e):r()}),await this.setExpiry(t,tm(l7)),this.sendRequest({topic:t,method:"wc_sessionExtend",params:{},clientRpcId:i,throwOnFailedPublish:!0}).catch(e=>{n(e)}),{acknowledged:s}}),cy(this,"request",async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(e){throw this.client.logger.error("request() -> isValidRequest() failed"),e}let{chainId:t,request:i,topic:s,expiry:r=ce.wc_sessionRequest.req.ttl}=e,n=this.client.session.get(s);n?.transportType===oP.relay&&await this.confirmOnlineStateOrThrow();let o=(0,od.payloadId)(),a=(0,od.getBigIntRpcId)().toString(),{done:l,resolve:c,reject:h}=tp(r,"Request expired. Please try again.");this.events.once(tw("session_request",o),({error:e,result:t})=>{e?h(e):c(t)});let u="wc_sessionRequest",d=this.getAppLinkIfEnabled(n.peer.metadata,n.transportType);if(d)return await this.sendRequest({clientRpcId:o,relayRpcId:a,topic:s,method:u,params:{request:cg(cf({},i),{expiryTimestamp:tm(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0,appLink:d}).catch(e=>h(e)),this.client.events.emit("session_request_sent",{topic:s,request:i,chainId:t,id:o}),await l();let p={request:cg(cf({},i),{expiryTimestamp:tm(r)}),chainId:t};return await Promise.all([new Promise(async e=>{await this.sendRequest({clientRpcId:o,relayRpcId:a,topic:s,method:u,params:p,expiry:r,throwOnFailedPublish:!0,tvf:this.getTVFParams(o,p)}).catch(e=>h(e)),this.client.events.emit("session_request_sent",{topic:s,request:i,chainId:t,id:o}),e()}),new Promise(async e=>{var t;if(!(null!=(t=n.sessionConfig)&&t.disableDeepLink)){let e=await tx(this.client.core.storage,l4);await tE({id:o,topic:s,wcDeepLink:e})}e()}),l()]).then(e=>e[2])}),cy(this,"respond",async e=>{var t,i;this.isInitialized();let s=this.client.core.eventClient.createEvent({properties:{topic:e?.topic||(null==(i=null==(t=e?.response)?void 0:t.id)?void 0:i.toString()),trace:[oM.session_request_response_started]}});try{await this.isValidRespond(e)}catch(e){throw s.addTrace(e?.message),s.setError(o$.session_request_response_validation_failure),e}s.addTrace(oM.session_request_response_validation_success);let{topic:r,response:n}=e,{id:o}=n,a=this.client.session.get(r);a.transportType===oP.relay&&await this.confirmOnlineStateOrThrow();let l=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);try{s.addTrace(oM.session_request_response_publish_started),(0,od.isJsonRpcResult)(n)?await this.sendResult({id:o,topic:r,result:n.result,throwOnFailedPublish:!0,appLink:l}):(0,od.isJsonRpcError)(n)&&await this.sendError({id:o,topic:r,error:n.error,appLink:l}),this.cleanupAfterResponse(e)}catch(e){throw s.addTrace(e?.message),s.setError(o$.session_request_response_publish_failure),e}}),cy(this,"ping",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(e){throw this.client.logger.error("ping() -> isValidPing() failed"),e}let{topic:t}=e;if(this.client.session.keys.includes(t)){let e=(0,od.payloadId)(),i=(0,od.getBigIntRpcId)().toString(),{done:s,resolve:r,reject:n}=tp(em.FIVE_MINUTES,"Ping request expired without receiving any acknowledgement");this.events.once(tw("session_ping",e),({error:e})=>{e?n(e):r()}),await Promise.all([this.sendRequest({topic:t,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:e,relayRpcId:i}),s()])}else this.client.core.pairing.pairings.keys.includes(t)&&(this.client.logger.warn("ping() on pairing topic is deprecated and will be removed in the next major release."),await this.client.core.pairing.ping({topic:t}))}),cy(this,"emit",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);
10let{topic:t,event:i,chainId:s}=e,r=(0,od.getBigIntRpcId)().toString(),n=(0,od.payloadId)();await this.sendRequest({topic:t,method:"wc_sessionEvent",params:{event:i,chainId:s},throwOnFailedPublish:!0,relayRpcId:r,clientRpcId:n})}),cy(this,"disconnect",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);let{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:"wc_sessionDelete",params:n0("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{let{message:e}=nX("MISMATCHED_TOPIC",`Session or pairing topic not found: ${t}`);throw Error(e)}}),cy(this,"find",e=>(this.isInitialized(),this.client.session.getAll().filter(t=>(function(e,t){let{requiredNamespaces:i}=t,s=Object.keys(e.namespaces),r=Object.keys(i),n=!0;return!!th(r,s)&&(s.forEach(t=>{let{accounts:s,methods:r,events:o}=e.namespaces[t],a=nH(s),l=i[t];th(e2(t,l),a)&&th(l.methods,r)&&th(l.events,o)||(n=!1)}),n)})(t,e)))),cy(this,"getPendingSessionRequests",()=>this.client.pendingRequest.getAll()),cy(this,"authenticate",async(e,t)=>{var i,s,r;let n;this.isInitialized(),this.isValidAuthenticate(e);let o=t&&this.client.core.linkModeSupportedApps.includes(t)&&(null==(i=this.client.metadata.redirect)?void 0:i.linkMode),a=o?oP.link_mode:oP.relay;a===oP.relay&&await this.confirmOnlineStateOrThrow();let{chains:l,statement:c="",uri:h,domain:u,nonce:d,type:p,exp:f,nbf:g,methods:y=[],expiry:m}=e,b=[...e.resources||[]],{topic:w,uri:v}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:a});this.client.logger.info({message:"Generated new pairing",pairing:{topic:w,uri:v}});let E=await this.client.core.crypto.generateKeyPair(),x=nf(E);if(await Promise.all([this.client.auth.authKeys.set(co,{responseTopic:x,publicKey:E}),this.client.auth.pairingTopics.set(x,{topic:x,pairingTopic:w})]),await this.client.core.relayer.subscribe(x,{transportType:a}),this.client.logger.info(`sending request to new pairing topic: ${w}`),y.length>0){let{namespace:e}=e1(l[0]),t=su(function(e,t,i,s={}){return i?.sort((e,t)=>e.localeCompare(t)),{att:{[e]:function(e,t,i={}){return Object.assign({},...(t=t?.sort((e,t)=>e.localeCompare(t))).map(t=>({[`${e}/${t}`]:[i]})))}(t,i,s)}}}(e,"request",y));sg(b)&&(s=t,r=b.pop(),t=su(function(e,t){sh(e),sh(t);let i=Object.keys(e.att).concat(Object.keys(t.att)).sort((e,t)=>e.localeCompare(t)),s={att:{}};return i.forEach(i=>{var r,n;Object.keys((null==(r=e.att)?void 0:r[i])||{}).concat(Object.keys((null==(n=t.att)?void 0:n[i])||{})).sort((e,t)=>e.localeCompare(t)).forEach(r=>{var n,o;s.att[i]=i4(((e,t)=>{for(var i in t||(t={}))se.call(t,i)&&si(e,i,t[i]);if(i7)for(var i of i7(t))st.call(t,i)&&si(e,i,t[i]);return e})({},s.att[i]),i9({[r]:(null==(n=e.att[i])?void 0:n[r])||(null==(o=t.att[i])?void 0:o[r])}))})}),s}
10(sd(s),sd(r)))),b.push(t)}let I=m&&m>ce.wc_sessionAuthenticate.req.ttl?m:ce.wc_sessionAuthenticate.req.ttl,_={authPayload:{type:p??"caip122",chains:l,statement:c,aud:h,domain:u,version:"1",nonce:d,iat:new Date().toISOString(),exp:f,nbf:g,resources:b},requester:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:tm(I)},S={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:l,methods:[...new Set(["personal_sign",...y])],events:["chainChanged","accountsChanged"]}},relays:[{protocol:"irn"}],pairingTopic:w,proposer:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:tm(ce.wc_sessionPropose.req.ttl),id:(0,od.payloadId)()},{done:O,resolve:P,reject:R}=tp(I,"Request expired"),T=(0,od.payloadId)(),A=tw("session_connect",S.id),N=tw("session_request",T),U=async({error:e,session:t})=>{this.events.off(N,k),e?R(e):t&&P({session:t})},k=async e=>{var i,s,r;let n;if(await this.deletePendingAuthRequest(T,{message:"fulfilled",code:0}),e.error){let t=n0("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return e.error.code===t.code?void 0:(this.events.off(A,U),R(e.error.message))}await this.deleteProposal(S.id),this.events.off(A,U);let{cacaos:o,responder:l}=e.result,c=[],h=[];for(let e of o){await sl({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,"Signature verification failed"),R(n0("SESSION_SETTLEMENT_FAILED","Signature verification failed")));let{p:t}=e,i=sg(t.resources),s=[so(t.iss)],r=sa(t.iss);if(i){let e=sp(i),t=sf(i);c.push(...e),s.push(...t)}for(let e of s)h.push(`${e}:${r}`)}let u=await this.client.core.crypto.generateSharedKey(E,l.publicKey);c.length>0&&(n={topic:u,acknowledged:!0,self:{publicKey:E,metadata:this.client.metadata},peer:l,controller:l.publicKey,expiry:tm(l7),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:w,namespaces:nZ([...new Set(c)],[...new Set(h)]),transportType:a},await this.client.core.relayer.subscribe(u,{transportType:a}),await this.client.session.set(u,n),w&&await this.client.core.pairing.updateMetadata({topic:w,metadata:l.metadata}),n=this.client.session.get(u)),null!=(i=this.client.metadata.redirect)&&i.linkMode&&null!=(s=l.metadata.redirect)&&s.linkMode&&null!=(r=l.metadata.redirect)&&r.universal&&t&&(this.client.core.addLinkModeSupportedApp(l.metadata.redirect.universal),this.client.session.update(u,{transportType:oP.link_mode})),P({auths:o,session:n})};this.events.once(A,U),this.events.once(N,k);try{if(o){let e=(0,od.formatJsonRpcRequest)("wc_sessionAuthenticate",_,T);this.client.core.history.set(w,e);let i=await this.client.core.crypto.encode("",e,{type:2,encoding:nu});n=nq(t,w,i)}else await Promise.all([this.sendRequest({topic:w,method:"wc_sessionAuthenticate",params:_,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:T}),this.sendRequest({topic:w,method:"wc_sessionPropose",params:S,expiry:ce.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:S.id})])}catch(e){throw this.events.off(A,U),this.events.off(N,k),e}return await this.setProposal(S.id,S),await this.setAuthRequest(T,{request:cg(cf({},_),{verifyContext:{}}),pairingTopic:w,transportType:a}),{uri:n??v,response:O}}),cy(this,"approveSessionAuthenticate",async e=>{let t,{id:i,auths:s}=e,r=this.client.core.eventClient.createEvent({properties:{topic:i.toString(),trace:[oz.authenticated_session_approve_started]}});try{this.isInitialized()}catch(e){throw r.setError(oK.no_internet_connection),e}let n=this.getPendingAuthRequest(i);if(!n)throw r.setError(oK.authenticated_session_pending_request_not_found),Error(`Could not find pending auth request with id ${i}`);let o=n.transportType||oP.relay;o===oP.relay&&await this.confirmOnlineStateOrThrow();let a=n.requester.publicKey,l=await this.client.core.crypto.generateKeyPair(),c=nf(a),h={type:1,receiverPublicKey:a,senderPublicKey:l},u=[],d=[];for(let e of s){if(!await sl({cacao:e,projectId:this.client.core.projectId})){r.setError(oK.invalid_cacao);let e=n0("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:i,topic:c,error:e,encodeOpts:h}),Error(e.message)}r.addTrace(oz.cacaos_verified);let{p:t}=e,s=sg(t.resources),n=[so(t.iss)],o=sa(t.iss);if(s){let e=sp(s),t=sf(s);u.push(...e),n.push(...t)}for(let e of n)d.push(`${e}:${o}`)}let p=await this.client.core.crypto.generateSharedKey(l,a);if(r.addTrace(oz.create_authenticated_session_topic),u?.length>0){t={topic:p,acknowledged:!0,self:{publicKey:l,metadata:this.client.metadata},peer:{publicKey:a,metadata:n.requester.metadata},controller:a,expiry:tm(l7),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:n.pairingTopic,namespaces:nZ([...new Set(u)],[...new Set(d)]),transportType:o}
10,r.addTrace(oz.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(p,{transportType:o})}catch(e){throw r.setError(oK.subscribe_authenticated_session_topic_failure),e}r.addTrace(oz.subscribe_authenticated_session_topic_success),await this.client.session.set(p,t),r.addTrace(oz.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:n.pairingTopic,metadata:n.requester.metadata})}r.addTrace(oz.publishing_authenticated_session_approve);try{await this.sendResult({topic:c,id:i,result:{cacaos:s,responder:{publicKey:l,metadata:this.client.metadata}},encodeOpts:h,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(n.requester.metadata,o)})}catch(e){throw r.setError(oK.authenticated_session_approve_publish_failure),e}return await this.client.auth.requests.delete(i,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:n.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:r.eventId}),{session:t}}),cy(this,"rejectSessionAuthenticate",async e=>{this.isInitialized();let{id:t,reason:i}=e,s=this.getPendingAuthRequest(t);if(!s)throw Error(`Could not find pending auth request with id ${t}`);s.transportType===oP.relay&&await this.confirmOnlineStateOrThrow();let r=s.requester.publicKey,n=await this.client.core.crypto.generateKeyPair(),o=nf(r);await this.sendError({id:t,topic:o,error:i,encodeOpts:{type:1,receiverPublicKey:r,senderPublicKey:n},rpcOpts:ce.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(s.requester.metadata,s.transportType)}),await this.client.auth.requests.delete(t,{message:"rejected",code:0}),await this.deleteProposal(t)}),cy(this,"formatAuthMessage",e=>{this.isInitialized();let{request:t,iss:i}=e;return sc(t,i)}),cy(this,"processRelayMessageCache",()=>{setTimeout(async()=>{if(0!==this.relayMessageCache.length)for(;this.relayMessageCache.length>0;)try{let e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)}),cy(this,"cleanupDuplicatePairings",async e=>{if(e.pairingTopic)try{let t=this.client.core.pairing.pairings.get(e.pairingTopic),i=this.client.core.pairing.pairings.getAll().filter(i=>{var s,r;return(null==(s=i.peerMetadata)?void 0:s.url)&&(null==(r=i.peerMetadata)?void 0:r.url)===e.peer.metadata.url&&i.topic&&i.topic!==t.topic});if(0===i.length)return;this.client.logger.info(`Cleaning up ${i.length} duplicate pairing(s)`),await Promise.all(i.map(e=>this.client.core.pairing.disconnect({topic:e.topic}))),this.client.logger.info("Duplicate pairings clean up finished")}catch(e){this.client.logger.error(e)}}),cy(this,"deleteSession",async e=>{var t;let{topic:i,expirerHasDeleted:s=!1,emitEvent:r=!0,id:n=0}=e,{self:o}=this.client.session.get(i);await this.client.core.relayer.unsubscribe(i),await this.client.session.delete(i,n0("USER_DISCONNECTED")),this.addToRecentlyDeleted(i,"session"),this.client.core.crypto.keychain.has(o.publicKey)&&await this.client.core.crypto.deleteKeyPair(o.publicKey),this.client.core.crypto.keychain.has(i)&&await this.client.core.crypto.deleteSymKey(i),s||this.client.core.expirer.del(i),this.client.core.storage.removeItem(l4).catch(e=>this.client.logger.warn(e)),i===(null==(t=this.sessionRequestQueue.queue[0])?void 0:t.topic)&&(this.sessionRequestQueue.state=ci.idle),await Promise.all(this.getPendingSessionRequests().filter(e=>e.topic===i).map(e=>this.deletePendingSessionRequest(e.id,n0("USER_DISCONNECTED")))),r&&this.client.events.emit("session_delete",{id:n,topic:i})}),cy(this,"deleteProposal",async(e,t)=>{if(t)try{let t=this.client.proposal.get(e),i=this.client.core.eventClient.getEvent({topic:t.pairingTopic});i?.setError(o$.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,n0("USER_DISCONNECTED")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"proposal")}),cy(this,"deletePendingSessionRequest",async(e,t,i=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),i?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(t=>t.id!==e),i&&(this.sessionRequestQueue.state=ci.idle,this.client.events.emit("session_request_expire",{id:e}))}),cy(this,"deletePendingAuthRequest",async(e,t,i=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),i?Promise.resolve():this.client.core.expirer.del(e)])}),cy(this,"setExpiry",async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))}),cy(this,"setProposal",async(e,t)=>{this.client.core.expirer.set(e,tm(ce.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),cy(this,"setAuthRequest",async(e,t)=>{let{request:i,pairingTopic:s,transportType:r=oP.relay}=t;this.client.core.expirer.set(e,i.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:i.authPayload,requester:i.requester,expiryTimestamp:i.expiryTimestamp,id:e,pairingTopic:s,verifyContext:i.verifyContext,transportType:r})}),cy(this,"setPendingSessionRequest",async e=>{let{id:t,topic:i,params:s,verifyContext:r}=e,n=s.request.expiryTimestamp||tm(ce.wc_sessionRequest.req.ttl);
10this.client.core.expirer.set(t,n),await this.client.pendingRequest.set(t,{id:t,topic:i,params:s,verifyContext:r})}),cy(this,"sendRequest",async e=>{let t,i,{topic:s,method:r,params:n,expiry:o,relayRpcId:a,clientRpcId:l,throwOnFailedPublish:c,appLink:h,tvf:u,publishOpts:d={}}=e,p=(0,od.formatJsonRpcRequest)(r,n,l),f=!!h;try{let e=f?nu:nh;t=await this.client.core.crypto.encode(s,p,{encoding:e})}catch(e){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${s} failed`),e}if(cr.includes(r)){let e=ng(JSON.stringify(p)),s=ng(t);i=await this.client.core.verify.register({id:s,decryptedId:e})}let g=cf(cf({},ce[r].req),d);if(g.attestation=i,o&&(g.ttl=o),a&&(g.id=a),this.client.core.history.set(s,p),f){let e=nq(h,s,t);await global.Linking.openURL(e,this.client.name)}else g.tvf=cg(cf({},u),{correlationId:p.id}),c?(g.internal=cg(cf({},g.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,t,g)):this.client.core.relayer.publish(s,t,g).catch(e=>this.client.logger.error(e));return p.id}),cy(this,"sendProposeSession",async e=>{let{proposal:t,publishOpts:i}=e,s=(0,od.formatJsonRpcRequest)("wc_sessionPropose",t,t.id);this.client.core.history.set(t.pairingTopic,s);let r=await this.client.core.crypto.encode(t.pairingTopic,s,{encoding:nh}),n=ng(JSON.stringify(s)),o=ng(r),a=await this.client.core.verify.register({id:o,decryptedId:n});await this.client.core.relayer.publishCustom({payload:{pairingTopic:t.pairingTopic,sessionProposal:r},opts:cg(cf({},i),{publishMethod:"wc_proposeSession",attestation:a})})}),cy(this,"sendApproveSession",async e=>{let{sessionTopic:t,pairingProposalResponse:i,proposal:s,sessionSettleRequest:r,publishOpts:n}=e,o=(0,od.formatJsonRpcResult)(s.id,i),a=await this.client.core.crypto.encode(s.pairingTopic,o,{encoding:nh}),l=(0,od.formatJsonRpcRequest)("wc_sessionSettle",r,n?.id),c=await this.client.core.crypto.encode(t,l,{encoding:nh});this.client.core.history.set(t,l),await this.client.core.relayer.publishCustom({payload:{sessionTopic:t,pairingTopic:s.pairingTopic,sessionProposalResponse:a,sessionSettlementRequest:c},opts:cg(cf({},n),{publishMethod:"wc_approveSession"})})}),cy(this,"sendResult",async e=>{let t,i,s,{id:r,topic:n,result:o,throwOnFailedPublish:a,encodeOpts:l,appLink:c}=e,h=(0,od.formatJsonRpcResult)(r,o),u=c&&"u">typeof(null==global?void 0:global.Linking);try{let e=u?nu:nh;t=await this.client.core.crypto.encode(n,h,cg(cf({},l||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${n} failed`),e}try{let e=(i=await this.client.core.history.get(n,r)).request;try{s=this.getTVFParams(r,e.params,o)}catch(e){this.client.logger.warn(`sendResult() -> getTVFParams() failed: ${e?.message}`)}}catch(e){throw this.client.logger.error(`sendResult() -> history.get(${n}, ${r}) failed`),e}if(u){let e=nq(c,n,t);await global.Linking.openURL(e,this.client.name)}else{let e=ce[i.request.method].res;e.tvf=cg(cf({},s),{correlationId:r}),a?(e.internal=cg(cf({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(n,t,e)):this.client.core.relayer.publish(n,t,e).catch(e=>this.client.logger.error(e))}await this.client.core.history.resolve(h)}),cy(this,"sendError",async e=>{let t,i,{id:s,topic:r,error:n,encodeOpts:o,rpcOpts:a,appLink:l}=e,c=(0,od.formatJsonRpcError)(s,n),h=l&&"u">typeof(null==global?void 0:global.Linking);try{let e=h?nu:nh;t=await this.client.core.crypto.encode(r,c,cg(cf({},o||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${r} failed`),e}try{i=await this.client.core.history.get(r,s)}catch(e){throw this.client.logger.error(`sendError() -> history.get(${r}, ${s}) failed`),e}if(h){let e=nq(l,r,t);await global.Linking.openURL(e,this.client.name)}else{let e=i.request.method,s=a||ce[e].res;this.client.core.relayer.publish(r,t,s)}await this.client.core.history.resolve(c)}),cy(this,"cleanup",async()=>{let e=[],t=[];this.client.session.getAll().forEach(t=>{let i=!1;tb(t.expiry)&&(i=!0),this.client.core.crypto.keychain.has(t.topic)||(i=!0),i&&e.push(t.to
10pic)}),this.client.proposal.getAll().forEach(e=>{tb(e.expiryTimestamp)&&t.push(e.id)}),await Promise.all([...e.map(e=>this.deleteSession({topic:e})),...t.map(e=>this.deleteProposal(e))])}),cy(this,"onProviderMessageEvent",async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),cy(this,"onRelayEventRequest",async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),cy(this,"processRequestsQueue",async()=>{if(this.requestQueue.state===ci.active)return void this.client.logger.info("Request queue already active, skipping...");for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=ci.active;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=ci.idle}),cy(this,"processRequest",async e=>{let{topic:t,payload:i,attestation:s,transportType:r,encryptedId:n}=e,o=i.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:o}))switch(o){case"wc_sessionPropose":return await this.onSessionProposeRequest
10({topic:t,payload:i,attestation:s,encryptedId:n});case"wc_sessionSettle":return await this.onSessionSettleRequest(t,i);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(t,i);case"wc_sessionExtend":return await this.onSessionExtendRequest(t,i);case"wc_sessionPing":return await this.onSessionPingRequest(t,i);case"wc_sessionDelete":return await this.onSessionDeleteRequest(t,i);case"wc_sessionRequest":return await this.onSessionRequest({topic:t,payload:i,attestation:s,encryptedId:n,transportType:r});case"wc_sessionEvent":return await this.onSessionEventRequest(t,i);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:t,payload:i,attestation:s,encryptedId:n,transportType:r});default:return this.client.logger.info(`Unsupported request method ${o}`)}}),cy(this,"onRelayEventResponse",async e=>{let{topic:t,payload:i,transportType:s}=e,r=(await this.client.core.history.get(t,i.id)).request.method;switch(r){case"wc_sessionPropose":return this.onSessionProposeResponse(t,i,s);case"wc_sessionSettle":return this.onSessionSettleResponse(t,i);case"wc_sessionUpdate":return this.onSessionUpdateResponse(t,i);case"wc_sessionExtend":return this.onSessionExtendResponse(t,i);case"wc_sessionPing":return this.onSessionPingResponse(t,i);case"wc_sessionRequest":return this.onSessionRequestResponse(t,i);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(t,i);default:return this.client.logger.info(`Unsupported response method ${r}`)}}),cy(this,"onRelayEventUnknownPayload",e=>{let{topic:t}=e,{message:i}=nX("MISSING_OR_INVALID",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw Error(i)}),cy(this,"shouldIgnorePairingRequest",e=>{let{topic:t,requestMethod:i}=e,s=this.expectedPairingMethodMap.get(t);return!(!s||s.includes(i))&&!!(s.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)}),cy(this,"onSessionProposeRequest",async e=>{let{topic:t,payload:i,attestation:s,encryptedId:r}=e,{params:n,id:o}=i;try{let e=this.client.core.eventClient.getEvent({topic:t});0===this.client.events.listenerCount("session_proposal")&&(console.warn("No listener for session_proposal event"),e?.setError(oj.proposal_listener_not_found)),this.isValidConnect(cf({},i.params));let a=n.expiryTimestamp||tm(ce.wc_sessionPropose.req.ttl),l=cf({id:o,pairingTopic:t,expiryTimestamp:a,attestation:s,encryptedId:r},n);await this.setProposal(o,l);let c=await this.getVerifyContext({attestationId:s,hash:ng(JSON.stringify(i)),encryptedId:r,metadata:l.proposer.metadata});e?.addTrace(oD.emit_session_proposal),this.client.events.emit("session_proposal",{id:o,params:l,verifyContext:c})}catch(e){await this.sendError({id:o,topic:t,error:e,rpcOpts:ce.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),cy(this,"onSessionProposeResponse",async(e,t,i)=>{let{id:s}=t;if((0,od.isJsonRpcResult)(t)){let{result:r}=t;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:r});let n=this.client.proposal.get(s);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:n});let o=n.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:o});let a=r.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:a});let l=await this.client.core.crypto.generateSharedKey(o,a);this.pendingSessions.set(s,{sessionTopic:l,pairingTopic:e,proposalId:s,publicKey:o});let c=await this.client.core.relayer.subscribe(l,{transportType:i});this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:c}),await this.client.core.pairing.activate({topic:e})}else if((0,od.isJsonRpcError)(t)){await this.deleteProposal(s);let e=tw("session_connect",s);if(0===this.events.listenerCount(e))throw Error(`emitting ${e} without any listeners, 954`);this.events.emit(e,{error:t.error})}}),cy(this,"onSessionSettleRequest",async(e,t)=>{let{id:i,params:s}=t;try{this.isValidSessionSettleRequest(s);let{relay:i,controller:r,expiry:n,namespaces:o,sessionProperties:a,scopedProperties:l,sessionConfig:c,proposalRequestsResponses:h}=t.params,u=[...this.pendingSessions.values()].find(t=>t.sessionTopic===e);if(!u)return this.client.logger.error(`Pending session not found for topic ${e}`);let d=this.client.proposal.get(u.proposalId),p=cg(cf(cf(cf({topic:e,relay:i,expiry:n,namespaces:o,acknowledged:!0,pairingTopic:u.pairingTopic,requiredNamespaces:d.requiredNamespaces,optionalNamespaces:d.optionalNamespaces,controller:r.publicKey,self:{publicKey:u.publicKey,metadata:this.client.metadata},peer:{publicKey:r.publicKey,metadata:r.metadata}},a&&{sessionProperties:a}),l&&{scopedProperties:l}),c&&{sessionConfig:c}
10),{transportType:oP.relay,authentication:h?.authentication,walletPayResult:h?.walletPay});await this.client.session.set(p.topic,p),await this.setExpiry(p.topic,p.expiry),await this.client.core.pairing.updateMetadata({topic:u.pairingTopic,metadata:p.peer.metadata}),this.pendingSessions.delete(u.proposalId),this.deleteProposal(u.proposalId,!1),this.cleanupDuplicatePairings(p),await this.sendResult({id:t.id,topic:e,throwOnFailedPublish:!0,result:!0}),this.client.events.emit("session_connect",{session:p}),this.events.emit(tw("session_connect",u.proposalId),{session:p})}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),cy(this,"onSessionSettleResponse",async(e,t)=>{let{id:i}=t;(0,od.isJsonRpcResult)(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(tw("session_approve",i),{})):(0,od.isJsonRpcError)(t)&&(await this.client.session.delete(e,n0("USER_DISCONNECTED")),this.events.emit(tw("session_approve",i),{error:t.error}))}),cy(this,"onSessionUpdateRequest",async(e,t)=>{let{params:i,id:s}=t;try{let t=`${e}_session_update`,r=ol.get(t);if(r&&this.isRequestOutOfSync(r,s)){this.client.logger.warn(`Discarding out of sync request - ${s}`),this.sendError({id:s,topic:e,error:n0("INVALID_UPDATE_REQUEST")});return}this.isValidUpdate(cf({topic:e},i));try{ol.set(t,s),await this.client.session.update(e,{namespaces:i.namespaces}),await this.sendResult({id:s,topic:e,result:!0})}catch(e){throw ol.delete(t),e}this.client.events.emit("session_update",{id:s,topic:e,params:i})}catch(t){await this.sendError({id:s,topic:e,error:t}),this.client.logger.error(t)}}),cy(this,"isRequestOutOfSync",(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),cy(this,"onSessionUpdateResponse",(e,t)=>{let{id:i}=t,s=tw("session_update",i);if(0===this.events.listenerCount(s))throw Error(`emitting ${s} without any listeners`);(0,od.isJsonRpcResult)(t)?this.events.emit(tw("session_update",i),{}):(0,od.isJsonRpcError)(t)&&this.events.emit(tw("session_update",i),{error:t.error})}),cy(this,"onSessionExtendRequest",async(e,t)=>{let{id:i}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,tm(l7)),await this.sendResult({id:i,topic:e,result:!0}),this.client.events.emit("session_extend",{id:i,topic:e})}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),cy(this,"onSessionExtendResponse",(e,t)=>{let{id:i}=t,s=tw("session_extend",i);if(0===this.events.listenerCount(s))throw Error(`emitting ${s} without any listeners`);(0,od.isJsonRpcResult)(t)?this.events.emit(tw("session_extend",i),{}):(0,od.isJsonRpcError)(t)&&this.events.emit(tw("session_extend",i),{error:t.error})}),cy(this,"onSessionPingRequest",async(e,t)=>{let{id:i}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:i,topic:e})}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),cy(this,"onSessionPingResponse",(e,t)=>{let{id:i}=t,s=tw("session_ping",i);setTimeout(()=>{if(0===this.events.listenerCount(s))throw Error(`emitting ${s} without any listeners 2176`);(0,od.isJsonRpcResult)(t)?this.events.emit(tw("session_ping",i),{}):(0,od.isJsonRpcError)(t)&&this.events.emit(tw("session_ping",i),{error:t.error})},500)}),cy(this,"onSessionDeleteRequest",async(e,t)=>{let{id:i}=t;try{await this.isValidDisconnect({topic:e,reason:t.params}),this.cleanupPendingSentRequestsForTopic({topic:e,error:n0("USER_DISCONNECTED")}),await this.deleteSession({topic:e,id:i})}catch(e){this.client.logger.error(e)}}),cy(this,"onSessionRequest",async e=>{var t,i,s;let{topic:r,payload:n,attestation:o,encryptedId:a,transportType:l}=e,{id:c,params:h}=n;try{await this.isValidRequest(cf({topic:r},h));let e=this.client.session.get(r),n=await this.getVerifyContext({attestationId:o,hash:ng(JSON.stringify((0,od.formatJsonRpcRequest)("wc_sessionRequest",h,c))),encryptedId:a,metadata:e.peer.metadata,transportType:l}),u={id:c,topic:r,params:h,verifyContext:n};await this.setPendingSessionRequest(u),l===oP.link_mode&&null!=(t=e.peer.metadata.redirect)&&t.universal&&this.client.core.addLinkModeSupportedApp(null==(i=e.peer.metadata.redirect)?void 0:i.universal),null!=(s=this.client.signConfig)&&s.disableRequestQueue?this.emitSessionRequest(u):(this.addSessionRequestToSessionRequestQueue(u),this.processSessionRequestQueue())}
10catch(e){await this.sendError({id:c,topic:r,error:e}),this.client.logger.error(e)}}),cy(this,"onSessionRequestResponse",(e,t)=>{let{id:i}=t,s=tw("session_request",i);if(0===this.events.listenerCount(s))throw Error(`emitting ${s} without any listeners`);(0,od.isJsonRpcResult)(t)?this.events.emit(tw("session_request",i),{result:t.result}):(0,od.isJsonRpcError)(t)&&this.events.emit(tw("session_request",i),{error:t.error})}),cy(this,"onSessionEventRequest",async(e,t)=>{let{id:i,params:s}=t;try{let t=`${e}_session_event_${s.event.name}`,r=ol.get(t);if(r&&this.isRequestOutOfSync(r,i))return void this.client.logger.info(`Discarding out of sync request - ${i}`);this.isValidEmit(cf({topic:e},s)),this.client.events.emit("session_event",{id:i,topic:e,params:s}),ol.set(t,i)}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),cy(this,"onSessionAuthenticateResponse",(e,t)=>{let{id:i}=t;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:e,payload:t}),(0,od.isJsonRpcResult)(t)?this.events.emit(tw("session_request",i),{result:t.result}):(0,od.isJsonRpcError)(t)&&this.events.emit(tw("session_request",i),{error:t.error})}),cy(this,"onSessionAuthenticateRequest",async e=>{var t;let{topic:i,payload:s,attestation:r,encryptedId:n,transportType:o}=e;try{let{requester:e,authPayload:a,expiryTimestamp:l}=s.params,c=await this.getVerifyContext({attestationId:r,hash:ng(JSON.stringify(s)),encryptedId:n,metadata:e.metadata,transportType:o}),h={requester:e,pairingTopic:i,id:s.id,authPayload:a,verifyContext:c,expiryTimestamp:l};await this.setAuthRequest(s.id,{request:h,pairingTopic:i,transportType:o}),o===oP.link_mode&&null!=(t=e.metadata.redirect)&&t.universal&&this.client.core.addLinkModeSupportedApp(e.metadata.redirect.universal),this.client.events.emit("session_authenticate",{topic:i,params:s.params,id:s.id,verifyContext:c})}catch(n){this.client.logger.error(n);let e=s.params.requester.publicKey,t=await this.client.core.crypto.generateKeyPair(),r=this.getAppLinkIfEnabled(s.params.requester.metadata,o);await this.sendError({id:s.id,topic:i,error:n,encodeOpts:{type:1,receiverPublicKey:e,senderPublicKey:t},rpcOpts:ce.wc_sessionAuthenticate.autoReject,appLink:r})}}),cy(this,"addSessionRequestToSessionRequestQueue",e=>{this.sessionRequestQueue.queue.push(e)}),cy(this,"cleanupAfterResponse",e=>{this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=ci.idle,this.processSessionRequestQueue()},(0,em.toMiliseconds)(this.requestQueueDelay))}),cy(this,"cleanupPendingSentRequestsForTopic",({topic:e,error:t})=>{let i=this.client.core.history.pending;i.length>0&&i.filter(t=>t.topic===e&&"wc_sessionRequest"===t.request.method).forEach(e=>{this.events.emit(tw("session_request",e.request.id),{error:t})})}),cy(this,"processSessionRequestQueue",()=>{if(this.sessionRequestQueue.state===ci.active)return void this.client.logger.info("session request queue is already active.");let e=this.sessionRequestQueue.queue[0];if(!e)return void this.client.logger.info("session request queue is empty.");try{this.emitSessionRequest(e)}catch(e){this.client.logger.error(e)}}),cy(this,"emitSessionRequest",e=>{if(this.emittedSessionRequests.has(e.id))return void this.client.logger.warn({id:e.id},`Skipping emitting \`session_request\` event for duplicate request. id: ${e.id}`);this.sessionRequestQueue.state=ci.active,this.emittedSessionRequests.add(e.id),this.client.events.emit("session_request",e)}),cy(this,"onPairingCreated",e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;let t=this.client.proposal.getAll().find(t=>t.pairingTopic===e.topic);
10t&&this.onSessionProposeRequest({topic:e.topic,payload:(0,od.formatJsonRpcRequest)("wc_sessionPropose",cg(cf({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties}),t.id),attestation:t.attestation,encryptedId:t.encryptedId})}),cy(this,"isValidConnect",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw Error(t)}let{pairingTopic:t,requiredNamespaces:i,optionalNamespaces:s,sessionProperties:r,scopedProperties:n,relays:o}=e;if(n8(t)||await this.isValidPairingTopic(t),!function(e,t){let i=!1;return t&&!e?i=!0:e&&n1(e)&&e.length&&e.forEach(e=>{i=oe(e)}),i}(o,!0)){let{message:e}=nX("MISSING_OR_INVALID",`connect() relays: ${o}`);throw Error(e)}if(i&&!n8(i)&&0!==n2(i)){let e="requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces";["fatal","error","silent"].includes(this.client.logger.level)?console.warn(e):this.client.logger.warn(e),this.validateNamespaces(i,"requiredNamespaces")}if(s&&!n8(s)&&0!==n2(s)&&this.validateNamespaces(s,"optionalNamespaces"),r&&!n8(r)&&this.validateSessionProps(r,"sessionProperties"),n&&!n8(n)){this.validateSessionProps(n,"scopedProperties");let e=Object.keys(i||{}).concat(Object.keys(s||{}));if(!Object.keys(n).every(t=>e.includes(t.split(":")[0])))throw Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(n)}, required/optional namespaces: ${JSON.stringify(e)}`)}}),cy(this,"validateNamespaces",(e,t)=>{let i=function(e,t,i){let s=null;if(e&&n2(e)){let r,n=n9(e,t);n&&(s=n);let o=(r=null,Object.entries(e).forEach(([e,s])=>{var n,o;let a;if(r)return;let l=(n=e2(e,s),o=`${t} ${i}`,a=null,n1(n)&&n.length?n.forEach(e=>{a||n5(e)||(a=n0("UNSUPPORTED_CHAINS",`${o}, chain ${e} should be a string and conform to "namespace:chainId" format`))}):n5(e)||(a=n0("UNSUPPORTED_CHAINS",`${o}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),a);l&&(r=l)}),r);o&&(s=o)}else s=nX("MISSING_OR_INVALID",`${t}, ${i} should be an object with data`);return s}(e,"connect()",t);if(i)throw Error(i.message)}),cy(this,"isValidApprove",async e=>{if(!ot(e))throw Error(nX("MISSING_OR_INVALID",`approve() params: ${e}`).message);let{id:t,namespaces:i,relayProtocol:s,sessionProperties:r,scopedProperties:n}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);let o=this.client.proposal.get(t),a=n7(i,"approve()");if(a)throw Error(a.message);let l=os(o.requiredNamespaces,i,"approve()");if(l)throw Error(l.message);if(!n6(s,!0)){let{message:e}=nX("MISSING_OR_INVALID",`approve() relayProtocol: ${s}`);throw Error(e)}if(r&&!n8(r)&&this.validateSessionProps(r,"sessionProperties"),n&&!n8(n)){this.validateSessionProps(n,"scopedProperties");let e=new Set(Object.keys(i));if(!Object.keys(n).every(t=>e.has(t.split(":")[0])))throw Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(n)}, approved namespaces: ${Array.from(e).join(", ")}`)}}),cy(this,"isValidReject",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`reject() params: ${e}`);throw Error(t)}let{id:t,reason:i}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!function(e){return!(!e||"object"!=typeof e||!e.code||!n3(e.code,!1)||!e.message||!n6(e.message,!1))}(i)){let{message:e}=nX("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(i)}`);throw Error(e)}}),cy(this,"isValidSessionSettleRequest",e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw Error(t)}let{relay:t,controller:i,namespaces:s,expiry:r}=e;if(!oe(t)){let{message:e}=nX("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw Error(e)}let n=function(e,t){let i=null;return n6(e?.publicKey,!1)||(i=nX("MISSING_OR_INVALID",`${t} controller public key should be a string`)),i}(i,"onSessionSettleRequest()");if(n)throw Error(n.message);let o=n7(s,"onSessionSettleRequest()");if(o)throw Error(o.message);if(tb(r)){let{message:e}=nX("EXPIRED","onSessionSettleRequest()");throw Error(e)}}),cy(this,"isValidUpdate",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`update() params: ${e}`);throw Error(t)}let{topic:t,namespaces:i}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);
10let s=this.client.session.get(t),r=n7(i,"update()");if(r)throw Error(r.message);let n=os(s.requiredNamespaces,i,"update()");if(n)throw Error(n.message)}),cy(this,"isValidExtend",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`extend() params: ${e}`);throw Error(t)}let{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),cy(this,"isValidRequest",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`request() params: ${e}`);throw Error(t)}let{topic:t,request:i,chainId:s,expiry:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let{namespaces:n}=this.client.session.get(t);if(!oi(n,s)){let{message:e}=nX("MISSING_OR_INVALID",`request() chainId: ${s}`);throw Error(e)}if(!function(e){return!(n8(e)||!n6(e.method,!1))}(i)){let{message:e}=nX("MISSING_OR_INVALID",`request() ${JSON.stringify(i)}`);throw Error(e)}if(!function(e,t,i){return!!n6(i,!1)&&(function(e,t){let i=[];return Object.values(e).forEach(e=>{nH(e.accounts).includes(t)&&i.push(...e.methods)}),i})(e,t).includes(i)}(n,s,i.method)){let{message:e}=nX("MISSING_OR_INVALID",`request() method: ${i.method}`);throw Error(e)}this.validateRequestExpiry(r)}),cy(this,"isValidRespond",async e=>{var t;if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`respond() params: ${e}`);throw Error(t)}let{topic:i,response:s}=e;try{await this.isValidSessionTopic(i)}catch(i){throw null!=(t=e?.response)&&t.id&&this.cleanupAfterResponse(e),i}if(!function(e){return!(n8(e)||n8(e.result)&&n8(e.error)||!n3(e.id,!1)||!n6(e.jsonrpc,!1))}(s)){let{message:e}=nX("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(s)}`);throw Error(e)}let r=this.client.pendingRequest.get(s.id);if(r.topic!==i){let{message:e}=nX("MISMATCHED_TOPIC",`Request response topic mismatch. reqId: ${s.id}, expected topic: ${r.topic}, received topic: ${i}`);throw Error(e)}}),cy(this,"isValidPing",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),cy(this,"isValidEmit",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`emit() params: ${e}`);throw Error(t)}let{topic:t,event:i,chainId:s}=e;await this.isValidSessionTopic(t);let{namespaces:r}=this.client.session.get(t);if(!oi(r,s)){let{message:e}=nX("MISSING_OR_INVALID",`emit() chainId: ${s}`);throw Error(e)}if(!function(e){return!(n8(e)||!n6(e.name,!1))}(i)||!function(e,t,i){return!!n6(i,!1)&&(function(e,t){let i=[];return Object.values(e).forEach(e=>{nH(e.accounts).includes(t)&&i.push(...e.events)}),i})(e,t).includes(i)}(r,s,i.name)){let{message:e}=nX("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw Error(e)}}),cy(this,"isValidDisconnect",async e=>{if(!ot(e)){let{message:t}=nX("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),cy(this,"isValidAuthenticate",e=>{let{chains:t,uri:i,domain:s,nonce:r}=e;if(!Array.isArray(t)||0===t.length)throw Error("chains is required and must be a non-empty array");if(!n6(i,!1))throw Error("uri is required parameter");if(!n6(s,!1))throw Error("domain is required parameter");if(!n6(r,!1))throw Error("nonce is required parameter");if([...new Set(t.map(e=>e1(e).namespace))].length>1)throw Error("Multi-namespace requests are not supported. Please request single namespace only.");let{namespace:n}=e1(t[0]);if("eip155"!==n)throw Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")}),cy(this,"getVerifyContext",async e=>{let{attestationId:t,hash:i,encryptedId:s,metadata:r,transportType:n}=e,o={verified:{verifyUrl:r.verifyUrl||oC,validation:"UNKNOWN",origin:r.url||""}};try{if(n===oP.link_mode){let e=this.getAppLinkIfEnabled(r,n);return o.verified.validation=e&&new URL(e).origin===new URL(r.url).origin?"VALID":"INVALID",o}let e=await this.client.core.verify.resolve({attestationId:t,hash:i,encryptedId:s,verifyUrl:r.verifyUrl});e&&(o.verified.origin=e.origin,o.verified.isScam=e.isScam,o.verified.validation=e.origin===new URL(r.url).origin?"VALID":"INVALID")}catch(e){this.client.logger.warn(e)}return this.client.logger.debug(`Verify context: ${JSON.stringify(o)}`),o}),cy(this,"validateSessionProps",(e,t)=>{Object.values(e).forEach((i,s)=>{if(null==i){let{message:r}=nX("MISSING_OR_INVALID",`${t} must contain an existing value for each key. Received: ${i} for key ${Object.keys(e)[s]}`);throw Error(r)}})}),cy(this,"getPendingAuthRequest",e=>{let t=this.client.auth.requests.get(e);return"object"==typeof t?t:void 0}),cy(this,"addToRecentlyDeleted",(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0,t=this.recentlyDeletedLimit/2;
10for(let i of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(i)}}}),cy(this,"checkRecentlyDeleted",e=>{let t=this.recentlyDeletedMap.get(e);if(t){let{message:i}=nX("MISSING_OR_INVALID",`Record was recently deleted - ${t}: ${e}`);throw Error(i)}}),cy(this,"isLinkModeEnabled",(e,t)=>{var i,s,r,n,o,a,l,c,h;return!!e&&t===oP.link_mode&&(null==(s=null==(i=this.client.metadata)?void 0:i.redirect)?void 0:s.linkMode)===!0&&(null==(n=null==(r=this.client.metadata)?void 0:r.redirect)?void 0:n.universal)!==void 0&&(null==(a=null==(o=this.client.metadata)?void 0:o.redirect)?void 0:a.universal)!==""&&(null==(l=e?.redirect)?void 0:l.universal)!==void 0&&(null==(c=e?.redirect)?void 0:c.universal)!==""&&(null==(h=e?.redirect)?void 0:h.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&"u">typeof(null==global?void 0:global.Linking)}),cy(this,"getAppLinkIfEnabled",(e,t)=>{var i;return this.isLinkModeEnabled(e,t)?null==(i=e?.redirect)?void 0:i.universal:void 0}),cy(this,"handleLinkModeMessage",({url:e})=>{if(!e||!e.includes("wc_ev")||!e.includes("topic"))return;let t=tI(e,"topic")||"",i=decodeURIComponent(tI(e,"wc_ev")||""),s=this.client.session.keys.includes(t);s&&this.client.session.update(t,{transportType:oP.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:i,sessionExists:s})}),cy(this,"registerLinkModeListeners",async()=>{var e;if(tS()||tr()&&null!=(e=this.client.metadata.redirect)&&e.linkMode){let e=null==global?void 0:global.Linking;if("u">typeof e){e.addEventListener("url",this.handleLinkModeMessage,this.client.name);let t=await e.getInitialURL();t&&setTimeout(()=>{this.handleLinkModeMessage({url:t})},50)}}}),cy(this,"getTVFApproveParams",e=>{try{let t=nG(e.namespaces),i=function(e){let t=[];return Object.values(e).forEach(e=>{t.push(...e.methods)}),[...new Set(t)]}(e.namespaces),s=function(e){let t=[];return Object.values(e).forEach(e=>{t.push(...e.events)}),[...new Set(t)]}(e.namespaces),r=e.sessionProperties,n=e.scopedProperties;return{approvedChains:t,approvedMethods:i,approvedEvents:s,sessionProperties:r,scopedProperties:n}}catch(e){return this.client.logger.warn(e,"Error getting TVF approve params"),{}}}),cy(this,"getTVFParams",(e,t,i)=>{var s,r,n;if(!(null!=(s=t.request)&&s.method))return{};let o={correlationId:e,rpcMethods:[t.request.method],chainId:t.chainId};try{o.txHashes=this.extractTxHashesFromResult(t.request,i),o.contractAddresses=this.isValidContractData(t.request.params)?[null==(n=null==(r=t.request.params)?void 0:r[0])?void 0:n.to]:[]}catch(e){this.client.logger.warn(e,"Error getting TVF params")}return o}),cy(this,"isValidContractData",e=>{var t;if(!e)return!1;try{let i=e?.data||(null==(t=e?.[0])?void 0:t.data);if(!i.startsWith("0x"))return!1;let s=i.slice(2);return!!/^[0-9a-fA-F]*$/.test(s)&&s.length%2==0}catch{}return!1}),cy(this,"extractTxHashesFromResult",(e,t)=>{var i;try{if(!t)return[];let s=e.method,r=cs[s];if("sui_signTransaction"===s)return[function(e){let t=new Uint8Array(e0.from(e,"base64")),i=Array.from("TransactionData::").map(e=>e.charCodeAt(0)),s=new Uint8Array(i.length+t.length);s.set(i),s.set(t,i.length);let r=iX(s,{dkLen:32});return eS.A.encode(r)}(t.transactionBytes)];if("near_signTransaction"===s)return[i8(t)];if("near_signTransactions"===s)return t.map(e=>i8(e));if("xrpl_signTransactionFor"===s||"xrpl_signTransaction"===s)return[null==(i=t.tx_json)?void 0:i.hash];if("polkadot_signTransaction"===s)return[function(e){let t=Uint8Array.from(e0.from(e.signature,"hex")),i=function({publicKey:e,signature:t,payload:i}){var s,r;let n=oc(i.method),o=128|parseInt((null==(s=i.version)?void 0:s.toString())||"4"),a=function(e){let t=eS.A.decode(e)[0];return 42===t?0:60===t?2:1}(i.address),l="00"===i.era?new Uint8Array([0]):oc(i.era);if(1!==l.length&&2!==l.length)throw Error("Invalid era length");let c=parseInt(i.nonce,16),h=new Uint8Array([255&c,c>>8&255]),u=new Uint8Array([0,...e,a,...t,...l,...h,...function(e){if(e<BigInt(1)<<BigInt(6))return new Uint8Array([Number(e<<BigInt(2))]);if(e<BigInt(1)<<BigInt(14)){let t=e<<BigInt(2)|BigInt(1);return new Uint8Array([Number(t&BigInt(255)),Number(t>>BigInt(8)&BigInt(255))])}if(e<BigInt(1)<<BigInt(30)){let t=e<<BigInt(2)|BigInt(2);return new Uint8Array([Number(t&BigInt(255)),Number(t>>BigInt(8)&BigInt(255)),Number(t>>BigInt(16)&BigInt(255)),Number(t>>BigInt(24)&BigInt(255))])}throw Error("BigInt compact encoding not supported > 2^30")}(BigInt(`0x${(r=i.tip).startsWith("0x")?r.slice(2):r}`)),...n]);return new Uint8Array([...function(e){if(e<64)return new Uint8Array([e<<2]);if(e<16384){let t=e<<2|1;return new Uint8Array([255&t,t>>8&255])}if(e<0x40000000){let t=e<<2|2;return new Uint8Array([255&t,t>>8&255,t>>16&255,t>>24&255])}throw Error("Compact encoding > 2^30 not supported")}(u.length+1),o,...u])}({publicKey:function(e){let t=eS.A.decode(e);if(t.length<33)throw Error("Too short to contain a public key");return t.slice(1,33)}(e.transaction.address),signature:t,payload:e.transaction});var s=e0.from(i).toString("hex");let r=oc(s),n=(0,eQ.blake2b)(r,void 0,32);return"0x"+e0.from(n).toString("hex")}({transaction:e.params.transactionPayload,signature:t.signature})];if("algo_signTxn"===s)return n1(t)?t.map(e=>i6(e)):[i6(t)];
10if("cosmos_signDirect"===s)return[function(e){let t=e0.from(e.signed.bodyBytes,"base64"),i=e0.from(e.signed.authInfoBytes,"base64"),s=e0.from(e.signature.signature,"base64"),r=[];r.push(e0.from([10])),r.push(i3(t.length)),r.push(t),r.push(e0.from([18])),r.push(i3(i.length)),r.push(i),r.push(e0.from([26])),r.push(i3(s.length)),r.push(s);let n=iz(e0.concat(r));return e0.from(n).toString("hex").toUpperCase()}(t)];if("wallet_sendCalls"===s)return function(e){var t,i;let s=[];try{if("string"==typeof e)return s.push(e),s;if("object"!=typeof e)return s;null!=e&&e.id&&s.push(e.id);let r=null==(i=null==(t=e?.capabilities)?void 0:t.caip345)?void 0:i.transactionHashes;r&&s.push(...r)}catch(e){console.warn("getWalletSendCallsHashes failed: ",e)}return s}(t);if("string"==typeof t)return[t];let n=t[r.key];if(n1(n))return"solana_signAllTransactions"===s?n.map(e=>(function(e){let t=atob(e),i=new Uint8Array(t.length);for(let e=0;e<t.length;e++)i[e]=t.charCodeAt(e);let s=i[0];if(0===s)throw Error("No signatures found");if(i.length<1+64*s)throw Error("Transaction data too short for claimed signature count");if(i.length<100)throw Error("Transaction too short");let r=e0.from(e,"base64").slice(1,65);return eS.A.encode(r)})(e)):n;if("string"==typeof n)return[n]}catch(e){this.client.logger.warn(e,"Error extracting tx hashes from result")}return[]})}async processPendingMessageEvents(){try{let e=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(e);for(let[e,i]of Object.entries(t))for(let t of i)try{await this.onProviderMessageEvent({topic:e,message:t,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${e}, message: ${t}`)}}catch(e){this.client.logger.warn(e,"processPendingMessageEvents failed")}}isInitialized(){if(!this.initialized){let{message:e}=nX("NOT_INITIALIZED",this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(o_.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){let{topic:t,message:i,attestation:s,transportType:r}=e,{publicKey:n}=this.client.auth.authKeys.keys.includes(co)?this.client.auth.authKeys.get(co):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,i,{receiverPublicKey:n,encoding:r===oP.link_mode?nu:nh});(0,od.isJsonRpcRequest)(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:s,transportType:r,encryptedId:ng(i)})):(0,od.isJsonRpcResponse)(e)?(await this.client.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e,transportType:r}),this.client.core.history.delete(t,e.id)):(this.client.logger.error(`onRelayMessage() -> unknown payload: ${JSON.stringify(e)}`),await this.onRelayEventUnknownPayload({topic:t,payload:e,transportType:r})),await this.client.core.relayer.messages.ack(t,i)}catch(e){this.client.logger.error(`onRelayMessage() -> failed to process an inbound message: ${i}`),this.client.logger.error(e)}}registerExpirerEvents(){this.client.core.expirer.on(oB.expired,async e=>{let{topic:t,id:i}=ty(e.target);return i&&this.client.pendingRequest.keys.includes(i)?await this.deletePendingSessionRequest(i,nX("EXPIRED"),!0):i&&this.client.auth.requests.keys.includes(i)?await this.deletePendingAuthRequest(i,nX("EXPIRED"),!0):void(t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:t})):i&&(await this.deleteProposal(i,!0),this.client.events.emit("proposal_expire",{id:i})))})}registerPairingEvents(){this.client.core.pairing.events.on(oU.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(oU.delete,e=>{this.addToRecentlyDeleted(e.topic,"pairing")})}isValidPairingTopic(e){if(!n6(e,!1)){let{message:t}=nX("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){let{message:t}=nX("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw Error(t)}if(tb(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=nX("EXPIRED",`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!n6(e,!1)){let{message:t}=nX("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){let{message:t}=nX("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw Error(t)}if(tb(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=nX("EXPIRED",`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=nX("MISSING_OR_INVALID",`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(n6(e,!1)){let{message:t}=nX("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=nX("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if("number"!=typeof e){let{message:t}=nX("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=nX("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw Error(t)}if(tb(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=nX("EXPIRED",`proposal id: ${e}`);throw Error(t)}}
10validateRequestExpiry(e){if(e&&(!n3(e,!1)||!(e<=ct.max)||!(e>=ct.min))){let{message:t}=nX("MISSING_OR_INVALID",`request() expiry: ${e}. Expiry must be a number (in seconds) between ${ct.min} and ${ct.max}`);throw Error(t)}}}class cb extends lO{constructor(e,t){super(e,t,"proposal",l3),this.core=e,this.logger=t}}class cw extends lO{constructor(e,t){super(e,t,"session",l3),this.core=e,this.logger=t}}class cv extends lO{constructor(e,t){super(e,t,"request",l3,e=>e.id),this.core=e,this.logger=t}}class cE extends lO{constructor(e,t){super(e,t,"authKeys",cn,()=>co),this.core=e,this.logger=t}}class cx extends lO{constructor(e,t){super(e,t,"pairingTopics",cn),this.core=e,this.logger=t}}class cI extends lO{constructor(e,t){super(e,t,"requests",cn,e=>e.id),this.core=e,this.logger=t}}var c_=Object.defineProperty,cS=(e,t,i)=>((e,t,i)=>t in e?c_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class cO{constructor(e,t){this.core=e,this.logger=t,cS(this,"authKeys"),cS(this,"pairingTopics"),cS(this,"requests"),this.authKeys=new cE(this.core,this.logger),this.pairingTopics=new cx(this.core,this.logger),this.requests=new cI(this.core,this.logger)}
10async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}var cP=Object.defineProperty,cR=(e,t,i)=>((e,t,i)=>t in e?cP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);class cT extends eg{constructor(e){super(e),cR(this,"protocol","wc"),cR(this,"version",2),cR(this,"name",l5.name),cR(this,"metadata"),cR(this,"core"),cR(this,"logger"),cR(this,"events",new s.EventEmitter),cR(this,"engine"),cR(this,"session"),cR(this,"proposal"),cR(this,"pendingRequest"),cR(this,"auth"),cR(this,"signConfig"),cR(this,"on",(e,t)=>this.events.on(e,t)),cR(this,"once",(e,t)=>this.events.once(e,t)),cR(this,"off",(e,t)=>this.events.off(e,t)),cR(this,"removeListener",(e,t)=>this.events.removeListener(e,t)),cR(this,"removeAllListeners",e=>this.events.removeAllListeners(e)),cR(this,"connect",async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"pair",async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"approve",async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"reject",async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"update",async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"extend",async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"request",async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"respond",async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"ping",async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"emit",async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"disconnect",async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"find",e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"getPendingSessionRequests",()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}}),cR(this,"authenticate",async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"formatAuthMessage",e=>{try{return this.engine.formatAuthMessage(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"approveSessionAuthenticate",async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),cR(this,"rejectSessionAuthenticate",async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),this.name=e?.name||l5.name,this.metadata=function(e){var t,i;let s=tl();try{let r,n;return null!=e&&e.url&&s.url&&new URL(e.url).host!==new URL(s.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${e.url} differs from the actual page url:${s.url}. This is probably unintended and can lead to issues.`),e.url=s.url),null!=(t=e?.icons)&&t.length&&e.icons.length>0&&(e.icons=e.icons.filter(e=>""!==e)),r=te(te({},s),e),n={url:e?.url||s.url,name:e?.name||s.name,description:e?.description||s.description,icons:null!=(i=e?.icons)&&i.length&&e.icons.length>0?e.icons:s.icons},e6(r,e3(n))}catch(t){return console.warn("Error populating app metadata",t),e||s}}(e?.metadata),this.signConfig=e?.signConfig;let t=oh({logger:e?.logger||l5.logger,name:this.name});this.logger=t,this.core=e?.core||new l8(e),this.session=new cw(this.core,this.logger),this.proposal=new cb(this.core,this.logger),this.pendingRequest=new cv(this.core,this.logger),this.engine=new cm(this),this.auth=new cO(this.core,this.logger)}static async init(e){let t=new cT(e);return await t.initialize(),t}get context(){return J(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success")}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}let cA=cT}}]);

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.