h_test_1 0.0.32 → 0.0.34

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.
@@ -1,136 +0,0 @@
1
- import{n as e,t}from"./chunk-DECur_0Z.js";var n=t(((e,t)=>{var n=typeof Reflect==`object`?Reflect:null,r=n&&typeof n.apply==`function`?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},i=n&&typeof n.ownKeys==`function`?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};function a(e){console&&console.warn&&console.warn(e)}var o=Number.isNaN||function(e){return e!==e};function s(){s.init.call(this)}t.exports=s,t.exports.once=y,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function l(e){if(typeof e!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof e)}Object.defineProperty(s,`defaultMaxListeners`,{enumerable:!0,get:function(){return c},set:function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received `+e+`.`);c=e}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+e+`.`);return this._maxListeners=e,this};function u(e){return e._maxListeners===void 0?s.defaultMaxListeners:e._maxListeners}s.prototype.getMaxListeners=function(){return u(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=e===`error`,a=this._events;if(a!==void 0)i&&=a.error===void 0;else if(!i)return!1;if(i){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var s=Error(`Unhandled error.`+(o?` (`+o.message+`)`:``));throw s.context=o,s}var c=a[e];if(c===void 0)return!1;if(typeof c==`function`)r(c,this,t);else for(var l=c.length,u=g(c,l),n=0;n<l;++n)r(u[n],this,t);return!0};function d(e,t,n,r){var i,o,s;if(l(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit(`newListener`,t,n.listener?n.listener:n),o=e._events),s=o[t]),s===void 0)s=o[t]=n,++e._eventsCount;else if(typeof s==`function`?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),i=u(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var c=Error(`Possible EventEmitter memory leak detected. `+s.length+` `+String(t)+` listeners added. Use emitter.setMaxListeners() to increase limit`);c.name=`MaxListenersExceededWarning`,c.emitter=e,c.type=t,c.count=s.length,a(c)}return e}s.prototype.addListener=function(e,t){return d(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return d(this,e,t,!0)};function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}s.prototype.once=function(e,t){return l(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,i,a,o;if(l(t),r=this._events,r===void 0||(n=r[e],n===void 0))return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(`removeListener`,e,n.listener||t));else if(typeof n!=`function`){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;i===0?n.shift():_(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit(`removeListener`,e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n=this._events,r;if(n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),a;for(r=0;r<i.length;++r)a=i[r],a!==`removeListener`&&this.removeAllListeners(a);return this.removeAllListeners(`removeListener`),this._events=Object.create(null),this._eventsCount=0,this}if(t=n[e],typeof t==`function`)this.removeListener(e,t);else if(t!==void 0)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this};function m(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i==`function`?n?[i.listener||i]:[i]:n?v(i):g(i,i.length)}s.prototype.listeners=function(e){return m(this,e,!0)},s.prototype.rawListeners=function(e){return m(this,e,!1)},s.listenerCount=function(e,t){return typeof e.listenerCount==`function`?e.listenerCount(t):h.call(e,t)},s.prototype.listenerCount=h;function h(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n==`function`)return 1;if(n!==void 0)return n.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]};function g(e,t){for(var n=Array(t),r=0;r<t;++r)n[r]=e[r];return n}function _(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function v(e){for(var t=Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function y(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){typeof e.removeListener==`function`&&e.removeListener(`error`,i),n([].slice.call(arguments))}x(e,t,a,{once:!0}),t!==`error`&&b(e,i,{once:!0})})}function b(e,t,n){typeof e.on==`function`&&x(e,`error`,t,n)}function x(e,t,n,r){if(typeof e.on==`function`)r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener==`function`)e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw TypeError(`The "emitter" argument must be of type EventEmitter. Received type `+typeof e)}})),r=class{isNode=!1;onmessage=null;onerror=null;_eventEmitter;get eventEmitter(){return this._eventEmitter||(this.isNode?this._eventEmitter=new(n()):this._eventEmitter=new EventTarget),this._eventEmitter}constructor(){this.isNode=typeof process<`u`&&process.versions!=null&&process.versions.node!=null}terminate(){}postMessage(e){this.isNode?this.eventEmitter.emit(`message`,e):postMessage(e)}postMessageToMainThread(e){let t={data:e};this.onmessage?this.onmessage(t):postMessage(e)}postErrorToMainThread(e){let t={data:{error:e}};this.onerror?this.onerror(t):postMessage(e)}attachWorkerSideOnMessage(e){this.isNode&&this.eventEmitter.on(`message`,t=>{e(t)})}};let i=function(e){return e.DEVELOPMENT=`development`,e.PLAYGROUND=`playground`,e.PRODUCTION=`production`,e.STAGING=`staging`,e}({});i.DEVELOPMENT,i.PLAYGROUND,i.STAGING;const a=typeof process<`u`&&process?.release?.name===`node`,o=typeof process<`u`&&process.versions!=null&&process.versions.node!=null,s=typeof __webpack_require__<`u`;typeof window<`u`&&window?.location?.protocol;const c=i.PRODUCTION,l=c===i.DEVELOPMENT,u=c===i.PLAYGROUND,d=c===i.STAGING||l||u;d||a&&i.PRODUCTION;const f=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];function p(e,t){if(!t||t==10)return BigInt(e);if(t==16)return e.slice(0,2)==`0x`?BigInt(e):BigInt(`0x`+e)}const m=p;function h(e,t){let n=BigInt(0);t=BigInt(t);for(let r=0;r<e.length;r++)n=n*t+BigInt(e[r]);return n}function g(e){let t=e.toString(16);return(t.length-1)*4+f[parseInt(t[0],16)]}function _(e){return BigInt(e)<BigInt(0)}function v(e){return!e}function y(e,t){return BigInt(e)<<BigInt(t)}function b(e,t){return BigInt(e)>>BigInt(t)}const x=y,S=b;function C(e){return(BigInt(e)&BigInt(1))==BigInt(1)}function w(e){let t=BigInt(e),n=[];for(;t;){if(t&BigInt(1)){let e=2-Number(t%BigInt(4));n.push(e),t-=BigInt(e)}else n.push(0);t>>=BigInt(1)}return n}function T(e){let t=BigInt(e),n=[];for(;t;)t&BigInt(1)?n.push(1):n.push(0),t>>=BigInt(1);return n}function E(e){if(e>BigInt(2**53-1))throw Error(`Number too big`);return Number(e)}function D(e,t){let n=[],r=BigInt(e);for(t=BigInt(t);r;)n.unshift(Number(r%t)),r/=t;return n}function O(e,t){return BigInt(e)+BigInt(t)}function k(e,t){return BigInt(e)-BigInt(t)}function A(e){return-BigInt(e)}function j(e,t){return BigInt(e)*BigInt(t)}function M(e){return BigInt(e)*BigInt(e)}function N(e,t){return BigInt(e)**BigInt(t)}function P(e,t){return BigInt(e)**BigInt(t)}function F(e){return BigInt(e)>=0?BigInt(e):-BigInt(e)}function I(e,t){return BigInt(e)/BigInt(t)}function L(e,t){return BigInt(e)%BigInt(t)}function R(e,t){return BigInt(e)==BigInt(t)}function z(e,t){return BigInt(e)!=BigInt(t)}function ee(e,t){return BigInt(e)<BigInt(t)}function B(e,t){return BigInt(e)>BigInt(t)}function te(e,t){return BigInt(e)<=BigInt(t)}function ne(e,t){return BigInt(e)>=BigInt(t)}function re(e,t){return BigInt(e)&BigInt(t)}function ie(e,t){return BigInt(e)|BigInt(t)}function ae(e,t){return BigInt(e)^BigInt(t)}function oe(e,t){return BigInt(e)&&BigInt(t)}function se(e,t){return BigInt(e)||BigInt(t)}function ce(e){return!BigInt(e)}function le(e,t,n,r){let i=`0000000`+n.toString(16),a=new Uint32Array(e.buffer,e.byteOffset+t,r/4),o=((i.length-7)*4-1>>5)+1;for(let e=0;e<o;e++)a[e]=parseInt(i.substring(i.length-8*e-8,i.length-8*e),16);for(let e=o;e<a.length;e++)a[e]=0;for(let t=a.length*4;t<r;t++)e[t]=E(re(b(n,t*8),255))}function ue(e,t,n,r){let i=`0000000`+n.toString(16),a=new DataView(e.buffer,e.byteOffset+t,r),o=((i.length-7)*4-1>>5)+1;for(let e=0;e<o;e++)a.setUint32(r-e*4-4,parseInt(i.substring(i.length-8*e-8,i.length-8*e),16),!1);for(let e=0;e<r/4-o;e++)a[e]=0}function de(e,t,n){n||=e.byteLength,t||=0;let r=new Uint32Array(e.buffer,e.byteOffset+t,n/4),i=Array(n/4);return r.forEach((e,t)=>i[i.length-t-1]=e.toString(16).padStart(8,`0`)),p(i.join(``),16)}function fe(e,t,n){n||=e.byteLength,t||=0;let r=new DataView(e.buffer,e.byteOffset+t,n),i=Array(n/4);for(let e=0;e<n/4;e++)i[e]=r.getUint32(e*4,!1).toString(16).padStart(8,`0`);return p(i.join(``),16)}function pe(e,t){return e.toString(t)}function me(e){let t=new Uint8Array(Math.floor((g(e)-1)/8)+1);return le(t,0,e,t.byteLength),t}const he=m(0),ge=m(1);var _e=Object.freeze({__proto__:null,abs:F,add:O,band:re,bitLength:g,bits:T,bor:ie,bxor:ae,div:I,e:m,eq:R,exp:P,fromArray:h,fromRprBE:fe,fromRprLE:de,fromString:p,geq:ne,gt:B,isNegative:_,isOdd:C,isZero:v,land:oe,leq:te,lnot:ce,lor:se,lt:ee,mod:L,mul:j,naf:w,neg:A,neq:z,one:ge,pow:N,shiftLeft:y,shiftRight:b,shl:x,shr:S,square:M,sub:k,toArray:D,toLEBuff:me,toNumber:E,toRprBE:ue,toRprLE:le,toString:pe,zero:he});const ve=[];for(let e=0;e<256;e++)ve[e]=ye(e,8);function ye(e,t){let n=0,r=e;for(let e=0;e<t;e++)n<<=1,n|=r&1,r>>=1;return n}function be(e,t,n){if(v(n))return e.one;let r=T(n);if(r.length==0)return e.one;let i=t;for(let n=r.length-2;n>=0;n--)i=e.square(i),r[n]&&(i=e.mul(i,t));return i}function xe(e){if(e.m%2==1)if(R(L(e.p,4),1))if(R(L(e.p,8),1))if(R(L(e.p,16),1))Se(e);else if(R(L(e.p,16),9))Ce(e);else throw Error(`Field withot sqrt`);else if(R(L(e.p,8),5))we(e);else throw Error(`Field withot sqrt`);else R(L(e.p,4),3)&&Te(e);else{let t=L(N(e.p,e.m/2),4);t==1?Ee(e):t==3?De(e):Oe(e)}}function Se(e){for(e.sqrt_q=N(e.p,e.m),e.sqrt_s=0,e.sqrt_t=k(e.sqrt_q,1);!C(e.sqrt_t);)e.sqrt_s+=1,e.sqrt_t=I(e.sqrt_t,2);let t=e.one;for(;e.eq(t,e.one);){let n=e.random();e.sqrt_z=e.pow(n,e.sqrt_t),t=e.pow(e.sqrt_z,2**(e.sqrt_s-1))}e.sqrt_tm1d2=I(k(e.sqrt_t,1),2),e.sqrt=function(e){let t=this;if(t.isZero(e))return t.zero;let n=t.pow(e,t.sqrt_tm1d2),r=t.pow(t.mul(t.square(n),e),2**(t.sqrt_s-1));if(t.eq(r,t.negone))return null;let i=t.sqrt_s,a=t.mul(e,n),o=t.mul(a,n),s=t.sqrt_z;for(;!t.eq(o,t.one);){let e=t.square(o),r=1;for(;!t.eq(e,t.one);)e=t.square(e),r++;n=s;for(let e=0;e<i-r-1;e++)n=t.square(n);s=t.square(n),o=t.mul(o,s),a=t.mul(a,n),i=r}return t.geq(a,t.zero)?a:t.neg(a)}}function Ce(e){e.sqrt=function(){throw Error(`Sqrt alg 4 not implemented`)}}function we(e){e.sqrt=function(){throw Error(`Sqrt alg 3 not implemented`)}}function Te(e){e.sqrt_q=N(e.p,e.m),e.sqrt_e1=I(k(e.sqrt_q,3),4),e.sqrt=function(t){if(this.isZero(t))return this.zero;let n=this.pow(t,this.sqrt_e1),r=this.mul(this.square(n),t);if(this.eq(r,this.negone))return null;let i=this.mul(n,t);return e.geq(i,e.zero)?i:e.neg(i)}}function Ee(e){e.sqrt=function(){throw Error(`Sqrt alg 10 not implemented`)}}function De(e){e.sqrt_q=N(e.p,e.m/2),e.sqrt_e34=I(k(e.sqrt_q,3),4),e.sqrt_e12=I(k(e.sqrt_q,1),2),e.frobenius=function(t,n){return t%2==1?e.conjugate(n):n},e.sqrt=function(e){let t=this,n=t.pow(e,t.sqrt_e34),r=t.mul(t.square(n),e),i=t.mul(t.frobenius(1,r),r);if(t.eq(i,t.negone))return null;let a=t.mul(n,e),o;if(t.eq(r,t.negone))o=t.mul(a,[t.F.zero,t.F.one]);else{let e=t.pow(t.add(t.one,r),t.sqrt_e12);o=t.mul(e,a)}return t.geq(o,t.zero)?o:t.neg(o)}}function Oe(e){e.sqrt=function(){throw Error(`Sqrt alg 8 not implemented`)}}function ke(e,t,n,r,i){e[t]=e[t]+e[n]>>>0,e[i]=(e[i]^e[t])>>>0,e[i]=(e[i]<<16|e[i]>>>16&65535)>>>0,e[r]=e[r]+e[i]>>>0,e[n]=(e[n]^e[r])>>>0,e[n]=(e[n]<<12|e[n]>>>20&4095)>>>0,e[t]=e[t]+e[n]>>>0,e[i]=(e[i]^e[t])>>>0,e[i]=(e[i]<<8|e[i]>>>24&255)>>>0,e[r]=e[r]+e[i]>>>0,e[n]=(e[n]^e[r])>>>0,e[n]=(e[n]<<7|e[n]>>>25&127)>>>0}function Ae(e){ke(e,0,4,8,12),ke(e,1,5,9,13),ke(e,2,6,10,14),ke(e,3,7,11,15),ke(e,0,5,10,15),ke(e,1,6,11,12),ke(e,2,7,8,13),ke(e,3,4,9,14)}var je=class{constructor(e){e||=[0,0,0,0,0,0,0,0],this.state=[1634760805,857760878,2036477234,1797285236,e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],0,0,0,0],this.idx=16,this.buff=Array(16)}nextU32(){return this.idx==16&&this.update(),this.buff[this.idx++]}nextU64(){return O(j(this.nextU32(),4294967296),this.nextU32())}nextBool(){return(this.nextU32()&1)==1}update(){for(let e=0;e<16;e++)this.buff[e]=this.state[e];for(let e=0;e<10;e++)Ae(this.buff);for(let e=0;e<16;e++)this.buff[e]=this.buff[e]+this.state[e]>>>0;this.idx=0,this.state[12]=this.state[12]+1>>>0,this.state[12]==0&&(this.state[13]=this.state[13]+1>>>0,this.state[13]==0&&(this.state[14]=this.state[14]+1>>>0,this.state[14]==0&&(this.state[15]=this.state[15]+1>>>0)))}};function Me(e){let t=new Uint8Array(e);if(globalThis.crypto!==void 0)globalThis.crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.random()*4294967296>>>0;return t}function Ne(){let e=Me(32),t=new Uint32Array(e.buffer),n=[];for(let e=0;e<8;e++)n.push(t[e]);return n}let Pe=null;function Fe(){return Pe||(Pe=new je(Ne()),Pe)}var Ie=class{constructor(e,t,n){this.F=t,this.G=e,this.opMulGF=n;let r=t.sqrt_t||t.t,i=t.sqrt_s||t.s,a=t.one;for(;t.eq(t.pow(a,t.half),t.one);)a=t.add(a,t.one);this.w=Array(i+1),this.wi=Array(i+1),this.w[i]=this.F.pow(a,r),this.wi[i]=this.F.inv(this.w[i]);let o=i-1;for(;o>=0;)this.w[o]=this.F.square(this.w[o+1]),this.wi[o]=this.F.square(this.wi[o+1]),o--;this.roots=[],this._setRoots(Math.min(i,15))}_setRoots(e){for(let t=e;t>=0&&!this.roots[t];t--){let e=this.F.one,n=1<<t,r=Array(n);for(let i=0;i<n;i++)r[i]=e,e=this.F.mul(e,this.w[t]);this.roots[t]=r}}fft(e){if(e.length<=1)return e;let t=Le(e.length-1)+1;this._setRoots(t);let n=1<<t;if(e.length!=n)throw Error(`Size must be multiple of 2`);return Re(this,e,t,0,1)}ifft(e){if(e.length<=1)return e;let t=Le(e.length-1)+1;this._setRoots(t);let n=1<<t;if(e.length!=n)throw Error(`Size must be multiple of 2`);let r=Re(this,e,t,0,1),i=this.F.inv(this.F.mulScalar(this.F.one,n)),a=Array(n);for(let e=0;e<n;e++)a[e]=this.opMulGF(r[(n-e)%n],i);return a}};function Le(e){return(e&4294901760?(e&=4294901760,16):0)|(e&4278255360?(e&=4278255360,8):0)|(e&4042322160?(e&=4042322160,4):0)|(e&3435973836?(e&=3435973836,2):0)|(e&2863311530)!=0}function Re(e,t,n,r,i){let a=1<<n;if(a==1)return[t[r]];if(a==2)return[e.G.add(t[r],t[r+i]),e.G.sub(t[r],t[r+i])];let o=a>>1,s=Re(e,t,n-1,r,i*2),c=Re(e,t,n-1,r+i,i*2),l=Array(a);for(let t=0;t<o;t++)l[t]=e.G.add(s[t],e.opMulGF(c[t],e.roots[n][t])),l[t+o]=e.G.sub(s[t],e.opMulGF(c[t],e.roots[n][t]));return l}var ze=class{constructor(e){this.type=`F1`,this.one=BigInt(1),this.zero=BigInt(0),this.p=BigInt(e),this.m=1,this.negone=this.p-this.one,this.two=BigInt(2),this.half=this.p>>this.one,this.bitLength=g(this.p),this.mask=(this.one<<BigInt(this.bitLength))-this.one,this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=this.n64*2,this.n8=this.n64*8,this.R=this.e(this.one<<BigInt(this.n64*64)),this.Ri=this.inv(this.R);let t=this.negone>>this.one;this.nqr=this.two;let n=this.pow(this.nqr,t);for(;!this.eq(n,this.negone);)this.nqr+=this.one,n=this.pow(this.nqr,t);for(this.s=0,this.t=this.negone;(this.t&this.one)==this.zero;)this.s+=1,this.t>>=this.one;this.nqr_to_t=this.pow(this.nqr,this.t),xe(this),this.FFT=new Ie(this,this,this.mul.bind(this)),this.fft=this.FFT.fft.bind(this.FFT),this.ifft=this.FFT.ifft.bind(this.FFT),this.w=this.FFT.w,this.wi=this.FFT.wi,this.shift=this.square(this.nqr),this.k=this.exp(this.nqr,2**this.s)}e(e,t){let n;if(t?t==16&&(n=BigInt(`0x`+e)):n=BigInt(e),n<0){let e=-n;return e>=this.p&&(e%=this.p),this.p-e}else return n>=this.p?n%this.p:n}add(e,t){let n=e+t;return n>=this.p?n-this.p:n}sub(e,t){return e>=t?e-t:this.p-t+e}neg(e){return e&&this.p-e}mul(e,t){return e*t%this.p}mulScalar(e,t){return e*this.e(t)%this.p}square(e){return e*e%this.p}eq(e,t){return e==t}neq(e,t){return e!=t}lt(e,t){return(e>this.half?e-this.p:e)<(t>this.half?t-this.p:t)}gt(e,t){return(e>this.half?e-this.p:e)>(t>this.half?t-this.p:t)}leq(e,t){return(e>this.half?e-this.p:e)<=(t>this.half?t-this.p:t)}geq(e,t){return(e>this.half?e-this.p:e)>=(t>this.half?t-this.p:t)}div(e,t){return this.mul(e,this.inv(t))}idiv(e,t){if(!t)throw Error(`Division by zero`);return e/t}inv(e){if(!e)throw Error(`Division by zero`);let t=this.zero,n=this.p,r=this.one,i=e%this.p;for(;i;){let e=n/i;[t,r]=[r,t-e*r],[n,i]=[i,n-e*i]}return t<this.zero&&(t+=this.p),t}mod(e,t){return e%t}pow(e,t){return be(this,e,t)}exp(e,t){return be(this,e,t)}band(e,t){let n=e&t&this.mask;return n>=this.p?n-this.p:n}bor(e,t){let n=(e|t)&this.mask;return n>=this.p?n-this.p:n}bxor(e,t){let n=(e^t)&this.mask;return n>=this.p?n-this.p:n}bnot(e){let t=e^this.mask;return t>=this.p?t-this.p:t}shl(e,t){if(Number(t)<this.bitLength){let n=e<<t&this.mask;return n>=this.p?n-this.p:n}else{let n=this.p-t;return Number(n)<this.bitLength?e>>n:this.zero}}shr(e,t){if(Number(t)<this.bitLength)return e>>t;{let n=this.p-t;if(Number(n)<this.bitLength){let t=e<<n&this.mask;return t>=this.p?t-this.p:t}else return 0}}land(e,t){return e&&t?this.one:this.zero}lor(e,t){return e||t?this.one:this.zero}lnot(e){return e?this.zero:this.one}sqrt_old(e){if(e==this.zero)return this.zero;if(this.pow(e,this.negone>>this.one)!=this.one)return null;let t=this.s,n=this.nqr_to_t,r=this.pow(e,this.t),i=this.pow(e,this.add(this.t,this.one)>>this.one);for(;r!=this.one;){let e=this.square(r),a=1;for(;e!=this.one;)a++,e=this.square(e);let o=n;for(let e=0;e<t-a-1;e++)o=this.square(o);t=a,n=this.square(o),r=this.mul(r,n),i=this.mul(i,o)}return i>this.p>>this.one&&(i=this.neg(i)),i}normalize(e,t){if(e=BigInt(e,t),e<0){let t=-e;return t>=this.p&&(t%=this.p),this.p-t}else return e>=this.p?e%this.p:e}random(){let e=this.bitLength*2/8,t=this.zero;for(let n=0;n<e;n++)t=(t<<BigInt(8))+BigInt(Me(1)[0]);return t%this.p}toString(e,t){t||=10;let n;return n=e>this.half&&t==10?`-`+(this.p-e).toString(t):e.toString(t),n}isZero(e){return e==this.zero}fromRng(e){let t;do{t=this.zero;for(let n=0;n<this.n64;n++)t+=e.nextU64()<<BigInt(64*n);t&=this.mask}while(t>=this.p);return t=t*this.Ri%this.p,t}fft(e){return this.FFT.fft(e)}ifft(e){return this.FFT.ifft(e)}toRprLE(e,t,n){le(e,t,n,this.n64*8)}toRprBE(e,t,n){ue(e,t,n,this.n64*8)}toRprBEM(e,t,n){return this.toRprBE(e,t,this.mul(this.R,n))}toRprLEM(e,t,n){return this.toRprLE(e,t,this.mul(this.R,n))}fromRprLE(e,t){return de(e,t,this.n8)}fromRprBE(e,t){return fe(e,t,this.n8)}fromRprLEM(e,t){return this.mul(this.fromRprLE(e,t),this.Ri)}fromRprBEM(e,t){return this.mul(this.fromRprBE(e,t),this.Ri)}toObject(e){return e}},Be={};Be.bigInt2BytesLE=function(e,t){let n=Array(t),r=BigInt(e);for(let e=0;e<t;e++)n[e]=Number(r&255n),r>>=8n;return n},Be.bigInt2U32LE=function(e,t){let n=Array(t),r=BigInt(e);for(let e=0;e<t;e++)n[e]=Number(r&4294967295n),r>>=32n;return n},Be.isOcamNum=function(e){return!(!Array.isArray(e)||e.length!=3||typeof e[0]!=`number`||typeof e[1]!=`number`||!Array.isArray(e[2]))};var Ve=function(e,t,n){let r=n||`int`;if(e.modules[r])return r;e.modules[r]={};let i=t*2,a=t*8;function o(){let n=e.addFunction(r+`_copy`);n.addParam(`px`,`i32`),n.addParam(`pr`,`i32`);let i=n.getCodeBuilder();for(let e=0;e<t;e++)n.addCode(i.i64_store(i.getLocal(`pr`),e*8,i.i64_load(i.getLocal(`px`),e*8)))}function s(){let n=e.addFunction(r+`_zero`);n.addParam(`pr`,`i32`);let i=n.getCodeBuilder();for(let e=0;e<t;e++)n.addCode(i.i64_store(i.getLocal(`pr`),e*8,i.i64_const(0)))}function c(){let n=e.addFunction(r+`_one`);n.addParam(`pr`,`i32`);let i=n.getCodeBuilder();n.addCode(i.i64_store(i.getLocal(`pr`),0,i.i64_const(1)));for(let e=1;e<t;e++)n.addCode(i.i64_store(i.getLocal(`pr`),e*8,i.i64_const(0)))}function l(){let n=e.addFunction(r+`_isZero`);n.addParam(`px`,`i32`),n.setReturnType(`i32`);let i=n.getCodeBuilder();function a(e){return e==0?i.ret(i.i64_eqz(i.i64_load(i.getLocal(`px`)))):i.if(i.i64_eqz(i.i64_load(i.getLocal(`px`),e*8)),a(e-1),i.ret(i.i32_const(0)))}n.addCode(a(t-1)),n.addCode(i.ret(i.i32_const(0)))}function u(){let n=e.addFunction(r+`_eq`);n.addParam(`px`,`i32`),n.addParam(`py`,`i32`),n.setReturnType(`i32`);let i=n.getCodeBuilder();function a(e){return e==0?i.ret(i.i64_eq(i.i64_load(i.getLocal(`px`)),i.i64_load(i.getLocal(`py`)))):i.if(i.i64_eq(i.i64_load(i.getLocal(`px`),e*8),i.i64_load(i.getLocal(`py`),e*8)),a(e-1),i.ret(i.i32_const(0)))}n.addCode(a(t-1)),n.addCode(i.ret(i.i32_const(0)))}function d(){let n=e.addFunction(r+`_gte`);n.addParam(`px`,`i32`),n.addParam(`py`,`i32`),n.setReturnType(`i32`);let i=n.getCodeBuilder();function a(e){return e==0?i.ret(i.i64_ge_u(i.i64_load(i.getLocal(`px`)),i.i64_load(i.getLocal(`py`)))):i.if(i.i64_lt_u(i.i64_load(i.getLocal(`px`),e*8),i.i64_load(i.getLocal(`py`),e*8)),i.ret(i.i32_const(0)),i.if(i.i64_gt_u(i.i64_load(i.getLocal(`px`),e*8),i.i64_load(i.getLocal(`py`),e*8)),i.ret(i.i32_const(1)),a(e-1)))}n.addCode(a(t-1)),n.addCode(i.ret(i.i32_const(0)))}function f(){let t=e.addFunction(r+`_add`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`),t.setReturnType(`i32`),t.addLocal(`c`,`i64`);let n=t.getCodeBuilder();t.addCode(n.setLocal(`c`,n.i64_add(n.i64_load32_u(n.getLocal(`x`)),n.i64_load32_u(n.getLocal(`y`))))),t.addCode(n.i64_store32(n.getLocal(`r`),n.getLocal(`c`)));for(let e=1;e<i;e++)t.addCode(n.setLocal(`c`,n.i64_add(n.i64_add(n.i64_load32_u(n.getLocal(`x`),4*e),n.i64_load32_u(n.getLocal(`y`),4*e)),n.i64_shr_u(n.getLocal(`c`),n.i64_const(32))))),t.addCode(n.i64_store32(n.getLocal(`r`),e*4,n.getLocal(`c`)));t.addCode(n.i32_wrap_i64(n.i64_shr_u(n.getLocal(`c`),n.i64_const(32))))}function p(){let t=e.addFunction(r+`_sub`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`),t.setReturnType(`i32`),t.addLocal(`c`,`i64`);let n=t.getCodeBuilder();t.addCode(n.setLocal(`c`,n.i64_sub(n.i64_load32_u(n.getLocal(`x`)),n.i64_load32_u(n.getLocal(`y`))))),t.addCode(n.i64_store32(n.getLocal(`r`),n.i64_and(n.getLocal(`c`),n.i64_const(`0xFFFFFFFF`))));for(let e=1;e<i;e++)t.addCode(n.setLocal(`c`,n.i64_add(n.i64_sub(n.i64_load32_u(n.getLocal(`x`),4*e),n.i64_load32_u(n.getLocal(`y`),4*e)),n.i64_shr_s(n.getLocal(`c`),n.i64_const(32))))),t.addCode(n.i64_store32(n.getLocal(`r`),e*4,n.i64_and(n.getLocal(`c`),n.i64_const(`0xFFFFFFFF`))));t.addCode(n.i32_wrap_i64(n.i64_shr_s(n.getLocal(`c`),n.i64_const(32))))}function m(){let t=e.addFunction(r+`_mul`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`c0`,`i64`),t.addLocal(`c1`,`i64`);for(let e=0;e<i;e++)t.addLocal(`x`+e,`i64`),t.addLocal(`y`+e,`i64`);let n=t.getCodeBuilder(),a=[],o=[];function s(e,t){let r,i;return a[e]?r=n.getLocal(`x`+e):(r=n.teeLocal(`x`+e,n.i64_load32_u(n.getLocal(`x`),e*4)),a[e]=!0),o[t]?i=n.getLocal(`y`+t):(i=n.teeLocal(`y`+t,n.i64_load32_u(n.getLocal(`y`),t*4)),o[t]=!0),n.i64_mul(r,i)}let c=`c0`,l=`c1`;for(let e=0;e<i*2-1;e++){for(let r=Math.max(0,e-i+1);r<=e&&r<i;r++){let i=e-r;t.addCode(n.setLocal(c,n.i64_add(n.i64_and(n.getLocal(c),n.i64_const(4294967295)),s(r,i)))),t.addCode(n.setLocal(l,n.i64_add(n.getLocal(l),n.i64_shr_u(n.getLocal(c),n.i64_const(32)))))}t.addCode(n.i64_store32(n.getLocal(`r`),e*4,n.getLocal(c))),[c,l]=[l,c],t.addCode(n.setLocal(l,n.i64_shr_u(n.getLocal(c),n.i64_const(32))))}t.addCode(n.i64_store32(n.getLocal(`r`),i*4*2-4,n.getLocal(c)))}function h(){let t=e.addFunction(r+`_square`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`c0`,`i64`),t.addLocal(`c1`,`i64`),t.addLocal(`c0_old`,`i64`),t.addLocal(`c1_old`,`i64`);for(let e=0;e<i;e++)t.addLocal(`x`+e,`i64`);let n=t.getCodeBuilder(),a=[];function o(e,t){let r,i;return a[e]?r=n.getLocal(`x`+e):(r=n.teeLocal(`x`+e,n.i64_load32_u(n.getLocal(`x`),e*4)),a[e]=!0),a[t]?i=n.getLocal(`x`+t):(i=n.teeLocal(`x`+t,n.i64_load32_u(n.getLocal(`x`),t*4)),a[t]=!0),n.i64_mul(r,i)}let s=`c0_old`,c=`c1_old`;for(let e=0;e<i*2-1;e++){t.addCode(n.setLocal(`c0`,n.i64_const(0)),n.setLocal(`c1`,n.i64_const(0)));for(let r=Math.max(0,e-i+1);r<e+1>>1&&r<i;r++){let i=e-r;t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),o(r,i)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))}t.addCode(n.setLocal(`c0`,n.i64_shl(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.i64_const(1)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.i64_shl(n.getLocal(`c1`),n.i64_const(1)),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32))))),e%2==0&&(t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),o(e>>1,e>>1)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))),e>0&&(t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.i64_and(n.getLocal(s),n.i64_const(4294967295))))),t.addCode(n.setLocal(`c1`,n.i64_add(n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32))),n.getLocal(c))))),t.addCode(n.i64_store32(n.getLocal(`r`),e*4,n.getLocal(`c0`))),t.addCode(n.setLocal(s,n.getLocal(`c1`)),n.setLocal(c,n.i64_shr_u(n.getLocal(s),n.i64_const(32))))}t.addCode(n.i64_store32(n.getLocal(`r`),i*4*2-4,n.getLocal(s)))}function g(){let t=e.addFunction(r+`_squareOld`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(r+`_mul`,n.getLocal(`x`),n.getLocal(`x`),n.getLocal(`r`)))}function _(){let t=e.addFunction(r+`__mul1`);t.addParam(`px`,`i32`),t.addParam(`y`,`i64`),t.addParam(`pr`,`i32`),t.addLocal(`c`,`i64`);let n=t.getCodeBuilder();t.addCode(n.setLocal(`c`,n.i64_mul(n.i64_load32_u(n.getLocal(`px`),0,0),n.getLocal(`y`)))),t.addCode(n.i64_store32(n.getLocal(`pr`),0,0,n.getLocal(`c`)));for(let e=1;e<i;e++)t.addCode(n.setLocal(`c`,n.i64_add(n.i64_mul(n.i64_load32_u(n.getLocal(`px`),4*e,0),n.getLocal(`y`)),n.i64_shr_u(n.getLocal(`c`),n.i64_const(32))))),t.addCode(n.i64_store32(n.getLocal(`pr`),e*4,0,n.getLocal(`c`)))}function v(){let t=e.addFunction(r+`__add1`);t.addParam(`x`,`i32`),t.addParam(`y`,`i64`),t.addLocal(`c`,`i64`),t.addLocal(`px`,`i32`);let n=t.getCodeBuilder();t.addCode(n.setLocal(`px`,n.getLocal(`x`))),t.addCode(n.setLocal(`c`,n.i64_add(n.i64_load32_u(n.getLocal(`px`),0,0),n.getLocal(`y`)))),t.addCode(n.i64_store32(n.getLocal(`px`),0,0,n.getLocal(`c`))),t.addCode(n.setLocal(`c`,n.i64_shr_u(n.getLocal(`c`),n.i64_const(32)))),t.addCode(n.block(n.loop(n.br_if(1,n.i64_eqz(n.getLocal(`c`))),n.setLocal(`px`,n.i32_add(n.getLocal(`px`),n.i32_const(4))),n.setLocal(`c`,n.i64_add(n.i64_load32_u(n.getLocal(`px`),0,0),n.getLocal(`c`))),n.i64_store32(n.getLocal(`px`),0,0,n.getLocal(`c`)),n.setLocal(`c`,n.i64_shr_u(n.getLocal(`c`),n.i64_const(32))),n.br(0))))}function y(){_(),v();let t=e.addFunction(r+`_div`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`c`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`rr`,`i32`),t.addLocal(`cc`,`i32`),t.addLocal(`eX`,`i32`),t.addLocal(`eY`,`i32`),t.addLocal(`sy`,`i64`),t.addLocal(`sx`,`i64`),t.addLocal(`ec`,`i32`);let n=t.getCodeBuilder(),i=n.i32_const(e.alloc(a)),o=n.i32_const(e.alloc(a)),s=n.i32_const(e.alloc(a)),c=n.getLocal(`cc`),l=n.getLocal(`rr`),u=e.alloc(a*2),d=n.i32_const(u),f=n.i32_const(u+a);t.addCode(n.if(n.getLocal(`c`),n.setLocal(`cc`,n.getLocal(`c`)),n.setLocal(`cc`,o))),t.addCode(n.if(n.getLocal(`r`),n.setLocal(`rr`,n.getLocal(`r`)),n.setLocal(`rr`,s))),t.addCode(n.call(r+`_copy`,n.getLocal(`x`),l)),t.addCode(n.call(r+`_copy`,n.getLocal(`y`),i)),t.addCode(n.call(r+`_zero`,c)),t.addCode(n.call(r+`_zero`,d)),t.addCode(n.setLocal(`eX`,n.i32_const(a-1))),t.addCode(n.setLocal(`eY`,n.i32_const(a-1))),t.addCode(n.block(n.loop(n.br_if(1,n.i32_or(n.i32_load8_u(n.i32_add(i,n.getLocal(`eY`)),0,0),n.i32_eq(n.getLocal(`eY`),n.i32_const(3)))),n.setLocal(`eY`,n.i32_sub(n.getLocal(`eY`),n.i32_const(1))),n.br(0)))),t.addCode(n.setLocal(`sy`,n.i64_add(n.i64_load32_u(n.i32_sub(n.i32_add(i,n.getLocal(`eY`)),n.i32_const(3)),0,0),n.i64_const(1)))),t.addCode(n.if(n.i64_eq(n.getLocal(`sy`),n.i64_const(1)),n.drop(n.i64_div_u(n.i64_const(0),n.i64_const(0))))),t.addCode(n.block(n.loop(n.block(n.loop(n.br_if(1,n.i32_or(n.i32_load8_u(n.i32_add(l,n.getLocal(`eX`)),0,0),n.i32_eq(n.getLocal(`eX`),n.i32_const(7)))),n.setLocal(`eX`,n.i32_sub(n.getLocal(`eX`),n.i32_const(1))),n.br(0))),n.setLocal(`sx`,n.i64_load(n.i32_sub(n.i32_add(l,n.getLocal(`eX`)),n.i32_const(7)),0,0)),n.setLocal(`sx`,n.i64_div_u(n.getLocal(`sx`),n.getLocal(`sy`))),n.setLocal(`ec`,n.i32_sub(n.i32_sub(n.getLocal(`eX`),n.getLocal(`eY`)),n.i32_const(4))),n.block(n.loop(n.br_if(1,n.i32_and(n.i64_eqz(n.i64_and(n.getLocal(`sx`),n.i64_const(`0xFFFFFFFF00000000`))),n.i32_ge_s(n.getLocal(`ec`),n.i32_const(0)))),n.setLocal(`sx`,n.i64_shr_u(n.getLocal(`sx`),n.i64_const(8))),n.setLocal(`ec`,n.i32_add(n.getLocal(`ec`),n.i32_const(1))),n.br(0))),n.if(n.i64_eqz(n.getLocal(`sx`)),[...n.br_if(2,n.i32_eqz(n.call(r+`_gte`,l,i))),...n.setLocal(`sx`,n.i64_const(1)),...n.setLocal(`ec`,n.i32_const(0))]),n.call(r+`__mul1`,i,n.getLocal(`sx`),f),n.drop(n.call(r+`_sub`,l,n.i32_sub(f,n.getLocal(`ec`)),l)),n.call(r+`__add1`,n.i32_add(c,n.getLocal(`ec`)),n.getLocal(`sx`)),n.br(0))))}function b(){let t=e.addFunction(r+`_inverseMod`);t.addParam(`px`,`i32`),t.addParam(`pm`,`i32`),t.addParam(`pr`,`i32`),t.addLocal(`t`,`i32`),t.addLocal(`newt`,`i32`),t.addLocal(`r`,`i32`),t.addLocal(`qq`,`i32`),t.addLocal(`qr`,`i32`),t.addLocal(`newr`,`i32`),t.addLocal(`swp`,`i32`),t.addLocal(`x`,`i32`),t.addLocal(`signt`,`i32`),t.addLocal(`signnewt`,`i32`),t.addLocal(`signx`,`i32`);let n=t.getCodeBuilder(),i=n.i32_const(e.alloc(a)),o=n.i32_const(e.alloc(a)),s=n.i32_const(e.alloc(a)),c=n.i32_const(e.alloc(a)),l=n.i32_const(e.alloc(a)),u=n.i32_const(e.alloc(a)),d=n.i32_const(e.alloc(a*2)),f=n.i32_const(e.alloc(a));t.addCode(n.setLocal(`t`,i),n.call(r+`_zero`,i),n.setLocal(`signt`,n.i32_const(0))),t.addCode(n.setLocal(`r`,o),n.call(r+`_copy`,n.getLocal(`pm`),o)),t.addCode(n.setLocal(`newt`,s),n.call(r+`_one`,s),n.setLocal(`signnewt`,n.i32_const(0))),t.addCode(n.setLocal(`newr`,c),n.call(r+`_copy`,n.getLocal(`px`),c)),t.addCode(n.setLocal(`qq`,l)),t.addCode(n.setLocal(`qr`,u)),t.addCode(n.setLocal(`x`,f)),t.addCode(n.block(n.loop(n.br_if(1,n.call(r+`_isZero`,n.getLocal(`newr`))),n.call(r+`_div`,n.getLocal(`r`),n.getLocal(`newr`),n.getLocal(`qq`),n.getLocal(`qr`)),n.call(r+`_mul`,n.getLocal(`qq`),n.getLocal(`newt`),d),n.if(n.getLocal(`signt`),n.if(n.getLocal(`signnewt`),n.if(n.call(r+`_gte`,d,n.getLocal(`t`)),[...n.drop(n.call(r+`_sub`,d,n.getLocal(`t`),n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(0))],[...n.drop(n.call(r+`_sub`,n.getLocal(`t`),d,n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(1))]),[...n.drop(n.call(r+`_add`,d,n.getLocal(`t`),n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(1))]),n.if(n.getLocal(`signnewt`),[...n.drop(n.call(r+`_add`,d,n.getLocal(`t`),n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(0))],n.if(n.call(r+`_gte`,n.getLocal(`t`),d),[...n.drop(n.call(r+`_sub`,n.getLocal(`t`),d,n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(0))],[...n.drop(n.call(r+`_sub`,d,n.getLocal(`t`),n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(1))]))),n.setLocal(`swp`,n.getLocal(`t`)),n.setLocal(`t`,n.getLocal(`newt`)),n.setLocal(`newt`,n.getLocal(`x`)),n.setLocal(`x`,n.getLocal(`swp`)),n.setLocal(`signt`,n.getLocal(`signnewt`)),n.setLocal(`signnewt`,n.getLocal(`signx`)),n.setLocal(`swp`,n.getLocal(`r`)),n.setLocal(`r`,n.getLocal(`newr`)),n.setLocal(`newr`,n.getLocal(`qr`)),n.setLocal(`qr`,n.getLocal(`swp`)),n.br(0)))),t.addCode(n.if(n.getLocal(`signt`),n.drop(n.call(r+`_sub`,n.getLocal(`pm`),n.getLocal(`t`),n.getLocal(`pr`))),n.call(r+`_copy`,n.getLocal(`t`),n.getLocal(`pr`))))}return o(),s(),l(),c(),u(),d(),f(),p(),m(),h(),g(),y(),b(),e.exportFunction(r+`_copy`),e.exportFunction(r+`_zero`),e.exportFunction(r+`_one`),e.exportFunction(r+`_isZero`),e.exportFunction(r+`_eq`),e.exportFunction(r+`_gte`),e.exportFunction(r+`_add`),e.exportFunction(r+`_sub`),e.exportFunction(r+`_mul`),e.exportFunction(r+`_square`),e.exportFunction(r+`_squareOld`),e.exportFunction(r+`_div`),e.exportFunction(r+`_inverseMod`),r},He=function(e,t,n,r,i,a,o){let s=e.addFunction(t);s.addParam(`base`,`i32`),s.addParam(`scalar`,`i32`),s.addParam(`scalarLength`,`i32`),s.addParam(`r`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`b`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(n));s.addCode(c.if(c.i32_eqz(c.getLocal(`scalarLength`)),[...c.call(o,c.getLocal(`r`)),...c.ret([])])),s.addCode(c.call(a,c.getLocal(`base`),l)),s.addCode(c.call(o,c.getLocal(`r`))),s.addCode(c.setLocal(`i`,c.getLocal(`scalarLength`))),s.addCode(c.block(c.loop(c.setLocal(`i`,c.i32_sub(c.getLocal(`i`),c.i32_const(1))),c.setLocal(`b`,c.i32_load8_u(c.i32_add(c.getLocal(`scalar`),c.getLocal(`i`)))),...u(),c.br_if(1,c.i32_eqz(c.getLocal(`i`))),c.br(0))));function u(){let e=[];for(let t=0;t<8;t++)e.push(...c.call(i,c.getLocal(`r`),c.getLocal(`r`)),...c.if(c.i32_ge_u(c.getLocal(`b`),c.i32_const(128>>t)),[...c.setLocal(`b`,c.i32_sub(c.getLocal(`b`),c.i32_const(128>>t))),...c.call(r,c.getLocal(`r`),l,c.getLocal(`r`))]));return e}},Ue=We;function We(e,t){let n=e.modules[t].n64*8,r=e.addFunction(t+`_batchInverse`);r.addParam(`pIn`,`i32`),r.addParam(`inStep`,`i32`),r.addParam(`n`,`i32`),r.addParam(`pOut`,`i32`),r.addParam(`outStep`,`i32`),r.addLocal(`itAux`,`i32`),r.addLocal(`itIn`,`i32`),r.addLocal(`itOut`,`i32`),r.addLocal(`i`,`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(n));r.addCode(i.setLocal(`itAux`,i.i32_load(i.i32_const(0))),i.i32_store(i.i32_const(0),i.i32_add(i.getLocal(`itAux`),i.i32_mul(i.i32_add(i.getLocal(`n`),i.i32_const(1)),i.i32_const(n))))),r.addCode(i.call(t+`_one`,i.getLocal(`itAux`)),i.setLocal(`itIn`,i.getLocal(`pIn`)),i.setLocal(`itAux`,i.i32_add(i.getLocal(`itAux`),i.i32_const(n))),i.setLocal(`i`,i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`i`),i.getLocal(`n`))),i.if(i.call(t+`_isZero`,i.getLocal(`itIn`)),i.call(t+`_copy`,i.i32_sub(i.getLocal(`itAux`),i.i32_const(n)),i.getLocal(`itAux`)),i.call(t+`_mul`,i.getLocal(`itIn`),i.i32_sub(i.getLocal(`itAux`),i.i32_const(n)),i.getLocal(`itAux`))),i.setLocal(`itIn`,i.i32_add(i.getLocal(`itIn`),i.getLocal(`inStep`))),i.setLocal(`itAux`,i.i32_add(i.getLocal(`itAux`),i.i32_const(n))),i.setLocal(`i`,i.i32_add(i.getLocal(`i`),i.i32_const(1))),i.br(0))),i.setLocal(`itIn`,i.i32_sub(i.getLocal(`itIn`),i.getLocal(`inStep`))),i.setLocal(`itAux`,i.i32_sub(i.getLocal(`itAux`),i.i32_const(n))),i.setLocal(`itOut`,i.i32_add(i.getLocal(`pOut`),i.i32_mul(i.i32_sub(i.getLocal(`n`),i.i32_const(1)),i.getLocal(`outStep`)))),i.call(t+`_inverse`,i.getLocal(`itAux`),i.getLocal(`itAux`)),i.block(i.loop(i.br_if(1,i.i32_eqz(i.getLocal(`i`))),i.if(i.call(t+`_isZero`,i.getLocal(`itIn`)),[...i.call(t+`_copy`,i.getLocal(`itAux`),i.i32_sub(i.getLocal(`itAux`),i.i32_const(n))),...i.call(t+`_zero`,i.getLocal(`itOut`))],[...i.call(t+`_copy`,i.i32_sub(i.getLocal(`itAux`),i.i32_const(n)),a),...i.call(t+`_mul`,i.getLocal(`itAux`),i.getLocal(`itIn`),i.i32_sub(i.getLocal(`itAux`),i.i32_const(n))),...i.call(t+`_mul`,i.getLocal(`itAux`),a,i.getLocal(`itOut`))]),i.setLocal(`itIn`,i.i32_sub(i.getLocal(`itIn`),i.getLocal(`inStep`))),i.setLocal(`itOut`,i.i32_sub(i.getLocal(`itOut`),i.getLocal(`outStep`))),i.setLocal(`itAux`,i.i32_sub(i.getLocal(`itAux`),i.i32_const(n))),i.setLocal(`i`,i.i32_sub(i.getLocal(`i`),i.i32_const(1))),i.br(0)))),r.addCode(i.i32_store(i.i32_const(0),i.getLocal(`itAux`)))}var Ge=Ke;function Ke(e,t,n,r,i,a){a===void 0&&(a=r<i);let o=e.addFunction(t);o.addParam(`pIn`,`i32`),o.addParam(`n`,`i32`),o.addParam(`pOut`,`i32`),o.addLocal(`i`,`i32`),o.addLocal(`itIn`,`i32`),o.addLocal(`itOut`,`i32`);let s=o.getCodeBuilder();a?o.addCode(s.setLocal(`itIn`,s.i32_add(s.getLocal(`pIn`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(r)))),s.setLocal(`itOut`,s.i32_add(s.getLocal(`pOut`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(i)))),s.setLocal(`i`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`i`),s.getLocal(`n`))),s.call(n,s.getLocal(`itIn`),s.getLocal(`itOut`)),s.setLocal(`itIn`,s.i32_sub(s.getLocal(`itIn`),s.i32_const(r))),s.setLocal(`itOut`,s.i32_sub(s.getLocal(`itOut`),s.i32_const(i))),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0)))):o.addCode(s.setLocal(`itIn`,s.getLocal(`pIn`)),s.setLocal(`itOut`,s.getLocal(`pOut`)),s.setLocal(`i`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`i`),s.getLocal(`n`))),s.call(n,s.getLocal(`itIn`),s.getLocal(`itOut`)),s.setLocal(`itIn`,s.i32_add(s.getLocal(`itIn`),s.i32_const(r))),s.setLocal(`itOut`,s.i32_add(s.getLocal(`itOut`),s.i32_const(i))),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0))))}var qe=Je;function Je(e,t,n,r,i,a){a===void 0&&(a=r<i);let o=e.addFunction(t);o.addParam(`pIn1`,`i32`),o.addParam(`pIn2`,`i32`),o.addParam(`n`,`i32`),o.addParam(`pOut`,`i32`),o.addLocal(`i`,`i32`),o.addLocal(`itIn1`,`i32`),o.addLocal(`itIn2`,`i32`),o.addLocal(`itOut`,`i32`);let s=o.getCodeBuilder();a?o.addCode(s.setLocal(`itIn1`,s.i32_add(s.getLocal(`pIn1`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(r)))),s.setLocal(`itIn2`,s.i32_add(s.getLocal(`pIn2`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(r)))),s.setLocal(`itOut`,s.i32_add(s.getLocal(`pOut`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(i)))),s.setLocal(`i`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`i`),s.getLocal(`n`))),s.call(n,s.getLocal(`itIn1`),s.getLocal(`itIn2`),s.getLocal(`itOut`)),s.setLocal(`itIn1`,s.i32_sub(s.getLocal(`itIn1`),s.i32_const(r))),s.setLocal(`itIn2`,s.i32_sub(s.getLocal(`itIn2`),s.i32_const(r))),s.setLocal(`itOut`,s.i32_sub(s.getLocal(`itOut`),s.i32_const(i))),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0)))):o.addCode(s.setLocal(`itIn1`,s.getLocal(`pIn1`)),s.setLocal(`itIn2`,s.getLocal(`pIn2`)),s.setLocal(`itOut`,s.getLocal(`pOut`)),s.setLocal(`i`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`i`),s.getLocal(`n`))),s.call(n,s.getLocal(`itIn1`),s.getLocal(`itIn2`),s.getLocal(`itOut`)),s.setLocal(`itIn1`,s.i32_add(s.getLocal(`itIn1`),s.i32_const(r))),s.setLocal(`itIn2`,s.i32_add(s.getLocal(`itIn2`),s.i32_const(r))),s.setLocal(`itOut`,s.i32_add(s.getLocal(`itOut`),s.i32_const(i))),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0))))}var Ye={};function Xe(e,t){return e===t?0:e>t?1:-1}function Ze(e){return e*e}function Qe(e){return e%2n!=0n}function $e(e){return e%2n==0n}function et(e){return e<0n}function tt(e){return e>0n}function nt(e){return et(e)?e.toString(2).length-1:e.toString(2).length}function rt(e){return e<0n?-e:e}function it(e){return rt(e)===1n}function at(e,t){for(var n=0n,r=1n,i=t,a=rt(e),o,s,c;a!==0n;)o=i/a,s=n,c=i,n=r,i=a,r=s-o*r,a=c-o*a;if(!it(i))throw Error(e.toString()+` and `+t.toString()+` are not co-prime`);return Xe(n,0n)===-1&&(n+=t),et(e)?-n:n}function ot(e,t,n){if(n===0n)throw Error(`Cannot take modPow with modulus 0`);var r=1n,i=e%n;for(et(t)&&(t*=-1n,i=at(i,n));tt(t);){if(i===0n)return 0n;Qe(t)&&(r=r*i%n),t/=2n,i=Ze(i)%n}return r}function st(e,t){return e=e>=0n?e:-e,t=t>=0n?t:-t,e===t?0:e>t?1:-1}function ct(e,t){return t===0n?!1:it(t)?!0:st(t,2n)===0?$e(e):e%t===0n}function lt(e){var t=rt(e);if(it(t))return!1;if(t===2n||t===3n||t===5n)return!0;if($e(t)||ct(t,3n)||ct(t,5n))return!1;if(t<49n)return!0}function ut(e){return e-1n}function dt(e,t){for(var n=ut(e),r=n,i=0,a,o,s;$e(r);)r/=2n,i++;next:for(o=0;o<t.length;o++)if(!(e<t[o])&&(s=ot(BigInt(t[o]),r,e),!(it(s)||s===n))){for(a=i-1;a!=0;a--){if(s=Ze(s)%e,it(s))return!1;if(s===n)continue next}return!1}return!0}function ft(e){var t=lt(e);if(t!==void 0)return t;var n=rt(e),r=nt(n);if(r<=64)return dt(n,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var i=Math.log(2)*Number(r),a=Math.ceil(i),o=[],s=0;s<a;s++)o.push(BigInt(s+2));return dt(n,o)}Ye.bitLength=nt,Ye.isOdd=Qe,Ye.isNegative=et,Ye.abs=rt,Ye.isUnit=it,Ye.compare=Xe,Ye.modInv=at,Ye.modPow=ot,Ye.isPrime=ft,Ye.square=Ze;const pt=Ve,mt=Be,ht=He,gt=Ue,_t=Ge,vt=qe,{bitLength:yt,modInv:bt,modPow:xt,isPrime:St,isOdd:Ct,square:wt}=Ye;var Tt=function(e,t,n,r){let i=BigInt(t),a=Math.floor((yt(i-1n)-1)/64)+1,o=a*2,s=a*8,c=n||`f1m`;if(e.modules[c])return c;let l=pt(e,a,r),u=e.alloc(s,mt.bigInt2BytesLE(i,s)),d=e.alloc(mt.bigInt2BytesLE(wt(1n<<BigInt(a*64))%i,s)),f=e.alloc(mt.bigInt2BytesLE((1n<<BigInt(a*64))%i,s)),p=e.alloc(mt.bigInt2BytesLE(0n,s)),m=i-1n,h=m>>1n,g=e.alloc(s,mt.bigInt2BytesLE(h,s)),_=h+1n,v=e.alloc(s,mt.bigInt2BytesLE(_,s));e.modules[c]={pq:u,pR2:d,n64:a,q:i,pOne:f,pZero:p,pePlusOne:v};function y(){let t=e.addFunction(c+`_one`);t.addParam(`pr`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(l+`_copy`,n.i32_const(f),n.getLocal(`pr`)))}function b(){let t=e.addFunction(c+`_add`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.if(n.call(l+`_add`,n.getLocal(`x`),n.getLocal(`y`),n.getLocal(`r`)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))),n.if(n.call(l+`_gte`,n.getLocal(`r`),n.i32_const(u)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))))))}function x(){let t=e.addFunction(c+`_sub`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.if(n.call(l+`_sub`,n.getLocal(`x`),n.getLocal(`y`),n.getLocal(`r`)),n.drop(n.call(l+`_add`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`)))))}function S(){let t=e.addFunction(c+`_neg`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_sub`,n.i32_const(p),n.getLocal(`x`),n.getLocal(`r`)))}function C(){let t=e.addFunction(c+`_isNegative`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s));t.addCode(n.call(c+`_fromMontgomery`,n.getLocal(`x`),r),n.call(l+`_gte`,r,n.i32_const(v)))}function w(){let t=e.addFunction(c+`_sign`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s));t.addCode(n.if(n.call(l+`_isZero`,n.getLocal(`x`)),n.ret(n.i32_const(0))),n.call(c+`_fromMontgomery`,n.getLocal(`x`),r),n.if(n.call(l+`_gte`,r,n.i32_const(v)),n.ret(n.i32_const(-1))),n.ret(n.i32_const(1)))}function T(){let t=e.alloc(o*o*8),n=e.addFunction(c+`_mReduct`);n.addParam(`t`,`i32`),n.addParam(`r`,`i32`),n.addLocal(`np32`,`i64`),n.addLocal(`c`,`i64`),n.addLocal(`m`,`i64`);let r=n.getCodeBuilder(),a=Number(4294967296n-bt(i,4294967296n));n.addCode(r.setLocal(`np32`,r.i64_const(a)));for(let e=0;e<o;e++){n.addCode(r.setLocal(`c`,r.i64_const(0))),n.addCode(r.setLocal(`m`,r.i64_and(r.i64_mul(r.i64_load32_u(r.getLocal(`t`),e*4),r.getLocal(`np32`)),r.i64_const(`0xFFFFFFFF`))));for(let t=0;t<o;t++)n.addCode(r.setLocal(`c`,r.i64_add(r.i64_add(r.i64_load32_u(r.getLocal(`t`),(e+t)*4),r.i64_shr_u(r.getLocal(`c`),r.i64_const(32))),r.i64_mul(r.i64_load32_u(r.i32_const(u),t*4),r.getLocal(`m`))))),n.addCode(r.i64_store32(r.getLocal(`t`),(e+t)*4,r.getLocal(`c`)));n.addCode(r.i64_store32(r.i32_const(t),e*4,r.i64_shr_u(r.getLocal(`c`),r.i64_const(32))))}n.addCode(r.call(c+`_add`,r.i32_const(t),r.i32_add(r.getLocal(`t`),r.i32_const(o*4)),r.getLocal(`r`)))}function E(){let t=e.addFunction(c+`_mul`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`c0`,`i64`),t.addLocal(`c1`,`i64`),t.addLocal(`np32`,`i64`);for(let e=0;e<o;e++)t.addLocal(`x`+e,`i64`),t.addLocal(`y`+e,`i64`),t.addLocal(`m`+e,`i64`),t.addLocal(`q`+e,`i64`);let n=t.getCodeBuilder(),r=Number(4294967296n-bt(i,4294967296n));t.addCode(n.setLocal(`np32`,n.i64_const(r)));let a=[],s=[],d=[];function f(e,t){let r,i;return a[e]?r=n.getLocal(`x`+e):(r=n.teeLocal(`x`+e,n.i64_load32_u(n.getLocal(`x`),e*4)),a[e]=!0),s[t]?i=n.getLocal(`y`+t):(i=n.teeLocal(`y`+t,n.i64_load32_u(n.getLocal(`y`),t*4)),s[t]=!0),n.i64_mul(r,i)}function p(e,t){let r,i;return d[e]?r=n.getLocal(`q`+e):(r=n.teeLocal(`q`+e,n.i64_load32_u(n.i32_const(0),u+e*4)),d[e]=!0),i=n.getLocal(`m`+t),n.i64_mul(r,i)}let m=`c0`,h=`c1`;for(let e=0;e<o*2-1;e++){for(let r=Math.max(0,e-o+1);r<=e&&r<o;r++){let i=e-r;t.addCode(n.setLocal(m,n.i64_add(n.i64_and(n.getLocal(m),n.i64_const(4294967295)),f(r,i)))),t.addCode(n.setLocal(h,n.i64_add(n.getLocal(h),n.i64_shr_u(n.getLocal(m),n.i64_const(32)))))}for(let r=Math.max(1,e-o+1);r<=e&&r<o;r++){let i=e-r;t.addCode(n.setLocal(m,n.i64_add(n.i64_and(n.getLocal(m),n.i64_const(4294967295)),p(r,i)))),t.addCode(n.setLocal(h,n.i64_add(n.getLocal(h),n.i64_shr_u(n.getLocal(m),n.i64_const(32)))))}e<o&&(t.addCode(n.setLocal(`m`+e,n.i64_and(n.i64_mul(n.i64_and(n.getLocal(m),n.i64_const(4294967295)),n.getLocal(`np32`)),n.i64_const(`0xFFFFFFFF`)))),t.addCode(n.setLocal(m,n.i64_add(n.i64_and(n.getLocal(m),n.i64_const(4294967295)),p(0,e)))),t.addCode(n.setLocal(h,n.i64_add(n.getLocal(h),n.i64_shr_u(n.getLocal(m),n.i64_const(32)))))),e>=o&&t.addCode(n.i64_store32(n.getLocal(`r`),(e-o)*4,n.getLocal(m))),[m,h]=[h,m],t.addCode(n.setLocal(h,n.i64_shr_u(n.getLocal(m),n.i64_const(32))))}t.addCode(n.i64_store32(n.getLocal(`r`),o*4-4,n.getLocal(m))),t.addCode(n.if(n.i32_wrap_i64(n.getLocal(h)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))),n.if(n.call(l+`_gte`,n.getLocal(`r`),n.i32_const(u)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))))))}function D(){let t=e.addFunction(c+`_square`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`c0`,`i64`),t.addLocal(`c1`,`i64`),t.addLocal(`c0_old`,`i64`),t.addLocal(`c1_old`,`i64`),t.addLocal(`np32`,`i64`);for(let e=0;e<o;e++)t.addLocal(`x`+e,`i64`),t.addLocal(`m`+e,`i64`),t.addLocal(`q`+e,`i64`);let n=t.getCodeBuilder(),r=Number(4294967296n-bt(i,4294967296n));t.addCode(n.setLocal(`np32`,n.i64_const(r)));let a=[],s=[];function d(e,t){let r,i;return a[e]?r=n.getLocal(`x`+e):(r=n.teeLocal(`x`+e,n.i64_load32_u(n.getLocal(`x`),e*4)),a[e]=!0),a[t]?i=n.getLocal(`x`+t):(i=n.teeLocal(`x`+t,n.i64_load32_u(n.getLocal(`x`),t*4)),a[t]=!0),n.i64_mul(r,i)}function f(e,t){let r,i;return s[e]?r=n.getLocal(`q`+e):(r=n.teeLocal(`q`+e,n.i64_load32_u(n.i32_const(0),u+e*4)),s[e]=!0),i=n.getLocal(`m`+t),n.i64_mul(r,i)}let p=`c0_old`,m=`c1_old`;for(let e=0;e<o*2-1;e++){t.addCode(n.setLocal(`c0`,n.i64_const(0)),n.setLocal(`c1`,n.i64_const(0)));for(let r=Math.max(0,e-o+1);r<e+1>>1&&r<o;r++){let i=e-r;t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),d(r,i)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))}t.addCode(n.setLocal(`c0`,n.i64_shl(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.i64_const(1)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.i64_shl(n.getLocal(`c1`),n.i64_const(1)),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32))))),e%2==0&&(t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),d(e>>1,e>>1)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))),e>0&&(t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.i64_and(n.getLocal(p),n.i64_const(4294967295))))),t.addCode(n.setLocal(`c1`,n.i64_add(n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32))),n.getLocal(m)))));for(let r=Math.max(1,e-o+1);r<=e&&r<o;r++){let i=e-r;t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),f(r,i)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))}e<o&&(t.addCode(n.setLocal(`m`+e,n.i64_and(n.i64_mul(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.getLocal(`np32`)),n.i64_const(`0xFFFFFFFF`)))),t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),f(0,e)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))),e>=o&&t.addCode(n.i64_store32(n.getLocal(`r`),(e-o)*4,n.getLocal(`c0`))),t.addCode(n.setLocal(p,n.getLocal(`c1`)),n.setLocal(m,n.i64_shr_u(n.getLocal(p),n.i64_const(32))))}t.addCode(n.i64_store32(n.getLocal(`r`),o*4-4,n.getLocal(p))),t.addCode(n.if(n.i32_wrap_i64(n.getLocal(m)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))),n.if(n.call(l+`_gte`,n.getLocal(`r`),n.i32_const(u)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))))))}function O(){let t=e.addFunction(c+`_squareOld`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_mul`,n.getLocal(`x`),n.getLocal(`x`),n.getLocal(`r`)))}function k(){let t=e.addFunction(c+`_toMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_mul`,n.getLocal(`x`),n.i32_const(d),n.getLocal(`r`)))}function A(){let t=e.alloc(s*2),n=e.addFunction(c+`_fromMontgomery`);n.addParam(`x`,`i32`),n.addParam(`r`,`i32`);let r=n.getCodeBuilder();n.addCode(r.call(l+`_copy`,r.getLocal(`x`),r.i32_const(t))),n.addCode(r.call(l+`_zero`,r.i32_const(t+s))),n.addCode(r.call(c+`_mReduct`,r.i32_const(t),r.getLocal(`r`)))}function j(){let t=e.addFunction(c+`_inverse`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_fromMontgomery`,n.getLocal(`x`),n.getLocal(`r`))),t.addCode(n.call(l+`_inverseMod`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))),t.addCode(n.call(c+`_toMontgomery`,n.getLocal(`r`),n.getLocal(`r`)))}let M=2n;if(St(i))for(;xt(M,h,i)!==m;)M+=1n;let N=0,P=m;for(;!Ct(P)&&P!==0n;)N++,P>>=1n;let F=e.alloc(s,mt.bigInt2BytesLE(P,s)),I=xt(M,P,i),L=e.alloc(mt.bigInt2BytesLE((I<<BigInt(a*64))%i,s)),R=P+1n>>1n,z=e.alloc(s,mt.bigInt2BytesLE(R,s));function ee(){let t=e.addFunction(c+`_sqrt`);t.addParam(`n`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`m`,`i32`),t.addLocal(`i`,`i32`),t.addLocal(`j`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(f),i=n.i32_const(e.alloc(s)),a=n.i32_const(e.alloc(s)),o=n.i32_const(e.alloc(s)),l=n.i32_const(e.alloc(s)),u=n.i32_const(e.alloc(s));t.addCode(n.if(n.call(c+`_isZero`,n.getLocal(`n`)),n.ret(n.call(c+`_zero`,n.getLocal(`r`)))),n.setLocal(`m`,n.i32_const(N)),n.call(c+`_copy`,n.i32_const(L),i),n.call(c+`_exp`,n.getLocal(`n`),n.i32_const(F),n.i32_const(s),a),n.call(c+`_exp`,n.getLocal(`n`),n.i32_const(z),n.i32_const(s),o),n.block(n.loop(n.br_if(1,n.call(c+`_eq`,a,r)),n.call(c+`_square`,a,l),n.setLocal(`i`,n.i32_const(1)),n.block(n.loop(n.br_if(1,n.call(c+`_eq`,l,r)),n.call(c+`_square`,l,l),n.setLocal(`i`,n.i32_add(n.getLocal(`i`),n.i32_const(1))),n.br(0))),n.call(c+`_copy`,i,u),n.setLocal(`j`,n.i32_sub(n.i32_sub(n.getLocal(`m`),n.getLocal(`i`)),n.i32_const(1))),n.block(n.loop(n.br_if(1,n.i32_eqz(n.getLocal(`j`))),n.call(c+`_square`,u,u),n.setLocal(`j`,n.i32_sub(n.getLocal(`j`),n.i32_const(1))),n.br(0))),n.setLocal(`m`,n.getLocal(`i`)),n.call(c+`_square`,u,i),n.call(c+`_mul`,a,i,a),n.call(c+`_mul`,o,u,o),n.br(0))),n.if(n.call(c+`_isNegative`,o),n.call(c+`_neg`,o,n.getLocal(`r`)),n.call(c+`_copy`,o,n.getLocal(`r`))))}function B(){let t=e.addFunction(c+`_isSquare`);t.addParam(`n`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=n.i32_const(f),i=n.i32_const(e.alloc(s));t.addCode(n.if(n.call(c+`_isZero`,n.getLocal(`n`)),n.ret(n.i32_const(1))),n.call(c+`_exp`,n.getLocal(`n`),n.i32_const(g),n.i32_const(s),i),n.call(c+`_eq`,i,r))}function te(){let t=e.addFunction(c+`_load`);t.addParam(`scalar`,`i32`),t.addParam(`scalarLen`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`p`,`i32`),t.addLocal(`l`,`i32`),t.addLocal(`i`,`i32`),t.addLocal(`j`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s)),i=e.alloc(s),a=n.i32_const(i);t.addCode(n.call(l+`_zero`,n.getLocal(`r`)),n.setLocal(`i`,n.i32_const(s)),n.setLocal(`p`,n.getLocal(`scalar`)),n.block(n.loop(n.br_if(1,n.i32_gt_u(n.getLocal(`i`),n.getLocal(`scalarLen`))),n.if(n.i32_eq(n.getLocal(`i`),n.i32_const(s)),n.call(c+`_one`,r),n.call(c+`_mul`,r,n.i32_const(d),r)),n.call(c+`_mul`,n.getLocal(`p`),r,a),n.call(c+`_add`,n.getLocal(`r`),a,n.getLocal(`r`)),n.setLocal(`p`,n.i32_add(n.getLocal(`p`),n.i32_const(s))),n.setLocal(`i`,n.i32_add(n.getLocal(`i`),n.i32_const(s))),n.br(0))),n.setLocal(`l`,n.i32_rem_u(n.getLocal(`scalarLen`),n.i32_const(s))),n.if(n.i32_eqz(n.getLocal(`l`)),n.ret([])),n.call(l+`_zero`,a),n.setLocal(`j`,n.i32_const(0)),n.block(n.loop(n.br_if(1,n.i32_eq(n.getLocal(`j`),n.getLocal(`l`))),n.i32_store8(n.getLocal(`j`),i,n.i32_load8_u(n.getLocal(`p`))),n.setLocal(`p`,n.i32_add(n.getLocal(`p`),n.i32_const(1))),n.setLocal(`j`,n.i32_add(n.getLocal(`j`),n.i32_const(1))),n.br(0))),n.if(n.i32_eq(n.getLocal(`i`),n.i32_const(s)),n.call(c+`_one`,r),n.call(c+`_mul`,r,n.i32_const(d),r)),n.call(c+`_mul`,a,r,a),n.call(c+`_add`,n.getLocal(`r`),a,n.getLocal(`r`)))}function ne(){let t=e.addFunction(c+`_timesScalar`);t.addParam(`x`,`i32`),t.addParam(`scalar`,`i32`),t.addParam(`scalarLen`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s));t.addCode(n.call(c+`_load`,n.getLocal(`scalar`),n.getLocal(`scalarLen`),r),n.call(c+`_toMontgomery`,r,r),n.call(c+`_mul`,n.getLocal(`x`),r,n.getLocal(`r`)))}function re(){let t=e.addFunction(c+`_isOne`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder();t.addCode(n.ret(n.call(l+`_eq`,n.getLocal(`x`),n.i32_const(f))))}return e.exportFunction(l+`_copy`,c+`_copy`),e.exportFunction(l+`_zero`,c+`_zero`),e.exportFunction(l+`_isZero`,c+`_isZero`),e.exportFunction(l+`_eq`,c+`_eq`),re(),b(),x(),S(),T(),E(),D(),O(),k(),A(),C(),w(),j(),y(),te(),ne(),gt(e,c),_t(e,c+`_batchToMontgomery`,c+`_toMontgomery`,s,s),_t(e,c+`_batchFromMontgomery`,c+`_fromMontgomery`,s,s),_t(e,c+`_batchNeg`,c+`_neg`,s,s),vt(e,c+`_batchAdd`,c+`_add`,s,s),vt(e,c+`_batchSub`,c+`_sub`,s,s),vt(e,c+`_batchMul`,c+`_mul`,s,s),e.exportFunction(c+`_add`),e.exportFunction(c+`_sub`),e.exportFunction(c+`_neg`),e.exportFunction(c+`_isNegative`),e.exportFunction(c+`_isOne`),e.exportFunction(c+`_sign`),e.exportFunction(c+`_mReduct`),e.exportFunction(c+`_mul`),e.exportFunction(c+`_square`),e.exportFunction(c+`_squareOld`),e.exportFunction(c+`_fromMontgomery`),e.exportFunction(c+`_toMontgomery`),e.exportFunction(c+`_inverse`),e.exportFunction(c+`_one`),e.exportFunction(c+`_load`),e.exportFunction(c+`_timesScalar`),ht(e,c+`_exp`,s,c+`_mul`,c+`_square`,l+`_copy`,c+`_one`),e.exportFunction(c+`_exp`),e.exportFunction(c+`_batchInverse`),St(i)&&(ee(),B(),e.exportFunction(c+`_sqrt`),e.exportFunction(c+`_isSquare`)),e.exportFunction(c+`_batchToMontgomery`),e.exportFunction(c+`_batchFromMontgomery`),c};const Et=Tt,{bitLength:Dt}=Ye;var Ot=function(e,t,n,r,i){let a=BigInt(t),o=Math.floor((Dt(a-1n)-1)/64)+1,s=o*8,c=n||`f1`;if(e.modules[c])return c;e.modules[c]={n64:o};let l=i||`int`,u=Et(e,a,r,l),d=e.modules[u].pR2,f=e.modules[u].pq,p=e.modules[u].pePlusOne;function m(){let t=e.alloc(s),n=e.addFunction(c+`_mul`);n.addParam(`x`,`i32`),n.addParam(`y`,`i32`),n.addParam(`r`,`i32`);let r=n.getCodeBuilder();n.addCode(r.call(u+`_mul`,r.getLocal(`x`),r.getLocal(`y`),r.i32_const(t))),n.addCode(r.call(u+`_mul`,r.i32_const(t),r.i32_const(d),r.getLocal(`r`)))}function h(){let t=e.addFunction(c+`_square`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_mul`,n.getLocal(`x`),n.getLocal(`x`),n.getLocal(`r`)))}function g(){let t=e.addFunction(c+`_inverse`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(l+`_inverseMod`,n.getLocal(`x`),n.i32_const(f),n.getLocal(`r`)))}function _(){let t=e.addFunction(c+`_isNegative`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder();t.addCode(n.call(l+`_gte`,n.getLocal(`x`),n.i32_const(p)))}return m(),h(),g(),_(),e.exportFunction(u+`_add`,c+`_add`),e.exportFunction(u+`_sub`,c+`_sub`),e.exportFunction(u+`_neg`,c+`_neg`),e.exportFunction(c+`_mul`),e.exportFunction(c+`_square`),e.exportFunction(c+`_inverse`),e.exportFunction(c+`_isNegative`),e.exportFunction(u+`_copy`,c+`_copy`),e.exportFunction(u+`_zero`,c+`_zero`),e.exportFunction(u+`_one`,c+`_one`),e.exportFunction(u+`_isZero`,c+`_isZero`),e.exportFunction(u+`_eq`,c+`_eq`),c};const kt=He,At=Ue,jt=Be;var Mt=function(e,t,n,r){if(e.modules[n])return n;let i=e.modules[r].n64*8,a=e.modules[r].q;e.modules[n]={n64:e.modules[r].n64*2};function o(){let t=e.addFunction(n+`_add`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`y`),l=a.i32_add(a.getLocal(`y`),a.i32_const(i)),u=a.getLocal(`r`),d=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_add`,o,c,u),a.call(r+`_add`,s,l,d))}function s(){let t=e.addFunction(n+`_timesScalar`);t.addParam(`x`,`i32`),t.addParam(`scalar`,`i32`),t.addParam(`scalarLen`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_timesScalar`,o,a.getLocal(`scalar`),a.getLocal(`scalarLen`),c),a.call(r+`_timesScalar`,s,a.getLocal(`scalar`),a.getLocal(`scalarLen`),l))}function c(){let t=e.addFunction(n+`_sub`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`y`),l=a.i32_add(a.getLocal(`y`),a.i32_const(i)),u=a.getLocal(`r`),d=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_sub`,o,c,u),a.call(r+`_sub`,s,l,d))}function l(){let t=e.addFunction(n+`_neg`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_neg`,o,c),a.call(r+`_neg`,s,l))}function u(){let t=e.addFunction(n+`_conjugate`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_copy`,o,c),a.call(r+`_neg`,s,l))}function d(){let t=e.addFunction(n+`_isNegative`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.if(a.call(r+`_isZero`,s),a.ret(a.call(r+`_isNegative`,o))),a.ret(a.call(r+`_isNegative`,s)))}function f(){let a=e.addFunction(n+`_mul`);a.addParam(`x`,`i32`),a.addParam(`y`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.getLocal(`y`),u=o.i32_add(o.getLocal(`y`),o.i32_const(i)),d=o.getLocal(`r`),f=o.i32_add(o.getLocal(`r`),o.i32_const(i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i)),h=o.i32_const(e.alloc(i)),g=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_mul`,s,l,p),o.call(r+`_mul`,c,u,m),o.call(r+`_add`,s,c,h),o.call(r+`_add`,l,u,g),o.call(r+`_mul`,h,g,h),o.call(t,m,d),o.call(r+`_add`,p,d,d),o.call(r+`_add`,p,m,f),o.call(r+`_sub`,h,f,f))}function p(){let t=e.addFunction(n+`_mul1`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`y`),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_mul`,o,c,l),a.call(r+`_mul`,s,c,u))}function m(){let a=e.addFunction(n+`_square`);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.getLocal(`r`),u=o.i32_add(o.getLocal(`r`),o.i32_const(i)),d=o.i32_const(e.alloc(i)),f=o.i32_const(e.alloc(i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_mul`,s,c,d),o.call(r+`_add`,s,c,f),o.call(t,c,p),o.call(r+`_add`,s,p,p),o.call(t,d,m),o.call(r+`_add`,m,d,m),o.call(r+`_mul`,f,p,l),o.call(r+`_sub`,l,m,l),o.call(r+`_add`,d,d,u))}function h(){let t=e.addFunction(n+`_toMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_toMontgomery`,o,c),a.call(r+`_toMontgomery`,s,l))}function g(){let t=e.addFunction(n+`_fromMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_fromMontgomery`,o,c),a.call(r+`_fromMontgomery`,s,l))}function _(){let t=e.addFunction(n+`_copy`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_copy`,o,c),a.call(r+`_copy`,s,l))}function v(){let t=e.addFunction(n+`_zero`);t.addParam(`x`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.call(r+`_zero`,o),a.call(r+`_zero`,s))}function y(){let t=e.addFunction(n+`_one`);t.addParam(`x`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.call(r+`_one`,o),a.call(r+`_zero`,s))}function b(){let t=e.addFunction(n+`_eq`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`y`),l=a.i32_add(a.getLocal(`y`),a.i32_const(i));t.addCode(a.i32_and(a.call(r+`_eq`,o,c),a.call(r+`_eq`,s,l)))}function x(){let t=e.addFunction(n+`_isZero`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.i32_and(a.call(r+`_isZero`,o),a.call(r+`_isZero`,s)))}function S(){let a=e.addFunction(n+`_inverse`);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.getLocal(`r`),u=o.i32_add(o.getLocal(`r`),o.i32_const(i)),d=o.i32_const(e.alloc(i)),f=o.i32_const(e.alloc(i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_square`,s,d),o.call(r+`_square`,c,f),o.call(t,f,p),o.call(r+`_sub`,d,p,p),o.call(r+`_inverse`,p,m),o.call(r+`_mul`,s,m,l),o.call(r+`_mul`,c,m,u),o.call(r+`_neg`,u,u))}function C(){let t=e.addFunction(n+`_sign`);t.addParam(`x`,`i32`),t.addLocal(`s`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.setLocal(`s`,a.call(r+`_sign`,s)),a.if(a.getLocal(`s`),a.ret(a.getLocal(`s`))),a.ret(a.call(r+`_sign`,o)))}function w(){let t=e.addFunction(n+`_isOne`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.ret(a.i32_and(a.call(r+`_isOne`,o),a.call(r+`_isZero`,s))))}function T(){let t=e.addFunction(n+`_sqrt`);t.addParam(`a`,`i32`),t.addParam(`pr`,`i32`);let o=t.getCodeBuilder(),s=o.i32_const(e.alloc(jt.bigInt2BytesLE((BigInt(a||0)-3n)/4n,i))),c=o.i32_const(e.alloc(jt.bigInt2BytesLE((BigInt(a||0)-1n)/2n,i))),l=o.getLocal(`a`),u=o.i32_const(e.alloc(i*2)),d=o.i32_const(e.alloc(i*2)),f=o.i32_const(e.alloc(i*2)),p=e.alloc(i*2),m=o.i32_const(p),h=o.i32_const(p),g=o.i32_const(p+i),_=o.i32_const(e.alloc(i*2)),v=o.i32_const(e.alloc(i*2));t.addCode(o.call(n+`_one`,m),o.call(n+`_neg`,m,m),o.call(n+`_exp`,l,s,o.i32_const(i),u),o.call(n+`_square`,u,d),o.call(n+`_mul`,l,d,d),o.call(n+`_conjugate`,d,f),o.call(n+`_mul`,f,d,f),o.if(o.call(n+`_eq`,f,m),o.unreachable()),o.call(n+`_mul`,u,l,_),o.if(o.call(n+`_eq`,d,m),[...o.call(r+`_zero`,h),...o.call(r+`_one`,g),...o.call(n+`_mul`,m,_,o.getLocal(`pr`))],[...o.call(n+`_one`,v),...o.call(n+`_add`,v,d,v),...o.call(n+`_exp`,v,c,o.i32_const(i),v),...o.call(n+`_mul`,v,_,o.getLocal(`pr`))]))}function E(){let t=e.addFunction(n+`_isSquare`);t.addParam(`a`,`i32`),t.setReturnType(`i32`);let r=t.getCodeBuilder(),o=r.i32_const(e.alloc(jt.bigInt2BytesLE((BigInt(a||0)-3n)/4n,i))),s=r.getLocal(`a`),c=r.i32_const(e.alloc(i*2)),l=r.i32_const(e.alloc(i*2)),u=r.i32_const(e.alloc(i*2)),d=e.alloc(i*2),f=r.i32_const(d);t.addCode(r.call(n+`_one`,f),r.call(n+`_neg`,f,f),r.call(n+`_exp`,s,o,r.i32_const(i),c),r.call(n+`_square`,c,l),r.call(n+`_mul`,s,l,l),r.call(n+`_conjugate`,l,u),r.call(n+`_mul`,u,l,u),r.if(r.call(n+`_eq`,u,f),r.ret(r.i32_const(0))),r.ret(r.i32_const(1)))}return x(),w(),v(),y(),_(),f(),p(),m(),o(),c(),l(),u(),h(),g(),b(),S(),s(),C(),d(),e.exportFunction(n+`_isZero`),e.exportFunction(n+`_isOne`),e.exportFunction(n+`_zero`),e.exportFunction(n+`_one`),e.exportFunction(n+`_copy`),e.exportFunction(n+`_mul`),e.exportFunction(n+`_mul1`),e.exportFunction(n+`_square`),e.exportFunction(n+`_add`),e.exportFunction(n+`_sub`),e.exportFunction(n+`_neg`),e.exportFunction(n+`_sign`),e.exportFunction(n+`_conjugate`),e.exportFunction(n+`_fromMontgomery`),e.exportFunction(n+`_toMontgomery`),e.exportFunction(n+`_eq`),e.exportFunction(n+`_inverse`),At(e,n),kt(e,n+`_exp`,i*2,n+`_mul`,n+`_square`,n+`_copy`,n+`_one`),T(),E(),e.exportFunction(n+`_exp`),e.exportFunction(n+`_timesScalar`),e.exportFunction(n+`_batchInverse`),e.exportFunction(n+`_sqrt`),e.exportFunction(n+`_isSquare`),e.exportFunction(n+`_isNegative`),n};const Nt=He,Pt=Ue;var Ft=function(e,t,n,r){if(e.modules[n])return n;let i=e.modules[r].n64*8;e.modules[n]={n64:e.modules[r].n64*3};function a(){let t=e.addFunction(n+`_add`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`y`),u=a.i32_add(a.getLocal(`y`),a.i32_const(i)),d=a.i32_add(a.getLocal(`y`),a.i32_const(2*i)),f=a.getLocal(`r`),p=a.i32_add(a.getLocal(`r`),a.i32_const(i)),m=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_add`,o,l,f),a.call(r+`_add`,s,u,p),a.call(r+`_add`,c,d,m))}function o(){let t=e.addFunction(n+`_timesScalar`);t.addParam(`x`,`i32`),t.addParam(`scalar`,`i32`),t.addParam(`scalarLen`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_timesScalar`,o,a.getLocal(`scalar`),a.getLocal(`scalarLen`),l),a.call(r+`_timesScalar`,s,a.getLocal(`scalar`),a.getLocal(`scalarLen`),u),a.call(r+`_timesScalar`,c,a.getLocal(`scalar`),a.getLocal(`scalarLen`),d))}function s(){let t=e.addFunction(n+`_sub`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`y`),u=a.i32_add(a.getLocal(`y`),a.i32_const(i)),d=a.i32_add(a.getLocal(`y`),a.i32_const(2*i)),f=a.getLocal(`r`),p=a.i32_add(a.getLocal(`r`),a.i32_const(i)),m=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_sub`,o,l,f),a.call(r+`_sub`,s,u,p),a.call(r+`_sub`,c,d,m))}function c(){let t=e.addFunction(n+`_neg`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_neg`,o,l),a.call(r+`_neg`,s,u),a.call(r+`_neg`,c,d))}function l(){let t=e.addFunction(n+`_isNegative`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.if(a.call(r+`_isZero`,c),a.if(a.call(r+`_isZero`,s),a.ret(a.call(r+`_isNegative`,o)),a.ret(a.call(r+`_isNegative`,s)))),a.ret(a.call(r+`_isNegative`,c)))}function u(){let a=e.addFunction(n+`_mul`);a.addParam(`x`,`i32`),a.addParam(`y`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.i32_add(o.getLocal(`x`),o.i32_const(2*i)),u=o.getLocal(`y`),d=o.i32_add(o.getLocal(`y`),o.i32_const(i)),f=o.i32_add(o.getLocal(`y`),o.i32_const(2*i)),p=o.getLocal(`r`),m=o.i32_add(o.getLocal(`r`),o.i32_const(i)),h=o.i32_add(o.getLocal(`r`),o.i32_const(2*i)),g=o.i32_const(e.alloc(i)),_=o.i32_const(e.alloc(i)),v=o.i32_const(e.alloc(i)),y=o.i32_const(e.alloc(i)),b=o.i32_const(e.alloc(i)),x=o.i32_const(e.alloc(i)),S=o.i32_const(e.alloc(i)),C=o.i32_const(e.alloc(i)),w=o.i32_const(e.alloc(i)),T=o.i32_const(e.alloc(i)),E=o.i32_const(e.alloc(i)),D=o.i32_const(e.alloc(i)),O=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_mul`,s,u,g),o.call(r+`_mul`,c,d,_),o.call(r+`_mul`,l,f,v),o.call(r+`_add`,s,c,y),o.call(r+`_add`,u,d,b),o.call(r+`_add`,s,l,x),o.call(r+`_add`,u,f,S),o.call(r+`_add`,c,l,C),o.call(r+`_add`,d,f,w),o.call(r+`_add`,g,_,T),o.call(r+`_add`,g,v,E),o.call(r+`_add`,_,v,D),o.call(r+`_mul`,C,w,p),o.call(r+`_sub`,p,D,p),o.call(t,p,p),o.call(r+`_add`,g,p,p),o.call(r+`_mul`,y,b,m),o.call(r+`_sub`,m,T,m),o.call(t,v,O),o.call(r+`_add`,m,O,m),o.call(r+`_mul`,x,S,h),o.call(r+`_sub`,h,E,h),o.call(r+`_add`,h,_,h))}function d(){let a=e.addFunction(n+`_square`);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.i32_add(o.getLocal(`x`),o.i32_const(2*i)),u=o.getLocal(`r`),d=o.i32_add(o.getLocal(`r`),o.i32_const(i)),f=o.i32_add(o.getLocal(`r`),o.i32_const(2*i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i)),h=o.i32_const(e.alloc(i)),g=o.i32_const(e.alloc(i)),_=o.i32_const(e.alloc(i)),v=o.i32_const(e.alloc(i)),y=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_square`,s,p),o.call(r+`_mul`,s,c,m),o.call(r+`_add`,m,m,h),o.call(r+`_sub`,s,c,g),o.call(r+`_add`,g,l,g),o.call(r+`_square`,g,g),o.call(r+`_mul`,c,l,_),o.call(r+`_add`,_,_,v),o.call(r+`_square`,l,y),o.call(t,v,u),o.call(r+`_add`,p,u,u),o.call(t,y,d),o.call(r+`_add`,h,d,d),o.call(r+`_add`,p,y,f),o.call(r+`_sub`,v,f,f),o.call(r+`_add`,g,f,f),o.call(r+`_add`,h,f,f))}function f(){let t=e.addFunction(n+`_toMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_toMontgomery`,o,l),a.call(r+`_toMontgomery`,s,u),a.call(r+`_toMontgomery`,c,d))}function p(){let t=e.addFunction(n+`_fromMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_fromMontgomery`,o,l),a.call(r+`_fromMontgomery`,s,u),a.call(r+`_fromMontgomery`,c,d))}function m(){let t=e.addFunction(n+`_copy`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_copy`,o,l),a.call(r+`_copy`,s,u),a.call(r+`_copy`,c,d))}function h(){let t=e.addFunction(n+`_zero`);t.addParam(`x`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.call(r+`_zero`,o),a.call(r+`_zero`,s),a.call(r+`_zero`,c))}function g(){let t=e.addFunction(n+`_one`);t.addParam(`x`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.call(r+`_one`,o),a.call(r+`_zero`,s),a.call(r+`_zero`,c))}function _(){let t=e.addFunction(n+`_eq`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`y`),u=a.i32_add(a.getLocal(`y`),a.i32_const(i)),d=a.i32_add(a.getLocal(`y`),a.i32_const(2*i));t.addCode(a.i32_and(a.i32_and(a.call(r+`_eq`,o,l),a.call(r+`_eq`,s,u)),a.call(r+`_eq`,c,d)))}function v(){let t=e.addFunction(n+`_isZero`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.i32_and(a.i32_and(a.call(r+`_isZero`,o),a.call(r+`_isZero`,s)),a.call(r+`_isZero`,c)))}function y(){let a=e.addFunction(n+`_inverse`);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.i32_add(o.getLocal(`x`),o.i32_const(2*i)),u=o.getLocal(`r`),d=o.i32_add(o.getLocal(`r`),o.i32_const(i)),f=o.i32_add(o.getLocal(`r`),o.i32_const(2*i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i)),h=o.i32_const(e.alloc(i)),g=o.i32_const(e.alloc(i)),_=o.i32_const(e.alloc(i)),v=o.i32_const(e.alloc(i)),y=o.i32_const(e.alloc(i)),b=o.i32_const(e.alloc(i)),x=o.i32_const(e.alloc(i)),S=o.i32_const(e.alloc(i)),C=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_square`,s,p),o.call(r+`_square`,c,m),o.call(r+`_square`,l,h),o.call(r+`_mul`,s,c,g),o.call(r+`_mul`,s,l,_),o.call(r+`_mul`,c,l,v),o.call(t,v,y),o.call(r+`_sub`,p,y,y),o.call(t,h,b),o.call(r+`_sub`,b,g,b),o.call(r+`_sub`,m,_,x),o.call(r+`_mul`,l,b,S),o.call(r+`_mul`,c,x,C),o.call(r+`_add`,S,C,S),o.call(t,S,S),o.call(r+`_mul`,s,y,C),o.call(r+`_add`,C,S,S),o.call(r+`_inverse`,S,S),o.call(r+`_mul`,S,y,u),o.call(r+`_mul`,S,b,d),o.call(r+`_mul`,S,x,f))}function b(){let t=e.addFunction(n+`_sign`);t.addParam(`x`,`i32`),t.addLocal(`s`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.setLocal(`s`,a.call(r+`_sign`,c)),a.if(a.getLocal(`s`),a.ret(a.getLocal(`s`))),a.setLocal(`s`,a.call(r+`_sign`,s)),a.if(a.getLocal(`s`),a.ret(a.getLocal(`s`))),a.ret(a.call(r+`_sign`,o)))}function x(){let t=e.addFunction(n+`_isOne`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(i*2));t.addCode(a.ret(a.i32_and(a.i32_and(a.call(r+`_isOne`,o),a.call(r+`_isZero`,s)),a.call(r+`_isZero`,c))))}return v(),x(),h(),g(),m(),u(),d(),a(),s(),c(),b(),f(),p(),_(),y(),o(),l(),e.exportFunction(n+`_isZero`),e.exportFunction(n+`_isOne`),e.exportFunction(n+`_zero`),e.exportFunction(n+`_one`),e.exportFunction(n+`_copy`),e.exportFunction(n+`_mul`),e.exportFunction(n+`_square`),e.exportFunction(n+`_add`),e.exportFunction(n+`_sub`),e.exportFunction(n+`_neg`),e.exportFunction(n+`_sign`),e.exportFunction(n+`_fromMontgomery`),e.exportFunction(n+`_toMontgomery`),e.exportFunction(n+`_eq`),e.exportFunction(n+`_inverse`),Pt(e,n),Nt(e,n+`_exp`,i*3,n+`_mul`,n+`_square`,n+`_copy`,n+`_one`),e.exportFunction(n+`_exp`),e.exportFunction(n+`_timesScalar`),e.exportFunction(n+`_batchInverse`),e.exportFunction(n+`_isNegative`),n},It=function(e,t,n,r,i,a,o,s){let c=e.addFunction(t);c.addParam(`base`,`i32`),c.addParam(`scalar`,`i32`),c.addParam(`scalarLength`,`i32`),c.addParam(`r`,`i32`),c.addLocal(`old0`,`i32`),c.addLocal(`nbits`,`i32`),c.addLocal(`i`,`i32`),c.addLocal(`last`,`i32`),c.addLocal(`cur`,`i32`),c.addLocal(`carry`,`i32`),c.addLocal(`p`,`i32`);let l=c.getCodeBuilder(),u=l.i32_const(e.alloc(n));function d(e){return l.i32_and(l.i32_shr_u(l.i32_load(l.i32_add(l.getLocal(`scalar`),l.i32_and(l.i32_shr_u(e,l.i32_const(3)),l.i32_const(4294967292)))),l.i32_and(e,l.i32_const(31))),l.i32_const(1))}function f(e){return[...l.i32_store8(l.getLocal(`p`),l.i32_const(e)),...l.setLocal(`p`,l.i32_add(l.getLocal(`p`),l.i32_const(1)))]}c.addCode(l.if(l.i32_eqz(l.getLocal(`scalarLength`)),[...l.call(s,l.getLocal(`r`)),...l.ret([])]),l.setLocal(`nbits`,l.i32_shl(l.getLocal(`scalarLength`),l.i32_const(3))),l.setLocal(`old0`,l.i32_load(l.i32_const(0))),l.setLocal(`p`,l.getLocal(`old0`)),l.i32_store(l.i32_const(0),l.i32_and(l.i32_add(l.i32_add(l.getLocal(`old0`),l.i32_const(32)),l.getLocal(`nbits`)),l.i32_const(4294967288))),l.setLocal(`i`,l.i32_const(1)),l.setLocal(`last`,d(l.i32_const(0))),l.setLocal(`carry`,l.i32_const(0)),l.block(l.loop(l.br_if(1,l.i32_eq(l.getLocal(`i`),l.getLocal(`nbits`))),l.setLocal(`cur`,d(l.getLocal(`i`))),l.if(l.getLocal(`last`),l.if(l.getLocal(`cur`),l.if(l.getLocal(`carry`),[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(1)),...f(1)],[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(1)),...f(255)]),l.if(l.getLocal(`carry`),[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(1)),...f(255)],[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(0)),...f(1)])),l.if(l.getLocal(`cur`),l.if(l.getLocal(`carry`),[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(1)),...f(0)],[...l.setLocal(`last`,l.i32_const(1)),...l.setLocal(`carry`,l.i32_const(0)),...f(0)]),l.if(l.getLocal(`carry`),[...l.setLocal(`last`,l.i32_const(1)),...l.setLocal(`carry`,l.i32_const(0)),...f(0)],[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(0)),...f(0)]))),l.setLocal(`i`,l.i32_add(l.getLocal(`i`),l.i32_const(1))),l.br(0))),l.if(l.getLocal(`last`),l.if(l.getLocal(`carry`),[...f(255),...f(0),...f(1)],[...f(1)]),l.if(l.getLocal(`carry`),[...f(0),...f(1)])),l.setLocal(`p`,l.i32_sub(l.getLocal(`p`),l.i32_const(1))),l.call(o,l.getLocal(`base`),u),l.call(s,l.getLocal(`r`)),l.block(l.loop(l.call(i,l.getLocal(`r`),l.getLocal(`r`)),l.setLocal(`cur`,l.i32_load8_u(l.getLocal(`p`))),l.if(l.getLocal(`cur`),l.if(l.i32_eq(l.getLocal(`cur`),l.i32_const(1)),l.call(r,l.getLocal(`r`),u,l.getLocal(`r`)),l.call(a,l.getLocal(`r`),u,l.getLocal(`r`)))),l.br_if(1,l.i32_eq(l.getLocal(`old0`),l.getLocal(`p`))),l.setLocal(`p`,l.i32_sub(l.getLocal(`p`),l.i32_const(1))),l.br(0))),l.i32_store(l.i32_const(0),l.getLocal(`old0`)))},Lt=function(e,t,n,r,i){let a=e.modules[t].n64*8;function o(){let t=e.addFunction(n+`_getChunk`);t.addParam(`pScalar`,`i32`),t.addParam(`scalarSize`,`i32`),t.addParam(`startBit`,`i32`),t.addParam(`chunkSize`,`i32`),t.addLocal(`bitsToEnd`,`i32`),t.addLocal(`mask`,`i32`),t.setReturnType(`i32`);let r=t.getCodeBuilder();t.addCode(r.setLocal(`bitsToEnd`,r.i32_sub(r.i32_mul(r.getLocal(`scalarSize`),r.i32_const(8)),r.getLocal(`startBit`))),r.if(r.i32_gt_s(r.getLocal(`chunkSize`),r.getLocal(`bitsToEnd`)),r.setLocal(`mask`,r.i32_sub(r.i32_shl(r.i32_const(1),r.getLocal(`bitsToEnd`)),r.i32_const(1))),r.setLocal(`mask`,r.i32_sub(r.i32_shl(r.i32_const(1),r.getLocal(`chunkSize`)),r.i32_const(1)))),r.i32_and(r.i32_shr_u(r.i32_load(r.i32_add(r.getLocal(`pScalar`),r.i32_shr_u(r.getLocal(`startBit`),r.i32_const(3))),0,0),r.i32_and(r.getLocal(`startBit`),r.i32_const(7))),r.getLocal(`mask`)))}function s(){let o=e.addFunction(n+`_chunk`);o.addParam(`pBases`,`i32`),o.addParam(`pScalars`,`i32`),o.addParam(`scalarSize`,`i32`),o.addParam(`n`,`i32`),o.addParam(`startBit`,`i32`),o.addParam(`chunkSize`,`i32`),o.addParam(`pr`,`i32`),o.addLocal(`nChunks`,`i32`),o.addLocal(`itScalar`,`i32`),o.addLocal(`endScalar`,`i32`),o.addLocal(`itBase`,`i32`),o.addLocal(`i`,`i32`),o.addLocal(`j`,`i32`),o.addLocal(`nTable`,`i32`),o.addLocal(`pTable`,`i32`),o.addLocal(`idx`,`i32`),o.addLocal(`pIdxTable`,`i32`);let s=o.getCodeBuilder();o.addCode(s.if(s.i32_eqz(s.getLocal(`n`)),[...s.call(t+`_zero`,s.getLocal(`pr`)),...s.ret([])]),s.setLocal(`nTable`,s.i32_shl(s.i32_const(1),s.getLocal(`chunkSize`))),s.setLocal(`pTable`,s.i32_load(s.i32_const(0))),s.i32_store(s.i32_const(0),s.i32_add(s.getLocal(`pTable`),s.i32_mul(s.getLocal(`nTable`),s.i32_const(a)))),s.setLocal(`j`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`j`),s.getLocal(`nTable`))),s.call(t+`_zero`,s.i32_add(s.getLocal(`pTable`),s.i32_mul(s.getLocal(`j`),s.i32_const(a)))),s.setLocal(`j`,s.i32_add(s.getLocal(`j`),s.i32_const(1))),s.br(0))),s.setLocal(`itBase`,s.getLocal(`pBases`)),s.setLocal(`itScalar`,s.getLocal(`pScalars`)),s.setLocal(`endScalar`,s.i32_add(s.getLocal(`pScalars`),s.i32_mul(s.getLocal(`n`),s.getLocal(`scalarSize`)))),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`itScalar`),s.getLocal(`endScalar`))),s.setLocal(`idx`,s.call(n+`_getChunk`,s.getLocal(`itScalar`),s.getLocal(`scalarSize`),s.getLocal(`startBit`),s.getLocal(`chunkSize`))),s.if(s.getLocal(`idx`),[...s.setLocal(`pIdxTable`,s.i32_add(s.getLocal(`pTable`),s.i32_mul(s.i32_sub(s.getLocal(`idx`),s.i32_const(1)),s.i32_const(a)))),...s.call(r,s.getLocal(`pIdxTable`),s.getLocal(`itBase`),s.getLocal(`pIdxTable`))]),s.setLocal(`itScalar`,s.i32_add(s.getLocal(`itScalar`),s.getLocal(`scalarSize`))),s.setLocal(`itBase`,s.i32_add(s.getLocal(`itBase`),s.i32_const(i))),s.br(0))),s.call(n+`_reduceTable`,s.getLocal(`pTable`),s.getLocal(`chunkSize`)),s.call(t+`_copy`,s.getLocal(`pTable`),s.getLocal(`pr`)),s.i32_store(s.i32_const(0),s.getLocal(`pTable`)))}function c(){let r=e.addFunction(n);r.addParam(`pBases`,`i32`),r.addParam(`pScalars`,`i32`),r.addParam(`scalarSize`,`i32`),r.addParam(`n`,`i32`),r.addParam(`pr`,`i32`),r.addLocal(`chunkSize`,`i32`),r.addLocal(`nChunks`,`i32`),r.addLocal(`itScalar`,`i32`),r.addLocal(`endScalar`,`i32`),r.addLocal(`itBase`,`i32`),r.addLocal(`itBit`,`i32`),r.addLocal(`i`,`i32`),r.addLocal(`j`,`i32`),r.addLocal(`nTable`,`i32`),r.addLocal(`pTable`,`i32`),r.addLocal(`idx`,`i32`),r.addLocal(`pIdxTable`,`i32`);let i=r.getCodeBuilder(),o=i.i32_const(e.alloc(a)),s=e.alloc([17,17,17,17,17,17,17,17,17,17,16,16,15,14,13,13,12,11,10,9,8,7,7,6,5,4,3,2,1,1,1,1]);r.addCode(i.call(t+`_zero`,i.getLocal(`pr`)),i.if(i.i32_eqz(i.getLocal(`n`)),i.ret([])),i.setLocal(`chunkSize`,i.i32_load8_u(i.i32_clz(i.getLocal(`n`)),s)),i.setLocal(`nChunks`,i.i32_add(i.i32_div_u(i.i32_sub(i.i32_shl(i.getLocal(`scalarSize`),i.i32_const(3)),i.i32_const(1)),i.getLocal(`chunkSize`)),i.i32_const(1))),i.setLocal(`itBit`,i.i32_mul(i.i32_sub(i.getLocal(`nChunks`),i.i32_const(1)),i.getLocal(`chunkSize`))),i.block(i.loop(i.br_if(1,i.i32_lt_s(i.getLocal(`itBit`),i.i32_const(0))),i.if(i.i32_eqz(i.call(t+`_isZero`,i.getLocal(`pr`))),[...i.setLocal(`j`,i.i32_const(0)),...i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`j`),i.getLocal(`chunkSize`))),i.call(t+`_double`,i.getLocal(`pr`),i.getLocal(`pr`)),i.setLocal(`j`,i.i32_add(i.getLocal(`j`),i.i32_const(1))),i.br(0)))]),i.call(n+`_chunk`,i.getLocal(`pBases`),i.getLocal(`pScalars`),i.getLocal(`scalarSize`),i.getLocal(`n`),i.getLocal(`itBit`),i.getLocal(`chunkSize`),o),i.call(t+`_add`,i.getLocal(`pr`),o,i.getLocal(`pr`)),i.setLocal(`itBit`,i.i32_sub(i.getLocal(`itBit`),i.getLocal(`chunkSize`))),i.br(0))))}function l(){let r=e.addFunction(n+`_reduceTable`);r.addParam(`pTable`,`i32`),r.addParam(`p`,`i32`),r.addLocal(`half`,`i32`),r.addLocal(`it1`,`i32`),r.addLocal(`it2`,`i32`),r.addLocal(`pAcc`,`i32`);let i=r.getCodeBuilder();r.addCode(i.if(i.i32_eq(i.getLocal(`p`),i.i32_const(1)),i.ret([])),i.setLocal(`half`,i.i32_shl(i.i32_const(1),i.i32_sub(i.getLocal(`p`),i.i32_const(1)))),i.setLocal(`it1`,i.getLocal(`pTable`)),i.setLocal(`it2`,i.i32_add(i.getLocal(`pTable`),i.i32_mul(i.getLocal(`half`),i.i32_const(a)))),i.setLocal(`pAcc`,i.i32_sub(i.getLocal(`it2`),i.i32_const(a))),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`it1`),i.getLocal(`pAcc`))),i.call(t+`_add`,i.getLocal(`it1`),i.getLocal(`it2`),i.getLocal(`it1`)),i.call(t+`_add`,i.getLocal(`pAcc`),i.getLocal(`it2`),i.getLocal(`pAcc`)),i.setLocal(`it1`,i.i32_add(i.getLocal(`it1`),i.i32_const(a))),i.setLocal(`it2`,i.i32_add(i.getLocal(`it2`),i.i32_const(a))),i.br(0))),i.call(n+`_reduceTable`,i.getLocal(`pTable`),i.i32_sub(i.getLocal(`p`),i.i32_const(1))),i.setLocal(`p`,i.i32_sub(i.getLocal(`p`),i.i32_const(1))),i.block(i.loop(i.br_if(1,i.i32_eqz(i.getLocal(`p`))),i.call(t+`_double`,i.getLocal(`pAcc`),i.getLocal(`pAcc`)),i.setLocal(`p`,i.i32_sub(i.getLocal(`p`),i.i32_const(1))),i.br(0))),i.call(t+`_add`,i.getLocal(`pTable`),i.getLocal(`pAcc`),i.getLocal(`pTable`)))}o(),l(),s(),c(),e.exportFunction(n),e.exportFunction(n+`_chunk`)};const Rt=It,zt=Ge,Bt=Lt;var Vt=function(e,t,n,r){let i=e.modules[n].n64,a=i*8;if(e.modules[t])return t;e.modules[t]={n64:i*3};function o(){let r=e.addFunction(t+`_isZero`);r.addParam(`p1`,`i32`),r.setReturnType(`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_isZero`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))))}function s(){let r=e.addFunction(t+`_isZeroAffine`);r.addParam(`p1`,`i32`),r.setReturnType(`i32`);let i=r.getCodeBuilder();r.addCode(i.i32_and(i.call(n+`_isZero`,i.getLocal(`p1`)),i.call(n+`_isZero`,i.i32_add(i.getLocal(`p1`),i.i32_const(a)))))}function c(){let n=e.addFunction(t+`_copy`);n.addParam(`ps`,`i32`),n.addParam(`pd`,`i32`);let r=n.getCodeBuilder();for(let e=0;e<i*3;e++)n.addCode(r.i64_store(r.getLocal(`pd`),e*8,r.i64_load(r.getLocal(`ps`),e*8)))}function l(){let n=e.addFunction(t+`_copyAffine`);n.addParam(`ps`,`i32`),n.addParam(`pd`,`i32`);let r=n.getCodeBuilder();for(let e=0;e<i*2;e++)n.addCode(r.i64_store(r.getLocal(`pd`),e*8,r.i64_load(r.getLocal(`ps`),e*8)))}function u(){let r=e.addFunction(t+`_zero`);r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_zero`,i.getLocal(`pr`))),r.addCode(i.call(n+`_one`,i.i32_add(i.getLocal(`pr`),i.i32_const(a)))),r.addCode(i.call(n+`_zero`,i.i32_add(i.getLocal(`pr`),i.i32_const(a*2))))}function d(){let r=e.addFunction(t+`_zeroAffine`);r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_zero`,i.getLocal(`pr`))),r.addCode(i.call(n+`_zero`,i.i32_add(i.getLocal(`pr`),i.i32_const(a))))}function f(){let r=e.addFunction(t+`_eq`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.setReturnType(`i32`),r.addLocal(`z1`,`i32`),r.addLocal(`z2`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`z1`),l=i.getLocal(`p2`),u=i.i32_add(i.getLocal(`p2`),i.i32_const(a));r.addCode(i.setLocal(`z2`,i.i32_add(i.getLocal(`p2`),i.i32_const(a*2))));let d=i.getLocal(`z2`),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),i.ret(i.call(t+`_isZero`,i.getLocal(`p2`)))),i.if(i.call(t+`_isZero`,i.getLocal(`p2`)),i.ret(i.i32_const(0))),i.if(i.call(n+`_isOne`,c),i.ret(i.call(t+`_eqMixed`,i.getLocal(`p2`),i.getLocal(`p1`)))),i.if(i.call(n+`_isOne`,d),i.ret(i.call(t+`_eqMixed`,i.getLocal(`p1`),i.getLocal(`p2`)))),i.call(n+`_square`,c,f),i.call(n+`_square`,d,p),i.call(n+`_mul`,o,p,m),i.call(n+`_mul`,l,f,h),i.call(n+`_mul`,c,f,g),i.call(n+`_mul`,d,p,_),i.call(n+`_mul`,s,_,v),i.call(n+`_mul`,u,g,y),i.if(i.call(n+`_eq`,m,h),i.if(i.call(n+`_eq`,v,y),i.ret(i.i32_const(1)))),i.ret(i.i32_const(0)))}function p(){let r=e.addFunction(t+`_eqMixed`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.setReturnType(`i32`),r.addLocal(`z1`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`z1`),l=i.getLocal(`p2`),u=i.i32_add(i.getLocal(`p2`),i.i32_const(a)),d=i.i32_const(e.alloc(a)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),i.ret(i.call(t+`_isZeroAffine`,i.getLocal(`p2`)))),i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p2`)),i.ret(i.i32_const(0))),i.if(i.call(n+`_isOne`,c),i.ret(i.call(t+`_eqAffine`,i.getLocal(`p1`),i.getLocal(`p2`)))),i.call(n+`_square`,c,d),i.call(n+`_mul`,l,d,f),i.call(n+`_mul`,c,d,p),i.call(n+`_mul`,u,p,m),i.if(i.call(n+`_eq`,o,f),i.if(i.call(n+`_eq`,s,m),i.ret(i.i32_const(1)))),i.ret(i.i32_const(0)))}function m(){let r=e.addFunction(t+`_double`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.i32_add(i.getLocal(`p1`),i.i32_const(a*2)),l=i.getLocal(`pr`),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),d=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),[...i.call(t+`_copy`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])]),i.if(i.call(n+`_isOne`,c),[...i.ret(i.call(t+`_doubleAffine`,i.getLocal(`p1`),i.getLocal(`pr`))),...i.ret([])]),i.call(n+`_square`,o,f),i.call(n+`_square`,s,p),i.call(n+`_square`,p,m),i.call(n+`_add`,o,p,h),i.call(n+`_square`,h,h),i.call(n+`_sub`,h,f,h),i.call(n+`_sub`,h,m,h),i.call(n+`_add`,h,h,h),i.call(n+`_add`,f,f,g),i.call(n+`_add`,g,f,g),i.call(n+`_square`,g,_),i.call(n+`_mul`,s,c,v),i.call(n+`_add`,h,h,l),i.call(n+`_sub`,_,l,l),i.call(n+`_add`,m,m,y),i.call(n+`_add`,y,y,y),i.call(n+`_add`,y,y,y),i.call(n+`_sub`,h,l,u),i.call(n+`_mul`,u,g,u),i.call(n+`_sub`,u,y,u),i.call(n+`_add`,v,v,d))}function h(){let r=e.addFunction(t+`_doubleAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.getLocal(`pr`),l=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),d=i.i32_const(e.alloc(a)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p1`)),[...i.call(t+`_toJacobian`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])]),i.call(n+`_square`,o,d),i.call(n+`_square`,s,f),i.call(n+`_square`,f,p),i.call(n+`_add`,o,f,m),i.call(n+`_square`,m,m),i.call(n+`_sub`,m,d,m),i.call(n+`_sub`,m,p,m),i.call(n+`_add`,m,m,m),i.call(n+`_add`,d,d,h),i.call(n+`_add`,h,d,h),i.call(n+`_add`,s,s,u),i.call(n+`_square`,h,c),i.call(n+`_sub`,c,m,c),i.call(n+`_sub`,c,m,c),i.call(n+`_add`,p,p,g),i.call(n+`_add`,g,g,g),i.call(n+`_add`,g,g,g),i.call(n+`_sub`,m,c,l),i.call(n+`_mul`,l,h,l),i.call(n+`_sub`,l,g,l))}function g(){let r=e.addFunction(t+`_eqAffine`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.setReturnType(`i32`),r.addLocal(`z1`,`i32`);let i=r.getCodeBuilder();r.addCode(i.ret(i.i32_and(i.call(n+`_eq`,i.getLocal(`p1`),i.getLocal(`p2`)),i.call(n+`_eq`,i.i32_add(i.getLocal(`p1`),i.i32_const(a)),i.i32_add(i.getLocal(`p2`),i.i32_const(a))))))}function _(){let r=e.addFunction(t+`_toMontgomery`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_toMontgomery`,i.getLocal(`p1`),i.getLocal(`pr`)));for(let e=1;e<3;e++)r.addCode(i.call(n+`_toMontgomery`,i.i32_add(i.getLocal(`p1`),i.i32_const(e*a)),i.i32_add(i.getLocal(`pr`),i.i32_const(e*a))))}function v(){let r=e.addFunction(t+`_toMontgomeryAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_toMontgomery`,i.getLocal(`p1`),i.getLocal(`pr`)));for(let e=1;e<2;e++)r.addCode(i.call(n+`_toMontgomery`,i.i32_add(i.getLocal(`p1`),i.i32_const(e*a)),i.i32_add(i.getLocal(`pr`),i.i32_const(e*a))))}function y(){let r=e.addFunction(t+`_fromMontgomery`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_fromMontgomery`,i.getLocal(`p1`),i.getLocal(`pr`)));for(let e=1;e<3;e++)r.addCode(i.call(n+`_fromMontgomery`,i.i32_add(i.getLocal(`p1`),i.i32_const(e*a)),i.i32_add(i.getLocal(`pr`),i.i32_const(e*a))))}function b(){let r=e.addFunction(t+`_fromMontgomeryAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_fromMontgomery`,i.getLocal(`p1`),i.getLocal(`pr`)));for(let e=1;e<2;e++)r.addCode(i.call(n+`_fromMontgomery`,i.i32_add(i.getLocal(`p1`),i.i32_const(e*a)),i.i32_add(i.getLocal(`pr`),i.i32_const(e*a))))}function x(){let r=e.addFunction(t+`_add`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.addParam(`pr`,`i32`),r.addLocal(`z1`,`i32`),r.addLocal(`z2`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`z1`),l=i.getLocal(`p2`),u=i.i32_add(i.getLocal(`p2`),i.i32_const(a));r.addCode(i.setLocal(`z2`,i.i32_add(i.getLocal(`p2`),i.i32_const(a*2))));let d=i.getLocal(`z2`),f=i.getLocal(`pr`),p=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),m=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a)),b=i.i32_const(e.alloc(a)),x=i.i32_const(e.alloc(a)),S=i.i32_const(e.alloc(a)),C=i.i32_const(e.alloc(a)),w=i.i32_const(e.alloc(a)),T=i.i32_const(e.alloc(a)),E=i.i32_const(e.alloc(a)),D=i.i32_const(e.alloc(a)),O=i.i32_const(e.alloc(a)),k=i.i32_const(e.alloc(a)),A=i.i32_const(e.alloc(a)),j=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),[...i.call(t+`_copy`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.ret([])]),i.if(i.call(t+`_isZero`,i.getLocal(`p2`)),[...i.call(t+`_copy`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])]),i.if(i.call(n+`_isOne`,c),[...i.call(t+`_addMixed`,l,o,f),...i.ret([])]),i.if(i.call(n+`_isOne`,d),[...i.call(t+`_addMixed`,o,l,f),...i.ret([])]),i.call(n+`_square`,c,h),i.call(n+`_square`,d,g),i.call(n+`_mul`,o,g,_),i.call(n+`_mul`,l,h,v),i.call(n+`_mul`,c,h,y),i.call(n+`_mul`,d,g,b),i.call(n+`_mul`,s,b,x),i.call(n+`_mul`,u,y,S),i.if(i.call(n+`_eq`,_,v),i.if(i.call(n+`_eq`,x,S),[...i.call(t+`_double`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])])),i.call(n+`_sub`,v,_,C),i.call(n+`_sub`,S,x,w),i.call(n+`_add`,C,C,T),i.call(n+`_square`,T,T),i.call(n+`_mul`,C,T,E),i.call(n+`_add`,w,w,D),i.call(n+`_mul`,_,T,k),i.call(n+`_square`,D,O),i.call(n+`_add`,k,k,A),i.call(n+`_sub`,O,E,f),i.call(n+`_sub`,f,A,f),i.call(n+`_mul`,x,E,j),i.call(n+`_add`,j,j,j),i.call(n+`_sub`,k,f,p),i.call(n+`_mul`,p,D,p),i.call(n+`_sub`,p,j,p),i.call(n+`_add`,c,d,m),i.call(n+`_square`,m,m),i.call(n+`_sub`,m,h,m),i.call(n+`_sub`,m,g,m),i.call(n+`_mul`,m,C,m))}function S(){let r=e.addFunction(t+`_addMixed`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.addParam(`pr`,`i32`),r.addLocal(`z1`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`z1`),l=i.getLocal(`p2`),u=i.i32_add(i.getLocal(`p2`),i.i32_const(a)),d=i.getLocal(`pr`),f=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),p=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a)),b=i.i32_const(e.alloc(a)),x=i.i32_const(e.alloc(a)),S=i.i32_const(e.alloc(a)),C=i.i32_const(e.alloc(a)),w=i.i32_const(e.alloc(a)),T=i.i32_const(e.alloc(a)),E=i.i32_const(e.alloc(a)),D=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),[...i.call(t+`_copyAffine`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.call(n+`_one`,i.i32_add(i.getLocal(`pr`),i.i32_const(a*2))),...i.ret([])]),i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p2`)),[...i.call(t+`_copy`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])]),i.if(i.call(n+`_isOne`,c),[...i.call(t+`_addAffine`,o,l,d),...i.ret([])]),i.call(n+`_square`,c,m),i.call(n+`_mul`,l,m,h),i.call(n+`_mul`,c,m,g),i.call(n+`_mul`,u,g,_),i.if(i.call(n+`_eq`,o,h),i.if(i.call(n+`_eq`,s,_),[...i.call(t+`_doubleAffine`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.ret([])])),i.call(n+`_sub`,h,o,v),i.call(n+`_sub`,_,s,b),i.call(n+`_square`,v,y),i.call(n+`_add`,y,y,x),i.call(n+`_add`,x,x,x),i.call(n+`_mul`,v,x,S),i.call(n+`_add`,b,b,C),i.call(n+`_mul`,o,x,T),i.call(n+`_square`,C,w),i.call(n+`_add`,T,T,E),i.call(n+`_sub`,w,S,d),i.call(n+`_sub`,d,E,d),i.call(n+`_mul`,s,S,D),i.call(n+`_add`,D,D,D),i.call(n+`_sub`,T,d,f),i.call(n+`_mul`,f,C,f),i.call(n+`_sub`,f,D,f),i.call(n+`_add`,c,v,p),i.call(n+`_square`,p,p),i.call(n+`_sub`,p,m,p),i.call(n+`_sub`,p,y,p))}function C(){let r=e.addFunction(t+`_addAffine`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.addParam(`pr`,`i32`),r.addLocal(`z1`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`p2`),l=i.i32_add(i.getLocal(`p2`),i.i32_const(a)),u=i.getLocal(`pr`),d=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),f=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a)),b=i.i32_const(e.alloc(a)),x=i.i32_const(e.alloc(a)),S=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p1`)),[...i.call(t+`_copyAffine`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.call(n+`_one`,i.i32_add(i.getLocal(`pr`),i.i32_const(a*2))),...i.ret([])]),i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p2`)),[...i.call(t+`_copyAffine`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.call(n+`_one`,i.i32_add(i.getLocal(`pr`),i.i32_const(a*2))),...i.ret([])]),i.if(i.call(n+`_eq`,o,c),i.if(i.call(n+`_eq`,s,l),[...i.call(t+`_doubleAffine`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.ret([])])),i.call(n+`_sub`,c,o,p),i.call(n+`_sub`,l,s,h),i.call(n+`_square`,p,m),i.call(n+`_add`,m,m,g),i.call(n+`_add`,g,g,g),i.call(n+`_mul`,p,g,_),i.call(n+`_add`,h,h,v),i.call(n+`_mul`,o,g,b),i.call(n+`_square`,v,y),i.call(n+`_add`,b,b,x),i.call(n+`_sub`,y,_,u),i.call(n+`_sub`,u,x,u),i.call(n+`_mul`,s,_,S),i.call(n+`_add`,S,S,S),i.call(n+`_sub`,b,u,d),i.call(n+`_mul`,d,v,d),i.call(n+`_sub`,d,S,d),i.call(n+`_add`,p,p,f))}function w(){let r=e.addFunction(t+`_neg`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.i32_add(i.getLocal(`p1`),i.i32_const(a*2)),l=i.getLocal(`pr`),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),d=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2));r.addCode(i.call(n+`_copy`,o,l),i.call(n+`_neg`,s,u),i.call(n+`_copy`,c,d))}function T(){let r=e.addFunction(t+`_negAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.getLocal(`pr`),l=i.i32_add(i.getLocal(`pr`),i.i32_const(a));r.addCode(i.call(n+`_copy`,o,c),i.call(n+`_neg`,s,l))}function E(){let n=e.addFunction(t+`_sub`);n.addParam(`p1`,`i32`),n.addParam(`p2`,`i32`),n.addParam(`pr`,`i32`);let r=n.getCodeBuilder(),i=r.i32_const(e.alloc(a*3));n.addCode(r.call(t+`_neg`,r.getLocal(`p2`),i),r.call(t+`_add`,r.getLocal(`p1`),i,r.getLocal(`pr`)))}function D(){let n=e.addFunction(t+`_subMixed`);n.addParam(`p1`,`i32`),n.addParam(`p2`,`i32`),n.addParam(`pr`,`i32`);let r=n.getCodeBuilder(),i=r.i32_const(e.alloc(a*3));n.addCode(r.call(t+`_negAffine`,r.getLocal(`p2`),i),r.call(t+`_addMixed`,r.getLocal(`p1`),i,r.getLocal(`pr`)))}function O(){let n=e.addFunction(t+`_subAffine`);n.addParam(`p1`,`i32`),n.addParam(`p2`,`i32`),n.addParam(`pr`,`i32`);let r=n.getCodeBuilder(),i=r.i32_const(e.alloc(a*3));n.addCode(r.call(t+`_negAffine`,r.getLocal(`p2`),i),r.call(t+`_addAffine`,r.getLocal(`p1`),i,r.getLocal(`pr`)))}function k(){let r=e.addFunction(t+`_normalize`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.i32_add(i.getLocal(`p1`),i.i32_const(a*2)),l=i.getLocal(`pr`),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),d=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),i.call(t+`_zero`,i.getLocal(`pr`)),[...i.call(n+`_inverse`,c,f),...i.call(n+`_square`,f,p),...i.call(n+`_mul`,f,p,m),...i.call(n+`_mul`,o,p,l),...i.call(n+`_mul`,s,m,u),...i.call(n+`_one`,d)]))}function A(){let r=e.addFunction(t+`_toAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.i32_add(i.getLocal(`p1`),i.i32_const(a*2)),l=i.getLocal(`pr`),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),d=i.i32_const(e.alloc(a)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),[...i.call(n+`_zero`,l),...i.call(n+`_zero`,u)],[...i.call(n+`_inverse`,c,d),...i.call(n+`_square`,d,f),...i.call(n+`_mul`,d,f,p),...i.call(n+`_mul`,o,f,l),...i.call(n+`_mul`,s,p,u)]))}function j(){let r=e.addFunction(t+`_toJacobian`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.getLocal(`pr`),l=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2));r.addCode(i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p1`)),i.call(t+`_zero`,i.getLocal(`pr`)),[...i.call(n+`_one`,u),...i.call(n+`_copy`,s,l),...i.call(n+`_copy`,o,c)]))}function M(){let r=e.addFunction(t+`_batchToAffine`);r.addParam(`pIn`,`i32`),r.addParam(`n`,`i32`),r.addParam(`pOut`,`i32`),r.addLocal(`pAux`,`i32`),r.addLocal(`itIn`,`i32`),r.addLocal(`itAux`,`i32`),r.addLocal(`itOut`,`i32`),r.addLocal(`i`,`i32`);let i=r.getCodeBuilder(),o=i.i32_const(e.alloc(a));r.addCode(i.setLocal(`pAux`,i.i32_load(i.i32_const(0))),i.i32_store(i.i32_const(0),i.i32_add(i.getLocal(`pAux`),i.i32_mul(i.getLocal(`n`),i.i32_const(a)))),i.call(n+`_batchInverse`,i.i32_add(i.getLocal(`pIn`),i.i32_const(a*2)),i.i32_const(a*3),i.getLocal(`n`),i.getLocal(`pAux`),i.i32_const(a)),i.setLocal(`itIn`,i.getLocal(`pIn`)),i.setLocal(`itAux`,i.getLocal(`pAux`)),i.setLocal(`itOut`,i.getLocal(`pOut`)),i.setLocal(`i`,i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`i`),i.getLocal(`n`))),i.if(i.call(n+`_isZero`,i.getLocal(`itAux`)),[...i.call(n+`_zero`,i.getLocal(`itOut`)),...i.call(n+`_zero`,i.i32_add(i.getLocal(`itOut`),i.i32_const(a)))],[...i.call(n+`_mul`,i.getLocal(`itAux`),i.i32_add(i.getLocal(`itIn`),i.i32_const(a)),o),...i.call(n+`_square`,i.getLocal(`itAux`),i.getLocal(`itAux`)),...i.call(n+`_mul`,i.getLocal(`itAux`),i.getLocal(`itIn`),i.getLocal(`itOut`)),...i.call(n+`_mul`,i.getLocal(`itAux`),o,i.i32_add(i.getLocal(`itOut`),i.i32_const(a)))]),i.setLocal(`itIn`,i.i32_add(i.getLocal(`itIn`),i.i32_const(a*3))),i.setLocal(`itOut`,i.i32_add(i.getLocal(`itOut`),i.i32_const(a*2))),i.setLocal(`itAux`,i.i32_add(i.getLocal(`itAux`),i.i32_const(a))),i.setLocal(`i`,i.i32_add(i.getLocal(`i`),i.i32_const(1))),i.br(0))),i.i32_store(i.i32_const(0),i.getLocal(`pAux`)))}function N(){let n=e.addFunction(t+`__reverseBytes`);n.addParam(`pIn`,`i32`),n.addParam(`n`,`i32`),n.addParam(`pOut`,`i32`),n.addLocal(`itOut`,`i32`),n.addLocal(`itIn`,`i32`);let r=n.getCodeBuilder();n.addCode(r.setLocal(`itOut`,r.i32_sub(r.i32_add(r.getLocal(`pOut`),r.getLocal(`n`)),r.i32_const(1))),r.setLocal(`itIn`,r.getLocal(`pIn`)),r.block(r.loop(r.br_if(1,r.i32_lt_s(r.getLocal(`itOut`),r.getLocal(`pOut`))),r.i32_store8(r.getLocal(`itOut`),r.i32_load8_u(r.getLocal(`itIn`))),r.setLocal(`itOut`,r.i32_sub(r.getLocal(`itOut`),r.i32_const(1))),r.setLocal(`itIn`,r.i32_add(r.getLocal(`itIn`),r.i32_const(1))),r.br(0))))}function P(){let r=e.addFunction(t+`_LEMtoC`);r.addParam(`pIn`,`i32`),r.addParam(`pOut`,`i32`);let i=r.getCodeBuilder(),o=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZeroAffine`,i.getLocal(`pIn`)),[...i.call(n+`_zero`,i.getLocal(`pOut`)),...i.i32_store8(i.getLocal(`pOut`),i.i32_const(64)),...i.ret([])]),i.call(n+`_fromMontgomery`,i.getLocal(`pIn`),o),i.call(t+`__reverseBytes`,o,i.i32_const(a),i.getLocal(`pOut`)),i.if(i.i32_eq(i.call(n+`_sign`,i.i32_add(i.getLocal(`pIn`),i.i32_const(a))),i.i32_const(-1)),i.i32_store8(i.getLocal(`pOut`),i.i32_or(i.i32_load8_u(i.getLocal(`pOut`)),i.i32_const(128)))))}function F(){let n=e.addFunction(t+`_LEMtoU`);n.addParam(`pIn`,`i32`),n.addParam(`pOut`,`i32`);let r=n.getCodeBuilder(),i=e.alloc(a*2),o=r.i32_const(i),s=r.i32_const(i),c=r.i32_const(i+a);n.addCode(r.if(r.call(t+`_isZeroAffine`,r.getLocal(`pIn`)),[...r.call(t+`_zeroAffine`,r.getLocal(`pOut`)),...r.ret([])]),r.call(t+`_fromMontgomeryAffine`,r.getLocal(`pIn`),o),r.call(t+`__reverseBytes`,s,r.i32_const(a),r.getLocal(`pOut`)),r.call(t+`__reverseBytes`,c,r.i32_const(a),r.i32_add(r.getLocal(`pOut`),r.i32_const(a))))}function I(){let n=e.addFunction(t+`_UtoLEM`);n.addParam(`pIn`,`i32`),n.addParam(`pOut`,`i32`);let r=n.getCodeBuilder(),i=e.alloc(a*2),o=r.i32_const(i),s=r.i32_const(i),c=r.i32_const(i+a);n.addCode(r.if(r.i32_and(r.i32_load8_u(r.getLocal(`pIn`)),r.i32_const(64)),[...r.call(t+`_zeroAffine`,r.getLocal(`pOut`)),...r.ret([])]),r.call(t+`__reverseBytes`,r.getLocal(`pIn`),r.i32_const(a),s),r.call(t+`__reverseBytes`,r.i32_add(r.getLocal(`pIn`),r.i32_const(a)),r.i32_const(a),c),r.call(t+`_toMontgomeryAffine`,o,r.getLocal(`pOut`)))}function L(){let i=e.addFunction(t+`_CtoLEM`);i.addParam(`pIn`,`i32`),i.addParam(`pOut`,`i32`),i.addLocal(`firstByte`,`i32`),i.addLocal(`greatest`,`i32`);let o=i.getCodeBuilder(),s=e.alloc(a*2),c=o.i32_const(s),l=o.i32_const(s+a);i.addCode(o.setLocal(`firstByte`,o.i32_load8_u(o.getLocal(`pIn`))),o.if(o.i32_and(o.getLocal(`firstByte`),o.i32_const(64)),[...o.call(t+`_zeroAffine`,o.getLocal(`pOut`)),...o.ret([])]),o.setLocal(`greatest`,o.i32_and(o.getLocal(`firstByte`),o.i32_const(128))),o.call(n+`_copy`,o.getLocal(`pIn`),l),o.i32_store8(l,o.i32_and(o.getLocal(`firstByte`),o.i32_const(63))),o.call(t+`__reverseBytes`,l,o.i32_const(a),c),o.call(n+`_toMontgomery`,c,o.getLocal(`pOut`)),o.call(n+`_square`,o.getLocal(`pOut`),l),o.call(n+`_mul`,o.getLocal(`pOut`),l,l),o.call(n+`_add`,l,o.i32_const(r),l),o.call(n+`_sqrt`,l,l),o.call(n+`_neg`,l,c),o.if(o.i32_eq(o.call(n+`_sign`,l),o.i32_const(-1)),o.if(o.getLocal(`greatest`),o.call(n+`_copy`,l,o.i32_add(o.getLocal(`pOut`),o.i32_const(a))),o.call(n+`_neg`,l,o.i32_add(o.getLocal(`pOut`),o.i32_const(a)))),o.if(o.getLocal(`greatest`),o.call(n+`_neg`,l,o.i32_add(o.getLocal(`pOut`),o.i32_const(a))),o.call(n+`_copy`,l,o.i32_add(o.getLocal(`pOut`),o.i32_const(a))))))}function R(){let i=e.addFunction(t+`_inCurveAffine`);i.addParam(`pIn`,`i32`),i.setReturnType(`i32`);let o=i.getCodeBuilder(),s=o.getLocal(`pIn`),c=o.i32_add(o.getLocal(`pIn`),o.i32_const(a)),l=o.i32_const(e.alloc(a)),u=o.i32_const(e.alloc(a));i.addCode(o.call(n+`_square`,c,l),o.call(n+`_square`,s,u),o.call(n+`_mul`,s,u,u),o.call(n+`_add`,u,o.i32_const(r),u),o.ret(o.call(n+`_eq`,l,u)))}function z(){let n=e.addFunction(t+`_inCurve`);n.addParam(`pIn`,`i32`),n.setReturnType(`i32`);let r=n.getCodeBuilder(),i=r.i32_const(e.alloc(a*2));n.addCode(r.call(t+`_toAffine`,r.getLocal(`pIn`),i),r.ret(r.call(t+`_inCurveAffine`,i)))}return s(),o(),d(),u(),l(),c(),j(),g(),p(),f(),h(),m(),C(),S(),x(),T(),w(),O(),D(),E(),b(),y(),v(),_(),A(),R(),z(),M(),k(),N(),F(),P(),I(),L(),zt(e,t+`_batchLEMtoU`,t+`_LEMtoU`,a*2,a*2),zt(e,t+`_batchLEMtoC`,t+`_LEMtoC`,a*2,a),zt(e,t+`_batchUtoLEM`,t+`_UtoLEM`,a*2,a*2),zt(e,t+`_batchCtoLEM`,t+`_CtoLEM`,a,a*2,!0),zt(e,t+`_batchToJacobian`,t+`_toJacobian`,a*2,a*3,!0),Bt(e,t,t+`_multiexp`,t+`_add`,a*3),Bt(e,t,t+`_multiexpAffine`,t+`_addMixed`,a*2),Rt(e,t+`_timesScalar`,a*3,t+`_add`,t+`_double`,t+`_sub`,t+`_copy`,t+`_zero`),Rt(e,t+`_timesScalarAffine`,a*2,t+`_addMixed`,t+`_double`,t+`_subMixed`,t+`_copyAffine`,t+`_zero`),e.exportFunction(t+`_isZero`),e.exportFunction(t+`_isZeroAffine`),e.exportFunction(t+`_eq`),e.exportFunction(t+`_eqMixed`),e.exportFunction(t+`_eqAffine`),e.exportFunction(t+`_copy`),e.exportFunction(t+`_copyAffine`),e.exportFunction(t+`_zero`),e.exportFunction(t+`_zeroAffine`),e.exportFunction(t+`_double`),e.exportFunction(t+`_doubleAffine`),e.exportFunction(t+`_add`),e.exportFunction(t+`_addMixed`),e.exportFunction(t+`_addAffine`),e.exportFunction(t+`_neg`),e.exportFunction(t+`_negAffine`),e.exportFunction(t+`_sub`),e.exportFunction(t+`_subMixed`),e.exportFunction(t+`_subAffine`),e.exportFunction(t+`_fromMontgomery`),e.exportFunction(t+`_fromMontgomeryAffine`),e.exportFunction(t+`_toMontgomery`),e.exportFunction(t+`_toMontgomeryAffine`),e.exportFunction(t+`_timesScalar`),e.exportFunction(t+`_timesScalarAffine`),e.exportFunction(t+`_normalize`),e.exportFunction(t+`_LEMtoU`),e.exportFunction(t+`_LEMtoC`),e.exportFunction(t+`_UtoLEM`),e.exportFunction(t+`_CtoLEM`),e.exportFunction(t+`_batchLEMtoU`),e.exportFunction(t+`_batchLEMtoC`),e.exportFunction(t+`_batchUtoLEM`),e.exportFunction(t+`_batchCtoLEM`),e.exportFunction(t+`_toAffine`),e.exportFunction(t+`_toJacobian`),e.exportFunction(t+`_batchToAffine`),e.exportFunction(t+`_batchToJacobian`),e.exportFunction(t+`_inCurve`),e.exportFunction(t+`_inCurveAffine`),t};const{isOdd:Ht,modInv:Ut,modPow:Wt}=Ye,Gt=Be;var Kt=function(e,t,n,r,i){let a=e.modules[r].n64*8,o=e.modules[n].n64*8,s=e.modules[r].q,c=s-1n,l=0;for(;!Ht(c);)l++,c>>=1n;let u=2n;for(;Wt(u,s>>1n,s)===1n;)u+=1n;let d=Array(l+1);d[l]=Wt(u,c,s);let f=l-1;for(;f>=0;)d[f]=Wt(d[f+1],2n,s),f--;let p=[],m=(1n<<BigInt(a*8))%s;for(let e=0;e<d.length;e++){let t=d[e]*m%s;p.push(...Gt.bigInt2BytesLE(t,a))}let h=e.alloc(p),g=Array(l+1);g[0]=1n;for(let e=1;e<=l;e++)g[e]=g[e-1]*2n;let _=[];for(let e=0;e<=l;e++){let t=Ut(g[e],s)*m%s;_.push(...Gt.bigInt2BytesLE(t,a))}let v=e.alloc(_),y=Wt(u,2n,s),b=[],x=[];for(let e=0;e<=l;e++){let t=Wt(y,2n**BigInt(e),s),n=Ut(s+1n-t,s);b.push(...Gt.bigInt2BytesLE(t*m%s,a)),x.push(...Gt.bigInt2BytesLE(n*m%s,a))}let S=e.alloc(b),C=e.alloc(x);function w(e){let t=0;for(let n=0;n<8;n++)e&1<<n&&(t|=128>>n);return t}let T=Array(256);for(let e=0;e<256;e++)T[e]=w(e);let E=e.alloc(T);function D(){let n=e.addFunction(t+`__log2`);n.addParam(`n`,`i32`),n.setReturnType(`i32`),n.addLocal(`bits`,`i32`),n.addLocal(`aux`,`i32`);let r=n.getCodeBuilder();n.addCode(r.setLocal(`aux`,r.i32_shr_u(r.getLocal(`n`),r.i32_const(1)))),n.addCode(r.setLocal(`bits`,r.i32_const(0))),n.addCode(r.block(r.loop(r.br_if(1,r.i32_eqz(r.getLocal(`aux`))),r.setLocal(`aux`,r.i32_shr_u(r.getLocal(`aux`),r.i32_const(1))),r.setLocal(`bits`,r.i32_add(r.getLocal(`bits`),r.i32_const(1))),r.br(0)))),n.addCode(r.if(r.i32_ne(r.getLocal(`n`),r.i32_shl(r.i32_const(1),r.getLocal(`bits`))),r.unreachable())),n.addCode(r.if(r.i32_gt_u(r.getLocal(`bits`),r.i32_const(l)),r.unreachable())),n.addCode(r.getLocal(`bits`))}function O(){let n=e.addFunction(t+`_fft`);n.addParam(`px`,`i32`),n.addParam(`n`,`i32`),n.addLocal(`bits`,`i32`);let i=n.getCodeBuilder(),o=i.i32_const(e.alloc(a));n.addCode(i.setLocal(`bits`,i.call(t+`__log2`,i.getLocal(`n`))),i.call(r+`_one`,o),i.call(t+`_rawfft`,i.getLocal(`px`),i.getLocal(`bits`),i.i32_const(0),o))}function k(){let n=e.addFunction(t+`_ifft`);n.addParam(`px`,`i32`),n.addParam(`n`,`i32`),n.addLocal(`bits`,`i32`),n.addLocal(`pInv2`,`i32`);let r=n.getCodeBuilder();n.addCode(r.setLocal(`bits`,r.call(t+`__log2`,r.getLocal(`n`))),r.setLocal(`pInv2`,r.i32_add(r.i32_const(v),r.i32_mul(r.getLocal(`bits`),r.i32_const(a)))),r.call(t+`_rawfft`,r.getLocal(`px`),r.getLocal(`bits`),r.i32_const(1),r.getLocal(`pInv2`)))}function A(){let s=e.addFunction(t+`_rawfft`);s.addParam(`px`,`i32`),s.addParam(`bits`,`i32`),s.addParam(`reverse`,`i32`),s.addParam(`mulFactor`,`i32`),s.addLocal(`s`,`i32`),s.addLocal(`k`,`i32`),s.addLocal(`j`,`i32`),s.addLocal(`m`,`i32`),s.addLocal(`mdiv2`,`i32`),s.addLocal(`n`,`i32`),s.addLocal(`pwm`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o)),d=c.i32_const(e.alloc(o));s.addCode(c.call(t+`__reversePermutation`,c.getLocal(`px`),c.getLocal(`bits`)),c.setLocal(`n`,c.i32_shl(c.i32_const(1),c.getLocal(`bits`))),c.setLocal(`s`,c.i32_const(1)),c.block(c.loop(c.br_if(1,c.i32_gt_u(c.getLocal(`s`),c.getLocal(`bits`))),c.setLocal(`m`,c.i32_shl(c.i32_const(1),c.getLocal(`s`))),c.setLocal(`pwm`,c.i32_add(c.i32_const(h),c.i32_mul(c.getLocal(`s`),c.i32_const(a)))),c.setLocal(`k`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_ge_u(c.getLocal(`k`),c.getLocal(`n`))),c.call(r+`_one`,l),c.setLocal(`mdiv2`,c.i32_shr_u(c.getLocal(`m`),c.i32_const(1))),c.setLocal(`j`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_ge_u(c.getLocal(`j`),c.getLocal(`mdiv2`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`px`),c.i32_mul(c.i32_add(c.getLocal(`k`),c.getLocal(`j`)),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`idx1`),c.i32_mul(c.getLocal(`mdiv2`),c.i32_const(o)))),c.call(i,c.getLocal(`idx2`),l,u),c.call(n+`_copy`,c.getLocal(`idx1`),d),c.call(n+`_add`,d,u,c.getLocal(`idx1`)),c.call(n+`_sub`,d,u,c.getLocal(`idx2`)),c.call(r+`_mul`,l,c.getLocal(`pwm`),l),c.setLocal(`j`,c.i32_add(c.getLocal(`j`),c.i32_const(1))),c.br(0))),c.setLocal(`k`,c.i32_add(c.getLocal(`k`),c.getLocal(`m`))),c.br(0))),c.setLocal(`s`,c.i32_add(c.getLocal(`s`),c.i32_const(1))),c.br(0))),c.call(t+`__fftFinal`,c.getLocal(`px`),c.getLocal(`bits`),c.getLocal(`reverse`),c.getLocal(`mulFactor`)))}function j(){let a=e.addFunction(t+`__fftFinal`);a.addParam(`px`,`i32`),a.addParam(`bits`,`i32`),a.addParam(`reverse`,`i32`),a.addParam(`mulFactor`,`i32`),a.addLocal(`n`,`i32`),a.addLocal(`ndiv2`,`i32`),a.addLocal(`pInv2`,`i32`),a.addLocal(`i`,`i32`),a.addLocal(`mask`,`i32`),a.addLocal(`idx1`,`i32`),a.addLocal(`idx2`,`i32`);let s=a.getCodeBuilder(),c=s.i32_const(e.alloc(o));a.addCode(s.if(s.i32_and(s.i32_eqz(s.getLocal(`reverse`)),s.call(r+`_isOne`,s.getLocal(`mulFactor`))),s.ret([])),s.setLocal(`n`,s.i32_shl(s.i32_const(1),s.getLocal(`bits`))),s.setLocal(`mask`,s.i32_sub(s.getLocal(`n`),s.i32_const(1))),s.setLocal(`i`,s.i32_const(1)),s.setLocal(`ndiv2`,s.i32_shr_u(s.getLocal(`n`),s.i32_const(1))),s.block(s.loop(s.br_if(1,s.i32_ge_u(s.getLocal(`i`),s.getLocal(`ndiv2`))),s.setLocal(`idx1`,s.i32_add(s.getLocal(`px`),s.i32_mul(s.getLocal(`i`),s.i32_const(o)))),s.setLocal(`idx2`,s.i32_add(s.getLocal(`px`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.getLocal(`i`)),s.i32_const(o)))),s.if(s.getLocal(`reverse`),s.if(s.call(r+`_isOne`,s.getLocal(`mulFactor`)),[...s.call(n+`_copy`,s.getLocal(`idx1`),c),...s.call(n+`_copy`,s.getLocal(`idx2`),s.getLocal(`idx1`)),...s.call(n+`_copy`,c,s.getLocal(`idx2`))],[...s.call(n+`_copy`,s.getLocal(`idx1`),c),...s.call(i,s.getLocal(`idx2`),s.getLocal(`mulFactor`),s.getLocal(`idx1`)),...s.call(i,c,s.getLocal(`mulFactor`),s.getLocal(`idx2`))]),s.if(s.call(r+`_isOne`,s.getLocal(`mulFactor`)),[],[...s.call(i,s.getLocal(`idx1`),s.getLocal(`mulFactor`),s.getLocal(`idx1`)),...s.call(i,s.getLocal(`idx2`),s.getLocal(`mulFactor`),s.getLocal(`idx2`))])),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0))),s.if(s.call(r+`_isOne`,s.getLocal(`mulFactor`)),[],[...s.call(i,s.getLocal(`px`),s.getLocal(`mulFactor`),s.getLocal(`px`)),...s.setLocal(`idx2`,s.i32_add(s.getLocal(`px`),s.i32_mul(s.getLocal(`ndiv2`),s.i32_const(o)))),...s.call(i,s.getLocal(`idx2`),s.getLocal(`mulFactor`),s.getLocal(`idx2`))]))}function M(){let r=e.addFunction(t+`__reversePermutation`);r.addParam(`px`,`i32`),r.addParam(`bits`,`i32`),r.addLocal(`n`,`i32`),r.addLocal(`i`,`i32`),r.addLocal(`ri`,`i32`),r.addLocal(`idx1`,`i32`),r.addLocal(`idx2`,`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(o));r.addCode(i.setLocal(`n`,i.i32_shl(i.i32_const(1),i.getLocal(`bits`))),i.setLocal(`i`,i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`i`),i.getLocal(`n`))),i.setLocal(`idx1`,i.i32_add(i.getLocal(`px`),i.i32_mul(i.getLocal(`i`),i.i32_const(o)))),i.setLocal(`ri`,i.call(t+`__rev`,i.getLocal(`i`),i.getLocal(`bits`))),i.setLocal(`idx2`,i.i32_add(i.getLocal(`px`),i.i32_mul(i.getLocal(`ri`),i.i32_const(o)))),i.if(i.i32_lt_u(i.getLocal(`i`),i.getLocal(`ri`)),[...i.call(n+`_copy`,i.getLocal(`idx1`),a),...i.call(n+`_copy`,i.getLocal(`idx2`),i.getLocal(`idx1`)),...i.call(n+`_copy`,a,i.getLocal(`idx2`))]),i.setLocal(`i`,i.i32_add(i.getLocal(`i`),i.i32_const(1))),i.br(0))))}function N(){let n=e.addFunction(t+`__rev`);n.addParam(`x`,`i32`),n.addParam(`bits`,`i32`),n.setReturnType(`i32`);let r=n.getCodeBuilder();n.addCode(r.i32_rotl(r.i32_add(r.i32_add(r.i32_shl(r.i32_load8_u(r.i32_and(r.getLocal(`x`),r.i32_const(255)),E,0),r.i32_const(24)),r.i32_shl(r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal(`x`),r.i32_const(8)),r.i32_const(255)),E,0),r.i32_const(16))),r.i32_add(r.i32_shl(r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal(`x`),r.i32_const(16)),r.i32_const(255)),E,0),r.i32_const(8)),r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal(`x`),r.i32_const(24)),r.i32_const(255)),E,0))),r.getLocal(`bits`)))}function P(){let s=e.addFunction(t+`_fftJoin`);s.addParam(`pBuff1`,`i32`),s.addParam(`pBuff2`,`i32`),s.addParam(`n`,`i32`),s.addParam(`first`,`i32`),s.addParam(`inc`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o)),d=c.i32_const(e.alloc(o));s.addCode(c.call(r+`_copy`,c.getLocal(`first`),l),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`n`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff1`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`pBuff2`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.call(i,c.getLocal(`idx2`),l,u),c.call(n+`_copy`,c.getLocal(`idx1`),d),c.call(n+`_add`,d,u,c.getLocal(`idx1`)),c.call(n+`_sub`,d,u,c.getLocal(`idx2`)),c.call(r+`_mul`,l,c.getLocal(`inc`),l),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function F(){let s=e.addFunction(t+`_fftJoinExt`);s.addParam(`pBuff1`,`i32`),s.addParam(`pBuff2`,`i32`),s.addParam(`n`,`i32`),s.addParam(`first`,`i32`),s.addParam(`inc`,`i32`),s.addParam(`totalBits`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`pShiftToM`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o));s.addCode(c.setLocal(`pShiftToM`,c.i32_add(c.i32_const(S),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.call(r+`_copy`,c.getLocal(`first`),l),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`n`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff1`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`pBuff2`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.call(n+`_add`,c.getLocal(`idx1`),c.getLocal(`idx2`),u),c.call(i,c.getLocal(`idx2`),c.getLocal(`pShiftToM`),c.getLocal(`idx2`)),c.call(n+`_add`,c.getLocal(`idx1`),c.getLocal(`idx2`),c.getLocal(`idx2`)),c.call(i,c.getLocal(`idx2`),l,c.getLocal(`idx2`)),c.call(n+`_copy`,u,c.getLocal(`idx1`)),c.call(r+`_mul`,l,c.getLocal(`inc`),l),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function I(){let s=e.addFunction(t+`_fftJoinExtInv`);s.addParam(`pBuff1`,`i32`),s.addParam(`pBuff2`,`i32`),s.addParam(`n`,`i32`),s.addParam(`first`,`i32`),s.addParam(`inc`,`i32`),s.addParam(`totalBits`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`pShiftToM`,`i32`),s.addLocal(`pSConst`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o));s.addCode(c.setLocal(`pShiftToM`,c.i32_add(c.i32_const(S),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.setLocal(`pSConst`,c.i32_add(c.i32_const(C),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.call(r+`_copy`,c.getLocal(`first`),l),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`n`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff1`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`pBuff2`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.call(i,c.getLocal(`idx2`),l,u),c.call(n+`_sub`,c.getLocal(`idx1`),u,c.getLocal(`idx2`)),c.call(i,c.getLocal(`idx2`),c.getLocal(`pSConst`),c.getLocal(`idx2`)),c.call(i,c.getLocal(`idx1`),c.getLocal(`pShiftToM`),c.getLocal(`idx1`)),c.call(n+`_sub`,u,c.getLocal(`idx1`),c.getLocal(`idx1`)),c.call(i,c.getLocal(`idx1`),c.getLocal(`pSConst`),c.getLocal(`idx1`)),c.call(r+`_mul`,l,c.getLocal(`inc`),l),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function L(){let s=e.addFunction(t+`_prepareLagrangeEvaluation`);s.addParam(`pBuff1`,`i32`),s.addParam(`pBuff2`,`i32`),s.addParam(`n`,`i32`),s.addParam(`first`,`i32`),s.addParam(`inc`,`i32`),s.addParam(`totalBits`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`pShiftToM`,`i32`),s.addLocal(`pSConst`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o));s.addCode(c.setLocal(`pShiftToM`,c.i32_add(c.i32_const(S),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.setLocal(`pSConst`,c.i32_add(c.i32_const(C),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.call(r+`_copy`,c.getLocal(`first`),l),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`n`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff1`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`pBuff2`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.call(i,c.getLocal(`idx1`),c.getLocal(`pShiftToM`),u),c.call(n+`_sub`,c.getLocal(`idx2`),u,u),c.call(n+`_sub`,c.getLocal(`idx1`),c.getLocal(`idx2`),c.getLocal(`idx2`)),c.call(i,u,c.getLocal(`pSConst`),c.getLocal(`idx1`)),c.call(i,c.getLocal(`idx2`),l,c.getLocal(`idx2`)),c.call(r+`_mul`,l,c.getLocal(`inc`),l),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function R(){let s=e.addFunction(t+`_fftMix`);s.addParam(`pBuff`,`i32`),s.addParam(`n`,`i32`),s.addParam(`exp`,`i32`),s.addLocal(`nGroups`,`i32`),s.addLocal(`nPerGroup`,`i32`),s.addLocal(`nPerGroupDiv2`,`i32`),s.addLocal(`pairOffset`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`j`,`i32`),s.addLocal(`pwm`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o)),d=c.i32_const(e.alloc(o));s.addCode(c.setLocal(`nPerGroup`,c.i32_shl(c.i32_const(1),c.getLocal(`exp`))),c.setLocal(`nPerGroupDiv2`,c.i32_shr_u(c.getLocal(`nPerGroup`),c.i32_const(1))),c.setLocal(`nGroups`,c.i32_shr_u(c.getLocal(`n`),c.getLocal(`exp`))),c.setLocal(`pairOffset`,c.i32_mul(c.getLocal(`nPerGroupDiv2`),c.i32_const(o))),c.setLocal(`pwm`,c.i32_add(c.i32_const(h),c.i32_mul(c.getLocal(`exp`),c.i32_const(a)))),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`nGroups`))),c.call(r+`_one`,l),c.setLocal(`j`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`j`),c.getLocal(`nPerGroupDiv2`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff`),c.i32_mul(c.i32_add(c.i32_mul(c.getLocal(`i`),c.getLocal(`nPerGroup`)),c.getLocal(`j`)),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`idx1`),c.getLocal(`pairOffset`))),c.call(i,c.getLocal(`idx2`),l,u),c.call(n+`_copy`,c.getLocal(`idx1`),d),c.call(n+`_add`,d,u,c.getLocal(`idx1`)),c.call(n+`_sub`,d,u,c.getLocal(`idx2`)),c.call(r+`_mul`,l,c.getLocal(`pwm`),l),c.setLocal(`j`,c.i32_add(c.getLocal(`j`),c.i32_const(1))),c.br(0))),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function z(){let r=e.addFunction(t+`_fftFinal`);r.addParam(`pBuff`,`i32`),r.addParam(`n`,`i32`),r.addParam(`factor`,`i32`),r.addLocal(`idx1`,`i32`),r.addLocal(`idx2`,`i32`),r.addLocal(`i`,`i32`),r.addLocal(`ndiv2`,`i32`);let a=r.getCodeBuilder(),s=a.i32_const(e.alloc(o));r.addCode(a.setLocal(`ndiv2`,a.i32_shr_u(a.getLocal(`n`),a.i32_const(1))),a.if(a.i32_and(a.getLocal(`n`),a.i32_const(1)),a.call(i,a.i32_add(a.getLocal(`pBuff`),a.i32_mul(a.getLocal(`ndiv2`),a.i32_const(o))),a.getLocal(`factor`),a.i32_add(a.getLocal(`pBuff`),a.i32_mul(a.getLocal(`ndiv2`),a.i32_const(o))))),a.setLocal(`i`,a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_ge_u(a.getLocal(`i`),a.getLocal(`ndiv2`))),a.setLocal(`idx1`,a.i32_add(a.getLocal(`pBuff`),a.i32_mul(a.getLocal(`i`),a.i32_const(o)))),a.setLocal(`idx2`,a.i32_add(a.getLocal(`pBuff`),a.i32_mul(a.i32_sub(a.i32_sub(a.getLocal(`n`),a.i32_const(1)),a.getLocal(`i`)),a.i32_const(o)))),a.call(i,a.getLocal(`idx2`),a.getLocal(`factor`),s),a.call(i,a.getLocal(`idx1`),a.getLocal(`factor`),a.getLocal(`idx2`)),a.call(n+`_copy`,s,a.getLocal(`idx1`)),a.setLocal(`i`,a.i32_add(a.getLocal(`i`),a.i32_const(1))),a.br(0))))}N(),M(),j(),A(),D(),O(),k(),P(),F(),I(),R(),z(),L(),e.exportFunction(t+`_fft`),e.exportFunction(t+`_ifft`),e.exportFunction(t+`_rawfft`),e.exportFunction(t+`_fftJoin`),e.exportFunction(t+`_fftJoinExt`),e.exportFunction(t+`_fftJoinExtInv`),e.exportFunction(t+`_fftMix`),e.exportFunction(t+`_fftFinal`),e.exportFunction(t+`_prepareLagrangeEvaluation`)},qt=function(e,t,n){let r=e.modules[n].n64*8;function i(){let i=e.addFunction(t+`_zero`);i.addParam(`px`,`i32`),i.addParam(`n`,`i32`),i.addLocal(`lastp`,`i32`),i.addLocal(`p`,`i32`);let a=i.getCodeBuilder();i.addCode(a.setLocal(`p`,a.getLocal(`px`)),a.setLocal(`lastp`,a.i32_add(a.getLocal(`px`),a.i32_mul(a.getLocal(`n`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`p`),a.getLocal(`lastp`))),a.call(n+`_zero`,a.getLocal(`p`)),a.setLocal(`p`,a.i32_add(a.getLocal(`p`),a.i32_const(r))),a.br(0))))}function a(){let i=e.addFunction(t+`_constructLC`);i.addParam(`ppolynomials`,`i32`),i.addParam(`psignals`,`i32`),i.addParam(`nSignals`,`i32`),i.addParam(`pres`,`i32`),i.addLocal(`i`,`i32`),i.addLocal(`j`,`i32`),i.addLocal(`pp`,`i32`),i.addLocal(`ps`,`i32`),i.addLocal(`pd`,`i32`),i.addLocal(`ncoefs`,`i32`);let a=i.getCodeBuilder(),o=a.i32_const(e.alloc(r));i.addCode(a.setLocal(`i`,a.i32_const(0)),a.setLocal(`pp`,a.getLocal(`ppolynomials`)),a.setLocal(`ps`,a.getLocal(`psignals`)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`i`),a.getLocal(`nSignals`))),a.setLocal(`ncoefs`,a.i32_load(a.getLocal(`pp`))),a.setLocal(`pp`,a.i32_add(a.getLocal(`pp`),a.i32_const(4))),a.setLocal(`j`,a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`j`),a.getLocal(`ncoefs`))),a.setLocal(`pd`,a.i32_add(a.getLocal(`pres`),a.i32_mul(a.i32_load(a.getLocal(`pp`)),a.i32_const(r)))),a.setLocal(`pp`,a.i32_add(a.getLocal(`pp`),a.i32_const(4))),a.call(n+`_mul`,a.getLocal(`ps`),a.getLocal(`pp`),o),a.call(n+`_add`,o,a.getLocal(`pd`),a.getLocal(`pd`)),a.setLocal(`pp`,a.i32_add(a.getLocal(`pp`),a.i32_const(r))),a.setLocal(`j`,a.i32_add(a.getLocal(`j`),a.i32_const(1))),a.br(0))),a.setLocal(`ps`,a.i32_add(a.getLocal(`ps`),a.i32_const(r))),a.setLocal(`i`,a.i32_add(a.getLocal(`i`),a.i32_const(1))),a.br(0))))}return i(),a(),e.exportFunction(t+`_zero`),e.exportFunction(t+`_constructLC`),t},Jt=function(e,t,n){let r=e.modules[n].n64*8;function i(){let i=e.addFunction(t+`_buildABC`);i.addParam(`pCoefs`,`i32`),i.addParam(`nCoefs`,`i32`),i.addParam(`pWitness`,`i32`),i.addParam(`pA`,`i32`),i.addParam(`pB`,`i32`),i.addParam(`pC`,`i32`),i.addParam(`offsetOut`,`i32`),i.addParam(`nOut`,`i32`),i.addParam(`offsetWitness`,`i32`),i.addParam(`nWitness`,`i32`),i.addLocal(`it`,`i32`),i.addLocal(`ita`,`i32`),i.addLocal(`itb`,`i32`),i.addLocal(`last`,`i32`),i.addLocal(`m`,`i32`),i.addLocal(`c`,`i32`),i.addLocal(`s`,`i32`),i.addLocal(`pOut`,`i32`);let a=i.getCodeBuilder(),o=a.i32_const(e.alloc(r));i.addCode(a.setLocal(`ita`,a.getLocal(`pA`)),a.setLocal(`itb`,a.getLocal(`pB`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pA`),a.i32_mul(a.getLocal(`nOut`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`ita`),a.getLocal(`last`))),a.call(n+`_zero`,a.getLocal(`ita`)),a.call(n+`_zero`,a.getLocal(`itb`)),a.setLocal(`ita`,a.i32_add(a.getLocal(`ita`),a.i32_const(r))),a.setLocal(`itb`,a.i32_add(a.getLocal(`itb`),a.i32_const(r))),a.br(0))),a.setLocal(`it`,a.getLocal(`pCoefs`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pCoefs`),a.i32_mul(a.getLocal(`nCoefs`),a.i32_const(r+12)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`it`),a.getLocal(`last`))),a.setLocal(`s`,a.i32_load(a.getLocal(`it`),8)),a.if(a.i32_or(a.i32_lt_u(a.getLocal(`s`),a.getLocal(`offsetWitness`)),a.i32_ge_u(a.getLocal(`s`),a.i32_add(a.getLocal(`offsetWitness`),a.getLocal(`nWitness`)))),[...a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r+12))),...a.br(1)]),a.setLocal(`m`,a.i32_load(a.getLocal(`it`))),a.if(a.i32_eq(a.getLocal(`m`),a.i32_const(0)),a.setLocal(`pOut`,a.getLocal(`pA`)),a.if(a.i32_eq(a.getLocal(`m`),a.i32_const(1)),a.setLocal(`pOut`,a.getLocal(`pB`)),[...a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r+12))),...a.br(1)])),a.setLocal(`c`,a.i32_load(a.getLocal(`it`),4)),a.if(a.i32_or(a.i32_lt_u(a.getLocal(`c`),a.getLocal(`offsetOut`)),a.i32_ge_u(a.getLocal(`c`),a.i32_add(a.getLocal(`offsetOut`),a.getLocal(`nOut`)))),[...a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r+12))),...a.br(1)]),a.setLocal(`pOut`,a.i32_add(a.getLocal(`pOut`),a.i32_mul(a.i32_sub(a.getLocal(`c`),a.getLocal(`offsetOut`)),a.i32_const(r)))),a.call(n+`_mul`,a.i32_add(a.getLocal(`pWitness`),a.i32_mul(a.i32_sub(a.getLocal(`s`),a.getLocal(`offsetWitness`)),a.i32_const(r))),a.i32_add(a.getLocal(`it`),a.i32_const(12)),o),a.call(n+`_add`,a.getLocal(`pOut`),o,a.getLocal(`pOut`)),a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r+12))),a.br(0))),a.setLocal(`ita`,a.getLocal(`pA`)),a.setLocal(`itb`,a.getLocal(`pB`)),a.setLocal(`it`,a.getLocal(`pC`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pA`),a.i32_mul(a.getLocal(`nOut`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`ita`),a.getLocal(`last`))),a.call(n+`_mul`,a.getLocal(`ita`),a.getLocal(`itb`),a.getLocal(`it`)),a.setLocal(`ita`,a.i32_add(a.getLocal(`ita`),a.i32_const(r))),a.setLocal(`itb`,a.i32_add(a.getLocal(`itb`),a.i32_const(r))),a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r))),a.br(0))))}function a(){let i=e.addFunction(t+`_joinABC`);i.addParam(`pA`,`i32`),i.addParam(`pB`,`i32`),i.addParam(`pC`,`i32`),i.addParam(`n`,`i32`),i.addParam(`pP`,`i32`),i.addLocal(`ita`,`i32`),i.addLocal(`itb`,`i32`),i.addLocal(`itc`,`i32`),i.addLocal(`itp`,`i32`),i.addLocal(`last`,`i32`);let a=i.getCodeBuilder(),o=a.i32_const(e.alloc(r));i.addCode(a.setLocal(`ita`,a.getLocal(`pA`)),a.setLocal(`itb`,a.getLocal(`pB`)),a.setLocal(`itc`,a.getLocal(`pC`)),a.setLocal(`itp`,a.getLocal(`pP`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pA`),a.i32_mul(a.getLocal(`n`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`ita`),a.getLocal(`last`))),a.call(n+`_mul`,a.getLocal(`ita`),a.getLocal(`itb`),o),a.call(n+`_sub`,o,a.getLocal(`itc`),a.getLocal(`itp`)),a.setLocal(`ita`,a.i32_add(a.getLocal(`ita`),a.i32_const(r))),a.setLocal(`itb`,a.i32_add(a.getLocal(`itb`),a.i32_const(r))),a.setLocal(`itc`,a.i32_add(a.getLocal(`itc`),a.i32_const(r))),a.setLocal(`itp`,a.i32_add(a.getLocal(`itp`),a.i32_const(r))),a.br(0))))}function o(){let i=e.addFunction(t+`_batchAdd`);i.addParam(`pa`,`i32`),i.addParam(`pb`,`i32`),i.addParam(`n`,`i32`),i.addParam(`pr`,`i32`),i.addLocal(`ita`,`i32`),i.addLocal(`itb`,`i32`),i.addLocal(`itr`,`i32`),i.addLocal(`last`,`i32`);let a=i.getCodeBuilder();i.addCode(a.setLocal(`ita`,a.getLocal(`pa`)),a.setLocal(`itb`,a.getLocal(`pb`)),a.setLocal(`itr`,a.getLocal(`pr`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pa`),a.i32_mul(a.getLocal(`n`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`ita`),a.getLocal(`last`))),a.call(n+`_add`,a.getLocal(`ita`),a.getLocal(`itb`),a.getLocal(`itr`)),a.setLocal(`ita`,a.i32_add(a.getLocal(`ita`),a.i32_const(r))),a.setLocal(`itb`,a.i32_add(a.getLocal(`itb`),a.i32_const(r))),a.setLocal(`itr`,a.i32_add(a.getLocal(`itr`),a.i32_const(r))),a.br(0))))}return i(),a(),o(),e.exportFunction(t+`_buildABC`),e.exportFunction(t+`_joinABC`),e.exportFunction(t+`_batchAdd`),t},Yt=function(e,t,n,r,i,a,o,s){let c=e.addFunction(t);c.addParam(`pIn`,`i32`),c.addParam(`n`,`i32`),c.addParam(`pFirst`,`i32`),c.addParam(`pInc`,`i32`),c.addParam(`pOut`,`i32`),c.addLocal(`pOldFree`,`i32`),c.addLocal(`i`,`i32`),c.addLocal(`pFrom`,`i32`),c.addLocal(`pTo`,`i32`);let l=c.getCodeBuilder(),u=l.i32_const(e.alloc(o));c.addCode(l.setLocal(`pFrom`,l.getLocal(`pIn`)),l.setLocal(`pTo`,l.getLocal(`pOut`))),c.addCode(l.call(r+`_copy`,l.getLocal(`pFirst`),u)),c.addCode(l.setLocal(`i`,l.i32_const(0)),l.block(l.loop(l.br_if(1,l.i32_eq(l.getLocal(`i`),l.getLocal(`n`))),l.call(s,l.getLocal(`pFrom`),u,l.getLocal(`pTo`)),l.setLocal(`pFrom`,l.i32_add(l.getLocal(`pFrom`),l.i32_const(i))),l.setLocal(`pTo`,l.i32_add(l.getLocal(`pTo`),l.i32_const(a))),l.call(r+`_mul`,u,l.getLocal(`pInc`),u),l.setLocal(`i`,l.i32_add(l.getLocal(`i`),l.i32_const(1))),l.br(0)))),e.exportFunction(t)};const V=Be,Xt=Tt,Zt=Ot,Qt=Mt,$t=Ft,en=Vt,tn=Kt,nn=qt,rn=Jt,an=Yt,{bitLength:on,modInv:sn,isOdd:cn,isNegative:ln}=Ye;var un=function(e,t){let n=t||`bn128`;if(e.modules[n])return n;let r=21888242871839275222246405745257275088696311157297823662689037894645226208583n,i=21888242871839275222246405745257275088548364400416034343698204186575808495617n,a=Math.floor((on(r-1n)-1)/64)+1,o=a*8,s=o,c=o,l=c*2,u=c*12,d=e.alloc(V.bigInt2BytesLE(i,s)),f=Xt(e,r,`f1m`);Zt(e,i,`fr`,`frm`);let p=e.alloc(V.bigInt2BytesLE(y(3n),c)),m=en(e,`g1m`,`f1m`,p);tn(e,`frm`,`frm`,`frm`,`frm_mul`),nn(e,`pol`,`frm`),rn(e,`qap`,`frm`);let h=Qt(e,`f1m_neg`,`f2m`,`f1m`),g=e.alloc([...V.bigInt2BytesLE(y(19485874751759354771024239261021720505790618469301721065564631296452457478373n),c),...V.bigInt2BytesLE(y(266929791119991161246907387137283842545076965332900288569378510910307636690n),c)]),_=en(e,`g2m`,`f2m`,g);function v(t,n){let r=e.addFunction(t);r.addParam(`pG`,`i32`),r.addParam(`pFr`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(o));r.addCode(i.call(`frm_fromMontgomery`,i.getLocal(`pFr`),a),i.call(n,i.getLocal(`pG`),a,i.i32_const(o),i.getLocal(`pr`))),e.exportFunction(t)}v(`g1m_timesFr`,`g1m_timesScalar`),tn(e,`g1m`,`g1m`,`frm`,`g1m_timesFr`),v(`g2m_timesFr`,`g2m_timesScalar`),tn(e,`g2m`,`g2m`,`frm`,`g2m_timesFr`),v(`g1m_timesFrAffine`,`g1m_timesScalarAffine`),v(`g2m_timesFrAffine`,`g2m_timesScalarAffine`),an(e,`frm_batchApplyKey`,`fmr`,`frm`,o,o,o,`frm_mul`),an(e,`g1m_batchApplyKey`,`g1m`,`frm`,o*3,o*3,o,`g1m_timesFr`),an(e,`g1m_batchApplyKeyMixed`,`g1m`,`frm`,o*2,o*3,o,`g1m_timesFrAffine`),an(e,`g2m_batchApplyKey`,`g2m`,`frm`,o*2*3,o*3*2,o,`g2m_timesFr`),an(e,`g2m_batchApplyKeyMixed`,`g2m`,`frm`,o*2*2,o*3*2,o,`g2m_timesFrAffine`);function y(e){return BigInt(e)*(1n<<BigInt(c*8))%r}let b=[1n,2n,1n],x=e.alloc([...V.bigInt2BytesLE(y(b[0]),c),...V.bigInt2BytesLE(y(b[1]),c),...V.bigInt2BytesLE(y(b[2]),c)]),S=[0n,1n,0n],C=e.alloc([...V.bigInt2BytesLE(y(S[0]),c),...V.bigInt2BytesLE(y(S[1]),c),...V.bigInt2BytesLE(y(S[2]),c)]),w=[[10857046999023057135944570762232829481370756359578518086990519993285655852781n,11559732032986387107991004021392285783925812861821192530917403151452391805634n],[8495653923123431417604973247489272438418190587263600148770280649306958101930n,4082367875863433681332203403145435568316851327593401208105741076214120093531n],[1n,0n]],T=e.alloc([...V.bigInt2BytesLE(y(w[0][0]),c),...V.bigInt2BytesLE(y(w[0][1]),c),...V.bigInt2BytesLE(y(w[1][0]),c),...V.bigInt2BytesLE(y(w[1][1]),c),...V.bigInt2BytesLE(y(w[2][0]),c),...V.bigInt2BytesLE(y(w[2][1]),c)]),E=[[0n,0n],[1n,0n],[0n,0n]],D=e.alloc([...V.bigInt2BytesLE(y(E[0][0]),c),...V.bigInt2BytesLE(y(E[0][1]),c),...V.bigInt2BytesLE(y(E[1][0]),c),...V.bigInt2BytesLE(y(E[1][1]),c),...V.bigInt2BytesLE(y(E[2][0]),c),...V.bigInt2BytesLE(y(E[2][1]),c)]),O=e.alloc([...V.bigInt2BytesLE(y(1),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c),...V.bigInt2BytesLE(y(0),c)]),k=e.alloc([...V.bigInt2BytesLE(y(9),c),...V.bigInt2BytesLE(y(1),c)]),A=e.alloc([...V.bigInt2BytesLE(y(sn(2n,r)),c),...V.bigInt2BytesLE(0n,c)]),j=k,M=e.alloc([...V.bigInt2BytesLE(y(19485874751759354771024239261021720505790618469301721065564631296452457478373n),c),...V.bigInt2BytesLE(y(266929791119991161246907387137283842545076965332900288569378510910307636690n),c)]);function N(){let t=e.addFunction(n+`_mulNR6`);t.addParam(`x`,`i32`),t.addParam(`pr`,`i32`);let r=t.getCodeBuilder();t.addCode(r.call(h+`_mul`,r.i32_const(k),r.getLocal(`x`),r.getLocal(`pr`)))}N();let P=$t(e,n+`_mulNR6`,`f6m`,`f2m`);function F(){let t=e.addFunction(n+`_mulNR12`);t.addParam(`x`,`i32`),t.addParam(`pr`,`i32`);let r=t.getCodeBuilder();t.addCode(r.call(h+`_mul`,r.i32_const(k),r.i32_add(r.getLocal(`x`),r.i32_const(o*4)),r.getLocal(`pr`)),r.call(h+`_copy`,r.getLocal(`x`),r.i32_add(r.getLocal(`pr`),r.i32_const(o*2))),r.call(h+`_copy`,r.i32_add(r.getLocal(`x`),r.i32_const(o*2)),r.i32_add(r.getLocal(`pr`),r.i32_const(o*4))))}F();let I=Qt(e,n+`_mulNR12`,`ftm`,P),L=ie(29793968203157093288n),R=e.alloc(L),z=3*l,ee=L.length-1,B=L.reduce((e,t)=>e+(t==0?0:1),0)+ee+1,te=6*o,ne=3*o*2+B*z;e.modules[n]={n64:a,pG1gen:x,pG1zero:C,pG1b:p,pG2gen:T,pG2zero:D,pG2b:g,pq:e.modules.f1m.pq,pr:d,pOneT:O,prePSize:te,preQSize:ne,r:`21888242871839275222246405745257275088548364400416034343698204186575808495617`,q:`21888242871839275222246405745257275088696311157297823662689037894645226208583`};function re(e){let t=e,n=[];for(;t>0n;){if(cn(t)){let e=2-Number(t%4n);n.push(e),t-=BigInt(e)}else n.push(0);t>>=1n}return n}function ie(e){let t=e,n=[];for(;t>0n;)cn(t)?n.push(1):n.push(0),t>>=1n;return n}function ae(){let t=e.addFunction(n+`_prepareG1`);t.addParam(`pP`,`i32`),t.addParam(`ppreP`,`i32`);let r=t.getCodeBuilder();t.addCode(r.call(m+`_normalize`,r.getLocal(`pP`),r.getLocal(`ppreP`)))}function oe(){let t=e.addFunction(n+`_prepAddStep`);t.addParam(`pQ`,`i32`),t.addParam(`pR`,`i32`),t.addParam(`pCoef`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pQ`),a=r.i32_add(r.getLocal(`pQ`),r.i32_const(l)),o=r.getLocal(`pR`),s=r.i32_add(r.getLocal(`pR`),r.i32_const(l)),c=r.i32_add(r.getLocal(`pR`),r.i32_const(2*l)),u=r.getLocal(`pCoef`),d=r.i32_add(r.getLocal(`pCoef`),r.i32_const(l)),f=r.i32_add(r.getLocal(`pCoef`),r.i32_const(2*l)),p=d,m=r.i32_const(e.alloc(l)),g=r.i32_const(e.alloc(l)),_=r.i32_const(e.alloc(l)),v=r.i32_const(e.alloc(l)),y=r.i32_const(e.alloc(l)),b=r.i32_const(e.alloc(l)),x=r.i32_const(e.alloc(l));t.addCode(r.call(h+`_mul`,i,c,p),r.call(h+`_sub`,o,p,p),r.call(h+`_mul`,a,c,m),r.call(h+`_sub`,s,m,m),r.call(h+`_square`,p,g),r.call(h+`_square`,m,_),r.call(h+`_mul`,p,g,v),r.call(h+`_mul`,o,g,y),r.call(h+`_add`,y,y,x),r.call(h+`_mul`,c,_,b),r.call(h+`_add`,v,b,b),r.call(h+`_sub`,b,x,b),r.call(h+`_mul`,p,b,o),r.call(h+`_mul`,v,s,s),r.call(h+`_sub`,y,b,x),r.call(h+`_mul`,m,x,x),r.call(h+`_sub`,x,s,s),r.call(h+`_mul`,c,v,c),r.call(h+`_mul`,p,a,x),r.call(h+`_mul`,m,i,u),r.call(h+`_sub`,u,x,u),r.call(h+`_mul`,u,r.i32_const(j),u),r.call(h+`_neg`,m,f))}function se(){let t=e.addFunction(n+`_prepDblStep`);t.addParam(`pR`,`i32`),t.addParam(`pCoef`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pR`),a=r.i32_add(r.getLocal(`pR`),r.i32_const(l)),o=r.i32_add(r.getLocal(`pR`),r.i32_const(2*l)),s=r.getLocal(`pCoef`),c=r.i32_add(r.getLocal(`pCoef`),r.i32_const(l)),u=r.i32_add(r.getLocal(`pCoef`),r.i32_const(2*l)),d=r.i32_const(e.alloc(l)),f=r.i32_const(e.alloc(l)),p=r.i32_const(e.alloc(l)),m=r.i32_const(e.alloc(l)),g=r.i32_const(e.alloc(l)),_=r.i32_const(e.alloc(l)),v=r.i32_const(e.alloc(l)),y=r.i32_const(e.alloc(l)),b=r.i32_const(e.alloc(l)),x=r.i32_const(e.alloc(l)),S=r.i32_const(e.alloc(l)),C=r.i32_const(e.alloc(l));t.addCode(r.call(h+`_mul`,a,r.i32_const(A),d),r.call(h+`_mul`,i,d,d),r.call(h+`_square`,a,f),r.call(h+`_square`,o,p),r.call(h+`_add`,p,p,m),r.call(h+`_add`,m,p,m),r.call(h+`_mul`,r.i32_const(M),m,g),r.call(h+`_add`,g,g,_),r.call(h+`_add`,g,_,_),r.call(h+`_add`,f,_,v),r.call(h+`_mul`,v,r.i32_const(A),v),r.call(h+`_add`,f,p,C),r.call(h+`_add`,a,o,y),r.call(h+`_square`,y,y),r.call(h+`_sub`,y,C,y),r.call(h+`_sub`,g,f,b),r.call(h+`_square`,i,x),r.call(h+`_square`,g,S),r.call(h+`_sub`,f,_,C),r.call(h+`_mul`,d,C,i),r.call(h+`_add`,S,S,C),r.call(h+`_add`,S,C,C),r.call(h+`_square`,v,a),r.call(h+`_sub`,a,C,a),r.call(h+`_mul`,f,y,o),r.call(h+`_mul`,r.i32_const(j),b,s),r.call(h+`_neg`,y,c),r.call(h+`_add`,x,x,u),r.call(h+`_add`,x,u,u))}function ce(){let t=e.addFunction(n+`_mulByQ`);t.addParam(`p1`,`i32`),t.addParam(`pr`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`p1`),a=r.i32_add(r.getLocal(`p1`),r.i32_const(l)),o=r.i32_add(r.getLocal(`p1`),r.i32_const(l*2)),s=r.getLocal(`pr`),u=r.i32_add(r.getLocal(`pr`),r.i32_const(l)),d=r.i32_add(r.getLocal(`pr`),r.i32_const(l*2)),f=r.i32_const(e.alloc([...V.bigInt2BytesLE(y(`21575463638280843010398324269430826099269044274347216827212613867836435027261`),c),...V.bigInt2BytesLE(y(`10307601595873709700152284273816112264069230130616436755625194854815875713954`),c)])),p=r.i32_const(e.alloc([...V.bigInt2BytesLE(y(`2821565182194536844548159561693502659359617185244120367078079554186484126554`),c),...V.bigInt2BytesLE(y(`3505843767911556378687030309984248845540243509899259641013678093033130930403`),c)]));t.addCode(r.call(h+`_conjugate`,i,s),r.call(h+`_mul`,f,s,s),r.call(h+`_conjugate`,a,u),r.call(h+`_mul`,p,u,u),r.call(h+`_conjugate`,o,d))}function le(){ce();let t=e.addFunction(n+`_prepareG2`);t.addParam(`pQ`,`i32`),t.addParam(`ppreQ`,`i32`),t.addLocal(`pCoef`,`i32`),t.addLocal(`i`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pQ`),a=e.alloc(l*3),o=r.i32_const(a),s=r.i32_const(a),c=r.i32_const(a+l),u=r.i32_const(a+2*l),d=r.i32_add(r.getLocal(`ppreQ`),r.i32_const(0)),f=r.i32_add(r.getLocal(`ppreQ`),r.i32_const(l)),p=e.alloc(l*3),m=r.i32_const(p),g=e.alloc(l*3),v=r.i32_const(g),y=r.i32_const(g+l);t.addCode(r.call(_+`_normalize`,i,d),r.call(h+`_copy`,d,s),r.call(h+`_copy`,f,c),r.call(h+`_one`,u)),t.addCode(r.setLocal(`pCoef`,r.i32_add(r.getLocal(`ppreQ`),r.i32_const(l*3))),r.setLocal(`i`,r.i32_const(L.length-2)),r.block(r.loop(r.call(n+`_prepDblStep`,o,r.getLocal(`pCoef`)),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))),r.if(r.i32_load8_s(r.getLocal(`i`),R),[...r.call(n+`_prepAddStep`,d,o,r.getLocal(`pCoef`)),...r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z)))]),r.br_if(1,r.i32_eqz(r.getLocal(`i`))),r.setLocal(`i`,r.i32_sub(r.getLocal(`i`),r.i32_const(1))),r.br(0)))),t.addCode(r.call(n+`_mulByQ`,d,m),r.call(n+`_mulByQ`,m,v)),t.addCode(r.call(h+`_neg`,y,y),r.call(n+`_prepAddStep`,m,o,r.getLocal(`pCoef`)),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))),r.call(n+`_prepAddStep`,v,o,r.getLocal(`pCoef`)),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))))}function ue(){let t=e.addFunction(n+`__mulBy024Old`);t.addParam(`pEll0`,`i32`),t.addParam(`pEllVW`,`i32`),t.addParam(`pEllVV`,`i32`),t.addParam(`pR`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pEll0`),a=r.getLocal(`pEllVV`),o=r.getLocal(`pEllVW`),s=r.getLocal(`pR`),c=e.alloc(u),d=r.i32_const(c),f=r.i32_const(c),p=r.i32_const(c+l),m=r.i32_const(c+l*2),g=r.i32_const(c+l*3),_=r.i32_const(c+l*4),v=r.i32_const(c+l*5);t.addCode(r.call(h+`_copy`,i,f),r.call(h+`_zero`,p),r.call(h+`_copy`,a,m),r.call(h+`_zero`,g),r.call(h+`_copy`,o,_),r.call(h+`_zero`,v),r.call(I+`_mul`,d,s,s))}function de(){let t=e.addFunction(n+`__mulBy024`);t.addParam(`pEll0`,`i32`),t.addParam(`pEllVW`,`i32`),t.addParam(`pEllVV`,`i32`),t.addParam(`pR`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pEll0`),a=r.getLocal(`pEllVV`),s=r.getLocal(`pEllVW`),c=r.getLocal(`pR`),u=r.i32_add(r.getLocal(`pR`),r.i32_const(2*o)),d=r.i32_add(r.getLocal(`pR`),r.i32_const(4*o)),f=r.i32_add(r.getLocal(`pR`),r.i32_const(6*o)),p=r.i32_add(r.getLocal(`pR`),r.i32_const(8*o)),m=r.i32_add(r.getLocal(`pR`),r.i32_const(10*o)),g=r.i32_const(e.alloc(l)),_=r.i32_const(e.alloc(l)),v=r.i32_const(e.alloc(l)),y=r.i32_const(e.alloc(l)),b=r.i32_const(e.alloc(l)),x=r.i32_const(e.alloc(l)),S=r.i32_const(e.alloc(l)),C=r.i32_const(e.alloc(l)),w=r.i32_const(e.alloc(l)),T=r.i32_const(e.alloc(l)),E=r.i32_const(e.alloc(l));t.addCode(r.call(h+`_mul`,c,i,S),r.call(h+`_mul`,d,a,C),r.call(h+`_mul`,p,s,w),r.call(h+`_add`,c,p,v),r.call(h+`_add`,c,d,_),r.call(h+`_add`,u,f,y),r.call(h+`_add`,y,m,y),r.call(h+`_mul`,u,a,T),r.call(h+`_add`,T,w,b),r.call(h+`_mul`,r.i32_const(k),b,x),r.call(h+`_add`,x,S,c),r.call(h+`_mul`,m,s,b),r.call(h+`_add`,T,b,T),r.call(h+`_add`,b,C,b),r.call(h+`_mul`,r.i32_const(k),b,x),r.call(h+`_mul`,u,i,b),r.call(h+`_add`,T,b,T),r.call(h+`_add`,x,b,u),r.call(h+`_add`,i,a,g),r.call(h+`_mul`,_,g,b),r.call(h+`_add`,S,C,E),r.call(h+`_sub`,b,E,b),r.call(h+`_mul`,f,s,x),r.call(h+`_add`,T,x,T),r.call(h+`_add`,d,p,g),r.call(h+`_add`,b,x,d),r.call(h+`_add`,a,s,_),r.call(h+`_mul`,_,g,b),r.call(h+`_add`,C,w,E),r.call(h+`_sub`,b,E,b),r.call(h+`_mul`,r.i32_const(k),b,x),r.call(h+`_mul`,f,i,b),r.call(h+`_add`,T,b,T),r.call(h+`_add`,x,b,f),r.call(h+`_mul`,m,a,b),r.call(h+`_add`,T,b,T),r.call(h+`_mul`,r.i32_const(k),b,x),r.call(h+`_add`,i,s,g),r.call(h+`_mul`,v,g,b),r.call(h+`_add`,S,w,E),r.call(h+`_sub`,b,E,b),r.call(h+`_add`,x,b,p),r.call(h+`_add`,i,a,g),r.call(h+`_add`,g,s,g),r.call(h+`_mul`,y,g,b),r.call(h+`_sub`,b,T,m))}function fe(){let t=e.addFunction(n+`_millerLoop`);t.addParam(`ppreP`,`i32`),t.addParam(`ppreQ`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`pCoef`,`i32`),t.addLocal(`i`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`ppreP`),a=r.i32_add(r.getLocal(`ppreP`),r.i32_const(c)),o=r.getLocal(`pCoef`),s=r.i32_add(r.getLocal(`pCoef`),r.i32_const(l)),u=r.i32_add(r.getLocal(`pCoef`),r.i32_const(2*l)),d=e.alloc(l),f=r.i32_const(d),p=e.alloc(l),m=r.i32_const(p),g=r.getLocal(`r`);t.addCode(r.call(I+`_one`,g),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`ppreQ`),r.i32_const(l*3))),r.setLocal(`i`,r.i32_const(L.length-2)),r.block(r.loop(r.call(I+`_square`,g,g),r.call(h+`_mul1`,s,a,f),r.call(h+`_mul1`,u,i,m),r.call(n+`__mulBy024`,o,f,m,g),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))),r.if(r.i32_load8_s(r.getLocal(`i`),R),[...r.call(h+`_mul1`,s,a,f),...r.call(h+`_mul1`,u,i,m),...r.call(n+`__mulBy024`,o,f,m,g),...r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z)))]),r.br_if(1,r.i32_eqz(r.getLocal(`i`))),r.setLocal(`i`,r.i32_sub(r.getLocal(`i`),r.i32_const(1))),r.br(0)))),t.addCode(r.call(h+`_mul1`,s,a,f),r.call(h+`_mul1`,u,i,m),r.call(n+`__mulBy024`,o,f,m,g),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))),r.call(h+`_mul1`,s,a,f),r.call(h+`_mul1`,u,i,m),r.call(n+`__mulBy024`,o,f,m,g),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))))}function pe(t){let i=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[8376118865763821496583973867626364092589906065868298776909617916018768340080n,16469823323077808223889137241176536799009286646108169935659301613961712198316n],[21888242871839275220042445260109153167277707414472061641714758635765020556617n,0n],[11697423496358154304825782922584725312912383441159505038794027105778954184319n,303847389135065887422783454877609941456349188919719272345083954437860409601n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[3321304630594332808241809054958361220322477375291206261884409189760185844239n,5722266937896532885780051958958348231143373700109372999374820235121374419868n],[21888242871839275222246405745257275088696311157297823662689037894645226208582n,0n],[13512124006075453725662431877630910996106405091429524885779419978626457868503n,5418419548761466998357268504080738289687024511189653727029736280683514010267n],[2203960485148121921418603742825762020974279258880205651966n,0n],[10190819375481120917420622822672549775783927716138318623895010788866272024264n,21584395482704209334823622290379665147239961968378104390343953940207365798982n],[2203960485148121921418603742825762020974279258880205651967n,0n],[18566938241244942414004596690298913868373833782006617400804628704885040364344n,16165975933942742336466353786298926857552937457188450663314217659523851788715n]]],a=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[21575463638280843010398324269430826099269044274347216827212613867836435027261n,10307601595873709700152284273816112264069230130616436755625194854815875713954n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[3772000881919853776433695186713858239009073593817195771773381919316419345261n,2236595495967245188281701248203181795121068902605861227855261137820944008926n],[2203960485148121921418603742825762020974279258880205651966n,0n],[18429021223477853657660792034369865839114504446431234726392080002137598044644n,9344045779998320333812420223237981029506012124075525679208581902008406485703n]],[[1n,0n],[2581911344467009335267311115468803099551665605076196740867805258568234346338n,19937756971775647987995932169929341994314640652964949448313374472400716661030n],[2203960485148121921418603742825762020974279258880205651966n,0n],[5324479202449903542726783395506214481928257762400643279780343368557297135718n,16208900380737693084919495127334387981393726419856888799917914180988844123039n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[13981852324922362344252311234282257507216387789820983642040889267519694726527n,7629828391165209371577384193250820201684255241773809077146787135900891633097n]]],o=e.addFunction(n+`__frobeniusMap`+t);o.addParam(`x`,`i32`),o.addParam(`r`,`i32`);let s=o.getCodeBuilder();for(let n=0;n<6;n++){let r=n==0?s.getLocal(`x`):s.i32_add(s.getLocal(`x`),s.i32_const(n*l)),d=r,p=s.i32_add(s.getLocal(`x`),s.i32_const(n*l+c)),m=n==0?s.getLocal(`r`):s.i32_add(s.getLocal(`r`),s.i32_const(n*l)),g=m,_=s.i32_add(s.getLocal(`r`),s.i32_const(n*l+c)),v=u(i[Math.floor(n/3)][t%12],a[n%3][t%6]),b=e.alloc([...V.bigInt2BytesLE(y(v[0]),32),...V.bigInt2BytesLE(y(v[1]),32)]);t%2==1?o.addCode(s.call(f+`_copy`,d,g),s.call(f+`_neg`,p,_),s.call(h+`_mul`,m,s.i32_const(b),m)):o.addCode(s.call(h+`_mul`,r,s.i32_const(b),m))}function u(e,t){let n=BigInt(e[0]),i=BigInt(e[1]),a=BigInt(t[0]),o=BigInt(t[1]),s=[(n*a-i*o)%r,(n*o+i*a)%r];return ln(s[0])&&(s[0]+=r),s}}function me(){let t=e.addFunction(n+`__finalExponentiationFirstChunk`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=i,s=r.i32_add(i,r.i32_const(o*6)),c=r.getLocal(`r`),l=e.alloc(u),d=r.i32_const(l),f=d,p=r.i32_const(l+o*6),m=r.i32_const(e.alloc(u)),h=r.i32_const(e.alloc(u)),g=r.i32_const(e.alloc(u));t.addCode(r.call(P+`_copy`,a,f),r.call(P+`_neg`,s,p),r.call(I+`_inverse`,i,m),r.call(I+`_mul`,d,m,h),r.call(n+`__frobeniusMap2`,h,g),r.call(I+`_mul`,h,g,c))}function he(){let t=e.addFunction(n+`__cyclotomicSquare`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.i32_add(r.getLocal(`x`),r.i32_const(l)),o=r.i32_add(r.getLocal(`x`),r.i32_const(2*l)),s=r.i32_add(r.getLocal(`x`),r.i32_const(3*l)),c=r.i32_add(r.getLocal(`x`),r.i32_const(4*l)),u=r.i32_add(r.getLocal(`x`),r.i32_const(5*l)),d=r.getLocal(`r`),f=r.i32_add(r.getLocal(`r`),r.i32_const(l)),p=r.i32_add(r.getLocal(`r`),r.i32_const(2*l)),m=r.i32_add(r.getLocal(`r`),r.i32_const(3*l)),g=r.i32_add(r.getLocal(`r`),r.i32_const(4*l)),_=r.i32_add(r.getLocal(`r`),r.i32_const(5*l)),v=r.i32_const(e.alloc(l)),y=r.i32_const(e.alloc(l)),b=r.i32_const(e.alloc(l)),x=r.i32_const(e.alloc(l)),S=r.i32_const(e.alloc(l)),C=r.i32_const(e.alloc(l)),w=r.i32_const(e.alloc(l)),T=r.i32_const(e.alloc(l));t.addCode(r.call(h+`_mul`,i,c,w),r.call(h+`_mul`,c,r.i32_const(k),v),r.call(h+`_add`,i,v,v),r.call(h+`_add`,i,c,T),r.call(h+`_mul`,T,v,v),r.call(h+`_mul`,r.i32_const(k),w,T),r.call(h+`_add`,w,T,T),r.call(h+`_sub`,v,T,v),r.call(h+`_add`,w,w,y),r.call(h+`_mul`,s,o,w),r.call(h+`_mul`,o,r.i32_const(k),b),r.call(h+`_add`,s,b,b),r.call(h+`_add`,s,o,T),r.call(h+`_mul`,T,b,b),r.call(h+`_mul`,r.i32_const(k),w,T),r.call(h+`_add`,w,T,T),r.call(h+`_sub`,b,T,b),r.call(h+`_add`,w,w,x),r.call(h+`_mul`,a,u,w),r.call(h+`_mul`,u,r.i32_const(k),S),r.call(h+`_add`,a,S,S),r.call(h+`_add`,a,u,T),r.call(h+`_mul`,T,S,S),r.call(h+`_mul`,r.i32_const(k),w,T),r.call(h+`_add`,w,T,T),r.call(h+`_sub`,S,T,S),r.call(h+`_add`,w,w,C),r.call(h+`_sub`,v,i,d),r.call(h+`_add`,d,d,d),r.call(h+`_add`,v,d,d),r.call(h+`_add`,y,c,g),r.call(h+`_add`,g,g,g),r.call(h+`_add`,y,g,g),r.call(h+`_mul`,C,r.i32_const(j),T),r.call(h+`_add`,T,s,m),r.call(h+`_add`,m,m,m),r.call(h+`_add`,T,m,m),r.call(h+`_sub`,S,o,p),r.call(h+`_add`,p,p,p),r.call(h+`_add`,S,p,p),r.call(h+`_sub`,b,a,f),r.call(h+`_add`,f,f,f),r.call(h+`_add`,b,f,f),r.call(h+`_add`,x,u,_),r.call(h+`_add`,_,_,_),r.call(h+`_add`,x,_,_))}function ge(t,r){let i=re(t).map(e=>e==-1?255:e),a=e.alloc(i),o=e.addFunction(n+`__cyclotomicExp_`+r);o.addParam(`x`,`i32`),o.addParam(`r`,`i32`),o.addLocal(`bit`,`i32`),o.addLocal(`i`,`i32`);let s=o.getCodeBuilder(),c=s.getLocal(`x`),l=s.getLocal(`r`),d=s.i32_const(e.alloc(u));o.addCode(s.call(I+`_conjugate`,c,d),s.call(I+`_one`,l),s.if(s.teeLocal(`bit`,s.i32_load8_s(s.i32_const(i.length-1),a)),s.if(s.i32_eq(s.getLocal(`bit`),s.i32_const(1)),s.call(I+`_mul`,l,c,l),s.call(I+`_mul`,l,d,l))),s.setLocal(`i`,s.i32_const(i.length-2)),s.block(s.loop(s.call(n+`__cyclotomicSquare`,l,l),s.if(s.teeLocal(`bit`,s.i32_load8_s(s.getLocal(`i`),a)),s.if(s.i32_eq(s.getLocal(`bit`),s.i32_const(1)),s.call(I+`_mul`,l,c,l),s.call(I+`_mul`,l,d,l))),s.br_if(1,s.i32_eqz(s.getLocal(`i`))),s.setLocal(`i`,s.i32_sub(s.getLocal(`i`),s.i32_const(1))),s.br(0))))}function _e(){he(),ge(4965661367192848881n,`w0`);let t=e.addFunction(n+`__finalExponentiationLastChunk`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.getLocal(`r`),o=r.i32_const(e.alloc(u)),s=r.i32_const(e.alloc(u)),c=r.i32_const(e.alloc(u)),l=r.i32_const(e.alloc(u)),d=r.i32_const(e.alloc(u)),f=r.i32_const(e.alloc(u)),p=r.i32_const(e.alloc(u)),m=r.i32_const(e.alloc(u)),h=r.i32_const(e.alloc(u)),g=r.i32_const(e.alloc(u)),_=r.i32_const(e.alloc(u)),v=r.i32_const(e.alloc(u)),y=r.i32_const(e.alloc(u)),b=r.i32_const(e.alloc(u)),x=r.i32_const(e.alloc(u)),S=r.i32_const(e.alloc(u)),C=r.i32_const(e.alloc(u)),w=r.i32_const(e.alloc(u)),T=r.i32_const(e.alloc(u)),E=r.i32_const(e.alloc(u)),D=r.i32_const(e.alloc(u));t.addCode(r.call(n+`__cyclotomicExp_w0`,i,o),r.call(I+`_conjugate`,o,o),r.call(n+`__cyclotomicSquare`,o,s),r.call(n+`__cyclotomicSquare`,s,c),r.call(I+`_mul`,c,s,l),r.call(n+`__cyclotomicExp_w0`,l,d),r.call(I+`_conjugate`,d,d),r.call(n+`__cyclotomicSquare`,d,f),r.call(n+`__cyclotomicExp_w0`,f,p),r.call(I+`_conjugate`,p,p),r.call(I+`_conjugate`,l,m),r.call(I+`_conjugate`,p,h),r.call(I+`_mul`,h,d,g),r.call(I+`_mul`,g,m,_),r.call(I+`_mul`,_,s,v),r.call(I+`_mul`,_,d,y),r.call(I+`_mul`,y,i,b),r.call(n+`__frobeniusMap1`,v,x),r.call(I+`_mul`,x,b,S),r.call(n+`__frobeniusMap2`,_,C),r.call(I+`_mul`,C,S,w),r.call(I+`_conjugate`,i,T),r.call(I+`_mul`,T,v,E),r.call(n+`__frobeniusMap3`,E,D),r.call(I+`_mul`,D,w,a))}function ve(){me(),_e();let t=e.addFunction(n+`_finalExponentiation`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.getLocal(`r`),o=r.i32_const(e.alloc(u));t.addCode(r.call(n+`__finalExponentiationFirstChunk`,i,o),r.call(n+`__finalExponentiationLastChunk`,o,a))}function ye(){let t=e.addFunction(n+`_finalExponentiationOld`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=e.alloc(V.bigInt2BytesLE(552484233613224096312617126783173147097382103762957654188882734314196910839907541213974502761540629817009608548654680343627701153829446747810907373256841551006201639677726139946029199968412598804882391702273019083653272047566316584365559776493027495458238373902875937659943504873220554161550525926302303331747463515644711876653177129578303191095900909191624817826566688241804408081892785725967931714097716709526092261278071952560171111444072049229123565057483750161460024353346284167282452756217662335528813519139808291170539072125381230815729071544861602750936964829313608137325426383735122175229541155376346436093930287402089517426973178917569713384748081827255472576937471496195752727188261435633271238710131736096299798168852925540549342330775279877006784354801422249722573783561685179618816480037695005515426162362431072245638324744480n,352)),i=t.getCodeBuilder();t.addCode(i.call(I+`_exp`,i.getLocal(`x`),i.i32_const(r),i.i32_const(352),i.getLocal(`r`)))}let be=e.alloc(te),xe=e.alloc(ne);function Se(t){let r=e.addFunction(n+`_pairingEq`+t);for(let e=0;e<t;e++)r.addParam(`p_`+e,`i32`),r.addParam(`q_`+e,`i32`);r.addParam(`c`,`i32`),r.setReturnType(`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(u)),o=i.i32_const(e.alloc(u));r.addCode(i.call(I+`_one`,a));for(let e=0;e<t;e++)r.addCode(i.call(n+`_prepareG1`,i.getLocal(`p_`+e),i.i32_const(be))),r.addCode(i.call(n+`_prepareG2`,i.getLocal(`q_`+e),i.i32_const(xe))),r.addCode(i.call(n+`_millerLoop`,i.i32_const(be),i.i32_const(xe),o)),r.addCode(i.call(I+`_mul`,a,o,a));r.addCode(i.call(n+`_finalExponentiation`,a,a)),r.addCode(i.call(I+`_eq`,a,i.getLocal(`c`)))}function Ce(){let t=e.addFunction(n+`_pairing`);t.addParam(`p`,`i32`),t.addParam(`q`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.i32_const(e.alloc(u));t.addCode(r.call(n+`_prepareG1`,r.getLocal(`p`),r.i32_const(be))),t.addCode(r.call(n+`_prepareG2`,r.getLocal(`q`),r.i32_const(xe))),t.addCode(r.call(n+`_millerLoop`,r.i32_const(be),r.i32_const(xe),i)),t.addCode(r.call(n+`_finalExponentiation`,i,r.getLocal(`r`)))}oe(),se(),ae(),le(),de(),ue(),fe();for(let t=0;t<10;t++)pe(t),e.exportFunction(n+`__frobeniusMap`+t);ye(),ve();for(let t=1;t<=5;t++)Se(t),e.exportFunction(n+`_pairingEq`+t);Ce(),e.exportFunction(n+`_pairing`),e.exportFunction(n+`_prepareG1`),e.exportFunction(n+`_prepareG2`),e.exportFunction(n+`_millerLoop`),e.exportFunction(n+`_finalExponentiation`),e.exportFunction(n+`_finalExponentiationOld`),e.exportFunction(n+`__mulBy024`),e.exportFunction(n+`__mulBy024Old`),e.exportFunction(n+`__cyclotomicSquare`),e.exportFunction(n+`__cyclotomicExp_w0`)};const H=Be,dn=Tt,fn=Ot,pn=Mt,mn=Ft,hn=Vt,gn=Kt,_n=qt,vn=Jt,yn=Yt,{bitLength:bn,isOdd:xn,isNegative:Sn}=Ye;var Cn=function(e,t){let n=t||`bls12381`;if(e.modules[n])return n;let r=4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787n,i=52435875175126190479447740508185965837690552500527637822603658699938581184513n,a=Math.floor((bn(r-1n)-1)/64)+1,o=a*8,s=o,c=s*2,l=s*12,u=Math.floor((bn(i-1n)-1)/64)+1,d=u*8,f=d,p=e.alloc(H.bigInt2BytesLE(i,f)),m=dn(e,r,`f1m`,`intq`);fn(e,i,`fr`,`frm`,`intr`);let h=e.alloc(H.bigInt2BytesLE(x(4n),s)),g=hn(e,`g1m`,`f1m`,h);gn(e,`frm`,`frm`,`frm`,`frm_mul`),_n(e,`pol`,`frm`),vn(e,`qap`,`frm`);let _=pn(e,`f1m_neg`,`f2m`,`f1m`),v=e.alloc([...H.bigInt2BytesLE(x(4n),s),...H.bigInt2BytesLE(x(4n),s)]),y=hn(e,`g2m`,`f2m`,v);function b(t,n){let r=e.addFunction(t);r.addParam(`pG`,`i32`),r.addParam(`pFr`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(d));r.addCode(i.call(`frm_fromMontgomery`,i.getLocal(`pFr`),a),i.call(n,i.getLocal(`pG`),a,i.i32_const(d),i.getLocal(`pr`))),e.exportFunction(t)}b(`g1m_timesFr`,`g1m_timesScalar`),gn(e,`g1m`,`g1m`,`frm`,`g1m_timesFr`),b(`g2m_timesFr`,`g2m_timesScalar`),gn(e,`g2m`,`g2m`,`frm`,`g2m_timesFr`),b(`g1m_timesFrAffine`,`g1m_timesScalarAffine`),b(`g2m_timesFrAffine`,`g2m_timesScalarAffine`),yn(e,`frm_batchApplyKey`,`fmr`,`frm`,d,d,d,`frm_mul`),yn(e,`g1m_batchApplyKey`,`g1m`,`frm`,o*3,o*3,d,`g1m_timesFr`),yn(e,`g1m_batchApplyKeyMixed`,`g1m`,`frm`,o*2,o*3,d,`g1m_timesFrAffine`),yn(e,`g2m_batchApplyKey`,`g2m`,`frm`,o*2*3,o*3*2,d,`g2m_timesFr`),yn(e,`g2m_batchApplyKeyMixed`,`g2m`,`frm`,o*2*2,o*3*2,d,`g2m_timesFrAffine`);function x(e){return BigInt(e)*(1n<<BigInt(s*8))%r}let S=[3685416753713387016781088315183077757961620795782546409894578378688607592378376318836054947676345821548104185464507n,1339506544944476473020471379941921221584933875938349620426543736416511423956333506472724655353366534992391756441569n,1n],C=e.alloc([...H.bigInt2BytesLE(x(S[0]),s),...H.bigInt2BytesLE(x(S[1]),s),...H.bigInt2BytesLE(x(S[2]),s)]),w=[0n,1n,0n],T=e.alloc([...H.bigInt2BytesLE(x(w[0]),s),...H.bigInt2BytesLE(x(w[1]),s),...H.bigInt2BytesLE(x(w[2]),s)]),E=[[352701069587466618187139116011060144890029952792775240219908644239793785735715026873347600343865175952761926303160n,3059144344244213709971259814753781636986470325476647558659373206291635324768958432433509563104347017837885763365758n],[1985150602287291935568054521177171638300868978215655730859378665066344726373823718423869104263333984641494340347905n,927553665492332455747201965776037880757740193453592970025027978793976877002675564980949289727957565575433344219582n],[1n,0n]],D=e.alloc([...H.bigInt2BytesLE(x(E[0][0]),s),...H.bigInt2BytesLE(x(E[0][1]),s),...H.bigInt2BytesLE(x(E[1][0]),s),...H.bigInt2BytesLE(x(E[1][1]),s),...H.bigInt2BytesLE(x(E[2][0]),s),...H.bigInt2BytesLE(x(E[2][1]),s)]),O=[[0n,0n],[1n,0n],[0n,0n]],k=e.alloc([...H.bigInt2BytesLE(x(O[0][0]),s),...H.bigInt2BytesLE(x(O[0][1]),s),...H.bigInt2BytesLE(x(O[1][0]),s),...H.bigInt2BytesLE(x(O[1][1]),s),...H.bigInt2BytesLE(x(O[2][0]),s),...H.bigInt2BytesLE(x(O[2][1]),s)]),A=e.alloc([...H.bigInt2BytesLE(x(1n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s),...H.bigInt2BytesLE(x(0n),s)]),j=e.alloc([...H.bigInt2BytesLE(x(1n),s),...H.bigInt2BytesLE(x(1n),s)]);function M(){let t=e.addFunction(_+`_mulNR`);t.addParam(`x`,`i32`),t.addParam(`pr`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s)),i=n.getLocal(`x`),a=n.i32_add(n.getLocal(`x`),n.i32_const(s)),o=n.getLocal(`pr`),c=n.i32_add(n.getLocal(`pr`),n.i32_const(s));t.addCode(n.call(m+`_copy`,i,r),n.call(m+`_sub`,i,a,o),n.call(m+`_add`,r,a,c))}M();let N=mn(e,_+`_mulNR`,`f6m`,`f2m`);function P(){let t=e.addFunction(N+`_mulNR`);t.addParam(`x`,`i32`),t.addParam(`pr`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s*2));t.addCode(n.call(_+`_copy`,n.getLocal(`x`),r),n.call(_+`_mulNR`,n.i32_add(n.getLocal(`x`),n.i32_const(o*4)),n.getLocal(`pr`)),n.call(_+`_copy`,n.i32_add(n.getLocal(`x`),n.i32_const(o*2)),n.i32_add(n.getLocal(`pr`),n.i32_const(o*4))),n.call(_+`_copy`,r,n.i32_add(n.getLocal(`pr`),n.i32_const(o*2))))}P();let F=pn(e,N+`_mulNR`,`ftm`,N),I=ie(15132376222941642752n),L=e.alloc(I),R=3*c,z=I.length-1,ee=I.reduce((e,t)=>e+(t==0?0:1),0)+z+1,B=6*o,te=3*o*2+ee*R,ne=15132376222941642752n;e.modules[n]={n64q:a,n64r:u,n8q:o,n8r:d,pG1gen:C,pG1zero:T,pG1b:h,pG2gen:D,pG2zero:k,pG2b:v,pq:e.modules.f1m.pq,pr:p,pOneT:A,r:i,q:r,prePSize:B,preQSize:te};function re(e){let t=e,n=[];for(;t>0n;){if(xn(t)){let e=2-Number(t%4n);n.push(e),t-=BigInt(e)}else n.push(0);t>>=1n}return n}function ie(e){let t=e,n=[];for(;t>0n;)xn(t)?n.push(1):n.push(0),t>>=1n;return n}function ae(){let t=e.addFunction(n+`_prepareG1`);t.addParam(`pP`,`i32`),t.addParam(`ppreP`,`i32`);let r=t.getCodeBuilder();t.addCode(r.call(g+`_normalize`,r.getLocal(`pP`),r.getLocal(`ppreP`)))}function oe(){let t=e.addFunction(n+`_prepDblStep`);t.addParam(`R`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`R`),a=r.i32_add(r.getLocal(`R`),r.i32_const(2*o)),s=r.i32_add(r.getLocal(`R`),r.i32_const(4*o)),l=r.getLocal(`r`),u=r.i32_add(r.getLocal(`r`),r.i32_const(2*o)),d=r.i32_add(r.getLocal(`r`),r.i32_const(4*o)),f=r.i32_const(e.alloc(c)),p=r.i32_const(e.alloc(c)),m=r.i32_const(e.alloc(c)),h=r.i32_const(e.alloc(c)),g=r.i32_const(e.alloc(c));t.addCode(r.call(_+`_square`,i,l),r.call(_+`_square`,a,p),r.call(_+`_square`,p,m),r.call(_+`_add`,p,i,u),r.call(_+`_square`,u,u),r.call(_+`_sub`,u,l,u),r.call(_+`_sub`,u,m,u),r.call(_+`_add`,u,u,u),r.call(_+`_add`,l,l,h),r.call(_+`_add`,h,l,h),r.call(_+`_add`,i,h,d),r.call(_+`_square`,h,g),r.call(_+`_square`,s,f),r.call(_+`_sub`,g,u,i),r.call(_+`_sub`,i,u,i),r.call(_+`_add`,s,a,s),r.call(_+`_square`,s,s),r.call(_+`_sub`,s,p,s),r.call(_+`_sub`,s,f,s),r.call(_+`_sub`,u,i,a),r.call(_+`_mul`,a,h,a),r.call(_+`_add`,m,m,m),r.call(_+`_add`,m,m,m),r.call(_+`_add`,m,m,m),r.call(_+`_sub`,a,m,a),r.call(_+`_mul`,h,f,u),r.call(_+`_add`,u,u,u),r.call(_+`_neg`,u,u),r.call(_+`_square`,d,d),r.call(_+`_sub`,d,l,d),r.call(_+`_sub`,d,g,d),r.call(_+`_add`,p,p,p),r.call(_+`_add`,p,p,p),r.call(_+`_sub`,d,p,d),r.call(_+`_mul`,s,f,l),r.call(_+`_add`,l,l,l))}function se(){let t=e.addFunction(n+`_prepAddStep`);t.addParam(`R`,`i32`),t.addParam(`Q`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`R`),a=r.i32_add(r.getLocal(`R`),r.i32_const(2*o)),s=r.i32_add(r.getLocal(`R`),r.i32_const(4*o)),l=r.getLocal(`Q`),u=r.i32_add(r.getLocal(`Q`),r.i32_const(2*o)),d=r.getLocal(`r`),f=r.i32_add(r.getLocal(`r`),r.i32_const(2*o)),p=r.i32_add(r.getLocal(`r`),r.i32_const(4*o)),m=r.i32_const(e.alloc(c)),h=r.i32_const(e.alloc(c)),g=r.i32_const(e.alloc(c)),v=r.i32_const(e.alloc(c)),y=r.i32_const(e.alloc(c)),b=r.i32_const(e.alloc(c)),x=r.i32_const(e.alloc(c)),S=r.i32_const(e.alloc(c)),C=r.i32_const(e.alloc(c)),w=r.i32_const(e.alloc(c)),T=r.i32_const(e.alloc(c));t.addCode(r.call(_+`_square`,s,m),r.call(_+`_square`,u,h),r.call(_+`_mul`,m,l,v),r.call(_+`_add`,u,s,f),r.call(_+`_square`,f,f),r.call(_+`_sub`,f,h,f),r.call(_+`_sub`,f,m,f),r.call(_+`_mul`,f,m,f),r.call(_+`_sub`,v,i,y),r.call(_+`_square`,y,b),r.call(_+`_add`,b,b,x),r.call(_+`_add`,x,x,x),r.call(_+`_mul`,x,y,S),r.call(_+`_sub`,f,a,C),r.call(_+`_sub`,C,a,C),r.call(_+`_mul`,C,l,p),r.call(_+`_mul`,x,i,w),r.call(_+`_square`,C,i),r.call(_+`_sub`,i,S,i),r.call(_+`_sub`,i,w,i),r.call(_+`_sub`,i,w,i),r.call(_+`_add`,s,y,s),r.call(_+`_square`,s,s),r.call(_+`_sub`,s,m,s),r.call(_+`_sub`,s,b,s),r.call(_+`_add`,u,s,d),r.call(_+`_sub`,w,i,T),r.call(_+`_mul`,T,C,T),r.call(_+`_mul`,a,S,v),r.call(_+`_add`,v,v,v),r.call(_+`_sub`,T,v,a),r.call(_+`_square`,d,d),r.call(_+`_sub`,d,h,d),r.call(_+`_square`,s,g),r.call(_+`_sub`,d,g,d),r.call(_+`_add`,p,p,p),r.call(_+`_sub`,p,d,p),r.call(_+`_add`,s,s,d),r.call(_+`_neg`,C,C),r.call(_+`_add`,C,C,f))}function ce(){let t=e.addFunction(n+`_prepareG2`);t.addParam(`pQ`,`i32`),t.addParam(`ppreQ`,`i32`),t.addLocal(`pCoef`,`i32`),t.addLocal(`i`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pQ`),a=e.alloc(c*3),o=r.i32_const(a),s=r.getLocal(`ppreQ`);t.addCode(r.call(y+`_normalize`,i,s),r.if(r.call(y+`_isZero`,s),r.ret([])),r.call(y+`_copy`,s,o),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`ppreQ`),r.i32_const(c*3)))),t.addCode(r.setLocal(`i`,r.i32_const(I.length-2)),r.block(r.loop(r.call(n+`_prepDblStep`,o,r.getLocal(`pCoef`)),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(R))),r.if(r.i32_load8_s(r.getLocal(`i`),L),[...r.call(n+`_prepAddStep`,o,s,r.getLocal(`pCoef`)),...r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(R)))]),r.br_if(1,r.i32_eqz(r.getLocal(`i`))),r.setLocal(`i`,r.i32_sub(r.getLocal(`i`),r.i32_const(1))),r.br(0))))}function le(){let t=e.addFunction(N+`_mul1`);t.addParam(`pA`,`i32`),t.addParam(`pC1`,`i32`),t.addParam(`pR`,`i32`);let n=t.getCodeBuilder(),r=n.getLocal(`pA`),i=n.i32_add(n.getLocal(`pA`),n.i32_const(s*2)),a=n.i32_add(n.getLocal(`pA`),n.i32_const(s*4)),o=n.getLocal(`pC1`),c=n.getLocal(`pR`),l=n.i32_add(n.getLocal(`pR`),n.i32_const(s*2)),u=n.i32_add(n.getLocal(`pR`),n.i32_const(s*4)),d=n.i32_const(e.alloc(s*2)),f=n.i32_const(e.alloc(s*2));t.addCode(n.call(_+`_add`,r,i,d),n.call(_+`_add`,i,a,f),n.call(_+`_mul`,i,o,u),n.call(_+`_mul`,f,o,c),n.call(_+`_sub`,c,u,c),n.call(_+`_mulNR`,c,c),n.call(_+`_mul`,d,o,l),n.call(_+`_sub`,l,u,l))}le();function ue(){let t=e.addFunction(N+`_mul01`);t.addParam(`pA`,`i32`),t.addParam(`pC0`,`i32`),t.addParam(`pC1`,`i32`),t.addParam(`pR`,`i32`);let n=t.getCodeBuilder(),r=n.getLocal(`pA`),i=n.i32_add(n.getLocal(`pA`),n.i32_const(s*2)),a=n.i32_add(n.getLocal(`pA`),n.i32_const(s*4)),o=n.getLocal(`pC0`),c=n.getLocal(`pC1`),l=n.getLocal(`pR`),u=n.i32_add(n.getLocal(`pR`),n.i32_const(s*2)),d=n.i32_add(n.getLocal(`pR`),n.i32_const(s*4)),f=n.i32_const(e.alloc(s*2)),p=n.i32_const(e.alloc(s*2)),m=n.i32_const(e.alloc(s*2)),h=n.i32_const(e.alloc(s*2));t.addCode(n.call(_+`_mul`,r,o,f),n.call(_+`_mul`,i,c,p),n.call(_+`_add`,r,i,m),n.call(_+`_add`,r,a,h),n.call(_+`_add`,i,a,l),n.call(_+`_mul`,l,c,l),n.call(_+`_sub`,l,p,l),n.call(_+`_mulNR`,l,l),n.call(_+`_add`,l,f,l),n.call(_+`_add`,o,c,u),n.call(_+`_mul`,u,m,u),n.call(_+`_sub`,u,f,u),n.call(_+`_sub`,u,p,u),n.call(_+`_mul`,h,o,d),n.call(_+`_sub`,d,f,d),n.call(_+`_add`,d,p,d))}ue();function de(){let t=e.addFunction(F+`_mul014`);t.addParam(`pA`,`i32`),t.addParam(`pC0`,`i32`),t.addParam(`pC1`,`i32`),t.addParam(`pC4`,`i32`),t.addParam(`pR`,`i32`);let n=t.getCodeBuilder(),r=n.getLocal(`pA`),i=n.i32_add(n.getLocal(`pA`),n.i32_const(s*6)),a=n.getLocal(`pC0`),o=n.getLocal(`pC1`),c=n.getLocal(`pC4`),l=n.i32_const(e.alloc(s*6)),u=n.i32_const(e.alloc(s*6)),d=n.i32_const(e.alloc(s*2)),f=n.getLocal(`pR`),p=n.i32_add(n.getLocal(`pR`),n.i32_const(s*6));t.addCode(n.call(N+`_mul01`,r,a,o,l),n.call(N+`_mul1`,i,c,u),n.call(_+`_add`,o,c,d),n.call(N+`_add`,i,r,p),n.call(N+`_mul01`,p,a,d,p),n.call(N+`_sub`,p,l,p),n.call(N+`_sub`,p,u,p),n.call(N+`_copy`,u,f),n.call(N+`_mulNR`,f,f),n.call(N+`_add`,f,l,f))}de();function fe(){let t=e.addFunction(n+`_ell`);t.addParam(`pP`,`i32`),t.addParam(`pCoefs`,`i32`),t.addParam(`pF`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pP`),a=r.i32_add(r.getLocal(`pP`),r.i32_const(o)),c=r.getLocal(`pF`),l=r.getLocal(`pCoefs`),u=r.i32_add(r.getLocal(`pCoefs`),r.i32_const(s)),d=r.i32_add(r.getLocal(`pCoefs`),r.i32_const(s*2)),f=r.i32_add(r.getLocal(`pCoefs`),r.i32_const(s*3)),p=r.i32_add(r.getLocal(`pCoefs`),r.i32_const(s*4)),h=e.alloc(s*2),g=r.i32_const(h),_=r.i32_const(h),v=r.i32_const(h+s),y=e.alloc(s*2),b=r.i32_const(y),x=r.i32_const(y),S=r.i32_const(y+s);t.addCode(r.call(m+`_mul`,l,a,_),r.call(m+`_mul`,u,a,v),r.call(m+`_mul`,d,i,x),r.call(m+`_mul`,f,i,S),r.call(F+`_mul014`,c,p,b,g,c))}fe();function pe(){let t=e.addFunction(n+`_millerLoop`);t.addParam(`ppreP`,`i32`),t.addParam(`ppreQ`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`pCoef`,`i32`),t.addLocal(`i`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`ppreP`),a=r.getLocal(`pCoef`),o=r.getLocal(`r`);t.addCode(r.call(F+`_one`,o),r.if(r.call(g+`_isZero`,i),r.ret([])),r.if(r.call(g+`_isZero`,r.getLocal(`ppreQ`)),r.ret([])),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`ppreQ`),r.i32_const(c*3))),r.setLocal(`i`,r.i32_const(I.length-2)),r.block(r.loop(r.call(n+`_ell`,i,a,o),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(R))),r.if(r.i32_load8_s(r.getLocal(`i`),L),[...r.call(n+`_ell`,i,a,o),...r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(R)))]),r.call(F+`_square`,o,o),r.br_if(1,r.i32_eq(r.getLocal(`i`),r.i32_const(1))),r.setLocal(`i`,r.i32_sub(r.getLocal(`i`),r.i32_const(1))),r.br(0))),r.call(n+`_ell`,i,a,o)),t.addCode(r.call(F+`_conjugate`,o,o))}function me(t){let n=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[3850754370037169011952147076051364057158807420970682438676050522613628423219637725072182697113062777891589506424760n,151655185184498381465642749684540099398075398968325446656007613510403227271200139370504932015952886146304766135027n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620351n,0n],[2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n,1028732146235106349975324479215795277384839936929757896155643118032610843298655225875571310552543014690878354869257n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[3125332594171059424908108096204648978570118281977575435832422631601824034463382777937621250592425535493320683825557n,877076961050607968509681729531255177986764537961432449499635504522207616027455086505066378536590128544573588734230n],[4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559786n,0n],[151655185184498381465642749684540099398075398968325446656007613510403227271200139370504932015952886146304766135027n,3850754370037169011952147076051364057158807420970682438676050522613628423219637725072182697113062777891589506424760n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[1028732146235106349975324479215795277384839936929757896155643118032610843298655225875571310552543014690878354869257n,2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939437n,0n],[877076961050607968509681729531255177986764537961432449499635504522207616027455086505066378536590128544573588734230n,3125332594171059424908108096204648978570118281977575435832422631601824034463382777937621250592425535493320683825557n]]],i=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[0n,4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[0n,1n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[0n,793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n]],[[1n,0n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939437n,0n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559786n,0n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620351n,0n]]],a=e.addFunction(F+`_frobeniusMap`+t);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let l=a.getCodeBuilder();for(let r=0;r<6;r++){let d=r==0?l.getLocal(`x`):l.i32_add(l.getLocal(`x`),l.i32_const(r*c)),f=d,p=l.i32_add(l.getLocal(`x`),l.i32_const(r*c+s)),h=r==0?l.getLocal(`r`):l.i32_add(l.getLocal(`r`),l.i32_const(r*c)),g=h,v=l.i32_add(l.getLocal(`r`),l.i32_const(r*c+s)),y=u(n[Math.floor(r/3)][t%12],i[r%3][t%6]),b=e.alloc([...H.bigInt2BytesLE(x(y[0]),o),...H.bigInt2BytesLE(x(y[1]),o)]);t%2==1?a.addCode(l.call(m+`_copy`,f,g),l.call(m+`_neg`,p,v),l.call(_+`_mul`,h,l.i32_const(b),h)):a.addCode(l.call(_+`_mul`,d,l.i32_const(b),h))}function u(e,t){let n=e[0],i=e[1],a=t[0],o=t[1],s=[(n*a-i*o)%r,(n*o+i*a)%r];return Sn(s[0])&&(s[0]+=r),s}}function he(){let t=e.addFunction(n+`__cyclotomicSquare`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.i32_add(r.getLocal(`x`),r.i32_const(c)),o=r.i32_add(r.getLocal(`x`),r.i32_const(2*c)),s=r.i32_add(r.getLocal(`x`),r.i32_const(3*c)),l=r.i32_add(r.getLocal(`x`),r.i32_const(4*c)),u=r.i32_add(r.getLocal(`x`),r.i32_const(5*c)),d=r.getLocal(`r`),f=r.i32_add(r.getLocal(`r`),r.i32_const(c)),p=r.i32_add(r.getLocal(`r`),r.i32_const(2*c)),m=r.i32_add(r.getLocal(`r`),r.i32_const(3*c)),h=r.i32_add(r.getLocal(`r`),r.i32_const(4*c)),g=r.i32_add(r.getLocal(`r`),r.i32_const(5*c)),v=r.i32_const(e.alloc(c)),y=r.i32_const(e.alloc(c)),b=r.i32_const(e.alloc(c)),x=r.i32_const(e.alloc(c)),S=r.i32_const(e.alloc(c)),C=r.i32_const(e.alloc(c)),w=r.i32_const(e.alloc(c)),T=r.i32_const(e.alloc(c));t.addCode(r.call(_+`_mul`,i,l,w),r.call(_+`_mulNR`,l,v),r.call(_+`_add`,i,v,v),r.call(_+`_add`,i,l,T),r.call(_+`_mul`,T,v,v),r.call(_+`_mulNR`,w,T),r.call(_+`_add`,w,T,T),r.call(_+`_sub`,v,T,v),r.call(_+`_add`,w,w,y),r.call(_+`_mul`,s,o,w),r.call(_+`_mulNR`,o,b),r.call(_+`_add`,s,b,b),r.call(_+`_add`,s,o,T),r.call(_+`_mul`,T,b,b),r.call(_+`_mulNR`,w,T),r.call(_+`_add`,w,T,T),r.call(_+`_sub`,b,T,b),r.call(_+`_add`,w,w,x),r.call(_+`_mul`,a,u,w),r.call(_+`_mulNR`,u,S),r.call(_+`_add`,a,S,S),r.call(_+`_add`,a,u,T),r.call(_+`_mul`,T,S,S),r.call(_+`_mulNR`,w,T),r.call(_+`_add`,w,T,T),r.call(_+`_sub`,S,T,S),r.call(_+`_add`,w,w,C),r.call(_+`_sub`,v,i,d),r.call(_+`_add`,d,d,d),r.call(_+`_add`,v,d,d),r.call(_+`_add`,y,l,h),r.call(_+`_add`,h,h,h),r.call(_+`_add`,y,h,h),r.call(_+`_mul`,C,r.i32_const(j),T),r.call(_+`_add`,T,s,m),r.call(_+`_add`,m,m,m),r.call(_+`_add`,T,m,m),r.call(_+`_sub`,S,o,p),r.call(_+`_add`,p,p,p),r.call(_+`_add`,S,p,p),r.call(_+`_sub`,b,a,f),r.call(_+`_add`,f,f,f),r.call(_+`_add`,b,f,f),r.call(_+`_add`,x,u,g),r.call(_+`_add`,g,g,g),r.call(_+`_add`,x,g,g))}function ge(t,r,i){let a=re(t).map(e=>e==-1?255:e),o=e.alloc(a),s=e.addFunction(n+`__cyclotomicExp_`+i);s.addParam(`x`,`i32`),s.addParam(`r`,`i32`),s.addLocal(`bit`,`i32`),s.addLocal(`i`,`i32`);let c=s.getCodeBuilder(),u=c.getLocal(`x`),d=c.getLocal(`r`),f=c.i32_const(e.alloc(l));s.addCode(c.call(F+`_conjugate`,u,f),c.call(F+`_one`,d),c.if(c.teeLocal(`bit`,c.i32_load8_s(c.i32_const(a.length-1),o)),c.if(c.i32_eq(c.getLocal(`bit`),c.i32_const(1)),c.call(F+`_mul`,d,u,d),c.call(F+`_mul`,d,f,d))),c.setLocal(`i`,c.i32_const(a.length-2)),c.block(c.loop(c.call(n+`__cyclotomicSquare`,d,d),c.if(c.teeLocal(`bit`,c.i32_load8_s(c.getLocal(`i`),o)),c.if(c.i32_eq(c.getLocal(`bit`),c.i32_const(1)),c.call(F+`_mul`,d,u,d),c.call(F+`_mul`,d,f,d))),c.br_if(1,c.i32_eqz(c.getLocal(`i`))),c.setLocal(`i`,c.i32_sub(c.getLocal(`i`),c.i32_const(1))),c.br(0)))),r&&s.addCode(c.call(F+`_conjugate`,d,d))}function _e(){he(),ge(ne,!0,`w0`);let t=e.addFunction(n+`_finalExponentiation`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.getLocal(`r`),o=r.i32_const(e.alloc(l)),s=r.i32_const(e.alloc(l)),c=r.i32_const(e.alloc(l)),u=r.i32_const(e.alloc(l)),d=r.i32_const(e.alloc(l)),f=r.i32_const(e.alloc(l)),p=r.i32_const(e.alloc(l));t.addCode(r.call(F+`_frobeniusMap6`,i,o),r.call(F+`_inverse`,i,s),r.call(F+`_mul`,o,s,c),r.call(F+`_copy`,c,s),r.call(F+`_frobeniusMap2`,c,c),r.call(F+`_mul`,c,s,c),r.call(n+`__cyclotomicSquare`,c,s),r.call(F+`_conjugate`,s,s),r.call(n+`__cyclotomicExp_w0`,c,u),r.call(n+`__cyclotomicSquare`,u,d),r.call(F+`_mul`,s,u,f),r.call(n+`__cyclotomicExp_w0`,f,s),r.call(n+`__cyclotomicExp_w0`,s,o),r.call(n+`__cyclotomicExp_w0`,o,p),r.call(F+`_mul`,p,d,p),r.call(n+`__cyclotomicExp_w0`,p,d),r.call(F+`_conjugate`,f,f),r.call(F+`_mul`,d,f,d),r.call(F+`_mul`,d,c,d),r.call(F+`_conjugate`,c,f),r.call(F+`_mul`,s,c,s),r.call(F+`_frobeniusMap3`,s,s),r.call(F+`_mul`,p,f,p),r.call(F+`_frobeniusMap1`,p,p),r.call(F+`_mul`,u,o,u),r.call(F+`_frobeniusMap2`,u,u),r.call(F+`_mul`,u,s,u),r.call(F+`_mul`,u,p,u),r.call(F+`_mul`,u,d,a))}function ve(){let t=e.addFunction(n+`_finalExponentiationOld`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=e.alloc(H.bigInt2BytesLE(322277361516934140462891564586510139908379969514828494218366688025288661041104682794998680497580008899973249814104447692778988208376779573819485263026159588510513834876303014016798809919343532899164848730280942609956670917565618115867287399623286813270357901731510188149934363360381614501334086825442271920079363289954510565375378443704372994881406797882676971082200626541916413184642520269678897559532260949334760604962086348898118982248842634379637598665468817769075878555493752214492790122785850202957575200176084204422751485957336465472324810982833638490904279282696134323072515220044451592646885410572234451732790590013479358343841220074174848221722017083597872017638514103174122784843925578370430843522959600095676285723737049438346544753168912974976791528535276317256904336520179281145394686565050419250614107803233314658825463117900250701199181529205942363159325765991819433914303908860460720581408201373164047773794825411011922305820065611121544561808414055302212057471395719432072209245600258134364584636810093520285711072578721435517884103526483832733289802426157301542744476740008494780363354305116978805620671467071400711358839553375340724899735460480144599782014906586543813292157922220645089192130209334926661588737007768565838519456601560804957985667880395221049249803753582637708560n,544)),i=t.getCodeBuilder();t.addCode(i.call(F+`_exp`,i.getLocal(`x`),i.i32_const(r),i.i32_const(544),i.getLocal(`r`)))}let ye=e.alloc(B),be=e.alloc(te);function xe(t){let r=e.addFunction(n+`_pairingEq`+t);for(let e=0;e<t;e++)r.addParam(`p_`+e,`i32`),r.addParam(`q_`+e,`i32`);r.addParam(`c`,`i32`),r.setReturnType(`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(l)),o=i.i32_const(e.alloc(l));r.addCode(i.call(F+`_one`,a));for(let e=0;e<t;e++)r.addCode(i.call(n+`_prepareG1`,i.getLocal(`p_`+e),i.i32_const(ye))),r.addCode(i.call(n+`_prepareG2`,i.getLocal(`q_`+e),i.i32_const(be))),r.addCode(i.if(i.i32_eqz(i.call(g+`_inGroupAffine`,i.i32_const(ye))),i.ret(i.i32_const(0))),i.if(i.i32_eqz(i.call(y+`_inGroupAffine`,i.i32_const(be))),i.ret(i.i32_const(0)))),r.addCode(i.call(n+`_millerLoop`,i.i32_const(ye),i.i32_const(be),o)),r.addCode(i.call(F+`_mul`,a,o,a));r.addCode(i.call(n+`_finalExponentiation`,a,a)),r.addCode(i.call(F+`_eq`,a,i.getLocal(`c`)))}function Se(){let t=e.addFunction(n+`_pairing`);t.addParam(`p`,`i32`),t.addParam(`q`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.i32_const(e.alloc(l));t.addCode(r.call(n+`_prepareG1`,r.getLocal(`p`),r.i32_const(ye))),t.addCode(r.call(n+`_prepareG2`,r.getLocal(`q`),r.i32_const(be))),t.addCode(r.call(n+`_millerLoop`,r.i32_const(ye),r.i32_const(be),i)),t.addCode(r.call(n+`_finalExponentiation`,i,r.getLocal(`r`)))}function Ce(){let t=e.addFunction(y+`_inGroupAffine`);t.addParam(`p`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=[2001204777610833696708894912867952078278441409969503942666029068062015825245418932221343814564507832018947136279894n,2001204777610833696708894912867952078278441409969503942666029068062015825245418932221343814564507832018947136279893n],i=[2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n,2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n],a=n.i32_const(e.alloc([...H.bigInt2BytesLE(x(r[0]),o),...H.bigInt2BytesLE(x(r[1]),o)])),l=n.i32_const(e.alloc(H.bigInt2BytesLE(x(4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n),o))),u=n.i32_const(e.alloc([...H.bigInt2BytesLE(x(i[0]),o),...H.bigInt2BytesLE(x(i[1]),o)])),d=n.i32_const(e.alloc(H.bigInt2BytesLE(ne,8))),f=n.getLocal(`p`),p=n.i32_add(n.getLocal(`p`),n.i32_const(c)),h=n.i32_const(e.alloc(s)),g=n.i32_const(e.alloc(c)),v=n.i32_const(e.alloc(c)),b=e.alloc(c*2),S=n.i32_const(b),C=n.i32_const(b),w=n.i32_const(b),T=n.i32_const(b+s),E=n.i32_const(b+c),D=n.i32_const(b+c),O=n.i32_const(b+c+s),k=e.alloc(c*3),A=n.i32_const(k),j=n.i32_const(k),M=n.i32_const(k),N=n.i32_const(k+s),P=n.i32_const(k+c),F=n.i32_const(k+c),I=n.i32_const(k+c+s),L=n.i32_const(k+c*2);t.addCode(n.if(n.call(y+`_isZeroAffine`,n.getLocal(`p`)),n.ret(n.i32_const(1))),n.if(n.i32_eqz(n.call(y+`_inCurveAffine`,n.getLocal(`p`))),n.ret(n.i32_const(0))),n.call(_+`_mul`,f,a,g),n.call(_+`_mul`,p,a,v),n.call(_+`_mul1`,g,l,C),n.call(_+`_neg`,v,E),n.call(_+`_neg`,g,j),n.call(_+`_mul`,v,u,P),n.call(m+`_sub`,w,T,h),n.call(m+`_add`,w,T,T),n.call(m+`_copy`,h,w),n.call(m+`_sub`,D,O,h),n.call(m+`_add`,D,O,O),n.call(m+`_copy`,h,D),n.call(m+`_add`,M,N,h),n.call(m+`_sub`,M,N,N),n.call(m+`_copy`,h,M),n.call(m+`_sub`,I,F,h),n.call(m+`_add`,F,I,I),n.call(m+`_copy`,h,F),n.call(_+`_one`,L),n.call(y+`_timesScalar`,A,d,n.i32_const(8),A),n.call(y+`_addMixed`,A,S,A),n.ret(n.call(y+`_eqMixed`,A,n.getLocal(`p`))));let R=e.addFunction(y+`_inGroup`);R.addParam(`pIn`,`i32`),R.setReturnType(`i32`);let z=R.getCodeBuilder(),ee=z.i32_const(e.alloc(c*2));R.addCode(z.call(y+`_toAffine`,z.getLocal(`pIn`),ee),z.ret(z.call(y+`_inGroupAffine`,ee)))}function we(){let t=e.addFunction(g+`_inGroupAffine`);t.addParam(`p`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=(ne*ne-1n)/3n,i=n.i32_const(e.alloc(H.bigInt2BytesLE(x(4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n),o))),a=n.i32_const(e.alloc(H.bigInt2BytesLE(x(793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n),o))),c=n.i32_const(e.alloc(H.bigInt2BytesLE(r,16))),l=n.getLocal(`p`),u=n.i32_add(n.getLocal(`p`),n.i32_const(s)),d=e.alloc(s*3),f=n.i32_const(d),p=n.i32_const(d),h=n.i32_const(d+s),_=e.alloc(s*2),v=n.i32_const(_),y=n.i32_const(_),b=n.i32_const(_+s);t.addCode(n.if(n.call(g+`_isZeroAffine`,n.getLocal(`p`)),n.ret(n.i32_const(1))),n.if(n.i32_eqz(n.call(g+`_inCurveAffine`,n.getLocal(`p`))),n.ret(n.i32_const(0))),n.call(m+`_mul`,l,i,p),n.call(m+`_copy`,u,h),n.call(m+`_mul`,l,a,y),n.call(m+`_copy`,u,b),n.call(g+`_doubleAffine`,f,f),n.call(g+`_subMixed`,f,n.getLocal(`p`),f),n.call(g+`_subMixed`,f,v,f),n.call(g+`_timesScalar`,f,c,n.i32_const(16),f),n.ret(n.call(g+`_eqMixed`,f,v)));let S=e.addFunction(g+`_inGroup`);S.addParam(`pIn`,`i32`),S.setReturnType(`i32`);let C=S.getCodeBuilder(),w=C.i32_const(e.alloc(s*2));S.addCode(C.call(g+`_toAffine`,C.getLocal(`pIn`),w),C.ret(C.call(g+`_inGroupAffine`,w)))}for(let t=0;t<10;t++)me(t),e.exportFunction(F+`_frobeniusMap`+t);we(),Ce(),se(),oe(),ae(),ce(),pe(),ve(),_e();for(let t=1;t<=5;t++)xe(t),e.exportFunction(n+`_pairingEq`+t);Se(),e.exportFunction(n+`_pairing`),e.exportFunction(n+`_prepareG1`),e.exportFunction(n+`_prepareG2`),e.exportFunction(n+`_millerLoop`),e.exportFunction(n+`_finalExponentiation`),e.exportFunction(n+`_finalExponentiationOld`),e.exportFunction(n+`__cyclotomicSquare`),e.exportFunction(n+`__cyclotomicExp_w0`),e.exportFunction(N+`_mul1`),e.exportFunction(N+`_mul01`),e.exportFunction(F+`_mul014`),e.exportFunction(g+`_inGroupAffine`),e.exportFunction(g+`_inGroup`),e.exportFunction(y+`_inGroupAffine`),e.exportFunction(y+`_inGroup`)},wn=un,Tn=Cn;function En(e){if(typeof e==`bigint`||e.eq!==void 0)return e.toString(10);if(e instanceof Uint8Array)return de(e,0);if(Array.isArray(e))return e.map(En);if(typeof e==`object`){let t={};return Object.keys(e).forEach(n=>{t[n]=En(e[n])}),t}else return e}function Dn(e){if(typeof e==`string`&&/^[0-9]+$/.test(e)||typeof e==`string`&&/^0x[0-9a-fA-F]+$/.test(e))return BigInt(e);if(Array.isArray(e))return e.map(Dn);if(typeof e==`object`){if(e===null)return null;let t={};return Object.keys(e).forEach(n=>{t[n]=Dn(e[n])}),t}else return e}function On(e){let t=BigInt(0),n=e.length,r=0,i=new DataView(e.buffer,e.byteOffset,e.byteLength);for(;n>0;)n>=4?(n-=4,t+=BigInt(i.getUint32(n))<<BigInt(r*8),r+=4):n>=2?(n-=2,t+=BigInt(i.getUint16(n))<<BigInt(r*8),r+=2):(--n,t+=BigInt(i.getUint8(n))<<BigInt(r*8),r+=1);return t}function kn(e,t){let n=e,r=new Uint8Array(t),i=new DataView(r.buffer),a=t;for(;a>0;)a-4>=0?(a-=4,i.setUint32(a,Number(n&BigInt(4294967295))),n>>=BigInt(32)):a-2>=0?(a-=2,i.setUint16(a,Number(n&BigInt(65535))),n>>=BigInt(16)):(--a,i.setUint8(a,Number(n&BigInt(255))),n>>=BigInt(8));if(n)throw Error(`Number does not fit in this length`);return r}function An(e){let t=BigInt(0),n=0,r=new DataView(e.buffer,e.byteOffset,e.byteLength);for(;n<e.length;)n+4<=e.length?(t+=BigInt(r.getUint32(n,!0))<<BigInt(n*8),n+=4):n+2<=e.length?(t+=BigInt(r.getUint16(n,!0))<<BigInt(n*8),n+=2):(t+=BigInt(r.getUint8(n,!0))<<BigInt(n*8),n+=1);return t}function jn(e,t){let n=e;t===void 0&&(t=Math.floor((g(e)-1)/8)+1,t==0&&(t=1));let r=new Uint8Array(t),i=new DataView(r.buffer),a=0;for(;a<t;)a+4<=t?(i.setUint32(a,Number(n&BigInt(4294967295)),!0),a+=4,n>>=BigInt(32)):a+2<=t?(i.setUint16(a,Number(n&BigInt(65535)),!0),a+=2,n>>=BigInt(16)):(i.setUint8(a,Number(n&BigInt(255)),!0),a+=1,n>>=BigInt(8));if(n)throw Error(`Number does not fit in this length`);return r}function Mn(e,t){if(typeof t==`bigint`||t.eq!==void 0)return t.toString(10);if(t instanceof Uint8Array)return e.toString(e.e(t));if(Array.isArray(t))return t.map(Mn.bind(this,e));if(typeof t==`object`){let n={};return Object.keys(t).forEach(r=>{n[r]=Mn(e,t[r])}),n}else return t}function Nn(e,t){if(typeof t==`string`&&/^[0-9]+$/.test(t)||typeof t==`string`&&/^0x[0-9a-fA-F]+$/.test(t))return e.e(t);if(Array.isArray(t))return t.map(Nn.bind(this,e));if(typeof t==`object`){if(t===null)return null;let n={};return Object.keys(t).forEach(r=>{n[r]=Nn(e,t[r])}),n}else return t}const Pn=[];for(let e=0;e<256;e++)Pn[e]=Fn(e,8);function Fn(e,t){let n=0,r=e;for(let e=0;e<t;e++)n<<=1,n|=r&1,r>>=1;return n}function In(e,t){return(Pn[e>>>24]|Pn[e>>>16&255]<<8|Pn[e>>>8&255]<<16|Pn[e&255]<<24)>>>32-t}function Ln(e){return(e&4294901760?(e&=4294901760,16):0)|(e&4278255360?(e&=4278255360,8):0)|(e&4042322160?(e&=4042322160,4):0)|(e&3435973836?(e&=3435973836,2):0)|(e&2863311530)!=0}function Rn(e,t){let n=e.byteLength/t,r=Ln(n);if(n!=1<<r)throw Error(`Invalid number of pointers`);for(let i=0;i<n;i++){let n=In(i,r);if(i>n){let r=e.slice(i*t,(i+1)*t);e.set(e.slice(n*t,(n+1)*t),i*t),e.set(r,n*t)}}}function zn(e,t){let n=new Uint8Array(t*e.length);for(let r=0;r<e.length;r++)n.set(e[r],r*t);return n}function Bn(e,t){let n=e.byteLength/t,r=Array(n);for(let i=0;i<n;i++)r[i]=e.slice(i*t,i*t+t);return r}var Vn=Object.freeze({__proto__:null,array2buffer:zn,beBuff2int:On,beInt2Buff:kn,bitReverse:In,buffReverseBits:Rn,buffer2array:Bn,leBuff2int:An,leInt2Buff:jn,log2:Ln,stringifyBigInts:En,stringifyFElements:Mn,unstringifyBigInts:Dn,unstringifyFElements:Nn});const U=1<<30;var W=class e{constructor(e){this.buffers=[],this.byteLength=e;for(let t=0;t<e;t+=U){let n=Math.min(e-t,U);this.buffers.push(new Uint8Array(n))}}slice(t,n){n===void 0&&(n=this.byteLength),t===void 0&&(t=0);let r=n-t,i=Math.floor(t/U);if(i==Math.floor((t+r-1)/U)||r==0)return this.buffers[i].slice(t%U,t%U+r);let a,o=i,s=t%U,c=r;for(;c>0;){let t=s+c>U?U-s:c,n=new Uint8Array(this.buffers[o].buffer,this.buffers[o].byteOffset+s,t);if(t==r)return n.slice();a||=r<=U?new Uint8Array(r):new e(r),a.set(n,r-c),c-=t,o++,s=0}return a}set(t,n){n===void 0&&(n=0);let r=t.byteLength;if(r==0)return;let i=Math.floor(n/U);if(i==Math.floor((n+r-1)/U))return t instanceof e&&t.buffers.length==1?this.buffers[i].set(t.buffers[0],n%U):this.buffers[i].set(t,n%U);let a=i,o=n%U,s=r;for(;s>0;){let e=o+s>U?U-o:s,n=t.slice(r-s,r-s+e);new Uint8Array(this.buffers[a].buffer,this.buffers[a].byteOffset+o,e).set(n),s-=e,a++,o=0}}};function Hn(e,t,n,r){return async function(i){let a=Math.floor(i.byteLength/n);if(a*n!==i.byteLength)throw Error(`Invalid buffer size`);let o=Math.floor(a/e.concurrency),s=[];for(let c=0;c<e.concurrency;c++){let l;if(l=c<e.concurrency-1?o:a-c*o,l==0)continue;let u=[{cmd:`ALLOCSET`,var:0,buff:i.slice(c*o*n,c*o*n+l*n)},{cmd:`ALLOC`,var:1,len:r*l},{cmd:`CALL`,fnName:t,params:[{var:0},{val:l},{var:1}]},{cmd:`GET`,out:0,var:1,len:r*l}];s.push(e.queueAction(u))}let c=await Promise.all(s),l;l=i instanceof W?new W(a*r):new Uint8Array(a*r);let u=0;for(let e=0;e<c.length;e++)l.set(c[e][0],u),u+=c[e][0].byteLength;return l}}var Un=class{constructor(e,t,n,r){if(this.tm=e,this.prefix=t,this.p=r,this.n8=n,this.type=`F1`,this.m=1,this.half=b(r,ge),this.bitLength=g(r),this.mask=k(y(ge,this.bitLength),ge),this.pOp1=e.alloc(n),this.pOp2=e.alloc(n),this.pOp3=e.alloc(n),this.tm.instance.exports[t+`_zero`](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,this.n8),this.tm.instance.exports[t+`_one`](this.pOp1),this.one=this.tm.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.n64=Math.floor(n/8),this.n32=Math.floor(n/4),this.n64*8!=this.n8)throw Error(`n8 must be a multiple of 8`);this.half=b(this.p,ge),this.nqr=this.two;let i=this.exp(this.nqr,this.half);for(;!this.eq(i,this.negone);)this.nqr=this.add(this.nqr,this.one),i=this.exp(this.nqr,this.half);this.shift=this.mul(this.nqr,this.nqr),this.shiftInv=this.inv(this.shift),this.s=0;let a=k(this.p,ge);for(;!C(a);)this.s+=1,a=b(a,ge);this.w=[],this.w[this.s]=this.exp(this.nqr,a);for(let e=this.s-1;e>=0;e--)this.w[e]=this.square(this.w[e+1]);if(!this.eq(this.w[0],this.one))throw Error(`Error calculating roots of unity`);this.batchToMontgomery=Hn(e,t+`_batchToMontgomery`,this.n8,this.n8),this.batchFromMontgomery=Hn(e,t+`_batchFromMontgomery`,this.n8,this.n8)}op2(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2)}op1(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(e,t){return this.tm.setBuff(this.pOp1,t),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3)}add(e,t){return this.op2(`_add`,e,t)}eq(e,t){return this.op2Bool(`_eq`,e,t)}isZero(e){return this.op1Bool(`_isZero`,e)}sub(e,t){return this.op2(`_sub`,e,t)}neg(e){return this.op1(`_neg`,e)}inv(e){return this.op1(`_inverse`,e)}toMontgomery(e){return this.op1(`_toMontgomery`,e)}fromMontgomery(e){return this.op1(`_fromMontgomery`,e)}mul(e,t){return this.op2(`_mul`,e,t)}div(e,t){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_inverse`](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+`_mul`](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(e){return this.op1(`_square`,e)}isSquare(e){return this.op1Bool(`_isSquare`,e)}sqrt(e){return this.op1(`_sqrt`,e)}exp(e,t){return t instanceof Uint8Array||(t=me(m(t))),this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_exp`](this.pOp1,this.pOp2,t.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}isNegative(e){return this.op1Bool(`_isNegative`,e)}e(e,t){if(e instanceof Uint8Array)return e;let n=m(e,t);_(n)?(n=A(n),B(n,this.p)&&(n=L(n,this.p)),n=k(this.p,n)):B(n,this.p)&&(n=L(n,this.p));let r=jn(n,this.n8);return this.toMontgomery(r)}toString(e,t){return pe(de(this.fromMontgomery(e),0),t)}fromRng(e){let t,n=new Uint8Array(this.n8);do{t=he;for(let n=0;n<this.n64;n++)t=O(t,y(e.nextU64(),64*n));t=re(t,this.mask)}while(ne(t,this.p));return le(n,0,t,this.n8),n}random(){return this.fromRng(Fe())}toObject(e){return de(this.fromMontgomery(e),0)}fromObject(e){let t=new Uint8Array(this.n8);return le(t,0,e,this.n8),this.toMontgomery(t)}toRprLE(e,t,n){e.set(this.fromMontgomery(n),t)}toRprBE(e,t,n){let r=this.fromMontgomery(n);for(let e=0;e<this.n8/2;e++){let t=r[e];r[e]=r[this.n8-1-e],r[this.n8-1-e]=t}e.set(r,t)}fromRprLE(e,t){t||=0;let n=e.slice(t,t+this.n8);return this.toMontgomery(n)}async batchInverse(e){let t=!1,n=this.n8,r=this.n8;Array.isArray(e)?(e=zn(e,n),t=!0):e=e.slice(0,e.byteLength);let i=Math.floor(e.byteLength/n);if(i*n!==e.byteLength)throw Error(`Invalid buffer size`);let a=Math.floor(i/this.tm.concurrency),o=[];for(let t=0;t<this.tm.concurrency;t++){let s;if(s=t<this.tm.concurrency-1?a:i-t*a,s==0)continue;let c=[{cmd:`ALLOCSET`,var:0,buff:e.slice(t*a*n,t*a*n+s*n)},{cmd:`ALLOC`,var:1,len:r*s},{cmd:`CALL`,fnName:this.prefix+`_batchInverse`,params:[{var:0},{val:n},{val:s},{var:1},{val:r}]},{cmd:`GET`,out:0,var:1,len:r*s}];o.push(this.tm.queueAction(c))}let s=await Promise.all(o),c;c=e instanceof W?new W(i*r):new Uint8Array(i*r);let l=0;for(let e=0;e<s.length;e++)c.set(s[e][0],l),l+=s[e][0].byteLength;return t?Bn(c,r):c}},Wn=class{constructor(e,t,n){this.tm=e,this.prefix=t,this.F=n,this.type=`F2`,this.m=n.m*2,this.n8=this.F.n8*2,this.n32=this.F.n32*2,this.n64=this.F.n64*2,this.pOp1=e.alloc(n.n8*2),this.pOp2=e.alloc(n.n8*2),this.pOp3=e.alloc(n.n8*2),this.tm.instance.exports[t+`_zero`](this.pOp1),this.zero=e.getBuff(this.pOp1,this.n8),this.tm.instance.exports[t+`_one`](this.pOp1),this.one=e.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2)}op1(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(e,t){return this.tm.setBuff(this.pOp1,t),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3)}add(e,t){return this.op2(`_add`,e,t)}eq(e,t){return this.op2Bool(`_eq`,e,t)}isZero(e){return this.op1Bool(`_isZero`,e)}sub(e,t){return this.op2(`_sub`,e,t)}neg(e){return this.op1(`_neg`,e)}inv(e){return this.op1(`_inverse`,e)}isNegative(e){return this.op1Bool(`_isNegative`,e)}toMontgomery(e){return this.op1(`_toMontgomery`,e)}fromMontgomery(e){return this.op1(`_fromMontgomery`,e)}mul(e,t){return this.op2(`_mul`,e,t)}mul1(e,t){return this.op2(`_mul1`,e,t)}div(e,t){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_inverse`](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+`_mul`](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(e){return this.op1(`_square`,e)}isSquare(e){return this.op1Bool(`_isSquare`,e)}sqrt(e){return this.op1(`_sqrt`,e)}exp(e,t){return t instanceof Uint8Array||(t=me(m(t))),this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_exp`](this.pOp1,this.pOp2,t.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}e(e,t){if(e instanceof Uint8Array)return e;if(Array.isArray(e)&&e.length==2){let n=this.F.e(e[0],t),r=this.F.e(e[1],t),i=new Uint8Array(this.F.n8*2);return i.set(n),i.set(r,this.F.n8*2),i}else throw Error(`invalid F2`)}toString(e,t){return`[${this.F.toString(e.slice(0,this.F.n8),t)}, ${this.F.toString(e.slice(this.F.n8),t)}]`}fromRng(e){let t=this.F.fromRng(e),n=this.F.fromRng(e),r=new Uint8Array(this.F.n8*2);return r.set(t),r.set(n,this.F.n8),r}random(){return this.fromRng(Fe())}toObject(e){return[this.F.toObject(e.slice(0,this.F.n8)),this.F.toObject(e.slice(this.F.n8,this.F.n8*2))]}fromObject(e){let t=new Uint8Array(this.F.n8*2),n=this.F.fromObject(e[0]),r=this.F.fromObject(e[1]);return t.set(n),t.set(r,this.F.n8),t}c1(e){return e.slice(0,this.F.n8)}c2(e){return e.slice(this.F.n8)}},Gn=class{constructor(e,t,n){this.tm=e,this.prefix=t,this.F=n,this.type=`F3`,this.m=n.m*3,this.n8=this.F.n8*3,this.n32=this.F.n32*3,this.n64=this.F.n64*3,this.pOp1=e.alloc(n.n8*3),this.pOp2=e.alloc(n.n8*3),this.pOp3=e.alloc(n.n8*3),this.tm.instance.exports[t+`_zero`](this.pOp1),this.zero=e.getBuff(this.pOp1,this.n8),this.tm.instance.exports[t+`_one`](this.pOp1),this.one=e.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2)}op1(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(e,t){return this.tm.setBuff(this.pOp1,t),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3)}eq(e,t){return this.op2Bool(`_eq`,e,t)}isZero(e){return this.op1Bool(`_isZero`,e)}add(e,t){return this.op2(`_add`,e,t)}sub(e,t){return this.op2(`_sub`,e,t)}neg(e){return this.op1(`_neg`,e)}inv(e){return this.op1(`_inverse`,e)}isNegative(e){return this.op1Bool(`_isNegative`,e)}toMontgomery(e){return this.op1(`_toMontgomery`,e)}fromMontgomery(e){return this.op1(`_fromMontgomery`,e)}mul(e,t){return this.op2(`_mul`,e,t)}div(e,t){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_inverse`](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+`_mul`](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(e){return this.op1(`_square`,e)}isSquare(e){return this.op1Bool(`_isSquare`,e)}sqrt(e){return this.op1(`_sqrt`,e)}exp(e,t){return t instanceof Uint8Array||(t=me(m(t))),this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_exp`](this.pOp1,this.pOp2,t.byteLength,this.pOp3),this.getBuff(this.pOp3,this.n8)}e(e,t){if(e instanceof Uint8Array)return e;if(Array.isArray(e)&&e.length==3){let n=this.F.e(e[0],t),r=this.F.e(e[1],t),i=this.F.e(e[2],t),a=new Uint8Array(this.F.n8*3);return a.set(n),a.set(r,this.F.n8),a.set(i,this.F.n8*2),a}else throw Error(`invalid F3`)}toString(e,t){return`[${this.F.toString(e.slice(0,this.F.n8),t)}, ${this.F.toString(e.slice(this.F.n8,this.F.n8*2),t)}, ${this.F.toString(e.slice(this.F.n8*2),t)}]`}fromRng(e){let t=this.F.fromRng(e),n=this.F.fromRng(e),r=this.F.fromRng(e),i=new Uint8Array(this.F.n8*3);return i.set(t),i.set(n,this.F.n8),i.set(r,this.F.n8*2),i}random(){return this.fromRng(Fe())}toObject(e){return[this.F.toObject(e.slice(0,this.F.n8)),this.F.toObject(e.slice(this.F.n8,this.F.n8*2)),this.F.toObject(e.slice(this.F.n8*2,this.F.n8*3))]}fromObject(e){let t=new Uint8Array(this.F.n8*3),n=this.F.fromObject(e[0]),r=this.F.fromObject(e[1]),i=this.F.fromObject(e[2]);return t.set(n),t.set(r,this.F.n8),t.set(i,this.F.n8*2),t}c1(e){return e.slice(0,this.F.n8)}c2(e){return e.slice(this.F.n8,this.F.n8*2)}c3(e){return e.slice(this.F.n8*2)}},Kn=class{constructor(e,t,n,r,i,a){this.tm=e,this.prefix=t,this.F=n,this.pOp1=e.alloc(n.n8*3),this.pOp2=e.alloc(n.n8*3),this.pOp3=e.alloc(n.n8*3),this.tm.instance.exports[t+`_zero`](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,n.n8*3),this.tm.instance.exports[t+`_zeroAffine`](this.pOp1),this.zeroAffine=this.tm.getBuff(this.pOp1,n.n8*2),this.one=this.tm.getBuff(r,n.n8*3),this.g=this.one,this.oneAffine=this.tm.getBuff(r,n.n8*2),this.gAffine=this.oneAffine,this.b=this.tm.getBuff(i,n.n8),a&&(this.cofactor=me(a)),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.batchLEMtoC=Hn(e,t+`_batchLEMtoC`,n.n8*2,n.n8),this.batchLEMtoU=Hn(e,t+`_batchLEMtoU`,n.n8*2,n.n8*2),this.batchCtoLEM=Hn(e,t+`_batchCtoLEM`,n.n8,n.n8*2),this.batchUtoLEM=Hn(e,t+`_batchUtoLEM`,n.n8*2,n.n8*2),this.batchToJacobian=Hn(e,t+`_batchToJacobian`,n.n8*2,n.n8*3),this.batchToAffine=Hn(e,t+`_batchToAffine`,n.n8*3,n.n8*2)}op2(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*3)}op2bool(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3)}op1(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*3)}op1Affine(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*2)}op1Bool(e,t){return this.tm.setBuff(this.pOp1,t),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3)}add(e,t){if(e.byteLength==this.F.n8*3){if(t.byteLength==this.F.n8*3)return this.op2(`_add`,e,t);if(t.byteLength==this.F.n8*2)return this.op2(`_addMixed`,e,t);throw Error(`invalid point size`)}else if(e.byteLength==this.F.n8*2){if(t.byteLength==this.F.n8*3)return this.op2(`_addMixed`,t,e);if(t.byteLength==this.F.n8*2)return this.op2(`_addAffine`,e,t);throw Error(`invalid point size`)}else throw Error(`invalid point size`)}sub(e,t){if(e.byteLength==this.F.n8*3){if(t.byteLength==this.F.n8*3)return this.op2(`_sub`,e,t);if(t.byteLength==this.F.n8*2)return this.op2(`_subMixed`,e,t);throw Error(`invalid point size`)}else if(e.byteLength==this.F.n8*2){if(t.byteLength==this.F.n8*3)return this.op2(`_subMixed`,t,e);if(t.byteLength==this.F.n8*2)return this.op2(`_subAffine`,e,t);throw Error(`invalid point size`)}else throw Error(`invalid point size`)}neg(e){if(e.byteLength==this.F.n8*3)return this.op1(`_neg`,e);if(e.byteLength==this.F.n8*2)return this.op1Affine(`_negAffine`,e);throw Error(`invalid point size`)}double(e){if(e.byteLength==this.F.n8*3)return this.op1(`_double`,e);if(e.byteLength==this.F.n8*2)return this.op1(`_doubleAffine`,e);throw Error(`invalid point size`)}isZero(e){if(e.byteLength==this.F.n8*3)return this.op1Bool(`_isZero`,e);if(e.byteLength==this.F.n8*2)return this.op1Bool(`_isZeroAffine`,e);throw Error(`invalid point size`)}timesScalar(e,t){t instanceof Uint8Array||(t=me(m(t)));let n;if(e.byteLength==this.F.n8*3)n=this.prefix+`_timesScalar`;else if(e.byteLength==this.F.n8*2)n=this.prefix+`_timesScalarAffine`;else throw Error(`invalid point size`);return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[n](this.pOp1,this.pOp2,t.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*3)}timesFr(e,t){let n;if(e.byteLength==this.F.n8*3)n=this.prefix+`_timesFr`;else if(e.byteLength==this.F.n8*2)n=this.prefix+`_timesFrAffine`;else throw Error(`invalid point size`);return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[n](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*3)}eq(e,t){if(e.byteLength==this.F.n8*3){if(t.byteLength==this.F.n8*3)return this.op2bool(`_eq`,e,t);if(t.byteLength==this.F.n8*2)return this.op2bool(`_eqMixed`,e,t);throw Error(`invalid point size`)}else if(e.byteLength==this.F.n8*2){if(t.byteLength==this.F.n8*3)return this.op2bool(`_eqMixed`,t,e);if(t.byteLength==this.F.n8*2)return this.op2bool(`_eqAffine`,e,t);throw Error(`invalid point size`)}else throw Error(`invalid point size`)}toAffine(e){if(e.byteLength==this.F.n8*3)return this.op1Affine(`_toAffine`,e);if(e.byteLength==this.F.n8*2)return e;throw Error(`invalid point size`)}toJacobian(e){if(e.byteLength==this.F.n8*3)return e;if(e.byteLength==this.F.n8*2)return this.op1(`_toJacobian`,e);throw Error(`invalid point size`)}toRprUncompressed(e,t,n){if(this.tm.setBuff(this.pOp1,n),n.byteLength==this.F.n8*3)this.tm.instance.exports[this.prefix+`_toAffine`](this.pOp1,this.pOp1);else if(n.byteLength!=this.F.n8*2)throw Error(`invalid point size`);this.tm.instance.exports[this.prefix+`_LEMtoU`](this.pOp1,this.pOp1);let r=this.tm.getBuff(this.pOp1,this.F.n8*2);e.set(r,t)}fromRprUncompressed(e,t){let n=e.slice(t,t+this.F.n8*2);return this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+`_UtoLEM`](this.pOp1,this.pOp1),this.tm.getBuff(this.pOp1,this.F.n8*2)}toRprCompressed(e,t,n){if(this.tm.setBuff(this.pOp1,n),n.byteLength==this.F.n8*3)this.tm.instance.exports[this.prefix+`_toAffine`](this.pOp1,this.pOp1);else if(n.byteLength!=this.F.n8*2)throw Error(`invalid point size`);this.tm.instance.exports[this.prefix+`_LEMtoC`](this.pOp1,this.pOp1);let r=this.tm.getBuff(this.pOp1,this.F.n8);e.set(r,t)}fromRprCompressed(e,t){let n=e.slice(t,t+this.F.n8);return this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+`_CtoLEM`](this.pOp1,this.pOp2),this.tm.getBuff(this.pOp2,this.F.n8*2)}toUncompressed(e){let t=new Uint8Array(this.F.n8*2);return this.toRprUncompressed(t,0,e),t}toRprLEM(e,t,n){if(n.byteLength==this.F.n8*2){e.set(n,t);return}else if(n.byteLength==this.F.n8*3){this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+`_toAffine`](this.pOp1,this.pOp1);let r=this.tm.getBuff(this.pOp1,this.F.n8*2);e.set(r,t)}else throw Error(`invalid point size`)}fromRprLEM(e,t){return t||=0,e.slice(t,t+this.F.n8*2)}toString(e,t){if(e.byteLength==this.F.n8*3)return`[ ${this.F.toString(e.slice(0,this.F.n8),t)}, ${this.F.toString(e.slice(this.F.n8,this.F.n8*2),t)}, ${this.F.toString(e.slice(this.F.n8*2),t)} ]`;if(e.byteLength==this.F.n8*2)return`[ ${this.F.toString(e.slice(0,this.F.n8),t)}, ${this.F.toString(e.slice(this.F.n8),t)} ]`;throw Error(`invalid point size`)}isValid(e){if(this.isZero(e))return!0;let t=this.F,n=this.toAffine(e),r=n.slice(0,this.F.n8),i=n.slice(this.F.n8,this.F.n8*2),a=t.add(t.mul(t.square(r),r),this.b),o=t.square(i);return t.eq(a,o)}fromRng(e){let t=this.F,n=[],r,i;do n[0]=t.fromRng(e),r=e.nextBool(),i=t.add(t.mul(t.square(n[0]),n[0]),this.b);while(!t.isSquare(i));n[1]=t.sqrt(i);let a=t.isNegative(n[1]);r^a&&(n[1]=t.neg(n[1]));let o=new Uint8Array(this.F.n8*2);return o.set(n[0]),o.set(n[1],this.F.n8),this.cofactor&&(o=this.timesScalar(o,this.cofactor)),o}toObject(e){if(this.isZero(e))return[this.F.toObject(this.F.zero),this.F.toObject(this.F.one),this.F.toObject(this.F.zero)];let t=this.F.toObject(e.slice(0,this.F.n8)),n=this.F.toObject(e.slice(this.F.n8,this.F.n8*2)),r;return r=e.byteLength==this.F.n8*3?this.F.toObject(e.slice(this.F.n8*2,this.F.n8*3)):this.F.toObject(this.F.one),[t,n,r]}fromObject(e){let t=this.F.fromObject(e[0]),n=this.F.fromObject(e[1]),r;if(r=e.length==3?this.F.fromObject(e[2]):this.F.one,this.F.isZero(r,this.F.one))return this.zeroAffine;if(this.F.eq(r,this.F.one)){let e=new Uint8Array(this.F.n8*2);return e.set(t),e.set(n,this.F.n8),e}else{let e=new Uint8Array(this.F.n8*3);return e.set(t),e.set(n,this.F.n8),e.set(r,this.F.n8*2),e}}e(e){return e instanceof Uint8Array?e:this.fromObject(e)}x(e){return this.toAffine(e).slice(0,this.F.n8)}y(e){return this.toAffine(e).slice(this.F.n8)}};function qn(e){let t=32767,n,r;e&&(e.onmessage=function(t){let n;if(n=t.data?t.data:t,n[0].cmd==`INIT`)i(n[0]).then(function(){e.postMessage(n.result)});else if(n[0].cmd==`TERMINATE`)e.close();else{let t=l(n);e.postMessage(t)}});async function i(e){let i=new Uint8Array(e.code),a=await WebAssembly.compile(i);r=new WebAssembly.Memory({initial:e.init,maximum:t}),n=await WebAssembly.instantiate(a,{env:{memory:r}})}function a(e){let n=new Uint32Array(r.buffer,0,1);for(;n[0]&3;)n[0]++;let i=n[0];if(n[0]+=e,n[0]+e>r.buffer.byteLength){let i=r.buffer.byteLength/65536,a=Math.floor((n[0]+e)/65536)+1;a>t&&(a=t),r.grow(a-i)}return i}function o(e){let t=a(e.byteLength);return c(t,e),t}function s(e,t){let n=new Uint8Array(r.buffer);return new Uint8Array(n.buffer,n.byteOffset+e,t)}function c(e,t){new Uint8Array(r.buffer).set(new Uint8Array(t),e)}function l(e){if(e[0].cmd==`INIT`)return i(e[0]);let t={vars:[],out:[]},l=new Uint32Array(r.buffer,0,1)[0];for(let r=0;r<e.length;r++)switch(e[r].cmd){case`ALLOCSET`:t.vars[e[r].var]=o(e[r].buff);break;case`ALLOC`:t.vars[e[r].var]=a(e[r].len);break;case`SET`:c(t.vars[e[r].var],e[r].buff);break;case`CALL`:{let i=[];for(let n=0;n<e[r].params.length;n++){let a=e[r].params[n];a.var===void 0?a.val!==void 0&&i.push(a.val):i.push(t.vars[a.var]+(a.offset||0))}n.exports[e[r].fnName](...i);break}case`GET`:t.out[e[r].out]=s(t.vars[e[r].var],e[r].len).slice();break;default:throw Error(`Invalid cmd`)}let u=new Uint32Array(r.buffer,0,1);return u[0]=l,t.out}return l}var Jn=class{constructor(){this.promise=new Promise((e,t)=>{this.reject=t,this.resolve=e})}};function Yn(e){return new Promise(t=>setTimeout(t,e))}let Xn;const Zn=`(function thread(self) {
2
- const MAXMEM = 32767;
3
- let instance;
4
- let memory;
5
-
6
- if (self) {
7
- self.onmessage = function(e) {
8
- let data;
9
- if (e.data) {
10
- data = e.data;
11
- } else {
12
- data = e;
13
- }
14
-
15
- if (data[0].cmd == "INIT") {
16
- init(data[0]).then(function() {
17
- self.postMessage(data.result);
18
- });
19
- } else if (data[0].cmd == "TERMINATE") {
20
- self.close();
21
- } else {
22
- const res = runTask(data);
23
- self.postMessage(res);
24
- }
25
- };
26
- }
27
-
28
- async function init(data) {
29
- const code = new Uint8Array(data.code);
30
- const wasmModule = await WebAssembly.compile(code);
31
- memory = new WebAssembly.Memory({initial:data.init, maximum: MAXMEM});
32
-
33
- instance = await WebAssembly.instantiate(wasmModule, {
34
- env: {
35
- "memory": memory
36
- }
37
- });
38
- }
39
-
40
-
41
-
42
- function alloc(length) {
43
- const u32 = new Uint32Array(memory.buffer, 0, 1);
44
- while (u32[0] & 3) u32[0]++; // Return always aligned pointers
45
- const res = u32[0];
46
- u32[0] += length;
47
- if (u32[0] + length > memory.buffer.byteLength) {
48
- const currentPages = memory.buffer.byteLength / 0x10000;
49
- let requiredPages = Math.floor((u32[0] + length) / 0x10000)+1;
50
- if (requiredPages>MAXMEM) requiredPages=MAXMEM;
51
- memory.grow(requiredPages-currentPages);
52
- }
53
- return res;
54
- }
55
-
56
- function allocBuffer(buffer) {
57
- const p = alloc(buffer.byteLength);
58
- setBuffer(p, buffer);
59
- return p;
60
- }
61
-
62
- function getBuffer(pointer, length) {
63
- const u8 = new Uint8Array(memory.buffer);
64
- return new Uint8Array(u8.buffer, u8.byteOffset + pointer, length);
65
- }
66
-
67
- function setBuffer(pointer, buffer) {
68
- const u8 = new Uint8Array(memory.buffer);
69
- u8.set(new Uint8Array(buffer), pointer);
70
- }
71
-
72
- function runTask(task) {
73
- if (task[0].cmd == "INIT") {
74
- return init(task[0]);
75
- }
76
- const ctx = {
77
- vars: [],
78
- out: []
79
- };
80
- const u32a = new Uint32Array(memory.buffer, 0, 1);
81
- const oldAlloc = u32a[0];
82
- for (let i=0; i<task.length; i++) {
83
- switch (task[i].cmd) {
84
- case "ALLOCSET":
85
- ctx.vars[task[i].var] = allocBuffer(task[i].buff);
86
- break;
87
- case "ALLOC":
88
- ctx.vars[task[i].var] = alloc(task[i].len);
89
- break;
90
- case "SET":
91
- setBuffer(ctx.vars[task[i].var], task[i].buff);
92
- break;
93
- case "CALL": {
94
- const params = [];
95
- for (let j=0; j<task[i].params.length; j++) {
96
- const p = task[i].params[j];
97
- if (typeof p.var !== "undefined") {
98
- params.push(ctx.vars[p.var] + (p.offset || 0));
99
- } else if (typeof p.val != "undefined") {
100
- params.push(p.val);
101
- }
102
- }
103
- instance.exports[task[i].fnName](...params);
104
- break;
105
- }
106
- case "GET":
107
- ctx.out[task[i].out] = getBuffer(ctx.vars[task[i].var], task[i].len).slice();
108
- break;
109
- default:
110
- throw new Error("Invalid cmd");
111
- }
112
- }
113
- const u32b = new Uint32Array(memory.buffer, 0, 1);
114
- u32b[0] = oldAlloc;
115
- return ctx.out;
116
- }
117
-
118
-
119
- return runTask;
120
- })(self)`;if(globalThis?.Blob){let e=new TextEncoder().encode(Zn),t=new Blob([e],{type:`application/javascript`});Xn=URL.createObjectURL(t)}else Xn=`data:application/javascript;base64,`+globalThis.btoa(Zn);async function Qn(e,t){let n=new $n;n.memory=new WebAssembly.Memory({initial:25}),n.u8=new Uint8Array(n.memory.buffer),n.u32=new Uint32Array(n.memory.buffer);let r=await WebAssembly.compile(e.code);if(n.instance=await WebAssembly.instantiate(r,{env:{memory:n.memory}}),globalThis?.Worker||(t=!0),n.singleThread=t,n.initalPFree=n.u32[0],n.pq=e.pq,n.pr=e.pr,n.pG1gen=e.pG1gen,n.pG1zero=e.pG1zero,n.pG2gen=e.pG2gen,n.pG2zero=e.pG2zero,n.pOneT=e.pOneT,t)n.code=e.code,n.taskManager=qn(),await n.taskManager([{cmd:`INIT`,init:25,code:n.code.slice()}]),n.concurrency=1;else{n.workers=[],n.pendingDeferreds=[],n.working=[];let t=2;typeof navigator==`object`&&navigator.hardwareConcurrency&&(t=navigator.hardwareConcurrency),t==0&&(t=2),t>64&&(t=64),n.concurrency=t;for(let e=0;e<t;e++)n.workers[e]=new Worker(Xn),n.workers[e].addEventListener(`message`,i(e)),n.working[e]=!1;let r=[];for(let t=0;t<n.workers.length;t++){let i=e.code.slice();r.push(n.postAction(t,[{cmd:`INIT`,init:25,code:i}],[i.buffer]))}await Promise.all(r)}return n;function i(e){return function(t){let r;r=t&&t.data?t.data:t,n.working[e]=!1,n.pendingDeferreds[e].resolve(r),n.processWorks()}}}var $n=class{constructor(){this.actionQueue=[],this.oldPFree=0}startSyncOp(){if(this.oldPFree!=0)throw Error(`Sync operation in progress`);this.oldPFree=this.u32[0]}endSyncOp(){if(this.oldPFree==0)throw Error(`No sync operation in progress`);this.u32[0]=this.oldPFree,this.oldPFree=0}postAction(e,t,n,r){if(this.working[e])throw Error(`Posting a job t a working worker`);return this.working[e]=!0,this.pendingDeferreds[e]=r||new Jn,this.workers[e].postMessage(t,n),this.pendingDeferreds[e].promise}processWorks(){for(let e=0;e<this.workers.length&&this.actionQueue.length>0;e++)if(this.working[e]==0){let t=this.actionQueue.shift();this.postAction(e,t.data,t.transfers,t.deferred)}}queueAction(e,t){let n=new Jn;if(this.singleThread){let t=this.taskManager(e);n.resolve(t)}else this.actionQueue.push({data:e,transfers:t,deferred:n}),this.processWorks();return n.promise}resetMemory(){this.u32[0]=this.initalPFree}allocBuff(e){let t=this.alloc(e.byteLength);return this.setBuff(t,e),t}getBuff(e,t){return this.u8.slice(e,e+t)}setBuff(e,t){this.u8.set(new Uint8Array(t),e)}alloc(e){for(;this.u32[0]&3;)this.u32[0]++;let t=this.u32[0];return this.u32[0]+=e,t}async terminate(){for(let e=0;e<this.workers.length;e++)this.workers[e].postMessage([{cmd:`TERMINATE`}]);await Yn(200)}};function er(e,t){let n=e[t],r=e.Fr,i=e.tm;e[t].batchApplyKey=async function(e,a,o,s,c){s||=`affine`,c||=`affine`;let l,u,d,f,p;if(t==`G1`)s==`jacobian`?(d=n.F.n8*3,l=`g1m_batchApplyKey`):(d=n.F.n8*2,l=`g1m_batchApplyKeyMixed`),f=n.F.n8*3,c==`jacobian`?p=n.F.n8*3:(u=`g1m_batchToAffine`,p=n.F.n8*2);else if(t==`G2`)s==`jacobian`?(d=n.F.n8*3,l=`g2m_batchApplyKey`):(d=n.F.n8*2,l=`g2m_batchApplyKeyMixed`),f=n.F.n8*3,c==`jacobian`?p=n.F.n8*3:(u=`g2m_batchToAffine`,p=n.F.n8*2);else if(t==`Fr`)l=`frm_batchApplyKey`,d=n.n8,f=n.n8,p=n.n8;else throw Error(`Invalid group: `+t);let m=Math.floor(e.byteLength/d),h=Math.floor(m/i.concurrency),g=[];o=r.e(o);let _=r.e(a);for(let t=0;t<i.concurrency;t++){let n;if(n=t<i.concurrency-1?h:m-t*h,n==0)continue;let a=[];a.push({cmd:`ALLOCSET`,var:0,buff:e.slice(t*h*d,t*h*d+n*d)}),a.push({cmd:`ALLOCSET`,var:1,buff:_}),a.push({cmd:`ALLOCSET`,var:2,buff:o}),a.push({cmd:`ALLOC`,var:3,len:n*Math.max(f,p)}),a.push({cmd:`CALL`,fnName:l,params:[{var:0},{val:n},{var:1},{var:2},{var:3}]}),u&&a.push({cmd:`CALL`,fnName:u,params:[{var:3},{val:n},{var:3}]}),a.push({cmd:`GET`,out:0,var:3,len:n*p}),g.push(i.queueAction(a)),_=r.mul(_,r.exp(o,n))}let v=await Promise.all(g),y;y=e instanceof W?new W(m*p):new Uint8Array(m*p);let b=0;for(let e=0;e<v.length;e++)y.set(v[e][0],b),b+=v[e][0].byteLength;return y}}function tr(e){let t=e.tm;e.pairing=function(n,r){t.startSyncOp();let i=t.allocBuff(e.G1.toJacobian(n)),a=t.allocBuff(e.G2.toJacobian(r)),o=t.alloc(e.Gt.n8);t.instance.exports[e.name+`_pairing`](i,a,o);let s=t.getBuff(o,e.Gt.n8);return t.endSyncOp(),s},e.pairingEq=async function(){let n,r;arguments.length%2==1?(n=arguments[arguments.length-1],r=(arguments.length-1)/2):(n=e.Gt.one,r=arguments.length/2);let i=[];for(let n=0;n<r;n++){let r=[],a=e.G1.toJacobian(arguments[n*2]);r.push({cmd:`ALLOCSET`,var:0,buff:a}),r.push({cmd:`ALLOC`,var:1,len:e.prePSize});let o=e.G2.toJacobian(arguments[n*2+1]);r.push({cmd:`ALLOCSET`,var:2,buff:o}),r.push({cmd:`ALLOC`,var:3,len:e.preQSize}),r.push({cmd:`ALLOC`,var:4,len:e.Gt.n8}),r.push({cmd:`CALL`,fnName:e.name+`_prepareG1`,params:[{var:0},{var:1}]}),r.push({cmd:`CALL`,fnName:e.name+`_prepareG2`,params:[{var:2},{var:3}]}),r.push({cmd:`CALL`,fnName:e.name+`_millerLoop`,params:[{var:1},{var:3},{var:4}]}),r.push({cmd:`GET`,out:0,var:4,len:e.Gt.n8}),i.push(t.queueAction(r))}let a=await Promise.all(i);t.startSyncOp();let o=t.alloc(e.Gt.n8);t.instance.exports.ftm_one(o);for(let e=0;e<a.length;e++){let n=t.allocBuff(a[e][0]);t.instance.exports.ftm_mul(o,n,o)}t.instance.exports[e.name+`_finalExponentiation`](o,o);let s=t.allocBuff(n),c=!!t.instance.exports.ftm_eq(o,s);return t.endSyncOp(),c},e.prepareG1=function(e){this.tm.startSyncOp();let t=this.tm.allocBuff(e),n=this.tm.alloc(this.prePSize);this.tm.instance.exports[this.name+`_prepareG1`](t,n);let r=this.tm.getBuff(n,this.prePSize);return this.tm.endSyncOp(),r},e.prepareG2=function(e){this.tm.startSyncOp();let t=this.tm.allocBuff(e),n=this.tm.alloc(this.preQSize);this.tm.instance.exports[this.name+`_prepareG2`](t,n);let r=this.tm.getBuff(n,this.preQSize);return this.tm.endSyncOp(),r},e.millerLoop=function(e,t){this.tm.startSyncOp();let n=this.tm.allocBuff(e),r=this.tm.allocBuff(t),i=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+`_millerLoop`](n,r,i);let a=this.tm.getBuff(i,this.Gt.n8);return this.tm.endSyncOp(),a},e.finalExponentiation=function(e){this.tm.startSyncOp();let t=this.tm.allocBuff(e),n=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+`_finalExponentiation`](t,n);let r=this.tm.getBuff(n,this.Gt.n8);return this.tm.endSyncOp(),r}}const nr=[1,1,1,1,2,3,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,16,17,17,17,17,17,17,17,17,17,17];function rr(e,t){let n=e[t],r=n.tm;async function i(e,r,i,a,o){if(!(e instanceof Uint8Array))throw a&&a.error(`${o} _multiExpChunk buffBases is not Uint8Array`),Error(`${o} _multiExpChunk buffBases is not Uint8Array`);if(!(r instanceof Uint8Array))throw a&&a.error(`${o} _multiExpChunk buffScalars is not Uint8Array`),Error(`${o} _multiExpChunk buffScalars is not Uint8Array`);i||=`affine`;let s,c;if(t==`G1`)i==`affine`?(c=`g1m_multiexpAffine_chunk`,s=n.F.n8*2):(c=`g1m_multiexp_chunk`,s=n.F.n8*3);else if(t==`G2`)i==`affine`?(c=`g2m_multiexpAffine_chunk`,s=n.F.n8*2):(c=`g2m_multiexp_chunk`,s=n.F.n8*3);else throw Error(`Invalid group`);let l=Math.floor(e.byteLength/s);if(l==0)return n.zero;let u=Math.floor(r.byteLength/l);if(u*l!=r.byteLength)throw Error(`Scalar size does not match`);let d=nr[Ln(l)],f=Math.floor((u*8-1)/d)+1,p=[];for(let t=0;t<f;t++){let i=[{cmd:`ALLOCSET`,var:0,buff:e},{cmd:`ALLOCSET`,var:1,buff:r},{cmd:`ALLOC`,var:2,len:n.F.n8*3},{cmd:`CALL`,fnName:c,params:[{var:0},{var:1},{val:u},{val:l},{val:t*d},{val:Math.min(u*8-t*d,d)},{var:2}]},{cmd:`GET`,out:0,var:2,len:n.F.n8*3}];p.push(n.tm.queueAction(i))}let m=await Promise.all(p),h=n.zero;for(let e=m.length-1;e>=0;e--){if(!n.isZero(h))for(let e=0;e<d;e++)h=n.double(h);h=n.add(h,m[e][0])}return h}async function a(e,a,o,s,c){let l=1<<22,u=1024,d;if(t==`G1`)d=o==`affine`?n.F.n8*2:n.F.n8*3;else if(t==`G2`)d=o==`affine`?n.F.n8*2:n.F.n8*3;else throw Error(`Invalid group`);let f=Math.floor(e.byteLength/d);if(f==0)return n.zero;let p=Math.floor(a.byteLength/f);if(p*f!=a.byteLength)throw Error(`Scalar size does not match`);let m=nr[Ln(f)],h=Math.floor((p*8-1)/m)+1,g;g=Math.floor(f/(r.concurrency/h)),g>l&&(g=l),g<u&&(g=u);let _=[];for(let t=0;t<f;t+=g){s&&s.debug(`Multiexp start: ${c}: ${t}/${f}`);let n=Math.min(f-t,g),r=e.slice(t*d,(t+n)*d),l=a.slice(t*p,(t+n)*p);_.push(i(r,l,o,s,c).then(e=>(s&&s.debug(`Multiexp end: ${c}: ${t}/${f}`),e)))}let v=await Promise.all(_),y=n.zero;for(let e=v.length-1;e>=0;e--)y=n.add(y,v[e]);return y}n.multiExp=async function(e,t,n,r){return await a(e,t,`jacobian`,n,r)},n.multiExpAffine=async function(e,t,n,r){return await a(e,t,`affine`,n,r)}}function ir(e,t){let n=e[t],r=e.Fr,i=n.tm;async function a(e,a,c,l,u,d){c||=`affine`,l||=`affine`;let f,p,m,h,g,_,v,y;t==`G1`?(c==`affine`?(f=n.F.n8*2,h=`g1m_batchToJacobian`):f=n.F.n8*3,p=n.F.n8*3,a&&(y=`g1m_fftFinal`),v=`g1m_fftJoin`,_=`g1m_fftMix`,l==`affine`?(m=n.F.n8*2,g=`g1m_batchToAffine`):m=n.F.n8*3):t==`G2`?(c==`affine`?(f=n.F.n8*2,h=`g2m_batchToJacobian`):f=n.F.n8*3,p=n.F.n8*3,a&&(y=`g2m_fftFinal`),v=`g2m_fftJoin`,_=`g2m_fftMix`,l==`affine`?(m=n.F.n8*2,g=`g2m_batchToAffine`):m=n.F.n8*3):t==`Fr`&&(f=n.n8,p=n.n8,m=n.n8,a&&(y=`frm_fftFinal`),_=`frm_fftMix`,v=`frm_fftJoin`);let b=!1;Array.isArray(e)?(e=zn(e,f),b=!0):e=e.slice(0,e.byteLength);let x=e.byteLength/f,S=Ln(x);if(1<<S!=x)throw Error(`fft must be multiple of 2`);if(S==r.s+1){let t;return t=a?await s(e,c,l,u,d):await o(e,c,l,u,d),b?Bn(t,m):t}let C;a&&(C=r.inv(r.e(x)));let w;Rn(e,f);let T,E=Math.min(16384,x),D=x/E;for(;D<i.concurrency&&E>=16;)D*=2,E/=2;let O=Ln(E),k=[];for(let t=0;t<D;t++){u&&u.debug(`${d}: fft ${S} mix start: ${t}/${D}`);let n=[];n.push({cmd:`ALLOC`,var:0,len:p*E});let r=e.slice(E*t*f,E*(t+1)*f);n.push({cmd:`SET`,var:0,buff:r}),h&&n.push({cmd:`CALL`,fnName:h,params:[{var:0},{val:E},{var:0}]});for(let e=1;e<=O;e++)n.push({cmd:`CALL`,fnName:_,params:[{var:0},{val:E},{val:e}]});O==S?(y&&(n.push({cmd:`ALLOCSET`,var:1,buff:C}),n.push({cmd:`CALL`,fnName:y,params:[{var:0},{val:E},{var:1}]})),g&&n.push({cmd:`CALL`,fnName:g,params:[{var:0},{val:E},{var:0}]}),n.push({cmd:`GET`,out:0,var:0,len:E*m})):n.push({cmd:`GET`,out:0,var:0,len:p*E}),k.push(i.queueAction(n).then(e=>(u&&u.debug(`${d}: fft ${S} mix end: ${t}/${D}`),e)))}T=await Promise.all(k);for(let e=0;e<D;e++)T[e]=T[e][0];for(let e=O+1;e<=S;e++){u&&u.debug(`${d}: fft ${S} join: ${e}/${S}`);let t=1<<S-e,n=D/t,a=[];for(let o=0;o<t;o++)for(let s=0;s<n/2;s++){let c=r.exp(r.w[e],s*E),l=r.w[e],f=o*n+s,h=o*n+s+n/2,_=[];_.push({cmd:`ALLOCSET`,var:0,buff:T[f]}),_.push({cmd:`ALLOCSET`,var:1,buff:T[h]}),_.push({cmd:`ALLOCSET`,var:2,buff:c}),_.push({cmd:`ALLOCSET`,var:3,buff:l}),_.push({cmd:`CALL`,fnName:v,params:[{var:0},{var:1},{val:E},{var:2},{var:3}]}),e==S?(y&&(_.push({cmd:`ALLOCSET`,var:4,buff:C}),_.push({cmd:`CALL`,fnName:y,params:[{var:0},{val:E},{var:4}]}),_.push({cmd:`CALL`,fnName:y,params:[{var:1},{val:E},{var:4}]})),g&&(_.push({cmd:`CALL`,fnName:g,params:[{var:0},{val:E},{var:0}]}),_.push({cmd:`CALL`,fnName:g,params:[{var:1},{val:E},{var:1}]})),_.push({cmd:`GET`,out:0,var:0,len:E*m}),_.push({cmd:`GET`,out:1,var:1,len:E*m})):(_.push({cmd:`GET`,out:0,var:0,len:E*p}),_.push({cmd:`GET`,out:1,var:1,len:E*p})),a.push(i.queueAction(_).then(r=>(u&&u.debug(`${d}: fft ${S} join ${e}/${S} ${o+1}/${t} ${s}/${n/2}`),r)))}let o=await Promise.all(a);for(let e=0;e<t;e++)for(let t=0;t<n/2;t++){let r=e*n+t,i=e*n+t+n/2,a=o.shift();T[r]=a[0],T[i]=a[1]}}if(w=e instanceof W?new W(x*m):new Uint8Array(x*m),a){w.set(T[0].slice((E-1)*m));let e=m;for(let t=D-1;t>0;t--)w.set(T[t],e),e+=E*m,delete T[t];w.set(T[0].slice(0,(E-1)*m),e),delete T[0]}else for(let e=0;e<D;e++)w.set(T[e],E*m*e),delete T[e];return b?Bn(w,m):w}async function o(e,t,n,i,o){let s,l;s=e.slice(0,e.byteLength/2),l=e.slice(e.byteLength/2,e.byteLength);let u=[];[s,l]=await c(s,l,`fftJoinExt`,r.one,r.shift,t,`jacobian`,i,o),u.push(a(s,!1,`jacobian`,n,i,o)),u.push(a(l,!1,`jacobian`,n,i,o));let d=await Promise.all(u),f;return f=d[0].byteLength>1<<28?new W(d[0].byteLength*2):new Uint8Array(d[0].byteLength*2),f.set(d[0]),f.set(d[1],d[0].byteLength),f}async function s(e,t,n,i,o){let s,l;s=e.slice(0,e.byteLength/2),l=e.slice(e.byteLength/2,e.byteLength);let u=[];u.push(a(s,!0,t,`jacobian`,i,o)),u.push(a(l,!0,t,`jacobian`,i,o)),[s,l]=await Promise.all(u);let d=await c(s,l,`fftJoinExtInv`,r.one,r.shiftInv,`jacobian`,n,i,o),f;return f=d[0].byteLength>1<<28?new W(d[0].byteLength*2):new Uint8Array(d[0].byteLength*2),f.set(d[0]),f.set(d[1],d[0].byteLength),f}async function c(e,a,o,s,c,l,u,d,f){let p=65536,m,h,g,_,v,y;if(t==`G1`)l==`affine`?(v=n.F.n8*2,h=`g1m_batchToJacobian`):v=n.F.n8*3,y=n.F.n8*3,m=`g1m_`+o,u==`affine`?(g=`g1m_batchToAffine`,_=n.F.n8*2):_=n.F.n8*3;else if(t==`G2`)l==`affine`?(v=n.F.n8*2,h=`g2m_batchToJacobian`):v=n.F.n8*3,m=`g2m_`+o,y=n.F.n8*3,u==`affine`?(g=`g2m_batchToAffine`,_=n.F.n8*2):_=n.F.n8*3;else if(t==`Fr`)v=r.n8,_=r.n8,y=r.n8,m=`frm_`+o;else throw Error(`Invalid group`);if(e.byteLength!=a.byteLength)throw Error(`Invalid buffer size`);let b=Math.floor(e.byteLength/v);if(b!=1<<Ln(b))throw Error(`Invalid number of points`);let x=Math.floor(b/i.concurrency);x<16&&(x=16),x>p&&(x=p);let S=[];for(let t=0;t<b;t+=x){d&&d.debug(`${f}: fftJoinExt Start: ${t}/${b}`);let n=Math.min(b-t,x),o=r.mul(s,r.exp(c,t)),l=[],u=e.slice(t*v,(t+n)*v),p=a.slice(t*v,(t+n)*v);l.push({cmd:`ALLOC`,var:0,len:y*n}),l.push({cmd:`SET`,var:0,buff:u}),l.push({cmd:`ALLOC`,var:1,len:y*n}),l.push({cmd:`SET`,var:1,buff:p}),l.push({cmd:`ALLOCSET`,var:2,buff:o}),l.push({cmd:`ALLOCSET`,var:3,buff:c}),h&&(l.push({cmd:`CALL`,fnName:h,params:[{var:0},{val:n},{var:0}]}),l.push({cmd:`CALL`,fnName:h,params:[{var:1},{val:n},{var:1}]})),l.push({cmd:`CALL`,fnName:m,params:[{var:0},{var:1},{val:n},{var:2},{var:3},{val:r.s}]}),g&&(l.push({cmd:`CALL`,fnName:g,params:[{var:0},{val:n},{var:0}]}),l.push({cmd:`CALL`,fnName:g,params:[{var:1},{val:n},{var:1}]})),l.push({cmd:`GET`,out:0,var:0,len:n*_}),l.push({cmd:`GET`,out:1,var:1,len:n*_}),S.push(i.queueAction(l).then(e=>(d&&d.debug(`${f}: fftJoinExt End: ${t}/${b}`),e)))}let C=await Promise.all(S),w,T;b*_>1<<28?(w=new W(b*_),T=new W(b*_)):(w=new Uint8Array(b*_),T=new Uint8Array(b*_));let E=0;for(let e=0;e<C.length;e++)w.set(C[e][0],E),T.set(C[e][1],E),E+=C[e][0].byteLength;return[w,T]}n.fft=async function(e,t,n,r,i){return await a(e,!1,t,n,r,i)},n.ifft=async function(e,t,n,r,i){return await a(e,!0,t,n,r,i)},n.lagrangeEvaluations=async function(e,i,o,s,l){i||=`affine`,o||=`affine`;let u;if(t==`G1`)u=i==`affine`?n.F.n8*2:n.F.n8*3;else if(t==`G2`)u=i==`affine`?n.F.n8*2:n.F.n8*3;else if(t==`Fr`)u=r.n8;else throw Error(`Invalid group`);let d=e.byteLength/u,f=Ln(d);if(2**f*u!=e.byteLength)throw s&&s.error(`lagrangeEvaluations iinvalid input size`),Error(`lagrangeEvaluations invalid Input size`);if(f<=r.s)return await n.ifft(e,i,o,s,l);if(f>r.s+1)throw s&&s.error(`lagrangeEvaluations input too big`),Error(`lagrangeEvaluations input too big`);let p=e.slice(0,e.byteLength/2),m=e.slice(e.byteLength/2,e.byteLength),h=r.exp(r.shift,d/2),g=r.inv(r.sub(r.one,h));[p,m]=await c(p,m,`prepareLagrangeEvaluation`,g,r.shiftInv,i,`jacobian`,s,l+` prep`);let _=[];_.push(a(p,!0,`jacobian`,o,s,l+` t0`)),_.push(a(m,!0,`jacobian`,o,s,l+` t1`)),[p,m]=await Promise.all(_);let v;return v=p.byteLength>1<<28?new W(p.byteLength*2):new Uint8Array(p.byteLength*2),v.set(p),v.set(m,p.byteLength),v},n.fftMix=async function(e){let a=n.F.n8*3,o,s;if(t==`G1`)o=`g1m_fftMix`,s=`g1m_fftJoin`;else if(t==`G2`)o=`g2m_fftMix`,s=`g2m_fftJoin`;else if(t==`Fr`)o=`frm_fftMix`,s=`frm_fftJoin`;else throw Error(`Invalid group`);let c=Math.floor(e.byteLength/a),l=Ln(c),u=1<<Ln(i.concurrency);c<=u*2&&(u=1);let d=c/u,f=Ln(d),p=[];for(let t=0;t<u;t++){let n=[],r=e.slice(t*d*a,(t+1)*d*a);n.push({cmd:`ALLOCSET`,var:0,buff:r});for(let e=1;e<=f;e++)n.push({cmd:`CALL`,fnName:o,params:[{var:0},{val:d},{val:e}]});n.push({cmd:`GET`,out:0,var:0,len:d*a}),p.push(i.queueAction(n))}let m=await Promise.all(p),h=[];for(let e=0;e<m.length;e++)h[e]=m[e][0];for(let e=f+1;e<=l;e++){let t=1<<l-e,n=u/t,o=[];for(let c=0;c<t;c++)for(let t=0;t<n/2;t++){let l=r.exp(r.w[e],t*d),u=r.w[e],f=c*n+t,p=c*n+t+n/2,m=[];m.push({cmd:`ALLOCSET`,var:0,buff:h[f]}),m.push({cmd:`ALLOCSET`,var:1,buff:h[p]}),m.push({cmd:`ALLOCSET`,var:2,buff:l}),m.push({cmd:`ALLOCSET`,var:3,buff:u}),m.push({cmd:`CALL`,fnName:s,params:[{var:0},{var:1},{val:d},{var:2},{var:3}]}),m.push({cmd:`GET`,out:0,var:0,len:d*a}),m.push({cmd:`GET`,out:1,var:1,len:d*a}),o.push(i.queueAction(m))}let c=await Promise.all(o);for(let e=0;e<t;e++)for(let t=0;t<n/2;t++){let r=e*n+t,i=e*n+t+n/2,a=c.shift();h[r]=a[0],h[i]=a[1]}}let g;g=e instanceof W?new W(c*a):new Uint8Array(c*a);let _=0;for(let e=0;e<u;e++)g.set(h[e],_),_+=h[e].byteLength;return g},n.fftJoin=async function(e,a,o,s){let c=n.F.n8*3,l;if(t==`G1`)l=`g1m_fftJoin`;else if(t==`G2`)l=`g2m_fftJoin`;else if(t==`Fr`)l=`frm_fftJoin`;else throw Error(`Invalid group`);if(e.byteLength!=a.byteLength)throw Error(`Invalid buffer size`);let u=Math.floor(e.byteLength/c);if(u!=1<<Ln(u))throw Error(`Invalid number of points`);let d=1<<Ln(i.concurrency);u<=d*2&&(d=1);let f=u/d,p=[];for(let t=0;t<d;t++){let n=[],u=r.mul(o,r.exp(s,t*f)),d=e.slice(t*f*c,(t+1)*f*c),m=a.slice(t*f*c,(t+1)*f*c);n.push({cmd:`ALLOCSET`,var:0,buff:d}),n.push({cmd:`ALLOCSET`,var:1,buff:m}),n.push({cmd:`ALLOCSET`,var:2,buff:u}),n.push({cmd:`ALLOCSET`,var:3,buff:s}),n.push({cmd:`CALL`,fnName:l,params:[{var:0},{var:1},{val:f},{var:2},{var:3}]}),n.push({cmd:`GET`,out:0,var:0,len:f*c}),n.push({cmd:`GET`,out:1,var:1,len:f*c}),p.push(i.queueAction(n))}let m=await Promise.all(p),h,g;e instanceof W?(h=new W(u*c),g=new W(u*c)):(h=new Uint8Array(u*c),g=new Uint8Array(u*c));let _=0;for(let e=0;e<m.length;e++)h.set(m[e][0],_),g.set(m[e][1],_),_+=m[e][0].byteLength;return[h,g]},n.fftFinal=async function(e,r){let a=n.F.n8*3,o=n.F.n8*2,s,c;if(t==`G1`)s=`g1m_fftFinal`,c=`g1m_batchToAffine`;else if(t==`G2`)s=`g2m_fftFinal`,c=`g2m_batchToAffine`;else throw Error(`Invalid group`);let l=Math.floor(e.byteLength/a);if(l!=1<<Ln(l))throw Error(`Invalid number of points`);let u=Math.floor(l/i.concurrency),d=[];for(let t=0;t<i.concurrency;t++){let n;if(n=t<i.concurrency-1?u:l-t*u,n==0)continue;let f=[],p=e.slice(t*u*a,(t*u+n)*a);f.push({cmd:`ALLOCSET`,var:0,buff:p}),f.push({cmd:`ALLOCSET`,var:1,buff:r}),f.push({cmd:`CALL`,fnName:s,params:[{var:0},{val:n},{var:1}]}),f.push({cmd:`CALL`,fnName:c,params:[{var:0},{val:n},{var:0}]}),f.push({cmd:`GET`,out:0,var:0,len:n*o}),d.push(i.queueAction(f))}let f=await Promise.all(d),p;p=e instanceof W?new W(l*o):new Uint8Array(l*o);let m=0;for(let e=f.length-1;e>=0;e--)p.set(f[e][0],m),m+=f[e][0].byteLength;return p}}async function ar(e){let t=await Qn(e.wasm,e.singleThread),n={};return n.q=m(e.wasm.q.toString()),n.r=m(e.wasm.r.toString()),n.name=e.name,n.tm=t,n.prePSize=e.wasm.prePSize,n.preQSize=e.wasm.preQSize,n.Fr=new Un(t,`frm`,e.n8r,e.r),n.F1=new Un(t,`f1m`,e.n8q,e.q),n.F2=new Wn(t,`f2m`,n.F1),n.G1=new Kn(t,`g1m`,n.F1,e.wasm.pG1gen,e.wasm.pG1b,e.cofactorG1),n.G2=new Kn(t,`g2m`,n.F2,e.wasm.pG2gen,e.wasm.pG2b,e.cofactorG2),n.F6=new Gn(t,`f6m`,n.F2),n.F12=new Wn(t,`ftm`,n.F6),n.Gt=n.F12,er(n,`G1`),er(n,`G2`),er(n,`Fr`),rr(n,`G1`),rr(n,`G2`),ir(n,`G1`),ir(n,`G2`),ir(n,`Fr`),tr(n),n.array2buffer=function(e,t){let n=new Uint8Array(t*e.length);for(let r=0;r<e.length;r++)n.set(e[r],r*t);return n},n.buffer2array=function(e,t){let n=e.byteLength/t,r=Array(n);for(let i=0;i<n;i++)r[i]=e.slice(i*t,i*t+t);return r},n}function or(e){return BigInt(e)}function sr(e){return e<0n}function cr(e){return e===0n}function lr(e){return sr(e)?e.toString(2).length-1:e.toString(2).length}function ur(e){let t=[],n=or(e);return t.push(Number(n&255n)),t.push(Number(n>>8n&255n)),t.push(Number(n>>16n&255n)),t.push(Number(n>>24n&255n)),t}function dr(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t.push(r):r<2048?t.push(192|r>>6,128|r&63):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|r&63):(n++,r=65536+((r&1023)<<10|e.charCodeAt(n)&1023),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63))}return t}function fr(e){let t=dr(e);return[...G(t.length),...t]}function pr(e){let t=[],n=or(e);if(sr(n))throw Error(`Number cannot be negative`);for(;!cr(n);)t.push(Number(n&127n)),n>>=7n;t.length==0&&t.push(0);for(let e=0;e<t.length-1;e++)t[e]=t[e]|128;return t}function mr(e){let t,n,r=lr(e);e<0?(n=!0,t=(1n<<BigInt(r))+e):(n=!1,t=or(e));let i=7-r%7,a=(1n<<BigInt(i))-1n<<BigInt(r),o=(1<<7-i)-1|128,s=pr(t+a);return n||(s[s.length-1]=s[s.length-1]&o),s}function hr(e){let t=or(e);if(t>4294967295n)throw Error(`Number too big`);if(t>2147483647n&&(t-=4294967296n),t<-2147483648n)throw Error(`Number too small`);return mr(t)}function gr(e){let t=or(e);if(t>18446744073709551615n)throw Error(`Number too big`);if(t>9223372036854775807n&&(t-=18446744073709551616n),t<-9223372036854775808n)throw Error(`Number too small`);return mr(t)}function G(e){let t=or(e);if(t>4294967295n)throw Error(`Number too big`);return pr(t)}function _r(e){return Array.from(e,function(e){return(`0`+(e&255).toString(16)).slice(-2)}).join(``)}var vr=class{constructor(e){this.func=e,this.functionName=e.functionName,this.module=e.module}setLocal(e,t){let n=this.func.localIdxByName[e];if(n===void 0)throw Error(`Local Variable not defined: Function: ${this.functionName} local: ${e} `);return[...t,33,...G(n)]}teeLocal(e,t){let n=this.func.localIdxByName[e];if(n===void 0)throw Error(`Local Variable not defined: Function: ${this.functionName} local: ${e} `);return[...t,34,...G(n)]}getLocal(e){let t=this.func.localIdxByName[e];if(t===void 0)throw Error(`Local Variable not defined: Function: ${this.functionName} local: ${e} `);return[32,...G(t)]}i64_load8_s(e,t,n){let r=t||0,i=n===void 0?0:n;return[...e,48,i,...G(r)]}i64_load8_u(e,t,n){let r=t||0,i=n===void 0?0:n;return[...e,49,i,...G(r)]}i64_load16_s(e,t,n){let r=t||0,i=n===void 0?1:n;return[...e,50,i,...G(r)]}i64_load16_u(e,t,n){let r=t||0,i=n===void 0?1:n;return[...e,51,i,...G(r)]}i64_load32_s(e,t,n){let r=t||0,i=n===void 0?2:n;return[...e,52,i,...G(r)]}i64_load32_u(e,t,n){let r=t||0,i=n===void 0?2:n;return[...e,53,i,...G(r)]}i64_load(e,t,n){let r=t||0,i=n===void 0?3:n;return[...e,41,i,...G(r)]}i64_store(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=3,o=t):Array.isArray(n)?(i=t,a=3,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,55,a,...G(i)]}i64_store32(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=2,o=t):Array.isArray(n)?(i=t,a=2,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,62,a,...G(i)]}i64_store16(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=1,o=t):Array.isArray(n)?(i=t,a=1,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,61,a,...G(i)]}i64_store8(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=0,o=t):Array.isArray(n)?(i=t,a=0,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,60,a,...G(i)]}i32_load8_s(e,t,n){let r=t||0,i=n===void 0?0:n;return[...e,44,i,...G(r)]}i32_load8_u(e,t,n){let r=t||0,i=n===void 0?0:n;return[...e,45,i,...G(r)]}i32_load16_s(e,t,n){let r=t||0,i=n===void 0?1:n;return[...e,46,i,...G(r)]}i32_load16_u(e,t,n){let r=t||0,i=n===void 0?1:n;return[...e,47,i,...G(r)]}i32_load(e,t,n){let r=t||0,i=n===void 0?2:n;return[...e,40,i,...G(r)]}i32_store(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=2,o=t):Array.isArray(n)?(i=t,a=2,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,54,a,...G(i)]}i32_store16(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=1,o=t):Array.isArray(n)?(i=t,a=1,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,59,a,...G(i)]}i32_store8(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=0,o=t):Array.isArray(n)?(i=t,a=0,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,58,a,...G(i)]}call(e,...t){let n=this.module.functionIdxByName[e];if(n===void 0)throw Error(`Function not defined: Function: ${e}`);return[...[].concat(...t),16,...G(n)]}call_indirect(e,...t){return[...[].concat(...t),...e,17,0,0]}if(e,t,n){return n?[...e,4,64,...t,5,...n,11]:[...e,4,64,...t,11]}block(e){return[2,64,...e,11]}loop(...e){return[3,64,...[].concat(...e),11]}br_if(e,t){return[...t,13,...G(e)]}br(e){return[12,...G(e)]}ret(e){return[...e,15]}drop(e){return[...e,26]}i64_const(e){return[66,...gr(e)]}i32_const(e){return[65,...hr(e)]}i64_eqz(e){return[...e,80]}i64_eq(e,t){return[...e,...t,81]}i64_ne(e,t){return[...e,...t,82]}i64_lt_s(e,t){return[...e,...t,83]}i64_lt_u(e,t){return[...e,...t,84]}i64_gt_s(e,t){return[...e,...t,85]}i64_gt_u(e,t){return[...e,...t,86]}i64_le_s(e,t){return[...e,...t,87]}i64_le_u(e,t){return[...e,...t,88]}i64_ge_s(e,t){return[...e,...t,89]}i64_ge_u(e,t){return[...e,...t,90]}i64_add(e,t){return[...e,...t,124]}i64_sub(e,t){return[...e,...t,125]}i64_mul(e,t){return[...e,...t,126]}i64_div_s(e,t){return[...e,...t,127]}i64_div_u(e,t){return[...e,...t,128]}i64_rem_s(e,t){return[...e,...t,129]}i64_rem_u(e,t){return[...e,...t,130]}i64_and(e,t){return[...e,...t,131]}i64_or(e,t){return[...e,...t,132]}i64_xor(e,t){return[...e,...t,133]}i64_shl(e,t){return[...e,...t,134]}i64_shr_s(e,t){return[...e,...t,135]}i64_shr_u(e,t){return[...e,...t,136]}i64_extend_i32_s(e){return[...e,172]}i64_extend_i32_u(e){return[...e,173]}i64_clz(e){return[...e,121]}i64_ctz(e){return[...e,122]}i32_eqz(e){return[...e,69]}i32_eq(e,t){return[...e,...t,70]}i32_ne(e,t){return[...e,...t,71]}i32_lt_s(e,t){return[...e,...t,72]}i32_lt_u(e,t){return[...e,...t,73]}i32_gt_s(e,t){return[...e,...t,74]}i32_gt_u(e,t){return[...e,...t,75]}i32_le_s(e,t){return[...e,...t,76]}i32_le_u(e,t){return[...e,...t,77]}i32_ge_s(e,t){return[...e,...t,78]}i32_ge_u(e,t){return[...e,...t,79]}i32_add(e,t){return[...e,...t,106]}i32_sub(e,t){return[...e,...t,107]}i32_mul(e,t){return[...e,...t,108]}i32_div_s(e,t){return[...e,...t,109]}i32_div_u(e,t){return[...e,...t,110]}i32_rem_s(e,t){return[...e,...t,111]}i32_rem_u(e,t){return[...e,...t,112]}i32_and(e,t){return[...e,...t,113]}i32_or(e,t){return[...e,...t,114]}i32_xor(e,t){return[...e,...t,115]}i32_shl(e,t){return[...e,...t,116]}i32_shr_s(e,t){return[...e,...t,117]}i32_shr_u(e,t){return[...e,...t,118]}i32_rotl(e,t){return[...e,...t,119]}i32_rotr(e,t){return[...e,...t,120]}i32_wrap_i64(e){return[...e,167]}i32_clz(e){return[...e,103]}i32_ctz(e){return[...e,104]}unreachable(){return[0]}current_memory(){return[63,0]}comment(){return[]}};const yr={i32:127,i64:126,f32:125,f64:124,anyfunc:112,func:96,emptyblock:64};var br=class{constructor(e,t,n,r,i){if(n==`import`)this.fnType=`import`,this.moduleName=r,this.fieldName=i;else if(n==`internal`)this.fnType=`internal`;else throw Error(`Invalid function fnType: `+n);this.module=e,this.fnName=t,this.params=[],this.locals=[],this.localIdxByName={},this.code=[],this.returnType=null,this.nextLocal=0}addParam(e,t){if(this.localIdxByName[e])throw Error(`param already exists. Function: ${this.fnName}, Param: ${e} `);let n=this.nextLocal++;this.localIdxByName[e]=n,this.params.push({type:t})}addLocal(e,t,n){let r=n||1;if(this.localIdxByName[e])throw Error(`local already exists. Function: ${this.fnName}, Param: ${e} `);let i=this.nextLocal++;this.localIdxByName[e]=i,this.locals.push({type:t,length:r})}setReturnType(e){if(this.returnType)throw Error(`returnType already defined. Function: ${this.fnName}`);this.returnType=e}getSignature(){let e=[...G(this.params.length),...this.params.map(e=>yr[e.type])],t=this.returnType?[1,yr[this.returnType]]:[0];return[96,...e,...t]}getBody(){let e=this.locals.map(e=>[...G(e.length),yr[e.type]]),t=[...G(this.locals.length),...[].concat(...e),...this.code,11];return[...G(t.length),...t]}addCode(...e){this.code.push(...[].concat(...e))}getCodeBuilder(){return new vr(this)}},xr=class{constructor(){this.functions=[],this.functionIdxByName={},this.nImportFunctions=0,this.nInternalFunctions=0,this.memory={pagesSize:1,moduleName:`env`,fieldName:`memory`},this.free=8,this.datas=[],this.modules={},this.exports=[],this.functionsTable=[]}build(){return this._setSignatures(),new Uint8Array([...ur(1836278016),...ur(1),...this._buildType(),...this._buildImport(),...this._buildFunctionDeclarations(),...this._buildFunctionsTable(),...this._buildExports(),...this._buildElements(),...this._buildCode(),...this._buildData()])}addFunction(e){if(this.functionIdxByName[e]!==void 0)throw Error(`Function already defined: ${e}`);let t=this.functions.length;return this.functionIdxByName[e]=t,this.functions.push(new br(this,e,`internal`)),this.nInternalFunctions++,this.functions[t]}addIimportFunction(e,t,n){if(this.functionIdxByName[e]!==void 0)throw Error(`Function already defined: ${e}`);if(this.functions.length>0&&this.functions[this.functions.length-1].type==`internal`)throw Error(`Import functions must be declared before internal: ${e}`);let r=n||e,i=this.functions.length;return this.functionIdxByName[e]=i,this.functions.push(new br(this,e,`import`,t,r)),this.nImportFunctions++,this.functions[i]}setMemory(e,t,n){this.memory={pagesSize:e,moduleName:t||`env`,fieldName:n||`memory`}}exportFunction(e,t){let n=t||e;if(this.functionIdxByName[e]===void 0)throw Error(`Function not defined: ${e}`);let r=this.functionIdxByName[e];n!=e&&(this.functionIdxByName[n]=r),this.exports.push({exportName:n,idx:r})}addFunctionToTable(e){let t=this.functionIdxByName[e];this.functionsTable.push(t)}addData(e,t){this.datas.push({offset:e,bytes:t})}alloc(e,t){let n,r;(Array.isArray(e)||ArrayBuffer.isView(e))&&t===void 0?(n=e.length,r=e):(n=e,r=t),n=(n-1>>3)+1<<3;let i=this.free;return this.free+=n,r&&this.addData(i,r),i}allocString(e){let t=new globalThis.TextEncoder().encode(e);return this.alloc([...t,0])}_setSignatures(){this.signatures=[];let e={};if(this.functionsTable.length>0){let t=this.functions[this.functionsTable[0]].getSignature(),n=`s_`+_r(t);e[n]=0,this.signatures.push(t)}for(let t=0;t<this.functions.length;t++){let n=this.functions[t].getSignature(),r=`s_`+_r(n);e[r]===void 0&&(e[r]=this.signatures.length,this.signatures.push(n)),this.functions[t].signatureIdx=e[r]}}_buildSection(e,t){return[e,...G(t.length),...t]}_buildType(){return this._buildSection(1,[...G(this.signatures.length),...[].concat(...this.signatures)])}_buildImport(){let e=[];e.push([...fr(this.memory.moduleName),...fr(this.memory.fieldName),2,0,...G(this.memory.pagesSize)]);for(let t=0;t<this.nImportFunctions;t++)e.push([...fr(this.functions[t].moduleName),...fr(this.functions[t].fieldName),0,...G(this.functions[t].signatureIdx)]);return this._buildSection(2,G(e.length).concat(...e))}_buildFunctionDeclarations(){let e=[];for(let t=this.nImportFunctions;t<this.nImportFunctions+this.nInternalFunctions;t++)e.push(...G(this.functions[t].signatureIdx));return this._buildSection(3,[...G(e.length),...[...e]])}_buildFunctionsTable(){return this.functionsTable.length==0?[]:this._buildSection(4,[...G(1),112,0,...G(this.functionsTable.length)])}_buildElements(){if(this.functionsTable.length==0)return[];let e=[];for(let t=0;t<this.functionsTable.length;t++)e.push(...G(this.functionsTable[t]));return this._buildSection(9,[...G(1),...G(0),65,...hr(0),11,...G(this.functionsTable.length),...[...e]])}_buildExports(){let e=[];for(let t=0;t<this.exports.length;t++)e.push([...fr(this.exports[t].exportName),0,...G(this.exports[t].idx)]);return this._buildSection(7,G(e.length).concat(...e))}_buildCode(){let e=[];for(let t=this.nImportFunctions;t<this.nImportFunctions+this.nInternalFunctions;t++)e.push(this.functions[t].getBody());return this._buildSection(10,G(e.length).concat(...e))}_buildData(){let e=[];e.push([0,65,0,11,4,...ur(this.free)]);for(let t=0;t<this.datas.length;t++)e.push([0,65,...hr(this.datas[t].offset),11,...G(this.datas[t].bytes.length),...this.datas[t].bytes]);return this._buildSection(11,G(e.length).concat(...e))}};globalThis.curve_bn128=null;async function Sr(e,t){if(!e&&globalThis.curve_bn128)return globalThis.curve_bn128;let n=new xr;n.setMemory(25),wn(n),t&&t(n);let r={};r.code=n.build(),r.pq=n.modules.f1m.pq,r.pr=n.modules.frm.pq,r.pG1gen=n.modules.bn128.pG1gen,r.pG1zero=n.modules.bn128.pG1zero,r.pG1b=n.modules.bn128.pG1b,r.pG2gen=n.modules.bn128.pG2gen,r.pG2zero=n.modules.bn128.pG2zero,r.pG2b=n.modules.bn128.pG2b,r.pOneT=n.modules.bn128.pOneT,r.prePSize=n.modules.bn128.prePSize,r.preQSize=n.modules.bn128.preQSize,r.n8q=32,r.n8r=32,r.q=n.modules.bn128.q,r.r=n.modules.bn128.r;let i={name:`bn128`,wasm:r,q:m(`21888242871839275222246405745257275088696311157297823662689037894645226208583`),r:m(`21888242871839275222246405745257275088548364400416034343698204186575808495617`),n8q:32,n8r:32,cofactorG2:m(`30644e72e131a029b85045b68181585e06ceecda572a2489345f2299c0f9fa8d`,16),singleThread:!!e},a=await ar(i);return a.terminate=async function(){i.singleThread||(globalThis.curve_bn128=null,await this.tm.terminate())},e||(globalThis.curve_bn128=a),a}globalThis.curve_bls12381=null;async function Cr(e,t){if(!e&&globalThis.curve_bls12381)return globalThis.curve_bls12381;let n=new xr;n.setMemory(25),Tn(n),t&&t(n);let r={};r.code=n.build(),r.pq=n.modules.f1m.pq,r.pr=n.modules.frm.pq,r.pG1gen=n.modules.bls12381.pG1gen,r.pG1zero=n.modules.bls12381.pG1zero,r.pG1b=n.modules.bls12381.pG1b,r.pG2gen=n.modules.bls12381.pG2gen,r.pG2zero=n.modules.bls12381.pG2zero,r.pG2b=n.modules.bls12381.pG2b,r.pOneT=n.modules.bls12381.pOneT,r.prePSize=n.modules.bls12381.prePSize,r.preQSize=n.modules.bls12381.preQSize,r.n8q=48,r.n8r=32,r.q=n.modules.bls12381.q,r.r=n.modules.bls12381.r;let i={name:`bls12381`,wasm:r,q:m(`1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab`,16),r:m(`73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`,16),n8q:48,n8r:32,cofactorG1:m(`0x396c8c005555e1568c00aaab0000aaab`,16),cofactorG2:m(`0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5`,16),singleThread:!!e},a=await ar(i);return a.terminate=async function(){i.singleThread||(globalThis.curve_bls12381=null,await this.tm.terminate())},e||(globalThis.curve_bls12381=a),a}m(`73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`,16),m(`21888242871839275222246405745257275088548364400416034343698204186575808495617`),m(`1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab`,16),m(`21888242871839275222246405745257275088696311157297823662689037894645226208583`);const K=_e,q=Vn;var wr={};async function Tr(e,t,n,r){if(n||=4096*64,typeof t!=`number`&&[`w+`,`wx+`,`r`,`ax+`,`a+`].indexOf(t)<0)throw Error(`Invalid open option`);let i=await wr.promises.open(e,t);return new Er(i,await i.stat(),n,r,e)}var Er=class{constructor(e,t,n,r,i){for(this.fileName=i,this.fd=e,this.pos=0,this.pageSize=r||256;this.pageSize<t.blksize;)this.pageSize*=2;this.totalSize=t.size,this.totalPages=Math.floor((t.size-1)/this.pageSize)+1,this.maxPagesLoaded=Math.floor(n/this.pageSize)+1,this.pages={},this.pendingLoads=[],this.writing=!1,this.reading=!1,this.avBuffs=[],this.history={}}_loadPage(e){let t=this,n=new Promise((n,r)=>{t.pendingLoads.push({page:e,resolve:n,reject:r})});return t.__statusPage(`After Load request: `,e),n}__statusPage(e,t){let n=[],r=this;if(!r.logHistory)return;n.push(`==`+e+` `+t);let i=``;for(let e=0;e<r.pendingLoads.length;e++)r.pendingLoads[e].page==t&&(i=i+` `+e);if(i&&n.push(`Pending loads:`+i),r.pages[t]!==void 0){let e=r.pages[t];n.push(`Loaded`),n.push(`pendingOps: `+e.pendingOps),e.loading&&n.push(`loading: `+e.loading),e.writing&&n.push(`writing`),e.dirty&&n.push(`dirty`)}n.push(`==`),r.history[t]||(r.history[t]=[]),r.history[t].push(n)}__printHistory(e){let t=this;t.history[e]||console.log(`Empty History `,e),console.log(`History `+e);for(let n=0;n<t.history[e].length;n++)for(let r=0;r<t.history[e][n].length;r++)console.log(`-> `+t.history[e][n][r])}_triggerLoad(){let e=this;if(e.reading||e.pendingLoads.length==0)return;let t=Object.keys(e.pages),n=[];for(let r=0;r<t.length;r++){let i=e.pages[parseInt(t[r])];i.dirty==0&&i.pendingOps==0&&!i.writing&&!i.loading&&n.push(parseInt(t[r]))}let r=e.maxPagesLoaded-t.length,i=[];for(;e.pendingLoads.length>0&&(e.pages[e.pendingLoads[0].page]!==void 0||r>0||n.length>0);){let t=e.pendingLoads.shift();if(e.pages[t.page]!==void 0){e.pages[t.page].pendingOps++;let r=n.indexOf(t.page);r>=0&&n.splice(r,1),e.pages[t.page].loading?e.pages[t.page].loading.push(t):t.resolve(),e.__statusPage(`After Load (cached): `,t.page)}else{if(r)r--;else{let t=n.shift();e.__statusPage(`Before Unload: `,t),e.avBuffs.unshift(e.pages[t]),delete e.pages[t],e.__statusPage(`After Unload: `,t)}t.page>=e.totalPages?(e.pages[t.page]=a(),t.resolve(),e.__statusPage(`After Load (new): `,t.page)):(e.reading=!0,e.pages[t.page]=a(),e.pages[t.page].loading=[t],i.push(e.fd.read(e.pages[t.page].buff,0,e.pageSize,t.page*e.pageSize).then(n=>{e.pages[t.page].size=n.bytesRead;let r=e.pages[t.page].loading;delete e.pages[t.page].loading;for(let e=0;e<r.length;e++)r[e].resolve();return e.__statusPage(`After Load (loaded): `,t.page),n},e=>{t.reject(e)})),e.__statusPage(`After Load (loading): `,t.page))}}Promise.all(i).then(()=>{e.reading=!1,e.pendingLoads.length>0&&setImmediate(e._triggerLoad.bind(e)),e._tryClose()});function a(){if(e.avBuffs.length>0){let t=e.avBuffs.shift();return t.dirty=!1,t.pendingOps=1,t.size=0,t}else return{dirty:!1,buff:new Uint8Array(e.pageSize),pendingOps:1,size:0}}}_triggerWrite(){let e=this;if(e.writing)return;let t=Object.keys(e.pages),n=[];for(let r=0;r<t.length;r++){let i=e.pages[parseInt(t[r])];i.dirty&&(i.dirty=!1,i.writing=!0,e.writing=!0,n.push(e.fd.write(i.buff,0,i.size,parseInt(t[r])*e.pageSize).then(()=>{i.writing=!1},t=>{console.log(`ERROR Writing: `+t),e.error=t,e._tryClose()})))}e.writing&&Promise.all(n).then(()=>{e.writing=!1,setImmediate(e._triggerWrite.bind(e)),e._tryClose(),e.pendingLoads.length>0&&setImmediate(e._triggerLoad.bind(e))})}_getDirtyPage(){for(let e in this.pages)if(this.pages[e].dirty)return e;return-1}async write(e,t){if(e.byteLength==0)return;let n=this;if(t===void 0&&(t=n.pos),n.pos=t+e.byteLength,n.totalSize<t+e.byteLength&&(n.totalSize=t+e.byteLength),n.pendingClose)throw Error(`Writing a closing file`);let r=Math.floor(t/n.pageSize),i=Math.floor((t+e.byteLength-1)/n.pageSize),a=[];for(let e=r;e<=i;e++)a.push(n._loadPage(e));n._triggerLoad();let o=r,s=t%n.pageSize,c=e.byteLength;for(;c>0;){await a[o-r];let t=s+c>n.pageSize?n.pageSize-s:c,i=e.slice(e.byteLength-c,e.byteLength-c+t);new Uint8Array(n.pages[o].buff.buffer,s,t).set(i),n.pages[o].dirty=!0,n.pages[o].pendingOps--,n.pages[o].size=Math.max(s+t,n.pages[o].size),o>=n.totalPages&&(n.totalPages=o+1),c-=t,o++,s=0,n.writing||setImmediate(n._triggerWrite.bind(n))}}async read(e,t){let n=this,r=new Uint8Array(e);return await n.readToBuffer(r,0,e,t),r}async readToBuffer(e,t,n,r){if(n==0)return;let i=this;if(n>i.pageSize*i.maxPagesLoaded*.8){let e=Math.floor(n*1.1);this.maxPagesLoaded=Math.floor(e/i.pageSize)+1}if(r===void 0&&(r=i.pos),i.pos=r+n,i.pendingClose)throw Error(`Reading a closing file`);let a=Math.floor(r/i.pageSize),o=Math.floor((r+n-1)/i.pageSize),s=[];for(let e=a;e<=o;e++)s.push(i._loadPage(e));i._triggerLoad();let c=a,l=r%i.pageSize,u=r+n>i.totalSize?n-(r+n-i.totalSize):n;for(;u>0;){await s[c-a],i.__statusPage(`After Await (read): `,c);let r=l+u>i.pageSize?i.pageSize-l:u,o=new Uint8Array(i.pages[c].buff.buffer,i.pages[c].buff.byteOffset+l,r);e.set(o,t+n-u),i.pages[c].pendingOps--,i.__statusPage(`After Op done: `,c),u-=r,c++,l=0,i.pendingLoads.length>0&&setImmediate(i._triggerLoad.bind(i))}this.pos=r+n}_tryClose(){let e=this;e.pendingClose&&(e.error&&e.pendingCloseReject(e.error),!(e._getDirtyPage()>=0||e.writing||e.reading||e.pendingLoads.length>0)&&e.pendingClose())}close(){let e=this;if(e.pendingClose)throw Error(`Closing the file twice`);return new Promise((t,n)=>{e.pendingClose=t,e.pendingCloseReject=n,e._tryClose()}).then(()=>{e.fd.close()},t=>{throw e.fd.close(),t})}async discard(){await this.close(),await wr.promises.unlink(this.fileName)}async writeULE32(e,t){let n=this,r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,e,!0),await n.write(r,t)}async writeUBE32(e,t){let n=this,r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,e,!1),await n.write(r,t)}async writeULE64(e,t){let n=this,r=new Uint8Array(8),i=new DataView(r.buffer);i.setUint32(0,e&4294967295,!0),i.setUint32(4,Math.floor(e/4294967296),!0),await n.write(r,t)}async readULE32(e){let t=await this.read(4,e);return new Uint32Array(t.buffer)[0]}async readUBE32(e){let t=await this.read(4,e);return new DataView(t.buffer).getUint32(0,!1)}async readULE64(e){let t=await this.read(8,e),n=new Uint32Array(t.buffer);return n[1]*4294967296+n[0]}async readString(e){let t=this;if(t.pendingClose)throw Error(`Reading a closing file`);let n=e===void 0?t.pos:e,r=Math.floor(n/t.pageSize),i=!1,a=``;for(;!i;){let e=t._loadPage(r);t._triggerLoad(),await e,t.__statusPage(`After Await (read): `,r);let o=n%t.pageSize,s=new Uint8Array(t.pages[r].buff.buffer,t.pages[r].buff.byteOffset+o,t.pageSize-o),c=s.findIndex(e=>e===0);i=c!==-1,i?(a+=new TextDecoder().decode(s.slice(0,c)),t.pos=r*this.pageSize+o+c+1):(a+=new TextDecoder().decode(s),t.pos=r*this.pageSize+o+s.length),t.pages[r].pendingOps--,t.__statusPage(`After Op done: `,r),n=t.pos,r++,t.pendingLoads.length>0&&setImmediate(t._triggerLoad.bind(t))}return a}};function Dr(e){let t=e.initialSize||1<<20,n=new Nr;return n.o=e,n.o.data=new Uint8Array(t),n.allocSize=t,n.totalSize=0,n.readOnly=!1,n.pos=0,n}function Or(e){let t=new Nr;return t.o=e,t.allocSize=e.data.byteLength,t.totalSize=e.data.byteLength,t.readOnly=!0,t.pos=0,t}const kr=new Uint8Array(4),Ar=new DataView(kr.buffer),jr=new Uint8Array(8),Mr=new DataView(jr.buffer);var Nr=class{constructor(){this.pageSize=16384}_resizeIfNeeded(e){if(e>this.allocSize){let t=Math.max(this.allocSize+(1<<20),Math.floor(this.allocSize*1.1),e),n=new Uint8Array(t);n.set(this.o.data),this.o.data=n,this.allocSize=t}}async write(e,t){if(t===void 0&&(t=this.pos),this.readOnly)throw Error(`Writing a read only file`);this._resizeIfNeeded(t+e.byteLength),this.o.data.set(e.slice(),t),t+e.byteLength>this.totalSize&&(this.totalSize=t+e.byteLength),this.pos=t+e.byteLength}async readToBuffer(e,t,n,r){if(r===void 0&&(r=this.pos),this.readOnly&&r+n>this.totalSize)throw Error(`Reading out of bounds`);this._resizeIfNeeded(r+n);let i=new Uint8Array(this.o.data.buffer,this.o.data.byteOffset+r,n);e.set(i,t),this.pos=r+n}async read(e,t){let n=this,r=new Uint8Array(e);return await n.readToBuffer(r,0,e,t),r}close(){this.o.data.byteLength!=this.totalSize&&(this.o.data=this.o.data.slice(0,this.totalSize))}async discard(){}async writeULE32(e,t){let n=this;Ar.setUint32(0,e,!0),await n.write(kr,t)}async writeUBE32(e,t){let n=this;Ar.setUint32(0,e,!1),await n.write(kr,t)}async writeULE64(e,t){let n=this;Mr.setUint32(0,e&4294967295,!0),Mr.setUint32(4,Math.floor(e/4294967296),!0),await n.write(jr,t)}async readULE32(e){let t=await this.read(4,e);return new Uint32Array(t.buffer)[0]}async readUBE32(e){let t=await this.read(4,e);return new DataView(t.buffer).getUint32(0,!1)}async readULE64(e){let t=await this.read(8,e),n=new Uint32Array(t.buffer);return n[1]*4294967296+n[0]}async readString(e){let t=this,n=e===void 0?t.pos:e;if(n>this.totalSize){if(this.readOnly)throw Error(`Reading out of bounds`);this._resizeIfNeeded(e)}let r=new Uint8Array(t.o.data.buffer,n,this.totalSize-n),i=r.findIndex(e=>e===0),a=i!==-1,o=``;return a?(o=new TextDecoder().decode(r.slice(0,i)),t.pos=n+i+1):t.pos=n,o}};const J=1<<22;function Pr(e){let t=e.initialSize||0,n=new Br;n.o=e;let r=t?Math.floor((t-1)/J)+1:0;n.o.data=[];for(let e=0;e<r-1;e++)n.o.data.push(new Uint8Array(J));return r&&n.o.data.push(new Uint8Array(t-J*(r-1))),n.totalSize=0,n.readOnly=!1,n.pos=0,n}function Fr(e){let t=new Br;return t.o=e,t.totalSize=(e.data.length-1)*J+e.data[e.data.length-1].byteLength,t.readOnly=!0,t.pos=0,t}const Ir=new Uint8Array(4),Lr=new DataView(Ir.buffer),Rr=new Uint8Array(8),zr=new DataView(Rr.buffer);var Br=class{constructor(){this.pageSize=16384}_resizeIfNeeded(e){if(e<=this.totalSize)return;if(this.readOnly)throw Error(`Reading out of file bounds`);let t=Math.floor((e-1)/J)+1;for(let n=Math.max(this.o.data.length-1,0);n<t;n++){let r=n<t-1?J:e-(t-1)*J,i=new Uint8Array(r);n==this.o.data.length-1&&i.set(this.o.data[n]),this.o.data[n]=i}this.totalSize=e}async write(e,t){let n=this;if(t===void 0&&(t=n.pos),this.readOnly)throw Error(`Writing a read only file`);this._resizeIfNeeded(t+e.byteLength);let r=Math.floor(t/J),i=t%J,a=e.byteLength;for(;a>0;){let t=i+a>J?J-i:a,o=e.slice(e.byteLength-a,e.byteLength-a+t);new Uint8Array(n.o.data[r].buffer,i,t).set(o),a-=t,r++,i=0}this.pos=t+e.byteLength}async readToBuffer(e,t,n,r){let i=this;if(r===void 0&&(r=i.pos),this.readOnly&&r+n>this.totalSize)throw Error(`Reading out of bounds`);this._resizeIfNeeded(r+n);let a=Math.floor(r/J),o=r%J,s=n;for(;s>0;){let r=o+s>J?J-o:s,c=new Uint8Array(i.o.data[a].buffer,o,r);e.set(c,t+n-s),s-=r,a++,o=0}this.pos=r+n}async read(e,t){let n=this,r=new Uint8Array(e);return await n.readToBuffer(r,0,e,t),r}close(){}async discard(){}async writeULE32(e,t){let n=this;Lr.setUint32(0,e,!0),await n.write(Ir,t)}async writeUBE32(e,t){let n=this;Lr.setUint32(0,e,!1),await n.write(Ir,t)}async writeULE64(e,t){let n=this;zr.setUint32(0,e&4294967295,!0),zr.setUint32(4,Math.floor(e/4294967296),!0),await n.write(Rr,t)}async readULE32(e){let t=await this.read(4,e);return new Uint32Array(t.buffer)[0]}async readUBE32(e){let t=await this.read(4,e);return new DataView(t.buffer).getUint32(0,!1)}async readULE64(e){let t=await this.read(8,e),n=new Uint32Array(t.buffer);return n[1]*4294967296+n[0]}async readString(e){let t=this,n=e===void 0?t.pos:e;if(n>this.totalSize){if(this.readOnly)throw Error(`Reading out of bounds`);this._resizeIfNeeded(e)}let r=!1,i=``;for(;!r;){let e=Math.floor(n/J),a=n%J;if(t.o.data[e]===void 0)throw Error(`ERROR`);let o=Math.min(2048,t.o.data[e].length-a),s=new Uint8Array(t.o.data[e].buffer,a,o),c=s.findIndex(e=>e===0);r=c!==-1,r?(i+=new TextDecoder().decode(s.slice(0,c)),t.pos=e*J+a+c+1):(i+=new TextDecoder().decode(s),t.pos=e*J+a+s.length),n=t.pos}return i}};async function Vr(e,t,n){if(typeof e==`string`&&(e={type:`file`,fileName:e,cacheSize:t||65536,pageSize:n||8192}),e.type==`file`)return await Tr(e.fileName,1538,e.cacheSize,e.pageSize);if(e.type==`mem`)return Dr(e);if(e.type==`bigMem`)return Pr(e);throw Error(`Invalid FastFile type: `+e.type)}async function Hr(e,t,n){if(e instanceof Uint8Array&&(e={type:`mem`,data:e}),typeof e==`string`&&(e={type:`mem`,data:await fetch(e).then(function(e){return e.arrayBuffer()}).then(function(e){return new Uint8Array(e)})}),e.type==`file`)return await Tr(e.fileName,0,e.cacheSize,e.pageSize);if(e.type==`mem`)return await Or(e);if(e.type==`bigMem`)return await Fr(e);throw Error(`Invalid FastFile type: `+e.type)}async function Ur(e,t,n,r,i){let a=await Hr(e),o=await a.read(4),s=``;for(let e=0;e<4;e++)s+=String.fromCharCode(o[e]);if(s!=t)throw Error(e+`: Invalid File format`);if(await a.readULE32()>n)throw Error(`Version not supported`);let c=await a.readULE32(),l=[];for(let e=0;e<c;e++){let e=await a.readULE32(),t=await a.readULE64();l[e]===void 0&&(l[e]=[]),l[e].push({p:a.pos,size:t}),a.pos+=t}return{fd:a,sections:l}}async function Wr(e,t,n,r,i,a){let o=await Vr(e,i,a),s=new Uint8Array(4);for(let e=0;e<4;e++)s[e]=t.charCodeAt(e);return await o.write(s,0),await o.writeULE32(n),await o.writeULE32(r),o}async function Gr(e,t){if(e.writingSection!==void 0)throw Error(`Already writing a section`);await e.writeULE32(t),e.writingSection={pSectionSize:e.pos},await e.writeULE64(0)}async function Kr(e){if(e.writingSection===void 0)throw Error(`Not writing a section`);let t=e.pos-e.writingSection.pSectionSize-8,n=e.pos;e.pos=e.writingSection.pSectionSize,await e.writeULE64(t),e.pos=n,delete e.writingSection}async function qr(e,t,n){if(e.readingSection!==void 0)throw Error(`Already reading a section`);if(!t[n])throw Error(e.fileName+`: Missing section `+n);if(t[n].length>1)throw Error(e.fileName+`: Section Duplicated `+n);e.pos=t[n][0].p,e.readingSection=t[n][0]}async function Jr(e,t){if(e.readingSection===void 0)throw Error(`Not reading a section`);if(!t&&e.pos-e.readingSection.p!=e.readingSection.size)throw Error(`Invalid section size reading`);delete e.readingSection}async function Yr(e,t,n,r){let i=new Uint8Array(n);K.toRprLE(i,0,t,n),await e.write(i,r)}async function Xr(e,t,n){let r=await e.read(t,n);return K.fromRprLE(r,0,t)}async function Zr(e,t,n,r,i){if(r=r===void 0?0:r,i=i===void 0?t[n][0].size-r:i,r+i>t[n][0].size)throw Error(`Reading out of the range of the section`);let a;return a=i<1<<30?new Uint8Array(i):new W(i),await e.readToBuffer(a,0,i,t[n][0].p+r),a}K.e(`73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`,16),K.e(`21888242871839275222246405745257275088548364400416034343698204186575808495617`);const Qr=K.e(`1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab`,16),$r=K.e(`21888242871839275222246405745257275088696311157297823662689037894645226208583`);async function ei(e,t){let n,r=t&&t.singleThread;if(K.eq(e,$r))n=await Sr(r);else if(K.eq(e,Qr))n=await Cr(r);else throw Error(`Curve not supported: ${K.toString(e)}`);return n}async function ti(e,t){let n,r=t&&t.singleThread,i=a(e);if([`BN128`,`BN254`,`ALTBN128`].indexOf(i)>=0)n=await Sr(r);else if([`BLS12381`].indexOf(i)>=0)n=await Cr(r);else throw Error(`Curve not supported: ${e}`);return n;function a(e){return e.toUpperCase().match(/[A-Za-z0-9]+/g).join(``)}}var ni=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},ri={exports:{}},ii=oi,ai=class extends Error{};ai.prototype.name=`AssertionError`;function oi(e,t){if(!e){var n=new ai(t);throw Error.captureStackTrace&&Error.captureStackTrace(n,oi),n}}var si={exports:{}};function ci(e){return e.length}function li(e){let t=e.byteLength,n=``;for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}function ui(e,t,n=0,r=ci(t)){let i=Math.min(r,e.byteLength-n);for(let r=0;r<i;r++)e[n+r]=t.charCodeAt(r);return i}var di={byteLength:ci,toString:li,write:ui};const fi=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,pi=new Uint8Array(256);for(let e=0;e<64;e++)pi[fi.charCodeAt(e)]=e;pi[45]=62,pi[95]=63;function mi(e){let t=e.length;return e.charCodeAt(t-1)===61&&t--,t>1&&e.charCodeAt(t-1)===61&&t--,t*3>>>2}function hi(e){let t=e.byteLength,n=``;for(let r=0;r<t;r+=3)n+=fi[e[r]>>2]+fi[(e[r]&3)<<4|e[r+1]>>4]+fi[(e[r+1]&15)<<2|e[r+2]>>6]+fi[e[r+2]&63];return t%3==2?n=n.substring(0,n.length-1)+`=`:t%3==1&&(n=n.substring(0,n.length-2)+`==`),n}function gi(e,t,n=0,r=mi(t)){let i=Math.min(r,e.byteLength-n);for(let n=0,r=0;r<i;n+=4){let i=pi[t.charCodeAt(n)],a=pi[t.charCodeAt(n+1)],o=pi[t.charCodeAt(n+2)],s=pi[t.charCodeAt(n+3)];e[r++]=i<<2|a>>4,e[r++]=(a&15)<<4|o>>2,e[r++]=(o&3)<<6|s&63}return i}var _i={byteLength:mi,toString:hi,write:gi};function vi(e){return e.length>>>1}function yi(e){let t=e.byteLength;e=new DataView(e.buffer,e.byteOffset,t);let n=``,r=0;for(let i=t-t%4;r<i;r+=4)n+=e.getUint32(r).toString(16).padStart(8,`0`);for(;r<t;r++)n+=e.getUint8(r).toString(16).padStart(2,`0`);return n}function bi(e,t,n=0,r=vi(t)){let i=Math.min(r,e.byteLength-n);for(let r=0;r<i;r++){let i=Si(t.charCodeAt(r*2)),a=Si(t.charCodeAt(r*2+1));if(i===void 0||a===void 0)return e.subarray(0,r);e[n+r]=i<<4|a}return i}var xi={byteLength:vi,toString:yi,write:bi};function Si(e){if(e>=48&&e<=57)return e-48;if(e>=65&&e<=70)return e-65+10;if(e>=97&&e<=102)return e-97+10}function Ci(e){let t=0;for(let n=0,r=e.length;n<r;n++){let i=e.charCodeAt(n);if(i>=55296&&i<=56319&&n+1<r){let r=e.charCodeAt(n+1);if(r>=56320&&r<=57343){t+=4,n++;continue}}i<=127?t+=1:i<=2047?t+=2:t+=3}return t}let wi;if(typeof TextDecoder<`u`){let e=new TextDecoder;wi=function(t){return e.decode(t)}}else wi=function(e){let t=e.byteLength,n=``,r=0;for(;r<t;){let i=e[r];if(i<=127){n+=String.fromCharCode(i),r++;continue}let a=0,o=0;if(i<=223?(a=1,o=i&31):i<=239?(a=2,o=i&15):i<=244&&(a=3,o=i&7),t-r-a>0){let t=0;for(;t<a;)i=e[r+t+1],o=o<<6|i&63,t+=1}else o=65533,a=t-r;n+=String.fromCodePoint(o),r+=a+1}return n};let Ti;if(typeof TextEncoder<`u`){let e=new TextEncoder;Ti=function(t,n,r=0,i=Ci(n)){let a=Math.min(i,t.byteLength-r);return e.encodeInto(n,t.subarray(r,r+a)),a}}else Ti=function(e,t,n=0,r=Ci(t)){let i=Math.min(r,e.byteLength-n);e=e.subarray(n,n+i);let a=0,o=0;for(;a<t.length;){let n=t.codePointAt(a);if(n<=127){e[o++]=n,a++;continue}let r=0,i=0;for(n<=2047?(r=6,i=192):n<=65535?(r=12,i=224):n<=2097151&&(r=18,i=240),e[o++]=i|n>>r,r-=6;r>=0;)e[o++]=128|n>>r&63,r-=6;a+=n>=65536?2:1}return i};var Ei={byteLength:Ci,toString:wi,write:Ti};function Di(e){return e.length*2}function Oi(e){let t=e.byteLength,n=``;for(let r=0;r<t-1;r+=2)n+=String.fromCharCode(e[r]+e[r+1]*256);return n}function ki(e,t,n=0,r=Di(t)){let i=Math.min(r,e.byteLength-n),a=i;for(let r=0;r<t.length&&!((a-=2)<0);++r){let i=t.charCodeAt(r),a=i>>8,o=i%256;e[n+r*2]=o,e[n+r*2+1]=a}return i}var Ai={byteLength:Di,toString:Oi,write:ki};(function(e,t){let n=di,r=_i,i=xi,a=Ei,o=Ai,s=new Uint8Array(Uint16Array.of(255).buffer)[0]===255;function c(e){switch(e){case`ascii`:return n;case`base64`:return r;case`hex`:return i;case`utf8`:case`utf-8`:case void 0:return a;case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return o;default:throw Error(`Unknown encoding: ${e}`)}}function l(e){return e instanceof Uint8Array}function u(e){try{return c(e),!0}catch{return!1}}function d(e,n,r){let i=new Uint8Array(e);return n!==void 0&&t.fill(i,n,0,i.byteLength,r),i}function f(e){return new Uint8Array(e)}function p(e){return new Uint8Array(e)}function m(e,t){return c(t).byteLength(e)}function h(e,t){if(e===t)return 0;let n=Math.min(e.byteLength,t.byteLength);e=new DataView(e.buffer,e.byteOffset,e.byteLength),t=new DataView(t.buffer,t.byteOffset,t.byteLength);let r=0;for(let i=n-n%4;r<i&&e.getUint32(r,s)===t.getUint32(r,s);r+=4);for(;r<n;r++){let n=e.getUint8(r),i=t.getUint8(r);if(n<i)return-1;if(n>i)return 1}return e.byteLength>t.byteLength?1:e.byteLength<t.byteLength?-1:0}function g(e,t){t===void 0&&(t=e.reduce((e,t)=>e+t.byteLength,0));let n=new Uint8Array(t),r=0;for(let t of e){if(r+t.byteLength>n.byteLength){let e=t.subarray(0,n.byteLength-r);return n.set(e,r),n}n.set(t,r),r+=t.byteLength}return n}function _(e,t,n=0,r=0,i=e.byteLength){if(i>0&&i<r||i===r||e.byteLength===0||t.byteLength===0)return 0;if(n<0)throw RangeError(`targetStart is out of range`);if(r<0||r>=e.byteLength)throw RangeError(`sourceStart is out of range`);if(i<0)throw RangeError(`sourceEnd is out of range`);n>=t.byteLength&&(n=t.byteLength),i>e.byteLength&&(i=e.byteLength),t.byteLength-n<i-r&&(i=t.length-n+r);let a=i-r;return e===t?t.copyWithin(n,r,i):t.set(e.subarray(r,i),n),a}function v(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;let n=e.byteLength;e=new DataView(e.buffer,e.byteOffset,e.byteLength),t=new DataView(t.buffer,t.byteOffset,t.byteLength);let r=0;for(let i=n-n%4;r<i;r+=4)if(e.getUint32(r,s)!==t.getUint32(r,s))return!1;for(;r<n;r++)if(e.getUint8(r)!==t.getUint8(r))return!1;return!0}function y(e,t,n,r,i){if(typeof t==`string`?typeof n==`string`?(i=n,n=0,r=e.byteLength):typeof r==`string`&&(i=r,r=e.byteLength):typeof t==`number`?t&=255:typeof t==`boolean`&&(t=+t),n<0||e.byteLength<n||e.byteLength<r)throw RangeError(`Out of range index`);if(n===void 0&&(n=0),r===void 0&&(r=e.byteLength),r<=n)return e;if(t||=0,typeof t==`number`)for(let i=n;i<r;++i)e[i]=t;else{t=l(t)?t:b(t,i);let a=t.byteLength;for(let i=0;i<r-n;++i)e[i+n]=t[i%a]}return e}function b(e,t,n){return typeof e==`string`?x(e,t):Array.isArray(e)?S(e):ArrayBuffer.isView(e)?C(e):w(e,t,n)}function x(e,t){let n=c(t),r=new Uint8Array(n.byteLength(e));return n.write(r,e,0,r.byteLength),r}function S(e){let t=new Uint8Array(e.length);return t.set(e),t}function C(e){let t=new Uint8Array(e.byteLength);return t.set(e),t}function w(e,t,n){return new Uint8Array(e,t,n)}function T(e,t,n,r){return D(e,t,n,r)!==-1}function E(e,t,n,r,i){if(e.byteLength===0)return-1;if(typeof n==`string`?(r=n,n=0):n===void 0?n=i?0:e.length-1:n<0&&(n+=e.byteLength),n>=e.byteLength){if(i)return-1;n=e.byteLength-1}else if(n<0)if(i)n=0;else return-1;if(typeof t==`string`)t=b(t,r);else if(typeof t==`number`)return t&=255,i?e.indexOf(t,n):e.lastIndexOf(t,n);if(t.byteLength===0)return-1;if(i){let r=-1;for(let i=n;i<e.byteLength;i++)if(e[i]===t[r===-1?0:i-r]){if(r===-1&&(r=i),i-r+1===t.byteLength)return r}else r!==-1&&(i-=i-r),r=-1}else{n+t.byteLength>e.byteLength&&(n=e.byteLength-t.byteLength);for(let r=n;r>=0;r--){let n=!0;for(let i=0;i<t.byteLength;i++)if(e[r+i]!==t[i]){n=!1;break}if(n)return r}}return-1}function D(e,t,n,r){return E(e,t,n,r,!0)}function O(e,t,n,r){return E(e,t,n,r,!1)}function k(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function A(e){let t=e.byteLength;if(t%2!=0)throw RangeError(`Buffer size must be a multiple of 16-bits`);for(let n=0;n<t;n+=2)k(e,n,n+1);return e}function j(e){let t=e.byteLength;if(t%4!=0)throw RangeError(`Buffer size must be a multiple of 32-bits`);for(let n=0;n<t;n+=4)k(e,n,n+3),k(e,n+1,n+2);return e}function M(e){let t=e.byteLength;if(t%8!=0)throw RangeError(`Buffer size must be a multiple of 64-bits`);for(let n=0;n<t;n+=8)k(e,n,n+7),k(e,n+1,n+6),k(e,n+2,n+5),k(e,n+3,n+4);return e}function N(e){return e}function P(e,t,n=0,r=e.byteLength){let i=e.byteLength;return n>=i||r<=n?``:(n<0&&(n=0),r>i&&(r=i),(n!==0||r<i)&&(e=e.subarray(n,r)),c(t).toString(e))}function F(e,t,n,r,i){return n===void 0?i=`utf8`:r===void 0&&typeof n==`string`?(i=n,n=void 0):i===void 0&&typeof r==`string`&&(i=r,r=void 0),c(i).write(e,t,n,r)}function I(e,t,n){return n===void 0&&(n=0),new DataView(e.buffer,e.byteOffset,e.byteLength).setFloat64(n,t,!0),n+8}function L(e,t,n){return n===void 0&&(n=0),new DataView(e.buffer,e.byteOffset,e.byteLength).setFloat32(n,t,!0),n+4}function R(e,t,n){return n===void 0&&(n=0),new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(n,t,!0),n+4}function z(e,t,n){return n===void 0&&(n=0),new DataView(e.buffer,e.byteOffset,e.byteLength).setInt32(n,t,!0),n+4}function ee(e,t){return t===void 0&&(t=0),new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat64(t,!0)}function B(e,t){return t===void 0&&(t=0),new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat32(t,!0)}function te(e,t){return t===void 0&&(t=0),new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(t,!0)}function ne(e,t){return t===void 0&&(t=0),new DataView(e.buffer,e.byteOffset,e.byteLength).getInt32(t,!0)}e.exports=t={isBuffer:l,isEncoding:u,alloc:d,allocUnsafe:f,allocUnsafeSlow:p,byteLength:m,compare:h,concat:g,copy:_,equals:v,fill:y,from:b,includes:T,indexOf:D,lastIndexOf:O,swap16:A,swap32:j,swap64:M,toBuffer:N,toString:P,write:F,writeDoubleLE:I,writeFloatLE:L,writeUInt32LE:R,writeInt32LE:z,readDoubleLE:ee,readFloatLE:B,readUInt32LE:te,readInt32LE:ne}})(si,si.exports);var ji,Mi;function Ni(){if(Mi)return ji;Mi=1;var e=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},t=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return t=>{for(var n=t.length,r=new Uint8Array((n-(t[n-1]==`=`)-(t[n-2]==`=`))*3/4|0),i=0,a=0;i<n;){var o=e[t.charCodeAt(i++)],s=e[t.charCodeAt(i++)],c=e[t.charCodeAt(i++)],l=e[t.charCodeAt(i++)];r[a++]=o<<2|s>>4,r[a++]=s<<4|c>>2,r[a++]=c<<6|l}return r}})(),n=e({"wasm-binary:./blake2b.wat"(e,n){n.exports=t(`AGFzbQEAAAABEANgAn9/AGADf39/AGABfwADBQQAAQICBQUBAQroBwdNBQZtZW1vcnkCAAxibGFrZTJiX2luaXQAAA5ibGFrZTJiX3VwZGF0ZQABDWJsYWtlMmJfZmluYWwAAhBibGFrZTJiX2NvbXByZXNzAAMKvz8EwAIAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEIANwNAIABCADcDSCAAQgA3A1AgAEIANwNYIABCADcDYCAAQgA3A2ggAEIANwNwIABCADcDeCAAQoiS853/zPmE6gBBACkDAIU3A4ABIABCu86qptjQ67O7f0EIKQMAhTcDiAEgAEKr8NP0r+68tzxBECkDAIU3A5ABIABC8e30+KWn/aelf0EYKQMAhTcDmAEgAELRhZrv+s+Uh9EAQSApAwCFNwOgASAAQp/Y+dnCkdqCm39BKCkDAIU3A6gBIABC6/qG2r+19sEfQTApAwCFNwOwASAAQvnC+JuRo7Pw2wBBOCkDAIU3A7gBIABCADcDwAEgAEIANwPIASAAQgA3A9ABC20BA38gAEHAAWohAyAAQcgBaiEEIAQpAwCnIQUCQANAIAEgAkYNASAFQYABRgRAIAMgAykDACAFrXw3AwBBACEFIAAQAwsgACAFaiABLQAAOgAAIAVBAWohBSABQQFqIQEMAAsLIAQgBa03AwALYQEDfyAAQcABaiEBIABByAFqIQIgASABKQMAIAIpAwB8NwMAIABCfzcD0AEgAikDAKchAwJAA0AgA0GAAUYNASAAIANqQQA6AAAgA0EBaiEDDAALCyACIAOtNwMAIAAQAwuqOwIgfgl/IABBgAFqISEgAEGIAWohIiAAQZABaiEjIABBmAFqISQgAEGgAWohJSAAQagBaiEmIABBsAFqIScgAEG4AWohKCAhKQMAIQEgIikDACECICMpAwAhAyAkKQMAIQQgJSkDACEFICYpAwAhBiAnKQMAIQcgKCkDACEIQoiS853/zPmE6gAhCUK7zqqm2NDrs7t/IQpCq/DT9K/uvLc8IQtC8e30+KWn/aelfyEMQtGFmu/6z5SH0QAhDUKf2PnZwpHagpt/IQ5C6/qG2r+19sEfIQ9C+cL4m5Gjs/DbACEQIAApAwAhESAAKQMIIRIgACkDECETIAApAxghFCAAKQMgIRUgACkDKCEWIAApAzAhFyAAKQM4IRggACkDQCEZIAApA0ghGiAAKQNQIRsgACkDWCEcIAApA2AhHSAAKQNoIR4gACkDcCEfIAApA3ghICANIAApA8ABhSENIA8gACkD0AGFIQ8gASAFIBF8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSASfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgE3x8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBR8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAVfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgFnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBd8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAYfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgGXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBp8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAbfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgHHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIB18fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAefHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgH3x8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFICB8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAffHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgG3x8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBV8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAZfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgGnx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHICB8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAefHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggF3x8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBJ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAdfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgEXx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBN8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAcfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGHx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBZ8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAUfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgHHx8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBl8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAdfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgEXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBZ8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByATfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggIHx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIB58fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAbfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgH3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBR8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAXfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggGHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBJ8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAafHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFXx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBh8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAafHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgFHx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBJ8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAefHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHXx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBx8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAffHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgE3x8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBd8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAWfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgG3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBV8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCARfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgIHx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBl8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAafHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEXx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBZ8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAYfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgE3x8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBV8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAbfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggIHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIB98fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiASfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgHHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIB18fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAXfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGXx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBR8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAefHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgE3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIB18fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAXfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgG3x8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBF8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAcfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggGXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBR8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAVfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHnx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBh8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAWfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggIHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIB98fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSASfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgGnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIB18fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAWfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgEnx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGICB8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAffHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBV8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAbfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgEXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBh8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAXfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgFHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBp8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCATfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgGXx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBx8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAefHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgHHx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBh8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAffHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgHXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBJ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAUfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGnx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBZ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiARfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgIHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBV8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAZfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggF3x8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBN8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAbfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgF3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFICB8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAffHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGnx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBx8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAUfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggEXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBl8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAdfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgE3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIB58fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAYfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggEnx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBV8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAbfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBt8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSATfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgGXx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBV8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAYfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgF3x8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBJ8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAWfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgIHx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBx8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAafHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgH3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBR8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAdfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgHnx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBF8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSARfHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEnx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBN8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAUfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgFXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBZ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAXfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBl8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAafHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgG3x8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBx8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAdfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggHnx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIB98fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAgfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgH3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBt8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAVfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBp8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAgfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggHnx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBd8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiASfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHXx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBF8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByATfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggHHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBh8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAWfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFHx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgISAhKQMAIAEgCYWFNwMAICIgIikDACACIAqFhTcDACAjICMpAwAgAyALhYU3AwAgJCAkKQMAIAQgDIWFNwMAICUgJSkDACAFIA2FhTcDACAmICYpAwAgBiAOhYU3AwAgJyAnKQMAIAcgD4WFNwMAICggKCkDACAIIBCFhTcDAAs=`)}})(),r=WebAssembly.compile(n);return ji=async e=>(await WebAssembly.instantiate(await r,e)).exports,ji}var Pi=ii,Fi=si.exports,Ii=null,Li=typeof WebAssembly<`u`&&Ni()().then(e=>{Ii=e}),Ri=64,zi=[];ri.exports=Ki;var Bi=ri.exports.BYTES_MIN=16,Vi=ri.exports.BYTES_MAX=64;ri.exports.BYTES=32;var Hi=ri.exports.KEYBYTES_MIN=16,Ui=ri.exports.KEYBYTES_MAX=64;ri.exports.KEYBYTES=32;var Wi=ri.exports.SALTBYTES=16,Gi=ri.exports.PERSONALBYTES=16;function Ki(e,t,n,r,i){if(!(this instanceof Ki))return new Ki(e,t,n,r,i);if(!Ii)throw Error(`WASM not loaded. Wait for Blake2b.ready(cb)`);e||=32,i!==!0&&(Pi(e>=Bi,`digestLength must be at least `+Bi+`, was given `+e),Pi(e<=Vi,`digestLength must be at most `+Vi+`, was given `+e),t!=null&&(Pi(t instanceof Uint8Array,`key must be Uint8Array or Buffer`),Pi(t.length>=Hi,`key must be at least `+Hi+`, was given `+t.length),Pi(t.length<=Ui,`key must be at least `+Ui+`, was given `+t.length)),n!=null&&(Pi(n instanceof Uint8Array,`salt must be Uint8Array or Buffer`),Pi(n.length===Wi,`salt must be exactly `+Wi+`, was given `+n.length)),r!=null&&(Pi(r instanceof Uint8Array,`personal must be Uint8Array or Buffer`),Pi(r.length===Gi,`personal must be exactly `+Gi+`, was given `+r.length))),zi.length||(zi.push(Ri),Ri+=216),this.digestLength=e,this.finalized=!1,this.pointer=zi.pop(),this._memory=new Uint8Array(Ii.memory.buffer),this._memory.fill(0,0,64),this._memory[0]=this.digestLength,this._memory[1]=t?t.length:0,this._memory[2]=1,this._memory[3]=1,n&&this._memory.set(n,32),r&&this._memory.set(r,48),this.pointer+216>this._memory.length&&this._realloc(this.pointer+216),Ii.blake2b_init(this.pointer,this.digestLength),t&&(this.update(t),this._memory.fill(0,Ri,Ri+t.length),this._memory[this.pointer+200]=128)}Ki.prototype._realloc=function(e){Ii.memory.grow(Math.max(0,Math.ceil(Math.abs(e-this._memory.length)/65536))),this._memory=new Uint8Array(Ii.memory.buffer)},Ki.prototype.update=function(e){return Pi(this.finalized===!1,`Hash instance finalized`),Pi(e instanceof Uint8Array,`input must be Uint8Array or Buffer`),Ri+e.length>this._memory.length&&this._realloc(Ri+e.length),this._memory.set(e,Ri),Ii.blake2b_update(this.pointer,Ri,Ri+e.length),this},Ki.prototype.digest=function(e){if(Pi(this.finalized===!1,`Hash instance finalized`),this.finalized=!0,zi.push(this.pointer),Ii.blake2b_final(this.pointer),!e||e===`binary`)return this._memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if(typeof e==`string`)return Fi.toString(this._memory,e,this.pointer+128,this.pointer+128+this.digestLength);Pi(e instanceof Uint8Array&&e.length>=this.digestLength,`input must be Uint8Array or Buffer`);for(var t=0;t<this.digestLength;t++)e[t]=this._memory[this.pointer+128+t];return e},Ki.prototype.final=Ki.prototype.digest,Ki.WASM=Ii,Ki.SUPPORTED=typeof WebAssembly<`u`,Ki.ready=function(e){return e||=qi,Li?Li.then(()=>e(),e):e(Error(`WebAssembly not supported`))},Ki.prototype.ready=Ki.ready,Ki.prototype.getPartialHash=function(){return this._memory.slice(this.pointer,this.pointer+216)},Ki.prototype.setPartialHash=function(e){this._memory.set(e,this.pointer)};function qi(){}function Ji(e){return(e&4294901760?(e&=4294901760,16):0)|(e&4278255360?(e&=4278255360,8):0)|(e&4042322160?(e&=4042322160,4):0)|(e&3435973836?(e&=3435973836,2):0)|(e&2863311530)!=0}async function Yi(e,t,n){let r=await e.read(t.G1.F.n8*2),i=t.G1.fromRprLEM(r,0);return n?t.G1.toObject(i):i}async function Xi(e,t,n){let r=await e.read(t.G2.F.n8*2),i=t.G2.fromRprLEM(r,0);return n?t.G2.toObject(i):i}async function Zi(e,t,n,r){await qr(e,t,1);let i=await e.readULE32();if(await Jr(e),i===1)return await Qi(e,t,n,r);if(i===2)return await $i(e,t,n,r);if(i===10)return await ea(e,t,n,r);throw Error(`Protocol not supported: `)}async function Qi(e,t,n,r){let i={};i.protocol=`groth16`,await qr(e,t,2);let a=await e.readULE32();i.n8q=a,i.q=await Xr(e,a);let o=await e.readULE32();return i.n8r=o,i.r=await Xr(e,o),i.curve=await ei(i.q,r),i.nVars=await e.readULE32(),i.nPublic=await e.readULE32(),i.domainSize=await e.readULE32(),i.power=Ji(i.domainSize),i.vk_alpha_1=await Yi(e,i.curve,n),i.vk_beta_1=await Yi(e,i.curve,n),i.vk_beta_2=await Xi(e,i.curve,n),i.vk_gamma_2=await Xi(e,i.curve,n),i.vk_delta_1=await Yi(e,i.curve,n),i.vk_delta_2=await Xi(e,i.curve,n),await Jr(e),i}async function $i(e,t,n,r){let i={};i.protocol=`plonk`,await qr(e,t,2);let a=await e.readULE32();i.n8q=a,i.q=await Xr(e,a);let o=await e.readULE32();return i.n8r=o,i.r=await Xr(e,o),i.curve=await ei(i.q,r),i.nVars=await e.readULE32(),i.nPublic=await e.readULE32(),i.domainSize=await e.readULE32(),i.power=Ji(i.domainSize),i.nAdditions=await e.readULE32(),i.nConstraints=await e.readULE32(),i.k1=await e.read(o),i.k2=await e.read(o),i.Qm=await Yi(e,i.curve,n),i.Ql=await Yi(e,i.curve,n),i.Qr=await Yi(e,i.curve,n),i.Qo=await Yi(e,i.curve,n),i.Qc=await Yi(e,i.curve,n),i.S1=await Yi(e,i.curve,n),i.S2=await Yi(e,i.curve,n),i.S3=await Yi(e,i.curve,n),i.X_2=await Xi(e,i.curve,n),await Jr(e),i}async function ea(e,t,n,r){let i={};i.protocol=`fflonk`,i.protocolId=10,await qr(e,t,2);let a=await e.readULE32();i.n8q=a,i.q=await Xr(e,a),i.curve=await ei(i.q,r);let o=await e.readULE32();return i.n8r=o,i.r=await Xr(e,o),i.nVars=await e.readULE32(),i.nPublic=await e.readULE32(),i.domainSize=await e.readULE32(),i.power=Ji(i.domainSize),i.nAdditions=await e.readULE32(),i.nConstraints=await e.readULE32(),i.k1=await e.read(o),i.k2=await e.read(o),i.w3=await e.read(o),i.w4=await e.read(o),i.w8=await e.read(o),i.wr=await e.read(o),i.X_2=await Xi(e,i.curve,n),i.C0=await Yi(e,i.curve,n),await Jr(e),i}async function ta(e,t,n){await Gr(e,1);let r=(Math.floor((K.bitLength(n)-1)/64)+1)*8;if(await e.writeULE32(r),await Yr(e,n,r),t.byteLength%r!=0)throw Error(`Invalid witness length`);await e.writeULE32(t.byteLength/r),await Kr(e),await Gr(e,2),await e.write(t),await Kr(e)}async function na(e,t){await qr(e,t,1);let n=await e.readULE32(),r=await Xr(e,n),i=await e.readULE32();return await Jr(e),{n8:n,q:r,nWitness:i}}const{stringifyBigInts:ra}=q;async function ia(e,t,n,r){let{fd:i,sections:a}=await Ur(t,`wtns`,2),o=await na(i,a),{fd:s,sections:c}=await Ur(e,`zkey`,2),l=await Zi(s,c,void 0,r);if(l.protocol!=`groth16`)throw Error(`zkey file is not groth16`);if(!K.eq(l.r,o.q))throw Error(`Curve of the witness does not match the curve of the proving key`);if(o.nWitness!=l.nVars)throw Error(`Invalid witness length. Circuit: ${l.nVars}, witness: ${o.nWitness}`);let u=l.curve,d=u.Fr,f=u.G1,p=u.G2,m=Ji(l.domainSize);n&&n.debug(`Reading Wtns`);let h=await Zr(i,a,2);n&&n.debug(`Reading Coeffs`);let g=await Zr(s,c,4);n&&n.debug(`Building ABC`);let[_,v,y]=await aa(u,l,h,g,n),b=m==d.s?u.Fr.shift:u.Fr.w[m+1],x=await d.ifft(_,``,``,n,`IFFT_A`),S=await d.batchApplyKey(x,d.e(1),b),C=await d.fft(S,``,``,n,`FFT_A`),w=await d.ifft(v,``,``,n,`IFFT_B`),T=await d.batchApplyKey(w,d.e(1),b),E=await d.fft(T,``,``,n,`FFT_B`),D=await d.ifft(y,``,``,n,`IFFT_C`),O=await d.batchApplyKey(D,d.e(1),b),k=await d.fft(O,``,``,n,`FFT_C`);n&&n.debug(`Join ABC`);let A=await oa(u,l,C,E,k,n),j={};n&&n.debug(`Reading A Points`);let M=await Zr(s,c,5);j.pi_a=await u.G1.multiExpAffine(M,h,n,`multiexp A`),n&&n.debug(`Reading B1 Points`);let N=await Zr(s,c,6),P=await u.G1.multiExpAffine(N,h,n,`multiexp B1`);n&&n.debug(`Reading B2 Points`);let F=await Zr(s,c,7);j.pi_b=await u.G2.multiExpAffine(F,h,n,`multiexp B2`),n&&n.debug(`Reading C Points`);let I=await Zr(s,c,8);j.pi_c=await u.G1.multiExpAffine(I,h.slice((l.nPublic+1)*u.Fr.n8),n,`multiexp C`),n&&n.debug(`Reading H Points`);let L=await Zr(s,c,9),R=await u.G1.multiExpAffine(L,A,n,`multiexp H`),z=u.Fr.random(),ee=u.Fr.random();j.pi_a=f.add(j.pi_a,l.vk_alpha_1),j.pi_a=f.add(j.pi_a,f.timesFr(l.vk_delta_1,z)),j.pi_b=p.add(j.pi_b,l.vk_beta_2),j.pi_b=p.add(j.pi_b,p.timesFr(l.vk_delta_2,ee)),P=f.add(P,l.vk_beta_1),P=f.add(P,f.timesFr(l.vk_delta_1,ee)),j.pi_c=f.add(j.pi_c,R),j.pi_c=f.add(j.pi_c,f.timesFr(j.pi_a,ee)),j.pi_c=f.add(j.pi_c,f.timesFr(P,z)),j.pi_c=f.add(j.pi_c,f.timesFr(l.vk_delta_1,d.neg(d.mul(z,ee))));let B=[];for(let e=1;e<=l.nPublic;e++){let t=h.slice(e*d.n8,e*d.n8+d.n8);B.push(K.fromRprLE(t))}return j.pi_a=f.toObject(f.toAffine(j.pi_a)),j.pi_b=p.toObject(p.toAffine(j.pi_b)),j.pi_c=f.toObject(f.toAffine(j.pi_c)),j.protocol=`groth16`,j.curve=u.name,await s.close(),await i.close(),j=ra(j),B=ra(B),{proof:j,publicSignals:B}}async function aa(e,t,n,r,i){let a=e.Fr.n8,o=12+t.n8r,s=(r.byteLength-4)/o,c=new W(t.domainSize*a),l=new W(t.domainSize*a),u=new W(t.domainSize*a),d=[c,l];for(let t=0;t<s;t++){i&&t%1e6==0&&i.debug(`QAP AB: ${t}/${s}`);let c=r.slice(4+t*o,4+t*o+o),l=new DataView(c.buffer),u=l.getUint32(0,!0),f=l.getUint32(4,!0),p=l.getUint32(8,!0),m=c.slice(12,12+a);d[u].set(e.Fr.add(d[u].slice(f*a,f*a+a),e.Fr.mul(m,n.slice(p*a,p*a+a))),f*a)}for(let n=0;n<t.domainSize;n++)i&&n%1e6==0&&i.debug(`QAP C: ${n}/${t.domainSize}`),u.set(e.Fr.mul(c.slice(n*a,n*a+a),l.slice(n*a,n*a+a)),n*a);return[c,l,u]}async function oa(e,t,n,r,i,a){let o=1<<22,s=e.Fr.n8,c=Math.floor(n.byteLength/e.Fr.n8),l=[];for(let t=0;t<c;t+=o){a&&a.debug(`JoinABC: ${t}/${c}`);let u=Math.min(c-t,o),d=[],f=n.slice(t*s,(t+u)*s),p=r.slice(t*s,(t+u)*s),m=i.slice(t*s,(t+u)*s);d.push({cmd:`ALLOCSET`,var:0,buff:f}),d.push({cmd:`ALLOCSET`,var:1,buff:p}),d.push({cmd:`ALLOCSET`,var:2,buff:m}),d.push({cmd:`ALLOC`,var:3,len:u*s}),d.push({cmd:`CALL`,fnName:`qap_joinABC`,params:[{var:0},{var:1},{var:2},{val:u},{var:3}]}),d.push({cmd:`CALL`,fnName:`frm_batchFromMontgomery`,params:[{var:3},{val:u},{var:3}]}),d.push({cmd:`GET`,out:0,var:3,len:u*s}),l.push(e.tm.queueAction(d))}let u=await Promise.all(l),d;d=n instanceof W?new W(n.byteLength):new Uint8Array(n.byteLength);let f=0;for(let e=0;e<u.length;e++)d.set(u[e][0],f),f+=u[e][0].byteLength;return d}function sa(e){let t=[];return n(t,e),t;function n(e,t){if(Array.isArray(t))for(let r=0;r<t.length;r++)n(e,t[r]);else e.push(t)}}function ca(e,t){let n=BigInt(e)%t;return n<0&&(n+=t),n}function la(e){let t=BigInt(2)**BigInt(64),n=BigInt(`0xCBF29CE484222325`);for(let r=0;r<e.length;r++)n^=BigInt(e[r].charCodeAt(0)),n*=BigInt(1099511628211),n%=t;let r=n.toString(16),i=16-r.length;return r=`0`.repeat(i).concat(r),r}function ua(e,t){let n=[],r=BigInt(e),i=BigInt(4294967296);for(;r;)n.unshift(Number(r%i)),r/=i;if(t){let e=t-n.length;for(;e>0;)n.unshift(0),e--}return n}async function da(e,t){let n,r,i;t||={};let a=1,o=0,s=0,c=!1;if(e instanceof WebAssembly.Instance)n=e,c=!0;else{let c=32767;if(t.memorySize&&(c=parseInt(t.memorySize),c<0))throw Error(`Invalid memory size`);let l=!1;for(;!l;)try{i=new WebAssembly.Memory({initial:c}),l=!0}catch(e){if(c<=1)throw e;console.warn(`Could not allocate `+c*1024*64+` bytes. This may cause severe instability. Trying with `+c*1024*64/2+` bytes`),c=Math.floor(c/2)}let f=await WebAssembly.compile(e),p=``,m=``;n=await WebAssembly.instantiate(f,{env:{memory:i},runtime:{printDebug:function(e){console.log(`printDebug:`,e)},exceptionHandler:function(e){let t;throw t=e===1?`Signal not found. `:e===2?`Too many signals set. `:e===3?`Signal already set. `:e===4?`Assert Failed. `:e===5?`Not enough memory. `:e===6?`Input signal array access exceeds the size. `:`Unknown error. `,console.error(`ERROR: `,e,p),Error(t+p)},printErrorMessage:function(){p+=u()+`
121
- `},writeBufferMessage:function(){let e=u();e===`
122
- `?(console.log(m),m=``):(m!==``&&(m+=` `),m+=e)},showSharedRWMemory:function(){let e=n.exports.getFieldNumLen32(),t=new Uint32Array(e);for(let r=0;r<e;r++)t[e-1-r]=n.exports.readSharedRWMemory(r);if(a>=2&&(o>=1||s>=7)){m!==``&&(m+=` `);let e=K.fromArray(t,4294967296).toString();m+=e}else console.log(K.fromArray(t,4294967296))},error:function(e,n,i,a,o,s){let c;throw c=e===7?d(n)+` `+r.getFr(a).toString()+` != `+r.getFr(o).toString()+` `+d(s):e===9?d(n)+` `+r.getFr(a).toString()+` `+d(o):e===5&&t.sym?d(n)+` `+t.sym.labelIdx2Name[o]:d(n)+` `+i+` `+a+` `+o+` `+s,console.log(`ERROR: `,e,c),Error(c)},log:function(e){console.log(r.getFr(e).toString())},logGetSignal:function(e,n){t.logGetSignal&&t.logGetSignal(e,r.getFr(n))},logSetSignal:function(e,n){t.logSetSignal&&t.logSetSignal(e,r.getFr(n))},logStartComponent:function(e){t.logStartComponent&&t.logStartComponent(e)},logFinishComponent:function(e){t.logFinishComponent&&t.logFinishComponent(e)}}})}typeof n.exports.getVersion==`function`&&(a=n.exports.getVersion()),typeof n.exports.getMinorVersion==`function`&&(o=n.exports.getMinorVersion()),typeof n.exports.getPatchVersion==`function`&&(s=n.exports.getPatchVersion());let l=t&&(t.sanityCheck||t.logGetSignal||t.logSetSignal||t.logStartComponent||t.logFinishComponent);if(a===2)r=new pa(n,l);else if(a===1){if(c)throw Error(`Loading code from WebAssembly instance is not supported for circom version 1`);r=new fa(i,n,l)}else throw Error(`Unsupported circom version: ${a}`);return r;function u(){let e=``,t=n.exports.getMessageChar();for(;t!==0;)e+=String.fromCharCode(t),t=n.exports.getMessageChar();return e}function d(e){let t=new Uint8Array(i.buffer),n=[];for(let r=0;t[e+r]>0;r++)n.push(t[e+r]);return String.fromCharCode.apply(null,n)}}var fa=class{constructor(e,t,n){this.memory=e,this.i32=new Uint32Array(e.buffer),this.instance=t,this.n32=(this.instance.exports.getFrLen()>>2)-2;let r=this.instance.exports.getPRawPrime(),i=Array(this.n32);for(let e=0;e<this.n32;e++)i[this.n32-1-e]=this.i32[(r>>2)+e];this.prime=K.fromArray(i,4294967296),this.Fr=new ze(this.prime),this.mask32=K.fromString(`FFFFFFFF`,16),this.NVars=this.instance.exports.getNVars(),this.n64=Math.floor((this.Fr.bitLength-1)/64)+1,this.R=this.Fr.e(K.shiftLeft(1,this.n64*64)),this.RInv=this.Fr.inv(this.R),this.sanityCheck=n}circom_version(){return 1}async _doCalculateWitness(e,t){this.instance.exports.init(this.sanityCheck||t?1:0);let n=this.allocInt(),r=this.allocFr();Object.keys(e).forEach(t=>{let i=la(t),a=parseInt(i.slice(0,8),16),o=parseInt(i.slice(8,16),16);try{this.instance.exports.getSignalOffset32(n,0,a,o)}catch{throw Error(`Signal ${t} is not an input of the circuit.`)}let s=this.getInt(n),c=sa(e[t]);for(let e=0;e<c.length;e++)this.setFr(r,c[e]),this.instance.exports.setSignal(0,0,s+e,r)})}async calculateWitness(e,t){let n=this,r=n.i32[0],i=[];await n._doCalculateWitness(e,t);for(let e=0;e<n.NVars;e++){let t=n.instance.exports.getPWitness(e);i.push(n.getFr(t))}return n.i32[0]=r,i}async calculateBinWitness(e,t){let n=this,r=n.i32[0];await n._doCalculateWitness(e,t);let i=n.instance.exports.getWitnessBuffer();n.i32[0]=r;let a=n.memory.buffer.slice(i,i+n.NVars*n.n64*8);return new Uint8Array(a)}allocInt(){let e=this.i32[0];return this.i32[0]=e+8,e}allocFr(){let e=this.i32[0];return this.i32[0]=e+this.n32*4+8,e}getInt(e){return this.i32[e>>2]}setInt(e,t){this.i32[e>>2]=t}getFr(e){let t=this,n=e>>2;if(t.i32[n+1]&2147483648){let e=Array(t.n32);for(let r=0;r<t.n32;r++)e[t.n32-1-r]=t.i32[n+2+r];let i=t.Fr.e(K.fromArray(e,4294967296));return t.i32[n+1]&1073741824?r(i):i}else if(t.i32[n]&2147483648)return t.Fr.e(t.i32[n]-4294967296);else return t.Fr.e(t.i32[n]);function r(e){return t.Fr.mul(t.RInv,e)}}setFr(e,t){let n=this;t=n.Fr.e(t);let r=n.Fr.neg(n.Fr.e(`80000000`,16)),i=n.Fr.e(`7FFFFFFF`,16);if(n.Fr.geq(t,r)&&n.Fr.leq(t,i)){let i;n.Fr.geq(t,n.Fr.zero)?i=K.toNumber(t):(i=K.toNumber(n.Fr.sub(t,r)),i-=2147483648,i=4294967296+i),n.i32[e>>2]=i,n.i32[(e>>2)+1]=0;return}n.i32[e>>2]=0,n.i32[(e>>2)+1]=2147483648;let a=K.toArray(t,4294967296);for(let t=0;t<n.n32;t++){let r=a.length-1-t;r>=0?n.i32[(e>>2)+2+t]=a[r]:n.i32[(e>>2)+2+t]=0}}},pa=class{constructor(e,t){this.instance=e,this.version=this.instance.exports.getVersion(),this.n32=this.instance.exports.getFieldNumLen32(),this.instance.exports.getRawPrime();let n=new Uint32Array(this.n32);for(let e=0;e<this.n32;e++)n[this.n32-1-e]=this.instance.exports.readSharedRWMemory(e);this.prime=K.fromArray(n,4294967296),this.witnessSize=this.instance.exports.getWitnessSize(),this.sanityCheck=t}circom_version(){return this.instance.exports.getVersion()}async _doCalculateWitness(e,t){this.instance.exports.init(this.sanityCheck||t?1:0);let n=Object.keys(e),r=0;if(n.forEach(t=>{let n=la(t),i=parseInt(n.slice(0,8),16),a=parseInt(n.slice(8,16),16),o=sa(e[t]);if(typeof this.instance.exports.getInputSignalSize==`function`){let e=this.instance.exports.getInputSignalSize(i,a);if(e<0)throw Error(`Signal ${t} not found\n`);if(o.length<e)throw Error(`Not enough values for input signal ${t}\n`);if(o.length>e)throw Error(`Too many values for input signal ${t}\n`)}for(let e=0;e<o.length;e++){let t=ua(ca(o[e],this.prime),this.n32);for(let e=0;e<this.n32;e++)this.instance.exports.writeSharedRWMemory(e,t[this.n32-1-e]);try{this.instance.exports.setInputSignal(i,a,e),r++}catch(e){throw Error(e)}}}),r<this.instance.exports.getInputSize())throw Error(`Not all inputs have been set. Only ${r} out of ${this.instance.exports.getInputSize()}`)}async calculateWitness(e,t){let n=[];await this._doCalculateWitness(e,t);for(let e=0;e<this.witnessSize;e++){this.instance.exports.getWitness(e);let t=new Uint32Array(this.n32);for(let e=0;e<this.n32;e++)t[this.n32-1-e]=this.instance.exports.readSharedRWMemory(e);n.push(K.fromArray(t,4294967296))}return n}async calculateWTNSBin(e,t){let n=new Uint32Array(this.witnessSize*this.n32+this.n32+11),r=new Uint8Array(n.buffer);await this._doCalculateWitness(e,t),r[0]=119,r[1]=116,r[2]=110,r[3]=115,n[1]=2,n[2]=2,n[3]=1;let i=this.n32*4,a=(8+i).toString(16);n[4]=parseInt(a.slice(0,8),16),n[5]=parseInt(a.slice(8,16),16),n[6]=i,this.instance.exports.getRawPrime();let o=7;for(let e=0;e<this.n32;e++)n[o+e]=this.instance.exports.readSharedRWMemory(e);o+=this.n32,n[o]=this.witnessSize,o++,n[o]=2,o++;let s=(i*this.witnessSize).toString(16);n[o]=parseInt(s.slice(0,8),16),n[o+1]=parseInt(s.slice(8,16),16),o+=2;for(let e=0;e<this.witnessSize;e++){this.instance.exports.getWitness(e);for(let e=0;e<this.n32;e++)n[o+e]=this.instance.exports.readSharedRWMemory(e);o+=this.n32}return r}};const{unstringifyBigInts:ma}=q;async function ha(e,t,n,r){let i=ma(e),a=await Hr(t),o=await a.read(a.totalSize);await a.close();let s=await da(o,r);if(s.circom_version()===1){let e=await s.calculateBinWitness(i),t=await Wr(n,`wtns`,2,2);await ta(t,e,s.prime),await t.close()}else{let e=await Vr(n),t=await s.calculateWTNSBin(i);await e.write(t),await e.close()}}const{unstringifyBigInts:ga}=q;async function _a(e,t,n,r,i,a){let o=ga(e),s={type:`mem`};return await ha(o,t,s,i),await ia(n,s,r,a)}const{unstringifyBigInts:va}=q;async function ya(e,t,n,r){let i=va(e),a=va(n),o=va(t),s=await ti(i.curve),c=s.G1.fromObject(i.IC[0]),l=new Uint8Array(s.G1.F.n8*2*o.length),u=new Uint8Array(s.Fr.n8*o.length);if(!xa(s,o))return r&&r.error(`Public inputs are not valid.`),!1;for(let e=0;e<o.length;e++){let t=s.G1.fromObject(i.IC[e+1]);l.set(t,e*s.G1.F.n8*2),K.toRprLE(u,s.Fr.n8*e,o[e],s.Fr.n8)}let d=await s.G1.multiExpAffine(l,u);d=s.G1.add(d,c);let f=s.G1.fromObject(a.pi_a),p=s.G2.fromObject(a.pi_b),m=s.G1.fromObject(a.pi_c);if(!ba(s,{pi_a:f,pi_b:p,pi_c:m}))return r&&r.error(`Proof commitments are not valid.`),!1;let h=s.G2.fromObject(i.vk_gamma_2),g=s.G2.fromObject(i.vk_delta_2),_=s.G1.fromObject(i.vk_alpha_1),v=s.G2.fromObject(i.vk_beta_2);return await s.pairingEq(s.G1.neg(f),p,d,h,m,g,_,v)?(r&&r.info(`OK!`),!0):(r&&r.error(`Invalid proof`),!1)}function ba(e,t){let n=e.G1,r=e.G2;return n.isValid(t.pi_a)&&r.isValid(t.pi_b)&&n.isValid(t.pi_c)}function xa(e,t){for(let n=0;n<t.length;n++)if(!K.lt(t[n],e.r))return!1;return!0}const{unstringifyBigInts:Sa}=q;function Ca(e){let t=e.toString(16);for(;t.length<64;)t=`0`+t;return t=`"0x${t}"`,t}async function wa(e,t){let n=Sa(e),r=Sa(t),i=``;for(let e=0;e<r.length;e++)i!=``&&(i+=`,`),i+=Ca(r[e]);let a;return a=`[${Ca(n.pi_a[0])}, ${Ca(n.pi_a[1])}],[[${Ca(n.pi_b[0][1])}, ${Ca(n.pi_b[0][0])}],[${Ca(n.pi_b[1][1])}, ${Ca(n.pi_b[1][0])}]],[${Ca(n.pi_c[0])}, ${Ca(n.pi_c[1])}],[${i}]`,a}var Ta=Object.freeze({__proto__:null,fullProve:_a,prove:ia,verify:ya,exportSolidityCallData:wa});K.e(`73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`,16),K.e(`21888242871839275222246405745257275088548364400416034343698204186575808495617`);const{unstringifyBigInts:Ea}=q,{stringifyBigInts:Da}=q,{unstringifyBigInts:Oa,stringifyBigInts:ka}=q;var Aa={exports:{}};
123
- /**
124
- * [js-sha3]{@link https://github.com/emn178/js-sha3}
125
- *
126
- * @version 0.8.0
127
- * @author Chen, Yi-Cyuan [emn178@gmail.com]
128
- * @copyright Chen, Yi-Cyuan 2015-2018
129
- * @license MIT
130
- */
131
- (function(e){(function(){var t=`input is invalid type`,n=`finalize already called`,r=typeof window==`object`,i=r?window:{};i.JS_SHA3_NO_WINDOW&&(r=!1);var a=!r&&typeof self==`object`;!i.JS_SHA3_NO_NODE_JS&&typeof process==`object`&&process.versions&&process.versions.node?i=ni:a&&(i=self);var o=!i.JS_SHA3_NO_COMMON_JS&&e.exports,s=!i.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<`u`,c=`0123456789abcdef`.split(``),l=[31,7936,2031616,520093696],u=[4,1024,262144,67108864],d=[1,256,65536,16777216],f=[6,1536,393216,100663296],p=[0,8,16,24],m=[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],h=[224,256,384,512],g=[128,256],_=[`hex`,`buffer`,`arrayBuffer`,`array`,`digest`],v={128:168,256:136};(i.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)===`[object Array]`}),s&&(i.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return typeof e==`object`&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var y=function(e,t,n){return function(r){return new P(e,t,e).update(r)[n]()}},b=function(e,t,n){return function(r,i){return new P(e,t,i).update(r)[n]()}},x=function(e,t,n){return function(t,r,i,a){return E[`cshake`+e].update(t,r,i,a)[n]()}},S=function(e,t,n){return function(t,r,i,a){return E[`kmac`+e].update(t,r,i,a)[n]()}},C=function(e,t,n,r){for(var i=0;i<_.length;++i){var a=_[i];e[a]=t(n,r,a)}return e},w=function(e,t){var n=y(e,t,`hex`);return n.create=function(){return new P(e,t,e)},n.update=function(e){return n.create().update(e)},C(n,y,e,t)},T=[{name:`keccak`,padding:d,bits:h,createMethod:w},{name:`sha3`,padding:f,bits:h,createMethod:w},{name:`shake`,padding:l,bits:g,createMethod:function(e,t){var n=b(e,t,`hex`);return n.create=function(n){return new P(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},C(n,b,e,t)}},{name:`cshake`,padding:u,bits:g,createMethod:function(e,t){var n=v[e],r=x(e,t,`hex`);return r.create=function(r,i,a){return!i&&!a?E[`shake`+e].create(r):new P(e,t,r).bytepad([i,a],n)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},C(r,x,e,t)}},{name:`kmac`,padding:u,bits:g,createMethod:function(e,t){var n=v[e],r=S(e,t,`hex`);return r.create=function(r,i,a){return new F(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)},C(r,S,e,t)}}],E={},D=[],O=0;O<T.length;++O)for(var k=T[O],A=k.bits,j=0;j<A.length;++j){var M=k.name+`_`+A[j];if(D.push(M),E[M]=k.createMethod(A[j],k.padding),k.name!==`sha3`){var N=k.name+A[j];D.push(N),E[N]=E[M]}}function P(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=(n&31)>>3;for(var r=0;r<50;++r)this.s[r]=0}P.prototype.update=function(e){if(this.finalized)throw Error(n);var r,i=typeof e;if(i!==`string`){if(i===`object`){if(e===null)throw Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!s||!ArrayBuffer.isView(e)))throw Error(t)}else throw Error(t);r=!0}for(var a=this.blocks,o=this.byteCount,c=e.length,l=this.blockCount,u=0,d=this.s,f,m;u<c;){if(this.reset)for(this.reset=!1,a[0]=this.block,f=1;f<l+1;++f)a[f]=0;if(r)for(f=this.start;u<c&&f<o;++u)a[f>>2]|=e[u]<<p[f++&3];else for(f=this.start;u<c&&f<o;++u)m=e.charCodeAt(u),m<128?a[f>>2]|=m<<p[f++&3]:m<2048?(a[f>>2]|=(192|m>>6)<<p[f++&3],a[f>>2]|=(128|m&63)<<p[f++&3]):m<55296||m>=57344?(a[f>>2]|=(224|m>>12)<<p[f++&3],a[f>>2]|=(128|m>>6&63)<<p[f++&3],a[f>>2]|=(128|m&63)<<p[f++&3]):(m=65536+((m&1023)<<10|e.charCodeAt(++u)&1023),a[f>>2]|=(240|m>>18)<<p[f++&3],a[f>>2]|=(128|m>>12&63)<<p[f++&3],a[f>>2]|=(128|m>>6&63)<<p[f++&3],a[f>>2]|=(128|m&63)<<p[f++&3]);if(this.lastByteIndex=f,f>=o){for(this.start=f-o,this.block=a[l],f=0;f<l;++f)d[f]^=a[f];I(d),this.reset=!0}else this.start=f}return this},P.prototype.encode=function(e,t){var n=e&255,r=1,i=[n];for(e>>=8,n=e&255;n>0;)i.unshift(n),e>>=8,n=e&255,++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},P.prototype.encodeString=function(e){var n,r=typeof e;if(r!==`string`){if(r===`object`){if(e===null)throw Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!s||!ArrayBuffer.isView(e)))throw Error(t)}else throw Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var o=0;o<e.length;++o){var c=e.charCodeAt(o);c<128?i+=1:c<2048?i+=2:c<55296||c>=57344?i+=3:(c=65536+((c&1023)<<10|e.charCodeAt(++o)&1023),i+=4)}return i+=this.encode(i*8),this.update(e),i},P.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},P.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[t&3],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];I(r)}},P.prototype.toString=P.prototype.hex=function(){this.finalize();for(var e=this.blockCount,t=this.s,n=this.outputBlocks,r=this.extraBytes,i=0,a=0,o=``,s;a<n;){for(i=0;i<e&&a<n;++i,++a)s=t[i],o+=c[s>>4&15]+c[s&15]+c[s>>12&15]+c[s>>8&15]+c[s>>20&15]+c[s>>16&15]+c[s>>28&15]+c[s>>24&15];a%e===0&&(I(t),i=0)}return r&&(s=t[i],o+=c[s>>4&15]+c[s&15],r>1&&(o+=c[s>>12&15]+c[s>>8&15]),r>2&&(o+=c[s>>20&15]+c[s>>16&15])),o},P.prototype.arrayBuffer=function(){this.finalize();for(var e=this.blockCount,t=this.s,n=this.outputBlocks,r=this.extraBytes,i=0,a=0,o=this.outputBits>>3,s=r?new ArrayBuffer(n+1<<2):new ArrayBuffer(o),c=new Uint32Array(s);a<n;){for(i=0;i<e&&a<n;++i,++a)c[a]=t[i];a%e===0&&I(t)}return r&&(c[i]=t[i],s=s.slice(0,o)),s},P.prototype.buffer=P.prototype.arrayBuffer,P.prototype.digest=P.prototype.array=function(){this.finalize();for(var e=this.blockCount,t=this.s,n=this.outputBlocks,r=this.extraBytes,i=0,a=0,o=[],s,c;a<n;){for(i=0;i<e&&a<n;++i,++a)s=a<<2,c=t[i],o[s]=c&255,o[s+1]=c>>8&255,o[s+2]=c>>16&255,o[s+3]=c>>24&255;a%e===0&&I(t)}return r&&(s=a<<2,c=t[i],o[s]=c&255,r>1&&(o[s+1]=c>>8&255),r>2&&(o[s+2]=c>>16&255)),o};function F(e,t,n){P.call(this,e,t,n)}F.prototype=new P,F.prototype.finalize=function(){return this.encode(this.outputBits,!0),P.prototype.finalize.call(this)};var I=function(e){var t,n,r,i,a,o,s,c,l,u,d,f,p,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,ee,B,te,ne,re,ie,ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,be,xe,Se,Ce;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],l=e[5]^e[15]^e[25]^e[35]^e[45],u=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],f=e[8]^e[18]^e[28]^e[38]^e[48],p=e[9]^e[19]^e[29]^e[39]^e[49],t=f^(o<<1|s>>>31),n=p^(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|l>>>31),n=a^(l<<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^(u<<1|d>>>31),n=s^(d<<1|u>>>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^(f<<1|p>>>31),n=l^(p<<1|f>>>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=u^(i<<1|a>>>31),n=d^(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,h=e[0],g=e[1],oe=e[11]<<4|e[10]>>>28,se=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,A=e[21]<<3|e[20]>>>29,be=e[31]<<9|e[30]>>>23,xe=e[30]<<9|e[31]>>>23,ne=e[40]<<18|e[41]>>>14,re=e[41]<<18|e[40]>>>14,F=e[2]<<1|e[3]>>>31,I=e[3]<<1|e[2]>>>31,_=e[13]<<12|e[12]>>>20,v=e[12]<<12|e[13]>>>20,ce=e[22]<<10|e[23]>>>22,le=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,Se=e[42]<<2|e[43]>>>30,Ce=e[43]<<2|e[42]>>>30,me=e[5]<<30|e[4]>>>2,he=e[4]<<30|e[5]>>>2,L=e[14]<<6|e[15]>>>26,R=e[15]<<6|e[14]>>>26,y=e[25]<<11|e[24]>>>21,b=e[24]<<11|e[25]>>>21,ue=e[34]<<15|e[35]>>>17,de=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,P=e[44]<<29|e[45]>>>3,T=e[6]<<28|e[7]>>>4,E=e[7]<<28|e[6]>>>4,ge=e[17]<<23|e[16]>>>9,_e=e[16]<<23|e[17]>>>9,z=e[26]<<25|e[27]>>>7,ee=e[27]<<25|e[26]>>>7,x=e[36]<<21|e[37]>>>11,S=e[37]<<21|e[36]>>>11,fe=e[47]<<24|e[46]>>>8,pe=e[46]<<24|e[47]>>>8,ie=e[8]<<27|e[9]>>>5,ae=e[9]<<27|e[8]>>>5,D=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ve=e[29]<<7|e[28]>>>25,ye=e[28]<<7|e[29]>>>25,B=e[38]<<8|e[39]>>>24,te=e[39]<<8|e[38]>>>24,C=e[48]<<14|e[49]>>>18,w=e[49]<<14|e[48]>>>18,e[0]=h^~_&y,e[1]=g^~v&b,e[10]=T^~D&k,e[11]=E^~O&A,e[20]=F^~L&z,e[21]=I^~R&ee,e[30]=ie^~oe&ce,e[31]=ae^~se&le,e[40]=me^~ge&ve,e[41]=he^~_e&ye,e[2]=_^~y&x,e[3]=v^~b&S,e[12]=D^~k&j,e[13]=O^~A&M,e[22]=L^~z&B,e[23]=R^~ee&te,e[32]=oe^~ce&ue,e[33]=se^~le&de,e[42]=ge^~ve&be,e[43]=_e^~ye&xe,e[4]=y^~x&C,e[5]=b^~S&w,e[14]=k^~j&N,e[15]=A^~M&P,e[24]=z^~B&ne,e[25]=ee^~te&re,e[34]=ce^~ue&fe,e[35]=le^~de&pe,e[44]=ve^~be&Se,e[45]=ye^~xe&Ce,e[6]=x^~C&h,e[7]=S^~w&g,e[16]=j^~N&T,e[17]=M^~P&E,e[26]=B^~ne&F,e[27]=te^~re&I,e[36]=ue^~fe&ie,e[37]=de^~pe&ae,e[46]=be^~Se&me,e[47]=xe^~Ce&he,e[8]=C^~h&_,e[9]=w^~g&v,e[18]=N^~T&D,e[19]=P^~E&O,e[28]=ne^~F&L,e[29]=re^~I&R,e[38]=fe^~ie&oe,e[39]=pe^~ae&se,e[48]=Se^~me&ge,e[49]=Ce^~he&_e,e[0]^=m[r],e[1]^=m[r+1]};if(o)e.exports=E;else for(O=0;O<D.length;++O)i[D[O]]=E[D[O]]})()})(Aa);const{keccak256:ja}=Aa.exports,{stringifyBigInts:Ma}=q,{unstringifyBigInts:Na}=q,{unstringifyBigInts:Pa}=q,{unstringifyBigInts:Fa}=q,{stringifyBigInts:Ia}=q,{unstringifyBigInts:La}=q,{unstringifyBigInts:Ra}=q,{unstringifyBigInts:za}=q;function Ba(e,t){return function(){return e.apply(t,arguments)}}const{toString:Va}=Object.prototype,{getPrototypeOf:Ha}=Object,Ua=(e=>t=>{let n=Va.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Wa=e=>(e=e.toLowerCase(),t=>Ua(t)===e),Ga=e=>t=>typeof t===e,{isArray:Ka}=Array,qa=Ga(`undefined`);function Ja(e){return e!==null&&!qa(e)&&e.constructor!==null&&!qa(e.constructor)&&Qa(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ya=Wa(`ArrayBuffer`);function Xa(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Ya(e.buffer),t}const Za=Ga(`string`),Qa=Ga(`function`),$a=Ga(`number`),eo=e=>typeof e==`object`&&!!e,to=e=>e===!0||e===!1,no=e=>{if(Ua(e)!==`object`)return!1;let t=Ha(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},ro=Wa(`Date`),io=Wa(`File`),ao=Wa(`Blob`),oo=Wa(`FileList`),so=e=>eo(e)&&Qa(e.pipe),co=e=>{let t;return e&&(typeof FormData==`function`&&e instanceof FormData||Qa(e.append)&&((t=Ua(e))===`formdata`||t===`object`&&Qa(e.toString)&&e.toString()===`[object FormData]`))},lo=Wa(`URLSearchParams`),uo=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function fo(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Ka(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{let i=n?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length,o;for(r=0;r<a;r++)o=i[r],t.call(null,e[o],o,e)}}function po(e,t){t=t.toLowerCase();let n=Object.keys(e),r=n.length,i;for(;r-- >0;)if(i=n[r],t===i.toLowerCase())return i;return null}const mo=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,ho=e=>!qa(e)&&e!==mo;function go(){let{caseless:e}=ho(this)&&this||{},t={},n=(n,r)=>{let i=e&&po(t,r)||r;no(t[i])&&no(n)?t[i]=go(t[i],n):no(n)?t[i]=go({},n):Ka(n)?t[i]=n.slice():t[i]=n};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&fo(arguments[e],n);return t}const _o=(e,t,n,{allOwnKeys:r}={})=>(fo(t,(t,r)=>{n&&Qa(t)?e[r]=Ba(t,n):e[r]=t},{allOwnKeys:r}),e),vo=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),yo=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,`super`,{value:t.prototype}),n&&Object.assign(e.prototype,n)},bo=(e,t,n,r)=>{let i,a,o,s={};if(t||={},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&Ha(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},xo=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},So=e=>{if(!e)return null;if(Ka(e))return e;let t=e.length;if(!$a(t))return null;let n=Array(t);for(;t-- >0;)n[t]=e[t];return n},Co=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&Ha(Uint8Array)),wo=(e,t)=>{let n=(e&&e[Symbol.iterator]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},To=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Eo=Wa(`HTMLFormElement`),Do=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),Oo=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ko=Wa(`RegExp`),Ao=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};fo(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},jo=e=>{Ao(e,(t,n)=>{if(Qa(e)&&[`arguments`,`caller`,`callee`].indexOf(n)!==-1)return!1;let r=e[n];if(Qa(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Mo=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Ka(e)?r(e):r(String(e).split(t)),n},No=()=>{},Po=(e,t)=>(e=+e,Number.isFinite(e)?e:t),Fo=`abcdefghijklmnopqrstuvwxyz`,Io={DIGIT:`0123456789`,ALPHA:Fo,ALPHA_DIGIT:Fo+`ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`},Lo=(e=16,t=Io.ALPHA_DIGIT)=>{let n=``,{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function Ro(e){return!!(e&&Qa(e.append)&&e[Symbol.toStringTag]===`FormData`&&e[Symbol.iterator])}var Y={isArray:Ka,isArrayBuffer:Ya,isBuffer:Ja,isFormData:co,isArrayBufferView:Xa,isString:Za,isNumber:$a,isBoolean:to,isObject:eo,isPlainObject:no,isUndefined:qa,isDate:ro,isFile:io,isBlob:ao,isRegExp:ko,isFunction:Qa,isStream:so,isURLSearchParams:lo,isTypedArray:Co,isFileList:oo,forEach:fo,merge:go,extend:_o,trim:uo,stripBOM:vo,inherits:yo,toFlatObject:bo,kindOf:Ua,kindOfTest:Wa,endsWith:xo,toArray:So,forEachEntry:wo,matchAll:To,isHTMLForm:Eo,hasOwnProperty:Oo,hasOwnProp:Oo,reduceDescriptors:Ao,freezeMethods:jo,toObjectSet:Mo,toCamelCase:Do,noop:No,toFiniteNumber:Po,findKey:po,global:mo,isContextDefined:ho,ALPHABET:Io,generateString:Lo,isSpecCompliantForm:Ro,toJSONObject:e=>{let t=Array(10),n=(e,r)=>{if(eo(e)){if(t.indexOf(e)>=0)return;if(!(`toJSON`in e)){t[r]=e;let i=Ka(e)?[]:{};return fo(e,(e,t)=>{let a=n(e,r+1);!qa(a)&&(i[t]=a)}),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:Wa(`AsyncFunction`),isThenable:e=>e&&(eo(e)||Qa(e))&&Qa(e.then)&&Qa(e.catch)};function X(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=Error().stack,this.message=e,this.name=`AxiosError`,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}Y.inherits(X,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Y.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const zo=X.prototype,Bo={};[`ERR_BAD_OPTION_VALUE`,`ERR_BAD_OPTION`,`ECONNABORTED`,`ETIMEDOUT`,`ERR_NETWORK`,`ERR_FR_TOO_MANY_REDIRECTS`,`ERR_DEPRECATED`,`ERR_BAD_RESPONSE`,`ERR_BAD_REQUEST`,`ERR_CANCELED`,`ERR_NOT_SUPPORT`,`ERR_INVALID_URL`].forEach(e=>{Bo[e]={value:e}}),Object.defineProperties(X,Bo),Object.defineProperty(zo,`isAxiosError`,{value:!0}),X.from=(e,t,n,r,i,a)=>{let o=Object.create(zo);return Y.toFlatObject(e,o,function(e){return e!==Error.prototype},e=>e!==`isAxiosError`),X.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};function Vo(e){return Y.isPlainObject(e)||Y.isArray(e)}function Ho(e){return Y.endsWith(e,`[]`)?e.slice(0,-2):e}function Uo(e,t,n){return e?e.concat(t).map(function(e,t){return e=Ho(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function Wo(e){return Y.isArray(e)&&!e.some(Vo)}const Go=Y.toFlatObject(Y,{},null,function(e){return/^is[A-Z]/.test(e)});function Ko(e,t,n){if(!Y.isObject(e))throw TypeError(`target must be an object`);t||=new FormData,n=Y.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!Y.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||l,a=n.dots,o=n.indexes,s=(n.Blob||typeof Blob<`u`&&Blob)&&Y.isSpecCompliantForm(t);if(!Y.isFunction(i))throw TypeError(`visitor must be a function`);function c(e){if(e===null)return``;if(Y.isDate(e))return e.toISOString();if(!s&&Y.isBlob(e))throw new X(`Blob is not supported. Use a Buffer instead.`);return Y.isArrayBuffer(e)||Y.isTypedArray(e)?s&&typeof Blob==`function`?new Blob([e]):Buffer.from(e):e}function l(e,n,i){let s=e;if(e&&!i&&typeof e==`object`){if(Y.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(Y.isArray(e)&&Wo(e)||(Y.isFileList(e)||Y.endsWith(n,`[]`))&&(s=Y.toArray(e)))return n=Ho(n),s.forEach(function(e,r){!(Y.isUndefined(e)||e===null)&&t.append(o===!0?Uo([n],r,a):o===null?n:n+`[]`,c(e))}),!1}return Vo(e)?!0:(t.append(Uo(i,n,a),c(e)),!1)}let u=[],d=Object.assign(Go,{defaultVisitor:l,convertValue:c,isVisitable:Vo});function f(e,n){if(!Y.isUndefined(e)){if(u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),Y.forEach(e,function(e,r){(!(Y.isUndefined(e)||e===null)&&i.call(t,e,Y.isString(r)?r.trim():r,n,d))===!0&&f(e,n?n.concat(r):[r])}),u.pop()}}if(!Y.isObject(e))throw TypeError(`data must be an object`);return f(e),t}function qo(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`,"%00":`\0`};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(e){return t[e]})}function Jo(e,t){this._pairs=[],e&&Ko(e,this,t)}const Yo=Jo.prototype;Yo.append=function(e,t){this._pairs.push([e,t])},Yo.toString=function(e){let t=e?function(t){return e.call(this,t,qo)}:qo;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function Xo(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`).replace(/%5B/gi,`[`).replace(/%5D/gi,`]`)}function Zo(e,t,n){if(!t)return e;let r=n&&n.encode||Xo,i=n&&n.serialize,a;if(a=i?i(t,n):Y.isURLSearchParams(t)?t.toString():new Jo(t,n).toString(r),a){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+a}return e}var Qo=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&=[]}forEach(e){Y.forEach(this.handlers,function(t){t!==null&&e(t)})}},$o={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},es={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:Jo,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},ts=e({hasBrowserEnv:()=>ns,hasStandardBrowserEnv:()=>rs,hasStandardBrowserWebWorkerEnv:()=>is});const ns=typeof window<`u`&&typeof document<`u`,rs=(e=>ns&&[`ReactNative`,`NativeScript`,`NS`].indexOf(e)<0)(typeof navigator<`u`&&navigator.product),is=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`;var as={...ts,...es};function os(e,t){return Ko(e,new as.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return as.isNode&&Y.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)}},t))}function ss(e){return Y.matchAll(/\w+|\[(\w*)]/g,e).map(e=>e[0]===`[]`?``:e[1]||e[0])}function cs(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r<i;r++)a=n[r],t[a]=e[a];return t}function ls(e){function t(e,n,r,i){let a=e[i++];if(a===`__proto__`)return!0;let o=Number.isFinite(+a),s=i>=e.length;return a=!a&&Y.isArray(r)?r.length:a,s?(Y.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!o):((!r[a]||!Y.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&Y.isArray(r[a])&&(r[a]=cs(r[a])),!o)}if(Y.isFormData(e)&&Y.isFunction(e.entries)){let n={};return Y.forEachEntry(e,(e,r)=>{t(ss(e),r,n,0)}),n}return null}function us(e,t,n){if(Y.isString(e))try{return(t||JSON.parse)(e),Y.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}const ds={transitional:$o,adapter:[`xhr`,`http`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=Y.isObject(e);if(i&&Y.isHTMLForm(e)&&(e=new FormData(e)),Y.isFormData(e))return r?JSON.stringify(ls(e)):e;if(Y.isArrayBuffer(e)||Y.isBuffer(e)||Y.isStream(e)||Y.isFile(e)||Y.isBlob(e))return e;if(Y.isArrayBufferView(e))return e.buffer;if(Y.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return os(e,this.formSerializer).toString();if((a=Y.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let t=this.env&&this.env.FormData;return Ko(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType(`application/json`,!1),us(e)):e}],transformResponse:[function(e){let t=this.transitional||ds.transitional,n=t&&t.forcedJSONParsing,r=this.responseType===`json`;if(e&&Y.isString(e)&&(n&&!this.responseType||r)){let n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n)throw e.name===`SyntaxError`?X.from(e,X.ERR_BAD_RESPONSE,this,null,this.response):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:as.classes.FormData,Blob:as.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};Y.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`],e=>{ds.headers[e]={}});const fs=Y.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]);var ps=e=>{let t={},n,r,i;return e&&e.split(`
132
- `).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!(!n||t[n]&&fs[n])&&(n===`set-cookie`?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+`, `+r:r)}),t};const ms=Symbol(`internals`);function hs(e){return e&&String(e).trim().toLowerCase()}function gs(e){return e===!1||e==null?e:Y.isArray(e)?e.map(gs):String(e)}function _s(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const vs=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ys(e,t,n,r,i){if(Y.isFunction(r))return r.call(this,t,n);if(i&&(t=n),Y.isString(t)){if(Y.isString(r))return t.indexOf(r)!==-1;if(Y.isRegExp(r))return r.test(t)}}function bs(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function xs(e,t){let n=Y.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var Ss=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=hs(t);if(!i)throw Error(`header name must be a non-empty string`);let a=Y.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=gs(e))}let a=(e,t)=>Y.forEach(e,(e,n)=>i(e,n,t));return Y.isPlainObject(e)||e instanceof this.constructor?a(e,t):Y.isString(e)&&(e=e.trim())&&!vs(e)?a(ps(e),t):e!=null&&i(t,e,n),this}get(e,t){if(e=hs(e),e){let n=Y.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return _s(e);if(Y.isFunction(t))return t.call(this,e,n);if(Y.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=hs(e),e){let n=Y.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||ys(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=hs(e),e){let i=Y.findKey(n,e);i&&(!t||ys(n,n[i],i,t))&&(delete n[i],r=!0)}}return Y.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||ys(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return Y.forEach(this,(r,i)=>{let a=Y.findKey(n,i);if(a){t[a]=gs(r),delete t[i];return}let o=e?bs(i):String(i).trim();o!==i&&delete t[i],t[o]=gs(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return Y.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&Y.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(`
133
- `)}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[ms]=this[ms]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=hs(e);t[r]||(xs(n,e),t[r]=!0)}return Y.isArray(e)?e.forEach(r):r(e),this}};Ss.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),Y.reduceDescriptors(Ss.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),Y.freezeMethods(Ss);function Cs(e,t){let n=this||ds,r=t||n,i=Ss.from(r.headers),a=r.data;return Y.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function ws(e){return!!(e&&e.__CANCEL__)}function Ts(e,t,n){X.call(this,e??`canceled`,X.ERR_CANCELED,t,n),this.name=`CanceledError`}Y.inherits(Ts,X,{__CANCEL__:!0});function Es(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X(`Request failed with status code `+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}var Ds=as.hasStandardBrowserEnv?{write(e,t,n,r,i,a){let o=[e+`=`+encodeURIComponent(t)];Y.isNumber(n)&&o.push(`expires=`+new Date(n).toGMTString()),Y.isString(r)&&o.push(`path=`+r),Y.isString(i)&&o.push(`domain=`+i),a===!0&&o.push(`secure`),document.cookie=o.join(`; `)},read(e){let t=document.cookie.match(RegExp(`(^|;\\s*)(`+e+`)=([^;]*)`));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,``,Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Os(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function ks(e,t){return t?e.replace(/\/?\/$/,``)+`/`+t.replace(/^\/+/,``):e}function As(e,t){return e&&!Os(t)?ks(e,t):t}var js=as.hasStandardBrowserEnv?(function(){let e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement(`a`),n;function r(n){let r=n;return e&&(t.setAttribute(`href`,r),r=t.href),t.setAttribute(`href`,r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,``):``,host:t.host,search:t.search?t.search.replace(/^\?/,``):``,hash:t.hash?t.hash.replace(/^#/,``):``,hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)===`/`?t.pathname:`/`+t.pathname}}return n=r(window.location.href),function(e){let t=Y.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}})():(function(){return function(){return!0}})();function Ms(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||``}function Ns(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o<t)return;let f=l&&c-l;return f?Math.round(d*1e3/f):void 0}}function Ps(e,t){let n=0,r=Ns(50,250);return i=>{let a=i.loaded,o=i.lengthComputable?i.total:void 0,s=a-n,c=r(s),l=a<=o;n=a;let u={loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:c||void 0,estimated:c&&o&&l?(o-a)/c:void 0,event:i};u[t?`download`:`upload`]=!0,e(u)}}const Fs={http:null,xhr:typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=e.data,i=Ss.from(e.headers).normalize(),{responseType:a,withXSRFToken:o}=e,s;function c(){e.cancelToken&&e.cancelToken.unsubscribe(s),e.signal&&e.signal.removeEventListener(`abort`,s)}let l;if(Y.isFormData(r)){if(as.hasStandardBrowserEnv||as.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if((l=i.getContentType())!==!1){let[e,...t]=l?l.split(`;`).map(e=>e.trim()).filter(Boolean):[];i.setContentType([e||`multipart/form-data`,...t].join(`; `))}}let u=new XMLHttpRequest;if(e.auth){let t=e.auth.username||``,n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):``;i.set(`Authorization`,`Basic `+btoa(t+`:`+n))}let d=As(e.baseURL,e.url);u.open(e.method.toUpperCase(),Zo(d,e.params,e.paramsSerializer),!0),u.timeout=e.timeout;function f(){if(!u)return;let r=Ss.from(`getAllResponseHeaders`in u&&u.getAllResponseHeaders());Es(function(e){t(e),c()},function(e){n(e),c()},{data:!a||a===`text`||a===`json`?u.responseText:u.response,status:u.status,statusText:u.statusText,headers:r,config:e,request:u}),u=null}if(`onloadend`in u?u.onloadend=f:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf(`file:`)===0)||setTimeout(f)},u.onabort=function(){u&&=(n(new X(`Request aborted`,X.ECONNABORTED,e,u)),null)},u.onerror=function(){n(new X(`Network Error`,X.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let t=e.timeout?`timeout of `+e.timeout+`ms exceeded`:`timeout exceeded`,r=e.transitional||$o;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new X(t,r.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,u)),u=null},as.hasStandardBrowserEnv&&(o&&Y.isFunction(o)&&(o=o(e)),o||o!==!1&&js(d))){let t=e.xsrfHeaderName&&e.xsrfCookieName&&Ds.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}r===void 0&&i.setContentType(null),`setRequestHeader`in u&&Y.forEach(i.toJSON(),function(e,t){u.setRequestHeader(t,e)}),Y.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),a&&a!==`json`&&(u.responseType=e.responseType),typeof e.onDownloadProgress==`function`&&u.addEventListener(`progress`,Ps(e.onDownloadProgress,!0)),typeof e.onUploadProgress==`function`&&u.upload&&u.upload.addEventListener(`progress`,Ps(e.onUploadProgress)),(e.cancelToken||e.signal)&&(s=t=>{u&&=(n(!t||t.type?new Ts(null,e,u):t),u.abort(),null)},e.cancelToken&&e.cancelToken.subscribe(s),e.signal&&(e.signal.aborted?s():e.signal.addEventListener(`abort`,s)));let p=Ms(d);if(p&&as.protocols.indexOf(p)===-1){n(new X(`Unsupported protocol `+p+`:`,X.ERR_BAD_REQUEST,e));return}u.send(r||null)})}};Y.forEach(Fs,(e,t)=>{if(e){try{Object.defineProperty(e,`name`,{value:t})}catch{}Object.defineProperty(e,`adapterName`,{value:t})}});const Is=e=>`- ${e}`,Ls=e=>Y.isFunction(e)||e===null||e===!1;var Rs={getAdapter:e=>{e=Y.isArray(e)?e:[e];let{length:t}=e,n,r,i={};for(let a=0;a<t;a++){n=e[a];let t;if(r=n,!Ls(n)&&(r=Fs[(t=String(n)).toLowerCase()],r===void 0))throw new X(`Unknown adapter '${t}'`);if(r)break;i[t||`#`+a]=r}if(!r){let e=Object.entries(i).map(([e,t])=>`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new X(`There is no suitable adapter to dispatch the request `+(t?e.length>1?`since :
134
- `+e.map(Is).join(`
135
- `):` `+Is(e[0]):`as no adapter specified`),`ERR_NOT_SUPPORT`)}return r},adapters:Fs};function zs(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ts(null,e)}function Bs(e){return zs(e),e.headers=Ss.from(e.headers),e.data=Cs.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),Rs.getAdapter(e.adapter||ds.adapter)(e).then(function(t){return zs(e),t.data=Cs.call(e,e.transformResponse,t),t.headers=Ss.from(t.headers),t},function(t){return ws(t)||(zs(e),t&&t.response&&(t.response.data=Cs.call(e,e.transformResponse,t.response),t.response.headers=Ss.from(t.response.headers))),Promise.reject(t)})}const Vs=e=>e instanceof Ss?{...e}:e;function Hs(e,t){t||={};let n={};function r(e,t,n){return Y.isPlainObject(e)&&Y.isPlainObject(t)?Y.merge.call({caseless:n},e,t):Y.isPlainObject(t)?Y.merge({},t):Y.isArray(t)?t.slice():t}function i(e,t,n){if(!Y.isUndefined(t))return r(e,t,n);if(!Y.isUndefined(e))return r(void 0,e,n)}function a(e,t){if(!Y.isUndefined(t))return r(void 0,t)}function o(e,t){if(!Y.isUndefined(t))return r(void 0,t);if(!Y.isUndefined(e))return r(void 0,e)}function s(n,i,a){if(a in t)return r(n,i);if(a in e)return r(void 0,n)}let c={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t)=>i(Vs(e),Vs(t),!0)};return Y.forEach(Object.keys(Object.assign({},e,t)),function(r){let a=c[r]||i,o=a(e[r],t[r],r);Y.isUndefined(o)&&a!==s||(n[r]=o)}),n}const Us=`1.6.8`,Ws={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{Ws[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});const Gs={};Ws.transitional=function(e,t,n){function r(e,t){return`[Axios v`+Us+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new X(r(i,` has been removed`+(t?` in `+t:``)),X.ERR_DEPRECATED);return t&&!Gs[i]&&(Gs[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),e?e(n,i,a):!0}};function Ks(e,t,n){if(typeof e!=`object`)throw new X(`options must be an object`,X.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-- >0;){let a=r[i],o=t[a];if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new X(`option `+a+` must be `+n,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X(`Unknown option `+a,X.ERR_BAD_OPTION)}}var qs={assertOptions:Ks,validators:Ws};const Js=qs.validators;var Ys=class{constructor(e){this.defaults=e,this.interceptors={request:new Qo,response:new Qo}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=Error();let n=t.stack?t.stack.replace(/^.+\n/,``):``;e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,``))&&(e.stack+=`
136
- `+n):e.stack=n}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Hs(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&qs.assertOptions(n,{silentJSONParsing:Js.transitional(Js.boolean),forcedJSONParsing:Js.transitional(Js.boolean),clarifyTimeoutError:Js.transitional(Js.boolean)},!1),r!=null&&(Y.isFunction(r)?t.paramsSerializer={serialize:r}:qs.assertOptions(r,{encode:Js.function,serialize:Js.function},!0)),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&Y.merge(i.common,i[t.method]);i&&Y.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`common`],e=>{delete i[e]}),t.headers=Ss.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){typeof e.runWhen==`function`&&e.runWhen(t)===!1||(s&&=e.synchronous,o.unshift(e.fulfilled,e.rejected))});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[Bs.bind(this),void 0];for(e.unshift.apply(e,o),e.push.apply(e,c),d=e.length,l=Promise.resolve(t);u<d;)l=l.then(e[u++],e[u++]);return l}d=o.length;let f=t;for(u=0;u<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=Bs.call(this,f)}catch(e){return Promise.reject(e)}for(u=0,d=c.length;u<d;)l=l.then(c[u++],c[u++]);return l}getUri(e){return e=Hs(this.defaults,e),Zo(As(e.baseURL,e.url),e.params,e.paramsSerializer)}};Y.forEach([`delete`,`get`,`head`,`options`],function(e){Ys.prototype[e]=function(t,n){return this.request(Hs(n||{},{method:e,url:t,data:(n||{}).data}))}}),Y.forEach([`post`,`put`,`patch`],function(e){function t(t){return function(n,r,i){return this.request(Hs(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}Ys.prototype[e]=t(),Ys.prototype[e+`Form`]=t(!0)});var Xs=class e{constructor(e){if(typeof e!=`function`)throw TypeError(`executor must be a function.`);let t;this.promise=new Promise(function(e){t=e});let n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new Ts(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Zs(e){return function(t){return e.apply(null,t)}}function Qs(e){return Y.isObject(e)&&e.isAxiosError===!0}const $s={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries($s).forEach(([e,t])=>{$s[t]=e});function ec(e){let t=new Ys(e),n=Ba(Ys.prototype.request,t);return Y.extend(n,Ys.prototype,t,{allOwnKeys:!0}),Y.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return ec(Hs(e,t))},n}const Z=ec(ds);Z.Axios=Ys,Z.CanceledError=Ts,Z.CancelToken=Xs,Z.isCancel=ws,Z.VERSION=Us,Z.toFormData=Ko,Z.AxiosError=X,Z.Cancel=Z.CanceledError,Z.all=function(e){return Promise.all(e)},Z.spread=Zs,Z.isAxiosError=Qs,Z.mergeConfig=Hs,Z.AxiosHeaders=Ss,Z.formToJSON=e=>ls(Y.isHTMLForm(e)?new FormData(e):e),Z.getAdapter=Rs.getAdapter,Z.HttpStatusCode=$s,Z.default=Z;let tc=new class{axiosInstance;constructor(){this.axiosInstance=Z.create()}async get(e,t){return(await this.axiosInstance.get(e,t)).data}async post(e,t,n){return(await this.axiosInstance.post(e,t,n)).data}async put(e,t,n){return(await this.axiosInstance.put(e,t,n)).data}async patch(e,t,n){return(await this.axiosInstance.patch(e,t,n)).data}async delete(e,t){return(await this.axiosInstance.delete(e,t)).data}};const nc={setHttpClient:e=>{tc=e},get:(e,t)=>tc.get(e,t),post:(e,t,n)=>tc.post(e,t,n),put:(e,t,n)=>tc.put(e,t,n),patch:(e,t,n)=>tc.patch(e,t,n),delete:(e,t)=>tc.delete(e,t)};var rc={hinkalAddress:`0x25e5e82f5702A27C3466fE68f14abDbbAdFca826`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0x17657dfA8f76D7675736D5b2eDe746a00d5DfAE5`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x82C4B40BFb0eD6Af3675aDf3FBa655f01c132D33`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],uniswapExternalActionAddress:`0xcCCFcB448C1599512EEdD672f554d8Fa00D8B50F`,odosExternalActionInstanceAddress:`0xFA5A0708c5724993cd2a426Ce6046E30497AD32d`,oneInchExternalActionInstanceAddress:`0x50ba40427A355feF20DBFB0bBA34872E90cD7675`,HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0x96B80d64e3257fC0C765171b8cC0E444C6fcdb48`,hinkalWalletFactoryAddress:`0xAde6caA3EC51EEb7C1b9b0fA0aC3bF1d02fA1a0f`,hinkalWalletBeaconAddress:`0xeDfBC45C547e0D0A986437CD6107669a035FddC9`,hinkalWalletFactoryABI:[{inputs:[],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`Create2Failed`,type:`error`},{inputs:[],name:`NotAllowedToCreateWallet`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint8`,name:`version`,type:`uint8`}],name:`Initialized`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`address`,name:`hinkal`,type:`address`},{internalType:`address`,name:`signerAddress`,type:`address`}],name:`createWallet`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEmporium`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`address`,name:`hinkal`,type:`address`}],name:`getWallet`,outputs:[{internalType:`contract IHinkalWallet`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_emporium`,type:`address`},{internalType:`address`,name:`_beaconAdmin`,type:`address`}],name:`initialize`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_emporium`,type:`address`}],name:`setEmporium`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`walletBeacon`,outputs:[{internalType:`contract IBeacon`,name:``,type:`address`}],stateMutability:`view`,type:`function`}]},ic={hinkalAddress:`0x25e5e82f5702A27C3466fE68f14abDbbAdFca826`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0x99D14EEf260C0bf30005e399866321c64C7f4766`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x82C4B40BFb0eD6Af3675aDf3FBa655f01c132D33`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],uniswapExternalActionAddress:`0x9DE3EF14Dd024434bB4D8dbc011766bC298CC667`,odosExternalActionInstanceAddress:`0x9B9B980C707e887f28A1fA90D7b8048abe0Ef403`,oneInchExternalActionInstanceAddress:`0xe9057A70d8483940C80Ea4963C7A58cC0Bc1F1F9`,HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0xcA64D9B41710Bd6e1818D3F0bED939F8e7c5a490`,hinkalWalletAddress:`0x27e94345eAcb931FcE5b9645F078368Ddb67eCa8`,hinkalWrapperAddress:`0x99B5a72d017E08414194c5bdF101ddd2138d171f`,hinkalWrapperABI:[{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEth`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getSender`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],depositOnChainUtxosExternalActionAddress:`0x4D8eBEa5e6f7375b73f64972A271eB9e11c93D92`,depositOnChainUtxosExternalActionABI:[{inputs:[{internalType:`address[]`,name:`_allowedRecipients`,type:`address[]`},{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`BlockedUtxosCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{internalType:`int256[]`,name:`deltaAmounts`,type:`int256[]`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],name:`setHinkalWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}]},ac={hinkalAddress:`0x25e5e82f5702A27C3466fE68f14abDbbAdFca826`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0x305647287ae8e27876019b45e5b47a0985e1331d`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x82C4B40BFb0eD6Af3675aDf3FBa655f01c132D33`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],uniswapExternalActionAddress:`0x9de3ef14dd024434bb4d8dbc011766bc298cc667`,odosExternalActionInstanceAddress:`0x9b9b980c707e887f28a1fa90d7b8048abe0ef403`,oneInchExternalActionInstanceAddress:`0x0b8ef04f865db7d3ab8993647cd35ac8bdd9e4be`,HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0xE9203a0dC8F1D57ff01dB9128eb458319fA5b8Da`,hinkalWalletAddress:`0xAb6363EBC7B2b769938eAA22909da533A9F1Ee52`,hinkalWalletFactoryAddress:`0xAde6caA3EC51EEb7C1b9b0fA0aC3bF1d02fA1a0f`,hinkalWalletBeaconAddress:`0xeDfBC45C547e0D0A986437CD6107669a035FddC9`,hinkalWalletFactoryABI:[{inputs:[],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`Create2Failed`,type:`error`},{inputs:[],name:`NotAllowedToCreateWallet`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint8`,name:`version`,type:`uint8`}],name:`Initialized`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`address`,name:`hinkal`,type:`address`},{internalType:`address`,name:`signerAddress`,type:`address`}],name:`createWallet`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEmporium`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`address`,name:`hinkal`,type:`address`}],name:`getWallet`,outputs:[{internalType:`contract IHinkalWallet`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_emporium`,type:`address`},{internalType:`address`,name:`_beaconAdmin`,type:`address`}],name:`initialize`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_emporium`,type:`address`}],name:`setEmporium`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`walletBeacon`,outputs:[{internalType:`contract IBeacon`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],hinkalWrapperAddress:`0xcE32FB80308cE45199F3F339F62dEc8946Bf3B10`,hinkalWrapperABI:[{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEth`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getSender`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],depositOnChainUtxosExternalActionAddress:`0x2424f124e986183f1cfbbe71f1b1897bafce5662`,depositOnChainUtxosExternalActionABI:[{inputs:[{internalType:`address[]`,name:`_allowedRecipients`,type:`address[]`},{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`BlockedUtxosCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{internalType:`int256[]`,name:`deltaAmounts`,type:`int256[]`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],name:`setHinkalWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}]},oc={hinkalAddress:`0x25e5e82f5702A27C3466fE68f14abDbbAdFca826`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0x86FfBD1eB2161Fccd2fa7Fd04842cc5dc8DbB619`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x82C4B40BFb0eD6Af3675aDf3FBa655f01c132D33`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],uniswapExternalActionAddress:`0x0Ef25083628134e2BF4597061050609173D97D1c`,odosExternalActionInstanceAddress:`0xD7ad9aC985bd346195d8bA99a66d6E9902627be5`,oneInchExternalActionInstanceAddress:`0x9e835a0E7b7d9266Cdb9dDd9B46BccEf153c7845`,HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0x0e82BD9B97dC49A651E8E0155E48b2b101fD7b00`,hinkalWalletAddress:`0xf95e20d23262Ad4Be6b3c1D9930098443fE23482`,hinkalWrapperAddress:`0xD861ddbd81Bd59A44110De89Fd281e3886B42268`,hinkalWrapperABI:[{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEth`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getSender`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],depositOnChainUtxosExternalActionAddress:`0xf027f8bb1a56cc33B24ddE47c27e118d749e637f`,depositOnChainUtxosExternalActionABI:[{inputs:[{internalType:`address[]`,name:`_allowedRecipients`,type:`address[]`},{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`BlockedUtxosCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{internalType:`int256[]`,name:`deltaAmounts`,type:`int256[]`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],name:`setHinkalWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}]},sc={hinkalAddress:`0x25e5e82f5702A27C3466fE68f14abDbbAdFca826`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0x97c2a7D8876e79d4dfAC05F8413624BC352A43EF`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x82C4B40BFb0eD6Af3675aDf3FBa655f01c132D33`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],uniswapExternalActionAddress:`0xbBDE21B38026D932BE6EDc44592378C09D28A003`,odosExternalActionInstanceAddress:`0x3E543A6f71a65F2E8A727a7ef147329F2AADbff9`,oneInchExternalActionInstanceAddress:`0x989176dB34bd5a6500dFFaD45ff212330Fe8fBD0`,HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0x5B0d61033Ea5B176e1B897C3Ed471fF3dC6272aC`,hinkalWalletAddress:`0x5332C70a98ff45D16098E25F2d69971Ce46dE395`,hinkalWrapperAddress:`0xBAF68fea9e1C306Df3556BdcA871725A8500BE70`,hinkalWrapperABI:[{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEth`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getSender`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],depositOnChainUtxosExternalActionAddress:`0x414B2498C7236825A5c72acAe17aD3982Fb47574`,depositOnChainUtxosExternalActionABI:[{inputs:[{internalType:`address[]`,name:`_allowedRecipients`,type:`address[]`},{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`BlockedUtxosCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{internalType:`int256[]`,name:`deltaAmounts`,type:`int256[]`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],name:`setHinkalWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}]},cc={hinkalAddress:`0x25e5e82f5702A27C3466fE68f14abDbbAdFca826`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0xF7FF59c74a388A211a8EBa6D049b724288894627`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x82C4B40BFb0eD6Af3675aDf3FBa655f01c132D33`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],uniswapExternalActionAddress:`0xBEE0d60E4aB96174542698df995fC0ABb5078bd3`,odosExternalActionInstanceAddress:`0xCFcf5e34FD9e77Ab543Ca05D62fBDf54fAd6c42a`,oneInchExternalActionInstanceAddress:`0x23A64eF68de98C6Cf01e3A5202d47a3bcee6f920`,HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0x96B80d64e3257fC0C765171b8cC0E444C6fcdb48`,hinkalWalletFactoryAddress:`0xAde6caA3EC51EEb7C1b9b0fA0aC3bF1d02fA1a0f`,hinkalWalletBeaconAddress:`0xeDfBC45C547e0D0A986437CD6107669a035FddC9`,hinkalWalletFactoryABI:[{inputs:[],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`Create2Failed`,type:`error`},{inputs:[],name:`NotAllowedToCreateWallet`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint8`,name:`version`,type:`uint8`}],name:`Initialized`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`address`,name:`hinkal`,type:`address`},{internalType:`address`,name:`signerAddress`,type:`address`}],name:`createWallet`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEmporium`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`address`,name:`hinkal`,type:`address`}],name:`getWallet`,outputs:[{internalType:`contract IHinkalWallet`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_emporium`,type:`address`},{internalType:`address`,name:`_beaconAdmin`,type:`address`}],name:`initialize`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_emporium`,type:`address`}],name:`setEmporium`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`walletBeacon`,outputs:[{internalType:`contract IBeacon`,name:``,type:`address`}],stateMutability:`view`,type:`function`}]},lc={hinkalAddress:`0x25e5e82f5702A27C3466fE68f14abDbbAdFca826`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0xD0191A3Fb8F0A6c05ac393fB338cEBA3fB5555E5`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x82C4B40BFb0eD6Af3675aDf3FBa655f01c132D33`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],uniswapExternalActionAddress:`0x043258814389403E396D58BFD5c2585e4d856097`,odosExternalActionInstanceAddress:`0x737E33EBe0b6FF66841B890ccF7BB7Ae3dc4CEA1`,oneInchExternalActionInstanceAddress:`0x824234f96e82d56d73aCD59273E964b7AE22f849`,HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0x9Ee3b51350c98f0E912441aAf35166d7A71310A0`,hinkalWalletAddress:`0xd079ADceaeC7276f693a097248246Da6ac581A19`,hinkalWrapperAddress:`0x7a71635F72408FA540796c39F1Bf43BDe08F85E5`,hinkalWrapperABI:[{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEth`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getSender`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],depositOnChainUtxosExternalActionAddress:`0x13252c49226F926a420d530a1B72e88A1EFDe378`,depositOnChainUtxosExternalActionABI:[{inputs:[{internalType:`address[]`,name:`_allowedRecipients`,type:`address[]`},{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`BlockedUtxosCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{internalType:`int256[]`,name:`deltaAmounts`,type:`int256[]`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],name:`setHinkalWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}]},uc={hinkalAddress:`0x13b65FA5375af51A12762499602bE7B92afB8CD6`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0x6D5DFa6Ec97bF1Da5396033F305dFA8575c1f5a7`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x82C4B40BFb0eD6Af3675aDf3FBa655f01c132D33`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],uniswapExternalActionAddress:`0xa9CcAa5FE169EbA41ccD895795D1bcbDc5CabCFA`,odosExternalActionInstanceAddress:`0x2A96B7938941534D7dC2A6fCaEde22e328576f50`,oneInchExternalActionInstanceAddress:`0xFC7C7c2D3784F3Fe6c505Fc6D169E5f9322BFB7c`,HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0x23A64eF68de98C6Cf01e3A5202d47a3bcee6f920`,hinkalWalletFactoryAddress:`0xD0b3FF7e99dcD6058362c7B0894DBB34723D1bfA`,hinkalWalletBeaconAddress:`0x85f525996478fe87e265dfdb99e6C3ebE2D6E876`,hinkalWalletFactoryABI:[{inputs:[],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`Create2Failed`,type:`error`},{inputs:[],name:`NotAllowedToCreateWallet`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint8`,name:`version`,type:`uint8`}],name:`Initialized`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`address`,name:`hinkal`,type:`address`},{internalType:`address`,name:`signerAddress`,type:`address`}],name:`createWallet`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEmporium`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`address`,name:`hinkal`,type:`address`}],name:`getWallet`,outputs:[{internalType:`contract IHinkalWallet`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_emporium`,type:`address`},{internalType:`address`,name:`_beaconAdmin`,type:`address`}],name:`initialize`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_emporium`,type:`address`}],name:`setEmporium`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`walletBeacon`,outputs:[{internalType:`contract IBeacon`,name:``,type:`address`}],stateMutability:`view`,type:`function`}]},dc={hinkalAddress:`0x92c4Dce78EC1833b2966daF9be175EF50e95BA01`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperAddress:`0x2404F64A2462EA25AE95f77AD4006c5C1E54cD2f`,hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`address`,name:`_inLogicSigner`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidShortString`,type:`error`},{inputs:[{internalType:`string`,name:`str`,type:`string`}],name:`StringTooLong`,type:`error`},{anonymous:!1,inputs:[],name:`EIP712DomainChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`eip712Domain`,outputs:[{internalType:`bytes1`,name:`fields`,type:`bytes1`},{internalType:`string`,name:`name`,type:`string`},{internalType:`string`,name:`version`,type:`string`},{internalType:`uint256`,name:`chainId`,type:`uint256`},{internalType:`address`,name:`verifyingContract`,type:`address`},{internalType:`bytes32`,name:`salt`,type:`bytes32`},{internalType:`uint256[]`,name:`extensions`,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`inLogicSigner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_inLogicSigner`,type:`address`}],name:`setInLogicSigner`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenAddress:`0x27245f9e10a8480495c9F23a8DBa8cBAB9b73766`,accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],HinkalStakeExternalActionABI:[{inputs:[{internalType:`address[]`,name:`allowedRecipients`,type:`address[]`},{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`merkleConstructorArgs`,type:`tuple`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`BaseTokenNotRegistered`,type:`error`},{inputs:[],name:`EtherMismatch`,type:`error`},{inputs:[],name:`InvalidAmount`,type:`error`},{inputs:[],name:`InvalidHToken`,type:`error`},{inputs:[],name:`InvalidInputCount`,type:`error`},{inputs:[],name:`InvalidLength`,type:`error`},{inputs:[],name:`InvalidMerkleRoot`,type:`error`},{inputs:[],name:`InvalidProof`,type:`error`},{inputs:[{internalType:`uint8`,name:`which`,type:`uint8`}],name:`LengthMismatch`,type:`error`},{inputs:[],name:`MustBeDepositOrStake`,type:`error`},{inputs:[],name:`MustBeUnstake`,type:`error`},{inputs:[],name:`NullifierAlreadyUsed`,type:`error`},{inputs:[],name:`RelayForbidden`,type:`error`},{inputs:[],name:`SenderDepositorMismatch`,type:`error`},{inputs:[],name:`TimestampTooNew`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`uint256`,name:``,type:`uint256`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`AmountValidityUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`bool`,name:``,type:`bool`}],name:`IsRestrictionDisabledUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:``,type:`uint256`}],name:`MinAllowedTimestampOffsetUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stakeCommitment`,type:`uint256`},{indexed:!0,internalType:`address`,name:`staker`,type:`address`},{indexed:!1,internalType:`address`,name:`baseToken`,type:`address`},{indexed:!1,internalType:`uint256`,name:`stakedAmount`,type:`uint256`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContent`,type:`bytes`},{indexed:!1,internalType:`bytes`,name:`encryptedStakeCommitmentContentAlt`,type:`bytes`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`}],name:`NewStakeCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`commitment`,type:`uint256`}],name:`PermissionlessMint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`StakeNullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:``,type:`address`},{indexed:!1,internalType:`address`,name:``,type:`address`}],name:`TokenRegistryUpdate`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`}],name:`isAmountValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isRestrictionDisabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`minAllowedTimestampOffset`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`}],name:`mint`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint256[]`,name:`nullifiers`,type:`uint256[]`},{internalType:`uint256[]`,name:`stakeAmounts`,type:`uint256[]`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`address[]`,name:`stakedTokenRecipients`,type:`address[]`},{internalType:`uint256`,name:`stakedMerkleRoot`,type:`uint256`}],internalType:`struct StakeProverData`,name:`stakeProverData`,type:`tuple`},{components:[{internalType:`uint256`,name:`maxAllowedTimestamp`,type:`uint256`},{internalType:`uint256`,name:`stakeCommitment`,type:`uint256`}],internalType:`struct StakeProverPermissionlessData`,name:`stakeProverPermissionlessData`,type:`tuple`}],name:`mintPermissionless`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenToHtoken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bool`,name:`isValid`,type:`bool`}],name:`updateAmountValidity`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`bool`,name:`isDisabled`,type:`bool`}],name:`updateIsRestrictionDisabled`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newMinAllowedTimestampOffset`,type:`uint256`}],name:`updateMinAllowedTimestampOffset`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`collateral`,type:`address`},{internalType:`address`,name:`hToken`,type:`address`}],name:`updateTokenRegistry`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`usedNullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],HTokenABI:[{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`contract IERC20`,name:`_baseToken`,type:`address`},{internalType:`address`,name:`_hinkalAddress`,type:`address`},{internalType:`address`,name:`_externalAction`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`MustBeExternalAction`,type:`error`},{inputs:[],name:`NoShares`,type:`error`},{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:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`}],name:`RewardAdded`,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`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`uint256`,name:`assets`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`shares`,type:`uint256`}],name:`Withdraw`,type:`event`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`addReward`,outputs:[],stateMutability:`payable`,type:`function`},{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:[],name:`asset`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`convertToAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`convertToShares`,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:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`deposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`externalAction`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],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:``,type:`address`}],name:`maxDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`maxMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`maxWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`}],name:`mint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewDeposit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewMint`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`}],name:`previewRedeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`}],name:`previewWithdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`shares`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`redeem`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_externalAction`,type:`address`}],name:`setExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalAssets`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],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`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`assets`,type:`uint256`},{internalType:`address`,name:`receiver`,type:`address`},{internalType:`address`,name:`owner`,type:`address`}],name:`withdraw`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`}],HTokenOracleABI:[{inputs:[{internalType:`contract IERC4626`,name:`_hToken`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`exchangeRate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hToken`,outputs:[{internalType:`contract IERC4626`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],emporiumAddress:`0xe59FF2F5eC7D109221ffaAbE183A64A63FA4F8c8`,hinkalWalletAddress:`0x5B9FffF15dE4fFB1c884039B44e49EbB027b130d`,hinkalWrapperAddress:`0x5bD7D79BE6e52EcC0969FeEbBbc8482Cb76367ef`,hinkalWrapperABI:[{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEth`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getSender`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],depositOnChainUtxosExternalActionAddress:`0x1E3c941208C392999213f443338CB0cB0eCf2A34`,depositOnChainUtxosExternalActionABI:[{inputs:[{internalType:`address[]`,name:`_allowedRecipients`,type:`address[]`},{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`BlockedUtxosCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{internalType:`int256[]`,name:`deltaAmounts`,type:`int256[]`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],name:`setHinkalWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}]},fc={hinkalAddress:`J4SsjA1Zqf2tZfBJjYrEKXocM9NdP2xHNfAQLM7McG5H`,hinkalIdl:JSON.parse(`{"address":"J4SsjA1Zqf2tZfBJjYrEKXocM9NdP2xHNfAQLM7McG5H","metadata":{"name":"hinkal","version":"0.1.0","spec":"0.1.0","description":"Created with Anchor"},"instructions":[{"name":"accept_ownership","discriminator":[172,23,43,13,238,213,85,150],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}}],"args":[]},{"name":"add_access_token","discriminator":[237,41,189,178,135,37,9,178],"accounts":[{"name":"payer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"access_token_storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_owner","signer":true},{"name":"accesskey_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,107,101,121,115]},{"kind":"account","path":"original_deployer"},{"kind":"arg","path":"access_key"}]}},{"name":"merkle_account_access_token","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"access_key","type":{"array":["u8",32]}}]},{"name":"change_access_token_owner_key","discriminator":[195,251,147,150,188,74,229,39],"accounts":[{"name":"owner","signer":true},{"name":"original_deployer"},{"name":"storage_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"new_access_token_owner"}],"args":[]},{"name":"close_nullifier","discriminator":[162,69,214,3,121,155,58,219],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"nullifier_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,110,117,108,108,105,102,105,101,114]},{"kind":"account","path":"original_deployer"},{"kind":"arg","path":"nullifier"}]}},{"name":"storage_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"nullifier","type":{"array":["u8",32]}}]},{"name":"init_nullifier","discriminator":[187,124,88,139,111,232,162,236],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"nullifier_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,110,117,108,108,105,102,105,101,114]},{"kind":"account","path":"original_deployer"},{"kind":"arg","path":"nullifier"}]}},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"nullifier","type":{"array":["u8",32]}}]},{"name":"init_token_limit","discriminator":[101,50,38,98,240,193,205,13],"accounts":[{"name":"payer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"mint","optional":true},{"name":"token_limit_storage","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[]},{"name":"initialize","discriminator":[175,175,109,31,13,152,155,237],"accounts":[{"name":"original_deployer","writable":true,"signer":true},{"name":"storage_vault","docs":["zero-length PDA owned by the system program that only stores lamports"],"writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"merkle_account_access_token","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"rent","address":"SysvarRent111111111111111111111111111111111"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[]},{"name":"multi_payment_deposit","discriminator":[70,64,60,132,3,67,69,74],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"mint","optional":true},{"name":"signer_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"storage_vault_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"storage_vault"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_storage_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_owner","signer":true,"optional":true},{"name":"token_limit_storage","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"amounts","type":{"vec":"u64"}},{"name":"stealth_address_structure","type":{"vec":{"defined":{"name":"StealthAddressStructure"}}}},{"name":"create_blocked_utxos","type":"bool"}]},{"name":"proofless_deposit","discriminator":[238,63,30,216,109,36,109,123],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"mint","optional":true},{"name":"signer_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"storage_vault_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"storage_vault"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_storage_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_owner","signer":true,"optional":true},{"name":"token_limit_storage","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"amount","type":"u64"},{"name":"stealth_address_structure","type":{"defined":{"name":"StealthAddressStructure"}}}]},{"name":"store_encrypted_outputs","discriminator":[119,158,243,225,12,25,29,85],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"encrypted_outputs_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,101,110,99,114,121,112,116,101,100,95,111,117,116,112,117,116,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u32"},{"name":"encrypted_outputs","type":{"defined":{"name":"EncryptedOutputs"}}}]},{"name":"store_instructions","discriminator":[74,235,173,153,203,64,250,122],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"instructions_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,105,110,115,116,114,117,99,116,105,111,110,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u32"},{"name":"instructions","type":{"vec":{"defined":{"name":"SolanaInstructionData"}}}}]},{"name":"store_proof_part1","discriminator":[174,144,197,114,7,196,154,191],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"proof_account_part1","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,49]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u32"},{"name":"proof_a_arr","type":{"array":["u8",64]}},{"name":"proof_b_arr","type":{"array":["u8",128]}},{"name":"proof_c_arr","type":{"array":["u8",64]}},{"name":"public_signals_part1","type":{"vec":{"array":["u8",32]}}}]},{"name":"store_proof_part2","discriminator":[32,225,73,0,60,163,213,158],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"proof_account_part2","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,50]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u32"},{"name":"public_signals_part2","type":{"vec":{"array":["u8",32]}}}]},{"name":"swap2","discriminator":[65,75,63,76,235,91,91,136],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"swapper_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,115,119,97,112,112,101,114]},{"kind":"account","path":"original_deployer"},{"kind":"arg","path":"swapper_account_additional_seed"}]}},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"mint_from","optional":true},{"name":"mint_to","optional":true},{"name":"signer_to_ata","writable":true,"optional":true},{"name":"storage_vault_from_ata","writable":true,"optional":true},{"name":"storage_vault_to_ata","writable":true,"optional":true},{"name":"swapper_account_from_ata","writable":true,"optional":true},{"name":"swapper_account_to_ata","writable":true,"optional":true},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"merkle_account_access_token","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_storage_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"from_token_limit"},{"name":"to_token_limit"},{"name":"first_nullifier","writable":true,"optional":true},{"name":"second_nullifier","writable":true,"optional":true},{"name":"third_nullifier","writable":true,"optional":true},{"name":"fourth_nullifier","writable":true,"optional":true},{"name":"encrypted_outputs_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,101,110,99,114,121,112,116,101,100,95,111,117,116,112,117,116,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part1","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,49]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part2","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,50]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"instructions_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,105,110,115,116,114,117,99,116,105,111,110,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"event_authority","pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"program"}],"args":[{"name":"id","type":"u32"},{"name":"swapper_account_additional_seed","type":{"array":["u8",32]}},{"name":"in_nullifiers","type":{"vec":{"array":["u8",32]}}},{"name":"relayer_fee","type":"u64"},{"name":"variable_rate","type":"u64"},{"name":"dimensions","type":{"defined":{"name":"Dimensions"}}}]},{"name":"swap6","discriminator":[99,72,77,24,113,171,250,215],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"swapper_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,115,119,97,112,112,101,114]},{"kind":"account","path":"original_deployer"},{"kind":"arg","path":"swapper_account_additional_seed"}]}},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"mint_from","optional":true},{"name":"mint_to","optional":true},{"name":"signer_to_ata","writable":true,"optional":true},{"name":"storage_vault_from_ata","writable":true,"optional":true},{"name":"storage_vault_to_ata","writable":true,"optional":true},{"name":"swapper_account_from_ata","writable":true,"optional":true},{"name":"swapper_account_to_ata","writable":true,"optional":true},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"merkle_account_access_token","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_storage_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"from_token_limit"},{"name":"to_token_limit"},{"name":"first_nullifier","writable":true,"optional":true},{"name":"second_nullifier","writable":true,"optional":true},{"name":"third_nullifier","writable":true,"optional":true},{"name":"fourth_nullifier","writable":true,"optional":true},{"name":"fifth_nullifier","writable":true,"optional":true},{"name":"sixth_nullifier","writable":true,"optional":true},{"name":"seventh_nullifier","writable":true,"optional":true},{"name":"eighth_nullifier","writable":true,"optional":true},{"name":"nineth_nullifier","writable":true,"optional":true},{"name":"tenth_nullifier","writable":true,"optional":true},{"name":"eleventh_nullifier","writable":true,"optional":true},{"name":"twelveth_nullifier","writable":true,"optional":true},{"name":"encrypted_outputs_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,101,110,99,114,121,112,116,101,100,95,111,117,116,112,117,116,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part1","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,49]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part2","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,50]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"instructions_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,105,110,115,116,114,117,99,116,105,111,110,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"event_authority","pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"program"}],"args":[{"name":"id","type":"u32"},{"name":"swapper_account_additional_seed","type":{"array":["u8",32]}},{"name":"in_nullifiers","type":{"vec":{"array":["u8",32]}}},{"name":"relayer_fee","type":"u64"},{"name":"variable_rate","type":"u64"},{"name":"dimensions","type":{"defined":{"name":"Dimensions"}}}]},{"name":"transact2","discriminator":[147,170,237,9,83,181,181,81],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"recipient","writable":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"mint","optional":true},{"name":"signer_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"storage_vault_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"storage_vault"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"recipient_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"recipient"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"merkle_account_access_token","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_storage_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"token_limit_storage","writable":true},{"name":"first_nullifier","writable":true,"optional":true},{"name":"second_nullifier","writable":true,"optional":true},{"name":"encrypted_outputs_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,101,110,99,114,121,112,116,101,100,95,111,117,116,112,117,116,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part1","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,49]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part2","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,50]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u32"},{"name":"forbid_deposit","type":"bool"},{"name":"in_nullifiers","type":{"vec":{"array":["u8",32]}}},{"name":"relayer_fee","type":"u64"},{"name":"dimensions","type":{"defined":{"name":"Dimensions"}}}]},{"name":"transact6","discriminator":[141,202,39,130,160,18,56,118],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"recipient","writable":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"mint","optional":true},{"name":"signer_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"storage_vault_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"storage_vault"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"recipient_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"recipient"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"merkle_account_access_token","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"access_token_storage_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,97,99,99,101,115,115,95,116,111,107,101,110]},{"kind":"account","path":"original_deployer"}]}},{"name":"token_limit_storage","writable":true},{"name":"first_nullifier","writable":true,"optional":true},{"name":"second_nullifier","writable":true,"optional":true},{"name":"third_nullifier","writable":true,"optional":true},{"name":"fourth_nullifier","writable":true,"optional":true},{"name":"fifth_nullifier","writable":true,"optional":true},{"name":"sixth_nullifier","writable":true,"optional":true},{"name":"encrypted_outputs_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,101,110,99,114,121,112,116,101,100,95,111,117,116,112,117,116,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part1","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,49]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part2","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,50]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u32"},{"name":"forbid_deposit","type":"bool"},{"name":"in_nullifiers","type":{"vec":{"array":["u8",32]}}},{"name":"relayer_fee","type":"u64"},{"name":"dimensions","type":{"defined":{"name":"Dimensions"}}}]},{"name":"transfer2","discriminator":[27,140,248,82,105,169,171,143],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"mint","optional":true},{"name":"signer_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"storage_vault_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"storage_vault"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"first_nullifier","writable":true,"optional":true},{"name":"second_nullifier","writable":true,"optional":true},{"name":"encrypted_outputs_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,101,110,99,114,121,112,116,101,100,95,111,117,116,112,117,116,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part1","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,49]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part2","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,50]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u32"},{"name":"in_nullifiers","type":{"vec":{"array":["u8",32]}}},{"name":"relayer_fee","type":"u64"},{"name":"dimensions","type":{"defined":{"name":"Dimensions"}}}]},{"name":"transfer6","discriminator":[181,146,34,243,187,199,220,67],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"storage_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,118,97,117,108,116]},{"kind":"account","path":"original_deployer"}]}},{"name":"mint","optional":true},{"name":"signer_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"storage_vault_ata","writable":true,"optional":true,"pda":{"seeds":[{"kind":"account","path":"storage_vault"},{"kind":"const","value":[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{"kind":"account","path":"mint"}],"program":{"kind":"const","value":[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{"name":"merkle_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,109,101,114,107,108,101]},{"kind":"account","path":"original_deployer"}]}},{"name":"first_nullifier","writable":true,"optional":true},{"name":"second_nullifier","writable":true,"optional":true},{"name":"third_nullifier","writable":true,"optional":true},{"name":"fourth_nullifier","writable":true,"optional":true},{"name":"fifth_nullifier","writable":true,"optional":true},{"name":"sixth_nullifier","writable":true,"optional":true},{"name":"encrypted_outputs_account","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,101,110,99,114,121,112,116,101,100,95,111,117,116,112,117,116,115]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part1","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,49]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"proof_account_part2","pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108,95,112,114,111,111,102,95,112,97,114,116,50]},{"kind":"account","path":"original_deployer"},{"kind":"account","path":"signer"},{"kind":"arg","path":"id"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u32"},{"name":"in_nullifiers","type":{"vec":{"array":["u8",32]}}},{"name":"relayer_fee","type":"u64"},{"name":"dimensions","type":{"defined":{"name":"Dimensions"}}}]},{"name":"transfer_ownership","discriminator":[65,177,215,73,53,45,99,47],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}}],"args":[{"name":"new_owner","type":"pubkey"}]},{"name":"update_relayer_status","discriminator":[247,180,15,221,102,66,142,253],"accounts":[{"name":"signer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"relayer"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"status","type":"bool"}]},{"name":"update_token_limit","discriminator":[76,78,222,27,68,124,113,42],"accounts":[{"name":"payer","writable":true,"signer":true},{"name":"original_deployer"},{"name":"mint","optional":true},{"name":"token_limit_storage","writable":true},{"name":"storage_account","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,105,110,107,97,108]},{"kind":"account","path":"original_deployer"}]}},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"amount","type":"u64"}]}],"accounts":[{"name":"AccessTokenStorageAccount","discriminator":[141,226,180,59,133,124,66,180]},{"name":"AccesskeyAccount","discriminator":[173,112,95,217,116,67,209,214]},{"name":"EncryptedOutputsAccount","discriminator":[38,153,140,49,115,38,136,21]},{"name":"InstructionsAccount","discriminator":[158,246,131,222,29,159,202,65]},{"name":"Merkle","discriminator":[55,52,102,252,195,69,204,210]},{"name":"NullifierAccount","discriminator":[250,31,238,177,213,98,48,172]},{"name":"ProofAccountPart1","discriminator":[227,231,205,87,22,154,112,114]},{"name":"ProofAccountPart2","discriminator":[84,185,22,128,59,14,111,158]},{"name":"StorageAccount","discriminator":[41,48,231,194,22,77,205,235]},{"name":"TokenLimitStorageAccount","discriminator":[245,35,95,177,138,179,80,82]}],"events":[{"name":"AccessTokenOwnerChanged","discriminator":[68,231,13,75,227,104,188,86]},{"name":"BlockedUtxosCreated","discriminator":[64,214,216,215,75,156,106,107]},{"name":"NewAccessKeyAdded","discriminator":[4,138,241,97,75,107,29,235]},{"name":"NewCommitment","discriminator":[78,21,75,243,5,132,204,67]},{"name":"Nullified","discriminator":[124,69,200,64,75,203,121,17]},{"name":"OwnershipAccepted","discriminator":[60,223,46,198,226,73,39,18]},{"name":"OwnershipTransferred","discriminator":[172,61,205,183,250,50,38,98]},{"name":"RelayerStatusUpdated","discriminator":[47,132,241,182,171,89,127,242]},{"name":"TokenLimitUpdated","discriminator":[129,164,134,229,69,191,74,160]}],"errors":[{"code":6000,"name":"InvalidMintConfiguration","msg":"Invalid combination of mint accounts supplied for swap."},{"code":6001,"name":"MissingMintFrom","msg":"Missing mint account for source leg."},{"code":6002,"name":"MissingMintTo","msg":"Missing mint account for destination leg."},{"code":6003,"name":"IdenticalTokenMints","msg":"Source and destination token mints cannot be identical."},{"code":6004,"name":"MissingStorageSourceAta","msg":"Missing storage vault source token ATA."},{"code":6005,"name":"MissingStorageDestinationAta","msg":"Missing storage vault destination token ATA."},{"code":6006,"name":"MissingSwapperSourceAta","msg":"Missing swapper account source token ATA."},{"code":6007,"name":"MissingSwapperDestinationAta","msg":"Missing swapper account destination token ATA."},{"code":6008,"name":"ReceivedAmountLowerThanExpected","msg":"Received amount lower than expected"},{"code":6009,"name":"ExpectedNegativeInputAmount","msg":"Expected negative input amount"},{"code":6010,"name":"ExpectedPositiveOutputAmount","msg":"Expected positive output amount"},{"code":6011,"name":"UnexpectedOnchainCreation","msg":"Unexpected onchain creation values specified"},{"code":6012,"name":"UnexpectedDimensions","msg":"Unexpected dimensions"},{"code":6013,"name":"ValueLargerThanCircomP","msg":"Value larger than circom P"},{"code":6014,"name":"UnsafeArithmetic","msg":"Unsafe arithmetic"},{"code":6015,"name":"FeeCalculationOverflow","msg":"Fee calculation overflow"},{"code":6016,"name":"InvalidPublicSignalsSize","msg":"Invalid public signals size for proof verification"},{"code":6017,"name":"UnsupportedDimensions","msg":"Unsupported dimensions for proof verification"},{"code":6018,"name":"ExpectedAccessTokenOwner","msg":"Expected access token owner"},{"code":6019,"name":"AccessTokenRequired","msg":"Access token required"},{"code":6020,"name":"AccessTokenAlreadyAdded","msg":"Access token already adaded"},{"code":6021,"name":"NullifierAlreadyUsed","msg":"Cannot close a nullifier account that has already been used"},{"code":6022,"name":"AccessTokenOwnerDepositForbidden","msg":"Access token owner deposit forbidden"},{"code":6023,"name":"Unauthorized","msg":"Unauthorized"},{"code":6024,"name":"CalldataHashMismatch","msg":"Calldata hash mismatch"},{"code":6025,"name":"RootHashDoesNotExist","msg":"Root hash doesn't exist"},{"code":6026,"name":"InvalidAmountChange","msg":"Invalid amount change"},{"code":6027,"name":"RelayerNotWhitelisted","msg":"Relayer account not whitelisted"},{"code":6028,"name":"ExpectedMintAddressZero","msg":"Expected mint address to be zero"},{"code":6029,"name":"ExpectedMintAddressNotZero","msg":"Expected mint address not to be zero"},{"code":6030,"name":"UnsupportedDimensionsError","msg":"Unsupported dimensions"},{"code":6031,"name":"InNullifiersLengthMismatch","msg":"In nullifiers length mismatch"},{"code":6032,"name":"InNullifierMismatch","msg":"In nullifier mismatch"},{"code":6033,"name":"PoseidonHashFailed","msg":"Poseidon hash failed"},{"code":6034,"name":"NullifierUsed","msg":"Nullifier used"},{"code":6035,"name":"NullifierNotZeroButAccountNotSpecified","msg":"Nullifier not zero, but account not specified"},{"code":6036,"name":"NullifierAccountsListLengthMustBeEven","msg":"Nullifier accounts list length must be even"},{"code":6037,"name":"OnChainCreationLengthMismatch","msg":"On chain creation length mismatch"},{"code":6038,"name":"EncryptedOutputsLengthMismatch","msg":"Encrypted outputs length mismatch"},{"code":6039,"name":"ProofVerificationFailed","msg":"Proof verification failed"},{"code":6040,"name":"UnexpectedValue","msg":"Unexpected value"},{"code":6041,"name":"ATAValidationFailed","msg":"Associate token account validation failed"},{"code":6042,"name":"BalanceDiffMismatch","msg":"Balance Diff Should be equal to sum of onchain and offchain created commitments"},{"code":6043,"name":"ZeroRandomizationForbidden","msg":"Randomization cannot be zero"},{"code":6044,"name":"RemainingAccountSignerForbidden","msg":"Ramaining account signer forbidden"},{"code":6045,"name":"DepositForbidden","msg":"Deposit forbidden"},{"code":6046,"name":"SwapperAccountAdditionalSeedMismatch","msg":"Swapper account additional seed mismatch"},{"code":6047,"name":"InvalidVersion","msg":"Invalid Version"},{"code":6048,"name":"SelfCPIForbidden","msg":"Self-CPI forbidden"},{"code":6049,"name":"InvalidNullifierPDA","msg":"Invalid nullifier pda"}],"types":[{"name":"AccessTokenOwnerChanged","type":{"kind":"struct","fields":[{"name":"old_owner","type":"pubkey"},{"name":"new_owner","type":"pubkey"}]}},{"name":"AccessTokenStorageAccount","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"access_token_owner_key","type":"pubkey"}]}},{"name":"AccesskeyAccount","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"is_added","type":"bool"}]}},{"name":"BlockedUtxosCreated","type":{"kind":"struct","fields":[{"name":"sender","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"amounts","type":{"vec":"u64"}}]}},{"name":"Dimensions","type":{"kind":"struct","fields":[{"name":"token_number","type":"u8"},{"name":"nullifier_amount","type":"u8"},{"name":"output_amount","type":"u8"}]}},{"name":"EncryptedOutputs","type":{"kind":"struct","fields":[{"name":"outputs","type":{"vec":"bytes"}}]}},{"name":"EncryptedOutputsAccount","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"encrypted_outputs","type":{"vec":"bytes"}}]}},{"name":"InstructionsAccount","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"instructions","type":{"vec":{"defined":{"name":"SolanaInstructionData"}}}}]}},{"name":"Merkle","serialization":"bytemuck","repr":{"kind":"c"},"type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"tree_levels","type":{"array":[{"array":["u8",32]},200]}},{"name":"roots","type":{"array":[{"array":["u8",32]},100]}},{"name":"m_index","type":{"array":["u8",32]}},{"name":"root_index","type":{"array":["u8",32]}},{"name":"levels","type":{"array":["u8",16]}},{"name":"minimum_index","type":{"array":["u8",32]}}]}},{"name":"NewAccessKeyAdded","type":{"kind":"struct","fields":[{"name":"access_key","type":{"array":["u8",32]}},{"name":"index","type":{"array":["u8",32]}},{"name":"sender_address","type":{"array":["u8",32]}}]}},{"name":"NewCommitment","type":{"kind":"struct","fields":[{"name":"commitment","type":{"array":["u8",32]}},{"name":"index","type":{"array":["u8",32]}},{"name":"encrypted_output","type":"bytes"},{"name":"on_chain_data","type":{"array":[{"array":["u8",32]},8]}}]}},{"name":"Nullified","type":{"kind":"struct","fields":[{"name":"nullifier","type":{"array":["u8",32]}}]}},{"name":"NullifierAccount","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"is_used","type":"bool"}]}},{"name":"OwnershipAccepted","type":{"kind":"struct","fields":[{"name":"previous_owner","type":"pubkey"},{"name":"new_owner","type":"pubkey"}]}},{"name":"OwnershipTransferred","type":{"kind":"struct","fields":[{"name":"previous_owner","type":"pubkey"},{"name":"new_pending_owner","type":"pubkey"}]}},{"name":"ProofAccountPart1","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"proof_a_arr","type":{"array":["u8",64]}},{"name":"proof_b_arr","type":{"array":["u8",128]}},{"name":"proof_c_arr","type":{"array":["u8",64]}},{"name":"public_signals_part1","type":{"vec":{"array":["u8",32]}}}]}},{"name":"ProofAccountPart2","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"public_signals_part2","type":{"vec":{"array":["u8",32]}}}]}},{"name":"RelayerStatusUpdated","type":{"kind":"struct","fields":[{"name":"relayer","type":"pubkey"},{"name":"status","type":"bool"}]}},{"name":"SolanaInstructionData","type":{"kind":"struct","fields":[{"name":"account_indexes","type":"bytes"},{"name":"data","type":"bytes"},{"name":"program_index","type":"u8"}]}},{"name":"StealthAddressStructure","type":{"kind":"struct","fields":[{"name":"extra_randomization","type":{"array":["u8",32]}},{"name":"stealth_address","type":{"array":["u8",32]}},{"name":"h0","type":{"array":["u8",32]}},{"name":"h1","type":{"array":["u8",32]}}]}},{"name":"StorageAccount","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"whitelisted_relayers","type":{"vec":"pubkey"}},{"name":"owner","type":"pubkey"},{"name":"pending_owner","type":"pubkey"}]}},{"name":"TokenLimitStorageAccount","type":{"kind":"struct","fields":[{"name":"version","type":"u8"},{"name":"amount_limit","type":"u64"}]}},{"name":"TokenLimitUpdated","type":{"kind":"struct","fields":[{"name":"mint","type":{"option":"pubkey"}},{"name":"amount_limit","type":"u64"}]}}]}`),originalDeployer:`DW2Na5Q41Ve6HZQzMvPwJVT1tzKnb2UCp8WZkk1EcJUw`},pc={hinkalAddress:`0x4a4f166f07ee0e867dc6d02b4083da87713539d3`,hinkalHelperAddress:`0x239525705162c7fe10fa6beae29592f1e678945d`,accessTokenAddress:`0x675818f7740f68e7244310eb764a65e4e4a57769`,depositOnChainUtxosExternalActionAddress:`0x27243d36027c3bd454af52b25d9f4923e392fa5f`,hinkalWrapperAddress:`0x7d0bedd640a63bb33167898b2dc1c43a23762e20`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,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:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],internalType:`struct Signature`,name:`proofSignature`,type:`tuple`},{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],depositOnChainUtxosExternalActionABI:[{inputs:[{internalType:`address[]`,name:`_allowedRecipients`,type:`address[]`},{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`BlockedUtxosCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{internalType:`int256[]`,name:`deltaAmounts`,type:`int256[]`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],name:`setHinkalWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalWrapperABI:[{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEth`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getSender`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],name:`setHinkalAddress`,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:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],internalType:`struct Signature`,name:`proofSignature`,type:`tuple`},{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}]},mc={hinkalAddress:`0x65cd1b3921ece2ec8663fa1728e827ccfd5104db`,hinkalHelperAddress:`0x6ee21e3ea630198213212eb5e38bf379febce361`,accessTokenAddress:`0x6f41e4ecd1a754f514a6af01e07f68c5bef2cf2d`,depositOnChainUtxosExternalActionAddress:`0xfe35cc5d88569de7d03c8e5fd09da42a2d79fc27`,hinkalWrapperAddress:`0x60fe24dcfb3dad88e620d7810720c75b8888b625`,hinkalABI:[{inputs:[{components:[{internalType:`uint128`,name:`levels`,type:`uint128`},{internalType:`address`,name:`poseidon2`,type:`address`},{internalType:`address`,name:`poseidon4`,type:`address`},{internalType:`address`,name:`poseidon5`,type:`address`}],internalType:`struct IMerkle.MerkleConstructorArgs`,name:`constructorArgs`,type:`tuple`},{internalType:`address`,name:`_hinkalHelper`,type:`address`},{internalType:`address`,name:`_hinkalInLogic`,type:`address`},{internalType:`address`,name:`_hinkalHelperManager`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`BufferReleased`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`ExternalActionRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approveTo`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount`,type:`int256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewApprovedUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`approvalTarget`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`NewBufferEntry`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`commitment`,type:`uint256`},{indexed:!1,internalType:`int256`,name:`index`,type:`int256`},{indexed:!1,internalType:`bytes`,name:`encryptedOutput`,type:`bytes`}],name:`NewCommitment`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`timestamp`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20TokenAddress`,type:`address`},{indexed:!1,internalType:`int256`,name:`publicAmount`,type:`int256`}],name:`NewTransaction`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`},{indexed:!1,internalType:`address`,name:`erc20Address`,type:`address`},{indexed:!1,internalType:`uint256`,name:`randomization`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`timeStamp`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`NewUtxo`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`nullifier`,type:`uint256`}],name:`Nullified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`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:`uint256`,name:`verifierId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`verifierAddress`,type:`address`}],name:`VerifierRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`VerifierRemoved`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`HINKAL_HELPER_MANAGER`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`approvalTargets`,type:`address[]`},{internalType:`uint256[][]`,name:`indexes`,type:`uint256[][]`}],name:`bufferApprovals`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`}],name:`buildVerifierId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`externalActionMap`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`approveTo`,type:`address`},{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],name:`getBufferEntry`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`interaction`,type:`address`}],name:`getInteractionApprovals`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`}],internalType:`struct ApprovedUtxo[]`,name:`approvedUtxos`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`grantRole`,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:[{internalType:`uint256`,name:`a`,type:`uint256`},{internalType:`uint256`,name:`b`,type:`uint256`}],name:`hash2`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`}],name:`hash4`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`a0`,type:`uint256`},{internalType:`uint256`,name:`a1`,type:`uint256`},{internalType:`uint256`,name:`a2`,type:`uint256`},{internalType:`uint256`,name:`a3`,type:`uint256`},{internalType:`uint256`,name:`a4`,type:`uint256`}],name:`hash5`,outputs:[{internalType:`uint256`,name:`poseidonHash`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalHelper`,outputs:[{internalType:`contract IHinkalHelper`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalInLogic`,outputs:[{internalType:`contract IHinkalInLogic`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`x`,type:`uint256`}],name:`logarithm2`,outputs:[{internalType:`uint256`,name:`y`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`m_index`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`nullifiers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon2`,outputs:[{internalType:`contract IPoseidon2`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon4`,outputs:[{internalType:`contract IPoseidon4`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`poseidon5`,outputs:[{internalType:`contract IPoseidon5`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`prooflessDeposit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`address`,name:`externalActionAddress`,type:`address`}],name:`registerExternalAction`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256[]`,name:`verifierIds`,type:`uint256[]`},{internalType:`address[]`,name:`verifierAddresses`,type:`address[]`}],name:`registerVerifiers`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`verifierId`,type:`uint256`}],name:`removeVerifier`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],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:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`_root`,type:`uint256`}],name:`rootHashExists`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rootIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`roots`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalHelper`,type:`address`}],name:`setHinkalHelper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalLogic`,type:`address`}],name:`setHinkalLogic`,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:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],internalType:`struct Signature`,name:`proofSignature`,type:`tuple`},{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`tree`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`verifierMap`,outputs:[{internalType:`contract IVerifier`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalHelperABI:[{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`},{internalType:`address`,name:`_accessToken`,type:`address`},{internalType:`uint256[]`,name:`_stakeCircuitIds`,type:`uint256[]`},{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`address[]`,name:`_initialRelays`,type:`address[]`},{internalType:`address[]`,name:`_limitTokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`}],name:`GasTokenRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`isEnabled`,type:`bool`}],name:`RegistryStateChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`relayAddress`,type:`address`}],name:`RelayRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`erc20Token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`tokenLimit`,type:`uint256`}],name:`TokenLimit`,type:`event`},{inputs:[],name:`MAX_AMOUNT`,outputs:[{internalType:`int256`,name:``,type:`int256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`POINTER_SEPARATOR`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`accessToken`,outputs:[{internalType:`contract IAccessToken`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`addRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`balance`,type:`uint256`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],name:`calculateRelayFee`,outputs:[{internalType:`uint256`,name:`relayFee`,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address[]`,name:`_gasTokens`,type:`address[]`},{internalType:`bool[]`,name:`values`,type:`bool[]`}],name:`changeGasTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bool`,name:`_enabled`,type:`bool`}],name:`changeState`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`}],name:`checkTokenRegistry`,outputs:[{internalType:`bool`,name:`limitHit`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`enabled`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`gasTokens`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointSign`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`H`,type:`uint256`}],name:`getPointY`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`getRelayStore`,outputs:[{internalType:`address[]`,name:``,type:`address[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_token`,type:`address`}],name:`getTokenLimit`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkalAddress`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`isGasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayAddress`,type:`address`}],name:`isRelayInList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{internalType:`address`,name:`sender`,type:`address`}],name:`performHinkalChecks`,outputs:[{internalType:`uint256[]`,name:``,type:`uint256[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address[]`,name:`erc20Addresses`,type:`address[]`},{internalType:`uint256[]`,name:`amounts`,type:`uint256[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure[]`,name:`stealthAddressStructures`,type:`tuple[]`}],name:`performProoflessDepositChecks`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`performSideEffects`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`relayList`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`relayStore`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_relayAddress`,type:`address`}],name:`removeRelay`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_accessToken`,type:`address`}],name:`setAccessToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalAddress`,type:`address`}],name:`setHinkalAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`_tokens`,type:`address[]`},{internalType:`uint256[]`,name:`_tokenLimits`,type:`uint256[]`}],name:`setTokenLimits`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`tokenLimits`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bool`,name:`value`,type:`bool`}],name:`updateStakeCircuits`,outputs:[],stateMutability:`nonpayable`,type:`function`}],accessTokenABI:[{inputs:[{internalType:`contract IAccessTokenStorage`,name:`_accessTokenStorage`,type:`address`},{internalType:`address`,name:`_axelarGateway`,type:`address`},{internalType:`address`,name:`_gasService`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`InvalidAddress`,type:`error`},{inputs:[],name:`InvalidAddressString`,type:`error`},{inputs:[],name:`NotApprovedByGateway`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`blacklistedAccessKey`,type:`uint256`}],name:`AccessKeyBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`string`,name:`sourceChain`,type:`string`}],name:`AccessKeyMigrationReceived`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`blacklistedAddress`,type:`address`}],name:`AddressBlacklisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`addressToRestore`,type:`address`}],name:`AddressRemovedFromBlacklist`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newMintingFee`,type:`uint256`}],name:`MintingFeeChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`accessKey`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`index`,type:`uint256`},{indexed:!1,internalType:`address`,name:`senderAddress`,type:`address`}],name:`NewAccessKeyAdded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`accessTokenStorage`,outputs:[{internalType:`contract IAccessTokenStorage`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`}],name:`addToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`accessToken`,type:`uint256`},{internalType:`address`,name:`ethAddress`,type:`address`}],internalType:`struct AccessTokenWithAddress[]`,name:`accessObjects`,type:`tuple[]`}],name:`approveTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`blacklistAccessKey`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`blacklistAddress`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`address`,name:`sender`,type:`address`}],name:`checkForRootHash`,outputs:[{internalType:`bool`,name:``,type:`bool`}],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:[],name:`getRootHash`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`hasToken`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`hinkal`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{components:[{internalType:`string`,name:`destinationChain`,type:`string`},{internalType:`string`,name:`destinationAddress`,type:`string`},{internalType:`uint256`,name:`messageFee`,type:`uint256`}],internalType:`struct AxelarChainInfo[]`,name:`chains`,type:`tuple[]`},{internalType:`uint256`,name:`totalMessageFees`,type:`uint256`}],internalType:`struct AxelarCapsule`,name:`capsule`,type:`tuple`},{internalType:`uint256`,name:`accessKey`,type:`uint256`}],name:`migrateAccessToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`registerCheck`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_address`,type:`address`}],name:`removeAddressFromBlacklist`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_gasService`,type:`address`}],name:`setAxelarGasService`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`}],depositOnChainUtxosExternalActionABI:[{inputs:[{internalType:`address[]`,name:`_allowedRecipients`,type:`address[]`},{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenAddress`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`BlockedUtxosCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`},{internalType:`int256[]`,name:`deltaAmounts`,type:`int256[]`}],name:`runAction`,outputs:[{components:[{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`address`,name:`erc20Address`,type:`address`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],internalType:`struct UTXO[]`,name:``,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address[]`,name:`recipients`,type:`address[]`}],name:`setAllowedRecipients`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkalWrapper`,type:`address`}],name:`setHinkalWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`_interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],hinkalWrapperABI:[{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getEth`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`getSender`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`uint256[]`,name:``,type:`uint256[]`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155BatchReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC1155Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`},{internalType:`uint256`,name:``,type:`uint256`},{internalType:`bytes`,name:``,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`_hinkal`,type:`address`}],name:`setHinkalAddress`,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:[{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],internalType:`struct Signature`,name:`proofSignature`,type:`tuple`},{internalType:`uint256[2]`,name:`a`,type:`uint256[2]`},{internalType:`uint256[2][2]`,name:`b`,type:`uint256[2][2]`},{internalType:`uint256[2]`,name:`c`,type:`uint256[2]`},{components:[{internalType:`uint16`,name:`tokenNumber`,type:`uint16`},{internalType:`uint16`,name:`nullifierAmount`,type:`uint16`},{internalType:`uint16`,name:`outputAmount`,type:`uint16`}],internalType:`struct Dimensions`,name:`dimensions`,type:`tuple`},{components:[{internalType:`uint256`,name:`rootHashHinkal`,type:`uint256`},{internalType:`address[]`,name:`erc20TokenAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`tokenIds`,type:`uint256[]`},{internalType:`int256[]`,name:`amountChanges`,type:`int256[]`},{internalType:`bool[]`,name:`onChainCreation`,type:`bool[]`},{internalType:`int256[]`,name:`slippageValues`,type:`int256[]`},{internalType:`uint256[][]`,name:`inputNullifiers`,type:`uint256[][]`},{internalType:`uint256[][]`,name:`outCommitments`,type:`uint256[][]`},{internalType:`bytes[][]`,name:`encryptedOutputs`,type:`bytes[][]`},{components:[{internalType:`address`,name:`feeToken`,type:`address`},{internalType:`uint256`,name:`flatFee`,type:`uint256`},{internalType:`uint256`,name:`variableRate`,type:`uint256`}],internalType:`struct FeeStructure`,name:`feeStructure`,type:`tuple`},{internalType:`uint256`,name:`timeStamp`,type:`uint256`},{components:[{internalType:`uint256`,name:`extraRandomization`,type:`uint256`},{internalType:`uint256`,name:`stealthAddress`,type:`uint256`},{internalType:`uint256`,name:`H0`,type:`uint256`},{internalType:`uint256`,name:`H1`,type:`uint256`}],internalType:`struct StealthAddressStructure`,name:`stealthAddressStructure`,type:`tuple`},{internalType:`uint256`,name:`rootHashAccessToken`,type:`uint256`},{internalType:`uint256`,name:`calldataHash`,type:`uint256`},{internalType:`uint16`,name:`publicSignalCount`,type:`uint16`},{internalType:`address`,name:`relay`,type:`address`},{internalType:`address`,name:`externalAddress`,type:`address`},{internalType:`uint256`,name:`externalActionId`,type:`uint256`},{internalType:`bytes`,name:`externalActionMetadata`,type:`bytes`},{components:[{internalType:`uint256`,name:`hinkalLogicAction`,type:`uint256`},{internalType:`uint256`,name:`inHinkalAddress`,type:`uint256`},{internalType:`int256[]`,name:`executeApprovalChanges`,type:`int256[]`},{internalType:`bool`,name:`doPreTxApproval`,type:`bool`},{components:[{internalType:`int256[]`,name:`approvalChanges`,type:`int256[]`},{internalType:`address[]`,name:`externalApprovalAddresses`,type:`address[]`},{internalType:`uint256[]`,name:`conversionInHinkalAddress`,type:`uint256[]`}],internalType:`struct UseApprovalUTXOData[]`,name:`useApprovalUtxoData`,type:`tuple[]`}],internalType:`struct HinkalLogicArgs`,name:`hinkalLogicArgs`,type:`tuple`},{components:[{internalType:`address`,name:`preHookContract`,type:`address`},{internalType:`address`,name:`hookContract`,type:`address`},{internalType:`bytes`,name:`preHookMetadata`,type:`bytes`},{internalType:`bytes`,name:`postHookMetadata`,type:`bytes`}],internalType:`struct HookData`,name:`hookData`,type:`tuple`},{components:[{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`},{internalType:`uint256`,name:`accessKey`,type:`uint256`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`address`,name:`ethereumAddress`,type:`address`}],internalType:`struct SignatureData`,name:`signatureData`,type:`tuple`},{internalType:`address`,name:`originalSender`,type:`address`}],internalType:`struct CircomData`,name:`circomData`,type:`tuple`}],name:`transact`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}]};const Q={polygon:137,arbMainnet:42161,ethMainnet:1,avalanche:43114,bnbMainnet:56,optimism:10,base:8453,localhost:31337,arcTestnet:5042002,solanaMainnet:501,solanaLocalnet:102,tronNile:3448148188,tronLocalnet:103,tronMainnet:728126428},hc=Q.ethMainnet,$=d?`X4IiEZsSzGOrJq8tzq7Y3`:`XzUgeU8YiIIzkD7j2GWnTsFUck7wGgK9`,gc={[Q.ethMainnet]:{name:`Ethereum`,chainId:Q.ethMainnet,rpcUrl:`https://rpc.ankr.com/eth`,fetchRpcUrl:`https://eth-mainnet.g.alchemy.com/v2/${$}`,wsRpcUrl:`wss://eth-mainnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:ac,quoterV2Address:`0x61fFE014bA17989E743c5F6cB21bF9697530B21e`,uniswapV3FactoryAddress:`0x1F98431c8aD98523631AE4a59f267346ea31F984`,priority:1,maxPageSize:9e5},[Q.arbMainnet]:{name:`Arbitrum`,chainId:Q.arbMainnet,rpcUrl:`https://endpoints.omniatech.io/v1/arbitrum/one/public`,fetchRpcUrl:`https://arb-mainnet.g.alchemy.com/v2/${$}`,wsRpcUrl:`wss://arb-mainnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:ic,quoterV2Address:`0x61fFE014bA17989E743c5F6cB21bF9697530B21e`,uniswapV3FactoryAddress:`0x1F98431c8aD98523631AE4a59f267346ea31F984`,priority:2,maxPageSize:5e5},[Q.optimism]:{name:`Optimism`,chainId:Q.optimism,rpcUrl:`https://optimism-mainnet.infura.io/v3/c26b99456bb6464bb498926ff5162903`,fetchRpcUrl:`https://opt-mainnet.g.alchemy.com/v2/${$}`,wsRpcUrl:`wss://opt-mainnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:oc,quoterV2Address:`0x61fFE014bA17989E743c5F6cB21bF9697530B21e`,uniswapV3FactoryAddress:`0x1F98431c8aD98523631AE4a59f267346ea31F984`,priority:3,maxPageSize:9e5},[Q.polygon]:{name:`Polygon`,chainId:Q.polygon,rpcUrl:`https://polygon-rpc.com`,fetchRpcUrl:`https://polygon-mainnet.g.alchemy.com/v2/${$}`,wsRpcUrl:`wss://polygon-mainnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:sc,quoterV2Address:`0x61fFE014bA17989E743c5F6cB21bF9697530B21e`,uniswapV3FactoryAddress:`0x1F98431c8aD98523631AE4a59f267346ea31F984`,priority:4,maxPageSize:9e5},[Q.avalanche]:{name:`Avalanche`,chainId:Q.avalanche,rpcUrl:`https://api.avax.network/ext/bc/C/rpc`,fetchRpcUrl:`https://avax-mainnet.g.alchemy.com/v2/${$}`,wsRpcUrl:`wss://avax-mainnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:cc,quoterV2Address:`0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F`,uniswapV3FactoryAddress:`0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD`,priority:5},[Q.bnbMainnet]:{name:`BNB Chain`,chainId:Q.bnbMainnet,rpcUrl:`https://bsc-dataseed.binance.org`,fetchRpcUrl:`https://bnb-mainnet.g.alchemy.com/v2/${$}`,wsRpcUrl:`wss://bnb-mainnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:rc,quoterV2Address:`0x78D78E420Da98ad378D7799bE8f4AF69033EB077`,uniswapV3FactoryAddress:`0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7`,priority:6},[Q.base]:{name:`Base`,chainId:Q.base,rpcUrl:`https://mainnet.base.org/`,fetchRpcUrl:`https://base-mainnet.g.alchemy.com/v2/${$}`,wsRpcUrl:`wss://base-mainnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:lc,quoterV2Address:`0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a`,uniswapV3FactoryAddress:`0x33128a8fC17869897dcE68Ed026d694621f6FDfD`,priority:7,maxPageSize:5e5},[Q.arcTestnet]:{name:`Arc Testnet`,chainId:Q.arcTestnet,rpcUrl:`https://arc-testnet.g.alchemy.com/v2/${$}`,fetchRpcUrl:`https://arc-testnet.g.alchemy.com/v2/${$}`,wsRpcUrl:`wss://arc-testnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:dc,priority:8,maxPageSize:9999},[Q.solanaMainnet]:{name:`Solana`,chainId:Q.solanaMainnet,rpcUrl:`https://api.mainnet-beta.solana.com`,fetchRpcUrl:`https://mainnet.helius-rpc.com/?api-key=54ad9ec9-dad6-41de-b961-e3e8ea7a7188`,supported:!0,contractData:fc,priority:8},[Q.solanaLocalnet]:{name:`Solana Localnet`,chainId:Q.solanaLocalnet,rpcUrl:`http://127.0.0.1:8899`,fetchRpcUrl:`http://127.0.0.1:8899`,supported:!0,contractData:fc,priority:9},[Q.tronNile]:{name:`Tron Nile`,chainId:Q.tronNile,rpcUrl:`https://tron-testnet.g.alchemy.com/v2/${$}`,fetchRpcUrl:`https://tron-testnet.g.alchemy.com/v2/${$}`,supported:!0,contractData:pc,priority:9,maxPageSize:5e5},[Q.tronMainnet]:{name:`Tron`,chainId:Q.tronMainnet,rpcUrl:`https://tron-mainnet.g.alchemy.com/v2/${$}`,fetchRpcUrl:`https://tron-mainnet.g.alchemy.com/v2/${$}`,supported:!0,priority:10,contractData:mc,maxPageSize:5e5}},_c={name:`Localhost`,chainId:Q.localhost,rpcUrl:`http://127.0.0.1:8545`,fetchRpcUrl:`http://127.0.0.1:8545`,supported:!0,contractData:uc,quoterV2Address:gc[hc].quoterV2Address,uniswapV3FactoryAddress:gc[hc].uniswapV3FactoryAddress,priority:7};l&&(gc[Q.localhost]=_c);let vc=function(e){return e.Mainnet=`Mainnet`,e.Testnet=`Testnet`,e.Local=`Local`,e}({});vc.Mainnet,Q.polygon,Q.arbMainnet,Q.ethMainnet,Q.bnbMainnet,Q.optimism,Q.avalanche,Q.base,Q.tronMainnet,vc.Testnet,d?(Q.arcTestnet,Q.tronNile):Q.arcTestnet,vc.Local,Q.localhost,d?Q.tronNile:Q.tronMainnet,Q.ethMainnet,Q.optimism,Q.base,Q.polygon,Q.arbMainnet,Q.arcTestnet,Q.solanaMainnet,Q.ethMainnet,Q.optimism,Q.base,Q.polygon,Q.arbMainnet,Q.arcTestnet,Q.solanaMainnet,Q.ethMainnet,Q.optimism,Q.base,Q.polygon,Q.arbMainnet;var yc=t(((e,t)=>{t.exports={}}));const bc=new r,xc=async e=>new Uint8Array(await nc.get(e,{responseType:`arraybuffer`})),Sc=async e=>{try{let{input:t,wasmFilePath:n,zKeyFilePath:r,chainId:i}=e.payload.data,{hostLocation:{origin:a},constants:{isDevelopment:c,chains:{chainIds:l}}}=e.metadata,u=n,d=r,f,p,m=u.startsWith(`https://`);if(o&&!m){s?(u=`libs/hardhat/test/circuits/${n}`,d=`libs/hardhat/test/circuits/${r}`):!s&&c&&(i===Q.solanaLocalnet?(u=`tests/circuits/${n}`,d=`tests/circuits/${r}`):(u=`test/circuits/${n}`,d=`test/circuits/${r}`));let e=yc();u=e.resolve(u),d=e.resolve(d)}o&&m?(f=await xc(u),p=await xc(d)):(i===l.localhost||i===Q.solanaLocalnet||i===l.tronLocalnet)&&!o&&(u=`${a}/${n}`,d=`${a}/${r}`);let{proof:h,publicSignals:g}=await Ta.fullProve(t,f??u,p??d,void 0,void 0,o&&i===l.tronLocalnet?{singleThread:!0}:void 0),_=await Ta.exportSolidityCallData(h,g),v=JSON.parse(`[${_}]`);bc.postMessageToMainThread({zkCallData:v,proof:h,publicSignals:g})}catch(e){console.error(e),bc.postErrorToMainThread(e)}};bc.attachWorkerSideOnMessage(Sc);export{bc as default,Sc as onWorkerMessage};