PageSourceSearch

https://app.agora.finance/_next/static/chunks/19996.8b4ee03b3c7d9b0c.js

js agora.finance collected 2026-09-28 06:35:11 UTC 318,052 bytes, 11 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[19996],{1328:(e,t,i)=>{"use strict";function r(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function s(e,t){t||(t=e.reduce((e,t)=>e+t.length,0));let i=r(t),s=0;for(let t of e)i.set(t,s),s+=t.length;return i}i.d(t,{xW:()=>s,sH:()=>h,dI:()=>u});var n=i(56512);function o(e,t,i,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:i},decoder:{decode:r}}}let a=o("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),l=o("ascii","a",e=>{let t="a";for(let i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return t},e=>{let t=r((e=e.substring(1)).length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}),c={utf8:a,"utf-8":a,hex:n.Fo.base16,latin1:l,ascii:l,binary:l,...n.Fo};function h(e,t="utf8"){let i=c[t];if(!i)throw Error(`Unsupported encoding "${t}"`);return("utf8"===t||"utf-8"===t)&&null!=globalThis.Buffer&&null!=globalThis.Buffer.from?globalThis.Buffer.from(e,"utf8"):i.decoder.decode(`${i.prefix}${e}`)}function u(e,t="utf8"){let i=c[t];if(!i)throw Error(`Unsupported encoding "${t}"`);return("utf8"===t||"utf-8"===t)&&null!=globalThis.Buffer&&null!=globalThis.Buffer.from?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):i.encoder.encode(e).substring(1)}},3627:(e,t,i)=>{"use strict";i.d(t,{x:()=>G});let r="2.23.2",s={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:i})=>t?`${e??"https://viem.sh"}${t}${i?`#${i}`:""}`:void 0,version:`viem@${r}`};class n extends Error{constructor(e,t={}){const i=t.cause instanceof n?t.cause.details:t.cause?.message?t.cause.message:t.details,o=t.cause instanceof n&&t.cause.docsPath||t.docsPath,a=s.getDocsUrl?.({...t,docsPath:o});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...a?[`Docs: ${a}`]:[],...i?[`Details: ${i}`]:[],...s.version?[`Version: ${s.version}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=i,this.docsPath=o,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=r}walk(e){return function e(t,i){return i?.(t)?t:t&&"object"==typeof t&&"cause"in t&&void 0!==t.cause?e(t.cause,i):i?null:t}(this,e)}}function o(e,{strict:t=!0}={}){return!!e&&"string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x"))}class a extends n{constructor({size:e,targetSize:t,type:i}){super(`${i.charAt(0).toUpperCase()}${i.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:"SizeExceedsPaddingSizeError"})}}function l(e,{dir:t,size:i=32}={}){return"string"==typeof e?function(e,{dir:t,size:i=32}={}){if(null===i)return e;let r=e.replace("0x","");if(r.length>2*i)throw new a({size:Math.ceil(r.length/2),targetSize:i,type:"hex"});return`0x${r["right"===t?"padEnd":"padStart"](2*i,"0")}`}(e,{dir:t,size:i}):function(e,{dir:t,size:i=32}={}){if(null===i)return e;if(e.length>i)throw new a({size:e.length,targetSize:i,type:"bytes"});let r=new Uint8Array(i);for(let s=0;s<i;s++){let n="right"===t;r[n?s:i-s-1]=e[n?s:e.length-s-1]}return r}(e,{dir:t,size:i})}class c extends n{constructor({max:e,min:t,signed:i,size:r,value:s}){super(`Number "${s}" is not in safe ${r?`${8*r}-bit ${i?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class h extends n{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function u(e){return o(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function p(e,{size:t}){if(u(e)>t)throw new h({givenSize:u(e),maxSize:t})}function d(e,t={}){let{signed:i}=t;t.size&&p(e,{size:t.size});let r=BigInt(e);if(!i)return r;let s=(e.length-2)/2;return r<=(1n<<8n*BigInt(s)-1n)-1n?r:r-BigInt(`0x${"f".padStart(2*s,"f")}`)-1n}let g=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function f(e,t={}){return"number"==typeof e||"bigint"==typeof e?m(e,t):"string"==typeof e?function(e,t={}){return y(b.encode(e),t)}(e,t):"boolean"==typeof e?function(e,t={}){let i=`0x${Number(e)}`;return"number"==typeof t.size?(p(i,{size:t.size}),l(i,{size:t.size})):i}(e,t):y(e,t)}function y(e,t={}){let i="";for(let t=0;t<e.length;t++)i+=g[e[t]];let r=`0x${i}`;return"number"==typeof t.size?(p(r,{size:t.size}),l(r,{dir:"right",size:t.size})):r}function m(e,t={}){let i,{signed:r,size:s}=t,n=BigInt(e);s?i=r?(1n<<8n*BigInt(s)-1n)-1n:2n**(8n*BigInt(s))-1n:"number"==typeof e&&(i=BigInt(Number.MAX_SAFE_INTEGER));let o="bigint"==typeof i&&r?-i-1n:0;if(i&&n>i||n<o){let t="bigint"==typeof e?"n":"";throw new c({max:i?`${i}${t}`:void 0,min:`${o}${t}`,signed:r,size:s,value:`${e}${t}`})}let a=`0x${(r&&n<0?(1n<<BigInt(8*s))+BigInt(n):n).toString(16)}`;return s?l(a,{size:s}):a}let b=new TextEncoder,w=new TextEncoder;function v(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function E(e,t={}){let i=e;t.size&&(p(i,{size:t.size}),i=l(i,{dir:"right",size:t.size}));let r=i.slice(2);r.length%2&&(r=`0${r}`);let s=r.length/2,o=new Uint8Array(s);for(let e=0,t=0;e<s;e++){let i=v(r.charCodeAt(t++)),s=v(r.charCodeAt(t++));if(void 0===i||void 0===s)throw new n(`Invalid byte sequence ("${r[t-2]}${r[t-1]}" in "${r}").`);o[e]=16*i+s}return o}function I(e,t={}){let i=w.encode(e);return"number"==typeof t.size?(p(i,{size:t.size}),l(i,{dir:"right",size:t.size})):i}var P=i(83748);let O=BigInt(0x100000000-1),S=BigInt(32);var _=i(23854);let x=[],A=[],R=[],C=BigInt(0),T=BigInt(1),N=BigInt(2),j=BigInt(7),q=BigInt(256),k=BigInt(113);for(let e=0,t=T,i=1,r=0;e<24;e++){[i,r]=[r,(2*i+3*r)%5],x.push(2*(5*r+i)),A.push((e+1)*(e+2)/2%64);let s=C;for(let e=0;e<7;e++)(t=(t<<T^(t>>j)*k)%q)&N&&(s^=T<<(T<<BigInt(e))-T);R.push(s)}let[D,$]=function(e,t=!1){let i=new Uint32Array(e.length),r=new 
1Uint32Array(e.length);for(let s=0;s<e.length;s++){let{h:n,l:o}=function(e,t=!1){return t?{h:Number(e&O),l:Number(e>>S&O)}:{h:0|Number(e>>S&O),l:0|Number(e&O)}}(e[s],t);[i[s],r[s]]=[n,o]}return[i,r]}(R,!0),U=(e,t,i)=>i>32?t<<i-32|e>>>64-i:e<<i|t>>>32-i,L=(e,t,i)=>i>32?e<<i-32|t>>>64-i:t<<i|e>>>32-i;class M extends _.Vw{constructor(e,t,i,r=!1,s=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=i,this.enableXOF=r,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,(0,P.Fe)(i),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=(0,_.DH)(this.state)}keccak(){_.qv||(0,_.Fc)(this.state32),function(e,t=24){let i=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)i[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,s=(t+2)%10,n=i[s],o=i[s+1],a=U(n,o,1)^i[r],l=L(n,o,1)^i[r+1];for(let i=0;i<50;i+=10)e[t+i]^=a,e[t+i+1]^=l}let t=e[2],s=e[3];for(let i=0;i<24;i++){let r=A[i],n=U(t,s,r),o=L(t,s,r),a=x[i];t=e[a],s=e[a+1],e[a]=n,e[a+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)i[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~i[(r+2)%10]&i[(r+4)%10]}e[0]^=D[r],e[1]^=$[r]}i.fill(0)}(this.state32,this.rounds),_.qv||(0,_.Fc)(this.state32),this.posOut=0,this.pos=0}update(e){(0,P.CC)(this);let{blockLen:t,state:i}=this,r=(e=(0,_.ZJ)(e)).length;for(let s=0;s<r;){let n=Math.min(t-this.pos,r-s);for(let t=0;t<n;t++)i[this.pos++]^=e[s++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:i,blockLen:r}=this;e[i]^=t,(128&t)!=0&&i===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){(0,P.CC)(this,!1),(0,P.DO)(e),this.finish();let t=this.state,{blockLen:i}=this;for(let r=0,s=e.length;r<s;){this.posOut>=i&&this.keccak();let n=Math.min(i-this.posOut,s-r);e.set(t.subarray(this.posOut,this.posOut+n),r),this.posOut+=n,r+=n}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return(0,P.Fe)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,P.Ht)(e,this),this.finished)throw Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){let{blockLen:t,suffix:i,outputLen:r,rounds:s,enableXOF:n}=this;return e||(e=new M(t,i,r,n,s)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=s,e.suffix=i,e.outputLen=r,e.enableXOF=n,e.destroyed=this.destroyed,e}}let B=(0,_.ld)(()=>new M(136,1,32));function z(e,t){let i=B(o(e,{strict:!1})?function(e,t={}){return"number"==typeof e||"bigint"==typeof e?E(m(e,t)):"boolean"==typeof e?function(e,t={}){let i=new Uint8Array(1);return(i[0]=Number(e),"number"==typeof t.size)?(p(i,{size:t.size}),l(i,{size:t.size})):i}(e,t):o(e)?E(e,t):I(e,t)}(e):e);return"bytes"===(t||"hex")?i:f(i)}class H extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=this.keys().next().value;e&&this.delete(e)}return this}}let V=new H(8192);async function K({hash:e,signature:t}){let r=o(e)?e:f(e),{secp256k1:s}=await i.e(27438).then(i.bind(i,27438)),n=(()=>{if("object"==typeof t&&"r"in t&&"s"in t){let{r:e,s:i,v:r,yParity:n}=t,o=F(Number(n??r));return new s.Signature(d(e),d(i)).addRecoveryBit(o)}let e=o(t)?t:f(t),i=F(function(e,t={}){return Number(d(e,t))}(`0x${e.slice(130)}`));return s.Signature.fromCompact(e.substring(2,130)).addRecoveryBit(i)})().recoverPublicKey(r.substring(2)).toHex(!1);return`0x${n}`}function F(e){if(0===e||1===e)return e;if(27===e)return 0;if(28===e)return 1;throw Error("Invalid yParityOrV value")}async function G({hash:e,signature:t}){var i;let r;return i=await K({hash:e,signature:t}),r=z(`0x${i.substring(4)}`).substring(26),function(e){if(V.has(`${e}.undefined`))return V.get(`${e}.undefined`);let t=e.substring(2).toLowerCase(),i=z(I(t),"bytes"),r=t.split("");for(let e=0;e<40;e+=2)i[e>>1]>>4>=8&&r[e]&&(r[e]=r[e].toUpperCase()),(15&i[e>>1])>=8&&r[e+1]&&(r[e+1]=r[e+1].toUpperCase());let s=`0x${r.join("")}`;return V.set(`${e}.undefined`,s),s}(`0x${r}`)}},20666:(e,t,i)=>{"use strict";i.d(t,{D5:()=>P,U5:()=>I,h6:()=>s.a,iP:()=>v,oI:()=>E});var r=i(53295),s=i.n(r),n=i(43128);let o="custom_context";class a{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class l{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){let t=new a(e);if(t.size>this.maxSizeInBytes)throw Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?this.tail&&(this.tail.next=t):this.head=t,this.tail=t,this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;let e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){let e=[],t=this.head;for(;null!==t;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};let t=e.value;return e=e.next,{done:!1,value:t}}}}}class c{constructor(e,t=1024e3){this.level=e??"error",this.levelValue=r.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new l(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===r.levels.values.error?console.error(e):t===r.levels.values.warn?console.warn(e):t===r.levels.values.debug?console.debug(e):t===r.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append((0,n.h)({timestamp:new Date().toISOString(),log:e}));let t="string"==typeof e?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new l(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){let t=this.getLogArray();return t.push((0,n.h)({extraMetadata:e})),new Blob(t,{type:"application/json"})}}class h{constructor(e,t=1024e3){this.baseChunkLogger=new c(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){let t=URL.createObjectURL(this.logsToBlob(e)),i=document.createElement("a");i.href=t,i.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(t)}}class u{constructor(e,t=1024e3){this.baseChunkLogger=new c(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var p=Object.defineProperty,d=Object.defineProperties,g=Object.getOwnPropertyDescriptors,f=Object.getOwnPropertySymbols,y=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable,b=(e,t,i)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,w=(e,t)=>{for(var i in t||(t={}))y.call(t,i)&&b(e,i,t[i]);if(f)for(var i of f(t))m.call(t,i)&&b(e,i,t[i]);return e};function v(e){return d(w({},e),g({level:e?.level||"info"}))}function E(e,t=o){return typeof e.bindings>"u"?function(e,t=o){return e[t]||""}(e,t):e.bindings().context||""}function I(e,t,i=o){let r=function(e,t,i=o){let r=E(e,i);return r.trim()?`${r}/${t}`:t}(e,t,i);return function(e,t,i=o){return e[i]=t,e}(e.child({context:r}),r,i)}function P(e){var t,i,r,n;let o,a,l,c;return"u">typeof e.loggerOverride&&"string"!=typeof e.loggerOverride?{logger:e.loggerOverride,chunkLoggerController:null}:"u">typeof window?(c=new h(null==(r=(i=e).opts)?void 0:r.level,i.maxSizeInBytes),{logger:s()((a=w({},i.opts),l={level:"trace",browser:d(w({},null==(n=i.opts)?void 0:n.browser),g({write:e=>c.write(e)}))},d(a,g(l)))),chunkLoggerController:c}):(o=new u(null==(t=e.opts)?void 0:t.level,e.maxSizeInBytes),{logger:s()(d(w({},e.opts),g({level:"trace"})),o),chunkLoggerController:o})}},20942:(e,t,i)=>{"use strict";let r,s,n;i.d(t,{EthereumProvider:()=>lX});var o,a,l=i(97065),c=i.n(l),h=i(23021),u=i(93033),p=i(78996),d=i(10890),g=i(3627),f=i(31634),y=i(37179),m=i(1328),b=i(57094),w=i(37811),v=i(92991).Buffer;function E(e){let[t,i]=e.split(":");return{namespace:t,reference:i}}function I(e,t=[]){let i=[];return Object.keys(e).forEach(r=>{if(t.length&&!t.includes(r))return;let s=e[r];i.push(...s.accounts)}),i}function P(e,t){return e.includes(":")?[e]:t.chains||[]}var O=Object.defineProperty,S=Object.defineProperties,_=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable,C=(e,t,i)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,T=(e,t)=>
1{for(var i in t||(t={}))A.call(t,i)&&C(e,i,t[i]);if(x)for(var i of x(t))R.call(t,i)&&C(e,i,t[i]);return e};let N="react-native",j="node",q="browser";function k(){return"u">typeof w&&"u">typeof w.versions&&"u">typeof w.versions.node}function D(){return!(0,p.getDocument)()&&!!(0,p.getNavigator)()&&"ReactNative"===navigator.product}function $(){return!k()&&!!(0,p.getNavigator)()&&!!(0,p.getDocument)()}function U(){return D()?N:k()?j:$()?q:"unknown"}function L(){var e;try{return D()&&"u">typeof i.g&&"u">typeof(null==i.g?void 0:i.g.Application)?null==(e=i.g.Application)?void 0:e.applicationId:void 0}catch{return}}function M(){return(0,d.g)()||{name:"",description:"",url:"",icons:[""]}}function B(e,t,r){var s;let n,o=function(){if(U()===N&&"u">typeof i.g&&"u">typeof(null==i.g?void 0:i.g.Platform)){let{OS:e,Version:t}=i.g.Platform;return[e,t].join("-")}let e=(0,h.o0)();if(null===e)return"unknown";let t=e.os?e.os.replace(" ","").toLowerCase():"unknown";return"browser"===e.type?[t,e.name,e.version].join("-"):[t,e.version].join("-")}(),a=(n=U())===q?[n,(null==(s=(0,p.getLocation)())?void 0:s.host)||"unknown"].join(":"):n;return[[e,t].join("-"),["js",r].join("-"),o,a].join("/")}function z(e,t){return e.filter(e=>t.includes(e)).length===e.length}function H(e){return Object.fromEntries(e.entries())}function V(e){return new Map(Object.entries(e))}function K(e=u.FIVE_MINUTES,t){let i,r,s,n,o=(0,u.toMiliseconds)(e||u.FIVE_MINUTES);return{resolve:e=>{s&&i&&(clearTimeout(s),i(e),n=Promise.resolve(e))},reject:e=>{s&&r&&(clearTimeout(s),r(e))},done:()=>new Promise((e,a)=>{if(n)return e(n);s=setTimeout(()=>{let e=Error(t);n=Promise.reject(e),a(e)},o),i=e,r=a})}}function F(e,t,i){return new Promise(async(r,s)=>{let n=setTimeout(()=>s(Error(i)),t);try{let t=await e;r(t)}catch(e){s(e)}clearTimeout(n)})}function G(e,t){if("string"==typeof t&&t.startsWith(`${e}:`))return t;if("topic"===e.toLowerCase()){if("string"!=typeof t)throw Error('Value must be "string" for expirer target type: topic');return`topic:${t}`}if("id"===e.toLowerCase()){if("number"!=typeof t)throw Error('Value must be "number" for expirer target type: id');return`id:${t}`}throw Error(`Unknown expirer target type: ${e}`)}function W(e){let[t,i]=e.split(":"),r={id:void 0,topic:void 0};if("topic"===t&&"string"==typeof i)r.topic=i;else if("id"===t&&Number.isInteger(Number(i)))r.id=Number(i);else throw Error(`Invalid target, expected id:number or topic:string, got ${t}:${i}`);return r}function J(e,t){return(0,u.fromMiliseconds)((t||Date.now())+(0,u.toMiliseconds)(e))}function Y(e){return Date.now()>=(0,u.toMiliseconds)(e)}function Z(e,t){return`${e}${t?`:${t}`:""}`}function Q(e=[],t=[]){return[...new Set([...e,...t])]}async function X({id:e,topic:t,wcDeepLink:r}){var s,n;try{if(!r)return;let o="string"==typeof r?JSON.parse(r):r,a=o?.href;if("string"!=typeof a)return;let l=function(e,t,i){let r=`requestId=${t}&sessionTopic=${i}`;e.endsWith("/")&&(e=e.slice(0,-1));let s=`${e}`;if(e.startsWith("https://t.me")){let t=e.includes("?")?"&startapp=":"?startapp=";s=`${s}${t}${function(e,t=!1){let i=v.from(e).toString("base64");return t?i.replace(/[=]/g,""):i}(r,!0)}`}else s=`${s}/wc?${r}`;return s}(a,e,t),c=U();if(c===q){let e;if(!(null!=(s=(0,p.getDocument)())&&s.hasFocus()))return void console.warn("Document does not have focus, skipping deeplink.");n=l,e="_self",!function(){try{return window.self!==window.top}catch{return!1}}()?("u">typeof window&&(window.TelegramWebviewProxy||window.Telegram||window.TelegramWebviewProxyProto)||n.startsWith("https://")||n.startsWith("http://"))&&(e="_blank"):e="_top",window.open(n,e,"noreferrer noopener")}else c===N&&"u">typeof(null==i.g?void 0:i.g.Linking)&&await i.g.Linking.openURL(l)}catch(e){console.error(e)}}async function ee(e,t){let i="";try{if($()&&(i=localStorage.getItem(t)))return i;i=await e.getItem(t)}catch(e){console.error(e)}return i}function et(e,t){if(!e.includes(t))return null;let i=e.split(/([&,?,=])/),r=i.indexOf(t);return i[r+2]}function ei(){return"u">typeof crypto&&null!=crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function er(){return"u">typeof w&&"true"===w.env.IS_VITEST}function es(e){return v.from(e,"base64").toString("utf-8")}function en(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function eo(e,...t){if(!(e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function ea(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.wrapConstructor");en(e.outputLen),en(e.blockLen)}function el(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function ec(e,t){eo(e);let i=t.outputLen;if(e.length<i)throw Error("digestInto() expects output buffer of length at least "+i)}let eh=BigInt(0x100000000-1),eu=BigInt(32),ep="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function ed(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function eg(e,t){return e<<32-t|e>>>t}let ef=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0];function ey(e){for(let i=0;i<e.length;i++){var t;e[i]=(t=e[i])<<24&0xff000000|t<<8&0xff0000|t>>>8&65280|t>>>24&255}}function em(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array(new TextEncoder().encode(e))}(e)),eo(e),e}class eb{clone(){return this._cloneInto()}}function ew(e){let t=t=>e().update(em(t)).digest(),i=e();return t.outputLen=i.outputLen,t.blockLen=i.blockLen,t.create=()=>e(),t}function ev(e=32){if(ep&&"function"==typeof ep.getRandomValues)return ep.getRandomValues(new Uint8Array(e));if(ep&&"function"==typeof ep.randomBytes)return ep.randomBytes(e);throw Error("crypto.getRandomValues must be defined")}let eE=[],eI=[],eP=[],eO=BigInt(0),eS=BigInt(1),e_=BigInt(2),ex=BigInt(7),eA=BigInt(256),eR=BigInt(113);for(let e=0,t=eS,i=1,r=0;e<24;e++){[i,r]=[r,(2*i+3*r)%5],eE.push(2*(5*r+i)),eI.push((e+1)*(e+2)/2%64);let s=eO;for(let e=0;e<7;e++)(t=(t<<eS^(t>>ex)*eR)%eA)&e_&&(s^=eS<<(eS<<BigInt(e))-eS);eP.push(s)}let[eC,eT]=function(e,t=!1){let i=new Uint32Array(e.length),r=new 
1Uint32Array(e.length);for(let s=0;s<e.length;s++){let{h:n,l:o}=function(e,t=!1){return t?{h:Number(e&eh),l:Number(e>>eu&eh)}:{h:0|Number(e>>eu&eh),l:0|Number(e&eh)}}(e[s],t);[i[s],r[s]]=[n,o]}return[i,r]}(eP,!0),eN=(e,t,i)=>i>32?t<<i-32|e>>>64-i:e<<i|t>>>32-i,ej=(e,t,i)=>i>32?e<<i-32|t>>>64-i:t<<i|e>>>32-i;class eq extends eb{constructor(e,t,i,r=!1,s=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=i,this.enableXOF=r,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,en(i),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=function(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}(this.state)}keccak(){ef||ey(this.state32),function(e,t=24){let i=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)i[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,s=(t+2)%10,n=i[s],o=i[s+1],a=eN(n,o,1)^i[r],l=ej(n,o,1)^i[r+1];for(let i=0;i<50;i+=10)e[t+i]^=a,e[t+i+1]^=l}let t=e[2],s=e[3];for(let i=0;i<24;i++){let r=eI[i],n=eN(t,s,r),o=ej(t,s,r),a=eE[i];t=e[a],s=e[a+1],e[a]=n,e[a+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)i[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~i[(r+2)%10]&i[(r+4)%10]}e[0]^=eC[r],e[1]^=eT[r]}i.fill(0)}(this.state32,this.rounds),ef||ey(this.state32),this.posOut=0,this.pos=0}update(e){el(this);let{blockLen:t,state:i}=this,r=(e=em(e)).length;for(let s=0;s<r;){let n=Math.min(t-this.pos,r-s);for(let t=0;t<n;t++)i[this.pos++]^=e[s++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:i,blockLen:r}=this;e[i]^=t,(128&t)!=0&&i===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){el(this,!1),eo(e),this.finish();let t=this.state,{blockLen:i}=this;for(let r=0,s=e.length;r<s;){this.posOut>=i&&this.keccak();let n=Math.min(i-this.posOut,s-r);e.set(t.subarray(this.posOut,this.posOut+n),r),this.posOut+=n,r+=n}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return en(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ec(e,this),this.finished)throw Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){let{blockLen:t,suffix:i,outputLen:r,rounds:s,enableXOF:n}=this;return e||(e=new eq(t,i,r,n,s)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=s,e.suffix=i,e.outputLen=r,e.enableXOF=n,e.destroyed=this.destroyed,e}}let ek=ew(()=>new eq(136,1,32));function eD(e){let t=`�Ethereum Signed Message:
2${e.length}`,i=new TextEncoder().encode(t+e);return"0x"+v.from(ek(i)).toString("hex")}async function e$(e,t,i,r,s,n){switch(i.t){case"eip191":return await eU(e,t,i.s);case"eip1271":return await eL(e,t,i.s,r,s,n);default:throw Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${i.t}`)}}async function eU(e,t,i){return(await (0,g.x)({hash:eD(t),signature:i})).toLowerCase()===e.toLowerCase()}async function eL(e,t,i,r,s,n){let o=E(r);if(!o.namespace||!o.reference)throw Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{let o="0x1626ba7e",a=i.substring(2),l=eD(t).substring(2),c=o+l+"00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000041"+a,h=await fetch(`${n||"https://rpc.walletconnect.org/v1"}/?chainId=${r}&projectId=${s}`,{method:"POST",body:JSON.stringify({id:Date.now()+Math.floor(1e3*Math.random()),jsonrpc:"2.0",method:"eth_call",params:[{to:e,data:c},"latest"]})}),{result:u}=await h.json();return!!u&&u.slice(0,o.length).toLowerCase()===o.toLowerCase()}catch(e){return console.error("isValidEip1271Signature: ",e),!1}}var eM=Object.defineProperty,eB=Object.defineProperties,ez=Object.getOwnPropertyDescriptors,eH=Object.getOwnPropertySymbols,eV=Object.prototype.hasOwnProperty,eK=Object.prototype.propertyIsEnumerable,eF=(e,t,i)=>t in e?eM(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;let eG=e=>e?.split(":"),eW=e=>{let t=e&&eG(e);if(t)return t[2]+":"+t[3]},eJ=e=>{let t=e&&eG(e);if(t)return t.pop()};async function eY(e){let{cacao:t,projectId:i}=e,{s:r,p:s}=t,n=eZ(s,s.iss),o=eJ(s.iss);return await e$(o,n,r,eW(s.iss),i)}let eZ=(e,t)=>{let i=`${e.domain} wants you to sign in with your Ethereum account:`,r=eJ(t);if(!e.aud&&!e.uri)throw Error("Either `aud` or `uri` is required to construct the message");let s=e.statement||void 0,n=`URI: ${e.aud||e.uri}
2`,o=`Version: ${e.version}`,a=`Chain ID: ${(e=>{let t=e&&eG(e);if(t)return e.includes("did:pkh:")?t[3]:t[1]})(t)}`,l=`Nonce: ${e.nonce}`,c=`Issued At: ${e.iat}`,h=e.exp?`Expiration Time: ${e.exp}`:void 0,u=e.nbf?`Not Before: ${e.nbf}`:void 0,p=e.requestId?`Request ID: ${e.requestId}`:void 0,d=e.resources?`Resources:${e.resources.map(e=>`
3- ${e}`).join("")}`:void 0,g=e8(e.resources);return g&&(s=function(e="",t){eQ(t);let i="I further authorize the stated URI to perform the following actions on my behalf: ";if(e.includes(i))return e;let r=[],s=0;Object.keys(t.att).forEach(e=>{let i=Object.keys(t.att[e]).map(e=>({ability:e.split("/")[0],action:e.split("/")[1]}));i.sort((e,t)=>e.action.localeCompare(t.action));let n={};i.forEach(e=>{n[e.ability]||(n[e.ability]=[]),n[e.ability].push(e.action)});let o=Object.keys(n).map(t=>(s++,`(${s}) '${t}': '${n[t].join("', '")}' for '${e}'.`));r.push(o.join(", ").replace(".,","."))});let n=r.join(" "),o=`${i}${n}`;return`${e?e+" ":""}${o}`}(s,e0(g))),[i,r,"",s,"",n,o,a,l,c,h,u,p,d].filter(e=>null!=e).join(`
4`)};function eQ(e){if(!e)throw Error("No recap provided, value is undefined");if(!e.att)throw Error("No `att` property found");let t=Object.keys(e.att);if(!(null!=t&&t.length))throw Error("No resources found in `att` property");t.forEach(t=>{let i=e.att[t];if(Array.isArray(i)||"object"!=typeof i)throw Error(`Resource must be an object: ${t}`);if(!Object.keys(i).length)throw Error(`Resource object is empty: ${t}`);
4Object.keys(i).forEach(e=>{let t=i[e];if(!Array.isArray(t))throw Error(`Ability limits ${e} must be an array of objects, found: ${t}`);if(!t.length)throw Error(`Value of ${e} is empty array, must be an array with objects`);t.forEach(t=>{if("object"!=typeof t)throw Error(`Ability limits (${e}) must be an array of objects, found: ${t}`)})})})}function eX(e){return eQ(e),`urn:recap:${v.from(JSON.stringify(e)).toString("base64").replace(/=/g,"")}`}function e0(e){var t;let i=(t=e.replace("urn:recap:",""),JSON.parse(v.from(t,"base64").toString("utf-8")));return eQ(i),i}function e1(e){var t;let i=e0(e);eQ(i);let r=null==(t=i.att)?void 0:t.eip155;return r?Object.keys(r).map(e=>e.split("/")[1]):[]}function e2(e){let t=e0(e);eQ(t);let i=[];return Object.values(t.att).forEach(e=>{Object.values(e).forEach(e=>{var t;null!=(t=e?.[0])&&t.chains&&i.push(e[0].chains)})}),[...new Set(i.flat())]}function e8(e){if(!e)return;let t=e?.[e.length-1];return t&&t.includes("urn:recap:")?t:void 0}function e3(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function e5(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function e6(e,...t){if(!e5(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function e4(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function e9(e){if("boolean"!=typeof e)throw Error(`boolean expected, not ${e}`)}let e7=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));if(68!==new Uint8Array(new Uint32Array([0x11223344]).buffer)[0])throw Error("Non little-endian hardware is not supported");function te(e){if("string"==typeof e)e=function(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}(e);else if(e5(e))e=tr(e);else throw Error("Uint8Array expected, got "+typeof e);return e}function tt(e,t,i=!0){if(void 0===t)return new Uint8Array(e);if(t.length!==e)throw Error("invalid output length, expected "+e+", got: "+t.length);if(i&&t.byteOffset%4!=0)throw Error("invalid output, must be aligned");return t}function ti(e,t,i,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,i,r);let s=BigInt(32),n=BigInt(0xffffffff),o=Number(i>>s&n),a=Number(i&n),l=4*!!r,c=4*!r;e.setUint32(t+l,o,r),e.setUint32(t+c,a,r)}function tr(e){return Uint8Array.from(e)}function ts(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}let tn=e=>Uint8Array.from(e.split("").map(e=>e.charCodeAt(0))),to=tn("expand 16-byte k"),ta=tn("expand 32-byte k"),tl=e7(to),tc=e7(ta);function th(e,t){return e<<t|e>>>32-t}function tu(e){return e.byteOffset%4==0}let tp=0x100000000-1,td=new Uint32Array,tg=(e,t)=>255&e[t++]|(255&e[t++])<<8;class tf{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e6(e=te(e),32);const t=tg(e,0),i=tg(e,2),r=tg(e,4),s=tg(e,6),n=tg(e,8),o=tg(e,10),a=tg(e,12),l=tg(e,14);this.r[0]=8191&t,this.r[1]=(t>>>13|i<<3)&8191,this.r[2]=(i>>>10|r<<6)&7939,this.r[3]=(r>>>7|s<<9)&8191,this.r[4]=(s>>>4|n<<12)&255,this.r[5]=n>>>1&8190,this.r[6]=(n>>>14|o<<2)&8191,this.r[7]=(o>>>11|a<<5)&8065,this.r[8]=(a>>>8|l<<8)&8191,this.r[9]=l>>>5&127;for(let t=0;t<8;t++)this.pad[t]=tg(e,16+2*t)}process(e,t,i=!1){let{h:r,r:s}=this,n=s[0],o=s[1],a=s[2],l=s[3],c=s[4],h=s[5],u=s[6],p=s[7],d=s[8],g=s[9],f=tg(e,t+0),y=tg(e,t+2),m=tg(e,t+4),b=tg(e,t+6),w=tg(e,t+8),v=tg(e,t+10),E=tg(e,t+12),I=tg(e,t+14),P=r[0]+(8191&f),O=r[1]+((f>>>13|y<<3)&8191),S=r[2]+((y>>>10|m<<6)&8191),_=r[3]+((m>>>7|b<<9)&8191),x=r[4]+((b>>>4|w<<12)&8191),A=r[5]+(w>>>1&8191),R=r[6]+((w>>>14|v<<2)&8191),C=r[7]+((v>>>11|E<<5)&8191),T=r[8]+((E>>>8|I<<8)&8191),N=r[9]+(I>>>5|2048*!i),j=0,q=0+P*n+5*g*O+5*d*S+5*p*_+5*u*x;j=q>>>13,q&=8191,q+=5*h*A+5*c*R+5*l*C+5*a*T+5*o*N,j+=q>>>13,q&=8191;let k=j+P*o+O*n+5*g*S+5*d*_+5*p*x;j=k>>>13,k&=8191,k+=5*u*A+5*h*R+5*c*C+5*l*T+5*a*N,j+=k>>>13,k&=8191;let D=j+P*a+O*o+S*n+5*g*_+5*d*x;j=D>>>13,D&=8191,D+=5*p*A+5*u*R+5*h*C+5*c*T+5*l*N,j+=D>>>13,D&=8191;let $=j+P*l+O*a+S*o+_*n+5*g*x;j=$>>>
413,$&=8191,$+=5*d*A+5*p*R+5*u*C+5*h*T+5*c*N,j+=$>>>13,$&=8191;let U=j+P*c+O*l+S*a+_*o+x*n;j=U>>>13,U&=8191,U+=5*g*A+5*d*R+5*p*C+5*u*T+5*h*N,j+=U>>>13,U&=8191;let L=j+P*h+O*c+S*l+_*a+x*o;j=L>>>13,L&=8191,L+=A*n+5*g*R+5*d*C+5*p*T+5*u*N,j+=L>>>13,L&=8191;let M=j+P*u+O*h+S*c+_*l+x*a;j=M>>>13,M&=8191,M+=A*o+R*n+5*g*C+5*d*T+5*p*N,j+=M>>>13,M&=8191;let B=j+P*p+O*u+S*h+_*c+x*l;j=B>>>13,B&=8191,B+=A*a+R*o+C*n+5*g*T+5*d*N,j+=B>>>13,B&=8191;let z=j+P*d+O*p+S*u+_*h+x*c;j=z>>>13,z&=8191,z+=A*l+R*a+C*o+T*n+5*g*N,j+=z>>>13,z&=8191;let H=j+P*g+O*d+S*p+_*u+x*h;j=H>>>13,H&=8191,H+=A*c+R*l+C*a+T*o+N*n,j+=H>>>13,H&=8191,q=8191&(j=(j=(j<<2)+j|0)+q|0),j>>>=13,k+=j,r[0]=q,r[1]=k,r[2]=D,r[3]=$,r[4]=U,r[5]=L,r[6]=M,r[7]=B,r[8]=z,r[9]=H}finalize(){let{h:e,pad:t}=this,i=new Uint16Array(10),r=e[1]>>>13;e[1]&=8191;for(let t=2;t<10;t++)e[t]+=r,r=e[t]>>>13,e[t]&=8191;e[0]+=5*r,r=e[0]>>>13,e[0]&=8191,e[1]+=r,r=e[1]>>>13,e[1]&=8191,e[2]+=r,i[0]=e[0]+5,r=i[0]>>>13,i[0]&=8191;for(let t=1;t<10;t++)i[t]=e[t]+r,r=i[t]>>>13,i[t]&=8191;i[9]-=8192;let s=(1^r)-1;for(let e=0;e<10;e++)i[e]&=s;s=~s;for(let t=0;t<10;t++)e[t]=e[t]&s|i[t];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let n=e[0]+t[0];e[0]=65535&n;for(let i=1;i<8;i++)n=(e[i]+t[i]|0)+(n>>>16)|0,e[i]=65535&n;ts(i)}update(e){e4(this);let{buffer:t,blockLen:i}=this,r=(e=te(e)).length;for(let s=0;s<r;){let n=Math.min(i-this.pos,r-s);if(n===i){for(;i<=r-s;s+=i)this.process(e,s);continue}t.set(e.subarray(s,s+n),this.pos),this.pos+=n,s+=n,this.pos===i&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){ts(this.h,this.r,this.buffer,this.pad)}digestInto(e){e4(this),function(e,t){e6(e);let i=t.outputLen;if(e.length<i)throw Error("digestInto() expects output buffer of length at least "+i)}(e,this),this.finished=!0;let{buffer:t,h:i}=this,{pos:r}=this;if(r){for(t[r++]=1;r<16;r++)t[r]=0;this.process(t,0,!0)}this.finalize();let s=0;for(let t=0;t<8;t++)e[s++]=i[t]>>>0,e[s++]=i[t]>>>8;return e}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}}let ty=(o=e=>new tf(e),(r=(e,t)=>o(t).update(te(e)).digest()).outputLen=(s=o(new Uint8Array(32))).outputLen,r.blockLen=s.blockLen,r.create=e=>o(e),r),tm=function(e,t){let{allowShortKeys:i,extendNonceFn:r,counterLength:s,counterRight:n,rounds:o}=function(e,t){if(null==t||"object"!=typeof t)throw Error("options must be defined");return Object.assign(e,t)}({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if("function"!=typeof e)throw Error("core must be a function");return e3(s),e3(o),e9(n),e9(i),(t,a,l,c,h=0)=>{e6(t),e6(a),e6(l);let u=l.length;if(void 0===c&&(c=new Uint8Array(u)),e6(c),e3(h),h<0||h>=tp)throw Error("arx: counter overflow");if(c.length<u)throw Error(`arx: output (${c.length}) is shorter than data (${u})`);let p=[],d=t.length,g,f;if(32===d)p.push(g=tr(t)),f=tc;else if(16===d&&i)(g=new Uint8Array(32)).set(t),g.set(t,16),f=tl,p.push(g);else throw Error(`arx: invalid 32-byte key, got length=${d}`);tu(a)||p.push(a=tr(a));let y=e7(g);if(r){if(24!==a.length)throw Error("arx: extended nonce must be 24 bytes");r(f,y,e7(a.subarray(0,16)),y),a=a.subarray(16)}let m=16-s;if(m!==a.length)throw Error(`arx: nonce must be ${m} or 16 bytes`);if(12!==m){let e=new Uint8Array(12);e.set(a,n?0:12-a.length),a=e,p.push(a)}return function(e,t,i,r,s,n,o,a){let l=s.length,c=new Uint8Array(64),h=e7(c),u=tu(s)&&tu(n),p=u?e7(s):td,d=u?e7(n):td;for(let g=0;g<l;o++){if(e(t,i,r,h,o,a),o>=tp)throw Error("arx: counter overflow");let f=Math.min(64,l-g);if(u&&64===f){let e=g/4;if(g%4!=0)throw Error("arx: invalid block position");for(let t=0,i;t<16;t++)d[i=e+t]=p[i]^h[t];g+=64;continue}for(let e=0,t;e<f;e++)n[t=g+e]=s[t]^c[e];g+=f}}(e,f,y,e7(a),l,c,h,o),ts(...p),c}}(function(e,t,i,r,s,n=20){let o=e[0],a=e[1],l=e[2],c=e[3],h=t[0],u=t[1],p=t[2],d=t[3],g=t[4],f=t[5],y=t[6],m=t[7],b=i[0],w=i[1],v=i[2],E=o,I=a,P=l,O=c,S=h,_=u,x=p,A=d,R=g,C=f,T=y,N=m,j=s,q=b,k=w,D=v;for(let e=0;e<n;e+=2)R=R+(j=th(j^(E=E+S|0),16))|0,E=E+(S=th(S^R,12))|0,R=R+(j=th(j^E,8))|0,S=th(S^R,7),C=C+(q=th(q^(I=I+_|0),16))|0,I=I+(_=th(_^C,12))|0,C=C+(q=th(q^I,8))|0,_=th(_^C,7),T=T+(k=th(k^(P=P+x|0),16))|0,P=P+(x=th(x^T,12))|0,T=T+(k=th(k^P,8))|0,x=th(x^T,7),N=N+(D=th(D^(O=O+A|0),16))|0,O=O+(A=th(A^N,12))|0,N=N+(D=th(D^O,8))|0,A=th(A^N,7),T=T+(D=th(D^(E=E+_|0),16))|0,E=E+(_=th(_^T,12))|0,T=T+(D=th(D^E,8))|0,_=th(_^T,7),N=N+(j=th(j^(I=I+x|0),16))|0,I=I+(x=th(x^N,12))|0,N=N+(j=th(j^I,8))|0,x=th(x^N,7),R=R+(q=th(q^(P=P+A|0),16))|0,P=P+(A=th(A^R,12))|0,R=R+(q=th(q^P,8))|0,A=th(A^R,7),C=C+(k=th(k^(O=O+S|0),16))|0,O=O+(S=th(S^C,12))|0,C=C+(k=th(k^O,8))|0,S=th(S^C,7);let $=0;r[$++]=o+E|0,r[$++]=a+I|0,r[$++]=l+P|0,r[$++]=c+O|0,r[$++]=h+S|0,r[$++]=u+_|0,r[$++]=p+x|0,r[$++]=d+A|0,r[$++]=g+R|0,r[$++]=f+C|0,r[$++]=y+T|0,r[$++]=m+N|0,r[$++]=s+j|0,r[$++]=b+q|0,r[$++]=w+k|0,r[$++]=v+D|0},{counterRight:!1,counterLength:4,allowShortKeys:!1}),tb=new Uint8Array(16),tw=(e,t)=>{e.update(t);let i=t.length%16;i&&e.update(tb.subarray(i))},tv=new Uint8Array(32);function tE(e,t,i,r,s){let n=e(t,i,tv),o=ty.create(n);s&&tw(o,s),tw(o,r);let a=new Uint8Array(16),l=new DataView(a.buffer,a.byteOffset,a.byteLength);ti(l,0,BigInt(s?s.length:0),!0),ti(l,8,BigInt(r.length),!0),o.update(a);let c=o.digest();return ts(n,a),c}let tI=((e,t)=>{function i(r,...s){if(e6(r),void 0!==e.nonceLength){let t=s[0];if(!t)throw Error("nonce / iv required");e.varSizeNonce?e6(t):e6(t,e.nonceLength)}let n=e.tagLength;n&&void 0!==s[1]&&e6(s[1]);let o=t(r,...s),a=(e,t)=>{if(void 0!==t){if(2!==e)throw Error("cipher output not supported");e6(t)}},l=!1;
4return{encrypt(e,t){if(l)throw Error("cannot encrypt() twice with same key + nonce");return l=!0,e6(e),a(o.encrypt.length,t),o.encrypt(e,t)},decrypt(e,t){if(e6(e),n&&e.length<n)throw Error("invalid ciphertext length: smaller than tagLength="+n);return a(o.decrypt.length,t),o.decrypt(e,t)}}}return Object.assign(i,e),i})({blockSize:64,nonceLength:12,tagLength:16},(e,t,i)=>({encrypt(r,s){let n=r.length;(s=tt(n+16,s,!1)).set(r);let o=s.subarray(0,-16);tm(e,t,o,o,1);let a=tE(tm,e,t,o,i);return s.set(a,n),ts(a),s},decrypt(r,s){s=tt(r.length-16,s,!1);let n=r.subarray(0,-16),o=r.subarray(-16),a=tE(tm,e,t,n,i);if(!function(e,t){if(e.length!==t.length)return!1;let i=0;for(let r=0;r<e.length;r++)i|=e[r]^t[r];return 0===i}(o,a))throw Error("invalid tag");return s.set(r.subarray(0,-16)),tm(e,t,s,s,1),ts(a),s}}));class tP extends eb{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,ea(e);const i=em(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,s=new Uint8Array(r);s.set(i.length>r?e.create().update(i).digest():i);for(let e=0;e<s.length;e++)s[e]^=54;this.iHash.update(s),this.oHash=e.create();for(let e=0;e<s.length;e++)s[e]^=106;this.oHash.update(s),s.fill(0)}update(e){return el(this),this.iHash.update(e),this}digestInto(e){el(this),eo(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:i,finished:r,destroyed:s,blockLen:n,outputLen:o}=this;return e.finished=r,e.destroyed=s,e.blockLen=n,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=i._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}let tO=(e,t,i)=>new tP(e,t).update(i).digest();tO.create=(e,t)=>new tP(e,t);let tS=new Uint8Array([0]),t_=new Uint8Array;class tx extends eb{constructor(e,t,i,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=ed(this.buffer)}update(e){el(this);let{view:t,buffer:i,blockLen:r}=this,s=(e=em(e)).length;for(let n=0;n<s;){let o=Math.min(r-this.pos,s-n);if(o===r){let t=ed(e);for(;r<=s-n;n+=r)this.process(t,n);continue}i.set(e.subarray(n,n+o),this.pos),this.pos+=o,n+=o,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){el(this),ec(e,this),this.finished=!0;let{buffer:t,view:i,blockLen:r,isLE:s}=this,{pos:n}=this;t[n++]=128,this.buffer.subarray(n).fill(0),this.padOffset>r-n&&(this.process(i,0),n=0);for(let e=n;e<r;e++)t[e]=0;(function(e,t,i,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,i,r);let s=BigInt(32),n=BigInt(0xffffffff),o=Number(i>>s&n),a=Number(i&n),l=4*!!r,c=4*!r;e.setUint32(t+l,o,r),e.setUint32(t+c,a,r)})(i,r-8,BigInt(8*this.length),s),this.process(i,0);let o=ed(e),a=this.outputLen;if(a%4)throw Error("_sha2: outputLen should be aligned to 32bit");let l=a/4,c=this.get();if(l>c.length)throw Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)o.setUint32(4*e,c[e],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:i,length:r,finished:s,destroyed:n,pos:o}=this;return e.length=r,e.pos=o,e.finished=s,e.destroyed=n,r%t&&e.buffer.set(i),e}}let tA=new Uint32Array([0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc
476c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2]),tR=new Uint32Array([0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19]),tC=new Uint32Array(64);class tT extends tx{constructor(){super(64,32,8,!1),this.A=0|tR[0],this.B=0|tR[1],this.C=0|tR[2],this.D=0|tR[3],this.E=0|tR[4],this.F=0|tR[5],this.G=0|tR[6],this.H=0|tR[7]}get(){let{A:e,B:t,C:i,D:r,E:s,F:n,G:o,H:a}=this;return[e,t,i,r,s,n,o,a]}set(e,t,i,r,s,n,o,a){this.A=0|e,this.B=0|t,this.C=0|i,this.D=0|r,this.E=0|s,this.F=0|n,this.G=0|o,this.H=0|a}process(e,t){for(let i=0;i<16;i++,t+=4)tC[i]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=tC[e-15],i=tC[e-2],r=eg(t,7)^eg(t,18)^t>>>3,s=eg(i,17)^eg(i,19)^i>>>10;tC[e]=s+tC[e-7]+r+tC[e-16]|0}let{A:i,B:r,C:s,D:n,E:o,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){var h,u,p,d;let t=c+(eg(o,6)^eg(o,11)^eg(o,25))+((h=o)&a^~h&l)+tA[e]+tC[e]|0,g=(eg(i,2)^eg(i,13)^eg(i,22))+((u=i)&(p=r)^u&(d=s)^p&d)|0;c=l,l=a,a=o,o=n+t|0,n=s,s=r,r=i,i=t+g|0}i=i+this.A|0,r=r+this.B|0,s=s+this.C|0,n=n+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(i,r,s,n,o,a,l,c)}roundClean(){tC.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}let tN=ew(()=>new tT),tj=BigInt(0),tq=BigInt(1),tk=BigInt(2);function tD(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function t$(e){if(!tD(e))throw Error("Uint8Array expected")}function tU(e,t){if("boolean"!=typeof t)throw Error(e+" boolean expected, got "+t)}let tL=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function tM(e){t$(e);let t="";for(let i=0;i<e.length;i++)t+=tL[e[i]];return t}function tB(e){let t=e.toString(16);return 1&t.length?"0"+t:t}function tz(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);return""===e?tj:BigInt("0x"+e)}function tH(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function tV(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);let t=e.length,i=t/2;if(t%2)throw Error("hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(i);for(let t=0,s=0;t<i;t++,s+=2){let i=tH(e.charCodeAt(s)),n=tH(e.charCodeAt(s+1));if(void 0===i||void 0===n)throw Error('hex string expected, got non-hex character "'+(e[s]+e[s+1])+'" at index '+s);r[t]=16*i+n}return r}function tK(e){return tz(tM(e))}function tF(e){return t$(e),tz(tM(Uint8Array.from(e).reverse()))}function tG(e,t){return tV(e.toString(16).padStart(2*t,"0"))}function tW(e,t){return tG(e,t).reverse()}function tJ(e,t,i){let r;if("string"==typeof t)try{r=tV(t)}catch(t){throw Error(e+" must be hex string or Uint8Array, cause: "+t)}else if(tD(t))r=Uint8Array.from(t);else throw Error(e+" must be hex string or Uint8Array");let s=r.length;if("number"==typeof i&&s!==i)throw Error(e+" of length "+i+" expected, got "+s);return r}function tY(...e){let t=0;for(let i=0;i<e.length;i++){let r=e[i];t$(r),t+=r.length}let i=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let s=e[t];i.set(s,r),r+=s.length}return i}let tZ=e=>"bigint"==typeof e&&tj<=e;function tQ(e,t,i){return tZ(e)&&tZ(t)&&tZ(i)&&t<=e&&e<i}function tX(e,t,i,r){if(!tQ(t,i,r))throw Error("expected valid "+e+": "+i+" <= n < "+r+", got "+t)}function t0(e){let t;for(t=0;e>tj;e>>=tq,t+=1);return t}let t1=e=>(tk<<BigInt(e-1))-tq,t2=e=>new Uint8Array(e);function t8(e,t,i){if("number"!=typeof e||e<2)throw Error("hashLen must be a number");if("number"!=typeof t||t<2)throw Error("qByteLen must be a number");if("function"!=typeof i)throw Error("hmacFn must be a function");let r=t2(e),s=t2(e),n=0,o=()=>{r.fill(1),s.fill(0),n=0},a=(...e)=>i(s,r,...e),l=(e=t2())=>{let t,i;s=a((t=[0],Uint8Array.from(t)),e),r=a(),0!==e.length&&(s=a((i=[1],Uint8Array.from(i)),e),r=a())},c=()=>{if(n++>=1e3)throw Error("drbg: tried 1000 values");let e=0,i=[];for(;e<t;){let t=(r=a()).slice();i.push(t),e+=r.length}return tY(...i)};return(e,t)=>{let i;for(o(),l(e);!(i=t(c()));)l();return o(),i}}let t3={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||tD(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function t5(e,t,i={}){let r=(t,i,r)=>{let s=t3[i];if("function"!=typeof s)throw Error("invalid validator function");let n=e[t];if(!(r&&void 0===n)&&!s(n,e))throw Error("param "+String(t)+" is invali
4d. Expected "+i+", got "+n)};for(let[e,i]of Object.entries(t))r(e,i,!1);for(let[e,t]of Object.entries(i))r(e,t,!0);return e}function t6(e){let t=new WeakMap;return(i,...r)=>{let s=t.get(i);if(void 0!==s)return s;let n=e(i,...r);return t.set(i,n),n}}var t4=Object.freeze({__proto__:null,isBytes:tD,abytes:t$,abool:tU,bytesToHex:tM,numberToHexUnpadded:tB,hexToNumber:tz,hexToBytes:tV,bytesToNumberBE:tK,bytesToNumberLE:tF,numberToBytesBE:tG,numberToBytesLE:tW,numberToVarBytesBE:function(e){return tV(tB(e))},ensureBytes:tJ,concatBytes:tY,equalBytes:function(e,t){if(e.length!==t.length)return!1;let i=0;for(let r=0;r<e.length;r++)i|=e[r]^t[r];return 0===i},utf8ToBytes:function(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))},inRange:tQ,aInRange:tX,bitLen:t0,bitGet:function(e,t){return e>>BigInt(t)&tq},bitSet:function(e,t,i){return e|(i?tq:tj)<<BigInt(t)},bitMask:t1,createHmacDrbg:t8,validateObject:t5,notImplemented:()=>{throw Error("not implemented")},memoized:t6});let t9=BigInt(0),t7=BigInt(1),ie=BigInt(2),it=BigInt(3),ii=BigInt(4),ir=BigInt(5),is=BigInt(8);function io(e,t){let i=e%t;return i>=t9?i:t+i}function ia(e,t,i){if(t<t9)throw Error("invalid exponent, negatives unsupported");if(i<=t9)throw Error("invalid modulus");if(i===t7)return t9;let r=t7;for(;t>t9;)t&t7&&(r=r*e%i),e=e*e%i,t>>=t7;return r}function il(e,t,i){let r=e;for(;t-- >t9;)r*=r,r%=i;return r}function ic(e,t){if(e===t9)throw Error("invert: expected non-zero number");if(t<=t9)throw Error("invert: expected positive modulus, got "+t);let i=io(e,t),r=t,s=t9,n=t7;for(;i!==t9;){let e=r/i,t=r%i,o=s-n*e;r=i,i=t,s=n,n=o}if(r!==t7)throw Error("invert: does not exist");return io(s,t)}let ih=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function iu(e,t){let i=void 0!==t?t:e.toString(2).length,r=Math.ceil(i/8);return{nBitLength:i,nByteLength:r}}function ip(e,t,i=!1,r={}){let s;if(e<=t9)throw Error("invalid field: expected ORDER > 0, got "+e);let{nBitLength:n,nByteLength:o}=iu(e,t);if(o>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let a=Object.freeze({ORDER:e,isLE:i,BITS:n,BYTES:o,MASK:t1(n),ZERO:t9,ONE:t7,create:t=>io(t,e),isValid:t=>{if("bigint"!=typeof t)throw Error("invalid field element: expected bigint, got "+typeof t);return t9<=t&&t<e},is0:e=>e===t9,isOdd:e=>(e&t7)===t7,neg:t=>io(-t,e),eql:(e,t)=>e===t,sqr:t=>io(t*t,e),add:(t,i)=>io(t+i,e),sub:(t,i)=>io(t-i,e),mul:(t,i)=>io(t*i,e),pow:(e,t)=>(function(e,t,i){if(i<t9)throw Error("invalid exponent, negatives unsupported");if(i===t9)return e.ONE;if(i===t7)return t;let r=e.ONE,s=t;for(;i>t9;)i&t7&&(r=e.mul(r,s)),s=e.sqr(s),i>>=t7;return r})(a,e,t),div:(t,i)=>io(t*ic(i,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>ic(t,e),sqrt:r.sqrt||(t=>(s||(s=function(e){if(e%ii===it){let t=(e+t7)/ii;return function(e,i){let r=e.pow(i,t);if(!e.eql(e.sqr(r),i))throw Error("Cannot find square root");return r}}if(e%is===ir){let t=(e-ir)/is;return function(e,i){let r=e.mul(i,ie),s=e.pow(r,t),n=e.mul(i,s),o=e.mul(e.mul(n,ie),s),a=e.mul(n,e.sub(o,e.ONE));if(!e.eql(e.sqr(a),i))throw Error("Cannot find square root");return a}}return function(e){let t,i,r,s=(e-t7)/ie;for(t=e-t7,i=0;t%ie===t9;t/=ie,i++);for(r=ie;r<e&&ia(r,s,e)!==e-t7;r++)if(r>1e3)throw Error("Cannot find square root: likely non-prime P");if(1===i){let t=(e+t7)/ii;return function(e,i){let r=e.pow(i,t);if(!e.eql(e.sqr(r),i))throw Error("Cannot find square root");return r}}let n=(t+t7)/ie;return function(e,o){if(e.pow(o,s)===e.neg(e.ONE))throw Error("Cannot find square root");let a=i,l=e.pow(e.mul(e.ONE,r),t),c=e.pow(o,n),h=e.pow(o,t);for(;!e.eql(h,e.ONE);){if(e.eql(h,e.ZERO))return e.ZERO;let t=1;for(let i=e.sqr(h);t<a&&!e.eql(i,e.ONE);t++)i=e.sqr(i);let i=e.pow(l,t7<<BigInt(a-t-1));l=e.sqr(i),c=e.mul(c,i),h=e.mul(h,l),a=t}return c}}(e)}(e)),s(a,t))),invertBatch:e=>{let t,i,r;return t=Array(e.length),i=e.reduce((e,i,r)=>a.is0(i)?e:(t[r]=e,a.mul(e,i)),a.ONE),r=a.inv(i),e.reduceRight((e,i,r)=>a.is0(i)?e:(t[r]=a.mul(e,t[r]),a.mul(e,i)),r),t},cmov:(e,t,i)=>i?t:e,toBytes:e=>i?tW(e,o):tG(e,o),fromBytes:e=>{if(e.length!==o)throw Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);return i?tF(e):tK(e)}});return Object.freeze(a)}function id(e){if("bigint"!=typeof e)throw Error("field order must be bigint");return Math.ceil(e.toString(2).length/8)}function ig(e){let t=id(e);return t+Math.ceil(t/2)}let iy=BigInt(0),im=BigInt(1);function ib(e,t){let i=t.negate();return e?i:t}function iw(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error("invalid window size, expected [1.."+t+"], got W="+e)}function iv(e,t){return iw(e,t),{windows:Math.ceil(t/e)+1,windowSize:2**(e-1)}}let iE=new WeakMap,iI=new WeakMap;function iP(e){return iI.get(e)||1}function iO(e){return t5(e.Fp,ih.reduce((e,t)=>
4(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),t5(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...iu(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}BigInt(0),BigInt(1),BigInt(2),BigInt(8);let iS=BigInt(0),i_=BigInt(1),ix=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949");BigInt(0);let iA=BigInt(1),iR=BigInt(2),iC=BigInt(3),iT=BigInt(5);BigInt(8);let iN=function(e){let t=(t5(e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...e})),{P:i}=t,r=e=>io(e,i),s=t.montgomeryBits,n=Math.ceil(s/8),o=t.nByteLength,a=t.adjustScalarBytes||(e=>e),l=t.powPminus2||(e=>ia(e,i-BigInt(2),i));function c(e,t,i){let s=r(e*(t-i));return[t=r(t-s),i=r(i+s)]}let h=(t.a-BigInt(2))/BigInt(4);function u(e,t){let u,p=function(e,t){tX("u",e,iS,i),tX("scalar",t,iS,i);let n=i_,o=iS,a=e,u=i_,p=iS,d;for(let i=BigInt(s-1);i>=iS;i--){let s=t>>i&i_;p^=s,n=(d=c(p,n,a))[0],a=d[1],o=(d=c(p,o,u))[0],u=d[1],p=s;let l=n+o,g=r(l*l),f=n-o,y=r(f*f),m=g-y,b=a+u,w=r((a-u)*l),v=r(b*f),E=w+v,I=w-v;a=r(E*E),u=r(e*r(I*I)),n=r(g*y),o=r(m*(g+r(h*m)))}return n=(d=c(p,n,a))[0],a=d[1],o=(d=c(p,o,u))[0],u=d[1],r(n*l(o))}((u=tJ("u coordinate",t,n),32===o&&(u[31]&=127),tF(u)),function(e){let t=tJ("scalar",e),i=t.length;if(i!==n&&i!==o)throw Error("invalid scalar, expected "+(""+n+" or ")+o+" bytes, got "+i);return tF(a(t))}(e));if(p===iS)throw Error("invalid private or public key received");return tW(r(p),n)}let p=tW(r(t.Gu),n);function d(e){return u(e,p)}return{scalarMult:u,scalarMultBase:d,getSharedSecret:(e,t)=>u(e,t),getPublicKey:e=>d(e),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:p}}({P:ix,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:e=>{let t,i,r,s,n,o,a,l,c,h,u,p,d,g,{pow_p_5_8:f,b2:y}=(t=BigInt(10),i=BigInt(20),r=BigInt(40),s=BigInt(80),o=il(n=e*e%ix*e%ix,iR,ix)*n%ix,a=il(o,iA,ix)*e%ix,l=il(a,iT,ix)*a%ix,c=il(l,t,ix)*l%ix,h=il(c,i,ix)*c%ix,u=il(h,r,ix)*h%ix,p=il(u,s,ix)*u%ix,d=il(p,s,ix)*u%ix,g=il(d,t,ix)*l%ix,{pow_p_5_8:il(g,iR,ix)*e%ix,b2:n});return io(il(f,iC,ix)*y,ix)},adjustScalarBytes:function(e){return e[0]&=248,e[31]&=127,e[31]|=64,e},randomBytes:ev});function ij(e){void 0!==e.lowS&&tU("lowS",e.lowS),void 0!==e.prehash&&tU("prehash",e.prehash)}let{bytesToNumberBE:iq,hexToBytes:ik}=t4;class iD extends Error{constructor(e=""){super(e)}}let i$={Err:iD,_tlv:{encode:(e,t)=>{let{Err:i}=i$;if(e<0||e>256)throw new i("tlv.encode: wrong tag");if(1&t.length)throw new i("tlv.encode: unpadded data");let r=t.length/2,s=tB(r);if(s.length/2&128)throw new i("tlv.encode: long form length too big");let n=r>127?tB(s.length/2|128):"";return tB(e)+n+s+t},decode(e,t){let{Err:i}=i$,r=0;if(e<0||e>256)throw new i("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new i("tlv.decode: wrong tlv");let s=t[r++],n=0;if(128&s){let e=127&s;if(!e)throw new i("tlv.decode(long): indefinite length not supported");if(e>4)throw new i("tlv.decode(long): byte length is too big");let o=t.subarray(r,r+e);if(o.length!==e)throw new i("tlv.decode: length bytes not complete");if(0===o[0])throw new i("tlv.decode(long): zero leftmost byte");for(let e of o)n=n<<8|e;if(r+=e,n<128)throw new i("tlv.decode(long): not minimal encoding")}else n=s;let o=t.subarray(r,r+n);if(o.length!==n)throw new i("tlv.decode: wrong value length");return{v:o,l:t.subarray(r+n)}}},_int:{encode(e){let{Err:t}=i$;if(e<iU)throw new t("integer: negative integers are not allowed");let i=tB(e);if(8&Number.parseInt(i[0],16)&&(i="00"+i),1&i.length)throw new t("unexpected DER parsing assertion: unpadded hex");return i},decode(e){let{Err:t}=i$;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return iq(e)}},toSig(e){let{Err:t,_int:i,_tlv:r}=i$,s="string"==typeof e?ik(e):e;t$(s);let{v:n,l:o}=r.decode(48,s);if(o.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:l}=r.decode(2,n),{v:c,l:h}=r.decode(2,l);if(h.length)throw new t("invalid signature: left bytes after parsing");return{r:i.decode(a),s:i.decode(c)}},hexFromSig(e){let{_tlv:t,_int:i}=i$,r=t.encode(2,i.encode(e.r)),s=t.encode(2,i.encode(e.s));return t.encode(48,r+s)}},iU=BigInt(0),iL=BigInt(1);BigInt(2);let iM=BigInt(3);BigInt(4);let iB=ip(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),iz=(a={a:iB.create(BigInt("-3")),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Fp:iB,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),G
4y:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},{...(n=e=>(function(e){let t,i=(t5(t=iO(e),{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})),{Fp:r,n:s}=i,n=r.BYTES+1,o=2*r.BYTES+1;function a(e){return io(e,s)}let{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:h,isWithinCurveOrder:u}=function(e){var t;let i=function(e){let t=iO(e);t5(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:i,Fp:r,a:s}=t;if(i){if(!r.eql(s,r.ZERO))throw Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if("object"!=typeof i||"bigint"!=typeof i.beta||"function"!=typeof i.splitScalar)throw Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:r}=i,s=ip(i.n,i.nBitLength),n=i.toBytes||((e,t,i)=>{let s=t.toAffine();return tY(Uint8Array.from([4]),r.toBytes(s.x),r.toBytes(s.y))}),o=i.fromBytes||(e=>{let t=e.subarray(1);return{x:r.fromBytes(t.subarray(0,r.BYTES)),y:r.fromBytes(t.subarray(r.BYTES,2*r.BYTES))}});function a(e){let{a:t,b:s}=i,n=r.sqr(e),o=r.mul(n,e);return r.add(r.add(o,r.mul(e,t)),s)}if(!r.eql(r.sqr(i.Gy),a(i.Gx)))throw Error("bad generator point: equation left != right");function l(e){let t,{allowedPrivateKeyLengths:r,nByteLength:s,wrapPrivateKey:n,n:o}=i;if(r&&"bigint"!=typeof e){if(tD(e)&&(e=tM(e)),"string"!=typeof e||!r.includes(e.length))throw Error("invalid private key");e=e.padStart(2*s,"0")}try{t="bigint"==typeof e?e:tK(tJ("private key",e,s))}catch{throw Error("invalid private key, expected hex or "+s+" bytes, got "+typeof e)}return n&&(t=io(t,o)),tX("private key",t,iL,o),t}function c(e){if(!(e instanceof p))throw Error("ProjectivePoint expected")}let h=t6((e,t)=>{let{px:i,py:s,pz:n}=e;if(r.eql(n,r.ONE))return{x:i,y:s};let o=e.is0();null==t&&(t=o?r.ONE:r.inv(n));let a=r.mul(i,t),l=r.mul(s,t),c=r.mul(n,t);if(o)return{x:r.ZERO,y:r.ZERO};if(!r.eql(c,r.ONE))throw Error("invZ was invalid");return{x:a,y:l}}),u=t6(e=>{if(e.is0()){if(i.allowInfinityPoint&&!r.is0(e.py))return;throw Error("bad point: ZERO")}let{x:t,y:s}=e.toAffine();if(!r.isValid(t)||!r.isValid(s))throw Error("bad point: x or y not FE");let n=r.sqr(s),o=a(t);if(!r.eql(n,o))throw Error("bad point: equation left != right");if(!e.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class p{constructor(e,t,i){if(this.px=e,this.py=t,this.pz=i,null==e||!r.isValid(e))throw Error("x required");if(null==t||!r.isValid(t))throw Error("y required");if(null==i||!r.isValid(i))throw Error("z required");Object.freeze(this)}static fromAffine(e){let{x:t,y:i}=e||{};if(!e||!r.isValid(t)||!r.isValid(i))throw Error("invalid affine point");if(e instanceof p)throw Error("projective point not allowed");let s=e=>r.eql(e,r.ZERO);return s(t)&&s(i)?p.ZERO:new p(t,i,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){let t=r.invertBatch(e.map(e=>e.pz));return e.map((e,i)=>e.toAffine(t[i])).map(p.fromAffine)}static fromHex(e){let t=p.fromAffine(o(tJ("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return p.BASE.multiply(l(e))}static msm(e,t){return function(e,t,i,r){if(function(e,t){if(!Array.isArray(e))throw Error("array expected");e.forEach((e,i)=>{if(!(e instanceof t))throw Error("invalid point at index "+i)})}(i,e),function(e,t){if(!Array.isArray(e))throw Error("array of scalars expected");e.forEach((e,i)=>{if(!t.isValid(e))throw Error("invalid scalar at index "+i)})}(r,t),i.length!==r.length)throw Error("arrays of points and scalars must have equal length");let s=e.ZERO,n=t0(BigInt(i.length)),o=n>12?n-3:n>4?n-2:n?2:1,a=(1<<o)-1,l=Array(a+1).fill(s),c=Math.floor((t.BITS-1)/o)*o,h=s;for(let e=c;e>=0;e-=o){l.fill(s);for(let t=0;t<r.length;t++){let s=Number(r[t]>>BigInt(e)&BigInt(a));l[s]=l[s].add(i[t])}let t=s;for(let e=l.length-1,i=s;e>0;e--)i=i.add(l[e]),t=t.add(i);if(h=h.add(t),0!==e)for(let e=0;e<o;e++)h=h.double()}return h}(p,s,e,t)}_setWindowSize(e){g.setWindowSize(this,e)}assertValidity(){u(this)}hasEvenY(){let{y:e}=this.toAffine();if(r.isOdd)return!r.isOdd(e);throw Error("Field doesn't support isOdd")}equals(e){c(e);let{px:t,py:i,pz:s}=this,{px:n,py:o,pz:a}=e,l=r.eql(r.mul(t,a),r.mul(n,s)),h=r.eql(r.mul(i,a),r.mul(o,s));return l&&h}negate(){return new p(this.px,r.neg(this.py),this.pz)}double(){let{a:e,b:t}=i,s=r.mul(t,iM),{px:n,py:o,pz:a}
4=this,l=r.ZERO,c=r.ZERO,h=r.ZERO,u=r.mul(n,n),d=r.mul(o,o),g=r.mul(a,a),f=r.mul(n,o);return f=r.add(f,f),h=r.mul(n,a),h=r.add(h,h),l=r.mul(e,h),c=r.mul(s,g),c=r.add(l,c),l=r.sub(d,c),c=r.add(d,c),c=r.mul(l,c),l=r.mul(f,l),h=r.mul(s,h),g=r.mul(e,g),f=r.sub(u,g),f=r.mul(e,f),f=r.add(f,h),h=r.add(u,u),u=r.add(h,u),u=r.add(u,g),u=r.mul(u,f),c=r.add(c,u),g=r.mul(o,a),g=r.add(g,g),u=r.mul(g,f),l=r.sub(l,u),h=r.mul(g,d),h=r.add(h,h),new p(l,c,h=r.add(h,h))}add(e){c(e);let{px:t,py:s,pz:n}=this,{px:o,py:a,pz:l}=e,h=r.ZERO,u=r.ZERO,d=r.ZERO,g=i.a,f=r.mul(i.b,iM),y=r.mul(t,o),m=r.mul(s,a),b=r.mul(n,l),w=r.add(t,s),v=r.add(o,a);w=r.mul(w,v),v=r.add(y,m),w=r.sub(w,v),v=r.add(t,n);let E=r.add(o,l);return v=r.mul(v,E),E=r.add(y,b),v=r.sub(v,E),E=r.add(s,n),h=r.add(a,l),E=r.mul(E,h),h=r.add(m,b),E=r.sub(E,h),d=r.mul(g,v),h=r.mul(f,b),d=r.add(h,d),h=r.sub(m,d),d=r.add(m,d),u=r.mul(h,d),m=r.add(y,y),m=r.add(m,y),b=r.mul(g,b),v=r.mul(f,v),m=r.add(m,b),b=r.sub(y,b),b=r.mul(g,b),v=r.add(v,b),y=r.mul(m,v),u=r.add(u,y),y=r.mul(E,v),h=r.mul(w,h),h=r.sub(h,y),y=r.mul(w,m),d=r.mul(E,d),new p(h,u,d=r.add(d,y))}subtract(e){return this.add(e.negate())}is0(){return this.equals(p.ZERO)}wNAF(e){return g.wNAFCached(this,e,p.normalizeZ)}multiplyUnsafe(e){let{endo:t,n:s}=i;tX("scalar",e,iU,s);let n=p.ZERO;if(e===iU)return n;if(this.is0()||e===iL)return this;if(!t||g.hasPrecomputes(this))return g.wNAFCachedUnsafe(this,e,p.normalizeZ);let{k1neg:o,k1:a,k2neg:l,k2:c}=t.splitScalar(e),h=n,u=n,d=this;for(;a>iU||c>iU;)a&iL&&(h=h.add(d)),c&iL&&(u=u.add(d)),d=d.double(),a>>=iL,c>>=iL;return o&&(h=h.negate()),l&&(u=u.negate()),u=new p(r.mul(u.px,t.beta),u.py,u.pz),h.add(u)}multiply(e){let t,s,{endo:n,n:o}=i;if(tX("scalar",e,iL,o),n){let{k1neg:i,k1:o,k2neg:a,k2:l}=n.splitScalar(e),{p:c,f:h}=this.wNAF(o),{p:u,f:d}=this.wNAF(l);c=g.constTimeNegate(i,c),u=g.constTimeNegate(a,u),u=new p(r.mul(u.px,n.beta),u.py,u.pz),t=c.add(u),s=h.add(d)}else{let{p:i,f:r}=this.wNAF(e);t=i,s=r}return p.normalizeZ([t,s])[0]}multiplyAndAddUnsafe(e,t,i){let r=p.BASE,s=(e,t)=>t!==iU&&t!==iL&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),n=s(this,t).add(s(e,i));return n.is0()?void 0:n}toAffine(e){return h(this,e)}isTorsionFree(){let{h:e,isTorsionFree:t}=i;if(e===iL)return!0;if(t)return t(p,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:e,clearCofactor:t}=i;return e===iL?this:t?t(p,this):this.multiplyUnsafe(i.h)}toRawBytes(e=!0){return tU("isCompressed",e),this.assertValidity(),n(p,this,e)}toHex(e=!0){return tU("isCompressed",e),tM(this.toRawBytes(e))}}p.BASE=new p(i.Gx,i.Gy,r.ONE),p.ZERO=new p(r.ZERO,r.ONE,r.ZERO);let d=i.nBitLength,g=(t=i.endo?Math.ceil(d/2):d,{constTimeNegate:ib,hasPrecomputes:e=>1!==iP(e),unsafeLadder(e,t,i=p.ZERO){let r=e;for(;t>iy;)t&im&&(i=i.add(r)),r=r.double(),t>>=im;return i},precomputeWindow(e,i){let{windows:r,windowSize:s}=iv(i,t),n=[],o=e,a=o;for(let e=0;e<r;e++){a=o,n.push(a);for(let e=1;e<s;e++)a=a.add(o),n.push(a);o=a.double()}return n},wNAF(e,i,r){let{windows:s,windowSize:n}=iv(e,t),o=p.ZERO,a=p.BASE,l=BigInt(2**e-1),c=2**e,h=BigInt(e);for(let e=0;e<s;e++){let t=e*n,s=Number(r&l);r>>=h,s>n&&(s-=c,r+=im);let u=t+Math.abs(s)-1,p=e%2!=0,d=s<0;0===s?a=a.add(ib(p,i[t])):o=o.add(ib(d,i[u]))}return{p:o,f:a}},wNAFUnsafe(e,i,r,s=p.ZERO){let{windows:n,windowSize:o}=iv(e,t),a=BigInt(2**e-1),l=2**e,c=BigInt(e);for(let e=0;e<n;e++){let t=e*o;if(r===iy)break;let n=Number(r&a);if(r>>=c,n>o&&(n-=l,r+=im),0===n)continue;let h=i[t+Math.abs(n)-1];n<0&&(h=h.negate()),s=s.add(h)}return s},getPrecomputes(e,t,i){let r=iE.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&iE.set(t,i(r))),r},wNAFCached(e,t,i){let r=iP(e);
4return this.wNAF(r,this.getPrecomputes(r,e,i),t)},wNAFCachedUnsafe(e,t,i,r){let s=iP(e);return 1===s?this.unsafeLadder(e,t,r):this.wNAFUnsafe(s,this.getPrecomputes(s,e,i),t,r)},setWindowSize(e,i){iw(i,t),iI.set(e,i),iE.delete(e)}});return{CURVE:i,ProjectivePoint:p,normPrivateKeyToScalar:l,weierstrassEquation:a,isWithinCurveOrder:function(e){return tQ(e,iL,i.n)}}}({...i,toBytes(e,t,i){let s=t.toAffine(),n=r.toBytes(s.x);return tU("isCompressed",i),i?tY(Uint8Array.from([t.hasEvenY()?2:3]),n):tY(Uint8Array.from([4]),n,r.toBytes(s.y))},fromBytes(e){let t=e.length,i=e[0],s=e.subarray(1);if(t===n&&(2===i||3===i)){let e,t=tK(s);if(!tQ(t,iL,r.ORDER))throw Error("Point is not on curve");let n=h(t);try{e=r.sqrt(n)}catch(e){throw Error("Point is not on curve"+(e instanceof Error?": "+e.message:""))}return(1&i)==1!=((e&iL)===iL)&&(e=r.neg(e)),{x:t,y:e}}if(t===o&&4===i)return{x:r.fromBytes(s.subarray(0,r.BYTES)),y:r.fromBytes(s.subarray(r.BYTES,2*r.BYTES))};throw Error("invalid Point, expected length of "+n+", or uncompressed "+o+", got "+t)}}),p=e=>tM(tG(e,i.nByteLength)),d=(e,t,i)=>tK(e.slice(t,i));class g{constructor(e,t,i){this.r=e,this.s=t,this.recovery=i,this.assertValidity()}static fromCompact(e){let t=i.nByteLength;return new g(d(e=tJ("compactSignature",e,2*t),0,t),d(e,t,2*t))}static fromDER(e){let{r:t,s:i}=i$.toSig(tJ("DER",e));return new g(t,i)}assertValidity(){tX("r",this.r,iL,s),tX("s",this.s,iL,s)}addRecoveryBit(e){return new g(this.r,this.s,e)}recoverPublicKey(e){let{r:t,s:n,recovery:o}=this,c=m(tJ("msgHash",e));if(null==o||![0,1,2,3].includes(o))throw Error("recovery id invalid");let h=2===o||3===o?t+i.n:t;if(h>=r.ORDER)throw Error("recovery id 2 or 3 invalid");let u=(1&o)==0?"02":"03",d=l.fromHex(u+p(h)),g=ic(h,s),f=a(-c*g),y=a(n*g),b=l.BASE.multiplyAndAddUnsafe(d,f,y);if(!b)throw Error("point at infinify");return b.assertValidity(),b}hasHighS(){return this.s>s>>iL}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return tV(this.toDERHex())}toDERHex(){return i$.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return tV(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}function f(e){let t=tD(e),i="string"==typeof e,r=(t||i)&&e.length;return t?r===n||r===o:i?r===2*n||r===2*o:e instanceof l}let y=i.bits2int||function(e){if(e.length>8192)throw Error("input is too large");let t=tK(e),r=8*e.length-i.nBitLength;return r>0?t>>BigInt(r):t},m=i.bits2int_modN||function(e){return a(y(e))},b=t1(i.nBitLength);function w(e){return tX("num < 2^"+i.nBitLength,e,iU,b),tG(e,i.nByteLength)}let v={lowS:i.lowS,prehash:!1},E={lowS:i.lowS,prehash:!1};return l.BASE._setWindowSize(8),{CURVE:i,getPublicKey:function(e,t=!0){return l.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,i=!0){if(f(e))throw Error("first arg must be private key");if(!f(t))throw Error("second arg must be public key");return l.fromHex(t).multiply(c(e)).toRawBytes(i)},sign:function(e,t,n=v){let{seed:o,k2sig:h}=function(e,t,n=v){if(["recovered","canonical"].some(e=>e in n))throw Error("sign() legacy options not supported");let{hash:o,randomBytes:h}=i,{lowS:p,prehash:d,extraEntropy:f}=n;null==p&&(p=!0),e=tJ("msgHash",e),ij(n),d&&(e=tJ("prehashed msgHash",o(e)));let b=m(e),E=c(t),I=[w(E),w(b)];if(null!=f&&!1!==f){let e=!0===f?h(r.BYTES):f;I.push(tJ("extraEntropy",e))}return{seed:tY(...I),k2sig:function(e){var t;let i=y(e);if(!u(i))return;let r=ic(i,s),n=l.BASE.multiply(i).toAffine(),o=a(n.x);if(o===iU)return;let c=a(r*a(b+o*E));if(c===iU)return;let h=2*(n.x!==o)|Number(n.y&iL),d=c;return p&&c>s>>iL&&(d=(t=c)>s>>iL?a(-t):t,h^=1),new g(o,d,h)}}}(e,t,n);return t8(i.hash.outputLen,i.nByteLength,i.hmac)(o,h)},verify:function(e,t,r,n=E){let o,c;t=tJ("msgHash",t),r=tJ("publicKey",r);let{lowS:h,prehash:u,format:p}=n;if(ij(n),"strict"in n)throw Error("options.strict was renamed to lowS");if(void 0!==p&&"compact"!==p&&"der"!==p)throw Error("format must be compact or der");let d="string"==typeof e||tD(e),f=!d&&!p&&"object"==typeof e&&null!==e&&"bigint"==typeof e.r&&"bigint"==typeof e.s;if(!d&&!f)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");
4try{if(f&&(o=new g(e.r,e.s)),d){try{"compact"!==p&&(o=g.fromDER(e))}catch(e){if(!(e instanceof i$.Err))throw e}o||"der"===p||(o=g.fromCompact(e))}c=l.fromHex(r)}catch{return!1}if(!o||h&&o.hasHighS())return!1;u&&(t=i.hash(t));let{r:y,s:b}=o,w=m(t),v=ic(b,s),I=a(w*v),P=a(y*v),O=l.BASE.multiplyAndAddUnsafe(c,I,P)?.toAffine();return!!O&&a(O.x)===y},ProjectivePoint:l,Signature:g,utils:{isValidPrivateKey(e){try{return c(e),!0}catch{return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{let e=ig(i.n);return function(e,t,i=!1){let r=e.length,s=id(t),n=ig(t);if(r<16||r<n||r>1024)throw Error("expected "+n+"-1024 bytes of input, got "+r);let o=io(i?tF(e):tK(e),t-t7)+t7;return i?tW(o,s):tG(o,s)}(i.randomBytes(e),i.n)},precompute:(e=8,t=l.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)}}})({...a,hash:e,hmac:(t,...i)=>tO(e,t,function(...e){let t=0;for(let i=0;i<e.length;i++){let r=e[i];eo(r),t+=r.length}let i=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let s=e[t];i.set(s,r),r+=s.length}return i}(...i)),randomBytes:ev}))(tN),create:n}),iH="base10",iV="base16",iK="base64pad",iF="base64url",iG="utf8";function iW(){let e=ev(32);return(0,m.dI)(e,iV)}function iJ(e){let t=tN((0,m.sH)(e,iV));return(0,m.dI)(t,iV)}function iY(e){let t=tN((0,m.sH)(e,iG));return(0,m.dI)(t,iV)}function iZ(e){return(0,m.sH)(`${e}`,iH)}function iQ(e){return Number((0,m.dI)(e,iH))}function iX(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function i0(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),i=(4-t.length%4)%4;return t+"=".repeat(i)}function i1(e){if(2===iQ(e.type))return(0,m.dI)((0,m.xW)([e.type,e.sealed]),iK);if(1===iQ(e.type)){if(typeof e.senderPublicKey>"u")throw Error("Missing sender public key for type 1 envelope");return(0,m.dI)((0,m.xW)([e.type,e.senderPublicKey,e.iv,e.sealed]),iK)}return(0,m.dI)((0,m.xW)([e.type,e.iv,e.sealed]),iK)}function i2(e){let t=(e.encoding||iK)===iF?i0(e.encoded):e.encoded,i=(0,m.sH)(t,iK),r=i.slice(0,1);if(1===iQ(r)){let e=i.slice(1,33),t=i.slice(33,45);return{type:r,sealed:i.slice(45),iv:t,senderPublicKey:e}}if(2===iQ(r))return{type:r,sealed:i.slice(1),iv:ev(12)};let s=i.slice(1,13);return{type:r,sealed:i.slice(13),iv:s}}function i8(e){let t=e?.type||0;if(1===t){if(typeof e?.senderPublicKey>"u")throw Error("missing sender public key");if(typeof e?.receiverPublicKey>"u")throw Error("missing receiver public key")}return{type:t,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function i3(e){return 1===e.type&&"string"==typeof e.senderPublicKey&&"string"==typeof e.receiverPublicKey}function i5(e){return e?.relay||{protocol:"irn"}}function i6(e){let t=b.CG[e];if(typeof t>"u")throw Error(`Relay Protocol not supported: ${e}`);return t}function i4(e){var t;if(!e.includes("wc:")){let t=es(e);null!=t&&t.includes("wc:")&&(e=t)}let i=(e=(e=e.includes("wc://")?e.replace("wc://",""):e).includes("wc:")?e.replace("wc:",""):e).indexOf(":"),r=-1!==e.indexOf("?")?e.indexOf("?"):void 0,s=e.substring(0,i),n=e.substring(i+1,r).split("@"),o=new URLSearchParams("u">typeof r?e.substring(r):""),a={};o.forEach((e,t)=>{a[t]=e});let l="string"==typeof a.methods?a.methods.split(","):void 0;return{protocol:s,topic:(t=n[0]).startsWith("//")?t.substring(2):t,version:parseInt(n[1],10),symKey:a.symKey,relay:function(e,t="-"){let i={},r="relay"+t;return Object.keys(e).forEach(t=>{if(t.startsWith(r)){let s=t.replace(r,""),n=e[t];i[s]=n}}),i}(a),methods:l,expiryTimestamp:a.expiryTimestamp?parseInt(a.expiryTimestamp,10):void 0}}function i9(e){let t=new URLSearchParams,i=function(e,t="-"){let i={};return Object.keys(e).forEach(r=>{e[r]&&(i["relay"+t+r]=e[r])}),i}(e.relay);Object.keys(i).sort().forEach(e=>{t.set(e,i[e])}),t.set("symKey",e.symKey),e.expiryTimestamp&&t.set("expiryTimestamp",e.expiryTimestamp.toString()),e.methods&&t.set("methods",e.methods.join(","));let r=t.toString();return`${e.protocol}:${e.topic}@${e.version}?${r}`}function i7(e,t,i){return`${e}?wc_ev=${i}&topic=${t}`}var re=Object.defineProperty,rt=Object.defineProperties,ri=Object.getOwnPropertyDescriptors,rr=Object.getOwnPropertySymbols,rs=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable,ro=(e,t,i)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,ra=(e,t)=>{for(var i in t||(t={}))rs.call(t,i)&&ro(e,i,t[i]);if(rr)for(var i of rr(t))rn.call(t,i)&&ro(e,i,t[i]);return e},rl=(e,t)=>
4rt(e,ri(t));function rc(e){let t=[];return e.forEach(e=>{let[i,r]=e.split(":");t.push(`${i}:${r}`)}),t}function rh(e){return e.includes(":")}function ru(e){return rh(e)?e.split(":")[0]:e}function rp(e){var t,i,r;let s={};if(!rw(e))return s;for(let[n,o]of Object.entries(e)){let e=rh(n)?[n]:o.chains,a=o.methods||[],l=o.events||[],c=ru(n);s[c]=rl(ra({},s[c]),{chains:Q(e,null==(t=s[c])?void 0:t.chains),methods:Q(a,null==(i=s[c])?void 0:i.methods),events:Q(l,null==(r=s[c])?void 0:r.events)})}return s}function rd(e,t){var i;let r,s=(i=t=t.map(e=>e.replace("did:pkh:","")),r={},i?.forEach(e=>{var t;let[i,s]=e.split(":");r[i]||(r[i]={accounts:[],chains:[],events:[],methods:[]}),r[i].accounts.push(e),null==(t=r[i].chains)||t.push(`${i}:${s}`)}),r);for(let[t,i]of Object.entries(s))i.methods?i.methods=Q(i.methods,e):i.methods=e,i.events=["chainChanged","accountsChanged"];return s}let rg={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},rf={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function ry(e,t){let{message:i,code:r}=rf[e];return{message:t?`${i} ${t}`:i,code:r}}function rm(e,t){let{message:i,code:r}=rg[e];return{message:t?`${i} ${t}`:i,code:r}}function rb(e,t){return!!Array.isArray(e)&&(!("u">typeof t)||!e.length||e.every(t))}function rw(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function rv(e){return typeof e>"u"}function rE(e,t){return!!(t&&rv(e))||"string"==typeof e&&!!e.trim().length}function rI(e,t){return!!(t&&rv(e))||"number"==typeof e&&!isNaN(e)}function rP(e){return!!(rE(e,!1)&&e.includes(":"))&&2===e.split(":").length}function rO(e){let t=!0;return rb(e)?e.length&&(t=e.every(e=>rE(e,!1))):t=!1,t}function rS(e,t){let i=null;return Object.values(e).forEach(e=>{var r;let s;if(i)return;let n=(r=`${t}, namespace`,s=null,rO(e?.methods)?rO(e?.events)||(s=rm("UNSUPPORTED_EVENTS",`${r}, events should be an array of strings or empty array for no events`)):s=rm("UNSUPPORTED_METHODS",`${r}, methods should be an array of strings or empty array for no methods`),s);n&&(i=n)}),i}function r_(e,t){let i=null;if(e&&rw(e)){let r,s=rS(e,t);s&&(i=s);let n=(r=null,Object.values(e).forEach(e=>{var i,s;let n;if(r)return;let o=(i=e?.accounts,s=`${t} namespace`,n=null,rb(i)?i.forEach(e=>{n||function(e){if(rE(e,!1)&&e.includes(":")){let t=e.split(":");if(3===t.length){let e=t[0]+":"+t[1];return!!t[2]&&rP(e)}}return!1}(e)||(n=rm("UNSUPPORTED_ACCOUNTS",`${s}, account ${e} should be a string and conform to "namespace:chainId:address" format`))}):n=rm("UNSUPPORTED_ACCOUNTS",`${s}
4, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n);o&&(r=o)}),r);n&&(i=n)}else i=ry("MISSING_OR_INVALID",`${t}, namespaces should be an object with data`);return i}function rx(e){return rE(e.protocol,!0)}function rA(e){return"u">typeof e}function rR(e,t){let i;return!(!rP(t)||!(i=[],Object.values(e).forEach(e=>{i.push(...rc(e.accounts))}),i).includes(t))}function rC(e,t,i){var r,s;let n,o,a=null,l=(n={},Object.keys(r=e).forEach(e=>{var t;e.includes(":")?n[e]=r[e]:null==(t=r[e].chains)||t.forEach(t=>{n[t]={methods:r[e].methods,events:r[e].events}})}),n),c=(o={},Object.keys(s=t).forEach(e=>{if(e.includes(":"))o[e]=s[e];else{let t=rc(s[e].accounts);t?.forEach(t=>{o[t]={accounts:s[e].accounts.filter(e=>e.includes(`${t}:`)),methods:s[e].methods,events:s[e].events}})}}),o),h=Object.keys(l),u=Object.keys(c),p=rT(Object.keys(e)),d=rT(Object.keys(t)),g=p.filter(e=>!d.includes(e));return g.length&&(a=ry("NON_CONFORMING_NAMESPACES",`${i} namespaces keys don't satisfy requiredNamespaces.
5      Required: ${g.toString()}
6      Received: ${Object.keys(t).toString()}`)),z(h,u)||(a=ry("NON_CONFORMING_NAMESPACES",`${i} namespaces chains don't satisfy required namespaces.
7      Required: ${h.toString()}
8      Approved: ${u.toString()}`)),Object.keys(t).forEach(e=>{if(!e.includes(":")||a)return;let r=rc(t[e].accounts);r.includes(e)||(a=ry("NON_CONFORMING_NAMESPACES",`${i} namespaces accounts don't satisfy namespace accounts for ${e}
9        Required: ${e}
10        Approved: ${r.toString()}`))}),h.forEach(e=>{a||(z(l[e].methods,c[e].methods)?z(l[e].events,c[e].events)||(a=ry("NON_CONFORMING_NAMESPACES",`${i} namespaces events don't satisfy namespace events for ${e}`)):a=ry("NON_CONFORMING_NAMESPACES",`${i} namespaces methods don't satisfy namespace methods for ${e}`))}),a}function rT(e){return[...new Set(e.map(e=>e.includes(":")?e.split(":")[0]:e))]}function rN(){let e=U();return new Promise(t=>{switch(e){case q:t($()&&navigator?.onLine);break;case N:t(rj());break;default:t(!0)}})}async function rj(){if(D()&&"u">typeof i.g&&null!=i.g&&i.g.NetInfo){let e=await (null==i.g?void 0:i.g.NetInfo.fetch());return e?.isConnected}return!0}let rq={};class rk{static get(e){return rq[e]}static set(e,t){rq[e]=t}static delete(e){delete rq[e]}}var rD=i(43264),r$=i(75323),rU=i(20666),rL=i(36930),rM=Object.defineProperty,rB=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?rM(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class rz extends rL.H{constructor(e){super(),this.opts=e,rB(this,"protocol","wc"),rB(this,"version",2)}}var rH=Object.defineProperty;class rV extends rL.H{constructor(e,t){super(),this.core=e,this.logger=t,((e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?rH(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i})(this,"records",new Map)}}class rK{constructor(e,t){this.logger=e,this.core=t}}class rF extends rL.H{constructor(e,t){super(),this.relayer=e,this.logger=t}}class rG extends rL.H{constructor(e){super()}}class rW{constructor(e,t,i,r){this.core=e,this.logger=t,this.name=i}}class rJ extends rL.H{constructor(e,t){super(),this.relayer=e,this.logger=t}}class rY extends rL.H{constructor(e,t){super(),this.core=e,this.logger=t}}class rZ{constructor(e,t,i){this.core=e,this.logger=t,this.store=i}}class rQ{constructor(e,t){this.projectId=e,this.logger=t}}class rX{constructor(e,t,i){this.core=e,this.logger=t,this.telemetryEnabled=i}}var r0=Object.defineProperty,r1=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?r0(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};c();class r2{constructor(e){this.opts=e,r1(this,"protocol","wc"),r1(this,"version",2)}}l.EventEmitter;class r8{constructor(e){this.client=e}}var r3=i(43128),r5=i(26109),r6=i(51642),r4=i(41653),r9=i(92991).Buffer,r7=i(37811);let se="core",st=`wc@2:${se}:`,si={database:":memory:"},sr="client_ed25519_seed",ss=u.ONE_DAY,sn=u.SIX_HOURS,so="wss://relay.walletconnect.org",sa="relayer_message",sl="relayer_message_ack",sc="relayer_connection_stalled",sh="relayer_publish",su="payload",sp="connect",sd="disconnect",sg="error",sf="2.21.1",sy="link_mode",sm="relay",sb="inbound",sw="WALLETCONNECT_LINK_MODE_APPS",sv="subscription_created",sE="subscription_deleted",sI=(u.FIVE_SECONDS,{wc_pairingDelete:{req:{ttl:u.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:u.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:u.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:u.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:u.ONE_DAY,prompt:!1,tag:0},res:{ttl:u.ONE_DAY,prompt:!1,tag:0}}}),sP="pairing_create",sO="pairing_delete",sS="history_created",s_="history_updated",sx="history_deleted",sA="expirer_created",sR="expirer_deleted",sC="expirer_expired",sT="https://verify.walletconnect.org",sN=`${sT}/v3`,sj=["https://verify.walletconnect.com",sT],sq="malformed_pairing_uri",sk="session_approve_started";var sD=function(e,t){if(e.length>=255)throw TypeError("Alphabet too long");for(var i=new Uint8Array(256),r=0;r<i.length;r++)i[r]=255;for(var s=0;s<e.length;s++){var n=e.charAt(s),o=n.charCodeAt(0);if(255!==i[o])throw TypeError(n+" is ambiguous");i[o]=s}var a=e.length,l=e.charAt(0),c=Math.log(a)/Math.log(256),h=Math.log(256)/Math.log(a);function u(e){if("string"!=typeof e)throw TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[0]){for(var r=0,s=0;e[t]===l;)r++,t++;for(var n=(e.length-t)*c+1>>>0,o=new Uint8Array(n);e[t];){var h=i[e.charCodeAt(t)];if(255===h)return;for(var u=0,p=n-1;(0!==h||u<s)&&-1!==p;
10p--,u++)h+=a*o[p]>>>0,o[p]=h%256>>>0,h=h/256>>>0;if(0!==h)throw Error("Non-zero carry");s=u,t++}if(" "!==e[t]){for(var d=n-s;d!==n&&0===o[d];)d++;for(var g=new Uint8Array(r+(n-d)),f=r;d!==n;)g[f++]=o[d++];return g}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError("Expected Uint8Array");if(0===t.length)return"";for(var i=0,r=0,s=0,n=t.length;s!==n&&0===t[s];)s++,i++;for(var o=(n-s)*h+1>>>0,c=new Uint8Array(o);s!==n;){for(var u=t[s],p=0,d=o-1;(0!==u||p<r)&&-1!==d;d--,p++)u+=256*c[d]>>>0,c[d]=u%a>>>0,u=u/a>>>0;if(0!==u)throw Error("Non-zero carry");r=p,s++}for(var g=o-r;g!==o&&0===c[g];)g++;for(var f=l.repeat(i);g<o;++g)f+=e.charAt(c[g]);return f},decodeUnsafe:u,decode:function(e){var i=u(e);if(i)return i;throw Error(`Non-${t} character`)}}};let s$=e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error("Unknown type, must be binary type")};class sU{constructor(e,t,i){this.name=e,this.prefix=t,this.baseEncode=i}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class sL{constructor(e,t,i){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=i}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return sB(this,e)}}class sM{constructor(e){this.decoders=e}or(e){return sB(this,e)}decode(e){let t=e[0],i=this.decoders[t];if(i)return i.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}let sB=(e,t)=>new sM({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class sz{constructor(e,t,i,r){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=r,this.encoder=new sU(e,t,i),this.decoder=new sL(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}let sH=({name:e,prefix:t,encode:i,decode:r})=>new sz(e,t,i,r),sV=({prefix:e,name:t,alphabet:i})=>{let{encode:r,decode:s}=sD(i,t);return sH({prefix:e,name:t,encode:r,decode:e=>s$(s(e))})},sK=({name:e,prefix:t,bitsPerChar:i,alphabet:r})=>sH({prefix:t,name:e,encode:e=>((e,t,i)=>{let r="="===t[t.length-1],s=(1<<i)-1,n="",o=0,a=0;for(let r=0;r<e.length;++r)for(a=a<<8|e[r],o+=8;o>i;)o-=i,n+=t[s&a>>o];if(o&&(n+=t[s&a<<i-o]),r)for(;n.length*i&7;)n+="=";return n})(e,r,i),decode:t=>((e,t,i,r)=>{let s={};for(let e=0;e<t.length;++e)s[t[e]]=e;let n=e.length;for(;"="===e[n-1];)--n;let o=new Uint8Array(n*i/8|0),a=0,l=0,c=0;for(let t=0;t<n;++t){let n=s[e[t]];if(void 0===n)throw SyntaxError(`Non-${r} character`);l=l<<i|n,(a+=i)>=8&&(a-=8,o[c++]=255&l>>a)}if(a>=i||255&l<<8-a)throw SyntaxError("Unexpected end of data");return o})(t,r,i,e)});var sF=Object.freeze({__proto__:null,identity:sH({prefix:"\0",name:"identity",encode:e=>new TextDecoder().decode(e),decode:e=>new TextEncoder().encode(e)})}),sG=Object.freeze({__proto__:null,base2:sK({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1})}),sW=Object.freeze({__proto__:null,base8:sK({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3})}),sJ=Object.freeze({__proto__:null,base10:sV({prefix:"9",name:"base10",alphabet:"0123456789"})}),sY=Object.freeze({__proto__:null,base16:sK({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),base16upper:sK({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4})}),sZ=Object.freeze({__proto__:null,base32:sK({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),base32upper:sK({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),base32pad:sK({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),base32padupper:sK({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),base32hex:sK({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),base32hexupper:sK({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),base32hexpad:sK({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),base32hexpadupper:sK({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),base32z:sK({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5})}),sQ=Object.freeze({__proto__:null,base36:sV({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),base36upper:sV({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"})}),sX=Object.freeze({__proto__:null,base58btc:sV({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),base58flickr:sV({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"})}),s0=Object.freeze({__proto__:null,base64:sK({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
10+/",bitsPerChar:6}),base64pad:sK({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),base64url:sK({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),base64urlpad:sK({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6})});let s1=Array.from("\uD83D\uDE80\uD83E\uDE90☄\uD83D\uDEF0\uD83C\uDF0C\uD83C\uDF11\uD83C\uDF12\uD83C\uDF13\uD83C\uDF14\uD83C\uDF15\uD83C\uDF16\uD83C\uDF17\uD83C\uDF18\uD83C\uDF0D\uD83C\uDF0F\uD83C\uDF0E\uD83D\uDC09☀\uD83D\uDCBB\uD83D\uDDA5\uD83D\uDCBE\uD83D\uDCBF\uD83D\uDE02❤\uD83D\uDE0D\uD83E\uDD23\uD83D\uDE0A\uD83D\uDE4F\uD83D\uDC95\uD83D\uDE2D\uD83D\uDE18\uD83D\uDC4D\uD83D\uDE05\uD83D\uDC4F\uD83D\uDE01\uD83D\uDD25\uD83E\uDD70\uD83D\uDC94\uD83D\uDC96\uD83D\uDC99\uD83D\uDE22\uD83E\uDD14\uD83D\uDE06\uD83D\uDE44\uD83D\uDCAA\uD83D\uDE09☺\uD83D\uDC4C\uD83E\uDD17\uD83D\uDC9C\uD83D\uDE14\uD83D\uDE0E\uD83D\uDE07\uD83C\uDF39\uD83E\uDD26\uD83C\uDF89\uD83D\uDC9E✌✨\uD83E\uDD37\uD83D\uDE31\uD83D\uDE0C\uD83C\uDF38\uD83D\uDE4C\uD83D\uDE0B\uD83D\uDC97\uD83D\uDC9A\uD83D\uDE0F\uD83D\uDC9B\uD83D\uDE42\uD83D\uDC93\uD83E\uDD29\uD83D\uDE04\uD83D\uDE00\uD83D\uDDA4\uD83D\uDE03\uD83D\uDCAF\uD83D\uDE48\uD83D\uDC47\uD83C\uDFB6\uD83D\uDE12\uD83E\uDD2D❣\uD83D\uDE1C\uD83D\uDC8B\uD83D\uDC40\uD83D\uDE2A\uD83D\uDE11\uD83D\uDCA5\uD83D\uDE4B\uD83D\uDE1E\uD83D\uDE29\uD83D\uDE21\uD83E\uDD2A\uD83D\uDC4A\uD83E\uDD73\uD83D\uDE25\uD83E\uDD24\uD83D\uDC49\uD83D\uDC83\uD83D\uDE33✋\uD83D\uDE1A\uD83D\uDE1D\uD83D\uDE34\uD83C\uDF1F\uD83D\uDE2C\uD83D\uDE43\uD83C\uDF40\uD83C\uDF37\uD83D\uDE3B\uD83D\uDE13⭐✅\uD83E\uDD7A\uD83C\uDF08\uD83D\uDE08\uD83E\uDD18\uD83D\uDCA6✔\uD83D\uDE23\uD83C\uDFC3\uD83D\uDC90☹\uD83C\uDF8A\uD83D\uDC98\uD83D\uDE20☝\uD83D\uDE15\uD83C\uDF3A\uD83C\uDF82\uD83C\uDF3B\uD83D\uDE10\uD83D\uDD95\uD83D\uDC9D\uD83D\uDE4A\uD83D\uDE39\uD83D\uDDE3\uD83D\uDCAB\uD83D\uDC80\uD83D\uDC51\uD83C\uDFB5\uD83E\uDD1E\uD83D\uDE1B\uD83D\uDD34\uD83D\uDE24\uD83C\uDF3C\uD83D\uDE2B⚽\uD83E\uDD19☕\uD83C\uDFC6\uD83E\uDD2B\uD83D\uDC48\uD83D\uDE2E\uD83D\uDE46\uD83C\uDF7B\uD83C\uDF43\uD83D\uDC36\uD83D\uDC81\uD83D\uDE32\uD83C\uDF3F\uD83E\uDDE1\uD83C\uDF81⚡\uD83C\uDF1E\uD83C\uDF88❌✊\uD83D\uDC4B\uD83D\uDE30\uD83E\uDD28\uD83D\uDE36\uD83E\uDD1D\uD83D\uDEB6\uD83D\uDCB0\uD83C\uDF53\uD83D\uDCA2\uD83E\uDD1F\uD83D\uDE41\uD83D\uDEA8\uD83D\uDCA8\uD83E\uDD2C✈\uD83C\uDF80\uD83C\uDF7A\uD83E\uDD13\uD83D\uDE19\uD83D\uDC9F\uD83C\uDF31\uD83D\uDE16\uD83D\uDC76\uD83E\uDD74▶➡❓\uD83D\uDC8E\uD83D\uDCB8⬇\uD83D\uDE28\uD83C\uDF1A\uD83E\uDD8B\uD83D\uDE37\uD83D\uDD7A⚠\uD83D\uDE45\uD83D\uDE1F\uD83D\uDE35\uD83D\uDC4E\uD83E\uDD32\uD83E\uDD20\uD83E\uDD27\uD83D\uDCCC\uD83D\uDD35\uD83D\uDC85\uD83E\uDDD0\uD83D\uDC3E\uD83C\uDF52\uD83D\uDE17\uD83E\uDD11\uD83C\uDF0A\uD83E\uDD2F\uD83D\uDC37☎\uD83D\uDCA7\uD83D\uDE2F\uD83D\uDC86\uD83D\uDC46\uD83C\uDFA4\uD83D\uDE47\uD83C\uDF51❄\uD83C\uDF34\uD83D\uDCA3\uD83D\uDC38\uD83D\uDC8C\uD83D\uDCCD\uD83E\uDD40\uD83E\uDD22\uD83D\uDC45\uD83D\uDCA1\uD83D\uDCA9\uD83D\uDC50\uD83D\uDCF8\uD83D\uDC7B\uD83E\uDD10\uD83E\uDD2E\uD83C\uDFBC\uD83E\uDD75\uD83D\uDEA9\uD83C\uDF4E\uD83C\uDF4A\uD83D\uDC7C\uD83D\uDC8D\uD83D\uDCE3\uD83E\uDD42"),s2=s1.reduce((e,t,i)=>(e[i]=t,e),[]),s8=s1.reduce((e,t,i)=>(e[t.codePointAt(0)]=i,e),[]);var s3=Object.freeze({__proto__:null,base256emoji:sH({prefix:"\uD83D\uDE80",name:"base256emoji",encode:function(e){return e.reduce((e,t)=>e+=s2[t],"")},decode:function(e){let t=[];for(let i of e){let e=s8[i.codePointAt(0)];if(void 0===e)throw Error(`Non-base256emoji character: ${i}`);t.push(e)}return new Uint8Array(t)}})});function s5(e,t,i){t=t||[],i=i||0;for(var r=i;e>=0x80000000;)t[i++]=255&e|128,e/=128;for(;-128&e;)t[i++]=255&e|128,e>>>=7;return t[i]=0|e,s5.bytes=i-r+1,t}var s6=function(e){return e<128?1:e<16384?2:e<2097152?3:e<0x10000000?4:e<0x800000000?5:e<0x40000000000?6:e<0x2000000000000?7:e<0x100000000000000?8:e<0x8000000000000000?9:10};let s4=(e,t,i=0)=>(s5(e,t,i),t),s9=(e,t)=>{let i=t.byteLength,r=s6(e),s=r+s6(i),n=new Uint8Array(s+i);return s4(e,n,0),s4(i,n,r),n.set(t,s),new s7(e,i,t,n)};
10class s7{constructor(e,t,i,r){this.code=e,this.size=t,this.digest=i,this.bytes=r}}let ne=({name:e,code:t,encode:i})=>new nt(e,t,i);class nt{constructor(e,t,i){this.name=e,this.code=t,this.encode=i}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?s9(this.code,t):t.then(e=>s9(this.code,e))}throw Error("Unknown type, must be binary type")}}let ni=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t));var nr=Object.freeze({__proto__:null,sha256:ne({name:"sha2-256",code:18,encode:ni("SHA-256")}),sha512:ne({name:"sha2-512",code:19,encode:ni("SHA-512")})}),ns=Object.freeze({__proto__:null,identity:{code:0,name:"identity",encode:s$,digest:e=>s9(0,s$(e))}});new TextEncoder,new TextDecoder;let nn={...sF,...sG,...sW,...sJ,...sY,...sZ,...sQ,...sX,...s0,...s3};function no(e,t,i,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:i},decoder:{decode:r}}}({...nr,...ns});let na=no("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),nl=no("ascii","a",e=>{let t="a";for(let i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return t},e=>{let t=function(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}((e=e.substring(1)).length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}),nc={utf8:na,"utf-8":na,hex:nn.base16,latin1:nl,ascii:nl,binary:nl,...nn};var nh=Object.defineProperty,nu=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?nh(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class np{constructor(e,t){this.core=e,this.logger=t,nu(this,"keychain",new Map),nu(this,"name","keychain"),nu(this,"version","0.3"),nu(this,"initialized",!1),nu(this,"storagePrefix",st),nu(this,"init",async()=>{if(!this.initialized){let e=await this.getKeyChain();"u">typeof e&&(this.keychain=e),this.initialized=!0}}),nu(this,"has",e=>(this.isInitialized(),this.keychain.has(e))),nu(this,"set",async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),nu(this,"get",e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>"u"){let{message:t}=ry("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(t)}return t}),nu(this,"del",async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=(0,rU.U5)(t,this.name)}get context(){return(0,rU.oI)(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,H(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return"u">typeof e?V(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}}var nd=Object.defineProperty,ng=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?nd(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class nf{constructor(e,t,i){this.core=e,this.logger=t,ng(this,"name","crypto"),ng(this,"keychain"),ng(this,"randomSessionIdentifier",iW()),ng(this,"initialized",!1),ng(this,"init",async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)}),ng(this,"hasKeys",e=>(this.isInitialized(),this.keychain.has(e))),ng(this,"getClientId",async()=>{this.isInitialized();let e=await this.getClientSeed(),t=y.TZ(e);return y.UF(t.publicKey)}),ng(this,"generateKeyPair",()=>{let e,t;this.isInitialized();let i=(e=iN.utils.randomPrivateKey(),t=iN.getPublicKey(e),{privateKey:(0,m.dI)(e,iV),publicKey:(0,m.dI)(t,iV)});return this.setPrivateKey(i.publicKey,i.privateKey)}),ng(this,"signJWT",async e=>{this.isInitialized();let t=await this.getClientSeed(),i=y.TZ(t),r=this.randomSessionIdentifier;return await y.FA(r,e,ss,i)}),ng(this,"generateSharedKey",(e,t,i)=>{var r,s,n;let o,a;this.isInitialized();let l=(r=this.getPrivateKey(e),o=iN.getSharedSecret((0,m.sH)(r,iV),(0,m.sH)(t,iV)),s=void 0,a=function(e,t,i,r=32){if(ea(e),en(r),r>255*e.outputLen)throw Error("Length should be <= 255*HashLen");let s=Math.ceil(r/e.outputLen);void 0===i&&(i=t_);let n=new Uint8Array(s*e.outputLen),o=tO.create(e,t),a=o._cloneInto(),l=new Uint8Array(o.outputLen);for(let t=0;t<s;
10t++)tS[0]=t+1,a.update(0===t?t_:l).update(i).update(tS).digestInto(l),n.set(l,e.outputLen*t),o._cloneInto(a);return o.destroy(),a.destroy(),l.fill(0),tS.fill(0),n.slice(0,r)}(tN,(n=void 0,ea(tN),void 0===n&&(n=new Uint8Array(tN.outputLen)),tO(tN,em(n),em(o))),s,32),(0,m.dI)(a,iV));return this.setSymKey(l,i)}),ng(this,"setSymKey",async(e,t)=>{this.isInitialized();let i=t||iJ(e);return await this.keychain.set(i,e),i}),ng(this,"deleteKeyPair",async e=>{this.isInitialized(),await this.keychain.del(e)}),ng(this,"deleteSymKey",async e=>{this.isInitialized(),await this.keychain.del(e)}),ng(this,"encode",async(e,t,i)=>{this.isInitialized();let r=i8(i),s=(0,r3.h)(t);if(2===r.type){var n;let e,t,r;return n=i?.encoding,e=iZ(2),t=ev(12),r=i1({type:e,sealed:(0,m.sH)(s,iG),iv:t}),n===iF?iX(r):r}if(i3(r)){let t=r.senderPublicKey,i=r.receiverPublicKey;e=await this.generateSharedKey(t,i)}let o=this.getSymKey(e),{type:a,senderPublicKey:l}=r;return function(e){let t=iZ("u">typeof e.type?e.type:0);if(1===iQ(t)&&typeof e.senderPublicKey>"u")throw Error("Missing sender public key for type 1 envelope");let i="u">typeof e.senderPublicKey?(0,m.sH)(e.senderPublicKey,iV):void 0,r="u">typeof e.iv?(0,m.sH)(e.iv,iV):ev(12),s=i1({type:t,sealed:tI((0,m.sH)(e.symKey,iV),r).encrypt((0,m.sH)(e.message,iG)),iv:r,senderPublicKey:i});return e.encoding===iF?iX(s):s}({type:a,symKey:o,message:s,senderPublicKey:l,encoding:i?.encoding})}),ng(this,"decode",async(e,t,i)=>{let r;this.isInitialized();let s=i8({type:iQ((r=i2({encoded:t,encoding:i?.encoding})).type),senderPublicKey:"u">typeof r.senderPublicKey?(0,m.dI)(r.senderPublicKey,iV):void 0,receiverPublicKey:i?.receiverPublicKey});if(2===s.type){let e=function(e,t){let{sealed:i}=i2({encoded:e,encoding:t});return(0,m.dI)(i,iG)}(t,i?.encoding);return(0,r3.j)(e)}if(i3(s)){let t=s.receiverPublicKey,i=s.senderPublicKey;e=await this.generateSharedKey(t,i)}try{let r=this.getSymKey(e),s=function(e){let t=(0,m.sH)(e.symKey,iV),{sealed:i,iv:r}=i2({encoded:e.encoded,encoding:e.encoding}),s=tI(t,r).decrypt(i);if(null===s)throw Error("Failed to decrypt");return(0,m.dI)(s,iG)}({symKey:r,encoded:t,encoding:i?.encoding});return(0,r3.j)(s)}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),ng(this,"getPayloadType",(e,t=iK)=>iQ(i2({encoded:e,encoding:t}).type)),ng(this,"getPayloadSenderPublicKey",(e,t=iK)=>{let i=i2({encoded:e,encoding:t});return i.senderPublicKey?(0,m.dI)(i.senderPublicKey,iV):void 0}),this.core=e,this.logger=(0,rU.U5)(t,this.name),this.keychain=i||new np(this.core,this.logger)}get context(){return(0,rU.oI)(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(sr)}catch{e=iW(),await this.keychain.set(sr,e)}return function(e,t="utf8"){let i=nc[t];if(!i)throw Error(`Unsupported encoding "${t}"`);return("utf8"===t||"utf-8"===t)&&null!=globalThis.Buffer&&null!=globalThis.Buffer.from?globalThis.Buffer.from(e,"utf8"):i.decoder.decode(`${i.prefix}${e}`)}(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}}var ny=Object.defineProperty,nm=Object.defineProperties,nb=Object.getOwnPropertyDescriptors,nw=Object.getOwnPropertySymbols,nv=Object.prototype.hasOwnProperty,nE=Object.prototype.propertyIsEnumerable,nI=(e,t,i)=>t in e?ny(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,nP=(e,t,i)=>nI(e,"symbol"!=typeof t?t+"":t,i);class nO extends rK{constructor(e,t){super(e,t),this.logger=e,this.core=t,nP(this,"messages",new Map),nP(this,"messagesWithoutClientAck",new Map),nP(this,"name","messages"),nP(this,"version","0.3"),nP(this,"initialized",!1),nP(this,"storagePrefix",st),nP(this,"init",async()=>{if(!this.initialized){this.logger.trace("Initialized");try{let e=await this.getRelayerMessages();"u">typeof e&&(this.messages=e);let t=await this.getRelayerMessagesWithoutClientAck();"u">typeof t&&(this.messagesWithoutClientAck=t),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}}),nP(this,"set",async(e,t,i)=>{this.isInitialized();let r=iY(t),s=this.messages.get(e);if(typeof s>"u"&&(s={}),"u">typeof s[r])return r;if(s[r]=t,this.messages.set(e,s),i===sb){let i=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,nm(((e,t)=>{for(var i in t||(t={}))nv.call(t,i)&&nI(e,i,t[i]);if(nw)for(var i of nw(t))nE.call(t,i)&&nI(e,i,t[i]);return e})({},i),nb({[r]:t})))}return await this.persist(),r}),nP(this,"get",e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>"u"&&(t={}),t}),nP(this,"getWithoutAck",e=>{this.isInitialized();let t={};for(let i of e){let e=this.messagesWithoutClientAck.get(i)||{};t[i]=Object.values(e)}return t}),nP(this,"has",(e,t)=>(this.isInitialized(),"u">typeof this.get(e)[iY(t)])),nP(this,"ack",async(e,t)=>{this.isInitialized();let i=this.messagesWithoutClientAck.get(e);if(typeof i>"u")return;let r=iY(t);delete i[r],0===Object.keys(i).length?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,i),await this.persist()}),nP(this,"del",async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=(0,rU.U5)(e,this.name),this.core=t}
10get context(){return(0,rU.oI)(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name+"_withoutClientAck"}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,H(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,H(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return"u">typeof e?V(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return"u">typeof e?V(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}}var nS=Object.defineProperty,n_=Object.defineProperties,nx=Object.getOwnPropertyDescriptors,nA=Object.getOwnPropertySymbols,nR=Object.prototype.hasOwnProperty,nC=Object.prototype.propertyIsEnumerable,nT=(e,t,i)=>t in e?nS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,nN=(e,t)=>{for(var i in t||(t={}))nR.call(t,i)&&nT(e,i,t[i]);if(nA)for(var i of nA(t))nC.call(t,i)&&nT(e,i,t[i]);return e},nj=(e,t,i)=>nT(e,"symbol"!=typeof t?t+"":t,i);class nq extends rF{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,nj(this,"events",new l.EventEmitter),nj(this,"name","publisher"),nj(this,"queue",new Map),nj(this,"publishTimeout",(0,u.toMiliseconds)(u.ONE_MINUTE)),nj(this,"initialPublishTimeout",(0,u.toMiliseconds)(15*u.ONE_SECOND)),nj(this,"needsTransportRestart",!1),nj(this,"publish",async(e,t,i)=>{var r;this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:i}});let s=i?.ttl||sn,n=i5(i),o=i?.prompt||!1,a=i?.tag||0,l=i?.id||(0,r6.getBigIntRpcId)().toString(),c={topic:e,message:t,opts:{ttl:s,relay:n,prompt:o,tag:a,id:l,attestation:i?.attestation,tvf:i?.tvf}},h=`Failed to publish payload, please try again. id:${l} tag:${a}`;try{let r=new Promise(async r=>{let n=({id:e})=>{c.opts.id===e&&(this.removeRequestFromQueue(e),this.relayer.events.removeListener(sh,n),r(c))};this.relayer.events.on(sh,n);let h=F(new Promise((r,n)=>{this.rpcPublish({topic:e,message:t,ttl:s,prompt:o,tag:a,id:l,attestation:i?.attestation,tvf:i?.tvf}).then(r).catch(e=>{this.logger.warn(e,e?.message),n(e)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${l} tag:${a}`);try{await h,this.events.removeListener(sh,n)}catch(i){let e,t;this.queue.set(l,(e=nN({},c),t={attempt:1},n_(e,nx(t)))),this.logger.warn(i,i?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:l,topic:e,message:t,opts:i}}),await F(r,this.publishTimeout,h)}catch(e){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(e),null!=(r=i?.internal)&&r.throwOnFailedPublish)throw e}finally{this.queue.delete(l)}}),nj(this,"on",(e,t)=>{this.events.on(e,t)}),nj(this,"once",(e,t)=>{this.events.once(e,t)}),nj(this,"off",(e,t)=>{this.events.off(e,t)}),nj(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=(0,rU.U5)(t,this.name),this.registerEventListeners()}get context(){return(0,rU.oI)(this.logger)}async rpcPublish(e){var t,i,r,s;let{topic:n,message:o,ttl:a=sn,prompt:l,tag:c,id:h,attestation:u,tvf:p}=e,d={method:i6(i5().protocol).publish,params:nN({topic:n,message:o,ttl:a,prompt:l,tag:c,attestation:u},p),id:h};rv(null==(t=d.params)?void 0:t.prompt)&&(null==(i=d.params)||delete i.prompt),rv(null==(r=d.params)?void 0:r.tag)&&(null==(s=d.params)||delete s.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:d});let g=await this.relayer.request(d);return this.relayer.events.emit(sh,e),this.logger.debug("Successfully Published Payload"),g}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{let i=e.attempt+1;this.queue.set(t,n_(nN({},e),nx({attempt:i})));let{topic:r,message:s,opts:n,attestation:o}=e;this.logger.warn({},`Publisher: queue->publishing: ${e.opts.id}, tag: ${e.opts.tag}, attempt: ${i}`),await this.rpcPublish(n_(nN({},e),nx({topic:r,message:s,ttl:n.ttl,prompt:n.prompt,tag:n.tag,id:n.id,attestation:o,tvf:n.tvf}))),this.logger.warn({},`Publisher: queue->published: ${e.opts.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(rD.li.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(sc);return}this.checkQueue()}),this.relayer.on(sl,e=>{this.removeRequestFromQueue(e.id.toString())})}}var nk=Object.defineProperty,nD=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?nk(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};
10class n${constructor(){nD(this,"map",new Map),nD(this,"set",(e,t)=>{let i=this.get(e);this.exists(e,t)||this.map.set(e,[...i,t])}),nD(this,"get",e=>this.map.get(e)||[]),nD(this,"exists",(e,t)=>this.get(e).includes(t)),nD(this,"delete",(e,t)=>{if(typeof t>"u")return void this.map.delete(e);if(!this.map.has(e))return;let i=this.get(e);if(!this.exists(e,t))return;let r=i.filter(e=>e!==t);r.length?this.map.set(e,r):this.map.delete(e)}),nD(this,"clear",()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}}var nU=Object.defineProperty,nL=Object.defineProperties,nM=Object.getOwnPropertyDescriptors,nB=Object.getOwnPropertySymbols,nz=Object.prototype.hasOwnProperty,nH=Object.prototype.propertyIsEnumerable,nV=(e,t,i)=>t in e?nU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,nK=(e,t)=>{for(var i in t||(t={}))nz.call(t,i)&&nV(e,i,t[i]);if(nB)for(var i of nB(t))nH.call(t,i)&&nV(e,i,t[i]);return e},nF=(e,t,i)=>nV(e,"symbol"!=typeof t?t+"":t,i);class nG extends rJ{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,nF(this,"subscriptions",new Map),nF(this,"topicMap",new n$),nF(this,"events",new l.EventEmitter),nF(this,"name","subscription"),nF(this,"version","0.3"),nF(this,"pending",new Map),nF(this,"cached",[]),nF(this,"initialized",!1),nF(this,"storagePrefix",st),nF(this,"subscribeTimeout",(0,u.toMiliseconds)(u.ONE_MINUTE)),nF(this,"initialSubscribeTimeout",(0,u.toMiliseconds)(15*u.ONE_SECOND)),nF(this,"clientId"),nF(this,"batchSubscribeTopicsLimit",500),nF(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),await this.restore()),this.initialized=!0}),nF(this,"subscribe",async(e,t)=>{this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}});try{let i=i5(t),r={topic:e,relay:i,transportType:t?.transportType};this.pending.set(e,r);let s=await this.rpcSubscribe(e,i,t);return"string"==typeof s&&(this.onSubscribe(s,r),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}})),s}catch(e){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(e),e}}),nF(this,"unsubscribe",async(e,t)=>{this.isInitialized(),"u">typeof t?.id?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)}),nF(this,"isSubscribed",e=>new Promise(t=>{t(this.topicMap.topics.includes(e))})),nF(this,"isKnownTopic",e=>new Promise(t=>{t(this.topicMap.topics.includes(e)||this.pending.has(e)||this.cached.some(t=>t.topic===e))})),nF(this,"on",(e,t)=>{this.events.on(e,t)}),nF(this,"once",(e,t)=>{this.events.once(e,t)}),nF(this,"off",(e,t)=>{this.events.off(e,t)}),nF(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),nF(this,"start",async()=>{await this.onConnect()}),nF(this,"stop",async()=>{await this.onDisconnect()}),nF(this,"restart",async()=>{await this.restore(),await this.onRestart()}),nF(this,"checkPending",async()=>{if(0===this.pending.size&&(!this.initialized||!this.relayer.connected))return;let e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e)}),nF(this,"registerEventListeners",()=>{this.relayer.core.heartbeat.on(rD.li.pulse,async()=>{await this.checkPending()}),this.events.on(sv,async e=>{this.logger.info(`Emitting ${sv}`),this.logger.debug({type:"event",event:sv,data:e}),await this.persist()}),this.events.on(sE,async e=>{this.logger.info(`Emitting ${sE}`),this.logger.debug({type:"event",event:sE,data:e}),await this.persist()})}),this.relayer=e,this.logger=(0,rU.U5)(t,this.name),this.clientId=""}get context(){return(0,rU.oI)(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,t){let i=!1;try{i=this.getSubscription(e).topic===t}catch{}return i}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){let i=this.topicMap.get(e);await Promise.all(i.map(async i=>await this.unsubscribeById(e,i,t)))}async unsubscribeById(e,t,i){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:i}});try{let r=i5(i);await this.restartToComplete({topic:e,id:t,relay:r}),await this.rpcUnsubscribe(e,t,r);let s=rm("USER_DISCONNECTED",`${this.name}, ${e}`);
10await this.onUnsubscribe(e,t,s),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:i}})}catch(e){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(e),e}}async rpcSubscribe(e,t,i){var r;i&&i?.transportType!==sm||await this.restartToComplete({topic:e,id:e,relay:t});let s={method:i6(t.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:s});let n=null==(r=i?.internal)?void 0:r.throwOnFailedPublish;try{let t=await this.getSubscriptionId(e);if(i?.transportType===sy)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(s).catch(e=>this.logger.warn(e))},(0,u.toMiliseconds)(u.ONE_SECOND)),t;let r=new Promise(async t=>{let i=r=>{r.topic===e&&(this.events.removeListener(sv,i),t(r.id))};this.events.on(sv,i);try{let r=await F(new Promise((e,t)=>{this.relayer.request(s).catch(e=>{this.logger.warn(e,e?.message),t(e)}).then(e)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(sv,i),t(r)}catch{}}),o=await F(r,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!o&&n)throw Error(`Subscribing to ${e} failed, please try again`);return o?t:null}catch(e){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(sc),n)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t={method:i6(e[0].relay.protocol).batchSubscribe,params:{topics:e.map(e=>e.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:t});try{await await F(new Promise(e=>{this.relayer.request(t).catch(e=>this.logger.warn(e)).then(e)}),this.subscribeTimeout,"rpcBatchSubscribe failed, please try again")}catch{this.relayer.events.emit(sc)}}async rpcBatchFetchMessages(e){let t;if(!e.length)return;let i={method:i6(e[0].relay.protocol).batchFetchMessages,params:{topics:e.map(e=>e.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i});try{t=await await F(new Promise((e,t)=>{this.relayer.request(i).catch(e=>{this.logger.warn(e),t(e)}).then(e)}),this.subscribeTimeout,"rpcBatchFetchMessages failed, please try again")}catch{this.relayer.events.emit(sc)}return t}rpcUnsubscribe(e,t,i){let r={method:i6(i.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r}),this.relayer.request(r)}onSubscribe(e,t){this.setSubscription(e,nL(nK({},t),nM({id:e}))),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,nK({},e)),this.pending.delete(e.topic)})}async onUnsubscribe(e,t,i){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,i),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,nK({},t)),this.topicMap.set(t.topic,e),this.events.emit(sv,t)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});let t=this.subscriptions.get(e);if(!t){let{message:t}=ry("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(t)}return t}deleteSubscription(e,t){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:t});let i=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(i.topic,e),this.events.emit(sE,nL(nK({},i),nM({reason:t})))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit("subscription_sync")}
10async onRestart(){if(this.cached.length){let e=[...this.cached],t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let i=0;i<t;i++){let t=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(t)}}this.events.emit("subscription_resubscribed")}async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size){let{message:e}=ry("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){e.length&&(await this.rpcBatchSubscribe(e),this.onBatchSubscribe(await Promise.all(e.map(async e=>nL(nK({},e),nM({id:await this.getSubscriptionId(e.topic)}))))))}async batchFetchMessages(e){var t;if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);let i=await this.rpcBatchFetchMessages(e);i&&i.messages&&(await (t=(0,u.toMiliseconds)(u.ONE_SECOND),new Promise(e=>setTimeout(e,t))),await this.relayer.handleBatchMessageEvents(i.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}async restartToComplete(e){this.relayer.connected||this.relayer.connecting||(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||(this.clientId=await this.relayer.core.crypto.getClientId()),this.clientId}async getSubscriptionId(e){return iY(e+await this.getClientId())}}var nW=Object.defineProperty,nJ=Object.getOwnPropertySymbols,nY=Object.prototype.hasOwnProperty,nZ=Object.prototype.propertyIsEnumerable,nQ=(e,t,i)=>t in e?nW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,nX=(e,t)=>{for(var i in t||(t={}))nY.call(t,i)&&nQ(e,i,t[i]);if(nJ)for(var i of nJ(t))nZ.call(t,i)&&nQ(e,i,t[i]);return e},n0=(e,t,i)=>nQ(e,"symbol"!=typeof t?t+"":t,i);class n1 extends rG{constructor(e){super(e),n0(this,"protocol","wc"),n0(this,"version",2),n0(this,"core"),n0(this,"logger"),n0(this,"events",new l.EventEmitter),n0(this,"provider"),n0(this,"messages"),n0(this,"subscriber"),n0(this,"publisher"),n0(this,"name","relayer"),n0(this,"transportExplicitlyClosed",!1),n0(this,"initialized",!1),n0(this,"connectionAttemptInProgress",!1),n0(this,"relayUrl"),n0(this,"projectId"),n0(this,"packageName"),n0(this,"bundleId"),n0(this,"hasExperiencedNetworkDisruption",!1),n0(this,"pingTimeout"),n0(this,"heartBeatTimeout",(0,u.toMiliseconds)(u.THIRTY_SECONDS+u.FIVE_SECONDS)),n0(this,"reconnectTimeout"),n0(this,"connectPromise"),n0(this,"reconnectInProgress",!1),n0(this,"requestsInFlight",[]),n0(this,"connectTimeout",(0,u.toMiliseconds)(15*u.ONE_SECOND)),n0(this,"request",async e=>{var t,i;this.logger.debug("Publishing Request Payload");let r=e.id||(0,r6.getBigIntRpcId)().toString();await this.toEstablishConnection();try{this.logger.trace({id:r,method:e.method,topic:null==(t=e.params)?void 0:t.topic},"relayer.request - publishing...");let s=`${r}:${(null==(i=e.params)?void 0:i.tag)||""}`;this.requestsInFlight.push(s);let n=await this.provider.request(e);return this.requestsInFlight=this.requestsInFlight.filter(e=>e!==s),n}catch(e){throw this.logger.debug(`Failed to Publish Request: ${r}`),e}}),n0(this,"resetPingTimeout",()=>{k()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var e,t,i,r;try{this.logger.debug({},"pingTimeout: Connection stalled, terminating..."),null==(r=null==(i=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:i.terminate)||r.call(i)}catch(e){this.logger.warn(e,e?.message)}},this.heartBeatTimeout))}),n0(this,"onPayloadHandler",e=>{this.onProviderPayload(e),this.resetPingTimeout()}),n0(this,"onConnectHandler",()=>{this.logger.warn({},"Relayer connected \uD83D\uDEDC"),this.startPingTimeout(),this.events.emit("relayer_connect")}),n0(this,"onDisconnectHandler",()=>{this.logger.warn({},"Relayer disconnected \uD83D\uDED1"),this.requestsInFlight=[],this.onProviderDisconnect()}),n0(this,"onProviderErrorHandler",e=>{this.logger.fatal(`Fatal socket error: ${e.message}`),this.events.emit("relayer_error",e),this.logger.fatal("Fatal socket error received, closing transport"),this.transportClose()}),n0(this,"registerProviderListeners",()=>{this.provider.on(su,this.onPayloadHandler),this.provider.on(sp,this.onConnectHandler),this.provider.on(sd,this.onDisconnectHandler),this.provider.on(sg,this.onProviderErrorHandler)}),this.core=e.core,this.logger="u">typeof e.logger&&"string"!=typeof e.logger?(0,rU.U5)(e.logger,this.name):(0,rU.h6)((0,rU.iP)({level:e.logger||"error"})),this.messages=new nO(this.logger,e.core),this.subscriber=new nG(this,this.logger),this.publisher=new nq(this,this.logger),this.relayUrl=e?.relayUrl||so,this.projectId=e.projectId,D()&&"u">typeof i.g&&"u">typeof(null==i.g?void 0:i.g.Platform)&&(null==i.g?void 0:i.g.Platform.OS)==="android"?this.packageName=L():D()&&"u">typeof i.g&&"u">typeof(null==i.g?void 0:i.g.Platform)&&(null==i.g?void 0:i.g.Platform.OS)==="ios"&&(this.bundleId=L()),this.provider={}}
10async init(){if(this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.hasAnyTopics)try{await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}}get context(){return(0,rU.oI)(this.logger)}get connected(){var e,t,i;return(null==(i=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:i.readyState)===1}get connecting(){var e,t,i;return(null==(i=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:i.readyState)===0||void 0!==this.connectPromise}async publish(e,t,i){this.isInitialized(),await this.publisher.publish(e,t,i),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:sm},"outbound")}async subscribe(e,t){var i,r,s;this.isInitialized(),null!=t&&t.transportType&&t?.transportType!=="relay"||await this.toEstablishConnection();let n=typeof(null==(i=t?.internal)?void 0:i.throwOnFailedPublish)>"u"||(null==(r=t?.internal)?void 0:r.throwOnFailedPublish),o=(null==(s=this.subscriber.topicMap.get(e))?void 0:s[0])||"",a,l=t=>{t.topic===e&&(this.subscriber.off(sv,l),a())};return await Promise.all([new Promise(e=>{a=e,this.subscriber.on(sv,l)}),new Promise(async(i,r)=>{o=await this.subscriber.subscribe(e,nX({internal:{throwOnFailedPublish:n}},t)).catch(e=>{n&&r(e)})||o,i()})]),o}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await F(this.provider.disconnect(),2e3,"provider.disconnect()").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){if(!this.subscriber.hasAnyTopics)return void this.logger.warn("Starting WS connection skipped because the client has no topics to work with.");if(this.connectPromise?(this.logger.debug({},"Waiting for existing connection attempt to resolve..."),await this.connectPromise,this.logger.debug({},"Existing connection attempt resolved")):(this.connectPromise=new Promise(async(t,i)=>{await this.connect(e).then(t).catch(i).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},"Restarting transport..."),this.connectionAttemptInProgress||(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await rN())throw Error("No internet connection detected. Please restart your network and try again.")}async handleBatchMessageEvents(e){if(e?.length===0)return void this.logger.trace("Batch message events is empty. Ignoring...");let t=e.sort((e,t)=>e.publishedAt-t.publishedAt);for(let e of(this.logger.debug(`Batch of ${t.length} message events sorted`),t))try{await this.onMessageEvent(e)}catch(e){this.logger.warn(e,"Error while processing batch message event: "+e?.message)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){let{topic:i}=e;if(!t.sessionExists){let e=J(u.FIVE_MINUTES);await this.core.pairing.pairings.set(i,{topic:i,expiry:e,relay:{protocol:"irn"},active:!1})}this.events.emit(sa,e),await this.recordMessageEvent(e,sb)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;let t=1;for(;t<6;){try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${t}...`),await this.createProvider(),await new Promise(async(e,t)=>{let i=()=>{t(Error("Connection interrupted while trying to subscribe"))};this.provider.once(sd,i),await F(new Promise((e,t)=>
10{this.provider.connect().then(e).catch(t)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(e=>{t(e)}).finally(()=>{this.provider.off(sd,i),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,t)=>{let i=()=>{t(Error("Connection interrupted while trying to subscribe"))};this.provider.once(sd,i),await this.subscriber.start().then(e).catch(t).finally(()=>{this.provider.off(sd,i)})}),this.hasExperiencedNetworkDisruption=!1,e()})}catch(e){await this.subscriber.stop(),this.logger.warn({},e.message),this.hasExperiencedNetworkDisruption=!0}finally{this.connectionAttemptInProgress=!1}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${t}`);break}await new Promise(e=>setTimeout(e,(0,u.toMiliseconds)(+t))),t++}}startPingTimeout(){var e,t,i,r,s;if(k())try{null!=(t=null==(e=this.provider)?void 0:e.connection)&&t.socket&&(null==(s=null==(r=null==(i=this.provider)?void 0:i.connection)?void 0:r.socket)||s.on("ping",()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();let e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new r5.F(new r4.A(function({protocol:e,version:t,relayUrl:i,sdkVersion:r,auth:s,projectId:n,useOnCloseEvent:o,bundleId:a,packageName:l}){let c=i.split("?"),h=B(e,t,r),u=function(e,t){let i=new URLSearchParams(e);for(let e of Object.keys(t).sort())if(t.hasOwnProperty(e)){let r=t[e];void 0!==r&&i.set(e,r)}return i.toString()}(c[1]||"",{auth:s,ua:h,projectId:n,useOnCloseEvent:o||void 0,packageName:l||void 0,bundleId:a||void 0});return c[0]+"?"+u}({sdkVersion:sf,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,t){let{topic:i,message:r}=e;await this.messages.set(i,r,t)}async shouldIgnoreMessageEvent(e){let{topic:t,message:i}=e;if(!i||0===i.length)return this.logger.warn(`Ignoring invalid/empty message: ${i}`),!0;if(!await this.subscriber.isKnownTopic(t))return this.logger.warn(`Ignoring message for unknown topic ${t}`),!0;let r=this.messages.has(t,i);return r&&this.logger.warn(`Ignoring duplicate message: ${i}`),r}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),(0,r6.isJsonRpcRequest)(e)){if(!e.method.endsWith("_subscription"))return;let t=e.params,{topic:i,message:r,publishedAt:s,attestation:n}=t.data,o={topic:i,message:r,publishedAt:s,transportType:sm,attestation:n};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(nX({type:"event",event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else(0,r6.isJsonRpcResponse)(e)&&this.events.emit(sl,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,sb),this.events.emit(sa,e))}async acknowledgePayload(e){let t=(0,r6.formatJsonRpcResult)(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(su,this.onPayloadHandler),this.provider.off(sp,this.onConnectHandler),this.provider.off(sd,this.onDisconnectHandler),this.provider.off(sg,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await rN();(function(e){var t,r;switch(U()){case q:t=e,!D()&&$()&&(window.addEventListener("online",()=>t(!0)),window.addEventListener("offline",()=>t(!1)));break;case N:r=e,D()&&"u">typeof i.g&&null!=i.g&&i.g.NetInfo&&i.g?.NetInfo.addEventListener(e=>r(e?.isConnected))}})(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(e=>this.logger.error(e,e?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(rD.li.pulse,async()=>{var e;if(!this.transportExplicitlyClosed&&!this.connected&&(!($()&&(0,p.getDocument)())||(null==(e=(0,p.getDocument)())?void 0:e.visibilityState)==="visible"))try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit("relayer_disconnect"),this.connectionAttemptInProgress=!1,!this.reconnectInProgress&&(this.reconnectInProgress=!0,await this.subscriber.stop(),this.subscriber.hasAnyTopics&&(this.transportExplicitlyClosed||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},(0,u.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise)return void await this.connectPromise;await this.connect()}}}function n2(){}function n8(e){if(!e||"object"!=typeof e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}function n3(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}
10function n5(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let n6="[object Arguments]",n4="[object Object]";var n9=Object.defineProperty,n7=Object.getOwnPropertySymbols,oe=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,oi=(e,t,i)=>t in e?n9(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,or=(e,t)=>{for(var i in t||(t={}))oe.call(t,i)&&oi(e,i,t[i]);if(n7)for(var i of n7(t))ot.call(t,i)&&oi(e,i,t[i]);return e},os=(e,t,i)=>oi(e,"symbol"!=typeof t?t+"":t,i);class on extends rW{constructor(e,t,i,r=st,s){super(e,t,i,r),this.core=e,this.logger=t,this.name=i,os(this,"map",new Map),os(this,"version","0.3"),os(this,"cached",[]),os(this,"initialized",!1),os(this,"getKey"),os(this,"storagePrefix",st),os(this,"recentlyDeleted",[]),os(this,"recentlyDeletedLimit",200),os(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(e=>{var t;this.getKey&&null!==e&&!rv(e)?this.map.set(this.getKey(e),e):(null==(t=e?.proposer)?void 0:t.publicKey)?this.map.set(e.id,e):e?.topic&&this.map.set(e.topic,e)}),this.cached=[],this.initialized=!0)}),os(this,"set",async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:e,value:t}),this.map.set(e,t),await this.persist())}),os(this,"get",e=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:e}),this.getData(e))),os(this,"getAll",e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(i=>{var r;return r=t[i],function e(t,i,r,s,n,o,a){let l=a(t,i,r,s,n,o);if(void 0!==l)return l;if(typeof t==typeof i)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return t===i;case"number":return t===i||Object.is(t,i)}return function t(i,r,s,n){if(Object.is(i,r))return!0;let o=n5(i),a=n5(r);if(o===n6&&(o=n4),a===n6&&(a=n4),o!==a)return!1;switch(o){case"[object String]":return i.toString()===r.toString();case"[object Number]":{let e=i.valueOf(),t=r.valueOf();return e===t||Number.isNaN(e)&&Number.isNaN(t)}case"[object Boolean]":case"[object Date]":case"[object Symbol]":return Object.is(i.valueOf(),r.valueOf());case"[object RegExp]":return i.source===r.source&&i.flags===r.flags;case"[object Function]":return i===r}let l=(s=s??new Map).get(i),c=s.get(r);if(null!=l&&null!=c)return l===r;s.set(i,r),s.set(r,i);try{switch(o){case"[object Map]":if(i.size!==r.size)return!1;for(let[t,o]of i.entries())if(!r.has(t)||!e(o,r.get(t),t,i,r,s,n))return!1;return!0;case"[object Set]":{if(i.size!==r.size)return!1;let t=Array.from(i.values()),o=Array.from(r.values());for(let a=0;a<t.length;a++){let l=t[a],c=o.findIndex(t=>e(l,t,void 0,i,r,s,n));if(-1===c)return!1;o.splice(c,1)}return!0}case"[object Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":case"[object BigUint64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object BigInt64Array]":case"[object Float32Array]":case"[object Float64Array]":if("u">typeof r9&&r9.isBuffer(i)!==r9.isBuffer(r)||i.length!==r.length)return!1;for(let t=0;t<i.length;t++)if(!e(i[t],r[t],t,i,r,s,n))return!1;return!0;case"[object ArrayBuffer]":return i.byteLength===r.byteLength&&t(new Uint8Array(i),new Uint8Array(r),s,n);case"[object DataView]":return i.byteLength===r.byteLength&&i.byteOffset===r.byteOffset&&t(new Uint8Array(i),new Uint8Array(r),s,n);case"[object Error]":return i.name===r.name&&i.message===r.message;case n4:{if(!(t(i.constructor,r.constructor,s,n)||n8(i)&&n8(r)))return!1;let o=[...Object.keys(i),...n3(i)],a=[...Object.keys(r),...n3(r)];if(o.length!==a.length)return!1;for(let t=0;t<o.length;t++){let a=o[t],l=i[a];if(!Object.hasOwn(r,a))return!1;let c=r[a];if(!e(l,c,a,i,r,s,n))return!1}return!0}default:return!1}}finally{s.delete(i),s.delete(r)}}(t,i,o,a)}(r,e[i],void 0,void 0,void 0,void 0,n2)})):this.values)),os(this,"update",async(e,t)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:e,update:t});let i=or(or({},this.getData(e)),t);this.map.set(e,i),await this.persist()}),os(this,"delete",async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",ke
10y:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())}),this.logger=(0,rU.U5)(t,this.name),this.storagePrefix=r,this.getKey=s}get context(){return(0,rU.oI)(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){let t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){let{message:t}=ry("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=ry("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(t),Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{let e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){let{message:e}=ry("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}}var oo=Object.defineProperty,oa=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?oo(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class ol{constructor(e,t){this.core=e,this.logger=t,oa(this,"name","pairing"),oa(this,"version","0.3"),oa(this,"events",new(c())),oa(this,"pairings"),oa(this,"initialized",!1),oa(this,"storagePrefix",st),oa(this,"ignoredPayloadTypes",[1]),oa(this,"registeredMethods",[]),oa(this,"init",async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))}),oa(this,"register",({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]}),oa(this,"create",async e=>{this.isInitialized();let t=iW(),i=await this.core.crypto.setSymKey(t),r=J(u.FIVE_MINUTES),s={protocol:"irn"},n={topic:i,expiry:r,relay:s,active:!1,methods:e?.methods},o=i9({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:t,relay:s,expiryTimestamp:r,methods:e?.methods});return this.events.emit(sP,n),this.core.expirer.set(i,r),await this.pairings.set(i,n),await this.core.relayer.subscribe(i,{transportType:e?.transportType}),{topic:i,uri:o}}),oa(this,"pair",async e=>{let t;this.isInitialized();let i=this.core.eventClient.createEvent({properties:{topic:e?.uri,trace:["pairing_started"]}});this.isValidPair(e,i);let{topic:r,symKey:s,relay:n,expiryTimestamp:o,methods:a}=i4(e.uri);if(i.props.properties.topic=r,i.addTrace("pairing_uri_validation_success"),i.addTrace("pairing_uri_not_expired"),this.pairings.keys.includes(r)){if(t=this.pairings.get(r),i.addTrace("existing_pairing"),t.active)throw i.setError("active_pairing_already_exists"),Error(`Pairing already exists: ${r}. Please try again with a new connection URI.`);i.addTrace("pairing_not_expired")}let l=o||J(u.FIVE_MINUTES),c={topic:r,relay:n,expiry:l,active:!1,methods:a};this.core.expirer.set(r,l),await this.pairings.set(r,c),i.addTrace("store_new_pairing"),e.activatePairing&&await this.activate({topic:r}),this.events.emit(sP,c),i.addTrace("emit_inactive_pairing"),this.core.crypto.keychain.has(r)||await this.core.crypto.setSymKey(s,r),i.addTrace("subscribing_pairing_topic");try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{i.setError("no_internet_connection")}try{await this.core.relayer.subscribe(r,{relay:n})}catch(e){throw i.setError("subscribe_pairing_topic_failure"),e}return i.addTrace("subscribe_pairing_topic_success"),c}),oa(this,"activate",async({topic:e})=>{this.isInitialized();let t=J(u.FIVE_MINUTES);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})}),oa(this,"ping",async e=>{this.isInitialized(),await this.isValidPing(e),this.logger.warn("ping() is deprecated and will be removed in the next major release.");let{topic:t}=e;if(this.pairings.keys.includes(t)){let e=await this.sendRequest(t,"wc_pairingPing",{}),{done:i,resolve:r,reject:s}=K();this.events.once(Z("pairing_ping",e),({error:e})=>{e?s(e):r()}),await i()}}),oa(this,"updateExpiry",async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})}),oa(this,"updateMetadata",async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})}),oa(this,"getPairings",()=>(this.isInitialized(),this.pairings.values)),oa(this,"disconnect",async e=>{this.isInitialized(),await this.isValidDisconnect(e);let{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,"wc_pairingDelete",rm("USER_DISCONNECTED")),await this.deletePairing(t))}),oa(this,"formatUriFromPairing",e=>{this.isInitialized();let{topic:t,relay:i,expiry:r,methods:s}=e,n=this.core.crypto.keychain.get(t);return i9({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:n,relay:i,expiryTimestamp:r,methods:s})}),oa(this,"sendRequest",async(e,t,i)=>{let r=(0,r6.formatJsonRpcRequest)(t,i),s=await this.core.crypto.encode(e,r),n=sI[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,s,n),r.id}),oa(this,"sendResult",async(e,t,i)=>{let r=(0,r6.formatJsonRpcResult)(e,i),s=await this.core.crypto.encode(t,r),n=sI[(await this.core.history.get(t,e)).request.method].res;await this.core.relayer.publish(t,s,n),await this.core.history.resolve(r)}),oa(this,"sendError",async(e,t,i)=>{let r=(0,r6.formatJsonRpcError)(e,i),s=await this.core.crypto.encode(t,r),n=(await this.core.history.get(t,e)).request.method,o=sI[n]?sI[n].res:sI.unregistered_method.res;await this.core.relayer.publish(t,s,o),await this.core.history.resolve(r)}),oa(this,"deletePairing",async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,rm("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])}),oa(this,"cleanup",async()=>{let e=this.pairings.getAll().filter(e=>Y(e.expiry));await Promise.all(e.map(e=>this.deletePairing(e.topic)))}),oa(this,"onRelayEventRequest",async e=>{let{topic:t,payload:i}=e;switch(i.method){case"wc_pairingPing":return await this.onPairingPingRequest(t,i);case"wc_pairingDelete":return await this.onPairingDeleteRequest(t,i);default:return await this.onUnknownRpcMethodRequest(t,i)}}),oa(this,"onRelayEventResponse",async e=>{let{topic:t,payload:i}=e,r=(await this.core.history.get(t,i.id)).request.method;return"wc_pairingPing"===r?this.onPairingPingResponse(t,i):this.onUnknownRpcMethodResponse(r)}),oa(this,"onPairingPingRequest",async(e,t)=>{let{id:i}=t;try{this.isValidPing({topic:e}),await this.sendResult(i,e,!0),this.events.emit("pairing_ping",{id:i,topic:e})}catch(t){await this.sendError(i,e,t),this.logger.error(t)}}),oa(this,"onPairingPingResponse",(e,t)=>{let{id:i}=t;setTimeout(()=>{(0,r6.isJsonRpcResult)(t)?this.events.emit(Z("pairing_ping",i),{}):(0,r6.isJsonRpcError)(t)&&this.events.emit(Z("pairing_ping",i),{error:t.error})},500)}),oa(this,"onPairingDeleteRequest",async(e,t)=>{let{id:i}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(sO,{id:i,topic:e})}catch(t){await this.sendError(i,e,t),this.logger.error(t)}}),oa(this,"onUnknownRpcMethodRequest",async(e,t)=>{let{id:i,method:r}=t;try{if(this.registeredMethods.includes(r))return;let t=rm("WC_METHOD_UNSUPPORTED",r);await this.sendError(i,e,t),this.logger.error(t)}catch(t){await this.sendError(i,e,t),this.logger.error(t)}}),oa(this,"onUnknownRpcMethodResponse",e=>{this.registeredMethods.includes(e)||this.logger.error(rm("WC_METHOD_UNSUPPORTED",e))}),oa(this,"isValidPair",(e,t)=>{var i;if(!rA(e)){let{message:i}=ry("MISSING_OR_INVALID",`pair() params: ${e}`);throw t.setError(sq),Error(i)}if(!function(e){function t(e){try{return"u">typeof new URL(e)}catch{return!1}}try{if(rE(e,!1)){if(t(e))return!0;let i=es(e);return t(i)}}catch{}return!1}(e.uri)){let{message:i}=ry("MISSING_OR_INVALID",`pair() uri: ${e.uri}`);throw t.setError(sq),Error(i)}let r=i4(e?.uri);if(!(null!=(i=r?.relay)&&i.protocol)){let{message:e}=ry("MISSING_OR_INVALID","pair() uri#relay-protocol");throw t.setError(sq),Error(e)}if(!(null!=r&&r.symKey)){let{message:e}=ry("MISSING_OR_INVALID","pair() uri#symKey");throw t.setError(sq),Error(e)}if(null!=r&&r.expiryTimestamp&&(0,u.toMiliseconds)(r?.expiryTimestamp)<Date.now()){t.setError("pairing_expired");let{message:e}=ry("EXPIRED","pair() URI has expired. Please try again with a new connection URI.");throw Error(e)}}),oa(this,"isValidPing",async e=>{if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),oa(this,"isValidDisconnect",async e=>{if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),oa(this,"isValidPairingTopic",async e=>{if(!rE(e,!1)){let{message:t}=ry("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=ry("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Y(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=ry("EXPIRED",`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=(0,rU.U5)(t,this.name),this.pairings=new on(this.core,this.logger,this.name,this.storagePrefix)}get context(){return(0,rU.oI)(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(sa,async e=>{let{topic:t,message:i,transportType:r}=e;if(this.pairings.keys.includes(t)&&r!==sy&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(i)))try{let e=await this.core.crypto.decode(t,i);(0,r6.isJsonRpcRequest)(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):(0,r6.isJsonRpcResponse)(e)&&(await this.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e}),this.core.history.delete(t,e.id)),await this.core.relayer.messages.ack(t,i)}catch(e){this.logger.error(e)}})}registerExpirerEvents(){this.core.expirer.on(sC,async e=>{let{topic:t}=W(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit("pairing_expire",{topic:t}))})}}var oc=Object.defineProperty,oh=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?oc(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class ou extends rV{constructor(e,t){super(e,t),this.core=e,this.logger=t,oh(this,"records",new Map),oh(this,"events",new l.EventEmitter),oh(this,"name","history"),oh(this,"version","0.3"),oh(this,"cac
10hed",[]),oh(this,"initialized",!1),oh(this,"storagePrefix",st),oh(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(e=>this.records.set(e.id,e)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),oh(this,"set",(e,t,i)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:e,request:t,chainId:i}),this.records.has(t.id))return;let r={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:i,expiry:J(u.THIRTY_DAYS)};this.records.set(r.id,r),this.persist(),this.events.emit(sS,r)}),oh(this,"resolve",async e=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:e}),!this.records.has(e.id))return;let t=await this.getRecord(e.id);typeof t.response>"u"&&(t.response=(0,r6.isJsonRpcError)(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(s_,t))}),oh(this,"get",async(e,t)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:e,id:t}),await this.getRecord(t))),oh(this,"delete",(e,t)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:t}),this.values.forEach(i=>{i.topic===e&&("u">typeof t&&i.id!==t||(this.records.delete(i.id),this.events.emit(sx,i)))}),this.persist()}),oh(this,"exists",async(e,t)=>(this.isInitialized(),!!this.records.has(t)&&(await this.getRecord(t)).topic===e)),oh(this,"on",(e,t)=>{this.events.on(e,t)}),oh(this,"once",(e,t)=>{this.events.once(e,t)}),oh(this,"off",(e,t)=>{this.events.off(e,t)}),oh(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.logger=(0,rU.U5)(t,this.name)}get context(){return(0,rU.oI)(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){let e=[];return this.values.forEach(t=>{if("u">typeof t.response)return;let i={topic:t.topic,request:(0,r6.formatJsonRpcRequest)(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(i)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();let t=this.records.get(e);if(!t){let{message:t}=ry("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit("history_sync")}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){let{message:e}=ry("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(sS,e=>{this.logger.info(`Emitting ${sS}`),this.logger.debug({type:"event",event:sS,record:e})}),this.events.on(s_,e=>{this.logger.info(`Emitting ${s_}`),this.logger.debug({type:"event",event:s_,record:e})}),this.events.on(sx,e=>{this.logger.info(`Emitting ${sx}`),this.logger.debug({type:"event",event:sx,record:e})}),this.core.heartbeat.on(rD.li.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,u.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(sx,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}}var op=Object.defineProperty,od=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?op(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class og extends rY{constructor(e,t){super(e,t),this.core=e,this.logger=t,od(this,"expirations",new Map),od(this,"events",new l.EventEmitter),od(this,"name","expirer"),od(this,"version","0.3"),od(this,"cac
10hed",[]),od(this,"initialized",!1),od(this,"storagePrefix",st),od(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(e=>this.expirations.set(e.target,e)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),od(this,"has",e=>{try{let t=this.formatTarget(e);return"u">typeof this.getExpiration(t)}catch{return!1}}),od(this,"set",(e,t)=>{this.isInitialized();let i=this.formatTarget(e),r={target:i,expiry:t};this.expirations.set(i,r),this.checkExpiry(i,r),this.events.emit(sA,{target:i,expiration:r})}),od(this,"get",e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),od(this,"del",e=>{if(this.isInitialized(),this.has(e)){let t=this.formatTarget(e),i=this.getExpiration(t);this.expirations.delete(t),this.events.emit(sR,{target:t,expiration:i})}}),od(this,"on",(e,t)=>{this.events.on(e,t)}),od(this,"once",(e,t)=>{this.events.once(e,t)}),od(this,"off",(e,t)=>{this.events.off(e,t)}),od(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.logger=(0,rU.U5)(t,this.name)}get context(){return(0,rU.oI)(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if("string"==typeof e)return G("topic",e);if("number"==typeof e)return G("id",e);let{message:t}=ry("UNKNOWN_TYPE",`Target type: ${typeof e}`);throw Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit("expirer_sync")}async restore(){try{let e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){let{message:e}=ry("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){let t=this.expirations.get(e);if(!t){let{message:t}=ry("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:i}=t;(0,u.toMiliseconds)(i)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(sC,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(rD.li.pulse,()=>this.checkExpirations()),this.events.on(sA,e=>{this.logger.info(`Emitting ${sA}`),this.logger.debug({type:"event",event:sA,data:e}),this.persist()}),this.events.on(sC,e=>{this.logger.info(`Emitting ${sC}`),this.logger.debug({type:"event",event:sC,data:e}),this.persist()}),this.events.on(sR,e=>{this.logger.info(`Emitting ${sR}`),this.logger.debug({type:"event",event:sR,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}}var of=Object.defineProperty,oy=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?of(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class om extends rZ{constructor(e,t,i){super(e,t,i),this.core=e,this.logger=t,this.store=i,oy(this,"name","verify-api"),oy(this,"abortController"),oy(this,"isDevEnv"),oy(this,"verifyUrlV3",sN),oy(this,"storagePrefix",st),oy(this,"version",2),oy(this,"publicKey"),oy(this,"fetchPromise"),oy(this,"init",async()=>{var e;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,u.toMiliseconds)(null==(e=this.publicKey)?void 0:e.expiresAt)<Date.now()&&(this.logger.debug("verify v2 public key expired"),await this.removePublicKey()))}),oy(this,"register",async e=>{if(!$()||this.isDevEnv)return;let t=window.location.origin,{id:i,decryptedId:r}=e,s=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${t}&id=${i}&decryptedId=${r}`;try{let e=(0,p.getDocument)(),t=this.startAbortTimer(5*u.ONE_SECOND),r=await new Promise((r,n)=>{let o=()=>{window.removeEventListener("message",l),e.body.removeChild(a),n("attestation aborted")};this.abortController.signal.addEventListener("abort",o);let a=e.createElement("iframe");a.src=s,a.style.display="none",a.addEventListener("error",o,{signal:this.abortController.signal});let l=s=>{if(s.data&&"string"==typeof s.data)try{let n=JSON.parse(s.data);if("verify_attestation"===n.type){if((0,y.Cq)(n.attestation).payload.id!==i)return;clearInterval(t),e.body.removeChild(a),this.abortController.signal.removeEventListener("abort",o),window.removeEventListener("message",l),r(null===n.attestation?"":n.attestation)}}catch(e){this.logger.warn(e)}};e.body.appendChild(a),window.addEventListener("message",l,{signal:this.abortController.signal})});return this.logger.debug("jwt attestation",r),r}catch(e){this.logger.warn(e)}return""}),oy(this,"resolve",async e=>{if(this.isDevEnv)return"";let{attestationId:t,hash:i,encryptedId:r}=e;if(""===t)return void this.logger.debug("resolve: attestationId is empty, skipping");if(t){if((0,y.Cq)(t).payload.id!==r)return;let e=await this.isValidJwtAttestation(t);
10if(e)return e.isVerified?e:void this.logger.warn("resolve: jwt attestation: origin url not verified")}if(!i)return;let s=this.getVerifyUrl(e?.verifyUrl);return this.fetchAttestation(i,s)}),oy(this,"fetchAttestation",async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let i=this.startAbortTimer(5*u.ONE_SECOND),r=await fetch(`${t}/attestation/${e}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(i),200===r.status?await r.json():void 0}),oy(this,"getVerifyUrl",e=>{let t=e||sT;return sj.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: ${sT}`),t=sT),t}),oy(this,"fetchPublicKey",async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(u.FIVE_SECONDS),t=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(e),await t.json()}catch(e){this.logger.warn(e)}}),oy(this,"persistPublicKey",async e=>{this.logger.debug("persisting public key to local storage",e),await this.store.setItem(this.storeKey,e),this.publicKey=e}),oy(this,"removePublicKey",async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),oy(this,"isValidJwtAttestation",async e=>{let t=await this.getPublicKey();try{if(t)return this.validateAttestation(e,t)}catch(e){this.logger.error(e),this.logger.warn("error validating attestation")}let i=await this.fetchAndPersistPublicKey();try{if(i)return this.validateAttestation(e,i)}catch(e){this.logger.error(e),this.logger.warn("error validating attestation")}}),oy(this,"getPublicKey",async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),oy(this,"fetchAndPersistPublicKey",async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async e=>{let t=await this.fetchPublicKey();t&&(await this.persistPublicKey(t),e(t))});let e=await this.fetchPromise;return this.fetchPromise=void 0,e}),oy(this,"validateAttestation",(e,t)=>{let i=function(e,t){let i,r,[s,n,o]=e.split("."),a=v.from(i0(o),"base64");if(64!==a.length)throw Error("Invalid signature length");let l=a.slice(0,32),c=a.slice(32,64),h=tN(`${s}.${n}`),u=(i=v.from(t.x,"base64"),r=v.from(t.y,"base64"),(0,m.xW)([new Uint8Array([4]),i,r]));if(!iz.verify((0,m.xW)([l,c]),h,u))throw Error("Invalid signature");return(0,y.Cq)(e).payload}(e,t.publicKey),r={hasExpired:(0,u.toMiliseconds)(i.exp)<Date.now(),payload:i};if(r.hasExpired)throw this.logger.warn("resolve: jwt attestation expired"),Error("JWT attestation expired");return{origin:r.payload.origin,isScam:r.payload.isScam,isVerified:r.payload.isVerified}}),this.logger=(0,rU.U5)(t,this.name),this.abortController=new AbortController,this.isDevEnv=er(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//verify:public:key"}get context(){return(0,rU.oI)(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,u.toMiliseconds)(e))}}var ob=Object.defineProperty,ow=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?ob(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class ov extends rQ{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,ow(this,"context","echo"),ow(this,"registerDeviceToken",async e=>{let{clientId:t,token:i,notificationType:r,enableEncrypted:s=!1}=e,n=`https://echo.walletconnect.com/${this.projectId}/clients`;await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:t,type:r,token:i,always_raw:s})})}),this.logger=(0,rU.U5)(t,this.context)}}var oE=Object.defineProperty,oI=Object.getOwnPropertySymbols,oP=Object.prototype.hasOwnProperty,oO=Object.prototype.propertyIsEnumerable,oS=(e,t,i)=>t in e?oE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,o_=(e,t)=>{for(var i in t||(t={}))oP.call(t,i)&&oS(e,i,t[i]);if(oI)for(var i of oI(t))oO.call(t,i)&&oS(e,i,t[i]);return e},ox=(e,t,i)=>oS(e,"symbol"!=typeof t?t+"":t,i);class oA extends rX{constructor(e,t,i=!0){super(e,t,i),this.core=e,this.logger=t,ox(this,"context","event-client"),ox(this,"storagePrefix",st),ox(this,"storageVersion",.1),ox(this,"events",new Map),ox(this,"shouldPersist",!1),ox(this,"init",async()=>
10{if(!er())try{let e={eventId:ei(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:B(this.core.relayer.protocol,this.core.relayer.version,sf)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),ox(this,"createEvent",e=>{let{event:t="ERROR",type:i="",properties:{topic:r,trace:s}}=e,n=ei(),o=this.core.projectId||"",a=o_({eventId:n,timestamp:Date.now(),props:{event:t,type:i,properties:{topic:r,trace:s}},bundleId:o,domain:this.getAppDomain()},this.setMethods(n));return this.telemetryEnabled&&(this.events.set(n,a),this.shouldPersist=!0),a}),ox(this,"getEvent",e=>{let{eventId:t,topic:i}=e;if(t)return this.events.get(t);let r=Array.from(this.events.values()).find(e=>e.props.properties.topic===i);if(r)return o_(o_({},r),this.setMethods(r.eventId))}),ox(this,"deleteEvent",e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),ox(this,"setEventListeners",()=>{this.core.heartbeat.on(rD.li.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,u.fromMiliseconds)(Date.now())-(0,u.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),ox(this,"setMethods",e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),ox(this,"addTrace",(e,t)=>{let i=this.events.get(e);i&&(i.props.properties.trace.push(t),this.events.set(e,i),this.shouldPersist=!0)}),ox(this,"setError",(e,t)=>{let i=this.events.get(e);i&&(i.props.type=t,i.timestamp=Date.now(),this.events.set(e,i),this.shouldPersist=!0)}),ox(this,"persist",async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),ox(this,"restore",async()=>{try{let e=await this.core.storage.getItem(this.storageKey)||[];if(!e.length)return;e.forEach(e=>{this.events.set(e.eventId,o_(o_({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),ox(this,"submit",async()=>{if(!this.telemetryEnabled||0===this.events.size)return;let e=[];for(let[t,i]of this.events)i.props.type&&e.push(i);if(0!==e.length)try{if((await this.sendEvent(e)).ok)for(let t of e)this.events.delete(t.eventId),this.shouldPersist=!0}catch(e){this.logger.warn(e)}}),ox(this,"sendEvent",async e=>{let t=this.getAppDomain()?"":"&sp=desktop";return await fetch(`https://pulse.walletconnect.org/batch?projectId=${this.core.projectId}&st=events_sdk&sv=js-${sf}${t}`,{method:"POST",body:JSON.stringify(e)})}),ox(this,"getAppDomain",()=>M().url),this.logger=(0,rU.U5)(t,this.context),this.telemetryEnabled=i,i?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+"//"+this.context}}var oR=Object.defineProperty,oC=Object.getOwnPropertySymbols,oT=Object.prototype.hasOwnProperty,oN=Object.prototype.propertyIsEnumerable,oj=(e,t,i)=>t in e?oR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,oq=(e,t)=>{for(var i in t||(t={}))oT.call(t,i)&&oj(e,i,t[i]);if(oC)for(var i of oC(t))oN.call(t,i)&&oj(e,i,t[i]);return e},ok=(e,t,i)=>oj(e,"symbol"!=typeof t?t+"":t,i);class oD extends rz{constructor(e){var t;super(e),ok(this,"protocol","wc"),ok(this,"version",2),ok(this,"name",se),ok(this,"relayUrl"),ok(this,"projectId"),ok(this,"customStoragePrefix"),ok(this,"events",new l.EventEmitter),ok(this,"logger"),ok(this,"heartbeat"),ok(this,"relayer"),ok(this,"crypto"),ok(this,"storage"),ok(this,"history"),ok(this,"expirer"),ok(this,"pairing"),ok(this,"verify"),ok(this,"echoClient"),ok(this,"linkModeSupportedApps"),ok(this,"eventClient"),ok(this,"initialized",!1),ok(this,"logChunkController"),ok(this,"on",(e,t)=>this.events.on(e,t)),ok(this,"once",(e,t)=>this.events.once(e,t)),ok(this,"off",(e,t)=>this.events.off(e,t)),ok(this,"removeListener",(e,t)=>this.events.removeListener(e,t)),ok(this,"dispatchEnvelope",({topic:e,message:t,sessionExists:i})=>{if(!e||!t)return;let r={topic:e,message:t,publishedAt:Date.now(),transportType:sy};this.relayer.onLinkMessageEvent(r,{sessionExists:i})});const i=this.getGlobalCore(e?.customStoragePrefix);if(i)try{return this.customStoragePrefix=i.customStoragePrefix,this.logger=i.logger,this.heartbeat=i.heartbeat,this.crypto=i.crypto,this.history=i.history,this.expirer=i.expirer,this.storage=i.storage,this.relayer=i.relayer,this.pairing=i.pairing,this.verify=i.verify,this.echoClient=i.echoClient,this.linkModeSupportedApps=i.linkModeSupportedApps,this.eventClient=i.eventClient,this.initialized=i.initialized,this.logChunkController=i.logChunkController,i}catch(e){console.warn("Failed to copy global core",e)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||so,this.customStoragePrefix=null!=e&&e.customStoragePrefix?`:${e.customStoragePrefix}`:"";const r=(0,rU.iP)({level:"string"==typeof e?.logger&&e.logger?e.logger:"error",name:se}),{logger:s,chunkLoggerController:n}=(0,rU.D5)({opts:r,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=n,null!=(t=this.logChunkController)&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var e,t;null!=(e=this.logChunkController)&&e.downloadLogsBlobInBrowser&&(null==(t=this.logChunkController)||t.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=(0,rU.U5)(s,this.name),this.heartbeat=new rD.VH,this.crypto=new nf(this,this.logger,e?.keychain),this.history=new ou(this,this.logger),this.expirer=new og(this,this.logger),this.storage=null!=e&&e.storage?e.storage:new r$.A(oq(oq({},si),e?.storageOptions)),this.relayer=new n1({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new ol(this,this.logger),this.verify=new om(this,this.logger,this.storage),this.echoClient=new ov(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new oA(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){let t=new oD(e);await t.initialize();let i=await t.crypto.getClientId();return await t.storage.setItem("WALLETCONNECT_CLIENT_ID",i),t}get context(){return(0,rU.oI)(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return null==(e=this.logChunkController)?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(sw,this.linkModeSupportedApps))}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(
10),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(sw)||[],this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}getGlobalCore(e=""){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e}`,i=`${t}_count`;return globalThis[i]=(globalThis[i]||0)+1,globalThis[i]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[i]} times.`),globalThis[t]}catch(e){console.warn("Failed to get global WalletConnect core",e);return}}setGlobalCore(e){var t;try{if(this.isGlobalCoreDisabled())return;let i=`_walletConnectCore_${(null==(t=e.opts)?void 0:t.customStoragePrefix)||""}`;globalThis[i]=e}catch(e){console.warn("Failed to set global WalletConnect core",e)}}isGlobalCoreDisabled(){try{return"u">typeof r7&&"true"===r7.env.DISABLE_GLOBAL_CORE}catch{return!0}}}let o$="client",oU=`wc@2:${o$}:`,oL="WALLETCONNECT_DEEPLINK_CHOICE",oM="Proposal expired",oB=u.SEVEN_DAYS,oz={wc_sessionPropose:{req:{ttl:u.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:u.ONE_DAY,prompt:!1,tag:1104},res:{ttl:u.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:u.ONE_DAY,prompt:!1,tag:1106},res:{ttl:u.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:u.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:u.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:u.ONE_DAY,prompt:!1,tag:1112},res:{ttl:u.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:u.ONE_DAY,prompt:!1,tag:1114},res:{ttl:u.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:u.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:u.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:u.FIVE_MINUTES,prompt:!1,tag:1119}}},oH={min:u.FIVE_MINUTES,max:u.SEVEN_DAYS},oV="IDLE",oK="ACTIVE",oF={eth_sendTransaction:{key:""},eth_sendRawTransaction:{key:""},wallet_sendCalls:{key:""},solana_signTransaction:{key:"signature"},solana_signAllTransactions:{key:"transactions"},solana_signAndSendTransaction:{key:"signature"}},oG=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],oW="[email protected]:auth:",oJ=`${oW}:PUB_KEY`;var oY=Object.defineProperty,oZ=Object.defineProperties,oQ=Object.getOwnPropertyDescriptors,oX=Object.getOwnPropertySymbols,o0=Object.prototype.hasOwnProperty,o1=Object.prototype.propertyIsEnumerable,o2=(e,t,i)=>t in e?oY(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,o8=(e,t)=>{for(var i in t||(t={}))o0.call(t,i)&&o2(e,i,t[i]);if(oX)for(var i of oX(t))o1.call(t,i)&&o2(e,i,t[i]);return e},o3=(e,t,i)=>o2(e,"symbol"!=typeof t?t+"":t,i);class o5 extends r8{constructor(e){super(e),o3(this,"name","engine"),o3(this,"events",new(c())),o3(this,"initialized",!1),o3(this,"requestQueue",{state:oV,queue:[]}),o3(this,"sessionRequestQueue",{state:oV,queue:[]}),o3(this,"requestQueueDelay",u.ONE_SECOND),o3(this,"expectedPairingMethodMap",new Map),o3(this,"recentlyDeletedMap",new Map),o3(this,"recentlyDeletedLimit",200),o3(this,"relayMessageCache",[]),o3(this,"pendingSessions",new Map),o3(this,"init",async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(oz)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,u.toMiliseconds)(this.requestQueueDelay)))}),o3(this,"connect",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();let t=oZ(o8({},e),oQ({requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}}));await this.isValidConnect(t),t.optionalNamespaces=function(e,t){var i,r,s,n,o,a;let l=rp(e),c=rp(t),h={};for(let e of Object.keys(l).concat(Object.keys(c)))h[e]={chains:Q(null==(i=l[e])?void 0:i.chains,null==(r=c[e])?void 0:r.chains),methods:Q(null==(s=l[e])?void 0:s.methods,null==(n=c[e])?void 0:n.methods),events:Q(null==(o=l[e])?void 0:o.events,null==(a=c[e])?void 0:a.events)};return h}(t.requiredNamespaces,t.optionalNamespaces),t.requiredNamespaces={};let{pairingTopic:i,requiredNamespaces:r,optionalNamespaces:s,sessionProperties:n,scopedProperties:o,relays:a}
10=t,l=i,c,h=!1;try{if(l){let e=this.client.core.pairing.pairings.get(l);this.client.logger.warn("connect() with existing pairing topic is deprecated and will be removed in the next major release."),h=e.active}}catch(e){throw this.client.logger.error(`connect() -> pairing.get(${l}) failed`),e}if(!l||!h){let{topic:e,uri:t}=await this.client.core.pairing.create();l=e,c=t}if(!l){let{message:e}=ry("NO_MATCHING_KEY",`connect() pairing topic: ${l}`);throw Error(e)}let p=await this.client.core.crypto.generateKeyPair(),d=oz.wc_sessionPropose.req.ttl||u.FIVE_MINUTES,g=J(d),f=oZ(o8(o8({requiredNamespaces:r,optionalNamespaces:s,relays:a??[{protocol:"irn"}],proposer:{publicKey:p,metadata:this.client.metadata},expiryTimestamp:g,pairingTopic:l},n&&{sessionProperties:n}),o&&{scopedProperties:o}),oQ({id:(0,r6.payloadId)()})),y=Z("session_connect",f.id),{reject:m,resolve:b,done:w}=K(d,oM),v=({id:e})=>{e===f.id&&(this.client.events.off("proposal_expire",v),this.pendingSessions.delete(f.id),this.events.emit(y,{error:{message:oM,code:0}}))};return this.client.events.on("proposal_expire",v),this.events.once(y,({error:e,session:t})=>{this.client.events.off("proposal_expire",v),e?m(e):t&&b(t)}),await this.sendRequest({topic:l,method:"wc_sessionPropose",params:f,throwOnFailedPublish:!0,clientRpcId:f.id}),await this.setProposal(f.id,f),{uri:c,approval:w}}),o3(this,"pair",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(e){throw this.client.logger.error("pair() failed"),e}}),o3(this,"approve",async e=>{var t,i,r;let s=this.client.core.eventClient.createEvent({properties:{topic:null==(t=e?.id)?void 0:t.toString(),trace:[sk]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(e){throw s.setError("no_internet_connection"),e}try{await this.isValidProposalId(e?.id)}catch(t){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),s.setError("proposal_not_found"),t}try{await this.isValidApprove(e)}catch(e){throw this.client.logger.error("approve() -> isValidApprove() failed"),s.setError("session_approve_namespace_validation_failure"),e}let{id:n,relayProtocol:o,namespaces:a,sessionProperties:l,scopedProperties:c,sessionConfig:h}=e,u=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:s.eventId});let{pairingTopic:p,proposer:d,requiredNamespaces:g,optionalNamespaces:f}=u,y=null==(i=this.client.core.eventClient)?void 0:i.getEvent({topic:p});y||(y=null==(r=this.client.core.eventClient)?void 0:r.createEvent({type:sk,properties:{topic:p,trace:[sk,"session_namespaces_validation_success"]}}));let m=await this.client.core.crypto.generateKeyPair(),b=d.publicKey,w=await this.client.core.crypto.generateSharedKey(m,b),v=o8(o8(o8({relay:{protocol:o??"irn"},namespaces:a,controller:{publicKey:m,metadata:this.client.metadata},expiry:J(oB)},l&&{sessionProperties:l}),c&&{scopedProperties:c}),h&&{sessionConfig:h});y.addTrace("subscribing_session_topic");try{await this.client.core.relayer.subscribe(w,{transportType:sm})}catch(e){throw y.setError("subscribe_session_topic_failure"),e}y.addTrace("subscribe_session_topic_success");let E=oZ(o8({},v),oQ({topic:w,requiredNamespaces:g,optionalNamespaces:f,pairingTopic:p,acknowledged:!1,self:v.controller,peer:{publicKey:d.publicKey,metadata:d.metadata},controller:m,transportType:sm}));await this.client.session.set(w,E),y.addTrace("store_session");try{y.addTrace("publishing_session_settle"),await this.sendRequest({topic:w,method:"wc_sessionSettle",params:v,throwOnFailedPublish:!0}).catch(e=>{throw y?.setError("session_settle_publish_failure"),e}),y.addTrace("session_settle_publish_success"),y.addTrace("publishing_session_approve"),await this.sendResult({id:n,topic:p,result:{relay:{protocol:o??"irn"},responderPublicKey:m},throwOnFailedPublish:!0}).catch(e=>{throw y?.setError("session_approve_publish_failure"),e}),y.addTrace("session_approve_publish_success")}catch(e){throw this.client.logger.error(e),this.client.session.delete(w,rm("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(w),e}return this.client.core.eventClient.deleteEvent({eventId:y.eventId}),await this.client.core.pairing.updateMetadata({topic:p,metadata:d.metadata}),await this.client.proposal.delete(n,rm("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:p}),await this.setExpiry(w,J(oB)),{topic:w,acknowledged:()=>Promise.resolve(this.client.session.get(w))}}),o3(this,"reject",async e=>{let t;this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(e){throw this.client.logger.error("reject() -> isValidReject() failed"),e}let{id:i,reason:r}=e;try{t=this.client.proposal.get(i).pairingTopic}catch(e){throw this.client.logger.error(`reject() -> proposal.get(${i}) failed`),e}
10t&&(await this.sendError({id:i,topic:t,error:r,rpcOpts:oz.wc_sessionPropose.reject}),await this.client.proposal.delete(i,rm("USER_DISCONNECTED")))}),o3(this,"update",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(e){throw this.client.logger.error("update() -> isValidUpdate() failed"),e}let{topic:t,namespaces:i}=e,{done:r,resolve:s,reject:n}=K(),o=(0,r6.payloadId)(),a=(0,r6.getBigIntRpcId)().toString(),l=this.client.session.get(t).namespaces;return this.events.once(Z("session_update",o),({error:e})=>{e?n(e):s()}),await this.client.session.update(t,{namespaces:i}),await this.sendRequest({topic:t,method:"wc_sessionUpdate",params:{namespaces:i},throwOnFailedPublish:!0,clientRpcId:o,relayRpcId:a}).catch(e=>{this.client.logger.error(e),this.client.session.update(t,{namespaces:l}),n(e)}),{acknowledged:r}}),o3(this,"extend",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(e){throw this.client.logger.error("extend() -> isValidExtend() failed"),e}let{topic:t}=e,i=(0,r6.payloadId)(),{done:r,resolve:s,reject:n}=K();return this.events.once(Z("session_extend",i),({error:e})=>{e?n(e):s()}),await this.setExpiry(t,J(oB)),this.sendRequest({topic:t,method:"wc_sessionExtend",params:{},clientRpcId:i,throwOnFailedPublish:!0}).catch(e=>{n(e)}),{acknowledged:r}}),o3(this,"request",async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(e){throw this.client.logger.error("request() -> isValidRequest() failed"),e}let{chainId:t,request:i,topic:r,expiry:s=oz.wc_sessionRequest.req.ttl}=e,n=this.client.session.get(r);n?.transportType===sm&&await this.confirmOnlineStateOrThrow();let o=(0,r6.payloadId)(),a=(0,r6.getBigIntRpcId)().toString(),{done:l,resolve:c,reject:h}=K(s,"Request expired. Please try again.");this.events.once(Z("session_request",o),({error:e,result:t})=>{e?h(e):c(t)});let u="wc_sessionRequest",p=this.getAppLinkIfEnabled(n.peer.metadata,n.transportType);if(p)return await this.sendRequest({clientRpcId:o,relayRpcId:a,topic:r,method:u,params:{request:oZ(o8({},i),oQ({expiryTimestamp:J(s)})),chainId:t},expiry:s,throwOnFailedPublish:!0,appLink:p}).catch(e=>h(e)),this.client.events.emit("session_request_sent",{topic:r,request:i,chainId:t,id:o}),await l();let d={request:oZ(o8({},i),oQ({expiryTimestamp:J(s)})),chainId:t},g=this.shouldSetTVF(u,d);return await Promise.all([new Promise(async e=>{await this.sendRequest(o8({clientRpcId:o,relayRpcId:a,topic:r,method:u,params:d,expiry:s,throwOnFailedPublish:!0},g&&{tvf:this.getTVFParams(o,d)})).catch(e=>h(e)),this.client.events.emit("session_request_sent",{topic:r,request:i,chainId:t,id:o}),e()}),new Promise(async e=>{var t;if(!(null!=(t=n.sessionConfig)&&t.disableDeepLink)){let e=await ee(this.client.core.storage,oL);await X({id:o,topic:r,wcDeepLink:e})}e()}),l()]).then(e=>e[2])}),o3(this,"respond",async e=>{this.isInitialized(),await this.isValidRespond(e);let{topic:t,response:i}=e,{id:r}=i,s=this.client.session.get(t);s.transportType===sm&&await this.confirmOnlineStateOrThrow();let n=this.getAppLinkIfEnabled(s.peer.metadata,s.transportType);(0,r6.isJsonRpcResult)(i)?await this.sendResult({id:r,topic:t,result:i.result,throwOnFailedPublish:!0,appLink:n}):(0,r6.isJsonRpcError)(i)&&await this.sendError({id:r,topic:t,error:i.error,appLink:n}),this.cleanupAfterResponse(e)}),o3(this,"ping",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(e){throw this.client.logger.error("ping() -> isValidPing() failed"),e}let{topic:t}=e;if(this.client.session.keys.includes(t)){let e=(0,r6.payloadId)(),i=(0,r6.getBigIntRpcId)().toString(),{done:r,resolve:s,reject:n}=K();this.events.once(Z("session_ping",e),({error:e})=>{e?n(e):s()}),await Promise.all([this.sendRequest({topic:t,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:e,relayRpcId:i}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&(this.client.logger.warn("ping() on pairing topic is deprecated and will be removed in the next major release."),await this.client.core.pairing.ping({topic:t}))}),o3(this,"emit",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);
10let{topic:t,event:i,chainId:r}=e,s=(0,r6.getBigIntRpcId)().toString(),n=(0,r6.payloadId)();await this.sendRequest({topic:t,method:"wc_sessionEvent",params:{event:i,chainId:r},throwOnFailedPublish:!0,relayRpcId:s,clientRpcId:n})}),o3(this,"disconnect",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);let{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:"wc_sessionDelete",params:rm("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{let{message:e}=ry("MISMATCHED_TOPIC",`Session or pairing topic not found: ${t}`);throw Error(e)}}),o3(this,"find",e=>(this.isInitialized(),this.client.session.getAll().filter(t=>(function(e,t){let{requiredNamespaces:i}=t,r=Object.keys(e.namespaces),s=Object.keys(i),n=!0;return!!z(s,r)&&(r.forEach(t=>{let{accounts:r,methods:s,events:o}=e.namespaces[t],a=rc(r),l=i[t];z(P(t,l),a)&&z(l.methods,s)&&z(l.events,o)||(n=!1)}),n)})(t,e)))),o3(this,"getPendingSessionRequests",()=>this.client.pendingRequest.getAll()),o3(this,"authenticate",async(e,t)=>{var i,r,s,n,o;let a;this.isInitialized(),this.isValidAuthenticate(e);let l=t&&this.client.core.linkModeSupportedApps.includes(t)&&(null==(i=this.client.metadata.redirect)?void 0:i.linkMode),c=l?sy:sm;c===sm&&await this.confirmOnlineStateOrThrow();let{chains:h,statement:u="",uri:p,domain:d,nonce:g,type:f,exp:y,nbf:m,methods:b=[],expiry:w}=e,v=[...e.resources||[]],{topic:I,uri:P}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:c});this.client.logger.info({message:"Generated new pairing",pairing:{topic:I,uri:P}});let O=await this.client.core.crypto.generateKeyPair(),S=iJ(O);if(await Promise.all([this.client.auth.authKeys.set(oJ,{responseTopic:S,publicKey:O}),this.client.auth.pairingTopics.set(S,{topic:S,pairingTopic:I})]),await this.client.core.relayer.subscribe(S,{transportType:c}),this.client.logger.info(`sending request to new pairing topic: ${I}`),b.length>0){let e,t,{namespace:i}=E(h[0]),a=eX(function(e,t,i,r={}){return i?.sort((e,t)=>e.localeCompare(t)),{att:{[e]:function(e,t,i={}){return Object.assign({},...(t=t?.sort((e,t)=>e.localeCompare(t))).map(t=>({[`${e}/${t}`]:[i]})))}(t,i,r)}}}(i,"request",b));e8(v)&&(r=a,s=v.pop(),a=eX((n=e0(r),o=e0(s),eQ(n),eQ(o),e=Object.keys(n.att).concat(Object.keys(o.att)).sort((e,t)=>e.localeCompare(t)),t={att:{}},e.forEach(e=>{var i,r;Object.keys((null==(i=n.att)?void 0:i[e])||{}).concat(Object.keys((null==(r=o.att)?void 0:r[e])||{})).sort((e,t)=>e.localeCompare(t)).forEach(i=>{var r,s;t.att[e]=eB(((e,t)=>{for(var i in t||(t={}))eV.call(t,i)&&eF(e,i,t[i]);if(eH)for(var i of eH(t))eK.call(t,i)&&eF(e,i,t[i]);return e})({},t.att[e]),ez({[i]:(null==(r=n.att[e])?void 0:r[i])||(null==(s=o.att[e])?void 0:s[i])}))})}),t))),v.push(a)}let _=w&&w>oz.wc_sessionAuthenticate.req.ttl?w:oz.wc_sessionAuthenticate.req.ttl,x={authPayload:{type:f??"caip122",chains:h,statement:u,aud:p,domain:d,version:"1",nonce:g,iat:new Date().toISOString(),exp:y,nbf:m,resources:v},requester:{publicKey:O,metadata:this.client.metadata},expiryTimestamp:J(_)},A={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:h,methods:[...new Set(["personal_sign",...b])],events:["chainChanged","accountsChanged"]}},relays:[{protocol:"irn"}],pairingTopic:I,proposer:{publicKey:O,metadata:this.client.metadata},expiryTimestamp:J(oz.wc_sessionPropose.req.ttl),id:(0,r6.payloadId)()},{done:R,resolve:C,reject:T}=K(_,"Request expired"),N=(0,r6.payloadId)(),j=Z("session_connect",A.id),q=Z("session_request",N),k=async({error:e,session:t})=>{this.events.off(q,D),e?T(e):t&&C({session:t})},D=async e=>{var i,r,s;let n;if(await this.deletePendingAuthRequest(N,{message:"fulfilled",code:0}),e.error){let t=rm("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return e.error.code===t.code?void 0:(this.events.off(j,k),T(e.error.message))}await this.deleteProposal(A.id),this.events.off(j,k);let{cacaos:o,responder:a}=e.result,l=[],h=[];for(let e of o){await eY({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,"Signature verification failed"),T(rm("SESSION_SETTLEMENT_FAILED","Signature verification failed")));let{p:t}=e,i=e8(t.resources),r=[eW(t.iss)],s=eJ(t.iss);if(i){let e=e1(i),t=e2(i);l.push(...e),r.push(...t)}for(let e of r)h.push(`${e}:${s}`)}let u=await this.client.core.crypto.generateSharedKey(O,a.publicKey);l.length>0&&(n={topic:u,acknowledged:!0,self:{publicKey:O,metadata:this.client.metadata},peer:a,controller:a.publicKey,expiry:J(oB),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:I,namespaces:rd([...new Set(l)],[...new Set(h)]),transportType:c},await this.client.core.relayer.subscribe(u,{transportType:c}),await this.client.session.set(u,n),I&&await this.client.core.pairing.updateMetadata({topic:I,metadata:a.metadata}),n=this.client.session.get(u)),null!=(i=this.client.metadata.redirect)&&i.linkMode&&null!=(r=a.metadata.redirect)&&r.linkMode&&null!=(s=a.metadata.redirect)&&s.universal&&t&&(this.client.core.addLinkModeSupportedApp(a.metadata.redirect.universal),this.client.session.update(u,{transportType:sy})),C({auths:o,session:n})};this.events.once(j,k),this.events.once(q,D);try{if(l){let e=(0,r6.formatJsonRpcRequest)("wc_sessionAuthenticate",x,N);this.client.core.history.set(I,e);let i=await this.client.core.crypto.encode("",e,{type:2,encoding:iF});a=i7(t,I,i)}else await Promise.all([this.sendRequest({topic:I,method:"wc_sessionAuthenticate",params:x,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:N}),this.sendRequest({topic:I,method:"wc_sessionPropose",params:A,expiry:oz.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:A.id})])}catch(e){throw this.events.off(j,k),this.events.off(q,D),e}return await this.setProposal(A.id,A),await this.setAuthRequest(N,{request:oZ(o8({},x),oQ({verifyContext:{}})),pairingTopic:I,transportType:c}),{uri:a??P,response:R}}),o3(this,"approveSessionAuthenticate",async e=>{let t,{id:i,auths:r}=e,s=this.client.core.eventClient.createEvent({properties:{topic:i.toString(),trace:["authenticated_session_approve_started"]}});try{this.isInitialized()}catch(e){throw s.setError("no_internet_connection"),e}let n=this.getPendingAuthRequest(i);if(!n)throw s.setError("authenticated_session_pending_request_not_found"),Error(`Could not find pending auth request with id ${i}`);let o=n.transportType||sm;o===sm&&await this.confirmOnlineStateOrThrow();let a=n.requester.publicKey,l=await this.client.core.crypto.generateKeyPair(),c=iJ(a),h={type:1,receiverPublicKey:a,senderPublicKey:l},u=[],p=[];for(let e of r){if(!await eY({cacao:e,projectId:this.client.core.projectId})){s.setError("invalid_cacao");let e=rm("SESSION_SETTLEMENT_FAILED","Signature verification failed");
10throw await this.sendError({id:i,topic:c,error:e,encodeOpts:h}),Error(e.message)}s.addTrace("cacaos_verified");let{p:t}=e,r=e8(t.resources),n=[eW(t.iss)],o=eJ(t.iss);if(r){let e=e1(r),t=e2(r);u.push(...e),n.push(...t)}for(let e of n)p.push(`${e}:${o}`)}let d=await this.client.core.crypto.generateSharedKey(l,a);if(s.addTrace("create_authenticated_session_topic"),u?.length>0){t={topic:d,acknowledged:!0,self:{publicKey:l,metadata:this.client.metadata},peer:{publicKey:a,metadata:n.requester.metadata},controller:a,expiry:J(oB),authentication:r,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:n.pairingTopic,namespaces:rd([...new Set(u)],[...new Set(p)]),transportType:o},s.addTrace("subscribing_authenticated_session_topic");try{await this.client.core.relayer.subscribe(d,{transportType:o})}catch(e){throw s.setError("subscribe_authenticated_session_topic_failure"),e}s.addTrace("subscribe_authenticated_session_topic_success"),await this.client.session.set(d,t),s.addTrace("store_authenticated_session"),await this.client.core.pairing.updateMetadata({topic:n.pairingTopic,metadata:n.requester.metadata})}s.addTrace("publishing_authenticated_session_approve");try{await this.sendResult({topic:c,id:i,result:{cacaos:r,responder:{publicKey:l,metadata:this.client.metadata}},encodeOpts:h,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(n.requester.metadata,o)})}catch(e){throw s.setError("authenticated_session_approve_publish_failure"),e}return await this.client.auth.requests.delete(i,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:n.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:s.eventId}),{session:t}}),o3(this,"rejectSessionAuthenticate",async e=>{this.isInitialized();let{id:t,reason:i}=e,r=this.getPendingAuthRequest(t);if(!r)throw Error(`Could not find pending auth request with id ${t}`);r.transportType===sm&&await this.confirmOnlineStateOrThrow();let s=r.requester.publicKey,n=await this.client.core.crypto.generateKeyPair(),o=iJ(s);await this.sendError({id:t,topic:o,error:i,encodeOpts:{type:1,receiverPublicKey:s,senderPublicKey:n},rpcOpts:oz.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(r.requester.metadata,r.transportType)}),await this.client.auth.requests.delete(t,{message:"rejected",code:0}),await this.client.proposal.delete(t,rm("USER_DISCONNECTED"))}),o3(this,"formatAuthMessage",e=>{this.isInitialized();let{request:t,iss:i}=e;return eZ(t,i)}),o3(this,"processRelayMessageCache",()=>{setTimeout(async()=>{if(0!==this.relayMessageCache.length)for(;this.relayMessageCache.length>0;)try{let e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)}),o3(this,"cleanupDuplicatePairings",async e=>{if(e.pairingTopic)try{let t=this.client.core.pairing.pairings.get(e.pairingTopic),i=this.client.core.pairing.pairings.getAll().filter(i=>{var r,s;return(null==(r=i.peerMetadata)?void 0:r.url)&&(null==(s=i.peerMetadata)?void 0:s.url)===e.peer.metadata.url&&i.topic&&i.topic!==t.topic});if(0===i.length)return;this.client.logger.info(`Cleaning up ${i.length} duplicate pairing(s)`),await Promise.all(i.map(e=>this.client.core.pairing.disconnect({topic:e.topic}))),this.client.logger.info("Duplicate pairings clean up finished")}catch(e){this.client.logger.error(e)}}),o3(this,"deleteSession",async e=>{var t;let{topic:i,expirerHasDeleted:r=!1,emitEvent:s=!0,id:n=0}=e,{self:o}=this.client.session.get(i);await this.client.core.relayer.unsubscribe(i),await this.client.session.delete(i,rm("USER_DISCONNECTED")),this.addToRecentlyDeleted(i,"session"),this.client.core.crypto.keychain.has(o.publicKey)&&await this.client.core.crypto.deleteKeyPair(o.publicKey),this.client.core.crypto.keychain.has(i)&&await this.client.core.crypto.deleteSymKey(i),r||this.client.core.expirer.del(i),this.client.core.storage.removeItem(oL).catch(e=>this.client.logger.warn(e)),this.getPendingSessionRequests().forEach(e=>{e.topic===i&&this.deletePendingSessionRequest(e.id,rm("USER_DISCONNECTED"))}),i===(null==(t=this.sessionRequestQueue.queue[0])?void 0:t.topic)&&(this.sessionRequestQueue.state=oV),s&&this.client.events.emit("session_delete",{id:n,topic:i})}),o3(this,"deleteProposal",async(e,t)=>{if(t)try{let t=this.client.proposal.get(e),i=this.client.core.eventClient.getEvent({topic:t.pairingTopic});i?.setError("proposal_expired")}catch{}await Promise.all([this.client.proposal.delete(e,rm("USER_DISCONNECTED")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"proposal")}),o3(this,"deletePendingSessionRequest",async(e,t,i=!1)=>
10{await Promise.all([this.client.pendingRequest.delete(e,t),i?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(t=>t.id!==e),i&&(this.sessionRequestQueue.state=oV,this.client.events.emit("session_request_expire",{id:e}))}),o3(this,"deletePendingAuthRequest",async(e,t,i=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),i?Promise.resolve():this.client.core.expirer.del(e)])}),o3(this,"setExpiry",async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))}),o3(this,"setProposal",async(e,t)=>{this.client.core.expirer.set(e,J(oz.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),o3(this,"setAuthRequest",async(e,t)=>{let{request:i,pairingTopic:r,transportType:s=sm}=t;this.client.core.expirer.set(e,i.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:i.authPayload,requester:i.requester,expiryTimestamp:i.expiryTimestamp,id:e,pairingTopic:r,verifyContext:i.verifyContext,transportType:s})}),o3(this,"setPendingSessionRequest",async e=>{let{id:t,topic:i,params:r,verifyContext:s}=e,n=r.request.expiryTimestamp||J(oz.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,n),await this.client.pendingRequest.set(t,{id:t,topic:i,params:r,verifyContext:s})}),o3(this,"sendRequest",async e=>{let t,r,{topic:s,method:n,params:o,expiry:a,relayRpcId:l,clientRpcId:c,throwOnFailedPublish:h,appLink:u,tvf:p}=e,d=(0,r6.formatJsonRpcRequest)(n,o,c),g=!!u;try{let e=g?iF:iK;t=await this.client.core.crypto.encode(s,d,{encoding:e})}catch(e){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${s} failed`),e}if(oG.includes(n)){let e=iY(JSON.stringify(d)),i=iY(t);r=await this.client.core.verify.register({id:i,decryptedId:e})}let f=oz[n].req;if(f.attestation=r,a&&(f.ttl=a),l&&(f.id=l),this.client.core.history.set(s,d),g){let e=i7(u,s,t);await i.g.Linking.openURL(e,this.client.name)}else{let e,i=oz[n].req;a&&(i.ttl=a),l&&(i.id=l),i.tvf=oZ(o8({},p),oQ({correlationId:d.id})),h?(e=o8({},i.internal),i.internal=oZ(e,oQ({throwOnFailedPublish:!0})),await this.client.core.relayer.publish(s,t,i)):this.client.core.relayer.publish(s,t,i).catch(e=>this.client.logger.error(e))}return d.id}),o3(this,"sendResult",async e=>{let t,r,s,{id:n,topic:o,result:a,throwOnFailedPublish:l,encodeOpts:c,appLink:h}=e,u=(0,r6.formatJsonRpcResult)(n,a),p=h&&"u">typeof(null==i.g?void 0:i.g.Linking);try{let e,i,r=p?iF:iK;t=await this.client.core.crypto.encode(o,u,(e=o8({},c||{}),i={encoding:r},oZ(e,oQ(i))))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${o} failed`),e}try{let e=(r=await this.client.core.history.get(o,n)).request;try{this.shouldSetTVF(e.method,e.params)&&(s=this.getTVFParams(n,e.params,a))}catch(e){this.client.logger.warn("sendResult() -> getTVFParams() failed",e)}}catch(e){throw this.client.logger.error(`sendResult() -> history.get(${o}, ${n}) failed`),e}if(p){let e=i7(h,o,t);await i.g.Linking.openURL(e,this.client.name)}else{let e,i=oz[r.request.method].res;i.tvf=oZ(o8({},s),oQ({correlationId:n})),l?(e=o8({},i.internal),i.internal=oZ(e,oQ({throwOnFailedPublish:!0})),await this.client.core.relayer.publish(o,t,i)):this.client.core.relayer.publish(o,t,i).catch(e=>this.client.logger.error(e))}await this.client.core.history.resolve(u)}),o3(this,"sendError",async e=>{let t,r,{id:s,topic:n,error:o,encodeOpts:a,rpcOpts:l,appLink:c}=e,h=(0,r6.formatJsonRpcError)(s,o),u=c&&"u">typeof(null==i.g?void 0:i.g.Linking);try{let e,i,r=u?iF:iK;t=await this.client.core.crypto.encode(n,h,(e=o8({},a||{}),i={encoding:r},oZ(e,oQ(i))))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${n} failed`),e}try{r=await this.client.core.history.get(n,s)}catch(e){throw this.client.logger.error(`sendError() -> history.get(${n}, ${s}) failed`),e}if(u){let e=i7(c,n,t);await i.g.Linking.openURL(e,this.client.name)}else{let e=r.request.method,i=l||oz[e].res;this.client.core.relayer.publish(n,t,i)}await this.client.core.history.resolve(h)}),o3(this,"cleanup",async()=>{let e=[],t=[];
10this.client.session.getAll().forEach(t=>{let i=!1;Y(t.expiry)&&(i=!0),this.client.core.crypto.keychain.has(t.topic)||(i=!0),i&&e.push(t.topic)}),this.client.proposal.getAll().forEach(e=>{Y(e.expiryTimestamp)&&t.push(e.id)}),await Promise.all([...e.map(e=>this.deleteSession({topic:e})),...t.map(e=>this.deleteProposal(e))])}),o3(this,"onProviderMessageEvent",async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),o3(this,"onRelayEventRequest",async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),o3(this,"processRequestsQueue",async()=>{if(this.requestQueue.state===oK)return void this.client.logger.info("Request queue already active, skipping...");for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=oK;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=oV}),o3(this,"processRequest",async e=>{let{topic:t,payload:i,attestation:r,transportType:s,encryptedId:n}=e,o=i.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:o}))switch(o){case"wc_sessionPropose":return await this.onSessionProposeRequest
10({topic:t,payload:i,attestation:r,encryptedId:n});case"wc_sessionSettle":return await this.onSessionSettleRequest(t,i);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(t,i);case"wc_sessionExtend":return await this.onSessionExtendRequest(t,i);case"wc_sessionPing":return await this.onSessionPingRequest(t,i);case"wc_sessionDelete":return await this.onSessionDeleteRequest(t,i);case"wc_sessionRequest":return await this.onSessionRequest({topic:t,payload:i,attestation:r,encryptedId:n,transportType:s});case"wc_sessionEvent":return await this.onSessionEventRequest(t,i);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:t,payload:i,attestation:r,encryptedId:n,transportType:s});default:return this.client.logger.info(`Unsupported request method ${o}`)}}),o3(this,"onRelayEventResponse",async e=>{let{topic:t,payload:i,transportType:r}=e,s=(await this.client.core.history.get(t,i.id)).request.method;switch(s){case"wc_sessionPropose":return this.onSessionProposeResponse(t,i,r);case"wc_sessionSettle":return this.onSessionSettleResponse(t,i);case"wc_sessionUpdate":return this.onSessionUpdateResponse(t,i);case"wc_sessionExtend":return this.onSessionExtendResponse(t,i);case"wc_sessionPing":return this.onSessionPingResponse(t,i);case"wc_sessionRequest":return this.onSessionRequestResponse(t,i);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(t,i);default:return this.client.logger.info(`Unsupported response method ${s}`)}}),o3(this,"onRelayEventUnknownPayload",e=>{let{topic:t}=e,{message:i}=ry("MISSING_OR_INVALID",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw Error(i)}),o3(this,"shouldIgnorePairingRequest",e=>{let{topic:t,requestMethod:i}=e,r=this.expectedPairingMethodMap.get(t);return!(!r||r.includes(i))&&!!(r.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)}),o3(this,"onSessionProposeRequest",async e=>{let{topic:t,payload:i,attestation:r,encryptedId:s}=e,{params:n,id:o}=i;try{let e=this.client.core.eventClient.getEvent({topic:t});0===this.client.events.listenerCount("session_proposal")&&(console.warn("No listener for session_proposal event"),e?.setError("proposal_listener_not_found")),this.isValidConnect(o8({},i.params));let a=n.expiryTimestamp||J(oz.wc_sessionPropose.req.ttl),l=o8({id:o,pairingTopic:t,expiryTimestamp:a},n);await this.setProposal(o,l);let c=await this.getVerifyContext({attestationId:r,hash:iY(JSON.stringify(i)),encryptedId:s,metadata:l.proposer.metadata});e?.addTrace("emit_session_proposal"),this.client.events.emit("session_proposal",{id:o,params:l,verifyContext:c})}catch(e){await this.sendError({id:o,topic:t,error:e,rpcOpts:oz.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),o3(this,"onSessionProposeResponse",async(e,t,i)=>{let{id:r}=t;if((0,r6.isJsonRpcResult)(t)){let{result:s}=t;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:s});let n=this.client.proposal.get(r);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:n});let o=n.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:o});let a=s.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:a});let l=await this.client.core.crypto.generateSharedKey(o,a);this.pendingSessions.set(r,{sessionTopic:l,pairingTopic:e,proposalId:r,publicKey:o});let c=await this.client.core.relayer.subscribe(l,{transportType:i});this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:c}),await this.client.core.pairing.activate({topic:e})}else if((0,r6.isJsonRpcError)(t)){await this.client.proposal.delete(r,rm("USER_DISCONNECTED"));let e=Z("session_connect",r);if(0===this.events.listenerCount(e))throw Error(`emitting ${e} without any listeners, 954`);this.events.emit(e,{error:t.error})}}),o3(this,"onSessionSettleRequest",async(e,t)=>{let{id:i,params:r}=t;try{let i,s;this.isValidSessionSettleRequest(r);let{relay:n,controller:o,expiry:a,namespaces:l,sessionProperties:c,scopedProperties:h,sessionConfig:u}=t.params,p=[...this.pendingSessions.values()].find(t=>t.sessionTopic===e);if(!p)return this.client.logger.error(`Pending session not found for topic ${e}`);let d=this.client.proposal.get(p.proposalId),g=(i=o8(o8(o8({topic:e,relay:n,expiry:a,namespaces:l,acknowledged:!0,pairingTopic:p.pairingTopic,requiredNamespaces:d.requiredNamespaces,optionalNamespaces:d.optionalNamespaces,controller:o.publicKey,self:{publicKey:p.publicKey,metadata:this.client.metadata},peer:{publicKey:o.publicKey,metadata:o.metadata}},c&&{sessionProperties:c}),h&&{scopedProperties:h}),u&&{sessionConfig:u}),s={transportType:sm},oZ(i,oQ(s)));await this.client.session.set(g.topic,g),await this.setExpiry(g.topic,g.expiry),await this.client.core.pairing.updateMetadata({topic:p.pairingTopic,metadata:g.peer.metadata}),this.client.events.emit("session_connect",{session:g}),this.events.emit(Z("session_connect",p.proposalId),{session:g}),this.pendingSessions.delete(p.proposalId),this.deleteProposal(p.proposalId,!1),this.cleanupDupl
10icatePairings(g),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),o3(this,"onSessionSettleResponse",async(e,t)=>{let{id:i}=t;(0,r6.isJsonRpcResult)(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(Z("session_approve",i),{})):(0,r6.isJsonRpcError)(t)&&(await this.client.session.delete(e,rm("USER_DISCONNECTED")),this.events.emit(Z("session_approve",i),{error:t.error}))}),o3(this,"onSessionUpdateRequest",async(e,t)=>{let{params:i,id:r}=t;try{let t=`${e}_session_update`,s=rk.get(t);if(s&&this.isRequestOutOfSync(s,r)){this.client.logger.warn(`Discarding out of sync request - ${r}`),this.sendError({id:r,topic:e,error:rm("INVALID_UPDATE_REQUEST")});return}this.isValidUpdate(o8({topic:e},i));try{rk.set(t,r),await this.client.session.update(e,{namespaces:i.namespaces}),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0})}catch(e){throw rk.delete(t),e}this.client.events.emit("session_update",{id:r,topic:e,params:i})}catch(t){await this.sendError({id:r,topic:e,error:t}),this.client.logger.error(t)}}),o3(this,"isRequestOutOfSync",(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),o3(this,"onSessionUpdateResponse",(e,t)=>{let{id:i}=t,r=Z("session_update",i);if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners`);(0,r6.isJsonRpcResult)(t)?this.events.emit(Z("session_update",i),{}):(0,r6.isJsonRpcError)(t)&&this.events.emit(Z("session_update",i),{error:t.error})}),o3(this,"onSessionExtendRequest",async(e,t)=>{let{id:i}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,J(oB)),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_extend",{id:i,topic:e})}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),o3(this,"onSessionExtendResponse",(e,t)=>{let{id:i}=t,r=Z("session_extend",i);if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners`);(0,r6.isJsonRpcResult)(t)?this.events.emit(Z("session_extend",i),{}):(0,r6.isJsonRpcError)(t)&&this.events.emit(Z("session_extend",i),{error:t.error})}),o3(this,"onSessionPingRequest",async(e,t)=>{let{id:i}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:i,topic:e})}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),o3(this,"onSessionPingResponse",(e,t)=>{let{id:i}=t,r=Z("session_ping",i);setTimeout(()=>{if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners 2176`);(0,r6.isJsonRpcResult)(t)?this.events.emit(Z("session_ping",i),{}):(0,r6.isJsonRpcError)(t)&&this.events.emit(Z("session_ping",i),{error:t.error})},500)}),o3(this,"onSessionDeleteRequest",async(e,t)=>{let{id:i}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(t=>{this.client.core.relayer.once(sh,async()=>{t(await this.deleteSession({topic:e,id:i}))})}),this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:rm("USER_DISCONNECTED")})]).catch(e=>this.client.logger.error(e))}catch(e){this.client.logger.error(e)}}),o3(this,"onSessionRequest",async e=>{var t,i,r;let{topic:s,payload:n,attestation:o,encryptedId:a,transportType:l}=e,{id:c,params:h}=n;try{await this.isValidRequest(o8({topic:s},h));let e=this.client.session.get(s),n=await this.getVerifyContext({attestationId:o,hash:iY(JSON.stringify((0,r6.formatJsonRpcRequest)("wc_sessionRequest",h,c))),encryptedId:a,metadata:e.peer.metadata,transportType:l}),u={id:c,topic:s,params:h,verifyContext:n};await this.setPendingSessionRequest(u),l===sy&&null!=(t=e.peer.metadata.redirect)&&t.universal&&this.client.core.addLinkModeSupportedApp(null==(i=e.peer.metadata.redirect)?void 0:i.universal),null!=(r=this.client.signConfig)&&r.disableRequestQueue?this.emitSessionRequest(u):(this.addSessionRequestToSessionRequestQueue(u),this.processSessionRequestQueue())}
10catch(e){await this.sendError({id:c,topic:s,error:e}),this.client.logger.error(e)}}),o3(this,"onSessionRequestResponse",(e,t)=>{let{id:i}=t,r=Z("session_request",i);if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners`);(0,r6.isJsonRpcResult)(t)?this.events.emit(Z("session_request",i),{result:t.result}):(0,r6.isJsonRpcError)(t)&&this.events.emit(Z("session_request",i),{error:t.error})}),o3(this,"onSessionEventRequest",async(e,t)=>{let{id:i,params:r}=t;try{let t=`${e}_session_event_${r.event.name}`,s=rk.get(t);if(s&&this.isRequestOutOfSync(s,i))return void this.client.logger.info(`Discarding out of sync request - ${i}`);this.isValidEmit(o8({topic:e},r)),this.client.events.emit("session_event",{id:i,topic:e,params:r}),rk.set(t,i)}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),o3(this,"onSessionAuthenticateResponse",(e,t)=>{let{id:i}=t;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:e,payload:t}),(0,r6.isJsonRpcResult)(t)?this.events.emit(Z("session_request",i),{result:t.result}):(0,r6.isJsonRpcError)(t)&&this.events.emit(Z("session_request",i),{error:t.error})}),o3(this,"onSessionAuthenticateRequest",async e=>{var t;let{topic:i,payload:r,attestation:s,encryptedId:n,transportType:o}=e;try{let{requester:e,authPayload:a,expiryTimestamp:l}=r.params,c=await this.getVerifyContext({attestationId:s,hash:iY(JSON.stringify(r)),encryptedId:n,metadata:e.metadata,transportType:o}),h={requester:e,pairingTopic:i,id:r.id,authPayload:a,verifyContext:c,expiryTimestamp:l};await this.setAuthRequest(r.id,{request:h,pairingTopic:i,transportType:o}),o===sy&&null!=(t=e.metadata.redirect)&&t.universal&&this.client.core.addLinkModeSupportedApp(e.metadata.redirect.universal),this.client.events.emit("session_authenticate",{topic:i,params:r.params,id:r.id,verifyContext:c})}catch(n){this.client.logger.error(n);let e=r.params.requester.publicKey,t=await this.client.core.crypto.generateKeyPair(),s=this.getAppLinkIfEnabled(r.params.requester.metadata,o);await this.sendError({id:r.id,topic:i,error:n,encodeOpts:{type:1,receiverPublicKey:e,senderPublicKey:t},rpcOpts:oz.wc_sessionAuthenticate.autoReject,appLink:s})}}),o3(this,"addSessionRequestToSessionRequestQueue",e=>{this.sessionRequestQueue.queue.push(e)}),o3(this,"cleanupAfterResponse",e=>{this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=oV,this.processSessionRequestQueue()},(0,u.toMiliseconds)(this.requestQueueDelay))}),o3(this,"cleanupPendingSentRequestsForTopic",({topic:e,error:t})=>{let i=this.client.core.history.pending;i.length>0&&i.filter(t=>t.topic===e&&"wc_sessionRequest"===t.request.method).forEach(e=>{let i=Z("session_request",e.request.id);if(0===this.events.listenerCount(i))throw Error(`emitting ${i} without any listeners`);this.events.emit(Z("session_request",e.request.id),{error:t})})}),o3(this,"processSessionRequestQueue",()=>{if(this.sessionRequestQueue.state===oK)return void this.client.logger.info("session request queue is already active.");let e=this.sessionRequestQueue.queue[0];if(!e)return void this.client.logger.info("session request queue is empty.");try{this.sessionRequestQueue.state=oK,this.emitSessionRequest(e)}catch(e){this.client.logger.error(e)}}),o3(this,"emitSessionRequest",e=>{this.client.events.emit("session_request",e)}),o3(this,"onPairingCreated",e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;let t=this.client.proposal.getAll().find(t=>t.pairingTopic===e.topic);
10t&&this.onSessionProposeRequest({topic:e.topic,payload:(0,r6.formatJsonRpcRequest)("wc_sessionPropose",oZ(o8({},t),oQ({requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties})),t.id)})}),o3(this,"isValidConnect",async e=>{let t;if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw Error(t)}let{pairingTopic:i,requiredNamespaces:r,optionalNamespaces:s,sessionProperties:n,scopedProperties:o,relays:a}=e;if(rv(i)||await this.isValidPairingTopic(i),t=!1,a?a&&rb(a)&&a.length&&a.forEach(e=>{t=rx(e)}):t=!0,!t){let{message:e}=ry("MISSING_OR_INVALID",`connect() relays: ${a}`);throw Error(e)}if(!rv(r)&&0!==rw(r)){let e="requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces";["fatal","error","silent"].includes(this.client.logger.level)?console.warn(e):this.client.logger.warn(e),this.validateNamespaces(r,"requiredNamespaces")}if(rv(s)||0===rw(s)||this.validateNamespaces(s,"optionalNamespaces"),rv(n)||this.validateSessionProps(n,"sessionProperties"),!rv(o)){this.validateSessionProps(o,"scopedProperties");let e=Object.keys(r||{}).concat(Object.keys(s||{}));if(!Object.keys(o).every(t=>e.includes(t)))throw Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(o)}, required/optional namespaces: ${JSON.stringify(e)}`)}}),o3(this,"validateNamespaces",(e,t)=>{let i=function(e,t,i){let r=null;if(e&&rw(e)){let s,n=rS(e,t);n&&(r=n);let o=(s=null,Object.entries(e).forEach(([e,r])=>{var n,o;let a;if(s)return;let l=(n=P(e,r),o=`${t} ${i}`,a=null,rb(n)&&n.length?n.forEach(e=>{a||rP(e)||(a=rm("UNSUPPORTED_CHAINS",`${o}, chain ${e} should be a string and conform to "namespace:chainId" format`))}):rP(e)||(a=rm("UNSUPPORTED_CHAINS",`${o}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),a);l&&(s=l)}),s);o&&(r=o)}else r=ry("MISSING_OR_INVALID",`${t}, ${i} should be an object with data`);return r}(e,"connect()",t);if(i)throw Error(i.message)}),o3(this,"isValidApprove",async e=>{if(!rA(e))throw Error(ry("MISSING_OR_INVALID",`approve() params: ${e}`).message);let{id:t,namespaces:i,relayProtocol:r,sessionProperties:s,scopedProperties:n}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);let o=this.client.proposal.get(t),a=r_(i,"approve()");if(a)throw Error(a.message);let l=rC(o.requiredNamespaces,i,"approve()");if(l)throw Error(l.message);if(!rE(r,!0)){let{message:e}=ry("MISSING_OR_INVALID",`approve() relayProtocol: ${r}`);throw Error(e)}if(rv(s)||this.validateSessionProps(s,"sessionProperties"),!rv(n)){this.validateSessionProps(n,"scopedProperties");let e=new Set(Object.keys(i));if(!Object.keys(n).every(t=>e.has(t)))throw Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(n)}, approved namespaces: ${Array.from(e).join(", ")}`)}}),o3(this,"isValidReject",async e=>{if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`reject() params: ${e}`);throw Error(t)}let{id:t,reason:i}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!i||"object"!=typeof i||!i.code||!rI(i.code,!1)||!i.message||!rE(i.message,!1)){let{message:e}=ry("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(i)}`);throw Error(e)}}),o3(this,"isValidSessionSettleRequest",e=>{let t;if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw Error(t)}
10let{relay:i,controller:r,namespaces:s,expiry:n}=e;if(!rx(i)){let{message:e}=ry("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw Error(e)}let o=(t=null,rE(r?.publicKey,!1)||(t=ry("MISSING_OR_INVALID","onSessionSettleRequest() controller public key should be a string")),t);if(o)throw Error(o.message);let a=r_(s,"onSessionSettleRequest()");if(a)throw Error(a.message);if(Y(n)){let{message:e}=ry("EXPIRED","onSessionSettleRequest()");throw Error(e)}}),o3(this,"isValidUpdate",async e=>{if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`update() params: ${e}`);throw Error(t)}let{topic:t,namespaces:i}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let r=this.client.session.get(t),s=r_(i,"update()");if(s)throw Error(s.message);let n=rC(r.requiredNamespaces,i,"update()");if(n)throw Error(n.message)}),o3(this,"isValidExtend",async e=>{if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`extend() params: ${e}`);throw Error(t)}let{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),o3(this,"isValidRequest",async e=>{var t;let i;if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`request() params: ${e}`);throw Error(t)}let{topic:r,request:s,chainId:n,expiry:o}=e;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r);let{namespaces:a}=this.client.session.get(r);if(!rR(a,n)){let{message:e}=ry("MISSING_OR_INVALID",`request() chainId: ${n}`);throw Error(e)}if(rv(s)||!rE(s.method,!1)){let{message:e}=ry("MISSING_OR_INVALID",`request() ${JSON.stringify(s)}`);throw Error(e)}if(!(rE(t=s.method,!1)&&(i=[],Object.values(a).forEach(e=>{rc(e.accounts).includes(n)&&i.push(...e.methods)}),i).includes(t))){let{message:e}=ry("MISSING_OR_INVALID",`request() method: ${s.method}`);throw Error(e)}if(o&&(!rI(o,!1)||!(o<=oH.max)||!(o>=oH.min))){let{message:e}=ry("MISSING_OR_INVALID",`request() expiry: ${o}. Expiry must be a number (in seconds) between ${oH.min} and ${oH.max}`);throw Error(e)}}),o3(this,"isValidRespond",async e=>{var t;if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`respond() params: ${e}`);throw Error(t)}let{topic:i,response:r}=e;try{await this.isValidSessionTopic(i)}catch(i){throw null!=(t=e?.response)&&t.id&&this.cleanupAfterResponse(e),i}if(rv(r)||rv(r.result)&&rv(r.error)||!rI(r.id,!1)||!rE(r.jsonrpc,!1)){let{message:e}=ry("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(r)}`);throw Error(e)}}),o3(this,"isValidPing",async e=>{if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),o3(this,"isValidEmit",async e=>{var t;let i;if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`emit() params: ${e}`);throw Error(t)}let{topic:r,event:s,chainId:n}=e;await this.isValidSessionTopic(r);let{namespaces:o}=this.client.session.get(r);if(!rR(o,n)){let{message:e}=ry("MISSING_OR_INVALID",`emit() chainId: ${n}`);throw Error(e)}if(rv(s)||!rE(s.name,!1)||!(rE(t=s.name,!1)&&(i=[],Object.values(o).forEach(e=>{rc(e.accounts).includes(n)&&i.push(...e.events)}),i).includes(t))){let{message:e}=ry("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(s)}`);throw Error(e)}}),o3(this,"isValidDisconnect",async e=>{if(!rA(e)){let{message:t}=ry("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),o3(this,"isValidAuthenticate",e=>{let{chains:t,uri:i,domain:r,nonce:s}=e;if(!Array.isArray(t)||0===t.length)throw Error("chains is required and must be a non-empty array");if(!rE(i,!1))throw Error("uri is required parameter");if(!rE(r,!1))throw Error("domain is required parameter");if(!rE(s,!1))throw Error("nonce is required parameter");if([...new Set(t.map(e=>E(e).namespace))].length>1)throw Error("Multi-namespace requests are not supported. Please request single namespace only.");let{namespace:n}=E(t[0]);if("eip155"!==n)throw Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")}),o3(this,"getVerifyContext",async e=>{let{attestationId:t,hash:i,encryptedId:r,metadata:s,transportType:n}=e,o={verified:{verifyUrl:s.verifyUrl||sT,validation:"UNKNOWN",origin:s.url||""}};try{if(n===sy){let e=this.getAppLinkIfEnabled(s,n);return o.verified.validation=e&&new URL(e).origin===new URL(s.url).origin?"VALID":"INVALID",o}let e=await this.client.core.verify.resolve({attestationId:t,hash:i,encryptedId:r,verifyUrl:s.verifyUrl});e&&(o.verified.origin=e.origin,o.verified.isScam=e.isScam,o.verified.validation=e.origin===new URL(s.url).origin?"VALID":"INVALID")}catch(e){this.client.logger.warn(e)}return this.client.logger.debug(`Verify context: ${JSON.stringify(o)}`),o}),o3(this,"validateSessionProps",(e,t)=>{Object.values(e).forEach((i,r)=>{if(null==i){let{message:s}=ry("MISSING_OR_INVALID",`${t} must contain an existing value for each key. Received: ${i} for key ${Object.keys(e)[r]}`);throw Error(s)}})}),o3(this,"getPendingAuthRequest",e=>{let t=this.client.auth.requests.get(e);return"object"==typeof t?t:void 0}),o3(this,"addToRecentlyDeleted",(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0,t=this.recentlyDeletedLimit/2;
10for(let i of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(i)}}}),o3(this,"checkRecentlyDeleted",e=>{let t=this.recentlyDeletedMap.get(e);if(t){let{message:i}=ry("MISSING_OR_INVALID",`Record was recently deleted - ${t}: ${e}`);throw Error(i)}}),o3(this,"isLinkModeEnabled",(e,t)=>{var r,s,n,o,a,l,c,h,u;return!!e&&t===sy&&(null==(s=null==(r=this.client.metadata)?void 0:r.redirect)?void 0:s.linkMode)===!0&&(null==(o=null==(n=this.client.metadata)?void 0:n.redirect)?void 0:o.universal)!==void 0&&(null==(l=null==(a=this.client.metadata)?void 0:a.redirect)?void 0:l.universal)!==""&&(null==(c=e?.redirect)?void 0:c.universal)!==void 0&&(null==(h=e?.redirect)?void 0:h.universal)!==""&&(null==(u=e?.redirect)?void 0:u.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&"u">typeof(null==i.g?void 0:i.g.Linking)}),o3(this,"getAppLinkIfEnabled",(e,t)=>{var i;return this.isLinkModeEnabled(e,t)?null==(i=e?.redirect)?void 0:i.universal:void 0}),o3(this,"handleLinkModeMessage",({url:e})=>{if(!e||!e.includes("wc_ev")||!e.includes("topic"))return;let t=et(e,"topic")||"",i=decodeURIComponent(et(e,"wc_ev")||""),r=this.client.session.keys.includes(t);r&&this.client.session.update(t,{transportType:sy}),this.client.core.dispatchEnvelope({topic:t,message:i,sessionExists:r})}),o3(this,"registerLinkModeListeners",async()=>{var e;if(er()||D()&&null!=(e=this.client.metadata.redirect)&&e.linkMode){let e=null==i.g?void 0:i.g.Linking;if("u">typeof e){e.addEventListener("url",this.handleLinkModeMessage,this.client.name);let t=await e.getInitialURL();t&&setTimeout(()=>{this.handleLinkModeMessage({url:t})},50)}}}),o3(this,"shouldSetTVF",(e,t)=>{if(!t||"wc_sessionRequest"!==e)return!1;let{request:i}=t;return Object.keys(oF).includes(i.method)}),o3(this,"getTVFParams",(e,t,i)=>{var r,s;try{let n,o,a=t.request.method,l=this.extractTxHashesFromResult(a,i);return n=o8({correlationId:e,rpcMethods:[a],chainId:t.chainId},this.isValidContractData(t.request.params)&&{contractAddresses:[null==(s=null==(r=t.request.params)?void 0:r[0])?void 0:s.to]}),o={txHashes:l},oZ(n,oQ(o))}catch(e){this.client.logger.warn("Error getting TVF params",e)}return{}}),o3(this,"isValidContractData",e=>{var t;if(!e)return!1;try{let i=e?.data||(null==(t=e?.[0])?void 0:t.data);if(!i.startsWith("0x"))return!1;let r=i.slice(2);return!!/^[0-9a-fA-F]*$/.test(r)&&r.length%2==0}catch{}return!1}),o3(this,"extractTxHashesFromResult",(e,t)=>{try{let i=oF[e];if("string"==typeof t)return[t];let r=t[i.key];if(rb(r))return"solana_signAllTransactions"===e?r.map(e=>(function(e){let t=atob(e),i=new Uint8Array(t.length);for(let e=0;e<t.length;e++)i[e]=t.charCodeAt(e);let r=i[0];if(0===r)throw Error("No signatures found");if(i.length<1+64*r)throw Error("Transaction data too short for claimed signature count");if(i.length<100)throw Error("Transaction too short");let s=v.from(e,"base64").slice(1,65);return f.default.encode(s)})(e)):r;if("string"==typeof r)return[r]}catch(e){this.client.logger.warn("Error extracting tx hashes from result",e)}return[]})}async processPendingMessageEvents(){try{let e=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(e);for(let[e,i]of Object.entries(t))for(let t of i)try{await this.onProviderMessageEvent({topic:e,message:t,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${e}, message: ${t}`)}}catch(e){this.client.logger.warn("processPendingMessageEvents failed",e)}}isInitialized(){if(!this.initialized){let{message:e}=ry("NOT_INITIALIZED",this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(sa,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){let{topic:t,message:i,attestation:r,transportType:s}=e,{publicKey:n}=this.client.auth.authKeys.keys.includes(oJ)?this.client.auth.authKeys.get(oJ):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,i,{receiverPublicKey:n,encoding:s===sy?iF:iK});(0,r6.isJsonRpcRequest)(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:r,transportType:s,encryptedId:iY(i)})):(0,r6.isJsonRpcResponse)(e)?(await this.client.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e,transportType:s}),this.client.core.history.delete(t,e.id)):await this.onRelayEventUnknownPayload({topic:t,payload:e,transportType:s}),await this.client.core.relayer.messages.ack(t,i)}catch(e){this.client.logger.error(e)}}registerExpirerEvents(){this.client.core.expirer.on(sC,async e=>
10{let{topic:t,id:i}=W(e.target);return i&&this.client.pendingRequest.keys.includes(i)?await this.deletePendingSessionRequest(i,ry("EXPIRED"),!0):i&&this.client.auth.requests.keys.includes(i)?await this.deletePendingAuthRequest(i,ry("EXPIRED"),!0):void(t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:t})):i&&(await this.deleteProposal(i,!0),this.client.events.emit("proposal_expire",{id:i})))})}registerPairingEvents(){this.client.core.pairing.events.on(sP,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(sO,e=>{this.addToRecentlyDeleted(e.topic,"pairing")})}isValidPairingTopic(e){if(!rE(e,!1)){let{message:t}=ry("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){let{message:t}=ry("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Y(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=ry("EXPIRED",`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!rE(e,!1)){let{message:t}=ry("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){let{message:t}=ry("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw Error(t)}if(Y(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=ry("EXPIRED",`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=ry("MISSING_OR_INVALID",`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(rE(e,!1)){let{message:t}=ry("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=ry("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if("number"!=typeof e){let{message:t}=ry("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=ry("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw Error(t)}if(Y(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=ry("EXPIRED",`proposal id: ${e}`);throw Error(t)}}}class o6 extends on{constructor(e,t){super(e,t,"proposal",oU),this.core=e,this.logger=t}}class o4 extends on{constructor(e,t){super(e,t,"session",oU),this.core=e,this.logger=t}}class o9 extends on{constructor(e,t){super(e,t,"request",oU,e=>e.id),this.core=e,this.logger=t}}class o7 extends on{constructor(e,t){super(e,t,"authKeys",oW,()=>oJ),this.core=e,this.logger=t}}class ae extends on{constructor(e,t){super(e,t,"pairingTopics",oW),this.core=e,this.logger=t}}class at extends on{constructor(e,t){super(e,t,"requests",oW,e=>e.id),this.core=e,this.logger=t}}var ai=Object.defineProperty,ar=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?ai(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class as{constructor(e,t){this.core=e,this.logger=t,ar(this,"authKeys"),ar(this,"pairingTopics"),ar(this,"requests"),this.authKeys=new o7(this.core,this.logger),this.pairingTopics=new ae(this.core,this.logger),this.requests=new at(this.core,this.logger)}
10async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}var an=Object.defineProperty,ao=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?an(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class aa extends r2{constructor(e){super(e),ao(this,"protocol","wc"),ao(this,"version",2),ao(this,"name",o$),ao(this,"metadata"),ao(this,"core"),ao(this,"logger"),ao(this,"events",new l.EventEmitter),ao(this,"engine"),ao(this,"session"),ao(this,"proposal"),ao(this,"pendingRequest"),ao(this,"auth"),ao(this,"signConfig"),ao(this,"on",(e,t)=>this.events.on(e,t)),ao(this,"once",(e,t)=>this.events.once(e,t)),ao(this,"off",(e,t)=>this.events.off(e,t)),ao(this,"removeListener",(e,t)=>this.events.removeListener(e,t)),ao(this,"removeAllListeners",e=>this.events.removeAllListeners(e)),ao(this,"connect",async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"pair",async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"approve",async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"reject",async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"update",async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"extend",async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"request",async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"respond",async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"ping",async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"emit",async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"disconnect",async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"find",e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"getPendingSessionRequests",()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}}),ao(this,"authenticate",async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"formatAuthMessage",e=>{try{return this.engine.formatAuthMessage(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"approveSessionAuthenticate",async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),ao(this,"rejectSessionAuthenticate",async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),this.name=e?.name||o$,this.metadata=function(e){var t,i;let r=M();try{let s,n;return null!=e&&e.url&&r.url&&new URL(e.url).host!==new URL(r.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${e.url} differs from the actual page url:${r.url}. This is probably unintended and can lead to issues.`),e.url=r.url),null!=(t=e?.icons)&&t.length&&e.icons.length>0&&(e.icons=e.icons.filter(e=>""!==e)),s=T(T({},r),e),n={url:e?.url||r.url,name:e?.name||r.name,description:e?.description||r.description,icons:null!=(i=e?.icons)&&i.length&&e.icons.length>0?e.icons:r.icons},S(s,_(n))}catch(t){return console.warn("Error populating app metadata",t),e||r}}(e?.metadata),this.signConfig=e?.signConfig;const t="u">typeof e?.logger&&"string"!=typeof e?.logger?e.logger:(0,rU.h6)((0,rU.iP)({level:e?.logger||"error"}));this.core=e?.core||new oD(e),this.logger=(0,rU.U5)(t,this.name),this.session=new o4(this.core,this.logger),this.proposal=new o6(this.core,this.logger),this.pendingRequest=new o9(this.core,this.logger),this.engine=new o5(this),this.auth=new as(this.core,this.logger)}static async init(e){let t=new aa(e);return await t.initialize(),t}get context(){return(0,rU.oI)(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success"),setTimeout(()=>{this.engine.processRelayMessageCache()},(0,u.toMiliseconds)(u.ONE_SECOND))}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}var al=i(21725),ac=i(92991).Buffer;let ah="error",au="wc@2:universal_provider:",ap="https://rpc.walletconnect.org/v1/",ad="generic",ag=`${ap}bundler`,af="default_chain_changed";function ay(){}function am(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function ab(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function aw(e){return"object"==typeof e&&null!==e}function av(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}
10function aE(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let aI="[object String]",aP="[object Number]",aO="[object Boolean]",aS="[object Arguments]";function a_(e,t,i,r=new Map,s){let n=s?.(e,t,i,r);if(null!=n)return n;if(am(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let n=0;n<e.length;n++)t[n]=a_(e[n],n,i,r,s);return Object.hasOwn(e,"index")&&(t.index=e.index),Object.hasOwn(e,"input")&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;for(let[n,o]of(r.set(e,t),e))t.set(n,a_(o,n,i,r,s));return t}if(e instanceof Set){let t=new Set;for(let n of(r.set(e,t),e))t.add(a_(n,void 0,i,r,s));return t}if("u">typeof ac&&ac.isBuffer(e))return e.subarray();if(ab(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let n=0;n<e.length;n++)t[n]=a_(e[n],n,i,r,s);return t}if(e instanceof ArrayBuffer||"u">typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),ax(t,e,i,r,s),t}if("u">typeof File&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),ax(t,e,i,r,s),t}if(e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),ax(t,e,i,r,s),t}if(e instanceof Error){let t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,ax(t,e,i,r,s),t}if("object"==typeof e&&function(e){switch(aE(e)){case aS:case"[object Array]":case"[object ArrayBuffer]":case"[object DataView]":case aO:case"[object Date]":case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Map]":case aP:case"[object Object]":case"[object RegExp]":case"[object Set]":case aI:case"[object Symbol]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return!0;default:return!1}}(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),ax(t,e,i,r,s),t}return e}function ax(e,t,i=e,r,s){let n=[...Object.keys(t),...av(t)];for(let o=0;o<n.length;o++){let a=n[o],l=Object.getOwnPropertyDescriptor(e,a);(null==l||l.writable)&&(e[a]=a_(t[a],a,i,r,s))}}function aA(e){var t;return t=(t,i,r,s)=>{let n;if(null!=n)return n;if("object"==typeof e)switch(Object.prototype.toString.call(e)){case aP:case aI:case aO:{let t=new e.constructor(e?.valueOf());return ax(t,e),t}case aS:{let t={};return ax(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}},a_(e,void 0,e,new Map,t)}function aR(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===aE(e)}var aC=Object.defineProperty,aT=Object.defineProperties,aN=Object.getOwnPropertyDescriptors,aj=Object.getOwnPropertySymbols,aq=Object.prototype.hasOwnProperty,ak=Object.prototype.propertyIsEnumerable,aD=(e,t,i)=>t in e?aC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,a$=(e,t)=>{for(var i in t||(t={}))aq.call(t,i)&&aD(e,i,t[i]);if(aj)for(var i of aj(t))ak.call(t,i)&&aD(e,i,t[i]);return e},aU=(e,t)=>aT(e,aN(t));function aL(e,t,i){var r;let s=E(e);return(null==(r=t.rpcMap)?void 0:r[s.reference])||`${ap}?chainId=${s.namespace}:${s.reference}&projectId=${i}`}function aM(e){return e.includes(":")?e.split(":")[1]:e}function aB(e){return e.map(e=>`${e.split(":")[0]}:${e.split(":")[1]}`)}function az(e={},t={}){return function(e,...t){return function(e,...t){let i=t.slice(0,-1),r=t[t.length-1],s=e;for(let e=0;e<i.length;e++)s=function e(t,i,r,s){if(am(t)&&(t=Object(t)),null==i||"object"!=typeof i)return t;if(s.has(i))return function(e){if(am(e))return e;if(Array.isArray(e)||ab(e)||e instanceof ArrayBuffer||"u">typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e),i=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new i(e);if(e instanceof RegExp){let t=new i(e);return t.lastIndex=e.lastIndex,t}if(e instanceof DataView)return new i(e.buffer.slice(0));if(e instanceof Error){let t=new i(e.message);return t.stack=e.stack,t.name=e.name,t.cause=e.cause,t}return"u">typeof File&&e instanceof File?new i([e],e.name,{type:e.type,lastModified:e.lastModified}):"object"==typeof e?Object.assign(Object.create(t),e):e}(s.get(i));if(s.set(i,t),Array.isArray(i)){i=i.slice();for(let e=0;e<i.length;e++)i[e]=i[e]??void 0}let n=[...Object.keys(i),...av(i)];for(let o=0;o<n.length;o++){let a=n[o],l=i[a],c=t[a];if(aR(l)&&(l={...l}),aR(c)&&(c={...c}),"u">typeof ac&&ac.isBuffer(l)&&(l=aA(l)),Array.isArray(l))if("object"==typeof c&&null!=c){let e=[],t=Reflect.ownKeys(c);for(let i=0;i<t.length;i++){let r=t[i];e[r]=c[r]}c=e}else c=[];let h=r(c,l,a,t,i,s);null!=h?t[a]=h:Array.isArray(l)||aw(c)&&aw(l)?t[a]=e(c,l,r,s):null==c&&function(e){if("object"!=typeof e||null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;
10if("[object Object]"!==Object.prototype.toString.call(e)){let t=e[Symbol.toStringTag];return null!=t&&!!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable&&e.toString()===`[object ${t}]`}let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(l)?t[a]=e({},l,r,s):null==c&&ab(l)?t[a]=aA(l):(void 0===c||void 0!==l)&&(t[a]=l)}return t}(s,i[e],r,new Map);return s}(e,...t,ay)}(aH(e),aH(t))}function aH(e){var t,i,r,s,n;let o={};if(!rw(e))return o;for(let[a,l]of Object.entries(e)){let e=rh(a)?[a]:l.chains,c=l.methods||[],h=l.events||[],u=l.rpcMap||{},p=ru(a);o[p]=aU(a$(a$({},o[p]),l),{chains:Q(e,null==(t=o[p])?void 0:t.chains),methods:Q(c,null==(i=o[p])?void 0:i.methods),events:Q(h,null==(r=o[p])?void 0:r.events)}),(rw(u)||rw((null==(s=o[p])?void 0:s.rpcMap)||{}))&&(o[p].rpcMap=a$(a$({},u),null==(n=o[p])?void 0:n.rpcMap))}return o}function aV(e){return e.includes(":")?e.split(":")[2]:e}function aK(e){let t={};for(let[i,r]of Object.entries(e)){let e=r.methods||[],s=r.events||[],n=r.accounts||[],o=rh(i)?[i]:r.chains?r.chains:aB(r.accounts);t[i]={chains:o,methods:e,events:s,accounts:n}}return t}function aF(e){return"number"==typeof e?e:e.includes("0x")?parseInt(e,16):isNaN(Number(e=e.includes(":")?e.split(":")[1]:e))?e:Number(e)}let aG={},aW=e=>aG[e],aJ=(e,t)=>{aG[e]=t};var aY=Object.defineProperty,aZ=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?aY(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class aQ{constructor(e){aZ(this,"name","polkadot"),aZ(this,"client"),aZ(this,"httpProviders"),aZ(this,"events"),aZ(this,"namespace"),aZ(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(af,`${this.name}:${e}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var i;let r=aM(t);e[r]=this.createHttpProvider(r,null==(i=this.namespace.rpcMap)?void 0:i[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace,this.client.core.projectId);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);return new r5.F(new al.A(i,aW("disableProviderPing")))}}var aX=Object.defineProperty,a0=Object.defineProperties,a1=Object.getOwnPropertyDescriptors,a2=Object.getOwnPropertySymbols,a8=Object.prototype.hasOwnProperty,a3=Object.prototype.propertyIsEnumerable,a5=(e,t,i)=>t in e?aX(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,a6=(e,t)=>{for(var i in t||(t={}))a8.call(t,i)&&a5(e,i,t[i]);if(a2)for(var i of a2(t))a3.call(t,i)&&a5(e,i,t[i]);return e},a4=(e,t,i)=>a5(e,"symbol"!=typeof t?t+"":t,i);class a9{constructor(e){a4(this,"name","eip155"),a4(this,"client"),a4(this,"chainId"),a4(this,"namespace"),a4(this,"httpProviders"),a4(this,"events"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){switch(e.request.method){case"eth_requestAccounts":case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return await this.handleSwitchChain(e);case"eth_chainId":return parseInt(this.getDefaultChain());case"wallet_getCapabilities":return await this.getCapabilities(e);case"wallet_getCallsStatus":return await this.getCallStatus(e)}return this.namespace.methods.includes(e.request.method)?await this.client.request(e):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(parseInt(e),t),this.chainId=parseInt(e),this.events.emit(af,`${this.name}:${e}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}createHttpProvider(e,t){let i=t||aL(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);return new r5.F(new al.V(i,aW("disableProviderPing")))}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var i;let r=parseInt(aM(t));e[r]=this.createHttpProvider(r,null==(i=this.namespace.rpcMap)?void 0:i[t])}),e}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}getHttpProvider(){let e=this.chainId,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}async handleSwitchChain(e){var t,i;let r=e.request.params?null==(t=e.request.params[0])?void 0:t.chainId:"0x0",s=parseInt(r=r.startsWith("0x")?r:`0x${r}`,16);if(this.isChainApproved(s))this.setDefaultChain(`${s}`);else if(this.namespace.methods.includes("wallet_switchEthereumChain"))await this.client.request({topic:e.topic,request:{method:e.request.method,params:[{chainId:r}]},chainId:null==(i=this.namespace.chains)?void 0:i[0]}),this.setDefaultChain(`${s}`);else throw Error(`Failed to switch to chain 'eip155:${s}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(e){return this.namespace.chains.includes(`${this.name}:${e}`)}async getCapabilities(e){var t,i,r,s,n;let o=null==(i=null==(t=e.request)?void 0:t.params)?void 0:i[0],a=(null==(s=null==(r=e.request)?void 0:r.params)?void 0:s[1])||[],l=`${o}${a.join(",")}`;if(!o)throw Error("Missing address parameter in `wallet_getCapabilities` request");let c=this.client.session.get(e.topic),h=(null==(n=c?.sessionProperties)?void 0:n.capabilities)||{};if(null!=h&&h[l])return h?.[l];let u=await this.client.request(e);try{let t,i,r,s;await this.client.session.update(e.topic,{sessionProperties:(r=a6({},c.sessionProperties||{}),s={capabilities:(t=a6({},h||{}),i={[l]:u},a0(t,a1(i)))},a0(r,a1(s)))})}catch(e){console.warn("Failed to update session with capabilities",e)}return u}async getCallStatus(e){var t,i;let r=this.client.session.get(e.topic),s=null==(t=r.sessionProperties)?void 0:t.bundler_name;if(s){let t=this.getBundlerUrl(e.chainId,s);try{return await this.getUserOperationReceipt(t,e)}catch(e){console.warn("Failed to fetch call status from bundler",e,t)}}let n=null==(i=r.sessionProperties)?void 0:i.bundler_url;if(n)try{return await this.getUserOperationReceipt(n,e)}catch(e){console.warn("Failed to fetch call status from custom bundler",e,n)}if(this.namespace.methods.includes(e.request.method))return await this.client.request(e);throw Error("Fetching call status not approved by the wallet.")}async getUserOperationReceipt(e,t){var i;let r=new URL(e),s=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((0,r6.formatJsonRpcRequest)("eth_getUserOperationReceipt",[null==(i=t.request.params)?void 0:i[0]]))});if(!s.ok)throw Error(`Failed to fetch user operation receipt - ${s.status}`);return await s.json()}
10getBundlerUrl(e,t){return`${ag}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${t}`}}var a7=Object.defineProperty,le=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?a7(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class lt{constructor(e){le(this,"name","solana"),le(this,"client"),le(this,"httpProviders"),le(this,"events"),le(this,"namespace"),le(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(af,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var i;let r=aM(t);e[r]=this.createHttpProvider(r,null==(i=this.namespace.rpcMap)?void 0:i[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace,this.client.core.projectId);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);return new r5.F(new al.A(i,aW("disableProviderPing")))}}var li=Object.defineProperty,lr=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?li(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class ls{constructor(e){lr(this,"name","cosmos"),lr(this,"client"),lr(this,"httpProviders"),lr(this,"events"),lr(this,"namespace"),lr(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(af,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var i;let r=aM(t);e[r]=this.createHttpProvider(r,null==(i=this.namespace.rpcMap)?void 0:i[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace,this.client.core.projectId);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);return new r5.F(new al.A(i,aW("disableProviderPing")))}}var ln=Object.defineProperty,lo=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?ln(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class la{constructor(e){lo(this,"name","algorand"),lo(this,"client"),lo(this,"httpProviders"),lo(this,"events"),lo(this,"namespace"),lo(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){let i=t||aL(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,i)}this.chainId=e,this.events.emit(af,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var i;e[t]=this.createHttpProvider(t,null==(i=this.namespace.rpcMap)?void 0:i[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace,this.client.core.projectId);return typeof i>"u"?void 0:new r5.F(new al.A(i,aW("disableProviderPing")))}}var ll=Object.defineProperty,lc=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?ll(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class lh{constructor(e){lc(this,"name","cip34"),lc(this,"client"),lc(this,"httpProviders"),lc(this,"events"),lc(this,"namespace"),lc(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(af,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let i=this.getCardanoRPCUrl(t),r=aM(t);e[r]=this.createHttpProvider(r,i)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}getCardanoRPCUrl(e){let t=this.namespace.rpcMap;if(t)return t[e]}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||this.getCardanoRPCUrl(e);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);return new r5.F(new al.A(i,aW("disableProviderPing")))}}var lu=Object.defineProperty,lp=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?lu(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class ld{constructor(e){lp(this,"name","elrond"),lp(this,"client"),lp(this,"httpProviders"),lp(this,"events"),lp(this,"namespace"),lp(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(af,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var i;let r=aM(t);e[r]=this.createHttpProvider(r,null==(i=this.namespace.rpcMap)?void 0:i[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace,this.client.core.projectId);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);return new r5.F(new al.A(i,aW("disableProviderPing")))}}var lg=Object.defineProperty,lf=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?lg(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class ly{constructor(e){lf(this,"name","multiversx"),lf(this,"client"),lf(this,"httpProviders"),lf(this,"events"),lf(this,"namespace"),lf(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(af,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var i;let r=aM(t);e[r]=this.createHttpProvider(r,null==(i=this.namespace.rpcMap)?void 0:i[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace,this.client.core.projectId);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);return new r5.F(new al.A(i,aW("disableProviderPing")))}}var lm=Object.defineProperty,lb=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?lm(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class lw{constructor(e){lb(this,"name","near"),lb(this,"client"),lb(this,"httpProviders"),lb(this,"events"),lb(this,"namespace"),lb(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let i=t||aL(`${this.name}:${e}`,this.namespace);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,i)}this.events.emit(af,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{var i;e[t]=this.createHttpProvider(t,null==(i=this.namespace.rpcMap)?void 0:i[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace);return typeof i>"u"?void 0:new r5.F(new al.A(i,aW("disableProviderPing")))}}var lv=Object.defineProperty,lE=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?lv(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class lI{constructor(e){lE(this,"name","tezos"),lE(this,"client"),lE(this,"httpProviders"),lE(this,"events"),lE(this,"namespace"),lE(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let i=t||aL(`${this.name}:${e}`,this.namespace);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,i)}this.events.emit(af,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace);return typeof i>"u"?void 0:new r5.F(new al.A(i))}}var lP=Object.defineProperty,lO=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?lP(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class lS{constructor(e){lO(this,"name",ad),lO(this,"client"),lO(this,"httpProviders"),lO(this,"events"),lO(this,"namespace"),lO(this,"chainId"),this.namespace=e.namespace,this.events=aW("events"),this.client=aW("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(e.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(e.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(e.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(e.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider(e.chainId).request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(af,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return e.split(":")[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){var e,t;let i={};return null==(t=null==(e=this.namespace)?void 0:e.accounts)||t.forEach(e
10=>{let t=E(e);i[`${t.namespace}:${t.reference}`]=this.createHttpProvider(e)}),i}getHttpProvider(e){let t=this.httpProviders[e];if(typeof t>"u")throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||aL(e,this.namespace,this.client.core.projectId);if(!i)throw Error(`No RPC url provided for chainId: ${e}`);return new r5.F(new al.A(i,aW("disableProviderPing")))}}var l_=Object.defineProperty,lx=Object.defineProperties,lA=Object.getOwnPropertyDescriptors,lR=Object.getOwnPropertySymbols,lC=Object.prototype.hasOwnProperty,lT=Object.prototype.propertyIsEnumerable,lN=(e,t,i)=>t in e?l_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,lj=(e,t)=>{for(var i in t||(t={}))lC.call(t,i)&&lN(e,i,t[i]);if(lR)for(var i of lR(t))lT.call(t,i)&&lN(e,i,t[i]);return e},lq=(e,t,i)=>lN(e,"symbol"!=typeof t?t+"":t,i);class lk{constructor(e){lq(this,"client"),lq(this,"namespaces"),lq(this,"optionalNamespaces"),lq(this,"sessionProperties"),lq(this,"scopedProperties"),lq(this,"events",new(c())),lq(this,"rpcProviders",{}),lq(this,"session"),lq(this,"providerOpts"),lq(this,"logger"),lq(this,"uri"),lq(this,"disableProviderPing",!1),this.providerOpts=e,this.logger="u">typeof e?.logger&&"string"!=typeof e?.logger?e.logger:(0,rU.h6)((0,rU.iP)({level:e?.logger||ah})),this.disableProviderPing=e?.disableProviderPing||!1}static async init(e){let t=new lk(e);return await t.initialize(),t}async request(e,t,i){let[r,s]=this.validateChain(t);if(!this.session)throw Error("Please call connect() before request()");return await this.getProvider(r).request({request:lj({},e),chainId:`${r}:${s}`,topic:this.session.topic,expiry:i})}sendAsync(e,t,i,r){let s=new Date().getTime();this.request(e,i,r).then(e=>t(null,(0,r6.formatJsonRpcResult)(s,e))).catch(e=>t(e,void 0))}async enable(){if(!this.client)throw Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties}),await this.requestAccounts()}async disconnect(){var e;if(!this.session)throw Error("Please call connect() before enable()");await this.client.disconnect({topic:null==(e=this.session)?void 0:e.topic,reason:rm("USER_DISCONNECTED")}),await this.cleanup()}async connect(e){if(!this.client)throw Error("Sign Client not initialized");if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}async authenticate(e,t){if(!this.client)throw Error("Sign Client not initialized");this.setNamespaces(e),await this.cleanupPendingPairings();let{uri:i,response:r}=await this.client.authenticate(e,t);i&&(this.uri=i,this.events.emit("display_uri",i));let s=await r();if(this.session=s.session,this.session){let e=aK(this.session.namespaces);this.namespaces=az(this.namespaces,e),await this.persist("namespaces",this.namespaces),this.onConnect()}return s}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}removeListener(e,t){this.events.removeListener(e,t)}off(e,t){this.events.off(e,t)}get isWalletConnect(){return!0}async pair(e){let{uri:t,approval:i}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});t&&(this.uri=t,this.events.emit("display_uri",t));let r=await i();this.session=r;let s=aK(r.namespaces);return this.namespaces=az(this.namespaces,s),await this.persist("namespaces",this.namespaces),await this.persist("optionalNamespaces",this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(e,t){try{if(!this.session)return;let[i,r]=this.validateChain(e),s=this.getProvider(i);s.name===ad?s.setDefaultChain(`${i}:${r}`,t):s.setDefaultChain(r,t)}catch(e){if(!/Please call connect/.test(e.message))throw e}}async cleanupPendingPairings(e={}){this.logger.info("Cleaning up inactive pairings...");let t=this.client.pairing.getAll();if(rb(t)){for(let i of t)e.deletePairings?this.client.core.expirer.set(i.topic,0):await this.client.core.relayer.subscriber.unsubscribe(i.topic);this.logger.info(`Inactive pairings cleared: ${t.length}`)}}abortPairingAttempt(){this.logger.warn("abortPairingAttempt is deprecated. This is now a no-op.")}async checkStorage(){this.namespaces=await this.getFromStore("namespaces")||{},this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.session&&this.createProviders()}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){var e,t;if(this.client=this.providerOpts.client||await aa.init({core:this.providerOpts.core,logger:this.providerOpts.logger||ah,relayUrl:this.providerOpts.relayUrl||"wss://relay.walletconnect.org",projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name,customStoragePrefix:this.providerOpts.customStoragePrefix,telemetryEnabled:this.providerOpts.telemetryEnabled}),this.providerOpts.session)try{this.session=this.client.session.get(this.providerOpts.session.topic)}catch(i){throw this.logger.error("Failed to get session",i),Error(`The provided session: ${null==(t=null==(e=this.providerOpts)?void 0:e.session)?void 0:t.topic} doesn't exist in the Sign client`)}else{let e=this.client.session.getAll();this.session=e[0]}this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw Error("Sign Client not initialized");if(!this.session)throw Error("Session not initialized. Please call connect() before enable()");let e=[...new Set(Object.keys(this.session.namespaces).map(e=>ru(e)))];aJ("client",this.client),aJ("events",this.events),aJ("disableProviderPing",this.disableProviderPing),e.forEach(e
10=>{if(!this.session)return;let t=function(e,t){let i=Object.keys(t.namespaces).filter(t=>t.includes(e));if(!i.length)return[];let r=[];return i.forEach(e=>{let i=t.namespaces[e].accounts;r.push(...i)}),r}(e,this.session),i=aB(t),r=lx(lj({},az(this.namespaces,this.optionalNamespaces)[e]),lA({accounts:t,chains:i}));switch(e){case"eip155":this.rpcProviders[e]=new a9({namespace:r});break;case"algorand":this.rpcProviders[e]=new la({namespace:r});break;case"solana":this.rpcProviders[e]=new lt({namespace:r});break;case"cosmos":this.rpcProviders[e]=new ls({namespace:r});break;case"polkadot":this.rpcProviders[e]=new aQ({namespace:r});break;case"cip34":this.rpcProviders[e]=new lh({namespace:r});break;case"elrond":this.rpcProviders[e]=new ld({namespace:r});break;case"multiversx":this.rpcProviders[e]=new ly({namespace:r});break;case"near":this.rpcProviders[e]=new lw({namespace:r});break;case"tezos":this.rpcProviders[e]=new lI({namespace:r});break;default:this.rpcProviders[ad]?this.rpcProviders[ad].updateNamespace(r):this.rpcProviders[ad]=new lS({namespace:r})}})}registerEventListeners(){if(typeof this.client>"u")throw Error("Sign Client is not initialized");this.client.on("session_ping",e=>{var t;let{topic:i}=e;i===(null==(t=this.session)?void 0:t.topic)&&this.events.emit("session_ping",e)}),this.client.on("session_event",e=>{var t;let{params:i,topic:r}=e;if(r!==(null==(t=this.session)?void 0:t.topic))return;let{event:s}=i;if("accountsChanged"===s.name){let e=s.data;e&&rb(e)&&this.events.emit("accountsChanged",e.map(aV))}else if("chainChanged"===s.name){let e=i.chainId,t=i.event.data,r=ru(e),s=aF(e)!==aF(t)?`${r}:${aF(t)}`:e;this.onChainChanged(s)}else this.events.emit(s.name,s.data);this.events.emit("session_event",e)}),this.client.on("session_update",({topic:e,params:t})=>{var i,r;if(e!==(null==(i=this.session)?void 0:i.topic))return;let{namespaces:s}=t,n=null==(r=this.client)?void 0:r.session.get(e);this.session=lx(lj({},n),lA({namespaces:s})),this.onSessionUpdate(),this.events.emit("session_update",{topic:e,params:t})}),this.client.on("session_delete",async e=>{var t;e.topic===(null==(t=this.session)?void 0:t.topic)&&(await this.cleanup(),this.events.emit("session_delete",e),this.events.emit("disconnect",lx(lj({},rm("USER_DISCONNECTED")),lA({data:e.topic}))))}),this.on(af,e=>{this.onChainChanged(e,!0)})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[ad]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{var t;this.getProvider(e).updateNamespace(null==(t=this.session)?void 0:t.namespaces[e])})}setNamespaces(e){let{namespaces:t={},optionalNamespaces:i={},sessionProperties:r,scopedProperties:s}=e;this.optionalNamespaces=az(t,i),this.sessionProperties=r,this.scopedProperties=s}validateChain(e){let[t,i]=e?.split(":")||["",""];if(!this.namespaces||!Object.keys(this.namespaces).length)return[t,i];if(t&&!Object.keys(this.namespaces||{}).map(e=>ru(e)).includes(t))throw Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&i)return[t,i];let r=ru(Object.keys(this.namespaces)[0]),s=this.rpcProviders[r].getDefaultChain();return[r,s]}async requestAccounts(){let[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}async onChainChanged(e,t=!1){if(!this.namespaces)return;let[i,r]=this.validateChain(e);if(!r)return;this.updateNamespaceChain(i,r),this.events.emit("chainChanged",r);let s=this.getProvider(i).getDefaultChain();t||this.getProvider(i).setDefaultChain(r),this.emitAccountsChangedOnChainChange({namespace:i,previousChainId:s,newChainId:e}),await this.persist("namespaces",this.namespaces)}emitAccountsChangedOnChainChange({namespace:e,previousChainId:t,newChainId:i}){var r,s;try{if(t===i)return;let n=null==(s=null==(r=this.session)?void 0:r.namespaces[e])?void 0:s.accounts;if(!n)return;let o=n.filter(e=>e.includes(`${i}:`)).map(aV);if(!rb(o))return;this.events.emit("accountsChanged",o)}catch(e){this.logger.warn("Failed to emit accountsChanged on chain change",e)}}updateNamespaceChain(e,t){if(!this.namespaces)return;let i=this.namespaces[e]?e:`${e}:${t}`;this.namespaces[i]?this.namespaces[i]&&(this.namespaces[i].defaultChain=t):this.namespaces[i]={chains:[],methods:[],events:[],defaultChain:t}}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,await this.deleteFromStore("namespaces"),await this.deleteFromStore("optionalNamespaces"),await this.deleteFromStore("sessionProperties"),this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0}),await this.cleanupStorage()}async persist(e,t){var i;let r=(null==(i=this.session)?void 0:i.topic)||"";await this.client.core.storage.setItem(`${au}/${e}${r}`,t)}async getFromStore(e){var t;let i=(null==(t=this.session)?void 0:t.topic)||"";return await this.client.core.storage.getItem(`${au}/${e}${i}`)}async deleteFromStore(e){var t;let i=(null==(t=this.session)?void 0:t.topic)||"";await this.client.core.storage.removeItem(`${au}/${e}${i}`)}async cleanupStorage(){var e;try{if((null==(e=this.client)?void 0:e.session.length)>0)return;for(let e of(await this.client.core.storage.getKeys()))e.startsWith(au)&&await this.client.core.storage.removeItem(e)}catch(e){this.logger.warn("Failed to cleanup storage",e)}}}let lD=["eth_sendTransaction","personal_sign"],l$=["eth_accounts","eth_requestAccounts","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","personal_sign","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode","wallet_sendCalls","wallet_getCapabilities","wallet_getCallsStatus","wallet_showCallsStatus"],lU=["chainChanged","accountsChanged"],lL=["chainChanged","accountsChanged","message","disconnect","connect"],lM=async()=>{let{createAppKit:e}=await i.e(59899).then(i.bind(i,59899));return e};var lB=Object.defineProperty,lz=Object.defineProperties,lH=Object.getOwnPropertyDescriptors,lV=Object.getOwnPropertySymbols,lK=Object.prototype.hasOwnProperty,lF=Object.prototype.propertyIsEnumerable,lG=(e,t,i)=>t in e?lB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,lW=(e,t)=>{for(var i in t||(t={}))lK.call(t,i)&&lG(e,i,t[i]);if(lV)for(var i of lV(t))lF.call(t,i)&&lG(e,i,t[i]);return e},lJ=(e,t,i)=>lG(e,"symbol"!=typeof t?t+"":t,i);function lY(e){return Number(e[0].split(":")[1])}function lZ(e){return`0x${e.toString(16)}`}class lQ{constructor(){lJ(this,"events",new l.EventEmitter),lJ(this,"namespace","eip155"),lJ(this,"accounts",[]),lJ(this,"signer"),lJ(this,"chainId",1),lJ(this,"modal"),lJ(this,"rpc"),lJ(this,"STORAGE_KEY","wc@2:ethereum_provider:"),lJ(this,"on",(e,t)=>(this.events.on(e,t),this)),lJ(this,"once",(e,t)=>(this.events.once(e,t),this)),lJ(this,"removeListener",(e,t)=>(this.events.removeListener(e,t),this)),lJ(this,"off",(e,t)=>(this.events.off(e,t),this)),lJ(this,"parseAccount",e=>this.isCompatibleChainId(e)?this.parseAccountId(e).address:e),this.signer={},this.rpc={}}static async init(e){let t=new lQ;return await t.initialize(e),t}async request(e,t){return await this.signer.request(e,this.formatChainId(this.chainId),t)}sendAsync(e,t,i){this.signer.sendAsync(e,t,this.formatChainId(this.chainId),i)}get connected(){return!!this.signer.client&&this.signer.client.core.relayer.connected}get connecting(){return!!this.signer.client&&this.signer.client.core.relayer.connecting}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(e){var t;if(!this.signer.client)throw Error("Provider not initialized. Call init() first");this.loadConnectOpts(e);let{required:i,optional:r}=function(e){let{chains:t,optionalChains:i,methods:r,optionalMethods:s,events:n,optionalEvents:o,rpcMap:a}=e;if(!rb(t))throw Error("Invalid chains");let l={chains:t,methods:r||lD,events:n||lU,rpcMap:lW({},t.length?{[lY(t)]:a[lY(t)]}:{})},c=n?.filter(e=>!lU.includes(e)),h=r?.filter(e=>!lD.includes(e));if(!i&&!o&&!s&&!(null!=c&&c.length)&&!(null!=h&&h.length))return{required:t.length?l:void 0};let u={chains:[...new Set(c?.length&&h?.length||!i?l.chains.concat(i||[]):i)],methods:[...new Set(l.methods.concat(null!=s&&s.length?s:l$))],events:[...new Set(l.events.concat(null!=o&&o.length?o:lL))],rpcMap:a};return{required:t.length?l:void 0,optional:i.length?u:void 0}}(this.rpc);try{let t=await new Promise(async(t,s)=>{var n,o;let a,l;this.rpc.showQrModal&&(null==(n=this.modal)||n.open(),null==(o=this.modal)||o.subscribeState(e=>{e.open||this.signer.session||(this.signer.abortPairingAttempt(),s(Error("Connection request reset. Please try again.")))}));let c=null!=e&&e.scopedProperties?{[this.namespace]:e.scopedProperties}:void 0;await this.signer.connect((a=lW({namespaces:lW({},i&&{[this.namespace]:i})},r&&{optionalNamespaces:{[this.namespace]:r}}),l={pairingTopic:e?.pairingTopic,scopedProperties:c},lz(a,lH(l)))).then(e=>{t(e)}).catch(e=>{var t;null==(t=this.modal)||t.showErrorMessage("Unable to connect"),s(Error(e.message))})});if(!t)return;let s=I(t.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:s),this.setAccounts(s),this.events.emit("connect",{chainId:lZ(this.chainId)})}catch(e){throw this.signer.logger.error(e),e}finally{null==(t=this.modal)||t.close()}}async authenticate(e,t){var i;if(!this.signer.client)throw Error("Provider not initialized. Call init() first");this.loadConnectOpts({chains:e?.chains});try{let i=await new Promise(async(i,r)=>{var s,n;let o,a;this.rpc.showQrModal&&(null==(s=this.modal)||s.open(),null==(n=this.modal)||n.subscribeState(e=>{e.open||this.signer.session||(this.signer.abortPairingAttempt(),r(Error("Connection request reset. Please try again.")))})),await this.signer.authenticate((o=lW({},e),a={chains:this.rpc.chains},lz(o,lH(a))),t).then(e=>{i(e)}).catch(e=>{var t;null==(t=this.modal)||t.showErrorMessage("Unable to connect"),r(Error(e.message))})}),r=i.session;if(r){let e=I(r.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:e),this.setAccounts(e),this.events.emit("connect",{chainId:lZ(this.chainId)})}return i}catch(e){throw this.signer.logger.error(e),e}finally{null==(i=this.modal)||i.close()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",e=>{let{params:t}=e,{event:i}=t;"accountsChanged"===i.name?(this.accounts=this.parseAccounts(i.data),this.events.emit("accountsChanged",this.accounts)):"chainChanged"===i.name?this.setChainId(this.formatChainId(i.data)):this.events.emit(i.name,i.data),this.events.emit("session_event",e)}),this.signer.on("accountsChanged",e=>{this.accounts=this.parseAccounts(e),this.events.emit("accountsChanged",this.accounts)}),this.signer.on("chainChanged",e=>{let t=parseInt(e);this.chainId=t,this.events.emit("chainChanged",lZ(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",lz(lW({},rm("USER_DISCONNECTED")),lH({data:e.topic,name:"USER_DISCONNECTED"})))}),this.signer.on("display_uri",e=>{this.events.emit("display_uri",e)})}switchEthereumChain(e){this.request({method:"wallet_switchEthereumChain",params:[{chainId:e.toString(16)}]})}isCompatibleChainId(e){return"string"==typeof e&&e.startsWith(`${this.namespace}:`)}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(":")[1])}setChainIds(e){let t=e.filter(e=>this.isCompatibleChainId(e)).map(e=>this.parseChainId(e));t.length&&(this.chainId=t[0],this.events.emit("chainChanged",lZ(this.chainId)),this.persist())}setChainId(e){if(this.isCompatibleChainId(e)){let t=this.parseChainId(e);this.chainId=t,this.switchEthereumChain(t)}}parseAccountId(e){let[t,i,r]=e.split(":");return{chainId:`${t}:${i}`,address:r}}setAccounts(e){this.accounts=e.filter(e=>this.parseChainId(this.parseAccountId(e).chainId)===this.chainId).map(e=>this.parseAccountId(e).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(e){var t,i;let r=null!=(t=e?.chains)?t:[],s=null!=(i=e?.optionalChains)?i:[],n=r.concat(s);if(!n.length)throw Error("No chains specified in either `chains` or `optionalChains`");let o=r.length?e?.methods||lD:[],a=r.length?e?.events||lU:[],l=e?.optionalMethods||[],c=e?.optionalEvents||[],h=e?.rpcMap||this.buildRpcMap(n,e.projectId),u=e?.qrModalOptions||void 0;return{chains:r?.map(e=>this.formatChainId(e)),optionalChains:s.map(e=>this.formatChainId(e)),methods:o,events:a,optionalMethods:l,optionalEvents:c,rpcMap:h,showQrModal:!!(null!=e&&e.showQrModal),qrModalOptions:u,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,t){let i={};
10return e.forEach(e=>{i[e]=this.getRpcUrl(e,t)}),i}async initialize(e){if(this.rpc=this.getRpcConfig(e),this.chainId=this.rpc.chains.length?lY(this.rpc.chains):lY(this.rpc.optionalChains),this.signer=await lk.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:e.disableProviderPing,relayUrl:e.relayUrl,storage:e.storage,storageOptions:e.storageOptions,customStoragePrefix:e.customStoragePrefix,telemetryEnabled:e.telemetryEnabled,logger:e.logger}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let e;try{let t,i,r,s,n=await lM(),{convertWCMToAppKitOptions:o}=await Promise.resolve().then(function(){return ce}),a=o((t=lW({},this.rpc.qrModalOptions),i={chains:[...new Set([...this.rpc.chains,...this.rpc.optionalChains])],metadata:this.rpc.metadata,projectId:this.rpc.projectId},lz(t,lH(i))));if(!a.networks.length)throw Error("No networks found for WalletConnect\xb7");e=n((r=lW({},a),s={universalProvider:this.signer,manualWCControl:!0},lz(r,lH(s))))}catch(e){throw console.warn(e),Error("To use QR modal, please install @reown/appkit package")}if(e)try{this.modal=e}catch(e){throw this.signer.logger.error(e),Error("Could not generate WalletConnectModal Instance")}}}loadConnectOpts(e){if(!e)return;let{chains:t,optionalChains:i,rpcMap:r}=e;t&&rb(t)&&(this.rpc.chains=t.map(e=>this.formatChainId(e)),t.forEach(e=>{this.rpc.rpcMap[e]=r?.[e]||this.getRpcUrl(e)})),i&&rb(i)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=i?.map(e=>this.formatChainId(e)),i.forEach(e=>{this.rpc.rpcMap[e]=r?.[e]||this.getRpcUrl(e)}))}getRpcUrl(e,t){var i;return(null==(i=this.rpc.rpcMap)?void 0:i[e])||`https://rpc.walletconnect.org/v1/?chainId=eip155:${e}&projectId=${t||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{let e=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),t=this.session.namespaces[`${this.namespace}:${e}`]?this.session.namespaces[`${this.namespace}:${e}`]:this.session.namespaces[this.namespace];this.setChainIds(e?[this.formatChainId(e)]:t?.accounts),this.setAccounts(t?.accounts)}catch(e){this.signer.logger.error("Failed to load persisted session, clearing state..."),this.signer.logger.error(e),await this.disconnect().catch(e=>this.signer.logger.warn(e))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(e){return"string"==typeof e||e instanceof String?[this.parseAccount(e)]:e.map(e=>this.parseAccount(e))}}let lX=lQ;var l0=Object.defineProperty,l1=Object.defineProperties,l2=Object.getOwnPropertyDescriptors,l8=Object.getOwnPropertySymbols,l3=Object.prototype.hasOwnProperty,l5=Object.prototype.propertyIsEnumerable,l6=(e,t,i)=>t in e?l0(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,l4=(e,t)=>{for(var i in t||(t={}))l3.call(t,i)&&l6(e,i,t[i]);if(l8)for(var i of l8(t))l5.call(t,i)&&l6(e,i,t[i]);return e};let l9=e=>{let[t,i]=e.split(":");return l7({id:i,caipNetworkId:e,chainNamespace:t,name:"",nativeCurrency:{name:"",symbol:"",decimals:8},rpcUrls:{default:{http:["https://rpc.walletconnect.org/v1"]}}})};function l7(e){return l4({formatters:void 0,fees:void 0,serializers:void 0},e)}var ce=Object.freeze({__proto__:null,convertWCMToAppKitOptions:function(e){var t,i,r,s,n,o,a;let l=null==(t=e.chains)?void 0:t.map(l9).filter(Boolean);if(0===l.length)throw Error("At least one chain must be specified");let c=l.find(t=>{var i;return t.id===(null==(i=e.defaultChain)?void 0:i.id)}),h={projectId:e.projectId,networks:l,themeMode:e.themeMode,themeVariables:function(e){if(e)return{"--w3m-font-family":e["--wcm-font-family"],"--w3m-accent":e["--wcm-accent-color"],"--w3m-color-mix":e["--wcm-background-color"],"--w3m-z-index":e["--wcm-z-index"]?Number(e["--wcm-z-index"]):void 0,"--w3m-qr-color":e["--wcm-accent-color"],"--w3m-font-size-master":e["--wcm-text-medium-regular-size"],"--w3m-border-radius-master":e["--wcm-container-border-radius"],"--w3m-color-mix-strength":0}}(e.themeVariables),chainImages:e.chainImages,connectorImages:e.walletImages,defaultNetwork:c,metadata:l1(l4({},e.metadata),l2({name:(null==(i=e.metadata)?void 0:i.name)||"WalletConnect",description:(null==(r=e.metadata)?void 0:r.description)||"Connect to WalletConnect-compatible wallets",url:(null==(s=e.metadata)?void 0:s.url)||"https://walletconnect.org",icons:(null==(n=e.metadata)?void 0:n.icons)||["https://walletconnect.org/walletconnect-logo.png"]})),showWallets:!0,featuredWalletIds:"NONE"===e.explorerRecommendedWalletIds?[]:Array.isArray(e.explorerRecommendedWalletIds)?e.explorerRecommendedWalletIds:[],excludeWalletIds:"ALL"===e.explorerExcludedWalletIds?[]:Array.isArray(e.explorerExcludedWalletIds)?e.explorerExcludedWalletIds:[],enableEIP6963:!1,enableInjected:!1,enableCoinbase:!0,enableWalletConnect:!0,features:{email:!1,socials:!1}};if(null!=(o=e.mobileWallets)&&o.length||null!=(a=e.desktopWallets)&&a.length){let t=[...(e.mobileWallets||[]).map(e=>({id:e.id,name:e.name,links:e.links})),...(e.desktopWallets||[]).map(e=>({id:e.id,name:e.name,links:{native:e.links.native,universal:e.links.universal}}))],i=[...h.featuredWalletIds||[],...h.excludeWalletIds||[]],r=t.filter(e=>!i.includes(e.id));r.length&&(h.customWallets=r)}return h},defineChain:l7})},21725:(e,t,i)=>{"use strict";i.d(t,{A:()=>m,V:()=>m});var r=i(97065),s=i(59959),n=i.n(s),o=i(43128),a=i(51642),l=Object.defineProperty,c=Object.defineProperties,h=Object.getOwnPropertyDescriptors,u=Object.getOwnPropertySymbols,p=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable,g=(e,t,i)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,f=(e,t)=>{for(var i in t||(t={}))p.call(t,i)&&g(e,i,t[i]);if(u)for(var i of u(t))d.call(t,i)&&g(e,i,t[i]);return e};let y={headers:{Accept:"application/json","Content-Type":"application/json"},method:"POST"};class m{constructor(e,t=!1){if(this.url=e,this.disableProviderPing=t,this.events=new r.EventEmitter,this.isAvailable=!1,this.registering=!1,!(0,a.isHttpUrl)(e))throw Error(`Provided URL is not compatible with HTTP connection: ${e}`);this.url=e,this.disableProviderPing=t}
10get connected(){return this.isAvailable}get connecting(){return this.registering}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async open(e=this.url){await this.register(e)}async close(){if(!this.isAvailable)throw Error("Connection already closed");this.onClose()}async send(e){this.isAvailable||await this.register();try{let t,i,r=(0,o.h)(e),s=await (await n()(this.url,(t=f({},y),i={body:r},c(t,h(i))))).json();this.onPayload({data:s})}catch(t){this.onError(e.id,t)}}async register(e=this.url){if(!(0,a.isHttpUrl)(e))throw Error(`Provided URL is not compatible with HTTP connection: ${e}`);if(this.registering){let e=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=e||this.events.listenerCount("open")>=e)&&this.events.setMaxListeners(e+1),new Promise((e,t)=>{this.events.once("register_error",e=>{this.resetMaxListeners(),t(e)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.isAvailable>"u")return t(Error("HTTP connection is missing or invalid"));e()})})}this.url=e,this.registering=!0;try{if(!this.disableProviderPing){let t,i,r=(0,o.h)({id:1,jsonrpc:"2.0",method:"test",params:[]});await n()(e,(t=f({},y),i={body:r},c(t,h(i))))}this.onOpen()}catch(t){let e=this.parseError(t);throw this.events.emit("register_error",e),this.onClose(),e}}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;let t="string"==typeof e.data?(0,o.j)(e.data):e.data;this.events.emit("payload",t)}onError(e,t){let i=this.parseError(t),r=i.message||i.toString(),s=(0,a.formatJsonRpcError)(e,r);this.events.emit("payload",s)}parseError(e,t=this.url){return(0,a.parseConnectionError)(e,t,"HTTP")}resetMaxListeners(){this.events.getMaxListeners()>10&&this.events.setMaxListeners(10)}}},23854:(e,t,i)=>{"use strict";i.d(t,{Vw:()=>p,Fc:()=>c,Id:()=>u,O8:()=>o,qv:()=>l,po:()=>g,Ow:()=>a,ZJ:()=>h,DH:()=>n,ld:()=>d});let r="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;var s=i(83748);function n(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function o(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function a(e,t){return e<<32-t|e>>>t}let l=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0];function c(e){for(let i=0;i<e.length;i++){var t;e[i]=(t=e[i])<<24&0xff000000|t<<8&0xff0000|t>>>8&65280|t>>>24&255}}function h(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array(new TextEncoder().encode(e))}(e)),(0,s.DO)(e),e}function u(...e){let t=0;for(let i=0;i<e.length;i++){let r=e[i];(0,s.DO)(r),t+=r.length}let i=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let s=e[t];i.set(s,r),r+=s.length}return i}class p{clone(){return this._cloneInto()}}function d(e){let t=t=>e().update(h(t)).digest(),i=e();return t.outputLen=i.outputLen,t.blockLen=i.blockLen,t.create=()=>e(),t}function g(e=32){if(r&&"function"==typeof r.getRandomValues)return r.getRandomValues(new Uint8Array(e));if(r&&"function"==typeof r.randomBytes)return r.randomBytes(e);throw Error("crypto.getRandomValues must be defined")}},31634:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>r});let r=function(e){if(e.length>=255)throw TypeError("Alphabet too long");let t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let i=0;i<e.length;i++){let r=e.charAt(i),s=r.charCodeAt(0);if(255!==t[s])throw TypeError(r+" is ambiguous");t[s]=i}let i=e.length,r=e.charAt(0),s=Math.log(i)/Math.log(256),n=Math.log(256)/Math.log(i);function o(e){if("string"!=typeof e)throw TypeError("Expected String");if(0===e.length)return new Uint8Array;let n=0,o=0,a=0;for(;e[n]===r;)o++,n++;let l=(e.length-n)*s+1>>>0,c=new Uint8Array(l);for(;n<e.length;){let r=e.charCodeAt(n);if(r>255)return;let s=t[r];if(255===s)return;let o=0;for(let e=l-1;(0!==s||o<a)&&-1!==e;e--,o++)s+=i*c[e]>>>0,c[e]=s%256>>>0,s=s/256>>>0;if(0!==s)throw Error("Non-zero carry");a=o,n++}let h=l-a;for(;h!==l&&0===c[h];)h++;let u=new Uint8Array(o+(l-h)),p=o;for(;h!==l;)u[p++]=c[h++];return u}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError("Expected Uint8Array");if(0===t.length)return"";let s=0,o=0,a=0,l=t.length;for(;
10a!==l&&0===t[a];)a++,s++;let c=(l-a)*n+1>>>0,h=new Uint8Array(c);for(;a!==l;){let e=t[a],r=0;for(let t=c-1;(0!==e||r<o)&&-1!==t;t--,r++)e+=256*h[t]>>>0,h[t]=e%i>>>0,e=e/i>>>0;if(0!==e)throw Error("Non-zero carry");o=r,a++}let u=c-o;for(;u!==c&&0===h[u];)u++;let p=r.repeat(s);for(;u<c;++u)p+=e.charAt(h[u]);return p},decodeUnsafe:o,decode:function(e){let t=o(e);if(t)return t;throw Error("Non-base"+i+" character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},49092:e=>{"use strict";function t(e){try{return JSON.stringify(e)}catch(e){return'"[Circular]"'}}e.exports=function(e,i,r){var s=r&&r.stringify||t;if("object"==typeof e&&null!==e){var n=i.length+1;if(1===n)return e;var o=Array(n);o[0]=s(e);for(var a=1;a<n;a++)o[a]=s(i[a]);return o.join(" ")}if("string"!=typeof e)return e;var l=i.length;if(0===l)return e;for(var c="",h=0,u=-1,p=e&&e.length||0,d=0;d<p;){if(37===e.charCodeAt(d)&&d+1<p){switch(u=u>-1?u:0,e.charCodeAt(d+1)){case 100:case 102:if(h>=l||null==i[h])break;u<d&&(c+=e.slice(u,d)),c+=Number(i[h]),u=d+2,d++;break;case 105:if(h>=l||null==i[h])break;u<d&&(c+=e.slice(u,d)),c+=Math.floor(Number(i[h])),u=d+2,d++;break;case 79:case 111:case 106:if(h>=l||void 0===i[h])break;u<d&&(c+=e.slice(u,d));var g=typeof i[h];if("string"===g){c+="'"+i[h]+"'",u=d+2,d++;break}if("function"===g){c+=i[h].name||"<anonymous>",u=d+2,d++;break}c+=s(i[h]),u=d+2,d++;break;case 115:if(h>=l)break;u<d&&(c+=e.slice(u,d)),c+=String(i[h]),u=d+2,d++;break;case 37:u<d&&(c+=e.slice(u,d)),c+="%",u=d+2,d++,h--}++h}++d}return -1===u?e:(u<p&&(c+=e.slice(u)),c)}},53295:(e,t,i)=>{"use strict";let r=i(49092);e.exports=n;let s=function(){function e(e){return void 0!==e&&e}try{if("u">typeof globalThis)return globalThis;return Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(t){return e(self)||e(window)||e(this)||{}}}().console||{};function n(e){var t,i;(e=e||{}).browser=e.browser||{};let r=e.browser.transmit;if(r&&"function"!=typeof r.send)throw Error("pino: transmit option must have a send function");let h=e.browser.write||s;e.browser.write&&(e.browser.asObject=!0);let u=e.serializers||{},f=(t=e.browser.serialize,Array.isArray(t)?t.filter(function(e){return"!stdSerializers.err"!==e}):!0===t&&Object.keys(u)),y=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(y=!1),"function"==typeof h&&(h.error=h.fatal=h.warn=h.info=h.debug=h.trace=h),!1===e.enabled&&(e.level="silent");let m=e.level||"info",b=Object.create(h);b.log||(b.log=p),Object.defineProperty(b,"levelVal",{get:function(){return"silent"===this.level?1/0:this.levels.values[this.level]}}),Object.defineProperty(b,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,o(w,b,"error","log"),o(w,b,"fatal","error"),o(w,b,"warn","error"),o(w,b,"info","log"),o(w,b,"debug","log"),o(w,b,"trace","log")}});let w={transmit:r,serialize:f,asObject:e.browser.asObject,levels:["error","fatal","warn","info","debug","trace"],timestamp:"function"==typeof(i=e).timestamp?i.timestamp:!1===i.timestamp?d:g};return b.levels=n.levels,b.level=m,b.setMaxListeners=b.getMaxListeners=b.emit=b.addListener=b.on=b.prependListener=b.once=b.prependOnceListener=b.removeListener=b.removeAllListeners=b.listeners=b.listenerCount=b.eventNames=b.write=b.flush=p,b.serializers=u,b._serialize=f,b._stdErrSerialize=y,b.child=function(t,i){if(!t)throw Error("missing bindings for child Pino");i=i||{},f&&t.serializers&&(i.serializers=t.serializers);let s=i.serializers;if(f&&s){var n=Object.assign({},u,s),o=!0===e.browser.serialize?Object.keys(n):f;delete t.serializers,a([t],o,n,this._stdErrSerialize)}function h(e){this._childLevel=(0|e._childLevel)+1,this.error=l(e,t,"error"),this.fatal=l(e,t,"fatal"),this.warn=l(e,t,"warn"),this.info=l(e,t,"info"),this.debug=l(e,t,"debug"),this.trace=l(e,t,"trace"),n&&(this.serializers=n,this._serialize=o),r&&(this._logEvent=c([].concat(e._logEvent.bindings,t)))}return h.prototype=this,new h(this)},r&&(b._logEvent=c()),b}function o(e,t,i,o){let l=Object.getPrototypeOf(t);t[i]=t.levelVal>t.levels.values[i]?p:l[i]?l[i]:s[i]||s[o]||p,function(e,t,i){if(e.transmit||t[i]!==p){var o;t[i]=(o=t[i],function(){let l=e.timestamp(),h=Array(arguments.length),u=Object.getPrototypeOf&&Object.getPrototypeOf(this)===s?
10s:this;for(var p,d,g,f=0;f<h.length;f++)h[f]=arguments[f];if(e.serialize&&!e.asObject&&a(h,this._serialize,this.serializers,this._stdErrSerialize),e.asObject?o.call(u,function(e,t,i,s){e._serialize&&a(i,e._serialize,e.serializers,e._stdErrSerialize);let o=i.slice(),l=o[0],c={};s&&(c.time=s),c.level=n.levels.values[t];let h=(0|e._childLevel)+1;if(h<1&&(h=1),null!==l&&"object"==typeof l){for(;h--&&"object"==typeof o[0];)Object.assign(c,o.shift());l=o.length?r(o.shift(),o):void 0}else"string"==typeof l&&(l=r(o.shift(),o));return void 0!==l&&(c.msg=l),c}(this,i,h,l)):o.apply(u,h),e.transmit){let r,s,o,u,f,y,m=e.transmit.level||t.level,b=n.levels.values[m],w=n.levels.values[i];if(w<b)return;p=this,d={ts:l,methodLevel:i,methodValue:w,transmitLevel:m,transmitValue:n.levels.values[e.transmit.level||t.level],send:e.transmit.send,val:t.levelVal},g=h,r=d.send,s=d.ts,o=d.methodLevel,u=d.methodValue,f=d.val,y=p._logEvent.bindings,a(g,p._serialize||Object.keys(p.serializers),p.serializers,void 0===p._stdErrSerialize||p._stdErrSerialize),p._logEvent.ts=s,p._logEvent.messages=g.filter(function(e){return -1===y.indexOf(e)}),p._logEvent.level.label=o,p._logEvent.level.value=u,r(o,p._logEvent,f),p._logEvent=c(y)}})}}(e,t,i)}function a(e,t,i,r){for(let s in e)if(r&&e[s]instanceof Error)e[s]=n.stdSerializers.err(e[s]);else if("object"==typeof e[s]&&!Array.isArray(e[s]))for(let r in e[s])t&&t.indexOf(r)>-1&&r in i&&(e[s][r]=i[r](e[s][r]))}function l(e,t,i){return function(){let r=Array(1+arguments.length);r[0]=t;for(var s=1;s<r.length;s++)r[s]=arguments[s-1];return e[i].apply(this,r)}}function c(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function h(){return{}}function u(e){return e}function p(){}function d(){return!1}function g(){return Date.now()}n.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},n.stdSerializers={mapHttpRequest:h,mapHttpResponse:h,wrapRequestSerializer:u,wrapResponseSerializer:u,wrapErrorSerializer:u,req:h,res:h,err:function(e){let t={type:e.constructor.name,msg:e.message,stack:e.stack};for(let i in e)void 0===t[i]&&(t[i]=e[i]);return t}},n.stdTimeFunctions=Object.assign({},{nullTime:d,epochTime:g,unixTime:function(){return Math.round(Date.now()/1e3)},isoTime:function(){return new Date(Date.now()).toISOString()}})},59959:(e,t,i)=>{var r="u">typeof globalThis&&globalThis||"u">typeof self&&self||void 0!==i.g&&i.g,s=function(){function e(){this.fetch=!1,this.DOMException=r.DOMException}return e.prototype=r,new e}();(function(e){var t=void 0!==s&&s||"u">typeof self&&self||void 0!==i.g&&i.g||{},r={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};if(r.arrayBuffer)var n=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],o=ArrayBuffer.isView||function(e){return e&&n.indexOf(Object.prototype.toString.call(e))>-1};function a(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function l(e){return"string"!=typeof e&&(e=String(e)),e}function c(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return r.iterable&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){if(2!=e.length)throw TypeError("Headers constructor: expected name/value pair to be length 2, found"+e.length);this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function u(e){if(!e._noBody){if(e.bodyUsed)return Promise.reject(TypeError("Already read"));e.bodyUsed=!0}}function p(e){return new Promise(function(t,i){e.onload=function(){t(e.result)},e.onerror=function(){i(e.error)}})}function d(e){var t=new FileReader,i=p(t);return t.readAsArrayBuffer(e),i}function g(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function f(){return this.bodyUsed=!1,this._initBody=function(e){if(this.bodyUsed=this.bodyUsed,this._bodyInit=e,e)if("string"==typeof e)this._bodyText=e;else if(r.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(r.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(r.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else{var t;r.arrayBuffer&&r.blob&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=g(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):r.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||o(e))?this._bodyArrayBuffer=g(e):this._bodyText=e=Object.prototype.toString.call(e)}else this._noBody=!0,this._bodyText="";!this.headers.get("content-type")&&("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},r.blob&&(this.blob=function(){var e=u(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(!this._bodyFormData)return Promise.resolve(new Blob([this._bodyText]));throw Error("could not read FormData body as blob")}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=u(this);return e||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}if(r.blob)return this.blob().then(d);throw Error("could not read as ArrayBuffer")},this.text=function(){var e,t,i,r,s,n=u(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,i=p(t=new FileReader),s=(r=/charset=([A-Za-z0-9_-]+)/.exec(e.type))?r[1]:"utf-8",t.readAsText(e,s),i;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),i=Array(t.length),r=0;r<t.length;r++)i[r]=String.fromCharCode(t[r]);return i.join("")}(this._bodyArrayBuffer));if(!this._bodyFormData)return Promise.resolve(this._bodyText);throw Error("could not read FormData body as text")},r.formData&&(this.formData=function(){return this.text().then(b)}),this.json=function(){return this.text().then(JSON.parse)},this}h.prototype.append=function(e,t){e=a(e),t=l(t);var i=this.map[e];this.map[e]=i?i+", "+t:t},h.prototype.delete=function(e){delete this.map[a(e)]},h.prototype.get=function(e){return e=a(e),this.has(e)?this.map[e]:null},h.prototype.has=function(e){return this.map.hasOwnProperty(a(e))},h.prototype.set=function(e,t){this.map[a(e)]=l(t)},h.prototype.forEach=function(e,t){for(var i in this.map)this.map.hasOwnProperty(i)&&e.call(t,this.map[i],i,this)},h.prototype.keys=function(){var e=[];return this.forEach(function(t,i){e.push(i)}),c(e)},h.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),c(e)},h.prototype.entries=function(){var e=[];return this.forEach(function(t,i){e.push([i,t])}),c(e)},r.iterable&&(h.prototype[Symbol.iterator]=h.prototype.entries);var y=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function m(e,i){if(!(this instanceof m))throw TypeError('Please use the "new" operator, this DOM object c
10onstructor cannot be called as a function.');var r,s,n=(i=i||{}).body;if(e instanceof m){if(e.bodyUsed)throw TypeError("Already read");this.url=e.url,this.credentials=e.credentials,i.headers||(this.headers=new h(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=i.credentials||this.credentials||"same-origin",(i.headers||!this.headers)&&(this.headers=new h(i.headers)),this.method=(s=(r=i.method||this.method||"GET").toUpperCase(),y.indexOf(s)>-1?s:r),this.mode=i.mode||this.mode||null,this.signal=i.signal||this.signal||function(){if("AbortController"in t)return new AbortController().signal}(),this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(n),("GET"===this.method||"HEAD"===this.method)&&("no-store"===i.cache||"no-cache"===i.cache)){var o=/([?&])_=[^&]*/;o.test(this.url)?this.url=this.url.replace(o,"$1_="+new Date().getTime()):this.url+=(/\?/.test(this.url)?"&":"?")+"_="+new Date().getTime()}}function b(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var i=e.split("="),r=i.shift().replace(/\+/g," "),s=i.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(s))}}),t}function w(e,t){if(!(this instanceof w))throw TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.status<200||this.status>599)throw RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}m.prototype.clone=function(){return new m(this,{body:this._bodyInit})},f.call(m.prototype),f.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},w.error=function(){var e=new w(null,{status:200,statusText:""});return e.ok=!1,e.status=0,e.type="error",e};var v=[301,302,303,307,308];w.redirect=function(e,t){if(-1===v.indexOf(t))throw RangeError("Invalid status code");return new w(null,{status:t,headers:{location:e}})},e.DOMException=t.DOMException;try{new e.DOMException}catch(t){e.DOMException=function(e,t){this.message=e,this.name=t;var i=Error(e);this.stack=i.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function E(i,s){return new Promise(function(n,o){var c=new m(i,s);if(c.signal&&c.signal.aborted)return o(new e.DOMException("Aborted","AbortError"));var u=new XMLHttpRequest;function p(){u.abort()}if(u.onload=function(){var e,t,i={statusText:u.statusText,headers:(e=u.getAllResponseHeaders()||"",t=new h,e.replace(/\r?\n[\t ]+/g," ").split("\r").map(function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e}).forEach(function(e){var i=e.split(":"),r=i.shift().trim();if(r){var s=i.join(":").trim();try{t.append(r,s)}catch(e){console.warn("Response "+e.message)}}}),t)};0===c.url.indexOf("file://")&&(u.status<200||u.status>599)?i.status=200:i.status=u.status,i.url="responseURL"in u?u.responseURL:i.headers.get("X-Request-URL");var r="response"in u?u.response:u.responseText;setTimeout(function(){n(new w(r,i))},0)},u.onerror=function(){setTimeout(function(){o(TypeError("Network request failed"))},0)},u.ontimeout=function(){setTimeout(function(){o(TypeError("Network request timed out"))},0)},u.onabort=function(){setTimeout(function(){o(new e.DOMException("Aborted","AbortError"))},0)},u.open(c.method,function(e){try{return""===e&&t.location.href?t.location.href:e}catch(t){return e}}(c.url),!0),"include"===c.credentials?u.withCredentials=!0:"omit"===c.credentials&&(u.withCredentials=!1),"responseType"in u&&(r.blob?u.responseType="blob":r.arrayBuffer&&(u.responseType="arraybuffer")),s&&"object"==typeof s.headers&&!(s.headers instanceof h||t.Headers&&s.headers instanceof t.Headers)){var d=[];
10Object.getOwnPropertyNames(s.headers).forEach(function(e){d.push(a(e)),u.setRequestHeader(e,l(s.headers[e]))}),c.headers.forEach(function(e,t){-1===d.indexOf(t)&&u.setRequestHeader(t,e)})}else c.headers.forEach(function(e,t){u.setRequestHeader(t,e)});c.signal&&(c.signal.addEventListener("abort",p),u.onreadystatechange=function(){4===u.readyState&&c.signal.removeEventListener("abort",p)}),u.send(void 0===c._bodyInit?null:c._bodyInit)})}E.polyfill=!0,t.fetch||(t.fetch=E,t.Headers=h,t.Request=m,t.Response=w),e.Headers=h,e.Request=m,e.Response=w,e.fetch=E,Object.defineProperty(e,"__esModule",{value:!0})})({}),s.fetch.ponyfill=!0,delete s.fetch.polyfill;var n=r.fetch?r:s;(t=n.fetch).default=n.fetch,t.fetch=n.fetch,t.Headers=n.Headers,t.Request=n.Request,t.Response=n.Response,e.exports=t},62123:(e,t,i)=>{"use strict";i.r(t),i.d(t,{__assign:()=>n,__asyncDelegator:()=>v,__asyncGenerator:()=>w,__asyncValues:()=>E,__await:()=>b,__awaiter:()=>h,__classPrivateFieldGet:()=>S,__classPrivateFieldSet:()=>_,__createBinding:()=>p,__decorate:()=>a,__exportStar:()=>d,__extends:()=>s,__generator:()=>u,__importDefault:()=>O,__importStar:()=>
10P,__makeTemplateObject:()=>I,__metadata:()=>c,__param:()=>l,__read:()=>f,__rest:()=>o,__spread:()=>y,__spreadArrays:()=>m,__values:()=>g});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function s(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var n=function(){return(n=Object.assign||function(e){for(var t,i=1,r=arguments.length;i<r;i++)for(var s in t=arguments[i])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};function o(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var s=0,r=Object.getOwnPropertySymbols(e);s<r.length;s++)0>t.indexOf(r[s])&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(i[r[s]]=e[r[s]]);return i}function a(e,t,i,r){var s,n=arguments.length,o=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(o=(n<3?s(o):n>3?s(t,i,o):s(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o}function l(e,t){return function(i,r){t(i,r,e)}}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function h(e,t,i,r){return new(i||(i=Promise))(function(s,n){function o(e){try{l(r.next(e))}catch(e){n(e)}}function a(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):((t=e.value)instanceof i?t:new i(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})}function u(e,t){var i,r,s,n,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return n={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(n[Symbol.iterator]=function(){return this}),n;function a(n){return function(a){var l=[n,a];if(i)throw TypeError("Generator is already executing.");for(;o;)try{if(i=1,r&&(s=2&l[0]?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[2&l[0],s.value]),l[0]){case 0:case 1:s=l;break;case 4:return o.label++,{value:l[1],done:!1};case 5:o.label++,r=l[1],l=[0];continue;case 7:l=o.ops.pop(),o.trys.pop();continue;default:if(!(s=(s=o.trys).length>0&&s[s.length-1])&&(6===l[0]||2===l[0])){o=0;continue}if(3===l[0]&&(!s||l[1]>s[0]&&l[1]<s[3])){o.label=l[1];break}if(6===l[0]&&o.label<s[1]){o.label=s[1],s=l;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(l);break}s[2]&&o.ops.pop(),o.trys.pop();continue}l=t.call(e,o)}catch(e){l=[6,e],r=0}finally{i=s=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function p(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}function d(e,t){for(var i in e)"default"===i||t.hasOwnProperty(i)||(t[i]=e[i])}function g(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],r=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function f(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var r,s,n=i.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(e){s={error:e}}finally{try{r&&!r.done&&(i=n.return)&&i.call(n)}finally{if(s)throw s.error}}return o}function y(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(f(arguments[t]));return e}function m(){for(var e=0,t=0,i=arguments.length;t<i;t++)e+=arguments[t].length;for(var r=Array(e),s=0,t=0;t<i;t++)for(var n=arguments[t],o=0,a=n.length;o<a;o++,s++)r[s]=n[o];return r}function b(e){return this instanceof b?(this.v=e,this):new b(e)}function w(e,t,i){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var r,s=i.apply(e,t||[]),n=[];return r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r;function o(e){s[e]&&(r[e]=function(t){return new Promise(function(i,r){n.push([e,t,i,r])>1||a(e,t)})})}function a(e,t){try{var i;(i=s[e](t)).value instanceof b?Promise.resolve(i.value.v).then(l,c):h(n[0][2],i)}catch(e){h(n[0][3],e)}}function l(e){a("next",e)}function c(e){a("throw",e)}function h(e,t){e(t),n.shift(),n.length&&a(n[0][0],n[0][1])}}function v(e){var t,i;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,s){t[r]=e[r]?function(t){return(i=!i)?{value:b(e[r](t)),done:"return"===r}:s?s(t):t}:s}}function E(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,i=e[Symbol.asyncIterator];return i?i.call(e):(e=g(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(t){return new Promise(function(r,s){var n,o,a;n=r,o=s,a=(t=e[i](t)).done,Promise.resolve(t.value).then(function(e){n({value:e,done:a})},o)})}}}function I(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}
10function P(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}function O(e){return e&&e.__esModule?e:{default:e}}function S(e,t){if(!t.has(e))throw TypeError("attempted to get private field on non-instance");return t.get(e)}function _(e,t,i){if(!t.has(e))throw TypeError("attempted to set private field on non-instance");return t.set(e,i),i}},83748:(e,t,i)=>{"use strict";function r(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function s(e,...t){if(!(e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function n(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.wrapConstructor");r(e.outputLen),r(e.blockLen)}function o(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function a(e,t){s(e);let i=t.outputLen;if(e.length<i)throw Error("digestInto() expects output buffer of length at least "+i)}i.d(t,{CC:()=>o,DO:()=>s,Fe:()=>r,Ht:()=>a,sd:()=>n})}}]);
11//# sourceMappingURL=19996.8b4ee03b3c7d9b0c.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.