@imtbl/sdk 1.43.2-alpha.8 → 1.43.2-alpha.9

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.
Files changed (36) hide show
  1. package/dist/blockchain_data.js +2 -2
  2. package/dist/browser/checkout/{BridgeWidget-658e152c.js → BridgeWidget-65a6f548.js} +1 -1
  3. package/dist/browser/checkout/{OnRampWidget-fea8789a.js → OnRampWidget-2ad8527a.js} +1 -1
  4. package/dist/browser/checkout/{SaleWidget-03dd6551.js → SaleWidget-39f46402.js} +1 -1
  5. package/dist/browser/checkout/{SpendingCapHero-220f61bf.js → SpendingCapHero-5ea5ca00.js} +1 -1
  6. package/dist/browser/checkout/{SwapWidget-d09f2ca0.js → SwapWidget-8f257923.js} +1 -1
  7. package/dist/browser/checkout/{TopUpView-4e4983da.js → TopUpView-1ee96622.js} +1 -1
  8. package/dist/browser/checkout/{WalletWidget-28ba6bfb.js → WalletWidget-d34a438a.js} +1 -1
  9. package/dist/browser/checkout/{auto-track-f8c278b4.js → auto-track-4bc18a69.js} +1 -1
  10. package/dist/browser/checkout/{balance-78f9d53c.js → balance-de2a2c73.js} +1 -1
  11. package/dist/browser/checkout/{index-d6bb330e.js → index-1672c9aa.js} +1 -1
  12. package/dist/browser/checkout/{index-a08c7054.js → index-1838fda1.js} +1 -1
  13. package/dist/browser/checkout/{index-963082eb.js → index-2244a7f0.js} +1 -1
  14. package/dist/browser/checkout/{index-1d657ceb.js → index-a5536772.js} +3 -3
  15. package/dist/browser/checkout/{index-a40f8006.js → index-b2a772fc.js} +1 -1
  16. package/dist/browser/checkout/{index-9fbf62cf.js → index-cc166624.js} +1 -1
  17. package/dist/browser/checkout/{index-e6efd23e.js → index-d8d68038.js} +1 -1
  18. package/dist/browser/checkout/index-f426b9fd.js +1 -0
  19. package/dist/browser/checkout/{index.umd-06c44429.js → index.umd-fd3873f7.js} +1 -1
  20. package/dist/browser/checkout/{retry-4841e554.js → retry-f5c958f0.js} +1 -1
  21. package/dist/browser/checkout/sdk.js +5 -5
  22. package/dist/browser/checkout/widgets-esm.js +1 -1
  23. package/dist/browser/checkout/widgets.js +1 -1
  24. package/dist/checkout.js +90 -57
  25. package/dist/config.js +1 -1
  26. package/dist/index.browser.js +5 -5
  27. package/dist/index.browser.js.map +1 -1
  28. package/dist/index.cjs +93 -60
  29. package/dist/index.js +93 -60
  30. package/dist/minting_backend.js +2 -2
  31. package/dist/orderbook.js +1 -1
  32. package/dist/passport.js +4 -4
  33. package/dist/webhook.js +1 -1
  34. package/dist/x.js +3 -3
  35. package/package.json +1 -1
  36. package/dist/browser/checkout/index-0ab42d36.js +0 -1
@@ -21,7 +21,7 @@
21
21
  * @author Chen, Yi-Cyuan [emn178@gmail.com]
22
22
  * @copyright Chen, Yi-Cyuan 2015-2018
23
23
  * @license MIT
