1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="7c1aaa56-cbd3-24e5-8ee8-2e7920882d1d")}catch(e){}}(); 2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102232,(e,t,i)=>{"use strict";let r=e.r(71187);t.exports=h;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,t){return"silent"===e?1/0:t.levels.values[e]}let o=Symbol("pino.logFuncs"),a=Symbol("pino.hierarchy"),l={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function c(e,t){let i={logger:t,parent:e[a]};t[a]=i}function h(e){var t,i,r;let a,f,g;(e=e||{}).browser=e.browser||{};let y=e.browser.transmit;if(y&&"function"!=typeof y.send)throw Error("pino: transmit option must have a send function");let v=e.browser.write||s;e.browser.write&&(e.browser.asObject=!0);let E=e.serializers||{},I=(t=e.browser.serialize,Array.isArray(t)?t.filter(function(e){return"!stdSerializers.err"!==e}):!0===t&&Object.keys(E)),x=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(x=!1);let S=Object.keys(e.customLevels||{}),P=["error","fatal","warn","info","debug","trace"].concat(S);"function"==typeof v&&P.forEach(function(e){v[e]=v}),(!1===e.enabled||e.browser.disabled)&&(e.level="silent");let O=e.level||"info",R=Object.create(v);R.log||(R.log=m),a={},P.forEach(e=>{a[e]=v[e]?v[e]:s[e]||s[l[e]||"log"]||m}),R[o]=a,c({},R),Object.defineProperty(R,"levelVal",{get:function(){return n(this.level,this)}}),Object.defineProperty(R,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,u(this,A,R,"error"),u(this,A,R,"fatal"),u(this,A,R,"warn"),u(this,A,R,"info"),u(this,A,R,"debug"),u(this,A,R,"trace"),S.forEach(e=>{u(this,A,R,e)})}});let A={transmit:y,serialize:I,asObject:e.browser.asObject,asObjectBindingsOnly:e.browser.asObjectBindingsOnly,formatters:e.browser.formatters,levels:P,timestamp:"function"==typeof(i=e).timestamp?i.timestamp:!1===i.timestamp?b:w,messageKey:e.messageKey||"msg",onChild:e.onChild||m};function _(t,i,r){if(!i)throw Error("missing bindings for child Pino");r=r||{},I&&i.serializers&&(r.serializers=i.serializers);let s=r.serializers;if(I&&s){var n=Object.assign({},E,s),o=!0===e.browser.serialize?Object.keys(n):I;delete i.serializers,d([i],o,n,this._stdErrSerialize)}function a(e){this._childLevel=(0|e._childLevel)+1,this.bindings=i,n&&(this.serializers=n,this._serialize=o),y&&(this._logEvent=p([].concat(e._logEvent.bindings,i)))}a.prototype=this;let l=new a(this);return c(this,l),l.child=function(...e){return _.call(this,t,...e)},l.level=r.level||this.level,t.onChild(l),l}return f=e.customLevels||{},R.levels={values:Object.assign({},h.levels.values,f),labels:Object.assign({},h.levels.labels,(g={},Object.keys(r=f).forEach(function(e){g[r[e]]=e}),g))},R.level=O,R.isLevelEnabled=function(e){return!!this.levels.values[e]&&this.levels.values[e]>=this.levels.values[this.level]},R.setMaxListeners=R.getMaxListeners=R.emit=R.addListener=R.on=R.prependListener=R.once=R.prependOnceListener=R.removeListener=R.removeAllListeners=R.listeners=R.listenerCount=R.eventNames=R.write=R.flush=m,R.serializers=E,R._serialize=I,R._stdErrSerialize=x,R.child=function(...e){return _.call(this,A,...e)},y&&(R._logEvent=p()),R}function u(e,t,i,l){var c,h,u,f,g,y,b;if(Object.defineProperty(e,l,{value:n(e.level,i)>n(l,i)?m:i[o][l],writable:!0,enumerable:!0,configurable:!0}),e[l]===m){if(!t.transmit)return;let r=n(t.transmit.level||e.level,i);if(n(l,i)<r)return}e[l]=(c=e,h=t,u=i,f=l,g=c[o][f],function(){let e=h.timestamp(),t=Array(arguments.length),i=Object.getPrototypeOf&&Object.getPrototypeOf(this)===s?
2s:this;for(var o=0;o<t.length;o++)t[o]=arguments[o];var a=!1;if(h.serialize&&(d(t,this._serialize,this.serializers,this._stdErrSerialize),a=!0),h.asObject||h.formatters?g.call(i,...function(e,t,i,s,n){let{level:o,log:a=e=>e}=n.formatters||{},l=i.slice(),c=l[0],h={},u=(0|e._childLevel)+1;if(u<1&&(u=1),s&&(h.time=s),o?Object.assign(h,o(t,e.levels.values[t])):h.level=e.levels.values[t],n.asObjectBindingsOnly){if(null!==c&&"object"==typeof c)for(;u--&&"object"==typeof l[0];)Object.assign(h,l.shift());return[a(h),...l]}if(null!==c&&"object"==typeof c){for(;u--&&"object"==typeof l[0];)Object.assign(h,l.shift());c=l.length?r(l.shift(),l):void 0}else"string"==typeof c&&(c=r(l.shift(),l));return void 0!==c&&(h[n.messageKey]=c),[a(h)]}(this,f,t,e,h)):g.apply(i,t),h.transmit){let i=h.transmit.level||c._level,r=n(i,u),s=n(f,u);if(s<r)return;!function(e,t,i,r=!1){let s=t.send,n=t.ts,o=t.methodLevel,a=t.methodValue,l=t.val,c=e._logEvent.bindings;r||d(i,e._serialize||Object.keys(e.serializers),e.serializers,void 0===e._stdErrSerialize||e._stdErrSerialize),e._logEvent.ts=n,e._logEvent.messages=i.filter(function(e){return -1===c.indexOf(e)}),e._logEvent.level.label=o,e._logEvent.level.value=a,s(o,e._logEvent,l),e._logEvent=p(c)}(this,{ts:e,methodLevel:f,methodValue:s,transmitLevel:i,transmitValue:u.levels.values[h.transmit.level||c._level],send:h.transmit.send,val:n(c._level,u)},t,a)}});let w=function(e){let t=[];e.bindings&&t.push(e.bindings);let i=e[a];for(;i.parent;)(i=i.parent).logger.bindings&&t.push(i.logger.bindings);return t.reverse()}(e);0!==w.length&&(e[l]=(y=w,b=e[l],function(){return b.apply(this,[...y,...arguments])}))}function d(e,t,i,r){for(let s in e)if(r&&e[s]instanceof Error)e[s]=h.stdSerializers.err(e[s]);else if("object"==typeof e[s]&&!Array.isArray(e[s])&&t)for(let r in e[s])t.indexOf(r)>-1&&r in i&&(e[s][r]=i[r](e[s][r]))}function p(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function f(e){let t={type:e.constructor.name,msg:e.message,stack:e.stack};for(let i in e)void 0===t[i]&&(t[i]=e[i]);return t}function g(){return{}}function y(e){return e}function m(){}function b(){return!1}function w(){return Date.now()}h.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"}},h.stdSerializers={mapHttpRequest:g,mapHttpResponse:g,wrapRequestSerializer:y,wrapResponseSerializer:y,wrapErrorSerializer:y,req:g,res:g,err:f,errWithCause:f},h.stdTimeFunctions=Object.assign({},{nullTime:b,epochTime:w,unixTime:function(){return Math.round(Date.now()/1e3)},isoTime:function(){return new Date(Date.now()).toISOString()}}),t.exports.default=h,t.exports.pino=h},278662,e=>{"use strict";var t=e.i(102232),i=e.i(31794);let r="custom_context";var s=Object.defineProperty,n=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?s(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class o{constructor(e){n(this,"nodeValue"),n(this,"sizeInBytes"),n(this,"next"),this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class a{constructor(e){n(this,"lengthInNodes"),n(this,"sizeInBytes"),n(this,"head"),n(this,"tail"),n(this,"maxSizeInBytes"),this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){let t=new o(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}}}}}var l=Object.defineProperty,c=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?l(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class h{constructor(e,i=1024e3){c(this,"logs"),c(this,"level"),c(this,"levelValue"),c(this,"MAX_LOG_SIZE_IN_BYTES"),this.level=e??"error",this.levelValue=t.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=i,this.logs=new a(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,i){i===t.levels.values.error?console.error(e):i===t.levels.values.warn?console.warn(e):i===t.levels.values.debug?console.debug(e):i===t.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append((0,i.safeJsonStringify)({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 a(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){let t=this.getLogArray();return t.push((0,i.safeJsonStringify)({extraMetadata:e})),new Blob(t,{type:"application/json"})}}var u=Object.defineProperty;class d{constructor(e,t=1024e3){((e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?u(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i})(this,"baseChunkLogger"),this.baseChunkLogger=new h(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){let t=URL.createObjectURL(this.logsToBlob(e)),i=document.createElement("a");i.href=t,i.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(t)}}var p=Object.defineProperty;class f{constructor(e,t=1024e3){((e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?p(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i})(this,"baseChunkLogger"),this.baseChunkLogger=new h(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 g=Object.defineProperty,y=Object.defineProperties,m=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable,E=(e,t,i)=>t in e?g(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,I=(e,t)=>{for(var i in t||(t={}))w.call(t,i)&&E(e,i,t[i]);if(b)for(var i of b(t))v.call(t,i)&&E(e,i,t[i]);return e};function x(e){return y(I({},e),m({level:e?.level||"info"}))}function S(e,t=r){return e[t]||""}function P(e,t,i=r){let s=function(e,t,i=r){let s=S(e,i);return s.trim()?`${s}/${t}`:t}(e,t,i);return function(e,t,i=r){return e[i]=t,e}(e.child({context:s}),s,i)}function O(e){var i,r,s,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 d(null==(s=(r=e).opts)?void 0:s.level,r.maxSizeInBytes),{logger:(0,t.default)((a=I({},r.opts),l={level:"trace",browser:y(I({},null==(n=r.opts)?void 0:n.browser),m({write:e=>c.write(e)}))},y(a,m(l)))),chunkLoggerController:c}):(o=new f(null==(i=e.opts)?void 0:i.level,e.maxSizeInBytes),{logger:(0,t.default)(y(I({},e.opts),m({level:"trace"})),o),chunkLoggerController:o})}e.s(["generateChildLogger",()=>P,"generatePlatformLogger",()=>O,"getDefaultLoggerOptions",()=>x,"getLoggerContext",()=>S])},515089,e=>{"use strict";e.i(826606);var t=e.i(81775),i=e.i(219298),r=Object.defineProperty,s=(e,t,i)=>{let s;return(s="symbol"!=typeof t?t+"":t)in e?r(e,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[s]=i};
2class n extends t.IEvents{constructor(e){super(),this.opts=e,s(this,"protocol","wc"),s(this,"version",2)}}var o=Object.defineProperty;class a extends t.IEvents{constructor(e,t){super(),this.core=e,this.logger=t,((e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?o(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i})(this,"records",new Map)}}class l{constructor(e,t){this.logger=e,this.core=t}}class c extends t.IEvents{constructor(e,t){super(),this.relayer=e,this.logger=t}}class h extends t.IEvents{constructor(e){super()}}class u{constructor(e,t,i,r){this.core=e,this.logger=t,this.name=i}}class d extends t.IEvents{constructor(e,t){super(),this.relayer=e,this.logger=t}}class p extends t.IEvents{constructor(e,t){super(),this.core=e,this.logger=t}}class f{constructor(e,t,i){this.core=e,this.logger=t,this.store=i}}class g{constructor(e,t){this.projectId=e,this.logger=t}}class y{constructor(e,t,i){this.core=e,this.logger=t,this.telemetryEnabled=i}}var m=Object.defineProperty,b=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?m(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};i.default;class w{constructor(e){this.opts=e,b(this,"protocol","wc"),b(this,"version",2)}}i.EventEmitter;class v{constructor(e){this.client=e}}e.s(["ICore",()=>n,"IEchoClient",()=>g,"IEngine",()=>v,"IEventClient",()=>y,"IExpirer",()=>p,"IJsonRpcHistory",()=>a,"IMessageTracker",()=>l,"IPublisher",()=>c,"IRelayer",()=>h,"ISignClient",()=>w,"IStore",()=>u,"ISubscriber",()=>d,"IVerify",()=>f])},25883,522568,763830,692844,e=>{"use strict";let t,i;var r,s,n=e.i(44314),o=e.i(470525),a=e.i(140965);let l=BigInt(0),c=BigInt(1);function h(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function u(e){if(!h(e))throw Error("Uint8Array expected")}function d(e,t){if("boolean"!=typeof t)throw Error(e+" boolean expected, got "+t)}function p(e){let t=e.toString(16);return 1&t.length?"0"+t:t}function f(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);return""===e?l:BigInt("0x"+e)}let g="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,y=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function m(e){if(u(e),g)return e.toHex();let t="";for(let i=0;i<e.length;i++)t+=y[e[i]];return t}function b(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function w(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);if(g)return Uint8Array.fromHex(e);let t=e.length,i=t/2;if(t%2)throw Error("hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(i);for(let t=0,s=0;t<i;t++,s+=2){let i=b(e.charCodeAt(s)),n=b(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 v(e){return f(m(e))}function E(e){return u(e),f(m(Uint8Array.from(e).reverse()))}function I(e,t){return w(e.toString(16).padStart(2*t,"0"))}function x(e,t){return I(e,t).reverse()}function S(e,t,i){let r;if("string"==typeof t)try{r=w(t)}catch(t){throw Error(e+" must be hex string or Uint8Array, cause: "+t)}else if(h(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 P(...e){let t=0;for(let i=0;i<e.length;i++){let r=e[i];u(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 O=e=>"bigint"==typeof e&&l<=e;function R(e,t,i){return O(e)&&O(t)&&O(i)&&t<=e&&e<i}function A(e,t,i,r){if(!R(t,i,r))throw Error("expected valid "+e+": "+i+" <= n < "+r+", got "+t)}let _=e=>(c<<BigInt(e))-c,T=e=>new Uint8Array(e),N={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||h(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 C(e,t,i={}){let r=(t,i,r)=>{let s=N[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
2d. 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 B(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}}let j=BigInt(0),q=BigInt(1),k=BigInt(2),U=BigInt(3),L=BigInt(4),D=BigInt(5),$=BigInt(8);function M(e,t){let i=e%t;return i>=j?i:t+i}function V(e,t,i){let r=e;for(;t-- >j;)r*=r,r%=i;return r}function z(e,t){if(e===j)throw Error("invert: expected non-zero number");if(t<=j)throw Error("invert: expected positive modulus, got "+t);let i=M(e,t),r=t,s=j,n=q,o=q,a=j;for(;i!==j;){let e=r/i,t=r%i,l=s-o*e,c=n-a*e;r=i,i=t,s=o,n=a,o=l,a=c}if(r!==q)throw Error("invert: does not exist");return M(s,t)}function K(e,t){let i=(e.ORDER+q)/L,r=e.pow(t,i);if(!e.eql(e.sqr(r),t))throw Error("Cannot find square root");return r}function F(e,t){let i=(e.ORDER-D)/$,r=e.mul(t,k),s=e.pow(r,i),n=e.mul(t,s),o=e.mul(e.mul(n,k),s),a=e.mul(n,e.sub(o,e.ONE));if(!e.eql(e.sqr(a),t))throw Error("Cannot find square root");return a}let H=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function G(e){return C(e,H.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"}))}function J(e,t,i=!1){let r=Array(t.length).fill(i?e.ZERO:void 0),s=t.reduce((t,i,s)=>e.is0(i)?t:(r[s]=t,e.mul(t,i)),e.ONE),n=e.inv(s);return t.reduceRight((t,i,s)=>e.is0(i)?t:(r[s]=e.mul(t,r[s]),e.mul(t,i)),n),r}function Z(e,t){let i=(e.ORDER-q)/k,r=e.pow(t,i),s=e.eql(r,e.ONE),n=e.eql(r,e.ZERO),o=e.eql(r,e.neg(e.ONE));if(!s&&!n&&!o)throw Error("invalid Legendre symbol result");return s?1:n?0:-1}function Y(e,t){void 0!==t&&(0,o.anumber)(t);let i=void 0!==t?t:e.toString(2).length,r=Math.ceil(i/8);return{nBitLength:i,nByteLength:r}}function W(e,t,i=!1,r={}){let s;if(e<=j)throw Error("invalid field: expected ORDER > 0, got "+e);let{nBitLength:n,nByteLength:o}=Y(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:_(n),ZERO:j,ONE:q,create:t=>M(t,e),isValid:t=>{if("bigint"!=typeof t)throw Error("invalid field element: expected bigint, got "+typeof t);return j<=t&&t<e},is0:e=>e===j,isOdd:e=>(e&q)===q,neg:t=>M(-t,e),eql:(e,t)=>e===t,sqr:t=>M(t*t,e),add:(t,i)=>M(t+i,e),sub:(t,i)=>M(t-i,e),mul:(t,i)=>M(t*i,e),pow:(e,t)=>(function(e,t,i){if(i<j)throw Error("invalid exponent, negatives unsupported");if(i===j)return e.ONE;if(i===q)return t;let r=e.ONE,s=t;for(;i>j;)i&q&&(r=e.mul(r,s)),s=e.sqr(s),i>>=q;return r})(a,e,t),div:(t,i)=>M(t*z(i,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>z(t,e),sqrt:r.sqrt||(t=>(s||(s=e%L===U?K:e%$===D?F:function(e){if(e<BigInt(3))throw Error("sqrt is not defined for small field");let t=e-q,i=0;for(;t%k===j;)t/=k,i++;let r=k,s=W(e);for(;1===Z(s,r);)if(r++>1e3)throw Error("Cannot find square root: probably non-prime P");if(1===i)return K;let n=s.pow(r,t),o=(t+q)/k;return function(e,r){if(e.is0(r))return r;if(1!==Z(e,r))throw Error("Cannot find square root");let s=i,a=e.mul(e.ONE,n),l=e.pow(r,t),c=e.pow(r,o);for(;!e.eql(l,e.ONE);){if(e.is0(l))return e.ZERO;let t=1,i=e.sqr(l);for(;!e.eql(i,e.ONE);)if(t++,i=e.sqr(i),t===s)throw Error("Cannot find square root");let r=q<<BigInt(s-t-1),n=e.pow(a,r);s=t,a=e.sqr(n),l=e.mul(l,a),c=e.mul(c,n)}return c}}(e)),s(a,t))),toBytes:e=>i?x(e,o):I(e,o),fromBytes:e=>{if(e.length!==o)throw Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);return i?E(e):v(e)},invertBatch:e=>J(a,e),cmov:(e,t,i)=>i?t:e});return Object.freeze(a)}function Q(e){if("bigint"!=typeof e)throw Error("field order must be bigint");return Math.ceil(e.toString(2).length/8)}function X(e){let t=Q(e);return t+Math.ceil(t/2)}let ee=BigInt(0),et=BigInt(1);function ei(e,t){let i=t.negate();return e?i:t}function er(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error("invalid window size, expected [1.."+t+"], got W="+e)}function es(e,t){er(e,t);let i=Math.ceil(t/e)+1,r=2**(e-1),s=2**e;return{windows:i,windowSize:r,mask:_(e),maxNumber:s,shiftBy:BigInt(e)}}function en(e,t,i){let{windowSize:r,mask:s,maxNumber:n,shiftBy:o}=i,a=Number(e&s),l=e>>o;a>r&&(a-=n,l+=et);let c=t*r,h=c+Math.abs(a)-1,u=0===a;return{nextN:l,offset:h,isZero:u,isNeg:a<0,isNegF:t%2!=0,offsetF:c}}let eo=new WeakMap,ea=new WeakMap;function el(e){return ea.get(e)||1}function ec(e){return G(e.Fp),C(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Y(e.n,e.nBitLength),...e,...{p:e.Fp.ORDER}})}function eh(e){void 0!==e.lowS&&d("lowS",e.lowS),void 0!==e.prehash&&d("prehash",e.prehash)}
vendor: 5,229 bytes, line 2
2let eu={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(e,t)=>{let{Err:i}=eu;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=p(r);if(s.length/2&128)throw new i("tlv.encode: long form length too big");let n=r>127?p(s.length/2|128):"";return p(e)+n+s+t},decode(e,t){let{Err:i}=eu,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}=eu;if(e<ed)throw new t("integer: negative integers are not allowed");let i=p(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}=eu;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 v(e)}},toSig(e){let{Err:t,_int:i,_tlv:r}=eu,s=S("signature",e),{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}=eu,r=t.encode(2,i.encode(e.r)),s=t.encode(2,i.encode(e.s));return t.encode(48,r+s)}},ed=BigInt(0),ep=BigInt(1),ef=BigInt(2),eg=BigInt(3),ey=BigInt(4),em=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),eb=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ew=BigInt(0),ev=BigInt(1),eE=BigInt(2),eI=(e,t)=>(e+t/eE)/t,ex=W(em,void 0,void 0,{sqrt:function(e){let t=BigInt(3),i=BigInt(6),r=BigInt(11),s=BigInt(22),n=BigInt(23),o=BigInt(44),a=BigInt(88),l=e*e*e%em,c=l*l*e%em,h=V(c,t,em)*c%em,u=V(h,t,em)*c%em,d=V(u,eE,em)*l%em,p=V(d,r,em)*d%em,f=V(p,s,em)*p%em,g=V(f,o,em)*f%em,y=V(g,a,em)*g%em,m=V(y,o,em)*f%em,b=V(m,t,em)*c%em,w=V(b,n,em)*p%em,v=V(w,i,em)*l%em,E=V(v,eE,em);if(!ex.eql(ex.sqr(E),e))throw Error("Cannot find square root");return E}}),eS=(r={a:ew,b:BigInt(7),Fp:ex,n:eb,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),i=-ev*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),r=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=BigInt("0x100000000000000000000000000000000"),n=eI(t*e,eb),o=eI(-i*e,eb),a=M(e-n*t-o*r,eb),l=M(-n*i-o*t,eb),c=a>s,h=l>s;if(c&&(a=eb-a),h&&(l=eb-l),a>s||l>s)throw Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:c,k1:a,k2neg:h,k2:l}}}},s=n.sha256,{...(t=e=>(function(e){let t,i=(C(t=ec(e),{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})),{Fp:r,n:s,nByteLength:n,nBitLength:o}=i,a=r.BYTES+1,u=2*r.BYTES+1;function p(e){return M(e,s)}let{ProjectivePoint:f,normPrivateKeyToScalar:g,weierstrassEquation:y,isWithinCurveOrder:b}=function(e){var t;let i=function(e){let t=ec(e);C(t,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:i,Fp:r,a:s}=t;if(i){if(!r.eql(s,r.ZERO))throw Error("invalid endo: CURVE.a must be 0");if("object"!=typeof i||"bigint"!=typeof i.beta||"function"!=typeof i.splitScalar)throw Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...t})}(e),{Fp:r}=i,s=W(i.n,i.nBitLength),n=i.toBytes||((e,t,i)=>{let s=t.toAffine();return P(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)}function u(e,t){let i=r.sqr(t),s=a(e);return r.eql(i,s)}if(!u(i.Gx,i.Gy))throw Error("bad curve params: generator point");let p=r.mul(r.pow(i.a,eg),ey),f=r.mul(r.sqr(i.b),BigInt(27));if(r.is0(r.add(p,f)))throw Error("bad curve params: a or b");function g(e){let t,{allowedPrivateKeyLengths:r,nByteLength:s,wrapPrivateKey:n,n:o}=i;if(r&&"bigint"!=typeof e){if(h(e)&&(e=m(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:v(S("private key",e,s))}catch(t){throw Error("invalid private key, expected hex or "+s+" b
2ytes, got "+typeof e)}return n&&(t=M(t,o)),A("private key",t,ep,o),t}function y(e){if(!(e instanceof E))throw Error("ProjectivePoint expected")}let b=B((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}}),w=B(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");if(!u(t,s))throw Error("bad point: equation left != right");if(!e.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class E{constructor(e,t,i){if(null==e||!r.isValid(e))throw Error("x required");if(null==t||!r.isValid(t)||r.is0(t))throw Error("y required");if(null==i||!r.isValid(i))throw Error("z required");this.px=e,this.py=t,this.pz=i,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 E)throw Error("projective point not allowed");let s=e=>r.eql(e,r.ZERO);return s(t)&&s(i)?E.ZERO:new E(t,i,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){let t=J(r,e.map(e=>e.pz));return e.map((e,i)=>e.toAffine(t[i])).map(E.fromAffine)}static fromHex(e){let t=E.fromAffine(o(S("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return E.BASE.multiply(g(e))}static msm(e,t){return function(e,t,i,r){if(!Array.isArray(i))throw Error("array expected");i.forEach((t,i)=>{if(!(t instanceof e))throw Error("invalid point at index "+i)});if(!Array.isArray(r))throw Error("array of scalars expected");r.forEach((e,i)=>{if(!t.isValid(e))throw Error("invalid scalar at index "+i)});let s=i.length,n=r.length;if(s!==n)throw Error("arrays of points and scalars must have equal length");let o=e.ZERO,a=function(e){let t;for(t=0;e>l;e>>=c,t+=1);return t}(BigInt(s)),h=1;a>12?h=a-3:a>4?h=a-2:a>0&&(h=2);let u=_(h),d=Array(Number(u)+1).fill(o),p=Math.floor((t.BITS-1)/h)*h,f=o;for(let e=p;e>=0;e-=h){d.fill(o);for(let t=0;t<n;t++){let s=Number(r[t]>>BigInt(e)&u);d[s]=d[s].add(i[t])}let t=o;for(let e=d.length-1,i=o;e>0;e--)i=i.add(d[e]),t=t.add(i);if(f=f.add(t),0!==e)for(let e=0;e<h;e++)f=f.double()}return f}(E,s,e,t)}_setWindowSize(e){O.setWindowSize(this,e)}assertValidity(){w(this)}hasEvenY(){let{y:e}=this.toAffine();if(r.isOdd)return!r.isOdd(e);throw Error("Field doesn't support isOdd")}equals(e){y(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)),c=r.eql(r.mul(i,a),r.mul(o,s));return l&&c}negate(){return new E(this.px,r.neg(this.py),this.pz)}double(){let{a:e,b:t}=i,s=r.mul(t,eg),{px:n,py:o,pz:a}=this,l=r.ZERO,c=r.ZERO,h=r.ZERO,u=r.mul(n,n),d=r.mul(o,o),p=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,p),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),p=r.mul(e,p),f=r.sub(u,p),f=r.mul(e,f),f=r.add(f,h),h=r.add(u,u),u=r.add(h,u),u=r.add(u,p),u=r.mul(u,f),c=r.add(c,u),p=r.mul(o,a),p=r.add(p,p),u=r.mul(p,f),l=r.sub(l,u),h=r.mul(p,d),h=r.add(h,h),new E(l,c,h=r.add(h,h))}add(e){y(e);let{px:t,py:s,pz:n}=this,{px:o,py:a,pz:l}=e,c=r.ZERO,h=r.ZERO,u=r.ZERO,d=i.a,p=r.mul(i.b,eg),f=r.mul(t,o),g=r.mul(s,a),m=r.mul(n,l),b=r.add(t,s),w=r.add(o,a);b=r.mul(b,w),w=r.add(f,g),b=r.sub(b,w),w=r.add(t,n);let v=r.add(o,l);return w=r.mul(w,v),v=r.add(f,m),w=r.sub(w,v),v=r.add(s,n),c=r.add(a,l),v=r.mul(v,c),c=r.add(g,m),v=r.sub(v,c),u=r.mul(d,w),c=r.mul(p,m),u=r.add(c,u),c=r.sub(g,u),u=r.add(g,u),h=r.mul(c,u),g=r.add(f,f),g=r.add(g,f),m=r.mul(d,m),w=r.mul(p,w),g=r.add(g,m),m=r.sub(f,m),m=r.mul(d,m),w=r.add(w,m),f=r.mul(g,w),h=r.add(h,f),f=r.mul(v,w),c=r.mul(b,c),c=r.sub(c,f),f=r.mul(b,g),u=r.mul(v,u),new E(c,h,u=r.add(u,f))}subtract(e){return this.add(e.negate())}is0(){return this.equals(E.ZERO)}wNAF(e){return O.wNAFCached(this,e,E.normalizeZ)}multiplyUnsafe(e){let{endo:t,n:s}=i;A("scalar",e,ed,s);let n=E.ZERO;if(e===ed)return n;if(this.is0()||e===ep)return this;if(!t||O.hasPrecomputes(this))return O.wNAFCachedUnsafe(this,e,E.normalizeZ);
vendor: 5,685 bytes, line 2
2let{k1neg:o,k1:a,k2neg:l,k2:c}=t.splitScalar(e),h=n,u=n,d=this;for(;a>ed||c>ed;)a&ep&&(h=h.add(d)),c&ep&&(u=u.add(d)),d=d.double(),a>>=ep,c>>=ep;return o&&(h=h.negate()),l&&(u=u.negate()),u=new E(r.mul(u.px,t.beta),u.py,u.pz),h.add(u)}multiply(e){let t,s,{endo:n,n:o}=i;if(A("scalar",e,ep,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=O.constTimeNegate(i,c),u=O.constTimeNegate(a,u),u=new E(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 E.normalizeZ([t,s])[0]}multiplyAndAddUnsafe(e,t,i){let r=E.BASE,s=(e,t)=>t!==ed&&t!==ep&&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 b(this,e)}isTorsionFree(){let{h:e,isTorsionFree:t}=i;if(e===ep)return!0;if(t)return t(E,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:e,clearCofactor:t}=i;return e===ep?this:t?t(E,this):this.multiplyUnsafe(i.h)}toRawBytes(e=!0){return d("isCompressed",e),this.assertValidity(),n(E,this,e)}toHex(e=!0){return d("isCompressed",e),m(this.toRawBytes(e))}}E.BASE=new E(i.Gx,i.Gy,r.ONE),E.ZERO=new E(r.ZERO,r.ONE,r.ZERO);let{endo:I,nBitLength:x}=i,O=(t=I?Math.ceil(x/2):x,{constTimeNegate:ei,hasPrecomputes:e=>1!==el(e),unsafeLadder(e,t,i=E.ZERO){let r=e;for(;t>ee;)t&et&&(i=i.add(r)),r=r.double(),t>>=et;return i},precomputeWindow(e,i){let{windows:r,windowSize:s}=es(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 s=E.ZERO,n=E.BASE,o=es(e,t);for(let e=0;e<o.windows;e++){let{nextN:t,offset:a,isZero:l,isNeg:c,isNegF:h,offsetF:u}=en(r,e,o);r=t,l?n=n.add(ei(h,i[u])):s=s.add(ei(c,i[a]))}return{p:s,f:n}},wNAFUnsafe(e,i,r,s=E.ZERO){let n=es(e,t);for(let e=0;e<n.windows&&r!==ee;e++){let{nextN:t,offset:o,isZero:a,isNeg:l}=en(r,e,n);if(r=t,!a){let e=i[o];s=s.add(l?e.negate():e)}}return s},getPrecomputes(e,t,i){let r=eo.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&eo.set(t,i(r))),r},wNAFCached(e,t,i){let r=el(e);return this.wNAF(r,this.getPrecomputes(r,e,i),t)},wNAFCachedUnsafe(e,t,i,r){let s=el(e);return 1===s?this.unsafeLadder(e,t,r):this.wNAFUnsafe(s,this.getPrecomputes(s,e,i),t,r)},setWindowSize(e,i){er(i,t),ea.set(e,i),eo.delete(e)}});return{CURVE:i,ProjectivePoint:E,normPrivateKeyToScalar:g,weierstrassEquation:a,isWithinCurveOrder:function(e){return R(e,ep,i.n)}}}({...i,toBytes(e,t,i){let s=t.toAffine(),n=r.toBytes(s.x);return(d("isCompressed",i),i)?P(Uint8Array.from([t.hasEvenY()?2:3]),n):P(Uint8Array.from([4]),n,r.toBytes(s.y))},fromBytes(e){let t=e.length,i=e[0],s=e.subarray(1);if(t===a&&(2===i||3===i)){let e,t=v(s);if(!R(t,ep,r.ORDER))throw Error("Point is not on curve");let n=y(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&ep)===ep)&&(e=r.neg(e)),{x:t,y:e}}if(t===u&&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 "+a+", or uncompressed "+u+", got "+t)}}),O=(e,t,i)=>v(e.slice(t,i));class N{constructor(e,t,i){A("r",e,ep,s),A("s",t,ep,s),this.r=e,this.s=t,null!=i&&(this.recovery=i),Object.freeze(this)}static fromCompact(e){return new N(O(e=S("compactSignature",e,2*n),0,n),O(e,n,2*n))}static fromDER(e){let{r:t,s:i}=eu.toSig(S("DER",e));return new N(t,i)}assertValidity(){}addRecoveryBit(e){return new N(this.r,this.s,e)}recoverPublicKey(e){let{r:t,s:n,recovery:o}=this,a=U(S("msgHash",e));if(null==o||![0,1,2,3].includes(o))throw Error("recovery id invalid");let l=2===o||3===o?t+i.n:t;if(l>=r.ORDER)throw Error("recovery id 2 or 3 invalid");let c=(1&o)==0?"02":"03",h=f.fromHex(c+m(I(l,r.BYTES))),u=z(l,s),d=p(-a*u),g=p(n*u),y=f.BASE.multiplyAndAddUnsafe(h,d,g);if(!y)throw Error("point at infinify");return y.assertValidity(),y}hasHighS(){return this.s>s>>ep}normalizeS(){return this.hasHighS()?new N(this.r,p(-this.s),this.recovery):this}toDERRawBytes(){return w(this.toDERHex())}toDERHex(){return eu.hexFromSig(this)}toCompactRawBytes(){return w(this.toCompactHex())}toCompactHex(){return m(I(this.r,n))+m(I(this.s,n))}}function j(e){if("bigint"==typeof e)return!1;if(e instanceof f)return!0;let t=S("key",e).length,s=r.BYTES,o=s+1;if(!i.allowedPrivateKeyLengths&&n!==o)return t===o||t===2*s+1}let k=i.bits2int||function(e){if(e.length>8192)throw Error("input is too large");let t=v(e),i=8*e.length-o;return i>0?t>>BigInt(i):t},U=i.bits2int_modN||function(e){return p(k(e))},L=_(o);function D(e){return A("num < 2^"+o,e,ed,L),I(e,n)}let $={lowS:i.lowS,prehash:!1},V={lowS:i.lowS,prehash:!1};return f.BASE._setWindowSize(8),{CURVE:i,getPublicKey:function(e,t=!0){return f.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,i=!0){if(!0===j(e))throw Error("first arg must be private key");if(!1===j(t))throw Error("second arg must be public key");return f.fromHex(t).multiply(g(e)).toRawBytes(i)},sign:function(e,t,n=$){let{seed:o,k2sig:a}=function(e,t,n=$){if(["recovered","canonical"].some(e=>e in n))throw Error("sign() legacy options not supported");let{hash:o,randomBytes:a}=i,{lowS:l,prehash:c,extraEntropy:h}=n;null==l&&(l=!0),e=S("msgHash",e),eh(n),c&&(e=S("prehashed msgHash",o(e)));let u=U(e),d=g(t),y=[D(d),D(u)];if(null!=h&&!1!==h){let e=!0===h?a(r.BYTES):h;y.push(S("extraEntropy",e))}return{seed:P(...y),k2sig:function(e){var t;let i=k(e);if(!b(i))return;let r=z(i,s),n=f.BASE.multiply(i).toAffine(),o=p(n.x);if(o===ed)return;let a=p(r*p(u+o*d));if(a===ed)return;let c=2*(n.x!==o)|Number(n.y&ep),h=a;return l&&a>s>>ep&&(h=(t=a)>s>>ep?p(-t):t,c^=1),new N(o,h,c)}}}
2(e,t,n);return(function(e,t,i){if("number"!=typeof e||e<2)throw Error("hashLen must be a number");if("number"!=typeof t||t<2)throw Error("qByteLen must be a number");if("function"!=typeof i)throw Error("hmacFn must be a function");let r=T(e),s=T(e),n=0,o=()=>{r.fill(1),s.fill(0),n=0},a=(...e)=>i(s,r,...e),l=(e=T(0))=>{let t;if(s=a((t=[0],Uint8Array.from(t)),e),r=a(),0!==e.length){let t;s=a((t=[1],Uint8Array.from(t)),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 P(...i)};return(e,t)=>{let i;for(o(),l(e);!(i=t(c()));)l();return o(),i}})(i.hash.outputLen,i.nByteLength,i.hmac)(o,a)},verify:function(e,t,r,n=V){let o,a;t=S("msgHash",t),r=S("publicKey",r);let{lowS:l,prehash:c,format:u}=n;if(eh(n),"strict"in n)throw Error("options.strict was renamed to lowS");if(void 0!==u&&"compact"!==u&&"der"!==u)throw Error("format must be compact or der");let d="string"==typeof e||h(e),g=!d&&!u&&"object"==typeof e&&null!==e&&"bigint"==typeof e.r&&"bigint"==typeof e.s;if(!d&&!g)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");try{if(g&&(a=new N(e.r,e.s)),d){try{"compact"!==u&&(a=N.fromDER(e))}catch(e){if(!(e instanceof eu.Err))throw e}a||"der"===u||(a=N.fromCompact(e))}o=f.fromHex(r)}catch(e){return!1}if(!a||l&&a.hasHighS())return!1;c&&(t=i.hash(t));let{r:y,s:m}=a,b=U(t),w=z(m,s),v=p(b*w),E=p(y*w),I=f.BASE.multiplyAndAddUnsafe(o,v,E)?.toAffine();return!!I&&p(I.x)===y},ProjectivePoint:f,Signature:N,utils:{isValidPrivateKey(e){try{return g(e),!0}catch(e){return!1}},normPrivateKeyToScalar:g,randomPrivateKey:()=>{let e=X(i.n);return function(e,t,i=!1){let r=e.length,s=Q(t),n=X(t);if(r<16||r<n||r>1024)throw Error("expected "+n+"-1024 bytes of input, got "+r);let o=M(i?E(e):v(e),t-q)+q;return i?x(o,s):I(o,s)}(i.randomBytes(e),i.n)},precompute:(e=8,t=f.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)}}})({...r,...{hash:e,hmac:(t,...i)=>(0,a.hmac)(e,t,(0,o.concatBytes)(...i)),randomBytes:o.randomBytes}}))(s),create:t});eS.ProjectivePoint;let eP=(i=[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(e=>BigInt(e))).map(e=>Array.from(e).reverse()),(e,t)=>{let[r,s,n,o]=i.map(t=>t.reduce((t,i)=>ex.add(ex.mul(t,e),i))),[a,l]=J(ex,[s,o],!0);return e=ex.mul(r,a),t=ex.mul(t,ex.mul(n,l)),{x:e,y:t}}),eO=function(e,t){if(G(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw Error("mapToCurveSimpleSWU: invalid opts");let i=function(e,t){let i=e.ORDER,r=ed;for(let e=i-ep;e%ef===ed;e/=ef)r+=ep;let s=r,n=ef<<s-ep-ep,o=n*ef,a=(i-ep)/o,l=(a-ep)/ef,c=o-ep,h=e.pow(t,a),u=e.pow(t,(a+ep)/ef),d=(t,i)=>{let r=h,o=e.pow(i,c),a=e.sqr(o);a=e.mul(a,i);let d=e.mul(t,a);d=e.pow(d,l),d=e.mul(d,o),o=e.mul(d,i),a=e.mul(d,t);let p=e.mul(a,o);d=e.pow(p,n);let f=e.eql(d,e.ONE);o=e.mul(a,u),d=e.mul(p,r),a=e.cmov(o,a,f),p=e.cmov(d,p,f);for(let t=s;t>ep;t--){let i=t-ef;i=ef<<i-ep;let s=e.pow(p,i),n=e.eql(s,e.ONE);o=e.mul(a,r),r=e.mul(r,r),s=e.mul(p,r),a=e.cmov(o,a,n),p=e.cmov(s,p,n)}return{isValid:f,value:a}};if(e.ORDER%ey===eg){let i=(e.ORDER-eg)/ey,r=e.sqrt(e.neg(t));d=(t,s)=>{let n=e.sqr(s),o=e.mul(t,s);n=e.mul(n,o);let a=e.pow(n,i);a=e.mul(a,o);let l=e.mul(a,r),c=e.mul(e.sqr(a),s),h=e.eql(c,t),u=e.cmov(l,a,h);return{isValid:h,value:u}}}return d}(e,t.Z);if(!e.isOdd)throw Error("Fp.isOdd is not implemented!");return r=>{let s,n,o,a,l,c,h,u;s=e.sqr(r),s=e.mul(s,t.Z),n=e.sqr(s),n=e.add(n,s),o=e.add(n,e.ONE),o=e.mul(o,t.B),a=e.cmov(t.Z,e.neg(n),!e.eql(n,e.ZERO)),a=e.mul(a,t.A),n=e.sqr(o),c=e.sqr(a),l=e.mul(c,t.A),n=e.add(n,l),n=e.mul(n,o),c=e.mul(c,a),l=e.mul(c,t.B),n=e.add(n,l),h=e.mul(s,o);let{isValid:d,value:p}=i(n,c);u=e.mul(s,r),u=e.mul(u,p),h=e.cmov(h,o,d),u=e.cmov(u,p,d);let f=e.isOdd(r)===e.isOdd(u);u=e.cmov(e.neg(u),u,f);let g=J(e,[a],!0)[0];return{x:h=e.mul(h,g),y:u}}}(ex,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:ex.create(BigInt("-11"))});!function(e,t,i){if("function"!=typeof t)throw Error("mapToCurve() must be defined")}(eS.ProjectivePoint,e=>{let{x:t,y:i}=eO(ex.create(e[0]));return eP(t,i)},(ex.ORDER,n.sha256));
vendor: 2,282 bytes, line 2
2class eR extends Error{constructor(e,t={}){const i=(()=>{if(t.cause instanceof eR){if(t.cause.details)return t.cause.details;if(t.cause.shortMessage)return t.cause.shortMessage}return t.cause&&"details"in t.cause&&"string"==typeof t.cause.details?t.cause.details:t.cause?.message?t.cause.message:t.details})(),r=t.cause instanceof eR&&t.cause.docsPath||t.docsPath,s=`https://oxlib.sh${r??""}`;super([e||"An error occurred.",...t.metaMessages?["",...t.metaMessages]:[],...i||r?["",i?`Details: ${i}`:void 0,r?`See: ${s}`:void 0]:[]].filter(e=>"string"==typeof e).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,"docs",{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,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:"[email protected]"}),this.cause=t.cause,this.details=i,this.docs=s,this.docsPath=r,this.shortMessage=e}walk(e){return function e(t,i){return i?.(t)?t:t&&"object"==typeof t&&"cause"in t&&t.cause?e(t.cause,i):i?null:t}(this,e)}}function eA(e,t){if(eL(e)>t)throw new ez({givenSize:eL(e),maxSize:t})}function e_(e,t={}){let{dir:i,size:r=32}=t;if(0===r)return e;let s=e.replace("0x","");if(s.length>2*r)throw new eF({size:Math.ceil(s.length/2),targetSize:r,type:"Hex"});return`0x${s["right"===i?"padEnd":"padStart"](2*r,"0")}`}function eT(e,t,i){return JSON.stringify(e,(e,i)=>"function"==typeof t?t(e,i):"bigint"==typeof i?i.toString()+"#__bigint":i,i)}let eN=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function eC(...e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}function eB(e){return e instanceof Uint8Array?ej(e):Array.isArray(e)?ej(new Uint8Array(e)):e}function ej(e,t={}){let i="";for(let t=0;t<e.length;t++)i+=eN[e[t]];let r=`0x${i}`;return"number"==typeof t.size?(eA(r,t.size),ek(r,t.size)):r}
2function eq(e,t={}){var i;let r,{signed:s,size:n}=t,o=BigInt(e);n?r=s?(1n<<8n*BigInt(n)-1n)-1n:2n**(8n*BigInt(n))-1n:"number"==typeof e&&(r=BigInt(Number.MAX_SAFE_INTEGER));let a="bigint"==typeof r&&s?-r-1n:0;if(r&&o>r||o<a){let t="bigint"==typeof e?"n":"";throw new e$({max:r?`${r}${t}`:void 0,min:`${a}${t}`,signed:s,size:n,value:`${e}${t}`})}let l=(s&&o<0?(1n<<BigInt(8*n))+BigInt(o):o).toString(16),c=`0x${l}`;return n?(i=c,e_(i,{dir:"left",size:n})):c}function ek(e,t){return e_(e,{dir:"right",size:t})}function eU(e,t,i,r={}){let{strict:s}=r;if("number"==typeof t&&t>0&&t>eL(e)-1)throw new eK({offset:t,position:"start",size:eL(e)});let n=`0x${e.replace("0x","").slice((t??0)*2,(i??e.length)*2)}`;return s&&function(e,t,i){if("number"==typeof t&&"number"==typeof i&&eL(e)!==i-t)throw new eK({offset:i,position:"end",size:eL(e)})}(n,t,i),n}function eL(e){return Math.ceil((e.length-2)/2)}function eD(e){return function(e,t={}){let{dir:i="left"}=t,r=e.replace("0x",""),s=0;for(let e=0;e<r.length-1;e++)if("0"===r["left"===i?e:r.length-e-1].toString())s++;else break;return"0"===(r="left"===i?r.slice(s):r.slice(0,r.length-s))?"0x":"right"===i&&r.length%2==1?`0x${r}0`:`0x${r}`}(e,{dir:"left"})}class e$ extends eR{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}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class eM extends eR{constructor(e){super(`Value \`${"object"==typeof e?eT(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class eV extends eR{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class ez extends eR{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class eK extends eR{constructor({offset:e,position:t,size:i}){super(`Slice ${"start"===t?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${i}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class eF extends eR{constructor({size:e,targetSize:t,type:i}){super(`${i.charAt(0).toUpperCase()}${i.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}function eH(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}let eG=new TextEncoder;function eJ(e){var t;return e instanceof Uint8Array?e:"string"==typeof e?eZ(e):(t=e)instanceof Uint8Array?t:new Uint8Array(t)}function eZ(e,t={}){let{size:i}=t,r=e;i&&(eA(e,i),r=ek(e,i));let s=r.slice(2);s.length%2&&(s=`0${s}`);let n=s.length/2,o=new Uint8Array(n);for(let e=0,t=0;e<n;e++){let i=eH(s.charCodeAt(t++)),r=eH(s.charCodeAt(t++));if(void 0===i||void 0===r)throw new eR(`Invalid byte sequence ("${s[t-2]}${s[t-1]}" in "${s}").`);o[e]=16*i+r}return o}class eY extends eR{constructor(e){super(`Value \`${"object"==typeof e?eT(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"})}}class eW extends eR{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}}class eQ extends eR{constructor({size:e,targetSize:t,type:i}){super(`${i.charAt(0).toUpperCase()}${i.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}let eX=2n**256n-1n;function e0(e,t={}){let{recovered:i}=t;if(void 0===e.r||void 0===e.s||i&&void 0===e.yParity)throw new tu({signature:e});if(e.r<0n||e.r>eX)throw new td({value:e.r});if(e.s<0n||e.s>eX)throw new tp({value:e.s});if("number"==typeof e.yParity&&0!==e.yParity&&1!==e.yParity)throw new tf({value:e.yParity})}function e1(e){return e2(ej(e))}function e2(e){if(130!==e.length&&132!==e.length)throw new th({signature:e});let t=BigInt(eU(e,0,32)),i=BigInt(eU(e,32,64)),r=(()=>{let t=Number(`0x${e.slice(130)}`);if(!Number.isNaN(t))try{return tl(t)}catch{throw new tf({value:t})}})();return void 0===r?{r:t,s:i}:{r:t,s:i,yParity:r}}function e8(e){if(void 0!==e.r&&void 0!==e.s)return e3(e)}function e3(e){let t="string"==typeof e?e2(e):e instanceof Uint8Array?e1(e):"string"==typeof e.r?e7(e):e.v?e4(e):{r:e.r,s:e.s,...void 0!==e.yParity?{yParity:e.yParity}:{}};return e0(t),t}function e5(e){return e6(ej(e))}function e6(e){let{r:t,s:i}=eS.Signature.fromDER(eB(e).slice(2));return{r:t,s:i}}function e4(e){return{r:e.r,s:e.s,yParity:tl(e.v)}}function e7(e){let t=(()=>{let t=e.v?Number(e.v):void 0,i=e.yParity?Number(e.yParity):void 0;if("number"==typeof t&&"number"!=typeof i&&(i=tl(t)),"number"!=typeof i)throw new tf({value:e.yParity});return i})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function e9(e){let[t,i,r]=e;return e3({r:"0x"===i?0n:BigInt(i),s:"0x"===r?0n:BigInt(r),yParity:"0x"===t?0:Number(t)})}function te(e){return eZ(tt(e))}function tt(e){e0(e);let t=e.r,i=e.s;return eC(eq(t,{size:32}),eq(i,{size:32}),"number"==typeof e.yParity?eq(tc(e.yParity),{size:1}):"0x")}function ti(e){return new eS.Signature(e.r,e.s).toDERRawBytes()}function tr(e){let t=new eS.Signature(e.r,e.s);return`0x${t.toDERHex()}`}function ts(e){return{r:e.r,s:e.s,v:tc(e.yParity)}}function tn(e){let{r:t,s:i,yParity:r}=e;return{r:eq(t,{size:32}),s:eq(i,{size:32}),yParity:0===r?"0x0":"0x1"}}function to(e){let{r:t,s:i,yParity:r}=e;return[r?"0x01":"0x",0n===t?"0x":eD(eq(t)),0n===i?"0x":eD(eq(i))]}function ta(e,t={}){try{return e0(e,t),!0}catch{return!1}}function tl(e){if(0===e||27===e)return 0;if(1===e||28===e)return 1;if(e>=35)return+(e%2==0);throw new tg({value:e})}function tc(e){if(0===e)return 27;if(1===e)return 28;throw new tf({value:e})}class th extends eR{constructor({signature:e}){super(`Value \`${e}
2\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${eL(eB(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class tu extends eR{constructor({signature:e}){super(`Signature \`${eT(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class td extends eR{constructor({value:e}){super(`Value \`${e}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class tp extends eR{constructor({value:e}){super(`Value \`${e}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class tf extends eR{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class tg extends eR{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}e.s(["InvalidRError",()=>td,"InvalidSError",()=>tp,"InvalidSerializedSizeError",()=>th,"InvalidVError",()=>tg,"InvalidYParityError",()=>tf,"MissingPropertiesError",()=>tu,"assert",()=>e0,"extract",()=>e8,"from",()=>e3,"fromBytes",()=>e1,"fromDerBytes",()=>e5,"fromDerHex",()=>e6,"fromHex",()=>e2,"fromLegacy",()=>e4,"fromRpc",()=>e7,"fromTuple",()=>e9,"toBytes",()=>te,"toDerBytes",()=>ti,"toDerHex",()=>tr,"toHex",()=>tt,"toLegacy",()=>ts,"toRpc",()=>tn,"toTuple",()=>to,"vToYParity",()=>tl,"validate",()=>ta,"yParityToV",()=>tc],869859);var ty=e.i(869859);e.s(["Signature",0,ty],25883);class tm 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 tb={checksum:new tm(8192)}.checksum;var tw=e.i(145535);function tv(e,t={}){let{as:i="string"==typeof e?"Hex":"Bytes"}=t,r=(0,tw.keccak_256)(eJ(e));return"Bytes"===i?r:ej(r)}function tE(e,t={}){let{compressed:i}=t,{prefix:r,x:s,y:n}=e;if(!1===i||"bigint"==typeof s&&"bigint"==typeof n){if(4!==r)throw new tO({prefix:r,cause:new tA});return}if(!0===i||"bigint"==typeof s&&void 0===n){if(3!==r&&2!==r)throw new tO({prefix:r,cause:new tR});return}throw new tP({publicKey:e})}function tI(e){let t=(()=>{if(function(e,t={}){let{strict:i=!1}=t;try{return!function(e,t={}){let{strict:i=!1}=t;if(!e||"string"!=typeof e)throw new eM(e);if(i&&!/^0x[0-9a-fA-F]*$/.test(e)||!e.startsWith("0x"))throw new eV(e)}(e,{strict:i}),!0}catch{return!1}}(e))return tx(e);if(function(e){try{if(!(e instanceof Uint8Array)&&(!e||"object"!=typeof e||!("BYTES_PER_ELEMENT"in e)||1!==e.BYTES_PER_ELEMENT||"Uint8Array"!==e.constructor.name))throw new eY(e);return!0}catch{return!1}}(e))return tx(ej(e));let{prefix:t,x:i,y:r}=e;return"bigint"==typeof i&&"bigint"==typeof r?{prefix:t??4,x:i,y:r}:{prefix:t,x:i}})();return tE(t),t}function tx(e){if(132!==e.length&&130!==e.length&&68!==e.length)throw new t_({publicKey:e});if(130===e.length)return{prefix:4,x:BigInt(eU(e,0,32)),y:BigInt(eU(e,32,64))};if(132===e.length){let t=Number(eU(e,0,1));return{prefix:t,x:BigInt(eU(e,1,33)),y:BigInt(eU(e,33,65))}}return{prefix:Number(eU(e,0,1)),x:BigInt(eU(e,1,33))}}function tS(e,t={}){tE(e);let{prefix:i,x:r,y:s}=e,{includePrefix:n=!0}=t;return eC(n?eq(i,{size:1}):"0x",eq(r,{size:32}),"bigint"==typeof s?eq(s,{size:32}):"0x")}class tP extends eR{constructor({publicKey:e}){super(`Value \`${eT(e)}\` is not a valid public key.`,{metaMessages:["Public key must contain:","- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidError"})}}class tO extends eR{constructor({prefix:e,cause:t}){super(`Prefix "${e}
2" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}}class tR extends eR{constructor(){super("Prefix must be 2 or 3 for compressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidCompressedPrefixError"})}}class tA extends eR{constructor(){super("Prefix must be 4 for uncompressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}}class t_ extends eR{constructor({publicKey:e}){super(`Value \`${e}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${eL(eB(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}}let tT=/^0x[a-fA-F0-9]{40}$/;function tN(e,t={}){let{strict:i=!0}=t;if(!tT.test(e))throw new tB({address:e,cause:new tj});if(i){if(e.toLowerCase()===e)return;if(tC(e)!==e)throw new tB({address:e,cause:new tq})}}function tC(e){if(tb.has(e))return tb.get(e);tN(e,{strict:!1});let t=e.substring(2).toLowerCase(),i=tv(function(e,t={}){let{size:i}=t,r=eG.encode(e);if("number"==typeof i){var s;if(r.length>i)throw new eW({givenSize:r.length,maxSize:i});return s=r,function(e,t={}){let{dir:i,size:r=32}=t;if(0===r)return e;if(e.length>r)throw new eQ({size:e.length,targetSize:r,type:"Bytes"});let s=new Uint8Array(r);for(let t=0;t<r;t++){let n="right"===i;s[n?t:r-t-1]=e[n?t:e.length-t-1]}return s}(s,{dir:"right",size:i})}return r}(t),{as:"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 tb.set(e,s),s}class tB extends eR{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class tj extends eR{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class tq extends eR{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}function tk(e={}){let{as:t="Hex"}=e,i=tD({as:t}),r=tU({privateKey:i});return{privateKey:i,publicKey:r}}function tU(e){let{privateKey:t}=e;return tI(eS.ProjectivePoint.fromPrivateKey(eB(t).slice(2)))}function tL(e){let{as:t="Hex",privateKey:i,publicKey:r}=e,s=eS.ProjectivePoint.fromHex(tS(r).slice(2)).multiply(eS.utils.normPrivateKeyToScalar(eB(i).slice(2))).toRawBytes(!0);return"Hex"===t?ej(s):s}function tD(e={}){let{as:t="Hex"}=e,i=eS.utils.randomPrivateKey();return"Hex"===t?ej(i):i}function t$(e){return function(e,t={}){let i=tv(`0x${tS(e).slice(4)}`).substring(26);return function(e,t={}){let{checksum:i=!1}=t;return(tN(e),i)?tC(e):e}(`0x${i}`,t)}(tM(e))}function tM(e){let{payload:t,signature:i}=e,{r,s,yParity:n}=i;return tI(new eS.Signature(BigInt(r),BigInt(s)).addRecoveryBit(n).recoverPublicKey(eB(t).substring(2)))}function tV(e){let{extraEntropy:t=!1,hash:i,payload:r,privateKey:s}=e,{r:n,s:o,recovery:a}=eS.sign(eJ(r),eJ(s),{extraEntropy:"boolean"==typeof t?t:eB(t).slice(2),lowS:!0,...i?{prehash:!0}:{}});return{r:n,s:o,yParity:a}}function tz(e){let{address:t,hash:i,payload:r,publicKey:s,signature:n}=e;if(t){var o;return o=t$({payload:r,signature:n}),tN(t,{strict:!1}),tN(o,{strict:!1}),t.toLowerCase()===o.toLowerCase()}return eS.verify(n,eJ(r),function(e,t={}){return eZ(tS(e,t))}(s),...i?[{prehash:!0,lowS:!0}]:[])}e.s(["createKeyPair",()=>tk,"getPublicKey",()=>tU,"getSharedSecret",()=>tL,"noble",0,eS,"randomPrivateKey",()=>tD,"recoverAddress",()=>t$,"recoverPublicKey",()=>tM,"sign",()=>tV,"verify",()=>tz],520735);var tK=e.i(520735);e.s(["Secp256k1",0,tK],522568);let tF=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];
2if(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)),d=o;for(;h!==l;)u[d++]=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(;a!==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 d=r.repeat(s);for(;u<c;++u)d+=e.charAt(h[u]);return d},decodeUnsafe:o,decode:function(e){let t=o(e);if(t)return t;throw Error("Non-base"+i+" character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");function tH(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function tG(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function tJ(e){if("function"!=typeof e)throw Error("function expected");return!0}function tZ(e,t){if("string"!=typeof t)throw Error(`${e}: string expected`);return!0}function tY(e){if(!Number.isSafeInteger(e))throw Error(`invalid integer: ${e}`)}function tW(e){if(!Array.isArray(e))throw Error("array expected")}function tQ(e,t){if(!tG(!0,t))throw Error(`${e}: array of strings expected`)}function tX(e,t){if(!tG(!1,t))throw Error(`${e}: array of numbers expected`)}function t0(...e){let t=e=>e,i=(e,t)=>i=>e(t(i));return{encode:e.map(e=>e.encode).reduceRight(i,t),decode:e.map(e=>e.decode).reduce(i,t)}}function t1(e){let t="string"==typeof e?e.split(""):e,i=t.length;tQ("alphabet",t);let r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(tW(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=i)throw Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(tW(t),t.map(t=>{tZ("alphabet.decode",t);let i=r.get(t);if(void 0===i)throw Error(`Unknown letter: "${t}". Allowed: ${e}`);return i}))}}function t2(e=""){return tZ("join",e),{encode:t=>(tQ("join.decode",t),t.join(e)),decode:t=>(tZ("join.decode",t),t.split(e))}}function t8(e,t,i){if(t<2)throw Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(i<2)throw Error(`convertRadix: invalid to=${i}, base cannot be less than 2`);if(tW(e),!e.length)return[];let r=0,s=[],n=Array.from(e,e=>{if(tY(e),e<0||e>=t)throw Error(`invalid integer: ${e}`);return e}),o=n.length;for(;;){let e=0,a=!0;for(let s=r;s<o;s++){let o=n[s],l=t*e,c=l+o;if(!Number.isSafeInteger(c)||l/t!==e||c-o!==l)throw Error("convertRadix: carry overflow");let h=c/i;e=c%i;let u=Math.floor(h);if(n[s]=u,!Number.isSafeInteger(u)||u*i+e!==c)throw Error("convertRadix: carry overflow");a&&(u?a=!1:r=s)}if(s.push(e),a)break}for(let t=0;t<e.length-1&&0===e[t];t++)s.push(0);return s.reverse()}e.s(["default",0,tF],763830);let t3=(e,t)=>0===t?e:t3(t,e%t),t5=(e,t)=>e+(t-t3(e,t)),t6=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function t4(e,t,i,r){if(tW(e),t<=0||t>32)throw Error(`convertRadix2: wrong from=${t}`);if(i<=0||i>32)throw Error(`convertRadix2: wrong to=${i}`);if(t5(t,i)>32)throw Error(`convertRadix2: carry overflow from=${t} to=${i} carryBits=${t5(t,i)}`);let s=0,n=0,o=t6[t],a=t6[i]-1,l=[];for(let r of e){if(tY(r),r>=o)throw Error(`convertRadix2: invalid data word=${r} from=${t}`);if(s=s<<t|r,n+t>32)throw Error(`convertRadix2: carry overflow pos=${n} from=${t}`);for(n+=t;n>=i;n-=i)l.push((s>>n-i&a)>>>0);let e=t6[n];if(void 0===e)throw Error("invalid carry");s&=e-1}if(s=s<<i-n&a,!r&&n>=t)throw Error("Excess padding");if(!r&&s>0)throw Error(`Non-zero padding: ${s}`);return r&&n>0&&l.push(s>>>0),l}let t7=t0(function(e,t=!1){tY(5),!1;if(t5(8,5)>32||t5(5,8)>32)throw Error("radix2: carry overflow");return{encode:e=>{if(!tH(e))throw Error("radix2.encode input should be Uint8Array");return t4(Array.from(e),8,5,!t)},decode:e=>(tX("radix2.decode",e),Uint8Array.from(t4(e,5,8,t)))}}(5),t1("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),function(e,t="="){return tY(5),tZ("padding",t),{encode(e){for(tQ("padding.encode",e);5*e.length%8;)e.push(t);return e},decode(e){tQ("padding.decode",e);let i=e.length;if(5*i%8)throw Error("padding: invalid, string should have whole number of bytes");for(;i>0&&e[i-1]===t;i--)if((i-1)*5%8==0)throw Error("padding: invalid, string has too much padding");return e.slice(0,i)}}}(5),t2("")),t9="function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64;tY(58);"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex||tJ(e=>{if("string"!=typeof e||e.length%2!=0)throw TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}),e.s(["base32",0,t7],692844)},220540,e=>{"use strict";let t,i,r,s,n;var o,a,l=e.i(247167),c=e.i(467034),h=e.i(277945),u=e.i(648512),d=e.i(36610),p=e.i(275221),f=e.i(25883),g=e.i(522568),y=e.i(763830),m=e.i(626335),b=e.i(425748),w=e.i(692844),v=e.i(121609);e.i(262265);var E=e.i(773912),I=e.i(120483),x=e.i(310998),S=e.i(281223),P=e.i(127605),O=e.i(278662);function R(e){let[t,i]=e.split(":");return{namespace:t,reference:i}}function A(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 _(e,t){return e.includes(":")?[e]:t.chains||[]}var T=Object.defineProperty,N=Object.defineProperties,C=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,j=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable,k=(e,t,i)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,U=(e,t)=>{for(var i in t||(t={}))j.call(t,i)&&k(e,i,t[i]);if(B)for(var i of B(t))q.call(t,i)&&k(e,i,t[i]);return e},L=(e,t,i)=>k(e,"symbol"!=typeof t?t+"":t,i);let D="react-native",$="node",M="browser";function V(){return"u">typeof l.default&&"u">typeof l.default.versions&&"u">typeof l.default.versions.node}
2function z(){return!(0,d.getDocument)()&&!!(0,d.getNavigator)()&&"ReactNative"===navigator.product}function K(){return z()&&"u">typeof(null==e.g?void 0:e.g.Platform)&&(null==e.g?void 0:e.g.Platform.OS)==="android"}function F(){return z()&&"u">typeof(null==e.g?void 0:e.g.Platform)&&(null==e.g?void 0:e.g.Platform.OS)==="ios"}function H(){return!V()&&!!(0,d.getNavigator)()&&!!(0,d.getDocument)()}function G(){return z()?D:V()?$:H()?M:"unknown"}function J(){var t;try{return z()&&"u">typeof(null==e.g?void 0:e.g.Application)?null==(t=e.g.Application)?void 0:t.applicationId:void 0}catch{return}}function Z(e){var t,i;let r=Y();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=U(U({},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},N(s,C(n))}catch(t){return console.warn("Error populating app metadata",t),e||r}}function Y(){return(0,p.getWindowMetadata)()||{name:"",description:"",url:"",icons:[""]}}function W(t,i,r){var s;let n,o=function(){if(G()===D&&"u">typeof(null==e.g?void 0:e.g.Platform)){let{OS:t,Version:i}=e.g.Platform;return[t,i].join("-")}let t=(0,h.detect)();if(null===t)return"unknown";let i=t.os?t.os.replace(" ","").toLowerCase():"unknown";return"browser"===t.type?[i,t.name,t.version].join("-"):[i,t.version].join("-")}(),a=(n=G())===M?[n,(null==(s=(0,d.getLocation)())?void 0:s.host)||"unknown"].join(":"):n;return[[t,i].join("-"),["js",r].join("-"),o,a].join("/")}function Q({protocol:e,version:t,relayUrl:i,sdkVersion:r,auth:s,projectId:n,useOnCloseEvent:o,bundleId:a,packageName:l}){var c,h;let u,d=i.split("?"),p=W(e,t,r),f=(c=d[1]||"",h={auth:s,ua:p,projectId:n,useOnCloseEvent:o||void 0,packageName:l||void 0,bundleId:a||void 0},u=new URLSearchParams(c),Object.entries(h).sort(([e],[t])=>e.localeCompare(t)).forEach(([e,t])=>{null!=t&&u.set(e,String(t))}),u.toString());return d[0]+"?"+f}function X(e,t){return e.filter(e=>t.includes(e)).length===e.length}function ee(e){return Object.fromEntries(e.entries())}function et(e){return new Map(Object.entries(e))}function ei(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 er(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 es(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 en(e){return es("topic",e)}function eo(e){return es("id",e)}function ea(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 el(e,t){return(0,u.fromMiliseconds)((t||Date.now())+(0,u.toMiliseconds)(e))}function ec(e){return Date.now()>=(0,u.toMiliseconds)(e)}function eh(e,t){return`${e}${t?`:${t}`:""}`}function eu(e=[],t=[]){return[...new Set([...e,...t])]}async function ed({id:t,topic:i,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=c.Buffer.from(e).toString("base64");return t?i.replace(/[=]/g,""):i}(r,!0)}`}else s=`${s}/wc?${r}`;return s}(a,t,i),h=G();if(h===M){let e;if(!(null!=(s=(0,d.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 h===D&&"u">typeof(null==e.g?void 0:e.g.Linking)&&await e.g.Linking.openURL(l)}catch(e){console.error(e)}}async function ep(e,t){let i="";try{if(H()&&(i=localStorage.getItem(t)))return i;i=await e.getItem(t)}catch(e){console.error(e)}return i}function ef(e,t){if(!e.includes(t))return null;let i=e.split(/([&,?,=])/),r=i.indexOf(t);return i[r+2]}function eg(){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 ey(){return"u">typeof l.default&&"true"===l.default.env.IS_VITEST}function em(e){return c.Buffer.from(e,"base64").toString("utf-8")}function eb(e){return new Promise(t=>setTimeout(t,e))}class ew{constructor({limit:e}){L(this,"limit"),L(this,"set"),this.limit=e,this.set=new Set}
2add(e){if(!this.set.has(e)){if(this.set.size>=this.limit){let e=this.set.values().next().value;e&&this.set.delete(e)}this.set.add(e)}}has(e){return this.set.has(e)}}let ev=BigInt(0x100000000-1),eE=BigInt(32);function eI(e,t=!1){return t?{h:Number(e&ev),l:Number(e>>eE&ev)}:{h:0|Number(e>>eE&ev),l:0|Number(e&ev)}}function ex(e,t=!1){let i=e.length,r=new Uint32Array(i),s=new Uint32Array(i);for(let n=0;n<i;n++){let{h:i,l:o}=eI(e[n],t);[r[n],s[n]]=[i,o]}return[r,s]}let eS=(e,t,i)=>e>>>i,eP=(e,t,i)=>e<<32-i|t>>>i,eO=(e,t,i)=>e>>>i|t<<32-i,eR=(e,t,i)=>e<<32-i|t>>>i,eA=(e,t,i)=>e<<64-i|t>>>i-32,e_=(e,t,i)=>e>>>i-32|t<<64-i;function eT(e,t,i,r){let s=(t>>>0)+(r>>>0);return{h:e+i+(s/0x100000000|0)|0,l:0|s}}let eN=(e,t,i)=>(e>>>0)+(t>>>0)+(i>>>0),eC=(e,t,i,r)=>t+i+r+(e/0x100000000|0)|0,eB=(e,t,i,r)=>(e>>>0)+(t>>>0)+(i>>>0)+(r>>>0),ej=(e,t,i,r,s)=>t+i+r+s+(e/0x100000000|0)|0,eq=(e,t,i,r,s)=>(e>>>0)+(t>>>0)+(i>>>0)+(r>>>0)+(s>>>0),ek=(e,t,i,r,s,n)=>t+i+r+s+n+(e/0x100000000|0)|0,eU="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function eL(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function eD(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function e$(e,...t){if(!eL(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 eM(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.createHasher");eD(e.outputLen),eD(e.blockLen)}function eV(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 ez(e,t){e$(e);let i=t.outputLen;if(e.length<i)throw Error("digestInto() expects output buffer of length at least "+i)}function eK(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function eF(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function eH(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function eG(e,t){return e<<32-t|e>>>t}let eJ=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0];function eZ(e){return e<<24&0xff000000|e<<8&0xff0000|e>>>8&65280|e>>>24&255}let eY=eJ?e=>e:e=>eZ(e),eW=eJ?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=eZ(e[t]);return e},eQ="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,eX=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function e0(e){if(e$(e),eQ)return e.toHex();let t="";for(let i=0;i<e.length;i++)t+=eX[e[i]];return t}function e1(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function e2(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);if(eQ)return Uint8Array.fromHex(e);let t=e.length,i=t/2;if(t%2)throw Error("hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(i);for(let t=0,s=0;t<i;t++,s+=2){let i=e1(e.charCodeAt(s)),n=e1(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 e8(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function e3(e){return"string"==typeof e&&(e=e8(e)),e$(e),e}function e5(...e){let t=0;for(let i=0;i<e.length;i++){let r=e[i];e$(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 e6{}function e4(e){let t=t=>e().update(e3(t)).digest(),i=e();return t.outputLen=i.outputLen,t.blockLen=i.blockLen,t.create=()=>e(),t}function e7(e=32){if(eU&&"function"==typeof eU.getRandomValues)return eU.getRandomValues(new Uint8Array(e));if(eU&&"function"==typeof eU.randomBytes)return Uint8Array.from(eU.randomBytes(e));throw Error("crypto.getRandomValues must be defined")}let e9=BigInt(0),te=BigInt(1),tt=BigInt(2),ti=BigInt(7),tr=BigInt(256),ts=BigInt(113),tn=[],to=[],ta=[];for(let e=0,t=te,i=1,r=0;e<24;e++){[i,r]=[r,(2*i+3*r)%5],tn.push(2*(5*r+i)),to.push((e+1)*(e+2)/2%64);let s=e9;for(let e=0;e<7;e++)(t=(t<<te^(t>>ti)*ts)%tr)&tt&&(s^=te<<(te<<BigInt(e))-te);ta.push(s)}let tl=ex(ta,!0),tc=tl[0],th=tl[1],tu=(e,t,i)=>i>32?t<<i-32|e>>>64-i:e<<i|t>>>32-i,td=(e,t,i)=>i>32?e<<i-32|t>>>64-i:t<<i|e>>>32-i;class tp extends e6{constructor(e,t,i,r=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=i,this.enableXOF=r,this.rounds=s,eD(i),!(0<e&&e<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=eK(this.state)}clone(){return this._cloneInto()}keccak(){eW(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=tu(n,o,1)^i[r],l=td(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=to[i],n=tu(t,s,r),o=td(t,s,r),a=tn[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]^=tc[r],e[1]^=th[r]}eF(i)}(this.state32,this.rounds),eW(this.state32),this.posOut=0,this.pos=0}update(e){eV(this),e$(e=e3(e));let{blockLen:t,state:i}=this,r=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){eV(this,!1),e$(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 eD(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ez(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,eF(this.state)}_cloneInto(e){let{blockLen:t,suffix:i,outputLen:r,rounds:s,enableXOF:n}=this;return e||(e=new tp(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 tf=e4(()=>new tp(136,1,32));class tg extends e6{constructor(e,t,i,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=r,this.buffer=new Uint8Array(e),this.view=eH(this.buffer)}update(e){eV(this),e$(e=e3(e));let{view:t,buffer:i,blockLen:r}=this,s=e.length;for(let n=0;n<s;){let o=Math.min(r-this.pos,s-n);if(o===r){let t=eH(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){eV(this),ez(e,this),this.finished=!0;let{buffer:t,view:i,blockLen:r,isLE:s}=this,{pos:n}=this;t[n++]=128,eF(this.buffer.subarray(n)),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=eH(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.destroyed=n,e.finished=s,e.length=r,e.pos=o,r%t&&e.buffer.set(i),e}clone(){return this._cloneInto()}}
2let ty=Uint32Array.from([0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19]),tm=Uint32Array.from([0xcbbb9d5d,0xc1059ed8,0x629a292a,0x367cd507,0x9159015a,0x3070dd17,0x152fecd8,0xf70e5939,0x67332667,0xffc00b31,0x8eb44a87,0x68581511,0xdb0c2e0d,0x64f98fa7,0x47b5481d,0xbefa4fa4]),tb=Uint32Array.from([0x6a09e667,0xf3bcc908,0xbb67ae85,0x84caa73b,0x3c6ef372,0xfe94f82b,0xa54ff53a,0x5f1d36f1,0x510e527f,0xade682d1,0x9b05688c,0x2b3e6c1f,0x1f83d9ab,0xfb41bd6b,0x5be0cd19,0x137e2179]),tw=Uint32Array.from([0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2]),tv=new Uint32Array(64);class tE extends tg{constructor(e=32){super(64,e,8,!1),this.A=0|ty[0],this.B=0|ty[1],this.C=0|ty[2],this.D=0|ty[3],this.E=0|ty[4],this.F=0|ty[5],this.G=0|ty[6],this.H=0|ty[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)tv[i]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=tv[e-15],i=tv[e-2],r=eG(t,7)^eG(t,18)^t>>>3,s=eG(i,17)^eG(i,19)^i>>>10;tv[e]=s+tv[e-7]+r+tv[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,d,p;let t=c+(eG(o,6)^eG(o,11)^eG(o,25))+((h=o)&a^~h&l)+tw[e]+tv[e]|0,f=(eG(i,2)^eG(i,13)^eG(i,22))+((u=i)&(d=r)^u&(p=s)^d&p)|0;c=l,l=a,a=o,o=n+t|0,n=s,s=r,r=i,i=t+f|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(){eF(tv)}destroy(){this.set(0,0,0,0,0,0,0,0),eF(this.buffer)}}let tI=ex(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e3585
25771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),tx=tI[0],tS=tI[1],tP=new Uint32Array(80),tO=new Uint32Array(80);class tR extends tg{constructor(e=64){super(128,e,16,!1),this.Ah=0|tb[0],this.Al=0|tb[1],this.Bh=0|tb[2],this.Bl=0|tb[3],this.Ch=0|tb[4],this.Cl=0|tb[5],this.Dh=0|tb[6],this.Dl=0|tb[7],this.Eh=0|tb[8],this.El=0|tb[9],this.Fh=0|tb[10],this.Fl=0|tb[11],this.Gh=0|tb[12],this.Gl=0|tb[13],this.Hh=0|tb[14],this.Hl=0|tb[15]}get(){let{Ah:e,Al:t,Bh:i,Bl:r,Ch:s,Cl:n,Dh:o,Dl:a,Eh:l,El:c,Fh:h,Fl:u,Gh:d,Gl:p,Hh:f,Hl:g}=this;return[e,t,i,r,s,n,o,a,l,c,h,u,d,p,f,g]}set(e,t,i,r,s,n,o,a,l,c,h,u,d,p,f,g){this.Ah=0|e,this.Al=0|t,this.Bh=0|i,this.Bl=0|r,this.Ch=0|s,this.Cl=0|n,this.Dh=0|o,this.Dl=0|a,this.Eh=0|l,this.El=0|c,this.Fh=0|h,this.Fl=0|u,this.Gh=0|d,this.Gl=0|p,this.Hh=0|f,this.Hl=0|g}process(e,t){for(let i=0;i<16;i++,t+=4)tP[i]=e.getUint32(t),tO[i]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=0|tP[e-15],i=0|tO[e-15],r=eO(t,i,1)^eO(t,i,8)^eS(t,i,7),s=eR(t,i,1)^eR(t,i,8)^eP(t,i,7),n=0|tP[e-2],o=0|tO[e-2],a=eO(n,o,19)^eA(n,o,61)^eS(n,o,6),l=eB(s,eR(n,o,19)^e_(n,o,61)^eP(n,o,6),tO[e-7],tO[e-16]),c=ej(l,r,a,tP[e-7],tP[e-16]);tP[e]=0|c,tO[e]=0|l}let{Ah:i,Al:r,Bh:s,Bl:n,Ch:o,Cl:a,Dh:l,Dl:c,Eh:h,El:u,Fh:d,Fl:p,Gh:f,Gl:g,Hh:y,Hl:m}=this;for(let e=0;e<80;e++){let t=eO(h,u,14)^eO(h,u,18)^eA(h,u,41),b=eR(h,u,14)^eR(h,u,18)^e_(h,u,41),w=h&d^~h&f,v=eq(m,b,u&p^~u&g,tS[e],tO[e]),E=ek(v,y,t,w,tx[e],tP[e]),I=0|v,x=eO(i,r,28)^eA(i,r,34)^eA(i,r,39),S=eR(i,r,28)^e_(i,r,34)^e_(i,r,39),P=i&s^i&o^s&o,O=r&n^r&a^n&a;y=0|f,m=0|g,f=0|d,g=0|p,d=0|h,p=0|u,({h:h,l:u}=eT(0|l,0|c,0|E,0|I)),l=0|o,c=0|a,o=0|s,a=0|n,s=0|i,n=0|r;let R=eN(I,S,O);i=eC(R,E,x,P),r=0|R}({h:i,l:r}=eT(0|this.Ah,0|this.Al,0|i,0|r)),({h:s,l:n}=eT(0|this.Bh,0|this.Bl,0|s,0|n)),({h:o,l:a}=eT(0|this.Ch,0|this.Cl,0|o,0|a)),({h:l,l:c}=eT(0|this.Dh,0|this.Dl,0|l,0|c)),({h:h,l:u}=eT(0|this.Eh,0|this.El,0|h,0|u)),({h:d,l:p}=eT(0|this.Fh,0|this.Fl,0|d,0|p)),({h:f,l:g}=eT(0|this.Gh,0|this.Gl,0|f,0|g)),({h:y,l:m}=eT(0|this.Hh,0|this.Hl,0|y,0|m)),this.set(i,r,s,n,o,a,l,c,h,u,d,p,f,g,y,m)}roundClean(){eF(tP,tO)}destroy(){eF(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class tA extends tR{constructor(){super(48),this.Ah=0|tm[0],this.Al=0|tm[1],this.Bh=0|tm[2],this.Bl=0|tm[3],this.Ch=0|tm[4],this.Cl=0|tm[5],this.Dh=0|tm[6],this.Dl=0|tm[7],this.Eh=0|tm[8],this.El=0|tm[9],this.Fh=0|tm[10],this.Fl=0|tm[11],this.Gh=0|tm[12],this.Gl=0|tm[13],this.Hh=0|tm[14],this.Hl=0|tm[15]}}let t_=Uint32Array.from([0x22312194,0xfc2bf72c,0x9f555fa3,0xc84c64c2,0x2393b86b,0x6f53b151,0x96387719,0x5940eabd,0x96283ee2,0xa88effe3,0xbe5e1e25,0x53863992,0x2b0199fc,0x2c85b8aa,0xeb72ddc,0x81c52ca2]);class tT extends tR{constructor(){super(32),this.Ah=0|t_[0],this.Al=0|t_[1],this.Bh=0|t_[2],this.Bl=0|t_[3],this.Ch=0|t_[4],this.Cl=0|t_[5],this.Dh=0|t_[6],this.Dl=0|t_[7],this.Eh=0|t_[8],this.El=0|t_[9],this.Fh=0|t_[10],this.Fl=0|t_[11],this.Gh=0|t_[12],this.Gl=0|t_[13],this.Hh=0|t_[14],this.Hl=0|t_[15]}}let tN=e4(()=>new tE),tC=e4(()=>new tR),tB=e4(()=>new tA),tj=e4(()=>new tT),tq=Uint8Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]),tk=Uint32Array.from([0xf3bcc908,0x6a09e66
27,0x84caa73b,0xbb67ae85,0xfe94f82b,0x3c6ef372,0x5f1d36f1,0xa54ff53a,0xade682d1,0x510e527f,0x2b3e6c1f,0x9b05688c,0xfb41bd6b,0x1f83d9ab,0x137e2179,0x5be0cd19]),tU=new Uint32Array(32);function tL(e,t,i,r,s,n){let o=s[n],a=s[n+1],l=tU[2*e],c=tU[2*e+1],h=tU[2*t],u=tU[2*t+1],d=tU[2*i],p=tU[2*i+1],f=tU[2*r],g=tU[2*r+1],y=eN(l,h,o);c=eC(y,c,u,a),l=0|y,({Dh:g,Dl:f}={Dh:g^c,Dl:f^l}),({Dh:g,Dl:f}={Dh:f,Dl:g}),({h:p,l:d}=eT(p,d,g,f)),({Bh:u,Bl:h}={Bh:u^p,Bl:h^d}),({Bh:u,Bl:h}={Bh:eO(u,h,24),Bl:eR(u,h,24)}),tU[2*e]=l,tU[2*e+1]=c,tU[2*t]=h,tU[2*t+1]=u,tU[2*i]=d,tU[2*i+1]=p,tU[2*r]=f,tU[2*r+1]=g}function tD(e,t,i,r,s,n){let o=s[n],a=s[n+1],l=tU[2*e],c=tU[2*e+1],h=tU[2*t],u=tU[2*t+1],d=tU[2*i],p=tU[2*i+1],f=tU[2*r],g=tU[2*r+1],y=eN(l,h,o);c=eC(y,c,u,a),l=0|y,({Dh:g,Dl:f}={Dh:g^c,Dl:f^l}),({Dh:g,Dl:f}={Dh:eO(g,f,16),Dl:eR(g,f,16)}),({h:p,l:d}=eT(p,d,g,f)),({Bh:u,Bl:h}={Bh:u^p,Bl:h^d}),({Bh:u,Bl:h}={Bh:eA(u,h,63),Bl:e_(u,h,63)}),tU[2*e]=l,tU[2*e+1]=c,tU[2*t]=h,tU[2*t+1]=u,tU[2*i]=d,tU[2*i+1]=p,tU[2*r]=f,tU[2*r+1]=g}class t$ extends e6{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,eD(e),eD(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=eK(this.buffer)}update(e){eV(this),e$(e=e3(e));let{blockLen:t,buffer:i,buffer32:r}=this,s=e.length,n=e.byteOffset,o=e.buffer;for(let a=0;a<s;){this.pos===t&&(eW(r),this.compress(r,0,!1),eW(r),this.pos=0);let l=Math.min(t-this.pos,s-a),c=n+a;if(l===t&&!(c%4)&&a+l<s){let e=new Uint32Array(o,c,Math.floor((s-a)/4));eW(e);for(let i=0;a+t<s;i+=r.length,a+=t)this.length+=t,this.compress(e,i,!1);eW(e);continue}i.set(e.subarray(a,a+l),this.pos),this.pos+=l,this.length+=l,a+=l}return this}digestInto(e){eV(this),ez(e,this);let{pos:t,buffer32:i}=this;this.finished=!0,eF(this.buffer.subarray(t)),eW(i),this.compress(i,0,!0),eW(i);let r=eK(e);this.get().forEach((e,t)=>r[t]=eY(e))}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){let{buffer:t,length:i,finished:r,destroyed:s,outputLen:n,pos:o}=this;return e||(e=new this.constructor({dkLen:n})),e.set(...this.get()),e.buffer.set(t),e.destroyed=s,e.finished=r,e.length=i,e.pos=o,e.outputLen=n,e}clone(){return this._cloneInto()}}class tM extends t${constructor(e={}){const t=void 0===e.dkLen?64:e.dkLen;super(128,t),this.v0l=0|tk[0],this.v0h=0|tk[1],this.v1l=0|tk[2],this.v1h=0|tk[3],this.v2l=0|tk[4],this.v2h=0|tk[5],this.v3l=0|tk[6],this.v3h=0|tk[7],this.v4l=0|tk[8],this.v4h=0|tk[9],this.v5l=0|tk[10],this.v5h=0|tk[11],this.v6l=0|tk[12],this.v6h=0|tk[13],this.v7l=0|tk[14],this.v7h=0|tk[15],function(e,t={},i,r,s){if(eD(64),e<0||e>64)throw Error("outputLen bigger than keyLen");let{key:n,salt:o,personalization:a}=t;if(void 0!==n&&(n.length<1||n.length>64))throw Error("key length must be undefined or 1..64");if(void 0!==o&&16!==o.length)throw Error("salt must be undefined or 16");if(void 0!==a&&16!==a.length)throw Error("personalization must be undefined or 16")}(t,e,0,0,0);let{key:i,personalization:r,salt:s}=e,n=0;if(void 0!==i&&(n=(i=e3(i)).length),this.v0l^=this.outputLen|n<<8|0x1010000,void 0!==s){const e=eK(s=e3(s));this.v4l^=eY(e[0]),this.v4h^=eY(e[1]),this.v5l^=eY(e[2]),this.v5h^=eY(e[3])}if(void 0!==r){const e=eK(r=e3(r));this.v6l^=eY(e[0]),this.v6h^=eY(e[1]),this.v7l^=eY(e[2]),this.v7h^=eY(e[3])}if(void 0!==i){const e=new Uint8Array(this.blockLen);e.set(i),this.update(e)}}get(){let{v0l:e,v0h:t,v1l:i,v1h:r,v2l:s,v2h:n,v3l:o,v3h:a,v4l:l,v4h:c,v5l:h,v5h:u,v6l:d,v6h:p,v7l:f,v7h:g}=this;return[e,t,i,r,s,n,o,a,l,c,h,u,d,p,f,g]}set(e,t,i,r,s,n,o,a,l,c,h,u,d,p,f,g){this.v0l=0|e,this.v0h=0|t,this.v1l=0|i,this.v1h=0|r,this.v2l=0|s,this.v2h=0|n,this.v3l=0|o,this.v3h=0|a,this.v4l=0|l,this.v4h=0|c,this.v5l=0|h,this.v5h=0|u,this.v6l=0|d,this.v6h=0|p,this.v7l=0|f,this.v7h=0|g}compress(e,t,i){this.get().forEach((e,t)=>tU[t]=e),tU.set(tk,16);let{h:r,l:s}=eI(BigInt(this.length));tU[24]=tk[8]^s,tU[25]=tk[9]^r,i&&(tU[28]=~tU[28],tU[29]=~tU[29]);let n=0;for(let i=0;i<12;i++)tL(0,4,8,12,e,t+2*tq[n++]),tD(0,4,8,12,e,t+2*tq[n++]),tL(1,5,9,13,e,t+2*tq[n++]),tD(1,5,9,13,e,t+2*tq[n++]),tL(2,6,10,14,e,t+2*tq[n++]),tD(2,6,10,14,e,t+2*tq[n++]),tL(3,7,11,15,e,t+2*tq[n++]),tD(3,7,11,15,e,t+2*tq[n++]),tL(0,5,10,15,e,t+2*tq[n++]),tD(0,5,10,15,e,t+2*tq[n++]),tL(1,6,11,12,e,t+2*tq[n++]),tD(1,6,11,12,e,t+2*tq[n++]),tL(2,7,8,13,e,t+2*tq[n++]),tD(2,7,8,13,e,t+2*tq[n++]),tL(3,4,9,14,e,t+2*tq[n++]),tD(3,4,9,14,e,t+2*tq[n++]);this.v0l^=tU[0]^tU[16],this.v0h^=tU[1]^tU[17],this.v1l^=tU[2]^tU[18],this.v1h^=tU[3]^tU[19],this.v2l^=tU[4]^tU[20],this.v2h^=tU[5]^tU[21],this.v3l^=tU[6]^tU[22],this.v3h^=tU[7]^tU[23],this.v4l^=tU[8]^tU[24],this.v4h^=tU[9]^tU[25],this.v5l^=tU[10]^tU[26],this.v5h^=tU[11]^tU[27],this.v6l^=tU[12]^tU[28],this.v6h^=tU[13]^tU[29],this.v7l^=tU[14]^tU[30],this.v7h^=tU[15]^tU[31],eF(tU)}destroy(){this.destroyed=!0,eF(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}let tV=(o=e=>new tM(e),(t=(e,t)=>
2o(t).update(e3(e)).digest()).outputLen=(i=o({})).outputLen,t.blockLen=i.blockLen,t.create=e=>o(e),t);function tz(e){let t=`�Ethereum Signed Message: 3${e.length}`,i=new TextEncoder().encode(t+e);return"0x"+c.Buffer.from(tf(i)).toString("hex")}async function tK(e,t,i,r,s,n){switch(i.t){case"eip191":var o,a,l;let c;return await (o=e,a=t,l=i.s,c=f.Signature.fromHex(l),g.Secp256k1.recoverAddress({payload:tz(a),signature:c}).toLowerCase()===o.toLowerCase());case"eip1271":return await tF(e,t,i.s,r,s,n);default:throw Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${i.t}`)}}async function tF(e,t,i,r,s,n){let o=R(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=(a.length/2).toString(16).padStart(64,"0"),c=(t.startsWith("0x")?t:tz(t)).substring(2),h=o+c+"0000000000000000000000000000000000000000000000000000000000000040"+l+a,u=await fetch(`${n||"https://rpc.walletconnect.org/v1"}/?chainId=${r}&projectId=${s}`,{headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify({id:Date.now()+Math.floor(1e3*Math.random()),jsonrpc:"2.0",method:"eth_call",params:[{to:e,data:h},"latest"]})}),{result:d}=await u.json();return!!d&&d.slice(0,o.length).toLowerCase()===o.toLowerCase()}catch(e){return console.error("isValidEip1271Signature: ",e),!1}}function tH(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=c.Buffer.from(e,"base64").slice(1,65);return y.default.encode(s)}function tG(e){let t=new Uint8Array(c.Buffer.from(e,"base64")),i=Array.from("TransactionData::").map(e=>e.charCodeAt(0)),r=new Uint8Array(i.length+t.length);r.set(i),r.set(t,i.length);let s=tV(r,{dkLen:32});return y.default.encode(s)}function tJ(e){let t=new Uint8Array(tN(function(e){if(e instanceof Uint8Array)return e;if(Array.isArray(e))return new Uint8Array(e);if("object"==typeof e&&null!=e&&e.data)return new Uint8Array(Object.values(e.data));if("object"==typeof e&&e)return new Uint8Array(Object.values(e));throw Error("getNearUint8ArrayFromBytes: Unexpected result type from bytes array")}(e)));return y.default.encode(t)}function tZ(e){let t=c.Buffer.from(e,"base64"),i=(0,m.decode)(t).txn;if(!i)throw Error("Invalid signed transaction: missing 'txn' field");let r=(0,b.encode)(i),s=c.Buffer.from("TX"),n=tj(c.Buffer.concat([s,c.Buffer.from(r)]));return w.base32.encode(n).replace(/=+$/,"")}function tY(e){let t=[],i=BigInt(e);for(;i>=BigInt(128);)t.push(Number(i&BigInt(127)|BigInt(128))),i>>=BigInt(7);return t.push(Number(i)),c.Buffer.from(t)}function tW(e){let t=c.Buffer.from(e.signed.bodyBytes,"base64"),i=c.Buffer.from(e.signed.authInfoBytes,"base64"),r=c.Buffer.from(e.signature.signature,"base64"),s=[];s.push(c.Buffer.from([10])),s.push(tY(t.length)),s.push(t),s.push(c.Buffer.from([18])),s.push(tY(i.length)),s.push(i),s.push(c.Buffer.from([26])),s.push(tY(r.length)),s.push(r);let n=tN(c.Buffer.concat(s));return c.Buffer.from(n).toString("hex").toUpperCase()}function tQ(e){var t,i;let r=[];try{if("string"==typeof e)return r.push(e),r;if("object"!=typeof e)return r;null!=e&&e.id&&r.push(e.id);let s=null==(i=null==(t=e?.capabilities)?void 0:t.caip345)?void 0:i.transactionHashes;s&&r.push(...s)}catch(e){console.warn("getWalletSendCallsHashes failed: ",e)}return r}var tX=Object.defineProperty,t0=Object.defineProperties,t1=Object.getOwnPropertyDescriptors,t2=Object.getOwnPropertySymbols,t8=Object.prototype.hasOwnProperty,t3=Object.prototype.propertyIsEnumerable,t5=(e,t,i)=>t in e?tX(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;let t6=e=>e?.split(":"),t4=e=>{let t=e&&t6(e);if(t)return t[2]+":"+t[3]},t7=e=>{let t=e&&t6(e);if(t)return t.pop()};async function t9(e){let{cacao:t,projectId:i}=e,{s:r,p:s}=t,n=ie(s,s.iss),o=t7(s.iss);return await tK(o,n,r,t4(s.iss),i)}let ie=(e,t)=>{let i=`${e.domain} wants you to sign in with your Ethereum account:`,r=t7(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}
3`,o=`Version: ${e.version}`,a=`Chain ID: ${(e=>{let t=e&&t6(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,d=e.requestId?`Request ID: ${e.requestId}`:void 0,p=e.resources?`Resources:${e.resources.map(e=>` 4- ${e}`).join("")}`:void 0,f=ic(e.resources);return f&&(s=function(e="",t){it(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,ir(f))),[i,r,"",s,"",n,o,a,l,c,h,u,d,p].filter(e=>null!=e).join(` 5`)};function it(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}`);
5Object.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 ii(e){return it(e),`urn:recap:${c.Buffer.from(JSON.stringify(e)).toString("base64").replace(/=/g,"")}`}function ir(e){var t;let i=(t=e.replace("urn:recap:",""),JSON.parse(c.Buffer.from(t,"base64").toString("utf-8")));return it(i),i}function is(e,t,i){return ii(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)}}}(e,t,i))}function io(e,t){var i,r;let s,n;return ii((i=ir(e),r=ir(t),it(i),it(r),s=Object.keys(i.att).concat(Object.keys(r.att)).sort((e,t)=>e.localeCompare(t)),n={att:{}},s.forEach(e=>{var t,s;Object.keys((null==(t=i.att)?void 0:t[e])||{}).concat(Object.keys((null==(s=r.att)?void 0:s[e])||{})).sort((e,t)=>e.localeCompare(t)).forEach(t=>{var s,o;n.att[e]=t0(((e,t)=>{for(var i in t||(t={}))t8.call(t,i)&&t5(e,i,t[i]);if(t2)for(var i of t2(t))t3.call(t,i)&&t5(e,i,t[i]);return e})({},n.att[e]),t1({[t]:(null==(s=i.att[e])?void 0:s[t])||(null==(o=r.att[e])?void 0:o[t])}))})}),n))}function ia(e){var t;let i=ir(e);it(i);let r=null==(t=i.att)?void 0:t.eip155;return r?Object.keys(r).map(e=>e.split("/")[1]):[]}function il(e){let t=ir(e);it(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 ic(e){if(!e)return;let t=e?.[e.length-1];return t&&t.includes("urn:recap:")?t:void 0}function ih(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function iu(e){if("boolean"!=typeof e)throw Error(`boolean expected, not ${e}`)}function id(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function ip(e,...t){if(!ih(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 ig(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 iy(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function im(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}let ib=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0];function iw(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(ih(e))e=iI(e);else throw Error("Uint8Array expected, got "+typeof e);return e}function iv(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 iE(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 iI(e){return Uint8Array.from(e)}let ix=e=>Uint8Array.from(e.split("").map(e=>e.charCodeAt(0))),iS=ix("expand 16-byte k"),iP=ix("expand 32-byte k"),iO=iy(iS),iR=iy(iP);function iA(e,t){return e<<t|e>>>32-t}function i_(e){return e.byteOffset%4==0}let iT=0x100000000-1,iN=new Uint32Array,iC=(e,t)=>255&e[t++]|(255&e[t++])<<8;class iB{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,ip(e=iw(e),32);const t=iC(e,0),i=iC(e,2),r=iC(e,4),s=iC(e,6),n=iC(e,8),o=iC(e,10),a=iC(e,12),l=iC(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]=iC(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],d=s[7],p=s[8],f=s[9],g=iC(e,t+0),y=iC(e,t+2),m=iC(e,t+4),b=iC(e,t+6),w=iC(e,t+8),v=iC(e,t+10),E=iC(e,t+12),I=iC(e,t+14),x=r[0]+(8191&g),S=r[1]+((g>>>13|y<<3)&8191),P=r[2]+((y>>>10|m<<6)&8191),O=r[3]+((m>>>7|b<<9)&8191),R=r[4]+((b>>>4|w<<12)&8191),A=r[5]+(w>>>1&8191),_=r[6]+((w>>>14|v<<2)&8191),T=r[7]+((v>>>11|E<<5)&8191),N=r[8]+((E>>>8|I<<8)&8191),C=r[9]+(I>>>5|2048*!i),B=0,j=0+x*n+5*f*S+5*p*P+5*d*O+5*u*R;B=j>>>13,j&=8191,j+=5*h*A+5*c*_+5*l*T+5*a*N+5*o*C,B+=j>>>13,j&=8191;let q=B+x*o+S*n+5*f*P+5*p*O+5*d*R;B=q>>>13,q&=8191,q+=5*u*A+5*h*_+5*c*T+5*l*N+5*a*C,B+=q>>>13,q&=8191;let k=B+x*a+S*o+P*n+5*f*O+5*p*R;B=k>>>13,k&=8191,k+=5*d*A+5*u*_+5*h*T+5*c*N+5*l*C,B+=k>>>13,k&=8191;let U=B+x*l+S*a+P*o+O*n+5*f*R;B=U>>>13,U&=8191,U+=5*p*A+5*d*_+5*u*T+5*h*N+5*c*C,B+=U>>>13,U&=8191;let L=B+x*c+S*l+P*a+O*o+R*n;B=L>>>13,L&=8191,L+=5*f*A+5*p*_+5*d*T+5*u*N+5*h*C,B+=L>>>13,L&=8191;let D=B+x*h+S*c+P*l+O*a+R*o;B=D>>>13,D&=8191,D+=A*n+5*f*_+5*p*T+5*d*N+5*u*C,B+=D>>>13,D&=8191;
5let $=B+x*u+S*h+P*c+O*l+R*a;B=$>>>13,$&=8191,$+=A*o+_*n+5*f*T+5*p*N+5*d*C,B+=$>>>13,$&=8191;let M=B+x*d+S*u+P*h+O*c+R*l;B=M>>>13,M&=8191,M+=A*a+_*o+T*n+5*f*N+5*p*C,B+=M>>>13,M&=8191;let V=B+x*p+S*d+P*u+O*h+R*c;B=V>>>13,V&=8191,V+=A*l+_*a+T*o+N*n+5*f*C,B+=V>>>13,V&=8191;let z=B+x*f+S*p+P*d+O*u+R*h;B=z>>>13,z&=8191,z+=A*c+_*l+T*a+N*o+C*n,B+=z>>>13,z&=8191,j=8191&(B=(B=(B<<2)+B|0)+j|0),B>>>=13,q+=B,r[0]=j,r[1]=q,r[2]=k,r[3]=U,r[4]=L,r[5]=D,r[6]=$,r[7]=M,r[8]=V,r[9]=z}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;im(i)}update(e){ig(this),ip(e=iw(e));let{buffer:t,blockLen:i}=this,r=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(){im(this.h,this.r,this.buffer,this.pad)}digestInto(e){ig(this),function(e,t){ip(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 ij=(a=e=>new iB(e),(r=(e,t)=>a(t).update(iw(e)).digest()).outputLen=(s=a(new Uint8Array(32))).outputLen,r.blockLen=s.blockLen,r.create=e=>a(e),r),iq=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 id(s),id(o),iu(n),iu(i),(t,a,l,c,h=0)=>{ip(t),ip(a),ip(l);let u=l.length;if(void 0===c&&(c=new Uint8Array(u)),ip(c),id(h),h<0||h>=iT)throw Error("arx: counter overflow");if(c.length<u)throw Error(`arx: output (${c.length}) is shorter than data (${u})`);let d=[],p=t.length,f,g;if(32===p)d.push(f=iI(t)),g=iR;else if(16===p&&i)(f=new Uint8Array(32)).set(t),f.set(t,16),g=iO,d.push(f);else throw Error(`arx: invalid 32-byte key, got length=${p}`);i_(a)||d.push(a=iI(a));let y=iy(f);if(r){if(24!==a.length)throw Error("arx: extended nonce must be 24 bytes");r(g,y,iy(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,d.push(a)}return function(e,t,i,r,s,n,o,a){let l=s.length,c=new Uint8Array(64),h=iy(c),u=i_(s)&&i_(n),d=u?iy(s):iN,p=u?iy(n):iN;for(let f=0;f<l;o++){if(e(t,i,r,h,o,a),o>=iT)throw Error("arx: counter overflow");let g=Math.min(64,l-f);if(u&&64===g){let e=f/4;if(f%4!=0)throw Error("arx: invalid block position");for(let t=0,i;t<16;t++)p[i=e+t]=d[i]^h[t];f+=64;continue}for(let e=0,t;e<g;e++)n[t=f+e]=s[t]^c[e];f+=g}}(e,g,y,iy(a),l,c,h,o),im(...d),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],d=t[2],p=t[3],f=t[4],g=t[5],y=t[6],m=t[7],b=i[0],w=i[1],v=i[2],E=o,I=a,x=l,S=c,P=h,O=u,R=d,A=p,_=f,T=g,N=y,C=m,B=s,j=b,q=w,k=v;for(let e=0;e<n;e+=2)_=_+(B=iA(B^(E=E+P|0),16))|0,E=E+(P=iA(P^_,12))|0,_=_+(B=iA(B^E,8))|0,P=iA(P^_,7),T=T+(j=iA(j^(I=I+O|0),16))|0,I=I+(O=iA(O^T,12))|0,T=T+(j=iA(j^I,8))|0,O=iA(O^T,7),N=N+(q=iA(q^(x=x+R|0),16))|0,x=x+(R=iA(R^N,12))|0,N=N+(q=iA(q^x,8))|0,R=iA(R^N,7),C=C+(k=iA(k^(S=S+A|0),16))|0,S=S+(A=iA(A^C,12))|0,C=C+(k=iA(k^
5S,8))|0,A=iA(A^C,7),N=N+(k=iA(k^(E=E+O|0),16))|0,E=E+(O=iA(O^N,12))|0,N=N+(k=iA(k^E,8))|0,O=iA(O^N,7),C=C+(B=iA(B^(I=I+R|0),16))|0,I=I+(R=iA(R^C,12))|0,C=C+(B=iA(B^I,8))|0,R=iA(R^C,7),_=_+(j=iA(j^(x=x+A|0),16))|0,x=x+(A=iA(A^_,12))|0,_=_+(j=iA(j^x,8))|0,A=iA(A^_,7),T=T+(q=iA(q^(S=S+P|0),16))|0,S=S+(P=iA(P^T,12))|0,T=T+(q=iA(q^S,8))|0,P=iA(P^T,7);let U=0;r[U++]=o+E|0,r[U++]=a+I|0,r[U++]=l+x|0,r[U++]=c+S|0,r[U++]=h+P|0,r[U++]=u+O|0,r[U++]=d+R|0,r[U++]=p+A|0,r[U++]=f+_|0,r[U++]=g+T|0,r[U++]=y+N|0,r[U++]=m+C|0,r[U++]=s+B|0,r[U++]=b+j|0,r[U++]=w+q|0,r[U++]=v+k|0},{counterRight:!1,counterLength:4,allowShortKeys:!1}),ik=new Uint8Array(16),iU=(e,t)=>{e.update(t);let i=t.length%16;i&&e.update(ik.subarray(i))},iL=new Uint8Array(32);function iD(e,t,i,r,s){var n,o;let a,l,c=e(t,i,iL),h=ij.create(c);s&&iU(h,s),iU(h,r);let u=(n=r.length,o=s?s.length:0,iu(!0),iE(l=new DataView((a=new Uint8Array(16)).buffer,a.byteOffset,a.byteLength),0,BigInt(o),!0),iE(l,8,BigInt(n),!0),a);h.update(u);let d=h.digest();return im(c,u),d}let i$=((e,t)=>{function i(r,...s){if(ip(r),!ib)throw Error("Non little-endian hardware is not yet supported");if(void 0!==e.nonceLength){let t=s[0];if(!t)throw Error("nonce / iv required");e.varSizeNonce?ip(t):ip(t,e.nonceLength)}let n=e.tagLength;n&&void 0!==s[1]&&ip(s[1]);let o=t(r,...s),a=(e,t)=>{if(void 0!==t){if(2!==e)throw Error("cipher output not supported");ip(t)}},l=!1;return{encrypt(e,t){if(l)throw Error("cannot encrypt() twice with same key + nonce");return l=!0,ip(e),a(o.encrypt.length,t),o.encrypt(e,t)},decrypt(e,t){if(ip(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=iv(n+16,s,!1)).set(r);let o=s.subarray(0,-16);iq(e,t,o,o,1);let a=iD(iq,e,t,o,i);return s.set(a,n),im(a),s},decrypt(r,s){s=iv(r.length-16,s,!1);let n=r.subarray(0,-16),o=r.subarray(-16),a=iD(iq,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)),iq(e,t,s,s,1),im(a),s}}));class iM extends e6{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,eM(e);const i=e3(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),eF(s)}update(e){return eV(this),this.iHash.update(e),this}digestInto(e){eV(this),e$(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}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}let iV=(e,t,i)=>new iM(e,t).update(i).digest();iV.create=(e,t)=>new iM(e,t);let iz=Uint8Array.from([0]),iK=Uint8Array.of(),iF=BigInt(0),iH=BigInt(1);function iG(e,t=""){if("boolean"!=typeof e)throw Error((t&&`"${t}"`)+"expected boolean, got type="+typeof e);return e}function iJ(e,t,i=""){let r=eL(e),s=e?.length,n=void 0!==t;if(!r||n&&s!==t)throw Error((i&&`"${i}" `)+"expected Uint8Array"+(n?` of length ${t}`:"")+", got "+(r?`length=${s}`:`type=${typeof e}`));return e}function iZ(e){let t=e.toString(16);return 1&t.length?"0"+t:t}function iY(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);return""===e?iF:BigInt("0x"+e)}function iW(e){return e$(e),iY(e0(Uint8Array.from(e).reverse()))}function iQ(e,t){return e2(e.toString(16).padStart(2*t,"0"))}function iX(e,t){return iQ(e,t).reverse()}function i0(e,t,i){let r;if("string"==typeof t)try{r=e2(t)}catch(t){throw Error(e+" must be hex string or Uint8Array, cause: "+t)}else if(eL(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}let i1=e=>"bigint"==typeof e&&iF<=e;function i2(e,t,i,r){if(!(i1(t)&&i1(i)&&i1(r))||!(i<=t)||!(t<r))throw Error("expected valid "+e+": "+i+" <= n < "+r+", got "+t)}function i8(e){let t;for(t=0;e>iF;e>>=iH,t+=1);return t}let i3=e=>(iH<<BigInt(e))-iH;function i5(e,t,i={}){if(!e||"object"!=typeof e)throw Error("expected valid options object");function r(t,i,r){let s=e[t];if(r&&void 0===s)return;let n=typeof s;if(n!==i||null===s)throw Error(`param "${t}
5" is invalid: expected ${i}, got ${n}`)}Object.entries(t).forEach(([e,t])=>r(e,t,!1)),Object.entries(i).forEach(([e,t])=>r(e,t,!0))}function i6(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}}let i4=BigInt(0),i7=BigInt(1),i9=BigInt(2),re=BigInt(3),rt=BigInt(4),ri=BigInt(5),rr=BigInt(7),rs=BigInt(8),rn=BigInt(9),ro=BigInt(16);function ra(e,t){let i=e%t;return i>=i4?i:t+i}function rl(e,t,i){let r=e;for(;t-- >i4;)r*=r,r%=i;return r}function rc(e,t){if(e===i4)throw Error("invert: expected non-zero number");if(t<=i4)throw Error("invert: expected positive modulus, got "+t);let i=ra(e,t),r=t,s=i4,n=i7;for(;i!==i4;){let e=r/i,t=r%i,o=s-n*e;r=i,i=t,s=n,n=o}if(r!==i7)throw Error("invert: does not exist");return ra(s,t)}function rh(e,t,i){if(!e.eql(e.sqr(t),i))throw Error("Cannot find square root")}function ru(e,t){let i=(e.ORDER+i7)/rt,r=e.pow(t,i);return rh(e,r,t),r}function rd(e,t){let i=(e.ORDER-ri)/rs,r=e.mul(t,i9),s=e.pow(r,i),n=e.mul(t,s),o=e.mul(e.mul(n,i9),s),a=e.mul(n,e.sub(o,e.ONE));return rh(e,a,t),a}function rp(e){if(e<re)throw Error("sqrt is not defined for small field");let t=e-i7,i=0;for(;t%i9===i4;)t/=i9,i++;let r=i9,s=rb(e);for(;1===ry(s,r);)if(r++>1e3)throw Error("Cannot find square root: probably non-prime P");if(1===i)return ru;let n=s.pow(r,t),o=(t+i7)/i9;return function(e,r){if(e.is0(r))return r;if(1!==ry(e,r))throw Error("Cannot find square root");let s=i,a=e.mul(e.ONE,n),l=e.pow(r,t),c=e.pow(r,o);for(;!e.eql(l,e.ONE);){if(e.is0(l))return e.ZERO;let t=1,i=e.sqr(l);for(;!e.eql(i,e.ONE);)if(t++,i=e.sqr(i),t===s)throw Error("Cannot find square root");let r=i7<<BigInt(s-t-1),n=e.pow(a,r);s=t,a=e.sqr(n),l=e.mul(l,a),c=e.mul(c,n)}return c}}let rf=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function rg(e,t,i=!1){let r=Array(t.length).fill(i?e.ZERO:void 0),s=t.reduce((t,i,s)=>e.is0(i)?t:(r[s]=t,e.mul(t,i)),e.ONE),n=e.inv(s);return t.reduceRight((t,i,s)=>e.is0(i)?t:(r[s]=e.mul(t,r[s]),e.mul(t,i)),n),r}function ry(e,t){let i=(e.ORDER-i7)/i9,r=e.pow(t,i),s=e.eql(r,e.ONE),n=e.eql(r,e.ZERO),o=e.eql(r,e.neg(e.ONE));if(!s&&!n&&!o)throw Error("invalid Legendre symbol result");return s?1:n?0:-1}function rm(e,t){void 0!==t&&eD(t);let i=void 0!==t?t:e.toString(2).length,r=Math.ceil(i/8);return{nBitLength:i,nByteLength:r}}function rb(e,t,i=!1,r={}){let s;if(e<=i4)throw Error("invalid field: expected ORDER > 0, got "+e);let n,o,a=!1,l;if("object"==typeof t&&null!=t){if(r.sqrt||i)throw Error("cannot specify opts in two arguments");t.BITS&&(n=t.BITS),t.sqrt&&(o=t.sqrt),"boolean"==typeof t.isLE&&(i=t.isLE),"boolean"==typeof t.modFromBytes&&(a=t.modFromBytes),l=t.allowedLengths}else"number"==typeof t&&(n=t),r.sqrt&&(o=r.sqrt);let{nBitLength:c,nByteLength:h}=rm(e,n);if(h>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let u=Object.freeze({ORDER:e,isLE:i,BITS:c,BYTES:h,MASK:i3(c),ZERO:i4,ONE:i7,allowedLengths:l,create:t=>ra(t,e),isValid:t=>{if("bigint"!=typeof t)throw Error("invalid field element: expected bigint, got "+typeof t);return i4<=t&&t<e},is0:e=>e===i4,isValidNot0:e=>!u.is0(e)&&u.isValid(e),isOdd:e=>(e&i7)===i7,neg:t=>ra(-t,e),eql:(e,t)=>e===t,sqr:t=>ra(t*t,e),add:(t,i)=>ra(t+i,e),sub:(t,i)=>ra(t-i,e),mul:(t,i)=>ra(t*i,e),pow:(e,t)=>(function(e,t,i){if(i<i4)throw Error("invalid exponent, negatives unsupported");if(i===i4)return e.ONE;if(i===i7)return t;let r=e.ONE,s=t;for(;i>i4;)i&i7&&(r=e.mul(r,s)),s=e.sqr(s),i>>=i7;return r})(u,e,t),div:(t,i)=>ra(t*rc(i,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>rc(t,e),sqrt:o||(t=>{let i,r,n,o,a,l;return s||(s=e%rt===re?ru:e%rs===ri?rd:e%ro===rn?(i=rb(e),n=(r=rp(e))(i,i.neg(i.ONE)),o=r(i,n),a=r(i,i.neg(n)),l=(e+rr)/ro,(e,t)=>{let i=e.pow(t,l),r=e.mul(i,n),s=e.mul(i,o),c=e.mul(i,a),h=e.eql(e.sqr(r),t),u=e.eql(e.sqr(s),t);i=e.cmov(i,r,h),r=e.cmov(c,s,u);let d=e.eql(e.sqr(r),t),p=e.cmov(i,r,d);return rh(e,p,t),p}):rp(e)),s(u,t)}),toBytes:e=>i?iX(e,h):iQ(e,h),fromBytes:(t,r=!0)=>{if(l){if(!l.includes(t.length)||t.length>h)throw Error("Field.fromBytes: expected "+l+" bytes, got "+t.length);let e=new Uint8Array(h);e.set(t,i?0:e.length-t.length),t=e}if(t.length!==h)throw Error("Field.fromBytes: expected "+h+" bytes, got "+t.length);let s=i?iW(t):iY(e0(t));if(a&&(s=ra(s,e)),!r&&!u.isValid(s))throw Error("invalid field element: outside of range 0..ORDER");return s},invertBatch:e=>rg(u,e),cmov:(e,t,i)=>i?t:e});return Object.freeze(u)}function rw(e){if("bigint"!=typeof e)throw Error("field order must be bigint");return Math.ceil(e.toString(2).length/8)}function rv(e){let t=rw(e);return t+Math.ceil(t/2)}let rE=BigInt(0),rI=BigInt(1);function rx(e,t){let i=t.negate();return e?i:t}function rS(e,t){let i=rg(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(i[r])))}function rP(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error("invalid window size, expected [1.."+t+"], got W="+e)}function rO(e,t){rP(e,t);let i=Math.ceil(t/e)+1,r=2**(e-1),s=2**e;return{windows:i,windowSize:r,mask:i3(e),maxNumber:s,shiftBy:BigInt(e)}}function rR(e,t,i){let{windowSize:r,mask:s,maxNumber:n,shiftBy:o}=i,a=Number(e&s),l=e>>o;a>r&&(a-=n,l+=rI);let c=t*r;return{nextN:l,offset:c+Math.abs(a)-1,isZero:0===a,isNeg:a<0,isNegF:t%2!=0,offsetF:c}}let rA=new WeakMap,r_=new WeakMap;function rT(e){return r_.get(e)||1}function rN(e){if(e!==rE)throw Error("invalid wNAF")}class rC{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,i=this.ZERO){let r=e;for(;t>rE;)t&rI&&(i=i.add(r)),r=r.double(),t>>=rI;return i}precomputeWindow(e,t){let{windows:i,windowSize:r}=rO(t,this.bits),s=[],n=e,o=n;for(let e=0;e<i;e++){o=n,s.push(o);for(let e=1;e<r;e++)o=o.add(n),s.push(o);n=o.double()}return s}wNAF(e,t,i){if(!this.Fn.isValid(i))throw Error("invalid scalar");let r=this.ZERO,s=this.BASE,n=rO(e,this.bits);for(let e=0;e<n.windows;e++){let{nextN:o,offset:a,isZero:l,isNeg:c,isNegF:h,offsetF:u}=rR(i,e,n);i=o,l?s=s.add(rx(h,t[u])):r=r.add(rx(c,t[a]))}return rN(i),{p:r,f:s}}wNAFUnsafe(e,t,i,r=this.ZERO){let s=rO(e,this.bits);for(let e=0;e<s.windows&&i!==rE;e++){let{nextN:n,offset:o,isZero:a,isNeg:l}
5=rR(i,e,s);if(i=n,!a){let e=t[o];r=r.add(l?e.negate():e)}}return rN(i),r}getPrecomputes(e,t,i){let r=rA.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof i&&(r=i(r)),rA.set(t,r))),r}cached(e,t,i){let r=rT(e);return this.wNAF(r,this.getPrecomputes(r,e,i),t)}unsafe(e,t,i,r){let s=rT(e);return 1===s?this._unsafeLadder(e,t,r):this.wNAFUnsafe(s,this.getPrecomputes(s,e,i),t,r)}createCache(e,t){rP(t,this.bits),r_.set(e,t),rA.delete(e)}hasCache(e){return 1!==rT(e)}}function rB(e,t,i){if(!t)return rb(e,{isLE:i});if(t.ORDER!==e)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return i5(t,rf.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"})),t}BigInt(0),BigInt(1),BigInt(2),BigInt(8),e8("HashToScalar-");let rj=BigInt(0),rq=BigInt(1),rk=BigInt(2),rU=BigInt(1),rL=BigInt(2),rD=BigInt(3),r$=BigInt(5),rM=BigInt(8),rV=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),rz={p:rV,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:rM,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")},rK=function(e){let{P:t,type:i,adjustScalarBytes:r,powPminus2:s,randomBytes:n}=(i5(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})),o="x25519"===i;if(!o&&"x448"!==i)throw Error("invalid type");let a=n||e7,l=o?255:448,c=o?32:56,h=BigInt(o?9:5),u=BigInt(o?121665:39081),d=o?rk**BigInt(254):rk**BigInt(447),p=d+(o?BigInt(8)*rk**BigInt(251)-rq:BigInt(4)*rk**BigInt(445)-rq)+rq,f=e=>ra(e,t),g=iX(f(h),c);function y(e,i){let n,a=function(e,i){i2("u",e,rj,t),i2("scalar",i,d,p);let r=rq,n=rj,o=e,a=rq,c=rj;for(let t=BigInt(l-1);t>=rj;t--){let s=i>>t&rq;c^=s,({x_2:r,x_3:o}=b(c,r,o)),({x_2:n,x_3:a}=b(c,n,a)),c=s;let l=r+n,h=f(l*l),d=r-n,p=f(d*d),g=h-p,y=o+a,m=f((o-a)*l),w=f(y*d),v=m+w,E=m-w;o=f(v*v),a=f(e*f(E*E)),r=f(h*p),n=f(g*(h+f(u*g)))}return{x_2:r,x_3:o}=b(c,r,o),{x_2:n,x_3:a}=b(c,n,a),f(r*s(n))}((n=i0("u coordinate",i,c),o&&(n[31]&=127),f(iW(n))),iW(r(i0("scalar",e,c))));if(a===rj)throw Error("invalid private or public key received");return iX(f(a),c)}function m(e){return y(e,g)}function b(e,t,i){let r=f(e*(t-i));return{x_2:t=f(t-r),x_3:i=f(i+r)}}let w={secretKey:c,publicKey:c,seed:c},v=(e=a(c))=>(e$(e,w.seed),e);return{keygen:function(e){let t=v(e);return{secretKey:t,publicKey:m(t)}},getSharedSecret:(e,t)=>y(e,t),getPublicKey:e=>m(e),scalarMult:y,scalarMultBase:m,utils:{randomSecretKey:v,randomPrivateKey:v},GuBytes:g.slice(),lengths:w}}({P:n=rb(rz.p,{isLE:!0}).ORDER,type:"x25519",powPminus2:e=>{let t,i,r,s,o,a,l,c,h,u,d,p,f,g,{pow_p_5_8:y,b2:m}=(t=BigInt(10),i=BigInt(20),r=BigInt(40),s=BigInt(80),a=rl(o=e*e%rV*e%rV,rL,rV)*o%rV,l=rl(a,rU,rV)*e%rV,c=rl(l,r$,rV)*l%rV,h=rl(c,t,rV)*c%rV,u=rl(h,i,rV)*h%rV,d=rl(u,r,rV)*u%rV,p=rl(d,s,rV)*d%rV,f=rl(p,s,rV)*d%rV,g=rl(f,t,rV)*c%rV,{pow_p_5_8:rl(g,rL,rV)*e%rV,b2:o});return ra(rl(y,rD,n)*m,n)},adjustScalarBytes:function(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}}),rF=(e,t)=>(e+(e>=0?t:-t)/rW)/t;function rH(e){if(!["compact","recovered","der"].includes(e))throw Error('Signature format must be "compact", "recovered", or "der"');return e}function rG(e,t){let i={};for(let r of Object.keys(t))i[r]=void 0===e[r]?t[r]:e[r];return iG(i.lowS,"lowS"),iG(i.prehash,"prehash"),void 0!==i.format&&rH(i.format),i}let rJ={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(e,t)=>{let{Err:i}=rJ;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=iZ(r);if(s.length/2&128)throw new i("tlv.encode: long form length too big");let n=r>127?iZ(s.length/2|128):"";return iZ(e)+n+s+t},decode(e,t){let{Err:i}=rJ,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);
5if(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}=rJ;if(e<rZ)throw new t("integer: negative integers are not allowed");let i=iZ(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}=rJ;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 iY(e0(e))}},toSig(e){let{Err:t,_int:i,_tlv:r}=rJ,s=i0("signature",e),{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}=rJ,r=t.encode(2,i.encode(e.r)),s=t.encode(2,i.encode(e.s));return t.encode(48,r+s)}},rZ=BigInt(0),rY=BigInt(1),rW=BigInt(2),rQ=BigInt(3),rX=BigInt(4);function r0(e,t){let i,{BYTES:r}=e;if("bigint"==typeof t)i=t;else{let s=i0("private key",t);try{i=e.fromBytes(s)}catch{throw Error(`invalid private key: expected ui8a of size ${r}, got ${typeof t}`)}}if(!e.isValidNot0(i))throw Error("invalid private key: out of range [1..N-1]");return i}function r1(e){return Uint8Array.of(e?2:3)}function r2(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function r8(e,t){let i=t=>(function(e){let t,{CURVE:i,curveOpts:r,hash:s,ecdsaOpts:n}=function(e){let t,i,r,s,{CURVE:n,curveOpts:o}=(t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},i=e.Fp,r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(e=>Math.ceil(e/2)))):void 0,s={Fp:i,Fn:rb(t.n,{BITS:e.nBitLength,allowedLengths:r,modFromBytes:e.wrapPrivateKey}),allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes},{CURVE:t,curveOpts:s}),a={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:n,curveOpts:o,hash:e.hash,ecdsaOpts:a}}(e),o=function(e,t,i={}){eM(t),i5(i,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let r=i.randomBytes||e7,s=i.hmac||((e,...i)=>iV(t,e,e5(...i))),{Fp:n,Fn:o}=e,{ORDER:a,BITS:l}=o,{keygen:c,getPublicKey:h,getSharedSecret:u,utils:d,lengths:p}=function(e,t={}){let{Fn:i}=e,r=t.randomBytes||e7,s=Object.assign(r2(e.Fp,i),{seed:rv(i.ORDER)});function n(e){try{return!!r0(i,e)}catch{return!1}}function o(e=r(s.seed)){return function(e,t,i=!1){let r=e.length,s=rw(t),n=rv(t);if(r<16||r<n||r>1024)throw Error("expected "+n+"-1024 bytes of input, got "+r);let o=ra(i?iW(e):iY(e0(e)),t-i7)+i7;return i?iX(o,s):iQ(o,s)}(iJ(e,s.seed,"seed"),i.ORDER)}function a(t,r=!0){return e.BASE.multiply(r0(i,t)).toBytes(r)}function l(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;let{secretKey:r,publicKey:n,publicKeyUncompressed:o}=s;if(i.allowedLengths||r===n)return;let a=i0("key",t).length;return a===n||a===o}return Object.freeze({getPublicKey:a,getSharedSecret:function(t,r,s=!0){if(!0===l(t))throw Error("first arg must be private key");if(!1===l(r))throw Error("second arg must be public key");let n=r0(i,t);return e.fromHex(r).multiply(n).toBytes(s)},keygen:function(e){let t=o(e);return{secretKey:t,publicKey:a(t)}},Point:e,utils:{isValidSecretKey:n,isValidPublicKey:function(t,i){let{publicKey:r,publicKeyUncompressed:n}=s;try{let s=t.length;return(!0!==i||s===r)&&(!1!==i||s===n)&&!!e.fromBytes(t)}catch{return!1}},randomSecretKey:o,isValidPrivateKey:n,randomPrivateKey:o,normPrivateKeyToScalar:e=>r0(i,e),precompute:(t=8,i=e.BASE)=>i.precompute(t,!1)},lengths:s})}(e,i),f={prehash:!1,lowS:"boolean"==typeof i.lowS&&i.lowS,format:void 0,extraEntropy:!1},g="compact";function y(e,t){if(!o.isValidNot0(t))throw Error(`invalid signature ${e}: out of range 1..Point.Fn.ORDER`);return t}class m{constructor(e,t,i){this.r=y("r",e),this.s=y("s",t),null!=i&&(this.recovery=i),Object.freeze(this)}static fromBytes(e,t=g){var i,r;let s,n;if(i=e,rH(r=t),n=p.signature,iJ(i,"compact"===r?n:"recovered"===r?n+1:void 0,`${r}
5 signature`),"der"===t){let{r:t,s:i}=rJ.toSig(iJ(e));return new m(t,i)}"recovered"===t&&(s=e[0],t="compact",e=e.subarray(1));let a=o.BYTES,l=e.subarray(0,a),c=e.subarray(a,2*a);return new m(o.fromBytes(l),o.fromBytes(c),s)}static fromHex(e,t){return this.fromBytes(e2(e),t)}addRecoveryBit(e){return new m(this.r,this.s,e)}recoverPublicKey(t){let i=n.ORDER,{r:r,s:s,recovery:l}=this;if(null==l||![0,1,2,3].includes(l))throw Error("recovery id invalid");if(a*rW<i&&l>1)throw Error("recovery id is ambiguous for h>1 curve");let c=2===l||3===l?r+a:r;if(!n.isValid(c))throw Error("recovery id 2 or 3 invalid");let h=n.toBytes(c),u=e.fromBytes(e5(r1((1&l)==0),h)),d=o.inv(c),p=w(i0("msgHash",t)),f=o.create(-p*d),g=o.create(s*d),y=e.BASE.multiplyUnsafe(f).add(u.multiplyUnsafe(g));if(y.is0())throw Error("point at infinify");return y.assertValidity(),y}hasHighS(){return this.s>a>>rY}toBytes(e=g){if(rH(e),"der"===e)return e2(rJ.hexFromSig(this));let t=o.toBytes(this.r),i=o.toBytes(this.s);if("recovered"===e){if(null==this.recovery)throw Error("recovery bit must be present");return e5(Uint8Array.of(this.recovery),t,i)}return e5(t,i)}toHex(e){return e0(this.toBytes(e))}assertValidity(){}static fromCompact(e){return m.fromBytes(i0("sig",e),"compact")}static fromDER(e){return m.fromBytes(i0("sig",e),"der")}normalizeS(){return this.hasHighS()?new m(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return e0(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return e0(this.toBytes("compact"))}}let b=i.bits2int||function(e){if(e.length>8192)throw Error("input is too large");let t=iY(e0(e)),i=8*e.length-l;return i>0?t>>BigInt(i):t},w=i.bits2int_modN||function(e){return o.create(b(e))},v=i3(l);function E(e){return i2("num < 2^"+l,e,rZ,v),o.toBytes(e)}function I(e,i){return iJ(e,void 0,"message"),i?iJ(t(e),void 0,"prehashed message"):e}return Object.freeze({keygen:c,getPublicKey:h,getSharedSecret:u,utils:d,lengths:p,Point:e,sign:function(i,n,l={}){let{seed:c,k2sig:h}=function(t,i,s){if(["recovered","canonical"].some(e=>e in s))throw Error("sign() legacy options not supported");let{lowS:n,prehash:l,extraEntropy:c}=rG(s,f),h=w(t=I(t,l)),u=r0(o,i),d=[E(u),E(h)];if(null!=c&&!1!==c){let e=!0===c?r(p.secretKey):c;d.push(i0("extraEntropy",e))}return{seed:e5(...d),k2sig:function(t){let i=b(t);if(!o.isValidNot0(i))return;let r=o.inv(i),s=e.BASE.multiply(i).toAffine(),l=o.create(s.x);if(l===rZ)return;let c=o.create(r*o.create(h+l*u));if(c===rZ)return;let d=2*(s.x!==l)|Number(s.y&rY),p=c;return n&&c>a>>rY&&(p=o.neg(c),d^=1),new m(l,p,d)}}}(i=i0("message",i),n,l);return(function(e,t,i){if("number"!=typeof e||e<2)throw Error("hashLen must be a number");if("number"!=typeof t||t<2)throw Error("qByteLen must be a number");if("function"!=typeof i)throw Error("hmacFn must be a function");let r=e=>new Uint8Array(e),s=r(e),n=r(e),o=0,a=()=>{s.fill(1),n.fill(0),o=0},l=(...e)=>i(n,s,...e),c=(e=r(0))=>{n=l(Uint8Array.of(0),e),s=l(),0!==e.length&&(n=l(Uint8Array.of(1),e),s=l())},h=()=>{if(o++>=1e3)throw Error("drbg: tried 1000 values");let e=0,i=[];for(;e<t;){let t=(s=l()).slice();i.push(t),e+=s.length}return e5(...i)};return(e,t)=>{let i;for(a(),c(e);!(i=t(h()));)c();return a(),i}})(t.outputLen,o.BYTES,s)(c,h)},verify:function(t,i,r,s={}){let{lowS:n,prehash:a,format:l}=rG(s,f);if(r=i0("publicKey",r),i=I(i0("message",i),a),"strict"in s)throw Error("options.strict was renamed to lowS");let c=void 0===l?function(e){let t,i="string"==typeof e||eL(e),r=!i&&null!==e&&"object"==typeof e&&"bigint"==typeof e.r&&"bigint"==typeof e.s;if(!i&&!r)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(r)t=new m(e.r,e.s);else if(i){try{t=m.fromBytes(i0("sig",e),"der")}catch(e){if(!(e instanceof rJ.Err))throw e}if(!t)try{t=m.fromBytes(i0("sig",e),"compact")}catch{return!1}}return t||!1}(t):m.fromBytes(i0("sig",t),l);if(!1===c)return!1;try{let t=e.fromBytes(r);if(n&&c.hasHighS())return!1;let{r:s,s:a}=c,l=w(i),h=o.inv(a),u=o.create(l*h),d=o.create(s*h),p=e.BASE.multiplyUnsafe(u).add(t.multiplyUnsafe(d));return!p.is0()&&o.create(p.x)===s}catch{return!1}},recoverPublicKey:function(e,t,i={}){let{prehash:r}=rG(i,f);return t=I(t,r),m.fromBytes(e,"recovered").recoverPublicKey(t).toBytes()},Signature:m,hash:t})}(function(e,t={}){let i=function(e,t,i={},r){if(void 0===r&&(r="edwards"===e),!t||"object"!=typeof t)throw Error(`expected valid ${e} CURVE object`);for(let e of["p","n","h"]){let i=t[e];if(!("bigint"==typeof i&&i>rE))throw Error(`CURVE.${e} must be positive bigint`)}let s=rB(t.p,i.Fp,r),n=rB(t.n,i.Fn,r);for(let i of["Gx","Gy","a","weierstrass"===e?"b":"d"])if(!s.isValid(t[i]))throw Error(`CURVE.${i} must be valid field element of CURVE.Fp`);return{CURVE:t=Object.freeze(Object.assign({},t)),Fp:s,Fn:n}}("weierstrass",e,t),{Fp:r,Fn:s}=i,n=i.CURVE,{h:o,n:a}=n;i5(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:l}=t;if(l&&(!r.is0(n.a)||"bigint"!=typeof l.beta||!Array.isArray(l.basises)))throw Error('invalid endo: expected "beta": bigint and "basises": array');let c=r2(r,s);function h(){if(!r.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}let u=t.toBytes||function(e,t,i){let{x:s,y:n}=t.toAffine(),o=r.toBytes(s);return(iG(i,"isCompressed"),i)?(h(),e5(r1(!r.isOdd(n)),o)):e5(Uint8Array.of(4),o,r.toBytes(n))},d=t.fromBytes||function(e){iJ(e,void 0,"Point");let{publicKey:t,publicKeyUncompressed:i}=c,s=e.length,n=e[0],o=e.subarray(1);if(s===t&&(2===n||3===n)){let e,t=r.fromBytes(o);if(!r.isValid(t))throw Error("bad point: is not on curve, wrong x");let i=p(t);try{e=r.sqrt(i)}catch(e){throw Error("bad point: is not on curve, sqrt error"+(e instanceof Error?": "+e.message:""))}return h(),(1&n)==1!==r.isOdd(e)&&(e=r.neg(e)),{x:t,y:e}}if(s===i&&4===n){let e=r.BYTES,t=r.fromBytes(o.subarray(0,e)),i=r.fromBytes(o.subarray(e,2*e));if(!f(t,i))throw Error("bad point: is not on curve");return{x:t,y:i}}throw Error(`bad point: got length ${s}, expected compressed=${t} or uncompressed=${i}`)};function p(e){let t=r.sqr(e),i=r.mul(t,e);return r.add(r.add(i,r.mul(e,n.a)),n.b)}function f(e,t){let i=r.sqr(t),s=p(e);return r.eql(i,s)}if(!f(n.Gx,n.Gy))throw Error("bad curve params: generator point");let g=r.mul(r.pow(n.a,rQ),rX),y=r.mul(r.sqr(n.b),BigInt(27));if(r.is0(r.add(g,y)))throw Error("bad curve params: a or b");function m(e,t,i=!1){if(!r.isValid(t)||i&&r.is0(t))throw Error(`bad point coordinate ${e}`);return t}function b(e){if(!(e instanceof x))throw Error("ProjectivePoint expected")}function w(e){if(!l||!l.basises)throw Error("no endo");return function(e,t,i){let[[r,s],[n,o]]=t,a=rF(o*e,i),l=rF(-s*e,i),c=e-a*r-l*n,h=-a*s-l*o,u=c<rZ,d=h<rZ;u&&(c=-c),d&&(h=-h);let p=i3(Math.ceil(i8(i)/2))+rY;if(c<rZ||c>=p||h<rZ||h>=p)throw Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:u,k1:c,k2neg:d,k2:h}}(e,l.basises,s.ORDER)}let v=i6((e,t)=>{let{X:i,Y:s,Z: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};
vendor: 4,077 bytes, line 5
5if(!r.eql(c,r.ONE))throw Error("invZ was invalid");return{x:a,y:l}}),E=i6(e=>{if(e.is0()){if(t.allowInfinityPoint&&!r.is0(e.Y))return;throw Error("bad point: ZERO")}let{x:i,y:s}=e.toAffine();if(!r.isValid(i)||!r.isValid(s))throw Error("bad point: x or y not field elements");if(!f(i,s))throw Error("bad point: equation left != right");if(!e.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function I(e,t,i,s,n){return i=new x(r.mul(i.X,e),i.Y,i.Z),t=rx(s,t),i=rx(n,i),t.add(i)}class x{constructor(e,t,i){this.X=m("x",e),this.Y=m("y",t,!0),this.Z=m("z",i),Object.freeze(this)}static CURVE(){return n}static fromAffine(e){let{x:t,y:i}=e||{};if(!e||!r.isValid(t)||!r.isValid(i))throw Error("invalid affine point");if(e instanceof x)throw Error("projective point not allowed");return r.is0(t)&&r.is0(i)?x.ZERO:new x(t,i,r.ONE)}static fromBytes(e){let t=x.fromAffine(d(iJ(e,void 0,"point")));return t.assertValidity(),t}static fromHex(e){return x.fromBytes(i0("pointHex",e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(e=8,t=!0){return P.createCache(this,e),t||this.multiply(rQ),this}assertValidity(){E(this)}hasEvenY(){let{y:e}=this.toAffine();if(!r.isOdd)throw Error("Field doesn't support isOdd");return!r.isOdd(e)}equals(e){b(e);let{X:t,Y:i,Z:s}=this,{X:n,Y:o,Z:a}=e,l=r.eql(r.mul(t,a),r.mul(n,s)),c=r.eql(r.mul(i,a),r.mul(o,s));return l&&c}negate(){return new x(this.X,r.neg(this.Y),this.Z)}double(){let{a:e,b:t}=n,i=r.mul(t,rQ),{X:s,Y:o,Z:a}=this,l=r.ZERO,c=r.ZERO,h=r.ZERO,u=r.mul(s,s),d=r.mul(o,o),p=r.mul(a,a),f=r.mul(s,o);return f=r.add(f,f),h=r.mul(s,a),h=r.add(h,h),l=r.mul(e,h),c=r.mul(i,p),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(i,h),p=r.mul(e,p),f=r.sub(u,p),f=r.mul(e,f),f=r.add(f,h),h=r.add(u,u),u=r.add(h,u),u=r.add(u,p),u=r.mul(u,f),c=r.add(c,u),p=r.mul(o,a),p=r.add(p,p),u=r.mul(p,f),l=r.sub(l,u),h=r.mul(p,d),h=r.add(h,h),new x(l,c,h=r.add(h,h))}add(e){b(e);let{X:t,Y:i,Z:s}=this,{X:o,Y:a,Z:l}=e,c=r.ZERO,h=r.ZERO,u=r.ZERO,d=n.a,p=r.mul(n.b,rQ),f=r.mul(t,o),g=r.mul(i,a),y=r.mul(s,l),m=r.add(t,i),w=r.add(o,a);m=r.mul(m,w),w=r.add(f,g),m=r.sub(m,w),w=r.add(t,s);let v=r.add(o,l);return w=r.mul(w,v),v=r.add(f,y),w=r.sub(w,v),v=r.add(i,s),c=r.add(a,l),v=r.mul(v,c),c=r.add(g,y),v=r.sub(v,c),u=r.mul(d,w),c=r.mul(p,y),u=r.add(c,u),c=r.sub(g,u),u=r.add(g,u),h=r.mul(c,u),g=r.add(f,f),g=r.add(g,f),y=r.mul(d,y),w=r.mul(p,w),g=r.add(g,y),y=r.sub(f,y),y=r.mul(d,y),w=r.add(w,y),f=r.mul(g,w),h=r.add(h,f),f=r.mul(v,w),c=r.mul(m,c),c=r.sub(c,f),f=r.mul(m,g),u=r.mul(v,u),new x(c,h,u=r.add(u,f))}subtract(e){return this.add(e.negate())}is0(){return this.equals(x.ZERO)}multiply(e){let i,r,{endo:n}=t;if(!s.isValidNot0(e))throw Error("invalid scalar: out of range");let o=e=>P.cached(this,e,e=>rS(x,e));if(n){let{k1neg:t,k1:s,k2neg:a,k2:l}=w(e),{p:c,f:h}=o(s),{p:u,f:d}=o(l);r=h.add(d),i=I(n.beta,c,u,t,a)}else{let{p:t,f:s}=o(e);i=t,r=s}return rS(x,[i,r])[0]}multiplyUnsafe(e){let{endo:i}=t;if(!s.isValid(e))throw Error("invalid scalar: out of range");if(e===rZ||this.is0())return x.ZERO;if(e===rY)return this;if(P.hasCache(this))return this.multiply(e);if(!i)return P.unsafe(this,e);{let{k1neg:t,k1:r,k2neg:s,k2:n}=w(e),{p1:o,p2:a}=function(e,t,i,r){let s=t,n=e.ZERO,o=e.ZERO;for(;i>rE||r>rE;)i&rI&&(n=n.add(s)),r&rI&&(o=o.add(s)),s=s.double(),i>>=rI,r>>=rI;return{p1:n,p2:o}}(x,this,r,n);return I(i.beta,o,a,t,s)}}multiplyAndAddUnsafe(e,t,i){let r=this.multiplyUnsafe(t).add(e.multiplyUnsafe(i));return r.is0()?void 0:r}toAffine(e){return v(this,e)}isTorsionFree(){let{isTorsionFree:e}=t;return o===rY||(e?e(x,this):P.unsafe(this,a).is0())}clearCofactor(){let{clearCofactor:e}=t;return o===rY?this:e?e(x,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(e=!0){return iG(e,"isCompressed"),this.assertValidity(),u(x,this,e)}toHex(e=!0){return e0(this.toBytes(e))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(e=!0){return this.toBytes(e)}
5_setWindowSize(e){this.precompute(e)}static normalizeZ(e){return rS(x,e)}static msm(e,t){return function(e,t,i,r){(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);let s=i.length,n=r.length;if(s!==n)throw Error("arrays of points and scalars must have equal length");let o=e.ZERO,a=i8(BigInt(s)),l=1;a>12?l=a-3:a>4?l=a-2:a>0&&(l=2);let c=i3(l),h=Array(Number(c)+1).fill(o),u=Math.floor((t.BITS-1)/l)*l,d=o;for(let e=u;e>=0;e-=l){h.fill(o);for(let t=0;t<n;t++){let s=Number(r[t]>>BigInt(e)&c);h[s]=h[s].add(i[t])}let t=o;for(let e=h.length-1,i=o;e>0;e--)i=i.add(h[e]),t=t.add(i);if(d=d.add(t),0!==e)for(let e=0;e<l;e++)d=d.double()}return d}(x,s,e,t)}static fromPrivateKey(e){return x.BASE.multiply(r0(s,e))}}x.BASE=new x(n.Gx,n.Gy,r.ONE),x.ZERO=new x(r.ZERO,r.ONE,r.ZERO),x.Fp=r,x.Fn=s;let S=s.BITS,P=new rC(x,t.endo?Math.ceil(S/2):S);return x.BASE.precompute(8),x}(i,r),s,n);return t=o.Point,Object.assign({},o,{ProjectivePoint:t,CURVE:Object.assign({},e,rm(t.Fn.ORDER,t.Fn.BITS))})})({...e,hash:t});return{...i(t),create:i}}let r3={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},r5={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},r6={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},r4=rb(r3.p),r7=rb(r5.p),r9=rb(r6.p),se=r8({...r3,Fp:r4,lowS:!1},tN);r8({...r5,Fp:r7,lowS:!1},tB),r8({...r6,Fp:r9,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},tC);let st="base10",si="base16",sr="base64pad",ss="base64url",sn="utf8";function so(){let e=rK.utils.randomPrivateKey(),t=rK.getPublicKey(e);return{privateKey:(0,E.toString)(e,si),publicKey:(0,E.toString)(t,si)}}function sa(){let e=e7(32);return(0,E.toString)(e,si)}function sl(e,t){var i,r;let s=rK.getSharedSecret((0,I.fromString)(e,si),(0,I.fromString)(t,si)),n=(i=void 0,function(e,t,i,r=32){eM(e),eD(r);let s=e.outputLen;if(r>255*s)throw Error("Length should be <= 255*HashLen");let n=Math.ceil(r/s);void 0===i&&(i=iK);let o=new Uint8Array(n*s),a=iV.create(e,t),l=a._cloneInto(),c=new Uint8Array(a.outputLen);for(let e=0;e<n;e++)iz[0]=e+1,l.update(0===e?iK:c).update(i).update(iz).digestInto(c),o.set(c,s*e),a._cloneInto(l);return a.destroy(),l.destroy(),eF(c,iz),o.slice(0,r)}(tN,(r=void 0,eM(tN),void 0===r&&(r=new Uint8Array(tN.outputLen)),iV(tN,e3(r),e3(s))),i,32));return(0,E.toString)(n,si)}function sc(e){let t=tN((0,I.fromString)(e,si));return(0,E.toString)(t,si)}function sh(e){let t=tN((0,I.fromString)(e,sn));return(0,E.toString)(t,si)}function su(e){return(0,I.fromString)(`${e}`,st)}function sd(e){return Number((0,E.toString)(e,st))}function sp(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function sf(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),i=(4-t.length%4)%4;return t+"=".repeat(i)}function sg(e){let t=su("u">typeof e.type?e.type:0);if(1===sd(t)&&typeof e.senderPublicKey>"u")throw Error("Missing sender public key for type 1 envelope");let i="u">typeof e.senderPublicKey?(0,I.fromString)(e.senderPublicKey,si):void 0,r="u">typeof e.iv?(0,I.fromString)(e.iv,si):e7(12),s=sw({type:t,sealed:i$((0,I.fromString)(e.symKey,si),r).encrypt
5((0,I.fromString)(e.message,sn)),iv:r,senderPublicKey:i});return e.encoding===ss?sp(s):s}function sy(e){let t=(0,I.fromString)(e.symKey,si),{sealed:i,iv:r}=sv({encoded:e.encoded,encoding:e.encoding}),s=i$(t,r).decrypt(i);if(null===s)throw Error("Failed to decrypt");return(0,E.toString)(s,sn)}function sm(e,t){let i=su(2),r=e7(12),s=sw({type:i,sealed:(0,I.fromString)(e,sn),iv:r});return t===ss?sp(s):s}function sb(e,t){let{sealed:i}=sv({encoded:e,encoding:t});return(0,E.toString)(i,sn)}function sw(e){if(2===sd(e.type))return(0,E.toString)((0,x.concat)([e.type,e.sealed]),sr);if(1===sd(e.type)){if(typeof e.senderPublicKey>"u")throw Error("Missing sender public key for type 1 envelope");return(0,E.toString)((0,x.concat)([e.type,e.senderPublicKey,e.iv,e.sealed]),sr)}return(0,E.toString)((0,x.concat)([e.type,e.iv,e.sealed]),sr)}function sv(e){let t=(e.encoding||sr)===ss?sf(e.encoded):e.encoded,i=(0,I.fromString)(t,sr),r=i.slice(0,1);if(1===sd(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===sd(r))return{type:r,sealed:i.slice(1),iv:e7(12)};let s=i.slice(1,13);return{type:r,sealed:i.slice(13),iv:s}}function sE(e,t){let i=sv({encoded:e,encoding:t?.encoding});return sI({type:sd(i.type),senderPublicKey:"u">typeof i.senderPublicKey?(0,E.toString)(i.senderPublicKey,si):void 0,receiverPublicKey:t?.receiverPublicKey})}function sI(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 sx(e){return 1===e.type&&"string"==typeof e.senderPublicKey&&"string"==typeof e.receiverPublicKey}function sS(e){return 2===e.type}function sP(e,t){let i,r,[s,n,o]=e.split("."),a=c.Buffer.from(sf(o),"base64");if(64!==a.length)throw Error("Invalid signature length");let l=a.slice(0,32),h=a.slice(32,64),u=tN(`${s}.${n}`),d=(i=c.Buffer.from(t.x,"base64"),r=c.Buffer.from(t.y,"base64"),(0,x.concat)([new Uint8Array([4]),i,r]));if(!se.verify((0,x.concat)([l,h]),u,d))throw Error("Invalid signature");return(0,v.decodeJWT)(e).payload}function sO(e){return e?.relay||{protocol:"irn"}}function sR(e){let t=S.RELAY_JSONRPC[e];if(typeof t>"u")throw Error(`Relay Protocol not supported: ${e}`);return t}var sA=Object.defineProperty,s_=Object.defineProperties,sT=Object.getOwnPropertyDescriptors,sN=Object.getOwnPropertySymbols,sC=Object.prototype.hasOwnProperty,sB=Object.prototype.propertyIsEnumerable,sj=(e,t,i)=>t in e?sA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,sq=(e,t)=>{for(var i in t||(t={}))sC.call(t,i)&&sj(e,i,t[i]);if(sN)for(var i of sN(t))sB.call(t,i)&&sj(e,i,t[i]);return e};function sk(e){var t;if(!e.includes("wc:")){let t=em(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=Object.fromEntries(new URLSearchParams("u">typeof r?e.substring(r):"").entries()),a="string"==typeof o.methods?o.methods.split(","):void 0;return{protocol:s,topic:(t=n[0]).startsWith("//")?t.substring(2):t,version:parseInt(n[1],10),symKey:o.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}(o),methods:a,expiryTimestamp:o.expiryTimestamp?parseInt(o.expiryTimestamp,10):void 0}}function sU(e){let t=new URLSearchParams;return Object.entries(sq(sq(s_(sq({},function(e,t="-"){let i={};return Object.keys(e).forEach(r=>{e[r]&&(i["relay"+t+r]=e[r])}),i}(e.relay)),sT({symKey:e.symKey})),e.expiryTimestamp&&{expiryTimestamp:e.expiryTimestamp.toString()}),e.methods&&{methods:e.methods.join(",")})).sort(([e],[t])=>e.localeCompare(t)).forEach(([e,i])=>{void 0!==i&&t.append(e,String(i))}),`${e.protocol}:${e.topic}@${e.version}?${t}`}function sL(e,t,i){return`${e}?wc_ev=${i}&topic=${t}`}var sD=Object.defineProperty,s$=Object.defineProperties,sM=Object.getOwnPropertyDescriptors,sV=Object.getOwnPropertySymbols,sz=Object.prototype.hasOwnProperty,sK=Object.prototype.propertyIsEnumerable,sF=(e,t,i)=>t in e?sD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,sH=(e,t)=>{for(var i in t||(t={}))sz.call(t,i)&&sF(e,i,t[i]);if(sV)for(var i of sV(t))sK.call(t,i)&&sF(e,i,t[i]);return e},sG=(e,t)=>
5s$(e,sM(t));function sJ(e){let t=[];return e.forEach(e=>{let[i,r]=e.split(":");t.push(`${i}:${r}`)}),t}function sZ(e){return e.includes(":")}function sY(e){return sZ(e)?e.split(":")[0]:e}function sW(e){var t,i,r;let s={};if(!s5(e))return s;for(let[n,o]of Object.entries(e)){let e=sZ(n)?[n]:o.chains,a=o.methods||[],l=o.events||[],c=sY(n);s[c]=sG(sH({},s[c]),{chains:eu(e,null==(t=s[c])?void 0:t.chains),methods:eu(a,null==(i=s[c])?void 0:i.methods),events:eu(l,null==(r=s[c])?void 0:r.events)})}return s}function sQ(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=eu(i.methods,e):i.methods=e,i.events=["chainChanged","accountsChanged"];return s}function sX(e,t){var i,r,s,n,o,a;let l=sW(e),c=sW(t),h={};for(let e of Object.keys(l).concat(Object.keys(c)))h[e]={chains:eu(null==(i=l[e])?void 0:i.chains,null==(r=c[e])?void 0:r.chains),methods:eu(null==(s=l[e])?void 0:s.methods,null==(n=c[e])?void 0:n.methods),events:eu(null==(o=l[e])?void 0:o.events,null==(a=c[e])?void 0:a.events)};return h}let s0={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}},s1={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 s2(e,t){let{message:i,code:r}=s1[e];return{message:t?`${i} ${t}`:i,code:r}}function s8(e,t){let{message:i,code:r}=s0[e];return{message:t?`${i} ${t}`:i,code:r}}function s3(e,t){return!!Array.isArray(e)&&(!("u">typeof t)||!e.length||e.every(t))}function s5(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function s6(e){return typeof e>"u"}function s4(e,t){return!!(t&&s6(e))||"string"==typeof e&&!!e.trim().length}function s7(e,t){return!!(t&&s6(e))||"number"==typeof e&&!isNaN(e)}function s9(e,t){let{requiredNamespaces:i}=t,r=Object.keys(e.namespaces),s=Object.keys(i),n=!0;return!!X(s,r)&&(r.forEach(t=>{let{accounts:r,methods:s,events:o}=e.namespaces[t],a=sJ(r),l=i[t];X(_(t,l),a)&&X(l.methods,s)&&X(l.events,o)||(n=!1)}),n)}function ne(e){return!!(s4(e,!1)&&e.includes(":"))&&2===e.split(":").length}function nt(e){function t(e){try{return"u">typeof new URL(e)}catch{return!1}}try{if(s4(e,!1)){if(t(e))return!0;let i=em(e);return t(i)}}catch{}return!1}function ni(e){var t;return null==(t=e?.proposer)?void 0:t.publicKey}
5function nr(e){return e?.topic}function ns(e,t){let i=null;return s4(e?.publicKey,!1)||(i=s2("MISSING_OR_INVALID",`${t} controller public key should be a string`)),i}function nn(e){let t=!0;return s3(e)?e.length&&(t=e.every(e=>s4(e,!1))):t=!1,t}function no(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,nn(e?.methods)?nn(e?.events)||(s=s8("UNSUPPORTED_EVENTS",`${r}, events should be an array of strings or empty array for no events`)):s=s8("UNSUPPORTED_METHODS",`${r}, methods should be an array of strings or empty array for no methods`),s);n&&(i=n)}),i}function na(e,t,i){let r=null;if(e&&s5(e)){let s,n=no(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=_(e,r),o=`${t} ${i}`,a=null,s3(n)&&n.length?n.forEach(e=>{a||ne(e)||(a=s8("UNSUPPORTED_CHAINS",`${o}, chain ${e} should be a string and conform to "namespace:chainId" format`))}):ne(e)||(a=s8("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=s2("MISSING_OR_INVALID",`${t}, ${i} should be an object with data`);return r}function nl(e,t){let i=null;if(e&&s5(e)){let r,s=no(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,s3(i)?i.forEach(e=>{n||function(e){if(s4(e,!1)&&e.includes(":")){let t=e.split(":");if(3===t.length){let e=t[0]+":"+t[1];return!!t[2]&&ne(e)}}return!1}(e)||(n=s8("UNSUPPORTED_ACCOUNTS",`${s}, account ${e} should be a string and conform to "namespace:chainId:address" format`))}):n=s8("UNSUPPORTED_ACCOUNTS",`${s}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n);o&&(r=o)}),r);n&&(i=n)}else i=s2("MISSING_OR_INVALID",`${t}, namespaces should be an object with data`);return i}function nc(e){return s4(e.protocol,!0)}function nh(e,t){let i=!1;return t&&!e?i=!0:e&&s3(e)&&e.length&&e.forEach(e=>{i=nc(e)}),i}function nu(e){return"number"==typeof e}function nd(e){return"u">typeof e}function np(e){return!(!e||"object"!=typeof e||!e.code||!s7(e.code,!1)||!e.message||!s4(e.message,!1))}function nf(e){return!(s6(e)||!s4(e.method,!1))}function ng(e){return!(s6(e)||s6(e.result)&&s6(e.error)||!s7(e.id,!1)||!s4(e.jsonrpc,!1))}function ny(e){return!(s6(e)||!s4(e.name,!1))}function nm(e,t){let i;return!(!ne(t)||!(i=[],Object.values(e).forEach(e=>{i.push(...sJ(e.accounts))}),i).includes(t))}function nb(e,t,i){let r;return!!s4(i,!1)&&(r=[],Object.values(e).forEach(e=>{sJ(e.accounts).includes(t)&&r.push(...e.methods)}),r).includes(i)}function nw(e,t,i){let r;return!!s4(i,!1)&&(r=[],Object.values(e).forEach(e=>{sJ(e.accounts).includes(t)&&r.push(...e.events)}),r).includes(i)}function nv(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=sJ(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),d=nE(Object.keys(e)),p=nE(Object.keys(t)),f=d.filter(e=>!p.includes(e));return f.length&&(a=s2("NON_CONFORMING_NAMESPACES",`${i} namespaces keys don't satisfy requiredNamespaces. 6 Required: ${f.toString()} 7 Received: ${Object.keys(t).toString()}`)),X(h,u)||(a=s2("NON_CONFORMING_NAMESPACES",`${i} namespaces chains don't satisfy required namespaces. 8 Required: ${h.toString()} 9 Approved: ${u.toString()}`)),Object.keys(t).forEach(e=>{if(!e.includes(":")||a)return;let r=sJ(t[e].accounts);r.includes(e)||(a=s2("NON_CONFORMING_NAMESPACES",`${i} namespaces accounts don't satisfy namespace accounts for ${e} 10 Required: ${e} 11 Approved: ${r.toString()}`))}),h.forEach(e=>{a||(X(l[e].methods,c[e].methods)?X(l[e].events,c[e].events)||(a=s2("NON_CONFORMING_NAMESPACES",`${i} namespaces events don't satisfy namespace events for ${e}`)):a=s2("NON_CONFORMING_NAMESPACES",`${i} namespaces methods don't satisfy namespace methods for ${e}`))}),a}function nE(e){return[...new Set(e.map(e=>e.includes(":")?e.split(":")[0]:e))]}function nI(e,t){return s7(e,!1)&&e<=t.max&&e>=t.min}function nx(){let e=G();return new Promise(t=>{switch(e){case M:t(H()&&navigator?.onLine);break;case D:t(nS());break;default:t(!0)}})}async function nS(){if(z()&&null!=e.g&&e.g.NetInfo){let t=await (null==e.g?void 0:e.g.NetInfo.fetch());return t?.isConnected}return!0}function nP(t){var i,r;switch(G()){case M:i=t,!z()&&H()&&(window.addEventListener("online",()=>i(!0)),window.addEventListener("offline",()=>i(!1)));break;case D:r=t,z()&&null!=e.g&&e.g.NetInfo&&e.g?.NetInfo.addEventListener(e=>r(e?.isConnected))}}function nO(){var e;
11return!(H()&&(0,d.getDocument)())||(null==(e=(0,d.getDocument)())?void 0:e.visibilityState)==="visible"}let nR={};class nA{static get(e){return nR[e]}static set(e,t){nR[e]=t}static delete(e){delete nR[e]}}function n_(e){return new Uint8Array(e.replace(/^0x/,"").match(/.{1,2}/g).map(e=>parseInt(e,16)))}function nT(e){let t,i,r=Uint8Array.from(c.Buffer.from(e.signature,"hex")),s=function({publicKey:e,signature:t,payload:i}){var r,s,n;let o,a=n_(i.method),l=128|parseInt((null==(r=i.version)?void 0:r.toString())||"4"),c=(s=i.address,42===(o=y.default.decode(s)[0])?0:60===o?2:1),h="00"===i.era?new Uint8Array([0]):n_(i.era);if(1!==h.length&&2!==h.length)throw Error("Invalid era length");let u=parseInt(i.nonce,16),d=new Uint8Array([255&u,u>>8&255]),p=new Uint8Array([0,...e,c,...t,...h,...d,...function(e){if(e<BigInt(1)<<BigInt(6))return new Uint8Array([Number(e<<BigInt(2))]);if(e<BigInt(1)<<BigInt(14)){let t=e<<BigInt(2)|BigInt(1);return new Uint8Array([Number(t&BigInt(255)),Number(t>>BigInt(8)&BigInt(255))])}if(e<BigInt(1)<<BigInt(30)){let t=e<<BigInt(2)|BigInt(2);return new Uint8Array([Number(t&BigInt(255)),Number(t>>BigInt(8)&BigInt(255)),Number(t>>BigInt(16)&BigInt(255)),Number(t>>BigInt(24)&BigInt(255))])}throw Error("BigInt compact encoding not supported > 2^30")}(BigInt(`0x${(n=i.tip).startsWith("0x")?n.slice(2):n}`)),...a]);return new Uint8Array([...function(e){if(e<64)return new Uint8Array([e<<2]);if(e<16384){let t=e<<2|1;return new Uint8Array([255&t,t>>8&255])}if(e<0x40000000){let t=e<<2|2;return new Uint8Array([255&t,t>>8&255,t>>16&255,t>>24&255])}throw Error("Compact encoding > 2^30 not supported")}(p.length+1),l,...p])}({publicKey:function(e){let t=y.default.decode(e);if(t.length<33)throw Error("Too short to contain a public key");return t.slice(1,33)}(e.transaction.address),signature:r,payload:e.transaction});return t=n_(c.Buffer.from(s).toString("hex")),i=(0,P.blake2b)(t,void 0,32),"0x"+c.Buffer.from(i).toString("hex")}function nN({logger:e,name:t}){let i="string"==typeof e?(0,O.generatePlatformLogger)({opts:{level:e,name:t}}).logger:e;return i.level="string"==typeof e?e:e.level,i}e.s(["BASE16",()=>si,"BASE64",()=>sr,"BASE64URL",()=>ss,"LimitedSet",()=>ew,"MemoryStore",()=>nA,"TYPE_1",()=>1,"TYPE_2",()=>2,"buildNamespacesFromAuth",()=>sQ,"buildSignedExtrinsicHash",()=>nT,"calcExpiry",()=>el,"createDelayedPromise",()=>ei,"createEncodedRecap",()=>is,"createExpiringPromise",()=>er,"createLogger",()=>nN,"decodeTypeByte",()=>sd,"decodeTypeTwoEnvelope",()=>sb,"decrypt",()=>sy,"deriveSymKey",()=>sl,"deserialize",()=>sv,"encodeTypeTwoEnvelope",()=>sm,"encrypt",()=>sg,"engineEvent",()=>eh,"extractSolanaTransactionId",()=>tH,"formatIdTarget",()=>eo,"formatMessage",()=>ie,"formatRelayRpcUrl",()=>Q,"formatTopicTarget",()=>en,"formatUA",()=>W,"formatUri",()=>sU,"generateKeyPair",()=>so,"generateRandomBytes32",()=>sa,"getAccountsFromNamespaces",()=>A,"getAlgorandTransactionId",()=>tZ,"getAppId",()=>J,"getAppMetadata",()=>Y,"getChainsFromRecap",()=>il,"getDeepLink",()=>ep,"getDidAddress",()=>t7,"getInternalError",()=>s2,"getLinkModeURL",()=>sL,"getMethodsFromRecap",()=>ia,"getNamespacedDidChainId",()=>t4,"getNearTransactionIdFromSignedTransaction",()=>tJ,"getRecapFromResources",()=>ic,"getRelayProtocolApi",()=>sR,"getRelayProtocolName",()=>sO,"getSdkError",()=>s8,"getSearchParamFromURL",()=>ef,"getSignDirectHash",()=>tW,"getSuiDigest",()=>tG,"getWalletSendCallsHashes",()=>tQ,"handleDeeplinkRedirect",()=>ed,"hashKey",()=>sc,"hashMessage",()=>sh,"isAndroid",()=>K,"isAppVisible",()=>nO,"isBrowser",()=>H,"isCaipNamespace",()=>sZ,"isConformingNamespaces",()=>nv,"isExpired",()=>ec,"isIos",()=>F,"isNode",()=>V,"isOnline",()=>nx,"isProposalStruct",()=>ni,"isReactNative",()=>z,"isSessionCompatible",()=>s9,"isSessionStruct",()=>nr,"isTestRun",()=>ey,"isTypeOneEnvelope",()=>sx,"isTypeTwoEnvelope",()=>sS,"isUndefined",()=>s6,"isValidArray",()=>s3,"isValidController",()=>ns,"isValidErrorReason",()=>np,"isValidEvent",()=>ny,"isValidId",()=>nu,"isValidNamespaces",()=>nl,"isValidNamespacesChainId",()=>nm,"isValidNamespacesEvent",()=>nw,"isValidNamespacesRequest",()=>nb,"isValidObject",()=>s5,"isValidParams",()=>nd,"isValidRelay",()=>nc,"isValidRelays",()=>nh,"isValidRequest",()=>nf,"isValidRequestExpiry",()=>nI,"isValidRequiredNamespaces",()=>na,"isValidResponse",()=>ng,"isValidString",()=>s4,"isValidUrl",()=>nt,"mapToObj",()=>ee,"mergeArrays",()=>eu,"mergeEncodedRecaps",()=>
11io,"mergeRequiredAndOptionalNamespaces",()=>sX,"objToMap",()=>et,"parseChainId",()=>R,"parseExpirerTarget",()=>ea,"parseNamespaceKey",()=>sY,"parseUri",()=>sk,"populateAppMetadata",()=>Z,"sleep",()=>eb,"subscribeToNetworkChange",()=>nP,"uuidv4",()=>eg,"validateDecoding",()=>sE,"validateEncoding",()=>sI,"validateSignedCacao",()=>t9,"verifyP256Jwt",()=>sP])},971342,e=>{"use strict";let t;var i=e.i(467034),r=e.i(219298),s=e.i(247167),n=e.i(180476),o=e.i(499276),a=e.i(278662),l=e.i(515089),c=e.i(648512),h=e.i(31794),u=e.i(121609),d=e.i(220540);e.i(262265);var p=e.i(773912),f=e.i(501365);e.i(424047);var g=e.i(329193),y=e.i(850967),m=e.i(112324),b=e.i(36610);let w="core",v=`wc@2:${w}:`,E={database:":memory:"},I="client_ed25519_seed",x=c.ONE_DAY,S=c.SIX_HOURS,P="wss://relay.walletconnect.org",O="relayer_message",R="relayer_message_ack",A="relayer_connection_stalled",_="relayer_publish",T="payload",N="connect",C="disconnect",B="error",j="2.22.4",q="link_mode",k="relay",U="inbound",L="WALLETCONNECT_LINK_MODE_APPS",D="subscription_created",$="subscription_deleted",M=(c.THIRTY_DAYS,c.FIVE_SECONDS,c.THIRTY_DAYS,{wc_pairingDelete:{req:{ttl:c.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:c.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:c.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:c.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:c.ONE_DAY,prompt:!1,tag:0},res:{ttl:c.ONE_DAY,prompt:!1,tag:0}}}),V="pairing_create",z="pairing_delete",K="history_created",F="history_updated",H="history_deleted",G="expirer_created",J="expirer_deleted",Z="expirer_expired",Y=(c.ONE_DAY,"https://verify.walletconnect.org"),W=`${Y}/v3`,Q=["https://verify.walletconnect.com",Y],X="malformed_pairing_uri",ee="session_approve_started";var et=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,d=n-1;(0!==h||u<s)&&-1!==d;d--,u++)h+=a*o[d]>>>0,o[d]=h%256>>>0,h=h/256>>>0;if(0!==h)throw Error("Non-zero carry");s=u,t++}if(" "!==e[t]){for(var p=n-s;p!==n&&0===o[p];)p++;for(var f=new Uint8Array(r+(n-p)),g=r;p!==n;)f[g++]=o[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError("Expected Uint8Array");if(0===t.length)return"";for(var i=0,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],d=0,p=o-1;(0!==u||d<r)&&-1!==p;p--,d++)u+=256*c[p]>>>0,c[p]=u%a>>>0,u=u/a>>>0;if(0!==u)throw Error("Non-zero carry");r=d,s++}for(var f=o-r;f!==o&&0===c[f];)f++;for(var g=l.repeat(i);f<o;++f)g+=e.charAt(c[f]);return g},decodeUnsafe:u,decode:function(e){var i=u(e);if(i)return i;throw Error(`Non-${t} character`)}}};let ei=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 er{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 es{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}
11 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 eo(this,e)}}class en{constructor(e){this.decoders=e}or(e){return eo(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 eo=(e,t)=>new en({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class ea{constructor(e,t,i,r){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=r,this.encoder=new er(e,t,i),this.decoder=new es(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}let el=({name:e,prefix:t,encode:i,decode:r})=>new ea(e,t,i,r),ec=({prefix:e,name:t,alphabet:i})=>{let{encode:r,decode:s}=et(i,t);return el({prefix:e,name:t,encode:r,decode:e=>ei(s(e))})},eh=({name:e,prefix:t,bitsPerChar:i,alphabet:r})=>el({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 eu=Object.freeze({__proto__:null,identity:el({prefix:"\0",name:"identity",encode:e=>new TextDecoder().decode(e),decode:e=>new TextEncoder().encode(e)})}),ed=Object.freeze({__proto__:null,base2:eh({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1})}),ep=Object.freeze({__proto__:null,base8:eh({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3})}),ef=Object.freeze({__proto__:null,base10:ec({prefix:"9",name:"base10",alphabet:"0123456789"})}),eg=Object.freeze({__proto__:null,base16:eh({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),base16upper:eh({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4})}),ey=Object.freeze({__proto__:null,base32:eh({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),base32upper:eh({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),base32pad:eh({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),base32padupper:eh({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),base32hex:eh({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),base32hexupper:eh({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),base32hexpad:eh({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),base32hexpadupper:eh({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),base32z:eh({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5})}),em=Object.freeze({__proto__:null,base36:ec({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),base36upper:ec({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"})}),eb=Object.freeze({__proto__:null,base58btc:ec({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),base58flickr:ec({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"})}),ew=Object.freeze({__proto__:null,base64:eh({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),base64pad:eh({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),base64url:eh({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),base64urlpad:eh({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6})});let ev=Array.from("ððªâð°ðððððððððððððâð»ð¥ð¾ð¿ðâ¤ðð¤£ððððððð
ððð¥ð¥°ðððð¢ð¤ðððªðâºðð¤ððððð¹ð¤¦ððââ¨ð¤·ð±ðð¸ððððððððð¤©ððð¤ðð¯ðð
11ð¶ðð¤â£ððððªðð¥ððð©ð¡ð¤ªðð¥³ð¥ð¤¤ððð³âððð´ðð¬ððð·ð»ðââ
ð¥ºððð¤ð¦âð£ððâ¹ððð âððºðð»ððððð¹ð£ð«ðððµð¤ðð´ð¤ð¼ð«â½ð¤âðð¤«ðð®ðð»ðð¶ðð²ð¿ð§¡ðâ¡ððââðð°ð¤¨ð¶ð¤ð¶ð°ðð¢ð¤ðð¨ð¨ð¤¬âððºð¤ððð±ðð¶ð¥´â¶â¡âðð¸â¬ð¨ðð¦ð·ðºâ ð
ððµðð¤²ð¤ ð¤§ððµð
ð§ð¾ððð¤ðð¤¯ð·âð§ð¯ððð¤ððâð´ð£ð¸ððð¥ð¤¢ð
ð¡ð©ðð¸ð»ð¤ð¤®ð¼ð¥µð©ððð¼ðð£ð¥"),eE=ev.reduce((e,t,i)=>(e[i]=t,e),[]),eI=ev.reduce((e,t,i)=>(e[t.codePointAt(0)]=i,e),[]);var ex=Object.freeze({__proto__:null,base256emoji:el({prefix:"ð",name:"base256emoji",encode:function(e){return e.reduce((e,t)=>e+=eE[t],"")},decode:function(e){let t=[];for(let i of e){let e=eI[i.codePointAt(0)];if(void 0===e)throw Error(`Non-base256emoji character: ${i}`);t.push(e)}return new Uint8Array(t)}})});function eS(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,eS.bytes=i-r+1,t}var eP=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 eO=(e,t,i=0)=>(eS(e,t,i),t),eR=(e,t)=>{let i=t.byteLength,r=eP(e),s=r+eP(i),n=new Uint8Array(s+i);return eO(e,n,0),eO(i,n,r),n.set(t,s),new eA(e,i,t,n)};class eA{constructor(e,t,i,r){this.code=e,this.size=t,this.digest=i,this.bytes=r}}let e_=({name:e,code:t,encode:i})=>new eT(e,t,i);class eT{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?eR(this.code,t):t.then(e=>eR(this.code,e))}throw Error("Unknown type, must be binary type")}}let eN=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t));
11var eC=Object.freeze({__proto__:null,sha256:e_({name:"sha2-256",code:18,encode:eN("SHA-256")}),sha512:e_({name:"sha2-512",code:19,encode:eN("SHA-512")})}),eB=Object.freeze({__proto__:null,identity:{code:0,name:"identity",encode:ei,digest:e=>eR(0,ei(e))}});new TextEncoder,new TextDecoder;let ej={...eu,...ed,...ep,...ef,...eg,...ey,...em,...eb,...ew,...ex};function eq(e){return null!=globalThis.Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function ek(e,t,i,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:i},decoder:{decode:r}}}({...eC,...eB});let eU=ek("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),eL=ek("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?eq(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}),eD={utf8:eU,"utf-8":eU,hex:ej.base16,latin1:eL,ascii:eL,binary:eL,...ej};var e$=Object.defineProperty,eM=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?e$(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class eV{constructor(e,t){this.core=e,this.logger=t,eM(this,"keychain",new Map),eM(this,"name","keychain"),eM(this,"version","0.3"),eM(this,"initialized",!1),eM(this,"storagePrefix",v),eM(this,"init",async()=>{if(!this.initialized){let e=await this.getKeyChain();"u">typeof e&&(this.keychain=e),this.initialized=!0}}),eM(this,"has",e=>(this.isInitialized(),this.keychain.has(e))),eM(this,"set",async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),eM(this,"get",e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>"u"){let{message:t}=(0,d.getInternalError)("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(t)}return t}),eM(this,"del",async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=(0,a.generateChildLogger)(t,this.name)}get context(){return(0,a.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,(0,d.mapToObj)(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return"u">typeof e?(0,d.objToMap)(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("NOT_INITIALIZED",this.name);throw Error(e)}}}var ez=Object.defineProperty,eK=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?ez(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class eF{constructor(e,t,i){this.core=e,this.logger=t,eK(this,"name","crypto"),eK(this,"keychain"),eK(this,"randomSessionIdentifier",(0,d.generateRandomBytes32)()),eK(this,"initialized",!1),eK(this,"clientId"),eK(this,"init",async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)}),eK(this,"hasKeys",e=>(this.isInitialized(),this.keychain.has(e))),eK(this,"getClientId",async()=>{if(this.isInitialized(),this.clientId)return this.clientId;let e=await this.getClientSeed(),t=u.generateKeyPair(e),i=u.encodeIss(t.publicKey);return this.clientId=i,i}),eK(this,"generateKeyPair",()=>{this.isInitialized();let e=(0,d.generateKeyPair)();return this.setPrivateKey(e.publicKey,e.privateKey)}),eK(this,"signJWT",async e=>{this.isInitialized();let t=await this.getClientSeed(),i=u.generateKeyPair(t),r=this.randomSessionIdentifier;return await u.signJWT(r,e,x,i)}),eK(this,"generateSharedKey",(e,t,i)=>{this.isInitialized();let r=this.getPrivateKey(e),s=(0,d.deriveSymKey)(r,t);return this.setSymKey(s,i)}),eK(this,"setSymKey",async(e,t)=>{this.isInitialized();let i=t||(0,d.hashKey)(e);return await this.keychain.set(i,e),i}),eK(this,"deleteKeyPair",async e=>{this.isInitialized(),await this.keychain.del(e)}),eK(this,"deleteSymKey",async e=>{this.isInitialized(),await this.keychain.del(e)}),eK(this,"encode",async(e,t,i)=>{this.isInitialized();let r=(0,d.validateEncoding)(i),s=(0,h.safeJsonStringify)(t);if((0,d.isTypeTwoEnvelope)(r))return(0,d.encodeTypeTwoEnvelope)(s,i?.encoding);
11if((0,d.isTypeOneEnvelope)(r)){let t=r.senderPublicKey,i=r.receiverPublicKey;e=await this.generateSharedKey(t,i)}let n=this.getSymKey(e),{type:o,senderPublicKey:a}=r;return(0,d.encrypt)({type:o,symKey:n,message:s,senderPublicKey:a,encoding:i?.encoding})}),eK(this,"decode",async(e,t,i)=>{this.isInitialized();let r=(0,d.validateDecoding)(t,i);if((0,d.isTypeTwoEnvelope)(r)){let e=(0,d.decodeTypeTwoEnvelope)(t,i?.encoding);return(0,h.safeJsonParse)(e)}if((0,d.isTypeOneEnvelope)(r)){let t=r.receiverPublicKey,i=r.senderPublicKey;e=await this.generateSharedKey(t,i)}try{let r=this.getSymKey(e),s=(0,d.decrypt)({symKey:r,encoded:t,encoding:i?.encoding});return(0,h.safeJsonParse)(s)}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),eK(this,"getPayloadType",(e,t=d.BASE64)=>{let i=(0,d.deserialize)({encoded:e,encoding:t});return(0,d.decodeTypeByte)(i.type)}),eK(this,"getPayloadSenderPublicKey",(e,t=d.BASE64)=>{let i=(0,d.deserialize)({encoded:e,encoding:t});return i.senderPublicKey?(0,p.toString)(i.senderPublicKey,d.BASE16):void 0}),this.core=e,this.logger=(0,a.generateChildLogger)(t,this.name),this.keychain=i||new eV(this.core,this.logger)}get context(){return(0,a.getLoggerContext)(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(I)}catch{e=(0,d.generateRandomBytes32)(),await this.keychain.set(I,e)}return function(e,t="utf8"){let i=eD[t];if(!i)throw Error(`Unsupported encoding "${t}"`);return("utf8"===t||"utf-8"===t)&&null!=globalThis.Buffer&&null!=globalThis.Buffer.from?eq(globalThis.Buffer.from(e,"utf-8")):i.decoder.decode(`${i.prefix}${e}`)}(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("NOT_INITIALIZED",this.name);throw Error(e)}}}var eH=Object.defineProperty,eG=Object.defineProperties,eJ=Object.getOwnPropertyDescriptors,eZ=Object.getOwnPropertySymbols,eY=Object.prototype.hasOwnProperty,eW=Object.prototype.propertyIsEnumerable,eQ=(e,t,i)=>t in e?eH(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,eX=(e,t,i)=>eQ(e,"symbol"!=typeof t?t+"":t,i);class e0 extends l.IMessageTracker{constructor(e,t){super(e,t),this.logger=e,this.core=t,eX(this,"messages",new Map),eX(this,"messagesWithoutClientAck",new Map),eX(this,"name","messages"),eX(this,"version","0.3"),eX(this,"initialized",!1),eX(this,"storagePrefix",v),eX(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}}}),eX(this,"set",async(e,t,i)=>{this.isInitialized();let r=(0,d.hashMessage)(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===U){let i=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,eG(((e,t)=>{for(var i in t||(t={}))eY.call(t,i)&&eQ(e,i,t[i]);if(eZ)for(var i of eZ(t))eW.call(t,i)&&eQ(e,i,t[i]);return e})({},i),eJ({[r]:t})))}return await this.persist(),r}),eX(this,"get",e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>"u"&&(t={}),t}),eX(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}),eX(this,"has",(e,t)=>(this.isInitialized(),"u">typeof this.get(e)[(0,d.hashMessage)(t)])),eX(this,"ack",async(e,t)=>{this.isInitialized();let i=this.messagesWithoutClientAck.get(e);if(typeof i>"u")return;let r=(0,d.hashMessage)(t);delete i[r],0===Object.keys(i).length?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,i),await this.persist()}),eX(this,"del",async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=(0,a.generateChildLogger)(e,this.name),this.core=t}
11get context(){return(0,a.getLoggerContext)(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,(0,d.mapToObj)(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,(0,d.mapToObj)(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return"u">typeof e?(0,d.objToMap)(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return"u">typeof e?(0,d.objToMap)(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("NOT_INITIALIZED",this.name);throw Error(e)}}}var e1=Object.defineProperty,e2=Object.defineProperties,e8=Object.getOwnPropertyDescriptors,e3=Object.getOwnPropertySymbols,e5=Object.prototype.hasOwnProperty,e6=Object.prototype.propertyIsEnumerable,e4=(e,t,i)=>t in e?e1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,e7=(e,t)=>{for(var i in t||(t={}))e5.call(t,i)&&e4(e,i,t[i]);if(e3)for(var i of e3(t))e6.call(t,i)&&e4(e,i,t[i]);return e},e9=(e,t,i)=>e4(e,"symbol"!=typeof t?t+"":t,i);class te extends l.IPublisher{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,e9(this,"events",new r.EventEmitter),e9(this,"name","publisher"),e9(this,"queue",new Map),e9(this,"publishTimeout",(0,c.toMiliseconds)(c.ONE_MINUTE)),e9(this,"initialPublishTimeout",(0,c.toMiliseconds)(15*c.ONE_SECOND)),e9(this,"needsTransportRestart",!1),e9(this,"publish",async(e,t,i)=>{var r,s,n,o,a;this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:i}});let l=i?.ttl||S,c=i?.prompt||!1,h=i?.tag||0,u=i?.id||(0,g.getBigIntRpcId)().toString(),p=(0,d.getRelayProtocolApi)((0,d.getRelayProtocolName)().protocol),f={id:u,method:i?.publishMethod||p.publish,params:e7({topic:e,message:t,ttl:l,prompt:c,tag:h,attestation:i?.attestation},i?.tvf)},y=`Failed to publish payload, please try again. id:${u} tag:${h}`;try{(0,d.isUndefined)(null==(r=f.params)?void 0:r.prompt)&&(null==(s=f.params)||delete s.prompt),(0,d.isUndefined)(null==(n=f.params)?void 0:n.tag)&&(null==(o=f.params)||delete o.tag);let a=new Promise(async e=>{let t=({id:i})=>{var r;(null==(r=f.id)?void 0:r.toString())===i.toString()&&(this.removeRequestFromQueue(i),this.relayer.events.removeListener(_,t),e())};this.relayer.events.on(_,t);let r=(0,d.createExpiringPromise)(new Promise((e,t)=>{this.rpcPublish(f,i).then(e).catch(e=>{this.logger.warn(e,e?.message),t(e)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${u} tag:${h}`);try{await r,this.events.removeListener(_,t)}catch(e){this.queue.set(u,{request:f,opts:i,attempt:1}),this.logger.warn(e,e?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:u,topic:e,message:t,opts:i}}),await (0,d.createExpiringPromise)(a,this.publishTimeout,y)}catch(e){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(e),null!=(a=i?.internal)&&a.throwOnFailedPublish)throw e}finally{this.queue.delete(u)}}),e9(this,"publishCustom",async e=>{var t,i,r,s,n;this.logger.debug("Publishing custom payload"),this.logger.trace({type:"method",method:"publishCustom",params:e});let{payload:o,opts:a={}}=e,{attestation:l,tvf:h,publishMethod:u,prompt:p,tag:f,ttl:y=c.FIVE_MINUTES}=a,m=a.id||(0,g.getBigIntRpcId)().toString(),b=(0,d.getRelayProtocolApi)((0,d.getRelayProtocolName)().protocol),w=u||b.publish,v={id:m,method:w,params:e7(e2(e7({},o),e8({ttl:y,prompt:p,tag:f,attestation:l})),h)},E=`Failed to publish custom payload, please try again. id:${m} tag:${f}`;try{(0,d.isUndefined)(null==(t=v.params)?void 0:t.prompt)&&(null==(i=v.params)||delete i.prompt),(0,d.isUndefined)(null==(r=v.params)?void 0:r.tag)&&(null==(s=v.params)||delete s.tag);let e=new Promise(async e=>{let t=({id:i})=>{var r;(null==(r=v.id)?void 0:r.toString())===i.toString()&&(this.removeRequestFromQueue(i),this.relayer.events.removeListener(_,t),e())};this.relayer.events.on(_,t);let i=(0,d.createExpiringPromise)(new Promise((e,t)=>
11{this.rpcPublish(v,a).then(e).catch(e=>{this.logger.warn(e,e?.message),t(e)})}),this.initialPublishTimeout,`Failed initial custom payload publish, retrying.... method:${w} id:${m} tag:${f}`);try{await i,this.events.removeListener(_,t)}catch(e){this.queue.set(m,{request:v,opts:a,attempt:1}),this.logger.warn(e,e?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:m,payload:o,opts:a}}),await (0,d.createExpiringPromise)(e,this.publishTimeout,E)}catch(e){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(e),null!=(n=a?.internal)&&n.throwOnFailedPublish)throw e}finally{this.queue.delete(m)}}),e9(this,"on",(e,t)=>{this.events.on(e,t)}),e9(this,"once",(e,t)=>{this.events.once(e,t)}),e9(this,"off",(e,t)=>{this.events.off(e,t)}),e9(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=(0,a.generateChildLogger)(t,this.name),this.registerEventListeners()}get context(){return(0,a.getLoggerContext)(this.logger)}async rpcPublish(e,t){this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:e});let i=await this.relayer.request(e);return this.relayer.events.emit(_,e7(e7({},e),t)),this.logger.debug("Successfully Published Payload"),i}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{var i;let r=e.attempt+1;this.queue.set(t,e2(e7({},e),e8({attempt:r}))),this.logger.warn({},`Publisher: queue->publishing: ${e.request.id}, tag: ${null==(i=e.request.params)?void 0:i.tag}, attempt: ${r}`),await this.rpcPublish(e.request,e.opts),this.logger.warn({},`Publisher: queue->published: ${e.request.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(n.HEARTBEAT_EVENTS.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(A);return}this.checkQueue()}),this.relayer.on(R,e=>{this.removeRequestFromQueue(e.id.toString())})}}var tt=Object.defineProperty,ti=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?tt(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class tr{constructor(){ti(this,"map",new Map),ti(this,"set",(e,t)=>{let i=this.get(e);this.exists(e,t)||this.map.set(e,[...i,t])}),ti(this,"get",e=>this.map.get(e)||[]),ti(this,"exists",(e,t)=>this.get(e).includes(t)),ti(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)}),ti(this,"clear",()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}}var ts=Object.defineProperty,tn=Object.defineProperties,to=Object.getOwnPropertyDescriptors,ta=Object.getOwnPropertySymbols,tl=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,th=(e,t,i)=>t in e?ts(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,tu=(e,t)=>{for(var i in t||(t={}))tl.call(t,i)&&th(e,i,t[i]);if(ta)for(var i of ta(t))tc.call(t,i)&&th(e,i,t[i]);return e},td=(e,t,i)=>th(e,"symbol"!=typeof t?t+"":t,i);class tp extends l.ISubscriber{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,td(this,"subscriptions",new Map),td(this,"topicMap",new tr),td(this,"events",new r.EventEmitter),td(this,"name","subscription"),td(this,"version","0.3"),td(this,"pending",new Map),td(this,"cached",[]),td(this,"initialized",!1),td(this,"storagePrefix",v),td(this,"subscribeTimeout",(0,c.toMiliseconds)(c.ONE_MINUTE)),td(this,"initialSubscribeTimeout",(0,c.toMiliseconds)(15*c.ONE_SECOND)),td(this,"clientId"),td(this,"batchSubscribeTopicsLimit",500),td(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),await this.restore()),this.initialized=!0}),td(this,"subscribe",async(e,t)=>{var i;this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}});try{let r=(0,d.getRelayProtocolName)(t),s={topic:e,relay:r,transportType:t?.transportType};null!=(i=t?.internal)&&i.skipSubscribe||this.pending.set(e,s);let n=await this.rpcSubscribe(e,r,t);return"string"==typeof n&&(this.onSubscribe(n,s),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}})),n}catch(e){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(e),e}}),td(this,"unsubscribe",async(e,t)=>{this.isInitialized(),"u">typeof t?.id?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)}),td(this,"isSubscribed",e=>new Promise(t=>{t(this.topicMap.topics.includes(e))})),td(this,"isKnownTopic",e=>new Promise(t=>{t(this.topicMap.topics.includes(e)||this.pending.has(e)||this.cached.some(t=>t.topic===e))})),td(this,"on",(e,t)=>{this.events.on(e,t)}),td(this,"once",(e,t)=>{this.events.once(e,t)}),td(this,"off",(e,t)=>{this.events.off(e,t)}),td(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),td(this,"start",async()=>{await this.onConnect()}),td(this,"stop",async()=>{await this.onDisconnect()}),td(this,"restart",async()=>
11{await this.restore(),await this.onRestart()}),td(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)}),td(this,"registerEventListeners",()=>{this.relayer.core.heartbeat.on(n.HEARTBEAT_EVENTS.pulse,async()=>{await this.checkPending()}),this.events.on(D,async e=>{this.logger.info(`Emitting ${D}`),this.logger.debug({type:"event",event:D,data:e}),await this.persist()}),this.events.on($,async e=>{this.logger.info(`Emitting ${$}`),this.logger.debug({type:"event",event:$,data:e}),await this.persist()})}),this.relayer=e,this.logger=(0,a.generateChildLogger)(t,this.name),this.clientId=""}get context(){return(0,a.getLoggerContext)(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=(0,d.getRelayProtocolName)(i);await this.restartToComplete({topic:e,id:t,relay:r}),await this.rpcUnsubscribe(e,t,r);let s=(0,d.getSdkError)("USER_DISCONNECTED",`${this.name}, ${e}`);await 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,s;
11let n=await this.getSubscriptionId(e);if(null!=(r=i?.internal)&&r.skipSubscribe)return n;i&&i?.transportType!==k||await this.restartToComplete({topic:e,id:e,relay:t});let o={method:(0,d.getRelayProtocolApi)(t.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:o});let a=null==(s=i?.internal)?void 0:s.throwOnFailedPublish;try{if(i?.transportType===q)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(o).catch(e=>this.logger.warn(e))},(0,c.toMiliseconds)(c.ONE_SECOND)),n;let t=new Promise(async t=>{let i=r=>{r.topic===e&&(this.events.removeListener(D,i),t(r.id))};this.events.on(D,i);try{let r=await (0,d.createExpiringPromise)(new Promise((e,t)=>{this.relayer.request(o).catch(e=>{this.logger.warn(e,e?.message),t(e)}).then(e)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(D,i),t(r)}catch{}}),r=await (0,d.createExpiringPromise)(t,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!r&&a)throw Error(`Subscribing to ${e} failed, please try again`);return r?n:null}catch(e){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(A),a)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t=e[0].relay,i={method:(0,d.getRelayProtocolApi)(t.protocol).batchSubscribe,params:{topics:e.map(e=>e.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i});try{await await (0,d.createExpiringPromise)(new Promise(e=>{this.relayer.request(i).catch(e=>this.logger.warn(e)).then(e)}),this.subscribeTimeout,"rpcBatchSubscribe failed, please try again")}catch{this.relayer.events.emit(A)}}async rpcBatchFetchMessages(e){let t;if(!e.length)return;let i=e[0].relay,r={method:(0,d.getRelayProtocolApi)(i.protocol).batchFetchMessages,params:{topics:e.map(e=>e.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r});try{t=await await (0,d.createExpiringPromise)(new Promise((e,t)=>{this.relayer.request(r).catch(e=>{this.logger.warn(e),t(e)}).then(e)}),this.subscribeTimeout,"rpcBatchFetchMessages failed, please try again")}catch{this.relayer.events.emit(A)}return t}rpcUnsubscribe(e,t,i){let r={method:(0,d.getRelayProtocolApi)(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,tn(tu({},t),to({id:e}))),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,tu({},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,tu({},t)),this.topicMap.set(t.topic,e),this.events.emit(D,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}=(0,d.getInternalError)("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($,tn(tu({},i),to({reason:t})))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit("subscription_sync")}async 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")}
11async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size&&!e.every(e=>{var t;return e.topic===(null==(t=this.subscriptions.get(e.id))?void 0:t.topic)})){let{message:e}=(0,d.getInternalError)("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=>tn(tu({},e),to({id:await this.getSubscriptionId(e.topic)}))))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);let t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(await (0,d.sleep)((0,c.toMiliseconds)(c.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(t.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("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(0,d.hashMessage)(e+await this.getClientId())}}var tf=Object.defineProperty,tg=Object.getOwnPropertySymbols,ty=Object.prototype.hasOwnProperty,tm=Object.prototype.propertyIsEnumerable,tb=(e,t,i)=>t in e?tf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,tw=(e,t)=>{for(var i in t||(t={}))ty.call(t,i)&&tb(e,i,t[i]);if(tg)for(var i of tg(t))tm.call(t,i)&&tb(e,i,t[i]);return e},tv=(e,t,i)=>tb(e,"symbol"!=typeof t?t+"":t,i);class tE extends l.IRelayer{constructor(e){var t;super(e),tv(this,"protocol","wc"),tv(this,"version",2),tv(this,"core"),tv(this,"logger"),tv(this,"events",new r.EventEmitter),tv(this,"provider"),tv(this,"messages"),tv(this,"subscriber"),tv(this,"publisher"),tv(this,"name","relayer"),tv(this,"transportExplicitlyClosed",!1),tv(this,"initialized",!1),tv(this,"connectionAttemptInProgress",!1),tv(this,"relayUrl"),tv(this,"projectId"),tv(this,"packageName"),tv(this,"bundleId"),tv(this,"hasExperiencedNetworkDisruption",!1),tv(this,"pingTimeout"),tv(this,"heartBeatTimeout",(0,c.toMiliseconds)(c.THIRTY_SECONDS+c.FIVE_SECONDS)),tv(this,"reconnectTimeout"),tv(this,"connectPromise"),tv(this,"reconnectInProgress",!1),tv(this,"requestsInFlight",[]),tv(this,"connectTimeout",(0,c.toMiliseconds)(15*c.ONE_SECOND)),tv(this,"request",async e=>{var t,i;this.logger.debug("Publishing Request Payload");let r=e.id||(0,g.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}}),tv(this,"resetPingTimeout",()=>{(0,d.isNode)()&&(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))}),tv(this,"onPayloadHandler",e=>{this.onProviderPayload(e),this.resetPingTimeout()}),tv(this,"onConnectHandler",()=>{this.logger.warn({},"Relayer connected ð"),this.startPingTimeout(),this.events.emit("relayer_connect")}),tv(this,"onDisconnectHandler",()=>{this.logger.warn({},"Relayer disconnected ð"),this.requestsInFlight=[],this.onProviderDisconnect()}),tv(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()}),tv(this,"registerProviderListeners",()=>{this.provider.on(T,this.onPayloadHandler),this.provider.on(N,this.onConnectHandler),this.provider.on(C,this.onDisconnectHandler),this.provider.on(B,this.onProviderErrorHandler)}),this.core=e.core,this.logger=(0,d.createLogger)({logger:null!=(t=e.logger)?t:"error",name:this.name}),this.messages=new e0(this.logger,e.core),this.subscriber=new tp(this,this.logger),this.publisher=new te(this,this.logger),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||P,(0,d.isAndroid)()?this.packageName=(0,d.getAppId)():(0,d.isIos)()&&(this.bundleId=(0,d.getAppId)()),this.provider={}}
11async init(){this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.transportOpen().catch(e=>this.logger.warn(e,e?.message))}get context(){return(0,a.getLoggerContext)(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:k},"outbound")}async publishCustom(e){this.isInitialized(),await this.publisher.publishCustom(e)}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(D,l),a())};return await Promise.all([new Promise(e=>{a=e,this.subscriber.on(D,l)}),new Promise(async(i,r)=>{o=await this.subscriber.subscribe(e,tw({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 (0,d.createExpiringPromise)(this.provider.disconnect(),2e3,"provider.disconnect()").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){if(!this.subscriber.hasAnyTopics)return void this.logger.info("Starting WS connection skipped because the client has no topics to work with.");if(this.connectPromise?(this.logger.debug({},"Waiting for existing connection attempt to resolve..."),await this.connectPromise,this.logger.debug({},"Existing connection attempt resolved")):(this.connectPromise=new Promise(async(t,i)=>{await this.connect(e).then(t).catch(i).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},"Restarting transport..."),this.connectionAttemptInProgress||(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await (0,d.isOnline)())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=(0,d.calcExpiry)(c.FIVE_MINUTES);await this.core.pairing.pairings.set(i,{topic:i,expiry:e,relay:{protocol:"irn"},active:!1})}this.events.emit(O,e),await this.recordMessageEvent(e,U)}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=()=>
11{t(Error("Connection interrupted while trying to connect"))};this.provider.once(C,i),await (0,d.createExpiringPromise)(new Promise((e,t)=>{this.provider.connect().then(e).catch(t)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(e=>{t(e)}).finally(()=>{this.provider.off(C,i),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,i)=>{let r=()=>{t(Error("Connection interrupted while trying to subscribe"))};this.provider.once(C,r),await this.subscriber.start().then(e).catch(i).finally(()=>{this.provider.off(C,r)})}),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,c.toMiliseconds)(+t))),t++}}startPingTimeout(){var e,t,i,r,s;if((0,d.isNode)())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 f.JsonRpcProvider(new m.default((0,d.formatRelayRpcUrl)({sdkVersion:j,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,y.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:k,attestation:n};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(tw({type:"event",event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else(0,y.isJsonRpcResponse)(e)&&this.events.emit(R,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,U),this.events.emit(O,e))}async acknowledgePayload(e){let t=(0,g.formatJsonRpcResult)(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(T,this.onPayloadHandler),this.provider.off(N,this.onConnectHandler),this.provider.off(C,this.onDisconnectHandler),this.provider.off(B,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await (0,d.isOnline)();(0,d.subscribeToNetworkChange)(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(e=>this.logger.error(e,e?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(n.HEARTBEAT_EVENTS.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&(0,d.isAppVisible)())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,c.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("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 tI(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}
11function tx(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let tS="[object Arguments]",tP="[object Object]";function tO(){}function tR(e){if(!e||"object"!=typeof e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}var tA=Object.defineProperty,t_=Object.getOwnPropertySymbols,tT=Object.prototype.hasOwnProperty,tN=Object.prototype.propertyIsEnumerable,tC=(e,t,i)=>t in e?tA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,tB=(e,t)=>{for(var i in t||(t={}))tT.call(t,i)&&tC(e,i,t[i]);if(t_)for(var i of t_(t))tN.call(t,i)&&tC(e,i,t[i]);return e},tj=(e,t,i)=>tC(e,"symbol"!=typeof t?t+"":t,i);class tq extends l.IStore{constructor(e,t,r,s=v,n){super(e,t,r,s),this.core=e,this.logger=t,this.name=r,tj(this,"map",new Map),tj(this,"version","0.3"),tj(this,"cached",[]),tj(this,"initialized",!1),tj(this,"getKey"),tj(this,"storagePrefix",v),tj(this,"recentlyDeleted",[]),tj(this,"recentlyDeletedLimit",200),tj(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(e=>{this.getKey&&null!==e&&!(0,d.isUndefined)(e)?this.map.set(this.getKey(e),e):(0,d.isProposalStruct)(e)?this.map.set(e.id,e):(0,d.isSessionStruct)(e)&&this.map.set(e.topic,e)}),this.cached=[],this.initialized=!0)}),tj(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())}),tj(this,"get",e=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:e}),this.getData(e))),tj(this,"getAll",e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(r=>{var s;return s=t[r],function e(t,r,s,n,o,a,l){let c=l(t,r,s,n,o,a);if(void 0!==c)return c;if(typeof t==typeof r)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return t===r;case"number":return t===r||Object.is(t,r)}return function t(r,s,n,o){if(Object.is(r,s))return!0;let a=tx(r),l=tx(s);if(a===tS&&(a=tP),l===tS&&(l=tP),a!==l)return!1;switch(a){case"[object String]":return r.toString()===s.toString();case"[object Number]":{let e=r.valueOf(),t=s.valueOf();return e===t||Number.isNaN(e)&&Number.isNaN(t)}case"[object Boolean]":case"[object Date]":case"[object Symbol]":return Object.is(r.valueOf(),s.valueOf());case"[object RegExp]":return r.source===s.source&&r.flags===s.flags;case"[object Function]":return r===s}let c=(n=n??new Map).get(r),h=n.get(s);if(null!=c&&null!=h)return c===s;n.set(r,s),n.set(s,r);try{switch(a){case"[object Map]":if(r.size!==s.size)return!1;for(let[t,i]of r.entries())if(!s.has(t)||!e(i,s.get(t),t,r,s,n,o))return!1;return!0;case"[object Set]":{if(r.size!==s.size)return!1;let t=Array.from(r.values()),i=Array.from(s.values());for(let a=0;a<t.length;a++){let l=t[a],c=i.findIndex(t=>e(l,t,void 0,r,s,n,o));if(-1===c)return!1;i.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 i.Buffer&&i.Buffer.isBuffer(r)!==i.Buffer.isBuffer(s)||r.length!==s.length)return!1;for(let t=0;t<r.length;t++)if(!e(r[t],s[t],t,r,s,n,o))return!1;return!0;case"[object ArrayBuffer]":return r.byteLength===s.byteLength&&t(new Uint8Array(r),new Uint8Array(s),n,o);case"[object DataView]":return r.byteLength===s.byteLength&&r.byteOffset===s.byteOffset&&t(new Uint8Array(r),new Uint8Array(s),n,o);case"[object Error]":return r.name===s.name&&r.message===s.message;
11case tP:{if(!(t(r.constructor,s.constructor,n,o)||tR(r)&&tR(s)))return!1;let i=[...Object.keys(r),...tI(r)],a=[...Object.keys(s),...tI(s)];if(i.length!==a.length)return!1;for(let t=0;t<i.length;t++){let a=i[t],l=r[a];if(!Object.hasOwn(s,a))return!1;let c=s[a];if(!e(l,c,a,r,s,n,o))return!1}return!0}default:return!1}}finally{n.delete(r),n.delete(s)}}(t,r,a,l)}(s,e[r],void 0,void 0,void 0,void 0,tO)})):this.values)),tj(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=tB(tB({},this.getData(e)),t);this.map.set(e,i),await this.persist()}),tj(this,"delete",async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())}),this.logger=(0,a.generateChildLogger)(t,this.name),this.storagePrefix=s,this.getKey=n}get context(){return(0,a.getLoggerContext)(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}=(0,d.getInternalError)("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=(0,d.getInternalError)("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}=(0,d.getInternalError)("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}=(0,d.getInternalError)("NOT_INITIALIZED",this.name);throw Error(e)}}}var tk=Object.defineProperty,tU=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?tk(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class tL{constructor(e,t){this.core=e,this.logger=t,tU(this,"name","pairing"),tU(this,"version","0.3"),tU(this,"events",new r.default),tU(this,"pairings"),tU(this,"initialized",!1),tU(this,"storagePrefix",v),tU(this,"ignoredPayloadTypes",[d.TYPE_1]),tU(this,"registeredMethods",[]),tU(this,"init",async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))}),tU(this,"register",({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]}),tU(this,"create",async e=>{this.isInitialized();let t=(0,d.generateRandomBytes32)(),i=await this.core.crypto.setSymKey(t),r=(0,d.calcExpiry)(c.FIVE_MINUTES),s={protocol:"irn"},n={topic:i,expiry:r,relay:s,active:!1,methods:e?.methods},o=(0,d.formatUri)({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:t,relay:s,expiryTimestamp:r,methods:e?.methods});return this.events.emit(V,n),this.core.expirer.set(i,r),await this.pairings.set(i,n),await this.core.relayer.subscribe(i,{transportType:e?.transportType,internal:e?.internal}),{topic:i,uri:o}}),tU(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}=(0,d.parseUri)(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.`);
11i.addTrace("pairing_not_expired")}let l=o||(0,d.calcExpiry)(c.FIVE_MINUTES),h={topic:r,relay:n,expiry:l,active:!1,methods:a};this.core.expirer.set(r,l),await this.pairings.set(r,h),i.addTrace("store_new_pairing"),e.activatePairing&&await this.activate({topic:r}),this.events.emit(V,h),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"),h}),tU(this,"activate",async({topic:e})=>{this.isInitialized();let t=(0,d.calcExpiry)(c.FIVE_MINUTES);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})}),tU(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}=(0,d.createDelayedPromise)();this.events.once((0,d.engineEvent)("pairing_ping",e),({error:e})=>{e?s(e):r()}),await i()}}),tU(this,"updateExpiry",async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})}),tU(this,"updateMetadata",async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})}),tU(this,"getPairings",()=>(this.isInitialized(),this.pairings.values)),tU(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",(0,d.getSdkError)("USER_DISCONNECTED")),await this.deletePairing(t))}),tU(this,"formatUriFromPairing",e=>{this.isInitialized();let{topic:t,relay:i,expiry:r,methods:s}=e,n=this.core.crypto.keychain.get(t);return(0,d.formatUri)({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:n,relay:i,expiryTimestamp:r,methods:s})}),tU(this,"sendRequest",async(e,t,i)=>{let r=(0,g.formatJsonRpcRequest)(t,i),s=await this.core.crypto.encode(e,r),n=M[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,s,n),r.id}),tU(this,"sendResult",async(e,t,i)=>{let r=(0,g.formatJsonRpcResult)(e,i),s=await this.core.crypto.encode(t,r),n=M[(await this.core.history.get(t,e)).request.method].res;await this.core.relayer.publish(t,s,n),await this.core.history.resolve(r)}),tU(this,"sendError",async(e,t,i)=>{let r=(0,g.formatJsonRpcError)(e,i),s=await this.core.crypto.encode(t,r),n=(await this.core.history.get(t,e)).request.method,o=M[n]?M[n].res:M.unregistered_method.res;await this.core.relayer.publish(t,s,o),await this.core.history.resolve(r)}),tU(this,"deletePairing",async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,(0,d.getSdkError)("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])}),tU(this,"cleanup",async()=>{let e=this.pairings.getAll().filter(e=>(0,d.isExpired)(e.expiry));await Promise.all(e.map(e=>this.deletePairing(e.topic)))}),tU(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)}}),tU(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)}),tU(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)}}),tU(this,"onPairingPingResponse",(e,t)=>{let{id:i}=t;setTimeout(()=>{(0,y.isJsonRpcResult)(t)?this.events.emit((0,d.engineEvent)("pairing_ping",i),{}):(0,y.isJsonRpcError)(t)&&this.events.emit((0,d.engineEvent)("pairing_ping",i),{error:t.error})},500)}),tU(this,"onPairingDeleteRequest",async(e,t)=>{let{id:i}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(z,{id:i,topic:e})}catch(t){await this.sendError(i,e,t),this.logger.error(t)}}),tU(this,"onUnknownRpcMethodRequest",async(e,t)=>{let{id:i,method:r}=t;try{if(this.registeredMethods.includes(r))return;let t=(0,d.getSdkError)("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)}}),tU(this,"onUnknownRpcMethodResponse",e=>{this.registeredMethods.includes(e)||this.logger.error((0,d.getSdkError)("WC_METHOD_UNSUPPORTED",e))}),tU(this,"isValidPair",(e,t)=>{var i;if(!(0,d.isValidParams)(e)){let{message:i}=(0,d.getInternalError)("MISSING_OR_INVALID",`pair() params: ${e}`);throw t.setError(X),Error(i)}if(!(0,d.isValidUrl)(e.uri)){let{message:i}=(0,d.getInternalError)("MISSING_OR_INVALID",`pair() uri: ${e.uri}`);throw t.setError(X),Error(i)}let r=(0,d.parseUri)(e?.uri);if(!(null!=(i=r?.relay)&&i.protocol)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID","pair() uri#relay-protocol");throw t.setError(X),Error(e)}if(!(null!=r&&r.symKey)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID","pair() uri#symKey");throw t.setError(X),Error(e)}if(null!=r&&r.expiryTimestamp&&(0,c.toMiliseconds)(r?.expiryTimestamp)<Date.now()){t.setError("pairing_expired");let{message:e}=(0,d.getInternalError)("EXPIRED","pair() URI has expired. Please try again with a new connection URI.");throw Error(e)}}),tU(this,"isValidPing",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),tU(this,"isValidDisconnect",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),tU(this,"isValidPairingTopic",async e=>{if(!(0,d.isValidString)(e,!1)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=(0,d.getInternalError)("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw Error(t)}if((0,d.isExpired)(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=(0,d.getInternalError)("EXPIRED",`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=(0,a.generateChildLogger)(t,this.name),this.pairings=new tq(this.core,this.logger,this.name,this.storagePrefix)}
11get context(){return(0,a.getLoggerContext)(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("NOT_INITIALIZED",this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(O,async e=>{let{topic:t,message:i,transportType:r}=e;if(this.pairings.keys.includes(t)&&r!==q&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(i)))try{let e=await this.core.crypto.decode(t,i);(0,y.isJsonRpcRequest)(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):(0,y.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(Z,async e=>{let{topic:t}=(0,d.parseExpirerTarget)(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit("pairing_expire",{topic:t}))})}}var tD=Object.defineProperty,t$=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?tD(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class tM extends l.IJsonRpcHistory{constructor(e,t){super(e,t),this.core=e,this.logger=t,t$(this,"records",new Map),t$(this,"events",new r.EventEmitter),t$(this,"name","history"),t$(this,"version","0.3"),t$(this,"cached",[]),t$(this,"initialized",!1),t$(this,"storagePrefix",v),t$(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)}),t$(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:(0,d.calcExpiry)(c.THIRTY_DAYS)};this.records.set(r.id,r),this.persist(),this.events.emit(K,r)}),t$(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,y.isJsonRpcError)(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(F,t))}),t$(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))),t$(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(H,i)))}),this.persist()}),t$(this,"exists",async(e,t)=>(this.isInitialized(),!!this.records.has(t)&&(await this.getRecord(t)).topic===e)),t$(this,"on",(e,t)=>{this.events.on(e,t)}),t$(this,"once",(e,t)=>{this.events.once(e,t)}),t$(this,"off",(e,t)=>{this.events.off(e,t)}),t$(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.logger=(0,a.generateChildLogger)(t,this.name)}get context(){return(0,a.getLoggerContext)(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,g.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}=(0,d.getInternalError)("NO_MATCHING_KEY",`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit("history_sync")}
11async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){let{message:e}=(0,d.getInternalError)("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(K,e=>{this.logger.info(`Emitting ${K}`),this.logger.debug({type:"event",event:K,record:e})}),this.events.on(F,e=>{this.logger.info(`Emitting ${F}`),this.logger.debug({type:"event",event:F,record:e})}),this.events.on(H,e=>{this.logger.info(`Emitting ${H}`),this.logger.debug({type:"event",event:H,record:e})}),this.core.heartbeat.on(n.HEARTBEAT_EVENTS.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,c.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(H,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("NOT_INITIALIZED",this.name);throw Error(e)}}}var tV=Object.defineProperty,tz=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?tV(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class tK extends l.IExpirer{constructor(e,t){super(e,t),this.core=e,this.logger=t,tz(this,"expirations",new Map),tz(this,"events",new r.EventEmitter),tz(this,"name","expirer"),tz(this,"version","0.3"),tz(this,"cached",[]),tz(this,"initialized",!1),tz(this,"storagePrefix",v),tz(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)}),tz(this,"has",e=>{try{let t=this.formatTarget(e);return"u">typeof this.getExpiration(t)}catch{return!1}}),tz(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(G,{target:i,expiration:r})}),tz(this,"get",e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),tz(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(J,{target:t,expiration:i})}}),tz(this,"on",(e,t)=>{this.events.on(e,t)}),tz(this,"once",(e,t)=>{this.events.once(e,t)}),tz(this,"off",(e,t)=>{this.events.off(e,t)}),tz(this,"removeListener",(e,t)=>{this.events.removeListener(e,t)}),this.logger=(0,a.generateChildLogger)(t,this.name)}get context(){return(0,a.getLoggerContext)(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(0,d.formatTopicTarget)(e);if("number"==typeof e)return(0,d.formatIdTarget)(e);let{message:t}=(0,d.getInternalError)("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}=(0,d.getInternalError)("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}=(0,d.getInternalError)("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:i}=t;(0,c.toMiliseconds)(i)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(Z,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(n.HEARTBEAT_EVENTS.pulse,()=>this.checkExpirations()),this.events.on(G,e=>{this.logger.info(`Emitting ${G}`),this.logger.debug({type:"event",event:G,data:e}),this.persist()}),this.events.on(Z,e=>{this.logger.info(`Emitting ${Z}`),this.logger.debug({type:"event",event:Z,data:e}),this.persist()}),this.events.on(J,e=>{this.logger.info(`Emitting ${J}`),this.logger.debug({type:"event",event:J,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("NOT_INITIALIZED",this.name);throw Error(e)}}}var tF=Object.defineProperty,tH=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?tF(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class tG extends l.IVerify{constructor(e,t,i){super(e,t,i),this.core=e,this.logger=t,this.store=i,tH(this,"name","verify-api"),tH(this,"abortController"),tH(this,"isDevEnv"),tH(this,"verifyUrlV3",W),tH(this,"storagePrefix",v),tH(this,"version",2),tH(this,"publicKey"),tH(this,"fetchPromise"),tH(this,"init",async()=>{var e;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,c.toMiliseconds)(null==(e=this.publicKey)?void 0:e.expiresAt)<Date.now()&&(this.logger.debug("verify v2 public key expired"),await this.removePublicKey()))}),tH(this,"register",async e=>{if(!(0,d.isBrowser)()||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,b.getDocument)(),t=this.startAbortTimer(5*c.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,u.decodeJWT)(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})});
11return this.logger.debug(r,"jwt attestation"),r}catch(e){this.logger.warn(e)}return""}),tH(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,u.decodeJWT)(t).payload.id!==r)return;let e=await this.isValidJwtAttestation(t);if(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)}),tH(this,"fetchAttestation",async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let i=this.startAbortTimer(5*c.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}),tH(this,"getVerifyUrl",e=>{let t=e||Y;return Q.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: ${Y}`),t=Y),t}),tH(this,"fetchPublicKey",async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(c.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)}}),tH(this,"persistPublicKey",async e=>{this.logger.debug(e,"persisting public key to local storage"),await this.store.setItem(this.storeKey,e),this.publicKey=e}),tH(this,"removePublicKey",async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),tH(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")}}),tH(this,"getPublicKey",async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),tH(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}),tH(this,"validateAttestation",(e,t)=>{let i=(0,d.verifyP256Jwt)(e,t.publicKey),r={hasExpired:(0,c.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,a.generateChildLogger)(t,this.name),this.abortController=new AbortController,this.isDevEnv=(0,d.isTestRun)(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//verify:public:key"}get context(){return(0,a.getLoggerContext)(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,c.toMiliseconds)(e))}}var tJ=Object.defineProperty,tZ=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?tJ(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class tY extends l.IEchoClient{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,tZ(this,"context","echo"),tZ(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,a.generateChildLogger)(t,this.context)}}var tW=Object.defineProperty,tQ=Object.getOwnPropertySymbols,tX=Object.prototype.hasOwnProperty,t0=Object.prototype.propertyIsEnumerable,t1=(e,t,i)=>t in e?tW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,t2=(e,t)=>{for(var i in t||(t={}))tX.call(t,i)&&t1(e,i,t[i]);if(tQ)for(var i of tQ(t))t0.call(t,i)&&t1(e,i,t[i]);return e},t8=(e,t,i)=>t1(e,"symbol"!=typeof t?t+"":t,i);class t3 extends l.IEventClient{constructor(e,t,i=!0){super(e,t,i),this.core=e,this.logger=t,t8(this,"context","event-client"),t8(this,"storagePrefix",v),t8(this,"storageVersion",.1),t8(this,"events",new Map),t8(this,"shouldPersist",!1),t8(this,"init",async()=>
11{if(!(0,d.isTestRun)())try{let e={eventId:(0,d.uuidv4)(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:(0,d.formatUA)(this.core.relayer.protocol,this.core.relayer.version,j)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),t8(this,"createEvent",e=>{let{event:t="ERROR",type:i="",properties:{topic:r,trace:s}}=e,n=(0,d.uuidv4)(),o=this.core.projectId||"",a=t2({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}),t8(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 t2(t2({},r),this.setMethods(r.eventId))}),t8(this,"deleteEvent",e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),t8(this,"setEventListeners",()=>{this.core.heartbeat.on(n.HEARTBEAT_EVENTS.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,c.fromMiliseconds)(Date.now())-(0,c.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),t8(this,"setMethods",e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),t8(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)}),t8(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)}),t8(this,"persist",async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),t8(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,t2(t2({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),t8(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)}}),t8(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-${j}${t}`,{method:"POST",body:JSON.stringify(e)})}),t8(this,"getAppDomain",()=>(0,d.getAppMetadata)().url),this.logger=(0,a.generateChildLogger)(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 t5=Object.defineProperty,t6=Object.getOwnPropertySymbols,t4=Object.prototype.hasOwnProperty,t7=Object.prototype.propertyIsEnumerable,t9=(e,t,i)=>t in e?t5(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,ie=(e,t)=>{for(var i in t||(t={}))t4.call(t,i)&&t9(e,i,t[i]);if(t6)for(var i of t6(t))t7.call(t,i)&&t9(e,i,t[i]);return e},it=(e,t,i)=>t9(e,"symbol"!=typeof t?t+"":t,i);class ii extends l.ICore{constructor(e){var t;super(e),it(this,"protocol","wc"),it(this,"version",2),it(this,"name",w),it(this,"relayUrl"),it(this,"projectId"),it(this,"customStoragePrefix"),it(this,"events",new r.EventEmitter),it(this,"logger"),it(this,"heartbeat"),it(this,"relayer"),it(this,"crypto"),it(this,"storage"),it(this,"history"),it(this,"expirer"),it(this,"pairing"),it(this,"verify"),it(this,"echoClient"),it(this,"linkModeSupportedApps"),it(this,"eventClient"),it(this,"initialized",!1),it(this,"logChunkController"),it(this,"on",(e,t)=>this.events.on(e,t)),it(this,"once",(e,t)=>this.events.once(e,t)),it(this,"off",(e,t)=>this.events.off(e,t)),it(this,"removeListener",(e,t)=>this.events.removeListener(e,t)),it(this,"dispatchEnvelope",({topic:e,message:t,sessionExists:i})=>{if(!e||!t)return;let r={topic:e,message:t,publishedAt:Date.now(),transportType:q};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||P,this.customStoragePrefix=null!=e&&e.customStoragePrefix?`:${e.customStoragePrefix}`:"";const s=(0,a.getDefaultLoggerOptions)({level:"string"==typeof e?.logger&&e.logger?e.logger:"error",name:w}),{logger:l,chunkLoggerController:c}=(0,a.generatePlatformLogger)({opts:s,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=c,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,a.generateChildLogger)(l,this.name),this.heartbeat=new n.HeartBeat,this.crypto=new eF(this,this.logger,e?.keychain),this.history=new tM(this,this.logger),this.expirer=new tK(this,this.logger),this.storage=null!=e&&e.storage?e.storage:new o.default(ie(ie({},E),e?.storageOptions)),this.relayer=new tE({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new tL(this,this.logger),this.verify=new tG(this,this.logger,this.storage),this.echoClient=new tY(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new t3(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){let t=new ii(e);await t.initialize();let i=await t.crypto.getClientId();return await t.storage.setItem("WALLETCONNECT_CLIENT_ID",i),t}
11get context(){return(0,a.getLoggerContext)(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(L,this.linkModeSupportedApps))}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(L)||[],this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(e,`Core Initialization Failure at epoch ${Date.now()}`),this.logger.error(e.message),e}}getGlobalCore(e=""){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e}`,i=`${t}_count`;return globalThis[i]=(globalThis[i]||0)+1,globalThis[i]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[i]} times.`),globalThis[t]}catch(e){console.warn("Failed to get global WalletConnect core",e);return}}setGlobalCore(e){var t;try{if(this.isGlobalCoreDisabled())return;let i=`_walletConnectCore_${(null==(t=e.opts)?void 0:t.customStoragePrefix)||""}`;globalThis[i]=e}catch(e){console.warn("Failed to set global WalletConnect core",e)}}isGlobalCoreDisabled(){try{return"u">typeof s.default&&"true"===s.default.env.DISABLE_GLOBAL_CORE}catch{return!0}}}var ir=l;let is="client",io=`wc@2:${is}:`,ia="WALLETCONNECT_DEEPLINK_CHOICE",il=(c.THIRTY_DAYS,"Proposal expired"),ic=c.SEVEN_DAYS,ih={wc_sessionPropose:{req:{ttl:c.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:c.ONE_DAY,prompt:!1,tag:1104},res:{ttl:c.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:c.ONE_DAY,prompt:!1,tag:1106},res:{ttl:c.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:c.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:c.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:c.ONE_DAY,prompt:!1,tag:1112},res:{ttl:c.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:c.ONE_DAY,prompt:!1,tag:1114},res:{ttl:c.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:c.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:c.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:c.FIVE_MINUTES,prompt:!1,tag:1119}}},iu={min:c.FIVE_MINUTES,max:c.SEVEN_DAYS},id="IDLE",ip="ACTIVE",ig={eth_sendTransaction:{key:""},eth_sendRawTransaction:{key:""},wallet_sendCalls:{key:""},solana_signTransaction:{key:"signature"},solana_signAllTransactions:{key:"transactions"},solana_signAndSendTransaction:{key:"signature"},sui_signAndExecuteTransaction:{key:"digest"},sui_signTransaction:{key:""},hedera_signAndExecuteTransaction:{key:"transactionId"},hedera_executeTransaction:{key:"transactionId"},near_signTransaction:{key:""},near_signTransactions:{key:""},tron_signTransaction:{key:"txID"},xrpl_signTransaction:{key:""},xrpl_signTransactionFor:{key:""},algo_signTxn:{key:""},sendTransfer:{key:"txid"},stacks_stxTransfer:{key:"txId"},polkadot_signTransaction:{key:""},cosmos_signDirect:{key:""}},iy=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],im="[email protected]:auth:",ib=`${im}:PUB_KEY`;var iw=Object.defineProperty,iv=Object.defineProperties,iE=Object.getOwnPropertyDescriptors,iI=Object.getOwnPropertySymbols,ix=Object.prototype.hasOwnProperty,iS=Object.prototype.propertyIsEnumerable,iP=(e,t,i)=>t in e?iw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,iO=(e,t)=>{for(var i in t||(t={}))ix.call(t,i)&&iP(e,i,t[i]);if(iI)for(var i of iI(t))iS.call(t,i)&&iP(e,i,t[i]);return e},iR=(e,t,i)=>iP(e,"symbol"!=typeof t?t+"":t,i);class iA extends ir.IEngine{constructor(t){super(t),iR(this,"name","engine"),iR(this,"events",new r.default),iR(this,"initialized",!1),iR(this,"requestQueue",{state:id,queue:[]}),iR(this,"sessionRequestQueue",{state:id,queue:[]}),iR(this,"emittedSessionRequests",new d.LimitedSet({limit:500})),iR(this,"requestQueueDelay",c.ONE_SECOND),iR(this,"expectedPairingMethodMap",new Map),iR(this,"recentlyDeletedMap",new Map),iR(this,"recentlyDeletedLimit",200),iR(this,"relayMessageCache",[]),iR(this,"pendingSessions",new Map),iR(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(ih)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,c.toMiliseconds)(this.requestQueueDelay)))}),iR(this,"connect",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();let t=iv(iO({},e),iE({requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}}));await this.isValidConnect(t),t.optionalNamespaces=(0,d.mergeRequiredA
11ndOptionalNamespaces)(t.requiredNamespaces,t.optionalNamespaces),t.requiredNamespaces={};let{pairingTopic:i,requiredNamespaces:r,optionalNamespaces:s,sessionProperties:n,scopedProperties:o,relays:a}=t,l=i,h,u=!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."),u=e.active}}catch(e){throw this.client.logger.error(`connect() -> pairing.get(${l}) failed`),e}if(!l||!u){let{topic:e,uri:t}=await this.client.core.pairing.create({internal:{skipSubscribe:!0}});l=e,h=t}if(!l){let{message:e}=(0,d.getInternalError)("NO_MATCHING_KEY",`connect() pairing topic: ${l}`);throw Error(e)}let p=await this.client.core.crypto.generateKeyPair(),f=ih.wc_sessionPropose.req.ttl||c.FIVE_MINUTES,y=(0,d.calcExpiry)(f),m=iv(iO(iO({requiredNamespaces:r,optionalNamespaces:s,relays:a??[{protocol:"irn"}],proposer:{publicKey:p,metadata:this.client.metadata},expiryTimestamp:y,pairingTopic:l},n&&{sessionProperties:n}),o&&{scopedProperties:o}),iE({id:(0,g.payloadId)()})),b=(0,d.engineEvent)("session_connect",m.id),{reject:w,resolve:v,done:E}=(0,d.createDelayedPromise)(f,il),I=({id:e})=>{e===m.id&&(this.client.events.off("proposal_expire",I),this.pendingSessions.delete(m.id),this.events.emit(b,{error:{message:il,code:0}}))};return this.client.events.on("proposal_expire",I),this.events.once(b,({error:e,session:t})=>{this.client.events.off("proposal_expire",I),e?w(e):t&&v(t)}),await this.sendProposeSession({proposal:m,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:m.id}}}),await this.setProposal(m.id,m),{uri:h,approval:E}}),iR(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}}),iR(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:[ee]}});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:f,requiredNamespaces:g,optionalNamespaces:y}=u,m=null==(i=this.client.core.eventClient)?void 0:i.getEvent({topic:p});m||(m=null==(r=this.client.core.eventClient)?void 0:r.createEvent({type:ee,properties:{topic:p,trace:[ee,"session_namespaces_validation_success"]}}));let b=await this.client.core.crypto.generateKeyPair(),w=f.publicKey,v=await this.client.core.crypto.generateSharedKey(b,w),E=iO(iO(iO({relay:{protocol:o??"irn"},namespaces:a,controller:{publicKey:b,metadata:this.client.metadata},expiry:(0,d.calcExpiry)(ic)},l&&{sessionProperties:l}),c&&{scopedProperties:c}),h&&{sessionConfig:h});m.addTrace("subscribing_session_topic");try{await this.client.core.relayer.subscribe(v,{transportType:k,internal:{skipSubscribe:!0}})}catch(e){throw m.setError("subscribe_session_topic_failure"),e}m.addTrace("subscribe_session_topic_success");let I=iv(iO({},E),iE({topic:v,requiredNamespaces:g,optionalNamespaces:y,pairingTopic:p,acknowledged:!1,self:E.controller,peer:{publicKey:f.publicKey,metadata:f.metadata},controller:b,transportType:k}));await this.client.session.set(v,I),m.addTrace("store_session");try{await this.sendApproveSession({sessionTopic:v,proposal:u,pairingProposalResponse:{relay:{protocol:o??"irn"},responderPublicKey:b},sessionSettleRequest:E,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:n}}}),m.addTrace("session_approve_publish_success")}catch(e){throw this.client.logger.error(e),this.client.session.delete(v,(0,d.getSdkError)("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(v),e}return this.client.core.eventClient.deleteEvent({eventId:m.eventId}),await this.client.core.pairing.updateMetadata({topic:p,metadata:f.metadata}),await this.deleteProposal(n),await this.client.core.pairing.activate({topic:p}),await this.setExpiry(v,(0,d.calcExpiry)(ic)),{topic:v,acknowledged:()=>Promise.resolve(this.client.session.get(v))}}),iR(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}
11t&&await this.sendError({id:i,topic:t,error:r,rpcOpts:ih.wc_sessionPropose.reject}),await this.deleteProposal(i)}),iR(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}=(0,d.createDelayedPromise)(),o=(0,g.payloadId)(),a=(0,g.getBigIntRpcId)().toString(),l=this.client.session.get(t).namespaces;return this.events.once((0,d.engineEvent)("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}}),iR(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,g.payloadId)(),{done:r,resolve:s,reject:n}=(0,d.createDelayedPromise)();return this.events.once((0,d.engineEvent)("session_extend",i),({error:e})=>{e?n(e):s()}),await this.setExpiry(t,(0,d.calcExpiry)(ic)),this.sendRequest({topic:t,method:"wc_sessionExtend",params:{},clientRpcId:i,throwOnFailedPublish:!0}).catch(e=>{n(e)}),{acknowledged:r}}),iR(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=ih.wc_sessionRequest.req.ttl}=e,n=this.client.session.get(r);n?.transportType===k&&await this.confirmOnlineStateOrThrow();let o=(0,g.payloadId)(),a=(0,g.getBigIntRpcId)().toString(),{done:l,resolve:c,reject:h}=(0,d.createDelayedPromise)(s,"Request expired. Please try again.");this.events.once((0,d.engineEvent)("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:iv(iO({},i),iE({expiryTimestamp:(0,d.calcExpiry)(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 f={request:iv(iO({},i),iE({expiryTimestamp:(0,d.calcExpiry)(s)})),chainId:t};return await Promise.all([new Promise(async e=>{await this.sendRequest({clientRpcId:o,relayRpcId:a,topic:r,method:u,params:f,expiry:s,throwOnFailedPublish:!0,tvf:this.getTVFParams(o,f)}).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 (0,d.getDeepLink)(this.client.core.storage,ia);await (0,d.handleDeeplinkRedirect)({id:o,topic:r,wcDeepLink:e})}e()}),l()]).then(e=>e[2])}),iR(this,"respond",async e=>{var t,i;this.isInitialized();let r=this.client.core.eventClient.createEvent({properties:{topic:e?.topic||(null==(i=null==(t=e?.response)?void 0:t.id)?void 0:i.toString()),trace:["session_request_response_started"]}});try{await this.isValidRespond(e)}catch(e){throw r.addTrace(e?.message),r.setError("session_request_response_validation_failure"),e}r.addTrace("session_request_response_validation_success");let{topic:s,response:n}=e,{id:o}=n,a=this.client.session.get(s);a.transportType===k&&await this.confirmOnlineStateOrThrow();let l=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);try{r.addTrace("session_request_response_publish_started"),(0,y.isJsonRpcResult)(n)?await this.sendResult({id:o,topic:s,result:n.result,throwOnFailedPublish:!0,appLink:l}):(0,y.isJsonRpcError)(n)&&await this.sendError({id:o,topic:s,error:n.error,appLink:l}),this.cleanupAfterResponse(e)}catch(e){throw r.addTrace(e?.message),r.setError("session_request_response_publish_failure"),e}}),iR(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,g.payloadId)(),i=(0,g.getBigIntRpcId)().toString(),{done:r,resolve:s,reject:n}=(0,d.createDelayedPromise)();this.events.once((0,d.engineEvent)("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}))}),iR(this,"emit",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);
11let{topic:t,event:i,chainId:r}=e,s=(0,g.getBigIntRpcId)().toString(),n=(0,g.payloadId)();await this.sendRequest({topic:t,method:"wc_sessionEvent",params:{event:i,chainId:r},throwOnFailedPublish:!0,relayRpcId:s,clientRpcId:n})}),iR(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:(0,d.getSdkError)("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}=(0,d.getInternalError)("MISMATCHED_TOPIC",`Session or pairing topic not found: ${t}`);throw Error(e)}}),iR(this,"find",e=>(this.isInitialized(),this.client.session.getAll().filter(t=>(0,d.isSessionCompatible)(t,e)))),iR(this,"getPendingSessionRequests",()=>this.client.pendingRequest.getAll()),iR(this,"authenticate",async(e,t)=>{var i;let r;this.isInitialized(),this.isValidAuthenticate(e);let s=t&&this.client.core.linkModeSupportedApps.includes(t)&&(null==(i=this.client.metadata.redirect)?void 0:i.linkMode),n=s?q:k;n===k&&await this.confirmOnlineStateOrThrow();let{chains:o,statement:a="",uri:l,domain:c,nonce:h,type:u,exp:p,nbf:f,methods:y=[],expiry:m}=e,b=[...e.resources||[]],{topic:w,uri:v}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:n});this.client.logger.info({message:"Generated new pairing",pairing:{topic:w,uri:v}});let E=await this.client.core.crypto.generateKeyPair(),I=(0,d.hashKey)(E);if(await Promise.all([this.client.auth.authKeys.set(ib,{responseTopic:I,publicKey:E}),this.client.auth.pairingTopics.set(I,{topic:I,pairingTopic:w})]),await this.client.core.relayer.subscribe(I,{transportType:n}),this.client.logger.info(`sending request to new pairing topic: ${w}`),y.length>0){let{namespace:e}=(0,d.parseChainId)(o[0]),t=(0,d.createEncodedRecap)(e,"request",y);(0,d.getRecapFromResources)(b)&&(t=(0,d.mergeEncodedRecaps)(t,b.pop())),b.push(t)}let x=m&&m>ih.wc_sessionAuthenticate.req.ttl?m:ih.wc_sessionAuthenticate.req.ttl,S={authPayload:{type:u??"caip122",chains:o,statement:a,aud:l,domain:c,version:"1",nonce:h,iat:new Date().toISOString(),exp:p,nbf:f,resources:b},requester:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:(0,d.calcExpiry)(x)},P={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:o,methods:[...new Set(["personal_sign",...y])],events:["chainChanged","accountsChanged"]}},relays:[{protocol:"irn"}],pairingTopic:w,proposer:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:(0,d.calcExpiry)(ih.wc_sessionPropose.req.ttl),id:(0,g.payloadId)()},{done:O,resolve:R,reject:A}=(0,d.createDelayedPromise)(x,"Request expired"),_=(0,g.payloadId)(),T=(0,d.engineEvent)("session_connect",P.id),N=(0,d.engineEvent)("session_request",_),C=async({error:e,session:t})=>{this.events.off(N,B),e?A(e):t&&R({session:t})},B=async e=>{var i,r,s;let o;if(await this.deletePendingAuthRequest(_,{message:"fulfilled",code:0}),e.error){let t=(0,d.getSdkError)("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return e.error.code===t.code?void 0:(this.events.off(T,C),A(e.error.message))}await this.deleteProposal(P.id),this.events.off(T,C);let{cacaos:a,responder:l}=e.result,c=[],h=[];for(let e of a){await (0,d.validateSignedCacao)({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,"Signature verification failed"),A((0,d.getSdkError)("SESSION_SETTLEMENT_FAILED","Signature verification failed")));let{p:t}=e,i=(0,d.getRecapFromResources)(t.resources),r=[(0,d.getNamespacedDidChainId)(t.iss)],s=(0,d.getDidAddress)(t.iss);if(i){let e=(0,d.getMethodsFromRecap)(i),t=(0,d.getChainsFromRecap)(i);c.push(...e),r.push(...t)}for(let e of r)h.push(`${e}:${s}`)}let u=await this.client.core.crypto.generateSharedKey(E,l.publicKey);c.length>0&&(o={topic:u,acknowledged:!0,self:{publicKey:E,metadata:this.client.metadata},peer:l,controller:l.publicKey,expiry:(0,d.calcExpiry)(ic),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:w,namespaces:(0,d.buildNamespacesFromAuth)([...new Set(c)],[...new Set(h)]),transportType:n},await this.client.core.relayer.subscribe(u,{transportType:n}),await this.client.session.set(u,o),w&&await this.client.core.pairing.updateMetadata({topic:w,metadata:l.metadata}),o=this.client.session.get(u)),null!=(i=this.client.metadata.redirect)&&i.linkMode&&null!=(r=l.metadata.redirect)&&r.linkMode&&null!=(s=l.metadata.redirect)&&s.universal&&t&&(this.client.core.addLinkModeSupportedApp(l.metadata.redirect.universal),this.client.session.update(u,{transportType:q})),R({auths:a,session:o})};this.events.once(T,C),this.events.once(N,B);try{if(s){let e=(0,g.formatJsonRpcRequest)("wc_sessionAuthenticate",S,_);this.client.core.history.set(w,e);let i=await this.client.core.crypto.encode("",e,{type:d.TYPE_2,encoding:d.BASE64URL});r=(0,d.getLinkModeURL)(t,w,i)}else await Promise.all([this.sendRequest({topic:w,method:"wc_sessionAuthenticate",params:S,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:_}),this.sendRequest({topic:w,method:"wc_sessionPropose",params:P,expiry:ih.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:P.id})])}catch(e){throw this.events.off(T,C),this.events.off(N,B),e}
11return await this.setProposal(P.id,P),await this.setAuthRequest(_,{request:iv(iO({},S),iE({verifyContext:{}})),pairingTopic:w,transportType:n}),{uri:r??v,response:O}}),iR(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||k;o===k&&await this.confirmOnlineStateOrThrow();let a=n.requester.publicKey,l=await this.client.core.crypto.generateKeyPair(),c=(0,d.hashKey)(a),h={type:d.TYPE_1,receiverPublicKey:a,senderPublicKey:l},u=[],p=[];for(let e of r){if(!await (0,d.validateSignedCacao)({cacao:e,projectId:this.client.core.projectId})){s.setError("invalid_cacao");let e=(0,d.getSdkError)("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:i,topic:c,error:e,encodeOpts:h}),Error(e.message)}s.addTrace("cacaos_verified");let{p:t}=e,r=(0,d.getRecapFromResources)(t.resources),n=[(0,d.getNamespacedDidChainId)(t.iss)],o=(0,d.getDidAddress)(t.iss);if(r){let e=(0,d.getMethodsFromRecap)(r),t=(0,d.getChainsFromRecap)(r);u.push(...e),n.push(...t)}for(let e of n)p.push(`${e}:${o}`)}let f=await this.client.core.crypto.generateSharedKey(l,a);if(s.addTrace("create_authenticated_session_topic"),u?.length>0){t={topic:f,acknowledged:!0,self:{publicKey:l,metadata:this.client.metadata},peer:{publicKey:a,metadata:n.requester.metadata},controller:a,expiry:(0,d.calcExpiry)(ic),authentication:r,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:n.pairingTopic,namespaces:(0,d.buildNamespacesFromAuth)([...new Set(u)],[...new Set(p)]),transportType:o},s.addTrace("subscribing_authenticated_session_topic");try{await this.client.core.relayer.subscribe(f,{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(f,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}}),iR(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===k&&await this.confirmOnlineStateOrThrow();let s=r.requester.publicKey,n=await this.client.core.crypto.generateKeyPair(),o=(0,d.hashKey)(s),a={type:d.TYPE_1,receiverPublicKey:s,senderPublicKey:n};await this.sendError({id:t,topic:o,error:i,encodeOpts:a,rpcOpts:ih.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(r.requester.metadata,r.transportType)}),await this.client.auth.requests.delete(t,{message:"rejected",code:0}),await this.deleteProposal(t)}),iR(this,"formatAuthMessage",e=>{this.isInitialized();let{request:t,iss:i}=e;return(0,d.formatMessage)(t,i)}),iR(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)}),iR(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)}}),iR(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,(0,d.getSdkError)("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(ia).catch(e=>this.client.logger.warn(e)),this.getPendingSessionRequests().forEac
11h(e=>{e.topic===i&&this.deletePendingSessionRequest(e.id,(0,d.getSdkError)("USER_DISCONNECTED"))}),i===(null==(t=this.sessionRequestQueue.queue[0])?void 0:t.topic)&&(this.sessionRequestQueue.state=id),s&&this.client.events.emit("session_delete",{id:n,topic:i})}),iR(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,(0,d.getSdkError)("USER_DISCONNECTED")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"proposal")}),iR(this,"deletePendingSessionRequest",async(e,t,i=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),i?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(t=>t.id!==e),i&&(this.sessionRequestQueue.state=id,this.client.events.emit("session_request_expire",{id:e}))}),iR(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)])}),iR(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}))}),iR(this,"setProposal",async(e,t)=>{this.client.core.expirer.set(e,(0,d.calcExpiry)(ih.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),iR(this,"setAuthRequest",async(e,t)=>{let{request:i,pairingTopic:r,transportType:s=k}=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})}),iR(this,"setPendingSessionRequest",async e=>{let{id:t,topic:i,params:r,verifyContext:s}=e,n=r.request.expiryTimestamp||(0,d.calcExpiry)(ih.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})}),iR(this,"sendRequest",async t=>{let i,r,{topic:s,method:n,params:o,expiry:a,relayRpcId:l,clientRpcId:c,throwOnFailedPublish:h,appLink:u,tvf:p,publishOpts:f={}}=t,y=(0,g.formatJsonRpcRequest)(n,o,c),m=!!u;try{let e=m?d.BASE64URL:d.BASE64;i=await this.client.core.crypto.encode(s,y,{encoding:e})}catch(e){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${s} failed`),e}if(iy.includes(n)){let e=(0,d.hashMessage)(JSON.stringify(y)),t=(0,d.hashMessage)(i);r=await this.client.core.verify.register({id:t,decryptedId:e})}let b=iO(iO({},ih[n].req),f);if(b.attestation=r,a&&(b.ttl=a),l&&(b.id=l),this.client.core.history.set(s,y),m){let t=(0,d.getLinkModeURL)(u,s,i);await e.g.Linking.openURL(t,this.client.name)}else{let e;b.tvf=iv(iO({},p),iE({correlationId:y.id})),h?(e=iO({},b.internal),b.internal=iv(e,iE({throwOnFailedPublish:!0})),await this.client.core.relayer.publish(s,i,b)):this.client.core.relayer.publish(s,i,b).catch(e=>this.client.logger.error(e))}return y.id}),iR(this,"sendProposeSession",async e=>{let{proposal:t,publishOpts:i}=e,r=(0,g.formatJsonRpcRequest)("wc_sessionPropose",t,t.id);this.client.core.history.set(t.pairingTopic,r);let s=await this.client.core.crypto.encode(t.pairingTopic,r,{encoding:d.BASE64}),n=(0,d.hashMessage)(JSON.stringify(r)),o=(0,d.hashMessage)(s),a=await this.client.core.verify.register({id:o,decryptedId:n});await this.client.core.relayer.publishCustom({payload:{pairingTopic:t.pairingTopic,sessionProposal:s},opts:iv(iO({},i),iE({publishMethod:"wc_proposeSession",attestation:a}))})}),iR(this,"sendApproveSession",async e=>{let{sessionTopic:t,pairingProposalResponse:i,proposal:r,sessionSettleRequest:s,publishOpts:n}=e,o=(0,g.formatJsonRpcResult)(r.id,i),a=await this.client.core.crypto.encode(r.pairingTopic,o,{encoding:d.BASE64}),l=(0,g.formatJsonRpcRequest)("wc_sessionSettle",s,n?.id),c=await this.client.core.crypto.encode(t,l,{encoding:d.BASE64});this.client.core.history.set(t,l),await this.client.core.relayer.publishCustom({payload:{sessionTopic:t,pairingTopic:r.pairingTopic,sessionProposalResponse:a,sessionSettlementRequest:c},opts:iv(iO({},n),iE({publishMethod:"wc_approveSession"}))})}),iR(this,"sendResult",async t=>{let i,r,s,{id:n,topic:o,result:a,throwOnFailedPublish:l,encodeOpts:c,appLink:h}=t,u=(0,g.formatJsonRpcResult)(n,a),p=h&&"u">typeof(null==e.g?void 0:e.g.Linking);try{let e,t,r=p?d.BASE64URL:d.BASE64;i=await this.client.core.crypto.encode(o,u,(e=iO({},c||{}),t={encoding:r},iv(e,iE(t))))}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{s=this.getTVFParams(n,e.params,a)}catch(e){this.client.logger.warn(`sendResult() -> getTVFParams() failed: ${e?.message}`)}}catch(e){throw this.client.logger.error(`sendResult() -> history.get(${o}, ${n}) failed`),e}if(p){let t=(0,d.getLinkModeURL)(h,o,i);await e.g.Linking.openURL(t,this.client.name)}else{let e,t=ih[r.request.method].res;t.tvf=iv(iO({},s),iE({correlationId:n})),l?(e=iO({},t.internal),t.internal=iv(e,iE({throwOnFailedPublish:!0})),await this.client.core.relayer.publish(o,i,t)):this.client.core.relayer.publish(o,i,t).catch(e=>this.client.logger.error(e))}await this.client.core.history.resolve(u)}),iR(this,"sendError",async t=>{let i,r,{id:s,topic:n,error:o,encodeOpts:a,rpcOpts:l,appLink:c}=t,h=(0,g.formatJsonRpcError)(s,o),u=c&&"u">typeof(null==e.g?void 0:e.g.Linking);try{let e,t,r=u?d.BASE64URL:d.BASE64;i=await this.client.core.crypto.encode(n,h,(e=iO({},a||{}),t={encoding:r},iv(e,iE(t))))}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 t=(0,d.getLinkModeURL)(c,n,i);await e.g.Linking.openURL(t,this.client.name)}else{let e=r.request.method,t=l||ih[e].res;this.client.core.relayer.publish(n,i,t)}
11await this.client.core.history.resolve(h)}),iR(this,"cleanup",async()=>{let e=[],t=[];this.client.session.getAll().forEach(t=>{let i=!1;(0,d.isExpired)(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=>{(0,d.isExpired)(e.expiryTimestamp)&&t.push(e.id)}),await Promise.all([...e.map(e=>this.deleteSession({topic:e})),...t.map(e=>this.deleteProposal(e))])}),iR(this,"onProviderMessageEvent",async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),iR(this,"onRelayEventRequest",async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),iR(this,"processRequestsQueue",async()=>{if(this.requestQueue.state===ip)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=ip;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=id}),iR(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
11({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}`)}}),iR(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}`)}}),iR(this,"onRelayEventUnknownPayload",e=>{let{topic:t}=e,{message:i}=(0,d.getInternalError)("MISSING_OR_INVALID",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw Error(i)}),iR(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)}),iR(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(iO({},i.params));let a=n.expiryTimestamp||(0,d.calcExpiry)(ih.wc_sessionPropose.req.ttl),l=iO({id:o,pairingTopic:t,expiryTimestamp:a,attestation:r,encryptedId:s},n);await this.setProposal(o,l);let c=await this.getVerifyContext({attestationId:r,hash:(0,d.hashMessage)(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:ih.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),iR(this,"onSessionProposeResponse",async(e,t,i)=>{let{id:r}=t;if((0,y.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,y.isJsonRpcError)(t)){await this.deleteProposal(r);let e=(0,d.engineEvent)("session_connect",r);if(0===this.events.listenerCount(e))throw Error(`emitting ${e} without any listeners, 954`);this.events.emit(e,{error:t.error})}}),iR(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 f=this.client.proposal.get(p.proposalId),g=(i=iO(iO(iO({topic:e,relay:n,expiry:a,namespaces:l,acknowledged:!0,pairingTopic:p.pairingTopic,requiredNamespaces:f.requiredNamespaces,optionalNamespaces:f.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:k},iv(i,iE(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((0,d.engineEvent)("session_connect",p.proposalId),{session:g}),this.pendingSessions.delete(p.proposalId),this.deleteProposal(p.proposalId,!1),this.cleanupDupl
11icatePairings(g),await this.sendResult({id:t.id,topic:e,result:!0})}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),iR(this,"onSessionSettleResponse",async(e,t)=>{let{id:i}=t;(0,y.isJsonRpcResult)(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit((0,d.engineEvent)("session_approve",i),{})):(0,y.isJsonRpcError)(t)&&(await this.client.session.delete(e,(0,d.getSdkError)("USER_DISCONNECTED")),this.events.emit((0,d.engineEvent)("session_approve",i),{error:t.error}))}),iR(this,"onSessionUpdateRequest",async(e,t)=>{let{params:i,id:r}=t;try{let t=`${e}_session_update`,s=d.MemoryStore.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:(0,d.getSdkError)("INVALID_UPDATE_REQUEST")});return}this.isValidUpdate(iO({topic:e},i));try{d.MemoryStore.set(t,r),await this.client.session.update(e,{namespaces:i.namespaces}),await this.sendResult({id:r,topic:e,result:!0})}catch(e){throw d.MemoryStore.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)}}),iR(this,"isRequestOutOfSync",(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),iR(this,"onSessionUpdateResponse",(e,t)=>{let{id:i}=t,r=(0,d.engineEvent)("session_update",i);if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners`);(0,y.isJsonRpcResult)(t)?this.events.emit((0,d.engineEvent)("session_update",i),{}):(0,y.isJsonRpcError)(t)&&this.events.emit((0,d.engineEvent)("session_update",i),{error:t.error})}),iR(this,"onSessionExtendRequest",async(e,t)=>{let{id:i}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,(0,d.calcExpiry)(ic)),await this.sendResult({id:i,topic:e,result:!0}),this.client.events.emit("session_extend",{id:i,topic:e})}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),iR(this,"onSessionExtendResponse",(e,t)=>{let{id:i}=t,r=(0,d.engineEvent)("session_extend",i);if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners`);(0,y.isJsonRpcResult)(t)?this.events.emit((0,d.engineEvent)("session_extend",i),{}):(0,y.isJsonRpcError)(t)&&this.events.emit((0,d.engineEvent)("session_extend",i),{error:t.error})}),iR(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)}}),iR(this,"onSessionPingResponse",(e,t)=>{let{id:i}=t,r=(0,d.engineEvent)("session_ping",i);setTimeout(()=>{if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners 2176`);(0,y.isJsonRpcResult)(t)?this.events.emit((0,d.engineEvent)("session_ping",i),{}):(0,y.isJsonRpcError)(t)&&this.events.emit((0,d.engineEvent)("session_ping",i),{error:t.error})},500)}),iR(this,"onSessionDeleteRequest",async(e,t)=>{let{id:i}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),await Promise.all([new Promise(t=>{this.client.core.relayer.once(_,async()=>{t(await this.deleteSession({topic:e,id:i}))})}),this.sendResult({id:i,topic:e,result:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:(0,d.getSdkError)("USER_DISCONNECTED")})]).catch(e=>this.client.logger.error(e))}catch(e){this.client.logger.error(e)}}),iR(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(iO({topic:s},h));let e=this.client.session.get(s),n=await this.getVerifyContext({attestationId:o,hash:(0,d.hashMessage)(JSON.stringify((0,g.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===q&&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())}
11catch(e){await this.sendError({id:c,topic:s,error:e}),this.client.logger.error(e)}}),iR(this,"onSessionRequestResponse",(e,t)=>{let{id:i}=t,r=(0,d.engineEvent)("session_request",i);if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners`);(0,y.isJsonRpcResult)(t)?this.events.emit((0,d.engineEvent)("session_request",i),{result:t.result}):(0,y.isJsonRpcError)(t)&&this.events.emit((0,d.engineEvent)("session_request",i),{error:t.error})}),iR(this,"onSessionEventRequest",async(e,t)=>{let{id:i,params:r}=t;try{let t=`${e}_session_event_${r.event.name}`,s=d.MemoryStore.get(t);if(s&&this.isRequestOutOfSync(s,i))return void this.client.logger.info(`Discarding out of sync request - ${i}`);this.isValidEmit(iO({topic:e},r)),this.client.events.emit("session_event",{id:i,topic:e,params:r}),d.MemoryStore.set(t,i)}catch(t){await this.sendError({id:i,topic:e,error:t}),this.client.logger.error(t)}}),iR(this,"onSessionAuthenticateResponse",(e,t)=>{let{id:i}=t;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:e,payload:t}),(0,y.isJsonRpcResult)(t)?this.events.emit((0,d.engineEvent)("session_request",i),{result:t.result}):(0,y.isJsonRpcError)(t)&&this.events.emit((0,d.engineEvent)("session_request",i),{error:t.error})}),iR(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:(0,d.hashMessage)(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===q&&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(a){this.client.logger.error(a);let e=r.params.requester.publicKey,t=await this.client.core.crypto.generateKeyPair(),s=this.getAppLinkIfEnabled(r.params.requester.metadata,o),n={type:d.TYPE_1,receiverPublicKey:e,senderPublicKey:t};await this.sendError({id:r.id,topic:i,error:a,encodeOpts:n,rpcOpts:ih.wc_sessionAuthenticate.autoReject,appLink:s})}}),iR(this,"addSessionRequestToSessionRequestQueue",e=>{this.sessionRequestQueue.queue.push(e)}),iR(this,"cleanupAfterResponse",e=>{this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=id,this.processSessionRequestQueue()},(0,c.toMiliseconds)(this.requestQueueDelay))}),iR(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=e.request.id,r=(0,d.engineEvent)("session_request",i);if(0===this.events.listenerCount(r))throw Error(`emitting ${r} without any listeners`);this.events.emit((0,d.engineEvent)("session_request",e.request.id),{error:t})})}),iR(this,"processSessionRequestQueue",()=>{if(this.sessionRequestQueue.state===ip)return void this.client.logger.info("session request queue is already active.");let e=this.sessionRequestQueue.queue[0];if(!e)return void this.client.logger.info("session request queue is empty.");try{this.emitSessionRequest(e)}catch(e){this.client.logger.error(e)}}),iR(this,"emitSessionRequest",e=>{this.emittedSessionRequests.has(e.id)?this.client.logger.warn({id:e.id},`Skipping emitting \`session_request\` event for duplicate request. id: ${e.id}`):(this.sessionRequestQueue.state=ip,this.emittedSessionRequests.add(e.id),this.client.events.emit("session_request",e))}),iR(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);
11t&&this.onSessionProposeRequest({topic:e.topic,payload:(0,g.formatJsonRpcRequest)("wc_sessionPropose",iv(iO({},t),iE({requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties})),t.id),attestation:t.attestation,encryptedId:t.encryptedId})}),iR(this,"isValidConnect",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw Error(t)}let{pairingTopic:t,requiredNamespaces:i,optionalNamespaces:r,sessionProperties:s,scopedProperties:n,relays:o}=e;if((0,d.isUndefined)(t)||await this.isValidPairingTopic(t),!(0,d.isValidRelays)(o,!0)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`connect() relays: ${o}`);throw Error(e)}if(i&&!(0,d.isUndefined)(i)&&0!==(0,d.isValidObject)(i)){let e="requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces";["fatal","error","silent"].includes(this.client.logger.level)?console.warn(e):this.client.logger.warn(e),this.validateNamespaces(i,"requiredNamespaces")}if(r&&!(0,d.isUndefined)(r)&&0!==(0,d.isValidObject)(r)&&this.validateNamespaces(r,"optionalNamespaces"),s&&!(0,d.isUndefined)(s)&&this.validateSessionProps(s,"sessionProperties"),n&&!(0,d.isUndefined)(n)){this.validateSessionProps(n,"scopedProperties");let e=Object.keys(i||{}).concat(Object.keys(r||{}));if(!Object.keys(n).every(t=>e.includes(t.split(":")[0])))throw Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(n)}, required/optional namespaces: ${JSON.stringify(e)}`)}}),iR(this,"validateNamespaces",(e,t)=>{let i=(0,d.isValidRequiredNamespaces)(e,"connect()",t);if(i)throw Error(i.message)}),iR(this,"isValidApprove",async e=>{if(!(0,d.isValidParams)(e))throw Error((0,d.getInternalError)("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=(0,d.isValidNamespaces)(i,"approve()");if(a)throw Error(a.message);let l=(0,d.isConformingNamespaces)(o.requiredNamespaces,i,"approve()");if(l)throw Error(l.message);if(!(0,d.isValidString)(r,!0)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`approve() relayProtocol: ${r}`);throw Error(e)}if(s&&!(0,d.isUndefined)(s)&&this.validateSessionProps(s,"sessionProperties"),n&&!(0,d.isUndefined)(n)){this.validateSessionProps(n,"scopedProperties");let e=new Set(Object.keys(i));if(!Object.keys(n).every(t=>e.has(t.split(":")[0])))throw Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(n)}, approved namespaces: ${Array.from(e).join(", ")}`)}}),iR(this,"isValidReject",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`reject() params: ${e}`);throw Error(t)}let{id:t,reason:i}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!(0,d.isValidErrorReason)(i)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(i)}`);throw Error(e)}}),iR(this,"isValidSessionSettleRequest",e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw Error(t)}let{relay:t,controller:i,namespaces:r,expiry:s}=e;if(!(0,d.isValidRelay)(t)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw Error(e)}let n=(0,d.isValidController)(i,"onSessionSettleRequest()");if(n)throw Error(n.message);let o=(0,d.isValidNamespaces)(r,"onSessionSettleRequest()");if(o)throw Error(o.message);if((0,d.isExpired)(s)){let{message:e}=(0,d.getInternalError)("EXPIRED","onSessionSettleRequest()");throw Error(e)}}),iR(this,"isValidUpdate",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("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=(0,d.isValidNamespaces)(i,"update(
11)");if(s)throw Error(s.message);let n=(0,d.isConformingNamespaces)(r.requiredNamespaces,i,"update()");if(n)throw Error(n.message)}),iR(this,"isValidExtend",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`extend() params: ${e}`);throw Error(t)}let{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),iR(this,"isValidRequest",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`request() params: ${e}`);throw Error(t)}let{topic:t,request:i,chainId:r,expiry:s}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let{namespaces:n}=this.client.session.get(t);if(!(0,d.isValidNamespacesChainId)(n,r)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`request() chainId: ${r}`);throw Error(e)}if(!(0,d.isValidRequest)(i)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`request() ${JSON.stringify(i)}`);throw Error(e)}if(!(0,d.isValidNamespacesRequest)(n,r,i.method)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`request() method: ${i.method}`);throw Error(e)}if(s&&!(0,d.isValidRequestExpiry)(s,iu)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`request() expiry: ${s}. Expiry must be a number (in seconds) between ${iu.min} and ${iu.max}`);throw Error(e)}}),iR(this,"isValidRespond",async e=>{var t;if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("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(!(0,d.isValidResponse)(r)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(r)}`);throw Error(e)}let s=this.client.pendingRequest.get(r.id);if(s.topic!==i){let{message:e}=(0,d.getInternalError)("MISMATCHED_TOPIC",`Request response topic mismatch. reqId: ${r.id}, expected topic: ${s.topic}, received topic: ${i}`);throw Error(e)}}),iR(this,"isValidPing",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),iR(this,"isValidEmit",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`emit() params: ${e}`);throw Error(t)}let{topic:t,event:i,chainId:r}=e;await this.isValidSessionTopic(t);let{namespaces:s}=this.client.session.get(t);if(!(0,d.isValidNamespacesChainId)(s,r)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`emit() chainId: ${r}`);throw Error(e)}if(!(0,d.isValidEvent)(i)||!(0,d.isValidNamespacesEvent)(s,r,i.name)){let{message:e}=(0,d.getInternalError)("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw Error(e)}}),iR(this,"isValidDisconnect",async e=>{if(!(0,d.isValidParams)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),iR(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(!(0,d.isValidString)(i,!1))throw Error("uri is required parameter");if(!(0,d.isValidString)(r,!1))throw Error("domain is required parameter");if(!(0,d.isValidString)(s,!1))throw Error("nonce is required parameter");if([...new Set(t.map(e=>(0,d.parseChainId)(e).namespace))].length>1)throw Error("Multi-namespace requests are not supported. Please request single namespace only.");let{namespace:n}=(0,d.parseChainId)(t[0]);if("eip155"!==n)throw Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")}),iR(this,"getVerifyContext",async e=>{let{attestationId:t,hash:i,encryptedId:r,metadata:s,transportType:n}=e,o={verified:{verifyUrl:s.verifyUrl||Y,validation:"UNKNOWN",origin:s.url||""}};try{if(n===q){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}),iR(this,"validateSessionProps",(e,t)=>{Object.values(e).forEach((i,r)=>{if(null==i){let{message:s}=(0,d.getInternalError)("MISSING_OR_INVALID",`${t} must contain an existing value for each key. Received: ${i} for key ${Object.keys(e)[r]}`);throw Error(s)}})}),iR(this,"getPendingAuthRequest",e=>{let t=this.client.auth.requests.get(e);return"object"==typeof t?t:void 0}),iR(this,"addToRecentlyDeleted",(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0,t=this.recentlyDeletedLimit/2;
11for(let i of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(i)}}}),iR(this,"checkRecentlyDeleted",e=>{let t=this.recentlyDeletedMap.get(e);if(t){let{message:i}=(0,d.getInternalError)("MISSING_OR_INVALID",`Record was recently deleted - ${t}: ${e}`);throw Error(i)}}),iR(this,"isLinkModeEnabled",(t,i)=>{var r,s,n,o,a,l,c,h,u;return!!t&&i===q&&(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=t?.redirect)?void 0:c.universal)!==void 0&&(null==(h=t?.redirect)?void 0:h.universal)!==""&&(null==(u=t?.redirect)?void 0:u.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(t.redirect.universal)&&"u">typeof(null==e.g?void 0:e.g.Linking)}),iR(this,"getAppLinkIfEnabled",(e,t)=>{var i;return this.isLinkModeEnabled(e,t)?null==(i=e?.redirect)?void 0:i.universal:void 0}),iR(this,"handleLinkModeMessage",({url:e})=>{if(!e||!e.includes("wc_ev")||!e.includes("topic"))return;let t=(0,d.getSearchParamFromURL)(e,"topic")||"",i=decodeURIComponent((0,d.getSearchParamFromURL)(e,"wc_ev")||""),r=this.client.session.keys.includes(t);r&&this.client.session.update(t,{transportType:q}),this.client.core.dispatchEnvelope({topic:t,message:i,sessionExists:r})}),iR(this,"registerLinkModeListeners",async()=>{var t;if((0,d.isTestRun)()||(0,d.isReactNative)()&&null!=(t=this.client.metadata.redirect)&&t.linkMode){let t=null==e.g?void 0:e.g.Linking;if("u">typeof t){t.addEventListener("url",this.handleLinkModeMessage,this.client.name);let e=await t.getInitialURL();e&&setTimeout(()=>{this.handleLinkModeMessage({url:e})},50)}}}),iR(this,"getTVFParams",(e,t,i)=>{var r,s,n;if(!(null!=(r=t.request)&&r.method))return{};let o={correlationId:e,rpcMethods:[t.request.method],chainId:t.chainId};try{o.txHashes=this.extractTxHashesFromResult(t.request,i),o.contractAddresses=this.isValidContractData(t.request.params)?[null==(n=null==(s=t.request.params)?void 0:s[0])?void 0:n.to]:[]}catch(e){this.client.logger.warn(e,"Error getting TVF params")}return o}),iR(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}),iR(this,"extractTxHashesFromResult",(e,t)=>{var i;try{if(!t)return[];let r=e.method,s=ig[r];if("sui_signTransaction"===r)return[(0,d.getSuiDigest)(t.transactionBytes)];if("near_signTransaction"===r)return[(0,d.getNearTransactionIdFromSignedTransaction)(t)];if("near_signTransactions"===r)return t.map(e=>(0,d.getNearTransactionIdFromSignedTransaction)(e));if("xrpl_signTransactionFor"===r||"xrpl_signTransaction"===r)return[null==(i=t.tx_json)?void 0:i.hash];if("polkadot_signTransaction"===r)return[(0,d.buildSignedExtrinsicHash)({transaction:e.params.transactionPayload,signature:t.signature})];if("algo_signTxn"===r)return(0,d.isValidArray)(t)?t.map(e=>(0,d.getAlgorandTransactionId)(e)):[(0,d.getAlgorandTransactionId)(t)];if("cosmos_signDirect"===r)return[(0,d.getSignDirectHash)(t)];if("wallet_sendCalls"===r)return(0,d.getWalletSendCallsHashes)(t);if("string"==typeof t)return[t];let n=t[s.key];if((0,d.isValidArray)(n))return"solana_signAllTransactions"===r?n.map(e=>(0,d.extractSolanaTransactionId)(e)):n;if("string"==typeof n)return[n]}catch(e){this.client.logger.warn(e,"Error extracting tx hashes from result")}return[]})}async processPendingMessageEvents(){try{let e=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(e);for(let[e,i]of Object.entries(t))for(let t of i)try{await this.onProviderMessageEvent({topic:e,message:t,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${e}, message: ${t}`)}}catch(e){this.client.logger.warn(e,"processPendingMessageEvents failed")}}isInitialized(){if(!this.initialized){let{message:e}=(0,d.getInternalError)("NOT_INITIALIZED",this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(O,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(ib)?this.client.auth.authKeys.get(ib):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,i,{receiverPublicKey:n,encoding:s===q?d.BASE64URL:d.BASE64});(0,y.isJsonRpcRequest)(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:r,transportType:s,encryptedId:(0,d.hashMessage)(i)})):(0,y.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(Z,async e=>
11{let{topic:t,id:i}=(0,d.parseExpirerTarget)(e.target);return i&&this.client.pendingRequest.keys.includes(i)?await this.deletePendingSessionRequest(i,(0,d.getInternalError)("EXPIRED"),!0):i&&this.client.auth.requests.keys.includes(i)?await this.deletePendingAuthRequest(i,(0,d.getInternalError)("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(V,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(z,e=>{this.addToRecentlyDeleted(e.topic,"pairing")})}isValidPairingTopic(e){if(!(0,d.isValidString)(e,!1)){let{message:t}=(0,d.getInternalError)("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}=(0,d.getInternalError)("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw Error(t)}if((0,d.isExpired)(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=(0,d.getInternalError)("EXPIRED",`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!(0,d.isValidString)(e,!1)){let{message:t}=(0,d.getInternalError)("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}=(0,d.getInternalError)("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw Error(t)}if((0,d.isExpired)(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=(0,d.getInternalError)("EXPIRED",`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=(0,d.getInternalError)("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((0,d.isValidString)(e,!1)){let{message:t}=(0,d.getInternalError)("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if(!(0,d.isValidId)(e)){let{message:t}=(0,d.getInternalError)("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=(0,d.getInternalError)("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw Error(t)}if((0,d.isExpired)(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=(0,d.getInternalError)("EXPIRED",`proposal id: ${e}`);throw Error(t)}}}class i_ extends tq{constructor(e,t){super(e,t,"proposal",io),this.core=e,this.logger=t}}class iT extends tq{constructor(e,t){super(e,t,"session",io),this.core=e,this.logger=t}}class iN extends tq{constructor(e,t){super(e,t,"request",io,e=>e.id),this.core=e,this.logger=t}}class iC extends tq{constructor(e,t){super(e,t,"authKeys",im,()=>ib),this.core=e,this.logger=t}}class iB extends tq{constructor(e,t){super(e,t,"pairingTopics",im),this.core=e,this.logger=t}}class ij extends tq{constructor(e,t){super(e,t,"requests",im,e=>e.id),this.core=e,this.logger=t}}var iq=Object.defineProperty,ik=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?iq(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class iU{constructor(e,t){this.core=e,this.logger=t,ik(this,"authKeys"),ik(this,"pairingTopics"),ik(this,"requests"),this.authKeys=new iC(this.core,this.logger),this.pairingTopics=new iB(this.core,this.logger),this.requests=new ij(this.core,this.logger)}
11async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}var iL=Object.defineProperty,iD=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?iL(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class i$ extends ir.ISignClient{constructor(e){super(e),iD(this,"protocol","wc"),iD(this,"version",2),iD(this,"name",is),iD(this,"metadata"),iD(this,"core"),iD(this,"logger"),iD(this,"events",new r.EventEmitter),iD(this,"engine"),iD(this,"session"),iD(this,"proposal"),iD(this,"pendingRequest"),iD(this,"auth"),iD(this,"signConfig"),iD(this,"on",(e,t)=>this.events.on(e,t)),iD(this,"once",(e,t)=>this.events.once(e,t)),iD(this,"off",(e,t)=>this.events.off(e,t)),iD(this,"removeListener",(e,t)=>this.events.removeListener(e,t)),iD(this,"removeAllListeners",e=>this.events.removeAllListeners(e)),iD(this,"connect",async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"pair",async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"approve",async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"reject",async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"update",async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"extend",async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"request",async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"respond",async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"ping",async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"emit",async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"disconnect",async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"find",e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"getPendingSessionRequests",()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}}),iD(this,"authenticate",async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"formatAuthMessage",e=>{try{return this.engine.formatAuthMessage(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"approveSessionAuthenticate",async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),iD(this,"rejectSessionAuthenticate",async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),this.name=e?.name||is,this.metadata=(0,d.populateAppMetadata)(e?.metadata),this.signConfig=e?.signConfig;const t=(0,d.createLogger)({logger:e?.logger||"error",name:this.name});this.logger=t,this.core=e?.core||new ii(e),this.session=new iT(this.core,this.logger),this.proposal=new i_(this.core,this.logger),this.pendingRequest=new iN(this.core,this.logger),this.engine=new iA(this),this.auth=new iU(this.core,this.logger)}static async init(e){let t=new i$(e);return await t.initialize(),t}get context(){return(0,a.getLoggerContext)(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success")}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}var iM=e.i(98418);function iV(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function iz(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}
11function iK(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let iF="[object String]",iH="[object Number]",iG="[object Boolean]",iJ="[object Arguments]";function iZ(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function iY(e,t,r,s=new Map,n){let o=n?.(e,t,r,s);if(null!=o)return o;if(iV(e))return e;if(s.has(e))return s.get(e);if(Array.isArray(e)){let t=Array(e.length);s.set(e,t);for(let i=0;i<e.length;i++)t[i]=iY(e[i],i,r,s,n);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[i,o]of(s.set(e,t),e))t.set(i,iY(o,i,r,s,n));return t}if(e instanceof Set){let t=new Set;for(let i of(s.set(e,t),e))t.add(iY(i,void 0,r,s,n));return t}if("u">typeof i.Buffer&&i.Buffer.isBuffer(e))return e.subarray();if(iZ(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);s.set(e,t);for(let i=0;i<e.length;i++)t[i]=iY(e[i],i,r,s,n);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 s.set(e,t),iW(t,e,r,s,n),t}if("u">typeof File&&e instanceof File){let t=new File([e],e.name,{type:e.type});return s.set(e,t),iW(t,e,r,s,n),t}if(e instanceof Blob){let t=new Blob([e],{type:e.type});return s.set(e,t),iW(t,e,r,s,n),t}if(e instanceof Error){let t=new e.constructor;return s.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,iW(t,e,r,s,n),t}if("object"==typeof e&&function(e){switch(iK(e)){case iJ:case"[object Array]":case"[object ArrayBuffer]":case"[object DataView]":case iG:case"[object Date]":case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Map]":case iH:case"[object Object]":case"[object RegExp]":case"[object Set]":case iF: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 s.set(e,t),iW(t,e,r,s,n),t}return e}function iW(e,t,i=e,r,s){let n=[...Object.keys(t),...iz(t)];for(let o=0;o<n.length;o++){let a=n[o],l=Object.getOwnPropertyDescriptor(e,a);(null==l||l.writable)&&(e[a]=iY(t[a],a,i,r,s))}}function iQ(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 iH:case iF:case iG:{let t=new e.constructor(e?.valueOf());return iW(t,e),t}case iJ:{let t={};return iW(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}},iY(e,void 0,e,new Map,t)}function iX(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===iK(e)}function i0(e){return"object"==typeof e&&null!==e}function i1(){}let i2="error",i8="universal_provider",i3=`wc@2:${i8}:`,i5="https://rpc.walletconnect.org/v1/",i6="generic",i4=`${i5}bundler`,i7="call_status",i9="default_chain_changed";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)=>rt(e,ri(t));function rc(e,t,i){var r;let s=(0,d.parseChainId)(e);return(null==(r=t.rpcMap)?void 0:r[s.reference])||`${i5}?chainId=${s.namespace}:${s.reference}&projectId=${i}`}function rh(e){return e.map(e=>`${e.split(":")[0]}:${e.split(":")[1]}`)}function ru(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>{var i,r;return(null==(i=t?.chains)?void 0:i.length)&&(null==(r=t?.chains)?void 0:r.length)>0}))}function rd(e={},t={}){return function(e,...t){return function(e,...t){let r=t.slice(0,-1),s=t[t.length-1],n=e;for(let e=0;e<r.length;e++)n=function e(t,r,s,n){if(iV(t)&&(t=Object(t)),null==r||"object"!=typeof r)return t;if(n.has(r))return function(e){if(iV(e))return e;if(Array.isArray(e)||iZ(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}(n.get(r));if(n.set(r,t),Array.isArray(r)){r=r.slice();for(let e=0;e<r.length;e++)r[e]=r[e]??void 0}let o=[...Object.keys(r),...iz(r)];for(let a=0;a<o.length;a++){let l=o[a],c=r[l],h=t[l];if(iX(c)&&(c={...c}),iX(h)&&(h={...h}),"u">typeof i.Buffer&&i.Buffer.isBuffer(c)&&(c=iQ(c)),Array.isArray(c))if("object"==typeof h&&null!=h){let e=[],t=Reflect.ownKeys(h);for(let i=0;i<t.length;i++){let r=t[i];e[r]=h[r]}h=e}else h=[];let u=s(h,c,l,t,r,n);null!=u?t[l]=u:Array.isArray(c)||i0(h)&&i0(c)?t[l]=e(h,c,s,n):null==h&&function(e){if("object"!=typeof e||null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;
11if("[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}(c)?t[l]=e({},c,s,n):null==h&&iZ(c)?t[l]=iQ(c):(void 0===h||void 0!==c)&&(t[l]=c)}return t}(n,r[e],s,new Map);return n}(e,...t,i1)}(ru(rp(e)),ru(rp(t)))}function rp(e){var t,i,r,s,n;let o={};if(!(0,d.isValidObject)(e))return o;for(let[a,l]of Object.entries(e)){let e=(0,d.isCaipNamespace)(a)?[a]:l.chains,c=l.methods||[],h=l.events||[],u=l.rpcMap||{},p=(0,d.parseNamespaceKey)(a);o[p]=rl(ra(ra({},o[p]),l),{chains:(0,d.mergeArrays)(e,null==(t=o[p])?void 0:t.chains),methods:(0,d.mergeArrays)(c,null==(i=o[p])?void 0:i.methods),events:(0,d.mergeArrays)(h,null==(r=o[p])?void 0:r.events)}),((0,d.isValidObject)(u)||(0,d.isValidObject)((null==(s=o[p])?void 0:s.rpcMap)||{}))&&(o[p].rpcMap=ra(ra({},u),null==(n=o[p])?void 0:n.rpcMap))}return o}function rf(e){return e.includes(":")?e.split(":")[2]:e}function rg(e){let t={};for(let[i,r]of Object.entries(e)){let e=r.methods||[],s=r.events||[],n=r.accounts||[],o=(0,d.isCaipNamespace)(i)?[i]:r.chains?r.chains:rh(r.accounts);t[i]={chains:o,methods:e,events:s,accounts:n}}return t}function ry(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 rm={},rb=e=>rm[e],rw=(e,t)=>{rm[e]=t};var rv=Object.defineProperty,rE=Object.getOwnPropertySymbols,rI=Object.prototype.hasOwnProperty,rx=Object.prototype.propertyIsEnumerable,rS=(e,t,i)=>t in e?rv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,rP=(e,t)=>{for(var i in t||(t={}))rI.call(t,i)&&rS(e,i,t[i]);if(rE)for(var i of rE(t))rx.call(t,i)&&rS(e,i,t[i]);return e};let rO="eip155",rR=["atomic","flow-control","paymasterService","sessionKeys","auxiliaryFunds"],rA=e=>e&&e.startsWith("0x")?BigInt(e).toString(10):e,r_=e=>e&&e.startsWith("0x")?e:`0x${BigInt(e).toString(16)}`,rT=e=>Object.keys(e).filter(e=>rR.includes(e)).reduce((t,i)=>(t[i]=rN(e[i]),t),{}),rN=e=>"string"==typeof e&&function(e){try{let t=JSON.parse(e);return"object"==typeof t&&null!==t&&!Array.isArray(t)}catch{return!1}}(e)?JSON.parse(e):e;var rC=Object.defineProperty;class rB{constructor(e){((e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?rC(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i})(this,"storage"),this.storage=e}async getItem(e){return await this.storage.getItem(e)}async setItem(e,t){return await this.storage.setItem(e,t)}async removeItem(e){return await this.storage.removeItem(e)}static getStorage(e){return t||(t=new rB(e)),t}}var rj=Object.defineProperty,rq=Object.defineProperties,rk=Object.getOwnPropertyDescriptors,rU=Object.getOwnPropertySymbols,rL=Object.prototype.hasOwnProperty,rD=Object.prototype.propertyIsEnumerable,r$=(e,t,i)=>t in e?rj(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;async function rM(e,t){let i,r=(0,d.parseChainId)(e.result.capabilities.caip345.caip2),s=e.result.capabilities.caip345.transactionHashes,n=await Promise.allSettled(s.map(e=>rV(r.reference,e,t))),o=n.filter(e=>"fulfilled"===e.status).map(e=>e.value).filter(e=>e);n.filter(e=>"rejected"===e.status).forEach(e=>console.warn("Failed to fetch transaction receipt:",e.reason));let a=!o.length||o.some(e=>!e),l=o.every(e=>e?.status==="0x1"),c=o.every(e=>e?.status==="0x0"),h=o.some(e=>e?.status==="0x0");return a?i=100:l?i=200:c?i=500:h&&(i=600),{id:e.result.id,version:e.request.version,atomic:e.request.atomicRequired,chainId:e.request.chainId,capabilities:e.result.capabilities,receipts:o,status:i}}async function rV(e,t,i){return await i(parseInt(e)).request((0,g.formatJsonRpcRequest)("eth_getTransactionReceipt",[t]))}async function rz({sendCalls:e,storage:t}){let i=await t.getItem(i7);await t.setItem(i7,rq(((e,t)=>{for(var i in t||(t={}))rL.call(t,i)&&r$(e,i,t[i]);if(rU)for(var i of rU(t))rD.call(t,i)&&r$(e,i,t[i]);return e})({},i),rk({[e.result.id]:{request:e.request,result:e.result,expiry:(0,d.calcExpiry)(86400)}})))}async function rK({resultId:e,storage:t}){let i=await t.getItem(i7);if(i){for(let r in delete i[e],await t.setItem(i7,i),i)(0,d.isExpired)(i[r].expiry)&&delete i[r];await t.setItem(i7,i)}}async function rF({resultId:e,storage:t}){let i=await t.getItem(i7),r=i?.[e];if(r&&!(0,d.isExpired)(r.expiry))return r;await rK({resultId:e,storage:t})}var rH=Object.defineProperty,rG=Object.defineProperties,rJ=Object.getOwnPropertyDescriptors,rZ=Object.getOwnPropertySymbols,rY=Object.prototype.hasOwnProperty,rW=Object.prototype.propertyIsEnumerable,rQ=(e,t,i)=>t in e?rH(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,rX=(e,t)=>{for(var i in t||(t={}))rY.call(t,i)&&rQ(e,i,t[i]);if(rZ)for(var i of rZ(t))rW.call(t,i)&&rQ(e,i,t[i]);return e},r0=(e,t,i)=>rQ(e,"symbol"!=typeof t?t+"":t,i);class r1{constructor(e){r0(this,"name","eip155"),r0(this,"client"),r0(this,"chainId"),r0(this,"namespace"),r0(this,"httpProviders"),r0(this,"events"),r0(this,"storage"),this.namespace=e.namespace,this.events=rb("events"),this.client=rb("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain()),this.storage=rB.getStorage(this.client.core.storage)}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);case"wallet_sendCalls":return await this.sendCalls(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);let i=this.chainId;this.chainId=parseInt(e),this.events.emit(i9,{currentCaipChainId:`${this.name}:${e}`,previousCaipChainId:`${this.name}:${i}`})}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||rc(`${this.name}:${e}`,this.namespace,this.client.core.projectId);return new f.JsonRpcProvider(new iM.HttpConnection(i,rb("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(t.includes(":")?t.split(":")[1]: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(e){let t=e||this.chainId;return this.httpProviders[t]||(this.httpProviders=rG(rX({},this.httpProviders),rJ({[t]:this.createHttpProvider(t)})),this.httpProviders[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,a=null==(i=null==(t=e.request)?void 0:t.params)?void 0:i[0],l=(null==(s=null==(r=e.request)?void 0:r.params)?void 0:s[1])||[];if(!a)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)||{},u=`${a}${l.join(",")}`,p=h?.[u];if(p)return p;try{o=((e,t,i)=>{let{sessionProperties:r={},scopedProperties:s={}}=e,n={};if(!(0,d.isValidObject)(s)&&!(0,d.isValidObject)(r))return;let o=rT(r);for(let e of i){let i=rA(e);if(!i)continue;n[r_(i)]=o;let r=s?.[`${rO}:${i}`];if(r){let e=r?.[`${rO}:${i}:${t}`];n[r_(i)]=rP(rP({},n[r_(i)]),rT(e||r))}}for(let[e,t]of Object.entries(n))0===Object.keys(t).length&&delete n[e];return Object.keys(n).length>0?n:void 0})(c,a,l)}catch(e){console.warn("Failed to extract capabilities from session",e)}if(o)return o;let f=await this.client.request(e);try{let t,i,r,s;await this.client.session.update(e.topic,{sessionProperties:(r=rX({},c.sessionProperties||{}),s={capabilities:(t=rX({},h||{}),i={[u]:f},rG(t,rJ(i)))},rG(r,rJ(s)))})}catch(e){console.warn("Failed to update session with capabilities",e)}return f}async getCallStatus(e){var t,i,r;let s=this.client.session.get(e.topic),n=null==(t=s.sessionProperties)?void 0:t.bundler_name;if(n){let t=this.getBundlerUrl(e.chainId,n);try{return await this.getUserOperationReceipt(t,e)}catch(e){console.warn("Failed to fetch call status from bundler",e,t)}}let o=null==(i=s.sessionProperties)?void 0:i.bundler_url;if(o)try{return await this.getUserOperationReceipt(o,e)}catch(e){console.warn("Failed to fetch call status from custom bundler",e,o)}let a=await rF({resultId:null==(r=e.request.params)?void 0:r[0],storage:this.storage});if(a)try{return await rM(a,this.getHttpProvider.bind(this))}catch(e){console.warn("Failed to fetch call status from stored send calls",e,a)}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,g.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()}
11getBundlerUrl(e,t){return`${i4}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${t}`}async sendCalls(e){var t,i,r;let s=await this.client.request(e),n=null==(t=e.request.params)?void 0:t[0],o=s?.id,a=s?.capabilities||{},l=null==(i=a?.caip345)?void 0:i.caip2,c=null==(r=a?.caip345)?void 0:r.transactionHashes;return o&&l&&null!=c&&c.length&&await rz({sendCalls:{request:n,result:s},storage:this.storage}),s}}var r2=Object.defineProperty,r8=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?r2(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};class r3{constructor(e){r8(this,"name",i6),r8(this,"client"),r8(this,"httpProviders"),r8(this,"events"),r8(this,"namespace"),r8(this,"chainId"),this.namespace=e.namespace,this.events=rb("events"),this.client=rb("client"),this.chainId=this.getDefaultChain(),this.name=this.getNamespaceName(),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);let i=this.chainId;this.chainId=e,this.events.emit(i9,{currentCaipChainId:`${this.name}:${e}`,previousCaipChainId:`${this.name}:${i}`})}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]}getNamespaceName(){let e=this.namespace.chains[0];if(!e)throw Error("ChainId not found");return(0,d.parseChainId)(e).namespace}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=>{var t,r;let s=(0,d.parseChainId)(e),n=null==(r=null==(t=this.namespace)?void 0:t.rpcMap)?void 0:r[`${s.namespace}:${s.reference}`];i[s.reference]=this.createHttpProvider(e,n)}),i}getHttpProvider(e){let t=(0,d.parseChainId)(e).reference,i=this.httpProviders[t];if(typeof i>"u")throw Error(`JSON-RPC provider for ${e} not found`);return i}setHttpProvider(e,t){let i=this.createHttpProvider(e,t);i&&(this.httpProviders[e]=i)}createHttpProvider(e,t){let i=t||rc(e,this.namespace,this.client.core.projectId);return new f.JsonRpcProvider(new iM.default(i,rb("disableProviderPing")))}}var r5=Object.defineProperty,r6=Object.defineProperties,r4=Object.getOwnPropertyDescriptors,r7=Object.getOwnPropertySymbols,r9=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable,st=(e,t,i)=>t in e?r5(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,si=(e,t)=>{for(var i in t||(t={}))r9.call(t,i)&&st(e,i,t[i]);if(r7)for(var i of r7(t))se.call(t,i)&&st(e,i,t[i]);return e},sr=(e,t,i)=>st(e,"symbol"!=typeof t?t+"":t,i);class ss{constructor(e){var t,i;sr(this,"client"),sr(this,"namespaces"),sr(this,"optionalNamespaces"),sr(this,"sessionProperties"),sr(this,"scopedProperties"),sr(this,"events",new r.default),sr(this,"rpcProviders",{}),sr(this,"session"),sr(this,"providerOpts"),sr(this,"logger"),sr(this,"uri"),sr(this,"disableProviderPing",!1),this.providerOpts=e,this.logger=(0,d.createLogger)({logger:null!=(t=e.logger)?t:i2,name:null!=(i=this.providerOpts.name)?i:i8}),this.disableProviderPing=e?.disableProviderPing||!1}static async init(e){let t=new ss(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:si({},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,g.formatJsonRpcResult)(s,e))).catch(e=>t(e,void 0))}async enable(){if(!this.client)throw Error("Sign Client not initialized");
11return 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:(0,d.getSdkError)("USER_DISCONNECTED")}),await this.cleanup()}async connect(e){if(!this.client)throw Error("Sign Client not initialized");if(this.setNamespaces(e),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=rg(this.session.namespaces);this.namespaces=rd(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=rg(r.namespaces);return this.namespaces=rd(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);this.getProvider(i).setDefaultChain(r,t)}catch(e){if(!/Please call connect/.test(e.message))throw e}}async cleanupPendingPairings(e={}){try{this.logger.info("Cleaning up inactive pairings...");let t=this.client.pairing.getAll();if(!(0,d.isValidArray)(t))return;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}`)}catch(e){this.logger.warn(e,"Failed to cleanup pending pairings")}}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 i$.init({core:this.providerOpts.core,logger:this.providerOpts.logger||i2,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(i,"Failed to get session"),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=>(0,d.parseNamespaceKey)(e)))];rw("client",this.client),rw("events",this.events),rw("disableProviderPing",this.disableProviderPing),e.forEach(e
11=>{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);if(t?.length===0)return;let i=rh(t),r=r6(si({},rd(this.namespaces,this.optionalNamespaces)[e]),r4({accounts:t,chains:i}));"eip155"===e?this.rpcProviders[e]=new r1({namespace:r}):this.rpcProviders[e]=new r3({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&&(0,d.isValidArray)(e)&&this.events.emit("accountsChanged",e.map(rf))}else if("chainChanged"===s.name){let e=i.chainId,t=i.event.data,r=(0,d.parseNamespaceKey)(e),s=ry(e)!==ry(t)?`${r}:${ry(t)}`:e;this.onChainChanged({currentCaipChainId: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=r6(si({},n),r4({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",r6(si({},(0,d.getSdkError)("USER_DISCONNECTED")),r4({data:e.topic}))))}),this.on(i9,e=>{this.onChainChanged(r6(si({},e),r4({internal:!0})))})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[i6]}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=rd(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=>(0,d.parseNamespaceKey)(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=(0,d.parseNamespaceKey)(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({currentCaipChainId:e,previousCaipChainId:t,internal:i=!1}){if(!this.namespaces)return;let[r,s]=this.validateChain(e);s&&(this.updateNamespaceChain(r,s),i?(this.events.emit("chainChanged",s),this.emitAccountsChangedOnChainChange({namespace:r,currentCaipChainId:e,previousCaipChainId:t})):this.getProvider(r).setDefaultChain(s),await this.persist("namespaces",this.namespaces))}emitAccountsChangedOnChainChange({namespace:e,currentCaipChainId:t,previousCaipChainId:i}){var r,s;try{if(i===t)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(`${t}:`)).map(rf);if(!(0,d.isValidArray)(o))return;this.events.emit("accountsChanged",o)}catch(e){this.logger.warn(e,"Failed to emit accountsChanged on chain change")}}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,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(`${i3}/${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(`${i3}/${e}${i}`)}async deleteFromStore(e){var t;let i=(null==(t=this.session)?void 0:t.topic)||"";await this.client.core.storage.removeItem(`${i3}/${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(i3)&&await this.client.core.storage.removeItem(e)}catch(e){this.logger.warn(e,"Failed to cleanup storage")}}}e.s(["UniversalProvider",()=>ss],971342)}]); 12 13//# debugId=7c1aaa56-cbd3-24e5-8ee8-2e7920882d1d
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.