@walletconnect/ethereum-provider 2.5.2-1edcbbbc → 2.5.2-77e444fc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +5 -5
package/dist/index.umd.js
CHANGED
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
70
70
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
71
71
|
PERFORMANCE OF THIS SOFTWARE.
|
|
72
|
-
***************************************************************************** */var oa=function(t,e){return oa=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},oa(t,e)};function Vm(t,e){oa(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var aa=function(){return aa=Object.assign||function(e){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},aa.apply(this,arguments)};function Km(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]]);return r}function Gm(t,e,r,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,r,s):o(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s}function Zm(t,e){return function(r,n){e(r,n,t)}}function Ym(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function Jm(t,e,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(p){try{l(n.next(p))}catch(m){o(m)}}function c(p){try{l(n.throw(p))}catch(m){o(m)}}function l(p){p.done?s(p.value):i(p.value).then(a,c)}l((n=n.apply(t,e||[])).next())})}function Xm(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(p){return c([l,p])}}function c(l){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=l[0]&2?i.return:l[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,l[1])).done)return s;switch(i=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return r.label++,{value:l[1],done:!1};case 5:r.label++,i=l[1],l=[0];continue;case 7:l=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){r=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){r.label=l[1];break}if(l[0]===6&&r.label<s[1]){r.label=s[1],s=l;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(l);break}s[2]&&r.ops.pop(),r.trys.pop();continue}l=e.call(t,r)}catch(p){l=[6,p],i=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Qm(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}function ew(t,e){for(var r in t)r!=="default"&&!e.hasOwnProperty(r)&&(e[r]=t[r])}function ca(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function su(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s}function tw(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(su(arguments[e]));return t}function rw(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;for(var n=Array(t),i=0,e=0;e<r;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)n[i]=s[o];return n}function fi(t){return this instanceof fi?(this.v=t,this):new fi(t)}function nw(t,e,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(t,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(w){n[w]&&(i[w]=function(y){return new Promise(function(E,T){s.push([w,y,E,T])>1||a(w,y)})})}function a(w,y){try{c(n[w](y))}catch(E){m(s[0][3],E)}}function c(w){w.value instanceof fi?Promise.resolve(w.value.v).then(l,p):m(s[0][2],w)}function l(w){a("next",w)}function p(w){a("throw",w)}function m(w,y){w(y),s.shift(),s.length&&a(s[0][0],s[0][1])}}function iw(t){var e,r;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,s){e[i]=t[i]?function(o){return(r=!r)?{value:fi(t[i](o)),done:i==="return"}:s?s(o):o}:s}}function sw(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],r;return e?e.call(t):(t=typeof ca=="function"?ca(t):t[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(s){r[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value)})}}function i(s,o,a,c){Promise.resolve(c).then(function(l){s({value:l,done:a})},o)}}function ow(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function aw(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function cw(t){return t&&t.__esModule?t:{default:t}}function lw(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function hw(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r}var uw=Object.freeze({__proto__:null,__extends:Vm,get __assign(){return aa},__rest:Km,__decorate:Gm,__param:Zm,__metadata:Ym,__awaiter:Jm,__generator:Xm,__createBinding:Qm,__exportStar:ew,__values:ca,__read:su,__spread:tw,__spreadArrays:rw,__await:fi,__asyncGenerator:nw,__asyncDelegator:iw,__asyncValues:sw,__makeTemplateObject:ow,__importStar:aw,__importDefault:cw,__classPrivateFieldGet:lw,__classPrivateFieldSet:hw}),dw=Tr(uw),dr={},ou;function fw(){if(ou)return dr;ou=1,Object.defineProperty(dr,"__esModule",{value:!0}),dr.isBrowserCryptoAvailable=dr.getSubtleCrypto=dr.getBrowerCrypto=void 0;function t(){return dt?.crypto||dt?.msCrypto||{}}dr.getBrowerCrypto=t;function e(){const n=t();return n.subtle||n.webkitSubtle}dr.getSubtleCrypto=e;function r(){return!!t()&&!!e()}return dr.isBrowserCryptoAvailable=r,dr}var fr={},au;function pw(){if(au)return fr;au=1,Object.defineProperty(fr,"__esModule",{value:!0}),fr.isBrowser=fr.isNode=fr.isReactNative=void 0;function t(){return typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"}fr.isReactNative=t;function e(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}fr.isNode=e;function r(){return!t()&&!e()}return fr.isBrowser=r,fr}(function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=dw;e.__exportStar(fw(),t),e.__exportStar(pw(),t)})(iu);function gw(){const t=Date.now()*Math.pow(10,3),e=Math.floor(Math.random()*Math.pow(10,3));return t+e}function ps(t,e,r){return{id:r||gw(),jsonrpc:"2.0",method:t,params:e}}function la(t,e){return{id:t,jsonrpc:"2.0",result:e}}function gs(t,e,r){return{id:t,jsonrpc:"2.0",error:mw(e,r)}}function mw(t,e){return typeof t>"u"?ru(eu):(typeof t=="string"&&(t=Object.assign(Object.assign({},ru(sa)),{message:t})),typeof e<"u"&&(t.data=e),Wm(t.code)&&(t=qm(t.code)),t)}class ww{}class yw extends ww{constructor(){super()}}class vw extends yw{constructor(e){super()}}const bw="^https?:",_w="^wss?:";function Ew(t){const e=t.match(new RegExp(/^\w+:/,"gi"));if(!(!e||!e.length))return e[0]}function cu(t,e){const r=Ew(t);return typeof r>"u"?!1:new RegExp(e).test(r)}function lu(t){return cu(t,bw)}function hu(t){return cu(t,_w)}function xw(t){return new RegExp("wss?://localhost(:d{2,5})?").test(t)}function uu(t){return typeof t=="object"&&"id"in t&&"jsonrpc"in t&&t.jsonrpc==="2.0"}function ha(t){return uu(t)&&"method"in t}function ua(t){return uu(t)&&(pr(t)||Qt(t))}function pr(t){return"result"in t}function Qt(t){return"error"in t}class Hr extends vw{constructor(e){super(e),this.events=new xt.exports.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}off(e,r){this.events.off(e,r)}removeListener(e,r){this.events.removeListener(e,r)}async request(e,r){return this.requestStrict(ps(e.method,e.params||[]),r)}async requestStrict(e,r){return new Promise(async(n,i)=>{if(!this.connection.connected)try{await this.open()}catch(s){i(s)}this.events.on(`${e.id}`,s=>{Qt(s)?i(s.error):n(s.result)});try{await this.connection.send(e,r)}catch(s){i(s)}})}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),ua(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&e.code===3e3&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),typeof e=="string"&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",e=>this.onPayload(e)),this.connection.on("close",e=>this.onClose(e)),this.connection.on("error",e=>this.events.emit("error",e)),this.connection.on("register_error",e=>this.onClose()),this.hasRegisteredEventListeners=!0)}}const du=10,Cw=()=>typeof global<"u"&&typeof global.WebSocket<"u"?global.WebSocket:typeof window<"u"&&typeof window.WebSocket<"u"?window.WebSocket:require("ws"),Iw=()=>typeof window<"u",Sw=Cw();class Dw{constructor(e){if(this.url=e,this.events=new xt.exports.EventEmitter,this.registering=!1,!hu(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<"u"}get connecting(){return this.registering}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}off(e,r){this.events.off(e,r)}removeListener(e,r){this.events.removeListener(e,r)}async open(e=this.url){await this.register(e)}async close(){return new Promise((e,r)=>{if(typeof this.socket>"u"){r(new Error("Connection already closed"));return}this.socket.onclose=n=>{this.onClose(n),e()},this.socket.close()})}async send(e,r){typeof this.socket>"u"&&(this.socket=await this.register());try{this.socket.send(ui(e))}catch(n){this.onError(e.id,n)}}register(e=this.url){if(!hu(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const r=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=r||this.events.listenerCount("open")>=r)&&this.events.setMaxListeners(r+1),new Promise((n,i)=>{this.events.once("register_error",s=>{this.resetMaxListeners(),i(s)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.socket>"u")return i(new Error("WebSocket connection is missing or invalid"));n(this.socket)})})}return this.url=e,this.registering=!0,new Promise((r,n)=>{const i=iu.isReactNative()?void 0:{rejectUnauthorized:!xw(e)},s=new Sw(e,[],i);Iw()?s.onerror=o=>{const a=o;n(this.emitError(a.error))}:s.on("error",o=>{n(this.emitError(o))}),s.onopen=()=>{this.onOpen(s),r(s)}})}onOpen(e){e.onmessage=r=>this.onPayload(r),e.onclose=r=>this.onClose(r),this.socket=e,this.registering=!1,this.events.emit("open")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit("close",e)}onPayload(e){if(typeof e.data>"u")return;const r=typeof e.data=="string"?na(e.data):e.data;this.events.emit("payload",r)}onError(e,r){const n=this.parseError(r),i=n.message||n.toString(),s=gs(e,i);this.events.emit("payload",s)}parseError(e,r=this.url){return nu(e,r,"WS")}resetMaxListeners(){this.events.getMaxListeners()>du&&this.events.setMaxListeners(du)}emitError(e){const r=this.parseError(new Error(e?.message||`WebSocket connection failed for URL: ${this.url}`));return this.events.emit("register_error",r),r}}var da={exports:{}};(function(t,e){var r=200,n="__lodash_hash_undefined__",i=1,s=2,o=9007199254740991,a="[object Arguments]",c="[object Array]",l="[object AsyncFunction]",p="[object Boolean]",m="[object Date]",w="[object Error]",y="[object Function]",E="[object GeneratorFunction]",T="[object Map]",N="[object Number]",L="[object Null]",C="[object Object]",D="[object Promise]",v="[object Proxy]",S="[object RegExp]",O="[object Set]",u="[object String]",_="[object Symbol]",H="[object Undefined]",B="[object WeakMap]",q="[object ArrayBuffer]",X="[object DataView]",te="[object Float32Array]",x="[object Float64Array]",$="[object Int8Array]",K="[object Int16Array]",Y="[object Int32Array]",W="[object Uint8Array]",z="[object Uint8ClampedArray]",J="[object Uint16Array]",G="[object Uint32Array]",ce=/[\\^$.*+?()[\]{}|]/g,Q=/^\[object .+?Constructor\]$/,pe=/^(?:0|[1-9]\d*)$/,oe={};oe[te]=oe[x]=oe[$]=oe[K]=oe[Y]=oe[W]=oe[z]=oe[J]=oe[G]=!0,oe[a]=oe[c]=oe[q]=oe[p]=oe[X]=oe[m]=oe[w]=oe[y]=oe[T]=oe[N]=oe[C]=oe[S]=oe[O]=oe[u]=oe[B]=!1;var Ce=typeof dt=="object"&&dt&&dt.Object===Object&&dt,F=typeof self=="object"&&self&&self.Object===Object&&self,j=Ce||F||Function("return this")(),R=e&&!e.nodeType&&e,f=R&&!0&&t&&!t.nodeType&&t,A=f&&f.exports===R,ee=A&&Ce.process,ne=function(){try{return ee&&ee.binding&&ee.binding("util")}catch{}}(),Ee=ne&&ne.isTypedArray;function Le(I,M){for(var Z=-1,ae=I==null?0:I.length,We=0,Se=[];++Z<ae;){var Qe=I[Z];M(Qe,Z,I)&&(Se[We++]=Qe)}return Se}function Pe(I,M){for(var Z=-1,ae=M.length,We=I.length;++Z<ae;)I[We+Z]=M[Z];return I}function Ue(I,M){for(var Z=-1,ae=I==null?0:I.length;++Z<ae;)if(M(I[Z],Z,I))return!0;return!1}function Ge(I,M){for(var Z=-1,ae=Array(I);++Z<I;)ae[Z]=M(Z);return ae}function Ve(I){return function(M){return I(M)}}function Te(I,M){return I.has(M)}function Oe(I,M){return I?.[M]}function me(I){var M=-1,Z=Array(I.size);return I.forEach(function(ae,We){Z[++M]=[We,ae]}),Z}function Ie(I,M){return function(Z){return I(M(Z))}}function $e(I){var M=-1,Z=Array(I.size);return I.forEach(function(ae){Z[++M]=ae}),Z}var ge=Array.prototype,xe=Function.prototype,g=Object.prototype,h=j["__core-js_shared__"],d=xe.toString,b=g.hasOwnProperty,P=function(){var I=/[^.]+$/.exec(h&&h.keys&&h.keys.IE_PROTO||"");return I?"Symbol(src)_1."+I:""}(),U=g.toString,k=RegExp("^"+d.call(b).replace(ce,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),se=A?j.Buffer:void 0,he=j.Symbol,Re=j.Uint8Array,je=g.propertyIsEnumerable,Me=ge.splice,Wt=he?he.toStringTag:void 0,an=Object.getOwnPropertySymbols,Wi=se?se.isBuffer:void 0,so=Ie(Object.keys,Object),rt=zn(j,"DataView"),Je=zn(j,"Map"),nt=zn(j,"Promise"),it=zn(j,"Set"),st=zn(j,"WeakMap"),Xe=zn(Object,"create"),gt=ln(rt),mt=ln(Je),wt=ln(nt),yt=ln(it),vt=ln(st),ut=he?he.prototype:void 0,ot=ut?ut.valueOf:void 0;function Ke(I){var M=-1,Z=I==null?0:I.length;for(this.clear();++M<Z;){var ae=I[M];this.set(ae[0],ae[1])}}function bt(){this.__data__=Xe?Xe(null):{},this.size=0}function _t(I){var M=this.has(I)&&delete this.__data__[I];return this.size-=M?1:0,M}function PE(I){var M=this.__data__;if(Xe){var Z=M[I];return Z===n?void 0:Z}return b.call(M,I)?M[I]:void 0}function TE(I){var M=this.__data__;return Xe?M[I]!==void 0:b.call(M,I)}function NE(I,M){var Z=this.__data__;return this.size+=this.has(I)?0:1,Z[I]=Xe&&M===void 0?n:M,this}Ke.prototype.clear=bt,Ke.prototype.delete=_t,Ke.prototype.get=PE,Ke.prototype.has=TE,Ke.prototype.set=NE;function wr(I){var M=-1,Z=I==null?0:I.length;for(this.clear();++M<Z;){var ae=I[M];this.set(ae[0],ae[1])}}function RE(){this.__data__=[],this.size=0}function ME(I){var M=this.__data__,Z=ao(M,I);if(Z<0)return!1;var ae=M.length-1;return Z==ae?M.pop():Me.call(M,Z,1),--this.size,!0}function LE(I){var M=this.__data__,Z=ao(M,I);return Z<0?void 0:M[Z][1]}function UE(I){return ao(this.__data__,I)>-1}function jE(I,M){var Z=this.__data__,ae=ao(Z,I);return ae<0?(++this.size,Z.push([I,M])):Z[ae][1]=M,this}wr.prototype.clear=RE,wr.prototype.delete=ME,wr.prototype.get=LE,wr.prototype.has=UE,wr.prototype.set=jE;function cn(I){var M=-1,Z=I==null?0:I.length;for(this.clear();++M<Z;){var ae=I[M];this.set(ae[0],ae[1])}}function FE(){this.size=0,this.__data__={hash:new Ke,map:new(Je||wr),string:new Ke}}function BE(I){var M=co(this,I).delete(I);return this.size-=M?1:0,M}function kE(I){return co(this,I).get(I)}function HE(I){return co(this,I).has(I)}function zE(I,M){var Z=co(this,I),ae=Z.size;return Z.set(I,M),this.size+=Z.size==ae?0:1,this}cn.prototype.clear=FE,cn.prototype.delete=BE,cn.prototype.get=kE,cn.prototype.has=HE,cn.prototype.set=zE;function oo(I){var M=-1,Z=I==null?0:I.length;for(this.__data__=new cn;++M<Z;)this.add(I[M])}function WE(I){return this.__data__.set(I,n),this}function qE(I){return this.__data__.has(I)}oo.prototype.add=oo.prototype.push=WE,oo.prototype.has=qE;function $r(I){var M=this.__data__=new wr(I);this.size=M.size}function VE(){this.__data__=new wr,this.size=0}function KE(I){var M=this.__data__,Z=M.delete(I);return this.size=M.size,Z}function GE(I){return this.__data__.get(I)}function ZE(I){return this.__data__.has(I)}function YE(I,M){var Z=this.__data__;if(Z instanceof wr){var ae=Z.__data__;if(!Je||ae.length<r-1)return ae.push([I,M]),this.size=++Z.size,this;Z=this.__data__=new cn(ae)}return Z.set(I,M),this.size=Z.size,this}$r.prototype.clear=VE,$r.prototype.delete=KE,$r.prototype.get=GE,$r.prototype.has=ZE,$r.prototype.set=YE;function JE(I,M){var Z=lo(I),ae=!Z&&d7(I),We=!Z&&!ae&&Vc(I),Se=!Z&&!ae&&!We&&ef(I),Qe=Z||ae||We||Se,Et=Qe?Ge(I.length,String):[],St=Et.length;for(var Ze in I)(M||b.call(I,Ze))&&!(Qe&&(Ze=="length"||We&&(Ze=="offset"||Ze=="parent")||Se&&(Ze=="buffer"||Ze=="byteLength"||Ze=="byteOffset")||a7(Ze,St)))&&Et.push(Ze);return Et}function ao(I,M){for(var Z=I.length;Z--;)if(Yd(I[Z][0],M))return Z;return-1}function XE(I,M,Z){var ae=M(I);return lo(I)?ae:Pe(ae,Z(I))}function qi(I){return I==null?I===void 0?H:L:Wt&&Wt in Object(I)?s7(I):u7(I)}function Vd(I){return Vi(I)&&qi(I)==a}function Kd(I,M,Z,ae,We){return I===M?!0:I==null||M==null||!Vi(I)&&!Vi(M)?I!==I&&M!==M:QE(I,M,Z,ae,Kd,We)}function QE(I,M,Z,ae,We,Se){var Qe=lo(I),Et=lo(M),St=Qe?c:Ar(I),Ze=Et?c:Ar(M);St=St==a?C:St,Ze=Ze==a?C:Ze;var qt=St==C,er=Ze==C,$t=St==Ze;if($t&&Vc(I)){if(!Vc(M))return!1;Qe=!0,qt=!1}if($t&&!qt)return Se||(Se=new $r),Qe||ef(I)?Gd(I,M,Z,ae,We,Se):n7(I,M,St,Z,ae,We,Se);if(!(Z&i)){var Yt=qt&&b.call(I,"__wrapped__"),Jt=er&&b.call(M,"__wrapped__");if(Yt||Jt){var Pr=Yt?I.value():I,yr=Jt?M.value():M;return Se||(Se=new $r),We(Pr,yr,Z,ae,Se)}}return $t?(Se||(Se=new $r),i7(I,M,Z,ae,We,Se)):!1}function e7(I){if(!Qd(I)||l7(I))return!1;var M=Jd(I)?k:Q;return M.test(ln(I))}function t7(I){return Vi(I)&&Xd(I.length)&&!!oe[qi(I)]}function r7(I){if(!h7(I))return so(I);var M=[];for(var Z in Object(I))b.call(I,Z)&&Z!="constructor"&&M.push(Z);return M}function Gd(I,M,Z,ae,We,Se){var Qe=Z&i,Et=I.length,St=M.length;if(Et!=St&&!(Qe&&St>Et))return!1;var Ze=Se.get(I);if(Ze&&Se.get(M))return Ze==M;var qt=-1,er=!0,$t=Z&s?new oo:void 0;for(Se.set(I,M),Se.set(M,I);++qt<Et;){var Yt=I[qt],Jt=M[qt];if(ae)var Pr=Qe?ae(Jt,Yt,qt,M,I,Se):ae(Yt,Jt,qt,I,M,Se);if(Pr!==void 0){if(Pr)continue;er=!1;break}if($t){if(!Ue(M,function(yr,hn){if(!Te($t,hn)&&(Yt===yr||We(Yt,yr,Z,ae,Se)))return $t.push(hn)})){er=!1;break}}else if(!(Yt===Jt||We(Yt,Jt,Z,ae,Se))){er=!1;break}}return Se.delete(I),Se.delete(M),er}function n7(I,M,Z,ae,We,Se,Qe){switch(Z){case X:if(I.byteLength!=M.byteLength||I.byteOffset!=M.byteOffset)return!1;I=I.buffer,M=M.buffer;case q:return!(I.byteLength!=M.byteLength||!Se(new Re(I),new Re(M)));case p:case m:case N:return Yd(+I,+M);case w:return I.name==M.name&&I.message==M.message;case S:case u:return I==M+"";case T:var Et=me;case O:var St=ae&i;if(Et||(Et=$e),I.size!=M.size&&!St)return!1;var Ze=Qe.get(I);if(Ze)return Ze==M;ae|=s,Qe.set(I,M);var qt=Gd(Et(I),Et(M),ae,We,Se,Qe);return Qe.delete(I),qt;case _:if(ot)return ot.call(I)==ot.call(M)}return!1}function i7(I,M,Z,ae,We,Se){var Qe=Z&i,Et=Zd(I),St=Et.length,Ze=Zd(M),qt=Ze.length;if(St!=qt&&!Qe)return!1;for(var er=St;er--;){var $t=Et[er];if(!(Qe?$t in M:b.call(M,$t)))return!1}var Yt=Se.get(I);if(Yt&&Se.get(M))return Yt==M;var Jt=!0;Se.set(I,M),Se.set(M,I);for(var Pr=Qe;++er<St;){$t=Et[er];var yr=I[$t],hn=M[$t];if(ae)var tf=Qe?ae(hn,yr,$t,M,I,Se):ae(yr,hn,$t,I,M,Se);if(!(tf===void 0?yr===hn||We(yr,hn,Z,ae,Se):tf)){Jt=!1;break}Pr||(Pr=$t=="constructor")}if(Jt&&!Pr){var ho=I.constructor,uo=M.constructor;ho!=uo&&"constructor"in I&&"constructor"in M&&!(typeof ho=="function"&&ho instanceof ho&&typeof uo=="function"&&uo instanceof uo)&&(Jt=!1)}return Se.delete(I),Se.delete(M),Jt}function Zd(I){return XE(I,g7,o7)}function co(I,M){var Z=I.__data__;return c7(M)?Z[typeof M=="string"?"string":"hash"]:Z.map}function zn(I,M){var Z=Oe(I,M);return e7(Z)?Z:void 0}function s7(I){var M=b.call(I,Wt),Z=I[Wt];try{I[Wt]=void 0;var ae=!0}catch{}var We=U.call(I);return ae&&(M?I[Wt]=Z:delete I[Wt]),We}var o7=an?function(I){return I==null?[]:(I=Object(I),Le(an(I),function(M){return je.call(I,M)}))}:m7,Ar=qi;(rt&&Ar(new rt(new ArrayBuffer(1)))!=X||Je&&Ar(new Je)!=T||nt&&Ar(nt.resolve())!=D||it&&Ar(new it)!=O||st&&Ar(new st)!=B)&&(Ar=function(I){var M=qi(I),Z=M==C?I.constructor:void 0,ae=Z?ln(Z):"";if(ae)switch(ae){case gt:return X;case mt:return T;case wt:return D;case yt:return O;case vt:return B}return M});function a7(I,M){return M=M??o,!!M&&(typeof I=="number"||pe.test(I))&&I>-1&&I%1==0&&I<M}function c7(I){var M=typeof I;return M=="string"||M=="number"||M=="symbol"||M=="boolean"?I!=="__proto__":I===null}function l7(I){return!!P&&P in I}function h7(I){var M=I&&I.constructor,Z=typeof M=="function"&&M.prototype||g;return I===Z}function u7(I){return U.call(I)}function ln(I){if(I!=null){try{return d.call(I)}catch{}try{return I+""}catch{}}return""}function Yd(I,M){return I===M||I!==I&&M!==M}var d7=Vd(function(){return arguments}())?Vd:function(I){return Vi(I)&&b.call(I,"callee")&&!je.call(I,"callee")},lo=Array.isArray;function f7(I){return I!=null&&Xd(I.length)&&!Jd(I)}var Vc=Wi||w7;function p7(I,M){return Kd(I,M)}function Jd(I){if(!Qd(I))return!1;var M=qi(I);return M==y||M==E||M==l||M==v}function Xd(I){return typeof I=="number"&&I>-1&&I%1==0&&I<=o}function Qd(I){var M=typeof I;return I!=null&&(M=="object"||M=="function")}function Vi(I){return I!=null&&typeof I=="object"}var ef=Ee?Ve(Ee):t7;function g7(I){return f7(I)?JE(I):r7(I)}function m7(){return[]}function w7(){return!1}t.exports=p7})(da,da.exports);var Ow=da.exports,$w=Object.defineProperty,fu=Object.getOwnPropertySymbols,Aw=Object.prototype.hasOwnProperty,Pw=Object.prototype.propertyIsEnumerable,pu=(t,e,r)=>e in t?$w(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Rt=(t,e)=>{for(var r in e||(e={}))Aw.call(e,r)&&pu(t,r,e[r]);if(fu)for(var r of fu(e))Pw.call(e,r)&&pu(t,r,e[r]);return t};function Tw(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),l=Math.log(a)/Math.log(256),p=Math.log(256)/Math.log(a);function m(E){if(E instanceof Uint8Array||(ArrayBuffer.isView(E)?E=new Uint8Array(E.buffer,E.byteOffset,E.byteLength):Array.isArray(E)&&(E=Uint8Array.from(E))),!(E instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(E.length===0)return"";for(var T=0,N=0,L=0,C=E.length;L!==C&&E[L]===0;)L++,T++;for(var D=(C-L)*p+1>>>0,v=new Uint8Array(D);L!==C;){for(var S=E[L],O=0,u=D-1;(S!==0||O<N)&&u!==-1;u--,O++)S+=256*v[u]>>>0,v[u]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");N=O,L++}for(var _=D-N;_!==D&&v[_]===0;)_++;for(var H=c.repeat(T);_<D;++_)H+=t.charAt(v[_]);return H}function w(E){if(typeof E!="string")throw new TypeError("Expected String");if(E.length===0)return new Uint8Array;var T=0;if(E[T]!==" "){for(var N=0,L=0;E[T]===c;)N++,T++;for(var C=(E.length-T)*l+1>>>0,D=new Uint8Array(C);E[T];){var v=r[E.charCodeAt(T)];if(v===255)return;for(var S=0,O=C-1;(v!==0||S<L)&&O!==-1;O--,S++)v+=a*D[O]>>>0,D[O]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");L=S,T++}if(E[T]!==" "){for(var u=C-L;u!==C&&D[u]===0;)u++;for(var _=new Uint8Array(N+(C-u)),H=N;u!==C;)_[H++]=D[u++];return _}}}function y(E){var T=w(E);if(T)return T;throw new Error(`Non-${e} character`)}return{encode:m,decodeUnsafe:w,decode:y}}var Nw=Tw,Rw=Nw;const gu=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")},Mw=t=>new TextEncoder().encode(t),Lw=t=>new TextDecoder().decode(t);class Uw{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class jw{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return mu(this,e)}}class Fw{constructor(e){this.decoders=e}or(e){return mu(this,e)}decode(e){const r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const mu=(t,e)=>new Fw(Rt(Rt({},t.decoders||{[t.prefix]:t}),e.decoders||{[e.prefix]:e}));class Bw{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Uw(e,r,n),this.decoder=new jw(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ms=({name:t,prefix:e,encode:r,decode:n})=>new Bw(t,e,r,n),pi=({prefix:t,name:e,alphabet:r})=>{const{encode:n,decode:i}=Rw(r,e);return ms({prefix:t,name:e,encode:n,decode:s=>gu(i(s))})},kw=(t,e,r,n)=>{const i={};for(let p=0;p<e.length;++p)i[e[p]]=p;let s=t.length;for(;t[s-1]==="=";)--s;const o=new Uint8Array(s*r/8|0);let a=0,c=0,l=0;for(let p=0;p<s;++p){const m=i[t[p]];if(m===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|m,a+=r,a>=8&&(a-=8,o[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},Hw=(t,e,r)=>{const n=e[e.length-1]==="=",i=(1<<r)-1;let s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},It=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>ms({prefix:e,name:t,encode(i){return Hw(i,n,r)},decode(i){return kw(i,n,r,t)}}),zw=ms({prefix:"\0",name:"identity",encode:t=>Lw(t),decode:t=>Mw(t)});var Ww=Object.freeze({__proto__:null,identity:zw});const qw=It({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Vw=Object.freeze({__proto__:null,base2:qw});const Kw=It({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Gw=Object.freeze({__proto__:null,base8:Kw});const Zw=pi({prefix:"9",name:"base10",alphabet:"0123456789"});var Yw=Object.freeze({__proto__:null,base10:Zw});const Jw=It({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Xw=It({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Qw=Object.freeze({__proto__:null,base16:Jw,base16upper:Xw});const e5=It({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),t5=It({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),r5=It({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),n5=It({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),i5=It({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),s5=It({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),o5=It({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),a5=It({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),c5=It({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var l5=Object.freeze({__proto__:null,base32:e5,base32upper:t5,base32pad:r5,base32padupper:n5,base32hex:i5,base32hexupper:s5,base32hexpad:o5,base32hexpadupper:a5,base32z:c5});const h5=pi({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),u5=pi({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var d5=Object.freeze({__proto__:null,base36:h5,base36upper:u5});const f5=pi({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),p5=pi({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var g5=Object.freeze({__proto__:null,base58btc:f5,base58flickr:p5});const m5=It({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),w5=It({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),y5=It({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),v5=It({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var b5=Object.freeze({__proto__:null,base64:m5,base64pad:w5,base64url:y5,base64urlpad:v5});const wu=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),_5=wu.reduce((t,e,r)=>(t[r]=e,t),[]),E5=wu.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function x5(t){return t.reduce((e,r)=>(e+=_5[r],e),"")}function C5(t){const e=[];for(const r of t){const n=E5[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}const I5=ms({prefix:"\u{1F680}",name:"base256emoji",encode:x5,decode:C5});var S5=Object.freeze({__proto__:null,base256emoji:I5}),D5=vu,yu=128,O5=127,$5=~O5,A5=Math.pow(2,31);function vu(t,e,r){e=e||[],r=r||0;for(var n=r;t>=A5;)e[r++]=t&255|yu,t/=128;for(;t&$5;)e[r++]=t&255|yu,t>>>=7;return e[r]=t|0,vu.bytes=r-n+1,e}var P5=fa,T5=128,bu=127;function fa(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw fa.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&bu)<<i:(o&bu)*Math.pow(2,i),i+=7}while(o>=T5);return fa.bytes=s-n,r}var N5=Math.pow(2,7),R5=Math.pow(2,14),M5=Math.pow(2,21),L5=Math.pow(2,28),U5=Math.pow(2,35),j5=Math.pow(2,42),F5=Math.pow(2,49),B5=Math.pow(2,56),k5=Math.pow(2,63),H5=function(t){return t<N5?1:t<R5?2:t<M5?3:t<L5?4:t<U5?5:t<j5?6:t<F5?7:t<B5?8:t<k5?9:10},z5={encode:D5,decode:P5,encodingLength:H5},_u=z5;const Eu=(t,e,r=0)=>(_u.encode(t,e,r),e),xu=t=>_u.encodingLength(t),pa=(t,e)=>{const r=e.byteLength,n=xu(t),i=n+xu(r),s=new Uint8Array(i+r);return Eu(t,s,0),Eu(r,s,n),s.set(e,i),new W5(t,r,e,s)};class W5{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}}const Cu=({name:t,code:e,encode:r})=>new q5(t,e,r);class q5{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){const r=this.encode(e);return r instanceof Uint8Array?pa(this.code,r):r.then(n=>pa(this.code,n))}else throw Error("Unknown type, must be binary type")}}const Iu=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),V5=Cu({name:"sha2-256",code:18,encode:Iu("SHA-256")}),K5=Cu({name:"sha2-512",code:19,encode:Iu("SHA-512")});var G5=Object.freeze({__proto__:null,sha256:V5,sha512:K5});const Su=0,Z5="identity",Du=gu;var Y5=Object.freeze({__proto__:null,identity:{code:Su,name:Z5,encode:Du,digest:t=>pa(Su,Du(t))}});new TextEncoder,new TextDecoder;const Ou=Rt(Rt(Rt(Rt(Rt(Rt(Rt(Rt(Rt(Rt({},Ww),Vw),Gw),Yw),Qw),l5),d5),g5),b5),S5);Rt(Rt({},G5),Y5);function J5(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t)}function $u(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}const Au=$u("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),ga=$u("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);const e=J5(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),X5=Rt({utf8:Au,"utf-8":Au,hex:Ou.base16,latin1:ga,ascii:ga,binary:ga},Ou);function Q5(t,e="utf8"){const r=X5[e];if(!r)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t,"utf8"):r.decoder.decode(`${r.prefix}${t}`)}const Pu="wc",ey=2,ma="core",_r=`${Pu}@${2}:${ma}:`,ty={name:ma,logger:"error"},ry={database:":memory:"},ny="crypto",Tu="client_ed25519_seed",iy=fe.ONE_DAY,sy="keychain",oy="0.3",ay="messages",cy="0.3",ly=fe.SIX_HOURS,hy="publisher",Nu="irn",uy="error",Ru="wss://relay.walletconnect.com",dy="relayer",pt={message:"relayer_message",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},fy="_subscription",ws={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},py=fe.ONE_SECOND,gy="2.5.2-1edcbbbc",my="0.3",ir={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},wy="subscription",yy="0.3",vy=fe.FIVE_SECONDS*1e3,by="pairing",_y="0.3",gi={wc_pairingDelete:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:fe.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:fe.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:fe.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:0},res:{ttl:fe.ONE_DAY,prompt:!1,tag:0}}},sr={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},Ey="history",xy="0.3",Cy="expirer",Vt={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},Iy="0.3";class Sy{constructor(e,r){this.core=e,this.logger=r,this.keychain=new Map,this.name=sy,this.version=oy,this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{if(!this.initialized){const n=await this.getKeyChain();typeof n<"u"&&(this.keychain=n),this.initialized=!0}},this.has=n=>(this.isInitialized(),this.keychain.has(n)),this.set=async(n,i)=>{this.isInitialized(),this.keychain.set(n,i),await this.persist()},this.get=n=>{this.isInitialized();const i=this.keychain.get(n);if(typeof i>"u"){const{message:s}=ie("NO_MATCHING_KEY",`${this.name}: ${n}`);throw new Error(s)}return i},this.del=async n=>{this.isInitialized(),this.keychain.delete(n),await this.persist()},this.core=e,this.logger=Be.generateChildLogger(r,this.name)}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,fh(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?ph(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Dy{constructor(e,r,n){this.core=e,this.logger=r,this.name=ny,this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=i=>(this.isInitialized(),this.keychain.has(i)),this.getClientId=async()=>{this.isInitialized();const i=await this.getClientSeed(),s=Qh(i);return Xh(s.publicKey)},this.generateKeyPair=()=>{this.isInitialized();const i=Sg();return this.setPrivateKey(i.publicKey,i.privateKey)},this.signJWT=async i=>{this.isInitialized();const s=await this.getClientSeed(),o=Qh(s),a=Fo();return await jm(a,i,iy,o)},this.generateSharedKey=(i,s,o)=>{this.isInitialized();const a=this.getPrivateKey(i),c=Dg(a,s);return this.setSymKey(c,o)},this.setSymKey=async(i,s)=>{this.isInitialized();const o=s||Og(i);return await this.keychain.set(o,i),o},this.deleteKeyPair=async i=>{this.isInitialized(),await this.keychain.del(i)},this.deleteSymKey=async i=>{this.isInitialized(),await this.keychain.del(i)},this.encode=async(i,s,o)=>{this.isInitialized();const a=ah(o),c=ui(s);if(ch(a)){const w=a.senderPublicKey,y=a.receiverPublicKey;i=await this.generateSharedKey(w,y)}const l=this.getSymKey(i),{type:p,senderPublicKey:m}=a;return Ag({type:p,symKey:l,message:c,senderPublicKey:m})},this.decode=async(i,s,o)=>{this.isInitialized();const a=Ng(s,o);if(ch(a)){const p=a.receiverPublicKey,m=a.senderPublicKey;i=await this.generateSharedKey(p,m)}const c=this.getSymKey(i),l=Pg({symKey:c,encoded:s});return na(l)},this.getPayloadType=i=>{const s=ss(i);return Yn(s.type)},this.getPayloadSenderPublicKey=i=>{const s=ss(i);return s.senderPublicKey?At(s.senderPublicKey,Pt):void 0},this.core=e,this.logger=Be.generateChildLogger(r,this.name),this.keychain=n||new Sy(this.core,this.logger)}get context(){return Be.getLoggerContext(this.logger)}async setPrivateKey(e,r){return await this.keychain.set(e,r),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(Tu)}catch{e=Fo(),await this.keychain.set(Tu,e)}return Q5(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Oy extends wm{constructor(e,r){super(e,r),this.logger=e,this.core=r,this.messages=new Map,this.name=ay,this.version=cy,this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const n=await this.getRelayerMessages();typeof n<"u"&&(this.messages=n),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(n){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(n)}finally{this.initialized=!0}}},this.set=async(n,i)=>{this.isInitialized();const s=is(i);let o=this.messages.get(n);return typeof o>"u"&&(o={}),typeof o[s]<"u"||(o[s]=i,this.logger.trace({type:"method",method:"set",key:n,value:o}),this.messages.set(n,o),await this.persist()),s},this.get=n=>{this.isInitialized();let i=this.messages.get(n);return typeof i>"u"&&(i={}),i},this.has=(n,i)=>{this.isInitialized();const s=this.get(n),o=is(i);return typeof s[o]<"u"},this.del=async n=>{this.isInitialized(),this.messages.delete(n),await this.persist()},this.logger=Be.generateChildLogger(e,this.name),this.core=r}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,fh(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?ph(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class $y extends ym{constructor(e,r){super(e,r),this.relayer=e,this.logger=r,this.events=new xt.exports.EventEmitter,this.name=hy,this.queue=new Map,this.publishTimeout=1e4,this.publish=async(n,i,s)=>{this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:n,message:i,opts:s}});try{const o=s?.ttl||ly,a=Bo(s),c=s?.prompt||!1,l=s?.tag||0,p={topic:n,message:i,opts:{ttl:o,relay:a,prompt:c,tag:l}},m=is(i);this.queue.set(m,p);try{await await os(this.rpcPublish(n,i,o,a,c,l),this.publishTimeout),this.relayer.events.emit(pt.publish,p)}catch{this.logger.debug("Publishing Payload stalled"),this.relayer.events.emit(pt.connection_stalled);return}this.onPublish(m,p),this.logger.debug("Successfully Published Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:n,message:i,opts:s}})}catch(o){throw this.logger.debug("Failed to Publish Payload"),this.logger.error(o),o}},this.on=(n,i)=>{this.events.on(n,i)},this.once=(n,i)=>{this.events.once(n,i)},this.off=(n,i)=>{this.events.off(n,i)},this.removeListener=(n,i)=>{this.events.removeListener(n,i)},this.relayer=e,this.logger=Be.generateChildLogger(r,this.name),this.registerEventListeners()}get context(){return Be.getLoggerContext(this.logger)}rpcPublish(e,r,n,i,s,o){var a,c,l,p;const m={method:as(i.protocol).publish,params:{topic:e,message:r,ttl:n,prompt:s,tag:o}};return Tt((a=m.params)==null?void 0:a.prompt)&&((c=m.params)==null||delete c.prompt),Tt((l=m.params)==null?void 0:l.tag)&&((p=m.params)==null||delete p.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:m}),this.relayer.request(m)}onPublish(e,r){this.queue.delete(e)}checkQueue(){this.queue.forEach(async e=>{const{topic:r,message:n,opts:i}=e;await this.publish(r,n,i)})}registerEventListeners(){this.relayer.core.heartbeat.on(oi.HEARTBEAT_EVENTS.pulse,()=>{this.checkQueue()})}}class Ay{constructor(){this.map=new Map,this.set=(e,r)=>{const n=this.get(e);this.exists(e,r)||this.map.set(e,[...n,r])},this.get=e=>this.map.get(e)||[],this.exists=(e,r)=>this.get(e).includes(r),this.delete=(e,r)=>{if(typeof r>"u"){this.map.delete(e);return}if(!this.map.has(e))return;const n=this.get(e);if(!this.exists(e,r))return;const i=n.filter(s=>s!==r);if(!i.length){this.map.delete(e);return}this.map.set(e,i)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var Py=Object.defineProperty,Ty=Object.defineProperties,Ny=Object.getOwnPropertyDescriptors,Mu=Object.getOwnPropertySymbols,Ry=Object.prototype.hasOwnProperty,My=Object.prototype.propertyIsEnumerable,Lu=(t,e,r)=>e in t?Py(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,mi=(t,e)=>{for(var r in e||(e={}))Ry.call(e,r)&&Lu(t,r,e[r]);if(Mu)for(var r of Mu(e))My.call(e,r)&&Lu(t,r,e[r]);return t},wa=(t,e)=>Ty(t,Ny(e));class Ly extends _m{constructor(e,r){super(e,r),this.relayer=e,this.logger=r,this.subscriptions=new Map,this.topicMap=new Ay,this.events=new xt.exports.EventEmitter,this.name=wy,this.version=yy,this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel="pending_sub_watch_label",this.pollingInterval=20,this.storagePrefix=_r,this.subscribeTimeout=1e4,this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restart(),this.registerEventListeners(),this.onEnable(),this.clientId=await this.relayer.core.crypto.getClientId())},this.subscribe=async(n,i)=>{await this.restartToComplete(),this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:n,opts:i}});try{const s=Bo(i),o={topic:n,relay:s};this.pending.set(n,o);const a=await this.rpcSubscribe(n,s);return this.onSubscribe(a,o),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:n,opts:i}}),a}catch(s){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(s),s}},this.unsubscribe=async(n,i)=>{await this.restartToComplete(),this.isInitialized(),typeof i?.id<"u"?await this.unsubscribeById(n,i.id,i):await this.unsubscribeByTopic(n,i)},this.isSubscribed=async n=>this.topics.includes(n)?!0:await new Promise((i,s)=>{const o=new fe.Watch;o.start(this.pendingSubscriptionWatchLabel);const a=setInterval(()=>{!this.pending.has(n)&&this.topics.includes(n)&&(clearInterval(a),o.stop(this.pendingSubscriptionWatchLabel),i(!0)),o.elapsed(this.pendingSubscriptionWatchLabel)>=vy&&(clearInterval(a),o.stop(this.pendingSubscriptionWatchLabel),s(!1))},this.pollingInterval)}),this.on=(n,i)=>{this.events.on(n,i)},this.once=(n,i)=>{this.events.once(n,i)},this.off=(n,i)=>{this.events.off(n,i)},this.removeListener=(n,i)=>{this.events.removeListener(n,i)},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=Be.generateChildLogger(r,this.name),this.clientId=""}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(e,r){let n=!1;try{n=this.getSubscription(e).topic===r}catch{}return n}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,r){const n=this.topicMap.get(e);await Promise.all(n.map(async i=>await this.unsubscribeById(e,i,r)))}async unsubscribeById(e,r,n){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:r,opts:n}});try{const i=Bo(n);await this.rpcUnsubscribe(e,r,i);const s=tt("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,r,s),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:r,opts:n}})}catch(i){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(i),i}}async rpcSubscribe(e,r){const n={method:as(r.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n});try{await await os(this.relayer.request(n),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(pt.connection_stalled)}return is(e+this.clientId)}async rpcBatchSubscribe(e){if(!e.length)return;const r=e[0].relay,n={method:as(r.protocol).batchSubscribe,params:{topics:e.map(i=>i.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n});try{return await await os(this.relayer.request(n),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Payload stalled"),this.relayer.events.emit(pt.connection_stalled)}}rpcUnsubscribe(e,r,n){const i={method:as(n.protocol).unsubscribe,params:{topic:e,id:r}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i}),this.relayer.request(i)}onSubscribe(e,r){this.setSubscription(e,wa(mi({},r),{id:e})),this.pending.delete(r.topic)}onBatchSubscribe(e){e.length&&e.forEach(r=>{this.setSubscription(r.id,mi({},r)),this.pending.delete(r.topic)})}async onUnsubscribe(e,r,n){this.events.removeAllListeners(r),this.hasSubscription(r,e)&&this.deleteSubscription(r,n),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,r){this.subscriptions.has(e)||(this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:r}),this.addSubscription(e,r))}addSubscription(e,r){this.subscriptions.set(e,mi({},r)),this.topicMap.set(r.topic,e),this.events.emit(ir.created,r)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const r=this.subscriptions.get(e);if(!r){const{message:n}=ie("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(n)}return r}deleteSubscription(e,r){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:r});const n=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(n.topic,e),this.events.emit(ir.deleted,wa(mi({},n),{reason:r}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(ir.sync)}async reset(){if(!this.cached.length)return;const e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let r=0;r<e;r++){const n=this.cached.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(n)}this.events.emit(ir.resubscribed)}async restore(){try{const e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size){const{message:r}=ie("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(r),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(r)}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){if(!e.length)return;const r=await this.rpcBatchSubscribe(e);ur(r)&&this.onBatchSubscribe(r.map((n,i)=>wa(mi({},e[i]),{id:n})))}async onConnect(){this.restartInProgress||(await this.restart(),this.onEnable())}onDisconnect(){this.onDisable()}async checkPending(){if(this.relayer.transportExplicitlyClosed)return;const e=[];this.pending.forEach(r=>{e.push(r)}),await this.batchSubscribe(e)}registerEventListeners(){this.relayer.core.heartbeat.on(oi.HEARTBEAT_EVENTS.pulse,async()=>{await this.checkPending()}),this.relayer.on(pt.connect,async()=>{await this.onConnect()}),this.relayer.on(pt.disconnect,()=>{this.onDisconnect()}),this.events.on(ir.created,async e=>{const r=ir.created;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),await this.persist()}),this.events.on(ir.deleted,async e=>{const r=ir.deleted;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),await this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(){this.restartInProgress&&await new Promise(e=>{const r=setInterval(()=>{this.restartInProgress||(clearInterval(r),e())},this.pollingInterval)})}}var Uy=Object.defineProperty,Uu=Object.getOwnPropertySymbols,jy=Object.prototype.hasOwnProperty,Fy=Object.prototype.propertyIsEnumerable,ju=(t,e,r)=>e in t?Uy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,By=(t,e)=>{for(var r in e||(e={}))jy.call(e,r)&&ju(t,r,e[r]);if(Uu)for(var r of Uu(e))Fy.call(e,r)&&ju(t,r,e[r]);return t};class ky extends vm{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new xt.exports.EventEmitter,this.name=dy,this.transportExplicitlyClosed=!1,this.initialized=!1,this.reconnecting=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=["socket hang up","socket stalled"],this.request=async r=>{this.logger.debug("Publishing Request Payload");try{return await this.toEstablishConnection(),await this.provider.request(r)}catch(n){throw this.logger.debug("Failed to Publish Request"),this.logger.error(n),n}},this.core=e.core,this.logger=typeof e.logger<"u"&&typeof e.logger!="string"?Be.generateChildLogger(e.logger,this.name):Xn(Be.getDefaultLoggerOptions({level:e.logger||uy})),this.messages=new Oy(this.logger,e.core),this.subscriber=new Ly(this,this.logger),this.publisher=new $y(this,this.logger),this.relayUrl=e?.relayUrl||Ru,this.projectId=e.projectId,this.provider={}}async init(){this.logger.trace("Initialized"),await this.createProvider(),await Promise.all([this.messages.init(),this.transportOpen(),this.subscriber.init()]),this.registerEventListeners(),this.initialized=!0}get context(){return Be.getLoggerContext(this.logger)}get connected(){return this.provider.connection.connected}get connecting(){return this.provider.connection.connecting}async publish(e,r,n){this.isInitialized(),await this.publisher.publish(e,r,n),await this.recordMessageEvent({topic:e,message:r,publishedAt:Date.now()})}async subscribe(e,r){this.isInitialized();let n="";return await Promise.all([new Promise(i=>{this.subscriber.once(ir.created,s=>{s.topic===e&&i()})}),new Promise(async i=>{n=await this.subscriber.subscribe(e,r),i()})]),n}async unsubscribe(e,r){this.isInitialized(),await this.subscriber.unsubscribe(e,r)}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}off(e,r){this.events.off(e,r)}removeListener(e,r){this.events.removeListener(e,r)}async transportClose(){this.transportExplicitlyClosed=!0,this.connected&&(await this.provider.disconnect(),this.events.emit(pt.transport_closed))}async transportOpen(e){if(!this.reconnecting){this.relayUrl=e||this.relayUrl,this.transportExplicitlyClosed=!1,this.reconnecting=!0;try{await Promise.all([new Promise(r=>{this.initialized||r(),this.subscriber.once(ir.resubscribed,()=>{r()})}),await Promise.race([new Promise(async(r,n)=>{await os(this.provider.connect(),5e3,"socket stalled").catch(i=>n(i)).then(()=>r()).finally(()=>this.removeListener(pt.transport_closed,this.rejectTransportOpen))}),new Promise(r=>this.once(pt.transport_closed,this.rejectTransportOpen))])])}catch(r){this.logger.error(r);const n=r;if(!this.isConnectionStalled(n.message))throw r;this.events.emit(pt.transport_closed)}finally{this.reconnecting=!1}}}async restartTransport(e){this.transportExplicitlyClosed||(this.relayUrl=e||this.relayUrl,await this.transportClose(),await this.createProvider(),await this.transportOpen())}isConnectionStalled(e){return this.staleConnectionErrors.some(r=>e.includes(r))}rejectTransportOpen(){throw new Error("closeTransport called before connection was established")}async createProvider(){const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new Hr(new Dw(Kg({sdkVersion:gy,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0}))),this.registerProviderListeners()}async recordMessageEvent(e){const{topic:r,message:n}=e;this.logger.info(`recordMessageEvent > Recording message event for message ${n} for topic: ${r}...`),await this.messages.set(r,n),this.logger.info(`recordMessageEvent > Recording message event for message ${n} for topic: ${r}...DONE`)}async shouldIgnoreMessageEvent(e){const{topic:r,message:n}=e;if(!await this.subscriber.isSubscribed(r))return this.logger.info(`shouldIgnoreMessageEvent > Ignoring incoming message event for message ${n} for non-subscribed topic: ${r}`),!0;const i=this.messages.has(r,n);return this.logger.debug(`shouldIgnoreMessageEvent > Message ${n} for topic: ${r} exists: ${i}`),i&&this.logger.info(`shouldIgnoreMessageEvent > Message ${n} for topic: ${r} already exists, ignoring incoming message event.`),i}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),ha(e)){if(!e.method.endsWith(fy))return;const r=e.params,{topic:n,message:i,publishedAt:s}=r.data,o={topic:n,message:i,publishedAt:s};this.logger.info("Emitting Relayer Payload"),this.logger.trace(By({type:"event",event:r.id},o)),this.events.emit(r.id,o),this.logger.info("onProviderPayload > Acknowledging Payload..."),await this.acknowledgePayload(e),this.logger.info("onProviderPayload > Acknowledging Payload... DONE"),this.logger.info("onProviderPayload > onMessageEvent..."),await this.onMessageEvent(o),this.logger.info("onProviderPayload > onMessageEvent... DONE")}}async onMessageEvent(e){if(await this.shouldIgnoreMessageEvent(e)){this.logger.info("onMessageEvent > Ignoring Message Event"),this.logger.info({status:"ignored",messageEvent:e});return}this.logger.info("onMessageEvent > Emitting Message Event"),this.events.emit(pt.message,e),this.logger.info("onMessageEvent > Emitting Message Event... DONE"),this.logger.info("onMessageEvent > Recording Message Event"),await this.recordMessageEvent(e),this.logger.info("onMessageEvent > Recording Message Event... DONE")}async acknowledgePayload(e){const r=la(e.id,!0);await this.provider.connection.send(r)}registerProviderListeners(){this.provider.on(ws.payload,e=>this.onProviderPayload(e)),this.provider.on(ws.connect,()=>{this.events.emit(pt.connect)}),this.provider.on(ws.disconnect,()=>{this.onProviderDisconnect()}),this.provider.on(ws.error,e=>{this.logger.error(e),this.events.emit(pt.error,e)})}registerEventListeners(){this.events.on(pt.connection_stalled,async()=>{await this.restartTransport()})}onProviderDisconnect(){this.events.emit(pt.disconnect),this.attemptToReconnect()}attemptToReconnect(){this.transportExplicitlyClosed||setTimeout(async()=>{await this.restartTransport()},fe.toMiliseconds(py))}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){if(!this.connected){if(this.connecting)return await new Promise(e=>{const r=setInterval(()=>{this.connected&&(clearInterval(r),e())},this.connectionStatusPollingInterval)});await this.restartTransport()}}}var Hy=Object.defineProperty,Fu=Object.getOwnPropertySymbols,zy=Object.prototype.hasOwnProperty,Wy=Object.prototype.propertyIsEnumerable,Bu=(t,e,r)=>e in t?Hy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ku=(t,e)=>{for(var r in e||(e={}))zy.call(e,r)&&Bu(t,r,e[r]);if(Fu)for(var r of Fu(e))Wy.call(e,r)&&Bu(t,r,e[r]);return t};class ys extends bm{constructor(e,r,n,i=_r,s=void 0){super(e,r,n,i),this.core=e,this.logger=r,this.name=n,this.map=new Map,this.version=my,this.cached=[],this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(o=>{this.getKey&&o!==null&&!Tt(o)?this.map.set(this.getKey(o),o):p3(o)?this.map.set(o.id,o):g3(o)&&this.map.set(o.topic,o)}),this.cached=[],this.initialized=!0)},this.set=async(o,a)=>{this.isInitialized(),this.map.has(o)?await this.update(o,a):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:o,value:a}),this.map.set(o,a),await this.persist())},this.get=o=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:o}),this.getData(o)),this.getAll=o=>(this.isInitialized(),o?this.values.filter(a=>Object.keys(o).every(c=>Ow(a[c],o[c]))):this.values),this.update=async(o,a)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:o,update:a});const c=ku(ku({},this.getData(o)),a);this.map.set(o,c),await this.persist()},this.delete=async(o,a)=>{this.isInitialized(),this.map.has(o)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:o,reason:a}),this.map.delete(o),await this.persist())},this.logger=Be.generateChildLogger(r,this.name),this.storagePrefix=i,this.getKey=s}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const r=this.map.get(e);if(!r){const{message:n}=ie("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(n),new Error(n)}return r}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:r}=ie("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(r),new Error(r)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class qy{constructor(e,r){this.core=e,this.logger=r,this.name=by,this.version=_y,this.events=new xt.exports,this.initialized=!1,this.storagePrefix=_r,this.ignoredPayloadTypes=[Lr],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:n})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...n])]},this.create=async()=>{this.isInitialized();const n=Fo(),i=await this.core.crypto.setSymKey(n),s=rr(fe.FIVE_MINUTES),o={protocol:Nu},a={topic:i,expiry:s,relay:o,active:!1},c=i3({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:n,relay:o});return await this.pairings.set(i,a),await this.core.relayer.subscribe(i),this.core.expirer.set(i,s),{topic:i,uri:c}},this.pair=async n=>{this.isInitialized(),this.isValidPair(n);const{topic:i,symKey:s,relay:o}=r3(n.uri);if(this.pairings.keys.includes(i))throw new Error(`Pairing already exists: ${i}`);if(this.core.crypto.hasKeys(i))throw new Error(`Keychain already exists: ${i}`);const a=rr(fe.FIVE_MINUTES),c={topic:i,relay:o,expiry:a,active:!1};return await this.pairings.set(i,c),await this.core.crypto.setSymKey(s,i),await this.core.relayer.subscribe(i,{relay:o}),this.core.expirer.set(i,a),n.activatePairing&&await this.activate({topic:i}),c},this.activate=async({topic:n})=>{this.isInitialized();const i=rr(fe.THIRTY_DAYS);await this.pairings.update(n,{active:!0,expiry:i}),this.core.expirer.set(n,i)},this.ping=async n=>{this.isInitialized(),await this.isValidPing(n);const{topic:i}=n;if(this.pairings.keys.includes(i)){const s=await this.sendRequest(i,"wc_pairingPing",{}),{done:o,resolve:a,reject:c}=jr();this.events.once(et("pairing_ping",s),({error:l})=>{l?c(l):a()}),await o()}},this.updateExpiry=async({topic:n,expiry:i})=>{this.isInitialized(),await this.pairings.update(n,{expiry:i})},this.updateMetadata=async({topic:n,metadata:i})=>{this.isInitialized(),await this.pairings.update(n,{peerMetadata:i})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async n=>{this.isInitialized(),await this.isValidDisconnect(n);const{topic:i}=n;this.pairings.keys.includes(i)&&(await this.sendRequest(i,"wc_pairingDelete",tt("USER_DISCONNECTED")),await this.deletePairing(i))},this.sendRequest=async(n,i,s)=>{const o=ps(i,s),a=await this.core.crypto.encode(n,o),c=gi[i].req;return this.core.history.set(n,o),await this.core.relayer.publish(n,a,c),o.id},this.sendResult=async(n,i,s)=>{const o=la(n,s),a=await this.core.crypto.encode(i,o),c=await this.core.history.get(i,n),l=gi[c.request.method].res;await this.core.relayer.publish(i,a,l),await this.core.history.resolve(o)},this.sendError=async(n,i,s)=>{const o=gs(n,s),a=await this.core.crypto.encode(i,o),c=await this.core.history.get(i,n),l=gi[c.request.method]?gi[c.request.method].res:gi.unregistered_method.res;await this.core.relayer.publish(i,a,l),await this.core.history.resolve(o)},this.deletePairing=async(n,i)=>{await this.core.relayer.unsubscribe(n),await Promise.all([this.pairings.delete(n,tt("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(n),i?Promise.resolve():this.core.expirer.del(n)])},this.cleanup=async()=>{const n=this.pairings.getAll().filter(i=>br(i.expiry));await Promise.all(n.map(i=>this.deletePairing(i.topic)))},this.onRelayEventRequest=n=>{const{topic:i,payload:s}=n,o=s.method;if(this.pairings.keys.includes(i))switch(o){case"wc_pairingPing":return this.onPairingPingRequest(i,s);case"wc_pairingDelete":return this.onPairingDeleteRequest(i,s);default:return this.onUnknownRpcMethodRequest(i,s)}},this.onRelayEventResponse=async n=>{const{topic:i,payload:s}=n,o=(await this.core.history.get(i,s.id)).request.method;if(this.pairings.keys.includes(i))switch(o){case"wc_pairingPing":return this.onPairingPingResponse(i,s);default:return this.onUnknownRpcMethodResponse(o)}},this.onPairingPingRequest=async(n,i)=>{const{id:s}=i;try{this.isValidPing({topic:n}),await this.sendResult(s,n,!0),this.events.emit("pairing_ping",{id:s,topic:n})}catch(o){await this.sendError(s,n,o),this.logger.error(o)}},this.onPairingPingResponse=(n,i)=>{const{id:s}=i;setTimeout(()=>{pr(i)?this.events.emit(et("pairing_ping",s),{}):Qt(i)&&this.events.emit(et("pairing_ping",s),{error:i.error})},500)},this.onPairingDeleteRequest=async(n,i)=>{const{id:s}=i;try{this.isValidDisconnect({topic:n}),await this.deletePairing(n),this.events.emit("pairing_delete",{id:s,topic:n})}catch(o){await this.sendError(s,n,o),this.logger.error(o)}},this.onUnknownRpcMethodRequest=async(n,i)=>{const{id:s,method:o}=i;try{if(this.registeredMethods.includes(o))return;const a=tt("WC_METHOD_UNSUPPORTED",o);await this.sendError(s,n,a),this.logger.error(a)}catch(a){await this.sendError(s,n,a),this.logger.error(a)}},this.onUnknownRpcMethodResponse=n=>{this.registeredMethods.includes(n)||this.logger.error(tt("WC_METHOD_UNSUPPORTED",n))},this.isValidPair=n=>{if(!jt(n)){const{message:i}=ie("MISSING_OR_INVALID",`pair() params: ${n}`);throw new Error(i)}if(!f3(n.uri)){const{message:i}=ie("MISSING_OR_INVALID",`pair() uri: ${n.uri}`);throw new Error(i)}},this.isValidPing=async n=>{if(!jt(n)){const{message:s}=ie("MISSING_OR_INVALID",`ping() params: ${n}`);throw new Error(s)}const{topic:i}=n;await this.isValidPairingTopic(i)},this.isValidDisconnect=async n=>{if(!jt(n)){const{message:s}=ie("MISSING_OR_INVALID",`disconnect() params: ${n}`);throw new Error(s)}const{topic:i}=n;await this.isValidPairingTopic(i)},this.isValidPairingTopic=async n=>{if(!ft(n,!1)){const{message:i}=ie("MISSING_OR_INVALID",`pairing topic should be a string: ${n}`);throw new Error(i)}if(!this.pairings.keys.includes(n)){const{message:i}=ie("NO_MATCHING_KEY",`pairing topic doesn't exist: ${n}`);throw new Error(i)}if(br(this.pairings.get(n).expiry)){await this.deletePairing(n);const{message:i}=ie("EXPIRED",`pairing topic: ${n}`);throw new Error(i)}},this.core=e,this.logger=Be.generateChildLogger(r,this.name),this.pairings=new ys(this.core,this.logger,this.name,this.storagePrefix)}get context(){return Be.getLoggerContext(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(pt.message,async e=>{const{topic:r,message:n}=e;if(this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))return;const i=await this.core.crypto.decode(r,n);ha(i)?(this.core.history.set(r,i),this.onRelayEventRequest({topic:r,payload:i})):ua(i)&&(await this.core.history.resolve(i),this.onRelayEventResponse({topic:r,payload:i}))})}registerExpirerEvents(){this.core.expirer.on(Vt.expired,async e=>{const{topic:r}=mh(e.target);r&&this.pairings.keys.includes(r)&&(await this.deletePairing(r,!0),this.events.emit("pairing_expire",{topic:r}))})}}class Vy extends mm{constructor(e,r){super(e,r),this.core=e,this.logger=r,this.records=new Map,this.events=new xt.exports.EventEmitter,this.name=Ey,this.version=xy,this.cached=[],this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(n=>this.records.set(n.id,n)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(n,i,s)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:n,request:i,chainId:s}),this.records.has(i.id))return;const o={id:i.id,topic:n,request:{method:i.method,params:i.params||null},chainId:s};this.records.set(o.id,o),this.events.emit(sr.created,o)},this.resolve=async n=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:n}),!this.records.has(n.id))return;const i=await this.getRecord(n.id);typeof i.response>"u"&&(i.response=Qt(n)?{error:n.error}:{result:n.result},this.records.set(i.id,i),this.events.emit(sr.updated,i))},this.get=async(n,i)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:n,id:i}),await this.getRecord(i)),this.delete=(n,i)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:i}),this.values.forEach(s=>{if(s.topic===n){if(typeof i<"u"&&s.id!==i)return;this.records.delete(s.id),this.events.emit(sr.deleted,s)}})},this.exists=async(n,i)=>(this.isInitialized(),this.records.has(i)?(await this.getRecord(i)).topic===n:!1),this.on=(n,i)=>{this.events.on(n,i)},this.once=(n,i)=>{this.events.once(n,i)},this.off=(n,i)=>{this.events.off(n,i)},this.removeListener=(n,i)=>{this.events.removeListener(n,i)},this.logger=Be.generateChildLogger(r,this.name)}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(r=>{if(typeof r.response<"u")return;const n={topic:r.topic,request:ps(r.request.method,r.request.params,r.id),chainId:r.chainId};return e.push(n)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const r=this.records.get(e);if(!r){const{message:n}=ie("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(n)}return r}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(sr.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:r}=ie("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(r),new Error(r)}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(sr.created,e=>{const r=sr.created;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,record:e}),this.persist()}),this.events.on(sr.updated,e=>{const r=sr.updated;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,record:e}),this.persist()}),this.events.on(sr.deleted,e=>{const r=sr.deleted;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,record:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Ky extends Em{constructor(e,r){super(e,r),this.core=e,this.logger=r,this.expirations=new Map,this.events=new xt.exports.EventEmitter,this.name=Cy,this.version=Iy,this.cached=[],this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(n=>this.expirations.set(n.target,n)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=n=>{try{const i=this.formatTarget(n);return typeof this.getExpiration(i)<"u"}catch{return!1}},this.set=(n,i)=>{this.isInitialized();const s=this.formatTarget(n),o={target:s,expiry:i};this.expirations.set(s,o),this.checkExpiry(s,o),this.events.emit(Vt.created,{target:s,expiration:o})},this.get=n=>{this.isInitialized();const i=this.formatTarget(n);return this.getExpiration(i)},this.del=n=>{if(this.isInitialized(),this.has(n)){const i=this.formatTarget(n),s=this.getExpiration(i);this.expirations.delete(i),this.events.emit(Vt.deleted,{target:i,expiration:s})}},this.on=(n,i)=>{this.events.on(n,i)},this.once=(n,i)=>{this.events.once(n,i)},this.off=(n,i)=>{this.events.off(n,i)},this.removeListener=(n,i)=>{this.events.removeListener(n,i)},this.logger=Be.generateChildLogger(r,this.name)}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e=="string")return Gg(e);if(typeof e=="number")return Zg(e);const{message:r}=ie("UNKNOWN_TYPE",`Target type: ${typeof e}`);throw new Error(r)}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(Vt.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:r}=ie("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(r),new Error(r)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const r=this.expirations.get(e);if(!r){const{message:n}=ie("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(n),new Error(n)}return r}checkExpiry(e,r){const{expiry:n}=r;fe.toMiliseconds(n)-Date.now()<=0&&this.expire(e,r)}expire(e,r){this.expirations.delete(e),this.events.emit(Vt.expired,{target:e,expiration:r})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,r)=>this.checkExpiry(r,e))}registerEventListeners(){this.core.heartbeat.on(oi.HEARTBEAT_EVENTS.pulse,()=>this.checkExpirations()),this.events.on(Vt.created,e=>{const r=Vt.created;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),this.persist()}),this.events.on(Vt.expired,e=>{const r=Vt.expired;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),this.persist()}),this.events.on(Vt.deleted,e=>{const r=Vt.deleted;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}var Gy=Object.defineProperty,Hu=Object.getOwnPropertySymbols,Zy=Object.prototype.hasOwnProperty,Yy=Object.prototype.propertyIsEnumerable,zu=(t,e,r)=>e in t?Gy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Wu=(t,e)=>{for(var r in e||(e={}))Zy.call(e,r)&&zu(t,r,e[r]);if(Hu)for(var r of Hu(e))Yy.call(e,r)&&zu(t,r,e[r]);return t};class ya extends gm{constructor(e){super(e),this.protocol=Pu,this.version=ey,this.name=ma,this.events=new xt.exports.EventEmitter,this.initialized=!1,this.on=(n,i)=>this.events.on(n,i),this.once=(n,i)=>this.events.once(n,i),this.off=(n,i)=>this.events.off(n,i),this.removeListener=(n,i)=>this.events.removeListener(n,i),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Ru;const r=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:Xn(Be.getDefaultLoggerOptions({level:e?.logger||ty.logger}));this.logger=Be.generateChildLogger(r,this.name),this.heartbeat=new oi.HeartBeat,this.crypto=new Dy(this,this.logger,e?.keychain),this.history=new Vy(this,this.logger),this.expirer=new Ky(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new _2(Wu(Wu({},ry),e?.storageOptions)),this.relayer=new ky({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new qy(this,this.logger)}static async init(e){const r=new ya(e);return await r.initialize(),r}get context(){return Be.getLoggerContext(this.logger)}async start(){this.initialized||await this.initialize()}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}}const Jy=ya,qu="wc",Vu=2,Ku="client",va=`${qu}@${Vu}:${Ku}:`,ba={name:Ku,logger:"error",controller:!1,relayUrl:"wss://relay.walletconnect.com"},Xy="proposal",Gu="Proposal expired",Qy="session",vs=fe.SEVEN_DAYS,ev="engine",wi={wc_sessionPropose:{req:{ttl:fe.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1101}},wc_sessionSettle:{req:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:1104},res:{ttl:fe.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:1106},res:{ttl:fe.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:fe.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:fe.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:1112},res:{ttl:fe.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:fe.THIRTY_SECONDS,prompt:!1,tag:1114},res:{ttl:fe.THIRTY_SECONDS,prompt:!1,tag:1115}}},_a={min:fe.FIVE_MINUTES,max:fe.SEVEN_DAYS},tv="request";var rv=Object.defineProperty,nv=Object.defineProperties,iv=Object.getOwnPropertyDescriptors,Zu=Object.getOwnPropertySymbols,sv=Object.prototype.hasOwnProperty,ov=Object.prototype.propertyIsEnumerable,Yu=(t,e,r)=>e in t?rv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Kt=(t,e)=>{for(var r in e||(e={}))sv.call(e,r)&&Yu(t,r,e[r]);if(Zu)for(var r of Zu(e))ov.call(e,r)&&Yu(t,r,e[r]);return t},Ea=(t,e)=>nv(t,iv(e));class av extends Cm{constructor(e){super(e),this.name=ev,this.events=new xt.exports,this.initialized=!1,this.ignoredPayloadTypes=[Lr],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.client.core.pairing.register({methods:Object.keys(wi)}),this.initialized=!0)},this.connect=async r=>{this.isInitialized();const n=Ea(Kt({},r),{requiredNamespaces:r.requiredNamespaces||{},optionalNamespaces:r.optionalNamespaces||{}});await this.isValidConnect(n);const{pairingTopic:i,requiredNamespaces:s,optionalNamespaces:o,sessionProperties:a,relays:c}=n;let l=i,p,m=!1;if(l&&(m=this.client.core.pairing.pairings.get(l).active),!l||!m){const{topic:D,uri:v}=await this.client.core.pairing.create();l=D,p=v}const w=await this.client.core.crypto.generateKeyPair(),y=Kt({requiredNamespaces:s,optionalNamespaces:o,relays:c??[{protocol:Nu}],proposer:{publicKey:w,metadata:this.client.metadata}},a&&{sessionProperties:a}),{reject:E,resolve:T,done:N}=jr(fe.FIVE_MINUTES,Gu);if(this.events.once(et("session_connect"),async({error:D,session:v})=>{if(D)E(D);else if(v){v.self.publicKey=w;const S=Ea(Kt({},v),{requiredNamespaces:v.requiredNamespaces,optionalNamespaces:v.optionalNamespaces});await this.client.session.set(v.topic,S),await this.setExpiry(v.topic,v.expiry),l&&await this.client.core.pairing.updateMetadata({topic:l,metadata:v.peer.metadata}),T(S)}}),!l){const{message:D}=ie("NO_MATCHING_KEY",`connect() pairing topic: ${l}`);throw new Error(D)}const L=await this.sendRequest(l,"wc_sessionPropose",y),C=rr(fe.FIVE_MINUTES);return await this.setProposal(L,Kt({id:L,expiry:C},y)),{uri:p,approval:N}},this.pair=async r=>(this.isInitialized(),await this.client.core.pairing.pair(r)),this.approve=async r=>{this.isInitialized(),await this.isValidApprove(r);const{id:n,relayProtocol:i,namespaces:s,sessionProperties:o}=r,a=this.client.proposal.get(n);let{pairingTopic:c,proposer:l,requiredNamespaces:p,optionalNamespaces:m}=a;c=c||"",mn(p)||(p=c3(s,"approve()"));const w=await this.client.core.crypto.generateKeyPair(),y=l.publicKey,E=await this.client.core.crypto.generateSharedKey(w,y);c&&n&&(await this.client.core.pairing.updateMetadata({topic:c,metadata:l.metadata}),await this.sendResult(n,c,{relay:{protocol:i??"irn"},responderPublicKey:w}),await this.client.proposal.delete(n,tt("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:c}));const T=Kt({relay:{protocol:i??"irn"},namespaces:s,requiredNamespaces:p,optionalNamespaces:m,pairingTopic:c,controller:{publicKey:w,metadata:this.client.metadata},expiry:rr(vs)},o&&{sessionProperties:o});await this.client.core.relayer.subscribe(E);const N=await this.sendRequest(E,"wc_sessionSettle",T),{done:L,resolve:C,reject:D}=jr();this.events.once(et("session_approve",N),({error:S})=>{S?D(S):C(this.client.session.get(E))});const v=Ea(Kt({},T),{topic:E,pairingTopic:c,acknowledged:!1,self:T.controller,peer:{publicKey:l.publicKey,metadata:l.metadata},controller:w});return await this.client.session.set(E,v),await this.setExpiry(E,rr(vs)),{topic:E,acknowledged:L}},this.reject=async r=>{this.isInitialized(),await this.isValidReject(r);const{id:n,reason:i}=r,{pairingTopic:s}=this.client.proposal.get(n);s&&(await this.sendError(n,s,i),await this.client.proposal.delete(n,tt("USER_DISCONNECTED")))},this.update=async r=>{this.isInitialized(),await this.isValidUpdate(r);const{topic:n,namespaces:i}=r,s=await this.sendRequest(n,"wc_sessionUpdate",{namespaces:i}),{done:o,resolve:a,reject:c}=jr();return this.events.once(et("session_update",s),({error:l})=>{l?c(l):a()}),await this.client.session.update(n,{namespaces:i}),{acknowledged:o}},this.extend=async r=>{this.isInitialized(),await this.isValidExtend(r);const{topic:n}=r,i=await this.sendRequest(n,"wc_sessionExtend",{}),{done:s,resolve:o,reject:a}=jr();return this.events.once(et("session_extend",i),({error:c})=>{c?a(c):o()}),await this.setExpiry(n,rr(vs)),{acknowledged:s}},this.request=async r=>{this.isInitialized(),await this.isValidRequest(r);const{chainId:n,request:i,topic:s,expiry:o}=r,a=await this.sendRequest(s,"wc_sessionRequest",{request:i,chainId:n},o),{done:c,resolve:l,reject:p}=jr(o);return this.events.once(et("session_request",a),({error:m,result:w})=>{m?p(m):l(w)}),this.client.events.emit("session_request_sent",{topic:s,request:i,chainId:n,id:a}),await c()},this.respond=async r=>{this.isInitialized(),await this.isValidRespond(r);const{topic:n,response:i}=r,{id:s}=i;pr(i)?await this.sendResult(s,n,i.result):Qt(i)&&await this.sendError(s,n,i.error),this.deletePendingSessionRequest(r.response.id,{message:"fulfilled",code:0})},this.ping=async r=>{this.isInitialized(),await this.isValidPing(r);const{topic:n}=r;if(this.client.session.keys.includes(n)){const i=await this.sendRequest(n,"wc_sessionPing",{}),{done:s,resolve:o,reject:a}=jr();this.events.once(et("session_ping",i),({error:c})=>{c?a(c):o()}),await s()}else this.client.core.pairing.pairings.keys.includes(n)&&await this.client.core.pairing.ping({topic:n})},this.emit=async r=>{this.isInitialized(),await this.isValidEmit(r);const{topic:n,event:i,chainId:s}=r;await this.sendRequest(n,"wc_sessionEvent",{event:i,chainId:s})},this.disconnect=async r=>{this.isInitialized(),await this.isValidDisconnect(r);const{topic:n}=r;this.client.session.keys.includes(n)?(await this.sendRequest(n,"wc_sessionDelete",tt("USER_DISCONNECTED")),await this.deleteSession(n)):await this.client.core.pairing.disconnect({topic:n})},this.find=r=>(this.isInitialized(),this.client.session.getAll().filter(n=>u3(n,r))),this.getPendingSessionRequests=()=>(this.isInitialized(),this.client.pendingRequest.getAll()),this.deleteSession=async(r,n)=>{const{self:i}=this.client.session.get(r);await this.client.core.relayer.unsubscribe(r),await Promise.all([this.client.session.delete(r,tt("USER_DISCONNECTED")),this.client.core.crypto.deleteKeyPair(i.publicKey),this.client.core.crypto.deleteSymKey(r),n?Promise.resolve():this.client.core.expirer.del(r)])},this.deleteProposal=async(r,n)=>{await Promise.all([this.client.proposal.delete(r,tt("USER_DISCONNECTED")),n?Promise.resolve():this.client.core.expirer.del(r)])},this.deletePendingSessionRequest=async(r,n,i=!1)=>{await Promise.all([this.client.pendingRequest.delete(r,n),i?Promise.resolve():this.client.core.expirer.del(r)])},this.setExpiry=async(r,n)=>{this.client.session.keys.includes(r)&&await this.client.session.update(r,{expiry:n}),this.client.core.expirer.set(r,n)},this.setProposal=async(r,n)=>{await this.client.proposal.set(r,n),this.client.core.expirer.set(r,n.expiry)},this.setPendingSessionRequest=async r=>{const n=wi.wc_sessionRequest.req.ttl,{id:i,topic:s,params:o}=r;await this.client.pendingRequest.set(i,{id:i,topic:s,params:o}),n&&this.client.core.expirer.set(i,rr(n))},this.sendRequest=async(r,n,i,s)=>{const o=ps(n,i),a=await this.client.core.crypto.encode(r,o),c=wi[n].req;return s&&(c.ttl=s),this.client.core.history.set(r,o),this.client.core.relayer.publish(r,a,c),o.id},this.sendResult=async(r,n,i)=>{const s=la(r,i),o=await this.client.core.crypto.encode(n,s),a=await this.client.core.history.get(n,r),c=wi[a.request.method].res;this.client.core.relayer.publish(n,o,c),await this.client.core.history.resolve(s)},this.sendError=async(r,n,i)=>{const s=gs(r,i),o=await this.client.core.crypto.encode(n,s),a=await this.client.core.history.get(n,r),c=wi[a.request.method].res;this.client.core.relayer.publish(n,o,c),await this.client.core.history.resolve(s)},this.cleanup=async()=>{const r=[],n=[];this.client.session.getAll().forEach(i=>{br(i.expiry)&&r.push(i.topic)}),this.client.proposal.getAll().forEach(i=>{br(i.expiry)&&n.push(i.id)}),await Promise.all([...r.map(i=>this.deleteSession(i)),...n.map(i=>this.deleteProposal(i))])},this.onRelayEventRequest=r=>{const{topic:n,payload:i}=r,s=i.method;switch(s){case"wc_sessionPropose":return this.onSessionProposeRequest(n,i);case"wc_sessionSettle":return this.onSessionSettleRequest(n,i);case"wc_sessionUpdate":return this.onSessionUpdateRequest(n,i);case"wc_sessionExtend":return this.onSessionExtendRequest(n,i);case"wc_sessionPing":return this.onSessionPingRequest(n,i);case"wc_sessionDelete":return this.onSessionDeleteRequest(n,i);case"wc_sessionRequest":return this.onSessionRequest(n,i);case"wc_sessionEvent":return this.onSessionEventRequest(n,i);default:return this.client.logger.info(`Unsupported request method ${s}`)}},this.onRelayEventResponse=async r=>{const{topic:n,payload:i}=r,s=(await this.client.core.history.get(n,i.id)).request.method;switch(s){case"wc_sessionPropose":return this.onSessionProposeResponse(n,i);case"wc_sessionSettle":return this.onSessionSettleResponse(n,i);case"wc_sessionUpdate":return this.onSessionUpdateResponse(n,i);case"wc_sessionExtend":return this.onSessionExtendResponse(n,i);case"wc_sessionPing":return this.onSessionPingResponse(n,i);case"wc_sessionRequest":return this.onSessionRequestResponse(n,i);default:return this.client.logger.info(`Unsupported response method ${s}`)}},this.onSessionProposeRequest=async(r,n)=>{const{params:i,id:s}=n;try{this.isValidConnect(Kt({},n.params));const o=rr(fe.FIVE_MINUTES),a=Kt({id:s,pairingTopic:r,expiry:o},i);await this.setProposal(s,a),this.client.events.emit("session_proposal",{id:s,params:a})}catch(o){await this.sendError(s,r,o),this.client.logger.error(o)}},this.onSessionProposeResponse=async(r,n)=>{const{id:i}=n;if(pr(n)){const{result:s}=n;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:s});const o=this.client.proposal.get(i);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:o});const a=o.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:a});const c=s.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:c});const l=await this.client.core.crypto.generateSharedKey(a,c);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",sessionTopic:l});const p=await this.client.core.relayer.subscribe(l);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:p}),await this.client.core.pairing.activate({topic:r})}else Qt(n)&&(await this.client.proposal.delete(i,tt("USER_DISCONNECTED")),this.events.emit(et("session_connect"),{error:n.error}))},this.onSessionSettleRequest=async(r,n)=>{const{id:i,params:s}=n;try{this.isValidSessionSettleRequest(s);const{relay:o,controller:a,expiry:c,namespaces:l,requiredNamespaces:p,optionalNamespaces:m,sessionProperties:w,pairingTopic:y}=n.params,E=Kt({topic:r,relay:o,expiry:c,namespaces:l,acknowledged:!0,pairingTopic:y,requiredNamespaces:p,optionalNamespaces:m,controller:a.publicKey,self:{publicKey:"",metadata:this.client.metadata},peer:{publicKey:a.publicKey,metadata:a.metadata}},w&&{sessionProperties:w});await this.sendResult(n.id,r,!0),this.events.emit(et("session_connect"),{session:E})}catch(o){await this.sendError(i,r,o),this.client.logger.error(o)}},this.onSessionSettleResponse=async(r,n)=>{const{id:i}=n;pr(n)?(await this.client.session.update(r,{acknowledged:!0}),this.events.emit(et("session_approve",i),{})):Qt(n)&&(await this.client.session.delete(r,tt("USER_DISCONNECTED")),this.events.emit(et("session_approve",i),{error:n.error}))},this.onSessionUpdateRequest=async(r,n)=>{const{params:i,id:s}=n;try{this.isValidUpdate(Kt({topic:r},i)),await this.client.session.update(r,{namespaces:i.namespaces}),await this.sendResult(s,r,!0),this.client.events.emit("session_update",{id:s,topic:r,params:i})}catch(o){await this.sendError(s,r,o),this.client.logger.error(o)}},this.onSessionUpdateResponse=(r,n)=>{const{id:i}=n;pr(n)?this.events.emit(et("session_update",i),{}):Qt(n)&&this.events.emit(et("session_update",i),{error:n.error})},this.onSessionExtendRequest=async(r,n)=>{const{id:i}=n;try{this.isValidExtend({topic:r}),await this.setExpiry(r,rr(vs)),await this.sendResult(i,r,!0),this.client.events.emit("session_extend",{id:i,topic:r})}catch(s){await this.sendError(i,r,s),this.client.logger.error(s)}},this.onSessionExtendResponse=(r,n)=>{const{id:i}=n;pr(n)?this.events.emit(et("session_extend",i),{}):Qt(n)&&this.events.emit(et("session_extend",i),{error:n.error})},this.onSessionPingRequest=async(r,n)=>{const{id:i}=n;try{this.isValidPing({topic:r}),await this.sendResult(i,r,!0),this.client.events.emit("session_ping",{id:i,topic:r})}catch(s){await this.sendError(i,r,s),this.client.logger.error(s)}},this.onSessionPingResponse=(r,n)=>{const{id:i}=n;setTimeout(()=>{pr(n)?this.events.emit(et("session_ping",i),{}):Qt(n)&&this.events.emit(et("session_ping",i),{error:n.error})},500)},this.onSessionDeleteRequest=async(r,n)=>{const{id:i}=n;try{this.isValidDisconnect({topic:r,reason:n.params}),this.client.core.relayer.once(pt.publish,async()=>{await this.deleteSession(r)}),await this.sendResult(i,r,!0),this.client.events.emit("session_delete",{id:i,topic:r})}catch(s){await this.sendError(i,r,s),this.client.logger.error(s)}},this.onSessionRequest=async(r,n)=>{const{id:i,params:s}=n;try{this.isValidRequest(Kt({topic:r},s)),await this.setPendingSessionRequest({id:i,topic:r,params:s}),this.client.events.emit("session_request",{id:i,topic:r,params:s})}catch(o){await this.sendError(i,r,o),this.client.logger.error(o)}},this.onSessionRequestResponse=(r,n)=>{const{id:i}=n;pr(n)?this.events.emit(et("session_request",i),{result:n.result}):Qt(n)&&this.events.emit(et("session_request",i),{error:n.error})},this.onSessionEventRequest=async(r,n)=>{const{id:i,params:s}=n;try{this.isValidEmit(Kt({topic:r},s)),this.client.events.emit("session_event",{id:i,topic:r,params:s})}catch(o){await this.sendError(i,r,o),this.client.logger.error(o)}},this.isValidConnect=async r=>{if(!jt(r)){const{message:c}=ie("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(r)}`);throw new Error(c)}const{pairingTopic:n,requiredNamespaces:i,optionalNamespaces:s,sessionProperties:o,relays:a}=r;if(Tt(n)||await this.isValidPairingTopic(n),!x3(a,!0)){const{message:c}=ie("MISSING_OR_INVALID",`connect() relays: ${a}`);throw new Error(c)}!Tt(i)&&mn(i)!==0&&this.validateNamespaces(i,"requiredNamespaces"),!Tt(s)&&mn(s)!==0&&this.validateNamespaces(s,"optionalNamespaces"),Tt(o)||this.validateSessionProps(o,"sessionProperties")},this.validateNamespaces=(r,n)=>{const i=E3(r,"connect()",n);if(i)throw new Error(i.message)},this.isValidApprove=async r=>{if(!jt(r))throw new Error(ie("MISSING_OR_INVALID",`approve() params: ${r}`).message);const{id:n,namespaces:i,relayProtocol:s,sessionProperties:o}=r;await this.isValidProposalId(n);const a=this.client.proposal.get(n),c=cs(i,"approve()");if(c)throw new Error(c.message);const l=xh(a.requiredNamespaces,i,"approve()");if(l)throw new Error(l.message);if(!ft(s,!0)){const{message:p}=ie("MISSING_OR_INVALID",`approve() relayProtocol: ${s}`);throw new Error(p)}Tt(o)||this.validateSessionProps(o,"sessionProperties")},this.isValidReject=async r=>{if(!jt(r)){const{message:s}=ie("MISSING_OR_INVALID",`reject() params: ${r}`);throw new Error(s)}const{id:n,reason:i}=r;if(await this.isValidProposalId(n),!I3(i)){const{message:s}=ie("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(i)}`);throw new Error(s)}},this.isValidSessionSettleRequest=r=>{if(!jt(r)){const{message:l}=ie("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${r}`);throw new Error(l)}const{relay:n,controller:i,namespaces:s,expiry:o}=r;if(!_h(n)){const{message:l}=ie("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(l)}const a=m3(i,"onSessionSettleRequest()");if(a)throw new Error(a.message);const c=cs(s,"onSessionSettleRequest()");if(c)throw new Error(c.message);if(br(o)){const{message:l}=ie("EXPIRED","onSessionSettleRequest()");throw new Error(l)}},this.isValidUpdate=async r=>{if(!jt(r)){const{message:c}=ie("MISSING_OR_INVALID",`update() params: ${r}`);throw new Error(c)}const{topic:n,namespaces:i}=r;await this.isValidSessionTopic(n);const s=this.client.session.get(n),o=cs(i,"update()");if(o)throw new Error(o.message);const a=xh(s.requiredNamespaces,i,"update()");if(a)throw new Error(a.message)},this.isValidExtend=async r=>{if(!jt(r)){const{message:i}=ie("MISSING_OR_INVALID",`extend() params: ${r}`);throw new Error(i)}const{topic:n}=r;await this.isValidSessionTopic(n)},this.isValidRequest=async r=>{if(!jt(r)){const{message:c}=ie("MISSING_OR_INVALID",`request() params: ${r}`);throw new Error(c)}const{topic:n,request:i,chainId:s,expiry:o}=r;await this.isValidSessionTopic(n);const{namespaces:a}=this.client.session.get(n);if(!Eh(a,s)){const{message:c}=ie("MISSING_OR_INVALID",`request() chainId: ${s}`);throw new Error(c)}if(!S3(i)){const{message:c}=ie("MISSING_OR_INVALID",`request() ${JSON.stringify(i)}`);throw new Error(c)}if(!$3(a,s,i.method)){const{message:c}=ie("MISSING_OR_INVALID",`request() method: ${i.method}`);throw new Error(c)}if(o&&!N3(o,_a)){const{message:c}=ie("MISSING_OR_INVALID",`request() expiry: ${o}. Expiry must be a number (in seconds) between ${_a.min} and ${_a.max}`);throw new Error(c)}},this.isValidRespond=async r=>{if(!jt(r)){const{message:s}=ie("MISSING_OR_INVALID",`respond() params: ${r}`);throw new Error(s)}const{topic:n,response:i}=r;if(await this.isValidSessionTopic(n),!D3(i)){const{message:s}=ie("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(i)}`);throw new Error(s)}},this.isValidPing=async r=>{if(!jt(r)){const{message:i}=ie("MISSING_OR_INVALID",`ping() params: ${r}`);throw new Error(i)}const{topic:n}=r;await this.isValidSessionOrPairingTopic(n)},this.isValidEmit=async r=>{if(!jt(r)){const{message:a}=ie("MISSING_OR_INVALID",`emit() params: ${r}`);throw new Error(a)}const{topic:n,event:i,chainId:s}=r;await this.isValidSessionTopic(n);const{namespaces:o}=this.client.session.get(n);if(!Eh(o,s)){const{message:a}=ie("MISSING_OR_INVALID",`emit() chainId: ${s}`);throw new Error(a)}if(!O3(i)){const{message:a}=ie("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}if(!A3(o,s,i.name)){const{message:a}=ie("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}},this.isValidDisconnect=async r=>{if(!jt(r)){const{message:i}=ie("MISSING_OR_INVALID",`disconnect() params: ${r}`);throw new Error(i)}const{topic:n}=r;await this.isValidSessionOrPairingTopic(n)},this.validateSessionProps=(r,n)=>{Object.values(r).forEach(i=>{if(!ft(i,!1)){const{message:s}=ie("MISSING_OR_INVALID",`${n} must be in Record<string, string> format. Received: ${JSON.stringify(i)}`);throw new Error(s)}})}}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.client.core.relayer.on(pt.message,async e=>{const{topic:r,message:n}=e;if(this.client.logger.info(`Engine > Relay event received: ${JSON.stringify(e)}`),this.ignoredPayloadTypes.includes(this.client.core.crypto.getPayloadType(n))){this.client.logger.info(`Engine > Ignoring relay event: ${JSON.stringify(e)}`);return}const i=await this.client.core.crypto.decode(r,n);ha(i)?(this.client.core.history.set(r,i),this.onRelayEventRequest({topic:r,payload:i})):ua(i)&&(await this.client.core.history.resolve(i),this.onRelayEventResponse({topic:r,payload:i}))})}registerExpirerEvents(){this.client.core.expirer.on(Vt.expired,async e=>{const{topic:r,id:n}=mh(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,ie("EXPIRED"),!0);r?this.client.session.keys.includes(r)&&(await this.deleteSession(r,!0),this.client.events.emit("session_expire",{topic:r})):n&&(await this.deleteProposal(n,!0),this.client.events.emit("proposal_expire",{id:n}))})}isValidPairingTopic(e){if(!ft(e,!1)){const{message:r}=ie("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(r)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:r}=ie("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(r)}if(br(this.client.core.pairing.pairings.get(e).expiry)){const{message:r}=ie("EXPIRED",`pairing topic: ${e}`);throw new Error(r)}}async isValidSessionTopic(e){if(!ft(e,!1)){const{message:r}=ie("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(r)}if(!this.client.session.keys.includes(e)){const{message:r}=ie("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(r)}if(br(this.client.session.get(e).expiry)){await this.deleteSession(e);const{message:r}=ie("EXPIRED",`session topic: ${e}`);throw new Error(r)}}async isValidSessionOrPairingTopic(e){if(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(ft(e,!1)){const{message:r}=ie("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(r)}else{const{message:r}=ie("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(r)}}async isValidProposalId(e){if(!C3(e)){const{message:r}=ie("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(r)}if(!this.client.proposal.keys.includes(e)){const{message:r}=ie("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(r)}if(br(this.client.proposal.get(e).expiry)){await this.deleteProposal(e);const{message:r}=ie("EXPIRED",`proposal id: ${e}`);throw new Error(r)}}}class cv extends ys{constructor(e,r){super(e,r,Xy,va),this.core=e,this.logger=r}}class lv extends ys{constructor(e,r){super(e,r,Qy,va),this.core=e,this.logger=r}}class hv extends ys{constructor(e,r){super(e,r,tv,va,n=>n.id),this.core=e,this.logger=r}}class xa extends xm{constructor(e){super(e),this.protocol=qu,this.version=Vu,this.name=ba.name,this.events=new xt.exports.EventEmitter,this.on=(n,i)=>this.events.on(n,i),this.once=(n,i)=>this.events.once(n,i),this.off=(n,i)=>this.events.off(n,i),this.removeListener=(n,i)=>this.events.removeListener(n,i),this.removeAllListeners=n=>this.events.removeAllListeners(n),this.connect=async n=>{try{return await this.engine.connect(n)}catch(i){throw this.logger.error(i.message),i}},this.pair=async n=>{try{return await this.engine.pair(n)}catch(i){throw this.logger.error(i.message),i}},this.approve=async n=>{try{return await this.engine.approve(n)}catch(i){throw this.logger.error(i.message),i}},this.reject=async n=>{try{return await this.engine.reject(n)}catch(i){throw this.logger.error(i.message),i}},this.update=async n=>{try{return await this.engine.update(n)}catch(i){throw this.logger.error(i.message),i}},this.extend=async n=>{try{return await this.engine.extend(n)}catch(i){throw this.logger.error(i.message),i}},this.request=async n=>{try{return await this.engine.request(n)}catch(i){throw this.logger.error(i.message),i}},this.respond=async n=>{try{return await this.engine.respond(n)}catch(i){throw this.logger.error(i.message),i}},this.ping=async n=>{try{return await this.engine.ping(n)}catch(i){throw this.logger.error(i.message),i}},this.emit=async n=>{try{return await this.engine.emit(n)}catch(i){throw this.logger.error(i.message),i}},this.disconnect=async n=>{try{return await this.engine.disconnect(n)}catch(i){throw this.logger.error(i.message),i}},this.find=n=>{try{return this.engine.find(n)}catch(i){throw this.logger.error(i.message),i}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(n){throw this.logger.error(n.message),n}},this.name=e?.name||ba.name,this.metadata=e?.metadata||zg();const r=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:Xn(Be.getDefaultLoggerOptions({level:e?.logger||ba.logger}));this.core=e?.core||new Jy(e),this.logger=Be.generateChildLogger(r,this.name),this.session=new lv(this.core,this.logger),this.proposal=new cv(this.core,this.logger),this.pendingRequest=new hv(this.core,this.logger),this.engine=new av(this)}static async init(e){const r=new xa(e);return await r.initialize(),r}get context(){return Be.getLoggerContext(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success")}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}var Ca={exports:{}};(function(t,e){var r=typeof self<"u"?self:dt,n=function(){function s(){this.fetch=!1,this.DOMException=r.DOMException}return s.prototype=r,new s}();(function(s){(function(o){var a={searchParams:"URLSearchParams"in s,iterable:"Symbol"in s&&"iterator"in Symbol,blob:"FileReader"in s&&"Blob"in s&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in s,arrayBuffer:"ArrayBuffer"in s};function c(x){return x&&DataView.prototype.isPrototypeOf(x)}if(a.arrayBuffer)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],p=ArrayBuffer.isView||function(x){return x&&l.indexOf(Object.prototype.toString.call(x))>-1};function m(x){if(typeof x!="string"&&(x=String(x)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(x))throw new TypeError("Invalid character in header field name");return x.toLowerCase()}function w(x){return typeof x!="string"&&(x=String(x)),x}function y(x){var $={next:function(){var K=x.shift();return{done:K===void 0,value:K}}};return a.iterable&&($[Symbol.iterator]=function(){return $}),$}function E(x){this.map={},x instanceof E?x.forEach(function($,K){this.append(K,$)},this):Array.isArray(x)?x.forEach(function($){this.append($[0],$[1])},this):x&&Object.getOwnPropertyNames(x).forEach(function($){this.append($,x[$])},this)}E.prototype.append=function(x,$){x=m(x),$=w($);var K=this.map[x];this.map[x]=K?K+", "+$:$},E.prototype.delete=function(x){delete this.map[m(x)]},E.prototype.get=function(x){return x=m(x),this.has(x)?this.map[x]:null},E.prototype.has=function(x){return this.map.hasOwnProperty(m(x))},E.prototype.set=function(x,$){this.map[m(x)]=w($)},E.prototype.forEach=function(x,$){for(var K in this.map)this.map.hasOwnProperty(K)&&x.call($,this.map[K],K,this)},E.prototype.keys=function(){var x=[];return this.forEach(function($,K){x.push(K)}),y(x)},E.prototype.values=function(){var x=[];return this.forEach(function($){x.push($)}),y(x)},E.prototype.entries=function(){var x=[];return this.forEach(function($,K){x.push([K,$])}),y(x)},a.iterable&&(E.prototype[Symbol.iterator]=E.prototype.entries);function T(x){if(x.bodyUsed)return Promise.reject(new TypeError("Already read"));x.bodyUsed=!0}function N(x){return new Promise(function($,K){x.onload=function(){$(x.result)},x.onerror=function(){K(x.error)}})}function L(x){var $=new FileReader,K=N($);return $.readAsArrayBuffer(x),K}function C(x){var $=new FileReader,K=N($);return $.readAsText(x),K}function D(x){for(var $=new Uint8Array(x),K=new Array($.length),Y=0;Y<$.length;Y++)K[Y]=String.fromCharCode($[Y]);return K.join("")}function v(x){if(x.slice)return x.slice(0);var $=new Uint8Array(x.byteLength);return $.set(new Uint8Array(x)),$.buffer}function S(){return this.bodyUsed=!1,this._initBody=function(x){this._bodyInit=x,x?typeof x=="string"?this._bodyText=x:a.blob&&Blob.prototype.isPrototypeOf(x)?this._bodyBlob=x:a.formData&&FormData.prototype.isPrototypeOf(x)?this._bodyFormData=x:a.searchParams&&URLSearchParams.prototype.isPrototypeOf(x)?this._bodyText=x.toString():a.arrayBuffer&&a.blob&&c(x)?(this._bodyArrayBuffer=v(x.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):a.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(x)||p(x))?this._bodyArrayBuffer=v(x):this._bodyText=x=Object.prototype.toString.call(x):this._bodyText="",this.headers.get("content-type")||(typeof x=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):a.searchParams&&URLSearchParams.prototype.isPrototypeOf(x)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},a.blob&&(this.blob=function(){var x=T(this);if(x)return x;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?T(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(L)}),this.text=function(){var x=T(this);if(x)return x;if(this._bodyBlob)return C(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(D(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a.formData&&(this.formData=function(){return this.text().then(H)}),this.json=function(){return this.text().then(JSON.parse)},this}var O=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function u(x){var $=x.toUpperCase();return O.indexOf($)>-1?$:x}function _(x,$){$=$||{};var K=$.body;if(x instanceof _){if(x.bodyUsed)throw new TypeError("Already read");this.url=x.url,this.credentials=x.credentials,$.headers||(this.headers=new E(x.headers)),this.method=x.method,this.mode=x.mode,this.signal=x.signal,!K&&x._bodyInit!=null&&(K=x._bodyInit,x.bodyUsed=!0)}else this.url=String(x);if(this.credentials=$.credentials||this.credentials||"same-origin",($.headers||!this.headers)&&(this.headers=new E($.headers)),this.method=u($.method||this.method||"GET"),this.mode=$.mode||this.mode||null,this.signal=$.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&K)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(K)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})};function H(x){var $=new FormData;return x.trim().split("&").forEach(function(K){if(K){var Y=K.split("="),W=Y.shift().replace(/\+/g," "),z=Y.join("=").replace(/\+/g," ");$.append(decodeURIComponent(W),decodeURIComponent(z))}}),$}function B(x){var $=new E,K=x.replace(/\r?\n[\t ]+/g," ");return K.split(/\r?\n/).forEach(function(Y){var W=Y.split(":"),z=W.shift().trim();if(z){var J=W.join(":").trim();$.append(z,J)}}),$}S.call(_.prototype);function q(x,$){$||($={}),this.type="default",this.status=$.status===void 0?200:$.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in $?$.statusText:"OK",this.headers=new E($.headers),this.url=$.url||"",this._initBody(x)}S.call(q.prototype),q.prototype.clone=function(){return new q(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new E(this.headers),url:this.url})},q.error=function(){var x=new q(null,{status:0,statusText:""});return x.type="error",x};var X=[301,302,303,307,308];q.redirect=function(x,$){if(X.indexOf($)===-1)throw new RangeError("Invalid status code");return new q(null,{status:$,headers:{location:x}})},o.DOMException=s.DOMException;try{new o.DOMException}catch{o.DOMException=function($,K){this.message=$,this.name=K;var Y=Error($);this.stack=Y.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function te(x,$){return new Promise(function(K,Y){var W=new _(x,$);if(W.signal&&W.signal.aborted)return Y(new o.DOMException("Aborted","AbortError"));var z=new XMLHttpRequest;function J(){z.abort()}z.onload=function(){var G={status:z.status,statusText:z.statusText,headers:B(z.getAllResponseHeaders()||"")};G.url="responseURL"in z?z.responseURL:G.headers.get("X-Request-URL");var ce="response"in z?z.response:z.responseText;K(new q(ce,G))},z.onerror=function(){Y(new TypeError("Network request failed"))},z.ontimeout=function(){Y(new TypeError("Network request failed"))},z.onabort=function(){Y(new o.DOMException("Aborted","AbortError"))},z.open(W.method,W.url,!0),W.credentials==="include"?z.withCredentials=!0:W.credentials==="omit"&&(z.withCredentials=!1),"responseType"in z&&a.blob&&(z.responseType="blob"),W.headers.forEach(function(G,ce){z.setRequestHeader(ce,G)}),W.signal&&(W.signal.addEventListener("abort",J),z.onreadystatechange=function(){z.readyState===4&&W.signal.removeEventListener("abort",J)}),z.send(typeof W._bodyInit>"u"?null:W._bodyInit)})}return te.polyfill=!0,s.fetch||(s.fetch=te,s.Headers=E,s.Request=_,s.Response=q),o.Headers=E,o.Request=_,o.Response=q,o.fetch=te,Object.defineProperty(o,"__esModule",{value:!0}),o})({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var i=n;e=i.fetch,e.default=i.fetch,e.fetch=i.fetch,e.Headers=i.Headers,e.Request=i.Request,e.Response=i.Response,t.exports=e})(Ca,Ca.exports);var Ju=rf(Ca.exports);const Xu={headers:{Accept:"application/json","Content-Type":"application/json"},method:"POST"},Qu=10;class bn{constructor(e){if(this.url=e,this.events=new xt.exports.EventEmitter,this.isAvailable=!1,this.registering=!1,!lu(e))throw new Error(`Provided URL is not compatible with HTTP connection: ${e}`);this.url=e}get connected(){return this.isAvailable}get connecting(){return this.registering}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}off(e,r){this.events.off(e,r)}removeListener(e,r){this.events.removeListener(e,r)}async open(e=this.url){await this.register(e)}async close(){if(!this.isAvailable)throw new Error("Connection already closed");this.onClose()}async send(e,r){this.isAvailable||await this.register();try{const n=ui(e),s=await(await Ju(this.url,Object.assign(Object.assign({},Xu),{body:n}))).json();this.onPayload({data:s})}catch(n){this.onError(e.id,n)}}async register(e=this.url){if(!lu(e))throw new Error(`Provided URL is not compatible with HTTP connection: ${e}`);if(this.registering){const r=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=r||this.events.listenerCount("open")>=r)&&this.events.setMaxListeners(r+1),new Promise((n,i)=>{this.events.once("register_error",s=>{this.resetMaxListeners(),i(s)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.isAvailable>"u")return i(new Error("HTTP connection is missing or invalid"));n()})})}this.url=e,this.registering=!0;try{const r=ui({id:1,jsonrpc:"2.0",method:"test",params:[]});await Ju(e,Object.assign(Object.assign({},Xu),{body:r})),this.onOpen()}catch(r){const n=this.parseError(r);throw this.events.emit("register_error",n),this.onClose(),n}}onOpen(){this.isAvailable=!0,this.registering=!1,this.events.emit("open")}onClose(){this.isAvailable=!1,this.registering=!1,this.events.emit("close")}onPayload(e){if(typeof e.data>"u")return;const r=typeof e.data=="string"?na(e.data):e.data;this.events.emit("payload",r)}onError(e,r){const n=this.parseError(r),i=n.message||n.toString(),s=gs(e,i);this.events.emit("payload",s)}parseError(e,r=this.url){return nu(e,r,"HTTP")}resetMaxListeners(){this.events.getMaxListeners()>Qu&&this.events.setMaxListeners(Qu)}}const e0="error",uv="wss://relay.walletconnect.com",dv="wc",fv="universal_provider",t0=`${dv}@${2}:${fv}:`,pv="https://rpc.walletconnect.com/v1",zr={DEFAULT_CHAIN_CHANGED:"default_chain_changed"};var gv=Object.defineProperty,r0=Object.getOwnPropertySymbols,mv=Object.prototype.hasOwnProperty,wv=Object.prototype.propertyIsEnumerable,n0=(t,e,r)=>e in t?gv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ia=(t,e)=>{for(var r in e||(e={}))mv.call(e,r)&&n0(t,r,e[r]);if(r0)for(var r of r0(e))wv.call(e,r)&&n0(t,r,e[r]);return t};function or(t,e,r){let n;const i=Sa(t);return e.rpcMap&&(n=e.rpcMap[i]),n||(n=`${pv}?chainId=eip155:${i}&projectId=${r}`),n}function Sa(t){return t.includes("eip155")?Number(t.split(":")[1]):Number(t)}function yv(t,e){if(!e.includes(t))throw new Error(`Chain '${t}' not approved. Please use one of the following: ${e.toString()}`)}function vv(t){return t.map(e=>`${e.split(":")[0]}:${e.split(":")[1]}`)}function bv(t,e){const r=Object.keys(e.namespaces).filter(i=>i.includes(t));if(!r.length)return[];const n=[];return r.forEach(i=>{const s=e.namespaces[i].accounts;n.push(...s)}),n}function _v(t,e={}){const r=i0(t),n=i0(e);return Ia({},Object.assign(r,n))}function i0(t){var e,r,n,i;const s={};if(!mn(t))return s;for(const[o,a]of Object.entries(t)){const c=s0(o)?[o]:a.chains,l=a.methods||[],p=a.events||[],m=o0(o);s[m]={chains:Da(c,(e=s[m])==null?void 0:e.chains),methods:Da(l,(r=s[m])==null?void 0:r.methods),events:Da(p,(n=s[m])==null?void 0:n.events),rpcMap:Ia(Ia({},(i=s[m])==null?void 0:i.rpcMap),a.rpcMap)}}return s}function s0(t){return t.includes(":")}function o0(t){return s0(t)?t.split(":")[0]:t}function Da(t=[],e=[]){return[...new Set([...t,...e])]}const _n=(t,e)=>{const r=n=>{n.request!==e.request||n.topic!==e.topic||(t.events.removeListener("session_request_sent",r),Ev(e))};t.on("session_request_sent",r)};function Ev(t){if(typeof window<"u")try{const e=window.localStorage.getItem("WALLETCONNECT_DEEPLINK_CHOICE");if(e){const r=JSON.parse(e),n=r?.href;if(typeof n=="string"){n.endsWith("/")&&n.slice(0,-1);const i=`${n}/wc?requestId=${t.id}&sessionTopic=${t.topic}`;window.open(i,"_self","noreferrer noopener")}}}catch(e){console.error(e)}}class xv{constructor(e){this.name="eip155",this.namespace=e.namespace,this.client=e.client,this.events=e.events,this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){var r;switch(e.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return this.handleSwitchChain(e.request.params?(r=e.request.params[0])==null?void 0:r.chainId:"0x0"),null;case"eth_chainId":return parseInt(this.getDefaultChain())}return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),await this.client.request(e)):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,r){const n=Sa(e);if(!this.httpProviders[n]){const i=r||or(`${this.name}:${n}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${n}`);this.setHttpProvider(n,i)}this.chainId=n,this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${n}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}createHttpProvider(e,r){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;const i=Sa(r);e[i]=this.createHttpProvider(i,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}getHttpProvider(){const e=this.chainId,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}handleSwitchChain(e){const r=parseInt(e,16),n=`${this.name}:${r}`;yv(n,this.namespace.chains),this.setDefaultChain(`${r}`)}}class Cv{constructor(e){this.name="solana",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(!this.httpProviders[e]){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;e[r]=this.createHttpProvider(r,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||or(e,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}}class Iv{constructor(e){this.name="cosmos",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(this.chainId=e,!this.httpProviders[e]){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;e[r]=this.createHttpProvider(r,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||or(e,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}}class Sv{constructor(e){this.name="cip34",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(this.chainId=e,!this.httpProviders[e]){const n=r||this.getCardanoRPCUrl(e);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{const n=this.getCardanoRPCUrl(r);e[r]=this.createHttpProvider(r,n)}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}getCardanoRPCUrl(e){const r=this.namespace.rpcMap;if(r)return r[e]}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||this.getCardanoRPCUrl(e);return typeof n>"u"?void 0:new Hr(new bn(n))}}class Dv{constructor(e){this.name="elrond",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(!this.httpProviders[e]){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;e[r]=this.createHttpProvider(r,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||or(e,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}}class Ov{constructor(e){this.name="multiversx",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(!this.httpProviders[e]){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;e[r]=this.createHttpProvider(r,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||or(e,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}}var $v=Object.defineProperty,Av=Object.defineProperties,Pv=Object.getOwnPropertyDescriptors,a0=Object.getOwnPropertySymbols,Tv=Object.prototype.hasOwnProperty,Nv=Object.prototype.propertyIsEnumerable,c0=(t,e,r)=>e in t?$v(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,bs=(t,e)=>{for(var r in e||(e={}))Tv.call(e,r)&&c0(t,r,e[r]);if(a0)for(var r of a0(e))Nv.call(e,r)&&c0(t,r,e[r]);return t},Oa=(t,e)=>Av(t,Pv(e));class $a{constructor(e){this.events=new xt.exports,this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.providerOpts=e,this.logger=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:Xn(Be.getDefaultLoggerOptions({level:e?.logger||e0}))}static async init(e){const r=new $a(e);return await r.initialize(),r}async request(e,r){const[n,i]=this.validateChain(r);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(n).request({request:bs({},e),chainId:`${n}:${i}`,topic:this.session.topic})}sendAsync(e,r,n){this.request(e,n).then(i=>r(null,i)).catch(i=>r(i,void 0))}async enable(){if(!this.client)throw new Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var e;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(e=this.session)==null?void 0:e.topic,reason:tt("USER_DISCONNECTED")}),await this.cleanup()}async connect(e){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}removeListener(e,r){this.events.removeListener(e,r)}off(e,r){this.events.off(e,r)}get isWalletConnect(){return!0}async pair(e){this.shouldAbortPairingAttempt=!1;let r=0;do{if(this.shouldAbortPairingAttempt)throw new Error("Pairing aborted");if(r>=this.maxPairingAttempts)throw new Error("Max auto pairing attempts reached");const{uri:n,approval:i}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});n&&(this.uri=n,this.events.emit("display_uri",n)),await i().then(s=>{this.session=s}).catch(s=>{if(s.message!==Gu)throw s;r++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(e,r){try{const[n,i]=this.validateChain(e);this.getProvider(n).setDefaultChain(i,r)}catch(n){if(!/Please call connect/.test(n.message))throw n}}async cleanupPendingPairings(e={}){this.logger.info("Cleaning up inactive pairings...");const r=this.client.pairing.getAll();if(ur(r)){for(const n of r)e.deletePairings?this.client.core.expirer.set(n.topic,0):await this.client.core.relayer.subscriber.unsubscribe(n.topic);this.logger.info(`Inactive pairings cleared: ${r.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore("namespaces")||{},this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.client.session.length){const e=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[e]),this.createProviders()}}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await xa.init({logger:this.providerOpts.logger||e0,relayUrl:this.providerOpts.relayUrl||uv,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,name:this.providerOpts.name}),this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw new Error("Sign Client not initialized");if(!this.session)throw new Error("Session not initialized. Please call connect() before enable()");[...new Set(Object.keys(this.session.namespaces).map(e=>o0(e)))].forEach(e=>{if(!this.session)return;const r=bv(e,this.session),n=vv(r),i=_v(this.namespaces,this.optionalNamespaces),s=Oa(bs({},i[e]),{accounts:r,chains:n});switch(e){case"eip155":this.rpcProviders[e]=new xv({client:this.client,namespace:s,events:this.events});break;case"solana":this.rpcProviders[e]=new Cv({client:this.client,namespace:s,events:this.events});break;case"cosmos":this.rpcProviders[e]=new Iv({client:this.client,namespace:s,events:this.events});break;case"polkadot":break;case"cip34":this.rpcProviders[e]=new Sv({client:this.client,namespace:s,events:this.events});break;case"elrond":this.rpcProviders[e]=new Dv({client:this.client,namespace:s,events:this.events});break;case"multiversx":this.rpcProviders[e]=new Ov({client:this.client,namespace:s,events:this.events});break}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",e=>{this.events.emit("session_ping",e)}),this.client.on("session_event",e=>{const{params:r}=e,{event:n}=r;n.name==="accountsChanged"?this.events.emit("accountsChanged",n.data):n.name==="chainChanged"?this.onChainChanged(r.chainId):this.events.emit(n.name,n.data),this.events.emit("session_event",e)}),this.client.on("session_update",({topic:e,params:r})=>{var n;const{namespaces:i}=r,s=(n=this.client)==null?void 0:n.session.get(e);this.session=Oa(bs({},s),{namespaces:i}),this.onSessionUpdate(),this.events.emit("session_update",{topic:e,params:r})}),this.client.on("session_delete",async e=>{await this.cleanup(),this.events.emit("session_delete",e),this.events.emit("disconnect",Oa(bs({},tt("USER_DISCONNECTED")),{data:e.topic}))}),this.on(zr.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){if(!this.rpcProviders[e])throw new Error(`Provider not found: ${e}`);return this.rpcProviders[e]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{var r;this.getProvider(e).updateNamespace((r=this.session)==null?void 0:r.namespaces[e])})}setNamespaces(e){const{namespaces:r,optionalNamespaces:n,sessionProperties:i}=e;if(!r||!Object.keys(r).length)throw new Error("Namespaces must be not empty");this.namespaces=r,this.optionalNamespaces=n,this.sessionProperties=i,this.persist("namespaces",r),this.persist("optionalNamespaces",n)}validateChain(e){const[r,n]=e?.split(":")||["",""];if(r&&!Object.keys(this.namespaces).includes(r))throw new Error(`Namespace '${r}' is not configured. Please call connect() first with namespace config.`);if(r&&n)return[r,n];const i=Object.keys(this.namespaces)[0],s=this.rpcProviders[i].getDefaultChain();return[i,s]}async requestAccounts(){const[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}onChainChanged(e,r=!1){const[n,i]=this.validateChain(e);r||this.getProvider(n).setDefaultChain(i),this.namespaces[n].defaultChain=i,this.persist("namespaces",this.namespaces),this.events.emit("chainChanged",i)}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0})}persist(e,r){this.client.core.storage.setItem(`${t0}/${e}`,r)}async getFromStore(e){return await this.client.core.storage.getItem(`${t0}/${e}`)}}const Rv=$a,Mv="wc",Lv="ethereum_provider",Uv=`${Mv}@${2}:${Lv}:`,jv="https://rpc.walletconnect.com/v1/",_s=["eth_sendTransaction","personal_sign"],Fv=["eth_accounts","eth_requestAccounts","eth_call","eth_getBalance","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],Es=["chainChanged","accountsChanged"],Bv=["message","disconnect","connect"];var kv=Object.defineProperty,Hv=Object.defineProperties,zv=Object.getOwnPropertyDescriptors,l0=Object.getOwnPropertySymbols,Wv=Object.prototype.hasOwnProperty,qv=Object.prototype.propertyIsEnumerable,h0=(t,e,r)=>e in t?kv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Aa=(t,e)=>{for(var r in e||(e={}))Wv.call(e,r)&&h0(t,r,e[r]);if(l0)for(var r of l0(e))qv.call(e,r)&&h0(t,r,e[r]);return t},u0=(t,e)=>Hv(t,zv(e));function Pa(t){return Number(t[0].split(":")[1])}function Ta(t){return`0x${t.toString(16)}`}function Vv(t){const{chains:e,optionalChains:r,methods:n,optionalMethods:i,events:s,optionalEvents:o,rpcMap:a}=t;if(!ur(e))throw new Error("Invalid chains");const c=e,l=n||_s,p=s||Es,m={[Pa(c)]:a[Pa(c)]},w={chains:c,methods:l,events:p,rpcMap:m},y=s?.filter(L=>!Es.includes(L)),E=n?.filter(L=>!_s.includes(L));if(!r&&!o&&!i&&!(y!=null&&y.length)&&!(E!=null&&E.length))return{required:w};const T=y?.length&&E?.length||!r,N={chains:[...new Set(T?c.concat(r||[]):r)],methods:[...new Set(l.concat(i||[]))],events:[...new Set(p.concat(o||[]))],rpcMap:a};return{required:w,optional:N}}class xs{constructor(){this.events=new xt.exports.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.STORAGE_KEY=Uv,this.on=(e,r)=>(this.events.on(e,r),this),this.once=(e,r)=>(this.events.once(e,r),this),this.removeListener=(e,r)=>(this.events.removeListener(e,r),this),this.off=(e,r)=>(this.events.off(e,r),this),this.parseAccount=e=>this.isCompatibleChainId(e)?this.parseAccountId(e).address:e,this.signer={},this.rpc={}}static async init(e){const r=new xs;return await r.initialize(e),r}async request(e){return await this.signer.request(e,this.formatChainId(this.chainId))}sendAsync(e,r){this.signer.sendAsync(e,r,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(e){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(e);const{required:r,optional:n}=Vv(this.rpc);try{const i=await new Promise(async(o,a)=>{var c;this.rpc.showQrModal&&((c=this.modal)==null||c.subscribeModal(l=>{!l.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),a(new Error("Connection request reset. Please try again.")))})),await this.signer.connect(u0(Aa({namespaces:{[this.namespace]:r}},n&&{optionalNamespaces:{[this.namespace]:n}}),{pairingTopic:e?.pairingTopic})).then(l=>{o(l)}).catch(l=>{a(new Error(l.message))})});if(!i)return;this.setChainIds(this.rpc.chains);const s=Cg(i.namespaces,[this.namespace]);this.setAccounts(s),this.events.emit("connect",{chainId:Ta(this.chainId)})}catch(i){throw this.signer.logger.error(i),i}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",e=>{const{params:r}=e,{event:n}=r;n.name==="accountsChanged"?(this.accounts=this.parseAccounts(n.data),this.events.emit("accountsChanged",this.accounts)):n.name==="chainChanged"?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit("session_event",e)}),this.signer.on("chainChanged",e=>{const r=parseInt(e);this.chainId=r,this.events.emit("chainChanged",Ta(this.chainId)),this.persist()}),this.signer.on("session_update",e=>{this.events.emit("session_update",e)}),this.signer.on("session_delete",e=>{this.reset(),this.events.emit("session_delete",e),this.events.emit("disconnect",u0(Aa({},tt("USER_DISCONNECTED")),{data:e.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",e=>{var r,n;this.rpc.showQrModal&&((r=this.modal)==null||r.closeModal(),(n=this.modal)==null||n.openModal({uri:e})),this.events.emit("display_uri",e)})}setHttpProvider(e){this.request({method:"wallet_switchEthereumChain",params:[{chainId:e.toString(16)}]})}isCompatibleChainId(e){return typeof e=="string"?e.startsWith(`${this.namespace}:`):!1}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(":")[1])}setChainIds(e){const r=e.filter(n=>this.isCompatibleChainId(n)).map(n=>this.parseChainId(n));r.length&&(this.chainId=r[0],this.events.emit("chainChanged",Ta(this.chainId)),this.persist())}setChainId(e){if(this.isCompatibleChainId(e)){const r=this.parseChainId(e);this.chainId=r,this.setHttpProvider(r)}}parseAccountId(e){const[r,n,i]=e.split(":");return{chainId:`${r}:${n}`,address:i}}setAccounts(e){this.accounts=e.filter(r=>this.parseChainId(this.parseAccountId(r).chainId)===this.chainId).map(r=>this.parseAccountId(r).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(e){var r,n;return{chains:((r=e.chains)==null?void 0:r.map(i=>this.formatChainId(i)))||[`${this.namespace}:1`],optionalChains:e.optionalChains?e.optionalChains.map(i=>this.formatChainId(i)):void 0,methods:e?.methods||_s,events:e?.events||Es,optionalMethods:e?.optionalMethods||[],optionalEvents:e?.optionalEvents||[],rpcMap:e?.rpcMap||this.buildRpcMap(e.chains.concat(e.optionalChains||[]),e.projectId),showQrModal:Boolean(e?.showQrModal),qrModalOptions:(n=e?.qrModalOptions)!=null?n:void 0,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,r){const n={};return e.forEach(i=>{n[i]=this.getRpcUrl(i,r)}),n}async initialize(e){if(this.rpc=this.getRpcConfig(e),this.chainId=Pa(this.rpc.chains),this.signer=await Rv.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal)try{const{Web3Modal:r}=await Promise.resolve().then(function(){return yb});this.modal=new r(Aa({walletConnectVersion:2,projectId:this.rpc.projectId,standaloneChains:this.rpc.chains},this.rpc.qrModalOptions))}catch{throw new Error("To use QR modal, please install @web3modal/standalone package")}}loadConnectOpts(e){if(!e)return;const{chains:r,optionalChains:n,rpcMap:i}=e;r&&ur(r)&&(this.rpc.chains=r.map(s=>this.formatChainId(s)),r.forEach(s=>{this.rpc.rpcMap[s]=i?.[s]||this.getRpcUrl(s)})),n&&ur(n)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=n?.map(s=>this.formatChainId(s)),n.forEach(s=>{this.rpc.rpcMap[s]=i?.[s]||this.getRpcUrl(s)}))}getRpcUrl(e,r){var n;return((n=this.rpc.rpcMap)==null?void 0:n[e])||`${jv}?chainId=eip155:${e}&projectId=${r||this.rpc.projectId}`}async loadPersistedSession(){if(!this.session)return;const e=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`);this.setChainIds(e?[this.formatChainId(e)]:this.session.namespaces[this.namespace].accounts),this.setAccounts(this.session.namespaces[this.namespace].accounts)}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(e){return typeof e=="string"||e instanceof String?[this.parseAccount(e)]:e.map(r=>this.parseAccount(r))}}const Kv=xs,Gv=Symbol(),d0=Object.getPrototypeOf,Na=new WeakMap,Zv=t=>t&&(Na.has(t)?Na.get(t):d0(t)===Object.prototype||d0(t)===Array.prototype),Yv=t=>Zv(t)&&t[Gv]||null,f0=(t,e=!0)=>{Na.set(t,e)},Ra=t=>typeof t=="object"&&t!==null,Wr=new WeakMap,Cs=new WeakSet,Jv=(t=Object.is,e=(l,p)=>new Proxy(l,p),r=l=>Ra(l)&&!Cs.has(l)&&(Array.isArray(l)||!(Symbol.iterator in l))&&!(l instanceof WeakMap)&&!(l instanceof WeakSet)&&!(l instanceof Error)&&!(l instanceof Number)&&!(l instanceof Date)&&!(l instanceof String)&&!(l instanceof RegExp)&&!(l instanceof ArrayBuffer),n=l=>{switch(l.status){case"fulfilled":return l.value;case"rejected":throw l.reason;default:throw l}},i=new WeakMap,s=(l,p,m=n)=>{const w=i.get(l);if(w?.[0]===p)return w[1];const y=Array.isArray(l)?[]:Object.create(Object.getPrototypeOf(l));return f0(y,!0),i.set(l,[p,y]),Reflect.ownKeys(l).forEach(E=>{if(Object.getOwnPropertyDescriptor(y,E))return;const T=Reflect.get(l,E),N={value:T,enumerable:!0,configurable:!0};if(Cs.has(T))f0(T,!1);else if(T instanceof Promise)delete N.value,N.get=()=>m(T);else if(Wr.has(T)){const[L,C]=Wr.get(T);N.value=s(L,C(),m)}Object.defineProperty(y,E,N)}),y},o=new WeakMap,a=[1,1],c=l=>{if(!Ra(l))throw new Error("object required");const p=o.get(l);if(p)return p;let m=a[0];const w=new Set,y=(H,B=++a[0])=>{m!==B&&(m=B,w.forEach(q=>q(H,B)))};let E=a[1];const T=(H=++a[1])=>(E!==H&&!w.size&&(E=H,L.forEach(([B])=>{const q=B[1](H);q>m&&(m=q)})),m),N=H=>(B,q)=>{const X=[...B];X[1]=[H,...X[1]],y(X,q)},L=new Map,C=(H,B)=>{if(void 0!=="production"&&L.has(H))throw new Error("prop listener already exists");if(w.size){const q=B[3](N(H));L.set(H,[B,q])}else L.set(H,[B])},D=H=>{var B;const q=L.get(H);q&&(L.delete(H),(B=q[1])==null||B.call(q))},v=H=>(w.add(H),w.size===1&&L.forEach(([q,X],te)=>{if(void 0!=="production"&&X)throw new Error("remove already exists");const x=q[3](N(te));L.set(te,[q,x])}),()=>{w.delete(H),w.size===0&&L.forEach(([q,X],te)=>{X&&(X(),L.set(te,[q]))})}),S=Array.isArray(l)?[]:Object.create(Object.getPrototypeOf(l)),u=e(S,{deleteProperty(H,B){const q=Reflect.get(H,B);D(B);const X=Reflect.deleteProperty(H,B);return X&&y(["delete",[B],q]),X},set(H,B,q,X){const te=Reflect.has(H,B),x=Reflect.get(H,B,X);if(te&&(t(x,q)||o.has(q)&&t(x,o.get(q))))return!0;D(B),Ra(q)&&(q=Yv(q)||q);let $=q;if(q instanceof Promise)q.then(K=>{q.status="fulfilled",q.value=K,y(["resolve",[B],K])}).catch(K=>{q.status="rejected",q.reason=K,y(["reject",[B],K])});else{!Wr.has(q)&&r(q)&&($=c(q));const K=!Cs.has($)&&Wr.get($);K&&C(B,K)}return Reflect.set(H,B,$,X),y(["set",[B],q,x]),!0}});o.set(l,u);const _=[S,T,s,v];return Wr.set(u,_),Reflect.ownKeys(l).forEach(H=>{const B=Object.getOwnPropertyDescriptor(l,H);"value"in B&&(u[H]=l[H],delete B.value,delete B.writable),Object.defineProperty(S,H,B)}),u})=>[c,Wr,Cs,t,e,r,n,i,s,o,a],[Xv]=Jv();function Er(t={}){return Xv(t)}function qr(t,e,r){const n=Wr.get(t);void 0!=="production"&&!n&&console.warn("Please use proxy object");let i;const s=[],o=n[3];let a=!1;const l=o(p=>{if(s.push(p),r){e(s.splice(0));return}i||(i=Promise.resolve().then(()=>{i=void 0,a&&e(s.splice(0))}))});return a=!0,()=>{a=!1,l()}}var p0={},Is={};Is.byteLength=tb,Is.toByteArray=nb,Is.fromByteArray=ob;for(var ar=[],Gt=[],Qv=typeof Uint8Array<"u"?Uint8Array:Array,Ma="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",En=0,eb=Ma.length;En<eb;++En)ar[En]=Ma[En],Gt[Ma.charCodeAt(En)]=En;Gt["-".charCodeAt(0)]=62,Gt["_".charCodeAt(0)]=63;function g0(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function tb(t){var e=g0(t),r=e[0],n=e[1];return(r+n)*3/4-n}function rb(t,e,r){return(e+r)*3/4-r}function nb(t){var e,r=g0(t),n=r[0],i=r[1],s=new Qv(rb(t,n,i)),o=0,a=i>0?n-4:n,c;for(c=0;c<a;c+=4)e=Gt[t.charCodeAt(c)]<<18|Gt[t.charCodeAt(c+1)]<<12|Gt[t.charCodeAt(c+2)]<<6|Gt[t.charCodeAt(c+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Gt[t.charCodeAt(c)]<<2|Gt[t.charCodeAt(c+1)]>>4,s[o++]=e&255),i===1&&(e=Gt[t.charCodeAt(c)]<<10|Gt[t.charCodeAt(c+1)]<<4|Gt[t.charCodeAt(c+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function ib(t){return ar[t>>18&63]+ar[t>>12&63]+ar[t>>6&63]+ar[t&63]}function sb(t,e,r){for(var n,i=[],s=e;s<r;s+=3)n=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),i.push(ib(n));return i.join("")}function ob(t){for(var e,r=t.length,n=r%3,i=[],s=16383,o=0,a=r-n;o<a;o+=s)i.push(sb(t,o,o+s>a?a:o+s));return n===1?(e=t[r-1],i.push(ar[e>>2]+ar[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],i.push(ar[e>>10]+ar[e>>4&63]+ar[e<<2&63]+"=")),i.join("")}var La={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */La.read=function(t,e,r,n,i){var s,o,a=i*8-n-1,c=(1<<a)-1,l=c>>1,p=-7,m=r?i-1:0,w=r?-1:1,y=t[e+m];for(m+=w,s=y&(1<<-p)-1,y>>=-p,p+=a;p>0;s=s*256+t[e+m],m+=w,p-=8);for(o=s&(1<<-p)-1,s>>=-p,p+=n;p>0;o=o*256+t[e+m],m+=w,p-=8);if(s===0)s=1-l;else{if(s===c)return o?NaN:(y?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-l}return(y?-1:1)*o*Math.pow(2,s-n)},La.write=function(t,e,r,n,i,s){var o,a,c,l=s*8-i-1,p=(1<<l)-1,m=p>>1,w=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,y=n?0:s-1,E=n?1:-1,T=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=p):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+m>=1?e+=w/c:e+=w*Math.pow(2,1-m),e*c>=2&&(o++,c/=2),o+m>=p?(a=0,o=p):o+m>=1?(a=(e*c-1)*Math.pow(2,i),o=o+m):(a=e*Math.pow(2,m-1)*Math.pow(2,i),o=0));i>=8;t[r+y]=a&255,y+=E,a/=256,i-=8);for(o=o<<i|a,l+=i;l>0;t[r+y]=o&255,y+=E,o/=256,l-=8);t[r+y-E]|=T*128};/*!
|
|
72
|
+
***************************************************************************** */var oa=function(t,e){return oa=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},oa(t,e)};function Vm(t,e){oa(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var aa=function(){return aa=Object.assign||function(e){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},aa.apply(this,arguments)};function Km(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]]);return r}function Gm(t,e,r,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,r,s):o(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s}function Zm(t,e){return function(r,n){e(r,n,t)}}function Ym(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function Jm(t,e,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(p){try{l(n.next(p))}catch(m){o(m)}}function c(p){try{l(n.throw(p))}catch(m){o(m)}}function l(p){p.done?s(p.value):i(p.value).then(a,c)}l((n=n.apply(t,e||[])).next())})}function Xm(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(p){return c([l,p])}}function c(l){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=l[0]&2?i.return:l[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,l[1])).done)return s;switch(i=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return r.label++,{value:l[1],done:!1};case 5:r.label++,i=l[1],l=[0];continue;case 7:l=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){r=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){r.label=l[1];break}if(l[0]===6&&r.label<s[1]){r.label=s[1],s=l;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(l);break}s[2]&&r.ops.pop(),r.trys.pop();continue}l=e.call(t,r)}catch(p){l=[6,p],i=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Qm(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}function ew(t,e){for(var r in t)r!=="default"&&!e.hasOwnProperty(r)&&(e[r]=t[r])}function ca(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function su(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s}function tw(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(su(arguments[e]));return t}function rw(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;for(var n=Array(t),i=0,e=0;e<r;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)n[i]=s[o];return n}function fi(t){return this instanceof fi?(this.v=t,this):new fi(t)}function nw(t,e,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(t,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(w){n[w]&&(i[w]=function(y){return new Promise(function(E,T){s.push([w,y,E,T])>1||a(w,y)})})}function a(w,y){try{c(n[w](y))}catch(E){m(s[0][3],E)}}function c(w){w.value instanceof fi?Promise.resolve(w.value.v).then(l,p):m(s[0][2],w)}function l(w){a("next",w)}function p(w){a("throw",w)}function m(w,y){w(y),s.shift(),s.length&&a(s[0][0],s[0][1])}}function iw(t){var e,r;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,s){e[i]=t[i]?function(o){return(r=!r)?{value:fi(t[i](o)),done:i==="return"}:s?s(o):o}:s}}function sw(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],r;return e?e.call(t):(t=typeof ca=="function"?ca(t):t[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(s){r[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value)})}}function i(s,o,a,c){Promise.resolve(c).then(function(l){s({value:l,done:a})},o)}}function ow(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function aw(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function cw(t){return t&&t.__esModule?t:{default:t}}function lw(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function hw(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r}var uw=Object.freeze({__proto__:null,__extends:Vm,get __assign(){return aa},__rest:Km,__decorate:Gm,__param:Zm,__metadata:Ym,__awaiter:Jm,__generator:Xm,__createBinding:Qm,__exportStar:ew,__values:ca,__read:su,__spread:tw,__spreadArrays:rw,__await:fi,__asyncGenerator:nw,__asyncDelegator:iw,__asyncValues:sw,__makeTemplateObject:ow,__importStar:aw,__importDefault:cw,__classPrivateFieldGet:lw,__classPrivateFieldSet:hw}),dw=Tr(uw),dr={},ou;function fw(){if(ou)return dr;ou=1,Object.defineProperty(dr,"__esModule",{value:!0}),dr.isBrowserCryptoAvailable=dr.getSubtleCrypto=dr.getBrowerCrypto=void 0;function t(){return dt?.crypto||dt?.msCrypto||{}}dr.getBrowerCrypto=t;function e(){const n=t();return n.subtle||n.webkitSubtle}dr.getSubtleCrypto=e;function r(){return!!t()&&!!e()}return dr.isBrowserCryptoAvailable=r,dr}var fr={},au;function pw(){if(au)return fr;au=1,Object.defineProperty(fr,"__esModule",{value:!0}),fr.isBrowser=fr.isNode=fr.isReactNative=void 0;function t(){return typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"}fr.isReactNative=t;function e(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}fr.isNode=e;function r(){return!t()&&!e()}return fr.isBrowser=r,fr}(function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=dw;e.__exportStar(fw(),t),e.__exportStar(pw(),t)})(iu);function gw(){const t=Date.now()*Math.pow(10,3),e=Math.floor(Math.random()*Math.pow(10,3));return t+e}function ps(t,e,r){return{id:r||gw(),jsonrpc:"2.0",method:t,params:e}}function la(t,e){return{id:t,jsonrpc:"2.0",result:e}}function gs(t,e,r){return{id:t,jsonrpc:"2.0",error:mw(e,r)}}function mw(t,e){return typeof t>"u"?ru(eu):(typeof t=="string"&&(t=Object.assign(Object.assign({},ru(sa)),{message:t})),typeof e<"u"&&(t.data=e),Wm(t.code)&&(t=qm(t.code)),t)}class ww{}class yw extends ww{constructor(){super()}}class vw extends yw{constructor(e){super()}}const bw="^https?:",_w="^wss?:";function Ew(t){const e=t.match(new RegExp(/^\w+:/,"gi"));if(!(!e||!e.length))return e[0]}function cu(t,e){const r=Ew(t);return typeof r>"u"?!1:new RegExp(e).test(r)}function lu(t){return cu(t,bw)}function hu(t){return cu(t,_w)}function xw(t){return new RegExp("wss?://localhost(:d{2,5})?").test(t)}function uu(t){return typeof t=="object"&&"id"in t&&"jsonrpc"in t&&t.jsonrpc==="2.0"}function ha(t){return uu(t)&&"method"in t}function ua(t){return uu(t)&&(pr(t)||Qt(t))}function pr(t){return"result"in t}function Qt(t){return"error"in t}class Hr extends vw{constructor(e){super(e),this.events=new xt.exports.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}off(e,r){this.events.off(e,r)}removeListener(e,r){this.events.removeListener(e,r)}async request(e,r){return this.requestStrict(ps(e.method,e.params||[]),r)}async requestStrict(e,r){return new Promise(async(n,i)=>{if(!this.connection.connected)try{await this.open()}catch(s){i(s)}this.events.on(`${e.id}`,s=>{Qt(s)?i(s.error):n(s.result)});try{await this.connection.send(e,r)}catch(s){i(s)}})}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),ua(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&e.code===3e3&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),typeof e=="string"&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",e=>this.onPayload(e)),this.connection.on("close",e=>this.onClose(e)),this.connection.on("error",e=>this.events.emit("error",e)),this.connection.on("register_error",e=>this.onClose()),this.hasRegisteredEventListeners=!0)}}const du=10,Cw=()=>typeof global<"u"&&typeof global.WebSocket<"u"?global.WebSocket:typeof window<"u"&&typeof window.WebSocket<"u"?window.WebSocket:require("ws"),Iw=()=>typeof window<"u",Sw=Cw();class Dw{constructor(e){if(this.url=e,this.events=new xt.exports.EventEmitter,this.registering=!1,!hu(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<"u"}get connecting(){return this.registering}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}off(e,r){this.events.off(e,r)}removeListener(e,r){this.events.removeListener(e,r)}async open(e=this.url){await this.register(e)}async close(){return new Promise((e,r)=>{if(typeof this.socket>"u"){r(new Error("Connection already closed"));return}this.socket.onclose=n=>{this.onClose(n),e()},this.socket.close()})}async send(e,r){typeof this.socket>"u"&&(this.socket=await this.register());try{this.socket.send(ui(e))}catch(n){this.onError(e.id,n)}}register(e=this.url){if(!hu(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const r=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=r||this.events.listenerCount("open")>=r)&&this.events.setMaxListeners(r+1),new Promise((n,i)=>{this.events.once("register_error",s=>{this.resetMaxListeners(),i(s)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.socket>"u")return i(new Error("WebSocket connection is missing or invalid"));n(this.socket)})})}return this.url=e,this.registering=!0,new Promise((r,n)=>{const i=iu.isReactNative()?void 0:{rejectUnauthorized:!xw(e)},s=new Sw(e,[],i);Iw()?s.onerror=o=>{const a=o;n(this.emitError(a.error))}:s.on("error",o=>{n(this.emitError(o))}),s.onopen=()=>{this.onOpen(s),r(s)}})}onOpen(e){e.onmessage=r=>this.onPayload(r),e.onclose=r=>this.onClose(r),this.socket=e,this.registering=!1,this.events.emit("open")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit("close",e)}onPayload(e){if(typeof e.data>"u")return;const r=typeof e.data=="string"?na(e.data):e.data;this.events.emit("payload",r)}onError(e,r){const n=this.parseError(r),i=n.message||n.toString(),s=gs(e,i);this.events.emit("payload",s)}parseError(e,r=this.url){return nu(e,r,"WS")}resetMaxListeners(){this.events.getMaxListeners()>du&&this.events.setMaxListeners(du)}emitError(e){const r=this.parseError(new Error(e?.message||`WebSocket connection failed for URL: ${this.url}`));return this.events.emit("register_error",r),r}}var da={exports:{}};(function(t,e){var r=200,n="__lodash_hash_undefined__",i=1,s=2,o=9007199254740991,a="[object Arguments]",c="[object Array]",l="[object AsyncFunction]",p="[object Boolean]",m="[object Date]",w="[object Error]",y="[object Function]",E="[object GeneratorFunction]",T="[object Map]",N="[object Number]",L="[object Null]",C="[object Object]",D="[object Promise]",v="[object Proxy]",S="[object RegExp]",O="[object Set]",u="[object String]",_="[object Symbol]",H="[object Undefined]",B="[object WeakMap]",q="[object ArrayBuffer]",X="[object DataView]",te="[object Float32Array]",x="[object Float64Array]",$="[object Int8Array]",K="[object Int16Array]",Y="[object Int32Array]",W="[object Uint8Array]",z="[object Uint8ClampedArray]",J="[object Uint16Array]",G="[object Uint32Array]",ce=/[\\^$.*+?()[\]{}|]/g,Q=/^\[object .+?Constructor\]$/,pe=/^(?:0|[1-9]\d*)$/,oe={};oe[te]=oe[x]=oe[$]=oe[K]=oe[Y]=oe[W]=oe[z]=oe[J]=oe[G]=!0,oe[a]=oe[c]=oe[q]=oe[p]=oe[X]=oe[m]=oe[w]=oe[y]=oe[T]=oe[N]=oe[C]=oe[S]=oe[O]=oe[u]=oe[B]=!1;var Ce=typeof dt=="object"&&dt&&dt.Object===Object&&dt,F=typeof self=="object"&&self&&self.Object===Object&&self,j=Ce||F||Function("return this")(),R=e&&!e.nodeType&&e,f=R&&!0&&t&&!t.nodeType&&t,A=f&&f.exports===R,ee=A&&Ce.process,ne=function(){try{return ee&&ee.binding&&ee.binding("util")}catch{}}(),Ee=ne&&ne.isTypedArray;function Le(I,M){for(var Z=-1,ae=I==null?0:I.length,We=0,Se=[];++Z<ae;){var Qe=I[Z];M(Qe,Z,I)&&(Se[We++]=Qe)}return Se}function Pe(I,M){for(var Z=-1,ae=M.length,We=I.length;++Z<ae;)I[We+Z]=M[Z];return I}function Ue(I,M){for(var Z=-1,ae=I==null?0:I.length;++Z<ae;)if(M(I[Z],Z,I))return!0;return!1}function Ge(I,M){for(var Z=-1,ae=Array(I);++Z<I;)ae[Z]=M(Z);return ae}function Ve(I){return function(M){return I(M)}}function Te(I,M){return I.has(M)}function Oe(I,M){return I?.[M]}function me(I){var M=-1,Z=Array(I.size);return I.forEach(function(ae,We){Z[++M]=[We,ae]}),Z}function Ie(I,M){return function(Z){return I(M(Z))}}function $e(I){var M=-1,Z=Array(I.size);return I.forEach(function(ae){Z[++M]=ae}),Z}var ge=Array.prototype,xe=Function.prototype,g=Object.prototype,h=j["__core-js_shared__"],d=xe.toString,b=g.hasOwnProperty,P=function(){var I=/[^.]+$/.exec(h&&h.keys&&h.keys.IE_PROTO||"");return I?"Symbol(src)_1."+I:""}(),U=g.toString,k=RegExp("^"+d.call(b).replace(ce,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),se=A?j.Buffer:void 0,he=j.Symbol,Re=j.Uint8Array,je=g.propertyIsEnumerable,Me=ge.splice,Wt=he?he.toStringTag:void 0,an=Object.getOwnPropertySymbols,Wi=se?se.isBuffer:void 0,so=Ie(Object.keys,Object),rt=zn(j,"DataView"),Je=zn(j,"Map"),nt=zn(j,"Promise"),it=zn(j,"Set"),st=zn(j,"WeakMap"),Xe=zn(Object,"create"),gt=ln(rt),mt=ln(Je),wt=ln(nt),yt=ln(it),vt=ln(st),ut=he?he.prototype:void 0,ot=ut?ut.valueOf:void 0;function Ke(I){var M=-1,Z=I==null?0:I.length;for(this.clear();++M<Z;){var ae=I[M];this.set(ae[0],ae[1])}}function bt(){this.__data__=Xe?Xe(null):{},this.size=0}function _t(I){var M=this.has(I)&&delete this.__data__[I];return this.size-=M?1:0,M}function PE(I){var M=this.__data__;if(Xe){var Z=M[I];return Z===n?void 0:Z}return b.call(M,I)?M[I]:void 0}function TE(I){var M=this.__data__;return Xe?M[I]!==void 0:b.call(M,I)}function NE(I,M){var Z=this.__data__;return this.size+=this.has(I)?0:1,Z[I]=Xe&&M===void 0?n:M,this}Ke.prototype.clear=bt,Ke.prototype.delete=_t,Ke.prototype.get=PE,Ke.prototype.has=TE,Ke.prototype.set=NE;function wr(I){var M=-1,Z=I==null?0:I.length;for(this.clear();++M<Z;){var ae=I[M];this.set(ae[0],ae[1])}}function RE(){this.__data__=[],this.size=0}function ME(I){var M=this.__data__,Z=ao(M,I);if(Z<0)return!1;var ae=M.length-1;return Z==ae?M.pop():Me.call(M,Z,1),--this.size,!0}function LE(I){var M=this.__data__,Z=ao(M,I);return Z<0?void 0:M[Z][1]}function UE(I){return ao(this.__data__,I)>-1}function jE(I,M){var Z=this.__data__,ae=ao(Z,I);return ae<0?(++this.size,Z.push([I,M])):Z[ae][1]=M,this}wr.prototype.clear=RE,wr.prototype.delete=ME,wr.prototype.get=LE,wr.prototype.has=UE,wr.prototype.set=jE;function cn(I){var M=-1,Z=I==null?0:I.length;for(this.clear();++M<Z;){var ae=I[M];this.set(ae[0],ae[1])}}function FE(){this.size=0,this.__data__={hash:new Ke,map:new(Je||wr),string:new Ke}}function BE(I){var M=co(this,I).delete(I);return this.size-=M?1:0,M}function kE(I){return co(this,I).get(I)}function HE(I){return co(this,I).has(I)}function zE(I,M){var Z=co(this,I),ae=Z.size;return Z.set(I,M),this.size+=Z.size==ae?0:1,this}cn.prototype.clear=FE,cn.prototype.delete=BE,cn.prototype.get=kE,cn.prototype.has=HE,cn.prototype.set=zE;function oo(I){var M=-1,Z=I==null?0:I.length;for(this.__data__=new cn;++M<Z;)this.add(I[M])}function WE(I){return this.__data__.set(I,n),this}function qE(I){return this.__data__.has(I)}oo.prototype.add=oo.prototype.push=WE,oo.prototype.has=qE;function $r(I){var M=this.__data__=new wr(I);this.size=M.size}function VE(){this.__data__=new wr,this.size=0}function KE(I){var M=this.__data__,Z=M.delete(I);return this.size=M.size,Z}function GE(I){return this.__data__.get(I)}function ZE(I){return this.__data__.has(I)}function YE(I,M){var Z=this.__data__;if(Z instanceof wr){var ae=Z.__data__;if(!Je||ae.length<r-1)return ae.push([I,M]),this.size=++Z.size,this;Z=this.__data__=new cn(ae)}return Z.set(I,M),this.size=Z.size,this}$r.prototype.clear=VE,$r.prototype.delete=KE,$r.prototype.get=GE,$r.prototype.has=ZE,$r.prototype.set=YE;function JE(I,M){var Z=lo(I),ae=!Z&&d7(I),We=!Z&&!ae&&Vc(I),Se=!Z&&!ae&&!We&&ef(I),Qe=Z||ae||We||Se,Et=Qe?Ge(I.length,String):[],St=Et.length;for(var Ze in I)(M||b.call(I,Ze))&&!(Qe&&(Ze=="length"||We&&(Ze=="offset"||Ze=="parent")||Se&&(Ze=="buffer"||Ze=="byteLength"||Ze=="byteOffset")||a7(Ze,St)))&&Et.push(Ze);return Et}function ao(I,M){for(var Z=I.length;Z--;)if(Yd(I[Z][0],M))return Z;return-1}function XE(I,M,Z){var ae=M(I);return lo(I)?ae:Pe(ae,Z(I))}function qi(I){return I==null?I===void 0?H:L:Wt&&Wt in Object(I)?s7(I):u7(I)}function Vd(I){return Vi(I)&&qi(I)==a}function Kd(I,M,Z,ae,We){return I===M?!0:I==null||M==null||!Vi(I)&&!Vi(M)?I!==I&&M!==M:QE(I,M,Z,ae,Kd,We)}function QE(I,M,Z,ae,We,Se){var Qe=lo(I),Et=lo(M),St=Qe?c:Ar(I),Ze=Et?c:Ar(M);St=St==a?C:St,Ze=Ze==a?C:Ze;var qt=St==C,er=Ze==C,$t=St==Ze;if($t&&Vc(I)){if(!Vc(M))return!1;Qe=!0,qt=!1}if($t&&!qt)return Se||(Se=new $r),Qe||ef(I)?Gd(I,M,Z,ae,We,Se):n7(I,M,St,Z,ae,We,Se);if(!(Z&i)){var Yt=qt&&b.call(I,"__wrapped__"),Jt=er&&b.call(M,"__wrapped__");if(Yt||Jt){var Pr=Yt?I.value():I,yr=Jt?M.value():M;return Se||(Se=new $r),We(Pr,yr,Z,ae,Se)}}return $t?(Se||(Se=new $r),i7(I,M,Z,ae,We,Se)):!1}function e7(I){if(!Qd(I)||l7(I))return!1;var M=Jd(I)?k:Q;return M.test(ln(I))}function t7(I){return Vi(I)&&Xd(I.length)&&!!oe[qi(I)]}function r7(I){if(!h7(I))return so(I);var M=[];for(var Z in Object(I))b.call(I,Z)&&Z!="constructor"&&M.push(Z);return M}function Gd(I,M,Z,ae,We,Se){var Qe=Z&i,Et=I.length,St=M.length;if(Et!=St&&!(Qe&&St>Et))return!1;var Ze=Se.get(I);if(Ze&&Se.get(M))return Ze==M;var qt=-1,er=!0,$t=Z&s?new oo:void 0;for(Se.set(I,M),Se.set(M,I);++qt<Et;){var Yt=I[qt],Jt=M[qt];if(ae)var Pr=Qe?ae(Jt,Yt,qt,M,I,Se):ae(Yt,Jt,qt,I,M,Se);if(Pr!==void 0){if(Pr)continue;er=!1;break}if($t){if(!Ue(M,function(yr,hn){if(!Te($t,hn)&&(Yt===yr||We(Yt,yr,Z,ae,Se)))return $t.push(hn)})){er=!1;break}}else if(!(Yt===Jt||We(Yt,Jt,Z,ae,Se))){er=!1;break}}return Se.delete(I),Se.delete(M),er}function n7(I,M,Z,ae,We,Se,Qe){switch(Z){case X:if(I.byteLength!=M.byteLength||I.byteOffset!=M.byteOffset)return!1;I=I.buffer,M=M.buffer;case q:return!(I.byteLength!=M.byteLength||!Se(new Re(I),new Re(M)));case p:case m:case N:return Yd(+I,+M);case w:return I.name==M.name&&I.message==M.message;case S:case u:return I==M+"";case T:var Et=me;case O:var St=ae&i;if(Et||(Et=$e),I.size!=M.size&&!St)return!1;var Ze=Qe.get(I);if(Ze)return Ze==M;ae|=s,Qe.set(I,M);var qt=Gd(Et(I),Et(M),ae,We,Se,Qe);return Qe.delete(I),qt;case _:if(ot)return ot.call(I)==ot.call(M)}return!1}function i7(I,M,Z,ae,We,Se){var Qe=Z&i,Et=Zd(I),St=Et.length,Ze=Zd(M),qt=Ze.length;if(St!=qt&&!Qe)return!1;for(var er=St;er--;){var $t=Et[er];if(!(Qe?$t in M:b.call(M,$t)))return!1}var Yt=Se.get(I);if(Yt&&Se.get(M))return Yt==M;var Jt=!0;Se.set(I,M),Se.set(M,I);for(var Pr=Qe;++er<St;){$t=Et[er];var yr=I[$t],hn=M[$t];if(ae)var tf=Qe?ae(hn,yr,$t,M,I,Se):ae(yr,hn,$t,I,M,Se);if(!(tf===void 0?yr===hn||We(yr,hn,Z,ae,Se):tf)){Jt=!1;break}Pr||(Pr=$t=="constructor")}if(Jt&&!Pr){var ho=I.constructor,uo=M.constructor;ho!=uo&&"constructor"in I&&"constructor"in M&&!(typeof ho=="function"&&ho instanceof ho&&typeof uo=="function"&&uo instanceof uo)&&(Jt=!1)}return Se.delete(I),Se.delete(M),Jt}function Zd(I){return XE(I,g7,o7)}function co(I,M){var Z=I.__data__;return c7(M)?Z[typeof M=="string"?"string":"hash"]:Z.map}function zn(I,M){var Z=Oe(I,M);return e7(Z)?Z:void 0}function s7(I){var M=b.call(I,Wt),Z=I[Wt];try{I[Wt]=void 0;var ae=!0}catch{}var We=U.call(I);return ae&&(M?I[Wt]=Z:delete I[Wt]),We}var o7=an?function(I){return I==null?[]:(I=Object(I),Le(an(I),function(M){return je.call(I,M)}))}:m7,Ar=qi;(rt&&Ar(new rt(new ArrayBuffer(1)))!=X||Je&&Ar(new Je)!=T||nt&&Ar(nt.resolve())!=D||it&&Ar(new it)!=O||st&&Ar(new st)!=B)&&(Ar=function(I){var M=qi(I),Z=M==C?I.constructor:void 0,ae=Z?ln(Z):"";if(ae)switch(ae){case gt:return X;case mt:return T;case wt:return D;case yt:return O;case vt:return B}return M});function a7(I,M){return M=M??o,!!M&&(typeof I=="number"||pe.test(I))&&I>-1&&I%1==0&&I<M}function c7(I){var M=typeof I;return M=="string"||M=="number"||M=="symbol"||M=="boolean"?I!=="__proto__":I===null}function l7(I){return!!P&&P in I}function h7(I){var M=I&&I.constructor,Z=typeof M=="function"&&M.prototype||g;return I===Z}function u7(I){return U.call(I)}function ln(I){if(I!=null){try{return d.call(I)}catch{}try{return I+""}catch{}}return""}function Yd(I,M){return I===M||I!==I&&M!==M}var d7=Vd(function(){return arguments}())?Vd:function(I){return Vi(I)&&b.call(I,"callee")&&!je.call(I,"callee")},lo=Array.isArray;function f7(I){return I!=null&&Xd(I.length)&&!Jd(I)}var Vc=Wi||w7;function p7(I,M){return Kd(I,M)}function Jd(I){if(!Qd(I))return!1;var M=qi(I);return M==y||M==E||M==l||M==v}function Xd(I){return typeof I=="number"&&I>-1&&I%1==0&&I<=o}function Qd(I){var M=typeof I;return I!=null&&(M=="object"||M=="function")}function Vi(I){return I!=null&&typeof I=="object"}var ef=Ee?Ve(Ee):t7;function g7(I){return f7(I)?JE(I):r7(I)}function m7(){return[]}function w7(){return!1}t.exports=p7})(da,da.exports);var Ow=da.exports,$w=Object.defineProperty,fu=Object.getOwnPropertySymbols,Aw=Object.prototype.hasOwnProperty,Pw=Object.prototype.propertyIsEnumerable,pu=(t,e,r)=>e in t?$w(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Rt=(t,e)=>{for(var r in e||(e={}))Aw.call(e,r)&&pu(t,r,e[r]);if(fu)for(var r of fu(e))Pw.call(e,r)&&pu(t,r,e[r]);return t};function Tw(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),l=Math.log(a)/Math.log(256),p=Math.log(256)/Math.log(a);function m(E){if(E instanceof Uint8Array||(ArrayBuffer.isView(E)?E=new Uint8Array(E.buffer,E.byteOffset,E.byteLength):Array.isArray(E)&&(E=Uint8Array.from(E))),!(E instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(E.length===0)return"";for(var T=0,N=0,L=0,C=E.length;L!==C&&E[L]===0;)L++,T++;for(var D=(C-L)*p+1>>>0,v=new Uint8Array(D);L!==C;){for(var S=E[L],O=0,u=D-1;(S!==0||O<N)&&u!==-1;u--,O++)S+=256*v[u]>>>0,v[u]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");N=O,L++}for(var _=D-N;_!==D&&v[_]===0;)_++;for(var H=c.repeat(T);_<D;++_)H+=t.charAt(v[_]);return H}function w(E){if(typeof E!="string")throw new TypeError("Expected String");if(E.length===0)return new Uint8Array;var T=0;if(E[T]!==" "){for(var N=0,L=0;E[T]===c;)N++,T++;for(var C=(E.length-T)*l+1>>>0,D=new Uint8Array(C);E[T];){var v=r[E.charCodeAt(T)];if(v===255)return;for(var S=0,O=C-1;(v!==0||S<L)&&O!==-1;O--,S++)v+=a*D[O]>>>0,D[O]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");L=S,T++}if(E[T]!==" "){for(var u=C-L;u!==C&&D[u]===0;)u++;for(var _=new Uint8Array(N+(C-u)),H=N;u!==C;)_[H++]=D[u++];return _}}}function y(E){var T=w(E);if(T)return T;throw new Error(`Non-${e} character`)}return{encode:m,decodeUnsafe:w,decode:y}}var Nw=Tw,Rw=Nw;const gu=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")},Mw=t=>new TextEncoder().encode(t),Lw=t=>new TextDecoder().decode(t);class Uw{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class jw{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return mu(this,e)}}class Fw{constructor(e){this.decoders=e}or(e){return mu(this,e)}decode(e){const r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const mu=(t,e)=>new Fw(Rt(Rt({},t.decoders||{[t.prefix]:t}),e.decoders||{[e.prefix]:e}));class Bw{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Uw(e,r,n),this.decoder=new jw(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ms=({name:t,prefix:e,encode:r,decode:n})=>new Bw(t,e,r,n),pi=({prefix:t,name:e,alphabet:r})=>{const{encode:n,decode:i}=Rw(r,e);return ms({prefix:t,name:e,encode:n,decode:s=>gu(i(s))})},kw=(t,e,r,n)=>{const i={};for(let p=0;p<e.length;++p)i[e[p]]=p;let s=t.length;for(;t[s-1]==="=";)--s;const o=new Uint8Array(s*r/8|0);let a=0,c=0,l=0;for(let p=0;p<s;++p){const m=i[t[p]];if(m===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|m,a+=r,a>=8&&(a-=8,o[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},Hw=(t,e,r)=>{const n=e[e.length-1]==="=",i=(1<<r)-1;let s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},It=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>ms({prefix:e,name:t,encode(i){return Hw(i,n,r)},decode(i){return kw(i,n,r,t)}}),zw=ms({prefix:"\0",name:"identity",encode:t=>Lw(t),decode:t=>Mw(t)});var Ww=Object.freeze({__proto__:null,identity:zw});const qw=It({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Vw=Object.freeze({__proto__:null,base2:qw});const Kw=It({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Gw=Object.freeze({__proto__:null,base8:Kw});const Zw=pi({prefix:"9",name:"base10",alphabet:"0123456789"});var Yw=Object.freeze({__proto__:null,base10:Zw});const Jw=It({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Xw=It({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Qw=Object.freeze({__proto__:null,base16:Jw,base16upper:Xw});const e5=It({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),t5=It({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),r5=It({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),n5=It({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),i5=It({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),s5=It({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),o5=It({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),a5=It({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),c5=It({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var l5=Object.freeze({__proto__:null,base32:e5,base32upper:t5,base32pad:r5,base32padupper:n5,base32hex:i5,base32hexupper:s5,base32hexpad:o5,base32hexpadupper:a5,base32z:c5});const h5=pi({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),u5=pi({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var d5=Object.freeze({__proto__:null,base36:h5,base36upper:u5});const f5=pi({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),p5=pi({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var g5=Object.freeze({__proto__:null,base58btc:f5,base58flickr:p5});const m5=It({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),w5=It({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),y5=It({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),v5=It({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var b5=Object.freeze({__proto__:null,base64:m5,base64pad:w5,base64url:y5,base64urlpad:v5});const wu=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),_5=wu.reduce((t,e,r)=>(t[r]=e,t),[]),E5=wu.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function x5(t){return t.reduce((e,r)=>(e+=_5[r],e),"")}function C5(t){const e=[];for(const r of t){const n=E5[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}const I5=ms({prefix:"\u{1F680}",name:"base256emoji",encode:x5,decode:C5});var S5=Object.freeze({__proto__:null,base256emoji:I5}),D5=vu,yu=128,O5=127,$5=~O5,A5=Math.pow(2,31);function vu(t,e,r){e=e||[],r=r||0;for(var n=r;t>=A5;)e[r++]=t&255|yu,t/=128;for(;t&$5;)e[r++]=t&255|yu,t>>>=7;return e[r]=t|0,vu.bytes=r-n+1,e}var P5=fa,T5=128,bu=127;function fa(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw fa.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&bu)<<i:(o&bu)*Math.pow(2,i),i+=7}while(o>=T5);return fa.bytes=s-n,r}var N5=Math.pow(2,7),R5=Math.pow(2,14),M5=Math.pow(2,21),L5=Math.pow(2,28),U5=Math.pow(2,35),j5=Math.pow(2,42),F5=Math.pow(2,49),B5=Math.pow(2,56),k5=Math.pow(2,63),H5=function(t){return t<N5?1:t<R5?2:t<M5?3:t<L5?4:t<U5?5:t<j5?6:t<F5?7:t<B5?8:t<k5?9:10},z5={encode:D5,decode:P5,encodingLength:H5},_u=z5;const Eu=(t,e,r=0)=>(_u.encode(t,e,r),e),xu=t=>_u.encodingLength(t),pa=(t,e)=>{const r=e.byteLength,n=xu(t),i=n+xu(r),s=new Uint8Array(i+r);return Eu(t,s,0),Eu(r,s,n),s.set(e,i),new W5(t,r,e,s)};class W5{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}}const Cu=({name:t,code:e,encode:r})=>new q5(t,e,r);class q5{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){const r=this.encode(e);return r instanceof Uint8Array?pa(this.code,r):r.then(n=>pa(this.code,n))}else throw Error("Unknown type, must be binary type")}}const Iu=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),V5=Cu({name:"sha2-256",code:18,encode:Iu("SHA-256")}),K5=Cu({name:"sha2-512",code:19,encode:Iu("SHA-512")});var G5=Object.freeze({__proto__:null,sha256:V5,sha512:K5});const Su=0,Z5="identity",Du=gu;var Y5=Object.freeze({__proto__:null,identity:{code:Su,name:Z5,encode:Du,digest:t=>pa(Su,Du(t))}});new TextEncoder,new TextDecoder;const Ou=Rt(Rt(Rt(Rt(Rt(Rt(Rt(Rt(Rt(Rt({},Ww),Vw),Gw),Yw),Qw),l5),d5),g5),b5),S5);Rt(Rt({},G5),Y5);function J5(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t)}function $u(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}const Au=$u("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),ga=$u("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);const e=J5(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),X5=Rt({utf8:Au,"utf-8":Au,hex:Ou.base16,latin1:ga,ascii:ga,binary:ga},Ou);function Q5(t,e="utf8"){const r=X5[e];if(!r)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t,"utf8"):r.decoder.decode(`${r.prefix}${t}`)}const Pu="wc",ey=2,ma="core",_r=`${Pu}@${2}:${ma}:`,ty={name:ma,logger:"error"},ry={database:":memory:"},ny="crypto",Tu="client_ed25519_seed",iy=fe.ONE_DAY,sy="keychain",oy="0.3",ay="messages",cy="0.3",ly=fe.SIX_HOURS,hy="publisher",Nu="irn",uy="error",Ru="wss://relay.walletconnect.com",dy="relayer",pt={message:"relayer_message",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},fy="_subscription",ws={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},py=fe.ONE_SECOND,gy="2.5.2-77e444fc",my="0.3",ir={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},wy="subscription",yy="0.3",vy=fe.FIVE_SECONDS*1e3,by="pairing",_y="0.3",gi={wc_pairingDelete:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:fe.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:fe.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:fe.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:0},res:{ttl:fe.ONE_DAY,prompt:!1,tag:0}}},sr={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},Ey="history",xy="0.3",Cy="expirer",Vt={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},Iy="0.3";class Sy{constructor(e,r){this.core=e,this.logger=r,this.keychain=new Map,this.name=sy,this.version=oy,this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{if(!this.initialized){const n=await this.getKeyChain();typeof n<"u"&&(this.keychain=n),this.initialized=!0}},this.has=n=>(this.isInitialized(),this.keychain.has(n)),this.set=async(n,i)=>{this.isInitialized(),this.keychain.set(n,i),await this.persist()},this.get=n=>{this.isInitialized();const i=this.keychain.get(n);if(typeof i>"u"){const{message:s}=ie("NO_MATCHING_KEY",`${this.name}: ${n}`);throw new Error(s)}return i},this.del=async n=>{this.isInitialized(),this.keychain.delete(n),await this.persist()},this.core=e,this.logger=Be.generateChildLogger(r,this.name)}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,fh(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?ph(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Dy{constructor(e,r,n){this.core=e,this.logger=r,this.name=ny,this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=i=>(this.isInitialized(),this.keychain.has(i)),this.getClientId=async()=>{this.isInitialized();const i=await this.getClientSeed(),s=Qh(i);return Xh(s.publicKey)},this.generateKeyPair=()=>{this.isInitialized();const i=Sg();return this.setPrivateKey(i.publicKey,i.privateKey)},this.signJWT=async i=>{this.isInitialized();const s=await this.getClientSeed(),o=Qh(s),a=Fo();return await jm(a,i,iy,o)},this.generateSharedKey=(i,s,o)=>{this.isInitialized();const a=this.getPrivateKey(i),c=Dg(a,s);return this.setSymKey(c,o)},this.setSymKey=async(i,s)=>{this.isInitialized();const o=s||Og(i);return await this.keychain.set(o,i),o},this.deleteKeyPair=async i=>{this.isInitialized(),await this.keychain.del(i)},this.deleteSymKey=async i=>{this.isInitialized(),await this.keychain.del(i)},this.encode=async(i,s,o)=>{this.isInitialized();const a=ah(o),c=ui(s);if(ch(a)){const w=a.senderPublicKey,y=a.receiverPublicKey;i=await this.generateSharedKey(w,y)}const l=this.getSymKey(i),{type:p,senderPublicKey:m}=a;return Ag({type:p,symKey:l,message:c,senderPublicKey:m})},this.decode=async(i,s,o)=>{this.isInitialized();const a=Ng(s,o);if(ch(a)){const p=a.receiverPublicKey,m=a.senderPublicKey;i=await this.generateSharedKey(p,m)}const c=this.getSymKey(i),l=Pg({symKey:c,encoded:s});return na(l)},this.getPayloadType=i=>{const s=ss(i);return Yn(s.type)},this.getPayloadSenderPublicKey=i=>{const s=ss(i);return s.senderPublicKey?At(s.senderPublicKey,Pt):void 0},this.core=e,this.logger=Be.generateChildLogger(r,this.name),this.keychain=n||new Sy(this.core,this.logger)}get context(){return Be.getLoggerContext(this.logger)}async setPrivateKey(e,r){return await this.keychain.set(e,r),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(Tu)}catch{e=Fo(),await this.keychain.set(Tu,e)}return Q5(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Oy extends wm{constructor(e,r){super(e,r),this.logger=e,this.core=r,this.messages=new Map,this.name=ay,this.version=cy,this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const n=await this.getRelayerMessages();typeof n<"u"&&(this.messages=n),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(n){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(n)}finally{this.initialized=!0}}},this.set=async(n,i)=>{this.isInitialized();const s=is(i);let o=this.messages.get(n);return typeof o>"u"&&(o={}),typeof o[s]<"u"||(o[s]=i,this.logger.trace({type:"method",method:"set",key:n,value:o}),this.messages.set(n,o),await this.persist()),s},this.get=n=>{this.isInitialized();let i=this.messages.get(n);return typeof i>"u"&&(i={}),i},this.has=(n,i)=>{this.isInitialized();const s=this.get(n),o=is(i);return typeof s[o]<"u"},this.del=async n=>{this.isInitialized(),this.messages.delete(n),await this.persist()},this.logger=Be.generateChildLogger(e,this.name),this.core=r}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,fh(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?ph(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class $y extends ym{constructor(e,r){super(e,r),this.relayer=e,this.logger=r,this.events=new xt.exports.EventEmitter,this.name=hy,this.queue=new Map,this.publishTimeout=1e4,this.publish=async(n,i,s)=>{this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:n,message:i,opts:s}});try{const o=s?.ttl||ly,a=Bo(s),c=s?.prompt||!1,l=s?.tag||0,p={topic:n,message:i,opts:{ttl:o,relay:a,prompt:c,tag:l}},m=is(i);this.queue.set(m,p);try{await await os(this.rpcPublish(n,i,o,a,c,l),this.publishTimeout),this.relayer.events.emit(pt.publish,p)}catch{this.logger.debug("Publishing Payload stalled"),this.relayer.events.emit(pt.connection_stalled);return}this.onPublish(m,p),this.logger.debug("Successfully Published Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:n,message:i,opts:s}})}catch(o){throw this.logger.debug("Failed to Publish Payload"),this.logger.error(o),o}},this.on=(n,i)=>{this.events.on(n,i)},this.once=(n,i)=>{this.events.once(n,i)},this.off=(n,i)=>{this.events.off(n,i)},this.removeListener=(n,i)=>{this.events.removeListener(n,i)},this.relayer=e,this.logger=Be.generateChildLogger(r,this.name),this.registerEventListeners()}get context(){return Be.getLoggerContext(this.logger)}rpcPublish(e,r,n,i,s,o){var a,c,l,p;const m={method:as(i.protocol).publish,params:{topic:e,message:r,ttl:n,prompt:s,tag:o}};return Tt((a=m.params)==null?void 0:a.prompt)&&((c=m.params)==null||delete c.prompt),Tt((l=m.params)==null?void 0:l.tag)&&((p=m.params)==null||delete p.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:m}),this.relayer.request(m)}onPublish(e,r){this.queue.delete(e)}checkQueue(){this.queue.forEach(async e=>{const{topic:r,message:n,opts:i}=e;await this.publish(r,n,i)})}registerEventListeners(){this.relayer.core.heartbeat.on(oi.HEARTBEAT_EVENTS.pulse,()=>{this.checkQueue()})}}class Ay{constructor(){this.map=new Map,this.set=(e,r)=>{const n=this.get(e);this.exists(e,r)||this.map.set(e,[...n,r])},this.get=e=>this.map.get(e)||[],this.exists=(e,r)=>this.get(e).includes(r),this.delete=(e,r)=>{if(typeof r>"u"){this.map.delete(e);return}if(!this.map.has(e))return;const n=this.get(e);if(!this.exists(e,r))return;const i=n.filter(s=>s!==r);if(!i.length){this.map.delete(e);return}this.map.set(e,i)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var Py=Object.defineProperty,Ty=Object.defineProperties,Ny=Object.getOwnPropertyDescriptors,Mu=Object.getOwnPropertySymbols,Ry=Object.prototype.hasOwnProperty,My=Object.prototype.propertyIsEnumerable,Lu=(t,e,r)=>e in t?Py(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,mi=(t,e)=>{for(var r in e||(e={}))Ry.call(e,r)&&Lu(t,r,e[r]);if(Mu)for(var r of Mu(e))My.call(e,r)&&Lu(t,r,e[r]);return t},wa=(t,e)=>Ty(t,Ny(e));class Ly extends _m{constructor(e,r){super(e,r),this.relayer=e,this.logger=r,this.subscriptions=new Map,this.topicMap=new Ay,this.events=new xt.exports.EventEmitter,this.name=wy,this.version=yy,this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel="pending_sub_watch_label",this.pollingInterval=20,this.storagePrefix=_r,this.subscribeTimeout=1e4,this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restart(),this.registerEventListeners(),this.onEnable(),this.clientId=await this.relayer.core.crypto.getClientId())},this.subscribe=async(n,i)=>{await this.restartToComplete(),this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:n,opts:i}});try{const s=Bo(i),o={topic:n,relay:s};this.pending.set(n,o);const a=await this.rpcSubscribe(n,s);return this.onSubscribe(a,o),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:n,opts:i}}),a}catch(s){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(s),s}},this.unsubscribe=async(n,i)=>{await this.restartToComplete(),this.isInitialized(),typeof i?.id<"u"?await this.unsubscribeById(n,i.id,i):await this.unsubscribeByTopic(n,i)},this.isSubscribed=async n=>this.topics.includes(n)?!0:await new Promise((i,s)=>{const o=new fe.Watch;o.start(this.pendingSubscriptionWatchLabel);const a=setInterval(()=>{!this.pending.has(n)&&this.topics.includes(n)&&(clearInterval(a),o.stop(this.pendingSubscriptionWatchLabel),i(!0)),o.elapsed(this.pendingSubscriptionWatchLabel)>=vy&&(clearInterval(a),o.stop(this.pendingSubscriptionWatchLabel),s(!1))},this.pollingInterval)}),this.on=(n,i)=>{this.events.on(n,i)},this.once=(n,i)=>{this.events.once(n,i)},this.off=(n,i)=>{this.events.off(n,i)},this.removeListener=(n,i)=>{this.events.removeListener(n,i)},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=Be.generateChildLogger(r,this.name),this.clientId=""}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(e,r){let n=!1;try{n=this.getSubscription(e).topic===r}catch{}return n}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,r){const n=this.topicMap.get(e);await Promise.all(n.map(async i=>await this.unsubscribeById(e,i,r)))}async unsubscribeById(e,r,n){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:r,opts:n}});try{const i=Bo(n);await this.rpcUnsubscribe(e,r,i);const s=tt("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,r,s),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:r,opts:n}})}catch(i){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(i),i}}async rpcSubscribe(e,r){const n={method:as(r.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n});try{await await os(this.relayer.request(n),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(pt.connection_stalled)}return is(e+this.clientId)}async rpcBatchSubscribe(e){if(!e.length)return;const r=e[0].relay,n={method:as(r.protocol).batchSubscribe,params:{topics:e.map(i=>i.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n});try{return await await os(this.relayer.request(n),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Payload stalled"),this.relayer.events.emit(pt.connection_stalled)}}rpcUnsubscribe(e,r,n){const i={method:as(n.protocol).unsubscribe,params:{topic:e,id:r}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i}),this.relayer.request(i)}onSubscribe(e,r){this.setSubscription(e,wa(mi({},r),{id:e})),this.pending.delete(r.topic)}onBatchSubscribe(e){e.length&&e.forEach(r=>{this.setSubscription(r.id,mi({},r)),this.pending.delete(r.topic)})}async onUnsubscribe(e,r,n){this.events.removeAllListeners(r),this.hasSubscription(r,e)&&this.deleteSubscription(r,n),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,r){this.subscriptions.has(e)||(this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:r}),this.addSubscription(e,r))}addSubscription(e,r){this.subscriptions.set(e,mi({},r)),this.topicMap.set(r.topic,e),this.events.emit(ir.created,r)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const r=this.subscriptions.get(e);if(!r){const{message:n}=ie("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(n)}return r}deleteSubscription(e,r){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:r});const n=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(n.topic,e),this.events.emit(ir.deleted,wa(mi({},n),{reason:r}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(ir.sync)}async reset(){if(!this.cached.length)return;const e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let r=0;r<e;r++){const n=this.cached.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(n)}this.events.emit(ir.resubscribed)}async restore(){try{const e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size){const{message:r}=ie("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(r),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(r)}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){if(!e.length)return;const r=await this.rpcBatchSubscribe(e);ur(r)&&this.onBatchSubscribe(r.map((n,i)=>wa(mi({},e[i]),{id:n})))}async onConnect(){this.restartInProgress||(await this.restart(),this.onEnable())}onDisconnect(){this.onDisable()}async checkPending(){if(this.relayer.transportExplicitlyClosed)return;const e=[];this.pending.forEach(r=>{e.push(r)}),await this.batchSubscribe(e)}registerEventListeners(){this.relayer.core.heartbeat.on(oi.HEARTBEAT_EVENTS.pulse,async()=>{await this.checkPending()}),this.relayer.on(pt.connect,async()=>{await this.onConnect()}),this.relayer.on(pt.disconnect,()=>{this.onDisconnect()}),this.events.on(ir.created,async e=>{const r=ir.created;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),await this.persist()}),this.events.on(ir.deleted,async e=>{const r=ir.deleted;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),await this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(){this.restartInProgress&&await new Promise(e=>{const r=setInterval(()=>{this.restartInProgress||(clearInterval(r),e())},this.pollingInterval)})}}var Uy=Object.defineProperty,Uu=Object.getOwnPropertySymbols,jy=Object.prototype.hasOwnProperty,Fy=Object.prototype.propertyIsEnumerable,ju=(t,e,r)=>e in t?Uy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,By=(t,e)=>{for(var r in e||(e={}))jy.call(e,r)&&ju(t,r,e[r]);if(Uu)for(var r of Uu(e))Fy.call(e,r)&&ju(t,r,e[r]);return t};class ky extends vm{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new xt.exports.EventEmitter,this.name=dy,this.transportExplicitlyClosed=!1,this.initialized=!1,this.reconnecting=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=["socket hang up","socket stalled"],this.request=async r=>{this.logger.debug("Publishing Request Payload");try{return await this.toEstablishConnection(),await this.provider.request(r)}catch(n){throw this.logger.debug("Failed to Publish Request"),this.logger.error(n),n}},this.core=e.core,this.logger=typeof e.logger<"u"&&typeof e.logger!="string"?Be.generateChildLogger(e.logger,this.name):Xn(Be.getDefaultLoggerOptions({level:e.logger||uy})),this.messages=new Oy(this.logger,e.core),this.subscriber=new Ly(this,this.logger),this.publisher=new $y(this,this.logger),this.relayUrl=e?.relayUrl||Ru,this.projectId=e.projectId,this.provider={}}async init(){this.logger.trace("Initialized"),await this.createProvider(),await Promise.all([this.messages.init(),this.transportOpen(),this.subscriber.init()]),this.registerEventListeners(),this.initialized=!0}get context(){return Be.getLoggerContext(this.logger)}get connected(){return this.provider.connection.connected}get connecting(){return this.provider.connection.connecting}async publish(e,r,n){this.isInitialized(),await this.publisher.publish(e,r,n),await this.recordMessageEvent({topic:e,message:r,publishedAt:Date.now()})}async subscribe(e,r){this.isInitialized();let n="";return await Promise.all([new Promise(i=>{this.subscriber.once(ir.created,s=>{s.topic===e&&i()})}),new Promise(async i=>{n=await this.subscriber.subscribe(e,r),i()})]),n}async unsubscribe(e,r){this.isInitialized(),await this.subscriber.unsubscribe(e,r)}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}off(e,r){this.events.off(e,r)}removeListener(e,r){this.events.removeListener(e,r)}async transportClose(){this.transportExplicitlyClosed=!0,this.connected&&(await this.provider.disconnect(),this.events.emit(pt.transport_closed))}async transportOpen(e){if(!this.reconnecting){this.relayUrl=e||this.relayUrl,this.transportExplicitlyClosed=!1,this.reconnecting=!0;try{await Promise.all([new Promise(r=>{this.initialized||r(),this.subscriber.once(ir.resubscribed,()=>{r()})}),await Promise.race([new Promise(async(r,n)=>{await os(this.provider.connect(),5e3,"socket stalled").catch(i=>n(i)).then(()=>r()).finally(()=>this.removeListener(pt.transport_closed,this.rejectTransportOpen))}),new Promise(r=>this.once(pt.transport_closed,this.rejectTransportOpen))])])}catch(r){this.logger.error(r);const n=r;if(!this.isConnectionStalled(n.message))throw r;this.events.emit(pt.transport_closed)}finally{this.reconnecting=!1}}}async restartTransport(e){this.transportExplicitlyClosed||(this.relayUrl=e||this.relayUrl,await this.transportClose(),await this.createProvider(),await this.transportOpen())}isConnectionStalled(e){return this.staleConnectionErrors.some(r=>e.includes(r))}rejectTransportOpen(){throw new Error("closeTransport called before connection was established")}async createProvider(){const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new Hr(new Dw(Kg({sdkVersion:gy,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0}))),this.registerProviderListeners()}async recordMessageEvent(e){const{topic:r,message:n}=e;this.logger.info(`recordMessageEvent > Recording message event for message ${n} for topic: ${r}...`),await this.messages.set(r,n),this.logger.info(`recordMessageEvent > Recording message event for message ${n} for topic: ${r}...DONE`)}async shouldIgnoreMessageEvent(e){const{topic:r,message:n}=e;if(!await this.subscriber.isSubscribed(r))return this.logger.info(`shouldIgnoreMessageEvent > Ignoring incoming message event for message ${n} for non-subscribed topic: ${r}`),!0;const i=this.messages.has(r,n);return this.logger.debug(`shouldIgnoreMessageEvent > Message ${n} for topic: ${r} exists: ${i}`),i&&this.logger.info(`shouldIgnoreMessageEvent > Message ${n} for topic: ${r} already exists, ignoring incoming message event.`),i}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),ha(e)){if(!e.method.endsWith(fy))return;const r=e.params,{topic:n,message:i,publishedAt:s}=r.data,o={topic:n,message:i,publishedAt:s};this.logger.info("Emitting Relayer Payload"),this.logger.trace(By({type:"event",event:r.id},o)),this.events.emit(r.id,o),this.logger.info("onProviderPayload > Acknowledging Payload..."),await this.acknowledgePayload(e),this.logger.info("onProviderPayload > Acknowledging Payload... DONE"),this.logger.info("onProviderPayload > onMessageEvent..."),await this.onMessageEvent(o),this.logger.info("onProviderPayload > onMessageEvent... DONE")}}async onMessageEvent(e){if(await this.shouldIgnoreMessageEvent(e)){this.logger.info("onMessageEvent > Ignoring Message Event"),this.logger.info({status:"ignored",messageEvent:e});return}this.logger.info("onMessageEvent > Emitting Message Event"),this.events.emit(pt.message,e),this.logger.info("onMessageEvent > Emitting Message Event... DONE"),this.logger.info("onMessageEvent > Recording Message Event"),await this.recordMessageEvent(e),this.logger.info("onMessageEvent > Recording Message Event... DONE")}async acknowledgePayload(e){const r=la(e.id,!0);await this.provider.connection.send(r)}registerProviderListeners(){this.provider.on(ws.payload,e=>this.onProviderPayload(e)),this.provider.on(ws.connect,()=>{this.events.emit(pt.connect)}),this.provider.on(ws.disconnect,()=>{this.onProviderDisconnect()}),this.provider.on(ws.error,e=>{this.logger.error(e),this.events.emit(pt.error,e)})}registerEventListeners(){this.events.on(pt.connection_stalled,async()=>{await this.restartTransport()})}onProviderDisconnect(){this.events.emit(pt.disconnect),this.attemptToReconnect()}attemptToReconnect(){this.transportExplicitlyClosed||setTimeout(async()=>{await this.restartTransport()},fe.toMiliseconds(py))}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){if(!this.connected){if(this.connecting)return await new Promise(e=>{const r=setInterval(()=>{this.connected&&(clearInterval(r),e())},this.connectionStatusPollingInterval)});await this.restartTransport()}}}var Hy=Object.defineProperty,Fu=Object.getOwnPropertySymbols,zy=Object.prototype.hasOwnProperty,Wy=Object.prototype.propertyIsEnumerable,Bu=(t,e,r)=>e in t?Hy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ku=(t,e)=>{for(var r in e||(e={}))zy.call(e,r)&&Bu(t,r,e[r]);if(Fu)for(var r of Fu(e))Wy.call(e,r)&&Bu(t,r,e[r]);return t};class ys extends bm{constructor(e,r,n,i=_r,s=void 0){super(e,r,n,i),this.core=e,this.logger=r,this.name=n,this.map=new Map,this.version=my,this.cached=[],this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(o=>{this.getKey&&o!==null&&!Tt(o)?this.map.set(this.getKey(o),o):p3(o)?this.map.set(o.id,o):g3(o)&&this.map.set(o.topic,o)}),this.cached=[],this.initialized=!0)},this.set=async(o,a)=>{this.isInitialized(),this.map.has(o)?await this.update(o,a):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:o,value:a}),this.map.set(o,a),await this.persist())},this.get=o=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:o}),this.getData(o)),this.getAll=o=>(this.isInitialized(),o?this.values.filter(a=>Object.keys(o).every(c=>Ow(a[c],o[c]))):this.values),this.update=async(o,a)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:o,update:a});const c=ku(ku({},this.getData(o)),a);this.map.set(o,c),await this.persist()},this.delete=async(o,a)=>{this.isInitialized(),this.map.has(o)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:o,reason:a}),this.map.delete(o),await this.persist())},this.logger=Be.generateChildLogger(r,this.name),this.storagePrefix=i,this.getKey=s}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const r=this.map.get(e);if(!r){const{message:n}=ie("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(n),new Error(n)}return r}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:r}=ie("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(r),new Error(r)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class qy{constructor(e,r){this.core=e,this.logger=r,this.name=by,this.version=_y,this.events=new xt.exports,this.initialized=!1,this.storagePrefix=_r,this.ignoredPayloadTypes=[Lr],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:n})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...n])]},this.create=async()=>{this.isInitialized();const n=Fo(),i=await this.core.crypto.setSymKey(n),s=rr(fe.FIVE_MINUTES),o={protocol:Nu},a={topic:i,expiry:s,relay:o,active:!1},c=i3({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:n,relay:o});return await this.pairings.set(i,a),await this.core.relayer.subscribe(i),this.core.expirer.set(i,s),{topic:i,uri:c}},this.pair=async n=>{this.isInitialized(),this.isValidPair(n);const{topic:i,symKey:s,relay:o}=r3(n.uri);if(this.pairings.keys.includes(i))throw new Error(`Pairing already exists: ${i}`);if(this.core.crypto.hasKeys(i))throw new Error(`Keychain already exists: ${i}`);const a=rr(fe.FIVE_MINUTES),c={topic:i,relay:o,expiry:a,active:!1};return await this.pairings.set(i,c),await this.core.crypto.setSymKey(s,i),await this.core.relayer.subscribe(i,{relay:o}),this.core.expirer.set(i,a),n.activatePairing&&await this.activate({topic:i}),c},this.activate=async({topic:n})=>{this.isInitialized();const i=rr(fe.THIRTY_DAYS);await this.pairings.update(n,{active:!0,expiry:i}),this.core.expirer.set(n,i)},this.ping=async n=>{this.isInitialized(),await this.isValidPing(n);const{topic:i}=n;if(this.pairings.keys.includes(i)){const s=await this.sendRequest(i,"wc_pairingPing",{}),{done:o,resolve:a,reject:c}=jr();this.events.once(et("pairing_ping",s),({error:l})=>{l?c(l):a()}),await o()}},this.updateExpiry=async({topic:n,expiry:i})=>{this.isInitialized(),await this.pairings.update(n,{expiry:i})},this.updateMetadata=async({topic:n,metadata:i})=>{this.isInitialized(),await this.pairings.update(n,{peerMetadata:i})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async n=>{this.isInitialized(),await this.isValidDisconnect(n);const{topic:i}=n;this.pairings.keys.includes(i)&&(await this.sendRequest(i,"wc_pairingDelete",tt("USER_DISCONNECTED")),await this.deletePairing(i))},this.sendRequest=async(n,i,s)=>{const o=ps(i,s),a=await this.core.crypto.encode(n,o),c=gi[i].req;return this.core.history.set(n,o),await this.core.relayer.publish(n,a,c),o.id},this.sendResult=async(n,i,s)=>{const o=la(n,s),a=await this.core.crypto.encode(i,o),c=await this.core.history.get(i,n),l=gi[c.request.method].res;await this.core.relayer.publish(i,a,l),await this.core.history.resolve(o)},this.sendError=async(n,i,s)=>{const o=gs(n,s),a=await this.core.crypto.encode(i,o),c=await this.core.history.get(i,n),l=gi[c.request.method]?gi[c.request.method].res:gi.unregistered_method.res;await this.core.relayer.publish(i,a,l),await this.core.history.resolve(o)},this.deletePairing=async(n,i)=>{await this.core.relayer.unsubscribe(n),await Promise.all([this.pairings.delete(n,tt("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(n),i?Promise.resolve():this.core.expirer.del(n)])},this.cleanup=async()=>{const n=this.pairings.getAll().filter(i=>br(i.expiry));await Promise.all(n.map(i=>this.deletePairing(i.topic)))},this.onRelayEventRequest=n=>{const{topic:i,payload:s}=n,o=s.method;if(this.pairings.keys.includes(i))switch(o){case"wc_pairingPing":return this.onPairingPingRequest(i,s);case"wc_pairingDelete":return this.onPairingDeleteRequest(i,s);default:return this.onUnknownRpcMethodRequest(i,s)}},this.onRelayEventResponse=async n=>{const{topic:i,payload:s}=n,o=(await this.core.history.get(i,s.id)).request.method;if(this.pairings.keys.includes(i))switch(o){case"wc_pairingPing":return this.onPairingPingResponse(i,s);default:return this.onUnknownRpcMethodResponse(o)}},this.onPairingPingRequest=async(n,i)=>{const{id:s}=i;try{this.isValidPing({topic:n}),await this.sendResult(s,n,!0),this.events.emit("pairing_ping",{id:s,topic:n})}catch(o){await this.sendError(s,n,o),this.logger.error(o)}},this.onPairingPingResponse=(n,i)=>{const{id:s}=i;setTimeout(()=>{pr(i)?this.events.emit(et("pairing_ping",s),{}):Qt(i)&&this.events.emit(et("pairing_ping",s),{error:i.error})},500)},this.onPairingDeleteRequest=async(n,i)=>{const{id:s}=i;try{this.isValidDisconnect({topic:n}),await this.deletePairing(n),this.events.emit("pairing_delete",{id:s,topic:n})}catch(o){await this.sendError(s,n,o),this.logger.error(o)}},this.onUnknownRpcMethodRequest=async(n,i)=>{const{id:s,method:o}=i;try{if(this.registeredMethods.includes(o))return;const a=tt("WC_METHOD_UNSUPPORTED",o);await this.sendError(s,n,a),this.logger.error(a)}catch(a){await this.sendError(s,n,a),this.logger.error(a)}},this.onUnknownRpcMethodResponse=n=>{this.registeredMethods.includes(n)||this.logger.error(tt("WC_METHOD_UNSUPPORTED",n))},this.isValidPair=n=>{if(!jt(n)){const{message:i}=ie("MISSING_OR_INVALID",`pair() params: ${n}`);throw new Error(i)}if(!f3(n.uri)){const{message:i}=ie("MISSING_OR_INVALID",`pair() uri: ${n.uri}`);throw new Error(i)}},this.isValidPing=async n=>{if(!jt(n)){const{message:s}=ie("MISSING_OR_INVALID",`ping() params: ${n}`);throw new Error(s)}const{topic:i}=n;await this.isValidPairingTopic(i)},this.isValidDisconnect=async n=>{if(!jt(n)){const{message:s}=ie("MISSING_OR_INVALID",`disconnect() params: ${n}`);throw new Error(s)}const{topic:i}=n;await this.isValidPairingTopic(i)},this.isValidPairingTopic=async n=>{if(!ft(n,!1)){const{message:i}=ie("MISSING_OR_INVALID",`pairing topic should be a string: ${n}`);throw new Error(i)}if(!this.pairings.keys.includes(n)){const{message:i}=ie("NO_MATCHING_KEY",`pairing topic doesn't exist: ${n}`);throw new Error(i)}if(br(this.pairings.get(n).expiry)){await this.deletePairing(n);const{message:i}=ie("EXPIRED",`pairing topic: ${n}`);throw new Error(i)}},this.core=e,this.logger=Be.generateChildLogger(r,this.name),this.pairings=new ys(this.core,this.logger,this.name,this.storagePrefix)}get context(){return Be.getLoggerContext(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(pt.message,async e=>{const{topic:r,message:n}=e;if(this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))return;const i=await this.core.crypto.decode(r,n);ha(i)?(this.core.history.set(r,i),this.onRelayEventRequest({topic:r,payload:i})):ua(i)&&(await this.core.history.resolve(i),this.onRelayEventResponse({topic:r,payload:i}))})}registerExpirerEvents(){this.core.expirer.on(Vt.expired,async e=>{const{topic:r}=mh(e.target);r&&this.pairings.keys.includes(r)&&(await this.deletePairing(r,!0),this.events.emit("pairing_expire",{topic:r}))})}}class Vy extends mm{constructor(e,r){super(e,r),this.core=e,this.logger=r,this.records=new Map,this.events=new xt.exports.EventEmitter,this.name=Ey,this.version=xy,this.cached=[],this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(n=>this.records.set(n.id,n)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(n,i,s)=>{if(this.isInitialized(),this.logger.info("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:n,request:i,chainId:s}),this.records.has(i.id)){this.logger.warn(`JSON-RPC request history record already exists for request.id: ${i.id}`);return}const o={id:i.id,topic:n,request:{method:i.method,params:i.params||null},chainId:s};this.records.set(o.id,o),this.events.emit(sr.created,o)},this.resolve=async n=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:n}),!this.records.has(n.id))return;const i=await this.getRecord(n.id);typeof i.response>"u"&&(i.response=Qt(n)?{error:n.error}:{result:n.result},this.records.set(i.id,i),this.events.emit(sr.updated,i))},this.get=async(n,i)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:n,id:i}),await this.getRecord(i)),this.delete=(n,i)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:i}),this.values.forEach(s=>{if(s.topic===n){if(typeof i<"u"&&s.id!==i)return;this.records.delete(s.id),this.events.emit(sr.deleted,s)}})},this.exists=async(n,i)=>(this.isInitialized(),this.records.has(i)?(await this.getRecord(i)).topic===n:!1),this.on=(n,i)=>{this.events.on(n,i)},this.once=(n,i)=>{this.events.once(n,i)},this.off=(n,i)=>{this.events.off(n,i)},this.removeListener=(n,i)=>{this.events.removeListener(n,i)},this.logger=Be.generateChildLogger(r,this.name)}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(r=>{if(typeof r.response<"u")return;const n={topic:r.topic,request:ps(r.request.method,r.request.params,r.id),chainId:r.chainId};return e.push(n)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const r=this.records.get(e);if(!r){const{message:n}=ie("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(n)}return r}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(sr.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:r}=ie("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(r),new Error(r)}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(sr.created,e=>{const r=sr.created;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,record:e}),this.persist()}),this.events.on(sr.updated,e=>{const r=sr.updated;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,record:e}),this.persist()}),this.events.on(sr.deleted,e=>{const r=sr.deleted;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,record:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Ky extends Em{constructor(e,r){super(e,r),this.core=e,this.logger=r,this.expirations=new Map,this.events=new xt.exports.EventEmitter,this.name=Cy,this.version=Iy,this.cached=[],this.initialized=!1,this.storagePrefix=_r,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(n=>this.expirations.set(n.target,n)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=n=>{try{const i=this.formatTarget(n);return typeof this.getExpiration(i)<"u"}catch{return!1}},this.set=(n,i)=>{this.isInitialized();const s=this.formatTarget(n),o={target:s,expiry:i};this.expirations.set(s,o),this.checkExpiry(s,o),this.events.emit(Vt.created,{target:s,expiration:o})},this.get=n=>{this.isInitialized();const i=this.formatTarget(n);return this.getExpiration(i)},this.del=n=>{if(this.isInitialized(),this.has(n)){const i=this.formatTarget(n),s=this.getExpiration(i);this.expirations.delete(i),this.events.emit(Vt.deleted,{target:i,expiration:s})}},this.on=(n,i)=>{this.events.on(n,i)},this.once=(n,i)=>{this.events.once(n,i)},this.off=(n,i)=>{this.events.off(n,i)},this.removeListener=(n,i)=>{this.events.removeListener(n,i)},this.logger=Be.generateChildLogger(r,this.name)}get context(){return Be.getLoggerContext(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e=="string")return Gg(e);if(typeof e=="number")return Zg(e);const{message:r}=ie("UNKNOWN_TYPE",`Target type: ${typeof e}`);throw new Error(r)}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(Vt.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:r}=ie("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(r),new Error(r)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const r=this.expirations.get(e);if(!r){const{message:n}=ie("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(n),new Error(n)}return r}checkExpiry(e,r){const{expiry:n}=r;fe.toMiliseconds(n)-Date.now()<=0&&this.expire(e,r)}expire(e,r){this.expirations.delete(e),this.events.emit(Vt.expired,{target:e,expiration:r})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,r)=>this.checkExpiry(r,e))}registerEventListeners(){this.core.heartbeat.on(oi.HEARTBEAT_EVENTS.pulse,()=>this.checkExpirations()),this.events.on(Vt.created,e=>{const r=Vt.created;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),this.persist()}),this.events.on(Vt.expired,e=>{const r=Vt.expired;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),this.persist()}),this.events.on(Vt.deleted,e=>{const r=Vt.deleted;this.logger.info(`Emitting ${r}`),this.logger.debug({type:"event",event:r,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}}var Gy=Object.defineProperty,Hu=Object.getOwnPropertySymbols,Zy=Object.prototype.hasOwnProperty,Yy=Object.prototype.propertyIsEnumerable,zu=(t,e,r)=>e in t?Gy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Wu=(t,e)=>{for(var r in e||(e={}))Zy.call(e,r)&&zu(t,r,e[r]);if(Hu)for(var r of Hu(e))Yy.call(e,r)&&zu(t,r,e[r]);return t};class ya extends gm{constructor(e){super(e),this.protocol=Pu,this.version=ey,this.name=ma,this.events=new xt.exports.EventEmitter,this.initialized=!1,this.on=(n,i)=>this.events.on(n,i),this.once=(n,i)=>this.events.once(n,i),this.off=(n,i)=>this.events.off(n,i),this.removeListener=(n,i)=>this.events.removeListener(n,i),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Ru;const r=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:Xn(Be.getDefaultLoggerOptions({level:e?.logger||ty.logger}));this.logger=Be.generateChildLogger(r,this.name),this.heartbeat=new oi.HeartBeat,this.crypto=new Dy(this,this.logger,e?.keychain),this.history=new Vy(this,this.logger),this.expirer=new Ky(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new _2(Wu(Wu({},ry),e?.storageOptions)),this.relayer=new ky({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new qy(this,this.logger)}static async init(e){const r=new ya(e);return await r.initialize(),r}get context(){return Be.getLoggerContext(this.logger)}async start(){this.initialized||await this.initialize()}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}}const Jy=ya,qu="wc",Vu=2,Ku="client",va=`${qu}@${Vu}:${Ku}:`,ba={name:Ku,logger:"error",controller:!1,relayUrl:"wss://relay.walletconnect.com"},Xy="proposal",Gu="Proposal expired",Qy="session",vs=fe.SEVEN_DAYS,ev="engine",wi={wc_sessionPropose:{req:{ttl:fe.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1101}},wc_sessionSettle:{req:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:1104},res:{ttl:fe.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:1106},res:{ttl:fe.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:fe.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:fe.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:fe.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:fe.ONE_DAY,prompt:!1,tag:1112},res:{ttl:fe.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:fe.THIRTY_SECONDS,prompt:!1,tag:1114},res:{ttl:fe.THIRTY_SECONDS,prompt:!1,tag:1115}}},_a={min:fe.FIVE_MINUTES,max:fe.SEVEN_DAYS},tv="request";var rv=Object.defineProperty,nv=Object.defineProperties,iv=Object.getOwnPropertyDescriptors,Zu=Object.getOwnPropertySymbols,sv=Object.prototype.hasOwnProperty,ov=Object.prototype.propertyIsEnumerable,Yu=(t,e,r)=>e in t?rv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Kt=(t,e)=>{for(var r in e||(e={}))sv.call(e,r)&&Yu(t,r,e[r]);if(Zu)for(var r of Zu(e))ov.call(e,r)&&Yu(t,r,e[r]);return t},Ea=(t,e)=>nv(t,iv(e));class av extends Cm{constructor(e){super(e),this.name=ev,this.events=new xt.exports,this.initialized=!1,this.ignoredPayloadTypes=[Lr],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.client.core.pairing.register({methods:Object.keys(wi)}),this.initialized=!0)},this.connect=async r=>{this.isInitialized();const n=Ea(Kt({},r),{requiredNamespaces:r.requiredNamespaces||{},optionalNamespaces:r.optionalNamespaces||{}});await this.isValidConnect(n);const{pairingTopic:i,requiredNamespaces:s,optionalNamespaces:o,sessionProperties:a,relays:c}=n;let l=i,p,m=!1;if(l&&(m=this.client.core.pairing.pairings.get(l).active),!l||!m){const{topic:D,uri:v}=await this.client.core.pairing.create();l=D,p=v}const w=await this.client.core.crypto.generateKeyPair(),y=Kt({requiredNamespaces:s,optionalNamespaces:o,relays:c??[{protocol:Nu}],proposer:{publicKey:w,metadata:this.client.metadata}},a&&{sessionProperties:a}),{reject:E,resolve:T,done:N}=jr(fe.FIVE_MINUTES,Gu);if(this.events.once(et("session_connect"),async({error:D,session:v})=>{if(D)E(D);else if(v){v.self.publicKey=w;const S=Ea(Kt({},v),{requiredNamespaces:v.requiredNamespaces,optionalNamespaces:v.optionalNamespaces});await this.client.session.set(v.topic,S),await this.setExpiry(v.topic,v.expiry),l&&await this.client.core.pairing.updateMetadata({topic:l,metadata:v.peer.metadata}),T(S)}}),!l){const{message:D}=ie("NO_MATCHING_KEY",`connect() pairing topic: ${l}`);throw new Error(D)}const L=await this.sendRequest(l,"wc_sessionPropose",y),C=rr(fe.FIVE_MINUTES);return await this.setProposal(L,Kt({id:L,expiry:C},y)),{uri:p,approval:N}},this.pair=async r=>(this.isInitialized(),await this.client.core.pairing.pair(r)),this.approve=async r=>{this.isInitialized(),await this.isValidApprove(r);const{id:n,relayProtocol:i,namespaces:s,sessionProperties:o}=r,a=this.client.proposal.get(n);let{pairingTopic:c,proposer:l,requiredNamespaces:p,optionalNamespaces:m}=a;c=c||"",mn(p)||(p=c3(s,"approve()"));const w=await this.client.core.crypto.generateKeyPair(),y=l.publicKey,E=await this.client.core.crypto.generateSharedKey(w,y);c&&n&&(await this.client.core.pairing.updateMetadata({topic:c,metadata:l.metadata}),await this.sendResult(n,c,{relay:{protocol:i??"irn"},responderPublicKey:w}),await this.client.proposal.delete(n,tt("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:c}));const T=Kt({relay:{protocol:i??"irn"},namespaces:s,requiredNamespaces:p,optionalNamespaces:m,pairingTopic:c,controller:{publicKey:w,metadata:this.client.metadata},expiry:rr(vs)},o&&{sessionProperties:o});await this.client.core.relayer.subscribe(E);const N=await this.sendRequest(E,"wc_sessionSettle",T),{done:L,resolve:C,reject:D}=jr();this.events.once(et("session_approve",N),({error:S})=>{S?D(S):C(this.client.session.get(E))});const v=Ea(Kt({},T),{topic:E,pairingTopic:c,acknowledged:!1,self:T.controller,peer:{publicKey:l.publicKey,metadata:l.metadata},controller:w});return await this.client.session.set(E,v),await this.setExpiry(E,rr(vs)),{topic:E,acknowledged:L}},this.reject=async r=>{this.isInitialized(),await this.isValidReject(r);const{id:n,reason:i}=r,{pairingTopic:s}=this.client.proposal.get(n);s&&(await this.sendError(n,s,i),await this.client.proposal.delete(n,tt("USER_DISCONNECTED")))},this.update=async r=>{this.isInitialized(),await this.isValidUpdate(r);const{topic:n,namespaces:i}=r,s=await this.sendRequest(n,"wc_sessionUpdate",{namespaces:i}),{done:o,resolve:a,reject:c}=jr();return this.events.once(et("session_update",s),({error:l})=>{l?c(l):a()}),await this.client.session.update(n,{namespaces:i}),{acknowledged:o}},this.extend=async r=>{this.isInitialized(),await this.isValidExtend(r);const{topic:n}=r,i=await this.sendRequest(n,"wc_sessionExtend",{}),{done:s,resolve:o,reject:a}=jr();return this.events.once(et("session_extend",i),({error:c})=>{c?a(c):o()}),await this.setExpiry(n,rr(vs)),{acknowledged:s}},this.request=async r=>{this.isInitialized(),await this.isValidRequest(r);const{chainId:n,request:i,topic:s,expiry:o}=r,a=await this.sendRequest(s,"wc_sessionRequest",{request:i,chainId:n},o),{done:c,resolve:l,reject:p}=jr(o);return this.events.once(et("session_request",a),({error:m,result:w})=>{m?p(m):l(w)}),this.client.events.emit("session_request_sent",{topic:s,request:i,chainId:n,id:a}),await c()},this.respond=async r=>{this.isInitialized(),await this.isValidRespond(r);const{topic:n,response:i}=r,{id:s}=i;pr(i)?await this.sendResult(s,n,i.result):Qt(i)&&await this.sendError(s,n,i.error),this.deletePendingSessionRequest(r.response.id,{message:"fulfilled",code:0})},this.ping=async r=>{this.isInitialized(),await this.isValidPing(r);const{topic:n}=r;if(this.client.session.keys.includes(n)){const i=await this.sendRequest(n,"wc_sessionPing",{}),{done:s,resolve:o,reject:a}=jr();this.events.once(et("session_ping",i),({error:c})=>{c?a(c):o()}),await s()}else this.client.core.pairing.pairings.keys.includes(n)&&await this.client.core.pairing.ping({topic:n})},this.emit=async r=>{this.isInitialized(),await this.isValidEmit(r);const{topic:n,event:i,chainId:s}=r;await this.sendRequest(n,"wc_sessionEvent",{event:i,chainId:s})},this.disconnect=async r=>{this.isInitialized(),await this.isValidDisconnect(r);const{topic:n}=r;this.client.session.keys.includes(n)?(await this.sendRequest(n,"wc_sessionDelete",tt("USER_DISCONNECTED")),await this.deleteSession(n)):await this.client.core.pairing.disconnect({topic:n})},this.find=r=>(this.isInitialized(),this.client.session.getAll().filter(n=>u3(n,r))),this.getPendingSessionRequests=()=>(this.isInitialized(),this.client.pendingRequest.getAll()),this.deleteSession=async(r,n)=>{const{self:i}=this.client.session.get(r);await this.client.core.relayer.unsubscribe(r),await Promise.all([this.client.session.delete(r,tt("USER_DISCONNECTED")),this.client.core.crypto.deleteKeyPair(i.publicKey),this.client.core.crypto.deleteSymKey(r),n?Promise.resolve():this.client.core.expirer.del(r)])},this.deleteProposal=async(r,n)=>{await Promise.all([this.client.proposal.delete(r,tt("USER_DISCONNECTED")),n?Promise.resolve():this.client.core.expirer.del(r)])},this.deletePendingSessionRequest=async(r,n,i=!1)=>{await Promise.all([this.client.pendingRequest.delete(r,n),i?Promise.resolve():this.client.core.expirer.del(r)])},this.setExpiry=async(r,n)=>{this.client.session.keys.includes(r)&&await this.client.session.update(r,{expiry:n}),this.client.core.expirer.set(r,n)},this.setProposal=async(r,n)=>{await this.client.proposal.set(r,n),this.client.core.expirer.set(r,n.expiry)},this.setPendingSessionRequest=async r=>{const n=wi.wc_sessionRequest.req.ttl,{id:i,topic:s,params:o}=r;await this.client.pendingRequest.set(i,{id:i,topic:s,params:o}),n&&this.client.core.expirer.set(i,rr(n))},this.sendRequest=async(r,n,i,s)=>{const o=ps(n,i),a=await this.client.core.crypto.encode(r,o),c=wi[n].req;return s&&(c.ttl=s),this.client.core.history.set(r,o),this.client.core.relayer.publish(r,a,c),o.id},this.sendResult=async(r,n,i)=>{const s=la(r,i),o=await this.client.core.crypto.encode(n,s),a=await this.client.core.history.get(n,r),c=wi[a.request.method].res;this.client.core.relayer.publish(n,o,c),await this.client.core.history.resolve(s)},this.sendError=async(r,n,i)=>{const s=gs(r,i),o=await this.client.core.crypto.encode(n,s),a=await this.client.core.history.get(n,r),c=wi[a.request.method].res;this.client.core.relayer.publish(n,o,c),await this.client.core.history.resolve(s)},this.cleanup=async()=>{const r=[],n=[];this.client.session.getAll().forEach(i=>{br(i.expiry)&&r.push(i.topic)}),this.client.proposal.getAll().forEach(i=>{br(i.expiry)&&n.push(i.id)}),await Promise.all([...r.map(i=>this.deleteSession(i)),...n.map(i=>this.deleteProposal(i))])},this.onRelayEventRequest=r=>{const{topic:n,payload:i}=r,s=i.method;switch(this.client.logger.info(`Engine > Relay event is a request: ${s}.`),s){case"wc_sessionPropose":return this.onSessionProposeRequest(n,i);case"wc_sessionSettle":return this.onSessionSettleRequest(n,i);case"wc_sessionUpdate":return this.onSessionUpdateRequest(n,i);case"wc_sessionExtend":return this.onSessionExtendRequest(n,i);case"wc_sessionPing":return this.onSessionPingRequest(n,i);case"wc_sessionDelete":return this.onSessionDeleteRequest(n,i);case"wc_sessionRequest":return this.onSessionRequest(n,i);case"wc_sessionEvent":return this.onSessionEventRequest(n,i);default:return this.client.logger.info(`Unsupported request method ${s}`)}},this.onRelayEventResponse=async r=>{const{topic:n,payload:i}=r,s=(await this.client.core.history.get(n,i.id)).request.method;switch(this.client.logger.info(`Engine > Relay event is a response: ${s}.`),s){case"wc_sessionPropose":return this.onSessionProposeResponse(n,i);case"wc_sessionSettle":return this.onSessionSettleResponse(n,i);case"wc_sessionUpdate":return this.onSessionUpdateResponse(n,i);case"wc_sessionExtend":return this.onSessionExtendResponse(n,i);case"wc_sessionPing":return this.onSessionPingResponse(n,i);case"wc_sessionRequest":return this.onSessionRequestResponse(n,i);default:return this.client.logger.info(`Unsupported response method ${s}`)}},this.onSessionProposeRequest=async(r,n)=>{const{params:i,id:s}=n;try{this.isValidConnect(Kt({},n.params));const o=rr(fe.FIVE_MINUTES),a=Kt({id:s,pairingTopic:r,expiry:o},i);await this.setProposal(s,a),this.client.events.emit("session_proposal",{id:s,params:a})}catch(o){await this.sendError(s,r,o),this.client.logger.error(o)}},this.onSessionProposeResponse=async(r,n)=>{const{id:i}=n;if(pr(n)){const{result:s}=n;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:s});const o=this.client.proposal.get(i);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:o});const a=o.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:a});const c=s.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:c});const l=await this.client.core.crypto.generateSharedKey(a,c);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",sessionTopic:l});const p=await this.client.core.relayer.subscribe(l);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:p}),await this.client.core.pairing.activate({topic:r})}else Qt(n)&&(await this.client.proposal.delete(i,tt("USER_DISCONNECTED")),this.events.emit(et("session_connect"),{error:n.error}))},this.onSessionSettleRequest=async(r,n)=>{const{id:i,params:s}=n;try{this.isValidSessionSettleRequest(s);const{relay:o,controller:a,expiry:c,namespaces:l,requiredNamespaces:p,optionalNamespaces:m,sessionProperties:w,pairingTopic:y}=n.params,E=Kt({topic:r,relay:o,expiry:c,namespaces:l,acknowledged:!0,pairingTopic:y,requiredNamespaces:p,optionalNamespaces:m,controller:a.publicKey,self:{publicKey:"",metadata:this.client.metadata},peer:{publicKey:a.publicKey,metadata:a.metadata}},w&&{sessionProperties:w});await this.sendResult(n.id,r,!0),this.events.emit(et("session_connect"),{session:E})}catch(o){await this.sendError(i,r,o),this.client.logger.error(o)}},this.onSessionSettleResponse=async(r,n)=>{const{id:i}=n;pr(n)?(await this.client.session.update(r,{acknowledged:!0}),this.events.emit(et("session_approve",i),{})):Qt(n)&&(await this.client.session.delete(r,tt("USER_DISCONNECTED")),this.events.emit(et("session_approve",i),{error:n.error}))},this.onSessionUpdateRequest=async(r,n)=>{const{params:i,id:s}=n;try{this.isValidUpdate(Kt({topic:r},i)),await this.client.session.update(r,{namespaces:i.namespaces}),await this.sendResult(s,r,!0),this.client.events.emit("session_update",{id:s,topic:r,params:i})}catch(o){await this.sendError(s,r,o),this.client.logger.error(o)}},this.onSessionUpdateResponse=(r,n)=>{const{id:i}=n;pr(n)?this.events.emit(et("session_update",i),{}):Qt(n)&&this.events.emit(et("session_update",i),{error:n.error})},this.onSessionExtendRequest=async(r,n)=>{const{id:i}=n;try{this.isValidExtend({topic:r}),await this.setExpiry(r,rr(vs)),await this.sendResult(i,r,!0),this.client.events.emit("session_extend",{id:i,topic:r})}catch(s){await this.sendError(i,r,s),this.client.logger.error(s)}},this.onSessionExtendResponse=(r,n)=>{const{id:i}=n;pr(n)?this.events.emit(et("session_extend",i),{}):Qt(n)&&this.events.emit(et("session_extend",i),{error:n.error})},this.onSessionPingRequest=async(r,n)=>{const{id:i}=n;try{this.isValidPing({topic:r}),await this.sendResult(i,r,!0),this.client.events.emit("session_ping",{id:i,topic:r})}catch(s){await this.sendError(i,r,s),this.client.logger.error(s)}},this.onSessionPingResponse=(r,n)=>{const{id:i}=n;setTimeout(()=>{pr(n)?this.events.emit(et("session_ping",i),{}):Qt(n)&&this.events.emit(et("session_ping",i),{error:n.error})},500)},this.onSessionDeleteRequest=async(r,n)=>{const{id:i}=n;try{this.isValidDisconnect({topic:r,reason:n.params}),this.client.core.relayer.once(pt.publish,async()=>{await this.deleteSession(r)}),await this.sendResult(i,r,!0),this.client.events.emit("session_delete",{id:i,topic:r})}catch(s){await this.sendError(i,r,s),this.client.logger.error(s)}},this.onSessionRequest=async(r,n)=>{const{id:i,params:s}=n;try{this.isValidRequest(Kt({topic:r},s)),await this.setPendingSessionRequest({id:i,topic:r,params:s}),this.client.events.emit("session_request",{id:i,topic:r,params:s})}catch(o){await this.sendError(i,r,o),this.client.logger.error(o)}},this.onSessionRequestResponse=(r,n)=>{const{id:i}=n;pr(n)?this.events.emit(et("session_request",i),{result:n.result}):Qt(n)&&this.events.emit(et("session_request",i),{error:n.error})},this.onSessionEventRequest=async(r,n)=>{const{id:i,params:s}=n;try{this.isValidEmit(Kt({topic:r},s)),this.client.events.emit("session_event",{id:i,topic:r,params:s})}catch(o){await this.sendError(i,r,o),this.client.logger.error(o)}},this.isValidConnect=async r=>{if(!jt(r)){const{message:c}=ie("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(r)}`);throw new Error(c)}const{pairingTopic:n,requiredNamespaces:i,optionalNamespaces:s,sessionProperties:o,relays:a}=r;if(Tt(n)||await this.isValidPairingTopic(n),!x3(a,!0)){const{message:c}=ie("MISSING_OR_INVALID",`connect() relays: ${a}`);throw new Error(c)}!Tt(i)&&mn(i)!==0&&this.validateNamespaces(i,"requiredNamespaces"),!Tt(s)&&mn(s)!==0&&this.validateNamespaces(s,"optionalNamespaces"),Tt(o)||this.validateSessionProps(o,"sessionProperties")},this.validateNamespaces=(r,n)=>{const i=E3(r,"connect()",n);if(i)throw new Error(i.message)},this.isValidApprove=async r=>{if(!jt(r))throw new Error(ie("MISSING_OR_INVALID",`approve() params: ${r}`).message);const{id:n,namespaces:i,relayProtocol:s,sessionProperties:o}=r;await this.isValidProposalId(n);const a=this.client.proposal.get(n),c=cs(i,"approve()");if(c)throw new Error(c.message);const l=xh(a.requiredNamespaces,i,"approve()");if(l)throw new Error(l.message);if(!ft(s,!0)){const{message:p}=ie("MISSING_OR_INVALID",`approve() relayProtocol: ${s}`);throw new Error(p)}Tt(o)||this.validateSessionProps(o,"sessionProperties")},this.isValidReject=async r=>{if(!jt(r)){const{message:s}=ie("MISSING_OR_INVALID",`reject() params: ${r}`);throw new Error(s)}const{id:n,reason:i}=r;if(await this.isValidProposalId(n),!I3(i)){const{message:s}=ie("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(i)}`);throw new Error(s)}},this.isValidSessionSettleRequest=r=>{if(!jt(r)){const{message:l}=ie("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${r}`);throw new Error(l)}const{relay:n,controller:i,namespaces:s,expiry:o}=r;if(!_h(n)){const{message:l}=ie("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(l)}const a=m3(i,"onSessionSettleRequest()");if(a)throw new Error(a.message);const c=cs(s,"onSessionSettleRequest()");if(c)throw new Error(c.message);if(br(o)){const{message:l}=ie("EXPIRED","onSessionSettleRequest()");throw new Error(l)}},this.isValidUpdate=async r=>{if(!jt(r)){const{message:c}=ie("MISSING_OR_INVALID",`update() params: ${r}`);throw new Error(c)}const{topic:n,namespaces:i}=r;await this.isValidSessionTopic(n);const s=this.client.session.get(n),o=cs(i,"update()");if(o)throw new Error(o.message);const a=xh(s.requiredNamespaces,i,"update()");if(a)throw new Error(a.message)},this.isValidExtend=async r=>{if(!jt(r)){const{message:i}=ie("MISSING_OR_INVALID",`extend() params: ${r}`);throw new Error(i)}const{topic:n}=r;await this.isValidSessionTopic(n)},this.isValidRequest=async r=>{if(!jt(r)){const{message:c}=ie("MISSING_OR_INVALID",`request() params: ${r}`);throw new Error(c)}const{topic:n,request:i,chainId:s,expiry:o}=r;await this.isValidSessionTopic(n);const{namespaces:a}=this.client.session.get(n);if(!Eh(a,s)){const{message:c}=ie("MISSING_OR_INVALID",`request() chainId: ${s}`);throw new Error(c)}if(!S3(i)){const{message:c}=ie("MISSING_OR_INVALID",`request() ${JSON.stringify(i)}`);throw new Error(c)}if(!$3(a,s,i.method)){const{message:c}=ie("MISSING_OR_INVALID",`request() method: ${i.method}`);throw new Error(c)}if(o&&!N3(o,_a)){const{message:c}=ie("MISSING_OR_INVALID",`request() expiry: ${o}. Expiry must be a number (in seconds) between ${_a.min} and ${_a.max}`);throw new Error(c)}},this.isValidRespond=async r=>{if(!jt(r)){const{message:s}=ie("MISSING_OR_INVALID",`respond() params: ${r}`);throw new Error(s)}const{topic:n,response:i}=r;if(await this.isValidSessionTopic(n),!D3(i)){const{message:s}=ie("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(i)}`);throw new Error(s)}},this.isValidPing=async r=>{if(!jt(r)){const{message:i}=ie("MISSING_OR_INVALID",`ping() params: ${r}`);throw new Error(i)}const{topic:n}=r;await this.isValidSessionOrPairingTopic(n)},this.isValidEmit=async r=>{if(!jt(r)){const{message:a}=ie("MISSING_OR_INVALID",`emit() params: ${r}`);throw new Error(a)}const{topic:n,event:i,chainId:s}=r;await this.isValidSessionTopic(n);const{namespaces:o}=this.client.session.get(n);if(!Eh(o,s)){const{message:a}=ie("MISSING_OR_INVALID",`emit() chainId: ${s}`);throw new Error(a)}if(!O3(i)){const{message:a}=ie("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}if(!A3(o,s,i.name)){const{message:a}=ie("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}},this.isValidDisconnect=async r=>{if(!jt(r)){const{message:i}=ie("MISSING_OR_INVALID",`disconnect() params: ${r}`);throw new Error(i)}const{topic:n}=r;await this.isValidSessionOrPairingTopic(n)},this.validateSessionProps=(r,n)=>{Object.values(r).forEach(i=>{if(!ft(i,!1)){const{message:s}=ie("MISSING_OR_INVALID",`${n} must be in Record<string, string> format. Received: ${JSON.stringify(i)}`);throw new Error(s)}})}}isInitialized(){if(!this.initialized){const{message:e}=ie("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.client.core.relayer.on(pt.message,async e=>{const{topic:r,message:n}=e;if(this.client.logger.info(`Engine > Relay event received: ${JSON.stringify(e)}`),this.ignoredPayloadTypes.includes(this.client.core.crypto.getPayloadType(n))){this.client.logger.info(`Engine > Ignoring relay event: ${JSON.stringify(e)}`);return}const i=await this.client.core.crypto.decode(r,n);this.client.logger.trace({type:"payload",location:"engine",payload:i}),ha(i)?(this.client.core.history.set(r,i),this.onRelayEventRequest({topic:r,payload:i})):ua(i)&&(this.client.logger.info("Engine > Relay event is a response."),await this.client.core.history.resolve(i),this.onRelayEventResponse({topic:r,payload:i}))})}registerExpirerEvents(){this.client.core.expirer.on(Vt.expired,async e=>{const{topic:r,id:n}=mh(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,ie("EXPIRED"),!0);r?this.client.session.keys.includes(r)&&(await this.deleteSession(r,!0),this.client.events.emit("session_expire",{topic:r})):n&&(await this.deleteProposal(n,!0),this.client.events.emit("proposal_expire",{id:n}))})}isValidPairingTopic(e){if(!ft(e,!1)){const{message:r}=ie("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(r)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:r}=ie("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(r)}if(br(this.client.core.pairing.pairings.get(e).expiry)){const{message:r}=ie("EXPIRED",`pairing topic: ${e}`);throw new Error(r)}}async isValidSessionTopic(e){if(!ft(e,!1)){const{message:r}=ie("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(r)}if(!this.client.session.keys.includes(e)){const{message:r}=ie("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(r)}if(br(this.client.session.get(e).expiry)){await this.deleteSession(e);const{message:r}=ie("EXPIRED",`session topic: ${e}`);throw new Error(r)}}async isValidSessionOrPairingTopic(e){if(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(ft(e,!1)){const{message:r}=ie("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(r)}else{const{message:r}=ie("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(r)}}async isValidProposalId(e){if(!C3(e)){const{message:r}=ie("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(r)}if(!this.client.proposal.keys.includes(e)){const{message:r}=ie("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(r)}if(br(this.client.proposal.get(e).expiry)){await this.deleteProposal(e);const{message:r}=ie("EXPIRED",`proposal id: ${e}`);throw new Error(r)}}}class cv extends ys{constructor(e,r){super(e,r,Xy,va),this.core=e,this.logger=r}}class lv extends ys{constructor(e,r){super(e,r,Qy,va),this.core=e,this.logger=r}}class hv extends ys{constructor(e,r){super(e,r,tv,va,n=>n.id),this.core=e,this.logger=r}}class xa extends xm{constructor(e){super(e),this.protocol=qu,this.version=Vu,this.name=ba.name,this.events=new xt.exports.EventEmitter,this.on=(n,i)=>this.events.on(n,i),this.once=(n,i)=>this.events.once(n,i),this.off=(n,i)=>this.events.off(n,i),this.removeListener=(n,i)=>this.events.removeListener(n,i),this.removeAllListeners=n=>this.events.removeAllListeners(n),this.connect=async n=>{try{return await this.engine.connect(n)}catch(i){throw this.logger.error(i.message),i}},this.pair=async n=>{try{return await this.engine.pair(n)}catch(i){throw this.logger.error(i.message),i}},this.approve=async n=>{try{return await this.engine.approve(n)}catch(i){throw this.logger.error(i.message),i}},this.reject=async n=>{try{return await this.engine.reject(n)}catch(i){throw this.logger.error(i.message),i}},this.update=async n=>{try{return await this.engine.update(n)}catch(i){throw this.logger.error(i.message),i}},this.extend=async n=>{try{return await this.engine.extend(n)}catch(i){throw this.logger.error(i.message),i}},this.request=async n=>{try{return await this.engine.request(n)}catch(i){throw this.logger.error(i.message),i}},this.respond=async n=>{try{return await this.engine.respond(n)}catch(i){throw this.logger.error(i.message),i}},this.ping=async n=>{try{return await this.engine.ping(n)}catch(i){throw this.logger.error(i.message),i}},this.emit=async n=>{try{return await this.engine.emit(n)}catch(i){throw this.logger.error(i.message),i}},this.disconnect=async n=>{try{return await this.engine.disconnect(n)}catch(i){throw this.logger.error(i.message),i}},this.find=n=>{try{return this.engine.find(n)}catch(i){throw this.logger.error(i.message),i}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(n){throw this.logger.error(n.message),n}},this.name=e?.name||ba.name,this.metadata=e?.metadata||zg();const r=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:Xn(Be.getDefaultLoggerOptions({level:e?.logger||ba.logger}));this.core=e?.core||new Jy(e),this.logger=Be.generateChildLogger(r,this.name),this.session=new lv(this.core,this.logger),this.proposal=new cv(this.core,this.logger),this.pendingRequest=new hv(this.core,this.logger),this.engine=new av(this)}static async init(e){const r=new xa(e);return await r.initialize(),r}get context(){return Be.getLoggerContext(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success")}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}var Ca={exports:{}};(function(t,e){var r=typeof self<"u"?self:dt,n=function(){function s(){this.fetch=!1,this.DOMException=r.DOMException}return s.prototype=r,new s}();(function(s){(function(o){var a={searchParams:"URLSearchParams"in s,iterable:"Symbol"in s&&"iterator"in Symbol,blob:"FileReader"in s&&"Blob"in s&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in s,arrayBuffer:"ArrayBuffer"in s};function c(x){return x&&DataView.prototype.isPrototypeOf(x)}if(a.arrayBuffer)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],p=ArrayBuffer.isView||function(x){return x&&l.indexOf(Object.prototype.toString.call(x))>-1};function m(x){if(typeof x!="string"&&(x=String(x)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(x))throw new TypeError("Invalid character in header field name");return x.toLowerCase()}function w(x){return typeof x!="string"&&(x=String(x)),x}function y(x){var $={next:function(){var K=x.shift();return{done:K===void 0,value:K}}};return a.iterable&&($[Symbol.iterator]=function(){return $}),$}function E(x){this.map={},x instanceof E?x.forEach(function($,K){this.append(K,$)},this):Array.isArray(x)?x.forEach(function($){this.append($[0],$[1])},this):x&&Object.getOwnPropertyNames(x).forEach(function($){this.append($,x[$])},this)}E.prototype.append=function(x,$){x=m(x),$=w($);var K=this.map[x];this.map[x]=K?K+", "+$:$},E.prototype.delete=function(x){delete this.map[m(x)]},E.prototype.get=function(x){return x=m(x),this.has(x)?this.map[x]:null},E.prototype.has=function(x){return this.map.hasOwnProperty(m(x))},E.prototype.set=function(x,$){this.map[m(x)]=w($)},E.prototype.forEach=function(x,$){for(var K in this.map)this.map.hasOwnProperty(K)&&x.call($,this.map[K],K,this)},E.prototype.keys=function(){var x=[];return this.forEach(function($,K){x.push(K)}),y(x)},E.prototype.values=function(){var x=[];return this.forEach(function($){x.push($)}),y(x)},E.prototype.entries=function(){var x=[];return this.forEach(function($,K){x.push([K,$])}),y(x)},a.iterable&&(E.prototype[Symbol.iterator]=E.prototype.entries);function T(x){if(x.bodyUsed)return Promise.reject(new TypeError("Already read"));x.bodyUsed=!0}function N(x){return new Promise(function($,K){x.onload=function(){$(x.result)},x.onerror=function(){K(x.error)}})}function L(x){var $=new FileReader,K=N($);return $.readAsArrayBuffer(x),K}function C(x){var $=new FileReader,K=N($);return $.readAsText(x),K}function D(x){for(var $=new Uint8Array(x),K=new Array($.length),Y=0;Y<$.length;Y++)K[Y]=String.fromCharCode($[Y]);return K.join("")}function v(x){if(x.slice)return x.slice(0);var $=new Uint8Array(x.byteLength);return $.set(new Uint8Array(x)),$.buffer}function S(){return this.bodyUsed=!1,this._initBody=function(x){this._bodyInit=x,x?typeof x=="string"?this._bodyText=x:a.blob&&Blob.prototype.isPrototypeOf(x)?this._bodyBlob=x:a.formData&&FormData.prototype.isPrototypeOf(x)?this._bodyFormData=x:a.searchParams&&URLSearchParams.prototype.isPrototypeOf(x)?this._bodyText=x.toString():a.arrayBuffer&&a.blob&&c(x)?(this._bodyArrayBuffer=v(x.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):a.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(x)||p(x))?this._bodyArrayBuffer=v(x):this._bodyText=x=Object.prototype.toString.call(x):this._bodyText="",this.headers.get("content-type")||(typeof x=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):a.searchParams&&URLSearchParams.prototype.isPrototypeOf(x)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},a.blob&&(this.blob=function(){var x=T(this);if(x)return x;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?T(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(L)}),this.text=function(){var x=T(this);if(x)return x;if(this._bodyBlob)return C(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(D(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a.formData&&(this.formData=function(){return this.text().then(H)}),this.json=function(){return this.text().then(JSON.parse)},this}var O=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function u(x){var $=x.toUpperCase();return O.indexOf($)>-1?$:x}function _(x,$){$=$||{};var K=$.body;if(x instanceof _){if(x.bodyUsed)throw new TypeError("Already read");this.url=x.url,this.credentials=x.credentials,$.headers||(this.headers=new E(x.headers)),this.method=x.method,this.mode=x.mode,this.signal=x.signal,!K&&x._bodyInit!=null&&(K=x._bodyInit,x.bodyUsed=!0)}else this.url=String(x);if(this.credentials=$.credentials||this.credentials||"same-origin",($.headers||!this.headers)&&(this.headers=new E($.headers)),this.method=u($.method||this.method||"GET"),this.mode=$.mode||this.mode||null,this.signal=$.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&K)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(K)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})};function H(x){var $=new FormData;return x.trim().split("&").forEach(function(K){if(K){var Y=K.split("="),W=Y.shift().replace(/\+/g," "),z=Y.join("=").replace(/\+/g," ");$.append(decodeURIComponent(W),decodeURIComponent(z))}}),$}function B(x){var $=new E,K=x.replace(/\r?\n[\t ]+/g," ");return K.split(/\r?\n/).forEach(function(Y){var W=Y.split(":"),z=W.shift().trim();if(z){var J=W.join(":").trim();$.append(z,J)}}),$}S.call(_.prototype);function q(x,$){$||($={}),this.type="default",this.status=$.status===void 0?200:$.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in $?$.statusText:"OK",this.headers=new E($.headers),this.url=$.url||"",this._initBody(x)}S.call(q.prototype),q.prototype.clone=function(){return new q(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new E(this.headers),url:this.url})},q.error=function(){var x=new q(null,{status:0,statusText:""});return x.type="error",x};var X=[301,302,303,307,308];q.redirect=function(x,$){if(X.indexOf($)===-1)throw new RangeError("Invalid status code");return new q(null,{status:$,headers:{location:x}})},o.DOMException=s.DOMException;try{new o.DOMException}catch{o.DOMException=function($,K){this.message=$,this.name=K;var Y=Error($);this.stack=Y.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function te(x,$){return new Promise(function(K,Y){var W=new _(x,$);if(W.signal&&W.signal.aborted)return Y(new o.DOMException("Aborted","AbortError"));var z=new XMLHttpRequest;function J(){z.abort()}z.onload=function(){var G={status:z.status,statusText:z.statusText,headers:B(z.getAllResponseHeaders()||"")};G.url="responseURL"in z?z.responseURL:G.headers.get("X-Request-URL");var ce="response"in z?z.response:z.responseText;K(new q(ce,G))},z.onerror=function(){Y(new TypeError("Network request failed"))},z.ontimeout=function(){Y(new TypeError("Network request failed"))},z.onabort=function(){Y(new o.DOMException("Aborted","AbortError"))},z.open(W.method,W.url,!0),W.credentials==="include"?z.withCredentials=!0:W.credentials==="omit"&&(z.withCredentials=!1),"responseType"in z&&a.blob&&(z.responseType="blob"),W.headers.forEach(function(G,ce){z.setRequestHeader(ce,G)}),W.signal&&(W.signal.addEventListener("abort",J),z.onreadystatechange=function(){z.readyState===4&&W.signal.removeEventListener("abort",J)}),z.send(typeof W._bodyInit>"u"?null:W._bodyInit)})}return te.polyfill=!0,s.fetch||(s.fetch=te,s.Headers=E,s.Request=_,s.Response=q),o.Headers=E,o.Request=_,o.Response=q,o.fetch=te,Object.defineProperty(o,"__esModule",{value:!0}),o})({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var i=n;e=i.fetch,e.default=i.fetch,e.fetch=i.fetch,e.Headers=i.Headers,e.Request=i.Request,e.Response=i.Response,t.exports=e})(Ca,Ca.exports);var Ju=rf(Ca.exports);const Xu={headers:{Accept:"application/json","Content-Type":"application/json"},method:"POST"},Qu=10;class bn{constructor(e){if(this.url=e,this.events=new xt.exports.EventEmitter,this.isAvailable=!1,this.registering=!1,!lu(e))throw new Error(`Provided URL is not compatible with HTTP connection: ${e}`);this.url=e}get connected(){return this.isAvailable}get connecting(){return this.registering}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}off(e,r){this.events.off(e,r)}removeListener(e,r){this.events.removeListener(e,r)}async open(e=this.url){await this.register(e)}async close(){if(!this.isAvailable)throw new Error("Connection already closed");this.onClose()}async send(e,r){this.isAvailable||await this.register();try{const n=ui(e),s=await(await Ju(this.url,Object.assign(Object.assign({},Xu),{body:n}))).json();this.onPayload({data:s})}catch(n){this.onError(e.id,n)}}async register(e=this.url){if(!lu(e))throw new Error(`Provided URL is not compatible with HTTP connection: ${e}`);if(this.registering){const r=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=r||this.events.listenerCount("open")>=r)&&this.events.setMaxListeners(r+1),new Promise((n,i)=>{this.events.once("register_error",s=>{this.resetMaxListeners(),i(s)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.isAvailable>"u")return i(new Error("HTTP connection is missing or invalid"));n()})})}this.url=e,this.registering=!0;try{const r=ui({id:1,jsonrpc:"2.0",method:"test",params:[]});await Ju(e,Object.assign(Object.assign({},Xu),{body:r})),this.onOpen()}catch(r){const n=this.parseError(r);throw this.events.emit("register_error",n),this.onClose(),n}}onOpen(){this.isAvailable=!0,this.registering=!1,this.events.emit("open")}onClose(){this.isAvailable=!1,this.registering=!1,this.events.emit("close")}onPayload(e){if(typeof e.data>"u")return;const r=typeof e.data=="string"?na(e.data):e.data;this.events.emit("payload",r)}onError(e,r){const n=this.parseError(r),i=n.message||n.toString(),s=gs(e,i);this.events.emit("payload",s)}parseError(e,r=this.url){return nu(e,r,"HTTP")}resetMaxListeners(){this.events.getMaxListeners()>Qu&&this.events.setMaxListeners(Qu)}}const e0="error",uv="wss://relay.walletconnect.com",dv="wc",fv="universal_provider",t0=`${dv}@${2}:${fv}:`,pv="https://rpc.walletconnect.com/v1",zr={DEFAULT_CHAIN_CHANGED:"default_chain_changed"};var gv=Object.defineProperty,r0=Object.getOwnPropertySymbols,mv=Object.prototype.hasOwnProperty,wv=Object.prototype.propertyIsEnumerable,n0=(t,e,r)=>e in t?gv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ia=(t,e)=>{for(var r in e||(e={}))mv.call(e,r)&&n0(t,r,e[r]);if(r0)for(var r of r0(e))wv.call(e,r)&&n0(t,r,e[r]);return t};function or(t,e,r){let n;const i=Sa(t);return e.rpcMap&&(n=e.rpcMap[i]),n||(n=`${pv}?chainId=eip155:${i}&projectId=${r}`),n}function Sa(t){return t.includes("eip155")?Number(t.split(":")[1]):Number(t)}function yv(t,e){if(!e.includes(t))throw new Error(`Chain '${t}' not approved. Please use one of the following: ${e.toString()}`)}function vv(t){return t.map(e=>`${e.split(":")[0]}:${e.split(":")[1]}`)}function bv(t,e){const r=Object.keys(e.namespaces).filter(i=>i.includes(t));if(!r.length)return[];const n=[];return r.forEach(i=>{const s=e.namespaces[i].accounts;n.push(...s)}),n}function _v(t,e={}){const r=i0(t),n=i0(e);return Ia({},Object.assign(r,n))}function i0(t){var e,r,n,i;const s={};if(!mn(t))return s;for(const[o,a]of Object.entries(t)){const c=s0(o)?[o]:a.chains,l=a.methods||[],p=a.events||[],m=o0(o);s[m]={chains:Da(c,(e=s[m])==null?void 0:e.chains),methods:Da(l,(r=s[m])==null?void 0:r.methods),events:Da(p,(n=s[m])==null?void 0:n.events),rpcMap:Ia(Ia({},(i=s[m])==null?void 0:i.rpcMap),a.rpcMap)}}return s}function s0(t){return t.includes(":")}function o0(t){return s0(t)?t.split(":")[0]:t}function Da(t=[],e=[]){return[...new Set([...t,...e])]}const _n=(t,e)=>{const r=n=>{n.request!==e.request||n.topic!==e.topic||(t.events.removeListener("session_request_sent",r),Ev(e))};t.on("session_request_sent",r)};function Ev(t){if(typeof window<"u")try{const e=window.localStorage.getItem("WALLETCONNECT_DEEPLINK_CHOICE");if(e){const r=JSON.parse(e),n=r?.href;if(typeof n=="string"){n.endsWith("/")&&n.slice(0,-1);const i=`${n}/wc?requestId=${t.id}&sessionTopic=${t.topic}`;window.open(i,"_self","noreferrer noopener")}}}catch(e){console.error(e)}}class xv{constructor(e){this.name="eip155",this.namespace=e.namespace,this.client=e.client,this.events=e.events,this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){var r;switch(e.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return this.handleSwitchChain(e.request.params?(r=e.request.params[0])==null?void 0:r.chainId:"0x0"),null;case"eth_chainId":return parseInt(this.getDefaultChain())}return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),await this.client.request(e)):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,r){const n=Sa(e);if(!this.httpProviders[n]){const i=r||or(`${this.name}:${n}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${n}`);this.setHttpProvider(n,i)}this.chainId=n,this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${n}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}createHttpProvider(e,r){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;const i=Sa(r);e[i]=this.createHttpProvider(i,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}getHttpProvider(){const e=this.chainId,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}handleSwitchChain(e){const r=parseInt(e,16),n=`${this.name}:${r}`;yv(n,this.namespace.chains),this.setDefaultChain(`${r}`)}}class Cv{constructor(e){this.name="solana",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(!this.httpProviders[e]){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;e[r]=this.createHttpProvider(r,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||or(e,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}}class Iv{constructor(e){this.name="cosmos",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(this.chainId=e,!this.httpProviders[e]){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;e[r]=this.createHttpProvider(r,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||or(e,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}}class Sv{constructor(e){this.name="cip34",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(this.chainId=e,!this.httpProviders[e]){const n=r||this.getCardanoRPCUrl(e);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{const n=this.getCardanoRPCUrl(r);e[r]=this.createHttpProvider(r,n)}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}getCardanoRPCUrl(e){const r=this.namespace.rpcMap;if(r)return r[e]}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||this.getCardanoRPCUrl(e);return typeof n>"u"?void 0:new Hr(new bn(n))}}class Dv{constructor(e){this.name="elrond",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(!this.httpProviders[e]){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;e[r]=this.createHttpProvider(r,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||or(e,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}}class Ov{constructor(e){this.name="multiversx",this.namespace=e.namespace,this.events=e.events,this.client=e.client,this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?(_n(this.client,e),this.client.request(e)):this.getHttpProvider().request(e.request)}setDefaultChain(e,r){if(!this.httpProviders[e]){const n=r||or(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(zr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(r=>r.split(":")[1]===this.chainId.toString()).map(r=>r.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(r=>{var n;e[r]=this.createHttpProvider(r,(n=this.namespace.rpcMap)==null?void 0:n[r])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,r=this.httpProviders[e];if(typeof r>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return r}setHttpProvider(e,r){const n=this.createHttpProvider(e,r);n&&(this.httpProviders[e]=n)}createHttpProvider(e,r){const n=r||or(e,this.namespace,this.client.core.projectId);return typeof n>"u"?void 0:new Hr(new bn(n))}}var $v=Object.defineProperty,Av=Object.defineProperties,Pv=Object.getOwnPropertyDescriptors,a0=Object.getOwnPropertySymbols,Tv=Object.prototype.hasOwnProperty,Nv=Object.prototype.propertyIsEnumerable,c0=(t,e,r)=>e in t?$v(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,bs=(t,e)=>{for(var r in e||(e={}))Tv.call(e,r)&&c0(t,r,e[r]);if(a0)for(var r of a0(e))Nv.call(e,r)&&c0(t,r,e[r]);return t},Oa=(t,e)=>Av(t,Pv(e));class $a{constructor(e){this.events=new xt.exports,this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.providerOpts=e,this.logger=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:Xn(Be.getDefaultLoggerOptions({level:e?.logger||e0}))}static async init(e){const r=new $a(e);return await r.initialize(),r}async request(e,r){const[n,i]=this.validateChain(r);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(n).request({request:bs({},e),chainId:`${n}:${i}`,topic:this.session.topic})}sendAsync(e,r,n){this.request(e,n).then(i=>r(null,i)).catch(i=>r(i,void 0))}async enable(){if(!this.client)throw new Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var e;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(e=this.session)==null?void 0:e.topic,reason:tt("USER_DISCONNECTED")}),await this.cleanup()}async connect(e){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}removeListener(e,r){this.events.removeListener(e,r)}off(e,r){this.events.off(e,r)}get isWalletConnect(){return!0}async pair(e){this.shouldAbortPairingAttempt=!1;let r=0;do{if(this.shouldAbortPairingAttempt)throw new Error("Pairing aborted");if(r>=this.maxPairingAttempts)throw new Error("Max auto pairing attempts reached");const{uri:n,approval:i}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});n&&(this.uri=n,this.events.emit("display_uri",n)),await i().then(s=>{this.session=s}).catch(s=>{if(s.message!==Gu)throw s;r++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(e,r){try{const[n,i]=this.validateChain(e);this.getProvider(n).setDefaultChain(i,r)}catch(n){if(!/Please call connect/.test(n.message))throw n}}async cleanupPendingPairings(e={}){this.logger.info("Cleaning up inactive pairings...");const r=this.client.pairing.getAll();if(ur(r)){for(const n of r)e.deletePairings?this.client.core.expirer.set(n.topic,0):await this.client.core.relayer.subscriber.unsubscribe(n.topic);this.logger.info(`Inactive pairings cleared: ${r.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore("namespaces")||{},this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.client.session.length){const e=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[e]),this.createProviders()}}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await xa.init({logger:this.providerOpts.logger||e0,relayUrl:this.providerOpts.relayUrl||uv,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,name:this.providerOpts.name}),this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw new Error("Sign Client not initialized");if(!this.session)throw new Error("Session not initialized. Please call connect() before enable()");[...new Set(Object.keys(this.session.namespaces).map(e=>o0(e)))].forEach(e=>{if(!this.session)return;const r=bv(e,this.session),n=vv(r),i=_v(this.namespaces,this.optionalNamespaces),s=Oa(bs({},i[e]),{accounts:r,chains:n});switch(e){case"eip155":this.rpcProviders[e]=new xv({client:this.client,namespace:s,events:this.events});break;case"solana":this.rpcProviders[e]=new Cv({client:this.client,namespace:s,events:this.events});break;case"cosmos":this.rpcProviders[e]=new Iv({client:this.client,namespace:s,events:this.events});break;case"polkadot":break;case"cip34":this.rpcProviders[e]=new Sv({client:this.client,namespace:s,events:this.events});break;case"elrond":this.rpcProviders[e]=new Dv({client:this.client,namespace:s,events:this.events});break;case"multiversx":this.rpcProviders[e]=new Ov({client:this.client,namespace:s,events:this.events});break}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",e=>{this.events.emit("session_ping",e)}),this.client.on("session_event",e=>{const{params:r}=e,{event:n}=r;n.name==="accountsChanged"?this.events.emit("accountsChanged",n.data):n.name==="chainChanged"?this.onChainChanged(r.chainId):this.events.emit(n.name,n.data),this.events.emit("session_event",e)}),this.client.on("session_update",({topic:e,params:r})=>{var n;const{namespaces:i}=r,s=(n=this.client)==null?void 0:n.session.get(e);this.session=Oa(bs({},s),{namespaces:i}),this.onSessionUpdate(),this.events.emit("session_update",{topic:e,params:r})}),this.client.on("session_delete",async e=>{await this.cleanup(),this.events.emit("session_delete",e),this.events.emit("disconnect",Oa(bs({},tt("USER_DISCONNECTED")),{data:e.topic}))}),this.on(zr.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){if(!this.rpcProviders[e])throw new Error(`Provider not found: ${e}`);return this.rpcProviders[e]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{var r;this.getProvider(e).updateNamespace((r=this.session)==null?void 0:r.namespaces[e])})}setNamespaces(e){const{namespaces:r,optionalNamespaces:n,sessionProperties:i}=e;if(!r||!Object.keys(r).length)throw new Error("Namespaces must be not empty");this.namespaces=r,this.optionalNamespaces=n,this.sessionProperties=i,this.persist("namespaces",r),this.persist("optionalNamespaces",n)}validateChain(e){const[r,n]=e?.split(":")||["",""];if(r&&!Object.keys(this.namespaces).includes(r))throw new Error(`Namespace '${r}' is not configured. Please call connect() first with namespace config.`);if(r&&n)return[r,n];const i=Object.keys(this.namespaces)[0],s=this.rpcProviders[i].getDefaultChain();return[i,s]}async requestAccounts(){const[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}onChainChanged(e,r=!1){const[n,i]=this.validateChain(e);r||this.getProvider(n).setDefaultChain(i),this.namespaces[n].defaultChain=i,this.persist("namespaces",this.namespaces),this.events.emit("chainChanged",i)}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0})}persist(e,r){this.client.core.storage.setItem(`${t0}/${e}`,r)}async getFromStore(e){return await this.client.core.storage.getItem(`${t0}/${e}`)}}const Rv=$a,Mv="wc",Lv="ethereum_provider",Uv=`${Mv}@${2}:${Lv}:`,jv="https://rpc.walletconnect.com/v1/",_s=["eth_sendTransaction","personal_sign"],Fv=["eth_accounts","eth_requestAccounts","eth_call","eth_getBalance","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],Es=["chainChanged","accountsChanged"],Bv=["message","disconnect","connect"];var kv=Object.defineProperty,Hv=Object.defineProperties,zv=Object.getOwnPropertyDescriptors,l0=Object.getOwnPropertySymbols,Wv=Object.prototype.hasOwnProperty,qv=Object.prototype.propertyIsEnumerable,h0=(t,e,r)=>e in t?kv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Aa=(t,e)=>{for(var r in e||(e={}))Wv.call(e,r)&&h0(t,r,e[r]);if(l0)for(var r of l0(e))qv.call(e,r)&&h0(t,r,e[r]);return t},u0=(t,e)=>Hv(t,zv(e));function Pa(t){return Number(t[0].split(":")[1])}function Ta(t){return`0x${t.toString(16)}`}function Vv(t){const{chains:e,optionalChains:r,methods:n,optionalMethods:i,events:s,optionalEvents:o,rpcMap:a}=t;if(!ur(e))throw new Error("Invalid chains");const c=e,l=n||_s,p=s||Es,m={[Pa(c)]:a[Pa(c)]},w={chains:c,methods:l,events:p,rpcMap:m},y=s?.filter(L=>!Es.includes(L)),E=n?.filter(L=>!_s.includes(L));if(!r&&!o&&!i&&!(y!=null&&y.length)&&!(E!=null&&E.length))return{required:w};const T=y?.length&&E?.length||!r,N={chains:[...new Set(T?c.concat(r||[]):r)],methods:[...new Set(l.concat(i||[]))],events:[...new Set(p.concat(o||[]))],rpcMap:a};return{required:w,optional:N}}class xs{constructor(){this.events=new xt.exports.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.STORAGE_KEY=Uv,this.on=(e,r)=>(this.events.on(e,r),this),this.once=(e,r)=>(this.events.once(e,r),this),this.removeListener=(e,r)=>(this.events.removeListener(e,r),this),this.off=(e,r)=>(this.events.off(e,r),this),this.parseAccount=e=>this.isCompatibleChainId(e)?this.parseAccountId(e).address:e,this.signer={},this.rpc={}}static async init(e){const r=new xs;return await r.initialize(e),r}async request(e){return await this.signer.request(e,this.formatChainId(this.chainId))}sendAsync(e,r){this.signer.sendAsync(e,r,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(e){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(e);const{required:r,optional:n}=Vv(this.rpc);try{const i=await new Promise(async(o,a)=>{var c;this.rpc.showQrModal&&((c=this.modal)==null||c.subscribeModal(l=>{!l.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),a(new Error("Connection request reset. Please try again.")))})),await this.signer.connect(u0(Aa({namespaces:{[this.namespace]:r}},n&&{optionalNamespaces:{[this.namespace]:n}}),{pairingTopic:e?.pairingTopic})).then(l=>{o(l)}).catch(l=>{a(new Error(l.message))})});if(!i)return;this.setChainIds(this.rpc.chains);const s=Cg(i.namespaces,[this.namespace]);this.setAccounts(s),this.events.emit("connect",{chainId:Ta(this.chainId)})}catch(i){throw this.signer.logger.error(i),i}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",e=>{const{params:r}=e,{event:n}=r;n.name==="accountsChanged"?(this.accounts=this.parseAccounts(n.data),this.events.emit("accountsChanged",this.accounts)):n.name==="chainChanged"?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit("session_event",e)}),this.signer.on("chainChanged",e=>{const r=parseInt(e);this.chainId=r,this.events.emit("chainChanged",Ta(this.chainId)),this.persist()}),this.signer.on("session_update",e=>{this.events.emit("session_update",e)}),this.signer.on("session_delete",e=>{this.reset(),this.events.emit("session_delete",e),this.events.emit("disconnect",u0(Aa({},tt("USER_DISCONNECTED")),{data:e.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",e=>{var r,n;this.rpc.showQrModal&&((r=this.modal)==null||r.closeModal(),(n=this.modal)==null||n.openModal({uri:e})),this.events.emit("display_uri",e)})}setHttpProvider(e){this.request({method:"wallet_switchEthereumChain",params:[{chainId:e.toString(16)}]})}isCompatibleChainId(e){return typeof e=="string"?e.startsWith(`${this.namespace}:`):!1}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(":")[1])}setChainIds(e){const r=e.filter(n=>this.isCompatibleChainId(n)).map(n=>this.parseChainId(n));r.length&&(this.chainId=r[0],this.events.emit("chainChanged",Ta(this.chainId)),this.persist())}setChainId(e){if(this.isCompatibleChainId(e)){const r=this.parseChainId(e);this.chainId=r,this.setHttpProvider(r)}}parseAccountId(e){const[r,n,i]=e.split(":");return{chainId:`${r}:${n}`,address:i}}setAccounts(e){this.accounts=e.filter(r=>this.parseChainId(this.parseAccountId(r).chainId)===this.chainId).map(r=>this.parseAccountId(r).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(e){var r,n;return{chains:((r=e.chains)==null?void 0:r.map(i=>this.formatChainId(i)))||[`${this.namespace}:1`],optionalChains:e.optionalChains?e.optionalChains.map(i=>this.formatChainId(i)):void 0,methods:e?.methods||_s,events:e?.events||Es,optionalMethods:e?.optionalMethods||[],optionalEvents:e?.optionalEvents||[],rpcMap:e?.rpcMap||this.buildRpcMap(e.chains.concat(e.optionalChains||[]),e.projectId),showQrModal:Boolean(e?.showQrModal),qrModalOptions:(n=e?.qrModalOptions)!=null?n:void 0,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,r){const n={};return e.forEach(i=>{n[i]=this.getRpcUrl(i,r)}),n}async initialize(e){if(this.rpc=this.getRpcConfig(e),this.chainId=Pa(this.rpc.chains),this.signer=await Rv.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal)try{const{Web3Modal:r}=await Promise.resolve().then(function(){return yb});this.modal=new r(Aa({walletConnectVersion:2,projectId:this.rpc.projectId,standaloneChains:this.rpc.chains},this.rpc.qrModalOptions))}catch{throw new Error("To use QR modal, please install @web3modal/standalone package")}}loadConnectOpts(e){if(!e)return;const{chains:r,optionalChains:n,rpcMap:i}=e;r&&ur(r)&&(this.rpc.chains=r.map(s=>this.formatChainId(s)),r.forEach(s=>{this.rpc.rpcMap[s]=i?.[s]||this.getRpcUrl(s)})),n&&ur(n)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=n?.map(s=>this.formatChainId(s)),n.forEach(s=>{this.rpc.rpcMap[s]=i?.[s]||this.getRpcUrl(s)}))}getRpcUrl(e,r){var n;return((n=this.rpc.rpcMap)==null?void 0:n[e])||`${jv}?chainId=eip155:${e}&projectId=${r||this.rpc.projectId}`}async loadPersistedSession(){if(!this.session)return;const e=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`);this.setChainIds(e?[this.formatChainId(e)]:this.session.namespaces[this.namespace].accounts),this.setAccounts(this.session.namespaces[this.namespace].accounts)}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(e){return typeof e=="string"||e instanceof String?[this.parseAccount(e)]:e.map(r=>this.parseAccount(r))}}const Kv=xs,Gv=Symbol(),d0=Object.getPrototypeOf,Na=new WeakMap,Zv=t=>t&&(Na.has(t)?Na.get(t):d0(t)===Object.prototype||d0(t)===Array.prototype),Yv=t=>Zv(t)&&t[Gv]||null,f0=(t,e=!0)=>{Na.set(t,e)},Ra=t=>typeof t=="object"&&t!==null,Wr=new WeakMap,Cs=new WeakSet,Jv=(t=Object.is,e=(l,p)=>new Proxy(l,p),r=l=>Ra(l)&&!Cs.has(l)&&(Array.isArray(l)||!(Symbol.iterator in l))&&!(l instanceof WeakMap)&&!(l instanceof WeakSet)&&!(l instanceof Error)&&!(l instanceof Number)&&!(l instanceof Date)&&!(l instanceof String)&&!(l instanceof RegExp)&&!(l instanceof ArrayBuffer),n=l=>{switch(l.status){case"fulfilled":return l.value;case"rejected":throw l.reason;default:throw l}},i=new WeakMap,s=(l,p,m=n)=>{const w=i.get(l);if(w?.[0]===p)return w[1];const y=Array.isArray(l)?[]:Object.create(Object.getPrototypeOf(l));return f0(y,!0),i.set(l,[p,y]),Reflect.ownKeys(l).forEach(E=>{if(Object.getOwnPropertyDescriptor(y,E))return;const T=Reflect.get(l,E),N={value:T,enumerable:!0,configurable:!0};if(Cs.has(T))f0(T,!1);else if(T instanceof Promise)delete N.value,N.get=()=>m(T);else if(Wr.has(T)){const[L,C]=Wr.get(T);N.value=s(L,C(),m)}Object.defineProperty(y,E,N)}),y},o=new WeakMap,a=[1,1],c=l=>{if(!Ra(l))throw new Error("object required");const p=o.get(l);if(p)return p;let m=a[0];const w=new Set,y=(H,B=++a[0])=>{m!==B&&(m=B,w.forEach(q=>q(H,B)))};let E=a[1];const T=(H=++a[1])=>(E!==H&&!w.size&&(E=H,L.forEach(([B])=>{const q=B[1](H);q>m&&(m=q)})),m),N=H=>(B,q)=>{const X=[...B];X[1]=[H,...X[1]],y(X,q)},L=new Map,C=(H,B)=>{if(void 0!=="production"&&L.has(H))throw new Error("prop listener already exists");if(w.size){const q=B[3](N(H));L.set(H,[B,q])}else L.set(H,[B])},D=H=>{var B;const q=L.get(H);q&&(L.delete(H),(B=q[1])==null||B.call(q))},v=H=>(w.add(H),w.size===1&&L.forEach(([q,X],te)=>{if(void 0!=="production"&&X)throw new Error("remove already exists");const x=q[3](N(te));L.set(te,[q,x])}),()=>{w.delete(H),w.size===0&&L.forEach(([q,X],te)=>{X&&(X(),L.set(te,[q]))})}),S=Array.isArray(l)?[]:Object.create(Object.getPrototypeOf(l)),u=e(S,{deleteProperty(H,B){const q=Reflect.get(H,B);D(B);const X=Reflect.deleteProperty(H,B);return X&&y(["delete",[B],q]),X},set(H,B,q,X){const te=Reflect.has(H,B),x=Reflect.get(H,B,X);if(te&&(t(x,q)||o.has(q)&&t(x,o.get(q))))return!0;D(B),Ra(q)&&(q=Yv(q)||q);let $=q;if(q instanceof Promise)q.then(K=>{q.status="fulfilled",q.value=K,y(["resolve",[B],K])}).catch(K=>{q.status="rejected",q.reason=K,y(["reject",[B],K])});else{!Wr.has(q)&&r(q)&&($=c(q));const K=!Cs.has($)&&Wr.get($);K&&C(B,K)}return Reflect.set(H,B,$,X),y(["set",[B],q,x]),!0}});o.set(l,u);const _=[S,T,s,v];return Wr.set(u,_),Reflect.ownKeys(l).forEach(H=>{const B=Object.getOwnPropertyDescriptor(l,H);"value"in B&&(u[H]=l[H],delete B.value,delete B.writable),Object.defineProperty(S,H,B)}),u})=>[c,Wr,Cs,t,e,r,n,i,s,o,a],[Xv]=Jv();function Er(t={}){return Xv(t)}function qr(t,e,r){const n=Wr.get(t);void 0!=="production"&&!n&&console.warn("Please use proxy object");let i;const s=[],o=n[3];let a=!1;const l=o(p=>{if(s.push(p),r){e(s.splice(0));return}i||(i=Promise.resolve().then(()=>{i=void 0,a&&e(s.splice(0))}))});return a=!0,()=>{a=!1,l()}}var p0={},Is={};Is.byteLength=tb,Is.toByteArray=nb,Is.fromByteArray=ob;for(var ar=[],Gt=[],Qv=typeof Uint8Array<"u"?Uint8Array:Array,Ma="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",En=0,eb=Ma.length;En<eb;++En)ar[En]=Ma[En],Gt[Ma.charCodeAt(En)]=En;Gt["-".charCodeAt(0)]=62,Gt["_".charCodeAt(0)]=63;function g0(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function tb(t){var e=g0(t),r=e[0],n=e[1];return(r+n)*3/4-n}function rb(t,e,r){return(e+r)*3/4-r}function nb(t){var e,r=g0(t),n=r[0],i=r[1],s=new Qv(rb(t,n,i)),o=0,a=i>0?n-4:n,c;for(c=0;c<a;c+=4)e=Gt[t.charCodeAt(c)]<<18|Gt[t.charCodeAt(c+1)]<<12|Gt[t.charCodeAt(c+2)]<<6|Gt[t.charCodeAt(c+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Gt[t.charCodeAt(c)]<<2|Gt[t.charCodeAt(c+1)]>>4,s[o++]=e&255),i===1&&(e=Gt[t.charCodeAt(c)]<<10|Gt[t.charCodeAt(c+1)]<<4|Gt[t.charCodeAt(c+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function ib(t){return ar[t>>18&63]+ar[t>>12&63]+ar[t>>6&63]+ar[t&63]}function sb(t,e,r){for(var n,i=[],s=e;s<r;s+=3)n=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),i.push(ib(n));return i.join("")}function ob(t){for(var e,r=t.length,n=r%3,i=[],s=16383,o=0,a=r-n;o<a;o+=s)i.push(sb(t,o,o+s>a?a:o+s));return n===1?(e=t[r-1],i.push(ar[e>>2]+ar[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],i.push(ar[e>>10]+ar[e>>4&63]+ar[e<<2&63]+"=")),i.join("")}var La={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */La.read=function(t,e,r,n,i){var s,o,a=i*8-n-1,c=(1<<a)-1,l=c>>1,p=-7,m=r?i-1:0,w=r?-1:1,y=t[e+m];for(m+=w,s=y&(1<<-p)-1,y>>=-p,p+=a;p>0;s=s*256+t[e+m],m+=w,p-=8);for(o=s&(1<<-p)-1,s>>=-p,p+=n;p>0;o=o*256+t[e+m],m+=w,p-=8);if(s===0)s=1-l;else{if(s===c)return o?NaN:(y?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-l}return(y?-1:1)*o*Math.pow(2,s-n)},La.write=function(t,e,r,n,i,s){var o,a,c,l=s*8-i-1,p=(1<<l)-1,m=p>>1,w=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,y=n?0:s-1,E=n?1:-1,T=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=p):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+m>=1?e+=w/c:e+=w*Math.pow(2,1-m),e*c>=2&&(o++,c/=2),o+m>=p?(a=0,o=p):o+m>=1?(a=(e*c-1)*Math.pow(2,i),o=o+m):(a=e*Math.pow(2,m-1)*Math.pow(2,i),o=0));i>=8;t[r+y]=a&255,y+=E,a/=256,i-=8);for(o=o<<i|a,l+=i;l>0;t[r+y]=o&255,y+=E,o/=256,l-=8);t[r+y-E]|=T*128};/*!
|
|
73
73
|
* The buffer module from node.js, for the browser.
|
|
74
74
|
*
|
|
75
75
|
* @author Feross Aboukhadijeh <https://feross.org>
|