24
- */!function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?r=Np:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&e.exports,o=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),c=[4,1024,262144,67108864],u=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new S(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new S(e,t,i).update(r)[n]()}},b=function(e,t,n){return function(t,r,i,a){return E["cshake"+e].update(t,r,i,a)[n]()}},g=function(e,t,n){return function(t,r,i,a){return E["kmac"+e].update(t,r,i,a)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var a=p[i];e[a]=t(n,r,a)}return e},w=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new S(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},T=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new S(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:c,bits:f,createMethod:function(e,t){var n=h[e],r=b(e,0,"hex");return r.create=function(r,i,a){return i||a?new S(e,t,r).bytepad([i,a],n):E["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,b,e,t)}},{name:"kmac",padding:c,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,a){return new k(e,t,i).bytepad(["KMAC",a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,g,e,t)}}],E={},A=[],x=0;x<T.length;++x)for(var O=T[x],I=O.bits,C=0;C<I.length;++C){var _=O.name+"_"+I[C];if(A.push(_),E[_]=O.createMethod(I[C],O.padding),"sha3"!==O.name){var P=O.name+I[C];A.push(P),E[P]=E[_]}}function S(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function k(e,t,n){S.call(this,e,t,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,a,s=this.blocks,c=this.byteCount,l=e.length,d=this.blockCount,f=0,p=this.s;f<l;){if(this.reset)for(this.reset=!1,s[0]=this.block,i=1;i<d+1;++i)s[i]=0;if(n)for(i=this.start;f<l&&i<c;++f)s[i>>2]|=e[f]<<u[3&i++];else for(i=this.start;f<l&&i<c;++f)(a=e.charCodeAt(f))<128?s[i>>2]|=a<<u[3&i++]:a<2048?(s[i>>2]|=(192|a>>6)<<u[3&i++],s[i>>2]|=(128|63&a)<<u[3&i++]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<u[3&i++],s[i>>2]|=(128|a>>6&63)<<u[3&i++],s[i>>2]|=(128|63&a)<<u[3&i++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|a>>18)<<u[3&i++],s[i>>2]|=(128|a>>12&63)<<u[3&i++],s[i>>2]|=(128|a>>6&63)<<u[3&i++],s[i>>2]|=(128|63&a)<<u[3&i++]);if(this.lastByteIndex=i,i>=c){for(this.start=i-c,this.block=s[d],i=0;i<d;++i)p[i]^=s[i];R(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var s=0;s<e.length;++s){var c=e.charCodeAt(s);c<128?i+=1:c<2048?i+=2:c<55296||c>=57344?i+=3:(c=65536+((1023&c)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];R(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,c="";o<r;){for(a=0;a<t&&o<r;++a,++o)e=n[a],c+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(R(n),a=0)}return i&&(e=n[a],c+=s[e>>4&15]+s[15&e],i>1&&(c+=s[e>>12&15]+s[e>>8&15]),i>2&&(c+=s[e>>20&15]+s[e>>16&15])),c},S.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var c=new Uint32Array(e);o<r;){for(a=0;a<t&&o<r;++a,++o)c[o]=n[a];o%t==0&&R(n)}return i&&(c[a]=n[a],e=e.slice(0,s)),e},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,a=this.extraBytes,o=0,s=0,c=[];s<i;){for(o=0;o<n&&s<i;++o,++s)e=s<<2,t=r[o],c[e]=255&t,c[e+1]=t>>8&255,c[e+2]=t>>16&255,c[e+3]=t>>24&255;s%n==0&&R(r)}return a&&(e=s<<2,t=r[o],c[e]=255&t,a>1&&(c[e+1]=t>>8&255),a>2&&(c[e+2]=t>>16&255)),c},k.prototype=new S,k.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var R=function(e){var t,n,r,i,a,o,s,c,u,d,f,p,h,m,y,b,g,v,w,T,E,A,x,O,I,C,_,P,S,k,R,N,M,D,L,j,F,B,U,z,H,W,V,G,q,K,X,Y,Z,J,Q,$,ee,te,ne,re,ie,ae,oe,se,ce,ue,le;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(c<<1|u>>>31),n=a^(u<<1|c>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(d<<1|f>>>31),n=s^(f<<1|d>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=c^(p<<1|h>>>31),n=u^(h<<1|p>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=d^(i<<1|a>>>31),n=f^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,m=e[0],y=e[1],K=e[11]<<4|e[10]>>>28,X=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,S=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ce=e[30]<<9|e[31]>>>23,W=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,D=e[2]<<1|e[3]>>>31,L=e[3]<<1|e[2]>>>31,b=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,k=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,F=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,Q=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,O=e[6]<<28|e[7]>>>4,I=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,B=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,T=e[36]<<21|e[37]>>>11,E=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,G=e[8]<<27|e[9]>>>5,q=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,_=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,x=e[49]<<14|e[48]>>>18,e[0]=m^~b&v,e[1]=y^~g&w,e[10]=O^~C&P,e[11]=I^~_&S,e[20]=D^~j&B,e[21]=L^~F&U,e[30]=G^~K&Y,e[31]=q^~X&Z,e[40]=te^~re&ae,e[41]=ne^~ie&oe,e[2]=b^~v&T,e[3]=g^~w&E,e[12]=C^~P&k,e[13]=_^~S&R,e[22]=j^~B&z,e[23]=F^~U&H,e[32]=K^~Y&J,e[33]=X^~Z&Q,e[42]=re^~ae&se,e[43]=ie^~oe&ce,e[4]=v^~T&A,e[5]=w^~E&x,e[14]=P^~k&N,e[15]=S^~R&M,e[24]=B^~z&W,e[25]=U^~H&V,e[34]=Y^~J&$,e[35]=Z^~Q&ee,e[44]=ae^~se&ue,e[45]=oe^~ce&le,e[6]=T^~A&m,e[7]=E^~x&y,e[16]=k^~N&O,e[17]=R^~M&I,e[26]=z^~W&D,e[27]=H^~V&L,e[36]=J^~$&G,e[37]=Q^~ee&q,e[46]=se^~ue&te,e[47]=ce^~le&ne,e[8]=A^~m&b,e[9]=x^~y&g,e[18]=N^~O&C,e[19]=M^~I&_,e[28]=W^~D&j,e[29]=V^~L&F,e[38]=$^~G&K,e[39]=ee^~q&X,e[48]=ue^~te&re,e[49]=le^~ne&ie,e[0]^=l[r],e[1]^=l[r+1]};if(a)e.exports=E;else for(x=0;x<A.length;++x)r[A[x]]=E[A[x]]}()}(im);var am=Mp(im.exports);function om(e){return"0x"+am.keccak_256(eh(e))}const sm=new Xp("rlp/5.7.0");function cm(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function um(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(um(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=cm(t.length);return n.unshift(247+n.length),n.concat(t)}var t;rh(t=e)&&!(t.length%2)||$p(t)||sm.throwArgumentError("RLP object must be BytesLike","object",e);const n=Array.prototype.slice.call(eh(e));if(1===n.length&&n[0]<=127)return n;if(n.length<=55)return n.unshift(128+n.length),n;const r=cm(n.length);return r.unshift(183+r.length),r.concat(n)}const lm=new Xp("address/5.7.0");function dm(e){rh(e,20)||lm.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=eh(om(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const fm={};for(let e=0;e<10;e++)fm[String(e)]=String(e);for(let e=0;e<26;e++)fm[String.fromCharCode(65+e)]=String(10+e);const pm=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function hm(e){let t=null;if("string"!=typeof e&&lm.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=dm(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&lm.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>fm[e])).join("");for(;t.length>=pm;){let e=t.substring(0,pm);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}(e)&&lm.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new uh(n,36).toString(16);t.length<40;)t="0"+t;t=dm("0x"+t)}else lm.throwArgumentError("invalid address","address",e);var n;return t}function mm(e){try{return hm(e),!0}catch(e){}return!1}function ym(e){let t=null;try{t=hm(e.from)}catch(t){lm.throwArgumentError("missing from address","transaction",e)}const n=function(e){let t=eh(e);if(0===t.length)return t;let n=0;for(;n<t.length&&0===t[n];)n++;return n&&(t=t.slice(n)),t}(eh(hh.from(e.nonce).toHexString()));return hm(oh(om(ah(um([t,n]))),12))}class bm extends tm{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=hm(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return hm(ch(e.readValue().toHexString(),20))}}class gm extends tm{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const vm=new Xp(Sh);function wm(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map((t=>{const r=t.localName;return r||vm.throwError("cannot encode object for signature with missing names",Xp.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&vm.throwError("cannot encode object for signature with duplicate names",Xp.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else vm.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&vm.throwArgumentError("types/value length mismatch","tuple",n);let i=new nm(e.wordSize),a=new nm(e.wordSize),o=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push((e=>{r(e+t)}))}else e.encode(i,n)})),o.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function Tm(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===Xp.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Xp.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)}));const i=t.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});t.forEach(((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a}));for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}class Em extends tm{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),vm.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return wm(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&vm.throwError("insufficient data length",Xp.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new gm(this.coder));return e.coerce(this.name,Tm(e,n))}}class Am extends tm{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class xm extends tm{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=eh(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Om extends xm{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,ah(super.decode(e)))}}class Im extends tm{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=eh(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,ah(e.readBytes(this.size)))}}class Cm extends tm{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}const _m="0x0000000000000000000000000000000000000000",Pm=hh.from(-1),Sm=hh.from(0),km=hh.from(1),Rm=hh.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Nm extends tm{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=hh.from(t),r=Rm.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(km).mul(Pm)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Sm)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}const Mm=new Xp("strings/5.7.0");var Dm,Lm;function jm(e,t,n,r,i){if(e===Lm.BAD_PREFIX||e===Lm.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===Lm.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Dm||(Dm={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(Lm||(Lm={}));const Fm=Object.freeze({error:function(e,t,n,r,i){return Mm.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:jm,replace:function(e,t,n,r,i){return e===Lm.OVERLONG?(r.push(i),0):(r.push(65533),jm(e,t,n))}});function Bm(e,t=Dm.current){t!=Dm.current&&(Mm.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const a=65536+((1023&r)<<10)+(1023&i);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(63&a|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return eh(n)}function Um(e,t){return n=function(e,t){null==t&&(t=Fm.error),e=eh(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let a=null,o=null;if(192==(224&i))a=1,o=127;else if(224==(240&i))a=2,o=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?Lm.UNEXPECTED_CONTINUE:Lm.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(Lm.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if(128!=(192&i)){r+=t(Lm.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(Lm.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(Lm.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(Lm.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}(e,t),n.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("");var n}class zm extends xm{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Bm(t))}decode(e){return Um(super.decode(e))}}class Hm extends tm{constructor(e,t){let n=!1;const r=[];e.forEach((e=>{e.dynamic&&(n=!0),r.push(e.type)}));super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});return this.coders.forEach(((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))})),Object.freeze(e)}encode(e,t){return wm(e,this.coders,t)}decode(e){return e.coerce(this.name,Tm(e,this.coders))}}const Wm=new Xp(Sh),Vm=new RegExp(/^bytes([0-9]*)$/),Gm=new RegExp(/^(u?int)([0-9]*)$/);class qm{constructor(e){Th(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new bm(e.name);case"bool":return new Am(e.name);case"string":return new zm(e.name);case"bytes":return new Om(e.name);case"array":return new Em(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Hm((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new Cm(e.name)}let t=e.type.match(Gm);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Wm.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Nm(n/8,"int"===t[1],e.name)}if(t=e.type.match(Vm),t){let n=parseInt(t[1]);return(0===n||n>32)&&Wm.throwArgumentError("invalid bytes length","param",e),new Im(n,e.name)}return Wm.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new rm(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new nm(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Bh.from(e))));return new Hm(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Wm.throwError("types/values length mismatch",Xp.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(Bh.from(e)))),r=new Hm(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(Bh.from(e))));return new Hm(r,"_").decode(this._getReader(eh(t),n))}}const Km=new qm;function Xm(e){return om(Bm(e))}const Ym=new Xp(Sh);class Zm extends Ph{}class Jm extends Ph{}class Qm extends Ph{}class $m extends Ph{static isIndexed(e){return!(!e||!e._isIndexed)}}const ey={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function ty(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}class ny{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Th(this,"fragments",t.map((e=>zh.from(e))).filter((e=>null!=e))),Th(this,"_abiCoder",Eh(new.target,"getAbiCoder")()),Th(this,"functions",{}),Th(this,"errors",{}),Th(this,"events",{}),Th(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Ym.warn("duplicate definition - constructor"):void Th(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?Ym.warn("duplicate definition - "+n):t[n]=e})),this.deploy||Th(this,"deploy",qh.from({payable:!1,type:"constructor"})),Th(this,"_isInterface",!0)}format(e){e||(e=jh.full),e===jh.sighash&&Ym.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===jh.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return Km}static getAddress(e){return hm(e)}static getSighash(e){return oh(Xm(e.format()),0,4)}static getEventTopic(e){return Xm(e.format())}getFunction(e){if(rh(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Ym.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===n.length?Ym.throwArgumentError("no matching function","name",t):n.length>1&&Ym.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[Kh.fromString(e).format()];return t||Ym.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(rh(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Ym.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===n.length?Ym.throwArgumentError("no matching event","name",t):n.length>1&&Ym.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[Hh.fromString(e).format()];return t||Ym.throwArgumentError("no matching event","signature",e),t}getError(e){if(rh(e)){const t=Eh(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}Ym.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===n.length?Ym.throwArgumentError("no matching error","name",t):n.length>1&&Ym.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[Kh.fromString(e).format()];return t||Ym.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return Eh(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Eh(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=eh(t);return ah(n.slice(0,4))!==this.getSighash(e)&&Ym.throwArgumentError(`data signature does not match error ${e.name}.`,"data",ah(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),ah(th([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=eh(t);return ah(n.slice(0,4))!==this.getSighash(e)&&Ym.throwArgumentError(`data signature does not match function ${e.name}.`,"data",ah(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),ah(th([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=eh(t),r=null,i="",a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=ah(n.slice(0,4)),t=ey[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),"Error"===o?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:"Panic"===o&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{const t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch(e){}break}}return Ym.throwError("call revert exception"+i,Xp.errors.CALL_EXCEPTION,{method:e.format(),data:ah(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),ah(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Ym.throwError("too many arguments for "+e.format(),Xp.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?Xm(t):"bytes"===e.type?om(ah(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=hh.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),ch(ah(t),32));for(t.forEach(((t,i)=>{let a=e.inputs[i];a.indexed?null==t?n.push(null):"array"===a.baseType||"tuple"===a.baseType?Ym.throwArgumentError("filtering with tuples or arrays not supported","contract."+a.name,t):Array.isArray(t)?n.push(t.map((e=>r(a,e)))):n.push(r(a,t)):null!=t&&Ym.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+a.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Ym.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,a)=>{const o=t[a];if(e.indexed)if("string"===e.type)n.push(Xm(o));else if("bytes"===e.type)n.push(om(o));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[o]))}else r.push(e),i.push(o)})),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);rh(n[0],32)&&n[0].toLowerCase()===t||Ym.throwError("fragment/topic mismatch",Xp.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(Bh.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))}));let o=null!=n?this._abiCoder.decode(r,th(n)):null,s=this._abiCoder.decode(i,t,!0),c=[],u=0,l=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==o)c[t]=new $m({_isIndexed:!0,hash:null});else if(a[t])c[t]=new $m({_isIndexed:!0,hash:o[l++]});else try{c[t]=o[l++]}catch(e){c[t]=e}else try{c[t]=s[u++]}catch(e){c[t]=e}if(e.name&&null==c[e.name]){const n=c[t];n instanceof Error?Object.defineProperty(c,e.name,{enumerable:!0,get:()=>{throw ty(`property ${JSON.stringify(e.name)}`,n)}}):c[e.name]=n}}));for(let e=0;e<c.length;e++){const t=c[e];t instanceof Error&&Object.defineProperty(c,e,{enumerable:!0,get:()=>{throw ty(`index ${e}`,t)}})}return Object.freeze(c)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Jm({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:hh.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Zm({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=ah(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new Qm({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var ry=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))};const iy=new Xp("abstract-provider/5.7.0");class ay{constructor(){iy.checkAbstract(new.target,ay),Th(this,"_isProvider",!0)}getFeeData(){return ry(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Ah({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=hh.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}}))}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}var oy=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))};const sy=new Xp("abstract-signer/5.7.0"),cy=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],uy=[Xp.errors.INSUFFICIENT_FUNDS,Xp.errors.NONCE_EXPIRED,Xp.errors.REPLACEMENT_UNDERPRICED];class ly{constructor(){sy.checkAbstract(new.target,ly),Th(this,"_isSigner",!0)}getBalance(e){return oy(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return oy(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return oy(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Ah(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return oy(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Ah(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return oy(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),n=yield this.signTransaction(t);return yield this.provider.sendTransaction(n)}))}getChainId(){return oy(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return oy(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return oy(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return oy(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===cy.indexOf(t)&&sy.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=xh(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&sy.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return oy(this,void 0,void 0,(function*(){const t=yield Ah(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>oy(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&sy.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const n=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!n?0!==t.type&&1!==t.type||!n||sy.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):sy.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(n&&sy.throwError("network does not support EIP-1559",Xp.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):sy.throwError("failed to get consistent fee data",Xp.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(uy.indexOf(e.code)>=0)throw e;return sy.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Xp.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&sy.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Ah(t)}))}_checkProvider(e){this.provider||sy.throwError("missing provider",Xp.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}}class dy extends ly{constructor(e,t){super(),Th(this,"address",e),Th(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{sy.throwError(e,Xp.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(e){return new dy(this.address,e)}}const fy=new Xp("transactions/5.7.0");var py;function hy(e,t){return{address:hm(e),storageKeys:(t||[]).map(((t,n)=>(32!==function(e){if("string"!=typeof e)e=ah(e);else if(!rh(e)||e.length%2)return null;return(e.length-2)/2}(t)&&fy.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(py||(py={}));var my=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))};const yy=new Xp("contracts/5.7.0");function by(e,t){return my(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&yy.throwArgumentError("invalid address or ENS name","name",n);try{return hm(n)}catch(e){}e||yy.throwError("a provider or signer is needed to resolve ENS names",Xp.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&yy.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function gy(e,t,n){return my(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>gy(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield by(e,t):"tuple"===n.type?yield gy(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>gy(e,t,n.arrayChildren)))):Promise.reject(yy.makeError("invalid value for array",Xp.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function vy(e,t,n){return my(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=xh(n.pop())),yy.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Ah({override:by(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>my(this,void 0,void 0,(function*(){return hm(e.signer)!==e.override&&yy.throwError("Contract with a Signer cannot override from",Xp.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=by(e.provider,r.from));const i=yield Ah({args:gy(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Ah(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=hh.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=hh.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=hh.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=hh.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=hh.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=function(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&fy.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),hy(e[0],e[1])):hy(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return hy(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=eh(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=hh.from(t.gas).add(e)}if(s.value){const e=hh.from(s.value);e.isZero()||t.payable||yy.throwError("non-payable method cannot override value",Xp.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=xh(s.customData)),s.ccipReadEnabled&&(o.ccipReadEnabled=!!s.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const c=Object.keys(r).filter((e=>null!=r[e]));return c.length&&yy.throwError(`cannot override ${c.map((e=>JSON.stringify(e))).join(",")}`,Xp.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:c}),o}))}function wy(e,t,n){const r=e.signer||e.provider;return function(...i){return my(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=xh(i.pop());null!=e.blockTag&&(a=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(a));const o=yield vy(e,t,i),s=yield r.call(o,a);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===Xp.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function Ty(e,t){return function(...n){return my(this,void 0,void 0,(function*(){e.signer||yy.throwError("sending a transaction requires a signer",Xp.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield vy(e,t,n),i=yield e.signer.sendTransaction(r);return function(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=_h(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r})),t)))}(e,i),i}))}}function Ey(e,t,n){return t.constant?wy(e,t,n):Ty(e,t)}function Ay(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}class xy{constructor(e,t){Th(this,"tag",e),Th(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((n=>!(!t&&n.listener===e)||(t=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const n=e.slice();return setTimeout((()=>{t.listener.apply(this,n)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}}class Oy extends xy{constructor(){super("error",null)}}class Iy extends xy{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&yy.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(Ay(i),i),Th(this,"address",e),Th(this,"interface",t),Th(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],n=function(e,r){if(Array.isArray(r))for(let i in r){const a=e.slice();a.push(i);try{n(a,r[i])}catch(e){t.push({path:a,error:e})}}};return n([],e),t}(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}}class Cy extends xy{constructor(e,t){super("*",{address:e}),Th(this,"address",e),Th(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}}class _y{constructor(e,t,n){Th(this,"interface",Eh(new.target,"getInterface")(t)),null==n?(Th(this,"provider",null),Th(this,"signer",null)):ly.isSigner(n)?(Th(this,"provider",n.provider||null),Th(this,"signer",n)):ay.isProvider(n)?(Th(this,"provider",n),Th(this,"signer",null)):yy.throwArgumentError("invalid signer or provider","signerOrProvider",n),Th(this,"callStatic",{}),Th(this,"estimateGas",{}),Th(this,"functions",{}),Th(this,"populateTransaction",{}),Th(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];Th(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)}))),e[n.name]||(e[n.name]=[]),e[n.name].push(t)})),Object.keys(e).forEach((t=>{const n=e[t];1===n.length?Th(this.filters,t,this.filters[n[0]]):yy.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(Th(this,"_runningEvents",{}),Th(this,"_wrappedEmits",{}),null==e&&yy.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Th(this,"address",e),this.provider)Th(this,"resolvedAddress",by(this.provider,e));else try{Th(this,"resolvedAddress",Promise.resolve(hm(e)))}catch(e){yy.throwError("provider is required to use ENS name as contract address",Xp.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const r={},i={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(i[e])yy.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&Th(this,e,Ey(this,t,!0)),null==this.functions[e]&&Th(this.functions,e,Ey(this,t,!1)),null==this.callStatic[e]&&Th(this.callStatic,e,wy(this,t,!0)),null==this.populateTransaction[e]&&Th(this.populateTransaction,e,function(e,t){return function(...n){return vy(e,t,n)}}(this,t)),null==this.estimateGas[e]&&Th(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return my(this,void 0,void 0,(function*(){n||yy.throwError("estimate require a provider or signer",Xp.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield vy(e,t,r);return yield n.estimateGas(i)}))}}(this,t))}})),Object.keys(r).forEach((e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&Th(this,e,this[n])}catch(e){}null==this.functions[e]&&Th(this.functions,e,this.functions[n]),null==this.callStatic[e]&&Th(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&Th(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&Th(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return ym(e)}static getInterface(e){return ny.isInterface(e)?e:new ny(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&yy.throwError("contract not deployed",Xp.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||yy.throwError("sending a transactions require a signer",Xp.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=xh(e||{});return["from","to"].forEach((function(e){null!=t[e]&&yy.throwError("cannot override "+e,Xp.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new dy(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Th(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return $m.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Oy);if("event"===e)return this._normalizeRunningEvent(new xy("event",null));if("*"===e)return this._normalizeRunningEvent(new Cy(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new Iy(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new Iy(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new xy(Ay(t),t))}return this._normalizeRunningEvent(new Cy(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=_h(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||yy.throwError("events require a provider or a signer with a provider",Xp.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=xh(r.filter);return"string"==typeof t&&rh(t,32)?(null!=n&&yy.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then((e=>e.map((e=>this._wrapEvent(r,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}}class Py extends _y{}const Sy=[{inputs:[{internalType:"address",name:"_gateway",type:"address"},{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerNotBridge",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidChildBridgeAdaptor",type:"error"},{inputs:[],name:"InvalidChildChain",type:"error"},{inputs:[],name:"InvalidSourceAddress",type:"error"},{inputs:[],name:"InvalidSourceChain",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NotApprovedByGateway",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[],name:"UnsupportedOperation",type:"error"},{inputs:[],name:"ZeroAddresses",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"sourceChain",type:"string"},{indexed:!1,internalType:"string",name:"sourceAddress_",type:"string"},{indexed:!1,internalType:"bytes",name:"payload_",type:"bytes"}],name:"AdaptorExecute",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"string",name:"childChain",type:"string"},{indexed:!0,internalType:"string",name:"childBridgeAdaptor",type:"string"},{indexed:!0,internalType:"bytes",name:"payload",type:"bytes"}],name:"AxelarMessageSent",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"oldChildBridgeAdaptor",type:"string"},{indexed:!1,internalType:"string",name:"newChildBridgeAdaptor",type:"string"}],name:"ChildBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"string",name:"oldChildChain",type:"string"},{indexed:!0,internalType:"string",name:"newChildChain",type:"string"}],name:"ChildChainUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldGasService",type:"address"},{indexed:!0,internalType:"address",name:"newGasService",type:"address"}],name:"GasServiceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldRootBridge",type:"address"},{indexed:!0,internalType:"address",name:"newRootBridge",type:"address"}],name:"RootBridgeUpdated",type:"event"},{inputs:[],name:"BRIDGE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"GAS_SERVICE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"TARGET_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childBridgeAdaptor",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"childChainId",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"commandId",type:"bytes32"},{internalType:"string",name:"sourceChain",type:"string"},{internalType:"string",name:"sourceAddress",type:"string"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"execute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"commandId",type:"bytes32"},{internalType:"string",name:"sourceChain",type:"string"},{internalType:"string",name:"sourceAddress",type:"string"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"string",name:"tokenSymbol",type:"string"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"executeWithToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"gasService",outputs:[{internalType:"contract IAxelarGasService",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"gateway",outputs:[{internalType:"contract IAxelarGateway",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantBridgeManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantGasServiceManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantTargetManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"bridgeManager",type:"address"},{internalType:"address",name:"gasServiceManager",type:"address"},{internalType:"address",name:"targetManager",type:"address"}],internalType:"struct IRootAxelarBridgeAdaptor.InitializationRoles",name:"_adaptorRoles",type:"tuple"},{internalType:"address",name:"_rootBridge",type:"address"},{internalType:"string",name:"_childChainId",type:"string"},{internalType:"string",name:"_childBridgeAdaptor",type:"string"},{internalType:"address",name:"_gasService",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeBridgeManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeGasServiceManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeTargetManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootBridge",outputs:[{internalType:"contract IRootERC20Bridge",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"address",name:"refundRecipient",type:"address"}],name:"sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"newChildBridgeAdaptor",type:"string"}],name:"updateChildBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newChildChain",type:"string"}],name:"updateChildChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newGasService",type:"address"}],name:"updateGasService",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRootBridge",type:"address"}],name:"updateRootBridge",outputs:[],stateMutability:"nonpayable",type:"function"}];var ky,Ry,Ny,My;!function(e){e.SUCCESS="SUCCESS",e.PENDING="PENDING",e.FAILED="FAILED"}(ky||(ky={})),function(e){e.DEPOSIT="DEPOSIT",e.WITHDRAW="WITHDRAW",e.FINALISE_WITHDRAWAL="FINALISE_WITHDRAWAL"}(Ry||(Ry={})),function(e){e[e.DEPOSIT_SOURCE=15e4]="DEPOSIT_SOURCE",e[e.DEPOSIT_DESTINATION=25e4]="DEPOSIT_DESTINATION",e[e.WITHDRAW_SOURCE=25e4]="WITHDRAW_SOURCE",e[e.WITHDRAW_DESTINATION=25e4]="WITHDRAW_DESTINATION",e[e.MAP_TOKEN_SOURCE=2e5]="MAP_TOKEN_SOURCE",e[e.MAP_TOKEN_DESTINATION=2e5]="MAP_TOKEN_DESTINATION",e[e.FINALISE_WITHDRAWAL=2e5]="FINALISE_WITHDRAWAL",e[e.APPROVE_TOKEN=55e3]="APPROVE_TOKEN"}(Ny||(Ny={})),function(e){e.PENDING="PENDING",e.PROCESSING="PROCESSING",e.COMPLETE="COMPLETE",e.RETRY="RETRY",e.ERROR="ERROR",e.NOT_ENOUGH_GAS="NOT_ENOUGH_GAS",e.FLOW_RATE_CONTROLLED="FLOW_RATE_CONTROLLED"}(My||(My={}));const Dy="NATIVE",Ly="11155111",jy="15003",Fy="13473",By="13371",Uy={mainnet:"0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d",testnet:"0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439",devnet:""},zy={mainnet:"0xf57e7e7c23978c3caec3c3548e3d615c346e79ff",testnet:"0xe2629e08f4125d14e446660028bD98ee60EE69F2",devnet:""},Hy={mainnet:"0x52a6c53869ce09a731cd772f245b97a4401d3348",testnet:"0xe9E96d1aad82562b7588F03f49aD34186f996478",devnet:""},Wy={mainnet:"0x4f49b53928a71e553bb1b0f66a5bcb54fd4e8932",testnet:"0x6328Ac88ba8D466a0F551FC7C42C61d1aC7f92ab",devnet:""},Vy={mainnet:"0x4f49b53928a71e553bb1b0f66a5bcb54fd4e8932",testnet:"0x6328Ac88ba8D466a0F551FC7C42C61d1aC7f92ab",devnet:""},Gy={mainnet:"immutable",testnet:"immutable",devnet:""},qy={mainnet:"0x4F4495243837681061C4743b74B3eEdf548D56A5",testnet:"0xe432150cce91c13a887f7D836923d5597adD8E31",devnet:""},Ky={rootChainID:Ly,childChainID:jy},Xy={rootChainID:Ly,childChainID:Fy},Yy={rootChainID:"1",childChainID:By},Zy={mainnet:"https://api.gmp.axelarscan.io",testnet:"https://testnet.api.gmp.axelarscan.io",devnet:"https://stagenet.api.gmp.axelarscan.io"},Jy={mainnet:"https://bridge-api.immutable.com/v1/tenderly/estimate",testnet:"https://bridge-api.sandbox.immutable.com/v1/tenderly/estimate",devnet:"https://bridge-api.dev.immutable.com/v1/tenderly/estimate"},Qy={11155111:{id:"ethereum-sepolia",symbol:"ETH"},1:{id:"ethereum",symbol:"ETH"},15003:{id:"immutable",symbol:"IMX"},13473:{id:"immutable",symbol:"IMX"},13371:{id:"immutable",symbol:"IMX"}},$y={token:"deposit",tokenTo:"depositTo",native:"depositETH",nativeTo:"depositToETH"},eb={token:"withdraw",tokenTo:"withdrawTo",native:"withdrawIMX",nativeTo:"withdrawIMXTo"};var tb;!function(e){e.UNSUPPORTED_ERROR="UNSUPPORTED_ERROR",e.INVALID_ADDRESS="INVALID_ADDRESS",e.INVALID_AMOUNT="INVALID_AMOUNT",e.INTERNAL_ERROR="INTERNAL_ERROR",e.PROVIDER_ERROR="PROVIDER_ERROR",e.ROOT_PROVIDER_ERROR="ROOT_PROVIDER_ERROR",e.CHILD_PROVIDER_ERROR="CHILD_PROVIDER_ERROR",e.TRANSACTION_REVERTED="TRANSACTION_REVERTED",e.INVALID_TOKEN="INVALID_TOKEN",e.INVALID_TRANSACTION="INVALID_TRANSACTION",e.INVALID_SOURCE_CHAIN_ID="INVALID_SOURCE_CHAIN_ID",e.INVALID_DESTINATION_CHAIN_ID="INVALID_DESTINATION_CHAIN_ID",e.INVALID_SOURCE_OR_DESTINATION_CHAIN="INVALID_SOURCE_OR_DESTINATION_CHAIN",e.CHAIN_IDS_MATCH="CHAIN_IDS_MATCH",e.AXELAR_CHAIN_NOT_FOUND="AXELAR_CHAIN_NOT_FOUND",e.AXELAR_GAS_ESTIMATE_FAILED="AXELAR_GAS_ESTIMATE_FAILED",e.TENDERLY_GAS_ESTIMATE_FAILED="TENDERLY_GAS_ESTIMATE_FAILED",e.INVALID_RECIPIENT="INVALID_RECIPIENT",e.FLOW_RATE_ERROR="FLOW_RATE_ERROR",e.INVALID_FLOWRATE_INDEX="INVALID_FLOWRATE_INDEX"}(tb||(tb={}));class nb extends Error{type;constructor(e,t){super(e),this.type=t}}const rb=async(e,t,n)=>{try{return await e()}catch(e){let r=`${t}: ${e.message}`||"UnknownError";throw n&&(r=`${n}: ${r}`),new nb(r,t)}};async function ib(e,t,n){return await rb((async()=>new Py(e,t,n)),tb.PROVIDER_ERROR)}function ab(e,t){let n;return n=e===Yy.rootChainID||e===Yy.childChainID?t.mainnet:e===Xy.rootChainID||e===Xy.childChainID?t.testnet:t.devnet,n}function ob(e,t){return e.toUpperCase()===function(e){return ab(e,Hy)}(t).toUpperCase()}function sb(e){return ab(e,zy)}function cb(e){return ab(e,Zy)}function ub(e,t){return e.toUpperCase()===function(e){return ab(e,Uy)}(t).toUpperCase()}function lb(e,t){return e.sourceChainId===t.rootChainID&&e.destinationChainId===t.childChainID&&e.action===Ry.DEPOSIT}function db(e,t){return e.sourceChainId===t.childChainID&&e.destinationChainId===t.rootChainID&&e.action===Ry.WITHDRAW}async function fb(e,t,n,r){let i;if(t===r.bridgeInstance.rootChainID){if(!ob(e,t))return;i=r.rootProvider}else{if(!function(e,t){return e.toUpperCase()===sb(t).toUpperCase()}(e,t))return;i=r.childProvider}if((await i.getCode(n)).length<=2)return;const a=await ib(n,["function receive()"],i);try{await a.estimateGas.receive()}catch{try{await i.estimateGas({to:n})}catch{throw new nb(`address ${n} is not a valid receipient`,tb.INVALID_RECIPIENT)}}}async function pb(e,t,n){if(!(e===n.bridgeInstance.rootChainID||e===n.bridgeInstance.childChainID))throw new nb(`the sourceChainId ${e} is not a valid`,tb.INVALID_SOURCE_CHAIN_ID);if(!(t===n.bridgeInstance.rootChainID||t===n.bridgeInstance.childChainID))throw new nb(`the destinationChainId ${t} is not a valid`,tb.INVALID_DESTINATION_CHAIN_ID);if(e===t)throw new nb(`the sourceChainId ${e} cannot be the same as the destinationChainId ${t}`,tb.CHAIN_IDS_MATCH)}async function hb(e,t){if(await pb(e.sourceChainId,e.destinationChainId,t),!mm(e.senderAddress)||!mm(e.recipientAddress))throw new nb(`address ${e.senderAddress} or ${e.recipientAddress} is not a valid address`,tb.INVALID_ADDRESS);if(e.amount.isNegative()||e.amount.isZero())throw new nb(`deposit amount ${e.amount.toString()} is invalid`,tb.INVALID_AMOUNT);if(e.token.toUpperCase()!==Dy&&!mm(e.token))throw new nb(`token address ${e.token} is not a valid address`,tb.INVALID_ADDRESS)}function mb(e,t){const n=(e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas&&!!e.lastBaseFeePerGas)(e)?hh.from(e.lastBaseFeePerGas).add(hh.from(e.maxPriorityFeePerGas)):e.gasPrice?hh.from(e.gasPrice):null)(e);return n?n.mul(t):hh.from(0)}const yb=[{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:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"userAddress",type:"address"},{indexed:!1,internalType:"address",name:"relayerAddress",type:"address"},{indexed:!1,internalType:"bytes",name:"functionSignature",type:"bytes"}],name:"MetaTransactionExecuted",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:[],name:"bridge",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[{internalType:"bool",name:"",type:"bool"}],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:"userAddress",type:"address"},{internalType:"bytes",name:"functionSignature",type:"bytes"},{internalType:"bytes32",name:"sigR",type:"bytes32"},{internalType:"bytes32",name:"sigS",type:"bytes32"},{internalType:"uint8",name:"sigV",type:"uint8"}],name:"executeMetaTransaction",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"getNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",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:[{internalType:"address",name:"rootToken_",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint8",name:"decimals_",type:"uint8"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"offset",type:"uint256"}],name:"invalidateNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",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:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];async function bb(e,t,n){if(e.toUpperCase()===Dy||ub(e,t))return sb(t);const r=await async function(e,t){return ib(e,yb,t)}(e,n);return rb((()=>r.rootToken()),tb.PROVIDER_ERROR)}async function gb(e,t,n){let r;const i=ab(e,Jy);try{r=await Rp.post(i,{jsonrpc:"2.0",id:0,method:"tenderly_estimateGasBundle",params:[t,"latest",n]},{headers:{"Content-Type":"application/json"}})}catch(e){r=e.response}if(r.data.error)throw new nb(`Estimating gas failed with the reason: ${r.data.error.message}`,tb.TENDERLY_GAS_ESTIMATE_FAILED);const a=r.data.result;if(a.length!==t.length)throw new nb("Estimating gas failed with mismatched responses",tb.TENDERLY_GAS_ESTIMATE_FAILED);const o=[];for(let e=0;e<a.length;e++){if(a[e].error)throw new nb(`Estimating deposit gas failed with the reason: ${a[e].error.message}`,tb.TENDERLY_GAS_ESTIMATE_FAILED);if(void 0===a[e].gasUsed)throw new nb("Estimating gas did not return simulation results",tb.TENDERLY_GAS_ESTIMATE_FAILED);o.push(a[e].gasUsed)}return o}const vb=[{inputs:[{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyMapped",type:"error"},{inputs:[{internalType:"uint256",name:"actualBalance",type:"uint256"},{internalType:"uint256",name:"expectedBalance",type:"uint256"}],name:"BalanceInvariantCheckFailed",type:"error"},{inputs:[],name:"CantMapETH",type:"error"},{inputs:[],name:"CantMapIMX",type:"error"},{inputs:[],name:"CantMapWETH",type:"error"},{inputs:[],name:"ImxDepositLimitExceeded",type:"error"},{inputs:[],name:"ImxDepositLimitTooLow",type:"error"},{inputs:[{internalType:"uint256",name:"lengthOfQueue",type:"uint256"},{internalType:"uint256",name:"requestedIndex",type:"uint256"}],name:"IndexOutsideWithdrawalQueue",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[],name:"InvalidCapacity",type:"error"},{inputs:[],name:"InvalidChildChain",type:"error"},{inputs:[{internalType:"string",name:"reason",type:"string"}],name:"InvalidData",type:"error"},{inputs:[],name:"InvalidRefillRate",type:"error"},{inputs:[],name:"InvalidToken",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"actualToken",type:"address"}],name:"MixedTokens",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NonWrappedNativeTransfer",type:"error"},{inputs:[],name:"NotBridgeAdaptor",type:"error"},{inputs:[],name:"NotMapped",type:"error"},{inputs:[],name:"ProvideAtLeastOneIndex",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"TokenIsZero",type:"error"},{inputs:[],name:"TokenNotSupported",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"WithdrawalAlreadyProcessed",type:"error"},{inputs:[{internalType:"uint256",name:"timeNow",type:"uint256"},{internalType:"uint256",name:"currentWithdrawalTime",type:"uint256"}],name:"WithdrawalRequestTooEarly",type:"error"},{inputs:[],name:"WrongInitializer",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"who",type:"address"}],name:"ActivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[],name:"AutoActivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"who",type:"address"}],name:"DeactivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"EnQueuedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"IMXDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"}],name:"L1TokenMapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeEthDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"oldImxDepositLimit",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newImxDepositLimit",type:"uint256"}],name:"NewImxDepositLimit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"ProcessedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bool",name:"delayWithdrawalLargeAmount",type:"bool"},{indexed:!1,internalType:"bool",name:"delayWithdrawalUnknownToken",type:"bool"},{indexed:!1,internalType:"bool",name:"withdrawalQueueActivated",type:"bool"}],name:"QueuedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"capacity",type:"uint256"},{indexed:!1,internalType:"uint256",name:"refillRate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"largeTransferThreshold",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousCapacity",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousRefillRate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousLargeTransferThreshold",type:"uint256"}],name:"RateControlThresholdSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"oldRootBridgeAdaptor",type:"address"},{indexed:!1,internalType:"address",name:"newRootBridgeAdaptor",type:"address"}],name:"RootBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RootChainERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RootChainETHWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WETHDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"delay",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousDelay",type:"uint256"}],name:"WithdrawalDelayUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WithdrawalForNonFlowRatedToken",type:"event"},{inputs:[],name:"ADAPTOR_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_ETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_IMX",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNLIMITED_DEPOSIT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNPAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"VARIABLE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"activateWithdrawalQueue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"childERC20Bridge",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"deactivateWithdrawalQueue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositToETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"finaliseQueuedWithdrawal",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256[]",name:"indices",type:"uint256[]"}],name:"finaliseQueuedWithdrawalsAggregated",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"startIndex",type:"uint256"},{internalType:"uint256",name:"stopIndex",type:"uint256"},{internalType:"uint256",name:"maxFind",type:"uint256"}],name:"findPendingWithdrawals",outputs:[{components:[{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"}],internalType:"struct FlowRateWithdrawalQueue.FindPendingWithdrawal[]",name:"found",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"flowRateBuckets",outputs:[{internalType:"uint256",name:"capacity",type:"uint256"},{internalType:"uint256",name:"depth",type:"uint256"},{internalType:"uint256",name:"refillTime",type:"uint256"},{internalType:"uint256",name:"refillRate",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256[]",name:"indices",type:"uint256[]"}],name:"getPendingWithdrawals",outputs:[{components:[{internalType:"address",name:"withdrawer",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"}],internalType:"struct FlowRateWithdrawalQueue.PendingWithdrawal[]",name:"pending",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"getPendingWithdrawalsLength",outputs:[{internalType:"uint256",name:"length",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantPauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantVariableManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"imxCumulativeDepositLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"variableManager",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"}],internalType:"struct IRootERC20Bridge.InitializationRoles",name:"newRoles",type:"tuple"},{internalType:"address",name:"newRootBridgeAdaptor",type:"address"},{internalType:"address",name:"newChildERC20Bridge",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"newRootIMXToken",type:"address"},{internalType:"address",name:"newRootWETHToken",type:"address"},{internalType:"uint256",name:"newImxCumulativeDepositLimit",type:"uint256"},{internalType:"address",name:"rateAdmin",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"variableManager",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"}],internalType:"struct IRootERC20Bridge.InitializationRoles",name:"",type:"tuple"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"initialize",outputs:[],stateMutability:"pure",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"largeTransferThresholds",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"}],name:"mapToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"onMessageReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokePauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeVariableManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootBridgeAdaptor",outputs:[{internalType:"contract IRootBridgeAdaptor",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootWETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"capacity",type:"uint256"},{internalType:"uint256",name:"refillRate",type:"uint256"},{internalType:"uint256",name:"largeTransferThreshold",type:"uint256"}],name:"setRateControlThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"delay",type:"uint256"}],name:"setWithdrawalDelay",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:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newImxCumulativeDepositLimit",type:"uint256"}],name:"updateImxCumulativeDepositLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRootBridgeAdaptor",type:"address"}],name:"updateRootBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawalDelay",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"withdrawalQueueActivated",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],wb=[{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],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:"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:[],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:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",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:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],Tb=[{inputs:[{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyMapped",type:"error"},{inputs:[{internalType:"uint256",name:"actualBalance",type:"uint256"},{internalType:"uint256",name:"expectedBalance",type:"uint256"}],name:"BalanceInvariantCheckFailed",type:"error"},{inputs:[],name:"BridgeNotSet",type:"error"},{inputs:[],name:"BurnFailed",type:"error"},{inputs:[],name:"CantMapETH",type:"error"},{inputs:[],name:"CantMapIMX",type:"error"},{inputs:[],name:"EmptyTokenContract",type:"error"},{inputs:[],name:"IncorrectBridgeAddress",type:"error"},{inputs:[],name:"InsufficientIMX",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[{internalType:"string",name:"reason",type:"string"}],name:"InvalidData",type:"error"},{inputs:[],name:"MintFailed",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NonWrappedNativeTransfer",type:"error"},{inputs:[],name:"NotBridgeAdaptor",type:"error"},{inputs:[],name:"NotMapped",type:"error"},{inputs:[],name:"TransferWIMXFailed",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAddressRootToken",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{inputs:[],name:"ZeroValue",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"oldChildBridgeAdaptor",type:"address"},{indexed:!1,internalType:"address",name:"newChildBridgeAdaptor",type:"address"}],name:"ChildBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainEthWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainNativeIMXWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainWrappedIMXWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"IMXDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"rootToken",type:"address"},{indexed:!1,internalType:"address",name:"childToken",type:"address"}],name:"L2TokenMapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeEthDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"PrivilegedDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"ADAPTOR_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_ETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_IMX",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PRIVILEGED_DEPOSITOR_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNPAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childBridgeAdaptor",outputs:[{internalType:"contract IChildBridgeAdaptor",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantPauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"},{internalType:"address",name:"initialDepositor",type:"address"},{internalType:"address",name:"treasuryManager",type:"address"}],internalType:"struct IChildERC20Bridge.InitializationRoles",name:"newRoles",type:"tuple"},{internalType:"address",name:"newBridgeAdaptor",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"newRootIMXToken",type:"address"},{internalType:"address",name:"newWIMXToken",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"onMessageReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"privilegedDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokePauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newBridgeAdaptor",type:"address"}],name:"updateChildBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawETHTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawIMX",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawIMXTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawWIMX",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawWIMXTo",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];var Eb,Ab;!function(e){e.SRC_GATEWAY_CALLED="source_gateway_called",e.DEST_GATEWAY_APPROVED="destination_gateway_approved",e.DEST_EXECUTED="destination_executed",e.EXPRESS_EXECUTED="express_executed",e.DEST_EXECUTE_ERROR="error",e.DEST_EXECUTING="executing",e.APPROVING="approving",e.FORECALLED="forecalled",e.FORECALLED_WITHOUT_GAS_PAID="forecalled_without_gas_paid",e.NOT_EXECUTED="not_executed",e.NOT_EXECUTED_WITHOUT_GAS_PAID="not_executed_without_gas_paid",e.INSUFFICIENT_FEE="insufficient_fee",e.UNKNOWN_ERROR="unknown_error",e.CANNOT_FETCH_STATUS="cannot_fetch_status",e.SRC_GATEWAY_CONFIRMED="confirmed"}(Eb||(Eb={})),function(e){e.GAS_UNPAID="gas_unpaid",e.GAS_PAID="gas_paid",e.GAS_PAID_NOT_ENOUGH_GAS="gas_paid_not_enough_gas",e.GAS_PAID_ENOUGH_GAS="gas_paid_enough_gas"}(Ab||(Ab={}));const xb=e=>{const{error:t,status:n}=e;return"error"===n&&t?Eb.DEST_EXECUTE_ERROR:"executed"===n?Eb.DEST_EXECUTED:"approved"===n?Eb.DEST_GATEWAY_APPROVED:"called"===n?Eb.SRC_GATEWAY_CALLED:"executing"===n?Eb.DEST_EXECUTING:n},Ob=async(e,t,n)=>(async(e,t)=>fetch(`${e}?${new URLSearchParams(t).toString()}`,{method:"GET",headers:{"Content-Type":"application/json"},cache:"no-store"}).then((e=>e.json())).then((e=>e.data)))(e,{method:"searchGMP",txHash:t,txLogIndex:n}).then((e=>e.find((e=>e.id.indexOf(t)>-1||e.call.transactionHash.indexOf(t)>-1)))).catch((()=>{})),Ib=async(e,t,n)=>{const r=await Ob(e,t,n);if(!r)return{status:Eb.CANNOT_FETCH_STATUS};const{call:i,gas_status:a,gas_paid:o,executed:s,express_executed:c,approved:u,callback:l}=r,d={status:a,details:o},f=r.time_spent;return f&&(f.total=f.total||Object.values(f).reduce(((e,t)=>e+t),0)),{status:xb(r),error:(p=r,p.error?{message:p.error.error.message,txHash:p.error.error.transactionHash,chain:p.error.chain}:p.is_insufficient_fee?{message:"Insufficient fee",txHash:p.call.transaction.hash,chain:p.call.chain}:void 0),timeSpent:f,gasPaidInfo:d,callTx:i,executed:s,expressExecuted:c,approved:u,callback:l};var p};class Cb{config;initialised;constructor(e){this.config=e,this.initialised=!1}async initialise(){this.initialised||(await async function(e){const t="Please upgrade to the latest version of the Bridge SDK or provide valid configuration",n=await rb((async()=>e.rootProvider.getNetwork()),tb.ROOT_PROVIDER_ERROR);if(n.chainId.toString()!==e.bridgeInstance.rootChainID)throw new nb(`Rootchain provider chainID ${n.chainId} does not match expected chainID ${e.bridgeInstance.rootChainID}. ${t}`,tb.UNSUPPORTED_ERROR);const r=await rb((async()=>e.childProvider.getNetwork()),tb.CHILD_PROVIDER_ERROR);if(r.chainId.toString()!==e.bridgeInstance.childChainID)throw new nb(`Childchain provider chainID ${r.chainId} does not match expected chainID ${e.bridgeInstance.childChainID}. ${t} `,tb.UNSUPPORTED_ERROR)}(this.config),this.initialised=!0)}async getFee(e){const[,,t]=await Promise.all([this.initialise(),async()=>{e.action!==Ry.FINALISE_WITHDRAWAL&&await pb(e.sourceChainId,e.destinationChainId,this.config)},this.getFeePrivate(e)]);return t}async getFinaliseWithdrawFee(){return mb(await this.config.rootProvider.getFeeData(),Ny.FINALISE_WITHDRAWAL)}async getDepositOrWithdrawFee(e){let t;t=e.sourceChainId===this.config.bridgeInstance.rootChainID?await this.config.rootProvider.getFeeData():await this.config.childProvider.getFeeData();let n,r,i=hh.from(0),a=hh.from(0),o=hh.from(0);if(e.action===Ry.DEPOSIT)n={sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:Ry.DEPOSIT};else{if(e.action!==Ry.WITHDRAW)throw new nb("Invalid action",tb.INTERNAL_ERROR);n={sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:Ry.WITHDRAW}}if(!lb(n,this.config.bridgeInstance)&&!db(n,this.config.bridgeInstance))throw new nb("Invalid direction",tb.INTERNAL_ERROR);return function(e){return!("token"in e)||e.token.toUpperCase()===Dy}(e)||(lb(n,this.config.bridgeInstance)||function(e,t,n){return db(t,n)&&ub(e,t.sourceChainId)}(e.token,n,this.config.bridgeInstance))&&(a=mb(t,Ny.APPROVE_TOKEN)),e.action===Ry.DEPOSIT?(i=mb(t,Ny.DEPOSIT_SOURCE),r=Ny.DEPOSIT_DESTINATION):(i=mb(t,Ny.WITHDRAW_SOURCE),r=Ny.WITHDRAW_DESTINATION),o=await this.getAxelarFee(e.sourceChainId,e.destinationChainId,r,e.gasMultiplier),{sourceChainFee:i,approvalFee:a,bridgeFee:o}}async getFeePrivate(e){!function(e,t){if(e.action===Ry.FINALISE_WITHDRAWAL&&e.sourceChainId!==t.bridgeInstance.rootChainID)throw new nb(`Finalised withdrawals must be on the root chain (${t.bridgeInstance.rootChainID})`,tb.INVALID_SOURCE_CHAIN_ID);if(!("destinationChainId"in e))throw new nb("DEPOSIT or WITHDRAW used without destinationChainId",tb.INVALID_DESTINATION_CHAIN_ID);const n={sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:e.action};if(!lb(n,t.bridgeInstance)&&!db(n,t.bridgeInstance))throw new nb("This request is neither a valid deposit nor a valid withdrawal",tb.INVALID_SOURCE_OR_DESTINATION_CHAIN)}(e,this.config);let t=hh.from(0),n=hh.from(0),r=hh.from(0);if(e.action===Ry.FINALISE_WITHDRAWAL)t=await this.getFinaliseWithdrawFee();else{const i=await this.getDepositOrWithdrawFee(e);t=i.sourceChainFee,n=i.approvalFee,r=i.bridgeFee}const i=t.add(n).add(r);return{sourceChainGas:t,approvalFee:n,bridgeFee:r,imtblFee:hh.from("0"),totalFees:i}}async getUnsignedApproveBridgeTx(e){const t=await this.getUnsignedBridgeBundledTx({senderAddress:e.senderAddress,recipientAddress:e.senderAddress,token:e.token,amount:e.amount,sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,gasMultiplier:1.1});return{contractToApprove:t.contractToApprove,unsignedTx:t.unsignedApprovalTx}}async getBridgeMethods(e){let t;return t=lb(e,this.config.bridgeInstance)?$y:eb,t}async getBridgeContract(e){if(lb(e,this.config.bridgeInstance)){const e=this.config.bridgeContracts.rootERC20BridgeFlowRate;return await ib(e,vb,this.config.rootProvider)}const t=this.config.bridgeContracts.childERC20Bridge;return await ib(t,Tb,this.config.childProvider)}async getTxData(e,t,n,r,i){const a=await this.getBridgeMethods(i),o=await this.getBridgeContract(i);let s,c;if(r.toUpperCase()===Dy)e===t?(s=a.native,c=[n]):(s=a.nativeTo,c=[t,n]);else{const i=hm(r);e===t?(s=a.token,c=[i,n]):(s=a.tokenTo,c=[i,t,n])}return await rb((async()=>o.interface.encodeFunctionData(s,c)),tb.INTERNAL_ERROR)}async getUnsignedBridgeTx(e){const t=await this.getUnsignedBridgeBundledTx({senderAddress:e.senderAddress,recipientAddress:e.senderAddress,token:e.token,amount:e.amount,sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,gasMultiplier:e.gasMultiplier});return{feeData:t.feeData,unsignedTx:t.unsignedBridgeTx}}async getUnsignedBridgeBundledTx(e){const[,,,t]=await Promise.all([this.initialise(),hb(e,this.config),fb(e.token,e.destinationChainId,e.recipientAddress,this.config),this.getUnsignedBridgeBundledTxPrivate(e)]);return t}async getUnsignedBridgeBundledTxPrivate(e){let t;var n,r;if(n=e.sourceChainId,r=this.config.bridgeInstance,t=n===r.rootChainID?{sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:Ry.DEPOSIT}:{sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:Ry.WITHDRAW},lb(t,this.config.bridgeInstance))return this.getUnsignedBridgeDepositBundledTxPrivate(t,e.senderAddress,e.recipientAddress,e.token,e.amount,e.gasMultiplier);if(db(t,this.config.bridgeInstance))return this.getUnsignedBridgeWithdrawBundledTxPrivate(t,e.senderAddress,e.recipientAddress,e.token,e.amount,e.gasMultiplier);throw new nb("Invalid Bridge Bundled TX",tb.INVALID_TRANSACTION)}async getUnsignedBridgeDepositBundledTxPrivate(e,t,n,r,i,a){const[o,s,c,u]=await Promise.all([this.getAllowance(e,r,t),this.config.rootProvider.getFeeData(),this.getDynamicDepositGas(this.config.bridgeInstance.rootChainID,t,n,r,i),this.getAxelarFee(this.config.bridgeInstance.rootChainID,this.config.bridgeInstance.childChainID,Ny.DEPOSIT_DESTINATION,a)]);let l,d,f=hh.from(0),p=hh.from(0);const h=u,m=hh.from(0);if(r.toUpperCase()!==Dy&&o.lt(i)){l=r;const e=await ib(r,wb,this.config.rootProvider);d={data:await rb((async()=>e.interface.encodeFunctionData("approve",[this.config.bridgeContracts.rootERC20BridgeFlowRate,i])),tb.INTERNAL_ERROR),to:r,value:0,from:t,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)},p=mb(s,c.approvalGas)}else l=null,d=null;const y=await this.getTxData(t,n,i,r,e),b=r.toUpperCase()===Dy?i.add(h).toString():h.toString(),g={data:y,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:b,from:t,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)};f=mb(s,c.sourceChainGas);const v=f.add(p).add(h).add(m);return{feeData:{sourceChainGas:f,approvalFee:p,bridgeFee:h,imtblFee:m,totalFees:v},contractToApprove:l,unsignedApprovalTx:d,unsignedBridgeTx:g}}async getUnsignedBridgeWithdrawBundledTxPrivate(e,t,n,r,i,a){const[o,s,c]=await Promise.all([this.getAllowance(e,r,t),this.config.childProvider.getFeeData(),await this.getDynamicWithdrawGasRootChain(e.destinationChainId,t,n,r,i)]),u=await this.getAxelarFee(this.config.bridgeInstance.childChainID,this.config.bridgeInstance.rootChainID,c,a);let l,d,f=hh.from(0),p=hh.from(0);const h=u,m=hh.from(0);if(ub(r,this.config.bridgeInstance.childChainID)&&o.lt(i)){l=r;const e=await ib(r,wb,this.config.childProvider);d={data:await rb((async()=>e.interface.encodeFunctionData("approve",[this.config.bridgeContracts.childERC20Bridge,i])),tb.INTERNAL_ERROR),to:r,value:0,from:t,chainId:parseInt(this.config.bridgeInstance.childChainID,10)},p=mb(s,Ny.APPROVE_TOKEN)}else l=null,d=null;const y=await this.getTxData(t,n,i,r,e),b=r.toUpperCase()===Dy?i.add(h).toString():h.toString(),g={data:y,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:b,from:t,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)};f=mb(s,Ny.WITHDRAW_SOURCE);const v=f.add(p).add(h).add(m);return{feeData:{sourceChainGas:f,approvalFee:p,bridgeFee:h,imtblFee:m,totalFees:v},contractToApprove:l,unsignedApprovalTx:d,unsignedBridgeTx:g}}async getDynamicDepositGas(e,t,n,r,i){const a=[];if(r.toUpperCase()!==Dy){const e=await ib(r,wb,this.config.rootProvider),n=await rb((async()=>e.interface.encodeFunctionData("approve",[this.config.bridgeContracts.rootERC20BridgeFlowRate,i])),tb.INTERNAL_ERROR);a.push({from:t,to:r,data:n})}const o={action:Ry.DEPOSIT,sourceChainId:e,destinationChainId:this.config.bridgeInstance.childChainID},s=await this.getTxData(t,n,i,r,o),c=r.toUpperCase()!==Dy?"0x1":sh(i.add("1").toHexString());a.push({from:t,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,data:s,value:c});const u=await gb(e,a),l={};return 1===u.length?(l.approvalGas=0,[l.sourceChainGas]=u):[l.approvalGas,l.sourceChainGas]=u,l}async getDynamicWithdrawGasRootChain(e,t,n,r,i){const a=function(e,t,n,r){return Km.encode(["bytes32","address","address","address","uint256"],["0x7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e982869",e,t,n,r])}(await bb(r,e,this.config.childProvider),t,n,i.toString()),o=function(e){return om(Km.encode(["bytes","uint256"],[e,(new Date).getTime()]))}(a),s=ab(e,Gy);const c=hm(function(e){return ab(e,Wy)}(e)).toString(),u=function(e){return ab(e,Vy)}(e),l=om(a),d=om(Km.encode(["bytes32","bytes32","string","string","address","bytes32"],["0x07b0d4304f82012bd3b70b1d531c160e326067c90829e2a3d386722ad10b89c3",o,s,c,u,l])),f=om(th([d,ah(nh(ah(4),32))])),p=await ib(u,Sy,this.config.rootProvider),h=await rb((async()=>p.interface.encodeFunctionData("execute",[o,s,c,a])),tb.INTERNAL_ERROR),m=function(e){return ab(e,qy)}(e),y=[{from:t,to:u,data:h}];return(await gb(e,y,{[m]:{stateDiff:{[f]:"0x0000000000000000000000000000000000000000000000000000000000000001"}}}))[0]}async getAllowance(e,t,n){if(t.toUpperCase()===Dy)return hh.from(0);if(function(e,t,n){return db(t,n)&&!ub(e,t.sourceChainId)}(t,e,this.config.bridgeInstance))return hh.from(0);let r,i;lb(e,this.config.bridgeInstance)?(r=this.config.rootProvider,i=this.config.bridgeContracts.rootERC20BridgeFlowRate):(r=this.config.childProvider,i=this.config.bridgeContracts.childERC20Bridge);const a=await ib(t,wb,r);return await rb((()=>a.allowance(n,i)),tb.PROVIDER_ERROR)}async getAxelarFee(e,t,n,r="auto"){const i=Qy[e],a=Qy[t];if(!i)throw new nb(`Source chainID ${e} can not be matched to an Axelar chain.`,tb.AXELAR_CHAIN_NOT_FOUND);if(!a)throw new nb(`Destination chainID ${t} can not be matched to an Axelar chain.`,tb.AXELAR_CHAIN_NOT_FOUND);const o=cb(e),s={method:"estimateGasFee",sourceChain:i.id,destinationChain:a.id,symbol:i.symbol,gasLimit:n,gasMultiplier:r};let c;try{c=await Rp.post(o,s)}catch(e){c=e.response}if(c.data.error)throw new nb(`Estimating Axelar Gas failed with the reason: ${c.data.message}`,tb.AXELAR_GAS_ESTIMATE_FAILED);try{return hh.from(`${c.data}`)}catch(e){throw new nb(`Estimating Axelar Gas failed with the reason: ${e}`,tb.AXELAR_GAS_ESTIMATE_FAILED)}}async getTransactionStatus(e){const t={transactions:[]},n=await this.getAxelarStatus(e.transactions,e.sourceChainId),r=await this.getUniqueReceivers(n,e.sourceChainId),i=[];for(const e of r)i.push(this.getPendingWithdrawals({recipient:e}));let a=[];try{a=await Promise.all(i)}catch(e){throw new nb(`Failed to fetch the pending withdrawals with: ${e}`,tb.FLOW_RATE_ERROR)}t.transactions=n;for(const e of t.transactions)e.status===My.COMPLETE&&(()=>{for(const t of a){const n=t.pending.findIndex((t=>t.amount.toString()===e.amount.toString()&&t.token===e.token&&t.withdrawer===e.sender&&t.recipient===e.recipient));if(-1!==n)return e.status=My.FLOW_RATE_CONTROLLED,e.data={canWithdraw:t.pending[n].canWithdraw,timeoutStart:t.pending[n].timeoutStart,timeoutEnd:t.pending[n].timeoutEnd},void t.pending.splice(n,1)}})();return t}async getUniqueReceivers(e,t){const n=[],r=[jy,Fy,By].includes(t);for(let t=0,i=e.length;t<i;t++)if(e[t].status===My.COMPLETE&&r&&e[t].recipient){const r=n.findIndex((n=>n===e[t].recipient));-1===r&&n.push(e[t].recipient)}return n}async getAxelarStatus(e,t){const n=[],r=[],i=cb(t),a=[Ab.GAS_UNPAID,Ab.GAS_PAID_NOT_ENOUGH_GAS],o=new qm;for(const t of e)r.push(Ib(i,t.txHash));let s;try{s=await Promise.all(r)}catch(e){throw new nb(`Failed to fetch the Axelar Status with the reason: ${e}`,tb.AXELAR_GAS_ESTIMATE_FAILED)}for(let t=0,r=s.length;t<r;t++){let r;switch(s[t].status){case Eb.CANNOT_FETCH_STATUS:r=My.PENDING;break;case Eb.SRC_GATEWAY_CALLED:case Eb.DEST_GATEWAY_APPROVED:case Eb.DEST_EXECUTING:case Eb.SRC_GATEWAY_CONFIRMED:case Eb.APPROVING:r=My.PROCESSING;break;case Eb.NOT_EXECUTED:r=My.RETRY;break;case Eb.NOT_EXECUTED_WITHOUT_GAS_PAID:case Eb.INSUFFICIENT_FEE:r=My.NOT_ENOUGH_GAS;break;case Eb.DEST_EXECUTED:r=My.COMPLETE;break;default:r=My.ERROR}s[t].gasPaidInfo&&a.includes(s[t].gasPaidInfo.status)&&(r=My.NOT_ENOUGH_GAS);let i,c={txHash:e[t].txHash,status:r,data:{gmpResponse:s[t].status}};s[t]?.callTx?.returnValues?.payload&&(i=o.decode(["bytes32","address","address","address","uint256"],s[t].callTx.returnValues.payload),c={...c,token:i[1],sender:i[2],recipient:i[3],amount:i[4]}),n.push(c)}return n}async getFlowRateInfo(e){if(!e.tokens||0===e.tokens.length)throw new nb(`invalid tokens array ${e.tokens}`,tb.INVALID_TOKEN);const t=this.config.bridgeContracts.rootERC20BridgeFlowRate,n=await ib(t,vb,this.config.rootProvider),r=[];r.push(n.withdrawalQueueActivated()),r.push(n.withdrawalDelay());for(let t of e.tokens)t.toUpperCase()===Dy&&(t="0x0000000000000000000000000000000000000eee"),r.push(n.flowRateBuckets(t)),r.push(n.largeTransferThresholds(t));let i;try{i=await Promise.all(r)}catch(e){throw new nb("unable to query contract for flowrate info",tb.INTERNAL_ERROR)}const a={},o=i[0],s=i[1].toNumber();i.splice(0,2);for(let t=0,n=e.tokens.length;t<n;t++){const n=2*t;a[e.tokens[t]]={capacity:i[n].capacity,depth:i[n].depth,refillTime:i[n].refillTime.toNumber(),refillRate:i[n].refillRate,largeTransferThreshold:i[n+1]}}return{withdrawalQueueActivated:o,withdrawalDelay:s,tokens:a}}async getPendingWithdrawals(e){if(!e.recipient)throw new nb(`invalid recipient ${e.recipient}`,tb.INVALID_RECIPIENT);const t=this.config.bridgeContracts.rootERC20BridgeFlowRate,n=await ib(t,vb,this.config.rootProvider),r=await n.getPendingWithdrawalsLength(e.recipient),i={pending:[]};if(0===r.toNumber())return i;const a=[];for(let e=0;e<r.toNumber();e++)a.push(e);const o=await n.getPendingWithdrawals(e.recipient,a),s=Math.floor(Date.now()/1e3),c=await n.withdrawalDelay();for(let t=0,n=o.length;t<n;t++){const n=o[t].timestamp.add(c).toNumber();i.pending[t]=n>s?{canWithdraw:!1}:{canWithdraw:!0},i.pending[t].recipient=e.recipient,i.pending[t].withdrawer=o[t].withdrawer,i.pending[t].token=o[t].token,i.pending[t].amount=o[t].amount,i.pending[t].timeoutStart=o[t].timestamp.toNumber(),i.pending[t].timeoutEnd=n}return i}async getFlowRateWithdrawTx(e){if(!e.recipient)throw new nb(`invalid recipient ${e.recipient}`,tb.INVALID_RECIPIENT);if(e.index<0)throw new nb(`invalid index ${e.index}`,tb.INVALID_FLOWRATE_INDEX);const t=this.config.bridgeContracts.rootERC20BridgeFlowRate,n=await ib(t,vb,this.config.rootProvider),r=await n.getPendingWithdrawals(e.recipient,[e.index]);if(r[0].withdrawer===_m||r[0].token===_m||r[0].amount===hh.from(0)||r[0].timestamp===hh.from(0))throw new nb(`pending withdrawal not found for ${e.recipient} at index ${e.index}`,tb.FLOW_RATE_ERROR);const i=await n.withdrawalDelay(),a=r[0].timestamp.add(i).toNumber();if(a>Math.floor(Date.now()/1e3))return{pendingWithdrawal:{canWithdraw:!1,withdrawer:r[0].withdrawer,recipient:e.recipient,token:r[0].token,amount:r[0].amount,timeoutStart:r[0].timestamp.toNumber(),timeoutEnd:a},unsignedTx:null};const o=await rb((async()=>n.interface.encodeFunctionData("finaliseQueuedWithdrawal",[e.recipient,e.index])),tb.INTERNAL_ERROR);return{pendingWithdrawal:{canWithdraw:!0,withdrawer:r[0].withdrawer,recipient:e.recipient,token:r[0].token,amount:r[0].amount,timeoutStart:r[0].timestamp.toNumber(),timeoutEnd:a},unsignedTx:{data:o,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:0,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)}}}async getTokenMapping(e){if(e.rootToken.toUpperCase()===Dy||e.rootToken===this.config.bridgeContracts.rootChainWrappedETH){const t=this.config.bridgeContracts.childERC20Bridge,n=await ib(t,Tb,this.config.childProvider),r=await n.childETHToken();return{rootToken:e.rootToken,childToken:r}}const t=this.config.bridgeContracts.rootERC20BridgeFlowRate,n=await ib(t,vb,this.config.rootProvider),r=await n.rootTokenToChildToken(e.rootToken);return r===_m?{rootToken:e.rootToken,childToken:null}:r===e.rootToken?{rootToken:e.rootToken,childToken:Dy}:{rootToken:e.rootToken,childToken:r}}}
24
+ */!function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?r=Np:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&e.exports,o=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),c=[4,1024,262144,67108864],u=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new S(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new S(e,t,i).update(r)[n]()}},b=function(e,t,n){return function(t,r,i,a){return E["cshake"+e].update(t,r,i,a)[n]()}},g=function(e,t,n){return function(t,r,i,a){return E["kmac"+e].update(t,r,i,a)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var a=p[i];e[a]=t(n,r,a)}return e},w=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new S(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},T=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new S(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:c,bits:f,createMethod:function(e,t){var n=h[e],r=b(e,0,"hex");return r.create=function(r,i,a){return i||a?new S(e,t,r).bytepad([i,a],n):E["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,b,e,t)}},{name:"kmac",padding:c,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,a){return new k(e,t,i).bytepad(["KMAC",a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,g,e,t)}}],E={},A=[],x=0;x<T.length;++x)for(var O=T[x],I=O.bits,C=0;C<I.length;++C){var _=O.name+"_"+I[C];if(A.push(_),E[_]=O.createMethod(I[C],O.padding),"sha3"!==O.name){var P=O.name+I[C];A.push(P),E[P]=E[_]}}function S(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function k(e,t,n){S.call(this,e,t,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,a,s=this.blocks,c=this.byteCount,l=e.length,d=this.blockCount,f=0,p=this.s;f<l;){if(this.reset)for(this.reset=!1,s[0]=this.block,i=1;i<d+1;++i)s[i]=0;if(n)for(i=this.start;f<l&&i<c;++f)s[i>>2]|=e[f]<<u[3&i++];else for(i=this.start;f<l&&i<c;++f)(a=e.charCodeAt(f))<128?s[i>>2]|=a<<u[3&i++]:a<2048?(s[i>>2]|=(192|a>>6)<<u[3&i++],s[i>>2]|=(128|63&a)<<u[3&i++]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<u[3&i++],s[i>>2]|=(128|a>>6&63)<<u[3&i++],s[i>>2]|=(128|63&a)<<u[3&i++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|a>>18)<<u[3&i++],s[i>>2]|=(128|a>>12&63)<<u[3&i++],s[i>>2]|=(128|a>>6&63)<<u[3&i++],s[i>>2]|=(128|63&a)<<u[3&i++]);if(this.lastByteIndex=i,i>=c){for(this.start=i-c,this.block=s[d],i=0;i<d;++i)p[i]^=s[i];R(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var s=0;s<e.length;++s){var c=e.charCodeAt(s);c<128?i+=1:c<2048?i+=2:c<55296||c>=57344?i+=3:(c=65536+((1023&c)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];R(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,c="";o<r;){for(a=0;a<t&&o<r;++a,++o)e=n[a],c+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(R(n),a=0)}return i&&(e=n[a],c+=s[e>>4&15]+s[15&e],i>1&&(c+=s[e>>12&15]+s[e>>8&15]),i>2&&(c+=s[e>>20&15]+s[e>>16&15])),c},S.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var c=new Uint32Array(e);o<r;){for(a=0;a<t&&o<r;++a,++o)c[o]=n[a];o%t==0&&R(n)}return i&&(c[a]=n[a],e=e.slice(0,s)),e},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,a=this.extraBytes,o=0,s=0,c=[];s<i;){for(o=0;o<n&&s<i;++o,++s)e=s<<2,t=r[o],c[e]=255&t,c[e+1]=t>>8&255,c[e+2]=t>>16&255,c[e+3]=t>>24&255;s%n==0&&R(r)}return a&&(e=s<<2,t=r[o],c[e]=255&t,a>1&&(c[e+1]=t>>8&255),a>2&&(c[e+2]=t>>16&255)),c},k.prototype=new S,k.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var R=function(e){var t,n,r,i,a,o,s,c,u,d,f,p,h,m,y,b,g,v,w,T,E,A,x,O,I,C,_,P,S,k,R,N,M,D,L,j,F,B,U,z,H,W,V,G,q,K,X,Y,Z,J,Q,$,ee,te,ne,re,ie,ae,oe,se,ce,ue,le;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(c<<1|u>>>31),n=a^(u<<1|c>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(d<<1|f>>>31),n=s^(f<<1|d>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=c^(p<<1|h>>>31),n=u^(h<<1|p>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=d^(i<<1|a>>>31),n=f^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,m=e[0],y=e[1],K=e[11]<<4|e[10]>>>28,X=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,S=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ce=e[30]<<9|e[31]>>>23,W=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,D=e[2]<<1|e[3]>>>31,L=e[3]<<1|e[2]>>>31,b=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,k=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,F=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,Q=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,O=e[6]<<28|e[7]>>>4,I=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,B=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,T=e[36]<<21|e[37]>>>11,E=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,G=e[8]<<27|e[9]>>>5,q=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,_=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,x=e[49]<<14|e[48]>>>18,e[0]=m^~b&v,e[1]=y^~g&w,e[10]=O^~C&P,e[11]=I^~_&S,e[20]=D^~j&B,e[21]=L^~F&U,e[30]=G^~K&Y,e[31]=q^~X&Z,e[40]=te^~re&ae,e[41]=ne^~ie&oe,e[2]=b^~v&T,e[3]=g^~w&E,e[12]=C^~P&k,e[13]=_^~S&R,e[22]=j^~B&z,e[23]=F^~U&H,e[32]=K^~Y&J,e[33]=X^~Z&Q,e[42]=re^~ae&se,e[43]=ie^~oe&ce,e[4]=v^~T&A,e[5]=w^~E&x,e[14]=P^~k&N,e[15]=S^~R&M,e[24]=B^~z&W,e[25]=U^~H&V,e[34]=Y^~J&$,e[35]=Z^~Q&ee,e[44]=ae^~se&ue,e[45]=oe^~ce&le,e[6]=T^~A&m,e[7]=E^~x&y,e[16]=k^~N&O,e[17]=R^~M&I,e[26]=z^~W&D,e[27]=H^~V&L,e[36]=J^~$&G,e[37]=Q^~ee&q,e[46]=se^~ue&te,e[47]=ce^~le&ne,e[8]=A^~m&b,e[9]=x^~y&g,e[18]=N^~O&C,e[19]=M^~I&_,e[28]=W^~D&j,e[29]=V^~L&F,e[38]=$^~G&K,e[39]=ee^~q&X,e[48]=ue^~te&re,e[49]=le^~ne&ie,e[0]^=l[r],e[1]^=l[r+1]};if(a)e.exports=E;else for(x=0;x<A.length;++x)r[A[x]]=E[A[x]]}()}(im);var am=Mp(im.exports);function om(e){return"0x"+am.keccak_256(eh(e))}const sm=new Xp("rlp/5.7.0");function cm(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function um(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(um(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=cm(t.length);return n.unshift(247+n.length),n.concat(t)}var t;rh(t=e)&&!(t.length%2)||$p(t)||sm.throwArgumentError("RLP object must be BytesLike","object",e);const n=Array.prototype.slice.call(eh(e));if(1===n.length&&n[0]<=127)return n;if(n.length<=55)return n.unshift(128+n.length),n;const r=cm(n.length);return r.unshift(183+r.length),r.concat(n)}const lm=new Xp("address/5.7.0");function dm(e){rh(e,20)||lm.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=eh(om(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const fm={};for(let e=0;e<10;e++)fm[String(e)]=String(e);for(let e=0;e<26;e++)fm[String.fromCharCode(65+e)]=String(10+e);const pm=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function hm(e){let t=null;if("string"!=typeof e&&lm.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=dm(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&lm.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>fm[e])).join("");for(;t.length>=pm;){let e=t.substring(0,pm);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}(e)&&lm.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new uh(n,36).toString(16);t.length<40;)t="0"+t;t=dm("0x"+t)}else lm.throwArgumentError("invalid address","address",e);var n;return t}function mm(e){try{return hm(e),!0}catch(e){}return!1}function ym(e){let t=null;try{t=hm(e.from)}catch(t){lm.throwArgumentError("missing from address","transaction",e)}const n=function(e){let t=eh(e);if(0===t.length)return t;let n=0;for(;n<t.length&&0===t[n];)n++;return n&&(t=t.slice(n)),t}(eh(hh.from(e.nonce).toHexString()));return hm(oh(om(ah(um([t,n]))),12))}class bm extends tm{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=hm(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return hm(ch(e.readValue().toHexString(),20))}}class gm extends tm{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const vm=new Xp(Sh);function wm(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map((t=>{const r=t.localName;return r||vm.throwError("cannot encode object for signature with missing names",Xp.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&vm.throwError("cannot encode object for signature with duplicate names",Xp.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else vm.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&vm.throwArgumentError("types/value length mismatch","tuple",n);let i=new nm(e.wordSize),a=new nm(e.wordSize),o=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push((e=>{r(e+t)}))}else e.encode(i,n)})),o.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function Tm(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===Xp.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Xp.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)}));const i=t.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});t.forEach(((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a}));for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}class Em extends tm{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),vm.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return wm(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&vm.throwError("insufficient data length",Xp.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new gm(this.coder));return e.coerce(this.name,Tm(e,n))}}class Am extends tm{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class xm extends tm{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=eh(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Om extends xm{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,ah(super.decode(e)))}}class Im extends tm{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=eh(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,ah(e.readBytes(this.size)))}}class Cm extends tm{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}const _m="0x0000000000000000000000000000000000000000",Pm=hh.from(-1),Sm=hh.from(0),km=hh.from(1),Rm=hh.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Nm extends tm{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=hh.from(t),r=Rm.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(km).mul(Pm)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Sm)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}const Mm=new Xp("strings/5.7.0");var Dm,Lm;function jm(e,t,n,r,i){if(e===Lm.BAD_PREFIX||e===Lm.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===Lm.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Dm||(Dm={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(Lm||(Lm={}));const Fm=Object.freeze({error:function(e,t,n,r,i){return Mm.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:jm,replace:function(e,t,n,r,i){return e===Lm.OVERLONG?(r.push(i),0):(r.push(65533),jm(e,t,n))}});function Bm(e,t=Dm.current){t!=Dm.current&&(Mm.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const a=65536+((1023&r)<<10)+(1023&i);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(63&a|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return eh(n)}function Um(e,t){return n=function(e,t){null==t&&(t=Fm.error),e=eh(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let a=null,o=null;if(192==(224&i))a=1,o=127;else if(224==(240&i))a=2,o=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?Lm.UNEXPECTED_CONTINUE:Lm.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(Lm.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if(128!=(192&i)){r+=t(Lm.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(Lm.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(Lm.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(Lm.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}(e,t),n.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("");var n}class zm extends xm{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Bm(t))}decode(e){return Um(super.decode(e))}}class Hm extends tm{constructor(e,t){let n=!1;const r=[];e.forEach((e=>{e.dynamic&&(n=!0),r.push(e.type)}));super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});return this.coders.forEach(((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))})),Object.freeze(e)}encode(e,t){return wm(e,this.coders,t)}decode(e){return e.coerce(this.name,Tm(e,this.coders))}}const Wm=new Xp(Sh),Vm=new RegExp(/^bytes([0-9]*)$/),Gm=new RegExp(/^(u?int)([0-9]*)$/);class qm{constructor(e){Th(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new bm(e.name);case"bool":return new Am(e.name);case"string":return new zm(e.name);case"bytes":return new Om(e.name);case"array":return new Em(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Hm((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new Cm(e.name)}let t=e.type.match(Gm);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Wm.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Nm(n/8,"int"===t[1],e.name)}if(t=e.type.match(Vm),t){let n=parseInt(t[1]);return(0===n||n>32)&&Wm.throwArgumentError("invalid bytes length","param",e),new Im(n,e.name)}return Wm.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new rm(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new nm(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Bh.from(e))));return new Hm(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Wm.throwError("types/values length mismatch",Xp.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(Bh.from(e)))),r=new Hm(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(Bh.from(e))));return new Hm(r,"_").decode(this._getReader(eh(t),n))}}const Km=new qm;function Xm(e){return om(Bm(e))}const Ym=new Xp(Sh);class Zm extends Ph{}class Jm extends Ph{}class Qm extends Ph{}class $m extends Ph{static isIndexed(e){return!(!e||!e._isIndexed)}}const ey={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function ty(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}class ny{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Th(this,"fragments",t.map((e=>zh.from(e))).filter((e=>null!=e))),Th(this,"_abiCoder",Eh(new.target,"getAbiCoder")()),Th(this,"functions",{}),Th(this,"errors",{}),Th(this,"events",{}),Th(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Ym.warn("duplicate definition - constructor"):void Th(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?Ym.warn("duplicate definition - "+n):t[n]=e})),this.deploy||Th(this,"deploy",qh.from({payable:!1,type:"constructor"})),Th(this,"_isInterface",!0)}format(e){e||(e=jh.full),e===jh.sighash&&Ym.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===jh.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return Km}static getAddress(e){return hm(e)}static getSighash(e){return oh(Xm(e.format()),0,4)}static getEventTopic(e){return Xm(e.format())}getFunction(e){if(rh(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Ym.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===n.length?Ym.throwArgumentError("no matching function","name",t):n.length>1&&Ym.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[Kh.fromString(e).format()];return t||Ym.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(rh(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Ym.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===n.length?Ym.throwArgumentError("no matching event","name",t):n.length>1&&Ym.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[Hh.fromString(e).format()];return t||Ym.throwArgumentError("no matching event","signature",e),t}getError(e){if(rh(e)){const t=Eh(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}Ym.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===n.length?Ym.throwArgumentError("no matching error","name",t):n.length>1&&Ym.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[Kh.fromString(e).format()];return t||Ym.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return Eh(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Eh(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=eh(t);return ah(n.slice(0,4))!==this.getSighash(e)&&Ym.throwArgumentError(`data signature does not match error ${e.name}.`,"data",ah(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),ah(th([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=eh(t);return ah(n.slice(0,4))!==this.getSighash(e)&&Ym.throwArgumentError(`data signature does not match function ${e.name}.`,"data",ah(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),ah(th([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=eh(t),r=null,i="",a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=ah(n.slice(0,4)),t=ey[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),"Error"===o?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:"Panic"===o&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{const t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch(e){}break}}return Ym.throwError("call revert exception"+i,Xp.errors.CALL_EXCEPTION,{method:e.format(),data:ah(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),ah(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Ym.throwError("too many arguments for "+e.format(),Xp.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?Xm(t):"bytes"===e.type?om(ah(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=hh.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),ch(ah(t),32));for(t.forEach(((t,i)=>{let a=e.inputs[i];a.indexed?null==t?n.push(null):"array"===a.baseType||"tuple"===a.baseType?Ym.throwArgumentError("filtering with tuples or arrays not supported","contract."+a.name,t):Array.isArray(t)?n.push(t.map((e=>r(a,e)))):n.push(r(a,t)):null!=t&&Ym.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+a.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Ym.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,a)=>{const o=t[a];if(e.indexed)if("string"===e.type)n.push(Xm(o));else if("bytes"===e.type)n.push(om(o));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[o]))}else r.push(e),i.push(o)})),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);rh(n[0],32)&&n[0].toLowerCase()===t||Ym.throwError("fragment/topic mismatch",Xp.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(Bh.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))}));let o=null!=n?this._abiCoder.decode(r,th(n)):null,s=this._abiCoder.decode(i,t,!0),c=[],u=0,l=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==o)c[t]=new $m({_isIndexed:!0,hash:null});else if(a[t])c[t]=new $m({_isIndexed:!0,hash:o[l++]});else try{c[t]=o[l++]}catch(e){c[t]=e}else try{c[t]=s[u++]}catch(e){c[t]=e}if(e.name&&null==c[e.name]){const n=c[t];n instanceof Error?Object.defineProperty(c,e.name,{enumerable:!0,get:()=>{throw ty(`property ${JSON.stringify(e.name)}`,n)}}):c[e.name]=n}}));for(let e=0;e<c.length;e++){const t=c[e];t instanceof Error&&Object.defineProperty(c,e,{enumerable:!0,get:()=>{throw ty(`index ${e}`,t)}})}return Object.freeze(c)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Jm({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:hh.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Zm({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=ah(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new Qm({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var ry=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))};const iy=new Xp("abstract-provider/5.7.0");class ay{constructor(){iy.checkAbstract(new.target,ay),Th(this,"_isProvider",!0)}getFeeData(){return ry(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Ah({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=hh.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}}))}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}var oy=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))};const sy=new Xp("abstract-signer/5.7.0"),cy=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],uy=[Xp.errors.INSUFFICIENT_FUNDS,Xp.errors.NONCE_EXPIRED,Xp.errors.REPLACEMENT_UNDERPRICED];class ly{constructor(){sy.checkAbstract(new.target,ly),Th(this,"_isSigner",!0)}getBalance(e){return oy(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return oy(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return oy(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Ah(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return oy(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Ah(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return oy(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),n=yield this.signTransaction(t);return yield this.provider.sendTransaction(n)}))}getChainId(){return oy(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return oy(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return oy(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return oy(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===cy.indexOf(t)&&sy.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=xh(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&sy.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return oy(this,void 0,void 0,(function*(){const t=yield Ah(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>oy(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&sy.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const n=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!n?0!==t.type&&1!==t.type||!n||sy.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):sy.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(n&&sy.throwError("network does not support EIP-1559",Xp.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):sy.throwError("failed to get consistent fee data",Xp.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(uy.indexOf(e.code)>=0)throw e;return sy.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Xp.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&sy.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Ah(t)}))}_checkProvider(e){this.provider||sy.throwError("missing provider",Xp.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}}class dy extends ly{constructor(e,t){super(),Th(this,"address",e),Th(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{sy.throwError(e,Xp.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(e){return new dy(this.address,e)}}const fy=new Xp("transactions/5.7.0");var py;function hy(e,t){return{address:hm(e),storageKeys:(t||[]).map(((t,n)=>(32!==function(e){if("string"!=typeof e)e=ah(e);else if(!rh(e)||e.length%2)return null;return(e.length-2)/2}(t)&&fy.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(py||(py={}));var my=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))};const yy=new Xp("contracts/5.7.0");function by(e,t){return my(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&yy.throwArgumentError("invalid address or ENS name","name",n);try{return hm(n)}catch(e){}e||yy.throwError("a provider or signer is needed to resolve ENS names",Xp.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&yy.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function gy(e,t,n){return my(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>gy(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield by(e,t):"tuple"===n.type?yield gy(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>gy(e,t,n.arrayChildren)))):Promise.reject(yy.makeError("invalid value for array",Xp.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function vy(e,t,n){return my(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=xh(n.pop())),yy.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Ah({override:by(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>my(this,void 0,void 0,(function*(){return hm(e.signer)!==e.override&&yy.throwError("Contract with a Signer cannot override from",Xp.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=by(e.provider,r.from));const i=yield Ah({args:gy(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Ah(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=hh.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=hh.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=hh.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=hh.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=hh.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=function(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&fy.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),hy(e[0],e[1])):hy(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return hy(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=eh(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=hh.from(t.gas).add(e)}if(s.value){const e=hh.from(s.value);e.isZero()||t.payable||yy.throwError("non-payable method cannot override value",Xp.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=xh(s.customData)),s.ccipReadEnabled&&(o.ccipReadEnabled=!!s.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const c=Object.keys(r).filter((e=>null!=r[e]));return c.length&&yy.throwError(`cannot override ${c.map((e=>JSON.stringify(e))).join(",")}`,Xp.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:c}),o}))}function wy(e,t,n){const r=e.signer||e.provider;return function(...i){return my(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=xh(i.pop());null!=e.blockTag&&(a=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(a));const o=yield vy(e,t,i),s=yield r.call(o,a);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===Xp.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function Ty(e,t){return function(...n){return my(this,void 0,void 0,(function*(){e.signer||yy.throwError("sending a transaction requires a signer",Xp.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield vy(e,t,n),i=yield e.signer.sendTransaction(r);return function(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=_h(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r})),t)))}(e,i),i}))}}function Ey(e,t,n){return t.constant?wy(e,t,n):Ty(e,t)}function Ay(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}class xy{constructor(e,t){Th(this,"tag",e),Th(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((n=>!(!t&&n.listener===e)||(t=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const n=e.slice();return setTimeout((()=>{t.listener.apply(this,n)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}}class Oy extends xy{constructor(){super("error",null)}}class Iy extends xy{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&yy.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(Ay(i),i),Th(this,"address",e),Th(this,"interface",t),Th(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],n=function(e,r){if(Array.isArray(r))for(let i in r){const a=e.slice();a.push(i);try{n(a,r[i])}catch(e){t.push({path:a,error:e})}}};return n([],e),t}(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}}class Cy extends xy{constructor(e,t){super("*",{address:e}),Th(this,"address",e),Th(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}}class _y{constructor(e,t,n){Th(this,"interface",Eh(new.target,"getInterface")(t)),null==n?(Th(this,"provider",null),Th(this,"signer",null)):ly.isSigner(n)?(Th(this,"provider",n.provider||null),Th(this,"signer",n)):ay.isProvider(n)?(Th(this,"provider",n),Th(this,"signer",null)):yy.throwArgumentError("invalid signer or provider","signerOrProvider",n),Th(this,"callStatic",{}),Th(this,"estimateGas",{}),Th(this,"functions",{}),Th(this,"populateTransaction",{}),Th(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];Th(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)}))),e[n.name]||(e[n.name]=[]),e[n.name].push(t)})),Object.keys(e).forEach((t=>{const n=e[t];1===n.length?Th(this.filters,t,this.filters[n[0]]):yy.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(Th(this,"_runningEvents",{}),Th(this,"_wrappedEmits",{}),null==e&&yy.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Th(this,"address",e),this.provider)Th(this,"resolvedAddress",by(this.provider,e));else try{Th(this,"resolvedAddress",Promise.resolve(hm(e)))}catch(e){yy.throwError("provider is required to use ENS name as contract address",Xp.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const r={},i={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(i[e])yy.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&Th(this,e,Ey(this,t,!0)),null==this.functions[e]&&Th(this.functions,e,Ey(this,t,!1)),null==this.callStatic[e]&&Th(this.callStatic,e,wy(this,t,!0)),null==this.populateTransaction[e]&&Th(this.populateTransaction,e,function(e,t){return function(...n){return vy(e,t,n)}}(this,t)),null==this.estimateGas[e]&&Th(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return my(this,void 0,void 0,(function*(){n||yy.throwError("estimate require a provider or signer",Xp.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield vy(e,t,r);return yield n.estimateGas(i)}))}}(this,t))}})),Object.keys(r).forEach((e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&Th(this,e,this[n])}catch(e){}null==this.functions[e]&&Th(this.functions,e,this.functions[n]),null==this.callStatic[e]&&Th(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&Th(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&Th(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return ym(e)}static getInterface(e){return ny.isInterface(e)?e:new ny(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&yy.throwError("contract not deployed",Xp.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||yy.throwError("sending a transactions require a signer",Xp.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=xh(e||{});return["from","to"].forEach((function(e){null!=t[e]&&yy.throwError("cannot override "+e,Xp.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new dy(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Th(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return $m.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Oy);if("event"===e)return this._normalizeRunningEvent(new xy("event",null));if("*"===e)return this._normalizeRunningEvent(new Cy(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new Iy(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new Iy(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new xy(Ay(t),t))}return this._normalizeRunningEvent(new Cy(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=_h(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||yy.throwError("events require a provider or a signer with a provider",Xp.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=xh(r.filter);return"string"==typeof t&&rh(t,32)?(null!=n&&yy.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then((e=>e.map((e=>this._wrapEvent(r,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}}class Py extends _y{}const Sy=[{inputs:[{internalType:"address",name:"_gateway",type:"address"},{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerNotBridge",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidChildBridgeAdaptor",type:"error"},{inputs:[],name:"InvalidChildChain",type:"error"},{inputs:[],name:"InvalidSourceAddress",type:"error"},{inputs:[],name:"InvalidSourceChain",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NotApprovedByGateway",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[],name:"UnsupportedOperation",type:"error"},{inputs:[],name:"ZeroAddresses",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"sourceChain",type:"string"},{indexed:!1,internalType:"string",name:"sourceAddress_",type:"string"},{indexed:!1,internalType:"bytes",name:"payload_",type:"bytes"}],name:"AdaptorExecute",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"string",name:"childChain",type:"string"},{indexed:!0,internalType:"string",name:"childBridgeAdaptor",type:"string"},{indexed:!0,internalType:"bytes",name:"payload",type:"bytes"}],name:"AxelarMessageSent",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"oldChildBridgeAdaptor",type:"string"},{indexed:!1,internalType:"string",name:"newChildBridgeAdaptor",type:"string"}],name:"ChildBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"string",name:"oldChildChain",type:"string"},{indexed:!0,internalType:"string",name:"newChildChain",type:"string"}],name:"ChildChainUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldGasService",type:"address"},{indexed:!0,internalType:"address",name:"newGasService",type:"address"}],name:"GasServiceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldRootBridge",type:"address"},{indexed:!0,internalType:"address",name:"newRootBridge",type:"address"}],name:"RootBridgeUpdated",type:"event"},{inputs:[],name:"BRIDGE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"GAS_SERVICE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"TARGET_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childBridgeAdaptor",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"childChainId",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"commandId",type:"bytes32"},{internalType:"string",name:"sourceChain",type:"string"},{internalType:"string",name:"sourceAddress",type:"string"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"execute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"commandId",type:"bytes32"},{internalType:"string",name:"sourceChain",type:"string"},{internalType:"string",name:"sourceAddress",type:"string"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"string",name:"tokenSymbol",type:"string"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"executeWithToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"gasService",outputs:[{internalType:"contract IAxelarGasService",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"gateway",outputs:[{internalType:"contract IAxelarGateway",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantBridgeManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantGasServiceManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantTargetManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"bridgeManager",type:"address"},{internalType:"address",name:"gasServiceManager",type:"address"},{internalType:"address",name:"targetManager",type:"address"}],internalType:"struct IRootAxelarBridgeAdaptor.InitializationRoles",name:"_adaptorRoles",type:"tuple"},{internalType:"address",name:"_rootBridge",type:"address"},{internalType:"string",name:"_childChainId",type:"string"},{internalType:"string",name:"_childBridgeAdaptor",type:"string"},{internalType:"address",name:"_gasService",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeBridgeManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeGasServiceManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeTargetManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootBridge",outputs:[{internalType:"contract IRootERC20Bridge",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"address",name:"refundRecipient",type:"address"}],name:"sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"newChildBridgeAdaptor",type:"string"}],name:"updateChildBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newChildChain",type:"string"}],name:"updateChildChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newGasService",type:"address"}],name:"updateGasService",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRootBridge",type:"address"}],name:"updateRootBridge",outputs:[],stateMutability:"nonpayable",type:"function"}];var ky,Ry,Ny,My;!function(e){e.SUCCESS="SUCCESS",e.PENDING="PENDING",e.FAILED="FAILED"}(ky||(ky={})),function(e){e.DEPOSIT="DEPOSIT",e.WITHDRAW="WITHDRAW",e.FINALISE_WITHDRAWAL="FINALISE_WITHDRAWAL"}(Ry||(Ry={})),function(e){e[e.DEPOSIT_SOURCE=15e4]="DEPOSIT_SOURCE",e[e.DEPOSIT_DESTINATION=25e4]="DEPOSIT_DESTINATION",e[e.WITHDRAW_SOURCE=25e4]="WITHDRAW_SOURCE",e[e.WITHDRAW_DESTINATION=25e4]="WITHDRAW_DESTINATION",e[e.MAP_TOKEN_SOURCE=2e5]="MAP_TOKEN_SOURCE",e[e.MAP_TOKEN_DESTINATION=2e5]="MAP_TOKEN_DESTINATION",e[e.FINALISE_WITHDRAWAL=2e5]="FINALISE_WITHDRAWAL",e[e.APPROVE_TOKEN=55e3]="APPROVE_TOKEN"}(Ny||(Ny={})),function(e){e.PENDING="PENDING",e.PROCESSING="PROCESSING",e.COMPLETE="COMPLETE",e.RETRY="RETRY",e.ERROR="ERROR",e.NOT_ENOUGH_GAS="NOT_ENOUGH_GAS",e.FLOW_RATE_CONTROLLED="FLOW_RATE_CONTROLLED"}(My||(My={}));const Dy="NATIVE",Ly="11155111",jy="15003",Fy="13473",By="13371",Uy={mainnet:"0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d",testnet:"0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439",devnet:""},zy={mainnet:"0xf57e7e7c23978c3caec3c3548e3d615c346e79ff",testnet:"0xe2629e08f4125d14e446660028bD98ee60EE69F2",devnet:""},Hy={mainnet:"0x52a6c53869ce09a731cd772f245b97a4401d3348",testnet:"0xe9E96d1aad82562b7588F03f49aD34186f996478",devnet:""},Wy={mainnet:"0x4f49b53928a71e553bb1b0f66a5bcb54fd4e8932",testnet:"0x6328Ac88ba8D466a0F551FC7C42C61d1aC7f92ab",devnet:""},Vy={mainnet:"0x4f49b53928a71e553bb1b0f66a5bcb54fd4e8932",testnet:"0x6328Ac88ba8D466a0F551FC7C42C61d1aC7f92ab",devnet:""},Gy={mainnet:"immutable",testnet:"immutable",devnet:""},qy={mainnet:"0x4F4495243837681061C4743b74B3eEdf548D56A5",testnet:"0xe432150cce91c13a887f7D836923d5597adD8E31",devnet:""},Ky={rootChainID:Ly,childChainID:jy},Xy={rootChainID:Ly,childChainID:Fy},Yy={rootChainID:"1",childChainID:By},Zy={mainnet:"https://api.gmp.axelarscan.io",testnet:"https://testnet.api.gmp.axelarscan.io",devnet:"https://stagenet.api.gmp.axelarscan.io"},Jy={mainnet:"https://bridge-api.immutable.com/v1/tenderly/estimate",testnet:"https://bridge-api.sandbox.immutable.com/v1/tenderly/estimate",devnet:"https://bridge-api.dev.immutable.com/v1/tenderly/estimate"},Qy={11155111:{id:"ethereum-sepolia",symbol:"ETH"},1:{id:"ethereum",symbol:"ETH"},15003:{id:"immutable",symbol:"IMX"},13473:{id:"immutable",symbol:"IMX"},13371:{id:"immutable",symbol:"IMX"}},$y={token:"deposit",tokenTo:"depositTo",native:"depositETH",nativeTo:"depositToETH"},eb={token:"withdraw",tokenTo:"withdrawTo",native:"withdrawIMX",nativeTo:"withdrawIMXTo"};var tb;!function(e){e.UNSUPPORTED_ERROR="UNSUPPORTED_ERROR",e.INVALID_ADDRESS="INVALID_ADDRESS",e.INVALID_AMOUNT="INVALID_AMOUNT",e.INTERNAL_ERROR="INTERNAL_ERROR",e.PROVIDER_ERROR="PROVIDER_ERROR",e.ROOT_PROVIDER_ERROR="ROOT_PROVIDER_ERROR",e.CHILD_PROVIDER_ERROR="CHILD_PROVIDER_ERROR",e.TRANSACTION_REVERTED="TRANSACTION_REVERTED",e.INVALID_TOKEN="INVALID_TOKEN",e.INVALID_TRANSACTION="INVALID_TRANSACTION",e.INVALID_SOURCE_CHAIN_ID="INVALID_SOURCE_CHAIN_ID",e.INVALID_DESTINATION_CHAIN_ID="INVALID_DESTINATION_CHAIN_ID",e.INVALID_SOURCE_OR_DESTINATION_CHAIN="INVALID_SOURCE_OR_DESTINATION_CHAIN",e.CHAIN_IDS_MATCH="CHAIN_IDS_MATCH",e.AXELAR_CHAIN_NOT_FOUND="AXELAR_CHAIN_NOT_FOUND",e.AXELAR_GAS_ESTIMATE_FAILED="AXELAR_GAS_ESTIMATE_FAILED",e.TENDERLY_GAS_ESTIMATE_FAILED="TENDERLY_GAS_ESTIMATE_FAILED",e.INVALID_RECIPIENT="INVALID_RECIPIENT",e.FLOW_RATE_ERROR="FLOW_RATE_ERROR",e.INVALID_FLOWRATE_INDEX="INVALID_FLOWRATE_INDEX"}(tb||(tb={}));class nb extends Error{type;constructor(e,t){super(e),this.type=t}}const rb=async(e,t,n)=>{try{return await e()}catch(e){let r=`${t}: ${e.message}`||"UnknownError";throw n&&(r=`${n}: ${r}`),new nb(r,t)}};async function ib(e,t,n){return await rb((async()=>new Py(e,t,n)),tb.PROVIDER_ERROR)}function ab(e,t){let n;return n=e===Yy.rootChainID||e===Yy.childChainID?t.mainnet:e===Xy.rootChainID||e===Xy.childChainID?t.testnet:t.devnet,n}function ob(e,t){return e.toUpperCase()===function(e){return ab(e,Hy)}(t).toUpperCase()}function sb(e){return ab(e,zy)}function cb(e){return ab(e,Zy)}function ub(e,t){return e.toUpperCase()===function(e){return ab(e,Uy)}(t).toUpperCase()}function lb(e,t){return e.sourceChainId===t.rootChainID&&e.destinationChainId===t.childChainID&&e.action===Ry.DEPOSIT}function db(e,t){return e.sourceChainId===t.childChainID&&e.destinationChainId===t.rootChainID&&e.action===Ry.WITHDRAW}async function fb(e,t,n,r){let i;if(t===r.bridgeInstance.rootChainID){if(!ob(e,t))return;i=r.rootProvider}else{if(!function(e,t){return e.toUpperCase()===sb(t).toUpperCase()}(e,t))return;i=r.childProvider}if((await i.getCode(n)).length<=2)return;const a=await ib(n,["function receive()"],i);try{await a.estimateGas.receive()}catch{try{await i.estimateGas({to:n})}catch{throw new nb(`address ${n} is not a valid receipient`,tb.INVALID_RECIPIENT)}}}async function pb(e,t,n){if(!(e===n.bridgeInstance.rootChainID||e===n.bridgeInstance.childChainID))throw new nb(`the sourceChainId ${e} is not a valid`,tb.INVALID_SOURCE_CHAIN_ID);if(!(t===n.bridgeInstance.rootChainID||t===n.bridgeInstance.childChainID))throw new nb(`the destinationChainId ${t} is not a valid`,tb.INVALID_DESTINATION_CHAIN_ID);if(e===t)throw new nb(`the sourceChainId ${e} cannot be the same as the destinationChainId ${t}`,tb.CHAIN_IDS_MATCH)}async function hb(e,t){if(await pb(e.sourceChainId,e.destinationChainId,t),!mm(e.senderAddress)||!mm(e.recipientAddress))throw new nb(`address ${e.senderAddress} or ${e.recipientAddress} is not a valid address`,tb.INVALID_ADDRESS);if(e.amount.isNegative()||e.amount.isZero())throw new nb(`deposit amount ${e.amount.toString()} is invalid`,tb.INVALID_AMOUNT);if(e.token.toUpperCase()!==Dy&&!mm(e.token))throw new nb(`token address ${e.token} is not a valid address`,tb.INVALID_ADDRESS)}function mb(e,t){const n=(e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas&&!!e.lastBaseFeePerGas)(e)?hh.from(e.lastBaseFeePerGas).add(hh.from(e.maxPriorityFeePerGas)):e.gasPrice?hh.from(e.gasPrice):null)(e);return n?n.mul(t):hh.from(0)}const yb=[{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:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"userAddress",type:"address"},{indexed:!1,internalType:"address",name:"relayerAddress",type:"address"},{indexed:!1,internalType:"bytes",name:"functionSignature",type:"bytes"}],name:"MetaTransactionExecuted",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:[],name:"bridge",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[{internalType:"bool",name:"",type:"bool"}],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:"userAddress",type:"address"},{internalType:"bytes",name:"functionSignature",type:"bytes"},{internalType:"bytes32",name:"sigR",type:"bytes32"},{internalType:"bytes32",name:"sigS",type:"bytes32"},{internalType:"uint8",name:"sigV",type:"uint8"}],name:"executeMetaTransaction",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"getNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",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:[{internalType:"address",name:"rootToken_",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint8",name:"decimals_",type:"uint8"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"offset",type:"uint256"}],name:"invalidateNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",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:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];async function bb(e,t,n){if(e.toUpperCase()===Dy||ub(e,t))return sb(t);const r=await async function(e,t){return ib(e,yb,t)}(e,n);return rb((()=>r.rootToken()),tb.PROVIDER_ERROR)}async function gb(e,t,n){let r;const i=ab(e,Jy);const a=n?function(e){const t={};return e.forEach((e=>{const{contractAddress:n,stateDiff:r}=e,{storageSlot:i,value:a}=r;void 0===t[n]&&(t[n]={stateDiff:{}}),t[n].stateDiff[i]=a})),t}(n):void 0;try{r=await Rp.post(i,{jsonrpc:"2.0",id:0,method:"tenderly_estimateGasBundle",params:[t,"latest",a]},{headers:{"Content-Type":"application/json"}})}catch(e){r=e.response}if(r.data.error)throw new nb(`Estimating gas failed with the reason: ${r.data.error.message}`,tb.TENDERLY_GAS_ESTIMATE_FAILED);const o=r.data.result;if(o.length!==t.length)throw new nb("Estimating gas failed with mismatched responses",tb.TENDERLY_GAS_ESTIMATE_FAILED);const s=[];for(let e=0;e<o.length;e++){if(o[e].error)throw new nb(`Estimating deposit gas failed with the reason: ${o[e].error.message}`,tb.TENDERLY_GAS_ESTIMATE_FAILED);if(void 0===o[e].gasUsed)throw new nb("Estimating gas did not return simulation results",tb.TENDERLY_GAS_ESTIMATE_FAILED);s.push(o[e].gasUsed)}return s}const vb=[{inputs:[{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyMapped",type:"error"},{inputs:[{internalType:"uint256",name:"actualBalance",type:"uint256"},{internalType:"uint256",name:"expectedBalance",type:"uint256"}],name:"BalanceInvariantCheckFailed",type:"error"},{inputs:[],name:"CantMapETH",type:"error"},{inputs:[],name:"CantMapIMX",type:"error"},{inputs:[],name:"CantMapWETH",type:"error"},{inputs:[],name:"ImxDepositLimitExceeded",type:"error"},{inputs:[],name:"ImxDepositLimitTooLow",type:"error"},{inputs:[{internalType:"uint256",name:"lengthOfQueue",type:"uint256"},{internalType:"uint256",name:"requestedIndex",type:"uint256"}],name:"IndexOutsideWithdrawalQueue",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[],name:"InvalidCapacity",type:"error"},{inputs:[],name:"InvalidChildChain",type:"error"},{inputs:[{internalType:"string",name:"reason",type:"string"}],name:"InvalidData",type:"error"},{inputs:[],name:"InvalidRefillRate",type:"error"},{inputs:[],name:"InvalidToken",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"actualToken",type:"address"}],name:"MixedTokens",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NonWrappedNativeTransfer",type:"error"},{inputs:[],name:"NotBridgeAdaptor",type:"error"},{inputs:[],name:"NotMapped",type:"error"},{inputs:[],name:"ProvideAtLeastOneIndex",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"TokenIsZero",type:"error"},{inputs:[],name:"TokenNotSupported",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"WithdrawalAlreadyProcessed",type:"error"},{inputs:[{internalType:"uint256",name:"timeNow",type:"uint256"},{internalType:"uint256",name:"currentWithdrawalTime",type:"uint256"}],name:"WithdrawalRequestTooEarly",type:"error"},{inputs:[],name:"WrongInitializer",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"who",type:"address"}],name:"ActivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[],name:"AutoActivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"who",type:"address"}],name:"DeactivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"EnQueuedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"IMXDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"}],name:"L1TokenMapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeEthDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"oldImxDepositLimit",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newImxDepositLimit",type:"uint256"}],name:"NewImxDepositLimit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"ProcessedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bool",name:"delayWithdrawalLargeAmount",type:"bool"},{indexed:!1,internalType:"bool",name:"delayWithdrawalUnknownToken",type:"bool"},{indexed:!1,internalType:"bool",name:"withdrawalQueueActivated",type:"bool"}],name:"QueuedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"capacity",type:"uint256"},{indexed:!1,internalType:"uint256",name:"refillRate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"largeTransferThreshold",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousCapacity",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousRefillRate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousLargeTransferThreshold",type:"uint256"}],name:"RateControlThresholdSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"oldRootBridgeAdaptor",type:"address"},{indexed:!1,internalType:"address",name:"newRootBridgeAdaptor",type:"address"}],name:"RootBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RootChainERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RootChainETHWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WETHDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"delay",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousDelay",type:"uint256"}],name:"WithdrawalDelayUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WithdrawalForNonFlowRatedToken",type:"event"},{inputs:[],name:"ADAPTOR_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_ETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_IMX",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNLIMITED_DEPOSIT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNPAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"VARIABLE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"activateWithdrawalQueue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"childERC20Bridge",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"deactivateWithdrawalQueue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositToETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"finaliseQueuedWithdrawal",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256[]",name:"indices",type:"uint256[]"}],name:"finaliseQueuedWithdrawalsAggregated",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"startIndex",type:"uint256"},{internalType:"uint256",name:"stopIndex",type:"uint256"},{internalType:"uint256",name:"maxFind",type:"uint256"}],name:"findPendingWithdrawals",outputs:[{components:[{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"}],internalType:"struct FlowRateWithdrawalQueue.FindPendingWithdrawal[]",name:"found",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"flowRateBuckets",outputs:[{internalType:"uint256",name:"capacity",type:"uint256"},{internalType:"uint256",name:"depth",type:"uint256"},{internalType:"uint256",name:"refillTime",type:"uint256"},{internalType:"uint256",name:"refillRate",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256[]",name:"indices",type:"uint256[]"}],name:"getPendingWithdrawals",outputs:[{components:[{internalType:"address",name:"withdrawer",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"}],internalType:"struct FlowRateWithdrawalQueue.PendingWithdrawal[]",name:"pending",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"getPendingWithdrawalsLength",outputs:[{internalType:"uint256",name:"length",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantPauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantVariableManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"imxCumulativeDepositLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"variableManager",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"}],internalType:"struct IRootERC20Bridge.InitializationRoles",name:"newRoles",type:"tuple"},{internalType:"address",name:"newRootBridgeAdaptor",type:"address"},{internalType:"address",name:"newChildERC20Bridge",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"newRootIMXToken",type:"address"},{internalType:"address",name:"newRootWETHToken",type:"address"},{internalType:"uint256",name:"newImxCumulativeDepositLimit",type:"uint256"},{internalType:"address",name:"rateAdmin",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"variableManager",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"}],internalType:"struct IRootERC20Bridge.InitializationRoles",name:"",type:"tuple"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"initialize",outputs:[],stateMutability:"pure",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"largeTransferThresholds",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"}],name:"mapToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"onMessageReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokePauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeVariableManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootBridgeAdaptor",outputs:[{internalType:"contract IRootBridgeAdaptor",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootWETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"capacity",type:"uint256"},{internalType:"uint256",name:"refillRate",type:"uint256"},{internalType:"uint256",name:"largeTransferThreshold",type:"uint256"}],name:"setRateControlThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"delay",type:"uint256"}],name:"setWithdrawalDelay",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:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newImxCumulativeDepositLimit",type:"uint256"}],name:"updateImxCumulativeDepositLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRootBridgeAdaptor",type:"address"}],name:"updateRootBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawalDelay",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"withdrawalQueueActivated",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],wb=[{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],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:"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:[],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:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",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:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],Tb=[{inputs:[{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyMapped",type:"error"},{inputs:[{internalType:"uint256",name:"actualBalance",type:"uint256"},{internalType:"uint256",name:"expectedBalance",type:"uint256"}],name:"BalanceInvariantCheckFailed",type:"error"},{inputs:[],name:"BridgeNotSet",type:"error"},{inputs:[],name:"BurnFailed",type:"error"},{inputs:[],name:"CantMapETH",type:"error"},{inputs:[],name:"CantMapIMX",type:"error"},{inputs:[],name:"EmptyTokenContract",type:"error"},{inputs:[],name:"IncorrectBridgeAddress",type:"error"},{inputs:[],name:"InsufficientIMX",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[{internalType:"string",name:"reason",type:"string"}],name:"InvalidData",type:"error"},{inputs:[],name:"MintFailed",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NonWrappedNativeTransfer",type:"error"},{inputs:[],name:"NotBridgeAdaptor",type:"error"},{inputs:[],name:"NotMapped",type:"error"},{inputs:[],name:"TransferWIMXFailed",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAddressRootToken",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{inputs:[],name:"ZeroValue",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"oldChildBridgeAdaptor",type:"address"},{indexed:!1,internalType:"address",name:"newChildBridgeAdaptor",type:"address"}],name:"ChildBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainEthWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainNativeIMXWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainWrappedIMXWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"IMXDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"rootToken",type:"address"},{indexed:!1,internalType:"address",name:"childToken",type:"address"}],name:"L2TokenMapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeEthDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"PrivilegedDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"ADAPTOR_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_ETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_IMX",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PRIVILEGED_DEPOSITOR_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNPAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childBridgeAdaptor",outputs:[{internalType:"contract IChildBridgeAdaptor",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantPauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"},{internalType:"address",name:"initialDepositor",type:"address"},{internalType:"address",name:"treasuryManager",type:"address"}],internalType:"struct IChildERC20Bridge.InitializationRoles",name:"newRoles",type:"tuple"},{internalType:"address",name:"newBridgeAdaptor",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"newRootIMXToken",type:"address"},{internalType:"address",name:"newWIMXToken",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"onMessageReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"privilegedDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokePauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newBridgeAdaptor",type:"address"}],name:"updateChildBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawETHTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawIMX",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawIMXTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawWIMX",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawWIMXTo",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];var Eb,Ab;!function(e){e.SRC_GATEWAY_CALLED="source_gateway_called",e.DEST_GATEWAY_APPROVED="destination_gateway_approved",e.DEST_EXECUTED="destination_executed",e.EXPRESS_EXECUTED="express_executed",e.DEST_EXECUTE_ERROR="error",e.DEST_EXECUTING="executing",e.APPROVING="approving",e.FORECALLED="forecalled",e.FORECALLED_WITHOUT_GAS_PAID="forecalled_without_gas_paid",e.NOT_EXECUTED="not_executed",e.NOT_EXECUTED_WITHOUT_GAS_PAID="not_executed_without_gas_paid",e.INSUFFICIENT_FEE="insufficient_fee",e.UNKNOWN_ERROR="unknown_error",e.CANNOT_FETCH_STATUS="cannot_fetch_status",e.SRC_GATEWAY_CONFIRMED="confirmed"}(Eb||(Eb={})),function(e){e.GAS_UNPAID="gas_unpaid",e.GAS_PAID="gas_paid",e.GAS_PAID_NOT_ENOUGH_GAS="gas_paid_not_enough_gas",e.GAS_PAID_ENOUGH_GAS="gas_paid_enough_gas"}(Ab||(Ab={}));const xb=e=>{const{error:t,status:n}=e;return"error"===n&&t?Eb.DEST_EXECUTE_ERROR:"executed"===n?Eb.DEST_EXECUTED:"approved"===n?Eb.DEST_GATEWAY_APPROVED:"called"===n?Eb.SRC_GATEWAY_CALLED:"executing"===n?Eb.DEST_EXECUTING:n},Ob=async(e,t,n)=>(async(e,t)=>fetch(`${e}?${new URLSearchParams(t).toString()}`,{method:"GET",headers:{"Content-Type":"application/json"},cache:"no-store"}).then((e=>e.json())).then((e=>e.data)))(e,{method:"searchGMP",txHash:t,txLogIndex:n}).then((e=>e.find((e=>e.id.indexOf(t)>-1||e.call.transactionHash.indexOf(t)>-1)))).catch((()=>{})),Ib=async(e,t,n)=>{const r=await Ob(e,t,n);if(!r)return{status:Eb.CANNOT_FETCH_STATUS};const{call:i,gas_status:a,gas_paid:o,executed:s,express_executed:c,approved:u,callback:l}=r,d={status:a,details:o},f=r.time_spent;return f&&(f.total=f.total||Object.values(f).reduce(((e,t)=>e+t),0)),{status:xb(r),error:(p=r,p.error?{message:p.error.error.message,txHash:p.error.error.transactionHash,chain:p.error.chain}:p.is_insufficient_fee?{message:"Insufficient fee",txHash:p.call.transaction.hash,chain:p.call.chain}:void 0),timeSpent:f,gasPaidInfo:d,callTx:i,executed:s,expressExecuted:c,approved:u,callback:l};var p};class Cb{config;initialised;constructor(e){this.config=e,this.initialised=!1}async initialise(){this.initialised||(await async function(e){const t="Please upgrade to the latest version of the Bridge SDK or provide valid configuration",n=await rb((async()=>e.rootProvider.getNetwork()),tb.ROOT_PROVIDER_ERROR);if(n.chainId.toString()!==e.bridgeInstance.rootChainID)throw new nb(`Rootchain provider chainID ${n.chainId} does not match expected chainID ${e.bridgeInstance.rootChainID}. ${t}`,tb.UNSUPPORTED_ERROR);const r=await rb((async()=>e.childProvider.getNetwork()),tb.CHILD_PROVIDER_ERROR);if(r.chainId.toString()!==e.bridgeInstance.childChainID)throw new nb(`Childchain provider chainID ${r.chainId} does not match expected chainID ${e.bridgeInstance.childChainID}. ${t} `,tb.UNSUPPORTED_ERROR)}(this.config),this.initialised=!0)}async getFee(e){const[,,t]=await Promise.all([this.initialise(),async()=>{e.action!==Ry.FINALISE_WITHDRAWAL&&await pb(e.sourceChainId,e.destinationChainId,this.config)},this.getFeePrivate(e)]);return t}async getFinaliseWithdrawFee(){return mb(await this.config.rootProvider.getFeeData(),Ny.FINALISE_WITHDRAWAL)}async getDepositOrWithdrawFee(e){let t;t=e.sourceChainId===this.config.bridgeInstance.rootChainID?await this.config.rootProvider.getFeeData():await this.config.childProvider.getFeeData();let n,r,i=hh.from(0),a=hh.from(0),o=hh.from(0);if(e.action===Ry.DEPOSIT)n={sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:Ry.DEPOSIT};else{if(e.action!==Ry.WITHDRAW)throw new nb("Invalid action",tb.INTERNAL_ERROR);n={sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:Ry.WITHDRAW}}if(!lb(n,this.config.bridgeInstance)&&!db(n,this.config.bridgeInstance))throw new nb("Invalid direction",tb.INTERNAL_ERROR);return function(e){return!("token"in e)||e.token.toUpperCase()===Dy}(e)||(lb(n,this.config.bridgeInstance)||function(e,t,n){return db(t,n)&&ub(e,t.sourceChainId)}(e.token,n,this.config.bridgeInstance))&&(a=mb(t,Ny.APPROVE_TOKEN)),e.action===Ry.DEPOSIT?(i=mb(t,Ny.DEPOSIT_SOURCE),r=Ny.DEPOSIT_DESTINATION):(i=mb(t,Ny.WITHDRAW_SOURCE),r=Ny.WITHDRAW_DESTINATION),o=await this.getAxelarFee(e.sourceChainId,e.destinationChainId,r,e.gasMultiplier),{sourceChainFee:i,approvalFee:a,bridgeFee:o}}async getFeePrivate(e){!function(e,t){if(e.action===Ry.FINALISE_WITHDRAWAL&&e.sourceChainId!==t.bridgeInstance.rootChainID)throw new nb(`Finalised withdrawals must be on the root chain (${t.bridgeInstance.rootChainID})`,tb.INVALID_SOURCE_CHAIN_ID);if(!("destinationChainId"in e))throw new nb("DEPOSIT or WITHDRAW used without destinationChainId",tb.INVALID_DESTINATION_CHAIN_ID);const n={sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:e.action};if(!lb(n,t.bridgeInstance)&&!db(n,t.bridgeInstance))throw new nb("This request is neither a valid deposit nor a valid withdrawal",tb.INVALID_SOURCE_OR_DESTINATION_CHAIN)}(e,this.config);let t=hh.from(0),n=hh.from(0),r=hh.from(0);if(e.action===Ry.FINALISE_WITHDRAWAL)t=await this.getFinaliseWithdrawFee();else{const i=await this.getDepositOrWithdrawFee(e);t=i.sourceChainFee,n=i.approvalFee,r=i.bridgeFee}const i=t.add(n).add(r);return{sourceChainGas:t,approvalFee:n,bridgeFee:r,imtblFee:hh.from("0"),totalFees:i}}async getUnsignedApproveBridgeTx(e){const t=await this.getUnsignedBridgeBundledTx({senderAddress:e.senderAddress,recipientAddress:e.senderAddress,token:e.token,amount:e.amount,sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,gasMultiplier:1.1});return{contractToApprove:t.contractToApprove,unsignedTx:t.unsignedApprovalTx}}async getBridgeMethods(e){let t;return t=lb(e,this.config.bridgeInstance)?$y:eb,t}async getBridgeContract(e){if(lb(e,this.config.bridgeInstance)){const e=this.config.bridgeContracts.rootERC20BridgeFlowRate;return await ib(e,vb,this.config.rootProvider)}const t=this.config.bridgeContracts.childERC20Bridge;return await ib(t,Tb,this.config.childProvider)}async getConfigAndBridgeTxCalldata(e,t,n,r,i){return async function(e,t,n,r,i,a){let o,s;if(r.toUpperCase()===Dy)e===t?(o=i.native,s=[n]):(o=i.nativeTo,s=[t,n]);else{const a=hm(r);e===t?(o=i.token,s=[a,n]):(o=i.tokenTo,s=[a,t,n])}return await rb((async()=>a.interface.encodeFunctionData(o,s)),tb.INTERNAL_ERROR)}(e,t,n,r,await this.getBridgeMethods(i),await this.getBridgeContract(i))}async getUnsignedBridgeTx(e){const t=await this.getUnsignedBridgeBundledTx({senderAddress:e.senderAddress,recipientAddress:e.senderAddress,token:e.token,amount:e.amount,sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,gasMultiplier:e.gasMultiplier});return{feeData:t.feeData,unsignedTx:t.unsignedBridgeTx}}async getUnsignedBridgeBundledTx(e){const[,,,t]=await Promise.all([this.initialise(),hb(e,this.config),fb(e.token,e.destinationChainId,e.recipientAddress,this.config),this.getUnsignedBridgeBundledTxPrivate(e)]);return t}async getUnsignedBridgeBundledTxPrivate(e){let t;var n,r;if(n=e.sourceChainId,r=this.config.bridgeInstance,t=n===r.rootChainID?{sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:Ry.DEPOSIT}:{sourceChainId:e.sourceChainId,destinationChainId:e.destinationChainId,action:Ry.WITHDRAW},lb(t,this.config.bridgeInstance))return this.getUnsignedBridgeDepositBundledTxPrivate(t,e.senderAddress,e.recipientAddress,e.token,e.amount,e.gasMultiplier);if(db(t,this.config.bridgeInstance))return this.getUnsignedBridgeWithdrawBundledTxPrivate(t,e.senderAddress,e.recipientAddress,e.token,e.amount,e.gasMultiplier);throw new nb("Invalid Bridge Bundled TX",tb.INVALID_TRANSACTION)}async getUnsignedBridgeDepositBundledTxPrivate(e,t,n,r,i,a){const[o,s,c,u]=await Promise.all([this.getAllowance(e,r,t),this.config.rootProvider.getFeeData(),this.getDynamicDepositGas(this.config.bridgeInstance.rootChainID,t,n,r,i),this.getAxelarFee(this.config.bridgeInstance.rootChainID,this.config.bridgeInstance.childChainID,Ny.DEPOSIT_DESTINATION,a)]);let l,d,f=hh.from(0),p=hh.from(0);const h=u,m=hh.from(0);if(r.toUpperCase()!==Dy&&o.lt(i)){l=r;const e=await ib(r,wb,this.config.rootProvider);d={data:await rb((async()=>e.interface.encodeFunctionData("approve",[this.config.bridgeContracts.rootERC20BridgeFlowRate,i])),tb.INTERNAL_ERROR),to:r,value:0,from:t,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)},p=mb(s,c.approvalGas)}else l=null,d=null;const y=await this.getConfigAndBridgeTxCalldata(t,n,i,r,e),b=r.toUpperCase()===Dy?i.add(h).toString():h.toString(),g={data:y,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:b,from:t,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)};f=mb(s,c.sourceChainGas);const v=f.add(p).add(h).add(m);return{feeData:{sourceChainGas:f,approvalFee:p,bridgeFee:h,imtblFee:m,totalFees:v},contractToApprove:l,unsignedApprovalTx:d,unsignedBridgeTx:g}}async getUnsignedBridgeWithdrawBundledTxPrivate(e,t,n,r,i,a){const[o,s,c]=await Promise.all([this.getAllowance(e,r,t),this.config.childProvider.getFeeData(),await this.getDynamicWithdrawGasRootChain(e.destinationChainId,t,n,r,i)]),u=await this.getAxelarFee(this.config.bridgeInstance.childChainID,this.config.bridgeInstance.rootChainID,c,a);let l,d,f=hh.from(0),p=hh.from(0);const h=u,m=hh.from(0);if(ub(r,this.config.bridgeInstance.childChainID)&&o.lt(i)){l=r;const e=await ib(r,wb,this.config.childProvider);d={data:await rb((async()=>e.interface.encodeFunctionData("approve",[this.config.bridgeContracts.childERC20Bridge,i])),tb.INTERNAL_ERROR),to:r,value:0,from:t,chainId:parseInt(this.config.bridgeInstance.childChainID,10)},p=mb(s,Ny.APPROVE_TOKEN)}else l=null,d=null;const y=await this.getConfigAndBridgeTxCalldata(t,n,i,r,e),b=r.toUpperCase()===Dy?i.add(h).toString():h.toString(),g={data:y,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:b,from:t,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)};f=mb(s,Ny.WITHDRAW_SOURCE);const v=f.add(p).add(h).add(m);return{feeData:{sourceChainGas:f,approvalFee:p,bridgeFee:h,imtblFee:m,totalFees:v},contractToApprove:l,unsignedApprovalTx:d,unsignedBridgeTx:g}}async getDynamicDepositGas(e,t,n,r,i){const a=[];if(r.toUpperCase()!==Dy){const e=await ib(r,wb,this.config.rootProvider),n=await rb((async()=>e.interface.encodeFunctionData("approve",[this.config.bridgeContracts.rootERC20BridgeFlowRate,i])),tb.INTERNAL_ERROR);a.push({from:t,to:r,data:n})}const o={action:Ry.DEPOSIT,sourceChainId:e,destinationChainId:this.config.bridgeInstance.childChainID},s=await this.getConfigAndBridgeTxCalldata(t,n,i,r,o),c=r.toUpperCase()!==Dy?"0x1":sh(i.add("1").toHexString());a.push({from:t,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,data:s,value:c});const u=await gb(e,a),l={};return 1===u.length?(l.approvalGas=0,[l.sourceChainGas]=u):[l.approvalGas,l.sourceChainGas]=u,l}async getDynamicWithdrawGasRootChain(e,t,n,r,i){const a=function(e,t,n,r){return Km.encode(["bytes32","address","address","address","uint256"],["0x7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e982869",e,t,n,r])}(await bb(r,e,this.config.childProvider),t,n,i.toString()),o=function(e){return om(Km.encode(["bytes","uint256"],[e,(new Date).getTime()]))}(a),s=ab(e,Gy);const c=hm(function(e){return ab(e,Wy)}(e)).toString(),u=function(e){return ab(e,Vy)}(e),l=om(a),d=om(Km.encode(["bytes32","bytes32","string","string","address","bytes32"],["0x07b0d4304f82012bd3b70b1d531c160e326067c90829e2a3d386722ad10b89c3",o,s,c,u,l])),f=om(th([d,ah(nh(ah(4),32))])),p=await ib(u,Sy,this.config.rootProvider),h=await rb((async()=>p.interface.encodeFunctionData("execute",[o,s,c,a])),tb.INTERNAL_ERROR),m=function(e){return ab(e,qy)}(e),y=[{from:t,to:u,data:h}],b={contractAddress:m,stateDiff:{storageSlot:f,value:"0x0000000000000000000000000000000000000000000000000000000000000001"}};return(await gb(e,y,[b]))[0]}async getAllowance(e,t,n){if(t.toUpperCase()===Dy)return hh.from(0);if(function(e,t,n){return db(t,n)&&!ub(e,t.sourceChainId)}(t,e,this.config.bridgeInstance))return hh.from(0);let r,i;lb(e,this.config.bridgeInstance)?(r=this.config.rootProvider,i=this.config.bridgeContracts.rootERC20BridgeFlowRate):(r=this.config.childProvider,i=this.config.bridgeContracts.childERC20Bridge);const a=await ib(t,wb,r);return await rb((()=>a.allowance(n,i)),tb.PROVIDER_ERROR)}async getAxelarFee(e,t,n,r="auto"){const i=Qy[e],a=Qy[t];if(!i)throw new nb(`Source chainID ${e} can not be matched to an Axelar chain.`,tb.AXELAR_CHAIN_NOT_FOUND);if(!a)throw new nb(`Destination chainID ${t} can not be matched to an Axelar chain.`,tb.AXELAR_CHAIN_NOT_FOUND);const o=cb(e),s={method:"estimateGasFee",sourceChain:i.id,destinationChain:a.id,symbol:i.symbol,gasLimit:n,gasMultiplier:r};let c;try{c=await Rp.post(o,s)}catch(e){c=e.response}if(c.data.error)throw new nb(`Estimating Axelar Gas failed with the reason: ${c.data.message}`,tb.AXELAR_GAS_ESTIMATE_FAILED);try{return hh.from(`${c.data}`)}catch(e){throw new nb(`Estimating Axelar Gas failed with the reason: ${e}`,tb.AXELAR_GAS_ESTIMATE_FAILED)}}async getTransactionStatus(e){const t={transactions:[]},n=await this.getAxelarStatus(e.transactions,e.sourceChainId),r=await this.getUniqueReceivers(n,e.sourceChainId),i=[];for(const e of r)i.push(this.getPendingWithdrawals({recipient:e}));let a=[];try{a=await Promise.all(i)}catch(e){throw new nb(`Failed to fetch the pending withdrawals with: ${e}`,tb.FLOW_RATE_ERROR)}t.transactions=n;for(const e of t.transactions)e.status===My.COMPLETE&&(()=>{for(const t of a){const n=t.pending.findIndex((t=>t.amount.toString()===e.amount.toString()&&t.token===e.token&&t.withdrawer===e.sender&&t.recipient===e.recipient));if(-1!==n)return e.status=My.FLOW_RATE_CONTROLLED,e.data={canWithdraw:t.pending[n].canWithdraw,timeoutStart:t.pending[n].timeoutStart,timeoutEnd:t.pending[n].timeoutEnd},void t.pending.splice(n,1)}})();return t}async getUniqueReceivers(e,t){const n=[],r=[jy,Fy,By].includes(t);for(let t=0,i=e.length;t<i;t++)if(e[t].status===My.COMPLETE&&r&&e[t].recipient){const r=n.findIndex((n=>n===e[t].recipient));-1===r&&n.push(e[t].recipient)}return n}async getAxelarStatus(e,t){const n=[],r=[],i=cb(t),a=[Ab.GAS_UNPAID,Ab.GAS_PAID_NOT_ENOUGH_GAS],o=new qm;for(const t of e)r.push(Ib(i,t.txHash));let s;try{s=await Promise.all(r)}catch(e){throw new nb(`Failed to fetch the Axelar Status with the reason: ${e}`,tb.AXELAR_GAS_ESTIMATE_FAILED)}for(let t=0,r=s.length;t<r;t++){let r;switch(s[t].status){case Eb.CANNOT_FETCH_STATUS:r=My.PENDING;break;case Eb.SRC_GATEWAY_CALLED:case Eb.DEST_GATEWAY_APPROVED:case Eb.DEST_EXECUTING:case Eb.SRC_GATEWAY_CONFIRMED:case Eb.APPROVING:r=My.PROCESSING;break;case Eb.NOT_EXECUTED:r=My.RETRY;break;case Eb.NOT_EXECUTED_WITHOUT_GAS_PAID:case Eb.INSUFFICIENT_FEE:r=My.NOT_ENOUGH_GAS;break;case Eb.DEST_EXECUTED:r=My.COMPLETE;break;default:r=My.ERROR}s[t].gasPaidInfo&&a.includes(s[t].gasPaidInfo.status)&&(r=My.NOT_ENOUGH_GAS);let i,c={txHash:e[t].txHash,status:r,data:{gmpResponse:s[t].status}};s[t]?.callTx?.returnValues?.payload&&(i=o.decode(["bytes32","address","address","address","uint256"],s[t].callTx.returnValues.payload),c={...c,token:i[1],sender:i[2],recipient:i[3],amount:i[4]}),n.push(c)}return n}async getFlowRateInfo(e){if(!e.tokens||0===e.tokens.length)throw new nb(`invalid tokens array ${e.tokens}`,tb.INVALID_TOKEN);const t=this.config.bridgeContracts.rootERC20BridgeFlowRate,n=await ib(t,vb,this.config.rootProvider),r=[];r.push(n.withdrawalQueueActivated()),r.push(n.withdrawalDelay());for(let t of e.tokens)t.toUpperCase()===Dy&&(t="0x0000000000000000000000000000000000000eee"),r.push(n.flowRateBuckets(t)),r.push(n.largeTransferThresholds(t));let i;try{i=await Promise.all(r)}catch(e){throw new nb("unable to query contract for flowrate info",tb.INTERNAL_ERROR)}const a={},o=i[0],s=i[1].toNumber();i.splice(0,2);for(let t=0,n=e.tokens.length;t<n;t++){const n=2*t;a[e.tokens[t]]={capacity:i[n].capacity,depth:i[n].depth,refillTime:i[n].refillTime.toNumber(),refillRate:i[n].refillRate,largeTransferThreshold:i[n+1]}}return{withdrawalQueueActivated:o,withdrawalDelay:s,tokens:a}}async getPendingWithdrawals(e){if(!e.recipient)throw new nb(`invalid recipient ${e.recipient}`,tb.INVALID_RECIPIENT);const t=this.config.bridgeContracts.rootERC20BridgeFlowRate,n=await ib(t,vb,this.config.rootProvider),r=await n.getPendingWithdrawalsLength(e.recipient),i={pending:[]};if(0===r.toNumber())return i;const a=[];for(let e=0;e<r.toNumber();e++)a.push(e);const o=await n.getPendingWithdrawals(e.recipient,a),s=Math.floor(Date.now()/1e3),c=await n.withdrawalDelay();for(let t=0,n=o.length;t<n;t++){const n=o[t].timestamp.add(c).toNumber();i.pending[t]=n>s?{canWithdraw:!1}:{canWithdraw:!0},i.pending[t].recipient=e.recipient,i.pending[t].withdrawer=o[t].withdrawer,i.pending[t].token=o[t].token,i.pending[t].amount=o[t].amount,i.pending[t].timeoutStart=o[t].timestamp.toNumber(),i.pending[t].timeoutEnd=n}return i}async getFlowRateWithdrawTx(e){if(!e.recipient)throw new nb(`invalid recipient ${e.recipient}`,tb.INVALID_RECIPIENT);if(e.index<0)throw new nb(`invalid index ${e.index}`,tb.INVALID_FLOWRATE_INDEX);const t=this.config.bridgeContracts.rootERC20BridgeFlowRate,n=await ib(t,vb,this.config.rootProvider),r=await n.getPendingWithdrawals(e.recipient,[e.index]);if(r[0].withdrawer===_m||r[0].token===_m||r[0].amount===hh.from(0)||r[0].timestamp===hh.from(0))throw new nb(`pending withdrawal not found for ${e.recipient} at index ${e.index}`,tb.FLOW_RATE_ERROR);const i=await n.withdrawalDelay(),a=r[0].timestamp.add(i).toNumber();if(a>Math.floor(Date.now()/1e3))return{pendingWithdrawal:{canWithdraw:!1,withdrawer:r[0].withdrawer,recipient:e.recipient,token:r[0].token,amount:r[0].amount,timeoutStart:r[0].timestamp.toNumber(),timeoutEnd:a},unsignedTx:null};const o=await rb((async()=>n.interface.encodeFunctionData("finaliseQueuedWithdrawal",[e.recipient,e.index])),tb.INTERNAL_ERROR);return{pendingWithdrawal:{canWithdraw:!0,withdrawer:r[0].withdrawer,recipient:e.recipient,token:r[0].token,amount:r[0].amount,timeoutStart:r[0].timestamp.toNumber(),timeoutEnd:a},unsignedTx:{data:o,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:0,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)}}}async getTokenMapping(e){if(e.rootToken.toUpperCase()===Dy||e.rootToken===this.config.bridgeContracts.rootChainWrappedETH){const t=this.config.bridgeContracts.childERC20Bridge,n=await ib(t,Tb,this.config.childProvider),r=await n.childETHToken();return{rootToken:e.rootToken,childToken:r}}const t=this.config.bridgeContracts.rootERC20BridgeFlowRate,n=await ib(t,vb,this.config.rootProvider),r=await n.rootTokenToChildToken(e.rootToken);return r===_m?{rootToken:e.rootToken,childToken:null}:r===e.rootToken?{rootToken:e.rootToken,childToken:Dy}:{rootToken:e.rootToken,childToken:r}}}
25
25
  /**
26
26
  * tiny-lru
27
27
  *