@sentio/sdk-bundle 2.45.0 → 2.45.1-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/aptos/aptos-resource-processor-template.d.ts.map +1 -1
- package/lib/aptos/builtin/0x1.js +1 -1
- package/lib/aptos/builtin/0x3.js +1 -1
- package/lib/aptos/builtin/index.js +1 -1
- package/lib/aptos/ext/index.js +1 -1
- package/lib/aptos/ext/token-list.d.ts +20 -0
- package/lib/aptos/ext/token-list.d.ts.map +1 -0
- package/lib/aptos/ext/token.d.ts +1 -1
- package/lib/aptos/ext/token.d.ts.map +1 -1
- package/lib/aptos/index.js +1 -1
- package/lib/{chunk-SU5LVIL5.js → chunk-3DQR5VKY.js} +2 -2
- package/lib/{chunk-G2KR5VKV.js → chunk-5YDRHPYU.js} +2 -2
- package/lib/{chunk-DOTKHTBG.js → chunk-APPRWKZN.js} +2 -2
- package/lib/{chunk-VO57HTCG.js → chunk-DRUSMUSA.js} +2 -2
- package/lib/{chunk-RVQBDYQ2.js → chunk-EMGLFW2R.js} +2 -2
- package/lib/{chunk-YX4LDK5Y.js → chunk-HKWSZOP2.js} +2 -2
- package/lib/{chunk-MB75AKO3.js → chunk-L45ZF5PY.js} +2 -2
- package/lib/{chunk-F7Q5QB6Q.js → chunk-MB4EAYM4.js} +11 -11
- package/lib/chunk-MB4EAYM4.js.map +1 -0
- package/lib/{chunk-67L6M26C.js → chunk-OFKDSTTW.js} +8 -8
- package/lib/chunk-OFKDSTTW.js.map +1 -0
- package/lib/{chunk-6VELGYNR.js → chunk-QNAN3L7E.js} +2 -2
- package/lib/{chunk-DR4NZAPM.js → chunk-S36NUXJS.js} +2 -2
- package/lib/{chunk-JCUSXGHB.js → chunk-WILVLA7S.js} +2 -2
- package/lib/{chunk-5VBGX3LN.js → chunk-WZMWULE7.js} +2 -2
- package/lib/eth/base-processor-template.d.ts.map +1 -1
- package/lib/eth/base-processor.d.ts.map +1 -1
- package/lib/eth/base-processor.test.d.ts +2 -0
- package/lib/eth/base-processor.test.d.ts.map +1 -0
- package/lib/eth/builtin/eacaggregatorproxy.js +1 -1
- package/lib/eth/builtin/erc1155.js +1 -1
- package/lib/eth/builtin/erc20.js +1 -1
- package/lib/eth/builtin/erc721.js +1 -1
- package/lib/eth/builtin/index.js +1 -1
- package/lib/eth/builtin/weth9.js +1 -1
- package/lib/eth/index.js +1 -1
- package/lib/sui/builtin/0x1.js +1 -1
- package/lib/sui/builtin/0x2.js +1 -1
- package/lib/sui/builtin/0x3.js +1 -1
- package/lib/sui/builtin/index.js +1 -1
- package/lib/sui/ext/index.js +1 -1
- package/lib/sui/index.js +1 -1
- package/lib/testing/index.js +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/metrics.d.ts +4 -0
- package/lib/utils/metrics.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/aptos/aptos-resource-processor-template.ts +2 -1
- package/src/aptos/ext/token-list.ts +3131 -0
- package/src/aptos/ext/token.ts +3 -22
- package/src/eth/base-processor-template.ts +2 -1
- package/src/eth/base-processor.ts +18 -0
- package/src/utils/metrics.ts +22 -0
- package/lib/chunk-67L6M26C.js.map +0 -1
- package/lib/chunk-F7Q5QB6Q.js.map +0 -1
- package/src/aptos/ext/token-list.json +0 -3098
- /package/lib/{chunk-SU5LVIL5.js.map → chunk-3DQR5VKY.js.map} +0 -0
- /package/lib/{chunk-G2KR5VKV.js.map → chunk-5YDRHPYU.js.map} +0 -0
- /package/lib/{chunk-DOTKHTBG.js.map → chunk-APPRWKZN.js.map} +0 -0
- /package/lib/{chunk-VO57HTCG.js.map → chunk-DRUSMUSA.js.map} +0 -0
- /package/lib/{chunk-RVQBDYQ2.js.map → chunk-EMGLFW2R.js.map} +0 -0
- /package/lib/{chunk-YX4LDK5Y.js.map → chunk-HKWSZOP2.js.map} +0 -0
- /package/lib/{chunk-MB75AKO3.js.map → chunk-L45ZF5PY.js.map} +0 -0
- /package/lib/{chunk-6VELGYNR.js.map → chunk-QNAN3L7E.js.map} +0 -0
- /package/lib/{chunk-DR4NZAPM.js.map → chunk-S36NUXJS.js.map} +0 -0
- /package/lib/{chunk-JCUSXGHB.js.map → chunk-WILVLA7S.js.map} +0 -0
- /package/lib/{chunk-5VBGX3LN.js.map → chunk-WZMWULE7.js.map} +0 -0
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
|
|
2
|
-
import{a as Ta}from"./chunk-OUOSDGWD.js";import{a as Ne}from"./chunk-QW2MPHP5.js";import{A as $r,D as nt,Db as ue,Gb as $t,Sc as Un,W as jr,Xc as ir,ec as Oe,fa as Vn,oa as st,wc as Wr}from"./chunk-24SCJPBI.js";import{d as Hn,e as Tt,g as H}from"./chunk-6GD6B22G.js";var Ko={};Hn(Ko,{ERC721BoundContractView:()=>or,ERC721ContractView:()=>Gr,ERC721Processor:()=>wt,ERC721ProcessorTemplate:()=>Dn,ERC721__factory:()=>mt,getERC721Contract:()=>ce,getERC721ContractOnContext:()=>jo,mockApprovalForAllLog:()=>zo,mockApprovalLog:()=>Wo,mockTransferLog:()=>Jo});var Mn="6.13.1";function Ea(n,t,e){let r=t.split("|").map(a=>a.trim());for(let a=0;a<r.length;a++)switch(t){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof n===t)return}let s=new Error(`invalid value for type ${t}`);throw s.code="INVALID_ARGUMENT",s.argument=`value.${e}`,s.value=n,s}async function de(n){let t=Object.keys(n);return(await Promise.all(t.map(r=>Promise.resolve(n[r])))).reduce((r,s,a)=>(r[t[a]]=s,r),{})}function C(n,t,e){for(let r in t){let s=t[r],a=e?e[r]:null;a&&Ea(s,a,r),Object.defineProperty(n,r,{enumerable:!0,value:s,writable:!1})}}function pe(n){if(n==null)return"null";if(Array.isArray(n))return"[ "+n.map(pe).join(", ")+" ]";if(n instanceof Uint8Array){let t="0123456789abcdef",e="0x";for(let r=0;r<n.length;r++)e+=t[n[r]>>4],e+=t[n[r]&15];return e}if(typeof n=="object"&&typeof n.toJSON=="function")return pe(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":{let t=Object.keys(n);return t.sort(),"{ "+t.map(e=>`${pe(e)}: ${pe(n[e])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function gt(n,t){return n&&n.code===t}function cr(n){return gt(n,"CALL_EXCEPTION")}function Et(n,t,e){let r=n;{let a=[];if(e){if("message"in e||"code"in e||"name"in e)throw new Error(`value will overwrite populated values: ${pe(e)}`);for(let o in e){if(o==="shortMessage")continue;let i=e[o];a.push(o+"="+pe(i))}}a.push(`code=${t}`),a.push(`version=${Mn}`),a.length&&(n+=" ("+a.join(", ")+")")}let s;switch(t){case"INVALID_ARGUMENT":s=new TypeError(n);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":s=new RangeError(n);break;default:s=new Error(n)}return C(s,{code:t}),e&&Object.assign(s,e),s.shortMessage==null&&C(s,{shortMessage:r}),s}function y(n,t,e,r){if(!n)throw Et(t,e,r)}function f(n,t,e,r){y(n,t,"INVALID_ARGUMENT",{argument:e,value:r})}function Be(n,t,e){e==null&&(e=""),e&&(e=": "+e),y(n>=t,"missing arguemnt"+e,"MISSING_ARGUMENT",{count:n,expectedCount:t}),y(n<=t,"too many arguments"+e,"UNEXPECTED_ARGUMENT",{count:n,expectedCount:t})}var ka=["NFD","NFC","NFKD","NFKC"].reduce((n,t)=>{try{if("test".normalize(t)!=="test")throw new Error("bad");if(t==="NFD"){let e=String.fromCharCode(233).normalize("NFD"),r=String.fromCharCode(101,769);if(e!==r)throw new Error("broken")}n.push(t)}catch{}return n},[]);function zr(n){y(ka.indexOf(n)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:n}})}function Ft(n,t,e){if(e==null&&(e=""),n!==t){let r=e,s="new";e&&(r+=".",s+=" "+e),y(!1,`private constructor; use ${r}from* methods`,"UNSUPPORTED_OPERATION",{operation:s})}}function $n(n,t,e){if(n instanceof Uint8Array)return e?new Uint8Array(n):n;if(typeof n=="string"&&n.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let r=new Uint8Array((n.length-2)/2),s=2;for(let a=0;a<r.length;a++)r[a]=parseInt(n.substring(s,s+2),16),s+=2;return r}f(!1,"invalid BytesLike value",t||"value",n)}function _(n,t){return $n(n,t,!1)}function Z(n,t){return $n(n,t,!0)}function U(n,t){return!(typeof n!="string"||!n.match(/^0x[0-9A-Fa-f]*$/)||typeof t=="number"&&n.length!==2+2*t||t===!0&&n.length%2!==0)}function Jr(n){return U(n,!0)||n instanceof Uint8Array}var Gn="0123456789abcdef";function P(n){let t=_(n),e="0x";for(let r=0;r<t.length;r++){let s=t[r];e+=Gn[(s&240)>>4]+Gn[s&15]}return e}function at(n){return"0x"+n.map(t=>P(t).substring(2)).join("")}function lr(n){return U(n,!0)?(n.length-2)/2:_(n).length}function yt(n,t,e){let r=_(n);return e!=null&&e>r.length&&y(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:e}),P(r.slice(t??0,e??r.length))}function jn(n,t,e){let r=_(n);y(t>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:t,offset:t+1});let s=new Uint8Array(t);return s.fill(0),e?s.set(r,t-r.length):s.set(r,0),P(s)}function fe(n,t){return jn(n,t,!0)}function ur(n,t){return jn(n,t,!1)}var dr=BigInt(0),lt=BigInt(1),he=9007199254740991;function Kr(n,t){let e=Se(n,"value"),r=BigInt(I(t,"width"));if(y(e>>r===dr,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:n}),e>>r-lt){let s=(lt<<r)-lt;return-((~e&s)+lt)}return e}function Xr(n,t){let e=T(n,"value"),r=BigInt(I(t,"width")),s=lt<<r-lt;if(e<dr){e=-e,y(e<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});let a=(lt<<r)-lt;return(~e&a)+lt}else y(e<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});return e}function me(n,t){let e=Se(n,"value"),r=BigInt(I(t,"bits"));return e&(lt<<r)-lt}function T(n,t){switch(typeof n){case"bigint":return n;case"number":return f(Number.isInteger(n),"underflow",t||"value",n),f(n>=-he&&n<=he,"overflow",t||"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(e){f(!1,`invalid BigNumberish string: ${e.message}`,t||"value",n)}}f(!1,"invalid BigNumberish value",t||"value",n)}function Se(n,t){let e=T(n,t);return y(e>=dr,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:n}),e}var Wn="0123456789abcdef";function pr(n){if(n instanceof Uint8Array){let t="0x0";for(let e of n)t+=Wn[e>>4],t+=Wn[e&15];return BigInt(t)}return T(n)}function I(n,t){switch(typeof n){case"bigint":return f(n>=-he&&n<=he,"overflow",t||"value",n),Number(n);case"number":return f(Number.isInteger(n),"underflow",t||"value",n),f(n>=-he&&n<=he,"overflow",t||"value",n),n;case"string":try{if(n==="")throw new Error("empty string");return I(BigInt(n),t)}catch(e){f(!1,`invalid numeric string: ${e.message}`,t||"value",n)}}f(!1,"invalid numeric value",t||"value",n)}function Zr(n){return I(pr(n))}function Fe(n,t){let r=Se(n,"value").toString(16);if(t==null)r.length%2&&(r="0"+r);else{let s=I(t,"width");for(y(s*2>=r.length,`value exceeds width (${s} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:n});r.length<s*2;)r="0"+r}return"0x"+r}function De(n){let t=Se(n,"value");if(t===dr)return new Uint8Array([]);let e=t.toString(16);e.length%2&&(e="0"+e);let r=new Uint8Array(e.length/2);for(let s=0;s<r.length;s++){let a=s*2;r[s]=parseInt(e.substring(a,a+2),16)}return r}var Le=class{filter;emitter;#t;constructor(t,e,r){this.#t=e,C(this,{emitter:t,filter:r})}async removeListener(){this.#t!=null&&await this.emitter.off(this.filter,this.#t)}};function va(n,t,e,r,s){f(!1,`invalid codepoint at offset ${t}; ${n}`,"bytes",e)}function zn(n,t,e,r,s){if(n==="BAD_PREFIX"||n==="UNEXPECTED_CONTINUE"){let a=0;for(let o=t+1;o<e.length&&e[o]>>6===2;o++)a++;return a}return n==="OVERRUN"?e.length-t-1:0}function Pa(n,t,e,r,s){return n==="OVERLONG"?(f(typeof s=="number","invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),zn(n,t,e,r,s))}var Jn=Object.freeze({error:va,ignore:zn,replace:Pa});function Ia(n,t){t==null&&(t=Jn.error);let e=_(n,"bytes"),r=[],s=0;for(;s<e.length;){let a=e[s++];if(!(a>>7)){r.push(a);continue}let o=null,i=null;if((a&224)===192)o=1,i=127;else if((a&240)===224)o=2,i=2047;else if((a&248)===240)o=3,i=65535;else{(a&192)===128?s+=t("UNEXPECTED_CONTINUE",s-1,e,r):s+=t("BAD_PREFIX",s-1,e,r);continue}if(s-1+o>=e.length){s+=t("OVERRUN",s-1,e,r);continue}let c=a&(1<<8-o-1)-1;for(let l=0;l<o;l++){let u=e[s];if((u&192)!=128){s+=t("MISSING_CONTINUE",s,e,r),c=null;break}c=c<<6|u&63,s++}if(c!==null){if(c>1114111){s+=t("OUT_OF_RANGE",s-1-o,e,r,c);continue}if(c>=55296&&c<=57343){s+=t("UTF16_SURROGATE",s-1-o,e,r,c);continue}if(c<=i){s+=t("OVERLONG",s-1-o,e,r,c);continue}r.push(c)}}return r}function ge(n,t){f(typeof n=="string","invalid string value","str",n),t!=null&&(zr(t),n=n.normalize(t));let e=[];for(let r=0;r<n.length;r++){let s=n.charCodeAt(r);if(s<128)e.push(s);else if(s<2048)e.push(s>>6|192),e.push(s&63|128);else if((s&64512)==55296){r++;let a=n.charCodeAt(r);f(r<n.length&&(a&64512)===56320,"invalid surrogate pair","str",n);let o=65536+((s&1023)<<10)+(a&1023);e.push(o>>18|240),e.push(o>>12&63|128),e.push(o>>6&63|128),e.push(o&63|128)}else e.push(s>>12|224),e.push(s>>6&63|128),e.push(s&63|128)}return new Uint8Array(e)}function Aa(n){return n.map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10&1023)+55296,(t&1023)+56320))).join("")}function _e(n,t){return Aa(Ia(n,t))}function Kn(n){let t=[];for(;n;)t.unshift(n&255),n>>=8;return t}function Zn(n){if(Array.isArray(n)){let r=[];if(n.forEach(function(a){r=r.concat(Zn(a))}),r.length<=55)return r.unshift(192+r.length),r;let s=Kn(r.length);return s.unshift(247+s.length),s.concat(r)}let t=Array.prototype.slice.call(_(n,"object"));if(t.length===1&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;let e=Kn(t.length);return e.unshift(183+e.length),e.concat(t)}var Xn="0123456789abcdef";function Yr(n){let t="0x";for(let e of Zn(n))t+=Xn[e>>4],t+=Xn[e&15];return t}var W=32,Qr=new Uint8Array(W),Ra=["then"],fr={},qn=new WeakMap;function jt(n){return qn.get(n)}function Yn(n,t){qn.set(n,t)}function He(n,t){let e=new Error(`deferred error during ABI decoding triggered accessing ${n}`);throw e.error=t,e}function qr(n,t,e){return n.indexOf(null)>=0?t.map((r,s)=>r instanceof z?qr(jt(r),r,e):r):n.reduce((r,s,a)=>{let o=t.getValue(s);return s in r||(e&&o instanceof z&&(o=qr(jt(o),o,e)),r[s]=o),r},{})}var z=class extends Array{#t;constructor(...t){let e=t[0],r=t[1],s=(t[2]||[]).slice(),a=!0;e!==fr&&(r=t,s=[],a=!1),super(r.length),r.forEach((c,l)=>{this[l]=c});let o=s.reduce((c,l)=>(typeof l=="string"&&c.set(l,(c.get(l)||0)+1),c),new Map);if(Yn(this,Object.freeze(r.map((c,l)=>{let u=s[l];return u!=null&&o.get(u)===1?u:null}))),this.#t=[],this.#t==null&&this.#t,!a)return;Object.freeze(this);let i=new Proxy(this,{get:(c,l,u)=>{if(typeof l=="string"){if(l.match(/^[0-9]+$/)){let p=I(l,"%index");if(p<0||p>=this.length)throw new RangeError("out of result range");let h=c[p];return h instanceof Error&&He(`index ${p}`,h),h}if(Ra.indexOf(l)>=0)return Reflect.get(c,l,u);let d=c[l];if(d instanceof Function)return function(...p){return d.apply(this===u?c:this,p)};if(!(l in c))return c.getValue.apply(this===u?c:this,[l])}return Reflect.get(c,l,u)}});return Yn(i,jt(this)),i}toArray(t){let e=[];return this.forEach((r,s)=>{r instanceof Error&&He(`index ${s}`,r),t&&r instanceof z&&(r=r.toArray(t)),e.push(r)}),e}toObject(t){let e=jt(this);return e.reduce((r,s,a)=>(y(s!=null,`value at index ${a} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),qr(e,this,t)),{})}slice(t,e){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),e==null&&(e=this.length),e<0&&(e+=this.length,e<0&&(e=0)),e>this.length&&(e=this.length);let r=jt(this),s=[],a=[];for(let o=t;o<e;o++)s.push(this[o]),a.push(r[o]);return new z(fr,s,a)}filter(t,e){let r=jt(this),s=[],a=[];for(let o=0;o<this.length;o++){let i=this[o];i instanceof Error&&He(`index ${o}`,i),t.call(e,i,o,this)&&(s.push(i),a.push(r[o]))}return new z(fr,s,a)}map(t,e){let r=[];for(let s=0;s<this.length;s++){let a=this[s];a instanceof Error&&He(`index ${s}`,a),r.push(t.call(e,a,s,this))}return r}getValue(t){let e=jt(this).indexOf(t);if(e===-1)return;let r=this[e];return r instanceof Error&&He(`property ${JSON.stringify(t)}`,r.error),r}static fromItems(t,e){return new z(fr,t,e)}};function Qn(n){let t=De(n);return y(t.length<=W,"value out-of-bounds","BUFFER_OVERRUN",{buffer:t,length:W,offset:t.length}),t.length!==W&&(t=Z(at([Qr.slice(t.length%W),t]))),t}var M=class{name;type;localName;dynamic;constructor(t,e,r,s){C(this,{name:t,type:e,localName:r,dynamic:s},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(t,e){f(!1,t,this.localName,e)}},Wt=class{#t;#e;constructor(){this.#t=[],this.#e=0}get data(){return at(this.#t)}get length(){return this.#e}#r(t){return this.#t.push(t),this.#e+=t.length,t.length}appendWriter(t){return this.#r(Z(t.data))}writeBytes(t){let e=Z(t),r=e.length%W;return r&&(e=Z(at([e,Qr.slice(r)]))),this.#r(e)}writeValue(t){return this.#r(Qn(t))}writeUpdatableValue(){let t=this.#t.length;return this.#t.push(Qr),this.#e+=W,e=>{this.#t[t]=Qn(e)}}},ye=class{allowLoose;#t;#e;#r;#n;#s;constructor(t,e,r){C(this,{allowLoose:!!e}),this.#t=Z(t),this.#r=0,this.#n=null,this.#s=r??1024,this.#e=0}get data(){return P(this.#t)}get dataLength(){return this.#t.length}get consumed(){return this.#e}get bytes(){return new Uint8Array(this.#t)}#a(t){if(this.#n)return this.#n.#a(t);this.#r+=t,y(this.#s<1||this.#r<=this.#s*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#s} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:Z(this.#t),offset:this.#e,length:t,info:{bytesRead:this.#r,dataLength:this.dataLength}})}#o(t,e,r){let s=Math.ceil(e/W)*W;return this.#e+s>this.#t.length&&(this.allowLoose&&r&&this.#e+e<=this.#t.length?s=e:y(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:Z(this.#t),length:this.#t.length,offset:this.#e+s})),this.#t.slice(this.#e,this.#e+s)}subReader(t){let e=new ye(this.#t.slice(this.#e+t),this.allowLoose,this.#s);return e.#n=this,e}readBytes(t,e){let r=this.#o(0,t,!!e);return this.#a(t),this.#e+=r.length,r.slice(0,t)}readValue(){return pr(this.readBytes(W))}readIndex(){return Zr(this.readBytes(W))}};function tn(n){if(!Number.isSafeInteger(n)||n<0)throw new Error(`Wrong positive integer: ${n}`)}function en(n,...t){if(!(n instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(n.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${n.length}`)}function rn(n,t=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(t&&n.finished)throw new Error("Hash#digest() has already been called")}function ts(n,t){en(n);let e=t.outputLen;if(n.length<e)throw new Error(`digestInto() expects output buffer of length at least ${e}`)}var hr=BigInt(4294967295),es=BigInt(32);function Oa(n,t=!1){return t?{h:Number(n&hr),l:Number(n>>es&hr)}:{h:Number(n>>es&hr)|0,l:Number(n&hr)|0}}function rs(n,t=!1){let e=new Uint32Array(n.length),r=new Uint32Array(n.length);for(let s=0;s<n.length;s++){let{h:a,l:o}=Oa(n[s],t);[e[s],r[s]]=[a,o]}return[e,r]}var ns=(n,t,e)=>n<<e|t>>>32-e,ss=(n,t,e)=>t<<e|n>>>32-e,as=(n,t,e)=>t<<e-32|n>>>64-e,os=(n,t,e)=>n<<e-32|t>>>64-e;var Na=n=>n instanceof Uint8Array;var is=n=>new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4));var Ba=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Ba)throw new Error("Non little-endian hardware is not supported");function Sa(n){if(typeof n!="string")throw new Error(`utf8ToBytes expected string, got ${typeof n}`);return new Uint8Array(new TextEncoder().encode(n))}function gr(n){if(typeof n=="string"&&(n=Sa(n)),!Na(n))throw new Error(`expected Uint8Array, got ${typeof n}`);return n}var mr=class{clone(){return this._cloneInto()}},Pi={}.toString;function cs(n){let t=r=>n().update(gr(r)).digest(),e=n();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>n(),t}function ls(n){let t=(r,s)=>n(s).update(gr(r)).digest(),e=n({});return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=r=>n(r),t}var[ps,fs,hs]=[[],[],[]],Fa=BigInt(0),Ve=BigInt(1),Da=BigInt(2),La=BigInt(7),_a=BigInt(256),Ha=BigInt(113);for(let n=0,t=Ve,e=1,r=0;n<24;n++){[e,r]=[r,(2*e+3*r)%5],ps.push(2*(5*r+e)),fs.push((n+1)*(n+2)/2%64);let s=Fa;for(let a=0;a<7;a++)t=(t<<Ve^(t>>La)*Ha)%_a,t&Da&&(s^=Ve<<(Ve<<BigInt(a))-Ve);hs.push(s)}var[Va,Ua]=rs(hs,!0),us=(n,t,e)=>e>32?as(n,t,e):ns(n,t,e),ds=(n,t,e)=>e>32?os(n,t,e):ss(n,t,e);function Ma(n,t=24){let e=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let o=0;o<10;o++)e[o]=n[o]^n[o+10]^n[o+20]^n[o+30]^n[o+40];for(let o=0;o<10;o+=2){let i=(o+8)%10,c=(o+2)%10,l=e[c],u=e[c+1],d=us(l,u,1)^e[i],p=ds(l,u,1)^e[i+1];for(let h=0;h<50;h+=10)n[o+h]^=d,n[o+h+1]^=p}let s=n[2],a=n[3];for(let o=0;o<24;o++){let i=fs[o],c=us(s,a,i),l=ds(s,a,i),u=ps[o];s=n[u],a=n[u+1],n[u]=c,n[u+1]=l}for(let o=0;o<50;o+=10){for(let i=0;i<10;i++)e[i]=n[o+i];for(let i=0;i<10;i++)n[o+i]^=~e[(i+2)%10]&e[(i+4)%10]}n[0]^=Va[r],n[1]^=Ua[r]}e.fill(0)}var be=class extends mr{constructor(t,e,r,s=!1,a=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=r,this.enableXOF=s,this.rounds=a,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,tn(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=is(this.state)}keccak(){Ma(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){rn(this);let{blockLen:e,state:r}=this;t=gr(t);let s=t.length;for(let a=0;a<s;){let o=Math.min(e-this.pos,s-a);for(let i=0;i<o;i++)r[this.pos++]^=t[a++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:e,pos:r,blockLen:s}=this;t[r]^=e,e&128&&r===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){rn(this,!1),en(t),this.finish();let e=this.state,{blockLen:r}=this;for(let s=0,a=t.length;s<a;){this.posOut>=r&&this.keccak();let o=Math.min(r-this.posOut,a-s);t.set(e.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return tn(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(ts(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:e,suffix:r,outputLen:s,rounds:a,enableXOF:o}=this;return t||(t=new be(e,r,s,o,a)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=s,t.enableXOF=o,t.destroyed=this.destroyed,t}},Dt=(n,t,e)=>cs(()=>new be(t,n,e)),Ni=Dt(6,144,224/8),Bi=Dt(6,136,256/8),Si=Dt(6,104,384/8),Fi=Dt(6,72,512/8),Di=Dt(1,144,224/8),ms=Dt(1,136,256/8),Li=Dt(1,104,384/8),_i=Dt(1,72,512/8),gs=(n,t,e)=>ls((r={})=>new be(t,n,r.dkLen===void 0?e:r.dkLen,!0)),Hi=gs(31,168,128/8),Vi=gs(31,136,256/8);var ys=!1,bs=function(n){return ms(n)},xs=bs;function Q(n){let t=_(n,"data");return P(xs(t))}Q._=bs;Q.lock=function(){ys=!0};Q.register=function(n){if(ys)throw new TypeError("keccak256 is locked");xs=n};Object.freeze(Q);var yr="0x0000000000000000000000000000000000000000000000000000000000000000";var Cs=BigInt(0),ws=BigInt(1),Ts=BigInt(2),Es=BigInt(27),ks=BigInt(28),br=BigInt(35),xe={};function vs(n){return fe(De(n),32)}var J=class{#t;#e;#r;#n;get r(){return this.#t}set r(t){f(lr(t)===32,"invalid r","value",t),this.#t=P(t)}get s(){return this.#e}set s(t){f(lr(t)===32,"invalid s","value",t);let e=P(t);f(parseInt(e.substring(0,3))<8,"non-canonical s","value",e),this.#e=e}get v(){return this.#r}set v(t){let e=I(t,"value");f(e===27||e===28,"invalid v","v",t),this.#r=e}get networkV(){return this.#n}get legacyChainId(){let t=this.networkV;return t==null?null:J.getChainId(t)}get yParity(){return this.v===27?0:1}get yParityAndS(){let t=_(this.s);return this.yParity&&(t[0]|=128),P(t)}get compactSerialized(){return at([this.r,this.yParityAndS])}get serialized(){return at([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(t,e,r,s){Ft(t,xe,"Signature"),this.#t=e,this.#e=r,this.#r=s,this.#n=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let t=new J(xe,this.r,this.s,this.v);return this.networkV&&(t.#n=this.networkV),t}toJSON(){let t=this.networkV;return{_type:"signature",networkV:t!=null?t.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(t){let e=T(t,"v");return e==Es||e==ks?Cs:(f(e>=br,"invalid EIP-155 v","v",t),(e-br)/Ts)}static getChainIdV(t,e){return T(t)*Ts+BigInt(35+e-27)}static getNormalizedV(t){let e=T(t);return e===Cs||e===Es?27:e===ws||e===ks?28:(f(e>=br,"invalid v","v",t),e&ws?27:28)}static from(t){function e(l,u){f(l,u,"signature",t)}if(t==null)return new J(xe,yr,yr,27);if(typeof t=="string"){let l=_(t,"signature");if(l.length===64){let u=P(l.slice(0,32)),d=l.slice(32,64),p=d[0]&128?28:27;return d[0]&=127,new J(xe,u,P(d),p)}if(l.length===65){let u=P(l.slice(0,32)),d=l.slice(32,64);e((d[0]&128)===0,"non-canonical s");let p=J.getNormalizedV(l[64]);return new J(xe,u,P(d),p)}e(!1,"invalid raw signature length")}if(t instanceof J)return t.clone();let r=t.r;e(r!=null,"missing r");let s=vs(r),a=function(l,u){if(l!=null)return vs(l);if(u!=null){e(U(u,32),"invalid yParityAndS");let d=_(u);return d[0]&=127,P(d)}e(!1,"missing s")}(t.s,t.yParityAndS);e((_(a)[0]&128)==0,"non-canonical s");let{networkV:o,v:i}=function(l,u,d){if(l!=null){let p=T(l);return{networkV:p>=br?p:void 0,v:J.getNormalizedV(p)}}if(u!=null)return e(U(u,32),"invalid yParityAndS"),{v:_(u)[0]&128?28:27};if(d!=null){switch(I(d,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}e(!1,"invalid yParity")}e(!1,"missing v")}(t.v,t.yParityAndS,t.yParity),c=new J(xe,s,a,i);return o&&(c.#n=o),e(t.yParity==null||I(t.yParity,"sig.yParity")===c.yParity,"yParity mismatch"),e(t.yParityAndS==null||t.yParityAndS===c.yParityAndS,"yParityAndS mismatch"),c}};var Ga=BigInt(0),$a=BigInt(36);function Ps(n){n=n.toLowerCase();let t=n.substring(2).split(""),e=new Uint8Array(40);for(let s=0;s<40;s++)e[s]=t[s].charCodeAt(0);let r=_(Q(e));for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&(t[s]=t[s].toUpperCase()),(r[s>>1]&15)>=8&&(t[s+1]=t[s+1].toUpperCase());return"0x"+t.join("")}var nn={};for(let n=0;n<10;n++)nn[String(n)]=String(n);for(let n=0;n<26;n++)nn[String.fromCharCode(65+n)]=String(10+n);var Is=15;function ja(n){n=n.toUpperCase(),n=n.substring(4)+n.substring(0,2)+"00";let t=n.split("").map(r=>nn[r]).join("");for(;t.length>=Is;){let r=t.substring(0,Is);t=parseInt(r,10)%97+t.substring(r.length)}let e=String(98-parseInt(t,10)%97);for(;e.length<2;)e="0"+e;return e}var Wa=function(){let n={};for(let t=0;t<36;t++){let e="0123456789abcdefghijklmnopqrstuvwxyz"[t];n[e]=BigInt(t)}return n}();function za(n){n=n.toLowerCase();let t=Ga;for(let e=0;e<n.length;e++)t=t*$a+Wa[n[e]];return t}function S(n){if(f(typeof n=="string","invalid address","address",n),n.match(/^(0x)?[0-9a-fA-F]{40}$/)){n.startsWith("0x")||(n="0x"+n);let t=Ps(n);return f(!n.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||t===n,"bad address checksum","address",n),t}if(n.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){f(n.substring(2,4)===ja(n),"bad icap checksum","address",n);let t=za(n.substring(4)).toString(16);for(;t.length<40;)t="0"+t;return Ps("0x"+t)}f(!1,"invalid address","address",n)}function sn(n){let t=S(n.from),r=T(n.nonce,"tx.nonce").toString(16);return r==="0"?r="0x":r.length%2?r="0x0"+r:r="0x"+r,S(yt(Q(Yr([t,r])),12))}function xr(n){return n&&typeof n.getAddress=="function"}async function an(n,t){let e=await t;return(e==null||e==="0x0000000000000000000000000000000000000000")&&(y(typeof n!="string","unconfigured name","UNCONFIGURED_NAME",{value:n}),f(!1,"invalid AddressLike value; did not resolve to a value address","target",n)),S(e)}function zt(n,t){if(typeof n=="string")return n.match(/^0x[0-9a-f]{40}$/i)?S(n):(y(t!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),an(n,t.resolveName(n)));if(xr(n))return an(n,n.getAddress());if(n&&typeof n.then=="function")return an(n,n);f(!1,"unsupported addressable value","target",n)}var ut={};function m(n,t){let e=!1;return t<0&&(e=!0,t*=-1),new O(ut,`${e?"":"u"}int${t}`,n,{signed:e,width:t})}function B(n,t){return new O(ut,`bytes${t||""}`,n,{size:t})}var As=Symbol.for("_ethers_typed"),O=class{type;value;#t;_typedSymbol;constructor(t,e,r,s){s==null&&(s=null),Ft(ut,t,"Typed"),C(this,{_typedSymbol:As,type:e,value:r}),this.#t=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(t=>t.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 this.#t}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return this.#t===!0?-1:this.#t===!1?this.value.length:null}static from(t,e){return new O(ut,t,e)}static uint8(t){return m(t,8)}static uint16(t){return m(t,16)}static uint24(t){return m(t,24)}static uint32(t){return m(t,32)}static uint40(t){return m(t,40)}static uint48(t){return m(t,48)}static uint56(t){return m(t,56)}static uint64(t){return m(t,64)}static uint72(t){return m(t,72)}static uint80(t){return m(t,80)}static uint88(t){return m(t,88)}static uint96(t){return m(t,96)}static uint104(t){return m(t,104)}static uint112(t){return m(t,112)}static uint120(t){return m(t,120)}static uint128(t){return m(t,128)}static uint136(t){return m(t,136)}static uint144(t){return m(t,144)}static uint152(t){return m(t,152)}static uint160(t){return m(t,160)}static uint168(t){return m(t,168)}static uint176(t){return m(t,176)}static uint184(t){return m(t,184)}static uint192(t){return m(t,192)}static uint200(t){return m(t,200)}static uint208(t){return m(t,208)}static uint216(t){return m(t,216)}static uint224(t){return m(t,224)}static uint232(t){return m(t,232)}static uint240(t){return m(t,240)}static uint248(t){return m(t,248)}static uint256(t){return m(t,256)}static uint(t){return m(t,256)}static int8(t){return m(t,-8)}static int16(t){return m(t,-16)}static int24(t){return m(t,-24)}static int32(t){return m(t,-32)}static int40(t){return m(t,-40)}static int48(t){return m(t,-48)}static int56(t){return m(t,-56)}static int64(t){return m(t,-64)}static int72(t){return m(t,-72)}static int80(t){return m(t,-80)}static int88(t){return m(t,-88)}static int96(t){return m(t,-96)}static int104(t){return m(t,-104)}static int112(t){return m(t,-112)}static int120(t){return m(t,-120)}static int128(t){return m(t,-128)}static int136(t){return m(t,-136)}static int144(t){return m(t,-144)}static int152(t){return m(t,-152)}static int160(t){return m(t,-160)}static int168(t){return m(t,-168)}static int176(t){return m(t,-176)}static int184(t){return m(t,-184)}static int192(t){return m(t,-192)}static int200(t){return m(t,-200)}static int208(t){return m(t,-208)}static int216(t){return m(t,-216)}static int224(t){return m(t,-224)}static int232(t){return m(t,-232)}static int240(t){return m(t,-240)}static int248(t){return m(t,-248)}static int256(t){return m(t,-256)}static int(t){return m(t,-256)}static bytes1(t){return B(t,1)}static bytes2(t){return B(t,2)}static bytes3(t){return B(t,3)}static bytes4(t){return B(t,4)}static bytes5(t){return B(t,5)}static bytes6(t){return B(t,6)}static bytes7(t){return B(t,7)}static bytes8(t){return B(t,8)}static bytes9(t){return B(t,9)}static bytes10(t){return B(t,10)}static bytes11(t){return B(t,11)}static bytes12(t){return B(t,12)}static bytes13(t){return B(t,13)}static bytes14(t){return B(t,14)}static bytes15(t){return B(t,15)}static bytes16(t){return B(t,16)}static bytes17(t){return B(t,17)}static bytes18(t){return B(t,18)}static bytes19(t){return B(t,19)}static bytes20(t){return B(t,20)}static bytes21(t){return B(t,21)}static bytes22(t){return B(t,22)}static bytes23(t){return B(t,23)}static bytes24(t){return B(t,24)}static bytes25(t){return B(t,25)}static bytes26(t){return B(t,26)}static bytes27(t){return B(t,27)}static bytes28(t){return B(t,28)}static bytes29(t){return B(t,29)}static bytes30(t){return B(t,30)}static bytes31(t){return B(t,31)}static bytes32(t){return B(t,32)}static address(t){return new O(ut,"address",t)}static bool(t){return new O(ut,"bool",!!t)}static bytes(t){return new O(ut,"bytes",t)}static string(t){return new O(ut,"string",t)}static array(t,e){throw new Error("not implemented yet")}static tuple(t,e){throw new Error("not implemented yet")}static overrides(t){return new O(ut,"overrides",Object.assign({},t))}static isTyped(t){return t&&typeof t=="object"&&"_typedSymbol"in t&&t._typedSymbol===As}static dereference(t,e){if(O.isTyped(t)){if(t.type!==e)throw new Error(`invalid type: expecetd ${e}, got ${t.type}`);return t.value}return t}};var Cr=class extends M{constructor(t){super("address","address",t,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(t,e){let r=O.dereference(e,"string");try{r=S(r)}catch(s){return this._throwError(s.message,e)}return t.writeValue(r)}decode(t){return S(Fe(t.readValue(),20))}};var wr=class extends M{coder;constructor(t){super(t.name,t.type,"_",t.dynamic),this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,e){return this.coder.encode(t,e)}decode(t){return this.coder.decode(t)}};function on(n,t,e){let r=[];if(Array.isArray(e))r=e;else if(e&&typeof e=="object"){let c={};r=t.map(l=>{let u=l.localName;return y(u,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:e}),y(!c[u],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:e}),c[u]=!0,e[u]})}else f(!1,"invalid tuple value","tuple",e);f(t.length===r.length,"types/value length mismatch","tuple",e);let s=new Wt,a=new Wt,o=[];t.forEach((c,l)=>{let u=r[l];if(c.dynamic){let d=a.length;c.encode(a,u);let p=s.writeUpdatableValue();o.push(h=>{p(h+d)})}else c.encode(s,u)}),o.forEach(c=>{c(s.length)});let i=n.appendWriter(s);return i+=n.appendWriter(a),i}function cn(n,t){let e=[],r=[],s=n.subReader(0);return t.forEach(a=>{let o=null;if(a.dynamic){let i=n.readIndex(),c=s.subReader(i);try{o=a.decode(c)}catch(l){if(gt(l,"BUFFER_OVERRUN"))throw l;o=l,o.baseType=a.name,o.name=a.localName,o.type=a.type}}else try{o=a.decode(n)}catch(i){if(gt(i,"BUFFER_OVERRUN"))throw i;o=i,o.baseType=a.name,o.name=a.localName,o.type=a.type}if(o==null)throw new Error("investigate");e.push(o),r.push(a.localName||null)}),z.fromItems(e,r)}var Tr=class extends M{coder;length;constructor(t,e,r){let s=t.type+"["+(e>=0?e:"")+"]",a=e===-1||t.dynamic;super("array",s,r,a),C(this,{coder:t,length:e})}defaultValue(){let t=this.coder.defaultValue(),e=[];for(let r=0;r<this.length;r++)e.push(t);return e}encode(t,e){let r=O.dereference(e,"array");Array.isArray(r)||this._throwError("expected array value",r);let s=this.length;s===-1&&(s=r.length,t.writeValue(r.length)),Be(r.length,s,"coder array"+(this.localName?" "+this.localName:""));let a=[];for(let o=0;o<r.length;o++)a.push(this.coder);return on(t,a,r)}decode(t){let e=this.length;e===-1&&(e=t.readIndex(),y(e*W<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:e*W,length:t.dataLength}));let r=[];for(let s=0;s<e;s++)r.push(new wr(this.coder));return cn(t,r)}};var Er=class extends M{constructor(t){super("bool","bool",t,!1)}defaultValue(){return!1}encode(t,e){let r=O.dereference(e,"bool");return t.writeValue(r?1:0)}decode(t){return!!t.readValue()}};var Ue=class extends M{constructor(t,e){super(t,t,e,!0)}defaultValue(){return"0x"}encode(t,e){e=Z(e);let r=t.writeValue(e.length);return r+=t.writeBytes(e),r}decode(t){return t.readBytes(t.readIndex(),!0)}},kr=class extends Ue{constructor(t){super("bytes",t)}decode(t){return P(super.decode(t))}};var vr=class extends M{size;constructor(t,e){let r="bytes"+String(t);super(r,r,e,!1),C(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(t,e){let r=Z(O.dereference(e,this.type));return r.length!==this.size&&this._throwError("incorrect data length",e),t.writeBytes(r)}decode(t){return P(t.readBytes(this.size))}};var Ja=new Uint8Array([]),Pr=class extends M{constructor(t){super("null","",t,!1)}defaultValue(){return null}encode(t,e){return e!=null&&this._throwError("not null",e),t.writeBytes(Ja)}decode(t){return t.readBytes(0),null}};var Ka=BigInt(0),Xa=BigInt(1),Za=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Ir=class extends M{size;signed;constructor(t,e,r){let s=(e?"int":"uint")+t*8;super(s,s,r,!1),C(this,{size:t,signed:e},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,e){let r=T(O.dereference(e,this.type)),s=me(Za,W*8);if(this.signed){let a=me(s,this.size*8-1);(r>a||r<-(a+Xa))&&this._throwError("value out-of-bounds",e),r=Xr(r,8*W)}else(r<Ka||r>me(s,this.size*8))&&this._throwError("value out-of-bounds",e);return t.writeValue(r)}decode(t){let e=me(t.readValue(),this.size*8);return this.signed&&(e=Kr(e,this.size*8)),e}};var Ar=class extends Ue{constructor(t){super("string",t)}defaultValue(){return""}encode(t,e){return super.encode(t,ge(O.dereference(e,"string")))}decode(t){return _e(super.decode(t))}};var Jt=class extends M{coders;constructor(t,e){let r=!1,s=[];t.forEach(o=>{o.dynamic&&(r=!0),s.push(o.type)});let a="tuple("+s.join(",")+")";super("tuple",a,e,r),C(this,{coders:Object.freeze(t.slice())})}defaultValue(){let t=[];this.coders.forEach(r=>{t.push(r.defaultValue())});let e=this.coders.reduce((r,s)=>{let a=s.localName;return a&&(r[a]||(r[a]=0),r[a]++),r},{});return this.coders.forEach((r,s)=>{let a=r.localName;!a||e[a]!==1||(a==="length"&&(a="_length"),t[a]==null&&(t[a]=t[s]))}),Object.freeze(t)}encode(t,e){let r=O.dereference(e,"tuple");return on(t,this.coders,r)}decode(t){return cn(t,this.coders)}};function Lt(n){return Q(ge(n))}function ln(n,t){return{address:S(n),storageKeys:t.map((e,r)=>(f(U(e,32),"invalid slot",`storageKeys[${r}]`,e),e.toLowerCase()))}}function Me(n){if(Array.isArray(n))return n.map((e,r)=>Array.isArray(e)?(f(e.length===2,"invalid slot set",`value[${r}]`,e),ln(e[0],e[1])):(f(e!=null&&typeof e=="object","invalid address-slot set","value",n),ln(e.address,e.storageKeys)));f(n!=null&&typeof n=="object","invalid access list","value",n);let t=Object.keys(n).map(e=>{let r=n[e].reduce((s,a)=>(s[a]=!0,s),{});return ln(e,Object.keys(r).sort())});return t.sort((e,r)=>e.address.localeCompare(r.address)),t}function Y(n){let t=new Set;return n.forEach(e=>t.add(e)),Object.freeze(t)}var Ya="external public payable override",Qa=Y(Ya.split(" ")),Hs="constant external internal payable private public pure view override",qa=Y(Hs.split(" ")),Vs="constructor error event fallback function receive struct",Us=Y(Vs.split(" ")),Ms="calldata memory storage payable indexed",to=Y(Ms.split(" ")),eo="tuple returns",ro=[Vs,Ms,eo,Hs].join(" "),no=Y(ro.split(" ")),so={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},ao=new RegExp("^(\\s*)"),oo=new RegExp("^([0-9]+)"),io=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Gs=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),$s=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"),et=class{#t;#e;get offset(){return this.#t}get length(){return this.#e.length-this.#t}constructor(t){this.#t=0,this.#e=t.slice()}clone(){return new et(this.#e)}reset(){this.#t=0}#r(t=0,e=0){return new et(this.#e.slice(t,e).map(r=>Object.freeze(Object.assign({},r,{match:r.match-t,linkBack:r.linkBack-t,linkNext:r.linkNext-t}))))}popKeyword(t){let e=this.peek();if(e.type!=="KEYWORD"||!t.has(e.text))throw new Error(`expected keyword ${e.text}`);return this.pop().text}popType(t){if(this.peek().type!==t){let e=this.peek();throw new Error(`expected ${t}; got ${e.type} ${JSON.stringify(e.text)}`)}return this.pop().text}popParen(){let t=this.peek();if(t.type!=="OPEN_PAREN")throw new Error("bad start");let e=this.#r(this.#t+1,t.match+1);return this.#t=t.match+1,e}popParams(){let t=this.peek();if(t.type!=="OPEN_PAREN")throw new Error("bad start");let e=[];for(;this.#t<t.match-1;){let r=this.peek().linkNext;e.push(this.#r(this.#t+1,r)),this.#t=r}return this.#t=t.match+1,e}peek(){if(this.#t>=this.#e.length)throw new Error("out-of-bounds");return this.#e[this.#t]}peekKeyword(t){let e=this.peekType("KEYWORD");return e!=null&&t.has(e)?e:null}peekType(t){if(this.length===0)return null;let e=this.peek();return e.type===t?e.text:null}pop(){let t=this.peek();return this.#t++,t}toString(){let t=[];for(let e=this.#t;e<this.#e.length;e++){let r=this.#e[e];t.push(`${r.type}:${r.text}`)}return`<TokenString ${t.join(" ")}>`}};function _t(n){let t=[],e=o=>{let i=a<n.length?JSON.stringify(n[a]):"$EOI";throw new Error(`invalid token ${i} at ${a}: ${o}`)},r=[],s=[],a=0;for(;a<n.length;){let o=n.substring(a),i=o.match(ao);i&&(a+=i[1].length,o=n.substring(a));let c={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:a,value:-1};t.push(c);let l=so[o[0]]||"";if(l){if(c.type=l,c.text=o[0],a++,l==="OPEN_PAREN")r.push(t.length-1),s.push(t.length-1);else if(l=="CLOSE_PAREN")r.length===0&&e("no matching open bracket"),c.match=r.pop(),t[c.match].match=t.length-1,c.depth--,c.linkBack=s.pop(),t[c.linkBack].linkNext=t.length-1;else if(l==="COMMA")c.linkBack=s.pop(),t[c.linkBack].linkNext=t.length-1,s.push(t.length-1);else if(l==="OPEN_BRACKET")c.type="BRACKET";else if(l==="CLOSE_BRACKET"){let u=t.pop().text;if(t.length>0&&t[t.length-1].type==="NUMBER"){let d=t.pop().text;u=d+u,t[t.length-1].value=I(d)}if(t.length===0||t[t.length-1].type!=="BRACKET")throw new Error("missing opening bracket");t[t.length-1].text+=u}continue}if(i=o.match(io),i){if(c.text=i[1],a+=c.text.length,no.has(c.text)){c.type="KEYWORD";continue}if(c.text.match($s)){c.type="TYPE";continue}c.type="ID";continue}if(i=o.match(oo),i){c.text=i[1],c.type="NUMBER",a+=c.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${a}`)}return new et(t.map(o=>Object.freeze(o)))}function Rs(n,t){let e=[];for(let r in t.keys())n.has(r)&&e.push(r);if(e.length>1)throw new Error(`conflicting types: ${e.join(", ")}`)}function Rr(n,t){if(t.peekKeyword(Us)){let e=t.pop().text;if(e!==n)throw new Error(`expected ${n}, got ${e}`)}return t.popType("ID")}function vt(n,t){let e=new Set;for(;;){let r=n.peekType("KEYWORD");if(r==null||t&&!t.has(r))break;if(n.pop(),e.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);e.add(r)}return Object.freeze(e)}function js(n){let t=vt(n,qa);return Rs(t,Y("constant payable nonpayable".split(" "))),Rs(t,Y("pure view payable nonpayable".split(" "))),t.has("view")?"view":t.has("pure")?"pure":t.has("payable")?"payable":t.has("nonpayable")?"nonpayable":t.has("constant")?"view":"nonpayable"}function kt(n,t){return n.popParams().map(e=>F.from(e,t))}function Ws(n){if(n.peekType("AT")){if(n.pop(),n.peekType("NUMBER"))return T(n.pop().text);throw new Error("invalid gas")}return null}function Kt(n){if(n.length)throw new Error(`unexpected tokens at offset ${n.offset}: ${n.toString()}`)}var co=new RegExp(/^(.*)\[([0-9]*)\]$/);function Os(n){let t=n.match($s);if(f(t,"invalid type","type",n),n==="uint")return"uint256";if(n==="int")return"int256";if(t[2]){let e=parseInt(t[2]);f(e!==0&&e<=32,"invalid bytes length","type",n)}else if(t[3]){let e=parseInt(t[3]);f(e!==0&&e<=256&&e%8===0,"invalid numeric width","type",n)}return n}var V={},rt=Symbol.for("_ethers_internal"),Ns="_ParamTypeInternal",Bs="_ErrorInternal",Ss="_EventInternal",Fs="_ConstructorInternal",Ds="_FallbackInternal",Ls="_FunctionInternal",_s="_StructInternal",F=class{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(t,e,r,s,a,o,i,c){if(Ft(t,V,"ParamType"),Object.defineProperty(this,rt,{value:Ns}),o&&(o=Object.freeze(o.slice())),s==="array"){if(i==null||c==null)throw new Error("")}else if(i!=null||c!=null)throw new Error("");if(s==="tuple"){if(o==null)throw new Error("")}else if(o!=null)throw new Error("");C(this,{name:e,type:r,baseType:s,indexed:a,components:o,arrayLength:i,arrayChildren:c})}format(t){if(t==null&&(t="sighash"),t==="json"){let r=this.name||"";if(this.isArray()){let a=JSON.parse(this.arrayChildren.format("json"));return a.name=r,a.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(a)}let s={type:this.baseType==="tuple"?"tuple":this.type,name:r};return typeof this.indexed=="boolean"&&(s.indexed=this.indexed),this.isTuple()&&(s.components=this.components.map(a=>JSON.parse(a.format(t)))),JSON.stringify(s)}let e="";return this.isArray()?(e+=this.arrayChildren.format(t),e+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?e+="("+this.components.map(r=>r.format(t)).join(t==="full"?", ":",")+")":e+=this.type,t!=="sighash"&&(this.indexed===!0&&(e+=" indexed"),t==="full"&&this.name&&(e+=" "+this.name)),e}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(t,e){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");let r=this;return t.map(s=>r.arrayChildren.walk(s,e))}if(this.isTuple()){if(!Array.isArray(t))throw new Error("invalid tuple value");if(t.length!==this.components.length)throw new Error("array is wrong length");let r=this;return t.map((s,a)=>r.components[a].walk(s,e))}return e(this.type,t)}#t(t,e,r,s){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");let o=this.arrayChildren,i=e.slice();i.forEach((c,l)=>{o.#t(t,c,r,u=>{i[l]=u})}),s(i);return}if(this.isTuple()){let o=this.components,i;if(Array.isArray(e))i=e.slice();else{if(e==null||typeof e!="object")throw new Error("invalid tuple value");i=o.map(c=>{if(!c.name)throw new Error("cannot use object value with unnamed components");if(!(c.name in e))throw new Error(`missing value for component ${c.name}`);return e[c.name]})}if(i.length!==this.components.length)throw new Error("array is wrong length");i.forEach((c,l)=>{o[l].#t(t,c,r,u=>{i[l]=u})}),s(i);return}let a=r(this.type,e);a.then?t.push(async function(){s(await a)}()):s(a)}async walkAsync(t,e){let r=[],s=[t];return this.#t(r,t,e,a=>{s[0]=a}),r.length&&await Promise.all(r),s[0]}static from(t,e){if(F.isParamType(t))return t;if(typeof t=="string")try{return F.from(_t(t),e)}catch{f(!1,"invalid param type","obj",t)}else if(t instanceof et){let i="",c="",l=null;vt(t,Y(["tuple"])).has("tuple")||t.peekType("OPEN_PAREN")?(c="tuple",l=t.popParams().map(w=>F.from(w)),i=`tuple(${l.map(w=>w.format()).join(",")})`):(i=Os(t.popType("TYPE")),c=i);let u=null,d=null;for(;t.length&&t.peekType("BRACKET");){let w=t.pop();u=new F(V,"",i,c,null,l,d,u),d=w.value,i+=w.text,c="array",l=null}let p=null;if(vt(t,to).has("indexed")){if(!e)throw new Error("");p=!0}let x=t.peekType("ID")?t.pop().text:"";if(t.length)throw new Error("leftover tokens");return new F(V,x,i,c,p,l,d,u)}let r=t.name;f(!r||typeof r=="string"&&r.match(Gs),"invalid name","obj.name",r);let s=t.indexed;s==!0?(f(e,"parameter cannot be indexed","obj.indexed",t.indexed),s=!0):s=!1;let a=t.type,o=a.match(co);if(o){let i=parseInt(o[2]||"-1"),c=F.from({type:o[1],components:t.components});return new F(V,r||"",a,"array",s,null,i,c)}if(a==="tuple"||a.startsWith("tuple(")||a.startsWith("(")){let i=t.components!=null?t.components.map(l=>F.from(l)):null;return new F(V,r||"",a,"tuple",s,i,null,null)}return a=Os(t.type),new F(V,r||"",a,a,s,null,null,null)}static isParamType(t){return t&&t[rt]===Ns}},dt=class{type;inputs;constructor(t,e,r){Ft(t,V,"Fragment"),r=Object.freeze(r.slice()),C(this,{type:e,inputs:r})}static from(t){if(typeof t=="string"){try{dt.from(JSON.parse(t))}catch{}return dt.from(_t(t))}if(t instanceof et)switch(t.peekKeyword(Us)){case"constructor":return ot.from(t);case"error":return $.from(t);case"event":return q.from(t);case"fallback":case"receive":return ct.from(t);case"function":return tt.from(t);case"struct":return bt.from(t)}else if(typeof t=="object"){switch(t.type){case"constructor":return ot.from(t);case"error":return $.from(t);case"event":return q.from(t);case"fallback":case"receive":return ct.from(t);case"function":return tt.from(t);case"struct":return bt.from(t)}y(!1,`unsupported type: ${t.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}f(!1,"unsupported frgament object","obj",t)}static isConstructor(t){return ot.isFragment(t)}static isError(t){return $.isFragment(t)}static isEvent(t){return q.isFragment(t)}static isFunction(t){return tt.isFragment(t)}static isStruct(t){return bt.isFragment(t)}},Xt=class extends dt{name;constructor(t,e,r,s){super(t,e,s),f(typeof r=="string"&&r.match(Gs),"invalid identifier","name",r),s=Object.freeze(s.slice()),C(this,{name:r})}};function Ge(n,t){return"("+t.map(e=>e.format(n)).join(n==="full"?", ":",")+")"}var $=class extends Xt{constructor(t,e,r){super(t,"error",e,r),Object.defineProperty(this,rt,{value:Bs})}get selector(){return Lt(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(t)))});let e=[];return t!=="sighash"&&e.push("error"),e.push(this.name+Ge(t,this.inputs)),e.join(" ")}static from(t){if($.isFragment(t))return t;if(typeof t=="string")return $.from(_t(t));if(t instanceof et){let e=Rr("error",t),r=kt(t);return Kt(t),new $(V,e,r)}return new $(V,t.name,t.inputs?t.inputs.map(F.from):[])}static isFragment(t){return t&&t[rt]===Bs}},q=class extends Xt{anonymous;constructor(t,e,r,s){super(t,"event",e,r),Object.defineProperty(this,rt,{value:Ss}),C(this,{anonymous:s})}get topicHash(){return Lt(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(r=>JSON.parse(r.format(t)))});let e=[];return t!=="sighash"&&e.push("event"),e.push(this.name+Ge(t,this.inputs)),t!=="sighash"&&this.anonymous&&e.push("anonymous"),e.join(" ")}static getTopicHash(t,e){return e=(e||[]).map(s=>F.from(s)),new q(V,t,e,!1).topicHash}static from(t){if(q.isFragment(t))return t;if(typeof t=="string")try{return q.from(_t(t))}catch{f(!1,"invalid event fragment","obj",t)}else if(t instanceof et){let e=Rr("event",t),r=kt(t,!0),s=!!vt(t,Y(["anonymous"])).has("anonymous");return Kt(t),new q(V,e,r,s)}return new q(V,t.name,t.inputs?t.inputs.map(e=>F.from(e,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[rt]===Ss}},ot=class extends dt{payable;gas;constructor(t,e,r,s,a){super(t,e,r),Object.defineProperty(this,rt,{value:Fs}),C(this,{payable:s,gas:a})}format(t){if(y(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(r=>JSON.parse(r.format(t)))});let e=[`constructor${Ge(t,this.inputs)}`];return this.payable&&e.push("payable"),this.gas!=null&&e.push(`@${this.gas.toString()}`),e.join(" ")}static from(t){if(ot.isFragment(t))return t;if(typeof t=="string")try{return ot.from(_t(t))}catch{f(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof et){vt(t,Y(["constructor"]));let e=kt(t),r=!!vt(t,Qa).has("payable"),s=Ws(t);return Kt(t),new ot(V,"constructor",e,r,s)}return new ot(V,"constructor",t.inputs?t.inputs.map(F.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[rt]===Fs}},ct=class extends dt{payable;constructor(t,e,r){super(t,"fallback",e),Object.defineProperty(this,rt,{value:Ds}),C(this,{payable:r})}format(t){let e=this.inputs.length===0?"receive":"fallback";if(t==="json"){let r=this.payable?"payable":"nonpayable";return JSON.stringify({type:e,stateMutability:r})}return`${e}()${this.payable?" payable":""}`}static from(t){if(ct.isFragment(t))return t;if(typeof t=="string")try{return ct.from(_t(t))}catch{f(!1,"invalid fallback fragment","obj",t)}else if(t instanceof et){let e=t.toString(),r=t.peekKeyword(Y(["fallback","receive"]));if(f(r,"type must be fallback or receive","obj",e),t.popKeyword(Y(["fallback","receive"]))==="receive"){let i=kt(t);return f(i.length===0,"receive cannot have arguments","obj.inputs",i),vt(t,Y(["payable"])),Kt(t),new ct(V,[],!0)}let a=kt(t);a.length?f(a.length===1&&a[0].type==="bytes","invalid fallback inputs","obj.inputs",a.map(i=>i.format("minimal")).join(", ")):a=[F.from("bytes")];let o=js(t);if(f(o==="nonpayable"||o==="payable","fallback cannot be constants","obj.stateMutability",o),vt(t,Y(["returns"])).has("returns")){let i=kt(t);f(i.length===1&&i[0].type==="bytes","invalid fallback outputs","obj.outputs",i.map(c=>c.format("minimal")).join(", "))}return Kt(t),new ct(V,a,o==="payable")}if(t.type==="receive")return new ct(V,[],!0);if(t.type==="fallback"){let e=[F.from("bytes")],r=t.stateMutability==="payable";return new ct(V,e,r)}f(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[rt]===Ds}},tt=class extends Xt{constant;outputs;stateMutability;payable;gas;constructor(t,e,r,s,a,o){super(t,"function",e,s),Object.defineProperty(this,rt,{value:Ls}),a=Object.freeze(a.slice()),C(this,{constant:r==="view"||r==="pure",gas:o,outputs:a,payable:r==="payable",stateMutability:r})}get selector(){return Lt(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(r=>JSON.parse(r.format(t))),outputs:this.outputs.map(r=>JSON.parse(r.format(t)))});let e=[];return t!=="sighash"&&e.push("function"),e.push(this.name+Ge(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&e.push(this.stateMutability),this.outputs&&this.outputs.length&&(e.push("returns"),e.push(Ge(t,this.outputs))),this.gas!=null&&e.push(`@${this.gas.toString()}`)),e.join(" ")}static getSelector(t,e){return e=(e||[]).map(s=>F.from(s)),new tt(V,t,"view",e,[],null).selector}static from(t){if(tt.isFragment(t))return t;if(typeof t=="string")try{return tt.from(_t(t))}catch{f(!1,"invalid function fragment","obj",t)}else if(t instanceof et){let r=Rr("function",t),s=kt(t),a=js(t),o=[];vt(t,Y(["returns"])).has("returns")&&(o=kt(t));let i=Ws(t);return Kt(t),new tt(V,r,a,s,o,i)}let e=t.stateMutability;return e==null&&(e="payable",typeof t.constant=="boolean"?(e="view",t.constant||(e="payable",typeof t.payable=="boolean"&&!t.payable&&(e="nonpayable"))):typeof t.payable=="boolean"&&!t.payable&&(e="nonpayable")),new tt(V,t.name,e,t.inputs?t.inputs.map(F.from):[],t.outputs?t.outputs.map(F.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[rt]===Ls}},bt=class extends Xt{constructor(t,e,r){super(t,"struct",e,r),Object.defineProperty(this,rt,{value:_s})}format(){throw new Error("@TODO")}static from(t){if(typeof t=="string")try{return bt.from(_t(t))}catch{f(!1,"invalid struct fragment","obj",t)}else if(t instanceof et){let e=Rr("struct",t),r=kt(t);return Kt(t),new bt(V,e,r)}return new bt(V,t.name,t.inputs?t.inputs.map(F.from):[])}static isFragment(t){return t&&t[rt]===_s}};var pt=new Map;pt.set(0,"GENERIC_PANIC");pt.set(1,"ASSERT_FALSE");pt.set(17,"OVERFLOW");pt.set(18,"DIVIDE_BY_ZERO");pt.set(33,"ENUM_RANGE_ERROR");pt.set(34,"BAD_STORAGE_DATA");pt.set(49,"STACK_UNDERFLOW");pt.set(50,"ARRAY_RANGE_ERROR");pt.set(65,"OUT_OF_MEMORY");pt.set(81,"UNINITIALIZED_FUNCTION_CALL");var lo=new RegExp(/^bytes([0-9]*)$/),uo=new RegExp(/^(u?int)([0-9]*)$/),un=null,zs=1024;function po(n,t,e,r){let s="missing revert data",a=null,o=null,i=null;if(e){s="execution reverted";let l=_(e);if(e=P(e),l.length===0)s+=" (no data present; likely require(false) occurred",a="require(false)";else if(l.length%32!==4)s+=" (could not decode reason; invalid data length)";else if(P(l.slice(0,4))==="0x08c379a0")try{a=r.decode(["string"],l.slice(4))[0],i={signature:"Error(string)",name:"Error",args:[a]},s+=`: ${JSON.stringify(a)}`}catch{s+=" (could not decode reason; invalid string data)"}else if(P(l.slice(0,4))==="0x4e487b71")try{let u=Number(r.decode(["uint256"],l.slice(4))[0]);i={signature:"Panic(uint256)",name:"Panic",args:[u]},a=`Panic due to ${pt.get(u)||"UNKNOWN"}(${u})`,s+=`: ${a}`}catch{s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}let c={to:t.to?S(t.to):null,data:t.data||"0x"};return t.from&&(c.from=S(t.from)),Et(s,"CALL_EXCEPTION",{action:n,data:e,reason:a,transaction:c,invocation:o,revert:i})}var Pt=class{#t(t){if(t.isArray())return new Tr(this.#t(t.arrayChildren),t.arrayLength,t.name);if(t.isTuple())return new Jt(t.components.map(r=>this.#t(r)),t.name);switch(t.baseType){case"address":return new Cr(t.name);case"bool":return new Er(t.name);case"string":return new Ar(t.name);case"bytes":return new kr(t.name);case"":return new Pr(t.name)}let e=t.type.match(uo);if(e){let r=parseInt(e[2]||"256");return f(r!==0&&r<=256&&r%8===0,"invalid "+e[1]+" bit length","param",t),new Ir(r/8,e[1]==="int",t.name)}if(e=t.type.match(lo),e){let r=parseInt(e[1]);return f(r!==0&&r<=32,"invalid bytes length","param",t),new vr(r,t.name)}f(!1,"invalid type","type",t.type)}getDefaultValue(t){let e=t.map(s=>this.#t(F.from(s)));return new Jt(e,"_").defaultValue()}encode(t,e){Be(e.length,t.length,"types/values length mismatch");let r=t.map(o=>this.#t(F.from(o))),s=new Jt(r,"_"),a=new Wt;return s.encode(a,e),a.data}decode(t,e,r){let s=t.map(o=>this.#t(F.from(o)));return new Jt(s,"_").decode(new ye(e,r,zs))}static _setDefaultMaxInflation(t){f(typeof t=="number"&&Number.isInteger(t),"invalid defaultMaxInflation factor","value",t),zs=t}static defaultAbiCoder(){return un==null&&(un=new Pt),un}static getBuiltinCallException(t,e,r){return po(t,e,r,Pt.defaultAbiCoder())}};function Js(n){let t=_(n,"bytes");if(t.length!==32)throw new Error("invalid bytes32 - not 32 bytes long");if(t[31]!==0)throw new Error("invalid bytes32 string - no null terminator");let e=31;for(;t[e-1]===0;)e--;return _e(t.slice(0,e))}var $e=class{fragment;name;signature;topic;args;constructor(t,e,r){let s=t.name,a=t.format();C(this,{fragment:t,name:s,signature:a,topic:e,args:r})}},je=class{fragment;name;args;signature;selector;value;constructor(t,e,r,s){let a=t.name,o=t.format();C(this,{fragment:t,name:a,args:r,signature:o,selector:e,value:s})}},We=class{fragment;name;args;signature;selector;constructor(t,e,r){let s=t.name,a=t.format();C(this,{fragment:t,name:s,args:r,signature:a,selector:e})}},Ce=class{hash;_isIndexed;static isIndexed(t){return!!(t&&t._isIndexed)}constructor(t){C(this,{hash:t,_isIndexed:!0})}},Ks={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"},Xs={"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 t="unknown panic code";return n>=0&&n<=255&&Ks[n.toString()]&&(t=Ks[n.toString()]),`reverted with panic code 0x${n.toString(16)} (${t})`}}},b=class{fragments;deploy;fallback;receive;#t;#e;#r;#n;constructor(t){let e=[];typeof t=="string"?e=JSON.parse(t):e=t,this.#r=new Map,this.#t=new Map,this.#e=new Map;let r=[];for(let o of e)try{r.push(dt.from(o))}catch(i){console.log(`[Warning] Invalid Fragment ${JSON.stringify(o)}:`,i.message)}C(this,{fragments:Object.freeze(r)});let s=null,a=!1;this.#n=this.getAbiCoder(),this.fragments.forEach((o,i)=>{let c;switch(o.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}C(this,{deploy:o});return;case"fallback":o.inputs.length===0?a=!0:(f(!s||o.payable!==s.payable,"conflicting fallback fragments",`fragments[${i}]`,o),s=o,a=s.payable);return;case"function":c=this.#r;break;case"event":c=this.#e;break;case"error":c=this.#t;break;default:return}let l=o.format();c.has(l)||c.set(l,o)}),this.deploy||C(this,{deploy:ot.from("constructor()")}),C(this,{fallback:s,receive:a})}format(t){let e=t?"minimal":"full";return this.fragments.map(s=>s.format(e))}formatJson(){let t=this.fragments.map(e=>e.format("json"));return JSON.stringify(t.map(e=>JSON.parse(e)))}getAbiCoder(){return Pt.defaultAbiCoder()}#s(t,e,r){if(U(t)){let a=t.toLowerCase();for(let o of this.#r.values())if(a===o.selector)return o;return null}if(t.indexOf("(")===-1){let a=[];for(let[o,i]of this.#r)o.split("(")[0]===t&&a.push(i);if(e){let o=e.length>0?e[e.length-1]:null,i=e.length,c=!0;O.isTyped(o)&&o.type==="overrides"&&(c=!1,i--);for(let l=a.length-1;l>=0;l--){let u=a[l].inputs.length;u!==i&&(!c||u!==i-1)&&a.splice(l,1)}for(let l=a.length-1;l>=0;l--){let u=a[l].inputs;for(let d=0;d<e.length;d++)if(O.isTyped(e[d])){if(d>=u.length){if(e[d].type==="overrides")continue;a.splice(l,1);break}if(e[d].type!==u[d].baseType){a.splice(l,1);break}}}}if(a.length===1&&e&&e.length!==a[0].inputs.length){let o=e[e.length-1];(o==null||Array.isArray(o)||typeof o!="object")&&a.splice(0,1)}if(a.length===0)return null;if(a.length>1&&r){let o=a.map(i=>JSON.stringify(i.format())).join(", ");f(!1,`ambiguous function description (i.e. matches ${o})`,"key",t)}return a[0]}let s=this.#r.get(tt.from(t).format());return s||null}getFunctionName(t){let e=this.#s(t,null,!1);return f(e,"no matching function","key",t),e.name}hasFunction(t){return!!this.#s(t,null,!1)}getFunction(t,e){return this.#s(t,e||null,!0)}forEachFunction(t){let e=Array.from(this.#r.keys());e.sort((r,s)=>r.localeCompare(s));for(let r=0;r<e.length;r++){let s=e[r];t(this.#r.get(s),r)}}#a(t,e,r){if(U(t)){let a=t.toLowerCase();for(let o of this.#e.values())if(a===o.topicHash)return o;return null}if(t.indexOf("(")===-1){let a=[];for(let[o,i]of this.#e)o.split("(")[0]===t&&a.push(i);if(e){for(let o=a.length-1;o>=0;o--)a[o].inputs.length<e.length&&a.splice(o,1);for(let o=a.length-1;o>=0;o--){let i=a[o].inputs;for(let c=0;c<e.length;c++)if(O.isTyped(e[c])&&e[c].type!==i[c].baseType){a.splice(o,1);break}}}if(a.length===0)return null;if(a.length>1&&r){let o=a.map(i=>JSON.stringify(i.format())).join(", ");f(!1,`ambiguous event description (i.e. matches ${o})`,"key",t)}return a[0]}let s=this.#e.get(q.from(t).format());return s||null}getEventName(t){let e=this.#a(t,null,!1);return f(e,"no matching event","key",t),e.name}hasEvent(t){return!!this.#a(t,null,!1)}getEvent(t,e){return this.#a(t,e||null,!0)}forEachEvent(t){let e=Array.from(this.#e.keys());e.sort((r,s)=>r.localeCompare(s));for(let r=0;r<e.length;r++){let s=e[r];t(this.#e.get(s),r)}}getError(t,e){if(U(t)){let s=t.toLowerCase();if(Xs[s])return $.from(Xs[s].signature);for(let a of this.#t.values())if(s===a.selector)return a;return null}if(t.indexOf("(")===-1){let s=[];for(let[a,o]of this.#t)a.split("(")[0]===t&&s.push(o);if(s.length===0)return t==="Error"?$.from("error Error(string)"):t==="Panic"?$.from("error Panic(uint256)"):null;if(s.length>1){let a=s.map(o=>JSON.stringify(o.format())).join(", ");f(!1,`ambiguous error description (i.e. ${a})`,"name",t)}return s[0]}if(t=$.from(t).format(),t==="Error(string)")return $.from("error Error(string)");if(t==="Panic(uint256)")return $.from("error Panic(uint256)");let r=this.#t.get(t);return r||null}forEachError(t){let e=Array.from(this.#t.keys());e.sort((r,s)=>r.localeCompare(s));for(let r=0;r<e.length;r++){let s=e[r];t(this.#t.get(s),r)}}_decodeParams(t,e){return this.#n.decode(t,e)}_encodeParams(t,e){return this.#n.encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){if(typeof t=="string"){let r=this.getError(t);f(r,"unknown error","fragment",t),t=r}return f(yt(e,0,4)===t.selector,`data signature does not match error ${t.name}.`,"data",e),this._decodeParams(t.inputs,yt(e,4))}encodeErrorResult(t,e){if(typeof t=="string"){let r=this.getError(t);f(r,"unknown error","fragment",t),t=r}return at([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionData(t,e){if(typeof t=="string"){let r=this.getFunction(t);f(r,"unknown function","fragment",t),t=r}return f(yt(e,0,4)===t.selector,`data signature does not match function ${t.name}.`,"data",e),this._decodeParams(t.inputs,yt(e,4))}encodeFunctionData(t,e){if(typeof t=="string"){let r=this.getFunction(t);f(r,"unknown function","fragment",t),t=r}return at([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionResult(t,e){if(typeof t=="string"){let a=this.getFunction(t);f(a,"unknown function","fragment",t),t=a}let r="invalid length for result data",s=Z(e);if(s.length%32===0)try{return this.#n.decode(t.outputs,s)}catch{r="could not decode result data"}y(!1,r,"BAD_DATA",{value:P(s),info:{method:t.name,signature:t.format()}})}makeError(t,e){let r=_(t,"data"),s=Pt.getBuiltinCallException("call",e,r),a="execution reverted (unknown custom error)";if(s.message.startsWith(a)){let i=P(r.slice(0,4)),c=this.getError(i);if(c)try{let l=this.#n.decode(c.inputs,r.slice(4));s.revert={name:c.name,signature:c.format(),args:l},s.reason=s.revert.signature,s.message=`execution reverted: ${s.reason}`}catch{s.message="execution reverted (coult not decode custom error)"}}let o=this.parseTransaction(e);return o&&(s.invocation={method:o.name,signature:o.signature,args:o.args}),s}encodeFunctionResult(t,e){if(typeof t=="string"){let r=this.getFunction(t);f(r,"unknown function","fragment",t),t=r}return P(this.#n.encode(t.outputs,e||[]))}encodeFilterTopics(t,e){if(typeof t=="string"){let a=this.getEvent(t);f(a,"unknown event","eventFragment",t),t=a}y(e.length<=t.inputs.length,`too many arguments for ${t.format()}`,"UNEXPECTED_ARGUMENT",{count:e.length,expectedCount:t.inputs.length});let r=[];t.anonymous||r.push(t.topicHash);let s=(a,o)=>a.type==="string"?Lt(o):a.type==="bytes"?Q(P(o)):(a.type==="bool"&&typeof o=="boolean"?o=o?"0x01":"0x00":a.type.match(/^u?int/)?o=Fe(o):a.type.match(/^bytes/)?o=ur(o,32):a.type==="address"&&this.#n.encode(["address"],[o]),fe(P(o),32));for(e.forEach((a,o)=>{let i=t.inputs[o];if(!i.indexed){f(a==null,"cannot filter non-indexed parameters; must be null","contract."+i.name,a);return}a==null?r.push(null):i.baseType==="array"||i.baseType==="tuple"?f(!1,"filtering with tuples or arrays not supported","contract."+i.name,a):Array.isArray(a)?r.push(a.map(c=>s(i,c))):r.push(s(i,a))});r.length&&r[r.length-1]===null;)r.pop();return r}encodeEventLog(t,e){if(typeof t=="string"){let o=this.getEvent(t);f(o,"unknown event","eventFragment",t),t=o}let r=[],s=[],a=[];return t.anonymous||r.push(t.topicHash),f(e.length===t.inputs.length,"event arguments/values mismatch","values",e),t.inputs.forEach((o,i)=>{let c=e[i];if(o.indexed)if(o.type==="string")r.push(Lt(c));else if(o.type==="bytes")r.push(Q(c));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");r.push(this.#n.encode([o.type],[c]))}else s.push(o),a.push(c)}),{data:this.#n.encode(s,a),topics:r}}decodeEventLog(t,e,r){if(typeof t=="string"){let h=this.getEvent(t);f(h,"unknown event","eventFragment",t),t=h}if(r!=null&&!t.anonymous){let h=t.topicHash;f(U(r[0],32)&&r[0].toLowerCase()===h,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}let s=[],a=[],o=[];t.inputs.forEach((h,x)=>{h.indexed?h.type==="string"||h.type==="bytes"||h.baseType==="tuple"||h.baseType==="array"?(s.push(F.from({type:"bytes32",name:h.name})),o.push(!0)):(s.push(h),o.push(!1)):(a.push(h),o.push(!1))});let i=r!=null?this.#n.decode(s,at(r)):null,c=this.#n.decode(a,e,!0),l=[],u=[],d=0,p=0;return t.inputs.forEach((h,x)=>{let w=null;if(h.indexed)if(i==null)w=new Ce(null);else if(o[x])w=new Ce(i[p++]);else try{w=i[p++]}catch(A){w=A}else try{w=c[d++]}catch(A){w=A}l.push(w),u.push(h.name||null)}),z.fromItems(l,u)}parseTransaction(t){let e=_(t.data,"tx.data"),r=T(t.value!=null?t.value:0,"tx.value"),s=this.getFunction(P(e.slice(0,4)));if(!s)return null;let a=this.#n.decode(s.inputs,e.slice(4));return new je(s,s.selector,a,r)}parseCallResult(t){throw new Error("@TODO")}parseLog(t){let e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new $e(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){let e=P(t),r=this.getError(yt(e,0,4));if(!r)return null;let s=this.#n.decode(r.inputs,yt(e,4));return new We(r,r.selector,s)}static from(t){return t instanceof b?t:typeof t=="string"?new b(JSON.parse(t)):typeof t.formatJson=="function"?new b(t.formatJson()):typeof t.format=="function"?new b(t.format("json")):new b(t)}};var Qs=BigInt(0);function dn(n){return n??null}function j(n){return n==null?null:n.toString()}function qs(n){let t={};n.to&&(t.to=n.to),n.from&&(t.from=n.from),n.data&&(t.data=P(n.data));let e="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let s of e)!(s in n)||n[s]==null||(t[s]=T(n[s],`request.${s}`));let r="type,nonce".split(/,/);for(let s of r)!(s in n)||n[s]==null||(t[s]=I(n[s],`request.${s}`));return n.accessList&&(t.accessList=Me(n.accessList)),"blockTag"in n&&(t.blockTag=n.blockTag),"enableCcipRead"in n&&(t.enableCcipRead=!!n.enableCcipRead),"customData"in n&&(t.customData=n.customData),"blobVersionedHashes"in n&&n.blobVersionedHashes&&(t.blobVersionedHashes=n.blobVersionedHashes.slice()),"kzg"in n&&(t.kzg=n.kzg),"blobs"in n&&n.blobs&&(t.blobs=n.blobs.map(s=>Jr(s)?P(s):Object.assign({},s))),t}var Ys=class{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#t;constructor(t,e){this.#t=t.transactions.map(r=>typeof r!="string"?new Zt(r,e):r),C(this,{provider:e,hash:dn(t.hash),number:t.number,timestamp:t.timestamp,parentHash:t.parentHash,parentBeaconBlockRoot:t.parentBeaconBlockRoot,nonce:t.nonce,difficulty:t.difficulty,gasLimit:t.gasLimit,gasUsed:t.gasUsed,blobGasUsed:t.blobGasUsed,excessBlobGas:t.excessBlobGas,miner:t.miner,prevRandao:dn(t.prevRandao),extraData:t.extraData,baseFeePerGas:dn(t.baseFeePerGas),stateRoot:t.stateRoot,receiptsRoot:t.receiptsRoot})}get transactions(){return this.#t.map(t=>typeof t=="string"?t:t.hash)}get prefetchedTransactions(){let t=this.#t.slice();return t.length===0?[]:(y(typeof t[0]=="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),t)}toJSON(){let{baseFeePerGas:t,difficulty:e,extraData:r,gasLimit:s,gasUsed:a,hash:o,miner:i,prevRandao:c,nonce:l,number:u,parentHash:d,parentBeaconBlockRoot:p,stateRoot:h,receiptsRoot:x,timestamp:w,transactions:A}=this;return{_type:"Block",baseFeePerGas:j(t),difficulty:j(e),extraData:r,gasLimit:j(s),gasUsed:j(a),blobGasUsed:j(this.blobGasUsed),excessBlobGas:j(this.excessBlobGas),hash:o,miner:i,prevRandao:c,nonce:l,number:u,parentHash:d,timestamp:w,parentBeaconBlockRoot:p,stateRoot:h,receiptsRoot:x,transactions:A}}[Symbol.iterator](){let t=0,e=this.transactions;return{next:()=>t<this.length?{value:e[t++],done:!1}:{value:void 0,done:!0}}}get length(){return this.#t.length}get date(){return this.timestamp==null?null:new Date(this.timestamp*1e3)}async getTransaction(t){let e;if(typeof t=="number")e=this.#t[t];else{let r=t.toLowerCase();for(let s of this.#t)if(typeof s=="string"){if(s!==r)continue;e=s;break}else{if(s.hash===r)continue;e=s;break}}if(e==null)throw new Error("no such tx");return typeof e=="string"?await this.provider.getTransaction(e):e}getPrefetchedTransaction(t){let e=this.prefetchedTransactions;if(typeof t=="number")return e[t];t=t.toLowerCase();for(let r of e)if(r.hash===t)return r;f(!1,"no matching transaction","indexOrHash",t)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return ho(this)}},Ht=class{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(t,e){this.provider=e;let r=Object.freeze(t.topics.slice());C(this,{transactionHash:t.transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,removed:t.removed,address:t.address,data:t.data,topics:r,index:t.index,transactionIndex:t.transactionIndex})}toJSON(){let{address:t,blockHash:e,blockNumber:r,data:s,index:a,removed:o,topics:i,transactionHash:c,transactionIndex:l}=this;return{_type:"log",address:t,blockHash:e,blockNumber:r,data:s,index:a,removed:o,topics:i,transactionHash:c,transactionIndex:l}}async getBlock(){let t=await this.provider.getBlock(this.blockHash);return y(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransaction(){let t=await this.provider.getTransaction(this.transactionHash);return y(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransactionReceipt(){let t=await this.provider.getTransactionReceipt(this.transactionHash);return y(!!t,"failed to find transaction receipt","UNKNOWN_ERROR",{}),t}removedEvent(){return mo(this)}},Or=class{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#t;constructor(t,e){this.#t=Object.freeze(t.logs.map(s=>new Ht(s,e)));let r=Qs;t.effectiveGasPrice!=null?r=t.effectiveGasPrice:t.gasPrice!=null&&(r=t.gasPrice),C(this,{provider:e,to:t.to,from:t.from,contractAddress:t.contractAddress,hash:t.hash,index:t.index,blockHash:t.blockHash,blockNumber:t.blockNumber,logsBloom:t.logsBloom,gasUsed:t.gasUsed,cumulativeGasUsed:t.cumulativeGasUsed,blobGasUsed:t.blobGasUsed,gasPrice:r,blobGasPrice:t.blobGasPrice,type:t.type,status:t.status,root:t.root})}get logs(){return this.#t}toJSON(){let{to:t,from:e,contractAddress:r,hash:s,index:a,blockHash:o,blockNumber:i,logsBloom:c,logs:l,status:u,root:d}=this;return{_type:"TransactionReceipt",blockHash:o,blockNumber:i,contractAddress:r,cumulativeGasUsed:j(this.cumulativeGasUsed),from:e,gasPrice:j(this.gasPrice),blobGasUsed:j(this.blobGasUsed),blobGasPrice:j(this.blobGasPrice),gasUsed:j(this.gasUsed),hash:s,index:a,logs:l,logsBloom:c,root:d,status:u,to:t}}get length(){return this.logs.length}[Symbol.iterator](){let t=0;return{next:()=>t<this.length?{value:this.logs[t++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let t=await this.provider.getBlock(this.blockHash);if(t==null)throw new Error("TODO");return t}async getTransaction(){let t=await this.provider.getTransaction(this.hash);if(t==null)throw new Error("TODO");return t}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return ea(this)}reorderedEvent(t){return y(!t||t.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),ta(this,t)}},Zt=class{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;#t;constructor(t,e){this.provider=e,this.blockNumber=t.blockNumber!=null?t.blockNumber:null,this.blockHash=t.blockHash!=null?t.blockHash:null,this.hash=t.hash,this.index=t.index,this.type=t.type,this.from=t.from,this.to=t.to||null,this.gasLimit=t.gasLimit,this.nonce=t.nonce,this.data=t.data,this.value=t.value,this.gasPrice=t.gasPrice,this.maxPriorityFeePerGas=t.maxPriorityFeePerGas!=null?t.maxPriorityFeePerGas:null,this.maxFeePerGas=t.maxFeePerGas!=null?t.maxFeePerGas:null,this.maxFeePerBlobGas=t.maxFeePerBlobGas!=null?t.maxFeePerBlobGas:null,this.chainId=t.chainId,this.signature=t.signature,this.accessList=t.accessList!=null?t.accessList:null,this.blobVersionedHashes=t.blobVersionedHashes!=null?t.blobVersionedHashes:null,this.#t=-1}toJSON(){let{blockNumber:t,blockHash:e,index:r,hash:s,type:a,to:o,from:i,nonce:c,data:l,signature:u,accessList:d,blobVersionedHashes:p}=this;return{_type:"TransactionResponse",accessList:d,blockNumber:t,blockHash:e,blobVersionedHashes:p,chainId:j(this.chainId),data:l,from:i,gasLimit:j(this.gasLimit),gasPrice:j(this.gasPrice),hash:s,maxFeePerGas:j(this.maxFeePerGas),maxPriorityFeePerGas:j(this.maxPriorityFeePerGas),maxFeePerBlobGas:j(this.maxFeePerBlobGas),nonce:c,signature:u,to:o,index:r,type:a,value:j(this.value)}}async getBlock(){let t=this.blockNumber;if(t==null){let r=await this.getTransaction();r&&(t=r.blockNumber)}if(t==null)return null;let e=this.provider.getBlock(t);if(e==null)throw new Error("TODO");return e}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:e,blockNumber:r}=await de({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return e==null||e.blockNumber==null?0:r-e.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(t,e){let r=t??1,s=e??0,a=this.#t,o=-1,i=a===-1,c=async()=>{if(i)return null;let{blockNumber:p,nonce:h}=await de({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(h<this.nonce){a=p;return}if(i)return null;let x=await this.getTransaction();if(!(x&&x.blockNumber!=null))for(o===-1&&(o=a-3,o<this.#t&&(o=this.#t));o<=p;){if(i)return null;let w=await this.provider.getBlock(o,!0);if(w==null)return;for(let A of w)if(A===this.hash)return;for(let A=0;A<w.length;A++){let k=await w.getTransaction(A);if(k.from===this.from&&k.nonce===this.nonce){if(i)return null;let N=await this.provider.getTransactionReceipt(k.hash);if(N==null||p-N.blockNumber+1<r)return;let L="replaced";k.data===this.data&&k.to===this.to&&k.value===this.value?L="repriced":k.data==="0x"&&k.from===k.to&&k.value===Qs&&(L="cancelled"),y(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:L==="replaced"||L==="cancelled",reason:L,replacement:k.replaceableTransaction(a),hash:k.hash,receipt:N})}}o++}},l=p=>{if(p==null||p.status!==0)return p;y(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:p.to,from:p.from,data:""},receipt:p})},u=await this.provider.getTransactionReceipt(this.hash);if(r===0)return l(u);if(u){if(await u.confirmations()>=r)return l(u)}else if(await c(),r===0)return null;return await new Promise((p,h)=>{let x=[],w=()=>{x.forEach(k=>k())};if(x.push(()=>{i=!0}),s>0){let k=setTimeout(()=>{w(),h(Et("wait for transaction timeout","TIMEOUT"))},s);x.push(()=>{clearTimeout(k)})}let A=async k=>{if(await k.confirmations()>=r){w();try{p(l(k))}catch(N){h(N)}}};if(x.push(()=>{this.provider.off(this.hash,A)}),this.provider.on(this.hash,A),a>=0){let k=async()=>{try{await c()}catch(N){if(gt(N,"TRANSACTION_REPLACED")){w(),h(N);return}}i||this.provider.once("block",k)};x.push(()=>{this.provider.off("block",k)}),this.provider.once("block",k)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return y(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),ea(this)}reorderedEvent(t){return y(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),y(!t||t.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),ta(this,t)}replaceableTransaction(t){f(Number.isInteger(t)&&t>=0,"invalid startBlock","startBlock",t);let e=new Zt(this,this.provider);return e.#t=t,e}};function ho(n){return{orphan:"drop-block",hash:n.hash,number:n.number}}function ta(n,t){return{orphan:"reorder-transaction",tx:n,other:t}}function ea(n){return{orphan:"drop-transaction",tx:n}}function mo(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}}}var Yt=class extends Ht{interface;fragment;args;constructor(t,e,r){super(t,t.provider);let s=e.decodeEventLog(r,t.data,t.topics);C(this,{args:s,fragment:r,interface:e})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}},we=class extends Ht{error;constructor(t,e){super(t,t.provider),C(this,{error:e})}},Nr=class extends Or{#t;constructor(t,e,r){super(r,e),this.#t=t}get logs(){return super.logs.map(t=>{let e=t.topics.length?this.#t.getEvent(t.topics[0]):null;if(e)try{return new Yt(t,this.#t,e)}catch(r){return new we(t,r)}return t})}},Qt=class extends Zt{#t;constructor(t,e,r){super(r,e),this.#t=t}async wait(t,e){let r=await super.wait(t,e);return r==null?null:new Nr(this.#t,this.provider,r)}},Te=class extends Le{log;constructor(t,e,r,s){super(t,e,r),C(this,{log:s})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}},ze=class extends Te{constructor(t,e,r,s,a){super(t,e,r,new Yt(a,t.interface,s));let o=t.interface.decodeEventLog(s,this.log.data,this.log.topics);C(this,{args:o,fragment:s})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}};var ra=BigInt(0);function sa(n){return n&&typeof n.call=="function"}function aa(n){return n&&typeof n.estimateGas=="function"}function Fr(n){return n&&typeof n.resolveName=="function"}function oa(n){return n&&typeof n.sendTransaction=="function"}function ia(n){if(n!=null){if(Fr(n))return n;if(n.provider)return n.provider}}var pn=class{#t;fragment;constructor(t,e,r){if(C(this,{fragment:e}),e.inputs.length<r.length)throw new Error("too many arguments");let s=te(t.runner,"resolveName"),a=Fr(s)?s:null;this.#t=async function(){let o=await Promise.all(e.inputs.map((i,c)=>r[c]==null?null:i.walkAsync(r[c],(u,d)=>u==="address"?Array.isArray(d)?Promise.all(d.map(p=>zt(p,a))):zt(d,a):d)));return t.interface.encodeFilterTopics(e,o)}()}getTopicFilter(){return this.#t}};function te(n,t){return n==null?null:typeof n[t]=="function"?n:n.provider&&typeof n.provider[t]=="function"?n.provider:null}function qt(n){return n==null?null:n.provider||null}async function ca(n,t){let e=O.dereference(n,"overrides");f(typeof e=="object","invalid overrides parameter","overrides",n);let r=qs(e);return f(r.to==null||(t||[]).indexOf("to")>=0,"cannot override to","overrides.to",r.to),f(r.data==null||(t||[]).indexOf("data")>=0,"cannot override data","overrides.data",r.data),r.from&&(r.from=r.from),r}async function go(n,t,e){let r=te(n,"resolveName"),s=Fr(r)?r:null;return await Promise.all(t.map((a,o)=>a.walkAsync(e[o],(i,c)=>(c=O.dereference(c,i),i==="address"?zt(c,s):c))))}function yo(n){let t=async function(o){let i=await ca(o,["data"]);i.to=await n.getAddress(),i.from&&(i.from=await zt(i.from,ia(n.runner)));let c=n.interface,l=T(i.value||ra,"overrides.value")===ra,u=(i.data||"0x")==="0x";c.fallback&&!c.fallback.payable&&c.receive&&!u&&!l&&f(!1,"cannot send data to receive or send value to non-payable fallback","overrides",o),f(c.fallback||u,"cannot send data to receive-only contract","overrides.data",i.data);let d=c.receive||c.fallback&&c.fallback.payable;return f(d||l,"cannot send value to non-payable fallback","overrides.value",i.value),f(c.fallback||u,"cannot send data to receive-only contract","overrides.data",i.data),i},e=async function(o){let i=te(n.runner,"call");y(sa(i),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let c=await t(o);try{return await i.call(c)}catch(l){throw cr(l)&&l.data?n.interface.makeError(l.data,c):l}},r=async function(o){let i=n.runner;y(oa(i),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let c=await i.sendTransaction(await t(o)),l=qt(n.runner);return new Qt(n.interface,l,c)},s=async function(o){let i=te(n.runner,"estimateGas");return y(aa(i),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await i.estimateGas(await t(o))},a=async o=>await r(o);return C(a,{_contract:n,estimateGas:s,populateTransaction:t,send:r,staticCall:e}),a}function bo(n,t){let e=function(...l){let u=n.interface.getFunction(t,l);return y(u,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t,args:l}}),u},r=async function(...l){let u=e(...l),d={};if(u.inputs.length+1===l.length&&(d=await ca(l.pop()),d.from&&(d.from=await zt(d.from,ia(n.runner)))),u.inputs.length!==l.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");let p=await go(n.runner,u.inputs,l);return Object.assign({},d,await de({to:n.getAddress(),data:n.interface.encodeFunctionData(u,p)}))},s=async function(...l){let u=await i(...l);return u.length===1?u[0]:u},a=async function(...l){let u=n.runner;y(oa(u),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let d=await u.sendTransaction(await r(...l)),p=qt(n.runner);return new Qt(n.interface,p,d)},o=async function(...l){let u=te(n.runner,"estimateGas");return y(aa(u),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await u.estimateGas(await r(...l))},i=async function(...l){let u=te(n.runner,"call");y(sa(u),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let d;try{d=await r(...l)}catch(x){let w=l.at(-1).blockTag;throw w&&(x.blockNumber=w),x}let p="0x";try{p=await u.call(d)}catch(x){throw cr(x)&&x.data?n.interface.makeError(x.data,d):x}let h=e(...l);return n.interface.decodeFunctionResult(h,p)},c=async(...l)=>e(...l).constant?await s(...l):await a(...l);return C(c,{name:n.interface.getFunctionName(t),_contract:n,_key:t,getFragment:e,estimateGas:o,populateTransaction:r,send:a,staticCall:s,staticCallResult:i}),Object.defineProperty(c,"fragment",{configurable:!1,enumerable:!0,get:()=>{let l=n.interface.getFunction(t);return y(l,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t}}),l}}),c}function xo(n,t){let e=function(...s){let a=n.interface.getEvent(t,s);return y(a,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t,args:s}}),a},r=function(...s){return new pn(n,e(...s),s)};return C(r,{name:n.interface.getEventName(t),_contract:n,_key:t,getFragment:e}),Object.defineProperty(r,"fragment",{configurable:!1,enumerable:!0,get:()=>{let s=n.interface.getEvent(t);return y(s,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t}}),s}}),r}var Sr=Symbol.for("_ethersInternal_contract"),la=new WeakMap;function Co(n,t){la.set(n[Sr],t)}function it(n){return la.get(n[Sr])}function wo(n){return n&&typeof n=="object"&&"getTopicFilter"in n&&typeof n.getTopicFilter=="function"&&n.fragment}async function mn(n,t){let e,r=null;if(Array.isArray(t)){let a=function(o){if(U(o,32))return o;let i=n.interface.getEvent(o);return f(i,"unknown fragment","name",o),i.topicHash};e=t.map(o=>o==null?null:Array.isArray(o)?o.map(a):a(o))}else t==="*"?e=[null]:typeof t=="string"?U(t,32)?e=[t]:(r=n.interface.getEvent(t),f(r,"unknown fragment","event",t),e=[r.topicHash]):wo(t)?e=await t.getTopicFilter():"fragment"in t?(r=t.fragment,e=[r.topicHash]):f(!1,"unknown event name","event",t);e=e.map(a=>{if(a==null)return null;if(Array.isArray(a)){let o=Array.from(new Set(a.map(i=>i.toLowerCase())).values());return o.length===1?o[0]:(o.sort(),o)}return a.toLowerCase()});let s=e.map(a=>a==null?"null":Array.isArray(a)?a.join("|"):a).join("&");return{fragment:r,tag:s,topics:e}}async function Je(n,t){let{subs:e}=it(n);return e.get((await mn(n,t)).tag)||null}async function na(n,t,e){let r=qt(n.runner);y(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:t});let{fragment:s,tag:a,topics:o}=await mn(n,e),{addr:i,subs:c}=it(n),l=c.get(a);if(!l){let d={address:i||n,topics:o},p=A=>{let k=s;if(k==null)try{k=n.interface.getEvent(A.topics[0])}catch{}if(k){let N=k,L=s?n.interface.decodeEventLog(s,A.data,A.topics):[];hn(n,e,L,le=>new ze(n,le,e,N,A))}else hn(n,e,[],N=>new Te(n,N,e,A))},h=[];l={tag:a,listeners:[],start:()=>{h.length||h.push(r.on(d,p))},stop:async()=>{if(h.length==0)return;let A=h;h=[],await Promise.all(A),r.off(d,p)}},c.set(a,l)}return l}var fn=Promise.resolve();async function To(n,t,e,r){await fn;let s=await Je(n,t);if(!s)return!1;let a=s.listeners.length;return s.listeners=s.listeners.filter(({listener:o,once:i})=>{let c=Array.from(e);r&&c.push(r(i?null:o));try{o.call(n,...c)}catch{}return!i}),s.listeners.length===0&&(s.stop(),it(n).subs.delete(s.tag)),a>0}async function hn(n,t,e,r){try{await fn}catch{}let s=To(n,t,e,r);return fn=s,await s}var Br=["then"],ft=class{target;interface;runner;filters;[Sr];fallback;constructor(t,e,r,s){f(typeof t=="string"||xr(t),"invalid value for Contract target","target",t),r==null&&(r=null);let a=b.from(e);C(this,{target:t,runner:r,interface:a}),Object.defineProperty(this,Sr,{value:{}});let o,i=null,c=null;if(s){let d=qt(r);c=new Qt(this.interface,d,s)}let l=new Map;if(typeof t=="string")if(U(t))i=t,o=Promise.resolve(t);else{let d=te(r,"resolveName");if(!Fr(d))throw Et("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});o=d.resolveName(t).then(p=>{if(p==null)throw Et("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:t});return it(this).addr=p,p})}else o=t.getAddress().then(d=>{if(d==null)throw new Error("TODO");return it(this).addr=d,d});Co(this,{addrPromise:o,addr:i,deployTx:c,subs:l});let u=new Proxy({},{get:(d,p,h)=>{if(typeof p=="symbol"||Br.indexOf(p)>=0)return Reflect.get(d,p,h);try{return this.getEvent(p)}catch(x){if(!gt(x,"INVALID_ARGUMENT")||x.argument!=="key")throw x}},has:(d,p)=>Br.indexOf(p)>=0?Reflect.has(d,p):Reflect.has(d,p)||this.interface.hasEvent(String(p))});return C(this,{filters:u}),C(this,{fallback:a.receive||a.fallback?yo(this):null}),new Proxy(this,{get:(d,p,h)=>{if(typeof p=="symbol"||p in d||Br.indexOf(p)>=0)return Reflect.get(d,p,h);try{return d.getFunction(p)}catch(x){if(!gt(x,"INVALID_ARGUMENT")||x.argument!=="key")throw x}},has:(d,p)=>typeof p=="symbol"||p in d||Br.indexOf(p)>=0?Reflect.has(d,p):d.interface.hasFunction(p)})}connect(t){return new ft(this.target,this.interface,t)}attach(t){return new ft(t,this.interface,this.runner)}async getAddress(){return await it(this).addrPromise}async getDeployedCode(){let t=qt(this.runner);y(t,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});let e=await t.getCode(await this.getAddress());return e==="0x"?null:e}async waitForDeployment(){let t=this.deploymentTransaction();if(t)return await t.wait(),this;if(await this.getDeployedCode()!=null)return this;let r=qt(this.runner);return y(r!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((s,a)=>{let o=async()=>{try{if(await this.getDeployedCode()!=null)return s(this);r.once("block",o)}catch(i){a(i)}};o()})}deploymentTransaction(){return it(this).deployTx}getFunction(t){return typeof t!="string"&&(t=t.format()),bo(this,t)}getEvent(t){return typeof t!="string"&&(t=t.format()),xo(this,t)}async queryTransaction(t){throw new Error("@TODO")}async queryFilter(t,e,r){e==null&&(e=0),r==null&&(r="latest");let{addr:s,addrPromise:a}=it(this),o=s||await a,{fragment:i,topics:c}=await mn(this,t),l={address:o,topics:c,fromBlock:e,toBlock:r},u=qt(this.runner);return y(u,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await u.getLogs(l)).map(d=>{let p=i;if(p==null)try{p=this.interface.getEvent(d.topics[0])}catch{}if(p)try{return new Yt(d,this.interface,p)}catch(h){return new we(d,h)}return new Ht(d,u)})}async on(t,e){let r=await na(this,"on",t);return r.listeners.push({listener:e,once:!1}),r.start(),this}async once(t,e){let r=await na(this,"once",t);return r.listeners.push({listener:e,once:!0}),r.start(),this}async emit(t,...e){return await hn(this,t,e,null)}async listenerCount(t){if(t){let s=await Je(this,t);return s?s.listeners.length:0}let{subs:e}=it(this),r=0;for(let{listeners:s}of e.values())r+=s.length;return r}async listeners(t){if(t){let s=await Je(this,t);return s?s.listeners.map(({listener:a})=>a):[]}let{subs:e}=it(this),r=[];for(let{listeners:s}of e.values())r=r.concat(s.map(({listener:a})=>a));return r}async off(t,e){let r=await Je(this,t);if(!r)return this;if(e){let s=r.listeners.map(({listener:a})=>a).indexOf(e);s>=0&&r.listeners.splice(s,1)}return(e==null||r.listeners.length===0)&&(r.stop(),it(this).subs.delete(r.tag)),this}async removeAllListeners(t){if(t){let e=await Je(this,t);if(!e)return this;e.stop(),it(this).subs.delete(e.tag)}else{let{subs:e}=it(this);for(let{tag:r,stop:s}of e.values())s(),e.delete(r)}return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return await this.off(t,e)}static buildClass(t){class e extends ft{constructor(s,a=null){super(s,t,a)}}return e}static from(t,e,r){return r==null&&(r=null),new this(t,e,r)}};function Eo(){return ft}var K=class extends Eo(){};var ua=BigInt(0);function E(n,t){return function(e){return e==null?t:n(e)}}function Ee(n,t){return e=>{if(t&&e==null)return null;if(!Array.isArray(e))throw new Error("not an array");return e.map(r=>n(r))}}function ee(n,t){return e=>{let r={};for(let s in n){let a=s;if(t&&s in t&&!(a in e)){for(let o of t[s])if(o in e){a=o;break}}try{let o=n[s](e[a]);o!==void 0&&(r[s]=o)}catch(o){let i=o instanceof Error?o.message:"not-an-error";y(!1,`invalid value for value.${s} (${i})`,"BAD_DATA",{value:e})}}return r}}function ko(n){switch(n){case!0:case"true":return!0;case!1:case"false":return!1}f(!1,`invalid boolean; ${JSON.stringify(n)}`,"value",n)}function Vt(n){return f(U(n,!0),"invalid data","value",n),n}function G(n){return f(U(n,32),"invalid hash","value",n),n}var vo=ee({address:S,blockHash:G,blockNumber:I,data:Vt,index:I,removed:E(ko,!1),topics:Ee(G),transactionHash:G,transactionIndex:I},{index:["logIndex"]});function da(n){return vo(n)}var Po=ee({hash:E(G),parentHash:G,parentBeaconBlockRoot:E(G,null),number:I,timestamp:I,nonce:E(Vt),difficulty:T,gasLimit:T,gasUsed:T,stateRoot:E(G,null),receiptsRoot:E(G,null),blobGasUsed:E(T,null),excessBlobGas:E(T,null),miner:E(S),prevRandao:E(G,null),extraData:Vt,baseFeePerGas:E(T)},{prevRandao:["mixHash"]});function pa(n){let t=Po(n);return t.transactions=n.transactions.map(e=>typeof e=="string"?e:yn(e)),t}var Io=ee({transactionIndex:I,blockNumber:I,transactionHash:G,address:S,topics:Ee(G),data:Vt,index:I,blockHash:G},{index:["logIndex"]});function gn(n){return Io(n)}var iu=ee({to:E(S,null),from:E(S,null),contractAddress:E(S,null),index:I,root:E(P),gasUsed:T,blobGasUsed:E(T,null),logsBloom:E(Vt),blockHash:G,hash:G,logs:Ee(gn),blockNumber:I,cumulativeGasUsed:T,effectiveGasPrice:E(T),blobGasPrice:E(T,null),status:E(I),type:E(I,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function yn(n){n.to&&T(n.to)===ua&&(n.to="0x0000000000000000000000000000000000000000");let t=ee({hash:G,index:E(I,void 0),type:e=>e==="0x"||e==null?0:I(e),accessList:E(Me,null),blobVersionedHashes:E(Ee(G,!0),null),blockHash:E(G,null),blockNumber:E(I,null),transactionIndex:E(I,null),from:S,gasPrice:E(T),maxPriorityFeePerGas:E(T),maxFeePerGas:E(T),maxFeePerBlobGas:E(T,null),gasLimit:T,to:E(S,null),value:T,nonce:I,data:Vt,creates:E(S,null),chainId:E(T,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(n);if(t.to==null&&t.creates==null&&(t.creates=sn(t)),(n.type===1||n.type===2)&&n.accessList==null&&(t.accessList=[]),n.signature?t.signature=J.from(n.signature):t.signature=J.from(n),t.chainId==null){let e=t.signature.legacyChainId;e!=null&&(t.chainId=e)}return t.blockHash&&T(t.blockHash)===ua&&(t.blockHash=null),t}import{processMetrics as Ao}from"@sentio/runtime";var Ut=class extends Un{chainId;address;log;block;trace;blockNumber;transactionHash;transaction;transactionReceipt;timestamp;preparedData;constructor(t,e,r,s,a,o,i,c,l,u){super(l),this.chainId=t,this.log=a,this.block=s,this.trace=o,this.address=e.toLowerCase(),this.transaction=i,this.transactionReceipt=c,this.timestamp=r||new Date(0),this.preparedData=u,a?(this.blockNumber=a.blockNumber,this.transactionHash=a.transactionHash):s?this.blockNumber=s.number:o&&(this.blockNumber=o.blockNumber,this.transactionHash=o.transactionHash)}getChainId(){return this.chainId}getMetaDataInternal(t,e){if(this.log)return{address:this.address,contractName:this.getContractName(),blockNumber:BigInt(this.blockNumber),transactionIndex:this.log.transactionIndex,transactionHash:this.transactionHash||"",logIndex:this.log.index,chainId:this.chainId,name:t,labels:Oe(e)};if(this.trace)return{address:this.address,contractName:this.getContractName(),blockNumber:BigInt(this.blockNumber),transactionIndex:this.trace.transactionPosition,transactionHash:this.transactionHash||"",logIndex:-1,chainId:this.chainId.toString(),name:t,labels:Oe(e)};if(this.transaction)return{address:this.address,contractName:this.getContractName(),blockNumber:BigInt(this.blockNumber),transactionIndex:this.transaction.index||0,transactionHash:this.transaction.hash||"",logIndex:-1,chainId:this.chainId.toString(),name:t,labels:Oe(e)};if(this.block)return{address:this.address,contractName:this.getContractName(),blockNumber:BigInt(this.blockNumber),transactionIndex:-1,transactionHash:"",logIndex:-1,chainId:this.chainId.toString(),name:t,labels:Oe(e)};throw new Error("Invaid ctx argument can't happen")}},ke=class extends Ut{getContractName(){return"account"}},xt=class extends Ut{constructor(t,e,r,s,a,o,i,c,l,u){super(t,e,r,s,a,o,i,c,l,u)}getContractName(){return"*"}getMetaDataInternal(t,e){let r=this.address;this.address="*";let s=super.getMetaDataInternal(t,e);return this.address=r,s}},Ct=class extends Ut{contract;contractName;constructor(t,e,r,s,a,o,i,c,l,u,d){super(r,e.address,s,a,o,i,c,l,u,d),e.context=this,e.callStatic&&(e.callStatic.context=this),e.encodeCall&&(e.encodeCall.context=this),this.contractName=t,this.contract=e}getContractName(){return this.contractName}},It=class{contract;constructor(t){this.contract=new Proxy(t,{get:(e,r,s)=>(r=="getFunction"&&Ao.process_ethcall_count.add(1),Reflect.get(e,r,s))})}get rawContract(){return this.contract}get provider(){if(this.contract.runner?.provider)return this.contract.runner.provider;throw Error("Can't find provider for contract"+this.contract.toString())}},At=class{view;address;context;callStatic;encodeCall;constructor(t,e){this.address=t,this.view=e}get rawContract(){return this.view.rawContract}get provider(){return this.view.provider}get filters(){return this.view.rawContract.filters}};import("process").then(n=>n.stdout.write(""));var D=Tt(Wr(),1);var Ke=class extends Error{e;constructor(t,e,r){super(t),this.stack=r}toString(){return this.message+`
|
|
2
|
+
import{a as ka}from"./chunk-OUOSDGWD.js";import{a as Ne}from"./chunk-QW2MPHP5.js";import{A as Wr,D as nt,Db as ue,Gb as $t,Sc as Gn,W as zr,Xc as ir,ec as Oe,fa as Mn,oa as st,wc as Jr}from"./chunk-24SCJPBI.js";import{d as Un,e as Tt,g as H}from"./chunk-6GD6B22G.js";var ti={};Un(ti,{ERC721BoundContractView:()=>or,ERC721ContractView:()=>jr,ERC721Processor:()=>wt,ERC721ProcessorTemplate:()=>_n,ERC721__factory:()=>mt,getERC721Contract:()=>ce,getERC721ContractOnContext:()=>Zo,mockApprovalForAllLog:()=>Qo,mockApprovalLog:()=>Yo,mockTransferLog:()=>qo});var $n="6.13.1";function va(n,t,e){let r=t.split("|").map(a=>a.trim());for(let a=0;a<r.length;a++)switch(t){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof n===t)return}let s=new Error(`invalid value for type ${t}`);throw s.code="INVALID_ARGUMENT",s.argument=`value.${e}`,s.value=n,s}async function de(n){let t=Object.keys(n);return(await Promise.all(t.map(r=>Promise.resolve(n[r])))).reduce((r,s,a)=>(r[t[a]]=s,r),{})}function C(n,t,e){for(let r in t){let s=t[r],a=e?e[r]:null;a&&va(s,a,r),Object.defineProperty(n,r,{enumerable:!0,value:s,writable:!1})}}function pe(n){if(n==null)return"null";if(Array.isArray(n))return"[ "+n.map(pe).join(", ")+" ]";if(n instanceof Uint8Array){let t="0123456789abcdef",e="0x";for(let r=0;r<n.length;r++)e+=t[n[r]>>4],e+=t[n[r]&15];return e}if(typeof n=="object"&&typeof n.toJSON=="function")return pe(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":{let t=Object.keys(n);return t.sort(),"{ "+t.map(e=>`${pe(e)}: ${pe(n[e])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function gt(n,t){return n&&n.code===t}function cr(n){return gt(n,"CALL_EXCEPTION")}function Et(n,t,e){let r=n;{let a=[];if(e){if("message"in e||"code"in e||"name"in e)throw new Error(`value will overwrite populated values: ${pe(e)}`);for(let o in e){if(o==="shortMessage")continue;let i=e[o];a.push(o+"="+pe(i))}}a.push(`code=${t}`),a.push(`version=${$n}`),a.length&&(n+=" ("+a.join(", ")+")")}let s;switch(t){case"INVALID_ARGUMENT":s=new TypeError(n);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":s=new RangeError(n);break;default:s=new Error(n)}return C(s,{code:t}),e&&Object.assign(s,e),s.shortMessage==null&&C(s,{shortMessage:r}),s}function y(n,t,e,r){if(!n)throw Et(t,e,r)}function f(n,t,e,r){y(n,t,"INVALID_ARGUMENT",{argument:e,value:r})}function Be(n,t,e){e==null&&(e=""),e&&(e=": "+e),y(n>=t,"missing arguemnt"+e,"MISSING_ARGUMENT",{count:n,expectedCount:t}),y(n<=t,"too many arguments"+e,"UNEXPECTED_ARGUMENT",{count:n,expectedCount:t})}var Pa=["NFD","NFC","NFKD","NFKC"].reduce((n,t)=>{try{if("test".normalize(t)!=="test")throw new Error("bad");if(t==="NFD"){let e=String.fromCharCode(233).normalize("NFD"),r=String.fromCharCode(101,769);if(e!==r)throw new Error("broken")}n.push(t)}catch{}return n},[]);function Kr(n){y(Pa.indexOf(n)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:n}})}function Ft(n,t,e){if(e==null&&(e=""),n!==t){let r=e,s="new";e&&(r+=".",s+=" "+e),y(!1,`private constructor; use ${r}from* methods`,"UNSUPPORTED_OPERATION",{operation:s})}}function Wn(n,t,e){if(n instanceof Uint8Array)return e?new Uint8Array(n):n;if(typeof n=="string"&&n.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let r=new Uint8Array((n.length-2)/2),s=2;for(let a=0;a<r.length;a++)r[a]=parseInt(n.substring(s,s+2),16),s+=2;return r}f(!1,"invalid BytesLike value",t||"value",n)}function _(n,t){return Wn(n,t,!1)}function Z(n,t){return Wn(n,t,!0)}function U(n,t){return!(typeof n!="string"||!n.match(/^0x[0-9A-Fa-f]*$/)||typeof t=="number"&&n.length!==2+2*t||t===!0&&n.length%2!==0)}function Xr(n){return U(n,!0)||n instanceof Uint8Array}var jn="0123456789abcdef";function P(n){let t=_(n),e="0x";for(let r=0;r<t.length;r++){let s=t[r];e+=jn[(s&240)>>4]+jn[s&15]}return e}function at(n){return"0x"+n.map(t=>P(t).substring(2)).join("")}function lr(n){return U(n,!0)?(n.length-2)/2:_(n).length}function yt(n,t,e){let r=_(n);return e!=null&&e>r.length&&y(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:e}),P(r.slice(t??0,e??r.length))}function zn(n,t,e){let r=_(n);y(t>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:t,offset:t+1});let s=new Uint8Array(t);return s.fill(0),e?s.set(r,t-r.length):s.set(r,0),P(s)}function fe(n,t){return zn(n,t,!0)}function ur(n,t){return zn(n,t,!1)}var dr=BigInt(0),lt=BigInt(1),he=9007199254740991;function Zr(n,t){let e=Se(n,"value"),r=BigInt(I(t,"width"));if(y(e>>r===dr,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:n}),e>>r-lt){let s=(lt<<r)-lt;return-((~e&s)+lt)}return e}function Yr(n,t){let e=T(n,"value"),r=BigInt(I(t,"width")),s=lt<<r-lt;if(e<dr){e=-e,y(e<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});let a=(lt<<r)-lt;return(~e&a)+lt}else y(e<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});return e}function me(n,t){let e=Se(n,"value"),r=BigInt(I(t,"bits"));return e&(lt<<r)-lt}function T(n,t){switch(typeof n){case"bigint":return n;case"number":return f(Number.isInteger(n),"underflow",t||"value",n),f(n>=-he&&n<=he,"overflow",t||"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(e){f(!1,`invalid BigNumberish string: ${e.message}`,t||"value",n)}}f(!1,"invalid BigNumberish value",t||"value",n)}function Se(n,t){let e=T(n,t);return y(e>=dr,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:n}),e}var Jn="0123456789abcdef";function pr(n){if(n instanceof Uint8Array){let t="0x0";for(let e of n)t+=Jn[e>>4],t+=Jn[e&15];return BigInt(t)}return T(n)}function I(n,t){switch(typeof n){case"bigint":return f(n>=-he&&n<=he,"overflow",t||"value",n),Number(n);case"number":return f(Number.isInteger(n),"underflow",t||"value",n),f(n>=-he&&n<=he,"overflow",t||"value",n),n;case"string":try{if(n==="")throw new Error("empty string");return I(BigInt(n),t)}catch(e){f(!1,`invalid numeric string: ${e.message}`,t||"value",n)}}f(!1,"invalid numeric value",t||"value",n)}function Qr(n){return I(pr(n))}function Fe(n,t){let r=Se(n,"value").toString(16);if(t==null)r.length%2&&(r="0"+r);else{let s=I(t,"width");for(y(s*2>=r.length,`value exceeds width (${s} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:n});r.length<s*2;)r="0"+r}return"0x"+r}function De(n){let t=Se(n,"value");if(t===dr)return new Uint8Array([]);let e=t.toString(16);e.length%2&&(e="0"+e);let r=new Uint8Array(e.length/2);for(let s=0;s<r.length;s++){let a=s*2;r[s]=parseInt(e.substring(a,a+2),16)}return r}var Le=class{filter;emitter;#t;constructor(t,e,r){this.#t=e,C(this,{emitter:t,filter:r})}async removeListener(){this.#t!=null&&await this.emitter.off(this.filter,this.#t)}};function Ia(n,t,e,r,s){f(!1,`invalid codepoint at offset ${t}; ${n}`,"bytes",e)}function Kn(n,t,e,r,s){if(n==="BAD_PREFIX"||n==="UNEXPECTED_CONTINUE"){let a=0;for(let o=t+1;o<e.length&&e[o]>>6===2;o++)a++;return a}return n==="OVERRUN"?e.length-t-1:0}function Aa(n,t,e,r,s){return n==="OVERLONG"?(f(typeof s=="number","invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),Kn(n,t,e,r,s))}var Xn=Object.freeze({error:Ia,ignore:Kn,replace:Aa});function Ra(n,t){t==null&&(t=Xn.error);let e=_(n,"bytes"),r=[],s=0;for(;s<e.length;){let a=e[s++];if(!(a>>7)){r.push(a);continue}let o=null,i=null;if((a&224)===192)o=1,i=127;else if((a&240)===224)o=2,i=2047;else if((a&248)===240)o=3,i=65535;else{(a&192)===128?s+=t("UNEXPECTED_CONTINUE",s-1,e,r):s+=t("BAD_PREFIX",s-1,e,r);continue}if(s-1+o>=e.length){s+=t("OVERRUN",s-1,e,r);continue}let c=a&(1<<8-o-1)-1;for(let l=0;l<o;l++){let u=e[s];if((u&192)!=128){s+=t("MISSING_CONTINUE",s,e,r),c=null;break}c=c<<6|u&63,s++}if(c!==null){if(c>1114111){s+=t("OUT_OF_RANGE",s-1-o,e,r,c);continue}if(c>=55296&&c<=57343){s+=t("UTF16_SURROGATE",s-1-o,e,r,c);continue}if(c<=i){s+=t("OVERLONG",s-1-o,e,r,c);continue}r.push(c)}}return r}function ge(n,t){f(typeof n=="string","invalid string value","str",n),t!=null&&(Kr(t),n=n.normalize(t));let e=[];for(let r=0;r<n.length;r++){let s=n.charCodeAt(r);if(s<128)e.push(s);else if(s<2048)e.push(s>>6|192),e.push(s&63|128);else if((s&64512)==55296){r++;let a=n.charCodeAt(r);f(r<n.length&&(a&64512)===56320,"invalid surrogate pair","str",n);let o=65536+((s&1023)<<10)+(a&1023);e.push(o>>18|240),e.push(o>>12&63|128),e.push(o>>6&63|128),e.push(o&63|128)}else e.push(s>>12|224),e.push(s>>6&63|128),e.push(s&63|128)}return new Uint8Array(e)}function Oa(n){return n.map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10&1023)+55296,(t&1023)+56320))).join("")}function _e(n,t){return Oa(Ra(n,t))}function Zn(n){let t=[];for(;n;)t.unshift(n&255),n>>=8;return t}function Qn(n){if(Array.isArray(n)){let r=[];if(n.forEach(function(a){r=r.concat(Qn(a))}),r.length<=55)return r.unshift(192+r.length),r;let s=Zn(r.length);return s.unshift(247+s.length),s.concat(r)}let t=Array.prototype.slice.call(_(n,"object"));if(t.length===1&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;let e=Zn(t.length);return e.unshift(183+e.length),e.concat(t)}var Yn="0123456789abcdef";function qr(n){let t="0x";for(let e of Qn(n))t+=Yn[e>>4],t+=Yn[e&15];return t}var W=32,tn=new Uint8Array(W),Na=["then"],fr={},es=new WeakMap;function jt(n){return es.get(n)}function qn(n,t){es.set(n,t)}function He(n,t){let e=new Error(`deferred error during ABI decoding triggered accessing ${n}`);throw e.error=t,e}function en(n,t,e){return n.indexOf(null)>=0?t.map((r,s)=>r instanceof z?en(jt(r),r,e):r):n.reduce((r,s,a)=>{let o=t.getValue(s);return s in r||(e&&o instanceof z&&(o=en(jt(o),o,e)),r[s]=o),r},{})}var z=class extends Array{#t;constructor(...t){let e=t[0],r=t[1],s=(t[2]||[]).slice(),a=!0;e!==fr&&(r=t,s=[],a=!1),super(r.length),r.forEach((c,l)=>{this[l]=c});let o=s.reduce((c,l)=>(typeof l=="string"&&c.set(l,(c.get(l)||0)+1),c),new Map);if(qn(this,Object.freeze(r.map((c,l)=>{let u=s[l];return u!=null&&o.get(u)===1?u:null}))),this.#t=[],this.#t==null&&this.#t,!a)return;Object.freeze(this);let i=new Proxy(this,{get:(c,l,u)=>{if(typeof l=="string"){if(l.match(/^[0-9]+$/)){let p=I(l,"%index");if(p<0||p>=this.length)throw new RangeError("out of result range");let h=c[p];return h instanceof Error&&He(`index ${p}`,h),h}if(Na.indexOf(l)>=0)return Reflect.get(c,l,u);let d=c[l];if(d instanceof Function)return function(...p){return d.apply(this===u?c:this,p)};if(!(l in c))return c.getValue.apply(this===u?c:this,[l])}return Reflect.get(c,l,u)}});return qn(i,jt(this)),i}toArray(t){let e=[];return this.forEach((r,s)=>{r instanceof Error&&He(`index ${s}`,r),t&&r instanceof z&&(r=r.toArray(t)),e.push(r)}),e}toObject(t){let e=jt(this);return e.reduce((r,s,a)=>(y(s!=null,`value at index ${a} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),en(e,this,t)),{})}slice(t,e){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),e==null&&(e=this.length),e<0&&(e+=this.length,e<0&&(e=0)),e>this.length&&(e=this.length);let r=jt(this),s=[],a=[];for(let o=t;o<e;o++)s.push(this[o]),a.push(r[o]);return new z(fr,s,a)}filter(t,e){let r=jt(this),s=[],a=[];for(let o=0;o<this.length;o++){let i=this[o];i instanceof Error&&He(`index ${o}`,i),t.call(e,i,o,this)&&(s.push(i),a.push(r[o]))}return new z(fr,s,a)}map(t,e){let r=[];for(let s=0;s<this.length;s++){let a=this[s];a instanceof Error&&He(`index ${s}`,a),r.push(t.call(e,a,s,this))}return r}getValue(t){let e=jt(this).indexOf(t);if(e===-1)return;let r=this[e];return r instanceof Error&&He(`property ${JSON.stringify(t)}`,r.error),r}static fromItems(t,e){return new z(fr,t,e)}};function ts(n){let t=De(n);return y(t.length<=W,"value out-of-bounds","BUFFER_OVERRUN",{buffer:t,length:W,offset:t.length}),t.length!==W&&(t=Z(at([tn.slice(t.length%W),t]))),t}var M=class{name;type;localName;dynamic;constructor(t,e,r,s){C(this,{name:t,type:e,localName:r,dynamic:s},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(t,e){f(!1,t,this.localName,e)}},Wt=class{#t;#e;constructor(){this.#t=[],this.#e=0}get data(){return at(this.#t)}get length(){return this.#e}#r(t){return this.#t.push(t),this.#e+=t.length,t.length}appendWriter(t){return this.#r(Z(t.data))}writeBytes(t){let e=Z(t),r=e.length%W;return r&&(e=Z(at([e,tn.slice(r)]))),this.#r(e)}writeValue(t){return this.#r(ts(t))}writeUpdatableValue(){let t=this.#t.length;return this.#t.push(tn),this.#e+=W,e=>{this.#t[t]=ts(e)}}},ye=class{allowLoose;#t;#e;#r;#n;#s;constructor(t,e,r){C(this,{allowLoose:!!e}),this.#t=Z(t),this.#r=0,this.#n=null,this.#s=r??1024,this.#e=0}get data(){return P(this.#t)}get dataLength(){return this.#t.length}get consumed(){return this.#e}get bytes(){return new Uint8Array(this.#t)}#a(t){if(this.#n)return this.#n.#a(t);this.#r+=t,y(this.#s<1||this.#r<=this.#s*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#s} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:Z(this.#t),offset:this.#e,length:t,info:{bytesRead:this.#r,dataLength:this.dataLength}})}#o(t,e,r){let s=Math.ceil(e/W)*W;return this.#e+s>this.#t.length&&(this.allowLoose&&r&&this.#e+e<=this.#t.length?s=e:y(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:Z(this.#t),length:this.#t.length,offset:this.#e+s})),this.#t.slice(this.#e,this.#e+s)}subReader(t){let e=new ye(this.#t.slice(this.#e+t),this.allowLoose,this.#s);return e.#n=this,e}readBytes(t,e){let r=this.#o(0,t,!!e);return this.#a(t),this.#e+=r.length,r.slice(0,t)}readValue(){return pr(this.readBytes(W))}readIndex(){return Qr(this.readBytes(W))}};function rn(n){if(!Number.isSafeInteger(n)||n<0)throw new Error(`Wrong positive integer: ${n}`)}function nn(n,...t){if(!(n instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(n.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${n.length}`)}function sn(n,t=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(t&&n.finished)throw new Error("Hash#digest() has already been called")}function rs(n,t){nn(n);let e=t.outputLen;if(n.length<e)throw new Error(`digestInto() expects output buffer of length at least ${e}`)}var hr=BigInt(4294967295),ns=BigInt(32);function Ba(n,t=!1){return t?{h:Number(n&hr),l:Number(n>>ns&hr)}:{h:Number(n>>ns&hr)|0,l:Number(n&hr)|0}}function ss(n,t=!1){let e=new Uint32Array(n.length),r=new Uint32Array(n.length);for(let s=0;s<n.length;s++){let{h:a,l:o}=Ba(n[s],t);[e[s],r[s]]=[a,o]}return[e,r]}var as=(n,t,e)=>n<<e|t>>>32-e,os=(n,t,e)=>t<<e|n>>>32-e,is=(n,t,e)=>t<<e-32|n>>>64-e,cs=(n,t,e)=>n<<e-32|t>>>64-e;var Sa=n=>n instanceof Uint8Array;var ls=n=>new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4));var Fa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Fa)throw new Error("Non little-endian hardware is not supported");function Da(n){if(typeof n!="string")throw new Error(`utf8ToBytes expected string, got ${typeof n}`);return new Uint8Array(new TextEncoder().encode(n))}function gr(n){if(typeof n=="string"&&(n=Da(n)),!Sa(n))throw new Error(`expected Uint8Array, got ${typeof n}`);return n}var mr=class{clone(){return this._cloneInto()}},Bi={}.toString;function us(n){let t=r=>n().update(gr(r)).digest(),e=n();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>n(),t}function ds(n){let t=(r,s)=>n(s).update(gr(r)).digest(),e=n({});return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=r=>n(r),t}var[hs,ms,gs]=[[],[],[]],La=BigInt(0),Ve=BigInt(1),_a=BigInt(2),Ha=BigInt(7),Va=BigInt(256),Ua=BigInt(113);for(let n=0,t=Ve,e=1,r=0;n<24;n++){[e,r]=[r,(2*e+3*r)%5],hs.push(2*(5*r+e)),ms.push((n+1)*(n+2)/2%64);let s=La;for(let a=0;a<7;a++)t=(t<<Ve^(t>>Ha)*Ua)%Va,t&_a&&(s^=Ve<<(Ve<<BigInt(a))-Ve);gs.push(s)}var[Ma,Ga]=ss(gs,!0),ps=(n,t,e)=>e>32?is(n,t,e):as(n,t,e),fs=(n,t,e)=>e>32?cs(n,t,e):os(n,t,e);function $a(n,t=24){let e=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let o=0;o<10;o++)e[o]=n[o]^n[o+10]^n[o+20]^n[o+30]^n[o+40];for(let o=0;o<10;o+=2){let i=(o+8)%10,c=(o+2)%10,l=e[c],u=e[c+1],d=ps(l,u,1)^e[i],p=fs(l,u,1)^e[i+1];for(let h=0;h<50;h+=10)n[o+h]^=d,n[o+h+1]^=p}let s=n[2],a=n[3];for(let o=0;o<24;o++){let i=ms[o],c=ps(s,a,i),l=fs(s,a,i),u=hs[o];s=n[u],a=n[u+1],n[u]=c,n[u+1]=l}for(let o=0;o<50;o+=10){for(let i=0;i<10;i++)e[i]=n[o+i];for(let i=0;i<10;i++)n[o+i]^=~e[(i+2)%10]&e[(i+4)%10]}n[0]^=Ma[r],n[1]^=Ga[r]}e.fill(0)}var be=class extends mr{constructor(t,e,r,s=!1,a=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=r,this.enableXOF=s,this.rounds=a,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,rn(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=ls(this.state)}keccak(){$a(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){sn(this);let{blockLen:e,state:r}=this;t=gr(t);let s=t.length;for(let a=0;a<s;){let o=Math.min(e-this.pos,s-a);for(let i=0;i<o;i++)r[this.pos++]^=t[a++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:e,pos:r,blockLen:s}=this;t[r]^=e,e&128&&r===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){sn(this,!1),nn(t),this.finish();let e=this.state,{blockLen:r}=this;for(let s=0,a=t.length;s<a;){this.posOut>=r&&this.keccak();let o=Math.min(r-this.posOut,a-s);t.set(e.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return rn(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(rs(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:e,suffix:r,outputLen:s,rounds:a,enableXOF:o}=this;return t||(t=new be(e,r,s,o,a)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=s,t.enableXOF=o,t.destroyed=this.destroyed,t}},Dt=(n,t,e)=>us(()=>new be(t,n,e)),_i=Dt(6,144,224/8),Hi=Dt(6,136,256/8),Vi=Dt(6,104,384/8),Ui=Dt(6,72,512/8),Mi=Dt(1,144,224/8),ys=Dt(1,136,256/8),Gi=Dt(1,104,384/8),$i=Dt(1,72,512/8),bs=(n,t,e)=>ds((r={})=>new be(t,n,r.dkLen===void 0?e:r.dkLen,!0)),ji=bs(31,168,128/8),Wi=bs(31,136,256/8);var xs=!1,Cs=function(n){return ys(n)},ws=Cs;function Q(n){let t=_(n,"data");return P(ws(t))}Q._=Cs;Q.lock=function(){xs=!0};Q.register=function(n){if(xs)throw new TypeError("keccak256 is locked");ws=n};Object.freeze(Q);var yr="0x0000000000000000000000000000000000000000000000000000000000000000";var Ts=BigInt(0),Es=BigInt(1),ks=BigInt(2),vs=BigInt(27),Ps=BigInt(28),br=BigInt(35),xe={};function Is(n){return fe(De(n),32)}var J=class{#t;#e;#r;#n;get r(){return this.#t}set r(t){f(lr(t)===32,"invalid r","value",t),this.#t=P(t)}get s(){return this.#e}set s(t){f(lr(t)===32,"invalid s","value",t);let e=P(t);f(parseInt(e.substring(0,3))<8,"non-canonical s","value",e),this.#e=e}get v(){return this.#r}set v(t){let e=I(t,"value");f(e===27||e===28,"invalid v","v",t),this.#r=e}get networkV(){return this.#n}get legacyChainId(){let t=this.networkV;return t==null?null:J.getChainId(t)}get yParity(){return this.v===27?0:1}get yParityAndS(){let t=_(this.s);return this.yParity&&(t[0]|=128),P(t)}get compactSerialized(){return at([this.r,this.yParityAndS])}get serialized(){return at([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(t,e,r,s){Ft(t,xe,"Signature"),this.#t=e,this.#e=r,this.#r=s,this.#n=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let t=new J(xe,this.r,this.s,this.v);return this.networkV&&(t.#n=this.networkV),t}toJSON(){let t=this.networkV;return{_type:"signature",networkV:t!=null?t.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(t){let e=T(t,"v");return e==vs||e==Ps?Ts:(f(e>=br,"invalid EIP-155 v","v",t),(e-br)/ks)}static getChainIdV(t,e){return T(t)*ks+BigInt(35+e-27)}static getNormalizedV(t){let e=T(t);return e===Ts||e===vs?27:e===Es||e===Ps?28:(f(e>=br,"invalid v","v",t),e&Es?27:28)}static from(t){function e(l,u){f(l,u,"signature",t)}if(t==null)return new J(xe,yr,yr,27);if(typeof t=="string"){let l=_(t,"signature");if(l.length===64){let u=P(l.slice(0,32)),d=l.slice(32,64),p=d[0]&128?28:27;return d[0]&=127,new J(xe,u,P(d),p)}if(l.length===65){let u=P(l.slice(0,32)),d=l.slice(32,64);e((d[0]&128)===0,"non-canonical s");let p=J.getNormalizedV(l[64]);return new J(xe,u,P(d),p)}e(!1,"invalid raw signature length")}if(t instanceof J)return t.clone();let r=t.r;e(r!=null,"missing r");let s=Is(r),a=function(l,u){if(l!=null)return Is(l);if(u!=null){e(U(u,32),"invalid yParityAndS");let d=_(u);return d[0]&=127,P(d)}e(!1,"missing s")}(t.s,t.yParityAndS);e((_(a)[0]&128)==0,"non-canonical s");let{networkV:o,v:i}=function(l,u,d){if(l!=null){let p=T(l);return{networkV:p>=br?p:void 0,v:J.getNormalizedV(p)}}if(u!=null)return e(U(u,32),"invalid yParityAndS"),{v:_(u)[0]&128?28:27};if(d!=null){switch(I(d,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}e(!1,"invalid yParity")}e(!1,"missing v")}(t.v,t.yParityAndS,t.yParity),c=new J(xe,s,a,i);return o&&(c.#n=o),e(t.yParity==null||I(t.yParity,"sig.yParity")===c.yParity,"yParity mismatch"),e(t.yParityAndS==null||t.yParityAndS===c.yParityAndS,"yParityAndS mismatch"),c}};var ja=BigInt(0),Wa=BigInt(36);function As(n){n=n.toLowerCase();let t=n.substring(2).split(""),e=new Uint8Array(40);for(let s=0;s<40;s++)e[s]=t[s].charCodeAt(0);let r=_(Q(e));for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&(t[s]=t[s].toUpperCase()),(r[s>>1]&15)>=8&&(t[s+1]=t[s+1].toUpperCase());return"0x"+t.join("")}var an={};for(let n=0;n<10;n++)an[String(n)]=String(n);for(let n=0;n<26;n++)an[String.fromCharCode(65+n)]=String(10+n);var Rs=15;function za(n){n=n.toUpperCase(),n=n.substring(4)+n.substring(0,2)+"00";let t=n.split("").map(r=>an[r]).join("");for(;t.length>=Rs;){let r=t.substring(0,Rs);t=parseInt(r,10)%97+t.substring(r.length)}let e=String(98-parseInt(t,10)%97);for(;e.length<2;)e="0"+e;return e}var Ja=function(){let n={};for(let t=0;t<36;t++){let e="0123456789abcdefghijklmnopqrstuvwxyz"[t];n[e]=BigInt(t)}return n}();function Ka(n){n=n.toLowerCase();let t=ja;for(let e=0;e<n.length;e++)t=t*Wa+Ja[n[e]];return t}function S(n){if(f(typeof n=="string","invalid address","address",n),n.match(/^(0x)?[0-9a-fA-F]{40}$/)){n.startsWith("0x")||(n="0x"+n);let t=As(n);return f(!n.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||t===n,"bad address checksum","address",n),t}if(n.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){f(n.substring(2,4)===za(n),"bad icap checksum","address",n);let t=Ka(n.substring(4)).toString(16);for(;t.length<40;)t="0"+t;return As("0x"+t)}f(!1,"invalid address","address",n)}function on(n){let t=S(n.from),r=T(n.nonce,"tx.nonce").toString(16);return r==="0"?r="0x":r.length%2?r="0x0"+r:r="0x"+r,S(yt(Q(qr([t,r])),12))}function xr(n){return n&&typeof n.getAddress=="function"}async function cn(n,t){let e=await t;return(e==null||e==="0x0000000000000000000000000000000000000000")&&(y(typeof n!="string","unconfigured name","UNCONFIGURED_NAME",{value:n}),f(!1,"invalid AddressLike value; did not resolve to a value address","target",n)),S(e)}function zt(n,t){if(typeof n=="string")return n.match(/^0x[0-9a-f]{40}$/i)?S(n):(y(t!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),cn(n,t.resolveName(n)));if(xr(n))return cn(n,n.getAddress());if(n&&typeof n.then=="function")return cn(n,n);f(!1,"unsupported addressable value","target",n)}var ut={};function m(n,t){let e=!1;return t<0&&(e=!0,t*=-1),new O(ut,`${e?"":"u"}int${t}`,n,{signed:e,width:t})}function B(n,t){return new O(ut,`bytes${t||""}`,n,{size:t})}var Os=Symbol.for("_ethers_typed"),O=class{type;value;#t;_typedSymbol;constructor(t,e,r,s){s==null&&(s=null),Ft(ut,t,"Typed"),C(this,{_typedSymbol:Os,type:e,value:r}),this.#t=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(t=>t.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 this.#t}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return this.#t===!0?-1:this.#t===!1?this.value.length:null}static from(t,e){return new O(ut,t,e)}static uint8(t){return m(t,8)}static uint16(t){return m(t,16)}static uint24(t){return m(t,24)}static uint32(t){return m(t,32)}static uint40(t){return m(t,40)}static uint48(t){return m(t,48)}static uint56(t){return m(t,56)}static uint64(t){return m(t,64)}static uint72(t){return m(t,72)}static uint80(t){return m(t,80)}static uint88(t){return m(t,88)}static uint96(t){return m(t,96)}static uint104(t){return m(t,104)}static uint112(t){return m(t,112)}static uint120(t){return m(t,120)}static uint128(t){return m(t,128)}static uint136(t){return m(t,136)}static uint144(t){return m(t,144)}static uint152(t){return m(t,152)}static uint160(t){return m(t,160)}static uint168(t){return m(t,168)}static uint176(t){return m(t,176)}static uint184(t){return m(t,184)}static uint192(t){return m(t,192)}static uint200(t){return m(t,200)}static uint208(t){return m(t,208)}static uint216(t){return m(t,216)}static uint224(t){return m(t,224)}static uint232(t){return m(t,232)}static uint240(t){return m(t,240)}static uint248(t){return m(t,248)}static uint256(t){return m(t,256)}static uint(t){return m(t,256)}static int8(t){return m(t,-8)}static int16(t){return m(t,-16)}static int24(t){return m(t,-24)}static int32(t){return m(t,-32)}static int40(t){return m(t,-40)}static int48(t){return m(t,-48)}static int56(t){return m(t,-56)}static int64(t){return m(t,-64)}static int72(t){return m(t,-72)}static int80(t){return m(t,-80)}static int88(t){return m(t,-88)}static int96(t){return m(t,-96)}static int104(t){return m(t,-104)}static int112(t){return m(t,-112)}static int120(t){return m(t,-120)}static int128(t){return m(t,-128)}static int136(t){return m(t,-136)}static int144(t){return m(t,-144)}static int152(t){return m(t,-152)}static int160(t){return m(t,-160)}static int168(t){return m(t,-168)}static int176(t){return m(t,-176)}static int184(t){return m(t,-184)}static int192(t){return m(t,-192)}static int200(t){return m(t,-200)}static int208(t){return m(t,-208)}static int216(t){return m(t,-216)}static int224(t){return m(t,-224)}static int232(t){return m(t,-232)}static int240(t){return m(t,-240)}static int248(t){return m(t,-248)}static int256(t){return m(t,-256)}static int(t){return m(t,-256)}static bytes1(t){return B(t,1)}static bytes2(t){return B(t,2)}static bytes3(t){return B(t,3)}static bytes4(t){return B(t,4)}static bytes5(t){return B(t,5)}static bytes6(t){return B(t,6)}static bytes7(t){return B(t,7)}static bytes8(t){return B(t,8)}static bytes9(t){return B(t,9)}static bytes10(t){return B(t,10)}static bytes11(t){return B(t,11)}static bytes12(t){return B(t,12)}static bytes13(t){return B(t,13)}static bytes14(t){return B(t,14)}static bytes15(t){return B(t,15)}static bytes16(t){return B(t,16)}static bytes17(t){return B(t,17)}static bytes18(t){return B(t,18)}static bytes19(t){return B(t,19)}static bytes20(t){return B(t,20)}static bytes21(t){return B(t,21)}static bytes22(t){return B(t,22)}static bytes23(t){return B(t,23)}static bytes24(t){return B(t,24)}static bytes25(t){return B(t,25)}static bytes26(t){return B(t,26)}static bytes27(t){return B(t,27)}static bytes28(t){return B(t,28)}static bytes29(t){return B(t,29)}static bytes30(t){return B(t,30)}static bytes31(t){return B(t,31)}static bytes32(t){return B(t,32)}static address(t){return new O(ut,"address",t)}static bool(t){return new O(ut,"bool",!!t)}static bytes(t){return new O(ut,"bytes",t)}static string(t){return new O(ut,"string",t)}static array(t,e){throw new Error("not implemented yet")}static tuple(t,e){throw new Error("not implemented yet")}static overrides(t){return new O(ut,"overrides",Object.assign({},t))}static isTyped(t){return t&&typeof t=="object"&&"_typedSymbol"in t&&t._typedSymbol===Os}static dereference(t,e){if(O.isTyped(t)){if(t.type!==e)throw new Error(`invalid type: expecetd ${e}, got ${t.type}`);return t.value}return t}};var Cr=class extends M{constructor(t){super("address","address",t,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(t,e){let r=O.dereference(e,"string");try{r=S(r)}catch(s){return this._throwError(s.message,e)}return t.writeValue(r)}decode(t){return S(Fe(t.readValue(),20))}};var wr=class extends M{coder;constructor(t){super(t.name,t.type,"_",t.dynamic),this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,e){return this.coder.encode(t,e)}decode(t){return this.coder.decode(t)}};function ln(n,t,e){let r=[];if(Array.isArray(e))r=e;else if(e&&typeof e=="object"){let c={};r=t.map(l=>{let u=l.localName;return y(u,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:e}),y(!c[u],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:e}),c[u]=!0,e[u]})}else f(!1,"invalid tuple value","tuple",e);f(t.length===r.length,"types/value length mismatch","tuple",e);let s=new Wt,a=new Wt,o=[];t.forEach((c,l)=>{let u=r[l];if(c.dynamic){let d=a.length;c.encode(a,u);let p=s.writeUpdatableValue();o.push(h=>{p(h+d)})}else c.encode(s,u)}),o.forEach(c=>{c(s.length)});let i=n.appendWriter(s);return i+=n.appendWriter(a),i}function un(n,t){let e=[],r=[],s=n.subReader(0);return t.forEach(a=>{let o=null;if(a.dynamic){let i=n.readIndex(),c=s.subReader(i);try{o=a.decode(c)}catch(l){if(gt(l,"BUFFER_OVERRUN"))throw l;o=l,o.baseType=a.name,o.name=a.localName,o.type=a.type}}else try{o=a.decode(n)}catch(i){if(gt(i,"BUFFER_OVERRUN"))throw i;o=i,o.baseType=a.name,o.name=a.localName,o.type=a.type}if(o==null)throw new Error("investigate");e.push(o),r.push(a.localName||null)}),z.fromItems(e,r)}var Tr=class extends M{coder;length;constructor(t,e,r){let s=t.type+"["+(e>=0?e:"")+"]",a=e===-1||t.dynamic;super("array",s,r,a),C(this,{coder:t,length:e})}defaultValue(){let t=this.coder.defaultValue(),e=[];for(let r=0;r<this.length;r++)e.push(t);return e}encode(t,e){let r=O.dereference(e,"array");Array.isArray(r)||this._throwError("expected array value",r);let s=this.length;s===-1&&(s=r.length,t.writeValue(r.length)),Be(r.length,s,"coder array"+(this.localName?" "+this.localName:""));let a=[];for(let o=0;o<r.length;o++)a.push(this.coder);return ln(t,a,r)}decode(t){let e=this.length;e===-1&&(e=t.readIndex(),y(e*W<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:e*W,length:t.dataLength}));let r=[];for(let s=0;s<e;s++)r.push(new wr(this.coder));return un(t,r)}};var Er=class extends M{constructor(t){super("bool","bool",t,!1)}defaultValue(){return!1}encode(t,e){let r=O.dereference(e,"bool");return t.writeValue(r?1:0)}decode(t){return!!t.readValue()}};var Ue=class extends M{constructor(t,e){super(t,t,e,!0)}defaultValue(){return"0x"}encode(t,e){e=Z(e);let r=t.writeValue(e.length);return r+=t.writeBytes(e),r}decode(t){return t.readBytes(t.readIndex(),!0)}},kr=class extends Ue{constructor(t){super("bytes",t)}decode(t){return P(super.decode(t))}};var vr=class extends M{size;constructor(t,e){let r="bytes"+String(t);super(r,r,e,!1),C(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(t,e){let r=Z(O.dereference(e,this.type));return r.length!==this.size&&this._throwError("incorrect data length",e),t.writeBytes(r)}decode(t){return P(t.readBytes(this.size))}};var Xa=new Uint8Array([]),Pr=class extends M{constructor(t){super("null","",t,!1)}defaultValue(){return null}encode(t,e){return e!=null&&this._throwError("not null",e),t.writeBytes(Xa)}decode(t){return t.readBytes(0),null}};var Za=BigInt(0),Ya=BigInt(1),Qa=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Ir=class extends M{size;signed;constructor(t,e,r){let s=(e?"int":"uint")+t*8;super(s,s,r,!1),C(this,{size:t,signed:e},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,e){let r=T(O.dereference(e,this.type)),s=me(Qa,W*8);if(this.signed){let a=me(s,this.size*8-1);(r>a||r<-(a+Ya))&&this._throwError("value out-of-bounds",e),r=Yr(r,8*W)}else(r<Za||r>me(s,this.size*8))&&this._throwError("value out-of-bounds",e);return t.writeValue(r)}decode(t){let e=me(t.readValue(),this.size*8);return this.signed&&(e=Zr(e,this.size*8)),e}};var Ar=class extends Ue{constructor(t){super("string",t)}defaultValue(){return""}encode(t,e){return super.encode(t,ge(O.dereference(e,"string")))}decode(t){return _e(super.decode(t))}};var Jt=class extends M{coders;constructor(t,e){let r=!1,s=[];t.forEach(o=>{o.dynamic&&(r=!0),s.push(o.type)});let a="tuple("+s.join(",")+")";super("tuple",a,e,r),C(this,{coders:Object.freeze(t.slice())})}defaultValue(){let t=[];this.coders.forEach(r=>{t.push(r.defaultValue())});let e=this.coders.reduce((r,s)=>{let a=s.localName;return a&&(r[a]||(r[a]=0),r[a]++),r},{});return this.coders.forEach((r,s)=>{let a=r.localName;!a||e[a]!==1||(a==="length"&&(a="_length"),t[a]==null&&(t[a]=t[s]))}),Object.freeze(t)}encode(t,e){let r=O.dereference(e,"tuple");return ln(t,this.coders,r)}decode(t){return un(t,this.coders)}};function Lt(n){return Q(ge(n))}function dn(n,t){return{address:S(n),storageKeys:t.map((e,r)=>(f(U(e,32),"invalid slot",`storageKeys[${r}]`,e),e.toLowerCase()))}}function Me(n){if(Array.isArray(n))return n.map((e,r)=>Array.isArray(e)?(f(e.length===2,"invalid slot set",`value[${r}]`,e),dn(e[0],e[1])):(f(e!=null&&typeof e=="object","invalid address-slot set","value",n),dn(e.address,e.storageKeys)));f(n!=null&&typeof n=="object","invalid access list","value",n);let t=Object.keys(n).map(e=>{let r=n[e].reduce((s,a)=>(s[a]=!0,s),{});return dn(e,Object.keys(r).sort())});return t.sort((e,r)=>e.address.localeCompare(r.address)),t}function Y(n){let t=new Set;return n.forEach(e=>t.add(e)),Object.freeze(t)}var qa="external public payable override",to=Y(qa.split(" ")),Us="constant external internal payable private public pure view override",eo=Y(Us.split(" ")),Ms="constructor error event fallback function receive struct",Gs=Y(Ms.split(" ")),$s="calldata memory storage payable indexed",ro=Y($s.split(" ")),no="tuple returns",so=[Ms,$s,no,Us].join(" "),ao=Y(so.split(" ")),oo={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},io=new RegExp("^(\\s*)"),co=new RegExp("^([0-9]+)"),lo=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),js=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Ws=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"),et=class{#t;#e;get offset(){return this.#t}get length(){return this.#e.length-this.#t}constructor(t){this.#t=0,this.#e=t.slice()}clone(){return new et(this.#e)}reset(){this.#t=0}#r(t=0,e=0){return new et(this.#e.slice(t,e).map(r=>Object.freeze(Object.assign({},r,{match:r.match-t,linkBack:r.linkBack-t,linkNext:r.linkNext-t}))))}popKeyword(t){let e=this.peek();if(e.type!=="KEYWORD"||!t.has(e.text))throw new Error(`expected keyword ${e.text}`);return this.pop().text}popType(t){if(this.peek().type!==t){let e=this.peek();throw new Error(`expected ${t}; got ${e.type} ${JSON.stringify(e.text)}`)}return this.pop().text}popParen(){let t=this.peek();if(t.type!=="OPEN_PAREN")throw new Error("bad start");let e=this.#r(this.#t+1,t.match+1);return this.#t=t.match+1,e}popParams(){let t=this.peek();if(t.type!=="OPEN_PAREN")throw new Error("bad start");let e=[];for(;this.#t<t.match-1;){let r=this.peek().linkNext;e.push(this.#r(this.#t+1,r)),this.#t=r}return this.#t=t.match+1,e}peek(){if(this.#t>=this.#e.length)throw new Error("out-of-bounds");return this.#e[this.#t]}peekKeyword(t){let e=this.peekType("KEYWORD");return e!=null&&t.has(e)?e:null}peekType(t){if(this.length===0)return null;let e=this.peek();return e.type===t?e.text:null}pop(){let t=this.peek();return this.#t++,t}toString(){let t=[];for(let e=this.#t;e<this.#e.length;e++){let r=this.#e[e];t.push(`${r.type}:${r.text}`)}return`<TokenString ${t.join(" ")}>`}};function _t(n){let t=[],e=o=>{let i=a<n.length?JSON.stringify(n[a]):"$EOI";throw new Error(`invalid token ${i} at ${a}: ${o}`)},r=[],s=[],a=0;for(;a<n.length;){let o=n.substring(a),i=o.match(io);i&&(a+=i[1].length,o=n.substring(a));let c={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:a,value:-1};t.push(c);let l=oo[o[0]]||"";if(l){if(c.type=l,c.text=o[0],a++,l==="OPEN_PAREN")r.push(t.length-1),s.push(t.length-1);else if(l=="CLOSE_PAREN")r.length===0&&e("no matching open bracket"),c.match=r.pop(),t[c.match].match=t.length-1,c.depth--,c.linkBack=s.pop(),t[c.linkBack].linkNext=t.length-1;else if(l==="COMMA")c.linkBack=s.pop(),t[c.linkBack].linkNext=t.length-1,s.push(t.length-1);else if(l==="OPEN_BRACKET")c.type="BRACKET";else if(l==="CLOSE_BRACKET"){let u=t.pop().text;if(t.length>0&&t[t.length-1].type==="NUMBER"){let d=t.pop().text;u=d+u,t[t.length-1].value=I(d)}if(t.length===0||t[t.length-1].type!=="BRACKET")throw new Error("missing opening bracket");t[t.length-1].text+=u}continue}if(i=o.match(lo),i){if(c.text=i[1],a+=c.text.length,ao.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(Ws)){c.type="TYPE";continue}c.type="ID";continue}if(i=o.match(co),i){c.text=i[1],c.type="NUMBER",a+=c.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${a}`)}return new et(t.map(o=>Object.freeze(o)))}function Ns(n,t){let e=[];for(let r in t.keys())n.has(r)&&e.push(r);if(e.length>1)throw new Error(`conflicting types: ${e.join(", ")}`)}function Rr(n,t){if(t.peekKeyword(Gs)){let e=t.pop().text;if(e!==n)throw new Error(`expected ${n}, got ${e}`)}return t.popType("ID")}function vt(n,t){let e=new Set;for(;;){let r=n.peekType("KEYWORD");if(r==null||t&&!t.has(r))break;if(n.pop(),e.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);e.add(r)}return Object.freeze(e)}function zs(n){let t=vt(n,eo);return Ns(t,Y("constant payable nonpayable".split(" "))),Ns(t,Y("pure view payable nonpayable".split(" "))),t.has("view")?"view":t.has("pure")?"pure":t.has("payable")?"payable":t.has("nonpayable")?"nonpayable":t.has("constant")?"view":"nonpayable"}function kt(n,t){return n.popParams().map(e=>F.from(e,t))}function Js(n){if(n.peekType("AT")){if(n.pop(),n.peekType("NUMBER"))return T(n.pop().text);throw new Error("invalid gas")}return null}function Kt(n){if(n.length)throw new Error(`unexpected tokens at offset ${n.offset}: ${n.toString()}`)}var uo=new RegExp(/^(.*)\[([0-9]*)\]$/);function Bs(n){let t=n.match(Ws);if(f(t,"invalid type","type",n),n==="uint")return"uint256";if(n==="int")return"int256";if(t[2]){let e=parseInt(t[2]);f(e!==0&&e<=32,"invalid bytes length","type",n)}else if(t[3]){let e=parseInt(t[3]);f(e!==0&&e<=256&&e%8===0,"invalid numeric width","type",n)}return n}var V={},rt=Symbol.for("_ethers_internal"),Ss="_ParamTypeInternal",Fs="_ErrorInternal",Ds="_EventInternal",Ls="_ConstructorInternal",_s="_FallbackInternal",Hs="_FunctionInternal",Vs="_StructInternal",F=class{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(t,e,r,s,a,o,i,c){if(Ft(t,V,"ParamType"),Object.defineProperty(this,rt,{value:Ss}),o&&(o=Object.freeze(o.slice())),s==="array"){if(i==null||c==null)throw new Error("")}else if(i!=null||c!=null)throw new Error("");if(s==="tuple"){if(o==null)throw new Error("")}else if(o!=null)throw new Error("");C(this,{name:e,type:r,baseType:s,indexed:a,components:o,arrayLength:i,arrayChildren:c})}format(t){if(t==null&&(t="sighash"),t==="json"){let r=this.name||"";if(this.isArray()){let a=JSON.parse(this.arrayChildren.format("json"));return a.name=r,a.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(a)}let s={type:this.baseType==="tuple"?"tuple":this.type,name:r};return typeof this.indexed=="boolean"&&(s.indexed=this.indexed),this.isTuple()&&(s.components=this.components.map(a=>JSON.parse(a.format(t)))),JSON.stringify(s)}let e="";return this.isArray()?(e+=this.arrayChildren.format(t),e+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?e+="("+this.components.map(r=>r.format(t)).join(t==="full"?", ":",")+")":e+=this.type,t!=="sighash"&&(this.indexed===!0&&(e+=" indexed"),t==="full"&&this.name&&(e+=" "+this.name)),e}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(t,e){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");let r=this;return t.map(s=>r.arrayChildren.walk(s,e))}if(this.isTuple()){if(!Array.isArray(t))throw new Error("invalid tuple value");if(t.length!==this.components.length)throw new Error("array is wrong length");let r=this;return t.map((s,a)=>r.components[a].walk(s,e))}return e(this.type,t)}#t(t,e,r,s){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");let o=this.arrayChildren,i=e.slice();i.forEach((c,l)=>{o.#t(t,c,r,u=>{i[l]=u})}),s(i);return}if(this.isTuple()){let o=this.components,i;if(Array.isArray(e))i=e.slice();else{if(e==null||typeof e!="object")throw new Error("invalid tuple value");i=o.map(c=>{if(!c.name)throw new Error("cannot use object value with unnamed components");if(!(c.name in e))throw new Error(`missing value for component ${c.name}`);return e[c.name]})}if(i.length!==this.components.length)throw new Error("array is wrong length");i.forEach((c,l)=>{o[l].#t(t,c,r,u=>{i[l]=u})}),s(i);return}let a=r(this.type,e);a.then?t.push(async function(){s(await a)}()):s(a)}async walkAsync(t,e){let r=[],s=[t];return this.#t(r,t,e,a=>{s[0]=a}),r.length&&await Promise.all(r),s[0]}static from(t,e){if(F.isParamType(t))return t;if(typeof t=="string")try{return F.from(_t(t),e)}catch{f(!1,"invalid param type","obj",t)}else if(t instanceof et){let i="",c="",l=null;vt(t,Y(["tuple"])).has("tuple")||t.peekType("OPEN_PAREN")?(c="tuple",l=t.popParams().map(w=>F.from(w)),i=`tuple(${l.map(w=>w.format()).join(",")})`):(i=Bs(t.popType("TYPE")),c=i);let u=null,d=null;for(;t.length&&t.peekType("BRACKET");){let w=t.pop();u=new F(V,"",i,c,null,l,d,u),d=w.value,i+=w.text,c="array",l=null}let p=null;if(vt(t,ro).has("indexed")){if(!e)throw new Error("");p=!0}let x=t.peekType("ID")?t.pop().text:"";if(t.length)throw new Error("leftover tokens");return new F(V,x,i,c,p,l,d,u)}let r=t.name;f(!r||typeof r=="string"&&r.match(js),"invalid name","obj.name",r);let s=t.indexed;s==!0?(f(e,"parameter cannot be indexed","obj.indexed",t.indexed),s=!0):s=!1;let a=t.type,o=a.match(uo);if(o){let i=parseInt(o[2]||"-1"),c=F.from({type:o[1],components:t.components});return new F(V,r||"",a,"array",s,null,i,c)}if(a==="tuple"||a.startsWith("tuple(")||a.startsWith("(")){let i=t.components!=null?t.components.map(l=>F.from(l)):null;return new F(V,r||"",a,"tuple",s,i,null,null)}return a=Bs(t.type),new F(V,r||"",a,a,s,null,null,null)}static isParamType(t){return t&&t[rt]===Ss}},dt=class{type;inputs;constructor(t,e,r){Ft(t,V,"Fragment"),r=Object.freeze(r.slice()),C(this,{type:e,inputs:r})}static from(t){if(typeof t=="string"){try{dt.from(JSON.parse(t))}catch{}return dt.from(_t(t))}if(t instanceof et)switch(t.peekKeyword(Gs)){case"constructor":return ot.from(t);case"error":return $.from(t);case"event":return q.from(t);case"fallback":case"receive":return ct.from(t);case"function":return tt.from(t);case"struct":return bt.from(t)}else if(typeof t=="object"){switch(t.type){case"constructor":return ot.from(t);case"error":return $.from(t);case"event":return q.from(t);case"fallback":case"receive":return ct.from(t);case"function":return tt.from(t);case"struct":return bt.from(t)}y(!1,`unsupported type: ${t.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}f(!1,"unsupported frgament object","obj",t)}static isConstructor(t){return ot.isFragment(t)}static isError(t){return $.isFragment(t)}static isEvent(t){return q.isFragment(t)}static isFunction(t){return tt.isFragment(t)}static isStruct(t){return bt.isFragment(t)}},Xt=class extends dt{name;constructor(t,e,r,s){super(t,e,s),f(typeof r=="string"&&r.match(js),"invalid identifier","name",r),s=Object.freeze(s.slice()),C(this,{name:r})}};function Ge(n,t){return"("+t.map(e=>e.format(n)).join(n==="full"?", ":",")+")"}var $=class extends Xt{constructor(t,e,r){super(t,"error",e,r),Object.defineProperty(this,rt,{value:Fs})}get selector(){return Lt(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(t)))});let e=[];return t!=="sighash"&&e.push("error"),e.push(this.name+Ge(t,this.inputs)),e.join(" ")}static from(t){if($.isFragment(t))return t;if(typeof t=="string")return $.from(_t(t));if(t instanceof et){let e=Rr("error",t),r=kt(t);return Kt(t),new $(V,e,r)}return new $(V,t.name,t.inputs?t.inputs.map(F.from):[])}static isFragment(t){return t&&t[rt]===Fs}},q=class extends Xt{anonymous;constructor(t,e,r,s){super(t,"event",e,r),Object.defineProperty(this,rt,{value:Ds}),C(this,{anonymous:s})}get topicHash(){return Lt(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(r=>JSON.parse(r.format(t)))});let e=[];return t!=="sighash"&&e.push("event"),e.push(this.name+Ge(t,this.inputs)),t!=="sighash"&&this.anonymous&&e.push("anonymous"),e.join(" ")}static getTopicHash(t,e){return e=(e||[]).map(s=>F.from(s)),new q(V,t,e,!1).topicHash}static from(t){if(q.isFragment(t))return t;if(typeof t=="string")try{return q.from(_t(t))}catch{f(!1,"invalid event fragment","obj",t)}else if(t instanceof et){let e=Rr("event",t),r=kt(t,!0),s=!!vt(t,Y(["anonymous"])).has("anonymous");return Kt(t),new q(V,e,r,s)}return new q(V,t.name,t.inputs?t.inputs.map(e=>F.from(e,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[rt]===Ds}},ot=class extends dt{payable;gas;constructor(t,e,r,s,a){super(t,e,r),Object.defineProperty(this,rt,{value:Ls}),C(this,{payable:s,gas:a})}format(t){if(y(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(r=>JSON.parse(r.format(t)))});let e=[`constructor${Ge(t,this.inputs)}`];return this.payable&&e.push("payable"),this.gas!=null&&e.push(`@${this.gas.toString()}`),e.join(" ")}static from(t){if(ot.isFragment(t))return t;if(typeof t=="string")try{return ot.from(_t(t))}catch{f(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof et){vt(t,Y(["constructor"]));let e=kt(t),r=!!vt(t,to).has("payable"),s=Js(t);return Kt(t),new ot(V,"constructor",e,r,s)}return new ot(V,"constructor",t.inputs?t.inputs.map(F.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[rt]===Ls}},ct=class extends dt{payable;constructor(t,e,r){super(t,"fallback",e),Object.defineProperty(this,rt,{value:_s}),C(this,{payable:r})}format(t){let e=this.inputs.length===0?"receive":"fallback";if(t==="json"){let r=this.payable?"payable":"nonpayable";return JSON.stringify({type:e,stateMutability:r})}return`${e}()${this.payable?" payable":""}`}static from(t){if(ct.isFragment(t))return t;if(typeof t=="string")try{return ct.from(_t(t))}catch{f(!1,"invalid fallback fragment","obj",t)}else if(t instanceof et){let e=t.toString(),r=t.peekKeyword(Y(["fallback","receive"]));if(f(r,"type must be fallback or receive","obj",e),t.popKeyword(Y(["fallback","receive"]))==="receive"){let i=kt(t);return f(i.length===0,"receive cannot have arguments","obj.inputs",i),vt(t,Y(["payable"])),Kt(t),new ct(V,[],!0)}let a=kt(t);a.length?f(a.length===1&&a[0].type==="bytes","invalid fallback inputs","obj.inputs",a.map(i=>i.format("minimal")).join(", ")):a=[F.from("bytes")];let o=zs(t);if(f(o==="nonpayable"||o==="payable","fallback cannot be constants","obj.stateMutability",o),vt(t,Y(["returns"])).has("returns")){let i=kt(t);f(i.length===1&&i[0].type==="bytes","invalid fallback outputs","obj.outputs",i.map(c=>c.format("minimal")).join(", "))}return Kt(t),new ct(V,a,o==="payable")}if(t.type==="receive")return new ct(V,[],!0);if(t.type==="fallback"){let e=[F.from("bytes")],r=t.stateMutability==="payable";return new ct(V,e,r)}f(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[rt]===_s}},tt=class extends Xt{constant;outputs;stateMutability;payable;gas;constructor(t,e,r,s,a,o){super(t,"function",e,s),Object.defineProperty(this,rt,{value:Hs}),a=Object.freeze(a.slice()),C(this,{constant:r==="view"||r==="pure",gas:o,outputs:a,payable:r==="payable",stateMutability:r})}get selector(){return Lt(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(r=>JSON.parse(r.format(t))),outputs:this.outputs.map(r=>JSON.parse(r.format(t)))});let e=[];return t!=="sighash"&&e.push("function"),e.push(this.name+Ge(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&e.push(this.stateMutability),this.outputs&&this.outputs.length&&(e.push("returns"),e.push(Ge(t,this.outputs))),this.gas!=null&&e.push(`@${this.gas.toString()}`)),e.join(" ")}static getSelector(t,e){return e=(e||[]).map(s=>F.from(s)),new tt(V,t,"view",e,[],null).selector}static from(t){if(tt.isFragment(t))return t;if(typeof t=="string")try{return tt.from(_t(t))}catch{f(!1,"invalid function fragment","obj",t)}else if(t instanceof et){let r=Rr("function",t),s=kt(t),a=zs(t),o=[];vt(t,Y(["returns"])).has("returns")&&(o=kt(t));let i=Js(t);return Kt(t),new tt(V,r,a,s,o,i)}let e=t.stateMutability;return e==null&&(e="payable",typeof t.constant=="boolean"?(e="view",t.constant||(e="payable",typeof t.payable=="boolean"&&!t.payable&&(e="nonpayable"))):typeof t.payable=="boolean"&&!t.payable&&(e="nonpayable")),new tt(V,t.name,e,t.inputs?t.inputs.map(F.from):[],t.outputs?t.outputs.map(F.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[rt]===Hs}},bt=class extends Xt{constructor(t,e,r){super(t,"struct",e,r),Object.defineProperty(this,rt,{value:Vs})}format(){throw new Error("@TODO")}static from(t){if(typeof t=="string")try{return bt.from(_t(t))}catch{f(!1,"invalid struct fragment","obj",t)}else if(t instanceof et){let e=Rr("struct",t),r=kt(t);return Kt(t),new bt(V,e,r)}return new bt(V,t.name,t.inputs?t.inputs.map(F.from):[])}static isFragment(t){return t&&t[rt]===Vs}};var pt=new Map;pt.set(0,"GENERIC_PANIC");pt.set(1,"ASSERT_FALSE");pt.set(17,"OVERFLOW");pt.set(18,"DIVIDE_BY_ZERO");pt.set(33,"ENUM_RANGE_ERROR");pt.set(34,"BAD_STORAGE_DATA");pt.set(49,"STACK_UNDERFLOW");pt.set(50,"ARRAY_RANGE_ERROR");pt.set(65,"OUT_OF_MEMORY");pt.set(81,"UNINITIALIZED_FUNCTION_CALL");var po=new RegExp(/^bytes([0-9]*)$/),fo=new RegExp(/^(u?int)([0-9]*)$/),pn=null,Ks=1024;function ho(n,t,e,r){let s="missing revert data",a=null,o=null,i=null;if(e){s="execution reverted";let l=_(e);if(e=P(e),l.length===0)s+=" (no data present; likely require(false) occurred",a="require(false)";else if(l.length%32!==4)s+=" (could not decode reason; invalid data length)";else if(P(l.slice(0,4))==="0x08c379a0")try{a=r.decode(["string"],l.slice(4))[0],i={signature:"Error(string)",name:"Error",args:[a]},s+=`: ${JSON.stringify(a)}`}catch{s+=" (could not decode reason; invalid string data)"}else if(P(l.slice(0,4))==="0x4e487b71")try{let u=Number(r.decode(["uint256"],l.slice(4))[0]);i={signature:"Panic(uint256)",name:"Panic",args:[u]},a=`Panic due to ${pt.get(u)||"UNKNOWN"}(${u})`,s+=`: ${a}`}catch{s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}let c={to:t.to?S(t.to):null,data:t.data||"0x"};return t.from&&(c.from=S(t.from)),Et(s,"CALL_EXCEPTION",{action:n,data:e,reason:a,transaction:c,invocation:o,revert:i})}var Pt=class{#t(t){if(t.isArray())return new Tr(this.#t(t.arrayChildren),t.arrayLength,t.name);if(t.isTuple())return new Jt(t.components.map(r=>this.#t(r)),t.name);switch(t.baseType){case"address":return new Cr(t.name);case"bool":return new Er(t.name);case"string":return new Ar(t.name);case"bytes":return new kr(t.name);case"":return new Pr(t.name)}let e=t.type.match(fo);if(e){let r=parseInt(e[2]||"256");return f(r!==0&&r<=256&&r%8===0,"invalid "+e[1]+" bit length","param",t),new Ir(r/8,e[1]==="int",t.name)}if(e=t.type.match(po),e){let r=parseInt(e[1]);return f(r!==0&&r<=32,"invalid bytes length","param",t),new vr(r,t.name)}f(!1,"invalid type","type",t.type)}getDefaultValue(t){let e=t.map(s=>this.#t(F.from(s)));return new Jt(e,"_").defaultValue()}encode(t,e){Be(e.length,t.length,"types/values length mismatch");let r=t.map(o=>this.#t(F.from(o))),s=new Jt(r,"_"),a=new Wt;return s.encode(a,e),a.data}decode(t,e,r){let s=t.map(o=>this.#t(F.from(o)));return new Jt(s,"_").decode(new ye(e,r,Ks))}static _setDefaultMaxInflation(t){f(typeof t=="number"&&Number.isInteger(t),"invalid defaultMaxInflation factor","value",t),Ks=t}static defaultAbiCoder(){return pn==null&&(pn=new Pt),pn}static getBuiltinCallException(t,e,r){return ho(t,e,r,Pt.defaultAbiCoder())}};function Xs(n){let t=_(n,"bytes");if(t.length!==32)throw new Error("invalid bytes32 - not 32 bytes long");if(t[31]!==0)throw new Error("invalid bytes32 string - no null terminator");let e=31;for(;t[e-1]===0;)e--;return _e(t.slice(0,e))}var $e=class{fragment;name;signature;topic;args;constructor(t,e,r){let s=t.name,a=t.format();C(this,{fragment:t,name:s,signature:a,topic:e,args:r})}},je=class{fragment;name;args;signature;selector;value;constructor(t,e,r,s){let a=t.name,o=t.format();C(this,{fragment:t,name:a,args:r,signature:o,selector:e,value:s})}},We=class{fragment;name;args;signature;selector;constructor(t,e,r){let s=t.name,a=t.format();C(this,{fragment:t,name:s,args:r,signature:a,selector:e})}},Ce=class{hash;_isIndexed;static isIndexed(t){return!!(t&&t._isIndexed)}constructor(t){C(this,{hash:t,_isIndexed:!0})}},Zs={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"},Ys={"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 t="unknown panic code";return n>=0&&n<=255&&Zs[n.toString()]&&(t=Zs[n.toString()]),`reverted with panic code 0x${n.toString(16)} (${t})`}}},b=class{fragments;deploy;fallback;receive;#t;#e;#r;#n;constructor(t){let e=[];typeof t=="string"?e=JSON.parse(t):e=t,this.#r=new Map,this.#t=new Map,this.#e=new Map;let r=[];for(let o of e)try{r.push(dt.from(o))}catch(i){console.log(`[Warning] Invalid Fragment ${JSON.stringify(o)}:`,i.message)}C(this,{fragments:Object.freeze(r)});let s=null,a=!1;this.#n=this.getAbiCoder(),this.fragments.forEach((o,i)=>{let c;switch(o.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}C(this,{deploy:o});return;case"fallback":o.inputs.length===0?a=!0:(f(!s||o.payable!==s.payable,"conflicting fallback fragments",`fragments[${i}]`,o),s=o,a=s.payable);return;case"function":c=this.#r;break;case"event":c=this.#e;break;case"error":c=this.#t;break;default:return}let l=o.format();c.has(l)||c.set(l,o)}),this.deploy||C(this,{deploy:ot.from("constructor()")}),C(this,{fallback:s,receive:a})}format(t){let e=t?"minimal":"full";return this.fragments.map(s=>s.format(e))}formatJson(){let t=this.fragments.map(e=>e.format("json"));return JSON.stringify(t.map(e=>JSON.parse(e)))}getAbiCoder(){return Pt.defaultAbiCoder()}#s(t,e,r){if(U(t)){let a=t.toLowerCase();for(let o of this.#r.values())if(a===o.selector)return o;return null}if(t.indexOf("(")===-1){let a=[];for(let[o,i]of this.#r)o.split("(")[0]===t&&a.push(i);if(e){let o=e.length>0?e[e.length-1]:null,i=e.length,c=!0;O.isTyped(o)&&o.type==="overrides"&&(c=!1,i--);for(let l=a.length-1;l>=0;l--){let u=a[l].inputs.length;u!==i&&(!c||u!==i-1)&&a.splice(l,1)}for(let l=a.length-1;l>=0;l--){let u=a[l].inputs;for(let d=0;d<e.length;d++)if(O.isTyped(e[d])){if(d>=u.length){if(e[d].type==="overrides")continue;a.splice(l,1);break}if(e[d].type!==u[d].baseType){a.splice(l,1);break}}}}if(a.length===1&&e&&e.length!==a[0].inputs.length){let o=e[e.length-1];(o==null||Array.isArray(o)||typeof o!="object")&&a.splice(0,1)}if(a.length===0)return null;if(a.length>1&&r){let o=a.map(i=>JSON.stringify(i.format())).join(", ");f(!1,`ambiguous function description (i.e. matches ${o})`,"key",t)}return a[0]}let s=this.#r.get(tt.from(t).format());return s||null}getFunctionName(t){let e=this.#s(t,null,!1);return f(e,"no matching function","key",t),e.name}hasFunction(t){return!!this.#s(t,null,!1)}getFunction(t,e){return this.#s(t,e||null,!0)}forEachFunction(t){let e=Array.from(this.#r.keys());e.sort((r,s)=>r.localeCompare(s));for(let r=0;r<e.length;r++){let s=e[r];t(this.#r.get(s),r)}}#a(t,e,r){if(U(t)){let a=t.toLowerCase();for(let o of this.#e.values())if(a===o.topicHash)return o;return null}if(t.indexOf("(")===-1){let a=[];for(let[o,i]of this.#e)o.split("(")[0]===t&&a.push(i);if(e){for(let o=a.length-1;o>=0;o--)a[o].inputs.length<e.length&&a.splice(o,1);for(let o=a.length-1;o>=0;o--){let i=a[o].inputs;for(let c=0;c<e.length;c++)if(O.isTyped(e[c])&&e[c].type!==i[c].baseType){a.splice(o,1);break}}}if(a.length===0)return null;if(a.length>1&&r){let o=a.map(i=>JSON.stringify(i.format())).join(", ");f(!1,`ambiguous event description (i.e. matches ${o})`,"key",t)}return a[0]}let s=this.#e.get(q.from(t).format());return s||null}getEventName(t){let e=this.#a(t,null,!1);return f(e,"no matching event","key",t),e.name}hasEvent(t){return!!this.#a(t,null,!1)}getEvent(t,e){return this.#a(t,e||null,!0)}forEachEvent(t){let e=Array.from(this.#e.keys());e.sort((r,s)=>r.localeCompare(s));for(let r=0;r<e.length;r++){let s=e[r];t(this.#e.get(s),r)}}getError(t,e){if(U(t)){let s=t.toLowerCase();if(Ys[s])return $.from(Ys[s].signature);for(let a of this.#t.values())if(s===a.selector)return a;return null}if(t.indexOf("(")===-1){let s=[];for(let[a,o]of this.#t)a.split("(")[0]===t&&s.push(o);if(s.length===0)return t==="Error"?$.from("error Error(string)"):t==="Panic"?$.from("error Panic(uint256)"):null;if(s.length>1){let a=s.map(o=>JSON.stringify(o.format())).join(", ");f(!1,`ambiguous error description (i.e. ${a})`,"name",t)}return s[0]}if(t=$.from(t).format(),t==="Error(string)")return $.from("error Error(string)");if(t==="Panic(uint256)")return $.from("error Panic(uint256)");let r=this.#t.get(t);return r||null}forEachError(t){let e=Array.from(this.#t.keys());e.sort((r,s)=>r.localeCompare(s));for(let r=0;r<e.length;r++){let s=e[r];t(this.#t.get(s),r)}}_decodeParams(t,e){return this.#n.decode(t,e)}_encodeParams(t,e){return this.#n.encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){if(typeof t=="string"){let r=this.getError(t);f(r,"unknown error","fragment",t),t=r}return f(yt(e,0,4)===t.selector,`data signature does not match error ${t.name}.`,"data",e),this._decodeParams(t.inputs,yt(e,4))}encodeErrorResult(t,e){if(typeof t=="string"){let r=this.getError(t);f(r,"unknown error","fragment",t),t=r}return at([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionData(t,e){if(typeof t=="string"){let r=this.getFunction(t);f(r,"unknown function","fragment",t),t=r}return f(yt(e,0,4)===t.selector,`data signature does not match function ${t.name}.`,"data",e),this._decodeParams(t.inputs,yt(e,4))}encodeFunctionData(t,e){if(typeof t=="string"){let r=this.getFunction(t);f(r,"unknown function","fragment",t),t=r}return at([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionResult(t,e){if(typeof t=="string"){let a=this.getFunction(t);f(a,"unknown function","fragment",t),t=a}let r="invalid length for result data",s=Z(e);if(s.length%32===0)try{return this.#n.decode(t.outputs,s)}catch{r="could not decode result data"}y(!1,r,"BAD_DATA",{value:P(s),info:{method:t.name,signature:t.format()}})}makeError(t,e){let r=_(t,"data"),s=Pt.getBuiltinCallException("call",e,r),a="execution reverted (unknown custom error)";if(s.message.startsWith(a)){let i=P(r.slice(0,4)),c=this.getError(i);if(c)try{let l=this.#n.decode(c.inputs,r.slice(4));s.revert={name:c.name,signature:c.format(),args:l},s.reason=s.revert.signature,s.message=`execution reverted: ${s.reason}`}catch{s.message="execution reverted (coult not decode custom error)"}}let o=this.parseTransaction(e);return o&&(s.invocation={method:o.name,signature:o.signature,args:o.args}),s}encodeFunctionResult(t,e){if(typeof t=="string"){let r=this.getFunction(t);f(r,"unknown function","fragment",t),t=r}return P(this.#n.encode(t.outputs,e||[]))}encodeFilterTopics(t,e){if(typeof t=="string"){let a=this.getEvent(t);f(a,"unknown event","eventFragment",t),t=a}y(e.length<=t.inputs.length,`too many arguments for ${t.format()}`,"UNEXPECTED_ARGUMENT",{count:e.length,expectedCount:t.inputs.length});let r=[];t.anonymous||r.push(t.topicHash);let s=(a,o)=>a.type==="string"?Lt(o):a.type==="bytes"?Q(P(o)):(a.type==="bool"&&typeof o=="boolean"?o=o?"0x01":"0x00":a.type.match(/^u?int/)?o=Fe(o):a.type.match(/^bytes/)?o=ur(o,32):a.type==="address"&&this.#n.encode(["address"],[o]),fe(P(o),32));for(e.forEach((a,o)=>{let i=t.inputs[o];if(!i.indexed){f(a==null,"cannot filter non-indexed parameters; must be null","contract."+i.name,a);return}a==null?r.push(null):i.baseType==="array"||i.baseType==="tuple"?f(!1,"filtering with tuples or arrays not supported","contract."+i.name,a):Array.isArray(a)?r.push(a.map(c=>s(i,c))):r.push(s(i,a))});r.length&&r[r.length-1]===null;)r.pop();return r}encodeEventLog(t,e){if(typeof t=="string"){let o=this.getEvent(t);f(o,"unknown event","eventFragment",t),t=o}let r=[],s=[],a=[];return t.anonymous||r.push(t.topicHash),f(e.length===t.inputs.length,"event arguments/values mismatch","values",e),t.inputs.forEach((o,i)=>{let c=e[i];if(o.indexed)if(o.type==="string")r.push(Lt(c));else if(o.type==="bytes")r.push(Q(c));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");r.push(this.#n.encode([o.type],[c]))}else s.push(o),a.push(c)}),{data:this.#n.encode(s,a),topics:r}}decodeEventLog(t,e,r){if(typeof t=="string"){let h=this.getEvent(t);f(h,"unknown event","eventFragment",t),t=h}if(r!=null&&!t.anonymous){let h=t.topicHash;f(U(r[0],32)&&r[0].toLowerCase()===h,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}let s=[],a=[],o=[];t.inputs.forEach((h,x)=>{h.indexed?h.type==="string"||h.type==="bytes"||h.baseType==="tuple"||h.baseType==="array"?(s.push(F.from({type:"bytes32",name:h.name})),o.push(!0)):(s.push(h),o.push(!1)):(a.push(h),o.push(!1))});let i=r!=null?this.#n.decode(s,at(r)):null,c=this.#n.decode(a,e,!0),l=[],u=[],d=0,p=0;return t.inputs.forEach((h,x)=>{let w=null;if(h.indexed)if(i==null)w=new Ce(null);else if(o[x])w=new Ce(i[p++]);else try{w=i[p++]}catch(A){w=A}else try{w=c[d++]}catch(A){w=A}l.push(w),u.push(h.name||null)}),z.fromItems(l,u)}parseTransaction(t){let e=_(t.data,"tx.data"),r=T(t.value!=null?t.value:0,"tx.value"),s=this.getFunction(P(e.slice(0,4)));if(!s)return null;let a=this.#n.decode(s.inputs,e.slice(4));return new je(s,s.selector,a,r)}parseCallResult(t){throw new Error("@TODO")}parseLog(t){let e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new $e(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){let e=P(t),r=this.getError(yt(e,0,4));if(!r)return null;let s=this.#n.decode(r.inputs,yt(e,4));return new We(r,r.selector,s)}static from(t){return t instanceof b?t:typeof t=="string"?new b(JSON.parse(t)):typeof t.formatJson=="function"?new b(t.formatJson()):typeof t.format=="function"?new b(t.format("json")):new b(t)}};var ta=BigInt(0);function fn(n){return n??null}function j(n){return n==null?null:n.toString()}function ea(n){let t={};n.to&&(t.to=n.to),n.from&&(t.from=n.from),n.data&&(t.data=P(n.data));let e="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let s of e)!(s in n)||n[s]==null||(t[s]=T(n[s],`request.${s}`));let r="type,nonce".split(/,/);for(let s of r)!(s in n)||n[s]==null||(t[s]=I(n[s],`request.${s}`));return n.accessList&&(t.accessList=Me(n.accessList)),"blockTag"in n&&(t.blockTag=n.blockTag),"enableCcipRead"in n&&(t.enableCcipRead=!!n.enableCcipRead),"customData"in n&&(t.customData=n.customData),"blobVersionedHashes"in n&&n.blobVersionedHashes&&(t.blobVersionedHashes=n.blobVersionedHashes.slice()),"kzg"in n&&(t.kzg=n.kzg),"blobs"in n&&n.blobs&&(t.blobs=n.blobs.map(s=>Xr(s)?P(s):Object.assign({},s))),t}var qs=class{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#t;constructor(t,e){this.#t=t.transactions.map(r=>typeof r!="string"?new Zt(r,e):r),C(this,{provider:e,hash:fn(t.hash),number:t.number,timestamp:t.timestamp,parentHash:t.parentHash,parentBeaconBlockRoot:t.parentBeaconBlockRoot,nonce:t.nonce,difficulty:t.difficulty,gasLimit:t.gasLimit,gasUsed:t.gasUsed,blobGasUsed:t.blobGasUsed,excessBlobGas:t.excessBlobGas,miner:t.miner,prevRandao:fn(t.prevRandao),extraData:t.extraData,baseFeePerGas:fn(t.baseFeePerGas),stateRoot:t.stateRoot,receiptsRoot:t.receiptsRoot})}get transactions(){return this.#t.map(t=>typeof t=="string"?t:t.hash)}get prefetchedTransactions(){let t=this.#t.slice();return t.length===0?[]:(y(typeof t[0]=="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),t)}toJSON(){let{baseFeePerGas:t,difficulty:e,extraData:r,gasLimit:s,gasUsed:a,hash:o,miner:i,prevRandao:c,nonce:l,number:u,parentHash:d,parentBeaconBlockRoot:p,stateRoot:h,receiptsRoot:x,timestamp:w,transactions:A}=this;return{_type:"Block",baseFeePerGas:j(t),difficulty:j(e),extraData:r,gasLimit:j(s),gasUsed:j(a),blobGasUsed:j(this.blobGasUsed),excessBlobGas:j(this.excessBlobGas),hash:o,miner:i,prevRandao:c,nonce:l,number:u,parentHash:d,timestamp:w,parentBeaconBlockRoot:p,stateRoot:h,receiptsRoot:x,transactions:A}}[Symbol.iterator](){let t=0,e=this.transactions;return{next:()=>t<this.length?{value:e[t++],done:!1}:{value:void 0,done:!0}}}get length(){return this.#t.length}get date(){return this.timestamp==null?null:new Date(this.timestamp*1e3)}async getTransaction(t){let e;if(typeof t=="number")e=this.#t[t];else{let r=t.toLowerCase();for(let s of this.#t)if(typeof s=="string"){if(s!==r)continue;e=s;break}else{if(s.hash===r)continue;e=s;break}}if(e==null)throw new Error("no such tx");return typeof e=="string"?await this.provider.getTransaction(e):e}getPrefetchedTransaction(t){let e=this.prefetchedTransactions;if(typeof t=="number")return e[t];t=t.toLowerCase();for(let r of e)if(r.hash===t)return r;f(!1,"no matching transaction","indexOrHash",t)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return go(this)}},Ht=class{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(t,e){this.provider=e;let r=Object.freeze(t.topics.slice());C(this,{transactionHash:t.transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,removed:t.removed,address:t.address,data:t.data,topics:r,index:t.index,transactionIndex:t.transactionIndex})}toJSON(){let{address:t,blockHash:e,blockNumber:r,data:s,index:a,removed:o,topics:i,transactionHash:c,transactionIndex:l}=this;return{_type:"log",address:t,blockHash:e,blockNumber:r,data:s,index:a,removed:o,topics:i,transactionHash:c,transactionIndex:l}}async getBlock(){let t=await this.provider.getBlock(this.blockHash);return y(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransaction(){let t=await this.provider.getTransaction(this.transactionHash);return y(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransactionReceipt(){let t=await this.provider.getTransactionReceipt(this.transactionHash);return y(!!t,"failed to find transaction receipt","UNKNOWN_ERROR",{}),t}removedEvent(){return yo(this)}},Or=class{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#t;constructor(t,e){this.#t=Object.freeze(t.logs.map(s=>new Ht(s,e)));let r=ta;t.effectiveGasPrice!=null?r=t.effectiveGasPrice:t.gasPrice!=null&&(r=t.gasPrice),C(this,{provider:e,to:t.to,from:t.from,contractAddress:t.contractAddress,hash:t.hash,index:t.index,blockHash:t.blockHash,blockNumber:t.blockNumber,logsBloom:t.logsBloom,gasUsed:t.gasUsed,cumulativeGasUsed:t.cumulativeGasUsed,blobGasUsed:t.blobGasUsed,gasPrice:r,blobGasPrice:t.blobGasPrice,type:t.type,status:t.status,root:t.root})}get logs(){return this.#t}toJSON(){let{to:t,from:e,contractAddress:r,hash:s,index:a,blockHash:o,blockNumber:i,logsBloom:c,logs:l,status:u,root:d}=this;return{_type:"TransactionReceipt",blockHash:o,blockNumber:i,contractAddress:r,cumulativeGasUsed:j(this.cumulativeGasUsed),from:e,gasPrice:j(this.gasPrice),blobGasUsed:j(this.blobGasUsed),blobGasPrice:j(this.blobGasPrice),gasUsed:j(this.gasUsed),hash:s,index:a,logs:l,logsBloom:c,root:d,status:u,to:t}}get length(){return this.logs.length}[Symbol.iterator](){let t=0;return{next:()=>t<this.length?{value:this.logs[t++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let t=await this.provider.getBlock(this.blockHash);if(t==null)throw new Error("TODO");return t}async getTransaction(){let t=await this.provider.getTransaction(this.hash);if(t==null)throw new Error("TODO");return t}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return na(this)}reorderedEvent(t){return y(!t||t.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),ra(this,t)}},Zt=class{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;#t;constructor(t,e){this.provider=e,this.blockNumber=t.blockNumber!=null?t.blockNumber:null,this.blockHash=t.blockHash!=null?t.blockHash:null,this.hash=t.hash,this.index=t.index,this.type=t.type,this.from=t.from,this.to=t.to||null,this.gasLimit=t.gasLimit,this.nonce=t.nonce,this.data=t.data,this.value=t.value,this.gasPrice=t.gasPrice,this.maxPriorityFeePerGas=t.maxPriorityFeePerGas!=null?t.maxPriorityFeePerGas:null,this.maxFeePerGas=t.maxFeePerGas!=null?t.maxFeePerGas:null,this.maxFeePerBlobGas=t.maxFeePerBlobGas!=null?t.maxFeePerBlobGas:null,this.chainId=t.chainId,this.signature=t.signature,this.accessList=t.accessList!=null?t.accessList:null,this.blobVersionedHashes=t.blobVersionedHashes!=null?t.blobVersionedHashes:null,this.#t=-1}toJSON(){let{blockNumber:t,blockHash:e,index:r,hash:s,type:a,to:o,from:i,nonce:c,data:l,signature:u,accessList:d,blobVersionedHashes:p}=this;return{_type:"TransactionResponse",accessList:d,blockNumber:t,blockHash:e,blobVersionedHashes:p,chainId:j(this.chainId),data:l,from:i,gasLimit:j(this.gasLimit),gasPrice:j(this.gasPrice),hash:s,maxFeePerGas:j(this.maxFeePerGas),maxPriorityFeePerGas:j(this.maxPriorityFeePerGas),maxFeePerBlobGas:j(this.maxFeePerBlobGas),nonce:c,signature:u,to:o,index:r,type:a,value:j(this.value)}}async getBlock(){let t=this.blockNumber;if(t==null){let r=await this.getTransaction();r&&(t=r.blockNumber)}if(t==null)return null;let e=this.provider.getBlock(t);if(e==null)throw new Error("TODO");return e}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:e,blockNumber:r}=await de({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return e==null||e.blockNumber==null?0:r-e.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(t,e){let r=t??1,s=e??0,a=this.#t,o=-1,i=a===-1,c=async()=>{if(i)return null;let{blockNumber:p,nonce:h}=await de({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(h<this.nonce){a=p;return}if(i)return null;let x=await this.getTransaction();if(!(x&&x.blockNumber!=null))for(o===-1&&(o=a-3,o<this.#t&&(o=this.#t));o<=p;){if(i)return null;let w=await this.provider.getBlock(o,!0);if(w==null)return;for(let A of w)if(A===this.hash)return;for(let A=0;A<w.length;A++){let k=await w.getTransaction(A);if(k.from===this.from&&k.nonce===this.nonce){if(i)return null;let N=await this.provider.getTransactionReceipt(k.hash);if(N==null||p-N.blockNumber+1<r)return;let L="replaced";k.data===this.data&&k.to===this.to&&k.value===this.value?L="repriced":k.data==="0x"&&k.from===k.to&&k.value===ta&&(L="cancelled"),y(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:L==="replaced"||L==="cancelled",reason:L,replacement:k.replaceableTransaction(a),hash:k.hash,receipt:N})}}o++}},l=p=>{if(p==null||p.status!==0)return p;y(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:p.to,from:p.from,data:""},receipt:p})},u=await this.provider.getTransactionReceipt(this.hash);if(r===0)return l(u);if(u){if(await u.confirmations()>=r)return l(u)}else if(await c(),r===0)return null;return await new Promise((p,h)=>{let x=[],w=()=>{x.forEach(k=>k())};if(x.push(()=>{i=!0}),s>0){let k=setTimeout(()=>{w(),h(Et("wait for transaction timeout","TIMEOUT"))},s);x.push(()=>{clearTimeout(k)})}let A=async k=>{if(await k.confirmations()>=r){w();try{p(l(k))}catch(N){h(N)}}};if(x.push(()=>{this.provider.off(this.hash,A)}),this.provider.on(this.hash,A),a>=0){let k=async()=>{try{await c()}catch(N){if(gt(N,"TRANSACTION_REPLACED")){w(),h(N);return}}i||this.provider.once("block",k)};x.push(()=>{this.provider.off("block",k)}),this.provider.once("block",k)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return y(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),na(this)}reorderedEvent(t){return y(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),y(!t||t.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),ra(this,t)}replaceableTransaction(t){f(Number.isInteger(t)&&t>=0,"invalid startBlock","startBlock",t);let e=new Zt(this,this.provider);return e.#t=t,e}};function go(n){return{orphan:"drop-block",hash:n.hash,number:n.number}}function ra(n,t){return{orphan:"reorder-transaction",tx:n,other:t}}function na(n){return{orphan:"drop-transaction",tx:n}}function yo(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}}}var Yt=class extends Ht{interface;fragment;args;constructor(t,e,r){super(t,t.provider);let s=e.decodeEventLog(r,t.data,t.topics);C(this,{args:s,fragment:r,interface:e})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}},we=class extends Ht{error;constructor(t,e){super(t,t.provider),C(this,{error:e})}},Nr=class extends Or{#t;constructor(t,e,r){super(r,e),this.#t=t}get logs(){return super.logs.map(t=>{let e=t.topics.length?this.#t.getEvent(t.topics[0]):null;if(e)try{return new Yt(t,this.#t,e)}catch(r){return new we(t,r)}return t})}},Qt=class extends Zt{#t;constructor(t,e,r){super(r,e),this.#t=t}async wait(t,e){let r=await super.wait(t,e);return r==null?null:new Nr(this.#t,this.provider,r)}},Te=class extends Le{log;constructor(t,e,r,s){super(t,e,r),C(this,{log:s})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}},ze=class extends Te{constructor(t,e,r,s,a){super(t,e,r,new Yt(a,t.interface,s));let o=t.interface.decodeEventLog(s,this.log.data,this.log.topics);C(this,{args:o,fragment:s})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}};var sa=BigInt(0);function oa(n){return n&&typeof n.call=="function"}function ia(n){return n&&typeof n.estimateGas=="function"}function Fr(n){return n&&typeof n.resolveName=="function"}function ca(n){return n&&typeof n.sendTransaction=="function"}function la(n){if(n!=null){if(Fr(n))return n;if(n.provider)return n.provider}}var hn=class{#t;fragment;constructor(t,e,r){if(C(this,{fragment:e}),e.inputs.length<r.length)throw new Error("too many arguments");let s=te(t.runner,"resolveName"),a=Fr(s)?s:null;this.#t=async function(){let o=await Promise.all(e.inputs.map((i,c)=>r[c]==null?null:i.walkAsync(r[c],(u,d)=>u==="address"?Array.isArray(d)?Promise.all(d.map(p=>zt(p,a))):zt(d,a):d)));return t.interface.encodeFilterTopics(e,o)}()}getTopicFilter(){return this.#t}};function te(n,t){return n==null?null:typeof n[t]=="function"?n:n.provider&&typeof n.provider[t]=="function"?n.provider:null}function qt(n){return n==null?null:n.provider||null}async function ua(n,t){let e=O.dereference(n,"overrides");f(typeof e=="object","invalid overrides parameter","overrides",n);let r=ea(e);return f(r.to==null||(t||[]).indexOf("to")>=0,"cannot override to","overrides.to",r.to),f(r.data==null||(t||[]).indexOf("data")>=0,"cannot override data","overrides.data",r.data),r.from&&(r.from=r.from),r}async function bo(n,t,e){let r=te(n,"resolveName"),s=Fr(r)?r:null;return await Promise.all(t.map((a,o)=>a.walkAsync(e[o],(i,c)=>(c=O.dereference(c,i),i==="address"?zt(c,s):c))))}function xo(n){let t=async function(o){let i=await ua(o,["data"]);i.to=await n.getAddress(),i.from&&(i.from=await zt(i.from,la(n.runner)));let c=n.interface,l=T(i.value||sa,"overrides.value")===sa,u=(i.data||"0x")==="0x";c.fallback&&!c.fallback.payable&&c.receive&&!u&&!l&&f(!1,"cannot send data to receive or send value to non-payable fallback","overrides",o),f(c.fallback||u,"cannot send data to receive-only contract","overrides.data",i.data);let d=c.receive||c.fallback&&c.fallback.payable;return f(d||l,"cannot send value to non-payable fallback","overrides.value",i.value),f(c.fallback||u,"cannot send data to receive-only contract","overrides.data",i.data),i},e=async function(o){let i=te(n.runner,"call");y(oa(i),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let c=await t(o);try{return await i.call(c)}catch(l){throw cr(l)&&l.data?n.interface.makeError(l.data,c):l}},r=async function(o){let i=n.runner;y(ca(i),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let c=await i.sendTransaction(await t(o)),l=qt(n.runner);return new Qt(n.interface,l,c)},s=async function(o){let i=te(n.runner,"estimateGas");return y(ia(i),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await i.estimateGas(await t(o))},a=async o=>await r(o);return C(a,{_contract:n,estimateGas:s,populateTransaction:t,send:r,staticCall:e}),a}function Co(n,t){let e=function(...l){let u=n.interface.getFunction(t,l);return y(u,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t,args:l}}),u},r=async function(...l){let u=e(...l),d={};if(u.inputs.length+1===l.length&&(d=await ua(l.pop()),d.from&&(d.from=await zt(d.from,la(n.runner)))),u.inputs.length!==l.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");let p=await bo(n.runner,u.inputs,l);return Object.assign({},d,await de({to:n.getAddress(),data:n.interface.encodeFunctionData(u,p)}))},s=async function(...l){let u=await i(...l);return u.length===1?u[0]:u},a=async function(...l){let u=n.runner;y(ca(u),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let d=await u.sendTransaction(await r(...l)),p=qt(n.runner);return new Qt(n.interface,p,d)},o=async function(...l){let u=te(n.runner,"estimateGas");return y(ia(u),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await u.estimateGas(await r(...l))},i=async function(...l){let u=te(n.runner,"call");y(oa(u),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let d;try{d=await r(...l)}catch(x){let w=l.at(-1).blockTag;throw w&&(x.blockNumber=w),x}let p="0x";try{p=await u.call(d)}catch(x){throw cr(x)&&x.data?n.interface.makeError(x.data,d):x}let h=e(...l);return n.interface.decodeFunctionResult(h,p)},c=async(...l)=>e(...l).constant?await s(...l):await a(...l);return C(c,{name:n.interface.getFunctionName(t),_contract:n,_key:t,getFragment:e,estimateGas:o,populateTransaction:r,send:a,staticCall:s,staticCallResult:i}),Object.defineProperty(c,"fragment",{configurable:!1,enumerable:!0,get:()=>{let l=n.interface.getFunction(t);return y(l,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t}}),l}}),c}function wo(n,t){let e=function(...s){let a=n.interface.getEvent(t,s);return y(a,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t,args:s}}),a},r=function(...s){return new hn(n,e(...s),s)};return C(r,{name:n.interface.getEventName(t),_contract:n,_key:t,getFragment:e}),Object.defineProperty(r,"fragment",{configurable:!1,enumerable:!0,get:()=>{let s=n.interface.getEvent(t);return y(s,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t}}),s}}),r}var Sr=Symbol.for("_ethersInternal_contract"),da=new WeakMap;function To(n,t){da.set(n[Sr],t)}function it(n){return da.get(n[Sr])}function Eo(n){return n&&typeof n=="object"&&"getTopicFilter"in n&&typeof n.getTopicFilter=="function"&&n.fragment}async function yn(n,t){let e,r=null;if(Array.isArray(t)){let a=function(o){if(U(o,32))return o;let i=n.interface.getEvent(o);return f(i,"unknown fragment","name",o),i.topicHash};e=t.map(o=>o==null?null:Array.isArray(o)?o.map(a):a(o))}else t==="*"?e=[null]:typeof t=="string"?U(t,32)?e=[t]:(r=n.interface.getEvent(t),f(r,"unknown fragment","event",t),e=[r.topicHash]):Eo(t)?e=await t.getTopicFilter():"fragment"in t?(r=t.fragment,e=[r.topicHash]):f(!1,"unknown event name","event",t);e=e.map(a=>{if(a==null)return null;if(Array.isArray(a)){let o=Array.from(new Set(a.map(i=>i.toLowerCase())).values());return o.length===1?o[0]:(o.sort(),o)}return a.toLowerCase()});let s=e.map(a=>a==null?"null":Array.isArray(a)?a.join("|"):a).join("&");return{fragment:r,tag:s,topics:e}}async function Je(n,t){let{subs:e}=it(n);return e.get((await yn(n,t)).tag)||null}async function aa(n,t,e){let r=qt(n.runner);y(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:t});let{fragment:s,tag:a,topics:o}=await yn(n,e),{addr:i,subs:c}=it(n),l=c.get(a);if(!l){let d={address:i||n,topics:o},p=A=>{let k=s;if(k==null)try{k=n.interface.getEvent(A.topics[0])}catch{}if(k){let N=k,L=s?n.interface.decodeEventLog(s,A.data,A.topics):[];gn(n,e,L,le=>new ze(n,le,e,N,A))}else gn(n,e,[],N=>new Te(n,N,e,A))},h=[];l={tag:a,listeners:[],start:()=>{h.length||h.push(r.on(d,p))},stop:async()=>{if(h.length==0)return;let A=h;h=[],await Promise.all(A),r.off(d,p)}},c.set(a,l)}return l}var mn=Promise.resolve();async function ko(n,t,e,r){await mn;let s=await Je(n,t);if(!s)return!1;let a=s.listeners.length;return s.listeners=s.listeners.filter(({listener:o,once:i})=>{let c=Array.from(e);r&&c.push(r(i?null:o));try{o.call(n,...c)}catch{}return!i}),s.listeners.length===0&&(s.stop(),it(n).subs.delete(s.tag)),a>0}async function gn(n,t,e,r){try{await mn}catch{}let s=ko(n,t,e,r);return mn=s,await s}var Br=["then"],ft=class{target;interface;runner;filters;[Sr];fallback;constructor(t,e,r,s){f(typeof t=="string"||xr(t),"invalid value for Contract target","target",t),r==null&&(r=null);let a=b.from(e);C(this,{target:t,runner:r,interface:a}),Object.defineProperty(this,Sr,{value:{}});let o,i=null,c=null;if(s){let d=qt(r);c=new Qt(this.interface,d,s)}let l=new Map;if(typeof t=="string")if(U(t))i=t,o=Promise.resolve(t);else{let d=te(r,"resolveName");if(!Fr(d))throw Et("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});o=d.resolveName(t).then(p=>{if(p==null)throw Et("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:t});return it(this).addr=p,p})}else o=t.getAddress().then(d=>{if(d==null)throw new Error("TODO");return it(this).addr=d,d});To(this,{addrPromise:o,addr:i,deployTx:c,subs:l});let u=new Proxy({},{get:(d,p,h)=>{if(typeof p=="symbol"||Br.indexOf(p)>=0)return Reflect.get(d,p,h);try{return this.getEvent(p)}catch(x){if(!gt(x,"INVALID_ARGUMENT")||x.argument!=="key")throw x}},has:(d,p)=>Br.indexOf(p)>=0?Reflect.has(d,p):Reflect.has(d,p)||this.interface.hasEvent(String(p))});return C(this,{filters:u}),C(this,{fallback:a.receive||a.fallback?xo(this):null}),new Proxy(this,{get:(d,p,h)=>{if(typeof p=="symbol"||p in d||Br.indexOf(p)>=0)return Reflect.get(d,p,h);try{return d.getFunction(p)}catch(x){if(!gt(x,"INVALID_ARGUMENT")||x.argument!=="key")throw x}},has:(d,p)=>typeof p=="symbol"||p in d||Br.indexOf(p)>=0?Reflect.has(d,p):d.interface.hasFunction(p)})}connect(t){return new ft(this.target,this.interface,t)}attach(t){return new ft(t,this.interface,this.runner)}async getAddress(){return await it(this).addrPromise}async getDeployedCode(){let t=qt(this.runner);y(t,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});let e=await t.getCode(await this.getAddress());return e==="0x"?null:e}async waitForDeployment(){let t=this.deploymentTransaction();if(t)return await t.wait(),this;if(await this.getDeployedCode()!=null)return this;let r=qt(this.runner);return y(r!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((s,a)=>{let o=async()=>{try{if(await this.getDeployedCode()!=null)return s(this);r.once("block",o)}catch(i){a(i)}};o()})}deploymentTransaction(){return it(this).deployTx}getFunction(t){return typeof t!="string"&&(t=t.format()),Co(this,t)}getEvent(t){return typeof t!="string"&&(t=t.format()),wo(this,t)}async queryTransaction(t){throw new Error("@TODO")}async queryFilter(t,e,r){e==null&&(e=0),r==null&&(r="latest");let{addr:s,addrPromise:a}=it(this),o=s||await a,{fragment:i,topics:c}=await yn(this,t),l={address:o,topics:c,fromBlock:e,toBlock:r},u=qt(this.runner);return y(u,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await u.getLogs(l)).map(d=>{let p=i;if(p==null)try{p=this.interface.getEvent(d.topics[0])}catch{}if(p)try{return new Yt(d,this.interface,p)}catch(h){return new we(d,h)}return new Ht(d,u)})}async on(t,e){let r=await aa(this,"on",t);return r.listeners.push({listener:e,once:!1}),r.start(),this}async once(t,e){let r=await aa(this,"once",t);return r.listeners.push({listener:e,once:!0}),r.start(),this}async emit(t,...e){return await gn(this,t,e,null)}async listenerCount(t){if(t){let s=await Je(this,t);return s?s.listeners.length:0}let{subs:e}=it(this),r=0;for(let{listeners:s}of e.values())r+=s.length;return r}async listeners(t){if(t){let s=await Je(this,t);return s?s.listeners.map(({listener:a})=>a):[]}let{subs:e}=it(this),r=[];for(let{listeners:s}of e.values())r=r.concat(s.map(({listener:a})=>a));return r}async off(t,e){let r=await Je(this,t);if(!r)return this;if(e){let s=r.listeners.map(({listener:a})=>a).indexOf(e);s>=0&&r.listeners.splice(s,1)}return(e==null||r.listeners.length===0)&&(r.stop(),it(this).subs.delete(r.tag)),this}async removeAllListeners(t){if(t){let e=await Je(this,t);if(!e)return this;e.stop(),it(this).subs.delete(e.tag)}else{let{subs:e}=it(this);for(let{tag:r,stop:s}of e.values())s(),e.delete(r)}return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return await this.off(t,e)}static buildClass(t){class e extends ft{constructor(s,a=null){super(s,t,a)}}return e}static from(t,e,r){return r==null&&(r=null),new this(t,e,r)}};function vo(){return ft}var K=class extends vo(){};var pa=BigInt(0);function E(n,t){return function(e){return e==null?t:n(e)}}function Ee(n,t){return e=>{if(t&&e==null)return null;if(!Array.isArray(e))throw new Error("not an array");return e.map(r=>n(r))}}function ee(n,t){return e=>{let r={};for(let s in n){let a=s;if(t&&s in t&&!(a in e)){for(let o of t[s])if(o in e){a=o;break}}try{let o=n[s](e[a]);o!==void 0&&(r[s]=o)}catch(o){let i=o instanceof Error?o.message:"not-an-error";y(!1,`invalid value for value.${s} (${i})`,"BAD_DATA",{value:e})}}return r}}function Po(n){switch(n){case!0:case"true":return!0;case!1:case"false":return!1}f(!1,`invalid boolean; ${JSON.stringify(n)}`,"value",n)}function Vt(n){return f(U(n,!0),"invalid data","value",n),n}function G(n){return f(U(n,32),"invalid hash","value",n),n}var Io=ee({address:S,blockHash:G,blockNumber:I,data:Vt,index:I,removed:E(Po,!1),topics:Ee(G),transactionHash:G,transactionIndex:I},{index:["logIndex"]});function fa(n){return Io(n)}var Ao=ee({hash:E(G),parentHash:G,parentBeaconBlockRoot:E(G,null),number:I,timestamp:I,nonce:E(Vt),difficulty:T,gasLimit:T,gasUsed:T,stateRoot:E(G,null),receiptsRoot:E(G,null),blobGasUsed:E(T,null),excessBlobGas:E(T,null),miner:E(S),prevRandao:E(G,null),extraData:Vt,baseFeePerGas:E(T)},{prevRandao:["mixHash"]});function ha(n){let t=Ao(n);return t.transactions=n.transactions.map(e=>typeof e=="string"?e:xn(e)),t}var Ro=ee({transactionIndex:I,blockNumber:I,transactionHash:G,address:S,topics:Ee(G),data:Vt,index:I,blockHash:G},{index:["logIndex"]});function bn(n){return Ro(n)}var fu=ee({to:E(S,null),from:E(S,null),contractAddress:E(S,null),index:I,root:E(P),gasUsed:T,blobGasUsed:E(T,null),logsBloom:E(Vt),blockHash:G,hash:G,logs:Ee(bn),blockNumber:I,cumulativeGasUsed:T,effectiveGasPrice:E(T),blobGasPrice:E(T,null),status:E(I),type:E(I,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function xn(n){n.to&&T(n.to)===pa&&(n.to="0x0000000000000000000000000000000000000000");let t=ee({hash:G,index:E(I,void 0),type:e=>e==="0x"||e==null?0:I(e),accessList:E(Me,null),blobVersionedHashes:E(Ee(G,!0),null),blockHash:E(G,null),blockNumber:E(I,null),transactionIndex:E(I,null),from:S,gasPrice:E(T),maxPriorityFeePerGas:E(T),maxFeePerGas:E(T),maxFeePerBlobGas:E(T,null),gasLimit:T,to:E(S,null),value:T,nonce:I,data:Vt,creates:E(S,null),chainId:E(T,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(n);if(t.to==null&&t.creates==null&&(t.creates=on(t)),(n.type===1||n.type===2)&&n.accessList==null&&(t.accessList=[]),n.signature?t.signature=J.from(n.signature):t.signature=J.from(n),t.chainId==null){let e=t.signature.legacyChainId;e!=null&&(t.chainId=e)}return t.blockHash&&T(t.blockHash)===pa&&(t.blockHash=null),t}import{AsyncLocalStorage as Do}from"async_hooks";import{processMetrics as Oo}from"@sentio/runtime";var Ut=class extends Gn{chainId;address;log;block;trace;blockNumber;transactionHash;transaction;transactionReceipt;timestamp;preparedData;constructor(t,e,r,s,a,o,i,c,l,u){super(l),this.chainId=t,this.log=a,this.block=s,this.trace=o,this.address=e.toLowerCase(),this.transaction=i,this.transactionReceipt=c,this.timestamp=r||new Date(0),this.preparedData=u,a?(this.blockNumber=a.blockNumber,this.transactionHash=a.transactionHash):s?this.blockNumber=s.number:o&&(this.blockNumber=o.blockNumber,this.transactionHash=o.transactionHash)}getChainId(){return this.chainId}getMetaDataInternal(t,e){if(this.log)return{address:this.address,contractName:this.getContractName(),blockNumber:BigInt(this.blockNumber),transactionIndex:this.log.transactionIndex,transactionHash:this.transactionHash||"",logIndex:this.log.index,chainId:this.chainId,name:t,labels:Oe(e)};if(this.trace)return{address:this.address,contractName:this.getContractName(),blockNumber:BigInt(this.blockNumber),transactionIndex:this.trace.transactionPosition,transactionHash:this.transactionHash||"",logIndex:-1,chainId:this.chainId.toString(),name:t,labels:Oe(e)};if(this.transaction)return{address:this.address,contractName:this.getContractName(),blockNumber:BigInt(this.blockNumber),transactionIndex:this.transaction.index||0,transactionHash:this.transaction.hash||"",logIndex:-1,chainId:this.chainId.toString(),name:t,labels:Oe(e)};if(this.block)return{address:this.address,contractName:this.getContractName(),blockNumber:BigInt(this.blockNumber),transactionIndex:-1,transactionHash:"",logIndex:-1,chainId:this.chainId.toString(),name:t,labels:Oe(e)};throw new Error("Invaid ctx argument can't happen")}},ke=class extends Ut{getContractName(){return"account"}},xt=class extends Ut{constructor(t,e,r,s,a,o,i,c,l,u){super(t,e,r,s,a,o,i,c,l,u)}getContractName(){return"*"}getMetaDataInternal(t,e){let r=this.address;this.address="*";let s=super.getMetaDataInternal(t,e);return this.address=r,s}},Ct=class extends Ut{contract;contractName;constructor(t,e,r,s,a,o,i,c,l,u,d){super(r,e.address,s,a,o,i,c,l,u,d),e.context=this,e.callStatic&&(e.callStatic.context=this),e.encodeCall&&(e.encodeCall.context=this),this.contractName=t,this.contract=e}getContractName(){return this.contractName}},It=class{contract;constructor(t){this.contract=new Proxy(t,{get:(e,r,s)=>(r=="getFunction"&&Oo.process_ethcall_count.add(1),Reflect.get(e,r,s))})}get rawContract(){return this.contract}get provider(){if(this.contract.runner?.provider)return this.contract.runner.provider;throw Error("Can't find provider for contract"+this.contract.toString())}},At=class{view;address;context;callStatic;encodeCall;constructor(t,e){this.address=t,this.view=e}get rawContract(){return this.view.rawContract}get provider(){return this.view.provider}get filters(){return this.view.rawContract.filters}};import("process").then(n=>n.stdout.write(""));var D=Tt(Jr(),1);var Ke=class extends Error{e;constructor(t,e,r){super(t),this.stack=r}toString(){return this.message+`
|
|
3
3
|
`+this.stack?.toString()}};function g(n,t,e){if(n instanceof Ke)return n;let r="Check here for possible cause and fix: https://docs.sentio.xyz/docs/handling-errors#ethers-error",s="",a=n;return a.code==="CALL_EXCEPTION"||a.code==="BAD_DATA"?a.data==="0x"?(t?s=`jsonrpc eth_call return '0x' (likely contract not existed) at chain ${t.chainId}, ${r}:
|
|
4
4
|
${n.message}`:s=`jsonrpc eth_call return '0x' (likely contract not existed), ${r}:
|
|
5
5
|
${n.message}`,new Ke(s,a,e)):new Ke(`eth call error ${a.message}, ${r}:
|
|
6
6
|
${JSON.stringify(a)}`,a,e):(s="other error during call error ${e.message}\n"+JSON.stringify(n)+`
|
|
7
7
|
`+e?.toString()+`
|
|
8
|
-
`+r,new Error(s))}function ve(n){let t=[];for(let[e,r]of n.fragment.inputs.entries())r.name===""?t.push("arg"+e):t.push(r.name);return z.fromItems(Array.from(n.args.values()),t)}var Ro=ee({to:E(S,null),from:E(S,null),contractAddress:E(S,null),index:I,root:E(P),gasUsed:T,logsBloom:E(Vt),blockHash:G,hash:G,logs:E(Ee(gn)),blockNumber:I,cumulativeGasUsed:T,effectiveGasPrice:E(T),gasPrice:E(T),status:E(I),type:E(I,0)},{hash:["transactionHash"],index:["transactionIndex"]});function fa(n){return Ro(n)}function X(n){let t=n.log?da(n.log):void 0;n.block&&!n.block.transactions&&(n.block.transactions=[]);let e=n.block?Oo(n.block):void 0,r=n.trace?n.trace:void 0,s;n.transaction&&(n.transaction.v||(n.transaction.v="0x1c",n.transaction.r="0x88ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0",n.transaction.s="0x45e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33a"),s=yn(n.transaction));let a=n.transactionReceipt?fa(n.transactionReceipt):void 0;return{log:t,block:e,trace:r,transaction:s,transactionReceipt:a}}function Oo(n){return n={...n,...pa(n)},n.transactionReceipts&&(n.transactionReceipts=n.transactionReceipts.map(t=>fa(t))),n}function Au(n){try{return S(n)==="0x0000000000000000000000000000000000000000"}catch{return!1}}function Pe(n){return n==="*"?n:S(n).toLowerCase()}import("process").then(n=>n.stdout.write(""));var ha=Tt(Ta(),1),bn=Tt(Ne(),1);import{ListStateStorage as No}from"@sentio/runtime";var R=()=>({ethCallParams:[]});var xn=class extends No{},Ie=xn;H(Ie,"INSTANCE",new xn);var Xe=class{config;blockHandlers=[];transactionHandler=[];traceHandlers=[];static bind(t){let e=new Xe(t);return Ie.INSTANCE.addValue(e),e}constructor(t){this.config={address:"*",name:t.name||"Global",network:t.network||bn.EthChainId.ETHEREUM,startBlock:0n},t.startBlock&&(this.config.startBlock=BigInt(t.startBlock)),t.endBlock&&(this.config.endBlock=BigInt(t.endBlock))}onBlockInterval(t,e=250,r=1e3,s,a=R){return this.onInterval(t,void 0,{recentInterval:e,backfillInterval:r},s,a)}onTimeInterval(t,e=60,r=240,s,a=R){return this.onInterval(t,{recentInterval:e,backfillInterval:r},void 0,s,a)}getChainId(){return this.config.network}onInterval(t,e,r,s,a=R){let o=this.getChainId();e&&e.backfillInterval<e.recentInterval&&(e.backfillInterval=e.recentInterval);let i=this;return this.blockHandlers.push({handler:async function(c){let{block:l}=X(c);if(!l)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Block is empty");let u=new xt(o,"*",new Date(l.timestamp*1e3),l,void 0,void 0,void 0,void 0,i.config.baseLabels);return await t(l,u),u.stopAndGetResult()},preprocessHandler:async function(c,l){let{block:u}=X(c);if(!u)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Block is empty");let d=new xt(o,"*",new Date(u.timestamp*1e3),u,void 0,void 0,void 0,void 0,i.config.baseLabels);return a(u,d,l)},timeIntervalInMinutes:e,blockInterval:r,fetchConfig:st.fromPartial(s||{})}),this}onTransaction(t,e,r=R){let s=this.getChainId(),a=this;return this.transactionHandler.push({handler:async function(o){let{trace:i,block:c,transaction:l,transactionReceipt:u}=X(o);if(!l)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"transaction is empty");let d=l.to;d===i?.action.from&&(d="*");let p=new xt(s,d||"*",o.timestamp,c,void 0,i,l,u,a.config.baseLabels);return await t(l,p),p.stopAndGetResult()},preprocessHandler:async function(o,i){let{trace:c,block:l,transaction:u,transactionReceipt:d}=X(o);if(!u)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"transaction is empty");let p=u.to;p===c?.action.from&&(p="*");let h=new xt(s,p||"*",o.timestamp,l,void 0,c,u,d,a.config.baseLabels);return r(u,h,i)},fetchConfig:st.fromPartial(e||{})}),this}onTrace(t,e,r,s=R){let a=this.getChainId();typeof t=="string"&&(t=[t]);for(let i of t)if(i.length<=2)throw new Error("Invalid signature length, must start with 0x");let o=this;return this.traceHandlers.push({signatures:t,fetchConfig:st.fromPartial(r||{}),handler:async function(i){let{trace:c,block:l,transaction:u,transactionReceipt:d}=X(i);if(!c)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace is null");let p=new xt(a,c.action.to||"*",i.timestamp,l,void 0,c,u,d,o.config.baseLabels);return await e(c,p),p.stopAndGetResult()},preprocessHandler:async function(i,c){let{trace:l,block:u,transaction:d,transactionReceipt:p}=X(i);if(!l)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace is null");let h=new xt(a,l.action.to||"*",i.timestamp,u,void 0,l,d,p,o.config.baseLabels);return s(l,h,c)}}),this}},Rt=class{blockHandlers=[];eventHandlers=[];traceHandlers=[];config;constructor(t){this.config={address:t.address,name:t.name||"",network:t.network||bn.EthChainId.ETHEREUM,startBlock:0n,baseLabels:t.baseLabels},t.startBlock&&(this.config.startBlock=BigInt(t.startBlock)),t.endBlock&&(this.config.endBlock=BigInt(t.endBlock))}getChainId(){return this.config.network}onEvent(t,e,r=R){let s=[],a=this.CreateBoundContractView();for(let o of a.rawContract.interface.fragments)if(o.type==="event"){let i=a.rawContract.filters[o.format()];s.push(i())}return this.onEthEvent(t,s,e,r)}onEthEvent(t,e,r,s=R){let a=this.getChainId(),o=[];Array.isArray(e)?o=e:o.push(e);let i=this.config.name,c=this;return this.eventHandlers.push({filters:o,fetchConfig:st.fromPartial(r||{}),handler:async function(l,u){let{log:d,block:p,transaction:h,transactionReceipt:x}=X(l);if(!d)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Log is empty");let w;try{w=c.CreateBoundContractView()}catch(L){throw L}c.config.address==="*"&&(w.address=d.address);let A=new Ct(i,w,a,l.timestamp,p,d,void 0,h,x,c.config.baseLabels,u),k=d,N=null;try{N=w.rawContract.interface.parseLog(k)}catch(L){if(L instanceof Error&&L.message.includes("data out-of-bounds"))return console.error("Can't decode",d,"may because of incompatible ABIs, e.g. string vs indexed string",L),ue.fromPartial({});throw L}if(N){let L={...d,name:N.name,args:ve(N)};return await t(L,A),A.stopAndGetResult()}return ue.fromPartial({})},preprocessHandler:async function(l,u){let{log:d,block:p,transaction:h,transactionReceipt:x}=X(l);if(!d)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Log is empty");let w;try{w=c.CreateBoundContractView()}catch(L){throw L}c.config.address==="*"&&(w.address=d.address);let A=new Ct(i,w,a,l.timestamp,p,d,void 0,h,x,c.config.baseLabels),k=d,N=null;try{N=w.rawContract.interface.parseLog(k)}catch(L){if(L instanceof Error&&L.message.includes("data out-of-bounds"))return console.error("Can't decode",d,"may because of incompatible ABIs, e.g. string vs indexed string",L),$t.fromPartial({});throw L}if(N){let L={...d,name:N.name,args:ve(N)};return s(L,A,u)}return $t.fromPartial({})}}),this}onBlockInterval(t,e=250,r=1e3,s,a=R){return this.onInterval(t,void 0,{recentInterval:e,backfillInterval:r},s,a)}onTimeInterval(t,e=60,r=240,s,a=R){return this.onInterval(t,{recentInterval:e,backfillInterval:r},void 0,s,a)}onInterval(t,e,r,s,a=R){let o=this.getChainId(),i=this,c=this.config.name;return this.blockHandlers.push({handler:async function(l,u){let{block:d}=X(l);if(!d)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Block is empty");let p=i.CreateBoundContractView(),h=new Ct(c,p,o,new Date(d.timestamp*1e3),d,void 0,void 0,void 0,void 0,i.config.baseLabels,u);return await t(d,h),h.stopAndGetResult()},preprocessHandler:async function(l,u){let{block:d}=X(l);if(!d)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Block is empty");let p=i.CreateBoundContractView(),h=new Ct(c,p,o,new Date(d.timestamp*1e3),d,void 0,void 0,void 0,void 0,i.config.baseLabels);return a(d,h,u)},timeIntervalInMinutes:e,blockInterval:r,fetchConfig:st.fromPartial(s||{})}),this}onEthTrace(t,e,r,s=R){let a=this.getChainId(),o=this.config.name,i=this;return typeof t=="string"&&(t=[t]),this.traceHandlers.push({signatures:t,fetchConfig:st.fromPartial(r||{}),handler:async function(c,l){let u=i.CreateBoundContractView(),d=u.rawContract.interface,{trace:p,block:h,transaction:x,transactionReceipt:w}=X(c),A=p?.action.input?.slice(0,10);if(!A)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace has no sighash");let k=d.getFunction(A);if(!p||!k)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace is null");let N=p;if(N.name=k.name,N.functionSignature=k.format(),!p?.action.input)return ue.fromPartial({});let L="0x"+p.action.input.slice(10);try{N.args=d.getAbiCoder().decode(k.inputs,L,!0)}catch(Re){if(!p.error)throw Re;console.error("Failed to decode successful trace",Re)}let le=new Ct(o,u,a,c.timestamp,h,void 0,p,x,w,i.config.baseLabels,l);return await e(N,le),le.stopAndGetResult()},preprocessHandler:async function(c,l){let u=i.CreateBoundContractView(),d=u.rawContract.interface,{trace:p,block:h,transaction:x,transactionReceipt:w}=X(c),A=p?.action.input?.slice(0,10);if(!A)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace has no sighash");let k=d.getFunction(A);if(!p||!k)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace is null");let N=p;if(N.name=k.name,N.functionSignature=k.format(),!p?.action.input)return $t.fromPartial({});let L="0x"+p.action.input.slice(10);try{N.args=d.getAbiCoder().decode(k.inputs,L,!0)}catch(Re){if(!p.error)throw Re;console.error("Failed to decode successful trace",Re)}let le=new Ct(o,u,a,c.timestamp,h,void 0,p,x,w,i.config.baseLabels);return s(N,le,l)}}),this}onTrace(t,e,r=R){let s=this.CreateBoundContractView(),a=[];for(let o of s.rawContract.interface.fragments)if(o.type==="function"){let i=o.format(),c=new TextEncoder().encode(i),l="0x"+ha.default.keccak_256(c).substring(0,8);a.push(l)}return this.onEthTrace(a,t,e,r)}};import("process").then(n=>n.stdout.write(""));import{getProvider as So}from"@sentio/runtime";var ma=Tt(Ne(),1),Cn=class{address;network=ma.EthChainId.ETHEREUM;name;startBlock;endBlock;baseLabels};function Ze(n){let t=[n.address];return n.network&&t.push(n.network),n.name&&t.push(n.name),n.startBlock&&t.push(n.startBlock.toString()),n.endBlock&&t.push(n.endBlock.toString()),t.join("_")}var wn=class{address;network;startBlock;baseLabels};import("process").then(n=>n.stdout.write(""));import{MapStateStorage as Bo}from"@sentio/runtime";var Tn=class extends Bo{},re=Tn;H(re,"INSTANCE",new Tn);var ga=new Map;function ya(n,t,e){return[n,t.toLowerCase(),e].join("_")}function ne(n){let t=Ze(n);return re.INSTANCE.getValue(t)}function Ot(n,t){let e=Ze(n);re.INSTANCE.getOrSetValue(e,t)}function Ye(n,t,e){let r=ya(n,t,e);return ga.get(r)}function Qe(n,t,e,r){let s=ya(n,t,e);return ga.set(s,r)}import("process").then(n=>n.stdout.write(""));var qe=class extends Rt{eventABI;constructor(t,e){super(e),this.eventABI=t}CreateBoundContractView(){let t=new ft(this.config.address,this.eventABI,So(this.config.network));return new At(this.config.address,new It(t))}static bind(t,e){Array.isArray(t)||(t=[t]),e.name||(e.name="Generic");let r=new qe(t,e);return Ot(e,r),r}};import("process").then(n=>n.stdout.write(""));import{ListStateStorage as Fo}from"@sentio/runtime";var En=class extends Fo{},se=En;H(se,"INSTANCE",new En);var ae=class{id;binds=new Set;blockHandlers=[];traceHandlers=[];eventHandlers=[];constructor(){this.id=se.INSTANCE.getValues().length,se.INSTANCE.addValue(this)}bind(t,e){let r=Ze({address:t.address,network:e.chainId});if(this.binds.has(r)){console.log(`Same address can be bind to one template only once, ignore duplicate bind: ${r}`);return}this.binds.add(r);let s=this.bindInternal({...t,network:e.chainId});for(let o of this.eventHandlers)s.onEthEvent(o.handler,o.filter,o.fetchConfig,o.preprocessHandler);for(let o of this.traceHandlers)s.onEthTrace(o.signature,o.handler,o.fetchConfig,o.preprocessHandler);for(let o of this.blockHandlers)s.onInterval(o.handler,o.timeIntervalInMinutes,o.blockInterval,o.fetchConfig,o.preprocessHandler);let a={templateId:this.id,contract:{address:t.address,name:t.name||"",chainId:e.chainId,abi:""},startBlock:BigInt(t.startBlock||0),endBlock:BigInt(t.endBlock||0),baseLabels:t.baseLabels};ir.INSTANCE.addValue(a),e.update({states:{configUpdated:!0}})}onEthEvent(t,e,r,s=R){return this.eventHandlers.push({handler:t,preprocessHandler:s,filter:e,fetchConfig:st.fromPartial(r||{})}),this}onBlockInterval(t,e=1e3,r=4e3,s,a=R){return this.onInterval(t,void 0,{recentInterval:e,backfillInterval:r},s,a)}onTimeInterval(t,e=60,r=240,s,a=R){return this.onInterval(t,{recentInterval:e,backfillInterval:r},void 0,s,a)}onInterval(t,e,r,s,a=R){return this.blockHandlers.push({handler:t,preprocessHandler:a,timeIntervalInMinutes:e,blockInterval:r,fetchConfig:s}),this}onTrace(t,e,r,s=R){return this.traceHandlers.push({signature:t,handler:e,preprocessHandler:s,fetchConfig:st.fromPartial(r||{})}),this}};import("process").then(n=>n.stdout.write(""));var kn=[{inputs:[{internalType:"address",name:"_aggregator",type:"address"},{internalType:"address",name:"_accessController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"int256",name:"current",type:"int256"},{indexed:!0,internalType:"uint256",name:"roundId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"updatedAt",type:"uint256"}],name:"AnswerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"roundId",type:"uint256"},{indexed:!0,internalType:"address",name:"startedBy",type:"address"},{indexed:!1,internalType:"uint256",name:"startedAt",type:"uint256"}],name:"NewRound",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"OwnershipTransferRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"accessController",outputs:[{internalType:"contract AccessControllerInterface",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"aggregator",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_aggregator",type:"address"}],name:"confirmAggregator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"description",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_roundId",type:"uint256"}],name:"getAnswer",outputs:[{internalType:"int256",name:"",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint80",name:"_roundId",type:"uint80"}],name:"getRoundData",outputs:[{internalType:"uint80",name:"roundId",type:"uint80"},{internalType:"int256",name:"answer",type:"int256"},{internalType:"uint256",name:"startedAt",type:"uint256"},{internalType:"uint256",name:"updatedAt",type:"uint256"},{internalType:"uint80",name:"answeredInRound",type:"uint80"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_roundId",type:"uint256"}],name:"getTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestAnswer",outputs:[{internalType:"int256",name:"",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestRound",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestRoundData",outputs:[{internalType:"uint80",name:"roundId",type:"uint80"},{internalType:"int256",name:"answer",type:"int256"},{internalType:"uint256",name:"startedAt",type:"uint256"},{internalType:"uint256",name:"updatedAt",type:"uint256"},{internalType:"uint80",name:"answeredInRound",type:"uint80"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"",type:"uint16"}],name:"phaseAggregators",outputs:[{internalType:"contract AggregatorV2V3Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"phaseId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_aggregator",type:"address"}],name:"proposeAggregator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"proposedAggregator",outputs:[{internalType:"contract AggregatorV2V3Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint80",name:"_roundId",type:"uint80"}],name:"proposedGetRoundData",outputs:[{internalType:"uint80",name:"roundId",type:"uint80"},{internalType:"int256",name:"answer",type:"int256"},{internalType:"uint256",name:"startedAt",type:"uint256"},{internalType:"uint256",name:"updatedAt",type:"uint256"},{internalType:"uint80",name:"answeredInRound",type:"uint80"}],stateMutability:"view",type:"function"},{inputs:[],name:"proposedLatestRoundData",outputs:[{internalType:"uint80",name:"roundId",type:"uint80"},{internalType:"int256",name:"answer",type:"int256"},{internalType:"uint256",name:"startedAt",type:"uint256"},{internalType:"uint256",name:"updatedAt",type:"uint256"},{internalType:"uint80",name:"answeredInRound",type:"uint80"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_accessController",type:"address"}],name:"setController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],tr=class{static createInterface(){return new b(kn)}static connect(t,e){return new K(t,kn,e)}};H(tr,"abi",kn);import("process").then(n=>n.stdout.write(""));var vn=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"values",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"accounts",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}],er=class{static createInterface(){return new b(vn)}static connect(t,e){return new K(t,vn,e)}};H(er,"abi",vn);import("process").then(n=>n.stdout.write(""));var Pn=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burnFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"locker",outputs:[{internalType:"contract ILocker",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_locker",type:"address"}],name:"setLocker",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],ht=class{static createInterface(){return new b(Pn)}static connect(t,e){return new K(t,Pn,e)}};H(ht,"abi",Pn);import("process").then(n=>n.stdout.write(""));var In=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"spender",type:"address"},{name:"value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"who",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"to",type:"address"},{name:"value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{name:"_name",type:"string"},{name:"_symbol",type:"string"},{name:"_decimals",type:"uint8"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}],rr=class{static createInterface(){return new b(In)}static connect(t,e){return new K(t,In,e)}};H(rr,"abi",In);import("process").then(n=>n.stdout.write(""));var An=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"operator",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"_approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}],mt=class{static createInterface(){return new b(An)}static connect(t,e){return new K(t,An,e)}};H(mt,"abi",An);import("process").then(n=>n.stdout.write(""));var Rn=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"guy",type:"address"},{name:"wad",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"src",type:"address"},{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"wad",type:"uint256"}],name:"withdraw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[],name:"deposit",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[{name:"",type:"address"},{name:"",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"guy",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Withdrawal",type:"event"}],nr=class{static createInterface(){return new b(Rn)}static connect(t,e){return new K(t,Rn,e)}};H(nr,"abi",Rn);import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));var Uo={};Hn(Uo,{ERC20BoundContractView:()=>sr,ERC20ContractView:()=>Dr,ERC20Processor:()=>Mt,ERC20ProcessorTemplate:()=>On,ERC20__factory:()=>ht,getERC20Contract:()=>oe,getERC20ContractOnContext:()=>Lo,mockApprovalLog:()=>_o,mockOwnershipTransferredLog:()=>Ho,mockTransferLog:()=>Vo});var Nt=ht.connect("0x0",_r),Cp=new b(["function allowance(address owner, address spender) view returns (uint256)","function approve(address spender, uint256 amount) returns (bool)","function balanceOf(address account) view returns (uint256)","function burn(uint256 amount) returns ()","function burnFrom(address account, uint256 amount) returns ()","function decimals() view returns (uint8)","function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)","function increaseAllowance(address spender, uint256 addedValue) returns (bool)","function locker() view returns (address)","function name() view returns (string)","function owner() view returns (address)","function renounceOwnership() returns ()","function setLocker(address _locker) returns ()","function symbol() view returns (string)","function totalSupply() view returns (uint256)","function transfer(address recipient, uint256 amount) returns (bool)","function transferFrom(address sender, address recipient, uint256 amount) returns (bool)","function transferOwnership(address newOwner) returns ()"]),Dr=class extends It{constructor(t){super(t),this.callStatic.contract=t}async allowance(t,e,r,s,a){try{return await this.contract.getFunction("allowance(address,address)")(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}}async balanceOf(t,e,r,s){try{return await this.contract.getFunction("balanceOf(address)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async decimals(t,e,r){try{return await this.contract.getFunction("decimals()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async locker(t,e,r){try{return await this.contract.getFunction("locker()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async name(t,e,r){try{return await this.contract.getFunction("name()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async owner(t,e,r){try{return await this.contract.getFunction("owner()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async symbol(t,e,r){try{return await this.contract.getFunction("symbol()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async totalSupply(t,e,r){try{return await this.contract.getFunction("totalSupply()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}callStatic={contract:this.contract,async approve(t,e,r,s,a){try{return await this.contract.getFunction("approve(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async burn(t,e,r,s){try{return await this.contract.getFunction("burn(uint256)").staticCall(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}},async burnFrom(t,e,r,s,a){try{return await this.contract.getFunction("burnFrom(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async decreaseAllowance(t,e,r,s,a){try{return await this.contract.getFunction("decreaseAllowance(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async increaseAllowance(t,e,r,s,a){try{return await this.contract.getFunction("increaseAllowance(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async renounceOwnership(t,e,r){try{return await this.contract.getFunction("renounceOwnership()").staticCall(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},async setLocker(t,e,r,s){try{return await this.contract.getFunction("setLocker(address)").staticCall(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}},async transfer(t,e,r,s,a){try{return await this.contract.getFunction("transfer(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async transferFrom(t,e,r,s,a,o){try{return await this.contract.getFunction("transferFrom(address,address,uint256)").staticCall(t,e,r,s||{})}catch(i){let c=new Error().stack;throw g(i,void 0,c)}},async transferOwnership(t,e,r,s){try{return await this.contract.getFunction("transferOwnership(address)").staticCall(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}};encodeCall={allowance(t,e,r){try{let a=new b(["function allowance(address,address)"]).encodeFunctionData("allowance",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},approve(t,e,r){try{let a=new b(["function approve(address,uint256)"]).encodeFunctionData("approve",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},balanceOf(t,e){try{let s=new b(["function balanceOf(address)"]).encodeFunctionData("balanceOf",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},burn(t,e){try{let s=new b(["function burn(uint256)"]).encodeFunctionData("burn",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},burnFrom(t,e,r){try{let a=new b(["function burnFrom(address,uint256)"]).encodeFunctionData("burnFrom",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},decimals(t){try{let r=new b(["function decimals()"]).encodeFunctionData("decimals",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},decreaseAllowance(t,e,r){try{let a=new b(["function decreaseAllowance(address,uint256)"]).encodeFunctionData("decreaseAllowance",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},increaseAllowance(t,e,r){try{let a=new b(["function increaseAllowance(address,uint256)"]).encodeFunctionData("increaseAllowance",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},locker(t){try{let r=new b(["function locker()"]).encodeFunctionData("locker",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},name(t){try{let r=new b(["function name()"]).encodeFunctionData("name",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},owner(t){try{let r=new b(["function owner()"]).encodeFunctionData("owner",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},renounceOwnership(t){try{let r=new b(["function renounceOwnership()"]).encodeFunctionData("renounceOwnership",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},setLocker(t,e){try{let s=new b(["function setLocker(address)"]).encodeFunctionData("setLocker",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},symbol(t){try{let r=new b(["function symbol()"]).encodeFunctionData("symbol",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},totalSupply(t){try{let r=new b(["function totalSupply()"]).encodeFunctionData("totalSupply",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},transfer(t,e,r){try{let a=new b(["function transfer(address,uint256)"]).encodeFunctionData("transfer",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},transferFrom(t,e,r,s){try{let o=new b(["function transferFrom(address,address,uint256)"]).encodeFunctionData("transferFrom",[t,e,r]);return{context:s,calldata:o}}catch(a){let o=new Error().stack;throw g(a,void 0,o)}},transferOwnership(t,e){try{let s=new b(["function transferOwnership(address)"]).encodeFunctionData("transferOwnership",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}}}},sr=class extends At{async allowance(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.allowance(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)}async balanceOf(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.balanceOf(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async decimals(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.decimals({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async locker(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.locker({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async name(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.name({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async owner(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.owner({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async symbol(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.symbol({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async totalSupply(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.totalSupply({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}callStatic={view:this.view,context:this.context,async approve(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.approve(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async burn(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.burn(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)},async burnFrom(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.burnFrom(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async decreaseAllowance(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.decreaseAllowance(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async increaseAllowance(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.increaseAllowance(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async renounceOwnership(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.renounceOwnership({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)},async setLocker(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.setLocker(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)},async transfer(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.transfer(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async transferFrom(t,e,r,s){let a={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.transferFrom(t,e,r,{blockTag:this.context.blockNumber,...s},this.context.preparedData,a)},async transferOwnership(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.transferOwnership(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}};encodeCall={view:this.view,context:this.context,allowance(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.allowance(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},approve(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.approve(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},balanceOf(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.balanceOf(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},burn(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.burn(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},burnFrom(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.burnFrom(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},decimals(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.decimals({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},decreaseAllowance(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.decreaseAllowance(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},increaseAllowance(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.increaseAllowance(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},locker(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.locker({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},name(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.name({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},owner(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.owner({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},renounceOwnership(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.renounceOwnership({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},setLocker(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.setLocker(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},symbol(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.symbol({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},totalSupply(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.totalSupply({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},transfer(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.transfer(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},transferFrom(t,e,r,s){let a="0x"+this.context.blockNumber.toString(16);return s?.blockTag&&(a=typeof s.blockTag=="string"?s.blockTag:"0x"+s.blockTag.toString(16)),this.view.encodeCall.transferFrom(t,e,r,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:a})},transferOwnership(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.transferOwnership(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})}}},Nn=class extends Rt{onEventApproval(t,e,r,s){return e||(e=Nt.filters["Approval(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventOwnershipTransferred(t,e,r,s){return e||(e=Nt.filters["OwnershipTransferred(address,address)"](null,null)),super.onEthEvent(t,e,r,s)}onEventTransfer(t,e,r,s){return e||(e=Nt.filters["Transfer(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onCallAllowance(t,e,r){return super.onEthTrace("0xdd62ed3e",t,e,r)}onCallApprove(t,e,r){return super.onEthTrace("0x095ea7b3",t,e,r)}onCallBalanceOf(t,e,r){return super.onEthTrace("0x70a08231",t,e,r)}onCallBurn(t,e,r){return super.onEthTrace("0x42966c68",t,e,r)}onCallBurnFrom(t,e,r){return super.onEthTrace("0x79cc6790",t,e,r)}onCallDecimals(t,e,r){return super.onEthTrace("0x313ce567",t,e,r)}onCallDecreaseAllowance(t,e,r){return super.onEthTrace("0xa457c2d7",t,e,r)}onCallIncreaseAllowance(t,e,r){return super.onEthTrace("0x39509351",t,e,r)}onCallLocker(t,e,r){return super.onEthTrace("0xd7b96d4e",t,e,r)}onCallName(t,e,r){return super.onEthTrace("0x06fdde03",t,e,r)}onCallOwner(t,e,r){return super.onEthTrace("0x8da5cb5b",t,e,r)}onCallRenounceOwnership(t,e,r){return super.onEthTrace("0x715018a6",t,e,r)}onCallSetLocker(t,e,r){return super.onEthTrace("0x171060ec",t,e,r)}onCallSymbol(t,e,r){return super.onEthTrace("0x95d89b41",t,e,r)}onCallTotalSupply(t,e,r){return super.onEthTrace("0x18160ddd",t,e,r)}onCallTransfer(t,e,r){return super.onEthTrace("0xa9059cbb",t,e,r)}onCallTransferFrom(t,e,r){return super.onEthTrace("0x23b872dd",t,e,r)}onCallTransferOwnership(t,e,r){return super.onEthTrace("0xf2fde38b",t,e,r)}CreateBoundContractView(){let t=oe(this.config.network,this.config.address);return new sr(this.config.address,t)}static bind(t){t.name||(t.name="ERC20");let e=ne(t);return e||(e=new Nn(t),Ot(t,e)),e}},Mt=Nn;H(Mt,"filters",{Approval(t,e,r){return Nt.filters["Approval(address,address,uint256)"](t,e,r)},OwnershipTransferred(t,e){return Nt.filters["OwnershipTransferred(address,address)"](t,e)},Transfer(t,e,r){return Nt.filters["Transfer(address,address,uint256)"](t,e,r)}});var On=class extends ae{bindInternal(t){t.name||(t.name="ERC20");let e=ne(t);return e||(e=new Mt(t),Ot(t,e)),e}onEventApproval(t,e,r,s){return e||(e=Nt.filters["Approval(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventOwnershipTransferred(t,e,r,s){return e||(e=Nt.filters["OwnershipTransferred(address,address)"](null,null)),super.onEthEvent(t,e,r,s)}onEventTransfer(t,e,r,s){return e||(e=Nt.filters["Transfer(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}};function oe(n,t){let e=Ye("ERC20",t,n);if(!e){let r=ht.connect(t,Lr(n));e=new Dr(r),Qe("ERC20",t,n,e)}return e}function Lo(n,t){let e=oe(n.getChainId(),t),r=new sr(t,e);return r.context=n,r.callStatic&&(r.callStatic.context=n),r}import("process").then(n=>n.stdout.write(""));var Bn={blockHash:"0x0000000000000000000000000000000000000000000000000000000000000000",blockNumber:0,logIndex:0,removed:!1,transactionHash:"0x0000000000000000000000000000000000000000000000000000000000000000",transactionIndex:0};function _o(n,t){let r=oe(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("Approval(address,address,uint256)",[t.owner,t.spender,t.value]);return{...Bn,index:0,address:n,data:r.data,topics:r.topics}}function Ho(n,t){let r=oe(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("OwnershipTransferred(address,address)",[t.previousOwner,t.newOwner]);return{...Bn,index:0,address:n,data:r.data,topics:r.topics}}function Vo(n,t){let r=oe(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("Transfer(address,address,uint256)",[t.from,t.to,t.value]);return{...Bn,index:0,address:n,data:r.data,topics:r.topics}}import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));import{ListStateStorage as Mo}from"@sentio/runtime";var Sn=class extends Mo{},ie=Sn;H(ie,"INSTANCE",new Sn);import("process").then(n=>n.stdout.write(""));var xa=Tt(Ne(),1),Ae=Tt(Wr(),1),ba=ht.createInterface(),zp=mt.createInterface(),ar=class{config;eventHandlers=[];static bind(t){let e=new ar(t);return ie.INSTANCE.addValue(e),e}constructor(t){this.config={...t,network:t.network||xa.EthChainId.ETHEREUM}}getChainId(){return this.config.network}onERC20TransferIn(t,e=[],r,s=R){return this.onERC20(t,e,a=>wt.filters.Transfer(null,this.config.address),r,s)}onERC20TransferOut(t,e=[],r,s=R){return this.onERC20(t,e,a=>Mt.filters.Transfer(this.config.address),r,s)}onERC20Minted(t,e=[],r,s=R){return this.onERC20(t,e,a=>Mt.filters.Transfer("0x0000000000000000000000000000000000000000",this.config.address),r,s)}onERC20(t,e=[],r,s,a=R){return this.onERC(t,e,r,$r.ERC20,s,a)}onERC721TransferIn(t,e,r,s=R){return this.onERC721(t,e,a=>wt.filters.Transfer(null,this.config.address),r,s)}onERC721TransferOut(t,e,r,s=R){return this.onERC721(t,e,a=>wt.filters.Transfer(this.config.address),r,s)}onERC721Minted(t,e=[],r,s=R){return this.onERC721(t,e,a=>wt.filters.Transfer("0x0000000000000000000000000000000000000000",this.config.address),r,s)}onERC721(t,e,r,s,a=R){return this.onERC(t,e,r,$r.ERC721,s,a)}onERC(t,e,r,s,a,o=R){let i=[];for(let c of e){let l=r(this.config.address);l.address=c,i.push(l)}if(!i.length){let c=r(this.config.address);c.address=void 0,c.addressType=s,i.push(c)}return this.onEvent(t,i,a,o)}onEvent(t,e,r,s=R){let a=this.getChainId(),o=[];Array.isArray(e)?o=e:o.push(e);let i=this.config;return this.eventHandlers.push({filters:o,fetchConfig:st.fromPartial(r||{}),handler:async function(c){let{log:l,block:u,transaction:d,transactionReceipt:p}=X(c);if(!l)throw new Ae.ServerError(Ae.Status.INVALID_ARGUMENT,"Log is empty");let h=new ke(a,i.address,c.timestamp,c.block,l,void 0,d,p),x=l,w=ba.parseLog(x);if(w){let A={...l,name:w.name,args:ve(w)};return await t(A,h),h.stopAndGetResult()}return ue.fromPartial({})},preprocessHandler:async function(c,l){let{log:u,block:d,transaction:p,transactionReceipt:h}=X(c);if(!u)throw new Ae.ServerError(Ae.Status.INVALID_ARGUMENT,"Log is empty");let x=new ke(a,i.address,c.timestamp,c.block,u,void 0,p,h),w=u,A=ba.parseLog(w);if(A){let k={...u,name:A.name,args:ve(A)};return s(k,x,l)}return $t.fromPartial({})}}),this}};import("process").then(n=>n.stdout.write(""));import{getProvider as Lr,DummyProvider as _r}from"@sentio/runtime";import{errorString as Gt,mergeProcessResults as Hr,Plugin as Go,PluginManager as $o,USER_PROCESSOR as Ca,GLOBAL_CONFIG as Vr}from"@sentio/runtime";var v=Tt(Wr(),1);var wa=Tt(Ne(),1);var Mr=class extends Go{name="EthPlugin";handlers={blockHandlers:[],eventHandlers:[],traceHandlers:[],transactionHandlers:[]};preprocessHandlers={blockHandlers:[],eventHandlers:[],traceHandlers:[],transactionHandlers:[]};async configure(t){let e={blockHandlers:[],eventHandlers:[],traceHandlers:[],transactionHandlers:[]},r={blockHandlers:[],eventHandlers:[],traceHandlers:[],transactionHandlers:[]};for(let s of re.INSTANCE.getValues()){let a=s.getChainId(),o=jr.fromPartial({processorType:Ca,contract:{name:s.config.name,chainId:a.toString(),address:Pe(s.config.address),abi:""},startBlock:s.config.startBlock,endBlock:s.config.endBlock});for(let i of s.blockHandlers){r.blockHandlers.push(i.preprocessHandler??R);let c=e.blockHandlers.push(i.handler)-1;o.intervalConfigs.push({slot:0,slotInterval:i.blockInterval,minutes:0,minutesInterval:i.timeIntervalInMinutes,handlerId:c,fetchConfig:i.fetchConfig})}for(let i of s.traceHandlers){r.traceHandlers.push(i.preprocessHandler??R);let c=e.traceHandlers.push(i.handler)-1;for(let l of i.signatures)o.traceConfigs.push({signature:l,handlerId:c,fetchConfig:i.fetchConfig})}for(let i of s.eventHandlers){r.eventHandlers.push(i.preprocessHandler??R);let l={handlerId:e.eventHandlers.push(i.handler)-1,filters:[],fetchConfig:i.fetchConfig};for(let u of i.filters){let d=await u.getTopicFilter(),p={addressType:void 0,address:o.contract?.address&&Pe(o.contract.address),topics:[]};for(let h of d){let x=[];Array.isArray(h)?x=x.concat(h):h&&x.push(h),p.topics.push({hashes:x})}l.filters.push(p)}o.logConfigs.push(l)}t.contractConfigs.push(o)}for(let s of Ie.INSTANCE.getValues()){let a=s.getChainId(),o=jr.fromPartial({processorType:Ca,contract:{name:s.config.name,chainId:a.toString(),address:s.config.address,abi:""},startBlock:s.config.startBlock,endBlock:s.config.endBlock});for(let i of s.blockHandlers){r.blockHandlers.push(i.preprocessHandler??R);let c=e.blockHandlers.push(i.handler)-1;o.intervalConfigs.push({slot:0,slotInterval:i.blockInterval,minutes:0,minutesInterval:i.timeIntervalInMinutes,handlerId:c,fetchConfig:i.fetchConfig})}for(let i of s.transactionHandler){r.transactionHandlers.push(i.preprocessHandler??R);let c=e.transactionHandlers.push(i.handler)-1;o.transactionConfig.push({handlerId:c,fetchConfig:i.fetchConfig})}for(let i of s.traceHandlers){r.traceHandlers.push(i.preprocessHandler??R);let c=e.traceHandlers.push(i.handler)-1;for(let l of i.signatures)o.traceConfigs.push({signature:l,handlerId:c,fetchConfig:i.fetchConfig})}t.contractConfigs.push(o)}for(let s of ie.INSTANCE.getValues()){let a=Vn.fromPartial({address:Pe(s.config.address),chainId:s.getChainId().toString(),startBlock:s.config.startBlock?BigInt(s.config.startBlock):0n});for(let o of s.eventHandlers){r.eventHandlers.push(o.preprocessHandler??R);let c={handlerId:e.eventHandlers.push(o.handler)-1,filters:[],fetchConfig:o.fetchConfig};for(let l of o.filters){let u=await l.getTopicFilter(),d;l.address&&(d=l.address.toString());let p={addressType:l.addressType,address:d&&Pe(d),topics:[]};for(let h of u){let x=[];Array.isArray(h)?x=x.concat(h):h&&x.push(h),p.topics.push({hashes:x})}c.filters.push(p)}a.logConfigs.push(c)}t.accountConfigs.push(a)}this.handlers=e,this.preprocessHandlers=r}supportedHandlers=[nt.ETH_LOG,nt.ETH_BLOCK,nt.ETH_TRACE,nt.ETH_TRANSACTION];processBinding(t,e){switch(t.handlerType){case nt.ETH_LOG:return this.processLog(t,e);case nt.ETH_TRACE:return this.processTrace(t,e);case nt.ETH_BLOCK:return this.processBlock(t,e);case nt.ETH_TRANSACTION:return this.processTransaction(t,e);default:throw new v.ServerError(v.Status.INVALID_ARGUMENT,"No handle type registered "+t.handlerType)}}preprocessBinding(t,e){switch(t.handlerType){case nt.ETH_LOG:return this.preprocessLog(t,e);case nt.ETH_TRACE:return this.preprocessTrace(t,e);case nt.ETH_BLOCK:return this.preprocessBlock(t,e);case nt.ETH_TRANSACTION:return this.preprocessTransaction(t,e);default:throw new v.ServerError(v.Status.INVALID_ARGUMENT,"No handle type registered "+t.handlerType)}}async start(t){let e=new Set(Object.values(wa.EthChainId));for(let r of t.templateInstances){if(!e.has(r.contract?.chainId||""))continue;let s=se.INSTANCE.getValues()[r.templateId];if(!s)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Invalid template contract:"+r);if(!r.contract)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Contract Empty from:"+r);let a=new Fn(r.contract.chainId);s.bind({name:r.contract.name,address:Pe(r.contract.address),startBlock:r.startBlock,endBlock:r.endBlock,baseLabels:r.baseLabels},a)}}stateDiff(t){return ir.INSTANCE.getValues().length!==t.templateInstances.length}async preprocessLog(t,e){if(!t.data?.ethLog?.log)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Log can't be null");let r=t.data.ethLog,s=[];for(let a of t.handlerIds){let o=this.preprocessHandlers.eventHandlers[a],i=o(r,e).catch(c=>{throw new v.ServerError(v.Status.INTERNAL,"error processing log: "+JSON.stringify(r.log)+`
|
|
9
|
-
`+Gt(c))});s.push(i)}return
|
|
10
|
-
`+Gt(i))});s.push(o)}return
|
|
11
|
-
`+Gt(i))});s.push(o)}return
|
|
12
|
-
`+Gt(i))});s.push(o)}return
|
|
13
|
-
`+Gt(c))});
|
|
14
|
-
`+Gt(i))});
|
|
15
|
-
`+Gt(i))});
|
|
16
|
-
`+Gt(i))});Vr.execution.sequential&&await o,s.push(o)}return Hr(await Promise.all(s))}};$o.INSTANCE.register(new Mr);var Fn=class extends Ut{constructor(t){super(t,"")}getContractName(){return""}};function Ur(n){let t={ethCallParams:[]};for(let e of n)t.ethCallParams=t.ethCallParams.concat(e.ethCallParams);return t}import("process").then(n=>n.stdout.write(""));var Bt=Tt(Ne(),1);import{makeEthCallKey as Nf}from"@sentio/runtime";import("process").then(n=>n.stdout.write(""));var St=mt.connect("0x0",_r),Wf=new b(["function approve(address to, uint256 tokenId) returns ()","function totalSupply() view returns (uint256)","function balanceOf(address owner) view returns (uint256 balance)","function getApproved(uint256 tokenId) view returns (address operator)","function isApprovedForAll(address owner, address operator) view returns (bool)","function name() view returns (string)","function ownerOf(uint256 tokenId) view returns (address owner)","function safeTransferFrom(address from, address to, uint256 tokenId) returns ()","function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns ()","function setApprovalForAll(address operator, bool _approved) returns ()","function supportsInterface(bytes4 interfaceId) view returns (bool)","function symbol() view returns (string)","function tokenURI(uint256 tokenId) view returns (string)","function transferFrom(address from, address to, uint256 tokenId) returns ()"]),Gr=class extends It{constructor(t){super(t),this.callStatic.contract=t}async totalSupply(t,e,r){try{return await this.contract.getFunction("totalSupply()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async balanceOf(t,e,r,s){try{return await this.contract.getFunction("balanceOf(address)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async getApproved(t,e,r,s){try{return await this.contract.getFunction("getApproved(uint256)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async isApprovedForAll(t,e,r,s,a){try{return await this.contract.getFunction("isApprovedForAll(address,address)")(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}}async name(t,e,r){try{return await this.contract.getFunction("name()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async ownerOf(t,e,r,s){try{return await this.contract.getFunction("ownerOf(uint256)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async supportsInterface(t,e,r,s){try{return await this.contract.getFunction("supportsInterface(bytes4)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async symbol(t,e,r){try{return await this.contract.getFunction("symbol()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async tokenURI(t,e,r,s){try{return await this.contract.getFunction("tokenURI(uint256)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}callStatic={contract:this.contract,async approve(t,e,r,s,a){try{return await this.contract.getFunction("approve(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async safeTransferFrom_address_address_uint256(t,e,r,s,a,o){try{return await this.contract.getFunction("safeTransferFrom(address,address,uint256)").staticCall(t,e,r,s||{})}catch(i){let c=new Error().stack;throw g(i,void 0,c)}},async safeTransferFrom_address_address_uint256_bytes(t,e,r,s,a,o,i){try{return await this.contract.getFunction("safeTransferFrom(address,address,uint256,bytes)").staticCall(t,e,r,s,a||{})}catch(c){let l=new Error().stack;throw g(c,void 0,l)}},async setApprovalForAll(t,e,r,s,a){try{return await this.contract.getFunction("setApprovalForAll(address,bool)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async transferFrom(t,e,r,s,a,o){try{return await this.contract.getFunction("transferFrom(address,address,uint256)").staticCall(t,e,r,s||{})}catch(i){let c=new Error().stack;throw g(i,void 0,c)}}};encodeCall={approve(t,e,r){try{let a=new b(["function approve(address,uint256)"]).encodeFunctionData("approve",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},totalSupply(t){try{let r=new b(["function totalSupply()"]).encodeFunctionData("totalSupply",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},balanceOf(t,e){try{let s=new b(["function balanceOf(address)"]).encodeFunctionData("balanceOf",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},getApproved(t,e){try{let s=new b(["function getApproved(uint256)"]).encodeFunctionData("getApproved",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},isApprovedForAll(t,e,r){try{let a=new b(["function isApprovedForAll(address,address)"]).encodeFunctionData("isApprovedForAll",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},name(t){try{let r=new b(["function name()"]).encodeFunctionData("name",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},ownerOf(t,e){try{let s=new b(["function ownerOf(uint256)"]).encodeFunctionData("ownerOf",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},safeTransferFrom_address_address_uint256(t,e,r,s){try{let o=new b(["function safeTransferFrom(address,address,uint256)"]).encodeFunctionData("safeTransferFrom",[t,e,r]);return{context:s,calldata:o}}catch(a){let o=new Error().stack;throw g(a,void 0,o)}},safeTransferFrom_address_address_uint256_bytes(t,e,r,s,a){try{let i=new b(["function safeTransferFrom(address,address,uint256,bytes)"]).encodeFunctionData("safeTransferFrom",[t,e,r,s]);return{context:a,calldata:i}}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},setApprovalForAll(t,e,r){try{let a=new b(["function setApprovalForAll(address,bool)"]).encodeFunctionData("setApprovalForAll",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},supportsInterface(t,e){try{let s=new b(["function supportsInterface(bytes4)"]).encodeFunctionData("supportsInterface",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},symbol(t){try{let r=new b(["function symbol()"]).encodeFunctionData("symbol",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},tokenURI(t,e){try{let s=new b(["function tokenURI(uint256)"]).encodeFunctionData("tokenURI",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},transferFrom(t,e,r,s){try{let o=new b(["function transferFrom(address,address,uint256)"]).encodeFunctionData("transferFrom",[t,e,r]);return{context:s,calldata:o}}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}}},or=class extends At{async totalSupply(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.totalSupply({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async balanceOf(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.balanceOf(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async getApproved(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.getApproved(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async isApprovedForAll(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.isApprovedForAll(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)}async name(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.name({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async ownerOf(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.ownerOf(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async supportsInterface(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.supportsInterface(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async symbol(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.symbol({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async tokenURI(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.tokenURI(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}callStatic={view:this.view,context:this.context,async approve(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.approve(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async safeTransferFrom_address_address_uint256(t,e,r,s){let a={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.safeTransferFrom_address_address_uint256(t,e,r,{blockTag:this.context.blockNumber,...s},this.context.preparedData,a)},async safeTransferFrom_address_address_uint256_bytes(t,e,r,s,a){let o={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.safeTransferFrom_address_address_uint256_bytes(t,e,r,s,{blockTag:this.context.blockNumber,...a},this.context.preparedData,o)},async setApprovalForAll(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.setApprovalForAll(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async transferFrom(t,e,r,s){let a={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.transferFrom(t,e,r,{blockTag:this.context.blockNumber,...s},this.context.preparedData,a)}};encodeCall={view:this.view,context:this.context,approve(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.approve(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},totalSupply(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.totalSupply({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},balanceOf(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.balanceOf(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},getApproved(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.getApproved(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},isApprovedForAll(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.isApprovedForAll(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},name(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.name({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},ownerOf(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.ownerOf(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},safeTransferFrom_address_address_uint256(t,e,r,s){let a="0x"+this.context.blockNumber.toString(16);return s?.blockTag&&(a=typeof s.blockTag=="string"?s.blockTag:"0x"+s.blockTag.toString(16)),this.view.encodeCall.safeTransferFrom_address_address_uint256(t,e,r,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:a})},safeTransferFrom_address_address_uint256_bytes(t,e,r,s,a){let o="0x"+this.context.blockNumber.toString(16);return a?.blockTag&&(o=typeof a.blockTag=="string"?a.blockTag:"0x"+a.blockTag.toString(16)),this.view.encodeCall.safeTransferFrom_address_address_uint256_bytes(t,e,r,s,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:o})},setApprovalForAll(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.setApprovalForAll(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},supportsInterface(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.supportsInterface(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},symbol(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.symbol({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},tokenURI(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.tokenURI(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},transferFrom(t,e,r,s){let a="0x"+this.context.blockNumber.toString(16);return s?.blockTag&&(a=typeof s.blockTag=="string"?s.blockTag:"0x"+s.blockTag.toString(16)),this.view.encodeCall.transferFrom(t,e,r,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:a})}}},Ln=class extends Rt{onEventApproval(t,e,r,s){return e||(e=St.filters["Approval(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventApprovalForAll(t,e,r,s){return e||(e=St.filters["ApprovalForAll(address,address,bool)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventTransfer(t,e,r,s){return e||(e=St.filters["Transfer(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onCallApprove(t,e,r){return super.onEthTrace("0x095ea7b3",t,e,r)}onCallTotalSupply(t,e,r){return super.onEthTrace("0x18160ddd",t,e,r)}onCallBalanceOf(t,e,r){return super.onEthTrace("0x70a08231",t,e,r)}onCallGetApproved(t,e,r){return super.onEthTrace("0x081812fc",t,e,r)}onCallIsApprovedForAll(t,e,r){return super.onEthTrace("0xe985e9c5",t,e,r)}onCallName(t,e,r){return super.onEthTrace("0x06fdde03",t,e,r)}onCallOwnerOf(t,e,r){return super.onEthTrace("0x6352211e",t,e,r)}onCallSafeTransferFrom_address_address_uint256(t,e,r){return super.onEthTrace("0x42842e0e",t,e,r)}onCallSafeTransferFrom_address_address_uint256_bytes(t,e,r){return super.onEthTrace("0xb88d4fde",t,e,r)}onCallSetApprovalForAll(t,e,r){return super.onEthTrace("0xa22cb465",t,e,r)}onCallSupportsInterface(t,e,r){return super.onEthTrace("0x01ffc9a7",t,e,r)}onCallSymbol(t,e,r){return super.onEthTrace("0x95d89b41",t,e,r)}onCallTokenURI(t,e,r){return super.onEthTrace("0xc87b56dd",t,e,r)}onCallTransferFrom(t,e,r){return super.onEthTrace("0x23b872dd",t,e,r)}CreateBoundContractView(){let t=ce(this.config.network,this.config.address);return new or(this.config.address,t)}static bind(t){t.name||(t.name="ERC721");let e=ne(t);return e||(e=new Ln(t),Ot(t,e)),e}},wt=Ln;H(wt,"filters",{Approval(t,e,r){return St.filters["Approval(address,address,uint256)"](t,e,r)},ApprovalForAll(t,e,r){return St.filters["ApprovalForAll(address,address,bool)"](t,e,r)},Transfer(t,e,r){return St.filters["Transfer(address,address,uint256)"](t,e,r)}});var Dn=class extends ae{bindInternal(t){t.name||(t.name="ERC721");let e=ne(t);return e||(e=new wt(t),Ot(t,e)),e}onEventApproval(t,e,r,s){return e||(e=St.filters["Approval(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventApprovalForAll(t,e,r,s){return e||(e=St.filters["ApprovalForAll(address,address,bool)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventTransfer(t,e,r,s){return e||(e=St.filters["Transfer(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}};function ce(n,t){let e=Ye("ERC721",t,n);if(!e){let r=mt.connect(t,Lr(n));e=new Gr(r),Qe("ERC721",t,n,e)}return e}function jo(n,t){let e=ce(n.getChainId(),t),r=new or(t,e);return r.context=n,r.callStatic&&(r.callStatic.context=n),r}import("process").then(n=>n.stdout.write(""));var _n={blockHash:"0x0000000000000000000000000000000000000000000000000000000000000000",blockNumber:0,logIndex:0,removed:!1,transactionHash:"0x0000000000000000000000000000000000000000000000000000000000000000",transactionIndex:0};function Wo(n,t){let r=ce(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("Approval(address,address,uint256)",[t.owner,t.approved,t.tokenId]);return{..._n,index:0,address:n,data:r.data,topics:r.topics}}function zo(n,t){let r=ce(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("ApprovalForAll(address,address,bool)",[t.owner,t.operator,t.approved]);return{..._n,index:0,address:n,data:r.data,topics:r.topics}}function Jo(n,t){let r=ce(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("Transfer(address,address,uint256)",[t.from,t.to,t.tokenId]);return{..._n,index:0,address:n,data:r.data,topics:r.topics}}import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));export{Js as a,b,Ut as c,ke as d,xt as e,Ct as f,It as g,At as h,Ke as i,g as j,ve as k,X as l,Oo as m,Au as n,Pe as o,R as p,Xe as q,Rt as r,Cn as s,wn as t,ne as u,Ot as v,Ye as w,Qe as x,qe as y,ae as z,tr as A,er as B,ht as C,rr as D,mt as E,nr as F,Gr as G,or as H,wt as I,Dn as J,ce as K,jo as L,Wo as M,zo as N,Jo as O,Ko as P,ar as Q,Mr as R,Lr as S,_r as T,Bt as U,Nf as V,Dr as W,sr as X,Mt as Y,On as Z,oe as _,Lo as $,_o as aa,Ho as ba,Vo as ca,Uo as da};
|
|
8
|
+
`+r,new Error(s))}function ve(n){let t=[];for(let[e,r]of n.fragment.inputs.entries())r.name===""?t.push("arg"+e):t.push(r.name);return z.fromItems(Array.from(n.args.values()),t)}var No=ee({to:E(S,null),from:E(S,null),contractAddress:E(S,null),index:I,root:E(P),gasUsed:T,logsBloom:E(Vt),blockHash:G,hash:G,logs:E(Ee(bn)),blockNumber:I,cumulativeGasUsed:T,effectiveGasPrice:E(T),gasPrice:E(T),status:E(I),type:E(I,0)},{hash:["transactionHash"],index:["transactionIndex"]});function ma(n){return No(n)}function X(n){let t=n.log?fa(n.log):void 0;n.block&&!n.block.transactions&&(n.block.transactions=[]);let e=n.block?Bo(n.block):void 0,r=n.trace?n.trace:void 0,s;n.transaction&&(n.transaction.v||(n.transaction.v="0x1c",n.transaction.r="0x88ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0",n.transaction.s="0x45e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33a"),s=xn(n.transaction));let a=n.transactionReceipt?ma(n.transactionReceipt):void 0;return{log:t,block:e,trace:r,transaction:s,transactionReceipt:a}}function Bo(n){return n={...n,...ha(n)},n.transactionReceipts&&(n.transactionReceipts=n.transactionReceipts.map(t=>ma(t))),n}function Fu(n){try{return S(n)==="0x0000000000000000000000000000000000000000"}catch{return!1}}function Pe(n){return n==="*"?n:S(n).toLowerCase()}import("process").then(n=>n.stdout.write(""));var ga=Tt(ka(),1),Cn=Tt(Ne(),1);import{ListStateStorage as Lo}from"@sentio/runtime";import{AsyncLocalStorage as So}from"async_hooks";import{processMetrics as Fo}from"@sentio/runtime";var Dr=new So;function Lr(){return{set:(n,t,e,r)=>{if(e.handler){let s=Dr.getStore(),a=e.handler;e.handler=async(...o)=>{let i=Date.now(),c=await a(...o);return Fo.process_handler_duration.record(Date.now()-i,{handler:s}),c}}return Reflect.set(n,t,e,r)}}}import("process").then(n=>n.stdout.write(""));var R=()=>({ethCallParams:[]});var wn=class extends Lo{},Ie=wn;H(Ie,"INSTANCE",new wn);var Xe=class{config;blockHandlers=[];transactionHandler=[];traceHandlers=[];static bind(t){let e=new Xe(t);return Ie.INSTANCE.addValue(e),e}constructor(t){this.config={address:"*",name:t.name||"Global",network:t.network||Cn.EthChainId.ETHEREUM,startBlock:0n},t.startBlock&&(this.config.startBlock=BigInt(t.startBlock)),t.endBlock&&(this.config.endBlock=BigInt(t.endBlock))}onBlockInterval(t,e=250,r=1e3,s,a=R){return this.onInterval(t,void 0,{recentInterval:e,backfillInterval:r},s,a)}onTimeInterval(t,e=60,r=240,s,a=R){return this.onInterval(t,{recentInterval:e,backfillInterval:r},void 0,s,a)}getChainId(){return this.config.network}onInterval(t,e,r,s,a=R){let o=this.getChainId();e&&e.backfillInterval<e.recentInterval&&(e.backfillInterval=e.recentInterval);let i=this;return this.blockHandlers.push({handler:async function(c){let{block:l}=X(c);if(!l)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Block is empty");let u=new xt(o,"*",new Date(l.timestamp*1e3),l,void 0,void 0,void 0,void 0,i.config.baseLabels);return await t(l,u),u.stopAndGetResult()},preprocessHandler:async function(c,l){let{block:u}=X(c);if(!u)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Block is empty");let d=new xt(o,"*",new Date(u.timestamp*1e3),u,void 0,void 0,void 0,void 0,i.config.baseLabels);return a(u,d,l)},timeIntervalInMinutes:e,blockInterval:r,fetchConfig:st.fromPartial(s||{})}),this}onTransaction(t,e,r=R){let s=this.getChainId(),a=this;return this.transactionHandler.push({handler:async function(o){let{trace:i,block:c,transaction:l,transactionReceipt:u}=X(o);if(!l)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"transaction is empty");let d=l.to;d===i?.action.from&&(d="*");let p=new xt(s,d||"*",o.timestamp,c,void 0,i,l,u,a.config.baseLabels);return await t(l,p),p.stopAndGetResult()},preprocessHandler:async function(o,i){let{trace:c,block:l,transaction:u,transactionReceipt:d}=X(o);if(!u)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"transaction is empty");let p=u.to;p===c?.action.from&&(p="*");let h=new xt(s,p||"*",o.timestamp,l,void 0,c,u,d,a.config.baseLabels);return r(u,h,i)},fetchConfig:st.fromPartial(e||{})}),this}onTrace(t,e,r,s=R){let a=this.getChainId();typeof t=="string"&&(t=[t]);for(let i of t)if(i.length<=2)throw new Error("Invalid signature length, must start with 0x");let o=this;return this.traceHandlers.push({signatures:t,fetchConfig:st.fromPartial(r||{}),handler:async function(i){let{trace:c,block:l,transaction:u,transactionReceipt:d}=X(i);if(!c)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace is null");let p=new xt(a,c.action.to||"*",i.timestamp,l,void 0,c,u,d,o.config.baseLabels);return await e(c,p),p.stopAndGetResult()},preprocessHandler:async function(i,c){let{trace:l,block:u,transaction:d,transactionReceipt:p}=X(i);if(!l)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace is null");let h=new xt(a,l.action.to||"*",i.timestamp,u,void 0,l,d,p,o.config.baseLabels);return s(l,h,c)}}),this}},Rt=class{blockHandlers=[];eventHandlers=[];traceHandlers=[];config;constructor(t){return this.config={address:t.address,name:t.name||"",network:t.network||Cn.EthChainId.ETHEREUM,startBlock:0n,baseLabels:t.baseLabels},t.startBlock&&(this.config.startBlock=BigInt(t.startBlock)),t.endBlock&&(this.config.endBlock=BigInt(t.endBlock)),this.blockHandlers=new Proxy(this.blockHandlers,Lr()),this.eventHandlers=new Proxy(this.eventHandlers,Lr()),this.traceHandlers=new Proxy(this.traceHandlers,Lr()),new Proxy(this,{get:(e,r,s)=>Dr.run(Dr.getStore()||r.toString(),()=>{let a=e[r];return typeof a=="function"?Do.bind((...o)=>a.apply(s,o)):Reflect.get(e,r,s)})})}getChainId(){return this.config.network}onEvent(t,e,r=R){let s=[],a=this.CreateBoundContractView();for(let o of a.rawContract.interface.fragments)if(o.type==="event"){let i=a.rawContract.filters[o.format()];s.push(i())}return this.onEthEvent(t,s,e,r)}onEthEvent(t,e,r,s=R){let a=this.getChainId(),o=[];Array.isArray(e)?o=e:o.push(e);let i=this.config.name,c=this;return this.eventHandlers.push({filters:o,fetchConfig:st.fromPartial(r||{}),handler:async function(l,u){let{log:d,block:p,transaction:h,transactionReceipt:x}=X(l);if(!d)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Log is empty");let w;try{w=c.CreateBoundContractView()}catch(L){throw L}c.config.address==="*"&&(w.address=d.address);let A=new Ct(i,w,a,l.timestamp,p,d,void 0,h,x,c.config.baseLabels,u),k=d,N=null;try{N=w.rawContract.interface.parseLog(k)}catch(L){if(L instanceof Error&&L.message.includes("data out-of-bounds"))return console.error("Can't decode",d,"may because of incompatible ABIs, e.g. string vs indexed string",L),ue.fromPartial({});throw L}if(N){let L={...d,name:N.name,args:ve(N)};return await t(L,A),A.stopAndGetResult()}return ue.fromPartial({})},preprocessHandler:async function(l,u){let{log:d,block:p,transaction:h,transactionReceipt:x}=X(l);if(!d)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Log is empty");let w;try{w=c.CreateBoundContractView()}catch(L){throw L}c.config.address==="*"&&(w.address=d.address);let A=new Ct(i,w,a,l.timestamp,p,d,void 0,h,x,c.config.baseLabels),k=d,N=null;try{N=w.rawContract.interface.parseLog(k)}catch(L){if(L instanceof Error&&L.message.includes("data out-of-bounds"))return console.error("Can't decode",d,"may because of incompatible ABIs, e.g. string vs indexed string",L),$t.fromPartial({});throw L}if(N){let L={...d,name:N.name,args:ve(N)};return s(L,A,u)}return $t.fromPartial({})}}),this}onBlockInterval(t,e=250,r=1e3,s,a=R){return this.onInterval(t,void 0,{recentInterval:e,backfillInterval:r},s,a)}onTimeInterval(t,e=60,r=240,s,a=R){return this.onInterval(t,{recentInterval:e,backfillInterval:r},void 0,s,a)}onInterval(t,e,r,s,a=R){let o=this.getChainId(),i=this,c=this.config.name;return this.blockHandlers.push({handler:async function(l,u){let{block:d}=X(l);if(!d)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Block is empty");let p=i.CreateBoundContractView(),h=new Ct(c,p,o,new Date(d.timestamp*1e3),d,void 0,void 0,void 0,void 0,i.config.baseLabels,u);return await t(d,h),h.stopAndGetResult()},preprocessHandler:async function(l,u){let{block:d}=X(l);if(!d)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"Block is empty");let p=i.CreateBoundContractView(),h=new Ct(c,p,o,new Date(d.timestamp*1e3),d,void 0,void 0,void 0,void 0,i.config.baseLabels);return a(d,h,u)},timeIntervalInMinutes:e,blockInterval:r,fetchConfig:st.fromPartial(s||{})}),this}onEthTrace(t,e,r,s=R){let a=this.getChainId(),o=this.config.name,i=this;return typeof t=="string"&&(t=[t]),this.traceHandlers.push({signatures:t,fetchConfig:st.fromPartial(r||{}),handler:async function(c,l){let u=i.CreateBoundContractView(),d=u.rawContract.interface,{trace:p,block:h,transaction:x,transactionReceipt:w}=X(c),A=p?.action.input?.slice(0,10);if(!A)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace has no sighash");let k=d.getFunction(A);if(!p||!k)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace is null");let N=p;if(N.name=k.name,N.functionSignature=k.format(),!p?.action.input)return ue.fromPartial({});let L="0x"+p.action.input.slice(10);try{N.args=d.getAbiCoder().decode(k.inputs,L,!0)}catch(Re){if(!p.error)throw Re;console.error("Failed to decode successful trace",Re)}let le=new Ct(o,u,a,c.timestamp,h,void 0,p,x,w,i.config.baseLabels,l);return await e(N,le),le.stopAndGetResult()},preprocessHandler:async function(c,l){let u=i.CreateBoundContractView(),d=u.rawContract.interface,{trace:p,block:h,transaction:x,transactionReceipt:w}=X(c),A=p?.action.input?.slice(0,10);if(!A)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace has no sighash");let k=d.getFunction(A);if(!p||!k)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"trace is null");let N=p;if(N.name=k.name,N.functionSignature=k.format(),!p?.action.input)return $t.fromPartial({});let L="0x"+p.action.input.slice(10);try{N.args=d.getAbiCoder().decode(k.inputs,L,!0)}catch(Re){if(!p.error)throw Re;console.error("Failed to decode successful trace",Re)}let le=new Ct(o,u,a,c.timestamp,h,void 0,p,x,w,i.config.baseLabels);return s(N,le,l)}}),this}onTrace(t,e,r=R){let s=this.CreateBoundContractView(),a=[];for(let o of s.rawContract.interface.fragments)if(o.type==="function"){let i=o.format(),c=new TextEncoder().encode(i),l="0x"+ga.default.keccak_256(c).substring(0,8);a.push(l)}return this.onEthTrace(a,t,e,r)}};import("process").then(n=>n.stdout.write(""));import{getProvider as Ho}from"@sentio/runtime";var ya=Tt(Ne(),1),Tn=class{address;network=ya.EthChainId.ETHEREUM;name;startBlock;endBlock;baseLabels};function Ze(n){let t=[n.address];return n.network&&t.push(n.network),n.name&&t.push(n.name),n.startBlock&&t.push(n.startBlock.toString()),n.endBlock&&t.push(n.endBlock.toString()),t.join("_")}var En=class{address;network;startBlock;baseLabels};import("process").then(n=>n.stdout.write(""));import{MapStateStorage as _o}from"@sentio/runtime";var kn=class extends _o{},re=kn;H(re,"INSTANCE",new kn);var ba=new Map;function xa(n,t,e){return[n,t.toLowerCase(),e].join("_")}function ne(n){let t=Ze(n);return re.INSTANCE.getValue(t)}function Ot(n,t){let e=Ze(n);re.INSTANCE.getOrSetValue(e,t)}function Ye(n,t,e){let r=xa(n,t,e);return ba.get(r)}function Qe(n,t,e,r){let s=xa(n,t,e);return ba.set(s,r)}import("process").then(n=>n.stdout.write(""));var qe=class extends Rt{eventABI;constructor(t,e){super(e),this.eventABI=t}CreateBoundContractView(){let t=new ft(this.config.address,this.eventABI,Ho(this.config.network));return new At(this.config.address,new It(t))}static bind(t,e){Array.isArray(t)||(t=[t]),e.name||(e.name="Generic");let r=new qe(t,e);return Ot(e,r),r}};import("process").then(n=>n.stdout.write(""));import{ListStateStorage as Vo,processMetrics as Uo}from"@sentio/runtime";var vn=class extends Vo{},se=vn;H(se,"INSTANCE",new vn);var ae=class{id;binds=new Set;blockHandlers=[];traceHandlers=[];eventHandlers=[];constructor(){this.id=se.INSTANCE.getValues().length,se.INSTANCE.addValue(this),Uo.process_template_count.add(1)}bind(t,e){let r=Ze({address:t.address,network:e.chainId});if(this.binds.has(r)){console.log(`Same address can be bind to one template only once, ignore duplicate bind: ${r}`);return}this.binds.add(r);let s=this.bindInternal({...t,network:e.chainId});for(let o of this.eventHandlers)s.onEthEvent(o.handler,o.filter,o.fetchConfig,o.preprocessHandler);for(let o of this.traceHandlers)s.onEthTrace(o.signature,o.handler,o.fetchConfig,o.preprocessHandler);for(let o of this.blockHandlers)s.onInterval(o.handler,o.timeIntervalInMinutes,o.blockInterval,o.fetchConfig,o.preprocessHandler);let a={templateId:this.id,contract:{address:t.address,name:t.name||"",chainId:e.chainId,abi:""},startBlock:BigInt(t.startBlock||0),endBlock:BigInt(t.endBlock||0),baseLabels:t.baseLabels};ir.INSTANCE.addValue(a),e.update({states:{configUpdated:!0}})}onEthEvent(t,e,r,s=R){return this.eventHandlers.push({handler:t,preprocessHandler:s,filter:e,fetchConfig:st.fromPartial(r||{})}),this}onBlockInterval(t,e=1e3,r=4e3,s,a=R){return this.onInterval(t,void 0,{recentInterval:e,backfillInterval:r},s,a)}onTimeInterval(t,e=60,r=240,s,a=R){return this.onInterval(t,{recentInterval:e,backfillInterval:r},void 0,s,a)}onInterval(t,e,r,s,a=R){return this.blockHandlers.push({handler:t,preprocessHandler:a,timeIntervalInMinutes:e,blockInterval:r,fetchConfig:s}),this}onTrace(t,e,r,s=R){return this.traceHandlers.push({signature:t,handler:e,preprocessHandler:s,fetchConfig:st.fromPartial(r||{})}),this}};import("process").then(n=>n.stdout.write(""));var Pn=[{inputs:[{internalType:"address",name:"_aggregator",type:"address"},{internalType:"address",name:"_accessController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"int256",name:"current",type:"int256"},{indexed:!0,internalType:"uint256",name:"roundId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"updatedAt",type:"uint256"}],name:"AnswerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"roundId",type:"uint256"},{indexed:!0,internalType:"address",name:"startedBy",type:"address"},{indexed:!1,internalType:"uint256",name:"startedAt",type:"uint256"}],name:"NewRound",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"OwnershipTransferRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"accessController",outputs:[{internalType:"contract AccessControllerInterface",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"aggregator",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_aggregator",type:"address"}],name:"confirmAggregator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"description",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_roundId",type:"uint256"}],name:"getAnswer",outputs:[{internalType:"int256",name:"",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint80",name:"_roundId",type:"uint80"}],name:"getRoundData",outputs:[{internalType:"uint80",name:"roundId",type:"uint80"},{internalType:"int256",name:"answer",type:"int256"},{internalType:"uint256",name:"startedAt",type:"uint256"},{internalType:"uint256",name:"updatedAt",type:"uint256"},{internalType:"uint80",name:"answeredInRound",type:"uint80"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_roundId",type:"uint256"}],name:"getTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestAnswer",outputs:[{internalType:"int256",name:"",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestRound",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestRoundData",outputs:[{internalType:"uint80",name:"roundId",type:"uint80"},{internalType:"int256",name:"answer",type:"int256"},{internalType:"uint256",name:"startedAt",type:"uint256"},{internalType:"uint256",name:"updatedAt",type:"uint256"},{internalType:"uint80",name:"answeredInRound",type:"uint80"}],stateMutability:"view",type:"function"},{inputs:[],name:"latestTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"",type:"uint16"}],name:"phaseAggregators",outputs:[{internalType:"contract AggregatorV2V3Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"phaseId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_aggregator",type:"address"}],name:"proposeAggregator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"proposedAggregator",outputs:[{internalType:"contract AggregatorV2V3Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint80",name:"_roundId",type:"uint80"}],name:"proposedGetRoundData",outputs:[{internalType:"uint80",name:"roundId",type:"uint80"},{internalType:"int256",name:"answer",type:"int256"},{internalType:"uint256",name:"startedAt",type:"uint256"},{internalType:"uint256",name:"updatedAt",type:"uint256"},{internalType:"uint80",name:"answeredInRound",type:"uint80"}],stateMutability:"view",type:"function"},{inputs:[],name:"proposedLatestRoundData",outputs:[{internalType:"uint80",name:"roundId",type:"uint80"},{internalType:"int256",name:"answer",type:"int256"},{internalType:"uint256",name:"startedAt",type:"uint256"},{internalType:"uint256",name:"updatedAt",type:"uint256"},{internalType:"uint80",name:"answeredInRound",type:"uint80"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_accessController",type:"address"}],name:"setController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],tr=class{static createInterface(){return new b(Pn)}static connect(t,e){return new K(t,Pn,e)}};H(tr,"abi",Pn);import("process").then(n=>n.stdout.write(""));var In=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"values",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"accounts",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}],er=class{static createInterface(){return new b(In)}static connect(t,e){return new K(t,In,e)}};H(er,"abi",In);import("process").then(n=>n.stdout.write(""));var An=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burnFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"locker",outputs:[{internalType:"contract ILocker",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_locker",type:"address"}],name:"setLocker",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],ht=class{static createInterface(){return new b(An)}static connect(t,e){return new K(t,An,e)}};H(ht,"abi",An);import("process").then(n=>n.stdout.write(""));var Rn=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"spender",type:"address"},{name:"value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"who",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"to",type:"address"},{name:"value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{name:"_name",type:"string"},{name:"_symbol",type:"string"},{name:"_decimals",type:"uint8"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}],rr=class{static createInterface(){return new b(Rn)}static connect(t,e){return new K(t,Rn,e)}};H(rr,"abi",Rn);import("process").then(n=>n.stdout.write(""));var On=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"operator",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"_approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}],mt=class{static createInterface(){return new b(On)}static connect(t,e){return new K(t,On,e)}};H(mt,"abi",On);import("process").then(n=>n.stdout.write(""));var Nn=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"guy",type:"address"},{name:"wad",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"src",type:"address"},{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"wad",type:"uint256"}],name:"withdraw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[],name:"deposit",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[{name:"",type:"address"},{name:"",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"guy",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Withdrawal",type:"event"}],nr=class{static createInterface(){return new b(Nn)}static connect(t,e){return new K(t,Nn,e)}};H(nr,"abi",Nn);import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));var zo={};Un(zo,{ERC20BoundContractView:()=>sr,ERC20ContractView:()=>_r,ERC20Processor:()=>Mt,ERC20ProcessorTemplate:()=>Bn,ERC20__factory:()=>ht,getERC20Contract:()=>oe,getERC20ContractOnContext:()=>Go,mockApprovalLog:()=>$o,mockOwnershipTransferredLog:()=>jo,mockTransferLog:()=>Wo});var Nt=ht.connect("0x0",Vr),Np=new b(["function allowance(address owner, address spender) view returns (uint256)","function approve(address spender, uint256 amount) returns (bool)","function balanceOf(address account) view returns (uint256)","function burn(uint256 amount) returns ()","function burnFrom(address account, uint256 amount) returns ()","function decimals() view returns (uint8)","function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)","function increaseAllowance(address spender, uint256 addedValue) returns (bool)","function locker() view returns (address)","function name() view returns (string)","function owner() view returns (address)","function renounceOwnership() returns ()","function setLocker(address _locker) returns ()","function symbol() view returns (string)","function totalSupply() view returns (uint256)","function transfer(address recipient, uint256 amount) returns (bool)","function transferFrom(address sender, address recipient, uint256 amount) returns (bool)","function transferOwnership(address newOwner) returns ()"]),_r=class extends It{constructor(t){super(t),this.callStatic.contract=t}async allowance(t,e,r,s,a){try{return await this.contract.getFunction("allowance(address,address)")(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}}async balanceOf(t,e,r,s){try{return await this.contract.getFunction("balanceOf(address)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async decimals(t,e,r){try{return await this.contract.getFunction("decimals()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async locker(t,e,r){try{return await this.contract.getFunction("locker()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async name(t,e,r){try{return await this.contract.getFunction("name()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async owner(t,e,r){try{return await this.contract.getFunction("owner()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async symbol(t,e,r){try{return await this.contract.getFunction("symbol()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async totalSupply(t,e,r){try{return await this.contract.getFunction("totalSupply()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}callStatic={contract:this.contract,async approve(t,e,r,s,a){try{return await this.contract.getFunction("approve(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async burn(t,e,r,s){try{return await this.contract.getFunction("burn(uint256)").staticCall(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}},async burnFrom(t,e,r,s,a){try{return await this.contract.getFunction("burnFrom(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async decreaseAllowance(t,e,r,s,a){try{return await this.contract.getFunction("decreaseAllowance(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async increaseAllowance(t,e,r,s,a){try{return await this.contract.getFunction("increaseAllowance(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async renounceOwnership(t,e,r){try{return await this.contract.getFunction("renounceOwnership()").staticCall(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},async setLocker(t,e,r,s){try{return await this.contract.getFunction("setLocker(address)").staticCall(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}},async transfer(t,e,r,s,a){try{return await this.contract.getFunction("transfer(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async transferFrom(t,e,r,s,a,o){try{return await this.contract.getFunction("transferFrom(address,address,uint256)").staticCall(t,e,r,s||{})}catch(i){let c=new Error().stack;throw g(i,void 0,c)}},async transferOwnership(t,e,r,s){try{return await this.contract.getFunction("transferOwnership(address)").staticCall(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}};encodeCall={allowance(t,e,r){try{let a=new b(["function allowance(address,address)"]).encodeFunctionData("allowance",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},approve(t,e,r){try{let a=new b(["function approve(address,uint256)"]).encodeFunctionData("approve",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},balanceOf(t,e){try{let s=new b(["function balanceOf(address)"]).encodeFunctionData("balanceOf",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},burn(t,e){try{let s=new b(["function burn(uint256)"]).encodeFunctionData("burn",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},burnFrom(t,e,r){try{let a=new b(["function burnFrom(address,uint256)"]).encodeFunctionData("burnFrom",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},decimals(t){try{let r=new b(["function decimals()"]).encodeFunctionData("decimals",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},decreaseAllowance(t,e,r){try{let a=new b(["function decreaseAllowance(address,uint256)"]).encodeFunctionData("decreaseAllowance",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},increaseAllowance(t,e,r){try{let a=new b(["function increaseAllowance(address,uint256)"]).encodeFunctionData("increaseAllowance",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},locker(t){try{let r=new b(["function locker()"]).encodeFunctionData("locker",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},name(t){try{let r=new b(["function name()"]).encodeFunctionData("name",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},owner(t){try{let r=new b(["function owner()"]).encodeFunctionData("owner",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},renounceOwnership(t){try{let r=new b(["function renounceOwnership()"]).encodeFunctionData("renounceOwnership",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},setLocker(t,e){try{let s=new b(["function setLocker(address)"]).encodeFunctionData("setLocker",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},symbol(t){try{let r=new b(["function symbol()"]).encodeFunctionData("symbol",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},totalSupply(t){try{let r=new b(["function totalSupply()"]).encodeFunctionData("totalSupply",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},transfer(t,e,r){try{let a=new b(["function transfer(address,uint256)"]).encodeFunctionData("transfer",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},transferFrom(t,e,r,s){try{let o=new b(["function transferFrom(address,address,uint256)"]).encodeFunctionData("transferFrom",[t,e,r]);return{context:s,calldata:o}}catch(a){let o=new Error().stack;throw g(a,void 0,o)}},transferOwnership(t,e){try{let s=new b(["function transferOwnership(address)"]).encodeFunctionData("transferOwnership",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}}}},sr=class extends At{async allowance(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.allowance(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)}async balanceOf(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.balanceOf(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async decimals(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.decimals({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async locker(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.locker({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async name(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.name({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async owner(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.owner({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async symbol(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.symbol({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async totalSupply(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.totalSupply({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}callStatic={view:this.view,context:this.context,async approve(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.approve(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async burn(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.burn(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)},async burnFrom(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.burnFrom(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async decreaseAllowance(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.decreaseAllowance(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async increaseAllowance(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.increaseAllowance(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async renounceOwnership(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.renounceOwnership({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)},async setLocker(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.setLocker(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)},async transfer(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.transfer(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async transferFrom(t,e,r,s){let a={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.transferFrom(t,e,r,{blockTag:this.context.blockNumber,...s},this.context.preparedData,a)},async transferOwnership(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.transferOwnership(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}};encodeCall={view:this.view,context:this.context,allowance(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.allowance(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},approve(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.approve(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},balanceOf(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.balanceOf(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},burn(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.burn(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},burnFrom(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.burnFrom(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},decimals(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.decimals({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},decreaseAllowance(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.decreaseAllowance(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},increaseAllowance(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.increaseAllowance(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},locker(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.locker({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},name(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.name({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},owner(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.owner({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},renounceOwnership(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.renounceOwnership({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},setLocker(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.setLocker(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},symbol(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.symbol({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},totalSupply(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.totalSupply({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},transfer(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.transfer(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},transferFrom(t,e,r,s){let a="0x"+this.context.blockNumber.toString(16);return s?.blockTag&&(a=typeof s.blockTag=="string"?s.blockTag:"0x"+s.blockTag.toString(16)),this.view.encodeCall.transferFrom(t,e,r,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:a})},transferOwnership(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.transferOwnership(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})}}},Sn=class extends Rt{onEventApproval(t,e,r,s){return e||(e=Nt.filters["Approval(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventOwnershipTransferred(t,e,r,s){return e||(e=Nt.filters["OwnershipTransferred(address,address)"](null,null)),super.onEthEvent(t,e,r,s)}onEventTransfer(t,e,r,s){return e||(e=Nt.filters["Transfer(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onCallAllowance(t,e,r){return super.onEthTrace("0xdd62ed3e",t,e,r)}onCallApprove(t,e,r){return super.onEthTrace("0x095ea7b3",t,e,r)}onCallBalanceOf(t,e,r){return super.onEthTrace("0x70a08231",t,e,r)}onCallBurn(t,e,r){return super.onEthTrace("0x42966c68",t,e,r)}onCallBurnFrom(t,e,r){return super.onEthTrace("0x79cc6790",t,e,r)}onCallDecimals(t,e,r){return super.onEthTrace("0x313ce567",t,e,r)}onCallDecreaseAllowance(t,e,r){return super.onEthTrace("0xa457c2d7",t,e,r)}onCallIncreaseAllowance(t,e,r){return super.onEthTrace("0x39509351",t,e,r)}onCallLocker(t,e,r){return super.onEthTrace("0xd7b96d4e",t,e,r)}onCallName(t,e,r){return super.onEthTrace("0x06fdde03",t,e,r)}onCallOwner(t,e,r){return super.onEthTrace("0x8da5cb5b",t,e,r)}onCallRenounceOwnership(t,e,r){return super.onEthTrace("0x715018a6",t,e,r)}onCallSetLocker(t,e,r){return super.onEthTrace("0x171060ec",t,e,r)}onCallSymbol(t,e,r){return super.onEthTrace("0x95d89b41",t,e,r)}onCallTotalSupply(t,e,r){return super.onEthTrace("0x18160ddd",t,e,r)}onCallTransfer(t,e,r){return super.onEthTrace("0xa9059cbb",t,e,r)}onCallTransferFrom(t,e,r){return super.onEthTrace("0x23b872dd",t,e,r)}onCallTransferOwnership(t,e,r){return super.onEthTrace("0xf2fde38b",t,e,r)}CreateBoundContractView(){let t=oe(this.config.network,this.config.address);return new sr(this.config.address,t)}static bind(t){t.name||(t.name="ERC20");let e=ne(t);return e||(e=new Sn(t),Ot(t,e)),e}},Mt=Sn;H(Mt,"filters",{Approval(t,e,r){return Nt.filters["Approval(address,address,uint256)"](t,e,r)},OwnershipTransferred(t,e){return Nt.filters["OwnershipTransferred(address,address)"](t,e)},Transfer(t,e,r){return Nt.filters["Transfer(address,address,uint256)"](t,e,r)}});var Bn=class extends ae{bindInternal(t){t.name||(t.name="ERC20");let e=ne(t);return e||(e=new Mt(t),Ot(t,e)),e}onEventApproval(t,e,r,s){return e||(e=Nt.filters["Approval(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventOwnershipTransferred(t,e,r,s){return e||(e=Nt.filters["OwnershipTransferred(address,address)"](null,null)),super.onEthEvent(t,e,r,s)}onEventTransfer(t,e,r,s){return e||(e=Nt.filters["Transfer(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}};function oe(n,t){let e=Ye("ERC20",t,n);if(!e){let r=ht.connect(t,Hr(n));e=new _r(r),Qe("ERC20",t,n,e)}return e}function Go(n,t){let e=oe(n.getChainId(),t),r=new sr(t,e);return r.context=n,r.callStatic&&(r.callStatic.context=n),r}import("process").then(n=>n.stdout.write(""));var Fn={blockHash:"0x0000000000000000000000000000000000000000000000000000000000000000",blockNumber:0,logIndex:0,removed:!1,transactionHash:"0x0000000000000000000000000000000000000000000000000000000000000000",transactionIndex:0};function $o(n,t){let r=oe(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("Approval(address,address,uint256)",[t.owner,t.spender,t.value]);return{...Fn,index:0,address:n,data:r.data,topics:r.topics}}function jo(n,t){let r=oe(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("OwnershipTransferred(address,address)",[t.previousOwner,t.newOwner]);return{...Fn,index:0,address:n,data:r.data,topics:r.topics}}function Wo(n,t){let r=oe(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("Transfer(address,address,uint256)",[t.from,t.to,t.value]);return{...Fn,index:0,address:n,data:r.data,topics:r.topics}}import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));import{ListStateStorage as Jo}from"@sentio/runtime";var Dn=class extends Jo{},ie=Dn;H(ie,"INSTANCE",new Dn);import("process").then(n=>n.stdout.write(""));var wa=Tt(Ne(),1),Ae=Tt(Jr(),1),Ca=ht.createInterface(),nf=mt.createInterface(),ar=class{config;eventHandlers=[];static bind(t){let e=new ar(t);return ie.INSTANCE.addValue(e),e}constructor(t){this.config={...t,network:t.network||wa.EthChainId.ETHEREUM}}getChainId(){return this.config.network}onERC20TransferIn(t,e=[],r,s=R){return this.onERC20(t,e,a=>wt.filters.Transfer(null,this.config.address),r,s)}onERC20TransferOut(t,e=[],r,s=R){return this.onERC20(t,e,a=>Mt.filters.Transfer(this.config.address),r,s)}onERC20Minted(t,e=[],r,s=R){return this.onERC20(t,e,a=>Mt.filters.Transfer("0x0000000000000000000000000000000000000000",this.config.address),r,s)}onERC20(t,e=[],r,s,a=R){return this.onERC(t,e,r,Wr.ERC20,s,a)}onERC721TransferIn(t,e,r,s=R){return this.onERC721(t,e,a=>wt.filters.Transfer(null,this.config.address),r,s)}onERC721TransferOut(t,e,r,s=R){return this.onERC721(t,e,a=>wt.filters.Transfer(this.config.address),r,s)}onERC721Minted(t,e=[],r,s=R){return this.onERC721(t,e,a=>wt.filters.Transfer("0x0000000000000000000000000000000000000000",this.config.address),r,s)}onERC721(t,e,r,s,a=R){return this.onERC(t,e,r,Wr.ERC721,s,a)}onERC(t,e,r,s,a,o=R){let i=[];for(let c of e){let l=r(this.config.address);l.address=c,i.push(l)}if(!i.length){let c=r(this.config.address);c.address=void 0,c.addressType=s,i.push(c)}return this.onEvent(t,i,a,o)}onEvent(t,e,r,s=R){let a=this.getChainId(),o=[];Array.isArray(e)?o=e:o.push(e);let i=this.config;return this.eventHandlers.push({filters:o,fetchConfig:st.fromPartial(r||{}),handler:async function(c){let{log:l,block:u,transaction:d,transactionReceipt:p}=X(c);if(!l)throw new Ae.ServerError(Ae.Status.INVALID_ARGUMENT,"Log is empty");let h=new ke(a,i.address,c.timestamp,c.block,l,void 0,d,p),x=l,w=Ca.parseLog(x);if(w){let A={...l,name:w.name,args:ve(w)};return await t(A,h),h.stopAndGetResult()}return ue.fromPartial({})},preprocessHandler:async function(c,l){let{log:u,block:d,transaction:p,transactionReceipt:h}=X(c);if(!u)throw new Ae.ServerError(Ae.Status.INVALID_ARGUMENT,"Log is empty");let x=new ke(a,i.address,c.timestamp,c.block,u,void 0,p,h),w=u,A=Ca.parseLog(w);if(A){let k={...u,name:A.name,args:ve(A)};return s(k,x,l)}return $t.fromPartial({})}}),this}};import("process").then(n=>n.stdout.write(""));import{getProvider as Hr,DummyProvider as Vr}from"@sentio/runtime";import{errorString as Gt,mergeProcessResults as Ur,Plugin as Ko,PluginManager as Xo,USER_PROCESSOR as Ta,GLOBAL_CONFIG as Mr}from"@sentio/runtime";var v=Tt(Jr(),1);var Ea=Tt(Ne(),1);var $r=class extends Ko{name="EthPlugin";handlers={blockHandlers:[],eventHandlers:[],traceHandlers:[],transactionHandlers:[]};preprocessHandlers={blockHandlers:[],eventHandlers:[],traceHandlers:[],transactionHandlers:[]};async configure(t){let e={blockHandlers:[],eventHandlers:[],traceHandlers:[],transactionHandlers:[]},r={blockHandlers:[],eventHandlers:[],traceHandlers:[],transactionHandlers:[]};for(let s of re.INSTANCE.getValues()){let a=s.getChainId(),o=zr.fromPartial({processorType:Ta,contract:{name:s.config.name,chainId:a.toString(),address:Pe(s.config.address),abi:""},startBlock:s.config.startBlock,endBlock:s.config.endBlock});for(let i of s.blockHandlers){r.blockHandlers.push(i.preprocessHandler??R);let c=e.blockHandlers.push(i.handler)-1;o.intervalConfigs.push({slot:0,slotInterval:i.blockInterval,minutes:0,minutesInterval:i.timeIntervalInMinutes,handlerId:c,fetchConfig:i.fetchConfig})}for(let i of s.traceHandlers){r.traceHandlers.push(i.preprocessHandler??R);let c=e.traceHandlers.push(i.handler)-1;for(let l of i.signatures)o.traceConfigs.push({signature:l,handlerId:c,fetchConfig:i.fetchConfig})}for(let i of s.eventHandlers){r.eventHandlers.push(i.preprocessHandler??R);let l={handlerId:e.eventHandlers.push(i.handler)-1,filters:[],fetchConfig:i.fetchConfig};for(let u of i.filters){let d=await u.getTopicFilter(),p={addressType:void 0,address:o.contract?.address&&Pe(o.contract.address),topics:[]};for(let h of d){let x=[];Array.isArray(h)?x=x.concat(h):h&&x.push(h),p.topics.push({hashes:x})}l.filters.push(p)}o.logConfigs.push(l)}t.contractConfigs.push(o)}for(let s of Ie.INSTANCE.getValues()){let a=s.getChainId(),o=zr.fromPartial({processorType:Ta,contract:{name:s.config.name,chainId:a.toString(),address:s.config.address,abi:""},startBlock:s.config.startBlock,endBlock:s.config.endBlock});for(let i of s.blockHandlers){r.blockHandlers.push(i.preprocessHandler??R);let c=e.blockHandlers.push(i.handler)-1;o.intervalConfigs.push({slot:0,slotInterval:i.blockInterval,minutes:0,minutesInterval:i.timeIntervalInMinutes,handlerId:c,fetchConfig:i.fetchConfig})}for(let i of s.transactionHandler){r.transactionHandlers.push(i.preprocessHandler??R);let c=e.transactionHandlers.push(i.handler)-1;o.transactionConfig.push({handlerId:c,fetchConfig:i.fetchConfig})}for(let i of s.traceHandlers){r.traceHandlers.push(i.preprocessHandler??R);let c=e.traceHandlers.push(i.handler)-1;for(let l of i.signatures)o.traceConfigs.push({signature:l,handlerId:c,fetchConfig:i.fetchConfig})}t.contractConfigs.push(o)}for(let s of ie.INSTANCE.getValues()){let a=Mn.fromPartial({address:Pe(s.config.address),chainId:s.getChainId().toString(),startBlock:s.config.startBlock?BigInt(s.config.startBlock):0n});for(let o of s.eventHandlers){r.eventHandlers.push(o.preprocessHandler??R);let c={handlerId:e.eventHandlers.push(o.handler)-1,filters:[],fetchConfig:o.fetchConfig};for(let l of o.filters){let u=await l.getTopicFilter(),d;l.address&&(d=l.address.toString());let p={addressType:l.addressType,address:d&&Pe(d),topics:[]};for(let h of u){let x=[];Array.isArray(h)?x=x.concat(h):h&&x.push(h),p.topics.push({hashes:x})}c.filters.push(p)}a.logConfigs.push(c)}t.accountConfigs.push(a)}this.handlers=e,this.preprocessHandlers=r}supportedHandlers=[nt.ETH_LOG,nt.ETH_BLOCK,nt.ETH_TRACE,nt.ETH_TRANSACTION];processBinding(t,e){switch(t.handlerType){case nt.ETH_LOG:return this.processLog(t,e);case nt.ETH_TRACE:return this.processTrace(t,e);case nt.ETH_BLOCK:return this.processBlock(t,e);case nt.ETH_TRANSACTION:return this.processTransaction(t,e);default:throw new v.ServerError(v.Status.INVALID_ARGUMENT,"No handle type registered "+t.handlerType)}}preprocessBinding(t,e){switch(t.handlerType){case nt.ETH_LOG:return this.preprocessLog(t,e);case nt.ETH_TRACE:return this.preprocessTrace(t,e);case nt.ETH_BLOCK:return this.preprocessBlock(t,e);case nt.ETH_TRANSACTION:return this.preprocessTransaction(t,e);default:throw new v.ServerError(v.Status.INVALID_ARGUMENT,"No handle type registered "+t.handlerType)}}async start(t){let e=new Set(Object.values(Ea.EthChainId));for(let r of t.templateInstances){if(!e.has(r.contract?.chainId||""))continue;let s=se.INSTANCE.getValues()[r.templateId];if(!s)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Invalid template contract:"+r);if(!r.contract)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Contract Empty from:"+r);let a=new Ln(r.contract.chainId);s.bind({name:r.contract.name,address:Pe(r.contract.address),startBlock:r.startBlock,endBlock:r.endBlock,baseLabels:r.baseLabels},a)}}stateDiff(t){return ir.INSTANCE.getValues().length!==t.templateInstances.length}async preprocessLog(t,e){if(!t.data?.ethLog?.log)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Log can't be null");let r=t.data.ethLog,s=[];for(let a of t.handlerIds){let o=this.preprocessHandlers.eventHandlers[a],i=o(r,e).catch(c=>{throw new v.ServerError(v.Status.INTERNAL,"error processing log: "+JSON.stringify(r.log)+`
|
|
9
|
+
`+Gt(c))});s.push(i)}return Gr(await Promise.all(s))}async preprocessTrace(t,e){if(!t.data?.ethTrace?.trace)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Trace can't be null");let r=t.data.ethTrace,s=[];for(let a of t.handlerIds){let o=this.preprocessHandlers.traceHandlers[a](r,e).catch(i=>{throw new v.ServerError(v.Status.INTERNAL,"error processing trace: "+JSON.stringify(r.trace)+`
|
|
10
|
+
`+Gt(i))});s.push(o)}return Gr(await Promise.all(s))}async preprocessBlock(t,e){if(!t.data?.ethBlock?.block)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Block can't be empty");let r=t.data.ethBlock,s=[];for(let a of t.handlerIds){let o=this.preprocessHandlers.blockHandlers[a](r,e).catch(i=>{throw new v.ServerError(v.Status.INTERNAL,"error processing block: "+r.block?.number+`
|
|
11
|
+
`+Gt(i))});s.push(o)}return Gr(await Promise.all(s))}async preprocessTransaction(t,e){if(!t.data?.ethTransaction?.transaction)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"transaction can't be null");let r=t.data.ethTransaction,s=[];for(let a of t.handlerIds){let o=this.preprocessHandlers.transactionHandlers[a](r,e).catch(i=>{throw new v.ServerError(v.Status.INTERNAL,"error processing transaction: "+JSON.stringify(r.transaction)+`
|
|
12
|
+
`+Gt(i))});s.push(o)}return Gr(await Promise.all(s))}async processLog(t,e){if(!t.data?.ethLog?.log)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Log can't be null");let r=t.data.ethLog,s=[];for(let a of t.handlerIds){let o=this.handlers.eventHandlers[a],i=o(r,e).catch(c=>{throw console.error("error processing log: ",c),new v.ServerError(v.Status.INTERNAL,"error processing log: "+JSON.stringify(r.log)+`
|
|
13
|
+
`+Gt(c))});Mr.execution.sequential&&await i,s.push(i)}return Ur(await Promise.all(s))}async processTrace(t,e){if(!t.data?.ethTrace?.trace)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Trace can't be null");let r=t.data.ethTrace,s=[];for(let a of t.handlerIds){let o=this.handlers.traceHandlers[a](r,e).catch(i=>{throw console.error("error processing trace: ",i),new v.ServerError(v.Status.INTERNAL,"error processing trace: "+JSON.stringify(r.trace)+`
|
|
14
|
+
`+Gt(i))});Mr.execution.sequential&&await o,s.push(o)}return Ur(await Promise.all(s))}async processBlock(t,e){if(!t.data?.ethBlock?.block)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"Block can't be empty");let r=t.data.ethBlock,s=[];for(let a of t.handlerIds){let o=this.handlers.blockHandlers[a](r,e).catch(i=>{throw console.error("error processing block: ",i),new v.ServerError(v.Status.INTERNAL,"error processing block: "+r.block?.number+`
|
|
15
|
+
`+Gt(i))});Mr.execution.sequential&&await o,s.push(o)}return Ur(await Promise.all(s))}async processTransaction(t,e){if(!t.data?.ethTransaction?.transaction)throw new v.ServerError(v.Status.INVALID_ARGUMENT,"transaction can't be null");let r=t.data.ethTransaction,s=[];for(let a of t.handlerIds){let o=this.handlers.transactionHandlers[a](r,e).catch(i=>{throw new v.ServerError(v.Status.INTERNAL,"error processing transaction: "+JSON.stringify(r.transaction)+`
|
|
16
|
+
`+Gt(i))});Mr.execution.sequential&&await o,s.push(o)}return Ur(await Promise.all(s))}};Xo.INSTANCE.register(new $r);var Ln=class extends Ut{constructor(t){super(t,"")}getContractName(){return""}};function Gr(n){let t={ethCallParams:[]};for(let e of n)t.ethCallParams=t.ethCallParams.concat(e.ethCallParams);return t}import("process").then(n=>n.stdout.write(""));var Bt=Tt(Ne(),1);import{makeEthCallKey as Gf}from"@sentio/runtime";import("process").then(n=>n.stdout.write(""));var St=mt.connect("0x0",Vr),rh=new b(["function approve(address to, uint256 tokenId) returns ()","function totalSupply() view returns (uint256)","function balanceOf(address owner) view returns (uint256 balance)","function getApproved(uint256 tokenId) view returns (address operator)","function isApprovedForAll(address owner, address operator) view returns (bool)","function name() view returns (string)","function ownerOf(uint256 tokenId) view returns (address owner)","function safeTransferFrom(address from, address to, uint256 tokenId) returns ()","function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns ()","function setApprovalForAll(address operator, bool _approved) returns ()","function supportsInterface(bytes4 interfaceId) view returns (bool)","function symbol() view returns (string)","function tokenURI(uint256 tokenId) view returns (string)","function transferFrom(address from, address to, uint256 tokenId) returns ()"]),jr=class extends It{constructor(t){super(t),this.callStatic.contract=t}async totalSupply(t,e,r){try{return await this.contract.getFunction("totalSupply()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async balanceOf(t,e,r,s){try{return await this.contract.getFunction("balanceOf(address)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async getApproved(t,e,r,s){try{return await this.contract.getFunction("getApproved(uint256)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async isApprovedForAll(t,e,r,s,a){try{return await this.contract.getFunction("isApprovedForAll(address,address)")(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}}async name(t,e,r){try{return await this.contract.getFunction("name()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async ownerOf(t,e,r,s){try{return await this.contract.getFunction("ownerOf(uint256)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async supportsInterface(t,e,r,s){try{return await this.contract.getFunction("supportsInterface(bytes4)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}async symbol(t,e,r){try{return await this.contract.getFunction("symbol()")(t||{})}catch(s){let a=new Error().stack;throw g(s,void 0,a)}}async tokenURI(t,e,r,s){try{return await this.contract.getFunction("tokenURI(uint256)")(t,e||{})}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}callStatic={contract:this.contract,async approve(t,e,r,s,a){try{return await this.contract.getFunction("approve(address,uint256)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async safeTransferFrom_address_address_uint256(t,e,r,s,a,o){try{return await this.contract.getFunction("safeTransferFrom(address,address,uint256)").staticCall(t,e,r,s||{})}catch(i){let c=new Error().stack;throw g(i,void 0,c)}},async safeTransferFrom_address_address_uint256_bytes(t,e,r,s,a,o,i){try{return await this.contract.getFunction("safeTransferFrom(address,address,uint256,bytes)").staticCall(t,e,r,s,a||{})}catch(c){let l=new Error().stack;throw g(c,void 0,l)}},async setApprovalForAll(t,e,r,s,a){try{return await this.contract.getFunction("setApprovalForAll(address,bool)").staticCall(t,e,r||{})}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},async transferFrom(t,e,r,s,a,o){try{return await this.contract.getFunction("transferFrom(address,address,uint256)").staticCall(t,e,r,s||{})}catch(i){let c=new Error().stack;throw g(i,void 0,c)}}};encodeCall={approve(t,e,r){try{let a=new b(["function approve(address,uint256)"]).encodeFunctionData("approve",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},totalSupply(t){try{let r=new b(["function totalSupply()"]).encodeFunctionData("totalSupply",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},balanceOf(t,e){try{let s=new b(["function balanceOf(address)"]).encodeFunctionData("balanceOf",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},getApproved(t,e){try{let s=new b(["function getApproved(uint256)"]).encodeFunctionData("getApproved",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},isApprovedForAll(t,e,r){try{let a=new b(["function isApprovedForAll(address,address)"]).encodeFunctionData("isApprovedForAll",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},name(t){try{let r=new b(["function name()"]).encodeFunctionData("name",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},ownerOf(t,e){try{let s=new b(["function ownerOf(uint256)"]).encodeFunctionData("ownerOf",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},safeTransferFrom_address_address_uint256(t,e,r,s){try{let o=new b(["function safeTransferFrom(address,address,uint256)"]).encodeFunctionData("safeTransferFrom",[t,e,r]);return{context:s,calldata:o}}catch(a){let o=new Error().stack;throw g(a,void 0,o)}},safeTransferFrom_address_address_uint256_bytes(t,e,r,s,a){try{let i=new b(["function safeTransferFrom(address,address,uint256,bytes)"]).encodeFunctionData("safeTransferFrom",[t,e,r,s]);return{context:a,calldata:i}}catch(o){let i=new Error().stack;throw g(o,void 0,i)}},setApprovalForAll(t,e,r){try{let a=new b(["function setApprovalForAll(address,bool)"]).encodeFunctionData("setApprovalForAll",[t,e]);return{context:r,calldata:a}}catch(s){let a=new Error().stack;throw g(s,void 0,a)}},supportsInterface(t,e){try{let s=new b(["function supportsInterface(bytes4)"]).encodeFunctionData("supportsInterface",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},symbol(t){try{let r=new b(["function symbol()"]).encodeFunctionData("symbol",[]);return{context:t,calldata:r}}catch(e){let r=new Error().stack;throw g(e,void 0,r)}},tokenURI(t,e){try{let s=new b(["function tokenURI(uint256)"]).encodeFunctionData("tokenURI",[t]);return{context:e,calldata:s}}catch(r){let s=new Error().stack;throw g(r,void 0,s)}},transferFrom(t,e,r,s){try{let o=new b(["function transferFrom(address,address,uint256)"]).encodeFunctionData("transferFrom",[t,e,r]);return{context:s,calldata:o}}catch(a){let o=new Error().stack;throw g(a,void 0,o)}}}},or=class extends At{async totalSupply(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.totalSupply({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async balanceOf(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.balanceOf(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async getApproved(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.getApproved(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async isApprovedForAll(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.isApprovedForAll(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)}async name(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.name({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async ownerOf(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.ownerOf(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async supportsInterface(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.supportsInterface(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}async symbol(t){let e={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.symbol({blockTag:this.context.blockNumber,...t},this.context.preparedData,e)}async tokenURI(t,e){let r={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.tokenURI(t,{blockTag:this.context.blockNumber,...e},this.context.preparedData,r)}callStatic={view:this.view,context:this.context,async approve(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.approve(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async safeTransferFrom_address_address_uint256(t,e,r,s){let a={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.safeTransferFrom_address_address_uint256(t,e,r,{blockTag:this.context.blockNumber,...s},this.context.preparedData,a)},async safeTransferFrom_address_address_uint256_bytes(t,e,r,s,a){let o={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.safeTransferFrom_address_address_uint256_bytes(t,e,r,s,{blockTag:this.context.blockNumber,...a},this.context.preparedData,o)},async setApprovalForAll(t,e,r){let s={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.setApprovalForAll(t,e,{blockTag:this.context.blockNumber,...r},this.context.preparedData,s)},async transferFrom(t,e,r,s){let a={chainId:this.context.chainId,blockTag:"0x"+this.context.blockNumber.toString(16),address:this.context.address};return await this.view.callStatic.transferFrom(t,e,r,{blockTag:this.context.blockNumber,...s},this.context.preparedData,a)}};encodeCall={view:this.view,context:this.context,approve(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.approve(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},totalSupply(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.totalSupply({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},balanceOf(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.balanceOf(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},getApproved(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.getApproved(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},isApprovedForAll(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.isApprovedForAll(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},name(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.name({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},ownerOf(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.ownerOf(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},safeTransferFrom_address_address_uint256(t,e,r,s){let a="0x"+this.context.blockNumber.toString(16);return s?.blockTag&&(a=typeof s.blockTag=="string"?s.blockTag:"0x"+s.blockTag.toString(16)),this.view.encodeCall.safeTransferFrom_address_address_uint256(t,e,r,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:a})},safeTransferFrom_address_address_uint256_bytes(t,e,r,s,a){let o="0x"+this.context.blockNumber.toString(16);return a?.blockTag&&(o=typeof a.blockTag=="string"?a.blockTag:"0x"+a.blockTag.toString(16)),this.view.encodeCall.safeTransferFrom_address_address_uint256_bytes(t,e,r,s,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:o})},setApprovalForAll(t,e,r){let s="0x"+this.context.blockNumber.toString(16);return r?.blockTag&&(s=typeof r.blockTag=="string"?r.blockTag:"0x"+r.blockTag.toString(16)),this.view.encodeCall.setApprovalForAll(t,e,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:s})},supportsInterface(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.supportsInterface(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},symbol(t){let e="0x"+this.context.blockNumber.toString(16);return t?.blockTag&&(e=typeof t.blockTag=="string"?t.blockTag:"0x"+t.blockTag.toString(16)),this.view.encodeCall.symbol({chainId:this.context.chainId.toString(),address:this.context.address,blockTag:e})},tokenURI(t,e){let r="0x"+this.context.blockNumber.toString(16);return e?.blockTag&&(r=typeof e.blockTag=="string"?e.blockTag:"0x"+e.blockTag.toString(16)),this.view.encodeCall.tokenURI(t,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:r})},transferFrom(t,e,r,s){let a="0x"+this.context.blockNumber.toString(16);return s?.blockTag&&(a=typeof s.blockTag=="string"?s.blockTag:"0x"+s.blockTag.toString(16)),this.view.encodeCall.transferFrom(t,e,r,{chainId:this.context.chainId.toString(),address:this.context.address,blockTag:a})}}},Hn=class extends Rt{onEventApproval(t,e,r,s){return e||(e=St.filters["Approval(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventApprovalForAll(t,e,r,s){return e||(e=St.filters["ApprovalForAll(address,address,bool)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventTransfer(t,e,r,s){return e||(e=St.filters["Transfer(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onCallApprove(t,e,r){return super.onEthTrace("0x095ea7b3",t,e,r)}onCallTotalSupply(t,e,r){return super.onEthTrace("0x18160ddd",t,e,r)}onCallBalanceOf(t,e,r){return super.onEthTrace("0x70a08231",t,e,r)}onCallGetApproved(t,e,r){return super.onEthTrace("0x081812fc",t,e,r)}onCallIsApprovedForAll(t,e,r){return super.onEthTrace("0xe985e9c5",t,e,r)}onCallName(t,e,r){return super.onEthTrace("0x06fdde03",t,e,r)}onCallOwnerOf(t,e,r){return super.onEthTrace("0x6352211e",t,e,r)}onCallSafeTransferFrom_address_address_uint256(t,e,r){return super.onEthTrace("0x42842e0e",t,e,r)}onCallSafeTransferFrom_address_address_uint256_bytes(t,e,r){return super.onEthTrace("0xb88d4fde",t,e,r)}onCallSetApprovalForAll(t,e,r){return super.onEthTrace("0xa22cb465",t,e,r)}onCallSupportsInterface(t,e,r){return super.onEthTrace("0x01ffc9a7",t,e,r)}onCallSymbol(t,e,r){return super.onEthTrace("0x95d89b41",t,e,r)}onCallTokenURI(t,e,r){return super.onEthTrace("0xc87b56dd",t,e,r)}onCallTransferFrom(t,e,r){return super.onEthTrace("0x23b872dd",t,e,r)}CreateBoundContractView(){let t=ce(this.config.network,this.config.address);return new or(this.config.address,t)}static bind(t){t.name||(t.name="ERC721");let e=ne(t);return e||(e=new Hn(t),Ot(t,e)),e}},wt=Hn;H(wt,"filters",{Approval(t,e,r){return St.filters["Approval(address,address,uint256)"](t,e,r)},ApprovalForAll(t,e,r){return St.filters["ApprovalForAll(address,address,bool)"](t,e,r)},Transfer(t,e,r){return St.filters["Transfer(address,address,uint256)"](t,e,r)}});var _n=class extends ae{bindInternal(t){t.name||(t.name="ERC721");let e=ne(t);return e||(e=new wt(t),Ot(t,e)),e}onEventApproval(t,e,r,s){return e||(e=St.filters["Approval(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventApprovalForAll(t,e,r,s){return e||(e=St.filters["ApprovalForAll(address,address,bool)"](null,null,null)),super.onEthEvent(t,e,r,s)}onEventTransfer(t,e,r,s){return e||(e=St.filters["Transfer(address,address,uint256)"](null,null,null)),super.onEthEvent(t,e,r,s)}};function ce(n,t){let e=Ye("ERC721",t,n);if(!e){let r=mt.connect(t,Hr(n));e=new jr(r),Qe("ERC721",t,n,e)}return e}function Zo(n,t){let e=ce(n.getChainId(),t),r=new or(t,e);return r.context=n,r.callStatic&&(r.callStatic.context=n),r}import("process").then(n=>n.stdout.write(""));var Vn={blockHash:"0x0000000000000000000000000000000000000000000000000000000000000000",blockNumber:0,logIndex:0,removed:!1,transactionHash:"0x0000000000000000000000000000000000000000000000000000000000000000",transactionIndex:0};function Yo(n,t){let r=ce(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("Approval(address,address,uint256)",[t.owner,t.approved,t.tokenId]);return{...Vn,index:0,address:n,data:r.data,topics:r.topics}}function Qo(n,t){let r=ce(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("ApprovalForAll(address,address,bool)",[t.owner,t.operator,t.approved]);return{...Vn,index:0,address:n,data:r.data,topics:r.topics}}function qo(n,t){let r=ce(Bt.EthChainId.ETHEREUM,n).rawContract.interface.encodeEventLog("Transfer(address,address,uint256)",[t.from,t.to,t.tokenId]);return{...Vn,index:0,address:n,data:r.data,topics:r.topics}}import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));import("process").then(n=>n.stdout.write(""));export{Xs as a,b,Ut as c,ke as d,xt as e,Ct as f,It as g,At as h,Ke as i,g as j,ve as k,X as l,Bo as m,Fu as n,Pe as o,R as p,Xe as q,Rt as r,Tn as s,En as t,ne as u,Ot as v,Ye as w,Qe as x,qe as y,ae as z,tr as A,er as B,ht as C,rr as D,mt as E,nr as F,jr as G,or as H,wt as I,_n as J,ce as K,Zo as L,Yo as M,Qo as N,qo as O,ti as P,ar as Q,$r as R,Hr as S,Vr as T,Bt as U,Gf as V,_r as W,sr as X,Mt as Y,Bn as Z,oe as _,Go as $,$o as aa,jo as ba,Wo as ca,zo as da};
|
|
17
17
|
/*! Bundled license information:
|
|
18
18
|
|
|
19
19
|
@noble/hashes/esm/utils.js:
|
|
20
20
|
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
21
21
|
*/
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
22
|
+
//# sourceMappingURL=chunk-MB4EAYM4.js.map
|