denotify-client 1.1.13 → 1.1.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,4 +3,4 @@
3
3
  `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach(s=>r.set(s)),r}static accessor(e){const r=(this[Ws]=this[Ws]={accessors:{}}).accessors,s=this.prototype;function i(o){const a=Wt(o);r[a]||(ul(s,o),r[a]=!0)}return g.isArray(e)?e.forEach(i):i(e),this}}Yr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);g.freezeMethods(Yr.prototype);g.freezeMethods(Yr);const Le=Yr;function En(n,e){const t=this||us,r=e||t,s=Le.from(r.headers);let i=r.data;return g.forEach(n,function(a){i=a.call(t,i,s.normalize(),e?e.status:void 0)}),s.normalize(),i}function no(n){return!!(n&&n.__CANCEL__)}function dr(n,e,t){P.call(this,n??"canceled",P.ERR_CANCELED,e,t),this.name="CanceledError"}g.inherits(dr,P,{__CANCEL__:!0});function ll(n,e,t){const r=t.config.validateStatus;!t.status||!r||r(t.status)?n(t):e(new P("Request failed with status code "+t.status,[P.ERR_BAD_REQUEST,P.ERR_BAD_RESPONSE][Math.floor(t.status/100)-4],t.config,t.request,t))}const hl=Re.isStandardBrowserEnv?function(){return{write:function(t,r,s,i,o,a){const c=[];c.push(t+"="+encodeURIComponent(r)),g.isNumber(s)&&c.push("expires="+new Date(s).toGMTString()),g.isString(i)&&c.push("path="+i),g.isString(o)&&c.push("domain="+o),a===!0&&c.push("secure"),document.cookie=c.join("; ")},read:function(t){const r=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function fl(n){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(n)}function dl(n,e){return e?n.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):n}function so(n,e){return n&&!fl(e)?dl(n,e):e}const pl=Re.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let r;function s(i){let o=i;return e&&(t.setAttribute("href",o),o=t.href),t.setAttribute("href",o),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return r=s(window.location.href),function(o){const a=g.isString(o)?s(o):o;return a.protocol===r.protocol&&a.host===r.host}}():function(){return function(){return!0}}();function yl(n){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(n);return e&&e[1]||""}function ml(n,e){n=n||10;const t=new Array(n),r=new Array(n);let s=0,i=0,o;return e=e!==void 0?e:1e3,function(c){const u=Date.now(),l=r[i];o||(o=u),t[s]=c,r[s]=u;let h=i,p=0;for(;h!==s;)p+=t[h++],h=h%n;if(s=(s+1)%n,s===i&&(i=(i+1)%n),u-o<e)return;const f=l&&u-l;return f?Math.round(p*1e3/f):void 0}}function Ks(n,e){let t=0;const r=ml(50,250);return s=>{const i=s.loaded,o=s.lengthComputable?s.total:void 0,a=i-t,c=r(a),u=i<=o;t=i;const l={loaded:i,total:o,progress:o?i/o:void 0,bytes:a,rate:c||void 0,estimated:c&&o&&u?(o-i)/c:void 0,event:s};l[e?"download":"upload"]=!0,n(l)}}const gl=typeof XMLHttpRequest<"u",wl=gl&&function(n){return new Promise(function(t,r){let s=n.data;const i=Le.from(n.headers).normalize(),o=n.responseType;let a;function c(){n.cancelToken&&n.cancelToken.unsubscribe(a),n.signal&&n.signal.removeEventListener("abort",a)}g.isFormData(s)&&(Re.isStandardBrowserEnv||Re.isStandardBrowserWebWorkerEnv)&&i.setContentType(!1);let u=new XMLHttpRequest;if(n.auth){const f=n.auth.username||"",d=n.auth.password?unescape(encodeURIComponent(n.auth.password)):"";i.set("Authorization","Basic "+btoa(f+":"+d))}const l=so(n.baseURL,n.url);u.open(n.method.toUpperCase(),eo(l,n.params,n.paramsSerializer),!0),u.timeout=n.timeout;function h(){if(!u)return;const f=Le.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),w={data:!o||o==="text"||o==="json"?u.responseText:u.response,status:u.status,statusText:u.statusText,headers:f,config:n,request:u};ll(function(O){t(O),c()},function(O){r(O),c()},w),u=null}if("onloadend"in u?u.onloadend=h:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf("file:")===0)||setTimeout(h)},u.onabort=function(){u&&(r(new P("Request aborted",P.ECONNABORTED,n,u)),u=null)},u.onerror=function(){r(new P("Network Error",P.ERR_NETWORK,n,u)),u=null},u.ontimeout=function(){let d=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const w=n.transitional||to;n.timeoutErrorMessage&&(d=n.timeoutErrorMessage),r(new P(d,w.clarifyTimeoutError?P.ETIMEDOUT:P.ECONNABORTED,n,u)),u=null},Re.isStandardBrowserEnv){const f=(n.withCredentials||pl(l))&&n.xsrfCookieName&&hl.read(n.xsrfCookieName);f&&i.set(n.xsrfHeaderName,f)}s===void 0&&i.setContentType(null),"setRequestHeader"in u&&g.forEach(i.toJSON(),function(d,w){u.setRequestHeader(w,d)}),g.isUndefined(n.withCredentials)||(u.withCredentials=!!n.withCredentials),o&&o!=="json"&&(u.responseType=n.responseType),typeof n.onDownloadProgress=="function"&&u.addEventListener("progress",Ks(n.onDownloadProgress,!0)),typeof n.onUploadProgress=="function"&&u.upload&&u.upload.addEventListener("progress",Ks(n.onUploadProgress)),(n.cancelToken||n.signal)&&(a=f=>{u&&(r(!f||f.type?new dr(null,n,u):f),u.abort(),u=null)},n.cancelToken&&n.cancelToken.subscribe(a),n.signal&&(n.signal.aborted?a():n.signal.addEventListener("abort",a)));const p=yl(l);if(p&&Re.protocols.indexOf(p)===-1){r(new P("Unsupported protocol "+p+":",P.ERR_BAD_REQUEST,n));return}u.send(s||null)})},Sr={http:zu,xhr:wl};g.forEach(Sr,(n,e)=>{if(n){try{Object.defineProperty(n,"name",{value:e})}catch{}Object.defineProperty(n,"adapterName",{value:e})}});const bl={getAdapter:n=>{n=g.isArray(n)?n:[n];const{length:e}=n;let t,r;for(let s=0;s<e&&(t=n[s],!(r=g.isString(t)?Sr[t.toLowerCase()]:t));s++);if(!r)throw r===!1?new P(`Adapter ${t} is not supported by the environment`,"ERR_NOT_SUPPORT"):new Error(g.hasOwnProp(Sr,t)?`Adapter '${t}' is not available in the build`:`Unknown adapter '${t}'`);if(!g.isFunction(r))throw new TypeError("adapter is not a function");return r},adapters:Sr};function xn(n){if(n.cancelToken&&n.cancelToken.throwIfRequested(),n.signal&&n.signal.aborted)throw new dr(null,n)}function Xs(n){return xn(n),n.headers=Le.from(n.headers),n.data=En.call(n,n.transformRequest),["post","put","patch"].indexOf(n.method)!==-1&&n.headers.setContentType("application/x-www-form-urlencoded",!1),bl.getAdapter(n.adapter||us.adapter)(n).then(function(r){return xn(n),r.data=En.call(n,n.transformResponse,r),r.headers=Le.from(r.headers),r},function(r){return no(r)||(xn(n),r&&r.response&&(r.response.data=En.call(n,n.transformResponse,r.response),r.response.headers=Le.from(r.response.headers))),Promise.reject(r)})}const Zs=n=>n instanceof Le?n.toJSON():n;function Ht(n,e){e=e||{};const t={};function r(u,l,h){return g.isPlainObject(u)&&g.isPlainObject(l)?g.merge.call({caseless:h},u,l):g.isPlainObject(l)?g.merge({},l):g.isArray(l)?l.slice():l}function s(u,l,h){if(g.isUndefined(l)){if(!g.isUndefined(u))return r(void 0,u,h)}else return r(u,l,h)}function i(u,l){if(!g.isUndefined(l))return r(void 0,l)}function o(u,l){if(g.isUndefined(l)){if(!g.isUndefined(u))return r(void 0,u)}else return r(void 0,l)}function a(u,l,h){if(h in e)return r(u,l);if(h in n)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(u,l)=>s(Zs(u),Zs(l),!0)};return g.forEach(Object.keys(n).concat(Object.keys(e)),function(l){const h=c[l]||s,p=h(n[l],e[l],l);g.isUndefined(p)&&h!==a||(t[l]=p)}),t}const io="1.3.4",ls={};["object","boolean","number","function","string","symbol"].forEach((n,e)=>{ls[n]=function(r){return typeof r===n||"a"+(e<1?"n ":" ")+n}});const Ys={};ls.transitional=function(e,t,r){function s(i,o){return"[Axios v"+io+"] Transitional option '"+i+"'"+o+(r?". "+r:"")}return(i,o,a)=>{if(e===!1)throw new P(s(o," has been removed"+(t?" in "+t:"")),P.ERR_DEPRECATED);return t&&!Ys[o]&&(Ys[o]=!0,console.warn(s(o," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(i,o,a):!0}};function vl(n,e,t){if(typeof n!="object")throw new P("options must be an object",P.ERR_BAD_OPTION_VALUE);const r=Object.keys(n);let s=r.length;for(;s-- >0;){const i=r[s],o=e[i];if(o){const a=n[i],c=a===void 0||o(a,i,n);if(c!==!0)throw new P("option "+i+" must be "+c,P.ERR_BAD_OPTION_VALUE);continue}if(t!==!0)throw new P("Unknown option "+i,P.ERR_BAD_OPTION)}}const Fn={assertOptions:vl,validators:ls},Je=Fn.validators;class Cr{constructor(e){this.defaults=e,this.interceptors={request:new Gs,response:new Gs}}request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=Ht(this.defaults,t);const{transitional:r,paramsSerializer:s,headers:i}=t;r!==void 0&&Fn.assertOptions(r,{silentJSONParsing:Je.transitional(Je.boolean),forcedJSONParsing:Je.transitional(Je.boolean),clarifyTimeoutError:Je.transitional(Je.boolean)},!1),s!==void 0&&Fn.assertOptions(s,{encode:Je.function,serialize:Je.function},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o;o=i&&g.merge(i.common,i[t.method]),o&&g.forEach(["delete","get","head","post","put","patch","common"],d=>{delete i[d]}),t.headers=Le.concat(o,i);const a=[];let c=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(t)===!1||(c=c&&w.synchronous,a.unshift(w.fulfilled,w.rejected))});const u=[];this.interceptors.response.forEach(function(w){u.push(w.fulfilled,w.rejected)});let l,h=0,p;if(!c){const d=[Xs.bind(this),void 0];for(d.unshift.apply(d,a),d.push.apply(d,u),p=d.length,l=Promise.resolve(t);h<p;)l=l.then(d[h++],d[h++]);return l}p=a.length;let f=t;for(h=0;h<p;){const d=a[h++],w=a[h++];try{f=d(f)}catch(b){w.call(this,b);break}}try{l=Xs.call(this,f)}catch(d){return Promise.reject(d)}for(h=0,p=u.length;h<p;)l=l.then(u[h++],u[h++]);return l}getUri(e){e=Ht(this.defaults,e);const t=so(e.baseURL,e.url);return eo(t,e.params,e.paramsSerializer)}}g.forEach(["delete","get","head","options"],function(e){Cr.prototype[e]=function(t,r){return this.request(Ht(r||{},{method:e,url:t,data:(r||{}).data}))}});g.forEach(["post","put","patch"],function(e){function t(r){return function(i,o,a){return this.request(Ht(a||{},{method:e,headers:r?{"Content-Type":"multipart/form-data"}:{},url:i,data:o}))}}Cr.prototype[e]=t(),Cr.prototype[e+"Form"]=t(!0)});const kr=Cr;class hs{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(i){t=i});const r=this;this.promise.then(s=>{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const o=new Promise(a=>{r.subscribe(a),i=a}).then(s);return o.cancel=function(){r.unsubscribe(i)},o},e(function(i,o,a){r.reason||(r.reason=new dr(i,o,a),t(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}static source(){let e;return{token:new hs(function(s){e=s}),cancel:e}}}const _l=hs;function El(n){return function(t){return n.apply(null,t)}}function xl(n){return g.isObject(n)&&n.isAxiosError===!0}const Dn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Dn).forEach(([n,e])=>{Dn[e]=n});const Ol=Dn;function oo(n){const e=new kr(n),t=Hi(kr.prototype.request,e);return g.extend(t,kr.prototype,e,{allOwnKeys:!0}),g.extend(t,e,null,{allOwnKeys:!0}),t.create=function(s){return oo(Ht(n,s))},t}const V=oo(us);V.Axios=kr;V.CanceledError=dr;V.CancelToken=_l;V.isCancel=no;V.VERSION=io;V.toFormData=Xr;V.AxiosError=P;V.Cancel=V.CanceledError;V.all=function(e){return Promise.all(e)};V.spread=El;V.isAxiosError=xl;V.mergeConfig=Ht;V.AxiosHeaders=Le;V.formToJSON=n=>ro(g.isHTMLForm(n)?new FormData(n):n);V.HttpStatusCode=Ol;V.default=V;const Tl=V;function _t(n){this._maxSize=n,this.clear()}_t.prototype.clear=function(){this._size=0,this._values=Object.create(null)};_t.prototype.get=function(n){return this._values[n]};_t.prototype.set=function(n,e){return this._size>=this._maxSize&&this.clear(),n in this._values||this._size++,this._values[n]=e};var Al=/[^.^\]^[]+|(?=\[\]|\.\.)/g,ao=/^\d+$/,Sl=/^\d/,kl=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Rl=/^\s*(['"]?)(.*?)(\1)\s*$/,fs=512,Qs=new _t(fs),ei=new _t(fs),ti=new _t(fs),pt={Cache:_t,split:Un,normalizePath:On,setter:function(n){var e=On(n);return ei.get(n)||ei.set(n,function(r,s){for(var i=0,o=e.length,a=r;i<o-1;){var c=e[i];if(c==="__proto__"||c==="constructor"||c==="prototype")return r;a=a[e[i++]]}a[e[i]]=s})},getter:function(n,e){var t=On(n);return ti.get(n)||ti.set(n,function(s){for(var i=0,o=t.length;i<o;)if(s!=null||!e)s=s[t[i++]];else return;return s})},join:function(n){return n.reduce(function(e,t){return e+(ds(t)||ao.test(t)?"["+t+"]":(e?".":"")+t)},"")},forEach:function(n,e,t){Pl(Array.isArray(n)?n:Un(n),e,t)}};function On(n){return Qs.get(n)||Qs.set(n,Un(n).map(function(e){return e.replace(Rl,"$2")}))}function Un(n){return n.match(Al)||[""]}function Pl(n,e,t){var r=n.length,s,i,o,a;for(i=0;i<r;i++)s=n[i],s&&(Cl(s)&&(s='"'+s+'"'),a=ds(s),o=!a&&/^\d+$/.test(s),e.call(t,s,a,o,i,n))}function ds(n){return typeof n=="string"&&n&&["'",'"'].indexOf(n.charAt(0))!==-1}function Nl(n){return n.match(Sl)&&!n.match(ao)}function $l(n){return kl.test(n)}function Cl(n){return!ds(n)&&(Nl(n)||$l(n))}const Il=/[A-Z\xc0-\xd6\xd8-\xde]?[a-z\xdf-\xf6\xf8-\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde]|$)|(?:[A-Z\xc0-\xd6\xd8-\xde]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde](?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])|$)|[A-Z\xc0-\xd6\xd8-\xde]?(?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\xc0-\xd6\xd8-\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\d*(?:1ST|2ND|3RD|(?![123])\dTH)(?=\b|[a-z_])|\d*(?:1st|2nd|3rd|(?![123])\dth)(?=\b|[A-Z_])|\d+|(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?)*/g,Qr=n=>n.match(Il)||[],en=n=>n[0].toUpperCase()+n.slice(1),ps=(n,e)=>Qr(n).join(e).toLowerCase(),co=n=>Qr(n).reduce((e,t)=>`${e}${e?t[0].toUpperCase()+t.slice(1).toLowerCase():t.toLowerCase()}`,""),Fl=n=>en(co(n)),Dl=n=>ps(n,"_"),Ul=n=>ps(n,"-"),Ll=n=>en(ps(n," ")),jl=n=>Qr(n).map(en).join(" ");var Tn={words:Qr,upperFirst:en,camelCase:co,pascalCase:Fl,snakeCase:Dl,kebabCase:Ul,sentenceCase:Ll,titleCase:jl},Ir={},Bl={get exports(){return Ir},set exports(n){Ir=n}};Bl.exports=function(n){return uo(Hl(n),n)};Ir.array=uo;function uo(n,e){var t=n.length,r=new Array(t),s={},i=t,o=Ml(e),a=zl(n);for(e.forEach(function(u){if(!a.has(u[0])||!a.has(u[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});i--;)s[i]||c(n[i],i,new Set);return r;function c(u,l,h){if(h.has(u)){var p;try{p=", node was:"+JSON.stringify(u)}catch{p=""}throw new Error("Cyclic dependency"+p)}if(!a.has(u))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(u));if(!s[l]){s[l]=!0;var f=o.get(u)||new Set;if(f=Array.from(f),l=f.length){h.add(u);do{var d=f[--l];c(d,a.get(d),h)}while(l);h.delete(u)}r[--t]=u}}}function Hl(n){for(var e=new Set,t=0,r=n.length;t<r;t++){var s=n[t];e.add(s[0]),e.add(s[1])}return Array.from(e)}function Ml(n){for(var e=new Map,t=0,r=n.length;t<r;t++){var s=n[t];e.has(s[0])||e.set(s[0],new Set),e.has(s[1])||e.set(s[1],new Set),e.get(s[0]).add(s[1])}return e}function zl(n){for(var e=new Map,t=0,r=n.length;t<r;t++)e.set(n[t],t);return e}const Vl=Object.prototype.toString,ql=Error.prototype.toString,Jl=RegExp.prototype.toString,Gl=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Wl=/^Symbol\((.*)\)(.*)$/;function Kl(n){return n!=+n?"NaN":n===0&&1/n<0?"-0":""+n}function ri(n,e=!1){if(n==null||n===!0||n===!1)return""+n;const t=typeof n;if(t==="number")return Kl(n);if(t==="string")return e?`"${n}"`:n;if(t==="function")return"[Function "+(n.name||"anonymous")+"]";if(t==="symbol")return Gl.call(n).replace(Wl,"Symbol($1)");const r=Vl.call(n).slice(8,-1);return r==="Date"?isNaN(n.getTime())?""+n:n.toISOString(n):r==="Error"||n instanceof Error?"["+ql.call(n)+"]":r==="RegExp"?Jl.call(n):null}function yt(n,e){let t=ri(n,e);return t!==null?t:JSON.stringify(n,function(r,s){let i=ri(this[r],e);return i!==null?i:s},2)}function lo(n){return n==null?[]:[].concat(n)}let Xl=/\$\{\s*(\w+)\s*\}/g;class ae extends Error{static formatError(e,t){const r=t.label||t.path||"this";return r!==t.path&&(t=Object.assign({},t,{path:r})),typeof e=="string"?e.replace(Xl,(s,i)=>yt(t[i])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,r,s){super(),this.value=void 0,this.path=void 0,this.type=void 0,this.errors=void 0,this.params=void 0,this.inner=void 0,this.name="ValidationError",this.value=t,this.path=r,this.type=s,this.errors=[],this.inner=[],lo(e).forEach(i=>{ae.isError(i)?(this.errors.push(...i.errors),this.inner=this.inner.concat(i.inner.length?i.inner:i)):this.errors.push(i)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,ae)}}let Ne={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:n,type:e,value:t,originalValue:r})=>{const s=r!=null&&r!==t?` (cast from the value \`${yt(r,!0)}\`).`:".";return e!=="mixed"?`${n} must be a \`${e}\` type, but the final value was: \`${yt(t,!0)}\``+s:`${n} must match the configured type. The validated value was: \`${yt(t,!0)}\``+s}},ye={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},Ge={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},Ln={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},jn={isValue:"${path} field must be ${value}"},Bn={noUnknown:"${path} field has unspecified keys: ${unknown}"},Rr={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"};Object.assign(Object.create(null),{mixed:Ne,string:ye,number:Ge,date:Ln,object:Bn,array:Rr,boolean:jn});const tn=n=>n&&n.__isYupSchema__;class Fr{static fromOptions(e,t){if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:r,then:s,otherwise:i}=t,o=typeof r=="function"?r:(...a)=>a.every(c=>c===r);return new Fr(e,(a,c)=>{var u;let l=o(...a)?s:i;return(u=l==null?void 0:l(c))!=null?u:c})}constructor(e,t){this.fn=void 0,this.refs=e,this.refs=e,this.fn=t}resolve(e,t){let r=this.refs.map(i=>i.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),s=this.fn(r,e,t);if(s===void 0||s===e)return e;if(!tn(s))throw new TypeError("conditions must return a schema object");return s.resolve(t)}}const br={context:"$",value:"."};class Et{constructor(e,t={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===br.context,this.isValue=this.key[0]===br.value,this.isSibling=!this.isContext&&!this.isValue;let r=this.isContext?br.context:this.isValue?br.value:"";this.path=this.key.slice(r.length),this.getter=this.path&&pt.getter(this.path,!0),this.map=t.map}getValue(e,t,r){let s=this.isContext?r:this.isValue?e:t;return this.getter&&(s=this.getter(s||{})),this.map&&(s=this.map(s)),s}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}}Et.prototype.__isYupRef=!0;const fe=n=>n==null;function At(n){function e({value:t,path:r="",options:s,originalValue:i,schema:o},a,c){const{name:u,test:l,params:h,message:p,skipAbsent:f}=n;let{parent:d,context:w,abortEarly:b=o.spec.abortEarly}=s;function O(H){return Et.isRef(H)?H.getValue(t,d,w):H}function R(H={}){const J=Object.assign({value:t,originalValue:i,label:o.spec.label,path:H.path||r,spec:o.spec},h,H.params);for(const Ot of Object.keys(J))J[Ot]=O(J[Ot]);const mr=new ae(ae.formatError(H.message||p,J),t,J.path,H.type||u);return mr.params=J,mr}const M=b?a:c;let D={path:r,parent:d,type:u,from:s.from,createError:R,resolve:O,options:s,originalValue:i,schema:o};const _e=H=>{ae.isError(H)?M(H):H?c(null):M(R())},qt=H=>{ae.isError(H)?M(H):a(H)},pr=f&&fe(t);if(!s.sync){try{Promise.resolve(pr?!0:l.call(D,t,D)).then(_e,qt)}catch(H){qt(H)}return}let pe;try{var yr;if(pe=pr?!0:l.call(D,t,D),typeof((yr=pe)==null?void 0:yr.then)=="function")throw new Error(`Validation test of type: "${D.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(H){qt(H);return}_e(pe)}return e.OPTIONS=n,e}function Zl(n,e,t,r=t){let s,i,o;return e?(pt.forEach(e,(a,c,u)=>{let l=c?a.slice(1,a.length-1):a;n=n.resolve({context:r,parent:s,value:t});let h=n.type==="tuple",p=u?parseInt(l,10):0;if(n.innerType||h){if(h&&!u)throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${o}" must contain an index to the tuple element, e.g. "${o}[0]"`);if(t&&p>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);s=t,t=t&&t[p],n=h?n.spec.types[p]:n.innerType}if(!u){if(!n.fields||!n.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${n.type}")`);s=t,t=t&&t[l],n=n.fields[l]}i=l,o=c?"["+a+"]":"."+a}),{schema:n,parent:s,parentPath:i}):{parent:s,parentPath:e,schema:n}}class Dr extends Set{describe(){const e=[];for(const t of this.values())e.push(Et.isRef(t)?t.describe():t);return e}resolveAll(e){let t=[];for(const r of this.values())t.push(e(r));return t}clone(){return new Dr(this.values())}merge(e,t){const r=this.clone();return e.forEach(s=>r.add(s)),t.forEach(s=>r.delete(s)),r}}function Nt(n,e=new Map){if(tn(n)||!n||typeof n!="object")return n;if(e.has(n))return e.get(n);let t;if(n instanceof Date)t=new Date(n.getTime()),e.set(n,t);else if(n instanceof RegExp)t=new RegExp(n),e.set(n,t);else if(Array.isArray(n)){t=new Array(n.length),e.set(n,t);for(let r=0;r<n.length;r++)t[r]=Nt(n[r],e)}else if(n instanceof Map){t=new Map,e.set(n,t);for(const[r,s]of n.entries())t.set(r,Nt(s,e))}else if(n instanceof Set){t=new Set,e.set(n,t);for(const r of n)t.add(Nt(r,e))}else if(n instanceof Object){t={},e.set(n,t);for(const[r,s]of Object.entries(n))t[r]=Nt(s,e)}else throw Error(`Unable to clone ${n}`);return t}class ne{constructor(e){this.type=void 0,this.deps=[],this.tests=void 0,this.transforms=void 0,this.conditions=[],this._mutate=void 0,this.internalTests={},this._whitelist=new Dr,this._blacklist=new Dr,this.exclusiveTests=Object.create(null),this._typeCheck=void 0,this.spec=void 0,this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ne.notType)}),this.type=e.type,this._typeCheck=e.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,optional:!0,coerce:!0},e==null?void 0:e.spec),this.withMutation(t=>{t.nonNullable()})}get _type(){return this.type}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;const t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeCheck=this._typeCheck,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.internalTests=Object.assign({},this.internalTests),t.exclusiveTests=Object.assign({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=Nt(Object.assign({},this.spec,e)),t}label(e){let t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let r=e(this);return this._mutate=t,r}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,r=e.clone();const s=Object.assign({},t.spec,r.spec);return r.spec=s,r.internalTests=Object.assign({},t.internalTests,r.internalTests),r._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),r._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),r.tests=t.tests,r.exclusiveTests=t.exclusiveTests,r.withMutation(i=>{e.tests.forEach(o=>{i.test(o.OPTIONS)})}),r.transforms=[...t.transforms,...r.transforms],r}isType(e){return e==null?!!(this.spec.nullable&&e===null||this.spec.optional&&e===void 0):this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let r=t.conditions;t=t.clone(),t.conditions=[],t=r.reduce((s,i)=>i.resolve(s,e),t),t=t.resolve(e)}return t}resolveOptions(e){var t,r,s;return Object.assign({},e,{from:e.from||[],strict:(t=e.strict)!=null?t:this.spec.strict,abortEarly:(r=e.abortEarly)!=null?r:this.spec.abortEarly,recursive:(s=e.recursive)!=null?s:this.spec.recursive})}cast(e,t={}){let r=this.resolve(Object.assign({value:e},t)),s=t.assert==="ignore-optionality",i=r._cast(e,t);if(t.assert!==!1&&!r.isType(i)){if(s&&fe(i))return i;let o=yt(e),a=yt(i);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${r.type}".
4
4
 
5
5
  attempted value: ${o}
6
- `+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,t){let r=e===void 0?e:this.transforms.reduce((s,i)=>i.call(this,s,e,this),e);return r===void 0&&(r=this.getDefault()),r}_validate(e,t={},r,s){let{path:i,originalValue:o=e,strict:a=this.spec.strict}=t,c=e;a||(c=this._cast(c,Object.assign({assert:!1},t)));let u=[];for(let l of Object.values(this.internalTests))l&&u.push(l);this.runTests({path:i,value:c,originalValue:o,options:t,tests:u},r,l=>{if(l.length)return s(l,c);this.runTests({path:i,value:c,originalValue:o,options:t,tests:this.tests},r,s)})}runTests(e,t,r){let s=!1,{tests:i,value:o,originalValue:a,path:c,options:u}=e,l=w=>{s||(s=!0,t(w,o))},h=w=>{s||(s=!0,r(w,o))},p=i.length,f=[];if(!p)return h([]);let d={value:o,originalValue:a,path:c,options:u,schema:this};for(let w=0;w<i.length;w++){const b=i[w];b(d,l,function(R){R&&(f=f.concat(R)),--p<=0&&h(f)})}}asNestedTest({key:e,index:t,parent:r,parentPath:s,originalParent:i,options:o}){const a=e??t;if(a==null)throw TypeError("Must include `key` or `index` for nested validations");const c=typeof a=="number";let u=r[a];const l=Object.assign({},o,{strict:!0,parent:r,value:u,originalValue:i[a],key:void 0,[c?"index":"key"]:a,path:c||a.includes(".")?`${s||""}[${u?a:`"${a}"`}]`:(s?`${s}.`:"")+e});return(h,p,f)=>this.resolve(l)._validate(u,l,p,f)}validate(e,t){let r=this.resolve(Object.assign({},t,{value:e}));return new Promise((s,i)=>r._validate(e,t,(o,a)=>{ae.isError(o)&&(o.value=a),i(o)},(o,a)=>{o.length?i(new ae(o,a)):s(a)}))}validateSync(e,t){let r=this.resolve(Object.assign({},t,{value:e})),s;return r._validate(e,Object.assign({},t,{sync:!0}),(i,o)=>{throw ae.isError(i)&&(i.value=o),i},(i,o)=>{if(i.length)throw new ae(i,e);s=o}),s}isValid(e,t){return this.validate(e,t).then(()=>!0,r=>{if(ae.isError(r))return!1;throw r})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(r){if(ae.isError(r))return!1;throw r}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):Nt(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){return this.clone({strict:e})}nullability(e,t){const r=this.clone({nullable:e});return r.internalTests.nullable=At({message:t,name:"nullable",test(s){return s===null?this.schema.spec.nullable:!0}}),r}optionality(e,t){const r=this.clone({optional:e});return r.internalTests.optionality=At({message:t,name:"optionality",test(s){return s===void 0?this.schema.spec.optional:!0}}),r}optional(){return this.optionality(!0)}defined(e=Ne.defined){return this.optionality(!1,e)}nullable(){return this.nullability(!0)}nonNullable(e=Ne.notNull){return this.nullability(!1,e)}required(e=Ne.required){return this.clone().withMutation(t=>t.nonNullable(e).defined(e))}notRequired(){return this.clone().withMutation(e=>e.nullable().optional())}transform(e){let t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Ne.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let r=this.clone(),s=At(t),i=t.exclusive||t.name&&r.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(r.exclusiveTests[t.name]=!!t.exclusive),r.tests=r.tests.filter(o=>!(o.OPTIONS.name===t.name&&(i||o.OPTIONS.test===s.OPTIONS.test))),r.tests.push(s),r}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let r=this.clone(),s=lo(e).map(i=>new Et(i));return s.forEach(i=>{i.isSibling&&r.deps.push(i.key)}),r.conditions.push(typeof t=="function"?new Fr(s,t):Fr.fromOptions(s,t)),r}typeError(e){let t=this.clone();return t.internalTests.typeError=At({message:e,name:"typeError",test(r){return!fe(r)&&!this.schema._typeCheck(r)?this.createError({params:{type:this.schema.type}}):!0}}),t}oneOf(e,t=Ne.oneOf){let r=this.clone();return e.forEach(s=>{r._whitelist.add(s),r._blacklist.delete(s)}),r.internalTests.whiteList=At({message:t,name:"oneOf",skipAbsent:!0,test(s){let i=this.schema._whitelist,o=i.resolveAll(this.resolve);return o.includes(s)?!0:this.createError({params:{values:Array.from(i).join(", "),resolved:o}})}}),r}notOneOf(e,t=Ne.notOneOf){let r=this.clone();return e.forEach(s=>{r._blacklist.add(s),r._whitelist.delete(s)}),r.internalTests.blacklist=At({message:t,name:"notOneOf",test(s){let i=this.schema._blacklist,o=i.resolveAll(this.resolve);return o.includes(s)?this.createError({params:{values:Array.from(i).join(", "),resolved:o}}):!0}}),r}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(e){const t=(e?this.resolve(e):this).clone(),{label:r,meta:s,optional:i,nullable:o}=t.spec;return{meta:s,label:r,optional:i,nullable:o,default:t.getDefault(e),type:t.type,oneOf:t._whitelist.describe(),notOneOf:t._blacklist.describe(),tests:t.tests.map(c=>({name:c.OPTIONS.name,params:c.OPTIONS.params})).filter((c,u,l)=>l.findIndex(h=>h.name===c.name)===u)}}}ne.prototype.__isYupSchema__=!0;for(const n of["validate","validateSync"])ne.prototype[`${n}At`]=function(e,t,r={}){const{parent:s,parentPath:i,schema:o}=Zl(this,e,t,r.context);return o[n](s&&s[i],Object.assign({},r,{parent:s,path:e}))};for(const n of["equals","is"])ne.prototype[n]=ne.prototype.oneOf;for(const n of["not","nope"])ne.prototype[n]=ne.prototype.notOneOf;const Yl=()=>!0;function ho(n){return new fo(n)}class fo extends ne{constructor(e){super(typeof e=="function"?{type:"mixed",check:e}:Object.assign({type:"mixed",check:Yl},e))}}ho.prototype=fo.prototype;function po(){return new yo}class yo extends ne{constructor(){super({type:"boolean",check(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(r.spec.coerce&&!r.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}isTrue(e=jn.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return fe(t)||t===!0}})}isFalse(e=jn.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return fe(t)||t===!1}})}default(e){return super.default(e)}defined(e){return super.defined(e)}optional(){return super.optional()}required(e){return super.required(e)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(e){return super.nonNullable(e)}strip(e){return super.strip(e)}}po.prototype=yo.prototype;let Ql=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,eh=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,th=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,rh=n=>fe(n)||n===n.trim(),nh={}.toString();function j(){return new mo}class mo extends ne{constructor(){super({type:"string",check(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(!r.spec.coerce||r.isType(e)||Array.isArray(e))return e;const s=e!=null&&e.toString?e.toString():e;return s===nh?e:s})})}required(e){return super.required(e).withMutation(t=>t.test({message:e||Ne.required,name:"required",skipAbsent:!0,test:r=>!!r.length}))}notRequired(){return super.notRequired().withMutation(e=>(e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e))}length(e,t=ye.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(r){return r.length===this.resolve(e)}})}min(e,t=ye.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r.length>=this.resolve(e)}})}max(e,t=ye.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},skipAbsent:!0,test(r){return r.length<=this.resolve(e)}})}matches(e,t){let r=!1,s,i;return t&&(typeof t=="object"?{excludeEmptyString:r=!1,message:s,name:i}=t:s=t),this.test({name:i||"matches",message:s||ye.matches,params:{regex:e},skipAbsent:!0,test:o=>o===""&&r||o.search(e)!==-1})}email(e=ye.email){return this.matches(Ql,{name:"email",message:e,excludeEmptyString:!0})}url(e=ye.url){return this.matches(eh,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ye.uuid){return this.matches(th,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ye.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:rh})}lowercase(e=ye.lowercase){return this.transform(t=>fe(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:t=>fe(t)||t===t.toLowerCase()})}uppercase(e=ye.uppercase){return this.transform(t=>fe(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:t=>fe(t)||t===t.toUpperCase()})}}j.prototype=mo.prototype;let sh=n=>n!=+n;function de(){return new go}class go extends ne{constructor(){super({type:"number",check(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!sh(e)}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(!r.spec.coerce)return e;let s=e;if(typeof s=="string"){if(s=s.replace(/\s/g,""),s==="")return NaN;s=+s}return r.isType(s)?s:parseFloat(s)})})}min(e,t=Ge.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r>=this.resolve(e)}})}max(e,t=Ge.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(r){return r<=this.resolve(e)}})}lessThan(e,t=Ge.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},skipAbsent:!0,test(r){return r<this.resolve(e)}})}moreThan(e,t=Ge.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},skipAbsent:!0,test(r){return r>this.resolve(e)}})}positive(e=Ge.positive){return this.moreThan(0,e)}negative(e=Ge.negative){return this.lessThan(0,e)}integer(e=Ge.integer){return this.test({name:"integer",message:e,skipAbsent:!0,test:t=>Number.isInteger(t)})}truncate(){return this.transform(e=>fe(e)?e:e|0)}round(e){var t;let r=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(r.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+r.join(", "));return this.transform(s=>fe(s)?s:Math[e](s))}}de.prototype=go.prototype;var ih=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function oh(n){var e=[1,4,5,6,7,10,11],t=0,r,s;if(s=ih.exec(n)){for(var i=0,o;o=e[i];++i)s[o]=+s[o]||0;s[2]=(+s[2]||1)-1,s[3]=+s[3]||1,s[7]=s[7]?String(s[7]).substr(0,3):0,(s[8]===void 0||s[8]==="")&&(s[9]===void 0||s[9]==="")?r=+new Date(s[1],s[2],s[3],s[4],s[5],s[6],s[7]):(s[8]!=="Z"&&s[9]!==void 0&&(t=s[10]*60+s[11],s[9]==="+"&&(t=0-t)),r=Date.UTC(s[1],s[2],s[3],s[4],s[5]+t,s[6],s[7]))}else r=Date.parse?Date.parse(n):NaN;return r}let ah=new Date(""),ch=n=>Object.prototype.toString.call(n)==="[object Date]";class rn extends ne{constructor(){super({type:"date",check(e){return ch(e)&&!isNaN(e.getTime())}}),this.withMutation(()=>{this.transform((e,t,r)=>!r.spec.coerce||r.isType(e)?e:(e=oh(e),isNaN(e)?rn.INVALID_DATE:new Date(e)))})}prepareParam(e,t){let r;if(Et.isRef(e))r=e;else{let s=this.cast(e);if(!this._typeCheck(s))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);r=s}return r}min(e,t=Ln.min){let r=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(s){return s>=this.resolve(r)}})}max(e,t=Ln.max){let r=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(s){return s<=this.resolve(r)}})}}rn.INVALID_DATE=ah;rn.prototype;function uh(n,e=[]){let t=[],r=new Set,s=new Set(e.map(([o,a])=>`${o}-${a}`));function i(o,a){let c=pt.split(o)[0];r.add(c),s.has(`${a}-${c}`)||t.push([a,c])}for(const o of Object.keys(n)){let a=n[o];r.add(o),Et.isRef(a)&&a.isSibling?i(a.path,o):tn(a)&&"deps"in a&&a.deps.forEach(c=>i(c,o))}return Ir.array(Array.from(r),t).reverse()}function ni(n,e){let t=1/0;return n.some((r,s)=>{var i;if((i=e.path)!=null&&i.includes(r))return t=s,!0}),t}function wo(n){return(e,t)=>ni(n,e)-ni(n,t)}const bo=(n,e,t)=>{if(typeof n!="string")return n;let r=n;try{r=JSON.parse(n)}catch{}return t.isType(r)?r:n};function Pr(n){if("fields"in n){const e={};for(const[t,r]of Object.entries(n.fields))e[t]=Pr(r);return n.setFields(e)}if(n.type==="array"){const e=n.optional();return e.innerType&&(e.innerType=Pr(e.innerType)),e}return n.type==="tuple"?n.optional().clone({types:n.spec.types.map(Pr)}):"optional"in n?n.optional():n}const lh=(n,e)=>{const t=[...pt.normalizePath(e)];if(t.length===1)return t[0]in n;let r=t.pop(),s=pt.getter(pt.join(t),!0)(n);return!!(s&&r in s)};let si=n=>Object.prototype.toString.call(n)==="[object Object]";function hh(n,e){let t=Object.keys(n.fields);return Object.keys(e).filter(r=>t.indexOf(r)===-1)}const fh=wo([]);function et(n){return new vo(n)}class vo extends ne{constructor(e){super({type:"object",check(t){return si(t)||typeof t=="function"}}),this.fields=Object.create(null),this._sortErrors=fh,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{e&&this.shape(e)})}_cast(e,t={}){var r;let s=super._cast(e,t);if(s===void 0)return this.getDefault();if(!this._typeCheck(s))return s;let i=this.fields,o=(r=t.stripUnknown)!=null?r:this.spec.noUnknown,a=[].concat(this._nodes,Object.keys(s).filter(h=>!this._nodes.includes(h))),c={},u=Object.assign({},t,{parent:c,__validating:t.__validating||!1}),l=!1;for(const h of a){let p=i[h],f=h in s;if(p){let d,w=s[h];u.path=(t.path?`${t.path}.`:"")+h,p=p.resolve({value:w,context:t.context,parent:c});let b=p instanceof ne?p.spec:void 0,O=b==null?void 0:b.strict;if(b!=null&&b.strip){l=l||h in s;continue}d=!t.__validating||!O?p.cast(s[h],u):s[h],d!==void 0&&(c[h]=d)}else f&&!o&&(c[h]=s[h]);(f!==h in c||c[h]!==s[h])&&(l=!0)}return l?c:s}_validate(e,t={},r,s){let{from:i=[],originalValue:o=e,recursive:a=this.spec.recursive}=t;t.from=[{schema:this,value:o},...i],t.__validating=!0,t.originalValue=o,super._validate(e,t,r,(c,u)=>{if(!a||!si(u)){s(c,u);return}o=o||u;let l=[];for(let h of this._nodes){let p=this.fields[h];!p||Et.isRef(p)||l.push(p.asNestedTest({options:t,key:h,parent:u,parentPath:t.path,originalParent:o}))}this.runTests({tests:l,value:u,originalValue:o,options:t},r,h=>{s(h.sort(this._sortErrors).concat(c),u)})})}clone(e){const t=super.clone(e);return t.fields=Object.assign({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),r=t.fields;for(let[s,i]of Object.entries(this.fields)){const o=r[s];r[s]=o===void 0?i:o}return t.withMutation(s=>s.setFields(r,this._excludedEdges))}_getDefault(){if("default"in this.spec)return super._getDefault();if(!this._nodes.length)return;let e={};return this._nodes.forEach(t=>{const r=this.fields[t];e[t]=r&&"getDefault"in r?r.getDefault():void 0}),e}setFields(e,t){let r=this.clone();return r.fields=e,r._nodes=uh(e,t),r._sortErrors=wo(Object.keys(e)),t&&(r._excludedEdges=t),r}shape(e,t=[]){return this.clone().withMutation(r=>{let s=r._excludedEdges;return t.length&&(Array.isArray(t[0])||(t=[t]),s=[...r._excludedEdges,...t]),r.setFields(Object.assign(r.fields,e),s)})}partial(){const e={};for(const[t,r]of Object.entries(this.fields))e[t]="optional"in r&&r.optional instanceof Function?r.optional():r;return this.setFields(e)}deepPartial(){return Pr(this)}pick(e){const t={};for(const r of e)this.fields[r]&&(t[r]=this.fields[r]);return this.setFields(t)}omit(e){const t=Object.assign({},this.fields);for(const r of e)delete t[r];return this.setFields(t)}from(e,t,r){let s=pt.getter(e,!0);return this.transform(i=>{if(!i)return i;let o=i;return lh(i,e)&&(o=Object.assign({},i),r||delete o[e],o[t]=s(i)),o})}json(){return this.transform(bo)}noUnknown(e=!0,t=Bn.noUnknown){typeof e!="boolean"&&(t=e,e=!0);let r=this.test({name:"noUnknown",exclusive:!0,message:t,test(s){if(s==null)return!0;const i=hh(this.schema,s);return!e||i.length===0||this.createError({params:{unknown:i.join(", ")}})}});return r.spec.noUnknown=e,r}unknown(e=!0,t=Bn.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>{if(!t)return t;const r={};for(const s of Object.keys(t))r[e(s)]=t[s];return r})}camelCase(){return this.transformKeys(Tn.camelCase)}snakeCase(){return this.transformKeys(Tn.snakeCase)}constantCase(){return this.transformKeys(e=>Tn.snakeCase(e).toUpperCase())}describe(e){let t=super.describe(e);t.fields={};for(const[s,i]of Object.entries(this.fields)){var r;let o=e;(r=o)!=null&&r.value&&(o=Object.assign({},o,{parent:o.value,value:o.value[s]})),t.fields[s]=i.describe(o)}return t}}et.prototype=vo.prototype;function Mt(n){return new _o(n)}class _o extends ne{constructor(e){super({type:"array",check(t){return Array.isArray(t)}}),this.innerType=void 0,this.innerType=e}_cast(e,t){const r=super._cast(e,t);if(!this._typeCheck(r)||!this.innerType)return r;let s=!1;const i=r.map((o,a)=>{const c=this.innerType.cast(o,Object.assign({},t,{path:`${t.path||""}[${a}]`}));return c!==o&&(s=!0),c});return s?i:r}_validate(e,t={},r,s){var i;let o=this.innerType,a=(i=t.recursive)!=null?i:this.spec.recursive;t.originalValue!=null&&t.originalValue,super._validate(e,t,r,(c,u)=>{var l;if(!a||!o||!this._typeCheck(u)){s(c,u);return}let h=new Array(u.length);for(let f=0;f<u.length;f++){var p;h[f]=o.asNestedTest({options:t,index:f,parent:u,parentPath:t.path,originalParent:(p=t.originalValue)!=null?p:e})}this.runTests({value:u,tests:h,originalValue:(l=t.originalValue)!=null?l:e,options:t},r,f=>s(f.concat(c),u))})}clone(e){const t=super.clone(e);return t.innerType=this.innerType,t}json(){return this.transform(bo)}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!tn(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+yt(e));return t.innerType=e,t}length(e,t=Rr.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(r){return r.length===this.resolve(e)}})}min(e,t){return t=t||Rr.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r.length>=this.resolve(e)}})}max(e,t){return t=t||Rr.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(r){return r.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(r,s,i)=>!e(r,s,i):r=>!!r;return this.transform(r=>r!=null?r.filter(t):r)}describe(e){let t=super.describe(e);if(this.innerType){var r;let s=e;(r=s)!=null&&r.value&&(s=Object.assign({},s,{parent:s.value,value:s.value[0]})),t.innerType=this.innerType.describe(e)}return t}}Mt.prototype=_o.prototype;const dh="notify_discord_webhook";class ys{static SimpleToRaw(e){return{name:"",notify_type:dh,notify:e}}static validateCreate(e){const t=/^(https?|ftp):\/\/(-\.)?([^\s/?\.#]+\.?)+([^\s\.?#]+)?(\?\S*)?$/;return et({url:j().matches(t,"url is not a valid url").required(),username:j(),avatar_url:j().matches(t,"url is not a valid url"),message:j().required()}).validate(e)}}class Eo{static SimpleToRaw(e,t){switch(e){case"Discord":return ys.SimpleToRaw(t)}}}const ph="handler_function_call";class ms{static SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:ph,handler:r}}static validateCreate(e){const t=([s],i)=>s==="true"?i.notRequired():i.required();return et({address:j().required(),abi:Mt().required(),nBlocks:de().min(10),condition:j().oneOf([">",">=","<","<=","=","true"]),constant:de().min(0).when("condition",t),responseArgIndex:de().min(0).when("condition",t),responseArgDecimals:de().min(0).when("condition",t)}).validate(e)}}const yh="handler_onchain_event";class gs{static SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:yh,handler:r}}static validateCreate(e){const t=([s],i)=>s==="true"?i.notRequired():i.required();return et({address:j().required(),event:j().required(),abi:Mt().required(),condition:j().oneOf([">",">=","<","<=","=","true"]),constant:de().min(0).when("condition",t),paramsIndex:de().min(0).when("condition",t),paramsDecimals:de().min(0).when("condition",t)}).validate(e)}}const mh="6.1.0";function gh(n,e,t){const r=e.split("|").map(i=>i.trim());for(let i=0;i<r.length;i++)switch(e){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof n===e)return}const s=new Error(`invalid value for type ${e}`);throw s.code="INVALID_ARGUMENT",s.argument=`value.${t}`,s.value=n,s}async function xo(n){const e=Object.keys(n);return(await Promise.all(e.map(r=>Promise.resolve(n[r])))).reduce((r,s,i)=>(r[e[i]]=s,r),{})}function k(n,e,t){for(let r in e){let s=e[r];const i=t?t[r]:null;i&&gh(s,i,r),Object.defineProperty(n,r,{enumerable:!0,value:s,writable:!1})}}function $t(n){if(n==null)return"null";if(Array.isArray(n))return"[ "+n.map($t).join(", ")+" ]";if(n instanceof Uint8Array){const e="0123456789abcdef";let t="0x";for(let r=0;r<n.length;r++)t+=e[n[r]>>4],t+=e[n[r]&15];return t}if(typeof n=="object"&&typeof n.toJSON=="function")return $t(n.toJSON());switch(typeof n){case"boolean":case"symbol":return n.toString();case"bigint":return BigInt(n).toString();case"number":return n.toString();case"string":return JSON.stringify(n);case"object":{const e=Object.keys(n);return e.sort(),"{ "+e.map(t=>`${$t(t)}: ${$t(n[t])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Ur(n,e){return n&&n.code===e}function Oo(n){return Ur(n,"CALL_EXCEPTION")}function nn(n,e,t){{const s=[];if(t){if("message"in t||"code"in t||"name"in t)throw new Error(`value will overwrite populated values: ${$t(t)}`);for(const i in t){const o=t[i];s.push(i+"="+$t(o))}}s.push(`code=${e}`),s.push(`version=${mh}`),s.length&&(n+=" ("+s.join(", ")+")")}let r;switch(e){case"INVALID_ARGUMENT":r=new TypeError(n);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":r=new RangeError(n);break;default:r=new Error(n)}return k(r,{code:e}),t&&Object.assign(r,t),r}function T(n,e,t,r){if(!n)throw nn(e,t,r)}function E(n,e,t,r){T(n,e,"INVALID_ARGUMENT",{argument:t,value:r})}function To(n,e,t){t==null&&(t=""),t&&(t=": "+t),T(n>=e,"missing arguemnt"+t,"MISSING_ARGUMENT",{count:n,expectedCount:e}),T(n<=e,"too many arguemnts"+t,"UNEXPECTED_ARGUMENT",{count:n,expectedCount:e})}const wh=["NFD","NFC","NFKD","NFKC"].reduce((n,e)=>{try{if("test".normalize(e)!=="test")throw new Error("bad");if(e==="NFD"){const t=String.fromCharCode(233).normalize("NFD"),r=String.fromCharCode(101,769);if(t!==r)throw new Error("broken")}n.push(e)}catch{}return n},[]);function bh(n){T(wh.indexOf(n)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:n}})}function ws(n,e,t){if(t==null&&(t=""),n!==e){let r=t,s="new";t&&(r+=".",s+=" "+t),T(!1,`private constructor; use ${r}from* methods`,"UNSUPPORTED_OPERATION",{operation:s})}}function Ao(n,e,t){if(n instanceof Uint8Array)return t?new Uint8Array(n):n;if(typeof n=="string"&&n.match(/^0x([0-9a-f][0-9a-f])*$/i)){const r=new Uint8Array((n.length-2)/2);let s=2;for(let i=0;i<r.length;i++)r[i]=parseInt(n.substring(s,s+2),16),s+=2;return r}E(!1,"invalid BytesLike value",e||"value",n)}function He(n,e){return Ao(n,e,!1)}function je(n,e){return Ao(n,e,!0)}function Ye(n,e){return!(typeof n!="string"||!n.match(/^0x[0-9A-Fa-f]*$/)||typeof e=="number"&&n.length!==2+2*e||e===!0&&n.length%2!==0)}const ii="0123456789abcdef";function q(n){const e=He(n);let t="0x";for(let r=0;r<e.length;r++){const s=e[r];t+=ii[(s&240)>>4]+ii[s&15]}return t}function Ft(n){return"0x"+n.map(e=>q(e).substring(2)).join("")}function St(n,e,t){const r=He(n);return t!=null&&t>r.length&&T(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:t}),q(r.slice(e??0,t??r.length))}function vh(n,e,t){const r=He(n);T(e>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:e,offset:e+1});const s=new Uint8Array(e);return s.fill(0),t?s.set(r,e-r.length):s.set(r,0),q(s)}function _h(n,e){return vh(n,e,!0)}const sn=BigInt(0),we=BigInt(1),Ct=9007199254740991;function Eh(n,e){const t=on(n,"value"),r=BigInt(Ve(e,"width"));if(T(t>>r===sn,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:n}),t>>r-we){const s=(we<<r)-we;return-((~t&s)+we)}return t}function xh(n,e){let t=xt(n,"value");const r=BigInt(Ve(e,"width")),s=we<<r-we;if(t<sn){t=-t,T(t<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});const i=(we<<r)-we;return(~t&i)+we}else T(t<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});return t}function vr(n,e){const t=on(n,"value"),r=BigInt(Ve(e,"bits"));return t&(we<<r)-we}function xt(n,e){switch(typeof n){case"bigint":return n;case"number":return E(Number.isInteger(n),"underflow",e||"value",n),E(n>=-Ct&&n<=Ct,"overflow",e||"value",n),BigInt(n);case"string":try{if(n==="")throw new Error("empty string");return n[0]==="-"&&n[1]!=="-"?-BigInt(n.substring(1)):BigInt(n)}catch(t){E(!1,`invalid BigNumberish string: ${t.message}`,e||"value",n)}}E(!1,"invalid BigNumberish value",e||"value",n)}function on(n,e){const t=xt(n,e);return T(t>=sn,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:n}),t}const oi="0123456789abcdef";function So(n){if(n instanceof Uint8Array){let e="0x0";for(const t of n)e+=oi[t>>4],e+=oi[t&15];return BigInt(e)}return xt(n)}function Ve(n,e){switch(typeof n){case"bigint":return E(n>=-Ct&&n<=Ct,"overflow",e||"value",n),Number(n);case"number":return E(Number.isInteger(n),"underflow",e||"value",n),E(n>=-Ct&&n<=Ct,"overflow",e||"value",n),n;case"string":try{if(n==="")throw new Error("empty string");return Ve(BigInt(n),e)}catch(t){E(!1,`invalid numeric string: ${t.message}`,e||"value",n)}}E(!1,"invalid numeric value",e||"value",n)}function Oh(n){return Ve(So(n))}function ko(n,e){let r=on(n,"value").toString(16);if(e==null)r.length%2&&(r="0"+r);else{const s=Ve(e,"width");for(T(s*2>=r.length,`value exceeds width (${s} bits)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:n});r.length<s*2;)r="0"+r}return"0x"+r}function Th(n){const e=on(n,"value");if(e===sn)return new Uint8Array([]);let t=e.toString(16);t.length%2&&(t="0"+t);const r=new Uint8Array(t.length/2);for(let s=0;s<r.length;s++){const i=s*2;r[s]=parseInt(t.substring(i,i+2),16)}return r}var Dt;class Ah{constructor(e,t,r){m(this,"filter");m(this,"emitter");U(this,Dt,void 0);C(this,Dt,t),k(this,{emitter:e,filter:r})}async removeListener(){v(this,Dt)!=null&&await this.emitter.off(this.filter,v(this,Dt))}}Dt=new WeakMap;function Sh(n,e,t,r,s){E(!1,`invalid codepoint at offset ${e}; ${n}`,"bytes",t)}function Ro(n,e,t,r,s){if(n==="BAD_PREFIX"||n==="UNEXPECTED_CONTINUE"){let i=0;for(let o=e+1;o<t.length&&t[o]>>6===2;o++)i++;return i}return n==="OVERRUN"?t.length-e-1:0}function kh(n,e,t,r,s){return n==="OVERLONG"?(E(typeof s=="number","invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),Ro(n,e,t))}const Rh=Object.freeze({error:Sh,ignore:Ro,replace:kh});function Ph(n,e){e==null&&(e=Rh.error);const t=He(n,"bytes"),r=[];let s=0;for(;s<t.length;){const i=t[s++];if(!(i>>7)){r.push(i);continue}let o=null,a=null;if((i&224)===192)o=1,a=127;else if((i&240)===224)o=2,a=2047;else if((i&248)===240)o=3,a=65535;else{(i&192)===128?s+=e("UNEXPECTED_CONTINUE",s-1,t,r):s+=e("BAD_PREFIX",s-1,t,r);continue}if(s-1+o>=t.length){s+=e("OVERRUN",s-1,t,r);continue}let c=i&(1<<8-o-1)-1;for(let u=0;u<o;u++){let l=t[s];if((l&192)!=128){s+=e("MISSING_CONTINUE",s,t,r),c=null;break}c=c<<6|l&63,s++}if(c!==null){if(c>1114111){s+=e("OUT_OF_RANGE",s-1-o,t,r,c);continue}if(c>=55296&&c<=57343){s+=e("UTF16_SURROGATE",s-1-o,t,r,c);continue}if(c<=a){s+=e("OVERLONG",s-1-o,t,r,c);continue}r.push(c)}}return r}function Po(n,e){e!=null&&(bh(e),n=n.normalize(e));let t=[];for(let r=0;r<n.length;r++){const s=n.charCodeAt(r);if(s<128)t.push(s);else if(s<2048)t.push(s>>6|192),t.push(s&63|128);else if((s&64512)==55296){r++;const i=n.charCodeAt(r);E(r<n.length&&(i&64512)===56320,"invalid surrogate pair","str",n);const o=65536+((s&1023)<<10)+(i&1023);t.push(o>>18|240),t.push(o>>12&63|128),t.push(o>>6&63|128),t.push(o&63|128)}else t.push(s>>12|224),t.push(s>>6&63|128),t.push(s&63|128)}return new Uint8Array(t)}function Nh(n){return n.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join("")}function $h(n,e){return Nh(Ph(n,e))}const Q=32,Hn=new Uint8Array(Q),Ch=["then"],_r={};function Er(n,e){const t=new Error(`deferred error during ABI decoding triggered accessing ${n}`);throw t.error=e,t}var Ke;const Qt=class extends Array{constructor(...t){const r=t[0];let s=t[1],i=(t[2]||[]).slice(),o=!0;r!==_r&&(s=t,i=[],o=!1);super(s.length);U(this,Ke,void 0);s.forEach((c,u)=>{this[u]=c});const a=i.reduce((c,u)=>(typeof u=="string"&&c.set(u,(c.get(u)||0)+1),c),new Map);if(C(this,Ke,Object.freeze(s.map((c,u)=>{const l=i[u];return l!=null&&a.get(l)===1?l:null}))),!!o)return Object.freeze(this),new Proxy(this,{get:(c,u,l)=>{if(typeof u=="string"){if(u.match(/^[0-9]+$/)){const p=Ve(u,"%index");if(p<0||p>=this.length)throw new RangeError("out of result range");const f=c[p];return f instanceof Error&&Er(`index ${p}`,f),f}if(Ch.indexOf(u)>=0)return Reflect.get(c,u,l);const h=c[u];if(h instanceof Function)return function(...p){return h.apply(this===l?c:this,p)};if(!(u in c))return c.getValue.apply(this===l?c:this,[u])}return Reflect.get(c,u,l)}})}toArray(){const t=[];return this.forEach((r,s)=>{r instanceof Error&&Er(`index ${s}`,r),t.push(r)}),t}toObject(){return v(this,Ke).reduce((t,r,s)=>(T(r!=null,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),r in t||(t[r]=this.getValue(r)),t),{})}slice(t,r){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),r==null&&(r=this.length),r<0&&(r+=this.length,r<0&&(r=0)),r>this.length&&(r=this.length);const s=[],i=[];for(let o=t;o<r;o++)s.push(this[o]),i.push(v(this,Ke)[o]);return new Qt(_r,s,i)}filter(t,r){const s=[],i=[];for(let o=0;o<this.length;o++){const a=this[o];a instanceof Error&&Er(`index ${o}`,a),t.call(r,a,o,this)&&(s.push(a),i.push(v(this,Ke)[o]))}return new Qt(_r,s,i)}getValue(t){const r=v(this,Ke).indexOf(t);if(r===-1)return;const s=this[r];return s instanceof Error&&Er(`property ${JSON.stringify(t)}`,s.error),s}static fromItems(t,r){return new Qt(_r,t,r)}};let Lr=Qt;Ke=new WeakMap;function ai(n){let e=Th(n);return T(e.length<=Q,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:Q,offset:e.length}),e.length!==Q&&(e=je(Ft([Hn.slice(e.length%Q),e]))),e}class qe{constructor(e,t,r,s){m(this,"name");m(this,"type");m(this,"localName");m(this,"dynamic");k(this,{name:e,type:t,localName:r,dynamic:s},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(e,t){E(!1,e,this.localName,t)}}var De,ft,Ut,Nr;class Mn{constructor(){U(this,Ut);U(this,De,void 0);U(this,ft,void 0);C(this,De,[]),C(this,ft,0)}get data(){return Ft(v(this,De))}get length(){return v(this,ft)}appendWriter(e){return z(this,Ut,Nr).call(this,je(e.data))}writeBytes(e){let t=je(e);const r=t.length%Q;return r&&(t=je(Ft([t,Hn.slice(r)]))),z(this,Ut,Nr).call(this,t)}writeValue(e){return z(this,Ut,Nr).call(this,ai(e))}writeUpdatableValue(){const e=v(this,De).length;return v(this,De).push(Hn),C(this,ft,v(this,ft)+Q),t=>{v(this,De)[e]=ai(t)}}}De=new WeakMap,ft=new WeakMap,Ut=new WeakSet,Nr=function(e){return v(this,De).push(e),C(this,ft,v(this,ft)+e.length),e.length};var oe,he,Hr,No;const Ps=class{constructor(e,t){U(this,Hr);m(this,"allowLoose");U(this,oe,void 0);U(this,he,void 0);k(this,{allowLoose:!!t}),C(this,oe,je(e)),C(this,he,0)}get data(){return q(v(this,oe))}get dataLength(){return v(this,oe).length}get consumed(){return v(this,he)}get bytes(){return new Uint8Array(v(this,oe))}subReader(e){return new Ps(v(this,oe).slice(v(this,he)+e),this.allowLoose)}readBytes(e,t){let r=z(this,Hr,No).call(this,0,e,!!t);return C(this,he,v(this,he)+r.length),r.slice(0,e)}readValue(){return So(this.readBytes(Q))}readIndex(){return Oh(this.readBytes(Q))}};let zn=Ps;oe=new WeakMap,he=new WeakMap,Hr=new WeakSet,No=function(e,t,r){let s=Math.ceil(t/Q)*Q;return v(this,he)+s>v(this,oe).length&&(this.allowLoose&&r&&v(this,he)+t<=v(this,oe).length?s=t:T(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:je(v(this,oe)),length:v(this,oe).length,offset:v(this,he)+s})),v(this,oe).slice(v(this,he),v(this,he)+s)};function Vn(n){if(!Number.isSafeInteger(n)||n<0)throw new Error(`Wrong positive integer: ${n}`)}function Ih(n){if(typeof n!="boolean")throw new Error(`Expected boolean, not ${n}`)}function $o(n,...e){if(!(n instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(e.length>0&&!e.includes(n.length))throw new TypeError(`Expected Uint8Array of length ${e}, not of length=${n.length}`)}function Fh(n){if(typeof n!="function"||typeof n.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Vn(n.outputLen),Vn(n.blockLen)}function Dh(n,e=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(e&&n.finished)throw new Error("Hash#digest() has already been called")}function Uh(n,e){$o(n);const t=e.outputLen;if(n.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}const kt={number:Vn,bool:Ih,bytes:$o,hash:Fh,exists:Dh,output:Uh};/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Lh=n=>new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4)),jh=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!jh)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(n,e)=>e.toString(16).padStart(2,"0"));function Bh(n){if(typeof n!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof n}`);return new TextEncoder().encode(n)}function bs(n){if(typeof n=="string"&&(n=Bh(n)),!(n instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof n})`);return n}class Hh{clone(){return this._cloneInto()}}function Mh(n){const e=r=>n().update(bs(r)).digest(),t=n();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>n(),e}function zh(n){const e=(r,s)=>n(s).update(bs(r)).digest(),t=n({});return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=r=>n(r),e}const xr=BigInt(2**32-1),qn=BigInt(32);function Co(n,e=!1){return e?{h:Number(n&xr),l:Number(n>>qn&xr)}:{h:Number(n>>qn&xr)|0,l:Number(n&xr)|0}}function Vh(n,e=!1){let t=new Uint32Array(n.length),r=new Uint32Array(n.length);for(let s=0;s<n.length;s++){const{h:i,l:o}=Co(n[s],e);[t[s],r[s]]=[i,o]}return[t,r]}const qh=(n,e)=>BigInt(n>>>0)<<qn|BigInt(e>>>0),Jh=(n,e,t)=>n>>>t,Gh=(n,e,t)=>n<<32-t|e>>>t,Wh=(n,e,t)=>n>>>t|e<<32-t,Kh=(n,e,t)=>n<<32-t|e>>>t,Xh=(n,e,t)=>n<<64-t|e>>>t-32,Zh=(n,e,t)=>n>>>t-32|e<<64-t,Yh=(n,e)=>e,Qh=(n,e)=>n,ef=(n,e,t)=>n<<t|e>>>32-t,tf=(n,e,t)=>e<<t|n>>>32-t,rf=(n,e,t)=>e<<t-32|n>>>64-t,nf=(n,e,t)=>n<<t-32|e>>>64-t;function sf(n,e,t,r){const s=(e>>>0)+(r>>>0);return{h:n+t+(s/2**32|0)|0,l:s|0}}const of=(n,e,t)=>(n>>>0)+(e>>>0)+(t>>>0),af=(n,e,t,r)=>e+t+r+(n/2**32|0)|0,cf=(n,e,t,r)=>(n>>>0)+(e>>>0)+(t>>>0)+(r>>>0),uf=(n,e,t,r,s)=>e+t+r+s+(n/2**32|0)|0,lf=(n,e,t,r,s)=>(n>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(s>>>0),hf=(n,e,t,r,s,i)=>e+t+r+s+i+(n/2**32|0)|0,rr={fromBig:Co,split:Vh,toBig:qh,shrSH:Jh,shrSL:Gh,rotrSH:Wh,rotrSL:Kh,rotrBH:Xh,rotrBL:Zh,rotr32H:Yh,rotr32L:Qh,rotlSH:ef,rotlSL:tf,rotlBH:rf,rotlBL:nf,add:sf,add3L:of,add3H:af,add4L:cf,add4H:uf,add5H:hf,add5L:lf},[Io,Fo,Do]=[[],[],[]],ff=BigInt(0),Kt=BigInt(1),df=BigInt(2),pf=BigInt(7),yf=BigInt(256),mf=BigInt(113);for(let n=0,e=Kt,t=1,r=0;n<24;n++){[t,r]=[r,(2*t+3*r)%5],Io.push(2*(5*r+t)),Fo.push((n+1)*(n+2)/2%64);let s=ff;for(let i=0;i<7;i++)e=(e<<Kt^(e>>pf)*mf)%yf,e&df&&(s^=Kt<<(Kt<<BigInt(i))-Kt);Do.push(s)}const[gf,wf]=rr.split(Do,!0),ci=(n,e,t)=>t>32?rr.rotlBH(n,e,t):rr.rotlSH(n,e,t),ui=(n,e,t)=>t>32?rr.rotlBL(n,e,t):rr.rotlSL(n,e,t);function bf(n,e=24){const t=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let o=0;o<10;o++)t[o]=n[o]^n[o+10]^n[o+20]^n[o+30]^n[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=t[c],l=t[c+1],h=ci(u,l,1)^t[a],p=ui(u,l,1)^t[a+1];for(let f=0;f<50;f+=10)n[o+f]^=h,n[o+f+1]^=p}let s=n[2],i=n[3];for(let o=0;o<24;o++){const a=Fo[o],c=ci(s,i,a),u=ui(s,i,a),l=Io[o];s=n[l],i=n[l+1],n[l]=c,n[l+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=n[o+a];for(let a=0;a<10;a++)n[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}n[0]^=gf[r],n[1]^=wf[r]}t.fill(0)}class an extends Hh{constructor(e,t,r,s=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=s,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,kt.number(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Lh(this.state)}keccak(){bf(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){kt.exists(this);const{blockLen:t,state:r}=this;e=bs(e);const s=e.length;for(let i=0;i<s;){const o=Math.min(t-this.pos,s-i);for(let a=0;a<o;a++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:r,blockLen:s}=this;e[r]^=t,t&128&&r===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){kt.exists(this,!1),kt.bytes(e),this.finish();const t=this.state,{blockLen:r}=this;for(let s=0,i=e.length;s<i;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,i-s);e.set(t.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return kt.number(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(kt.output(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:s,rounds:i,enableXOF:o}=this;return e||(e=new an(t,r,s,o,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=s,e.enableXOF=o,e.destroyed=this.destroyed,e}}const rt=(n,e,t)=>Mh(()=>new an(e,n,t));rt(6,144,224/8);rt(6,136,256/8);rt(6,104,384/8);rt(6,72,512/8);rt(1,144,224/8);const vf=rt(1,136,256/8);rt(1,104,384/8);rt(1,72,512/8);const Uo=(n,e,t)=>zh((r={})=>new an(e,n,r.dkLen===void 0?t:r.dkLen,!0));Uo(31,168,128/8);Uo(31,136,256/8);let Lo=!1;const jo=function(n){return vf(n)};let Bo=jo;function tt(n){const e=He(n,"data");return q(Bo(e))}tt._=jo;tt.lock=function(){Lo=!0};tt.register=function(n){if(Lo)throw new TypeError("keccak256 is locked");Bo=n};Object.freeze(tt);const _f=BigInt(0),Ef=BigInt(36);function li(n){n=n.toLowerCase();const e=n.substring(2).split(""),t=new Uint8Array(40);for(let s=0;s<40;s++)t[s]=e[s].charCodeAt(0);const r=He(tt(t));for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&(e[s]=e[s].toUpperCase()),(r[s>>1]&15)>=8&&(e[s+1]=e[s+1].toUpperCase());return"0x"+e.join("")}const vs={};for(let n=0;n<10;n++)vs[String(n)]=String(n);for(let n=0;n<26;n++)vs[String.fromCharCode(65+n)]=String(10+n);const hi=15;function xf(n){n=n.toUpperCase(),n=n.substring(4)+n.substring(0,2)+"00";let e=n.split("").map(r=>vs[r]).join("");for(;e.length>=hi;){let r=e.substring(0,hi);e=parseInt(r,10)%97+e.substring(r.length)}let t=String(98-parseInt(e,10)%97);for(;t.length<2;)t="0"+t;return t}const Of=function(){const n={};for(let e=0;e<36;e++){const t="0123456789abcdefghijklmnopqrstuvwxyz"[e];n[t]=BigInt(e)}return n}();function Tf(n){n=n.toLowerCase();let e=_f;for(let t=0;t<n.length;t++)e=e*Ef+Of[n[t]];return e}function gt(n){if(E(typeof n=="string","invalid address","address",n),n.match(/^(0x)?[0-9a-fA-F]{40}$/)){n.startsWith("0x")||(n="0x"+n);const e=li(n);return E(!n.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===n,"bad address checksum","address",n),e}if(n.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){E(n.substring(2,4)===xf(n),"bad icap checksum","address",n);let e=Tf(n.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return li("0x"+e)}E(!1,"invalid address","address",n)}function Af(n){return n&&typeof n.getAddress=="function"}async function An(n,e){const t=await e;return(t==null||t==="0x0000000000000000000000000000000000000000")&&(T(typeof n!="string","unconfigured name","UNCONFIGURED_NAME",{value:n}),E(!1,"invalid AddressLike value; did not resolve to a value address","target",n)),gt(t)}function _s(n,e){if(typeof n=="string")return n.match(/^0x[0-9a-f]{40}$/i)?gt(n):(T(e!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),An(n,e.resolveName(n)));if(Af(n))return An(n,n.getAddress());if(n&&typeof n.then=="function")return An(n,n);E(!1,"unsupported addressable value","target",n)}const $e={};function x(n,e){let t=!1;return e<0&&(t=!0,e*=-1),new Y($e,`${t?"":"u"}int${e}`,n,{signed:t,width:e})}function N(n,e){return new Y($e,`bytes${e||""}`,n,{size:e})}const fi=Symbol.for("_ethers_typed");var dt;const Ce=class{constructor(e,t,r,s){m(this,"type");m(this,"value");U(this,dt,void 0);m(this,"_typedSymbol");s==null&&(s=null),ws($e,e,"Typed"),k(this,{_typedSymbol:fi,type:t,value:r}),C(this,dt,s),this.format()}format(){if(this.type==="array")throw new Error("");if(this.type==="dynamicArray")throw new Error("");return this.type==="tuple"?`tuple(${this.value.map(e=>e.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return v(this,dt)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return v(this,dt)===!0?-1:v(this,dt)===!1?this.value.length:null}static from(e,t){return new Ce($e,e,t)}static uint8(e){return x(e,8)}static uint16(e){return x(e,16)}static uint24(e){return x(e,24)}static uint32(e){return x(e,32)}static uint40(e){return x(e,40)}static uint48(e){return x(e,48)}static uint56(e){return x(e,56)}static uint64(e){return x(e,64)}static uint72(e){return x(e,72)}static uint80(e){return x(e,80)}static uint88(e){return x(e,88)}static uint96(e){return x(e,96)}static uint104(e){return x(e,104)}static uint112(e){return x(e,112)}static uint120(e){return x(e,120)}static uint128(e){return x(e,128)}static uint136(e){return x(e,136)}static uint144(e){return x(e,144)}static uint152(e){return x(e,152)}static uint160(e){return x(e,160)}static uint168(e){return x(e,168)}static uint176(e){return x(e,176)}static uint184(e){return x(e,184)}static uint192(e){return x(e,192)}static uint200(e){return x(e,200)}static uint208(e){return x(e,208)}static uint216(e){return x(e,216)}static uint224(e){return x(e,224)}static uint232(e){return x(e,232)}static uint240(e){return x(e,240)}static uint248(e){return x(e,248)}static uint256(e){return x(e,256)}static uint(e){return x(e,256)}static int8(e){return x(e,-8)}static int16(e){return x(e,-16)}static int24(e){return x(e,-24)}static int32(e){return x(e,-32)}static int40(e){return x(e,-40)}static int48(e){return x(e,-48)}static int56(e){return x(e,-56)}static int64(e){return x(e,-64)}static int72(e){return x(e,-72)}static int80(e){return x(e,-80)}static int88(e){return x(e,-88)}static int96(e){return x(e,-96)}static int104(e){return x(e,-104)}static int112(e){return x(e,-112)}static int120(e){return x(e,-120)}static int128(e){return x(e,-128)}static int136(e){return x(e,-136)}static int144(e){return x(e,-144)}static int152(e){return x(e,-152)}static int160(e){return x(e,-160)}static int168(e){return x(e,-168)}static int176(e){return x(e,-176)}static int184(e){return x(e,-184)}static int192(e){return x(e,-192)}static int200(e){return x(e,-200)}static int208(e){return x(e,-208)}static int216(e){return x(e,-216)}static int224(e){return x(e,-224)}static int232(e){return x(e,-232)}static int240(e){return x(e,-240)}static int248(e){return x(e,-248)}static int256(e){return x(e,-256)}static int(e){return x(e,-256)}static bytes1(e){return N(e,1)}static bytes2(e){return N(e,2)}static bytes3(e){return N(e,3)}static bytes4(e){return N(e,4)}static bytes5(e){return N(e,5)}static bytes6(e){return N(e,6)}static bytes7(e){return N(e,7)}static bytes8(e){return N(e,8)}static bytes9(e){return N(e,9)}static bytes10(e){return N(e,10)}static bytes11(e){return N(e,11)}static bytes12(e){return N(e,12)}static bytes13(e){return N(e,13)}static bytes14(e){return N(e,14)}static bytes15(e){return N(e,15)}static bytes16(e){return N(e,16)}static bytes17(e){return N(e,17)}static bytes18(e){return N(e,18)}static bytes19(e){return N(e,19)}static bytes20(e){return N(e,20)}static bytes21(e){return N(e,21)}static bytes22(e){return N(e,22)}static bytes23(e){return N(e,23)}static bytes24(e){return N(e,24)}static bytes25(e){return N(e,25)}static bytes26(e){return N(e,26)}static bytes27(e){return N(e,27)}static bytes28(e){return N(e,28)}static bytes29(e){return N(e,29)}static bytes30(e){return N(e,30)}static bytes31(e){return N(e,31)}static bytes32(e){return N(e,32)}static address(e){return new Ce($e,"address",e)}static bool(e){return new Ce($e,"bool",!!e)}static bytes(e){return new Ce($e,"bytes",e)}static string(e){return new Ce($e,"string",e)}static array(e,t){throw new Error("not implemented yet")}static tuple(e,t){throw new Error("not implemented yet")}static overrides(e){return new Ce($e,"overrides",Object.assign({},e))}static isTyped(e){return e&&e._typedSymbol===fi}static dereference(e,t){if(Ce.isTyped(e)){if(e.type!==t)throw new Error(`invalid type: expecetd ${t}, got ${e.type}`);return e.value}return e}};let Y=Ce;dt=new WeakMap;class Sf extends qe{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){let r=Y.dereference(t,"string");try{r=gt(r)}catch(s){return this._throwError(s.message,t)}return e.writeValue(r)}decode(e){return gt(ko(e.readValue(),20))}}class kf extends qe{constructor(t){super(t.name,t.type,"_",t.dynamic);m(this,"coder");this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,r){return this.coder.encode(t,r)}decode(t){return this.coder.decode(t)}}function Ho(n,e,t){let r=[];if(Array.isArray(t))r=t;else if(t&&typeof t=="object"){let c={};r=e.map(u=>{const l=u.localName;return T(l,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:t}),T(!c[l],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:t}),c[l]=!0,t[l]})}else E(!1,"invalid tuple value","tuple",t);E(e.length===r.length,"types/value length mismatch","tuple",t);let s=new Mn,i=new Mn,o=[];e.forEach((c,u)=>{let l=r[u];if(c.dynamic){let h=i.length;c.encode(i,l);let p=s.writeUpdatableValue();o.push(f=>{p(f+h)})}else c.encode(s,l)}),o.forEach(c=>{c(s.length)});let a=n.appendWriter(s);return a+=n.appendWriter(i),a}function Mo(n,e){let t=[],r=[],s=n.subReader(0);return e.forEach(i=>{let o=null;if(i.dynamic){let a=n.readIndex(),c=s.subReader(a);try{o=i.decode(c)}catch(u){if(Ur(u,"BUFFER_OVERRUN"))throw u;o=u,o.baseType=i.name,o.name=i.localName,o.type=i.type}}else try{o=i.decode(n)}catch(a){if(Ur(a,"BUFFER_OVERRUN"))throw a;o=a,o.baseType=i.name,o.name=i.localName,o.type=i.type}if(o==null)throw new Error("investigate");t.push(o),r.push(i.localName||null)}),Lr.fromItems(t,r)}class Rf extends qe{constructor(t,r,s){const i=t.type+"["+(r>=0?r:"")+"]",o=r===-1||t.dynamic;super("array",i,s,o);m(this,"coder");m(this,"length");k(this,{coder:t,length:r})}defaultValue(){const t=this.coder.defaultValue(),r=[];for(let s=0;s<this.length;s++)r.push(t);return r}encode(t,r){const s=Y.dereference(r,"array");Array.isArray(s)||this._throwError("expected array value",s);let i=this.length;i===-1&&(i=s.length,t.writeValue(s.length)),To(s.length,i,"coder array"+(this.localName?" "+this.localName:""));let o=[];for(let a=0;a<s.length;a++)o.push(this.coder);return Ho(t,o,s)}decode(t){let r=this.length;r===-1&&(r=t.readIndex(),T(r*Q<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:r*Q,length:t.dataLength}));let s=[];for(let i=0;i<r;i++)s.push(new kf(this.coder));return Mo(t,s)}}class Pf extends qe{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){const r=Y.dereference(t,"bool");return e.writeValue(r?1:0)}decode(e){return!!e.readValue()}}class zo extends qe{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=je(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readIndex(),!0)}}class Nf extends zo{constructor(e){super("bytes",e)}decode(e){return q(super.decode(e))}}class $f extends qe{constructor(t,r){let s="bytes"+String(t);super(s,s,r,!1);m(this,"size");k(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(t,r){let s=je(Y.dereference(r,this.type));return s.length!==this.size&&this._throwError("incorrect data length",r),t.writeBytes(s)}decode(t){return q(t.readBytes(this.size))}}const Cf=new Uint8Array([]);class If extends qe{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return t!=null&&this._throwError("not null",t),e.writeBytes(Cf)}decode(e){return e.readBytes(0),null}}const Ff=BigInt(0),Df=BigInt(1),Uf=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Lf extends qe{constructor(t,r,s){const i=(r?"int":"uint")+t*8;super(i,i,s,!1);m(this,"size");m(this,"signed");k(this,{size:t,signed:r},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,r){let s=xt(Y.dereference(r,this.type)),i=vr(Uf,Q*8);if(this.signed){let o=vr(i,this.size*8-1);(s>o||s<-(o+Df))&&this._throwError("value out-of-bounds",r),s=xh(s,8*Q)}else(s<Ff||s>vr(i,this.size*8))&&this._throwError("value out-of-bounds",r);return t.writeValue(s)}decode(t){let r=vr(t.readValue(),this.size*8);return this.signed&&(r=Eh(r,this.size*8)),r}}class jf extends zo{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Po(Y.dereference(t,"string")))}decode(e){return $h(super.decode(e))}}class Or extends qe{constructor(t,r){let s=!1;const i=[];t.forEach(a=>{a.dynamic&&(s=!0),i.push(a.type)});const o="tuple("+i.join(",")+")";super("tuple",o,r,s);m(this,"coders");k(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(s=>{t.push(s.defaultValue())});const r=this.coders.reduce((s,i)=>{const o=i.localName;return o&&(s[o]||(s[o]=0),s[o]++),s},{});return this.coders.forEach((s,i)=>{let o=s.localName;!o||r[o]!==1||(o==="length"&&(o="_length"),t[o]==null&&(t[o]=t[i]))}),Object.freeze(t)}encode(t,r){const s=Y.dereference(r,"tuple");return Ho(t,this.coders,s)}decode(t){return Mo(t,this.coders)}}function nr(n){return tt(Po(n))}function Sn(n,e){return{address:gt(n),storageKeys:e.map((t,r)=>(E(Ye(t,32),"invalid slot",`storageKeys[${r}]`,t),t.toLowerCase()))}}function Bf(n){if(Array.isArray(n))return n.map((t,r)=>Array.isArray(t)?(E(t.length===2,"invalid slot set",`value[${r}]`,t),Sn(t[0],t[1])):(E(t!=null&&typeof t=="object","invalid address-slot set","value",n),Sn(t.address,t.storageKeys)));E(n!=null&&typeof n=="object","invalid access list","value",n);const e=Object.keys(n).map(t=>{const r=n[t].reduce((s,i)=>(s[i]=!0,s),{});return Sn(t,Object.keys(r).sort())});return e.sort((t,r)=>t.address.localeCompare(r.address)),e}function ee(n){const e=new Set;return n.forEach(t=>e.add(t)),Object.freeze(e)}const Vo="constant external internal payable private public pure view",Hf=ee(Vo.split(" ")),qo="constructor error event fallback function receive struct",Jo=ee(qo.split(" ")),Go="calldata memory storage payable indexed",Mf=ee(Go.split(" ")),zf="tuple returns",Vf=[qo,Go,zf,Vo].join(" "),qf=ee(Vf.split(" ")),Jf={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},Gf=new RegExp("^(\\s*)"),Wf=new RegExp("^([0-9]+)"),Kf=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Wo=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Ko=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var W,me,ir,Jn;const Mr=class{constructor(e){U(this,ir);U(this,W,void 0);U(this,me,void 0);C(this,W,0),C(this,me,e.slice())}get offset(){return v(this,W)}get length(){return v(this,me).length-v(this,W)}clone(){return new Mr(v(this,me))}reset(){C(this,W,0)}popKeyword(e){const t=this.peek();if(t.type!=="KEYWORD"||!e.has(t.text))throw new Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e)throw new Error(`expected ${e}; got ${JSON.stringify(this.peek())}`);return this.pop().text}popParen(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=z(this,ir,Jn).call(this,v(this,W)+1,e.match+1);return C(this,W,e.match+1),t}popParams(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=[];for(;v(this,W)<e.match-1;){const r=this.peek().linkNext;t.push(z(this,ir,Jn).call(this,v(this,W)+1,r)),C(this,W,r)}return C(this,W,e.match+1),t}peek(){if(v(this,W)>=v(this,me).length)throw new Error("out-of-bounds");return v(this,me)[v(this,W)]}peekKeyword(e){const t=this.peekType("KEYWORD");return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;const t=this.peek();return t.type===e?t.text:null}pop(){const e=this.peek();return $s(this,W)._++,e}toString(){const e=[];for(let t=v(this,W);t<v(this,me).length;t++){const r=v(this,me)[t];e.push(`${r.type}:${r.text}`)}return`<TokenString ${e.join(" ")}>`}};let be=Mr;W=new WeakMap,me=new WeakMap,ir=new WeakSet,Jn=function(e=0,t=0){return new Mr(v(this,me).slice(e,t).map(r=>Object.freeze(Object.assign({},r,{match:r.match-e,linkBack:r.linkBack-e,linkNext:r.linkNext-e}))))};function nt(n){const e=[],t=o=>{const a=i<n.length?JSON.stringify(n[i]):"$EOI";throw new Error(`invalid token ${a} at ${i}: ${o}`)};let r=[],s=[],i=0;for(;i<n.length;){let o=n.substring(i),a=o.match(Gf);a&&(i+=a[1].length,o=n.substring(i));const c={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:i,value:-1};e.push(c);let u=Jf[o[0]]||"";if(u){if(c.type=u,c.text=o[0],i++,u==="OPEN_PAREN")r.push(e.length-1),s.push(e.length-1);else if(u=="CLOSE_PAREN")r.length===0&&t("no matching open bracket"),c.match=r.pop(),e[c.match].match=e.length-1,c.depth--,c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1;else if(u==="COMMA")c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1,s.push(e.length-1);else if(u==="OPEN_BRACKET")c.type="BRACKET";else if(u==="CLOSE_BRACKET"){let l=e.pop().text;if(e.length>0&&e[e.length-1].type==="NUMBER"){const h=e.pop().text;l=h+l,e[e.length-1].value=Ve(h)}if(e.length===0||e[e.length-1].type!=="BRACKET")throw new Error("missing opening bracket");e[e.length-1].text+=l}continue}if(a=o.match(Kf),a){if(c.text=a[1],i+=c.text.length,qf.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(Ko)){c.type="TYPE";continue}c.type="ID";continue}if(a=o.match(Wf),a){c.text=a[1],c.type="NUMBER",i+=c.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${i}`)}return new be(e.map(o=>Object.freeze(o)))}function di(n,e){let t=[];for(const r in e.keys())n.has(r)&&t.push(r);if(t.length>1)throw new Error(`conflicting types: ${t.join(", ")}`)}function cn(n,e){if(e.peekKeyword(Jo)){const t=e.pop().text;if(t!==n)throw new Error(`expected ${n}, got ${t}`)}return e.popType("ID")}function Me(n,e){const t=new Set;for(;;){const r=n.peekType("KEYWORD");if(r==null||e&&!e.has(r))break;if(n.pop(),t.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);t.add(r)}return Object.freeze(t)}function Xo(n){let e=Me(n,Hf);return di(e,ee("constant payable nonpayable".split(" "))),di(e,ee("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function Be(n,e){return n.popParams().map(t=>K.from(t,e))}function Zo(n){if(n.peekType("AT")){if(n.pop(),n.peekType("NUMBER"))return xt(n.pop().text);throw new Error("invalid gas")}return null}function wt(n){if(n.length)throw new Error(`unexpected tokens: ${n.toString()}`)}const Xf=new RegExp(/^(.*)\[([0-9]*)\]$/);function pi(n){const e=n.match(Ko);if(E(e,"invalid type","type",n),n==="uint")return"uint256";if(n==="int")return"int256";if(e[2]){const t=parseInt(e[2]);E(t!==0&&t<=32,"invalid bytes length","type",n)}else if(e[3]){const t=parseInt(e[3]);E(t!==0&&t<=256&&t%8===0,"invalid numeric width","type",n)}return n}const B={},se=Symbol.for("_ethers_internal"),yi="_ParamTypeInternal",mi="_ErrorInternal",gi="_EventInternal",wi="_ConstructorInternal",bi="_FallbackInternal",vi="_FunctionInternal",_i="_StructInternal";var Lt,$r;const le=class{constructor(e,t,r,s,i,o,a,c){U(this,Lt);m(this,"name");m(this,"type");m(this,"baseType");m(this,"indexed");m(this,"components");m(this,"arrayLength");m(this,"arrayChildren");if(ws(e,B,"ParamType"),Object.defineProperty(this,se,{value:yi}),o&&(o=Object.freeze(o.slice())),s==="array"){if(a==null||c==null)throw new Error("")}else if(a!=null||c!=null)throw new Error("");if(s==="tuple"){if(o==null)throw new Error("")}else if(o!=null)throw new Error("");k(this,{name:t,type:r,baseType:s,indexed:i,components:o,arrayLength:a,arrayChildren:c})}format(e){if(e==null&&(e="sighash"),e==="json"){let r={type:this.baseType==="tuple"?"tuple":this.type,name:this.name||void 0};return typeof this.indexed=="boolean"&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map(s=>JSON.parse(s.format(e)))),JSON.stringify(r)}let t="";return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?(e!=="sighash"&&(t+=this.type),t+="("+this.components.map(r=>r.format(e)).join(e==="full"?", ":",")+")"):t+=this.type,e!=="sighash"&&(this.indexed===!0&&(t+=" indexed"),e==="full"&&this.name&&(t+=" "+this.name)),t}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw new Error("array is wrong length");const r=this;return e.map(s=>r.arrayChildren.walk(s,t))}if(this.isTuple()){if(!Array.isArray(e))throw new Error("invalid tuple value");if(e.length!==this.components.length)throw new Error("array is wrong length");const r=this;return e.map((s,i)=>r.components[i].walk(s,t))}return t(this.type,e)}async walkAsync(e,t){const r=[],s=[e];return z(this,Lt,$r).call(this,r,e,t,i=>{s[0]=i}),r.length&&await Promise.all(r),s[0]}static from(e,t){if(le.isParamType(e))return e;if(typeof e=="string")return le.from(nt(e),t);if(e instanceof be){let a="",c="",u=null;Me(e,ee(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(c="tuple",u=e.popParams().map(w=>le.from(w)),a=`tuple(${u.map(w=>w.format()).join(",")})`):(a=pi(e.popType("TYPE")),c=a);let l=null,h=null;for(;e.length&&e.peekType("BRACKET");){const w=e.pop();l=new le(B,"",a,c,null,u,h,l),h=w.value,a+=w.text,c="array",u=null}let p=null;if(Me(e,Mf).has("indexed")){if(!t)throw new Error("");p=!0}const d=e.peekType("ID")?e.pop().text:"";if(e.length)throw new Error("leftover tokens");return new le(B,d,a,c,p,u,h,l)}const r=e.name;E(!r||typeof r=="string"&&r.match(Wo),"invalid name","obj.name",r);let s=e.indexed;s!=null&&(E(t,"parameter cannot be indexed","obj.indexed",e.indexed),s=!!s);let i=e.type,o=i.match(Xf);if(o){const a=parseInt(o[2]||"-1"),c=le.from({type:o[1],components:e.components});return new le(B,r||"",i,"array",s,null,a,c)}if(i==="tuple"||i.startsWith("tuple(")||i.startsWith("(")){const a=e.components!=null?e.components.map(u=>le.from(u)):null;return new le(B,r||"",i,"tuple",s,a,null,null)}return i=pi(e.type),new le(B,r||"",i,i,s,null,null,null)}static isParamType(e){return e&&e[se]===yi}};let K=le;Lt=new WeakSet,$r=function(e,t,r,s){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const o=this.arrayChildren,a=t.slice();a.forEach((c,u)=>{var l;z(l=o,Lt,$r).call(l,e,c,r,h=>{a[u]=h})}),s(a);return}if(this.isTuple()){const o=this.components;let a;if(Array.isArray(t))a=t.slice();else{if(t==null||typeof t!="object")throw new Error("invalid tuple value");a=o.map(c=>{if(!c.name)throw new Error("cannot use object value with unnamed components");if(!(c.name in t))throw new Error(`missing value for component ${c.name}`);return t[c.name]})}if(a.length!==this.components.length)throw new Error("array is wrong length");a.forEach((c,u)=>{var l;z(l=o[u],Lt,$r).call(l,e,c,r,h=>{a[u]=h})}),s(a);return}const i=r(this.type,t);i.then?e.push(async function(){s(await i)}()):s(i)};class bt{constructor(e,t,r){m(this,"type");m(this,"inputs");ws(e,B,"Fragment"),r=Object.freeze(r.slice()),k(this,{type:t,inputs:r})}static from(e){if(typeof e=="string"){try{bt.from(JSON.parse(e))}catch{}return bt.from(nt(e))}if(e instanceof be)switch(e.peekKeyword(Jo)){case"constructor":return Ue.from(e);case"error":return re.from(e);case"event":return Se.from(e);case"fallback":case"receive":return Ie.from(e);case"function":return ke.from(e);case"struct":return mt.from(e)}else if(typeof e=="object"){switch(e.type){case"constructor":return Ue.from(e);case"error":return re.from(e);case"event":return Se.from(e);case"fallback":case"receive":return Ie.from(e);case"function":return ke.from(e);case"struct":return mt.from(e)}T(!1,`unsupported type: ${e.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}E(!1,"unsupported frgament object","obj",e)}static isConstructor(e){return Ue.isFragment(e)}static isError(e){return re.isFragment(e)}static isEvent(e){return Se.isFragment(e)}static isFunction(e){return ke.isFragment(e)}static isStruct(e){return mt.isFragment(e)}}class un extends bt{constructor(t,r,s,i){super(t,r,i);m(this,"name");E(typeof s=="string"&&s.match(Wo),"invalid identifier","name",s),i=Object.freeze(i.slice()),k(this,{name:s})}}function sr(n,e){return"("+e.map(t=>t.format(n)).join(n==="full"?", ":",")+")"}class re extends un{constructor(e,t,r){super(e,"error",t,r),Object.defineProperty(this,se,{value:mi})}get selector(){return nr(this.format("sighash")).substring(0,10)}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(e)))});const t=[];return e!=="sighash"&&t.push("error"),t.push(this.name+sr(e,this.inputs)),t.join(" ")}static from(e){if(re.isFragment(e))return e;if(typeof e=="string")return re.from(nt(e));if(e instanceof be){const t=cn("error",e),r=Be(e);return wt(e),new re(B,t,r)}return new re(B,e.name,e.inputs?e.inputs.map(K.from):[])}static isFragment(e){return e&&e[se]===mi}}class Se extends un{constructor(t,r,s,i){super(t,"event",r,s);m(this,"anonymous");Object.defineProperty(this,se,{value:gi}),k(this,{anonymous:i})}get topicHash(){return nr(this.format("sighash"))}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const r=[];return t!=="sighash"&&r.push("event"),r.push(this.name+sr(t,this.inputs)),t!=="sighash"&&this.anonymous&&r.push("anonymous"),r.join(" ")}static getTopicHash(t,r){return r=(r||[]).map(i=>K.from(i)),new Se(B,t,r,!1).topicHash}static from(t){if(Se.isFragment(t))return t;if(typeof t=="string")return Se.from(nt(t));if(t instanceof be){const r=cn("event",t),s=Be(t,!0),i=!!Me(t,ee(["anonymous"])).has("anonymous");return wt(t),new Se(B,r,s,i)}return new Se(B,t.name,t.inputs?t.inputs.map(r=>K.from(r,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[se]===gi}}class Ue extends bt{constructor(t,r,s,i,o){super(t,r,s);m(this,"payable");m(this,"gas");Object.defineProperty(this,se,{value:wi}),k(this,{payable:i,gas:o})}format(t){if(T(t!=null&&t!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),t==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const r=[`constructor${sr(t,this.inputs)}`];return r.push(this.payable?"payable":"nonpayable"),this.gas!=null&&r.push(`@${this.gas.toString()}`),r.join(" ")}static from(t){if(Ue.isFragment(t))return t;if(typeof t=="string")return Ue.from(nt(t));if(t instanceof be){Me(t,ee(["constructor"]));const r=Be(t),s=!!Me(t,ee(["payable"])).has("payable"),i=Zo(t);return wt(t),new Ue(B,"constructor",r,s,i)}return new Ue(B,"constructor",t.inputs?t.inputs.map(K.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[se]===wi}}class Ie extends bt{constructor(t,r,s){super(t,"fallback",r);m(this,"payable");Object.defineProperty(this,se,{value:bi}),k(this,{payable:s})}format(t){const r=this.inputs.length===0?"receive":"fallback";if(t==="json"){const s=this.payable?"payable":"nonpayable";return JSON.stringify({type:r,stateMutability:s})}return`${r}()${this.payable?" payable":""}`}static from(t){if(Ie.isFragment(t))return t;if(typeof t=="string")return Ie.from(nt(t));if(t instanceof be){const r=t.toString(),s=t.peekKeyword(ee(["fallback","receive"]));if(E(s,"type must be fallback or receive","obj",r),t.popKeyword(ee(["fallback","receive"]))==="receive"){const c=Be(t);return E(c.length===0,"receive cannot have arguments","obj.inputs",c),Me(t,ee(["payable"])),wt(t),new Ie(B,[],!0)}let o=Be(t);o.length?E(o.length===1&&o[0].type==="bytes","invalid fallback inputs","obj.inputs",o.map(c=>c.format("minimal")).join(", ")):o=[K.from("bytes")];const a=Xo(t);if(E(a==="nonpayable"||a==="payable","fallback cannot be constants","obj.stateMutability",a),Me(t,ee(["returns"])).has("returns")){const c=Be(t);E(c.length===1&&c[0].type==="bytes","invalid fallback outputs","obj.outputs",c.map(u=>u.format("minimal")).join(", "))}return wt(t),new Ie(B,o,a==="payable")}if(t.type==="receive")return new Ie(B,[],!0);if(t.type==="fallback"){const r=[K.from("bytes")],s=t.stateMutability==="payable";return new Ie(B,r,s)}E(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[se]===bi}}class ke extends un{constructor(t,r,s,i,o,a){super(t,"function",r,i);m(this,"constant");m(this,"outputs");m(this,"stateMutability");m(this,"payable");m(this,"gas");Object.defineProperty(this,se,{value:vi}),o=Object.freeze(o.slice()),k(this,{constant:s==="view"||s==="pure",gas:a,outputs:o,payable:s==="payable",stateMutability:s})}get selector(){return nr(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t))),outputs:this.outputs.map(s=>JSON.parse(s.format(t)))});const r=[];return t!=="sighash"&&r.push("function"),r.push(this.name+sr(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&r.push(this.stateMutability),this.outputs&&this.outputs.length&&(r.push("returns"),r.push(sr(t,this.outputs))),this.gas!=null&&r.push(`@${this.gas.toString()}`)),r.join(" ")}static getSelector(t,r){return r=(r||[]).map(i=>K.from(i)),new ke(B,t,"view",r,[],null).selector}static from(t){if(ke.isFragment(t))return t;if(typeof t=="string")return ke.from(nt(t));if(t instanceof be){const r=cn("function",t),s=Be(t),i=Xo(t);let o=[];Me(t,ee(["returns"])).has("returns")&&(o=Be(t));const a=Zo(t);return wt(t),new ke(B,r,i,s,o,a)}return new ke(B,t.name,t.stateMutability,t.inputs?t.inputs.map(K.from):[],t.outputs?t.outputs.map(K.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[se]===vi}}class mt extends un{constructor(e,t,r){super(e,"struct",t,r),Object.defineProperty(this,se,{value:_i})}format(){throw new Error("@TODO")}static from(e){if(typeof e=="string")return mt.from(nt(e));if(e instanceof be){const t=cn("struct",e),r=Be(e);return wt(e),new mt(B,t,r)}return new mt(B,e.name,e.inputs?e.inputs.map(K.from):[])}static isFragment(e){return e&&e[se]===_i}}const ve=new Map;ve.set(0,"GENERIC_PANIC");ve.set(1,"ASSERT_FALSE");ve.set(17,"OVERFLOW");ve.set(18,"DIVIDE_BY_ZERO");ve.set(33,"ENUM_RANGE_ERROR");ve.set(34,"BAD_STORAGE_DATA");ve.set(49,"STACK_UNDERFLOW");ve.set(50,"ARRAY_RANGE_ERROR");ve.set(65,"OUT_OF_MEMORY");ve.set(81,"UNINITIALIZED_FUNCTION_CALL");const Zf=new RegExp(/^bytes([0-9]*)$/),Yf=new RegExp(/^(u?int)([0-9]*)$/);let kn=null;function Qf(n,e,t,r){let s="missing revert data",i=null;const o=null;let a=null;if(t){s="execution reverted";const u=He(t);if(t=q(t),u.length===0)s+=" (no data present; likely require(false) occurred",i="require(false)";else if(u.length%32!==4)s+=" (could not decode reason; invalid data length)";else if(q(u.slice(0,4))==="0x08c379a0")try{i=r.decode(["string"],u.slice(4))[0],a={signature:"Error(string)",name:"Error",args:[i]},s+=`: ${JSON.stringify(i)}`}catch{s+=" (could not decode reason; invalid string data)"}else if(q(u.slice(0,4))==="0x4e487b71")try{const l=Number(r.decode(["uint256"],u.slice(4))[0]);a={signature:"Panic(uint256)",name:"Panic",args:[l]},i=`Panic due to ${ve.get(l)||"UNKNOWN"}(${l})`,s+=`: ${i}`}catch{s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}const c={to:e.to?gt(e.to):null,data:e.data||"0x"};return e.from&&(c.from=gt(e.from)),nn(s,"CALL_EXCEPTION",{action:n,data:t,reason:i,transaction:c,invocation:o,revert:a})}var Xe,Pt;const zr=class{constructor(){U(this,Xe)}getDefaultValue(e){const t=e.map(s=>z(this,Xe,Pt).call(this,K.from(s)));return new Or(t,"_").defaultValue()}encode(e,t){To(t.length,e.length,"types/values length mismatch");const r=e.map(o=>z(this,Xe,Pt).call(this,K.from(o))),s=new Or(r,"_"),i=new Mn;return s.encode(i,t),i.data}decode(e,t,r){const s=e.map(o=>z(this,Xe,Pt).call(this,K.from(o)));return new Or(s,"_").decode(new zn(t,r))}static defaultAbiCoder(){return kn==null&&(kn=new zr),kn}static getBuiltinCallException(e,t,r){return Qf(e,t,r,zr.defaultAbiCoder())}};let jr=zr;Xe=new WeakSet,Pt=function(e){if(e.isArray())return new Rf(z(this,Xe,Pt).call(this,e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new Or(e.components.map(r=>z(this,Xe,Pt).call(this,r)),e.name);switch(e.baseType){case"address":return new Sf(e.name);case"bool":return new Pf(e.name);case"string":return new jf(e.name);case"bytes":return new Nf(e.name);case"":return new If(e.name)}let t=e.type.match(Yf);if(t){let r=parseInt(t[2]||"256");return E(r!==0&&r<=256&&r%8===0,"invalid "+t[1]+" bit length","param",e),new Lf(r/8,t[1]==="int",e.name)}if(t=e.type.match(Zf),t){let r=parseInt(t[1]);return E(r!==0&&r<=32,"invalid bytes length","param",e),new $f(r,e.name)}E(!1,"invalid type","type",e.type)};class ed{constructor(e,t,r){m(this,"fragment");m(this,"name");m(this,"signature");m(this,"topic");m(this,"args");const s=e.name,i=e.format();k(this,{fragment:e,name:s,signature:i,topic:t,args:r})}}class td{constructor(e,t,r,s){m(this,"fragment");m(this,"name");m(this,"args");m(this,"signature");m(this,"selector");m(this,"value");const i=e.name,o=e.format();k(this,{fragment:e,name:i,args:r,signature:o,selector:t,value:s})}}class rd{constructor(e,t,r){m(this,"fragment");m(this,"name");m(this,"args");m(this,"signature");m(this,"selector");const s=e.name,i=e.format();k(this,{fragment:e,name:s,args:r,signature:i,selector:t})}}class Ei{constructor(e){m(this,"hash");m(this,"_isIndexed");k(this,{hash:e,_isIndexed:!0})}static isIndexed(e){return!!(e&&e._isIndexed)}}const xi={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},Oi={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:n=>`reverted with reason string ${JSON.stringify(n)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:n=>{let e="unknown panic code";return n>=0&&n<=255&&xi[n.toString()]&&(e=xi[n.toString()]),`reverted with panic code 0x${n.toString(16)} (${e})`}}};var Oe,Te,Ae,Z,or,Wn,ar,Kn;const It=class{constructor(e){U(this,or);U(this,ar);m(this,"fragments");m(this,"deploy");m(this,"fallback");m(this,"receive");U(this,Oe,void 0);U(this,Te,void 0);U(this,Ae,void 0);U(this,Z,void 0);let t=[];typeof e=="string"?t=JSON.parse(e):t=e,C(this,Ae,new Map),C(this,Oe,new Map),C(this,Te,new Map);const r=[];for(const o of t)try{r.push(bt.from(o))}catch(a){console.log("EE",a)}k(this,{fragments:Object.freeze(r)});let s=null,i=!1;C(this,Z,this.getAbiCoder()),this.fragments.forEach((o,a)=>{let c;switch(o.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}k(this,{deploy:o});return;case"fallback":o.inputs.length===0?i=!0:(E(!s||o.payable!==s.payable,"conflicting fallback fragments",`fragments[${a}]`,o),s=o,i=s.payable);return;case"function":c=v(this,Ae);break;case"event":c=v(this,Te);break;case"error":c=v(this,Oe);break;default:return}const u=o.format();c.has(u)||c.set(u,o)}),this.deploy||k(this,{deploy:Ue.from("constructor()")}),k(this,{fallback:s,receive:i})}format(e){const t=e?"minimal":"full";return this.fragments.map(s=>s.format(t))}formatJson(){const e=this.fragments.map(t=>t.format("json"));return JSON.stringify(e.map(t=>JSON.parse(t)))}getAbiCoder(){return jr.defaultAbiCoder()}getFunctionName(e){const t=z(this,or,Wn).call(this,e,null,!1);return E(t,"no matching function","key",e),t.name}getFunction(e,t){return z(this,or,Wn).call(this,e,t||null,!0)}forEachFunction(e){const t=Array.from(v(this,Ae).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(v(this,Ae).get(s),r)}}getEventName(e){const t=z(this,ar,Kn).call(this,e,null,!1);return E(t,"no matching event","key",e),t.name}getEvent(e,t){return z(this,ar,Kn).call(this,e,t||null,!0)}forEachEvent(e){const t=Array.from(v(this,Te).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(v(this,Te).get(s),r)}}getError(e,t){if(Ye(e)){const s=e.toLowerCase();if(Oi[s])return re.from(Oi[s].signature);for(const i of v(this,Oe).values())if(s===i.selector)return i;return null}if(e.indexOf("(")===-1){const s=[];for(const[i,o]of v(this,Oe))i.split("(")[0]===e&&s.push(o);if(s.length===0)return e==="Error"?re.from("error Error(string)"):e==="Panic"?re.from("error Panic(uint256)"):null;if(s.length>1){const i=s.map(o=>JSON.stringify(o.format())).join(", ");E(!1,`ambiguous error description (i.e. ${i})`,"name",e)}return s[0]}if(e=re.from(e).format(),e==="Error(string)")return re.from("error Error(string)");if(e==="Panic(uint256)")return re.from("error Panic(uint256)");const r=v(this,Oe).get(e);return r||null}forEachError(e){const t=Array.from(v(this,Oe).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(v(this,Oe).get(s),r)}}_decodeParams(e,t){return v(this,Z).decode(e,t)}_encodeParams(e,t){return v(this,Z).encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){if(typeof e=="string"){const r=this.getError(e);E(r,"unknown error","fragment",e),e=r}return E(St(t,0,4)===e.selector,`data signature does not match error ${e.name}.`,"data",t),this._decodeParams(e.inputs,St(t,4))}encodeErrorResult(e,t){if(typeof e=="string"){const r=this.getError(e);E(r,"unknown error","fragment",e),e=r}return Ft([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionData(e,t){if(typeof e=="string"){const r=this.getFunction(e);E(r,"unknown function","fragment",e),e=r}return E(St(t,0,4)===e.selector,`data signature does not match function ${e.name}.`,"data",t),this._decodeParams(e.inputs,St(t,4))}encodeFunctionData(e,t){if(typeof e=="string"){const r=this.getFunction(e);E(r,"unknown function","fragment",e),e=r}return Ft([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionResult(e,t){if(typeof e=="string"){const i=this.getFunction(e);E(i,"unknown function","fragment",e),e=i}let r="invalid length for result data";const s=je(t);if(s.length%32===0)try{return v(this,Z).decode(e.outputs,s)}catch{r="could not decode result data"}T(!1,r,"BAD_DATA",{value:q(s),info:{method:e.name,signature:e.format()}})}makeError(e,t){const r=He(e,"data"),s=jr.getBuiltinCallException("call",t,r),i="execution reverted (unknown custom error)";if(s.message.startsWith(i)){const a=q(r.slice(0,4)),c=this.getError(a);if(c)try{const u=v(this,Z).decode(c.inputs,r.slice(4));s.revert={name:c.name,signature:c.format(),args:u},s.reason=s.revert.signature,s.message=`execution reverted: ${s.reason}`}catch{s.message="execution reverted (coult not decode custom error)"}}const o=this.parseTransaction(t);return o&&(s.invocation={method:o.name,signature:o.signature,args:o.args}),s}encodeFunctionResult(e,t){if(typeof e=="string"){const r=this.getFunction(e);E(r,"unknown function","fragment",e),e=r}return q(v(this,Z).encode(e.outputs,t||[]))}encodeFilterTopics(e,t){if(typeof e=="string"){const i=this.getEvent(e);E(i,"unknown event","eventFragment",e),e=i}T(t.length<=e.inputs.length,`too many arguments for ${e.format()}`,"UNEXPECTED_ARGUMENT",{count:t.length,expectedCount:e.inputs.length});const r=[];e.anonymous||r.push(e.topicHash);const s=(i,o)=>i.type==="string"?nr(o):i.type==="bytes"?tt(q(o)):(i.type==="bool"&&typeof o=="boolean"&&(o=o?"0x01":"0x00"),i.type.match(/^u?int/)&&(o=ko(o)),i.type==="address"&&v(this,Z).encode(["address"],[o]),_h(q(o),32));for(t.forEach((i,o)=>{const a=e.inputs[o];if(!a.indexed){E(i==null,"cannot filter non-indexed parameters; must be null","contract."+a.name,i);return}i==null?r.push(null):a.baseType==="array"||a.baseType==="tuple"?E(!1,"filtering with tuples or arrays not supported","contract."+a.name,i):Array.isArray(i)?r.push(i.map(c=>s(a,c))):r.push(s(a,i))});r.length&&r[r.length-1]===null;)r.pop();return r}encodeEventLog(e,t){if(typeof e=="string"){const o=this.getEvent(e);E(o,"unknown event","eventFragment",e),e=o}const r=[],s=[],i=[];return e.anonymous||r.push(e.topicHash),E(t.length===e.inputs.length,"event arguments/values mismatch","values",t),e.inputs.forEach((o,a)=>{const c=t[a];if(o.indexed)if(o.type==="string")r.push(nr(c));else if(o.type==="bytes")r.push(tt(c));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");r.push(v(this,Z).encode([o.type],[c]))}else s.push(o),i.push(c)}),{data:v(this,Z).encode(s,i),topics:r}}decodeEventLog(e,t,r){if(typeof e=="string"){const f=this.getEvent(e);E(f,"unknown event","eventFragment",e),e=f}if(r!=null&&!e.anonymous){const f=e.topicHash;E(Ye(r[0],32)&&r[0].toLowerCase()===f,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}const s=[],i=[],o=[];e.inputs.forEach((f,d)=>{f.indexed?f.type==="string"||f.type==="bytes"||f.baseType==="tuple"||f.baseType==="array"?(s.push(K.from({type:"bytes32",name:f.name})),o.push(!0)):(s.push(f),o.push(!1)):(i.push(f),o.push(!1))});const a=r!=null?v(this,Z).decode(s,Ft(r)):null,c=v(this,Z).decode(i,t,!0),u=[],l=[];let h=0,p=0;return e.inputs.forEach((f,d)=>{let w=null;if(f.indexed)if(a==null)w=new Ei(null);else if(o[d])w=new Ei(a[p++]);else try{w=a[p++]}catch(b){w=b}else try{w=c[h++]}catch(b){w=b}u.push(w),l.push(f.name||null)}),Lr.fromItems(u,l)}parseTransaction(e){const t=He(e.data,"tx.data"),r=xt(e.value!=null?e.value:0,"tx.value"),s=this.getFunction(q(t.slice(0,4)));if(!s)return null;const i=v(this,Z).decode(s.inputs,t.slice(4));return new td(s,s.selector,i,r)}parseCallResult(e){throw new Error("@TODO")}parseLog(e){const t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new ed(t,t.topicHash,this.decodeEventLog(t,e.data,e.topics))}parseError(e){const t=q(e),r=this.getError(St(t,0,4));if(!r)return null;const s=v(this,Z).decode(r.inputs,St(t,4));return new rd(r,r.selector,s)}static from(e){return e instanceof It?e:typeof e=="string"?new It(JSON.parse(e)):typeof e.format=="function"?new It(e.format("json")):new It(e)}};let Gn=It;Oe=new WeakMap,Te=new WeakMap,Ae=new WeakMap,Z=new WeakMap,or=new WeakSet,Wn=function(e,t,r){if(Ye(e)){const i=e.toLowerCase();for(const o of v(this,Ae).values())if(i===o.selector)return o;return null}if(e.indexOf("(")===-1){const i=[];for(const[o,a]of v(this,Ae))o.split("(")[0]===e&&i.push(a);if(t){const o=t.length>0?t[t.length-1]:null;let a=t.length,c=!0;Y.isTyped(o)&&o.type==="overrides"&&(c=!1,a--);for(let u=i.length-1;u>=0;u--){const l=i[u].inputs.length;l!==a&&(!c||l!==a-1)&&i.splice(u,1)}for(let u=i.length-1;u>=0;u--){const l=i[u].inputs;for(let h=0;h<t.length;h++)if(Y.isTyped(t[h])){if(h>=l.length){if(t[h].type==="overrides")continue;i.splice(u,1);break}if(t[h].type!==l[h].baseType){i.splice(u,1);break}}}}if(i.length===1&&t&&t.length!==i[0].inputs.length){const o=t[t.length-1];(o==null||Array.isArray(o)||typeof o!="object")&&i.splice(0,1)}if(i.length===0)return null;if(i.length>1&&r){const o=i.map(a=>JSON.stringify(a.format())).join(", ");E(!1,`ambiguous function description (i.e. matches ${o})`,"key",e)}return i[0]}const s=v(this,Ae).get(ke.from(e).format());return s||null},ar=new WeakSet,Kn=function(e,t,r){if(Ye(e)){const i=e.toLowerCase();for(const o of v(this,Te).values())if(i===o.topicHash)return o;return null}if(e.indexOf("(")===-1){const i=[];for(const[o,a]of v(this,Te))o.split("(")[0]===e&&i.push(a);if(t){for(let o=i.length-1;o>=0;o--)i[o].inputs.length<t.length&&i.splice(o,1);for(let o=i.length-1;o>=0;o--){const a=i[o].inputs;for(let c=0;c<t.length;c++)if(Y.isTyped(t[c])&&t[c].type!==a[c].baseType){i.splice(o,1);break}}}if(i.length===0)return null;if(i.length>1&&r){const o=i.map(a=>JSON.stringify(a.format())).join(", ");E(!1,`ambiguous event description (i.e. matches ${o})`,"key",e)}return i[0]}const s=v(this,Te).get(Se.from(e).format());return s||null};const nd=BigInt(0);function Fe(n){return n==null?null:n.toString()}function sd(n){const e={};n.to&&(e.to=n.to),n.from&&(e.from=n.from),n.data&&(e.data=q(n.data));const t="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const s of t)!(s in n)||n[s]==null||(e[s]=xt(n[s],`request.${s}`));const r="type,nonce".split(/,/);for(const s of r)!(s in n)||n[s]==null||(e[s]=Ve(n[s],`request.${s}`));return n.accessList&&(e.accessList=Bf(n.accessList)),"blockTag"in n&&(e.blockTag=n.blockTag),"enableCcipRead"in n&&(e.enableCcipReadEnabled=!!n.enableCcipRead),"customData"in n&&(e.customData=n.customData),e}class Es{constructor(e,t){m(this,"provider");m(this,"transactionHash");m(this,"blockHash");m(this,"blockNumber");m(this,"removed");m(this,"address");m(this,"data");m(this,"topics");m(this,"index");m(this,"transactionIndex");this.provider=t;const r=Object.freeze(e.topics.slice());k(this,{transactionHash:e.transactionHash,blockHash:e.blockHash,blockNumber:e.blockNumber,removed:e.removed,address:e.address,data:e.data,topics:r,index:e.index,transactionIndex:e.transactionIndex})}toJSON(){const{address:e,blockHash:t,blockNumber:r,data:s,index:i,removed:o,topics:a,transactionHash:c,transactionIndex:u}=this;return{_type:"log",address:e,blockHash:t,blockNumber:r,data:s,index:i,removed:o,topics:a,transactionHash:c,transactionIndex:u}}async getBlock(){const e=await this.provider.getBlock(this.blockHash);return T(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransaction(){const e=await this.provider.getTransaction(this.transactionHash);return T(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransactionReceipt(){const e=await this.provider.getTransactionReceipt(this.transactionHash);return T(!!e,"failed to find transaction receipt","UNKNOWN_ERROR",{}),e}removedEvent(){return od(this)}}var cr;class id{constructor(e,t){m(this,"provider");m(this,"to");m(this,"from");m(this,"contractAddress");m(this,"hash");m(this,"index");m(this,"blockHash");m(this,"blockNumber");m(this,"logsBloom");m(this,"gasUsed");m(this,"cumulativeGasUsed");m(this,"gasPrice");m(this,"type");m(this,"status");m(this,"root");U(this,cr,void 0);C(this,cr,Object.freeze(e.logs.map(r=>new Es(r,t)))),k(this,{provider:t,to:e.to,from:e.from,contractAddress:e.contractAddress,hash:e.hash,index:e.index,blockHash:e.blockHash,blockNumber:e.blockNumber,logsBloom:e.logsBloom,gasUsed:e.gasUsed,cumulativeGasUsed:e.cumulativeGasUsed,gasPrice:e.effectiveGasPrice||e.gasPrice,type:e.type,status:e.status,root:e.root})}get logs(){return v(this,cr)}toJSON(){const{to:e,from:t,contractAddress:r,hash:s,index:i,blockHash:o,blockNumber:a,logsBloom:c,logs:u,status:l,root:h}=this;return{_type:"TransactionReceipt",blockHash:o,blockNumber:a,contractAddress:r,cumulativeGasUsed:Fe(this.cumulativeGasUsed),from:t,gasPrice:Fe(this.gasPrice),gasUsed:Fe(this.gasUsed),hash:s,index:i,logs:u,logsBloom:c,root:h,status:l,to:e}}get length(){return this.logs.length}[Symbol.iterator](){let e=0;return{next:()=>e<this.length?{value:this.logs[e++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const e=await this.provider.getBlock(this.blockHash);if(e==null)throw new Error("TODO");return e}async getTransaction(){const e=await this.provider.getTransaction(this.hash);if(e==null)throw new Error("TODO");return e}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return Qo(this)}reorderedEvent(e){return T(!e||e.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),Yo(this,e)}}cr=new WeakMap;var Ze;const Ns=class{constructor(e,t){m(this,"provider");m(this,"blockNumber");m(this,"blockHash");m(this,"index");m(this,"hash");m(this,"type");m(this,"to");m(this,"from");m(this,"nonce");m(this,"gasLimit");m(this,"gasPrice");m(this,"maxPriorityFeePerGas");m(this,"maxFeePerGas");m(this,"data");m(this,"value");m(this,"chainId");m(this,"signature");m(this,"accessList");U(this,Ze,void 0);this.provider=t,this.blockNumber=e.blockNumber!=null?e.blockNumber:null,this.blockHash=e.blockHash!=null?e.blockHash:null,this.hash=e.hash,this.index=e.index,this.type=e.type,this.from=e.from,this.to=e.to||null,this.gasLimit=e.gasLimit,this.nonce=e.nonce,this.data=e.data,this.value=e.value,this.gasPrice=e.gasPrice,this.maxPriorityFeePerGas=e.maxPriorityFeePerGas!=null?e.maxPriorityFeePerGas:null,this.maxFeePerGas=e.maxFeePerGas!=null?e.maxFeePerGas:null,this.chainId=e.chainId,this.signature=e.signature,this.accessList=e.accessList!=null?e.accessList:null,C(this,Ze,-1)}toJSON(){const{blockNumber:e,blockHash:t,index:r,hash:s,type:i,to:o,from:a,nonce:c,data:u,signature:l,accessList:h}=this;return{_type:"TransactionReceipt",accessList:h,blockNumber:e,blockHash:t,chainId:Fe(this.chainId),data:u,from:a,gasLimit:Fe(this.gasLimit),gasPrice:Fe(this.gasPrice),hash:s,maxFeePerGas:Fe(this.maxFeePerGas),maxPriorityFeePerGas:Fe(this.maxPriorityFeePerGas),nonce:c,signature:l,to:o,index:r,type:i,value:Fe(this.value)}}async getBlock(){let e=this.blockNumber;if(e==null){const r=await this.getTransaction();r&&(e=r.blockNumber)}if(e==null)return null;const t=this.provider.getBlock(e);if(t==null)throw new Error("TODO");return t}async getTransaction(){return this.provider.getTransaction(this.hash)}async wait(e,t){const r=e??1,s=t??0;let i=v(this,Ze),o=-1,a=i===-1;const c=async()=>{if(a)return null;const{blockNumber:h,nonce:p}=await xo({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(p<this.nonce){i=h;return}if(a)return null;const f=await this.getTransaction();if(!(f&&f.blockNumber!=null))for(o===-1&&(o=i-3,o<v(this,Ze)&&(o=v(this,Ze)));o<=h;){if(a)return null;const d=await this.provider.getBlock(o,!0);if(d==null)return;for(const w of d)if(w===this.hash)return;for(let w=0;w<d.length;w++){const b=await d.getTransaction(w);if(b.from===this.from&&b.nonce===this.nonce){if(a)return null;const O=await this.provider.getTransactionReceipt(b.hash);if(O==null||h-O.blockNumber+1<r)return;let R="replaced";b.data===this.data&&b.to===this.to&&b.value===this.value?R="repriced":b.data==="0x"&&b.from===b.to&&b.value===nd&&(R="cancelled"),T(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:R==="replaced"||R==="cancelled",reason:R,replacement:b.replaceableTransaction(i),hash:b.hash,receipt:O})}}o++}},u=await this.provider.getTransactionReceipt(this.hash);if(u){if(await u.confirmations()>=r)return u}else if(await c(),r===0)return null;return await new Promise((h,p)=>{const f=[],d=()=>{f.forEach(b=>b())};if(f.push(()=>{a=!0}),s>0){const b=setTimeout(()=>{d(),p(nn("wait for transaction timeout","TIMEOUT"))},s);f.push(()=>{clearTimeout(b)})}const w=async b=>{await b.confirmations()>=r&&(d(),h(b))};if(f.push(()=>{this.provider.off(this.hash,w)}),this.provider.on(this.hash,w),i>=0){const b=async()=>{try{await c()}catch(O){if(Ur(O,"TRANSACTION_REPLACED")){d(),p(O);return}}a||this.provider.once("block",b)};f.push(()=>{this.provider.off("block",b)}),this.provider.once("block",b)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}removedEvent(){return T(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Qo(this)}reorderedEvent(e){return T(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),T(!e||e.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Yo(this,e)}replaceableTransaction(e){E(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const t=new Ns(this,this.provider);return C(t,Ze,e),t}};let Xn=Ns;Ze=new WeakMap;function Yo(n,e){return{orphan:"reorder-transaction",tx:n,other:e}}function Qo(n){return{orphan:"drop-transaction",tx:n}}function od(n){return{orphan:"drop-log",log:{transactionHash:n.transactionHash,blockHash:n.blockHash,blockNumber:n.blockNumber,address:n.address,data:n.data,topics:Object.freeze(n.topics.slice()),index:n.index}}}class xs extends Es{constructor(t,r,s){super(t,t.provider);m(this,"interface");m(this,"fragment");m(this,"args");const i=r.decodeEventLog(s,t.data,t.topics);k(this,{args:i,fragment:s,interface:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}var jt;class ad extends id{constructor(t,r,s){super(s,r);U(this,jt,void 0);C(this,jt,t)}get logs(){return super.logs.map(t=>{const r=t.topics.length?v(this,jt).getEvent(t.topics[0]):null;return r?new xs(t,v(this,jt),r):t})}}jt=new WeakMap;var ur;class Os extends Xn{constructor(t,r,s){super(s,r);U(this,ur,void 0);C(this,ur,t)}async wait(t){const r=await super.wait();return r==null?null:new ad(v(this,ur),this.provider,r)}}ur=new WeakMap;class ea extends Ah{constructor(t,r,s,i){super(t,r,s);m(this,"log");k(this,{log:i})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class cd extends ea{constructor(e,t,r,s,i){super(e,t,r,new xs(i,e.interface,s));const o=e.interface.decodeEventLog(s,this.log.data,this.log.topics);k(this,{args:o,fragment:s})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const Ti=BigInt(0);function ta(n){return n&&typeof n.call=="function"}function ra(n){return n&&typeof n.estimateGas=="function"}function Ts(n){return n&&typeof n.resolveName=="function"}function na(n){return n&&typeof n.sendTransaction=="function"}var lr;class ud{constructor(e,t,r){U(this,lr,void 0);m(this,"fragment");if(k(this,{fragment:t}),t.inputs.length<r.length)throw new Error("too many arguments");const s=vt(e.runner,"resolveName"),i=Ts(s)?s:null;C(this,lr,async function(){const o=await Promise.all(t.inputs.map((a,c)=>r[c]==null?null:a.walkAsync(r[c],(l,h)=>l==="address"?_s(h,i):h)));return e.interface.encodeFilterTopics(t,o)}())}getTopicFilter(){return v(this,lr)}}lr=new WeakMap;function ld(){return Function}function vt(n,e){return n==null?null:typeof n[e]=="function"?n:n.provider&&typeof n.provider[e]=="function"?n.provider:null}function ht(n){return n==null?null:n.provider||null}async function sa(n,e){const t=sd(Y.dereference(n,"overrides"));return E(t.to==null||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",t.to),E(t.data==null||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",t.data),t.from&&(t.from=await _s(t.from)),t}async function hd(n,e,t){const r=vt(n,"resolveName"),s=Ts(r)?r:null;return await Promise.all(e.map((i,o)=>i.walkAsync(t[o],(a,c)=>(c=Y.dereference(c,a),a==="address"?_s(c,s):c))))}class fd{constructor(e){m(this,"_contract");return k(this,{_contract:e}),new Proxy(this,{apply:async(r,s,i)=>await r.send(...i)})}async populateTransaction(e){const t=await sa(e,["data"]);t.to=await this._contract.getAddress();const r=this._contract.interface,s=r.receive||r.fallback&&r.fallback.payable;return E(s||(t.value||Ti)===Ti,"cannot send value to non-payable contract","overrides.value",t.value),E(r.fallback||(t.data||"0x")==="0x","cannot send data to receive-only contract","overrides.data",t.data),t}async staticCall(e){const t=vt(this._contract.runner,"call");T(ta(t),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const r=await this.populateTransaction(e);try{return await t.call(r)}catch(s){throw Oo(s)&&s.data?this._contract.interface.makeError(s.data,r):s}}async send(e){const t=this._contract.runner;T(na(t),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const r=await t.sendTransaction(await this.populateTransaction(e)),s=ht(this._contract.runner);return new Os(this._contract.interface,s,r)}async estimateGas(e){const t=vt(this._contract.runner,"estimateGas");return T(ra(t),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await t.estimateGas(await this.populateTransaction(e))}}class dd extends ld(){constructor(t,r){super();m(this,"name","");m(this,"_contract");m(this,"_key");return k(this,{name:t.interface.getFunctionName(r),_contract:t,_key:r}),new Proxy(this,{apply:async(i,o,a)=>i.getFragment(...a).constant?await i.staticCall(...a):await i.send(...a)})}get fragment(){const t=this._contract.interface.getFunction(this._key);return T(t,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),t}getFragment(...t){const r=this._contract.interface.getFunction(this._key,t);return T(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),r}async populateTransaction(...t){const r=this.getFragment(...t);let s={};if(r.inputs.length+1===t.length&&(s=await sa(t.pop())),r.inputs.length!==t.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const i=await hd(this._contract.runner,r.inputs,t);return Object.assign({},s,await xo({to:this._contract.getAddress(),data:this._contract.interface.encodeFunctionData(r,i)}))}async staticCall(...t){const r=await this.staticCallResult(...t);return r.length===1?r[0]:r}async send(...t){const r=this._contract.runner;T(na(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await r.sendTransaction(await this.populateTransaction(...t)),i=ht(this._contract.runner);return new Os(this._contract.interface,i,s)}async estimateGas(...t){const r=vt(this._contract.runner,"estimateGas");return T(ra(r),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await r.estimateGas(await this.populateTransaction(...t))}async staticCallResult(...t){const r=vt(this._contract.runner,"call");T(ta(r),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await this.populateTransaction(...t);let i="0x";try{i=await r.call(s)}catch(a){throw Oo(a)&&a.data?this._contract.interface.makeError(a.data,s):a}const o=this.getFragment(...t);return this._contract.interface.decodeFunctionResult(o,i)}}function pd(){return Function}class yd extends pd(){constructor(t,r){super();m(this,"name","");m(this,"_contract");m(this,"_key");return k(this,{name:t.interface.getEventName(r),_contract:t,_key:r}),new Proxy(this,{apply:(s,i,o)=>new ud(t,s.getFragment(...o),o)})}get fragment(){const t=this._contract.interface.getEvent(this._key);return T(t,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),t}getFragment(...t){const r=this._contract.interface.getEvent(this._key,t);return T(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),r}}const Br=Symbol.for("_ethersInternal_contract"),ia=new WeakMap;function md(n,e){ia.set(n[Br],e)}function ue(n){return ia.get(n[Br])}function gd(n){return n&&typeof n=="object"&&"getTopicFilter"in n&&typeof n.getTopicFilter=="function"&&n.fragment}async function As(n,e){let t,r=null;if(Array.isArray(e)){const i=function(o){if(Ye(o,32))return o;const a=n.interface.getEvent(o);return E(a,"unknown fragment","name",o),a.topicHash};t=e.map(o=>o==null?null:Array.isArray(o)?o.map(i):i(o))}else e==="*"?t=[null]:typeof e=="string"?Ye(e,32)?t=[e]:(r=n.interface.getEvent(e),E(r,"unknown fragment","event",e),t=[r.topicHash]):gd(e)?t=await e.getTopicFilter():"fragment"in e?(r=e.fragment,t=[r.topicHash]):E(!1,"unknown event name","event",e);t=t.map(i=>{if(i==null)return null;if(Array.isArray(i)){const o=Array.from(new Set(i.map(a=>a.toLowerCase())).values());return o.length===1?o[0]:(o.sort(),o)}return i.toLowerCase()});const s=t.map(i=>i==null?"null":Array.isArray(i)?i.join("|"):i).join("&");return{fragment:r,tag:s,topics:t}}async function Xt(n,e){const{subs:t}=ue(n);return t.get((await As(n,e)).tag)||null}async function Ai(n,e,t){const r=ht(n.runner);T(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:s,tag:i,topics:o}=await As(n,t),{addr:a,subs:c}=ue(n);let u=c.get(i);if(!u){const h={address:a||n,topics:o},p=b=>{let O=s;if(O==null)try{O=n.interface.getEvent(b.topics[0])}catch{}if(O){const R=O,M=s?n.interface.decodeEventLog(s,b.data,b.topics):[];Yn(n,t,M,D=>new cd(n,D,t,R,b))}else Yn(n,t,[],R=>new ea(n,R,t,b))};let f=[];u={tag:i,listeners:[],start:()=>{f.length||f.push(r.on(h,p))},stop:async()=>{if(f.length==0)return;let b=f;f=[],await Promise.all(b),r.off(h,p)}},c.set(i,u)}return u}let Zn=Promise.resolve();async function wd(n,e,t,r){await Zn;const s=await Xt(n,e);if(!s)return!1;const i=s.listeners.length;return s.listeners=s.listeners.filter(({listener:o,once:a})=>{const c=Array.from(t);r&&c.push(r(a?null:o));try{o.call(n,...c)}catch{}return!a}),i>0}async function Yn(n,e,t,r){try{await Zn}catch{}const s=wd(n,e,t,r);return Zn=s,await s}const Si=["then"];var Td;const Vr=class{constructor(e,t,r,s){m(this,"target");m(this,"interface");m(this,"runner");m(this,"filters");m(this,Td);m(this,"fallback");r==null&&(r=null);const i=Gn.from(t);k(this,{target:e,runner:r,interface:i}),Object.defineProperty(this,Br,{value:{}});let o,a=null,c=null;if(s){const h=ht(r);c=new Os(this.interface,h,s)}let u=new Map;if(typeof e=="string")if(Ye(e))a=e,o=Promise.resolve(e);else{const h=vt(r,"resolveName");if(!Ts(h))throw nn("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});o=h.resolveName(e).then(p=>{if(p==null)throw new Error("TODO");return ue(this).addr=p,p})}else o=e.getAddress().then(h=>{if(h==null)throw new Error("TODO");return ue(this).addr=h,h});md(this,{addrPromise:o,addr:a,deployTx:c,subs:u});const l=new Proxy({},{get:(h,p,f)=>{if(Si.indexOf(p)>=0)return Reflect.get(h,p,f);const d=String(p),w=this.getEvent(d);if(w)return w;throw new Error(`unknown contract event: ${d}`)}});return k(this,{filters:l}),k(this,{fallback:i.receive||i.fallback?new fd(this):null}),new Proxy(this,{get:(h,p,f)=>{if(p in h||Si.indexOf(p)>=0)return Reflect.get(h,p,f);const d=String(p),w=h.getFunction(d);if(w)return w;throw new Error(`unknown contract method: ${d}`)}})}connect(e){return new Vr(this.target,this.interface,e)}async getAddress(){return await ue(this).addrPromise}async getDeployedCode(){const e=ht(this.runner);T(e,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const t=await e.getCode(await this.getAddress());return t==="0x"?null:t}async waitForDeployment(){const e=this.deploymentTransaction();if(e)return await e.wait(),this;if(await this.getDeployedCode()!=null)return this;const r=ht(this.runner);return T(r!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((s,i)=>{const o=async()=>{try{if(await this.getDeployedCode()!=null)return s(this);r.once("block",o)}catch(a){i(a)}};o()})}deploymentTransaction(){return ue(this).deployTx}getFunction(e){return typeof e!="string"&&(e=e.format()),new dd(this,e)}getEvent(e){return typeof e!="string"&&(e=e.format()),new yd(this,e)}async queryTransaction(e){throw new Error("@TODO")}async queryFilter(e,t,r){t==null&&(t=0),r==null&&(r="latest");const{addr:s,addrPromise:i}=ue(this),o=s||await i,{fragment:a,topics:c}=await As(this,e),u={address:o,topics:c,fromBlock:t,toBlock:r},l=ht(this.runner);return T(l,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await l.getLogs(u)).map(h=>{let p=a;if(p==null)try{p=this.interface.getEvent(h.topics[0])}catch{}return p?new xs(h,this.interface,p):new Es(h,l)})}async on(e,t){const r=await Ai(this,"on",e);return r.listeners.push({listener:t,once:!1}),r.start(),this}async once(e,t){const r=await Ai(this,"once",e);return r.listeners.push({listener:t,once:!0}),r.start(),this}async emit(e,...t){return await Yn(this,e,t,null)}async listenerCount(e){if(e){const s=await Xt(this,e);return s?s.listeners.length:0}const{subs:t}=ue(this);let r=0;for(const{listeners:s}of t.values())r+=s.length;return r}async listeners(e){if(e){const s=await Xt(this,e);return s?s.listeners.map(({listener:i})=>i):[]}const{subs:t}=ue(this);let r=[];for(const{listeners:s}of t.values())r=r.concat(s.map(({listener:i})=>i));return r}async off(e,t){const r=await Xt(this,e);if(!r)return this;if(t){const s=r.listeners.map(({listener:i})=>i).indexOf(t);s>=0&&r.listeners.splice(s,1)}return(t==null||r.listeners.length===0)&&(r.stop(),ue(this).subs.delete(r.tag)),this}async removeAllListeners(e){if(e){const t=await Xt(this,e);if(!t)return this;t.stop(),ue(this).subs.delete(t.tag)}else{const{subs:t}=ue(this);for(const{tag:r,stop:s}of t.values())s(),t.delete(r)}return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return await this.off(e,t)}static buildClass(e){class t extends Vr{constructor(s,i=null){super(s,e,i)}}return t}static from(e,t,r){return r==null&&(r=null),new this(e,t,r)}};let Qn=Vr;Td=Br;function bd(){return Qn}class vd extends bd(){}class ln{constructor(e){m(this,"data",[]);this.api=e}static create(e){return new ln(e)}getAbiHash(e){if(this.api===void 0)throw new Error("FunctionBuilder must be initialised with api");return this.api.getAbiHash(e)}async addFunction(e,t,r,s){const i=new vd(e,s);return i.interface.encodeFunctionData(t,r),this.data.push({address:e,bytecode:i.interface.encodeFunctionData(t,r),abiHash:await this.getAbiHash(s),function:t}),this}get(){return this.data}static schema(){return Mt().of(et({address:j().required(),bytecode:j().matches(/^(0x)?([0-9a-fA-F]{2})*$/).required(),abiHash:j().matches(/^[A-Fa-f0-9]{64}/).required(),function:j().required()}))}}class We{static version(){return"v1"}static execute(e,t,r="v1"){const s=JSON.parse(JSON.stringify(t));let i=!0;for(const o of s){const a=We.process(e,o.conditions);i=We.execLogic(i,o.logic,a)}return i}static process(e,t,r){const s=t.shift();if(!s)return r===void 0?!0:r;const i=We.execCondition(e,s);if(r===void 0||s.logic==="WHERE")return We.process(e,t,i);if(s.logic===void 0)throw new Error("Invalid filter. FilterCondition must have logic value");const o=We.execLogic(r,s.logic,i);return We.process(e,t,o)}static execLogic(e,t,r){switch(t){case"AND":return e&&r;case"OR":return e||r;case"XOR":return(e||r)&&!(e&&r);case"NAND":return!(e&&r);case"NOR":return!(e&&r);case"WHERE":return r;default:throw new Error(`Invalid Filter. Bad logic value: ${t}`)}}static execCondition(e,t){const r=e[t.key];if(t.type==="Number"){if(typeof t.constant!="number"||typeof r!="number")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"eq":return s===i;case"!eq":return s!==i;case"gt":return s>i;case"gte":return s>=i;case"lt":return s<i;case"lte":return s<=i;default:throw new Error("Invalid Filter. Operation does not match type")}}if(t.type==="String"){if(typeof t.constant!="string"||typeof r!="string")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"contains":return s.includes(i);case"!contains":return!s.includes(i);case"is":return s===i;case"!is":return s!==i;case"isEmpty":return s==="";case"!isEmpty":return s!=="";default:throw new Error("Invalid Filter. Operation does not match type")}}if(t.type==="Address"){if(typeof t.constant!="string"||typeof r!="string")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"contains":return s.toLowerCase().includes(i.toLowerCase());case"!contains":return!s.toLowerCase().includes(i.toLowerCase());case"is":return s.toLowerCase()===i.toLowerCase();case"!is":return s.toLowerCase()!==i.toLowerCase();case"isEmpty":return s==="";case"!isEmpty":return s!=="";default:throw new Error("Invalid Filter. Operation does not match type")}}throw new Error("Invalid Filter. Unknown Type")}}class hn{constructor(){m(this,"groups",[]);this.newGroup("WHERE")}static version(){return We.version()}static new(){return new hn}newGroup(e){if(this.groups.length!==0&&e==="WHERE")throw new Error('Only the first groups can start with "WHERE"');return this.groups.push({logic:"WHERE",conditions:[]}),this}addCondition(e,t,r,s,i){const o=this.groups[this.groups.length-1];if(o.conditions.length===0&&e!=="WHERE")throw new Error('Logic for the first condition of a group must be "WHERE"');if(o.conditions.length>0&&e==="WHERE")throw new Error('Only the first condition of a group can be "WHERE"');return o.conditions.push({logic:e,key:t,type:r,operation:s,constant:i}),this}finalise(){for(const e of this.groups)if(e.conditions.length===0)throw new Error("Bad Filter. All Groups must have atleast one condition");return this.groups}static schema(){const e=j().oneOf(["AND","OR","XOR","NAND","NOR","WHERE"]).required(),t=et({logic:e,key:j().required(),type:j().oneOf(["String","Address","Number"]).required(),operation:j().when("type",([r],s)=>{switch(r){case"String":return s.oneOf(["contains","!contains","is","!is","isEmpty","!isEmpty"]);case"Address":return s.oneOf(["is","!is","isEmpty","!isEmpty"]);case"Number":return s.oneOf(["String","Address","Number"]);default:throw new Error("Invalid Filter Data Type")}}),constant:ho().when("type",([r])=>{switch(r){case"String":return j();case"Address":return j();case"Number":return de();default:throw new Error("Invalid Filter Data Type")}})});return Mt().of(et({logic:e,conditions:Mt().of(t)}))}}const _d="handler_function_call_v2";class Ss{static SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:_d,handler:r}}static validateCreate(e){const t=/^(\d+)([SMHD])$/i;return et({timeBase:j().oneOf(["blocks","time"]).required(),nBlocks:de().min(10).when("timeBase",([s],i)=>s==="blocks"?i.required():i),timePeriod:j().matches(t,"timePeriod must be of the format n[s|m|h|d], eg 10s for 10 seconds").when("timeBase",([s],i)=>s==="time"?i.required():i),startTime:de().default(0),debounceCount:de(),functions:ln.schema(),triggerOn:j().oneOf(["always","filter"]).default("always"),latch:po().default(!1),filterVersion:j().when("triggerOn",([s],i)=>s==="filter"?i.required():i),filter:hn.schema().when("triggerOn",([s],i)=>s==="filter"?i.required():i)}).validate(e)}}class oa{static SimpleToRaw(e,t,r,s){switch(t){case"PollFunctionV2":return Ss.SimpleToRaw(e,r,s);case"PollFunctionV1":return ms.SimpleToRaw(e,r,s);case"OnchainEventV1":return gs.SimpleToRaw(e,r,s);default:throw new Error("Invalid Trigger ID")}}}const ki=n=>`https://${n}.functions.supabase.co/`,Ri=n=>`https://${n}.supabase.co/`,Pi="fdgtrxmmrtlokhgkvcjz",Ed="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZkZ3RyeG1tcnRsb2toZ2t2Y2p6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzMwODcwNzYsImV4cCI6MTk4ODY2MzA3Nn0.sAMxjlcJSSozBGr-LNcsudyxzUEM9e-UspMHHQLqLr4";class ks{constructor(e,t){m(this,"headers",{});this.url=e,this.headers={Authorization:`Bearer ${t}`,"Content-Type":"application/json"}}static async create(e){var t,r;if(e.key)throw new Error("Auth by key not yet supported");if(e.email&&e.password){const s=e.projectId?Ri(e.projectId):Ri(Pi),i=e.projectId?ki(e.projectId):ki(Pi),o=e.anonKey?e.anonKey:Ed,a=hu(s,o),{data:c,error:u}=await a.auth.signInWithPassword({email:e.email,password:e.password});if(u)throw u;if(((t=c.session)==null?void 0:t.access_token)===void 0)throw new Error("Access token not found");return new ks(i,(r=c.session)==null?void 0:r.access_token)}else throw new Error("Authentication Required. DeNotify supports either username/password or API key authentication")}async alertHistory(e,t){const r="alert-history",s=t||{};return e&&(s.id=e),Object.keys(s).length>0?await this.request("get",r,{params:t}):await this.request("get",r)}async getAlert(e){return(await this.request("get",`alerts/${e}`))[0]}async getAlerts(){return await this.request("get","alerts")}async createAlert(e){const t=oa.SimpleToRaw(e.name,e.triggerId,e.network,e.trigger),r=Eo.SimpleToRaw(e.notificationId,e.notification);return await this.request("post","alerts",{body:{trigger:t,notification:r}})}async deleteAlert(e){return await this.request("delete",`alerts/${e}`)}async request(e,t,r={}){const s=new URL(`${this.url}${t}`);if(r.params)for(const a of Object.keys(r.params))s.searchParams.append(a,r.params[a]);console.log(s.toString());const i={method:e,url:s.toString(),headers:this.headers};return r.body&&(i.data=r.body),(await Tl(i)).data}async getAbi(e,t){return await this.request("get",`abi/${e}/${t}`)}async getAbiHash(e){return(await this.request("post","abi",{body:e})).hash}async setAlertName(e,t){throw new Error("Not yet supported - Sorry!")}async enableAlert(e){throw new Error("Not yet supported - Sorry!")}async disableAlert(e){throw new Error("Not yet supported - Sorry!")}async updateNotification(e){throw new Error("Not yet supported - Sorry!")}async updateTrigger(e,t){return await this.request("patch",`alerts/trigger-handler/${e}`,{body:t})}}class Rs{constructor(e){m(this,"network");m(this,"triggerId");m(this,"trigger");m(this,"notificationId");m(this,"notification");this.name=e}static create(e){return new Rs(e)}onNetwork(e){return this.network=e,this}withTrigger(e,t){return this.triggerId=e,this.trigger=t,this}withNotification(e,t){return this.notificationId=e,this.notification=t,this}async validate(){switch(this.triggerId){case"OnchainEventV1":return gs.validateCreate(this.trigger);case"PollFunctionV1":return ms.validateCreate(this.trigger);case"PollFunctionV2":return Ss.validateCreate(this.trigger)}switch(this.notificationId){case"Discord":return ys.validateCreate(this.notification);default:throw new Error("Invalid notification type")}}async config(){if(this.trigger===void 0||this.triggerId===void 0)throw new Error("Trigger not configured");if(this.notification===void 0||this.notificationId===void 0)throw new Error("Notification not configured");if(this.network===void 0)throw new Error("Network not configured");return await this.validate(),{name:this.name,network:this.network,triggerId:this.triggerId,trigger:this.trigger,notificationId:this.notificationId,notification:this.notification}}}const xd=Object.freeze(Object.defineProperty({__proto__:null,HandlerFunctionCall:ms,HandlerFunctionCallV2:Ss,HandlerOnchainEvent:gs,Trigger:oa},Symbol.toStringTag,{value:"Module"})),Od=Object.freeze(Object.defineProperty({__proto__:null,Notification:Eo,NotifyDiscordWebhook:ys},Symbol.toStringTag,{value:"Module"}));exports.AlertBuilder=Rs;exports.DeNotifyClient=ks;exports.FilterBuilder=hn;exports.FunctionBuilder=ln;exports.Notification=Od;exports.Trigger=xd;
6
+ `+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,t){let r=e===void 0?e:this.transforms.reduce((s,i)=>i.call(this,s,e,this),e);return r===void 0&&(r=this.getDefault()),r}_validate(e,t={},r,s){let{path:i,originalValue:o=e,strict:a=this.spec.strict}=t,c=e;a||(c=this._cast(c,Object.assign({assert:!1},t)));let u=[];for(let l of Object.values(this.internalTests))l&&u.push(l);this.runTests({path:i,value:c,originalValue:o,options:t,tests:u},r,l=>{if(l.length)return s(l,c);this.runTests({path:i,value:c,originalValue:o,options:t,tests:this.tests},r,s)})}runTests(e,t,r){let s=!1,{tests:i,value:o,originalValue:a,path:c,options:u}=e,l=w=>{s||(s=!0,t(w,o))},h=w=>{s||(s=!0,r(w,o))},p=i.length,f=[];if(!p)return h([]);let d={value:o,originalValue:a,path:c,options:u,schema:this};for(let w=0;w<i.length;w++){const b=i[w];b(d,l,function(R){R&&(f=f.concat(R)),--p<=0&&h(f)})}}asNestedTest({key:e,index:t,parent:r,parentPath:s,originalParent:i,options:o}){const a=e??t;if(a==null)throw TypeError("Must include `key` or `index` for nested validations");const c=typeof a=="number";let u=r[a];const l=Object.assign({},o,{strict:!0,parent:r,value:u,originalValue:i[a],key:void 0,[c?"index":"key"]:a,path:c||a.includes(".")?`${s||""}[${u?a:`"${a}"`}]`:(s?`${s}.`:"")+e});return(h,p,f)=>this.resolve(l)._validate(u,l,p,f)}validate(e,t){let r=this.resolve(Object.assign({},t,{value:e}));return new Promise((s,i)=>r._validate(e,t,(o,a)=>{ae.isError(o)&&(o.value=a),i(o)},(o,a)=>{o.length?i(new ae(o,a)):s(a)}))}validateSync(e,t){let r=this.resolve(Object.assign({},t,{value:e})),s;return r._validate(e,Object.assign({},t,{sync:!0}),(i,o)=>{throw ae.isError(i)&&(i.value=o),i},(i,o)=>{if(i.length)throw new ae(i,e);s=o}),s}isValid(e,t){return this.validate(e,t).then(()=>!0,r=>{if(ae.isError(r))return!1;throw r})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(r){if(ae.isError(r))return!1;throw r}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):Nt(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){return this.clone({strict:e})}nullability(e,t){const r=this.clone({nullable:e});return r.internalTests.nullable=At({message:t,name:"nullable",test(s){return s===null?this.schema.spec.nullable:!0}}),r}optionality(e,t){const r=this.clone({optional:e});return r.internalTests.optionality=At({message:t,name:"optionality",test(s){return s===void 0?this.schema.spec.optional:!0}}),r}optional(){return this.optionality(!0)}defined(e=Ne.defined){return this.optionality(!1,e)}nullable(){return this.nullability(!0)}nonNullable(e=Ne.notNull){return this.nullability(!1,e)}required(e=Ne.required){return this.clone().withMutation(t=>t.nonNullable(e).defined(e))}notRequired(){return this.clone().withMutation(e=>e.nullable().optional())}transform(e){let t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Ne.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let r=this.clone(),s=At(t),i=t.exclusive||t.name&&r.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(r.exclusiveTests[t.name]=!!t.exclusive),r.tests=r.tests.filter(o=>!(o.OPTIONS.name===t.name&&(i||o.OPTIONS.test===s.OPTIONS.test))),r.tests.push(s),r}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let r=this.clone(),s=lo(e).map(i=>new Et(i));return s.forEach(i=>{i.isSibling&&r.deps.push(i.key)}),r.conditions.push(typeof t=="function"?new Fr(s,t):Fr.fromOptions(s,t)),r}typeError(e){let t=this.clone();return t.internalTests.typeError=At({message:e,name:"typeError",test(r){return!fe(r)&&!this.schema._typeCheck(r)?this.createError({params:{type:this.schema.type}}):!0}}),t}oneOf(e,t=Ne.oneOf){let r=this.clone();return e.forEach(s=>{r._whitelist.add(s),r._blacklist.delete(s)}),r.internalTests.whiteList=At({message:t,name:"oneOf",skipAbsent:!0,test(s){let i=this.schema._whitelist,o=i.resolveAll(this.resolve);return o.includes(s)?!0:this.createError({params:{values:Array.from(i).join(", "),resolved:o}})}}),r}notOneOf(e,t=Ne.notOneOf){let r=this.clone();return e.forEach(s=>{r._blacklist.add(s),r._whitelist.delete(s)}),r.internalTests.blacklist=At({message:t,name:"notOneOf",test(s){let i=this.schema._blacklist,o=i.resolveAll(this.resolve);return o.includes(s)?this.createError({params:{values:Array.from(i).join(", "),resolved:o}}):!0}}),r}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(e){const t=(e?this.resolve(e):this).clone(),{label:r,meta:s,optional:i,nullable:o}=t.spec;return{meta:s,label:r,optional:i,nullable:o,default:t.getDefault(e),type:t.type,oneOf:t._whitelist.describe(),notOneOf:t._blacklist.describe(),tests:t.tests.map(c=>({name:c.OPTIONS.name,params:c.OPTIONS.params})).filter((c,u,l)=>l.findIndex(h=>h.name===c.name)===u)}}}ne.prototype.__isYupSchema__=!0;for(const n of["validate","validateSync"])ne.prototype[`${n}At`]=function(e,t,r={}){const{parent:s,parentPath:i,schema:o}=Zl(this,e,t,r.context);return o[n](s&&s[i],Object.assign({},r,{parent:s,path:e}))};for(const n of["equals","is"])ne.prototype[n]=ne.prototype.oneOf;for(const n of["not","nope"])ne.prototype[n]=ne.prototype.notOneOf;const Yl=()=>!0;function ho(n){return new fo(n)}class fo extends ne{constructor(e){super(typeof e=="function"?{type:"mixed",check:e}:Object.assign({type:"mixed",check:Yl},e))}}ho.prototype=fo.prototype;function po(){return new yo}class yo extends ne{constructor(){super({type:"boolean",check(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(r.spec.coerce&&!r.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}isTrue(e=jn.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return fe(t)||t===!0}})}isFalse(e=jn.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return fe(t)||t===!1}})}default(e){return super.default(e)}defined(e){return super.defined(e)}optional(){return super.optional()}required(e){return super.required(e)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(e){return super.nonNullable(e)}strip(e){return super.strip(e)}}po.prototype=yo.prototype;let Ql=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,eh=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,th=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,rh=n=>fe(n)||n===n.trim(),nh={}.toString();function j(){return new mo}class mo extends ne{constructor(){super({type:"string",check(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(!r.spec.coerce||r.isType(e)||Array.isArray(e))return e;const s=e!=null&&e.toString?e.toString():e;return s===nh?e:s})})}required(e){return super.required(e).withMutation(t=>t.test({message:e||Ne.required,name:"required",skipAbsent:!0,test:r=>!!r.length}))}notRequired(){return super.notRequired().withMutation(e=>(e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e))}length(e,t=ye.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(r){return r.length===this.resolve(e)}})}min(e,t=ye.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r.length>=this.resolve(e)}})}max(e,t=ye.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},skipAbsent:!0,test(r){return r.length<=this.resolve(e)}})}matches(e,t){let r=!1,s,i;return t&&(typeof t=="object"?{excludeEmptyString:r=!1,message:s,name:i}=t:s=t),this.test({name:i||"matches",message:s||ye.matches,params:{regex:e},skipAbsent:!0,test:o=>o===""&&r||o.search(e)!==-1})}email(e=ye.email){return this.matches(Ql,{name:"email",message:e,excludeEmptyString:!0})}url(e=ye.url){return this.matches(eh,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ye.uuid){return this.matches(th,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ye.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:rh})}lowercase(e=ye.lowercase){return this.transform(t=>fe(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:t=>fe(t)||t===t.toLowerCase()})}uppercase(e=ye.uppercase){return this.transform(t=>fe(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:t=>fe(t)||t===t.toUpperCase()})}}j.prototype=mo.prototype;let sh=n=>n!=+n;function de(){return new go}class go extends ne{constructor(){super({type:"number",check(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!sh(e)}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(!r.spec.coerce)return e;let s=e;if(typeof s=="string"){if(s=s.replace(/\s/g,""),s==="")return NaN;s=+s}return r.isType(s)?s:parseFloat(s)})})}min(e,t=Ge.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r>=this.resolve(e)}})}max(e,t=Ge.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(r){return r<=this.resolve(e)}})}lessThan(e,t=Ge.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},skipAbsent:!0,test(r){return r<this.resolve(e)}})}moreThan(e,t=Ge.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},skipAbsent:!0,test(r){return r>this.resolve(e)}})}positive(e=Ge.positive){return this.moreThan(0,e)}negative(e=Ge.negative){return this.lessThan(0,e)}integer(e=Ge.integer){return this.test({name:"integer",message:e,skipAbsent:!0,test:t=>Number.isInteger(t)})}truncate(){return this.transform(e=>fe(e)?e:e|0)}round(e){var t;let r=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(r.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+r.join(", "));return this.transform(s=>fe(s)?s:Math[e](s))}}de.prototype=go.prototype;var ih=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function oh(n){var e=[1,4,5,6,7,10,11],t=0,r,s;if(s=ih.exec(n)){for(var i=0,o;o=e[i];++i)s[o]=+s[o]||0;s[2]=(+s[2]||1)-1,s[3]=+s[3]||1,s[7]=s[7]?String(s[7]).substr(0,3):0,(s[8]===void 0||s[8]==="")&&(s[9]===void 0||s[9]==="")?r=+new Date(s[1],s[2],s[3],s[4],s[5],s[6],s[7]):(s[8]!=="Z"&&s[9]!==void 0&&(t=s[10]*60+s[11],s[9]==="+"&&(t=0-t)),r=Date.UTC(s[1],s[2],s[3],s[4],s[5]+t,s[6],s[7]))}else r=Date.parse?Date.parse(n):NaN;return r}let ah=new Date(""),ch=n=>Object.prototype.toString.call(n)==="[object Date]";class rn extends ne{constructor(){super({type:"date",check(e){return ch(e)&&!isNaN(e.getTime())}}),this.withMutation(()=>{this.transform((e,t,r)=>!r.spec.coerce||r.isType(e)?e:(e=oh(e),isNaN(e)?rn.INVALID_DATE:new Date(e)))})}prepareParam(e,t){let r;if(Et.isRef(e))r=e;else{let s=this.cast(e);if(!this._typeCheck(s))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);r=s}return r}min(e,t=Ln.min){let r=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(s){return s>=this.resolve(r)}})}max(e,t=Ln.max){let r=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(s){return s<=this.resolve(r)}})}}rn.INVALID_DATE=ah;rn.prototype;function uh(n,e=[]){let t=[],r=new Set,s=new Set(e.map(([o,a])=>`${o}-${a}`));function i(o,a){let c=pt.split(o)[0];r.add(c),s.has(`${a}-${c}`)||t.push([a,c])}for(const o of Object.keys(n)){let a=n[o];r.add(o),Et.isRef(a)&&a.isSibling?i(a.path,o):tn(a)&&"deps"in a&&a.deps.forEach(c=>i(c,o))}return Ir.array(Array.from(r),t).reverse()}function ni(n,e){let t=1/0;return n.some((r,s)=>{var i;if((i=e.path)!=null&&i.includes(r))return t=s,!0}),t}function wo(n){return(e,t)=>ni(n,e)-ni(n,t)}const bo=(n,e,t)=>{if(typeof n!="string")return n;let r=n;try{r=JSON.parse(n)}catch{}return t.isType(r)?r:n};function Pr(n){if("fields"in n){const e={};for(const[t,r]of Object.entries(n.fields))e[t]=Pr(r);return n.setFields(e)}if(n.type==="array"){const e=n.optional();return e.innerType&&(e.innerType=Pr(e.innerType)),e}return n.type==="tuple"?n.optional().clone({types:n.spec.types.map(Pr)}):"optional"in n?n.optional():n}const lh=(n,e)=>{const t=[...pt.normalizePath(e)];if(t.length===1)return t[0]in n;let r=t.pop(),s=pt.getter(pt.join(t),!0)(n);return!!(s&&r in s)};let si=n=>Object.prototype.toString.call(n)==="[object Object]";function hh(n,e){let t=Object.keys(n.fields);return Object.keys(e).filter(r=>t.indexOf(r)===-1)}const fh=wo([]);function et(n){return new vo(n)}class vo extends ne{constructor(e){super({type:"object",check(t){return si(t)||typeof t=="function"}}),this.fields=Object.create(null),this._sortErrors=fh,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{e&&this.shape(e)})}_cast(e,t={}){var r;let s=super._cast(e,t);if(s===void 0)return this.getDefault();if(!this._typeCheck(s))return s;let i=this.fields,o=(r=t.stripUnknown)!=null?r:this.spec.noUnknown,a=[].concat(this._nodes,Object.keys(s).filter(h=>!this._nodes.includes(h))),c={},u=Object.assign({},t,{parent:c,__validating:t.__validating||!1}),l=!1;for(const h of a){let p=i[h],f=h in s;if(p){let d,w=s[h];u.path=(t.path?`${t.path}.`:"")+h,p=p.resolve({value:w,context:t.context,parent:c});let b=p instanceof ne?p.spec:void 0,O=b==null?void 0:b.strict;if(b!=null&&b.strip){l=l||h in s;continue}d=!t.__validating||!O?p.cast(s[h],u):s[h],d!==void 0&&(c[h]=d)}else f&&!o&&(c[h]=s[h]);(f!==h in c||c[h]!==s[h])&&(l=!0)}return l?c:s}_validate(e,t={},r,s){let{from:i=[],originalValue:o=e,recursive:a=this.spec.recursive}=t;t.from=[{schema:this,value:o},...i],t.__validating=!0,t.originalValue=o,super._validate(e,t,r,(c,u)=>{if(!a||!si(u)){s(c,u);return}o=o||u;let l=[];for(let h of this._nodes){let p=this.fields[h];!p||Et.isRef(p)||l.push(p.asNestedTest({options:t,key:h,parent:u,parentPath:t.path,originalParent:o}))}this.runTests({tests:l,value:u,originalValue:o,options:t},r,h=>{s(h.sort(this._sortErrors).concat(c),u)})})}clone(e){const t=super.clone(e);return t.fields=Object.assign({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),r=t.fields;for(let[s,i]of Object.entries(this.fields)){const o=r[s];r[s]=o===void 0?i:o}return t.withMutation(s=>s.setFields(r,this._excludedEdges))}_getDefault(){if("default"in this.spec)return super._getDefault();if(!this._nodes.length)return;let e={};return this._nodes.forEach(t=>{const r=this.fields[t];e[t]=r&&"getDefault"in r?r.getDefault():void 0}),e}setFields(e,t){let r=this.clone();return r.fields=e,r._nodes=uh(e,t),r._sortErrors=wo(Object.keys(e)),t&&(r._excludedEdges=t),r}shape(e,t=[]){return this.clone().withMutation(r=>{let s=r._excludedEdges;return t.length&&(Array.isArray(t[0])||(t=[t]),s=[...r._excludedEdges,...t]),r.setFields(Object.assign(r.fields,e),s)})}partial(){const e={};for(const[t,r]of Object.entries(this.fields))e[t]="optional"in r&&r.optional instanceof Function?r.optional():r;return this.setFields(e)}deepPartial(){return Pr(this)}pick(e){const t={};for(const r of e)this.fields[r]&&(t[r]=this.fields[r]);return this.setFields(t)}omit(e){const t=Object.assign({},this.fields);for(const r of e)delete t[r];return this.setFields(t)}from(e,t,r){let s=pt.getter(e,!0);return this.transform(i=>{if(!i)return i;let o=i;return lh(i,e)&&(o=Object.assign({},i),r||delete o[e],o[t]=s(i)),o})}json(){return this.transform(bo)}noUnknown(e=!0,t=Bn.noUnknown){typeof e!="boolean"&&(t=e,e=!0);let r=this.test({name:"noUnknown",exclusive:!0,message:t,test(s){if(s==null)return!0;const i=hh(this.schema,s);return!e||i.length===0||this.createError({params:{unknown:i.join(", ")}})}});return r.spec.noUnknown=e,r}unknown(e=!0,t=Bn.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>{if(!t)return t;const r={};for(const s of Object.keys(t))r[e(s)]=t[s];return r})}camelCase(){return this.transformKeys(Tn.camelCase)}snakeCase(){return this.transformKeys(Tn.snakeCase)}constantCase(){return this.transformKeys(e=>Tn.snakeCase(e).toUpperCase())}describe(e){let t=super.describe(e);t.fields={};for(const[s,i]of Object.entries(this.fields)){var r;let o=e;(r=o)!=null&&r.value&&(o=Object.assign({},o,{parent:o.value,value:o.value[s]})),t.fields[s]=i.describe(o)}return t}}et.prototype=vo.prototype;function Mt(n){return new _o(n)}class _o extends ne{constructor(e){super({type:"array",check(t){return Array.isArray(t)}}),this.innerType=void 0,this.innerType=e}_cast(e,t){const r=super._cast(e,t);if(!this._typeCheck(r)||!this.innerType)return r;let s=!1;const i=r.map((o,a)=>{const c=this.innerType.cast(o,Object.assign({},t,{path:`${t.path||""}[${a}]`}));return c!==o&&(s=!0),c});return s?i:r}_validate(e,t={},r,s){var i;let o=this.innerType,a=(i=t.recursive)!=null?i:this.spec.recursive;t.originalValue!=null&&t.originalValue,super._validate(e,t,r,(c,u)=>{var l;if(!a||!o||!this._typeCheck(u)){s(c,u);return}let h=new Array(u.length);for(let f=0;f<u.length;f++){var p;h[f]=o.asNestedTest({options:t,index:f,parent:u,parentPath:t.path,originalParent:(p=t.originalValue)!=null?p:e})}this.runTests({value:u,tests:h,originalValue:(l=t.originalValue)!=null?l:e,options:t},r,f=>s(f.concat(c),u))})}clone(e){const t=super.clone(e);return t.innerType=this.innerType,t}json(){return this.transform(bo)}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!tn(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+yt(e));return t.innerType=e,t}length(e,t=Rr.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(r){return r.length===this.resolve(e)}})}min(e,t){return t=t||Rr.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r.length>=this.resolve(e)}})}max(e,t){return t=t||Rr.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(r){return r.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(r,s,i)=>!e(r,s,i):r=>!!r;return this.transform(r=>r!=null?r.filter(t):r)}describe(e){let t=super.describe(e);if(this.innerType){var r;let s=e;(r=s)!=null&&r.value&&(s=Object.assign({},s,{parent:s.value,value:s.value[0]})),t.innerType=this.innerType.describe(e)}return t}}Mt.prototype=_o.prototype;const dh="notify_discord_webhook";class ys{static SimpleToRaw(e){return{name:"",notify_type:dh,notify:e}}static validateCreate(e){const t=/^(https?|ftp):\/\/(-\.)?([^\s/?.#]+\.?)+([^\s.?#]+)?(\?\S*)?$/;return et({url:j().matches(t,"url is not a valid url").required(),username:j(),avatar_url:j().matches(t,"url is not a valid url"),message:j().required()}).validate(e)}}class Eo{static SimpleToRaw(e,t){switch(e){case"Discord":return ys.SimpleToRaw(t)}}}const ph="handler_function_call";class ms{static SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:ph,handler:r}}static validateCreate(e){const t=([s],i)=>s==="true"?i.notRequired():i.required();return et({address:j().required(),abi:Mt().required(),nBlocks:de().min(10),condition:j().oneOf([">",">=","<","<=","=","true"]),constant:de().min(0).when("condition",t),responseArgIndex:de().min(0).when("condition",t),responseArgDecimals:de().min(0).when("condition",t)}).validate(e)}}const yh="handler_onchain_event";class gs{static SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:yh,handler:r}}static validateCreate(e){const t=([s],i)=>s==="true"?i.notRequired():i.required();return et({address:j().required(),event:j().required(),abi:Mt().required(),condition:j().oneOf([">",">=","<","<=","=","true"]),constant:de().min(0).when("condition",t),paramsIndex:de().min(0).when("condition",t),paramsDecimals:de().min(0).when("condition",t)}).validate(e)}}const mh="6.1.0";function gh(n,e,t){const r=e.split("|").map(i=>i.trim());for(let i=0;i<r.length;i++)switch(e){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof n===e)return}const s=new Error(`invalid value for type ${e}`);throw s.code="INVALID_ARGUMENT",s.argument=`value.${t}`,s.value=n,s}async function xo(n){const e=Object.keys(n);return(await Promise.all(e.map(r=>Promise.resolve(n[r])))).reduce((r,s,i)=>(r[e[i]]=s,r),{})}function k(n,e,t){for(let r in e){let s=e[r];const i=t?t[r]:null;i&&gh(s,i,r),Object.defineProperty(n,r,{enumerable:!0,value:s,writable:!1})}}function $t(n){if(n==null)return"null";if(Array.isArray(n))return"[ "+n.map($t).join(", ")+" ]";if(n instanceof Uint8Array){const e="0123456789abcdef";let t="0x";for(let r=0;r<n.length;r++)t+=e[n[r]>>4],t+=e[n[r]&15];return t}if(typeof n=="object"&&typeof n.toJSON=="function")return $t(n.toJSON());switch(typeof n){case"boolean":case"symbol":return n.toString();case"bigint":return BigInt(n).toString();case"number":return n.toString();case"string":return JSON.stringify(n);case"object":{const e=Object.keys(n);return e.sort(),"{ "+e.map(t=>`${$t(t)}: ${$t(n[t])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Ur(n,e){return n&&n.code===e}function Oo(n){return Ur(n,"CALL_EXCEPTION")}function nn(n,e,t){{const s=[];if(t){if("message"in t||"code"in t||"name"in t)throw new Error(`value will overwrite populated values: ${$t(t)}`);for(const i in t){const o=t[i];s.push(i+"="+$t(o))}}s.push(`code=${e}`),s.push(`version=${mh}`),s.length&&(n+=" ("+s.join(", ")+")")}let r;switch(e){case"INVALID_ARGUMENT":r=new TypeError(n);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":r=new RangeError(n);break;default:r=new Error(n)}return k(r,{code:e}),t&&Object.assign(r,t),r}function T(n,e,t,r){if(!n)throw nn(e,t,r)}function E(n,e,t,r){T(n,e,"INVALID_ARGUMENT",{argument:t,value:r})}function To(n,e,t){t==null&&(t=""),t&&(t=": "+t),T(n>=e,"missing arguemnt"+t,"MISSING_ARGUMENT",{count:n,expectedCount:e}),T(n<=e,"too many arguemnts"+t,"UNEXPECTED_ARGUMENT",{count:n,expectedCount:e})}const wh=["NFD","NFC","NFKD","NFKC"].reduce((n,e)=>{try{if("test".normalize(e)!=="test")throw new Error("bad");if(e==="NFD"){const t=String.fromCharCode(233).normalize("NFD"),r=String.fromCharCode(101,769);if(t!==r)throw new Error("broken")}n.push(e)}catch{}return n},[]);function bh(n){T(wh.indexOf(n)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:n}})}function ws(n,e,t){if(t==null&&(t=""),n!==e){let r=t,s="new";t&&(r+=".",s+=" "+t),T(!1,`private constructor; use ${r}from* methods`,"UNSUPPORTED_OPERATION",{operation:s})}}function Ao(n,e,t){if(n instanceof Uint8Array)return t?new Uint8Array(n):n;if(typeof n=="string"&&n.match(/^0x([0-9a-f][0-9a-f])*$/i)){const r=new Uint8Array((n.length-2)/2);let s=2;for(let i=0;i<r.length;i++)r[i]=parseInt(n.substring(s,s+2),16),s+=2;return r}E(!1,"invalid BytesLike value",e||"value",n)}function He(n,e){return Ao(n,e,!1)}function je(n,e){return Ao(n,e,!0)}function Ye(n,e){return!(typeof n!="string"||!n.match(/^0x[0-9A-Fa-f]*$/)||typeof e=="number"&&n.length!==2+2*e||e===!0&&n.length%2!==0)}const ii="0123456789abcdef";function q(n){const e=He(n);let t="0x";for(let r=0;r<e.length;r++){const s=e[r];t+=ii[(s&240)>>4]+ii[s&15]}return t}function Ft(n){return"0x"+n.map(e=>q(e).substring(2)).join("")}function St(n,e,t){const r=He(n);return t!=null&&t>r.length&&T(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:t}),q(r.slice(e??0,t??r.length))}function vh(n,e,t){const r=He(n);T(e>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:e,offset:e+1});const s=new Uint8Array(e);return s.fill(0),t?s.set(r,e-r.length):s.set(r,0),q(s)}function _h(n,e){return vh(n,e,!0)}const sn=BigInt(0),we=BigInt(1),Ct=9007199254740991;function Eh(n,e){const t=on(n,"value"),r=BigInt(Ve(e,"width"));if(T(t>>r===sn,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:n}),t>>r-we){const s=(we<<r)-we;return-((~t&s)+we)}return t}function xh(n,e){let t=xt(n,"value");const r=BigInt(Ve(e,"width")),s=we<<r-we;if(t<sn){t=-t,T(t<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});const i=(we<<r)-we;return(~t&i)+we}else T(t<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});return t}function vr(n,e){const t=on(n,"value"),r=BigInt(Ve(e,"bits"));return t&(we<<r)-we}function xt(n,e){switch(typeof n){case"bigint":return n;case"number":return E(Number.isInteger(n),"underflow",e||"value",n),E(n>=-Ct&&n<=Ct,"overflow",e||"value",n),BigInt(n);case"string":try{if(n==="")throw new Error("empty string");return n[0]==="-"&&n[1]!=="-"?-BigInt(n.substring(1)):BigInt(n)}catch(t){E(!1,`invalid BigNumberish string: ${t.message}`,e||"value",n)}}E(!1,"invalid BigNumberish value",e||"value",n)}function on(n,e){const t=xt(n,e);return T(t>=sn,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:n}),t}const oi="0123456789abcdef";function So(n){if(n instanceof Uint8Array){let e="0x0";for(const t of n)e+=oi[t>>4],e+=oi[t&15];return BigInt(e)}return xt(n)}function Ve(n,e){switch(typeof n){case"bigint":return E(n>=-Ct&&n<=Ct,"overflow",e||"value",n),Number(n);case"number":return E(Number.isInteger(n),"underflow",e||"value",n),E(n>=-Ct&&n<=Ct,"overflow",e||"value",n),n;case"string":try{if(n==="")throw new Error("empty string");return Ve(BigInt(n),e)}catch(t){E(!1,`invalid numeric string: ${t.message}`,e||"value",n)}}E(!1,"invalid numeric value",e||"value",n)}function Oh(n){return Ve(So(n))}function ko(n,e){let r=on(n,"value").toString(16);if(e==null)r.length%2&&(r="0"+r);else{const s=Ve(e,"width");for(T(s*2>=r.length,`value exceeds width (${s} bits)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:n});r.length<s*2;)r="0"+r}return"0x"+r}function Th(n){const e=on(n,"value");if(e===sn)return new Uint8Array([]);let t=e.toString(16);t.length%2&&(t="0"+t);const r=new Uint8Array(t.length/2);for(let s=0;s<r.length;s++){const i=s*2;r[s]=parseInt(t.substring(i,i+2),16)}return r}var Dt;class Ah{constructor(e,t,r){m(this,"filter");m(this,"emitter");U(this,Dt,void 0);C(this,Dt,t),k(this,{emitter:e,filter:r})}async removeListener(){v(this,Dt)!=null&&await this.emitter.off(this.filter,v(this,Dt))}}Dt=new WeakMap;function Sh(n,e,t,r,s){E(!1,`invalid codepoint at offset ${e}; ${n}`,"bytes",t)}function Ro(n,e,t,r,s){if(n==="BAD_PREFIX"||n==="UNEXPECTED_CONTINUE"){let i=0;for(let o=e+1;o<t.length&&t[o]>>6===2;o++)i++;return i}return n==="OVERRUN"?t.length-e-1:0}function kh(n,e,t,r,s){return n==="OVERLONG"?(E(typeof s=="number","invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),Ro(n,e,t))}const Rh=Object.freeze({error:Sh,ignore:Ro,replace:kh});function Ph(n,e){e==null&&(e=Rh.error);const t=He(n,"bytes"),r=[];let s=0;for(;s<t.length;){const i=t[s++];if(!(i>>7)){r.push(i);continue}let o=null,a=null;if((i&224)===192)o=1,a=127;else if((i&240)===224)o=2,a=2047;else if((i&248)===240)o=3,a=65535;else{(i&192)===128?s+=e("UNEXPECTED_CONTINUE",s-1,t,r):s+=e("BAD_PREFIX",s-1,t,r);continue}if(s-1+o>=t.length){s+=e("OVERRUN",s-1,t,r);continue}let c=i&(1<<8-o-1)-1;for(let u=0;u<o;u++){let l=t[s];if((l&192)!=128){s+=e("MISSING_CONTINUE",s,t,r),c=null;break}c=c<<6|l&63,s++}if(c!==null){if(c>1114111){s+=e("OUT_OF_RANGE",s-1-o,t,r,c);continue}if(c>=55296&&c<=57343){s+=e("UTF16_SURROGATE",s-1-o,t,r,c);continue}if(c<=a){s+=e("OVERLONG",s-1-o,t,r,c);continue}r.push(c)}}return r}function Po(n,e){e!=null&&(bh(e),n=n.normalize(e));let t=[];for(let r=0;r<n.length;r++){const s=n.charCodeAt(r);if(s<128)t.push(s);else if(s<2048)t.push(s>>6|192),t.push(s&63|128);else if((s&64512)==55296){r++;const i=n.charCodeAt(r);E(r<n.length&&(i&64512)===56320,"invalid surrogate pair","str",n);const o=65536+((s&1023)<<10)+(i&1023);t.push(o>>18|240),t.push(o>>12&63|128),t.push(o>>6&63|128),t.push(o&63|128)}else t.push(s>>12|224),t.push(s>>6&63|128),t.push(s&63|128)}return new Uint8Array(t)}function Nh(n){return n.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join("")}function $h(n,e){return Nh(Ph(n,e))}const Q=32,Hn=new Uint8Array(Q),Ch=["then"],_r={};function Er(n,e){const t=new Error(`deferred error during ABI decoding triggered accessing ${n}`);throw t.error=e,t}var Ke;const Qt=class extends Array{constructor(...t){const r=t[0];let s=t[1],i=(t[2]||[]).slice(),o=!0;r!==_r&&(s=t,i=[],o=!1);super(s.length);U(this,Ke,void 0);s.forEach((c,u)=>{this[u]=c});const a=i.reduce((c,u)=>(typeof u=="string"&&c.set(u,(c.get(u)||0)+1),c),new Map);if(C(this,Ke,Object.freeze(s.map((c,u)=>{const l=i[u];return l!=null&&a.get(l)===1?l:null}))),!!o)return Object.freeze(this),new Proxy(this,{get:(c,u,l)=>{if(typeof u=="string"){if(u.match(/^[0-9]+$/)){const p=Ve(u,"%index");if(p<0||p>=this.length)throw new RangeError("out of result range");const f=c[p];return f instanceof Error&&Er(`index ${p}`,f),f}if(Ch.indexOf(u)>=0)return Reflect.get(c,u,l);const h=c[u];if(h instanceof Function)return function(...p){return h.apply(this===l?c:this,p)};if(!(u in c))return c.getValue.apply(this===l?c:this,[u])}return Reflect.get(c,u,l)}})}toArray(){const t=[];return this.forEach((r,s)=>{r instanceof Error&&Er(`index ${s}`,r),t.push(r)}),t}toObject(){return v(this,Ke).reduce((t,r,s)=>(T(r!=null,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),r in t||(t[r]=this.getValue(r)),t),{})}slice(t,r){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),r==null&&(r=this.length),r<0&&(r+=this.length,r<0&&(r=0)),r>this.length&&(r=this.length);const s=[],i=[];for(let o=t;o<r;o++)s.push(this[o]),i.push(v(this,Ke)[o]);return new Qt(_r,s,i)}filter(t,r){const s=[],i=[];for(let o=0;o<this.length;o++){const a=this[o];a instanceof Error&&Er(`index ${o}`,a),t.call(r,a,o,this)&&(s.push(a),i.push(v(this,Ke)[o]))}return new Qt(_r,s,i)}getValue(t){const r=v(this,Ke).indexOf(t);if(r===-1)return;const s=this[r];return s instanceof Error&&Er(`property ${JSON.stringify(t)}`,s.error),s}static fromItems(t,r){return new Qt(_r,t,r)}};let Lr=Qt;Ke=new WeakMap;function ai(n){let e=Th(n);return T(e.length<=Q,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:Q,offset:e.length}),e.length!==Q&&(e=je(Ft([Hn.slice(e.length%Q),e]))),e}class qe{constructor(e,t,r,s){m(this,"name");m(this,"type");m(this,"localName");m(this,"dynamic");k(this,{name:e,type:t,localName:r,dynamic:s},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(e,t){E(!1,e,this.localName,t)}}var De,ft,Ut,Nr;class Mn{constructor(){U(this,Ut);U(this,De,void 0);U(this,ft,void 0);C(this,De,[]),C(this,ft,0)}get data(){return Ft(v(this,De))}get length(){return v(this,ft)}appendWriter(e){return z(this,Ut,Nr).call(this,je(e.data))}writeBytes(e){let t=je(e);const r=t.length%Q;return r&&(t=je(Ft([t,Hn.slice(r)]))),z(this,Ut,Nr).call(this,t)}writeValue(e){return z(this,Ut,Nr).call(this,ai(e))}writeUpdatableValue(){const e=v(this,De).length;return v(this,De).push(Hn),C(this,ft,v(this,ft)+Q),t=>{v(this,De)[e]=ai(t)}}}De=new WeakMap,ft=new WeakMap,Ut=new WeakSet,Nr=function(e){return v(this,De).push(e),C(this,ft,v(this,ft)+e.length),e.length};var oe,he,Hr,No;const Ps=class{constructor(e,t){U(this,Hr);m(this,"allowLoose");U(this,oe,void 0);U(this,he,void 0);k(this,{allowLoose:!!t}),C(this,oe,je(e)),C(this,he,0)}get data(){return q(v(this,oe))}get dataLength(){return v(this,oe).length}get consumed(){return v(this,he)}get bytes(){return new Uint8Array(v(this,oe))}subReader(e){return new Ps(v(this,oe).slice(v(this,he)+e),this.allowLoose)}readBytes(e,t){let r=z(this,Hr,No).call(this,0,e,!!t);return C(this,he,v(this,he)+r.length),r.slice(0,e)}readValue(){return So(this.readBytes(Q))}readIndex(){return Oh(this.readBytes(Q))}};let zn=Ps;oe=new WeakMap,he=new WeakMap,Hr=new WeakSet,No=function(e,t,r){let s=Math.ceil(t/Q)*Q;return v(this,he)+s>v(this,oe).length&&(this.allowLoose&&r&&v(this,he)+t<=v(this,oe).length?s=t:T(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:je(v(this,oe)),length:v(this,oe).length,offset:v(this,he)+s})),v(this,oe).slice(v(this,he),v(this,he)+s)};function Vn(n){if(!Number.isSafeInteger(n)||n<0)throw new Error(`Wrong positive integer: ${n}`)}function Ih(n){if(typeof n!="boolean")throw new Error(`Expected boolean, not ${n}`)}function $o(n,...e){if(!(n instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(e.length>0&&!e.includes(n.length))throw new TypeError(`Expected Uint8Array of length ${e}, not of length=${n.length}`)}function Fh(n){if(typeof n!="function"||typeof n.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Vn(n.outputLen),Vn(n.blockLen)}function Dh(n,e=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(e&&n.finished)throw new Error("Hash#digest() has already been called")}function Uh(n,e){$o(n);const t=e.outputLen;if(n.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}const kt={number:Vn,bool:Ih,bytes:$o,hash:Fh,exists:Dh,output:Uh};/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Lh=n=>new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4)),jh=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!jh)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(n,e)=>e.toString(16).padStart(2,"0"));function Bh(n){if(typeof n!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof n}`);return new TextEncoder().encode(n)}function bs(n){if(typeof n=="string"&&(n=Bh(n)),!(n instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof n})`);return n}class Hh{clone(){return this._cloneInto()}}function Mh(n){const e=r=>n().update(bs(r)).digest(),t=n();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>n(),e}function zh(n){const e=(r,s)=>n(s).update(bs(r)).digest(),t=n({});return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=r=>n(r),e}const xr=BigInt(2**32-1),qn=BigInt(32);function Co(n,e=!1){return e?{h:Number(n&xr),l:Number(n>>qn&xr)}:{h:Number(n>>qn&xr)|0,l:Number(n&xr)|0}}function Vh(n,e=!1){let t=new Uint32Array(n.length),r=new Uint32Array(n.length);for(let s=0;s<n.length;s++){const{h:i,l:o}=Co(n[s],e);[t[s],r[s]]=[i,o]}return[t,r]}const qh=(n,e)=>BigInt(n>>>0)<<qn|BigInt(e>>>0),Jh=(n,e,t)=>n>>>t,Gh=(n,e,t)=>n<<32-t|e>>>t,Wh=(n,e,t)=>n>>>t|e<<32-t,Kh=(n,e,t)=>n<<32-t|e>>>t,Xh=(n,e,t)=>n<<64-t|e>>>t-32,Zh=(n,e,t)=>n>>>t-32|e<<64-t,Yh=(n,e)=>e,Qh=(n,e)=>n,ef=(n,e,t)=>n<<t|e>>>32-t,tf=(n,e,t)=>e<<t|n>>>32-t,rf=(n,e,t)=>e<<t-32|n>>>64-t,nf=(n,e,t)=>n<<t-32|e>>>64-t;function sf(n,e,t,r){const s=(e>>>0)+(r>>>0);return{h:n+t+(s/2**32|0)|0,l:s|0}}const of=(n,e,t)=>(n>>>0)+(e>>>0)+(t>>>0),af=(n,e,t,r)=>e+t+r+(n/2**32|0)|0,cf=(n,e,t,r)=>(n>>>0)+(e>>>0)+(t>>>0)+(r>>>0),uf=(n,e,t,r,s)=>e+t+r+s+(n/2**32|0)|0,lf=(n,e,t,r,s)=>(n>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(s>>>0),hf=(n,e,t,r,s,i)=>e+t+r+s+i+(n/2**32|0)|0,rr={fromBig:Co,split:Vh,toBig:qh,shrSH:Jh,shrSL:Gh,rotrSH:Wh,rotrSL:Kh,rotrBH:Xh,rotrBL:Zh,rotr32H:Yh,rotr32L:Qh,rotlSH:ef,rotlSL:tf,rotlBH:rf,rotlBL:nf,add:sf,add3L:of,add3H:af,add4L:cf,add4H:uf,add5H:hf,add5L:lf},[Io,Fo,Do]=[[],[],[]],ff=BigInt(0),Kt=BigInt(1),df=BigInt(2),pf=BigInt(7),yf=BigInt(256),mf=BigInt(113);for(let n=0,e=Kt,t=1,r=0;n<24;n++){[t,r]=[r,(2*t+3*r)%5],Io.push(2*(5*r+t)),Fo.push((n+1)*(n+2)/2%64);let s=ff;for(let i=0;i<7;i++)e=(e<<Kt^(e>>pf)*mf)%yf,e&df&&(s^=Kt<<(Kt<<BigInt(i))-Kt);Do.push(s)}const[gf,wf]=rr.split(Do,!0),ci=(n,e,t)=>t>32?rr.rotlBH(n,e,t):rr.rotlSH(n,e,t),ui=(n,e,t)=>t>32?rr.rotlBL(n,e,t):rr.rotlSL(n,e,t);function bf(n,e=24){const t=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let o=0;o<10;o++)t[o]=n[o]^n[o+10]^n[o+20]^n[o+30]^n[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=t[c],l=t[c+1],h=ci(u,l,1)^t[a],p=ui(u,l,1)^t[a+1];for(let f=0;f<50;f+=10)n[o+f]^=h,n[o+f+1]^=p}let s=n[2],i=n[3];for(let o=0;o<24;o++){const a=Fo[o],c=ci(s,i,a),u=ui(s,i,a),l=Io[o];s=n[l],i=n[l+1],n[l]=c,n[l+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=n[o+a];for(let a=0;a<10;a++)n[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}n[0]^=gf[r],n[1]^=wf[r]}t.fill(0)}class an extends Hh{constructor(e,t,r,s=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=s,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,kt.number(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Lh(this.state)}keccak(){bf(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){kt.exists(this);const{blockLen:t,state:r}=this;e=bs(e);const s=e.length;for(let i=0;i<s;){const o=Math.min(t-this.pos,s-i);for(let a=0;a<o;a++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:r,blockLen:s}=this;e[r]^=t,t&128&&r===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){kt.exists(this,!1),kt.bytes(e),this.finish();const t=this.state,{blockLen:r}=this;for(let s=0,i=e.length;s<i;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,i-s);e.set(t.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return kt.number(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(kt.output(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:s,rounds:i,enableXOF:o}=this;return e||(e=new an(t,r,s,o,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=s,e.enableXOF=o,e.destroyed=this.destroyed,e}}const rt=(n,e,t)=>Mh(()=>new an(e,n,t));rt(6,144,224/8);rt(6,136,256/8);rt(6,104,384/8);rt(6,72,512/8);rt(1,144,224/8);const vf=rt(1,136,256/8);rt(1,104,384/8);rt(1,72,512/8);const Uo=(n,e,t)=>zh((r={})=>new an(e,n,r.dkLen===void 0?t:r.dkLen,!0));Uo(31,168,128/8);Uo(31,136,256/8);let Lo=!1;const jo=function(n){return vf(n)};let Bo=jo;function tt(n){const e=He(n,"data");return q(Bo(e))}tt._=jo;tt.lock=function(){Lo=!0};tt.register=function(n){if(Lo)throw new TypeError("keccak256 is locked");Bo=n};Object.freeze(tt);const _f=BigInt(0),Ef=BigInt(36);function li(n){n=n.toLowerCase();const e=n.substring(2).split(""),t=new Uint8Array(40);for(let s=0;s<40;s++)t[s]=e[s].charCodeAt(0);const r=He(tt(t));for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&(e[s]=e[s].toUpperCase()),(r[s>>1]&15)>=8&&(e[s+1]=e[s+1].toUpperCase());return"0x"+e.join("")}const vs={};for(let n=0;n<10;n++)vs[String(n)]=String(n);for(let n=0;n<26;n++)vs[String.fromCharCode(65+n)]=String(10+n);const hi=15;function xf(n){n=n.toUpperCase(),n=n.substring(4)+n.substring(0,2)+"00";let e=n.split("").map(r=>vs[r]).join("");for(;e.length>=hi;){let r=e.substring(0,hi);e=parseInt(r,10)%97+e.substring(r.length)}let t=String(98-parseInt(e,10)%97);for(;t.length<2;)t="0"+t;return t}const Of=function(){const n={};for(let e=0;e<36;e++){const t="0123456789abcdefghijklmnopqrstuvwxyz"[e];n[t]=BigInt(e)}return n}();function Tf(n){n=n.toLowerCase();let e=_f;for(let t=0;t<n.length;t++)e=e*Ef+Of[n[t]];return e}function gt(n){if(E(typeof n=="string","invalid address","address",n),n.match(/^(0x)?[0-9a-fA-F]{40}$/)){n.startsWith("0x")||(n="0x"+n);const e=li(n);return E(!n.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===n,"bad address checksum","address",n),e}if(n.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){E(n.substring(2,4)===xf(n),"bad icap checksum","address",n);let e=Tf(n.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return li("0x"+e)}E(!1,"invalid address","address",n)}function Af(n){return n&&typeof n.getAddress=="function"}async function An(n,e){const t=await e;return(t==null||t==="0x0000000000000000000000000000000000000000")&&(T(typeof n!="string","unconfigured name","UNCONFIGURED_NAME",{value:n}),E(!1,"invalid AddressLike value; did not resolve to a value address","target",n)),gt(t)}function _s(n,e){if(typeof n=="string")return n.match(/^0x[0-9a-f]{40}$/i)?gt(n):(T(e!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),An(n,e.resolveName(n)));if(Af(n))return An(n,n.getAddress());if(n&&typeof n.then=="function")return An(n,n);E(!1,"unsupported addressable value","target",n)}const $e={};function x(n,e){let t=!1;return e<0&&(t=!0,e*=-1),new Y($e,`${t?"":"u"}int${e}`,n,{signed:t,width:e})}function N(n,e){return new Y($e,`bytes${e||""}`,n,{size:e})}const fi=Symbol.for("_ethers_typed");var dt;const Ce=class{constructor(e,t,r,s){m(this,"type");m(this,"value");U(this,dt,void 0);m(this,"_typedSymbol");s==null&&(s=null),ws($e,e,"Typed"),k(this,{_typedSymbol:fi,type:t,value:r}),C(this,dt,s),this.format()}format(){if(this.type==="array")throw new Error("");if(this.type==="dynamicArray")throw new Error("");return this.type==="tuple"?`tuple(${this.value.map(e=>e.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return v(this,dt)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return v(this,dt)===!0?-1:v(this,dt)===!1?this.value.length:null}static from(e,t){return new Ce($e,e,t)}static uint8(e){return x(e,8)}static uint16(e){return x(e,16)}static uint24(e){return x(e,24)}static uint32(e){return x(e,32)}static uint40(e){return x(e,40)}static uint48(e){return x(e,48)}static uint56(e){return x(e,56)}static uint64(e){return x(e,64)}static uint72(e){return x(e,72)}static uint80(e){return x(e,80)}static uint88(e){return x(e,88)}static uint96(e){return x(e,96)}static uint104(e){return x(e,104)}static uint112(e){return x(e,112)}static uint120(e){return x(e,120)}static uint128(e){return x(e,128)}static uint136(e){return x(e,136)}static uint144(e){return x(e,144)}static uint152(e){return x(e,152)}static uint160(e){return x(e,160)}static uint168(e){return x(e,168)}static uint176(e){return x(e,176)}static uint184(e){return x(e,184)}static uint192(e){return x(e,192)}static uint200(e){return x(e,200)}static uint208(e){return x(e,208)}static uint216(e){return x(e,216)}static uint224(e){return x(e,224)}static uint232(e){return x(e,232)}static uint240(e){return x(e,240)}static uint248(e){return x(e,248)}static uint256(e){return x(e,256)}static uint(e){return x(e,256)}static int8(e){return x(e,-8)}static int16(e){return x(e,-16)}static int24(e){return x(e,-24)}static int32(e){return x(e,-32)}static int40(e){return x(e,-40)}static int48(e){return x(e,-48)}static int56(e){return x(e,-56)}static int64(e){return x(e,-64)}static int72(e){return x(e,-72)}static int80(e){return x(e,-80)}static int88(e){return x(e,-88)}static int96(e){return x(e,-96)}static int104(e){return x(e,-104)}static int112(e){return x(e,-112)}static int120(e){return x(e,-120)}static int128(e){return x(e,-128)}static int136(e){return x(e,-136)}static int144(e){return x(e,-144)}static int152(e){return x(e,-152)}static int160(e){return x(e,-160)}static int168(e){return x(e,-168)}static int176(e){return x(e,-176)}static int184(e){return x(e,-184)}static int192(e){return x(e,-192)}static int200(e){return x(e,-200)}static int208(e){return x(e,-208)}static int216(e){return x(e,-216)}static int224(e){return x(e,-224)}static int232(e){return x(e,-232)}static int240(e){return x(e,-240)}static int248(e){return x(e,-248)}static int256(e){return x(e,-256)}static int(e){return x(e,-256)}static bytes1(e){return N(e,1)}static bytes2(e){return N(e,2)}static bytes3(e){return N(e,3)}static bytes4(e){return N(e,4)}static bytes5(e){return N(e,5)}static bytes6(e){return N(e,6)}static bytes7(e){return N(e,7)}static bytes8(e){return N(e,8)}static bytes9(e){return N(e,9)}static bytes10(e){return N(e,10)}static bytes11(e){return N(e,11)}static bytes12(e){return N(e,12)}static bytes13(e){return N(e,13)}static bytes14(e){return N(e,14)}static bytes15(e){return N(e,15)}static bytes16(e){return N(e,16)}static bytes17(e){return N(e,17)}static bytes18(e){return N(e,18)}static bytes19(e){return N(e,19)}static bytes20(e){return N(e,20)}static bytes21(e){return N(e,21)}static bytes22(e){return N(e,22)}static bytes23(e){return N(e,23)}static bytes24(e){return N(e,24)}static bytes25(e){return N(e,25)}static bytes26(e){return N(e,26)}static bytes27(e){return N(e,27)}static bytes28(e){return N(e,28)}static bytes29(e){return N(e,29)}static bytes30(e){return N(e,30)}static bytes31(e){return N(e,31)}static bytes32(e){return N(e,32)}static address(e){return new Ce($e,"address",e)}static bool(e){return new Ce($e,"bool",!!e)}static bytes(e){return new Ce($e,"bytes",e)}static string(e){return new Ce($e,"string",e)}static array(e,t){throw new Error("not implemented yet")}static tuple(e,t){throw new Error("not implemented yet")}static overrides(e){return new Ce($e,"overrides",Object.assign({},e))}static isTyped(e){return e&&e._typedSymbol===fi}static dereference(e,t){if(Ce.isTyped(e)){if(e.type!==t)throw new Error(`invalid type: expecetd ${t}, got ${e.type}`);return e.value}return e}};let Y=Ce;dt=new WeakMap;class Sf extends qe{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){let r=Y.dereference(t,"string");try{r=gt(r)}catch(s){return this._throwError(s.message,t)}return e.writeValue(r)}decode(e){return gt(ko(e.readValue(),20))}}class kf extends qe{constructor(t){super(t.name,t.type,"_",t.dynamic);m(this,"coder");this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,r){return this.coder.encode(t,r)}decode(t){return this.coder.decode(t)}}function Ho(n,e,t){let r=[];if(Array.isArray(t))r=t;else if(t&&typeof t=="object"){let c={};r=e.map(u=>{const l=u.localName;return T(l,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:t}),T(!c[l],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:t}),c[l]=!0,t[l]})}else E(!1,"invalid tuple value","tuple",t);E(e.length===r.length,"types/value length mismatch","tuple",t);let s=new Mn,i=new Mn,o=[];e.forEach((c,u)=>{let l=r[u];if(c.dynamic){let h=i.length;c.encode(i,l);let p=s.writeUpdatableValue();o.push(f=>{p(f+h)})}else c.encode(s,l)}),o.forEach(c=>{c(s.length)});let a=n.appendWriter(s);return a+=n.appendWriter(i),a}function Mo(n,e){let t=[],r=[],s=n.subReader(0);return e.forEach(i=>{let o=null;if(i.dynamic){let a=n.readIndex(),c=s.subReader(a);try{o=i.decode(c)}catch(u){if(Ur(u,"BUFFER_OVERRUN"))throw u;o=u,o.baseType=i.name,o.name=i.localName,o.type=i.type}}else try{o=i.decode(n)}catch(a){if(Ur(a,"BUFFER_OVERRUN"))throw a;o=a,o.baseType=i.name,o.name=i.localName,o.type=i.type}if(o==null)throw new Error("investigate");t.push(o),r.push(i.localName||null)}),Lr.fromItems(t,r)}class Rf extends qe{constructor(t,r,s){const i=t.type+"["+(r>=0?r:"")+"]",o=r===-1||t.dynamic;super("array",i,s,o);m(this,"coder");m(this,"length");k(this,{coder:t,length:r})}defaultValue(){const t=this.coder.defaultValue(),r=[];for(let s=0;s<this.length;s++)r.push(t);return r}encode(t,r){const s=Y.dereference(r,"array");Array.isArray(s)||this._throwError("expected array value",s);let i=this.length;i===-1&&(i=s.length,t.writeValue(s.length)),To(s.length,i,"coder array"+(this.localName?" "+this.localName:""));let o=[];for(let a=0;a<s.length;a++)o.push(this.coder);return Ho(t,o,s)}decode(t){let r=this.length;r===-1&&(r=t.readIndex(),T(r*Q<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:r*Q,length:t.dataLength}));let s=[];for(let i=0;i<r;i++)s.push(new kf(this.coder));return Mo(t,s)}}class Pf extends qe{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){const r=Y.dereference(t,"bool");return e.writeValue(r?1:0)}decode(e){return!!e.readValue()}}class zo extends qe{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=je(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readIndex(),!0)}}class Nf extends zo{constructor(e){super("bytes",e)}decode(e){return q(super.decode(e))}}class $f extends qe{constructor(t,r){let s="bytes"+String(t);super(s,s,r,!1);m(this,"size");k(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(t,r){let s=je(Y.dereference(r,this.type));return s.length!==this.size&&this._throwError("incorrect data length",r),t.writeBytes(s)}decode(t){return q(t.readBytes(this.size))}}const Cf=new Uint8Array([]);class If extends qe{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return t!=null&&this._throwError("not null",t),e.writeBytes(Cf)}decode(e){return e.readBytes(0),null}}const Ff=BigInt(0),Df=BigInt(1),Uf=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Lf extends qe{constructor(t,r,s){const i=(r?"int":"uint")+t*8;super(i,i,s,!1);m(this,"size");m(this,"signed");k(this,{size:t,signed:r},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,r){let s=xt(Y.dereference(r,this.type)),i=vr(Uf,Q*8);if(this.signed){let o=vr(i,this.size*8-1);(s>o||s<-(o+Df))&&this._throwError("value out-of-bounds",r),s=xh(s,8*Q)}else(s<Ff||s>vr(i,this.size*8))&&this._throwError("value out-of-bounds",r);return t.writeValue(s)}decode(t){let r=vr(t.readValue(),this.size*8);return this.signed&&(r=Eh(r,this.size*8)),r}}class jf extends zo{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Po(Y.dereference(t,"string")))}decode(e){return $h(super.decode(e))}}class Or extends qe{constructor(t,r){let s=!1;const i=[];t.forEach(a=>{a.dynamic&&(s=!0),i.push(a.type)});const o="tuple("+i.join(",")+")";super("tuple",o,r,s);m(this,"coders");k(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(s=>{t.push(s.defaultValue())});const r=this.coders.reduce((s,i)=>{const o=i.localName;return o&&(s[o]||(s[o]=0),s[o]++),s},{});return this.coders.forEach((s,i)=>{let o=s.localName;!o||r[o]!==1||(o==="length"&&(o="_length"),t[o]==null&&(t[o]=t[i]))}),Object.freeze(t)}encode(t,r){const s=Y.dereference(r,"tuple");return Ho(t,this.coders,s)}decode(t){return Mo(t,this.coders)}}function nr(n){return tt(Po(n))}function Sn(n,e){return{address:gt(n),storageKeys:e.map((t,r)=>(E(Ye(t,32),"invalid slot",`storageKeys[${r}]`,t),t.toLowerCase()))}}function Bf(n){if(Array.isArray(n))return n.map((t,r)=>Array.isArray(t)?(E(t.length===2,"invalid slot set",`value[${r}]`,t),Sn(t[0],t[1])):(E(t!=null&&typeof t=="object","invalid address-slot set","value",n),Sn(t.address,t.storageKeys)));E(n!=null&&typeof n=="object","invalid access list","value",n);const e=Object.keys(n).map(t=>{const r=n[t].reduce((s,i)=>(s[i]=!0,s),{});return Sn(t,Object.keys(r).sort())});return e.sort((t,r)=>t.address.localeCompare(r.address)),e}function ee(n){const e=new Set;return n.forEach(t=>e.add(t)),Object.freeze(e)}const Vo="constant external internal payable private public pure view",Hf=ee(Vo.split(" ")),qo="constructor error event fallback function receive struct",Jo=ee(qo.split(" ")),Go="calldata memory storage payable indexed",Mf=ee(Go.split(" ")),zf="tuple returns",Vf=[qo,Go,zf,Vo].join(" "),qf=ee(Vf.split(" ")),Jf={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},Gf=new RegExp("^(\\s*)"),Wf=new RegExp("^([0-9]+)"),Kf=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Wo=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Ko=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var W,me,ir,Jn;const Mr=class{constructor(e){U(this,ir);U(this,W,void 0);U(this,me,void 0);C(this,W,0),C(this,me,e.slice())}get offset(){return v(this,W)}get length(){return v(this,me).length-v(this,W)}clone(){return new Mr(v(this,me))}reset(){C(this,W,0)}popKeyword(e){const t=this.peek();if(t.type!=="KEYWORD"||!e.has(t.text))throw new Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e)throw new Error(`expected ${e}; got ${JSON.stringify(this.peek())}`);return this.pop().text}popParen(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=z(this,ir,Jn).call(this,v(this,W)+1,e.match+1);return C(this,W,e.match+1),t}popParams(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=[];for(;v(this,W)<e.match-1;){const r=this.peek().linkNext;t.push(z(this,ir,Jn).call(this,v(this,W)+1,r)),C(this,W,r)}return C(this,W,e.match+1),t}peek(){if(v(this,W)>=v(this,me).length)throw new Error("out-of-bounds");return v(this,me)[v(this,W)]}peekKeyword(e){const t=this.peekType("KEYWORD");return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;const t=this.peek();return t.type===e?t.text:null}pop(){const e=this.peek();return $s(this,W)._++,e}toString(){const e=[];for(let t=v(this,W);t<v(this,me).length;t++){const r=v(this,me)[t];e.push(`${r.type}:${r.text}`)}return`<TokenString ${e.join(" ")}>`}};let be=Mr;W=new WeakMap,me=new WeakMap,ir=new WeakSet,Jn=function(e=0,t=0){return new Mr(v(this,me).slice(e,t).map(r=>Object.freeze(Object.assign({},r,{match:r.match-e,linkBack:r.linkBack-e,linkNext:r.linkNext-e}))))};function nt(n){const e=[],t=o=>{const a=i<n.length?JSON.stringify(n[i]):"$EOI";throw new Error(`invalid token ${a} at ${i}: ${o}`)};let r=[],s=[],i=0;for(;i<n.length;){let o=n.substring(i),a=o.match(Gf);a&&(i+=a[1].length,o=n.substring(i));const c={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:i,value:-1};e.push(c);let u=Jf[o[0]]||"";if(u){if(c.type=u,c.text=o[0],i++,u==="OPEN_PAREN")r.push(e.length-1),s.push(e.length-1);else if(u=="CLOSE_PAREN")r.length===0&&t("no matching open bracket"),c.match=r.pop(),e[c.match].match=e.length-1,c.depth--,c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1;else if(u==="COMMA")c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1,s.push(e.length-1);else if(u==="OPEN_BRACKET")c.type="BRACKET";else if(u==="CLOSE_BRACKET"){let l=e.pop().text;if(e.length>0&&e[e.length-1].type==="NUMBER"){const h=e.pop().text;l=h+l,e[e.length-1].value=Ve(h)}if(e.length===0||e[e.length-1].type!=="BRACKET")throw new Error("missing opening bracket");e[e.length-1].text+=l}continue}if(a=o.match(Kf),a){if(c.text=a[1],i+=c.text.length,qf.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(Ko)){c.type="TYPE";continue}c.type="ID";continue}if(a=o.match(Wf),a){c.text=a[1],c.type="NUMBER",i+=c.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${i}`)}return new be(e.map(o=>Object.freeze(o)))}function di(n,e){let t=[];for(const r in e.keys())n.has(r)&&t.push(r);if(t.length>1)throw new Error(`conflicting types: ${t.join(", ")}`)}function cn(n,e){if(e.peekKeyword(Jo)){const t=e.pop().text;if(t!==n)throw new Error(`expected ${n}, got ${t}`)}return e.popType("ID")}function Me(n,e){const t=new Set;for(;;){const r=n.peekType("KEYWORD");if(r==null||e&&!e.has(r))break;if(n.pop(),t.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);t.add(r)}return Object.freeze(t)}function Xo(n){let e=Me(n,Hf);return di(e,ee("constant payable nonpayable".split(" "))),di(e,ee("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function Be(n,e){return n.popParams().map(t=>K.from(t,e))}function Zo(n){if(n.peekType("AT")){if(n.pop(),n.peekType("NUMBER"))return xt(n.pop().text);throw new Error("invalid gas")}return null}function wt(n){if(n.length)throw new Error(`unexpected tokens: ${n.toString()}`)}const Xf=new RegExp(/^(.*)\[([0-9]*)\]$/);function pi(n){const e=n.match(Ko);if(E(e,"invalid type","type",n),n==="uint")return"uint256";if(n==="int")return"int256";if(e[2]){const t=parseInt(e[2]);E(t!==0&&t<=32,"invalid bytes length","type",n)}else if(e[3]){const t=parseInt(e[3]);E(t!==0&&t<=256&&t%8===0,"invalid numeric width","type",n)}return n}const B={},se=Symbol.for("_ethers_internal"),yi="_ParamTypeInternal",mi="_ErrorInternal",gi="_EventInternal",wi="_ConstructorInternal",bi="_FallbackInternal",vi="_FunctionInternal",_i="_StructInternal";var Lt,$r;const le=class{constructor(e,t,r,s,i,o,a,c){U(this,Lt);m(this,"name");m(this,"type");m(this,"baseType");m(this,"indexed");m(this,"components");m(this,"arrayLength");m(this,"arrayChildren");if(ws(e,B,"ParamType"),Object.defineProperty(this,se,{value:yi}),o&&(o=Object.freeze(o.slice())),s==="array"){if(a==null||c==null)throw new Error("")}else if(a!=null||c!=null)throw new Error("");if(s==="tuple"){if(o==null)throw new Error("")}else if(o!=null)throw new Error("");k(this,{name:t,type:r,baseType:s,indexed:i,components:o,arrayLength:a,arrayChildren:c})}format(e){if(e==null&&(e="sighash"),e==="json"){let r={type:this.baseType==="tuple"?"tuple":this.type,name:this.name||void 0};return typeof this.indexed=="boolean"&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map(s=>JSON.parse(s.format(e)))),JSON.stringify(r)}let t="";return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?(e!=="sighash"&&(t+=this.type),t+="("+this.components.map(r=>r.format(e)).join(e==="full"?", ":",")+")"):t+=this.type,e!=="sighash"&&(this.indexed===!0&&(t+=" indexed"),e==="full"&&this.name&&(t+=" "+this.name)),t}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw new Error("array is wrong length");const r=this;return e.map(s=>r.arrayChildren.walk(s,t))}if(this.isTuple()){if(!Array.isArray(e))throw new Error("invalid tuple value");if(e.length!==this.components.length)throw new Error("array is wrong length");const r=this;return e.map((s,i)=>r.components[i].walk(s,t))}return t(this.type,e)}async walkAsync(e,t){const r=[],s=[e];return z(this,Lt,$r).call(this,r,e,t,i=>{s[0]=i}),r.length&&await Promise.all(r),s[0]}static from(e,t){if(le.isParamType(e))return e;if(typeof e=="string")return le.from(nt(e),t);if(e instanceof be){let a="",c="",u=null;Me(e,ee(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(c="tuple",u=e.popParams().map(w=>le.from(w)),a=`tuple(${u.map(w=>w.format()).join(",")})`):(a=pi(e.popType("TYPE")),c=a);let l=null,h=null;for(;e.length&&e.peekType("BRACKET");){const w=e.pop();l=new le(B,"",a,c,null,u,h,l),h=w.value,a+=w.text,c="array",u=null}let p=null;if(Me(e,Mf).has("indexed")){if(!t)throw new Error("");p=!0}const d=e.peekType("ID")?e.pop().text:"";if(e.length)throw new Error("leftover tokens");return new le(B,d,a,c,p,u,h,l)}const r=e.name;E(!r||typeof r=="string"&&r.match(Wo),"invalid name","obj.name",r);let s=e.indexed;s!=null&&(E(t,"parameter cannot be indexed","obj.indexed",e.indexed),s=!!s);let i=e.type,o=i.match(Xf);if(o){const a=parseInt(o[2]||"-1"),c=le.from({type:o[1],components:e.components});return new le(B,r||"",i,"array",s,null,a,c)}if(i==="tuple"||i.startsWith("tuple(")||i.startsWith("(")){const a=e.components!=null?e.components.map(u=>le.from(u)):null;return new le(B,r||"",i,"tuple",s,a,null,null)}return i=pi(e.type),new le(B,r||"",i,i,s,null,null,null)}static isParamType(e){return e&&e[se]===yi}};let K=le;Lt=new WeakSet,$r=function(e,t,r,s){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const o=this.arrayChildren,a=t.slice();a.forEach((c,u)=>{var l;z(l=o,Lt,$r).call(l,e,c,r,h=>{a[u]=h})}),s(a);return}if(this.isTuple()){const o=this.components;let a;if(Array.isArray(t))a=t.slice();else{if(t==null||typeof t!="object")throw new Error("invalid tuple value");a=o.map(c=>{if(!c.name)throw new Error("cannot use object value with unnamed components");if(!(c.name in t))throw new Error(`missing value for component ${c.name}`);return t[c.name]})}if(a.length!==this.components.length)throw new Error("array is wrong length");a.forEach((c,u)=>{var l;z(l=o[u],Lt,$r).call(l,e,c,r,h=>{a[u]=h})}),s(a);return}const i=r(this.type,t);i.then?e.push(async function(){s(await i)}()):s(i)};class bt{constructor(e,t,r){m(this,"type");m(this,"inputs");ws(e,B,"Fragment"),r=Object.freeze(r.slice()),k(this,{type:t,inputs:r})}static from(e){if(typeof e=="string"){try{bt.from(JSON.parse(e))}catch{}return bt.from(nt(e))}if(e instanceof be)switch(e.peekKeyword(Jo)){case"constructor":return Ue.from(e);case"error":return re.from(e);case"event":return Se.from(e);case"fallback":case"receive":return Ie.from(e);case"function":return ke.from(e);case"struct":return mt.from(e)}else if(typeof e=="object"){switch(e.type){case"constructor":return Ue.from(e);case"error":return re.from(e);case"event":return Se.from(e);case"fallback":case"receive":return Ie.from(e);case"function":return ke.from(e);case"struct":return mt.from(e)}T(!1,`unsupported type: ${e.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}E(!1,"unsupported frgament object","obj",e)}static isConstructor(e){return Ue.isFragment(e)}static isError(e){return re.isFragment(e)}static isEvent(e){return Se.isFragment(e)}static isFunction(e){return ke.isFragment(e)}static isStruct(e){return mt.isFragment(e)}}class un extends bt{constructor(t,r,s,i){super(t,r,i);m(this,"name");E(typeof s=="string"&&s.match(Wo),"invalid identifier","name",s),i=Object.freeze(i.slice()),k(this,{name:s})}}function sr(n,e){return"("+e.map(t=>t.format(n)).join(n==="full"?", ":",")+")"}class re extends un{constructor(e,t,r){super(e,"error",t,r),Object.defineProperty(this,se,{value:mi})}get selector(){return nr(this.format("sighash")).substring(0,10)}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(e)))});const t=[];return e!=="sighash"&&t.push("error"),t.push(this.name+sr(e,this.inputs)),t.join(" ")}static from(e){if(re.isFragment(e))return e;if(typeof e=="string")return re.from(nt(e));if(e instanceof be){const t=cn("error",e),r=Be(e);return wt(e),new re(B,t,r)}return new re(B,e.name,e.inputs?e.inputs.map(K.from):[])}static isFragment(e){return e&&e[se]===mi}}class Se extends un{constructor(t,r,s,i){super(t,"event",r,s);m(this,"anonymous");Object.defineProperty(this,se,{value:gi}),k(this,{anonymous:i})}get topicHash(){return nr(this.format("sighash"))}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const r=[];return t!=="sighash"&&r.push("event"),r.push(this.name+sr(t,this.inputs)),t!=="sighash"&&this.anonymous&&r.push("anonymous"),r.join(" ")}static getTopicHash(t,r){return r=(r||[]).map(i=>K.from(i)),new Se(B,t,r,!1).topicHash}static from(t){if(Se.isFragment(t))return t;if(typeof t=="string")return Se.from(nt(t));if(t instanceof be){const r=cn("event",t),s=Be(t,!0),i=!!Me(t,ee(["anonymous"])).has("anonymous");return wt(t),new Se(B,r,s,i)}return new Se(B,t.name,t.inputs?t.inputs.map(r=>K.from(r,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[se]===gi}}class Ue extends bt{constructor(t,r,s,i,o){super(t,r,s);m(this,"payable");m(this,"gas");Object.defineProperty(this,se,{value:wi}),k(this,{payable:i,gas:o})}format(t){if(T(t!=null&&t!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),t==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const r=[`constructor${sr(t,this.inputs)}`];return r.push(this.payable?"payable":"nonpayable"),this.gas!=null&&r.push(`@${this.gas.toString()}`),r.join(" ")}static from(t){if(Ue.isFragment(t))return t;if(typeof t=="string")return Ue.from(nt(t));if(t instanceof be){Me(t,ee(["constructor"]));const r=Be(t),s=!!Me(t,ee(["payable"])).has("payable"),i=Zo(t);return wt(t),new Ue(B,"constructor",r,s,i)}return new Ue(B,"constructor",t.inputs?t.inputs.map(K.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[se]===wi}}class Ie extends bt{constructor(t,r,s){super(t,"fallback",r);m(this,"payable");Object.defineProperty(this,se,{value:bi}),k(this,{payable:s})}format(t){const r=this.inputs.length===0?"receive":"fallback";if(t==="json"){const s=this.payable?"payable":"nonpayable";return JSON.stringify({type:r,stateMutability:s})}return`${r}()${this.payable?" payable":""}`}static from(t){if(Ie.isFragment(t))return t;if(typeof t=="string")return Ie.from(nt(t));if(t instanceof be){const r=t.toString(),s=t.peekKeyword(ee(["fallback","receive"]));if(E(s,"type must be fallback or receive","obj",r),t.popKeyword(ee(["fallback","receive"]))==="receive"){const c=Be(t);return E(c.length===0,"receive cannot have arguments","obj.inputs",c),Me(t,ee(["payable"])),wt(t),new Ie(B,[],!0)}let o=Be(t);o.length?E(o.length===1&&o[0].type==="bytes","invalid fallback inputs","obj.inputs",o.map(c=>c.format("minimal")).join(", ")):o=[K.from("bytes")];const a=Xo(t);if(E(a==="nonpayable"||a==="payable","fallback cannot be constants","obj.stateMutability",a),Me(t,ee(["returns"])).has("returns")){const c=Be(t);E(c.length===1&&c[0].type==="bytes","invalid fallback outputs","obj.outputs",c.map(u=>u.format("minimal")).join(", "))}return wt(t),new Ie(B,o,a==="payable")}if(t.type==="receive")return new Ie(B,[],!0);if(t.type==="fallback"){const r=[K.from("bytes")],s=t.stateMutability==="payable";return new Ie(B,r,s)}E(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[se]===bi}}class ke extends un{constructor(t,r,s,i,o,a){super(t,"function",r,i);m(this,"constant");m(this,"outputs");m(this,"stateMutability");m(this,"payable");m(this,"gas");Object.defineProperty(this,se,{value:vi}),o=Object.freeze(o.slice()),k(this,{constant:s==="view"||s==="pure",gas:a,outputs:o,payable:s==="payable",stateMutability:s})}get selector(){return nr(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t))),outputs:this.outputs.map(s=>JSON.parse(s.format(t)))});const r=[];return t!=="sighash"&&r.push("function"),r.push(this.name+sr(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&r.push(this.stateMutability),this.outputs&&this.outputs.length&&(r.push("returns"),r.push(sr(t,this.outputs))),this.gas!=null&&r.push(`@${this.gas.toString()}`)),r.join(" ")}static getSelector(t,r){return r=(r||[]).map(i=>K.from(i)),new ke(B,t,"view",r,[],null).selector}static from(t){if(ke.isFragment(t))return t;if(typeof t=="string")return ke.from(nt(t));if(t instanceof be){const r=cn("function",t),s=Be(t),i=Xo(t);let o=[];Me(t,ee(["returns"])).has("returns")&&(o=Be(t));const a=Zo(t);return wt(t),new ke(B,r,i,s,o,a)}return new ke(B,t.name,t.stateMutability,t.inputs?t.inputs.map(K.from):[],t.outputs?t.outputs.map(K.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[se]===vi}}class mt extends un{constructor(e,t,r){super(e,"struct",t,r),Object.defineProperty(this,se,{value:_i})}format(){throw new Error("@TODO")}static from(e){if(typeof e=="string")return mt.from(nt(e));if(e instanceof be){const t=cn("struct",e),r=Be(e);return wt(e),new mt(B,t,r)}return new mt(B,e.name,e.inputs?e.inputs.map(K.from):[])}static isFragment(e){return e&&e[se]===_i}}const ve=new Map;ve.set(0,"GENERIC_PANIC");ve.set(1,"ASSERT_FALSE");ve.set(17,"OVERFLOW");ve.set(18,"DIVIDE_BY_ZERO");ve.set(33,"ENUM_RANGE_ERROR");ve.set(34,"BAD_STORAGE_DATA");ve.set(49,"STACK_UNDERFLOW");ve.set(50,"ARRAY_RANGE_ERROR");ve.set(65,"OUT_OF_MEMORY");ve.set(81,"UNINITIALIZED_FUNCTION_CALL");const Zf=new RegExp(/^bytes([0-9]*)$/),Yf=new RegExp(/^(u?int)([0-9]*)$/);let kn=null;function Qf(n,e,t,r){let s="missing revert data",i=null;const o=null;let a=null;if(t){s="execution reverted";const u=He(t);if(t=q(t),u.length===0)s+=" (no data present; likely require(false) occurred",i="require(false)";else if(u.length%32!==4)s+=" (could not decode reason; invalid data length)";else if(q(u.slice(0,4))==="0x08c379a0")try{i=r.decode(["string"],u.slice(4))[0],a={signature:"Error(string)",name:"Error",args:[i]},s+=`: ${JSON.stringify(i)}`}catch{s+=" (could not decode reason; invalid string data)"}else if(q(u.slice(0,4))==="0x4e487b71")try{const l=Number(r.decode(["uint256"],u.slice(4))[0]);a={signature:"Panic(uint256)",name:"Panic",args:[l]},i=`Panic due to ${ve.get(l)||"UNKNOWN"}(${l})`,s+=`: ${i}`}catch{s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}const c={to:e.to?gt(e.to):null,data:e.data||"0x"};return e.from&&(c.from=gt(e.from)),nn(s,"CALL_EXCEPTION",{action:n,data:t,reason:i,transaction:c,invocation:o,revert:a})}var Xe,Pt;const zr=class{constructor(){U(this,Xe)}getDefaultValue(e){const t=e.map(s=>z(this,Xe,Pt).call(this,K.from(s)));return new Or(t,"_").defaultValue()}encode(e,t){To(t.length,e.length,"types/values length mismatch");const r=e.map(o=>z(this,Xe,Pt).call(this,K.from(o))),s=new Or(r,"_"),i=new Mn;return s.encode(i,t),i.data}decode(e,t,r){const s=e.map(o=>z(this,Xe,Pt).call(this,K.from(o)));return new Or(s,"_").decode(new zn(t,r))}static defaultAbiCoder(){return kn==null&&(kn=new zr),kn}static getBuiltinCallException(e,t,r){return Qf(e,t,r,zr.defaultAbiCoder())}};let jr=zr;Xe=new WeakSet,Pt=function(e){if(e.isArray())return new Rf(z(this,Xe,Pt).call(this,e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new Or(e.components.map(r=>z(this,Xe,Pt).call(this,r)),e.name);switch(e.baseType){case"address":return new Sf(e.name);case"bool":return new Pf(e.name);case"string":return new jf(e.name);case"bytes":return new Nf(e.name);case"":return new If(e.name)}let t=e.type.match(Yf);if(t){let r=parseInt(t[2]||"256");return E(r!==0&&r<=256&&r%8===0,"invalid "+t[1]+" bit length","param",e),new Lf(r/8,t[1]==="int",e.name)}if(t=e.type.match(Zf),t){let r=parseInt(t[1]);return E(r!==0&&r<=32,"invalid bytes length","param",e),new $f(r,e.name)}E(!1,"invalid type","type",e.type)};class ed{constructor(e,t,r){m(this,"fragment");m(this,"name");m(this,"signature");m(this,"topic");m(this,"args");const s=e.name,i=e.format();k(this,{fragment:e,name:s,signature:i,topic:t,args:r})}}class td{constructor(e,t,r,s){m(this,"fragment");m(this,"name");m(this,"args");m(this,"signature");m(this,"selector");m(this,"value");const i=e.name,o=e.format();k(this,{fragment:e,name:i,args:r,signature:o,selector:t,value:s})}}class rd{constructor(e,t,r){m(this,"fragment");m(this,"name");m(this,"args");m(this,"signature");m(this,"selector");const s=e.name,i=e.format();k(this,{fragment:e,name:s,args:r,signature:i,selector:t})}}class Ei{constructor(e){m(this,"hash");m(this,"_isIndexed");k(this,{hash:e,_isIndexed:!0})}static isIndexed(e){return!!(e&&e._isIndexed)}}const xi={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},Oi={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:n=>`reverted with reason string ${JSON.stringify(n)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:n=>{let e="unknown panic code";return n>=0&&n<=255&&xi[n.toString()]&&(e=xi[n.toString()]),`reverted with panic code 0x${n.toString(16)} (${e})`}}};var Oe,Te,Ae,Z,or,Wn,ar,Kn;const It=class{constructor(e){U(this,or);U(this,ar);m(this,"fragments");m(this,"deploy");m(this,"fallback");m(this,"receive");U(this,Oe,void 0);U(this,Te,void 0);U(this,Ae,void 0);U(this,Z,void 0);let t=[];typeof e=="string"?t=JSON.parse(e):t=e,C(this,Ae,new Map),C(this,Oe,new Map),C(this,Te,new Map);const r=[];for(const o of t)try{r.push(bt.from(o))}catch(a){console.log("EE",a)}k(this,{fragments:Object.freeze(r)});let s=null,i=!1;C(this,Z,this.getAbiCoder()),this.fragments.forEach((o,a)=>{let c;switch(o.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}k(this,{deploy:o});return;case"fallback":o.inputs.length===0?i=!0:(E(!s||o.payable!==s.payable,"conflicting fallback fragments",`fragments[${a}]`,o),s=o,i=s.payable);return;case"function":c=v(this,Ae);break;case"event":c=v(this,Te);break;case"error":c=v(this,Oe);break;default:return}const u=o.format();c.has(u)||c.set(u,o)}),this.deploy||k(this,{deploy:Ue.from("constructor()")}),k(this,{fallback:s,receive:i})}format(e){const t=e?"minimal":"full";return this.fragments.map(s=>s.format(t))}formatJson(){const e=this.fragments.map(t=>t.format("json"));return JSON.stringify(e.map(t=>JSON.parse(t)))}getAbiCoder(){return jr.defaultAbiCoder()}getFunctionName(e){const t=z(this,or,Wn).call(this,e,null,!1);return E(t,"no matching function","key",e),t.name}getFunction(e,t){return z(this,or,Wn).call(this,e,t||null,!0)}forEachFunction(e){const t=Array.from(v(this,Ae).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(v(this,Ae).get(s),r)}}getEventName(e){const t=z(this,ar,Kn).call(this,e,null,!1);return E(t,"no matching event","key",e),t.name}getEvent(e,t){return z(this,ar,Kn).call(this,e,t||null,!0)}forEachEvent(e){const t=Array.from(v(this,Te).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(v(this,Te).get(s),r)}}getError(e,t){if(Ye(e)){const s=e.toLowerCase();if(Oi[s])return re.from(Oi[s].signature);for(const i of v(this,Oe).values())if(s===i.selector)return i;return null}if(e.indexOf("(")===-1){const s=[];for(const[i,o]of v(this,Oe))i.split("(")[0]===e&&s.push(o);if(s.length===0)return e==="Error"?re.from("error Error(string)"):e==="Panic"?re.from("error Panic(uint256)"):null;if(s.length>1){const i=s.map(o=>JSON.stringify(o.format())).join(", ");E(!1,`ambiguous error description (i.e. ${i})`,"name",e)}return s[0]}if(e=re.from(e).format(),e==="Error(string)")return re.from("error Error(string)");if(e==="Panic(uint256)")return re.from("error Panic(uint256)");const r=v(this,Oe).get(e);return r||null}forEachError(e){const t=Array.from(v(this,Oe).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(v(this,Oe).get(s),r)}}_decodeParams(e,t){return v(this,Z).decode(e,t)}_encodeParams(e,t){return v(this,Z).encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){if(typeof e=="string"){const r=this.getError(e);E(r,"unknown error","fragment",e),e=r}return E(St(t,0,4)===e.selector,`data signature does not match error ${e.name}.`,"data",t),this._decodeParams(e.inputs,St(t,4))}encodeErrorResult(e,t){if(typeof e=="string"){const r=this.getError(e);E(r,"unknown error","fragment",e),e=r}return Ft([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionData(e,t){if(typeof e=="string"){const r=this.getFunction(e);E(r,"unknown function","fragment",e),e=r}return E(St(t,0,4)===e.selector,`data signature does not match function ${e.name}.`,"data",t),this._decodeParams(e.inputs,St(t,4))}encodeFunctionData(e,t){if(typeof e=="string"){const r=this.getFunction(e);E(r,"unknown function","fragment",e),e=r}return Ft([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionResult(e,t){if(typeof e=="string"){const i=this.getFunction(e);E(i,"unknown function","fragment",e),e=i}let r="invalid length for result data";const s=je(t);if(s.length%32===0)try{return v(this,Z).decode(e.outputs,s)}catch{r="could not decode result data"}T(!1,r,"BAD_DATA",{value:q(s),info:{method:e.name,signature:e.format()}})}makeError(e,t){const r=He(e,"data"),s=jr.getBuiltinCallException("call",t,r),i="execution reverted (unknown custom error)";if(s.message.startsWith(i)){const a=q(r.slice(0,4)),c=this.getError(a);if(c)try{const u=v(this,Z).decode(c.inputs,r.slice(4));s.revert={name:c.name,signature:c.format(),args:u},s.reason=s.revert.signature,s.message=`execution reverted: ${s.reason}`}catch{s.message="execution reverted (coult not decode custom error)"}}const o=this.parseTransaction(t);return o&&(s.invocation={method:o.name,signature:o.signature,args:o.args}),s}encodeFunctionResult(e,t){if(typeof e=="string"){const r=this.getFunction(e);E(r,"unknown function","fragment",e),e=r}return q(v(this,Z).encode(e.outputs,t||[]))}encodeFilterTopics(e,t){if(typeof e=="string"){const i=this.getEvent(e);E(i,"unknown event","eventFragment",e),e=i}T(t.length<=e.inputs.length,`too many arguments for ${e.format()}`,"UNEXPECTED_ARGUMENT",{count:t.length,expectedCount:e.inputs.length});const r=[];e.anonymous||r.push(e.topicHash);const s=(i,o)=>i.type==="string"?nr(o):i.type==="bytes"?tt(q(o)):(i.type==="bool"&&typeof o=="boolean"&&(o=o?"0x01":"0x00"),i.type.match(/^u?int/)&&(o=ko(o)),i.type==="address"&&v(this,Z).encode(["address"],[o]),_h(q(o),32));for(t.forEach((i,o)=>{const a=e.inputs[o];if(!a.indexed){E(i==null,"cannot filter non-indexed parameters; must be null","contract."+a.name,i);return}i==null?r.push(null):a.baseType==="array"||a.baseType==="tuple"?E(!1,"filtering with tuples or arrays not supported","contract."+a.name,i):Array.isArray(i)?r.push(i.map(c=>s(a,c))):r.push(s(a,i))});r.length&&r[r.length-1]===null;)r.pop();return r}encodeEventLog(e,t){if(typeof e=="string"){const o=this.getEvent(e);E(o,"unknown event","eventFragment",e),e=o}const r=[],s=[],i=[];return e.anonymous||r.push(e.topicHash),E(t.length===e.inputs.length,"event arguments/values mismatch","values",t),e.inputs.forEach((o,a)=>{const c=t[a];if(o.indexed)if(o.type==="string")r.push(nr(c));else if(o.type==="bytes")r.push(tt(c));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");r.push(v(this,Z).encode([o.type],[c]))}else s.push(o),i.push(c)}),{data:v(this,Z).encode(s,i),topics:r}}decodeEventLog(e,t,r){if(typeof e=="string"){const f=this.getEvent(e);E(f,"unknown event","eventFragment",e),e=f}if(r!=null&&!e.anonymous){const f=e.topicHash;E(Ye(r[0],32)&&r[0].toLowerCase()===f,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}const s=[],i=[],o=[];e.inputs.forEach((f,d)=>{f.indexed?f.type==="string"||f.type==="bytes"||f.baseType==="tuple"||f.baseType==="array"?(s.push(K.from({type:"bytes32",name:f.name})),o.push(!0)):(s.push(f),o.push(!1)):(i.push(f),o.push(!1))});const a=r!=null?v(this,Z).decode(s,Ft(r)):null,c=v(this,Z).decode(i,t,!0),u=[],l=[];let h=0,p=0;return e.inputs.forEach((f,d)=>{let w=null;if(f.indexed)if(a==null)w=new Ei(null);else if(o[d])w=new Ei(a[p++]);else try{w=a[p++]}catch(b){w=b}else try{w=c[h++]}catch(b){w=b}u.push(w),l.push(f.name||null)}),Lr.fromItems(u,l)}parseTransaction(e){const t=He(e.data,"tx.data"),r=xt(e.value!=null?e.value:0,"tx.value"),s=this.getFunction(q(t.slice(0,4)));if(!s)return null;const i=v(this,Z).decode(s.inputs,t.slice(4));return new td(s,s.selector,i,r)}parseCallResult(e){throw new Error("@TODO")}parseLog(e){const t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new ed(t,t.topicHash,this.decodeEventLog(t,e.data,e.topics))}parseError(e){const t=q(e),r=this.getError(St(t,0,4));if(!r)return null;const s=v(this,Z).decode(r.inputs,St(t,4));return new rd(r,r.selector,s)}static from(e){return e instanceof It?e:typeof e=="string"?new It(JSON.parse(e)):typeof e.format=="function"?new It(e.format("json")):new It(e)}};let Gn=It;Oe=new WeakMap,Te=new WeakMap,Ae=new WeakMap,Z=new WeakMap,or=new WeakSet,Wn=function(e,t,r){if(Ye(e)){const i=e.toLowerCase();for(const o of v(this,Ae).values())if(i===o.selector)return o;return null}if(e.indexOf("(")===-1){const i=[];for(const[o,a]of v(this,Ae))o.split("(")[0]===e&&i.push(a);if(t){const o=t.length>0?t[t.length-1]:null;let a=t.length,c=!0;Y.isTyped(o)&&o.type==="overrides"&&(c=!1,a--);for(let u=i.length-1;u>=0;u--){const l=i[u].inputs.length;l!==a&&(!c||l!==a-1)&&i.splice(u,1)}for(let u=i.length-1;u>=0;u--){const l=i[u].inputs;for(let h=0;h<t.length;h++)if(Y.isTyped(t[h])){if(h>=l.length){if(t[h].type==="overrides")continue;i.splice(u,1);break}if(t[h].type!==l[h].baseType){i.splice(u,1);break}}}}if(i.length===1&&t&&t.length!==i[0].inputs.length){const o=t[t.length-1];(o==null||Array.isArray(o)||typeof o!="object")&&i.splice(0,1)}if(i.length===0)return null;if(i.length>1&&r){const o=i.map(a=>JSON.stringify(a.format())).join(", ");E(!1,`ambiguous function description (i.e. matches ${o})`,"key",e)}return i[0]}const s=v(this,Ae).get(ke.from(e).format());return s||null},ar=new WeakSet,Kn=function(e,t,r){if(Ye(e)){const i=e.toLowerCase();for(const o of v(this,Te).values())if(i===o.topicHash)return o;return null}if(e.indexOf("(")===-1){const i=[];for(const[o,a]of v(this,Te))o.split("(")[0]===e&&i.push(a);if(t){for(let o=i.length-1;o>=0;o--)i[o].inputs.length<t.length&&i.splice(o,1);for(let o=i.length-1;o>=0;o--){const a=i[o].inputs;for(let c=0;c<t.length;c++)if(Y.isTyped(t[c])&&t[c].type!==a[c].baseType){i.splice(o,1);break}}}if(i.length===0)return null;if(i.length>1&&r){const o=i.map(a=>JSON.stringify(a.format())).join(", ");E(!1,`ambiguous event description (i.e. matches ${o})`,"key",e)}return i[0]}const s=v(this,Te).get(Se.from(e).format());return s||null};const nd=BigInt(0);function Fe(n){return n==null?null:n.toString()}function sd(n){const e={};n.to&&(e.to=n.to),n.from&&(e.from=n.from),n.data&&(e.data=q(n.data));const t="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const s of t)!(s in n)||n[s]==null||(e[s]=xt(n[s],`request.${s}`));const r="type,nonce".split(/,/);for(const s of r)!(s in n)||n[s]==null||(e[s]=Ve(n[s],`request.${s}`));return n.accessList&&(e.accessList=Bf(n.accessList)),"blockTag"in n&&(e.blockTag=n.blockTag),"enableCcipRead"in n&&(e.enableCcipReadEnabled=!!n.enableCcipRead),"customData"in n&&(e.customData=n.customData),e}class Es{constructor(e,t){m(this,"provider");m(this,"transactionHash");m(this,"blockHash");m(this,"blockNumber");m(this,"removed");m(this,"address");m(this,"data");m(this,"topics");m(this,"index");m(this,"transactionIndex");this.provider=t;const r=Object.freeze(e.topics.slice());k(this,{transactionHash:e.transactionHash,blockHash:e.blockHash,blockNumber:e.blockNumber,removed:e.removed,address:e.address,data:e.data,topics:r,index:e.index,transactionIndex:e.transactionIndex})}toJSON(){const{address:e,blockHash:t,blockNumber:r,data:s,index:i,removed:o,topics:a,transactionHash:c,transactionIndex:u}=this;return{_type:"log",address:e,blockHash:t,blockNumber:r,data:s,index:i,removed:o,topics:a,transactionHash:c,transactionIndex:u}}async getBlock(){const e=await this.provider.getBlock(this.blockHash);return T(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransaction(){const e=await this.provider.getTransaction(this.transactionHash);return T(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransactionReceipt(){const e=await this.provider.getTransactionReceipt(this.transactionHash);return T(!!e,"failed to find transaction receipt","UNKNOWN_ERROR",{}),e}removedEvent(){return od(this)}}var cr;class id{constructor(e,t){m(this,"provider");m(this,"to");m(this,"from");m(this,"contractAddress");m(this,"hash");m(this,"index");m(this,"blockHash");m(this,"blockNumber");m(this,"logsBloom");m(this,"gasUsed");m(this,"cumulativeGasUsed");m(this,"gasPrice");m(this,"type");m(this,"status");m(this,"root");U(this,cr,void 0);C(this,cr,Object.freeze(e.logs.map(r=>new Es(r,t)))),k(this,{provider:t,to:e.to,from:e.from,contractAddress:e.contractAddress,hash:e.hash,index:e.index,blockHash:e.blockHash,blockNumber:e.blockNumber,logsBloom:e.logsBloom,gasUsed:e.gasUsed,cumulativeGasUsed:e.cumulativeGasUsed,gasPrice:e.effectiveGasPrice||e.gasPrice,type:e.type,status:e.status,root:e.root})}get logs(){return v(this,cr)}toJSON(){const{to:e,from:t,contractAddress:r,hash:s,index:i,blockHash:o,blockNumber:a,logsBloom:c,logs:u,status:l,root:h}=this;return{_type:"TransactionReceipt",blockHash:o,blockNumber:a,contractAddress:r,cumulativeGasUsed:Fe(this.cumulativeGasUsed),from:t,gasPrice:Fe(this.gasPrice),gasUsed:Fe(this.gasUsed),hash:s,index:i,logs:u,logsBloom:c,root:h,status:l,to:e}}get length(){return this.logs.length}[Symbol.iterator](){let e=0;return{next:()=>e<this.length?{value:this.logs[e++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const e=await this.provider.getBlock(this.blockHash);if(e==null)throw new Error("TODO");return e}async getTransaction(){const e=await this.provider.getTransaction(this.hash);if(e==null)throw new Error("TODO");return e}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return Qo(this)}reorderedEvent(e){return T(!e||e.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),Yo(this,e)}}cr=new WeakMap;var Ze;const Ns=class{constructor(e,t){m(this,"provider");m(this,"blockNumber");m(this,"blockHash");m(this,"index");m(this,"hash");m(this,"type");m(this,"to");m(this,"from");m(this,"nonce");m(this,"gasLimit");m(this,"gasPrice");m(this,"maxPriorityFeePerGas");m(this,"maxFeePerGas");m(this,"data");m(this,"value");m(this,"chainId");m(this,"signature");m(this,"accessList");U(this,Ze,void 0);this.provider=t,this.blockNumber=e.blockNumber!=null?e.blockNumber:null,this.blockHash=e.blockHash!=null?e.blockHash:null,this.hash=e.hash,this.index=e.index,this.type=e.type,this.from=e.from,this.to=e.to||null,this.gasLimit=e.gasLimit,this.nonce=e.nonce,this.data=e.data,this.value=e.value,this.gasPrice=e.gasPrice,this.maxPriorityFeePerGas=e.maxPriorityFeePerGas!=null?e.maxPriorityFeePerGas:null,this.maxFeePerGas=e.maxFeePerGas!=null?e.maxFeePerGas:null,this.chainId=e.chainId,this.signature=e.signature,this.accessList=e.accessList!=null?e.accessList:null,C(this,Ze,-1)}toJSON(){const{blockNumber:e,blockHash:t,index:r,hash:s,type:i,to:o,from:a,nonce:c,data:u,signature:l,accessList:h}=this;return{_type:"TransactionReceipt",accessList:h,blockNumber:e,blockHash:t,chainId:Fe(this.chainId),data:u,from:a,gasLimit:Fe(this.gasLimit),gasPrice:Fe(this.gasPrice),hash:s,maxFeePerGas:Fe(this.maxFeePerGas),maxPriorityFeePerGas:Fe(this.maxPriorityFeePerGas),nonce:c,signature:l,to:o,index:r,type:i,value:Fe(this.value)}}async getBlock(){let e=this.blockNumber;if(e==null){const r=await this.getTransaction();r&&(e=r.blockNumber)}if(e==null)return null;const t=this.provider.getBlock(e);if(t==null)throw new Error("TODO");return t}async getTransaction(){return this.provider.getTransaction(this.hash)}async wait(e,t){const r=e??1,s=t??0;let i=v(this,Ze),o=-1,a=i===-1;const c=async()=>{if(a)return null;const{blockNumber:h,nonce:p}=await xo({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(p<this.nonce){i=h;return}if(a)return null;const f=await this.getTransaction();if(!(f&&f.blockNumber!=null))for(o===-1&&(o=i-3,o<v(this,Ze)&&(o=v(this,Ze)));o<=h;){if(a)return null;const d=await this.provider.getBlock(o,!0);if(d==null)return;for(const w of d)if(w===this.hash)return;for(let w=0;w<d.length;w++){const b=await d.getTransaction(w);if(b.from===this.from&&b.nonce===this.nonce){if(a)return null;const O=await this.provider.getTransactionReceipt(b.hash);if(O==null||h-O.blockNumber+1<r)return;let R="replaced";b.data===this.data&&b.to===this.to&&b.value===this.value?R="repriced":b.data==="0x"&&b.from===b.to&&b.value===nd&&(R="cancelled"),T(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:R==="replaced"||R==="cancelled",reason:R,replacement:b.replaceableTransaction(i),hash:b.hash,receipt:O})}}o++}},u=await this.provider.getTransactionReceipt(this.hash);if(u){if(await u.confirmations()>=r)return u}else if(await c(),r===0)return null;return await new Promise((h,p)=>{const f=[],d=()=>{f.forEach(b=>b())};if(f.push(()=>{a=!0}),s>0){const b=setTimeout(()=>{d(),p(nn("wait for transaction timeout","TIMEOUT"))},s);f.push(()=>{clearTimeout(b)})}const w=async b=>{await b.confirmations()>=r&&(d(),h(b))};if(f.push(()=>{this.provider.off(this.hash,w)}),this.provider.on(this.hash,w),i>=0){const b=async()=>{try{await c()}catch(O){if(Ur(O,"TRANSACTION_REPLACED")){d(),p(O);return}}a||this.provider.once("block",b)};f.push(()=>{this.provider.off("block",b)}),this.provider.once("block",b)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}removedEvent(){return T(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Qo(this)}reorderedEvent(e){return T(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),T(!e||e.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Yo(this,e)}replaceableTransaction(e){E(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const t=new Ns(this,this.provider);return C(t,Ze,e),t}};let Xn=Ns;Ze=new WeakMap;function Yo(n,e){return{orphan:"reorder-transaction",tx:n,other:e}}function Qo(n){return{orphan:"drop-transaction",tx:n}}function od(n){return{orphan:"drop-log",log:{transactionHash:n.transactionHash,blockHash:n.blockHash,blockNumber:n.blockNumber,address:n.address,data:n.data,topics:Object.freeze(n.topics.slice()),index:n.index}}}class xs extends Es{constructor(t,r,s){super(t,t.provider);m(this,"interface");m(this,"fragment");m(this,"args");const i=r.decodeEventLog(s,t.data,t.topics);k(this,{args:i,fragment:s,interface:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}var jt;class ad extends id{constructor(t,r,s){super(s,r);U(this,jt,void 0);C(this,jt,t)}get logs(){return super.logs.map(t=>{const r=t.topics.length?v(this,jt).getEvent(t.topics[0]):null;return r?new xs(t,v(this,jt),r):t})}}jt=new WeakMap;var ur;class Os extends Xn{constructor(t,r,s){super(s,r);U(this,ur,void 0);C(this,ur,t)}async wait(t){const r=await super.wait();return r==null?null:new ad(v(this,ur),this.provider,r)}}ur=new WeakMap;class ea extends Ah{constructor(t,r,s,i){super(t,r,s);m(this,"log");k(this,{log:i})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class cd extends ea{constructor(e,t,r,s,i){super(e,t,r,new xs(i,e.interface,s));const o=e.interface.decodeEventLog(s,this.log.data,this.log.topics);k(this,{args:o,fragment:s})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const Ti=BigInt(0);function ta(n){return n&&typeof n.call=="function"}function ra(n){return n&&typeof n.estimateGas=="function"}function Ts(n){return n&&typeof n.resolveName=="function"}function na(n){return n&&typeof n.sendTransaction=="function"}var lr;class ud{constructor(e,t,r){U(this,lr,void 0);m(this,"fragment");if(k(this,{fragment:t}),t.inputs.length<r.length)throw new Error("too many arguments");const s=vt(e.runner,"resolveName"),i=Ts(s)?s:null;C(this,lr,async function(){const o=await Promise.all(t.inputs.map((a,c)=>r[c]==null?null:a.walkAsync(r[c],(l,h)=>l==="address"?_s(h,i):h)));return e.interface.encodeFilterTopics(t,o)}())}getTopicFilter(){return v(this,lr)}}lr=new WeakMap;function ld(){return Function}function vt(n,e){return n==null?null:typeof n[e]=="function"?n:n.provider&&typeof n.provider[e]=="function"?n.provider:null}function ht(n){return n==null?null:n.provider||null}async function sa(n,e){const t=sd(Y.dereference(n,"overrides"));return E(t.to==null||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",t.to),E(t.data==null||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",t.data),t.from&&(t.from=await _s(t.from)),t}async function hd(n,e,t){const r=vt(n,"resolveName"),s=Ts(r)?r:null;return await Promise.all(e.map((i,o)=>i.walkAsync(t[o],(a,c)=>(c=Y.dereference(c,a),a==="address"?_s(c,s):c))))}class fd{constructor(e){m(this,"_contract");return k(this,{_contract:e}),new Proxy(this,{apply:async(r,s,i)=>await r.send(...i)})}async populateTransaction(e){const t=await sa(e,["data"]);t.to=await this._contract.getAddress();const r=this._contract.interface,s=r.receive||r.fallback&&r.fallback.payable;return E(s||(t.value||Ti)===Ti,"cannot send value to non-payable contract","overrides.value",t.value),E(r.fallback||(t.data||"0x")==="0x","cannot send data to receive-only contract","overrides.data",t.data),t}async staticCall(e){const t=vt(this._contract.runner,"call");T(ta(t),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const r=await this.populateTransaction(e);try{return await t.call(r)}catch(s){throw Oo(s)&&s.data?this._contract.interface.makeError(s.data,r):s}}async send(e){const t=this._contract.runner;T(na(t),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const r=await t.sendTransaction(await this.populateTransaction(e)),s=ht(this._contract.runner);return new Os(this._contract.interface,s,r)}async estimateGas(e){const t=vt(this._contract.runner,"estimateGas");return T(ra(t),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await t.estimateGas(await this.populateTransaction(e))}}class dd extends ld(){constructor(t,r){super();m(this,"name","");m(this,"_contract");m(this,"_key");return k(this,{name:t.interface.getFunctionName(r),_contract:t,_key:r}),new Proxy(this,{apply:async(i,o,a)=>i.getFragment(...a).constant?await i.staticCall(...a):await i.send(...a)})}get fragment(){const t=this._contract.interface.getFunction(this._key);return T(t,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),t}getFragment(...t){const r=this._contract.interface.getFunction(this._key,t);return T(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),r}async populateTransaction(...t){const r=this.getFragment(...t);let s={};if(r.inputs.length+1===t.length&&(s=await sa(t.pop())),r.inputs.length!==t.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const i=await hd(this._contract.runner,r.inputs,t);return Object.assign({},s,await xo({to:this._contract.getAddress(),data:this._contract.interface.encodeFunctionData(r,i)}))}async staticCall(...t){const r=await this.staticCallResult(...t);return r.length===1?r[0]:r}async send(...t){const r=this._contract.runner;T(na(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await r.sendTransaction(await this.populateTransaction(...t)),i=ht(this._contract.runner);return new Os(this._contract.interface,i,s)}async estimateGas(...t){const r=vt(this._contract.runner,"estimateGas");return T(ra(r),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await r.estimateGas(await this.populateTransaction(...t))}async staticCallResult(...t){const r=vt(this._contract.runner,"call");T(ta(r),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await this.populateTransaction(...t);let i="0x";try{i=await r.call(s)}catch(a){throw Oo(a)&&a.data?this._contract.interface.makeError(a.data,s):a}const o=this.getFragment(...t);return this._contract.interface.decodeFunctionResult(o,i)}}function pd(){return Function}class yd extends pd(){constructor(t,r){super();m(this,"name","");m(this,"_contract");m(this,"_key");return k(this,{name:t.interface.getEventName(r),_contract:t,_key:r}),new Proxy(this,{apply:(s,i,o)=>new ud(t,s.getFragment(...o),o)})}get fragment(){const t=this._contract.interface.getEvent(this._key);return T(t,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),t}getFragment(...t){const r=this._contract.interface.getEvent(this._key,t);return T(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),r}}const Br=Symbol.for("_ethersInternal_contract"),ia=new WeakMap;function md(n,e){ia.set(n[Br],e)}function ue(n){return ia.get(n[Br])}function gd(n){return n&&typeof n=="object"&&"getTopicFilter"in n&&typeof n.getTopicFilter=="function"&&n.fragment}async function As(n,e){let t,r=null;if(Array.isArray(e)){const i=function(o){if(Ye(o,32))return o;const a=n.interface.getEvent(o);return E(a,"unknown fragment","name",o),a.topicHash};t=e.map(o=>o==null?null:Array.isArray(o)?o.map(i):i(o))}else e==="*"?t=[null]:typeof e=="string"?Ye(e,32)?t=[e]:(r=n.interface.getEvent(e),E(r,"unknown fragment","event",e),t=[r.topicHash]):gd(e)?t=await e.getTopicFilter():"fragment"in e?(r=e.fragment,t=[r.topicHash]):E(!1,"unknown event name","event",e);t=t.map(i=>{if(i==null)return null;if(Array.isArray(i)){const o=Array.from(new Set(i.map(a=>a.toLowerCase())).values());return o.length===1?o[0]:(o.sort(),o)}return i.toLowerCase()});const s=t.map(i=>i==null?"null":Array.isArray(i)?i.join("|"):i).join("&");return{fragment:r,tag:s,topics:t}}async function Xt(n,e){const{subs:t}=ue(n);return t.get((await As(n,e)).tag)||null}async function Ai(n,e,t){const r=ht(n.runner);T(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:s,tag:i,topics:o}=await As(n,t),{addr:a,subs:c}=ue(n);let u=c.get(i);if(!u){const h={address:a||n,topics:o},p=b=>{let O=s;if(O==null)try{O=n.interface.getEvent(b.topics[0])}catch{}if(O){const R=O,M=s?n.interface.decodeEventLog(s,b.data,b.topics):[];Yn(n,t,M,D=>new cd(n,D,t,R,b))}else Yn(n,t,[],R=>new ea(n,R,t,b))};let f=[];u={tag:i,listeners:[],start:()=>{f.length||f.push(r.on(h,p))},stop:async()=>{if(f.length==0)return;let b=f;f=[],await Promise.all(b),r.off(h,p)}},c.set(i,u)}return u}let Zn=Promise.resolve();async function wd(n,e,t,r){await Zn;const s=await Xt(n,e);if(!s)return!1;const i=s.listeners.length;return s.listeners=s.listeners.filter(({listener:o,once:a})=>{const c=Array.from(t);r&&c.push(r(a?null:o));try{o.call(n,...c)}catch{}return!a}),i>0}async function Yn(n,e,t,r){try{await Zn}catch{}const s=wd(n,e,t,r);return Zn=s,await s}const Si=["then"];var Td;const Vr=class{constructor(e,t,r,s){m(this,"target");m(this,"interface");m(this,"runner");m(this,"filters");m(this,Td);m(this,"fallback");r==null&&(r=null);const i=Gn.from(t);k(this,{target:e,runner:r,interface:i}),Object.defineProperty(this,Br,{value:{}});let o,a=null,c=null;if(s){const h=ht(r);c=new Os(this.interface,h,s)}let u=new Map;if(typeof e=="string")if(Ye(e))a=e,o=Promise.resolve(e);else{const h=vt(r,"resolveName");if(!Ts(h))throw nn("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});o=h.resolveName(e).then(p=>{if(p==null)throw new Error("TODO");return ue(this).addr=p,p})}else o=e.getAddress().then(h=>{if(h==null)throw new Error("TODO");return ue(this).addr=h,h});md(this,{addrPromise:o,addr:a,deployTx:c,subs:u});const l=new Proxy({},{get:(h,p,f)=>{if(Si.indexOf(p)>=0)return Reflect.get(h,p,f);const d=String(p),w=this.getEvent(d);if(w)return w;throw new Error(`unknown contract event: ${d}`)}});return k(this,{filters:l}),k(this,{fallback:i.receive||i.fallback?new fd(this):null}),new Proxy(this,{get:(h,p,f)=>{if(p in h||Si.indexOf(p)>=0)return Reflect.get(h,p,f);const d=String(p),w=h.getFunction(d);if(w)return w;throw new Error(`unknown contract method: ${d}`)}})}connect(e){return new Vr(this.target,this.interface,e)}async getAddress(){return await ue(this).addrPromise}async getDeployedCode(){const e=ht(this.runner);T(e,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const t=await e.getCode(await this.getAddress());return t==="0x"?null:t}async waitForDeployment(){const e=this.deploymentTransaction();if(e)return await e.wait(),this;if(await this.getDeployedCode()!=null)return this;const r=ht(this.runner);return T(r!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((s,i)=>{const o=async()=>{try{if(await this.getDeployedCode()!=null)return s(this);r.once("block",o)}catch(a){i(a)}};o()})}deploymentTransaction(){return ue(this).deployTx}getFunction(e){return typeof e!="string"&&(e=e.format()),new dd(this,e)}getEvent(e){return typeof e!="string"&&(e=e.format()),new yd(this,e)}async queryTransaction(e){throw new Error("@TODO")}async queryFilter(e,t,r){t==null&&(t=0),r==null&&(r="latest");const{addr:s,addrPromise:i}=ue(this),o=s||await i,{fragment:a,topics:c}=await As(this,e),u={address:o,topics:c,fromBlock:t,toBlock:r},l=ht(this.runner);return T(l,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await l.getLogs(u)).map(h=>{let p=a;if(p==null)try{p=this.interface.getEvent(h.topics[0])}catch{}return p?new xs(h,this.interface,p):new Es(h,l)})}async on(e,t){const r=await Ai(this,"on",e);return r.listeners.push({listener:t,once:!1}),r.start(),this}async once(e,t){const r=await Ai(this,"once",e);return r.listeners.push({listener:t,once:!0}),r.start(),this}async emit(e,...t){return await Yn(this,e,t,null)}async listenerCount(e){if(e){const s=await Xt(this,e);return s?s.listeners.length:0}const{subs:t}=ue(this);let r=0;for(const{listeners:s}of t.values())r+=s.length;return r}async listeners(e){if(e){const s=await Xt(this,e);return s?s.listeners.map(({listener:i})=>i):[]}const{subs:t}=ue(this);let r=[];for(const{listeners:s}of t.values())r=r.concat(s.map(({listener:i})=>i));return r}async off(e,t){const r=await Xt(this,e);if(!r)return this;if(t){const s=r.listeners.map(({listener:i})=>i).indexOf(t);s>=0&&r.listeners.splice(s,1)}return(t==null||r.listeners.length===0)&&(r.stop(),ue(this).subs.delete(r.tag)),this}async removeAllListeners(e){if(e){const t=await Xt(this,e);if(!t)return this;t.stop(),ue(this).subs.delete(t.tag)}else{const{subs:t}=ue(this);for(const{tag:r,stop:s}of t.values())s(),t.delete(r)}return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return await this.off(e,t)}static buildClass(e){class t extends Vr{constructor(s,i=null){super(s,e,i)}}return t}static from(e,t,r){return r==null&&(r=null),new this(e,t,r)}};let Qn=Vr;Td=Br;function bd(){return Qn}class vd extends bd(){}class ln{constructor(e){m(this,"data",[]);this.api=e}static create(e){return new ln(e)}getAbiHash(e){if(this.api===void 0)throw new Error("FunctionBuilder must be initialised with api");return this.api.getAbiHash(e)}async addFunction(e,t,r,s){const i=new vd(e,s);return i.interface.encodeFunctionData(t,r),this.data.push({address:e,bytecode:i.interface.encodeFunctionData(t,r),abiHash:await this.getAbiHash(s),function:t}),this}get(){return this.data}static schema(){return Mt().of(et({address:j().required(),bytecode:j().matches(/^(0x)?([0-9a-fA-F]{2})*$/).required(),abiHash:j().matches(/^[A-Fa-f0-9]{64}/).required(),function:j().required()}))}}class We{static version(){return"v1"}static execute(e,t,r="v1"){const s=JSON.parse(JSON.stringify(t));let i=!0;for(const o of s){const a=We.process(e,o.conditions);i=We.execLogic(i,o.logic,a)}return i}static process(e,t,r){const s=t.shift();if(!s)return r===void 0?!0:r;const i=We.execCondition(e,s);if(r===void 0||s.logic==="WHERE")return We.process(e,t,i);if(s.logic===void 0)throw new Error("Invalid filter. FilterCondition must have logic value");const o=We.execLogic(r,s.logic,i);return We.process(e,t,o)}static execLogic(e,t,r){switch(t){case"AND":return e&&r;case"OR":return e||r;case"XOR":return(e||r)&&!(e&&r);case"NAND":return!(e&&r);case"NOR":return!(e&&r);case"WHERE":return r;default:throw new Error(`Invalid Filter. Bad logic value: ${t}`)}}static execCondition(e,t){const r=e[t.key];if(t.type==="Number"){if(typeof t.constant!="number"||typeof r!="number")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"eq":return s===i;case"!eq":return s!==i;case"gt":return s>i;case"gte":return s>=i;case"lt":return s<i;case"lte":return s<=i;default:throw new Error("Invalid Filter. Operation does not match type")}}if(t.type==="String"){if(typeof t.constant!="string"||typeof r!="string")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"contains":return s.includes(i);case"!contains":return!s.includes(i);case"is":return s===i;case"!is":return s!==i;case"isEmpty":return s==="";case"!isEmpty":return s!=="";default:throw new Error("Invalid Filter. Operation does not match type")}}if(t.type==="Address"){if(typeof t.constant!="string"||typeof r!="string")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"contains":return s.toLowerCase().includes(i.toLowerCase());case"!contains":return!s.toLowerCase().includes(i.toLowerCase());case"is":return s.toLowerCase()===i.toLowerCase();case"!is":return s.toLowerCase()!==i.toLowerCase();case"isEmpty":return s==="";case"!isEmpty":return s!=="";default:throw new Error("Invalid Filter. Operation does not match type")}}throw new Error("Invalid Filter. Unknown Type")}}class hn{constructor(){m(this,"groups",[]);this.newGroup("WHERE")}static version(){return We.version()}static new(){return new hn}newGroup(e){if(this.groups.length!==0&&e==="WHERE")throw new Error('Only the first groups can start with "WHERE"');return this.groups.push({logic:"WHERE",conditions:[]}),this}addCondition(e,t,r,s,i){const o=this.groups[this.groups.length-1];if(o.conditions.length===0&&e!=="WHERE")throw new Error('Logic for the first condition of a group must be "WHERE"');if(o.conditions.length>0&&e==="WHERE")throw new Error('Only the first condition of a group can be "WHERE"');return o.conditions.push({logic:e,key:t,type:r,operation:s,constant:i}),this}finalise(){for(const e of this.groups)if(e.conditions.length===0)throw new Error("Bad Filter. All Groups must have atleast one condition");return this.groups}static schema(){const e=j().oneOf(["AND","OR","XOR","NAND","NOR","WHERE"]).required(),t=et({logic:e,key:j().required(),type:j().oneOf(["String","Address","Number"]).required(),operation:j().when("type",([r],s)=>{switch(r){case"String":return s.oneOf(["contains","!contains","is","!is","isEmpty","!isEmpty"]);case"Address":return s.oneOf(["is","!is","isEmpty","!isEmpty"]);case"Number":return s.oneOf(["String","Address","Number"]);default:throw new Error("Invalid Filter Data Type")}}),constant:ho().when("type",([r])=>{switch(r){case"String":return j();case"Address":return j();case"Number":return de();default:throw new Error("Invalid Filter Data Type")}})});return Mt().of(et({logic:e,conditions:Mt().of(t)}))}}const _d="handler_function_call_v2";class Ss{static SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:_d,handler:r}}static validateCreate(e){const t=/^(\d+)([SMHD])$/i;return et({timeBase:j().oneOf(["blocks","time"]).required(),nBlocks:de().min(10).when("timeBase",([s],i)=>s==="blocks"?i.required():i),timePeriod:j().matches(t,"timePeriod must be of the format n[s|m|h|d], eg 10s for 10 seconds").when("timeBase",([s],i)=>s==="time"?i.required():i),startTime:de().default(0),debounceCount:de(),functions:ln.schema(),triggerOn:j().oneOf(["always","filter"]).default("always"),latch:po().default(!1),filterVersion:j().when("triggerOn",([s],i)=>s==="filter"?i.required():i),filter:hn.schema().when("triggerOn",([s],i)=>s==="filter"?i.required():i)}).validate(e)}}class oa{static SimpleToRaw(e,t,r,s){switch(t){case"PollFunctionV2":return Ss.SimpleToRaw(e,r,s);case"PollFunctionV1":return ms.SimpleToRaw(e,r,s);case"OnchainEventV1":return gs.SimpleToRaw(e,r,s);default:throw new Error("Invalid Trigger ID")}}}const ki=n=>`https://${n}.functions.supabase.co/`,Ri=n=>`https://${n}.supabase.co/`,Pi="fdgtrxmmrtlokhgkvcjz",Ed="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZkZ3RyeG1tcnRsb2toZ2t2Y2p6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzMwODcwNzYsImV4cCI6MTk4ODY2MzA3Nn0.sAMxjlcJSSozBGr-LNcsudyxzUEM9e-UspMHHQLqLr4";class ks{constructor(e,t){m(this,"headers",{});this.url=e,this.headers={Authorization:`Bearer ${t}`,"Content-Type":"application/json"}}static async create(e){var t,r;if(e.key)throw new Error("Auth by key not yet supported");if(e.email&&e.password){const s=e.projectId?Ri(e.projectId):Ri(Pi),i=e.projectId?ki(e.projectId):ki(Pi),o=e.anonKey?e.anonKey:Ed,a=hu(s,o),{data:c,error:u}=await a.auth.signInWithPassword({email:e.email,password:e.password});if(u)throw u;if(((t=c.session)==null?void 0:t.access_token)===void 0)throw new Error("Access token not found");return new ks(i,(r=c.session)==null?void 0:r.access_token)}else throw new Error("Authentication Required. DeNotify supports either username/password or API key authentication")}async alertHistory(e,t){const r="alert-history",s=t||{};return e&&(s.id=e),Object.keys(s).length>0?await this.request("get",r,{params:t}):await this.request("get",r)}async getAlert(e){return(await this.request("get",`alerts/${e}`))[0]}async getAlerts(){return await this.request("get","alerts")}async createAlert(e){const t=oa.SimpleToRaw(e.name,e.triggerId,e.network,e.trigger),r=Eo.SimpleToRaw(e.notificationId,e.notification);return await this.request("post","alerts",{body:{trigger:t,notification:r}})}async deleteAlert(e){return await this.request("delete",`alerts/${e}`)}async request(e,t,r={}){const s=new URL(`${this.url}${t}`);if(r.params)for(const a of Object.keys(r.params))s.searchParams.append(a,r.params[a]);console.log(s.toString());const i={method:e,url:s.toString(),headers:this.headers};return r.body&&(i.data=r.body),(await Tl(i)).data}async getAbi(e,t){return await this.request("get",`abi/${e}/${t}`)}async getAbiHash(e){return(await this.request("post","abi",{body:e})).hash}async setAlertName(e,t){throw new Error("Not yet supported - Sorry!")}async enableAlert(e){throw new Error("Not yet supported - Sorry!")}async disableAlert(e){throw new Error("Not yet supported - Sorry!")}async updateNotification(e){throw new Error("Not yet supported - Sorry!")}async updateTrigger(e,t){return await this.request("patch",`alerts/trigger-handler/${e}`,{body:t})}}class Rs{constructor(e){m(this,"network");m(this,"triggerId");m(this,"trigger");m(this,"notificationId");m(this,"notification");this.name=e}static create(e){return new Rs(e)}onNetwork(e){return this.network=e,this}withTrigger(e,t){return this.triggerId=e,this.trigger=t,this}withNotification(e,t){return this.notificationId=e,this.notification=t,this}async validate(){switch(this.triggerId){case"OnchainEventV1":return gs.validateCreate(this.trigger);case"PollFunctionV1":return ms.validateCreate(this.trigger);case"PollFunctionV2":return Ss.validateCreate(this.trigger)}switch(this.notificationId){case"Discord":return ys.validateCreate(this.notification);default:throw new Error("Invalid notification type")}}async config(){if(this.trigger===void 0||this.triggerId===void 0)throw new Error("Trigger not configured");if(this.notification===void 0||this.notificationId===void 0)throw new Error("Notification not configured");if(this.network===void 0)throw new Error("Network not configured");return await this.validate(),{name:this.name,network:this.network,triggerId:this.triggerId,trigger:this.trigger,notificationId:this.notificationId,notification:this.notification}}}const xd=Object.freeze(Object.defineProperty({__proto__:null,HandlerFunctionCall:ms,HandlerFunctionCallV2:Ss,HandlerOnchainEvent:gs,Trigger:oa},Symbol.toStringTag,{value:"Module"})),Od=Object.freeze(Object.defineProperty({__proto__:null,Notification:Eo,NotifyDiscordWebhook:ys},Symbol.toStringTag,{value:"Module"}));exports.AlertBuilder=Rs;exports.DeNotifyClient=ks;exports.FilterBuilder=hn;exports.FunctionBuilder=ln;exports.Notification=Od;exports.Trigger=xd;