@imtbl/sdk 2.24.1 → 2.24.3-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cdn.js +3 -3
- package/package.json +12 -12
package/dist/index.cdn.js
CHANGED
|
@@ -6,7 +6,7 @@ var immutable=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Mo
|
|
|
6
6
|
* @license BSD-3-Clause
|
|
7
7
|
* @version 11.2.5
|
|
8
8
|
*/
|
|
9
|
-
this.first=null,this.items=Object.create(null),this.last=null,this.max=e,this.resetTtl=n,this.size=0,this.ttl=t}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(e){if(this.has(e)){let t=this.items[e];delete this.items[e],this.size--,t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),this.last===t&&(this.last=t.prev)}return this}entries(e=this.keys()){return e.map(e=>[e,this.get(e)])}evict(e=!1){if(e||this.size>0){let e=this.first;delete this.items[e.key],--this.size===0?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(e){let t;return this.has(e)&&(t=this.items[e].expiry),t}get(e){let t;if(this.has(e)){let n=this.items[e];this.ttl>0&&n.expiry<=Date.now()?this.delete(e):(t=n.value,this.set(e,t,!0))}return t}has(e){return e in this.items}keys(){let e=[],t=this.first;for(;t!==null;)e.push(t.key),t=t.next;return e}set(e,t,n=!1,r=this.resetTtl){let i;if(n||this.has(e)){if(i=this.items[e],i.value=t,n===!1&&r&&(i.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==i){let e=this.last,t=i.next,n=i.prev;this.first===i&&(this.first=i.next),i.next=null,i.prev=this.last,e.next=i,n!==null&&(n.next=t),t!==null&&(t.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),i=this.items[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t},++this.size===1?this.first=i:this.last.next=i;return this.last=i,this}values(e=this.keys()){return e.map(e=>this.get(e))}};function m(e=1e3,t=0,n=!1){if(isNaN(e)||e<0)throw TypeError(`Invalid max value`);if(isNaN(t)||t<0)throw TypeError(`Invalid ttl value`);if(typeof n!=`boolean`)throw TypeError(`Invalid resetTtl value`);return new p(e,t,n)}let h={max:1e3},g=(e,t={})=>{let{cache:n,cacheKeyResolver:r=_,onHit:i,lruOptions:a={}}=t,o={...h,...a},s=n||m(o.max,o.ttl);function c(...t){let n=r(...t),a=s.get(n);if(s.has(n))return i&&i(n,a,s),a;let o=e.apply(this,t);return s.set(n,o),o}return c._cache=s,c},_=(...e)=>e.length===0?`no-args`:e.map(e=>e===void 0?`undefined`:e===null?`null`:Array.isArray(e)?`[${_(...e)}]`:typeof e==`object`?`{${_(...v(e))}}`:JSON.stringify(e)).join(`,`),v=e=>Object.entries(e).sort((e,t)=>e[0]<t[0]?-1:1);var y=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.clearGlobalNamespace=e.getGlobalisedValue=void 0;let t={},n=()=>typeof window<`u`?window:typeof globalThis<`u`?globalThis:t,r=(e,t)=>{if(typeof e!=`string`)throw`Invalid namespace key`;if(typeof t!=`string`)throw`Invalid item key`},i=e=>`globalise__singleton__${e}`,a=e=>{let t=n(),r=i(e);return t[r]||(t[r]={}),t[r]},o=(e,t)=>a(e)[t]||void 0,s=(e,t,n)=>{let r=a(e);r[t]=n};e.getGlobalisedValue=(e,t,n)=>{r(e,t);let i=o(e,t);return i===void 0?(s(e,t,n),n):i},e.clearGlobalNamespace=e=>{let t=n(),r=i(e);t[r]!==void 0&&delete t[r]}}))(),b=Object.defineProperty,x=(e,t)=>{let n={};for(var r in e)b(n,r,{get:e[r],enumerable:!0});return t||b(n,Symbol.toStringTag,{value:`Module`}),n};let S=()=>typeof window>`u`,C=()=>!S();var w=x({deleteItem:()=>j,getItem:()=>k,setItem:()=>A});let T=()=>C()&&window.localStorage,E=e=>{if(e!==null)try{return JSON.parse(e)}catch{return e}},D=e=>typeof e==`string`?e:JSON.stringify(e),O=e=>`__IMX-${e}`;function k(e){if(T())return E(window.localStorage.getItem(O(e)))}let A=(e,t)=>T()?(window.localStorage.setItem(O(e),D(t)),!0):!1,j=e=>T()?(window.localStorage.removeItem(O(e)),!0):!1,M=0,N=e=>{let t=parseInt(e,10)*1e3,n=new Date(t),r=new Date;return M=n.getTime()-r.getTime(),M},P=()=>{let e=new Date().getTime()+M;return new Date(e).toISOString()},ee=function(e){return e.RUNTIME_ID=`rid`,e.PASSPORT_CLIENT_ID=`passportClientId`,e.ENVIRONMENT=`env`,e.PUBLISHABLE_API_KEY=`pak`,e.IDENTITY=`uid`,e.DOMAIN=`domain`,e.SDK_VERSION=`sdkVersion`,e}({}),te=e=>{if(typeof Buffer<`u`)return Buffer.from(e,`utf-8`).toString(`base64`);if(typeof btoa==`function`)return btoa(unescape(encodeURIComponent(e)));throw Error(`Base64 encoding not supported in this environment`)};async function ne(e,t){let n=JSON.stringify(t),r={payload:te(n)},i=await fetch(`https://api.immutable.com${e}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`Request failed (${i.status}): ${e||i.statusText}`)}return i.json()}let F,re;F=k(`metrics-events`)||[],re=k(`metrics-runtime`)||{};let ie=(e,t)=>{re={...re,[e]:t},A(`metrics-runtime`,re)},ae=e=>{if(re[e]!==void 0)return re[e]},oe=()=>re,se=()=>F,ce=e=>{F.push(e),A(`metrics-events`,F)},le=e=>{F=F.slice(e),A(`metrics-events`,F)},ue=e=>{let t=[];return Object.entries(e).forEach(([e,n])=>{(typeof e==`string`||typeof n==`string`||typeof n==`number`||typeof n==`boolean`)&&t.push([e,n.toString()])}),t},de=`2.24.1`,fe=()=>S()?``:window.location.ancestorOrigins&&window.location.ancestorOrigins.length>0?new URL(window.location.ancestorOrigins[0]).hostname:document.referrer?new URL(window.document.referrer).hostname:``,pe=()=>{if(S())return``;let e;try{window.self!==window.top&&(e=fe())}catch{}return e||=window.location.hostname,e},me=()=>{if(ie(`sdkVersion`,de),S())return{browser:`nodejs`,sdkVersion:de};let e=pe();return e&&ie(`domain`,e),{sdkVersion:de,browser:window.navigator.userAgent,domain:e,tz:Intl.DateTimeFormat().resolvedOptions().timeZone,screen:`${window.screen.width}x${window.screen.height}`}},he=!1,ge=()=>he,_e=async()=>{he=!0;try{let{runtimeId:e,sTime:t}=await ne(`/v1/sdk/initialise`,{version:1,data:{runtimeDetails:ue(me()),runtimeId:ae(`rid`),uId:ae(`uid`)}});ie(`rid`,e),N(t)}catch{he=!1}};function ve(e,t){return(...n)=>{try{let r=e(...n);return r instanceof Promise?r.catch(()=>t):r}catch{return t}}}function ye(){return C()||typeof process>`u`?!1:process.env.JEST_WORKER_ID!==void 0}let be=ve(ye,!1),xe=`imtbl__metrics`,Se=(e,t)=>(0,y.getGlobalisedValue)(xe,e,t),Ce=ve(((e,t)=>{let n=g(t,{lruOptions:{ttl:5e3,max:1e3}});return(0,y.getGlobalisedValue)(xe,e,n)})(`track`,(e,t,n)=>{ce({event:`${e}.${t}`,time:P(),...n&&{properties:ue(n)}})})),we=ve(async()=>{if(ge()===!1){await _e();return}let e=se();if(e.length===0)return;let t=e.length;await ne(`/v1/sdk/metrics`,{version:1,data:{events:e,details:oe()}})instanceof Error||le(t)}),Te=async()=>{await we(),setTimeout(Te,5e3)},Ee=!1;be()||ve(Se(`startFlushing`,()=>{Ee||(Ee=!0,Te())}))();let De=(e,t,n,r)=>Ce(e,t,{...r||{},duration:Math.round(n)}),Oe=()=>{let e=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);return`${e()}${e()}-${e()}-${e()}-${e()}-${e()}${e()}${e()}`},ke=(...e)=>{if(!e.some(e=>!!e))return{};let t={};return e.forEach(e=>{e&&(t={...t,...e})}),t},Ae=e=>e.replace(/[^a-zA-Z0-9\s\-_]/g,``),je=(e,t)=>`${e}_${Ae(t)}`,Me=ve((e,t,n=!0,r)=>{let i=Oe(),a=Date.now(),o=0,s=0,c={},l=(...e)=>ke(c,...e,{flowId:i,flowName:t});c=l(r);let u=e=>{e&&(c=l(e))},d=(n,r)=>{let i=je(t,n),a=0,c=performance.now();o>0&&(a=c-s);let u=l(r,{flowEventName:n,flowStep:o});De(e,i,a,u),o++,s=c};return n&&d(`Start`),{details:{moduleName:e,flowName:t,flowId:i,flowStartTime:a},addEvent:ve(d),addFlowProperties:ve(u)}}),Ne=ve((e,t,n,r)=>{let{message:i}=n,a=n.stack||``,{cause:o}=n;o instanceof Error&&(a=`${a} \nCause: ${o.message}\n ${o.stack}`),Ce(e,`trackError_${t}`,{...r||{},errorMessage:i,errorStack:a,isTrackError:!0})}),Pe=e=>{if(e.passportId)return`passport:${e.passportId.toLowerCase()}`;if(e.ethAddress)return`ethAddress:${e.ethAddress.toLowerCase()}`;throw Error(`invalid_identity`)},Fe=ve(e=>{let t=Pe(e);t&&(ie(`uid`,t),Ce(`metrics`,`identify`,e.traits))}),Ie=ve(Se(`setEnvironment`,e=>{ie(`env`,e)})),Le=ve(Se(`setPassportClientId`,e=>{ie(`passportClientId`,e)})),Re=ve(Se(`setPublishableApiKey`,e=>{ie(`pak`,e)})),ze=ve(Se(`getDetail`,ae)),Be={localStorage:w},Ve=function(e){return e.PRODUCTION=`production`,e.SANDBOX=`sandbox`,e}({}),He=function(e){return e.API_KEY=`x-immutable-api-key`,e.PUBLISHABLE_KEY=`x-immutable-publishable-key`,e.RATE_LIMITING_KEY=`x-api-key`,e}({});var Ue=class{environment;rateLimitingKey;apiKey;publishableKey;constructor(e){this.environment=e.environment,this.publishableKey=e.publishableKey,this.apiKey=e.apiKey,this.rateLimitingKey=e.rateLimitingKey,Ie(e.environment),Ce(`config`,`created_imtbl_config`)}};let We=(e,t)=>{if(!e||!e.apiKey&&!e.publishableKey&&!e.rateLimitingKey)return t;let n={};return e.apiKey&&(n[`x-immutable-api-key`]=e.apiKey),e.publishableKey&&(n[`x-immutable-publishable-key`]=e.publishableKey,Re(e.publishableKey)),e.rateLimitingKey&&(n[`x-api-key`]=e.rateLimitingKey),t&&t.headers?{...t,headers:{...n,...t.headers}}:{...t,headers:n}};var Ge=l({Environment:()=>Ve,ImmutableConfiguration:()=>Ue,KeyHeaders:()=>He,addKeysToHeadersOverride:()=>We});function Ke(e,t){return function(){return e.apply(t,arguments)}}let{toString:qe}=Object.prototype,{getPrototypeOf:Je}=Object,{iterator:Ye,toStringTag:Xe}=Symbol,Ze=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Qe=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),Ze(n,t))return!0;n=Je(n)}return!1},$e=(e,t)=>e!=null&&Qe(e,t)?e[t]:void 0,et=(e=>t=>{let n=qe.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),tt=e=>(e=e.toLowerCase(),t=>et(t)===e),nt=e=>t=>typeof t===e,{isArray:rt}=Array,it=nt(`undefined`);function at(e){return e!==null&&!it(e)&&e.constructor!==null&&!it(e.constructor)&<(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}let ot=tt(`ArrayBuffer`);function st(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&ot(e.buffer),t}let ct=nt(`string`),lt=nt(`function`),ut=nt(`number`),dt=e=>typeof e==`object`&&!!e,ft=e=>e===!0||e===!1,pt=e=>{if(!dt(e))return!1;let t=Je(e);return(t===null||t===Object.prototype||Je(t)===null)&&!Qe(e,Xe)&&!Qe(e,Ye)},mt=e=>{if(!dt(e)||at(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},ht=tt(`Date`),gt=tt(`File`),_t=e=>!!(e&&e.uri!==void 0),vt=e=>e&&e.getParts!==void 0,yt=tt(`Blob`),bt=tt(`FileList`),xt=e=>dt(e)&<(e.pipe);function St(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}let Ct=St(),wt=Ct.FormData===void 0?void 0:Ct.FormData,Tt=e=>{if(!e)return!1;if(wt&&e instanceof wt)return!0;let t=Je(e);if(!t||t===Object.prototype||!lt(e.append))return!1;let n=et(e);return n===`formdata`||n===`object`&<(e.toString)&&e.toString()===`[object FormData]`},Et=tt(`URLSearchParams`),[Dt,Ot,kt,At]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(tt),jt=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function Mt(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),rt(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{if(at(e))return;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 Nt(e,t){if(at(e))return null;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}let Pt=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,Ft=e=>!it(e)&&e!==Pt;function It(...e){let{caseless:t,skipUndefined:n}=Ft(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&Nt(r,i)||i,o=Ze(r,a)?r[a]:void 0;pt(o)&&pt(e)?r[a]=It(o,e):pt(e)?r[a]=It({},e):rt(e)?r[a]=e.slice():(!n||!it(e))&&(r[a]=e)};for(let t=0,n=e.length;t<n;t++){let n=e[t];if(!n||at(n)||(Mt(n,i),typeof n!=`object`||rt(n)))continue;let r=Object.getOwnPropertySymbols(n);for(let e=0;e<r.length;e++){let t=r[e];Jt.call(n,t)&&i(n[t],t)}}return r}let Lt=(e,t,n,{allOwnKeys:r}={})=>(Mt(t,(t,r)=>{n&<(t)?Object.defineProperty(e,r,{__proto__:null,value:Ke(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),Rt=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),zt=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},Bt=(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&&Je(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Vt=(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},Ht=e=>{if(!e)return null;if(rt(e))return e;let t=e.length;if(!ut(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},Ut=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&Je(Uint8Array)),Wt=(e,t)=>{let n=(e&&e[Ye]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},Gt=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Kt=tt(`HTMLFormElement`),qt=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:Jt}=Object.prototype,Yt=tt(`RegExp`),Xt=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};Mt(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Zt=e=>{Xt(e,(t,n)=>{if(lt(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(lt(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Qt=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return rt(e)?r(e):r(String(e).split(t)),n},$t=()=>{},en=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function tn(e){return!!(e&<(e.append)&&e[Xe]===`FormData`&&e[Ye])}let nn=e=>{let t=new WeakSet,n=e=>{if(dt(e)){if(t.has(e))return;if(at(e))return e;if(!(`toJSON`in e)){t.add(e);let r=rt(e)?[]:{};return Mt(e,(e,t)=>{let i=n(e);!it(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},rn=tt(`AsyncFunction`),an=e=>e&&(dt(e)||lt(e))&<(e.then)&<(e.catch),on=((e,t)=>e?setImmediate:t?((e,t)=>(Pt.addEventListener(`message`,({source:n,data:r})=>{n===Pt&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),Pt.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,lt(Pt.postMessage)),sn=typeof queueMicrotask<`u`?queueMicrotask.bind(Pt):typeof process<`u`&&process.nextTick||on,cn=e=>e!=null&<(e[Ye]);var I={isArray:rt,isArrayBuffer:ot,isBuffer:at,isFormData:Tt,isArrayBufferView:st,isString:ct,isNumber:ut,isBoolean:ft,isObject:dt,isPlainObject:pt,isEmptyObject:mt,isReadableStream:Dt,isRequest:Ot,isResponse:kt,isHeaders:At,isUndefined:it,isDate:ht,isFile:gt,isReactNativeBlob:_t,isReactNative:vt,isBlob:yt,isRegExp:Yt,isFunction:lt,isStream:xt,isURLSearchParams:Et,isTypedArray:Ut,isFileList:bt,forEach:Mt,merge:It,extend:Lt,trim:jt,stripBOM:Rt,inherits:zt,toFlatObject:Bt,kindOf:et,kindOfTest:tt,endsWith:Vt,toArray:Ht,forEachEntry:Wt,matchAll:Gt,isHTMLForm:Kt,hasOwnProperty:Ze,hasOwnProp:Ze,hasOwnInPrototypeChain:Qe,getSafeProp:$e,reduceDescriptors:Xt,freezeMethods:Zt,toObjectSet:Qt,toCamelCase:qt,noop:$t,toFiniteNumber:en,findKey:Nt,global:Pt,isContextDefined:Ft,isSpecCompliantForm:tn,toJSONObject:nn,isAsyncFn:rn,isThenable:an,setImmediate:on,asap:sn,isIterable:cn,isSafeIterable:e=>e!=null&&Qe(e,Ye)&&cn(e)};let ln=I.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 un=e=>{let t={},n,r,i;return e&&e.split(`
|
|
9
|
+
this.first=null,this.items=Object.create(null),this.last=null,this.max=e,this.resetTtl=n,this.size=0,this.ttl=t}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(e){if(this.has(e)){let t=this.items[e];delete this.items[e],this.size--,t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),this.last===t&&(this.last=t.prev)}return this}entries(e=this.keys()){return e.map(e=>[e,this.get(e)])}evict(e=!1){if(e||this.size>0){let e=this.first;delete this.items[e.key],--this.size===0?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(e){let t;return this.has(e)&&(t=this.items[e].expiry),t}get(e){let t;if(this.has(e)){let n=this.items[e];this.ttl>0&&n.expiry<=Date.now()?this.delete(e):(t=n.value,this.set(e,t,!0))}return t}has(e){return e in this.items}keys(){let e=[],t=this.first;for(;t!==null;)e.push(t.key),t=t.next;return e}set(e,t,n=!1,r=this.resetTtl){let i;if(n||this.has(e)){if(i=this.items[e],i.value=t,n===!1&&r&&(i.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==i){let e=this.last,t=i.next,n=i.prev;this.first===i&&(this.first=i.next),i.next=null,i.prev=this.last,e.next=i,n!==null&&(n.next=t),t!==null&&(t.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),i=this.items[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t},++this.size===1?this.first=i:this.last.next=i;return this.last=i,this}values(e=this.keys()){return e.map(e=>this.get(e))}};function m(e=1e3,t=0,n=!1){if(isNaN(e)||e<0)throw TypeError(`Invalid max value`);if(isNaN(t)||t<0)throw TypeError(`Invalid ttl value`);if(typeof n!=`boolean`)throw TypeError(`Invalid resetTtl value`);return new p(e,t,n)}let h={max:1e3},g=(e,t={})=>{let{cache:n,cacheKeyResolver:r=_,onHit:i,lruOptions:a={}}=t,o={...h,...a},s=n||m(o.max,o.ttl);function c(...t){let n=r(...t),a=s.get(n);if(s.has(n))return i&&i(n,a,s),a;let o=e.apply(this,t);return s.set(n,o),o}return c._cache=s,c},_=(...e)=>e.length===0?`no-args`:e.map(e=>e===void 0?`undefined`:e===null?`null`:Array.isArray(e)?`[${_(...e)}]`:typeof e==`object`?`{${_(...v(e))}}`:JSON.stringify(e)).join(`,`),v=e=>Object.entries(e).sort((e,t)=>e[0]<t[0]?-1:1);var y=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.clearGlobalNamespace=e.getGlobalisedValue=void 0;let t={},n=()=>typeof window<`u`?window:typeof globalThis<`u`?globalThis:t,r=(e,t)=>{if(typeof e!=`string`)throw`Invalid namespace key`;if(typeof t!=`string`)throw`Invalid item key`},i=e=>`globalise__singleton__${e}`,a=e=>{let t=n(),r=i(e);return t[r]||(t[r]={}),t[r]},o=(e,t)=>a(e)[t]||void 0,s=(e,t,n)=>{let r=a(e);r[t]=n};e.getGlobalisedValue=(e,t,n)=>{r(e,t);let i=o(e,t);return i===void 0?(s(e,t,n),n):i},e.clearGlobalNamespace=e=>{let t=n(),r=i(e);t[r]!==void 0&&delete t[r]}}))(),b=Object.defineProperty,x=(e,t)=>{let n={};for(var r in e)b(n,r,{get:e[r],enumerable:!0});return t||b(n,Symbol.toStringTag,{value:`Module`}),n};let S=()=>typeof window>`u`,C=()=>!S();var w=x({deleteItem:()=>j,getItem:()=>k,setItem:()=>A});let T=()=>C()&&window.localStorage,E=e=>{if(e!==null)try{return JSON.parse(e)}catch{return e}},D=e=>typeof e==`string`?e:JSON.stringify(e),O=e=>`__IMX-${e}`;function k(e){if(T())return E(window.localStorage.getItem(O(e)))}let A=(e,t)=>T()?(window.localStorage.setItem(O(e),D(t)),!0):!1,j=e=>T()?(window.localStorage.removeItem(O(e)),!0):!1,M=0,N=e=>{let t=parseInt(e,10)*1e3,n=new Date(t),r=new Date;return M=n.getTime()-r.getTime(),M},P=()=>{let e=new Date().getTime()+M;return new Date(e).toISOString()},ee=function(e){return e.RUNTIME_ID=`rid`,e.PASSPORT_CLIENT_ID=`passportClientId`,e.ENVIRONMENT=`env`,e.PUBLISHABLE_API_KEY=`pak`,e.IDENTITY=`uid`,e.DOMAIN=`domain`,e.SDK_VERSION=`sdkVersion`,e}({}),te=e=>{if(typeof Buffer<`u`)return Buffer.from(e,`utf-8`).toString(`base64`);if(typeof btoa==`function`)return btoa(unescape(encodeURIComponent(e)));throw Error(`Base64 encoding not supported in this environment`)};async function ne(e,t){let n=JSON.stringify(t),r={payload:te(n)},i=await fetch(`https://api.immutable.com${e}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`Request failed (${i.status}): ${e||i.statusText}`)}return i.json()}let F,re;F=k(`metrics-events`)||[],re=k(`metrics-runtime`)||{};let ie=(e,t)=>{re={...re,[e]:t},A(`metrics-runtime`,re)},ae=e=>{if(re[e]!==void 0)return re[e]},oe=()=>re,se=()=>F,ce=e=>{F.push(e),A(`metrics-events`,F)},le=e=>{F=F.slice(e),A(`metrics-events`,F)},ue=e=>{let t=[];return Object.entries(e).forEach(([e,n])=>{(typeof e==`string`||typeof n==`string`||typeof n==`number`||typeof n==`boolean`)&&t.push([e,n.toString()])}),t},de=`2.24.3-0`,fe=()=>S()?``:window.location.ancestorOrigins&&window.location.ancestorOrigins.length>0?new URL(window.location.ancestorOrigins[0]).hostname:document.referrer?new URL(window.document.referrer).hostname:``,pe=()=>{if(S())return``;let e;try{window.self!==window.top&&(e=fe())}catch{}return e||=window.location.hostname,e},me=()=>{if(ie(`sdkVersion`,de),S())return{browser:`nodejs`,sdkVersion:de};let e=pe();return e&&ie(`domain`,e),{sdkVersion:de,browser:window.navigator.userAgent,domain:e,tz:Intl.DateTimeFormat().resolvedOptions().timeZone,screen:`${window.screen.width}x${window.screen.height}`}},he=!1,ge=()=>he,_e=async()=>{he=!0;try{let{runtimeId:e,sTime:t}=await ne(`/v1/sdk/initialise`,{version:1,data:{runtimeDetails:ue(me()),runtimeId:ae(`rid`),uId:ae(`uid`)}});ie(`rid`,e),N(t)}catch{he=!1}};function ve(e,t){return(...n)=>{try{let r=e(...n);return r instanceof Promise?r.catch(()=>t):r}catch{return t}}}function ye(){return C()||typeof process>`u`?!1:process.env.JEST_WORKER_ID!==void 0}let be=ve(ye,!1),xe=`imtbl__metrics`,Se=(e,t)=>(0,y.getGlobalisedValue)(xe,e,t),Ce=ve(((e,t)=>{let n=g(t,{lruOptions:{ttl:5e3,max:1e3}});return(0,y.getGlobalisedValue)(xe,e,n)})(`track`,(e,t,n)=>{ce({event:`${e}.${t}`,time:P(),...n&&{properties:ue(n)}})})),we=ve(async()=>{if(ge()===!1){await _e();return}let e=se();if(e.length===0)return;let t=e.length;await ne(`/v1/sdk/metrics`,{version:1,data:{events:e,details:oe()}})instanceof Error||le(t)}),Te=async()=>{await we(),setTimeout(Te,5e3)},Ee=!1;be()||ve(Se(`startFlushing`,()=>{Ee||(Ee=!0,Te())}))();let De=(e,t,n,r)=>Ce(e,t,{...r||{},duration:Math.round(n)}),Oe=()=>{let e=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);return`${e()}${e()}-${e()}-${e()}-${e()}-${e()}${e()}${e()}`},ke=(...e)=>{if(!e.some(e=>!!e))return{};let t={};return e.forEach(e=>{e&&(t={...t,...e})}),t},Ae=e=>e.replace(/[^a-zA-Z0-9\s\-_]/g,``),je=(e,t)=>`${e}_${Ae(t)}`,Me=ve((e,t,n=!0,r)=>{let i=Oe(),a=Date.now(),o=0,s=0,c={},l=(...e)=>ke(c,...e,{flowId:i,flowName:t});c=l(r);let u=e=>{e&&(c=l(e))},d=(n,r)=>{let i=je(t,n),a=0,c=performance.now();o>0&&(a=c-s);let u=l(r,{flowEventName:n,flowStep:o});De(e,i,a,u),o++,s=c};return n&&d(`Start`),{details:{moduleName:e,flowName:t,flowId:i,flowStartTime:a},addEvent:ve(d),addFlowProperties:ve(u)}}),Ne=ve((e,t,n,r)=>{let{message:i}=n,a=n.stack||``,{cause:o}=n;o instanceof Error&&(a=`${a} \nCause: ${o.message}\n ${o.stack}`),Ce(e,`trackError_${t}`,{...r||{},errorMessage:i,errorStack:a,isTrackError:!0})}),Pe=e=>{if(e.passportId)return`passport:${e.passportId.toLowerCase()}`;if(e.ethAddress)return`ethAddress:${e.ethAddress.toLowerCase()}`;throw Error(`invalid_identity`)},Fe=ve(e=>{let t=Pe(e);t&&(ie(`uid`,t),Ce(`metrics`,`identify`,e.traits))}),Ie=ve(Se(`setEnvironment`,e=>{ie(`env`,e)})),Le=ve(Se(`setPassportClientId`,e=>{ie(`passportClientId`,e)})),Re=ve(Se(`setPublishableApiKey`,e=>{ie(`pak`,e)})),ze=ve(Se(`getDetail`,ae)),Be={localStorage:w},Ve=function(e){return e.PRODUCTION=`production`,e.SANDBOX=`sandbox`,e}({}),He=function(e){return e.API_KEY=`x-immutable-api-key`,e.PUBLISHABLE_KEY=`x-immutable-publishable-key`,e.RATE_LIMITING_KEY=`x-api-key`,e}({});var Ue=class{environment;rateLimitingKey;apiKey;publishableKey;constructor(e){this.environment=e.environment,this.publishableKey=e.publishableKey,this.apiKey=e.apiKey,this.rateLimitingKey=e.rateLimitingKey,Ie(e.environment),Ce(`config`,`created_imtbl_config`)}};let We=(e,t)=>{if(!e||!e.apiKey&&!e.publishableKey&&!e.rateLimitingKey)return t;let n={};return e.apiKey&&(n[`x-immutable-api-key`]=e.apiKey),e.publishableKey&&(n[`x-immutable-publishable-key`]=e.publishableKey,Re(e.publishableKey)),e.rateLimitingKey&&(n[`x-api-key`]=e.rateLimitingKey),t&&t.headers?{...t,headers:{...n,...t.headers}}:{...t,headers:n}};var Ge=l({Environment:()=>Ve,ImmutableConfiguration:()=>Ue,KeyHeaders:()=>He,addKeysToHeadersOverride:()=>We});function Ke(e,t){return function(){return e.apply(t,arguments)}}let{toString:qe}=Object.prototype,{getPrototypeOf:Je}=Object,{iterator:Ye,toStringTag:Xe}=Symbol,Ze=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Qe=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),Ze(n,t))return!0;n=Je(n)}return!1},$e=(e,t)=>e!=null&&Qe(e,t)?e[t]:void 0,et=(e=>t=>{let n=qe.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),tt=e=>(e=e.toLowerCase(),t=>et(t)===e),nt=e=>t=>typeof t===e,{isArray:rt}=Array,it=nt(`undefined`);function at(e){return e!==null&&!it(e)&&e.constructor!==null&&!it(e.constructor)&<(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}let ot=tt(`ArrayBuffer`);function st(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&ot(e.buffer),t}let ct=nt(`string`),lt=nt(`function`),ut=nt(`number`),dt=e=>typeof e==`object`&&!!e,ft=e=>e===!0||e===!1,pt=e=>{if(!dt(e))return!1;let t=Je(e);return(t===null||t===Object.prototype||Je(t)===null)&&!Qe(e,Xe)&&!Qe(e,Ye)},mt=e=>{if(!dt(e)||at(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},ht=tt(`Date`),gt=tt(`File`),_t=e=>!!(e&&e.uri!==void 0),vt=e=>e&&e.getParts!==void 0,yt=tt(`Blob`),bt=tt(`FileList`),xt=e=>dt(e)&<(e.pipe);function St(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}let Ct=St(),wt=Ct.FormData===void 0?void 0:Ct.FormData,Tt=e=>{if(!e)return!1;if(wt&&e instanceof wt)return!0;let t=Je(e);if(!t||t===Object.prototype||!lt(e.append))return!1;let n=et(e);return n===`formdata`||n===`object`&<(e.toString)&&e.toString()===`[object FormData]`},Et=tt(`URLSearchParams`),[Dt,Ot,kt,At]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(tt),jt=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function Mt(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),rt(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{if(at(e))return;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 Nt(e,t){if(at(e))return null;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}let Pt=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,Ft=e=>!it(e)&&e!==Pt;function It(...e){let{caseless:t,skipUndefined:n}=Ft(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&Nt(r,i)||i,o=Ze(r,a)?r[a]:void 0;pt(o)&&pt(e)?r[a]=It(o,e):pt(e)?r[a]=It({},e):rt(e)?r[a]=e.slice():(!n||!it(e))&&(r[a]=e)};for(let t=0,n=e.length;t<n;t++){let n=e[t];if(!n||at(n)||(Mt(n,i),typeof n!=`object`||rt(n)))continue;let r=Object.getOwnPropertySymbols(n);for(let e=0;e<r.length;e++){let t=r[e];Jt.call(n,t)&&i(n[t],t)}}return r}let Lt=(e,t,n,{allOwnKeys:r}={})=>(Mt(t,(t,r)=>{n&<(t)?Object.defineProperty(e,r,{__proto__:null,value:Ke(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),Rt=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),zt=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},Bt=(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&&Je(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Vt=(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},Ht=e=>{if(!e)return null;if(rt(e))return e;let t=e.length;if(!ut(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},Ut=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&Je(Uint8Array)),Wt=(e,t)=>{let n=(e&&e[Ye]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},Gt=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Kt=tt(`HTMLFormElement`),qt=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:Jt}=Object.prototype,Yt=tt(`RegExp`),Xt=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};Mt(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Zt=e=>{Xt(e,(t,n)=>{if(lt(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(lt(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Qt=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return rt(e)?r(e):r(String(e).split(t)),n},$t=()=>{},en=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function tn(e){return!!(e&<(e.append)&&e[Xe]===`FormData`&&e[Ye])}let nn=e=>{let t=new WeakSet,n=e=>{if(dt(e)){if(t.has(e))return;if(at(e))return e;if(!(`toJSON`in e)){t.add(e);let r=rt(e)?[]:{};return Mt(e,(e,t)=>{let i=n(e);!it(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},rn=tt(`AsyncFunction`),an=e=>e&&(dt(e)||lt(e))&<(e.then)&<(e.catch),on=((e,t)=>e?setImmediate:t?((e,t)=>(Pt.addEventListener(`message`,({source:n,data:r})=>{n===Pt&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),Pt.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,lt(Pt.postMessage)),sn=typeof queueMicrotask<`u`?queueMicrotask.bind(Pt):typeof process<`u`&&process.nextTick||on,cn=e=>e!=null&<(e[Ye]);var I={isArray:rt,isArrayBuffer:ot,isBuffer:at,isFormData:Tt,isArrayBufferView:st,isString:ct,isNumber:ut,isBoolean:ft,isObject:dt,isPlainObject:pt,isEmptyObject:mt,isReadableStream:Dt,isRequest:Ot,isResponse:kt,isHeaders:At,isUndefined:it,isDate:ht,isFile:gt,isReactNativeBlob:_t,isReactNative:vt,isBlob:yt,isRegExp:Yt,isFunction:lt,isStream:xt,isURLSearchParams:Et,isTypedArray:Ut,isFileList:bt,forEach:Mt,merge:It,extend:Lt,trim:jt,stripBOM:Rt,inherits:zt,toFlatObject:Bt,kindOf:et,kindOfTest:tt,endsWith:Vt,toArray:Ht,forEachEntry:Wt,matchAll:Gt,isHTMLForm:Kt,hasOwnProperty:Ze,hasOwnProp:Ze,hasOwnInPrototypeChain:Qe,getSafeProp:$e,reduceDescriptors:Xt,freezeMethods:Zt,toObjectSet:Qt,toCamelCase:qt,noop:$t,toFiniteNumber:en,findKey:Nt,global:Pt,isContextDefined:Ft,isSpecCompliantForm:tn,toJSONObject:nn,isAsyncFn:rn,isThenable:an,setImmediate:on,asap:sn,isIterable:cn,isSafeIterable:e=>e!=null&&Qe(e,Ye)&&cn(e)};let ln=I.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 un=e=>{let t={},n,r,i;return e&&e.split(`
|
|
10
10
|
`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!(!n||t[n]&&ln[n])&&(n===`set-cookie`?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+`, `+r:r)}),t};function dn(e){let t=0,n=e.length;for(;t<n;){let n=e.charCodeAt(t);if(n!==9&&n!==32)break;t+=1}for(;n>t;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}let fn=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),pn=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function mn(e,t){return I.isArray(e)?e.map(e=>mn(e,t)):dn(String(e).replace(t,``))}let hn=e=>mn(e,fn),gn=e=>mn(e,pn);function _n(e){let t=Object.create(null);return I.forEach(e.toJSON(),(e,n)=>{t[n]=gn(e)}),t}let vn=Symbol(`internals`);function yn(e){return e&&String(e).trim().toLowerCase()}function bn(e){return e===!1||e==null?e:I.isArray(e)?e.map(bn):hn(String(e))}function xn(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}let Sn=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cn(e,t,n,r,i){if(I.isFunction(r))return r.call(this,t,n);if(i&&(t=n),I.isString(t)){if(I.isString(r))return t.indexOf(r)!==-1;if(I.isRegExp(r))return r.test(t)}}function wn(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function Tn(e,t){let n=I.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var En=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=yn(t);if(!i)return;let a=I.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=bn(e))}let a=(e,t)=>I.forEach(e,(e,n)=>i(e,n,t));if(I.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(I.isString(e)&&(e=e.trim())&&!Sn(e))a(un(e),t);else if(I.isObject(e)&&I.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!I.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],I.hasOwnProp(n,i)?(r=n[i],n[i]=I.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=yn(e),e){let n=I.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return xn(e);if(I.isFunction(t))return t.call(this,e,n);if(I.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=yn(e),e){let n=I.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||Cn(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=yn(e),e){let i=I.findKey(n,e);i&&(!t||Cn(n,n[i],i,t))&&(delete n[i],r=!0)}}return I.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||Cn(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return I.forEach(this,(r,i)=>{let a=I.findKey(n,i);if(a){t[a]=bn(r),delete t[i];return}let o=e?wn(i):String(i).trim();o!==i&&delete t[i],t[o]=bn(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return I.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&I.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(`
|
|
11
11
|
`)}getSetCookie(){return this.get(`set-cookie`)||[]}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[vn]=this[vn]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=yn(e);t[r]||(Tn(n,e),t[r]=!0)}return I.isArray(e)?e.forEach(r):r(e),this}};En.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),I.reduceDescriptors(En.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),I.freezeMethods(En);function Dn(e){if(I.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(I.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function On(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||I.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof En&&(e=e.toJSON()),r.push(e);let t;if(I.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);I.isUndefined(r)||(t[n]=r)});else{if(!I.isPlainObject(e)&&Dn(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?`[REDACTED ****]`:i(a);I.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}var L=class e extends Error{static from(t,n,r,i,a,o){let s=new e(t.message,n||t.code,r,i,a);return Object.defineProperty(s,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),s.name=t.name,t.status!=null&&s.status==null&&(s.status=t.status),o&&Object.assign(s,o),s}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&I.hasOwnProp(e,`redact`)?e.redact:void 0,n=I.isArray(t)&&t.length>0?On(e,t):I.toJSONObject(e);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:n,code:this.code,status:this.status}}};L.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,L.ERR_BAD_OPTION=`ERR_BAD_OPTION`,L.ECONNABORTED=`ECONNABORTED`,L.ETIMEDOUT=`ETIMEDOUT`,L.ECONNREFUSED=`ECONNREFUSED`,L.ERR_NETWORK=`ERR_NETWORK`,L.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,L.ERR_DEPRECATED=`ERR_DEPRECATED`,L.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,L.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,L.ERR_CANCELED=`ERR_CANCELED`,L.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,L.ERR_INVALID_URL=`ERR_INVALID_URL`,L.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function kn(e){return I.isPlainObject(e)||I.isArray(e)}function An(e){return I.endsWith(e,`[]`)?e.slice(0,-2):e}function jn(e,t,n){return e?e.concat(t).map(function(e,t){return e=An(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function Mn(e){return I.isArray(e)&&!e.some(kn)}let Nn=I.toFlatObject(I,{},null,function(e){return/^is[A-Z]/.test(e)});function Pn(e,t,n){if(!I.isObject(e))throw TypeError(`target must be an object`);t||=new FormData,n=I.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!I.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||m,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<`u`&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,l=s&&I.isSpecCompliantForm(t),u=[];if(!I.isFunction(i))throw TypeError(`visitor must be a function`);function d(e){if(e===null)return``;if(I.isDate(e))return e.toISOString();if(I.isBoolean(e))return e.toString();if(!l&&I.isBlob(e))throw new L(`Blob is not supported. Use a Buffer instead.`);if(I.isArrayBuffer(e)||I.isTypedArray(e)){if(l&&typeof s==`function`)return new s([e]);if(typeof Buffer<`u`)return Buffer.from(e);throw new L(`Blob is not supported. Use a Buffer instead.`,L.ERR_NOT_SUPPORT)}return e}function f(e){if(e>c)throw new L(`Object is too deeply nested (`+e+` levels). Max depth: `+c,L.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(e,t){if(c===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!I.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),f(t+n.length-1),r})}function m(e,n,i){let s=e;if(I.isReactNative(t)&&I.isReactNativeBlob(e))return t.append(jn(i,n,a),d(e)),!1;if(e&&!i&&typeof e==`object`){if(I.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=p(e,1);else if(I.isArray(e)&&Mn(e)||(I.isFileList(e)||I.endsWith(n,`[]`))&&(s=I.toArray(e)))return n=An(n),s.forEach(function(e,r){!(I.isUndefined(e)||e===null)&&t.append(o===!0?jn([n],r,a):o===null?n:n+`[]`,d(e))}),!1}return kn(e)?!0:(t.append(jn(i,n,a),d(e)),!1)}let h=Object.assign(Nn,{defaultVisitor:m,convertValue:d,isVisitable:kn});function g(e,n,r=0){if(!I.isUndefined(e)){if(f(r),u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),I.forEach(e,function(e,a){(!(I.isUndefined(e)||e===null)&&i.call(t,e,I.isString(a)?a.trim():a,n,h))===!0&&g(e,n?n.concat(a):[a],r+1)}),u.pop()}}if(!I.isObject(e))throw TypeError(`data must be an object`);return g(e),t}function Fn(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function In(e,t){this._pairs=[],e&&Pn(e,this,t)}let Ln=In.prototype;Ln.append=function(e,t){this._pairs.push([e,t])},Ln.toString=function(e){let t=e?t=>e.call(this,t,Fn):Fn;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function Rn(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function zn(e,t,n){if(!t)return e;e||=``;let r=I.isFunction(n)?{serialize:n}:n,i=I.getSafeProp(r,`encode`)||Rn,a=I.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):I.isURLSearchParams(t)?t.toString():new In(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var Bn=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){I.forEach(this.handlers,function(t){t!==null&&e(t)})}},Vn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Hn={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:In,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},Un=l({hasBrowserEnv:()=>Wn,hasStandardBrowserEnv:()=>Kn,hasStandardBrowserWebWorkerEnv:()=>qn,navigator:()=>Gn,origin:()=>Jn});let Wn=typeof window<`u`&&typeof document<`u`,Gn=typeof navigator==`object`&&navigator||void 0,Kn=Wn&&(!Gn||[`ReactNative`,`NativeScript`,`NS`].indexOf(Gn.product)<0),qn=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,Jn=Wn&&window.location.href||`http://localhost`;var Yn={...Un,...Hn};function Xn(e,t){return Pn(e,new Yn.classes.URLSearchParams,{visitor:function(e,t,n,r){return Yn.isNode&&I.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}function Zn(e){if(e>100)throw new L(`FormData field is too deeply nested (`+e+` levels). Max depth: 100`,L.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Qn(e){let t=[],n=/\w+|\[(\w*)]/g,r;for(;(r=n.exec(e))!==null;)Zn(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function $n(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 er(e){function t(e,n,r,i){Zn(i);let a=e[i++];if(a===`__proto__`)return!0;let o=Number.isFinite(+a),s=i>=e.length;return a=!a&&I.isArray(r)?r.length:a,s?(I.hasOwnProp(r,a)?r[a]=I.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!I.hasOwnProp(r,a)||!I.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&I.isArray(r[a])&&(r[a]=$n(r[a])),!o)}if(I.isFormData(e)&&I.isFunction(e.entries)){let n={};return I.forEachEntry(e,(e,r)=>{t(Qn(e),r,n,0)}),n}return null}let tr=(e,t)=>e!=null&&I.hasOwnProp(e,t)?e[t]:void 0;function nr(e,t,n){if(I.isString(e))try{return(t||JSON.parse)(e),I.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}let rr={transitional:Vn,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=I.isObject(e);if(i&&I.isHTMLForm(e)&&(e=new FormData(e)),I.isFormData(e))return r?JSON.stringify(er(e)):e;if(I.isArrayBuffer(e)||I.isBuffer(e)||I.isStream(e)||I.isFile(e)||I.isBlob(e)||I.isReadableStream(e))return e;if(I.isArrayBufferView(e))return e.buffer;if(I.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=tr(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return Xn(e,t).toString();if((a=I.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=tr(this,`env`),r=n&&n.FormData;return Pn(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),nr(e)):e}],transformResponse:[function(e){let t=tr(this,`transitional`)||rr.transitional,n=t&&t.forcedJSONParsing,r=tr(this,`responseType`),i=r===`json`;if(I.isResponse(e)||I.isReadableStream(e))return e;if(e&&I.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,tr(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?L.from(e,L.ERR_BAD_RESPONSE,this,null,tr(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:Yn.classes.FormData,Blob:Yn.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};I.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`],e=>{rr.headers[e]={}});function ir(e,t){let n=this||rr,r=t||n,i=En.from(r.headers),a=r.data;return I.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function ar(e){return!!(e&&e.__CANCEL__)}var or=class extends L{constructor(e,t,n){super(e??`canceled`,L.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function sr(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new L(`Request failed with status code `+n.status,n.status>=400&&n.status<500?L.ERR_BAD_REQUEST:L.ERR_BAD_RESPONSE,n.config,n.request,n))}function cr(e){let t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||``}function lr(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 ur(e,t){let n=0,r=1e3/t,i,a,o=(t,r=Date.now())=>{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}let dr=(e,t,n=3)=>{let r=0,i=lr(50,250);return ur(n=>{if(!n||typeof n.loaded!=`number`)return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=o==null?a:Math.min(a,o),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},fr=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},pr=e=>(...t)=>I.asap(()=>e(...t));var mr=Yn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Yn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Yn.origin),Yn.navigator&&/(msie|trident)/i.test(Yn.navigator.userAgent)):()=>!0,hr=Yn.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];I.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),I.isString(r)&&s.push(`path=${r}`),I.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),I.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;n<t.length;n++){let r=t[n].replace(/^\s+/,``),i=r.indexOf(`=`);if(i!==-1&&r.slice(0,i)===e)try{return decodeURIComponent(r.slice(i+1))}catch{return r.slice(i+1)}}return null},remove(e){this.write(e,``,Date.now()-864e5,`/`)}}:{write(){},read(){return null},remove(){}};function gr(e){return typeof e==`string`&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function _r(e,t){return t?e.replace(/\/?\/$/,``)+`/`+t.replace(/^\/+/,``):e}let vr=/^https?:(?!\/\/)/i,yr=/[\t\n\r]/g;function br(e){let t=0;for(;t<e.length&&e.charCodeAt(t)<=32;)t++;return e.slice(t)}function xr(e){return br(e).replace(yr,``)}function Sr(e,t){if(typeof e==`string`&&vr.test(xr(e)))throw new L(`Invalid URL: missing "//" after protocol`,L.ERR_INVALID_URL,t)}function Cr(e,t,n,r){Sr(t,r);let i=!gr(t);return e&&(i||n===!1)?(Sr(e,r),_r(e,t)):t}let wr=e=>e instanceof En?{...e}:e;function Tr(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return I.isPlainObject(e)&&I.isPlainObject(t)?I.merge.call({caseless:r},e,t):I.isPlainObject(t)?I.merge({},t):I.isArray(t)?t.slice():t}function i(e,t,n,i){if(!I.isUndefined(t))return r(e,t,n,i);if(!I.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!I.isUndefined(t))return r(void 0,t)}function o(e,t){if(!I.isUndefined(t))return r(void 0,t);if(!I.isUndefined(e))return r(void 0,e)}function s(n){let r=I.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!I.isUndefined(r))if(I.isPlainObject(r)){if(I.hasOwnProp(r,n))return r[n]}else return;let i=I.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(I.isPlainObject(i)&&I.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(I.hasOwnProp(t,a))return r(n,i);if(I.hasOwnProp(e,a))return r(void 0,n)}let l={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,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(wr(e),wr(t),n,!0)};return I.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=I.hasOwnProp(l,r)?l[r]:i,o=a(I.hasOwnProp(e,r)?e[r]:void 0,I.hasOwnProp(t,r)?t[r]:void 0,r);I.isUndefined(o)&&a!==c||(n[r]=o)}),I.hasOwnProp(t,`validateStatus`)&&I.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(I.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}let Er=[`content-type`,`content-length`];function Dr(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{Er.includes(t.toLowerCase())&&e.set(t,n)})}let Or=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function kr(e){let t=Tr({},e),n=e=>I.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=En.from(s),t.url=zn(Cr(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=I.getSafeProp(c,`username`)||``,n=I.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?Or(n):``)))}catch(t){throw L.from(t,L.ERR_BAD_OPTION_VALUE,e)}}if(I.isFormData(r)&&(Yn.hasStandardBrowserEnv||Yn.hasStandardBrowserWebWorkerEnv||I.isReactNative(r)?s.setContentType(void 0):I.isFunction(r.getHeaders)&&Dr(s,r.getHeaders(),n(`formDataHeaderPolicy`))),Yn.hasStandardBrowserEnv&&(I.isFunction(i)&&(i=i(t)),i===!0||i==null&&mr(t.url))){let e=a&&o&&hr.read(o);e&&s.set(a,e)}return t}var Ar=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=kr(e),i=r.data,a=En.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=En.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());sr(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.startsWith(`file:`))||setTimeout(g)},h.onabort=function(){h&&=(n(new L(`Request aborted`,L.ECONNABORTED,e,h)),m(),null)},h.onerror=function(t){let r=new L(t&&t.message?t.message:`Network Error`,L.ERR_NETWORK,e,h);r.event=t||null,n(r),m(),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||Vn;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new L(t,i.clarifyTimeoutError?L.ETIMEDOUT:L.ECONNABORTED,e,h)),m(),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&I.forEach(_n(a),function(e,t){h.setRequestHeader(t,e)}),I.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=dr(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=dr(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&=(n(!t||t.type?new or(null,e,h):t),h.abort(),m(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=cr(r.url);if(_&&!Yn.protocols.includes(_)){n(new L(`Unsupported protocol `+_+`:`,L.ERR_BAD_REQUEST,e)),m();return}h.send(i||null)})};let jr=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof L?t:new or(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new L(`timeout of ${t}ms exceeded`,L.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>e.addEventListener(`abort`,i,{once:!0}));let{signal:s}=n;return s.unsubscribe=()=>I.asap(o),s},Mr=function*(e,t){let n=e.byteLength;if(!t||n<t){yield e;return}let r=0,i;for(;r<n;)i=r+t,yield e.slice(r,i),r=i},Nr=async function*(e,t){for await(let n of Pr(e))yield*Mr(n,t)},Pr=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},Fr=(e,t,n,r)=>{let i=Nr(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},Ir=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Lr=(e,t,n)=>t+2<n&&Ir(e.charCodeAt(t+1))&&Ir(e.charCodeAt(t+2));function Rr(e){if(!e||typeof e!=`string`||!e.startsWith(`data:`))return 0;let t=e.indexOf(`,`);if(t<0)return 0;let n=e.slice(5,t),r=e.slice(t+1);if(/;base64/i.test(n)){let e=r.length,t=r.length;for(let n=0;n<t;n++)if(r.charCodeAt(n)===37&&n+2<t){let t=r.charCodeAt(n+1),i=r.charCodeAt(n+2);Ir(t)&&Ir(i)&&(e-=2,n+=2)}let n=0,i=t-1,a=e=>e>=2&&r.charCodeAt(e-2)===37&&r.charCodeAt(e-1)===51&&(r.charCodeAt(e)===68||r.charCodeAt(e)===100);i>=0&&(r.charCodeAt(i)===61?(n++,i--):a(i)&&(n++,i-=3)),n===1&&i>=0&&(r.charCodeAt(i)===61||a(i))&&n++;let o=Math.floor(e/4)*3-(n||0);return o>0?o:0}let i=0;for(let e=0,t=r.length;e<t;e++){let n=r.charCodeAt(e);if(n===37&&Lr(r,e,t))i+=1,e+=2;else if(n<128)i+=1;else if(n<2048)i+=2;else if(n>=55296&&n<=56319&&e+1<t){let t=r.charCodeAt(e+1);t>=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}let zr=64*1024,{isFunction:Br}=I,Vr=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),Hr=e=>{if(!I.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},Ur=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Wr=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},Gr=e=>{let t=I.global!==void 0&&I.global!==null?I.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=I.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?Br(i):typeof fetch==`function`,c=Br(a),l=Br(o);if(!s)return!1;let u=s&&Br(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&Ur(()=>{let e=!1,t=new a(Yn.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&Ur(()=>I.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new L(`Response type '${e}' is not supported`,L.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(I.isBlob(e))return e.size;if(I.isSpecCompliantForm(e))return(await new a(Yn.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(I.isArrayBufferView(e)||I.isArrayBuffer(e))return e.byteLength;if(I.isURLSearchParams(e)&&(e+=``),I.isString(e))return(await d(e)).byteLength},g=async(e,t)=>I.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:T}=kr(e),E=I.isNumber(w)&&w>-1,D=I.isNumber(T)&&T>-1,O=t=>I.hasOwnProp(e,t)?e[t]:void 0,k=i||fetch;b=b?(b+``).toLowerCase():`text`;let A=jr([l,d&&d.toAbortSignal()],_),j=null,M=A&&A.unsubscribe&&(()=>{A.unsubscribe()}),N,P=null,ee=()=>new L(`Request body larger than maxBodyLength limit`,L.ERR_BAD_REQUEST,e,j);try{let i,l=O(`auth`);if(l&&(i={username:I.getSafeProp(l,`username`)||``,password:I.getSafeProp(l,`password`)||``}),Wr(t)){let e=new URL(t,Yn.origin);!i&&(e.username||e.password)&&(i={username:Hr(e.username),password:Hr(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(Vr((i.username||``)+`:`+(i.password||``))))),E&&typeof t==`string`&&t.startsWith(`data:`)&&Rr(t)>w)throw new L(`maxContentLength size of `+w+` exceeded`,L.ERR_BAD_RESPONSE,e,j);if(D&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(N=e,e>T))throw ee()}let d=D&&(I.isReadableStream(s)||I.isStream(s)),_=(e,t,n)=>Fr(e,zr,e=>{if(D&&e>T)throw P=ee();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(N??=await g(x,s),N!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(I.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&fr(N,dr(pr(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new L(`Stream request bodies are not supported by the current fetch implementation`,L.ERR_NOT_SUPPORT,e,j);I.isString(S)||(S=S?`include`:`omit`);let te=c&&`credentials`in a.prototype;if(I.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/1.18.1`,!1);let ne={...C,signal:A,method:n.toUpperCase(),headers:_n(x.normalize()),body:s,duplex:`half`,credentials:te?S:void 0};j=c&&new a(t,ne);let F=await(c?k(j,C):k(t,ne)),re=En.from(F.headers);if(E){let t=I.toFiniteNumber(re.getContentLength());if(t!=null&&t>w)throw new L(`maxContentLength size of `+w+` exceeded`,L.ERR_BAD_RESPONSE,e,j)}let ie=p&&(b===`stream`||b===`response`);if(p&&F.body&&(v||E||ie&&M)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=F[e]});let n=I.toFiniteNumber(re.getContentLength()),[r,i]=v&&fr(n,dr(pr(v),!0))||[],a=0;F=new o(Fr(F.body,zr,t=>{if(E&&(a=t,a>w))throw new L(`maxContentLength size of `+w+` exceeded`,L.ERR_BAD_RESPONSE,e,j);r&&r(t)},()=>{i&&i(),M&&M()}),t)}b||=`text`;let ae=await m[I.findKey(m,b)||`text`](F,e);if(E&&!p&&!ie){let t;if(ae!=null&&(typeof ae.byteLength==`number`?t=ae.byteLength:typeof ae.size==`number`?t=ae.size:typeof ae==`string`&&(t=typeof r==`function`?new r().encode(ae).byteLength:ae.length)),typeof t==`number`&&t>w)throw new L(`maxContentLength size of `+w+` exceeded`,L.ERR_BAD_RESPONSE,e,j)}return!ie&&M&&M(),await new Promise((t,n)=>{sr(t,n,{data:ae,headers:En.from(F.headers),status:F.status,statusText:F.statusText,config:e,request:j})})}catch(t){if(M&&M(),A&&A.aborted&&A.reason instanceof L){let n=A.reason;throw n.config=e,j&&(n.request=j),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(P)throw j&&!P.request&&(P.request=j),P;if(t instanceof L)throw j&&!t.request&&(t.request=j),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new L(`Network Error`,L.ERR_NETWORK,e,j,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw L.from(t,t&&t.code,e,j,t&&t.response)}}},Kr=new Map,qr=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=Kr;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:Gr(t)),l=c;return c};qr();let Jr={http:null,xhr:Ar,fetch:{get:qr}};I.forEach(Jr,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});let Yr=e=>`- ${e}`,Xr=e=>I.isFunction(e)||e===null||e===!1;function Zr(e,t){e=I.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o<n;o++){r=e[o];let n;if(i=r,!Xr(r)&&(i=Jr[(n=String(r)).toLowerCase()],i===void 0))throw new L(`Unknown adapter '${n}'`);if(i&&(I.isFunction(i)||(i=i.get(t))))break;a[n||`#`+o]=i}if(!i){let e=Object.entries(a).map(([e,t])=>`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new L(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since :
|
|
12
12
|
`+e.map(Yr).join(`
|
|
@@ -14,7 +14,7 @@ this.first=null,this.items=Object.create(null),this.last=null,this.max=e,this.re
|
|
|
14
14
|
`);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(`
|
|
15
15
|
`),r=t===-1?-1:n.indexOf(`
|
|
16
16
|
`,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=`
|
|
17
|
-
`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Tr(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&ii.assertOptions(n,{silentJSONParsing:ai.transitional(ai.boolean),forcedJSONParsing:ai.transitional(ai.boolean),clarifyTimeoutError:ai.transitional(ai.boolean),legacyInterceptorReqResOrdering:ai.transitional(ai.boolean),advertiseZstdAcceptEncoding:ai.transitional(ai.boolean),validateStatusUndefinedResolves:ai.transitional(ai.boolean)},!1),r!=null&&(I.isFunction(r)?t.paramsSerializer={serialize:r}:ii.assertOptions(r,{encode:ai.function,serialize:ai.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),ii.assertOptions(t,{baseUrl:ai.spelling(`baseURL`),withXsrfToken:ai.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&I.merge(i.common,i[t.method]);i&&I.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=En.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Vn;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(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=[ei.bind(this),void 0];for(e.unshift(...o),e.push(...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<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=ei.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=Tr(this.defaults,e),zn(Cr(e.baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}};I.forEach([`delete`,`get`,`head`,`options`],function(e){oi.prototype[e]=function(t,n){return this.request(Tr(n||{},{method:e,url:t,data:n&&I.hasOwnProp(n,`data`)?n.data:void 0}))}}),I.forEach([`post`,`put`,`patch`,`query`],function(e){function t(t){return function(n,r,i){return this.request(Tr(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}oi.prototype[e]=t(),e!==`query`&&(oi.prototype[e+`Form`]=t(!0))});var si=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 or(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)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function ci(e){return function(t){return e.apply(null,t)}}function li(e){return I.isObject(e)&&e.isAxiosError===!0}let ui={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,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(ui).forEach(([e,t])=>{ui[t]=e});function di(e){let t=new oi(e),n=Ke(oi.prototype.request,t);return I.extend(n,oi.prototype,t,{allOwnKeys:!0}),I.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return di(Tr(e,t))},n}let R=di(rr);R.Axios=oi,R.CanceledError=or,R.CancelToken=si,R.isCancel=ar,R.VERSION=`1.18.1`,R.toFormData=Pn,R.AxiosError=L,R.Cancel=R.CanceledError,R.all=function(e){return Promise.all(e)},R.spread=ci,R.isAxiosError=li,R.mergeConfig=Tr,R.AxiosHeaders=En,R.formToJSON=e=>er(I.isHTMLForm(e)?new FormData(e):e),R.getAdapter=Qr.getAdapter,R.HttpStatusCode=ui,R.default=R;let{Axios:fi,AxiosError:pi,CanceledError:mi,isCancel:hi,CancelToken:gi,VERSION:_i,all:vi,Cancel:yi,isAxiosError:bi,spread:xi,toFormData:Si,AxiosHeaders:Ci,HttpStatusCode:wi,formToJSON:Ti,getAdapter:Ei,mergeConfig:Di,create:Oi}=R;var ki=Object.defineProperty,Ai=(e,t)=>{let n={};for(var r in e)ki(n,r,{get:e[r],enumerable:!0});return t||ki(n,Symbol.toStringTag,{value:`Module`}),n};let z=`https://api.sandbox.immutable.com`.replace(/\/+$/,``);var ji=class{basePath;axios;configuration;constructor(e,t=z,n=R){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}},Mi=class extends Error{field;constructor(e,t){super(t),this.field=e,this.name=`RequiredError`}};let B=`https://example.com`,V=function(e,t,n){if(n==null)throw new Mi(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},Ni=async function(e,t,n){n&&n.apiKey&&(e[t]=typeof n.apiKey==`function`?await n.apiKey(t):await n.apiKey)},Pi=async function(e,t){t&&t.accessToken&&(e.Authorization=`Bearer `+(typeof t.accessToken==`function`?await t.accessToken():await t.accessToken))};function Fi(e,t,n=``){t!=null&&(typeof t==`object`?Array.isArray(t)?t.forEach(t=>Fi(e,t,n)):Object.keys(t).forEach(r=>Fi(e,t[r],`${n}${n===``?``:`.`}${r}`)):e.has(n)?e.append(n,t):e.set(n,t))}let H=function(e,...t){let n=new URLSearchParams(e.search);Fi(n,t),e.search=n.toString()},Ii=function(e,t,n){let r=typeof e!=`string`;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers[`Content-Type`]):r)?JSON.stringify(e===void 0?{}:e):e||``},Li=function(e){return e.pathname+e.search+e.hash},Ri=function(e,t,n,r){return(i=t,a=n)=>{let o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},zi=function(e){return{getActivity:async(t,n,r={})=>{V(`getActivity`,`chainName`,t),V(`getActivity`,`activityId`,n);let i=`/v1/chains/{chain_name}/activities/{activity_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{activity_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},listActivities:async(t,n,r,i,a,o,s,c,l={})=>{V(`listActivities`,`chainName`,t);let u=`/v1/chains/{chain_name}/activities`.replace(`{chain_name}`,encodeURIComponent(String(t))),d=new URL(u,B),f;e&&(f=e.baseOptions);let p={method:`GET`,...f,...l},m={},h={};n!==void 0&&(h.contract_address=n),r!==void 0&&(h.token_id=r),i!==void 0&&(h.account_address=i),a!==void 0&&(h.activity_type=a),o!==void 0&&(h.transaction_hash=o),s!==void 0&&(h.page_cursor=s),c!==void 0&&(h.page_size=c),H(d,h);let g=f&&f.headers?f.headers:{};return p.headers={...m,...g,...l.headers},{url:Li(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s,c={})=>{V(`listActivityHistory`,`chainName`,t),V(`listActivityHistory`,`fromUpdatedAt`,n);let l=`/v1/chains/{chain_name}/activity-history`.replace(`{chain_name}`,encodeURIComponent(String(t))),u=new URL(l,B),d;e&&(d=e.baseOptions);let f={method:`GET`,...d,...c},p={},m={};n!==void 0&&(m.from_updated_at=n instanceof Date?n.toISOString():n),r!==void 0&&(m.to_updated_at=r instanceof Date?r.toISOString():r),i!==void 0&&(m.contract_address=i),a!==void 0&&(m.activity_type=a),o!==void 0&&(m.page_cursor=o),s!==void 0&&(m.page_size=s),H(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Li(u),options:f}}}},Bi=function(e){let t=zi(e);return{async getActivity(n,r,i){return Ri(await t.getActivity(n,r,i),R,z,e)},async listActivities(n,r,i,a,o,s,c,l,u){return Ri(await t.listActivities(n,r,i,a,o,s,c,l,u),R,z,e)},async listActivityHistory(n,r,i,a,o,s,c,l){return Ri(await t.listActivityHistory(n,r,i,a,o,s,c,l),R,z,e)}}},Vi=function(e,t,n){let r=Bi(e);return{getActivity(e,i){return r.getActivity(e.chainName,e.activityId,i).then(e=>e(n,t))},listActivities(e,i){return r.listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listActivityHistory(e,i){return r.listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.activityType,e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Hi=class extends ji{getActivity(e,t){return Bi(this.configuration).getActivity(e.chainName,e.activityId,t).then(e=>e(this.axios,this.basePath))}listActivities(e,t){return Bi(this.configuration).listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listActivityHistory(e,t){return Bi(this.configuration).listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.activityType,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let Ui=function(e){return{listChains:async(t,n,r={})=>{let i=new URL(`/v1/chains`,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...r},s={},c={};t!==void 0&&(c.page_cursor=t),n!==void 0&&(c.page_size=n),H(i,c);let l=a&&a.headers?a.headers:{};return o.headers={...s,...l,...r.headers},{url:Li(i),options:o}}}},Wi=function(e){let t=Ui(e);return{async listChains(n,r,i){return Ri(await t.listChains(n,r,i),R,z,e)}}},Gi=function(e,t,n){let r=Wi(e);return{listChains(e={},i){return r.listChains(e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Ki=class extends ji{listChains(e={},t){return Wi(this.configuration).listChains(e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let qi=function(e){return{getCollection:async(t,n,r={})=>{V(`getCollection`,`contractAddress`,t),V(`getCollection`,`chainName`,n);let i=`/v1/chains/{chain_name}/collections/{contract_address}`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},listCollections:async(t,n,r,i,a,o,s={})=>{V(`listCollections`,`chainName`,t);let c=`/v1/chains/{chain_name}/collections`.replace(`{chain_name}`,encodeURIComponent(String(t))),l=new URL(c,B),u;e&&(u=e.baseOptions);let d={method:`GET`,...u,...s},f={},p={};n&&(p.contract_address=n),r&&(p.verification_status=r),i!==void 0&&(p.from_updated_at=i instanceof Date?i.toISOString():i),a!==void 0&&(p.page_cursor=a),o!==void 0&&(p.page_size=o),H(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Li(l),options:d}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{V(`listCollectionsByNFTOwner`,`accountAddress`,t),V(`listCollectionsByNFTOwner`,`chainName`,n);let o=`/v1/chains/{chain_name}/accounts/{account_address}/collections`.replace(`{account_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),s=new URL(o,B),c;e&&(c=e.baseOptions);let l={method:`GET`,...c,...a},u={},d={};r!==void 0&&(d.page_cursor=r),i!==void 0&&(d.page_size=i),H(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Li(s),options:l}},refreshCollectionMetadata:async(t,n,r,i={})=>{V(`refreshCollectionMetadata`,`contractAddress`,t),V(`refreshCollectionMetadata`,`chainName`,n),V(`refreshCollectionMetadata`,`refreshCollectionMetadataRequest`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Pi(l,e),await Ni(l,`x-immutable-api-key`,e),await Pi(l,e),l[`Content-Type`]=`application/json`,H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Ii(r,c,e),{url:Li(o),options:c}}}},Ji=function(e){let t=qi(e);return{async getCollection(n,r,i){return Ri(await t.getCollection(n,r,i),R,z,e)},async listCollections(n,r,i,a,o,s,c){return Ri(await t.listCollections(n,r,i,a,o,s,c),R,z,e)},async listCollectionsByNFTOwner(n,r,i,a,o){return Ri(await t.listCollectionsByNFTOwner(n,r,i,a,o),R,z,e)},async refreshCollectionMetadata(n,r,i,a){return Ri(await t.refreshCollectionMetadata(n,r,i,a),R,z,e)}}},Yi=function(e,t,n){let r=Ji(e);return{getCollection(e,i){return r.getCollection(e.contractAddress,e.chainName,i).then(e=>e(n,t))},listCollections(e,i){return r.listCollections(e.chainName,e.contractAddress,e.verificationStatus,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listCollectionsByNFTOwner(e,i){return r.listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},refreshCollectionMetadata(e,i){return r.refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,i).then(e=>e(n,t))}}};var Xi=class extends ji{getCollection(e,t){return Ji(this.configuration).getCollection(e.contractAddress,e.chainName,t).then(e=>e(this.axios,this.basePath))}listCollections(e,t){return Ji(this.configuration).listCollections(e.chainName,e.contractAddress,e.verificationStatus,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listCollectionsByNFTOwner(e,t){return Ji(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}refreshCollectionMetadata(e,t){return Ji(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then(e=>e(this.axios,this.basePath))}};let Zi=function(e){return{signCraftingPayload:async(t,n,r={})=>{V(`signCraftingPayload`,`chainName`,t),V(`signCraftingPayload`,`signCraftingRequest`,n);let i=`/v1/chains/{chain_name}/crafting/sign`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Ni(c,`x-immutable-api-key`,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}}}},Qi=function(e){let t=Zi(e);return{async signCraftingPayload(n,r,i){return Ri(await t.signCraftingPayload(n,r,i),R,z,e)}}},$i=function(e,t,n){let r=Qi(e);return{signCraftingPayload(e,i){return r.signCraftingPayload(e.chainName,e.signCraftingRequest,i).then(e=>e(n,t))}}};var ea=class extends ji{signCraftingPayload(e,t){return Qi(this.configuration).signCraftingPayload(e.chainName,e.signCraftingRequest,t).then(e=>e(this.axios,this.basePath))}};let ta=function(e){return{approvePendingERC191Message:async(t,n={})=>{V(`approvePendingERC191Message`,`messageID`,t);let r=`/guardian/v1/erc191-messages/{messageID}/approve`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`POST`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},approvePendingMessage:async(t,n={})=>{V(`approvePendingMessage`,`messageID`,t);let r=`/guardian/v1/messages/{messageID}/approve`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`POST`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},approvePendingTransaction:async(t,n,r={})=>{V(`approvePendingTransaction`,`payloadHash`,t),V(`approvePendingTransaction`,`transactionApprovalRequest`,n);let i=`/guardian/v1/transactions/{payloadHash}/approve`.replace(`{payloadHash}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},evaluateErc191Message:async(t,n={})=>{V(`evaluateErc191Message`,`eRC191MessageEvaluationRequest`,t);let r=new URL(`/guardian/v1/erc191-messages/evaluate`,B),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Pi(o,e),o[`Content-Type`]=`application/json`,H(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Ii(t,a,e),{url:Li(r),options:a}},evaluateMessage:async(t,n={})=>{V(`evaluateMessage`,`messageEvaluationRequest`,t);let r=new URL(`/guardian/v1/messages/evaluate`,B),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Pi(o,e),o[`Content-Type`]=`application/json`,H(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Ii(t,a,e),{url:Li(r),options:a}},evaluateTransaction:async(t,n,r={})=>{V(`evaluateTransaction`,`id`,t),V(`evaluateTransaction`,`transactionEvaluationRequest`,n);let i=`/guardian/v1/transactions/{id}/evaluate`.replace(`{id}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getErc191MessageByID:async(t,n={})=>{V(`getErc191MessageByID`,`messageID`,t);let r=`/guardian/v1/erc191-messages/{messageID}`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},getMessageByID:async(t,n={})=>{V(`getMessageByID`,`messageID`,t);let r=`/guardian/v1/messages/{messageID}`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},getTransactionByID:async(t,n,r,i={})=>{V(`getTransactionByID`,`transactionID`,t),V(`getTransactionByID`,`chainType`,n);let a=`/guardian/v1/transactions/{transactionID}`.replace(`{transactionID}`,encodeURIComponent(String(t))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={},u={};await Pi(l,e),n!==void 0&&(u.chainType=n),r!==void 0&&(u.chainID=r),H(o,u);let d=s&&s.headers?s.headers:{};return c.headers={...l,...d,...i.headers},{url:Li(o),options:c}}}},na=function(e){let t=ta(e);return{async approvePendingERC191Message(n,r){return Ri(await t.approvePendingERC191Message(n,r),R,z,e)},async approvePendingMessage(n,r){return Ri(await t.approvePendingMessage(n,r),R,z,e)},async approvePendingTransaction(n,r,i){return Ri(await t.approvePendingTransaction(n,r,i),R,z,e)},async evaluateErc191Message(n,r){return Ri(await t.evaluateErc191Message(n,r),R,z,e)},async evaluateMessage(n,r){return Ri(await t.evaluateMessage(n,r),R,z,e)},async evaluateTransaction(n,r,i){return Ri(await t.evaluateTransaction(n,r,i),R,z,e)},async getErc191MessageByID(n,r){return Ri(await t.getErc191MessageByID(n,r),R,z,e)},async getMessageByID(n,r){return Ri(await t.getMessageByID(n,r),R,z,e)},async getTransactionByID(n,r,i,a){return Ri(await t.getTransactionByID(n,r,i,a),R,z,e)}}},ra=function(e,t,n){let r=na(e);return{approvePendingERC191Message(e,i){return r.approvePendingERC191Message(e.messageID,i).then(e=>e(n,t))},approvePendingMessage(e,i){return r.approvePendingMessage(e.messageID,i).then(e=>e(n,t))},approvePendingTransaction(e,i){return r.approvePendingTransaction(e.payloadHash,e.transactionApprovalRequest,i).then(e=>e(n,t))},evaluateErc191Message(e,i){return r.evaluateErc191Message(e.eRC191MessageEvaluationRequest,i).then(e=>e(n,t))},evaluateMessage(e,i){return r.evaluateMessage(e.messageEvaluationRequest,i).then(e=>e(n,t))},evaluateTransaction(e,i){return r.evaluateTransaction(e.id,e.transactionEvaluationRequest,i).then(e=>e(n,t))},getErc191MessageByID(e,i){return r.getErc191MessageByID(e.messageID,i).then(e=>e(n,t))},getMessageByID(e,i){return r.getMessageByID(e.messageID,i).then(e=>e(n,t))},getTransactionByID(e,i){return r.getTransactionByID(e.transactionID,e.chainType,e.chainID,i).then(e=>e(n,t))}}};var ia=class extends ji{approvePendingERC191Message(e,t){return na(this.configuration).approvePendingERC191Message(e.messageID,t).then(e=>e(this.axios,this.basePath))}approvePendingMessage(e,t){return na(this.configuration).approvePendingMessage(e.messageID,t).then(e=>e(this.axios,this.basePath))}approvePendingTransaction(e,t){return na(this.configuration).approvePendingTransaction(e.payloadHash,e.transactionApprovalRequest,t).then(e=>e(this.axios,this.basePath))}evaluateErc191Message(e,t){return na(this.configuration).evaluateErc191Message(e.eRC191MessageEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}evaluateMessage(e,t){return na(this.configuration).evaluateMessage(e.messageEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}evaluateTransaction(e,t){return na(this.configuration).evaluateTransaction(e.id,e.transactionEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}getErc191MessageByID(e,t){return na(this.configuration).getErc191MessageByID(e.messageID,t).then(e=>e(this.axios,this.basePath))}getMessageByID(e,t){return na(this.configuration).getMessageByID(e.messageID,t).then(e=>e(this.axios,this.basePath))}getTransactionByID(e,t){return na(this.configuration).getTransactionByID(e.transactionID,e.chainType,e.chainID,t).then(e=>e(this.axios,this.basePath))}};let aa={Evm:`evm`},oa=function(e){return{getMetadata:async(t,n,r,i={})=>{V(`getMetadata`,`chainName`,t),V(`getMetadata`,`contractAddress`,n),V(`getMetadata`,`metadataId`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))).replace(`{metadata_id}`,encodeURIComponent(String(r))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Li(o),options:c}},listMetadata:async(t,n,r,i,a,o={})=>{V(`listMetadata`,`chainName`,t),V(`listMetadata`,`contractAddress`,n);let s=`/v1/chains/{chain_name}/collections/{contract_address}/metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};r!==void 0&&(f.from_updated_at=r instanceof Date?r.toISOString():r),i!==void 0&&(f.page_cursor=i),a!==void 0&&(f.page_size=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}},listMetadataForChain:async(t,n,r,i,a={})=>{V(`listMetadataForChain`,`chainName`,t);let o=`/v1/chains/{chain_name}/metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,B),c;e&&(c=e.baseOptions);let l={method:`GET`,...c,...a},u={},d={};n!==void 0&&(d.from_updated_at=n instanceof Date?n.toISOString():n),r!==void 0&&(d.page_cursor=r),i!==void 0&&(d.page_size=i),H(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Li(s),options:l}},listStacks:async(t,n,r={})=>{V(`listStacks`,`chainName`,t),V(`listStacks`,`stackId`,n);let i=`/v1/chains/{chain_name}/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={},l={};n&&(l.stack_id=n),H(a,l);let u=o&&o.headers?o.headers:{};return s.headers={...c,...u,...r.headers},{url:Li(a),options:s}},refreshMetadataByID:async(t,n,r,i={})=>{V(`refreshMetadataByID`,`chainName`,t),V(`refreshMetadataByID`,`contractAddress`,n),V(`refreshMetadataByID`,`refreshMetadataByIDRequest`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Ni(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Ii(r,c,e),{url:Li(o),options:c}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{V(`refreshNFTMetadataByTokenID`,`contractAddress`,t),V(`refreshNFTMetadataByTokenID`,`chainName`,n),V(`refreshNFTMetadataByTokenID`,`refreshNFTMetadataByTokenIDRequest`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Ni(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Ii(r,c,e),{url:Li(o),options:c}}}},sa=function(e){let t=oa(e);return{async getMetadata(n,r,i,a){return Ri(await t.getMetadata(n,r,i,a),R,z,e)},async listMetadata(n,r,i,a,o,s){return Ri(await t.listMetadata(n,r,i,a,o,s),R,z,e)},async listMetadataForChain(n,r,i,a,o){return Ri(await t.listMetadataForChain(n,r,i,a,o),R,z,e)},async listStacks(n,r,i){return Ri(await t.listStacks(n,r,i),R,z,e)},async refreshMetadataByID(n,r,i,a){return Ri(await t.refreshMetadataByID(n,r,i,a),R,z,e)},async refreshNFTMetadataByTokenID(n,r,i,a){return Ri(await t.refreshNFTMetadataByTokenID(n,r,i,a),R,z,e)}}},ca=function(e,t,n){let r=sa(e);return{getMetadata(e,i){return r.getMetadata(e.chainName,e.contractAddress,e.metadataId,i).then(e=>e(n,t))},listMetadata(e,i){return r.listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listMetadataForChain(e,i){return r.listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listStacks(e,i){return r.listStacks(e.chainName,e.stackId,i).then(e=>e(n,t))},refreshMetadataByID(e,i){return r.refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,i).then(e=>e(n,t))},refreshNFTMetadataByTokenID(e,i){return r.refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,i).then(e=>e(n,t))}}};var la=class extends ji{getMetadata(e,t){return sa(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then(e=>e(this.axios,this.basePath))}listMetadata(e,t){return sa(this.configuration).listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listMetadataForChain(e,t){return sa(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listStacks(e,t){return sa(this.configuration).listStacks(e.chainName,e.stackId,t).then(e=>e(this.axios,this.basePath))}refreshMetadataByID(e,t){return sa(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then(e=>e(this.axios,this.basePath))}refreshNFTMetadataByTokenID(e,t){return sa(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then(e=>e(this.axios,this.basePath))}};let ua=function(e){return{listFilters:async(t,n,r={})=>{V(`listFilters`,`chainName`,t),V(`listFilters`,`contractAddress`,n);let i=`/v1/chains/{chain_name}/search/filters/{contract_address}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},searchNFTs:async(t,n,r,i,a,o,s,c={})=>{V(`searchNFTs`,`chainName`,t),V(`searchNFTs`,`contractAddress`,n);let l=`/v1/chains/{chain_name}/search/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))),u=new URL(l,B),d;e&&(d=e.baseOptions);let f={method:`GET`,...d,...c},p={},m={};n&&(m.contract_address=n),r!==void 0&&(m.account_address=r),i&&(m.stack_id=i),a!==void 0&&(m.only_include_owner_listings=a),o!==void 0&&(m.page_size=o),s!==void 0&&(m.page_cursor=s),H(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Li(u),options:f}},searchStacks:async(t,n,r,i,a,o,s,c,l,u,d,f={})=>{V(`searchStacks`,`chainName`,t),V(`searchStacks`,`contractAddress`,n);let p=`/v1/chains/{chain_name}/search/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))),m=new URL(p,B),h;e&&(h=e.baseOptions);let g={method:`GET`,...h,...f},_={},v={};n&&(v.contract_address=n),r!==void 0&&(v.account_address=r),i!==void 0&&(v.only_include_owner_listings=i),a!==void 0&&(v.only_if_has_active_listings=a),o!==void 0&&(v.traits=o),s!==void 0&&(v.keyword=s),c!==void 0&&(v.payment_token=c),l!==void 0&&(v.sort_by=l),u!==void 0&&(v.page_size=u),d!==void 0&&(v.page_cursor=d),H(m,v);let y=h&&h.headers?h.headers:{};return g.headers={..._,...y,...f.headers},{url:Li(m),options:g}}}},da=function(e){let t=ua(e);return{async listFilters(n,r,i){return Ri(await t.listFilters(n,r,i),R,z,e)},async searchNFTs(n,r,i,a,o,s,c,l){return Ri(await t.searchNFTs(n,r,i,a,o,s,c,l),R,z,e)},async searchStacks(n,r,i,a,o,s,c,l,u,d,f,p){return Ri(await t.searchStacks(n,r,i,a,o,s,c,l,u,d,f,p),R,z,e)}}},fa=function(e,t,n){let r=da(e);return{listFilters(e,i){return r.listFilters(e.chainName,e.contractAddress,i).then(e=>e(n,t))},searchNFTs(e,i){return r.searchNFTs(e.chainName,e.contractAddress,e.accountAddress,e.stackId,e.onlyIncludeOwnerListings,e.pageSize,e.pageCursor,i).then(e=>e(n,t))},searchStacks(e,i){return r.searchStacks(e.chainName,e.contractAddress,e.accountAddress,e.onlyIncludeOwnerListings,e.onlyIfHasActiveListings,e.traits,e.keyword,e.paymentToken,e.sortBy,e.pageSize,e.pageCursor,i).then(e=>e(n,t))}}};var pa=class extends ji{listFilters(e,t){return da(this.configuration).listFilters(e.chainName,e.contractAddress,t).then(e=>e(this.axios,this.basePath))}searchNFTs(e,t){return da(this.configuration).searchNFTs(e.chainName,e.contractAddress,e.accountAddress,e.stackId,e.onlyIncludeOwnerListings,e.pageSize,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}searchStacks(e,t){return da(this.configuration).searchStacks(e.chainName,e.contractAddress,e.accountAddress,e.onlyIncludeOwnerListings,e.onlyIfHasActiveListings,e.traits,e.keyword,e.paymentToken,e.sortBy,e.pageSize,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}};let ma={CheapestFirst:`cheapest_first`},ha=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{V(`listAllNFTOwners`,`chainName`,t);let o=`/v1/chains/{chain_name}/nft-owners`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,B),c;e&&(c=e.baseOptions);let l={method:`GET`,...c,...a},u={},d={};n!==void 0&&(d.from_updated_at=n instanceof Date?n.toISOString():n),r!==void 0&&(d.page_cursor=r),i!==void 0&&(d.page_size=i),H(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Li(s),options:l}},listNFTOwners:async(t,n,r,i,a,o={})=>{V(`listNFTOwners`,`contractAddress`,t),V(`listNFTOwners`,`tokenId`,n),V(`listNFTOwners`,`chainName`,r);let s=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{token_id}`,encodeURIComponent(String(n))).replace(`{chain_name}`,encodeURIComponent(String(r))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};i!==void 0&&(f.page_cursor=i),a!==void 0&&(f.page_size=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}},listOwnersByContractAddress:async(t,n,r,i,a,o,s={})=>{V(`listOwnersByContractAddress`,`contractAddress`,t),V(`listOwnersByContractAddress`,`chainName`,n);let c=`/v1/chains/{chain_name}/collections/{contract_address}/owners`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),l=new URL(c,B),u;e&&(u=e.baseOptions);let d={method:`GET`,...u,...s},f={},p={};r&&(p.account_address=r),i!==void 0&&(p.from_updated_at=i instanceof Date?i.toISOString():i),a!==void 0&&(p.page_cursor=a),o!==void 0&&(p.page_size=o),H(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Li(l),options:d}}}},ga=function(e){let t=ha(e);return{async listAllNFTOwners(n,r,i,a,o){return Ri(await t.listAllNFTOwners(n,r,i,a,o),R,z,e)},async listNFTOwners(n,r,i,a,o,s){return Ri(await t.listNFTOwners(n,r,i,a,o,s),R,z,e)},async listOwnersByContractAddress(n,r,i,a,o,s,c){return Ri(await t.listOwnersByContractAddress(n,r,i,a,o,s,c),R,z,e)}}},_a=function(e,t,n){let r=ga(e);return{listAllNFTOwners(e,i){return r.listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listNFTOwners(e,i){return r.listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listOwnersByContractAddress(e,i){return r.listOwnersByContractAddress(e.contractAddress,e.chainName,e.accountAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var va=class extends ji{listAllNFTOwners(e,t){return ga(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listNFTOwners(e,t){return ga(this.configuration).listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listOwnersByContractAddress(e,t){return ga(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.accountAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let ya=function(e){return{createMintRequest:async(t,n,r,i={})=>{V(`createMintRequest`,`contractAddress`,t),V(`createMintRequest`,`chainName`,n),V(`createMintRequest`,`createMintRequestRequest`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Ni(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Ii(r,c,e),{url:Li(o),options:c}},getMintRequest:async(t,n,r,i={})=>{V(`getMintRequest`,`contractAddress`,t),V(`getMintRequest`,`chainName`,n),V(`getMintRequest`,`referenceId`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests/{reference_id}`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))).replace(`{reference_id}`,encodeURIComponent(String(r))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};await Ni(l,`x-immutable-api-key`,e),H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Li(o),options:c}},getNFT:async(t,n,r,i={})=>{V(`getNFT`,`contractAddress`,t),V(`getNFT`,`tokenId`,n),V(`getNFT`,`chainName`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{token_id}`,encodeURIComponent(String(n))).replace(`{chain_name}`,encodeURIComponent(String(r))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Li(o),options:c}},listAllNFTs:async(t,n,r,i,a={})=>{V(`listAllNFTs`,`chainName`,t);let o=`/v1/chains/{chain_name}/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,B),c;e&&(c=e.baseOptions);let l={method:`GET`,...c,...a},u={},d={};n!==void 0&&(d.from_updated_at=n instanceof Date?n.toISOString():n),r!==void 0&&(d.page_cursor=r),i!==void 0&&(d.page_size=i),H(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Li(s),options:l}},listMintRequests:async(t,n,r,i,a,o={})=>{V(`listMintRequests`,`contractAddress`,t),V(`listMintRequests`,`chainName`,n);let s=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};await Ni(d,`x-immutable-api-key`,e),r!==void 0&&(f.page_cursor=r),i!==void 0&&(f.page_size=i),a!==void 0&&(f.status=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}},listNFTs:async(t,n,r,i,a,o,s={})=>{V(`listNFTs`,`contractAddress`,t),V(`listNFTs`,`chainName`,n);let c=`/v1/chains/{chain_name}/collections/{contract_address}/nfts`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),l=new URL(c,B),u;e&&(u=e.baseOptions);let d={method:`GET`,...u,...s},f={},p={};r&&(p.token_id=r),i!==void 0&&(p.from_updated_at=i instanceof Date?i.toISOString():i),a!==void 0&&(p.page_cursor=a),o!==void 0&&(p.page_size=o),H(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Li(l),options:d}},listNFTsByAccountAddress:async(t,n,r,i,a,o,s,c={})=>{V(`listNFTsByAccountAddress`,`accountAddress`,t),V(`listNFTsByAccountAddress`,`chainName`,n);let l=`/v1/chains/{chain_name}/accounts/{account_address}/nfts`.replace(`{account_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),u=new URL(l,B),d;e&&(d=e.baseOptions);let f={method:`GET`,...d,...c},p={},m={};r!==void 0&&(m.contract_address=r),i&&(m.token_id=i),a!==void 0&&(m.from_updated_at=a instanceof Date?a.toISOString():a),o!==void 0&&(m.page_cursor=o),s!==void 0&&(m.page_size=s),H(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Li(u),options:f}}}},ba=function(e){let t=ya(e);return{async createMintRequest(n,r,i,a){return Ri(await t.createMintRequest(n,r,i,a),R,z,e)},async getMintRequest(n,r,i,a){return Ri(await t.getMintRequest(n,r,i,a),R,z,e)},async getNFT(n,r,i,a){return Ri(await t.getNFT(n,r,i,a),R,z,e)},async listAllNFTs(n,r,i,a,o){return Ri(await t.listAllNFTs(n,r,i,a,o),R,z,e)},async listMintRequests(n,r,i,a,o,s){return Ri(await t.listMintRequests(n,r,i,a,o,s),R,z,e)},async listNFTs(n,r,i,a,o,s,c){return Ri(await t.listNFTs(n,r,i,a,o,s,c),R,z,e)},async listNFTsByAccountAddress(n,r,i,a,o,s,c,l){return Ri(await t.listNFTsByAccountAddress(n,r,i,a,o,s,c,l),R,z,e)}}},xa=function(e,t,n){let r=ba(e);return{createMintRequest(e,i){return r.createMintRequest(e.contractAddress,e.chainName,e.createMintRequestRequest,i).then(e=>e(n,t))},getMintRequest(e,i){return r.getMintRequest(e.contractAddress,e.chainName,e.referenceId,i).then(e=>e(n,t))},getNFT(e,i){return r.getNFT(e.contractAddress,e.tokenId,e.chainName,i).then(e=>e(n,t))},listAllNFTs(e,i){return r.listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listMintRequests(e,i){return r.listMintRequests(e.contractAddress,e.chainName,e.pageCursor,e.pageSize,e.status,i).then(e=>e(n,t))},listNFTs(e,i){return r.listNFTs(e.contractAddress,e.chainName,e.tokenId,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listNFTsByAccountAddress(e,i){return r.listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.tokenId,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Sa=class extends ji{createMintRequest(e,t){return ba(this.configuration).createMintRequest(e.contractAddress,e.chainName,e.createMintRequestRequest,t).then(e=>e(this.axios,this.basePath))}getMintRequest(e,t){return ba(this.configuration).getMintRequest(e.contractAddress,e.chainName,e.referenceId,t).then(e=>e(this.axios,this.basePath))}getNFT(e,t){return ba(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then(e=>e(this.axios,this.basePath))}listAllNFTs(e,t){return ba(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listMintRequests(e,t){return ba(this.configuration).listMintRequests(e.contractAddress,e.chainName,e.pageCursor,e.pageSize,e.status,t).then(e=>e(this.axios,this.basePath))}listNFTs(e,t){return ba(this.configuration).listNFTs(e.contractAddress,e.chainName,e.tokenId,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listNFTsByAccountAddress(e,t){return ba(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.tokenId,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let Ca=function(e){return{cancelOrders:async(t,n,r={})=>{V(`cancelOrders`,`chainName`,t),V(`cancelOrders`,`cancelOrdersRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/cancel`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},createBid:async(t,n,r={})=>{V(`createBid`,`chainName`,t),V(`createBid`,`createBidRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},createCollectionBid:async(t,n,r={})=>{V(`createCollectionBid`,`chainName`,t),V(`createCollectionBid`,`createCollectionBidRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/collection-bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},createListing:async(t,n,r={})=>{V(`createListing`,`chainName`,t),V(`createListing`,`createListingRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/listings`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},fulfillmentData:async(t,n,r={})=>{V(`fulfillmentData`,`chainName`,t),V(`fulfillmentData`,`fulfillmentDataRequest`,n);let i=`/v1/chains/{chain_name}/orders/fulfillment-data`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getBid:async(t,n,r={})=>{V(`getBid`,`chainName`,t),V(`getBid`,`bidId`,n);let i=`/v1/chains/{chain_name}/orders/bids/{bid_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{bid_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},getCollectionBid:async(t,n,r={})=>{V(`getCollectionBid`,`chainName`,t),V(`getCollectionBid`,`collectionBidId`,n);let i=`/v1/chains/{chain_name}/orders/collection-bids/{collection_bid_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{collection_bid_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},getListing:async(t,n,r={})=>{V(`getListing`,`chainName`,t),V(`getListing`,`listingId`,n);let i=`/v1/chains/{chain_name}/orders/listings/{listing_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{listing_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},getTrade:async(t,n,r={})=>{V(`getTrade`,`chainName`,t),V(`getTrade`,`tradeId`,n);let i=`/v1/chains/{chain_name}/trades/{trade_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{trade_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},listBids:async(t,n,r,i,a,o,s,c,l,u,d,f,p={})=>{V(`listBids`,`chainName`,t);let m=`/v1/chains/{chain_name}/orders/bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),h=new URL(m,B),g;e&&(g=e.baseOptions);let _={method:`GET`,...g,...p},v={},y={};n!==void 0&&(y.status=n),r!==void 0&&(y.buy_item_contract_address=r),i!==void 0&&(y.sell_item_contract_address=i),a!==void 0&&(y.account_address=a),o!==void 0&&(y.buy_item_metadata_id=o),s!==void 0&&(y.buy_item_token_id=s),c!==void 0&&(y.from_updated_at=c instanceof Date?c.toISOString():c),l!==void 0&&(y.page_size=l),u!==void 0&&(y.sort_by=u),d!==void 0&&(y.sort_direction=d),f!==void 0&&(y.page_cursor=f),H(h,y);let b=g&&g.headers?g.headers:{};return _.headers={...v,...b,...p.headers},{url:Li(h),options:_}},listCollectionBids:async(t,n,r,i,a,o,s,c,l,u,d={})=>{V(`listCollectionBids`,`chainName`,t);let f=`/v1/chains/{chain_name}/orders/collection-bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),p=new URL(f,B),m;e&&(m=e.baseOptions);let h={method:`GET`,...m,...d},g={},_={};n!==void 0&&(_.status=n),r!==void 0&&(_.buy_item_contract_address=r),i!==void 0&&(_.sell_item_contract_address=i),a!==void 0&&(_.account_address=a),o!==void 0&&(_.from_updated_at=o instanceof Date?o.toISOString():o),s!==void 0&&(_.page_size=s),c!==void 0&&(_.sort_by=c),l!==void 0&&(_.sort_direction=l),u!==void 0&&(_.page_cursor=u),H(p,_);let v=m&&m.headers?m.headers:{};return h.headers={...g,...v,...d.headers},{url:Li(p),options:h}},listListings:async(t,n,r,i,a,o,s,c,l,u,d,f,p,m={})=>{V(`listListings`,`chainName`,t);let h=`/v1/chains/{chain_name}/orders/listings`.replace(`{chain_name}`,encodeURIComponent(String(t))),g=new URL(h,B),_;e&&(_=e.baseOptions);let v={method:`GET`,..._,...m},y={},b={};n!==void 0&&(b.status=n),r!==void 0&&(b.sell_item_contract_address=r),i!==void 0&&(b.buy_item_type=i),a!==void 0&&(b.buy_item_contract_address=a),o!==void 0&&(b.account_address=o),s!==void 0&&(b.sell_item_metadata_id=s),c!==void 0&&(b.sell_item_token_id=c),l!==void 0&&(b.from_updated_at=l instanceof Date?l.toISOString():l),u!==void 0&&(b.page_size=u),d!==void 0&&(b.sort_by=d),f!==void 0&&(b.sort_direction=f),p!==void 0&&(b.page_cursor=p),H(g,b);let x=_&&_.headers?_.headers:{};return v.headers={...y,...x,...m.headers},{url:Li(g),options:v}},listTrades:async(t,n,r,i,a,o,s,c,l={})=>{V(`listTrades`,`chainName`,t);let u=`/v1/chains/{chain_name}/trades`.replace(`{chain_name}`,encodeURIComponent(String(t))),d=new URL(u,B),f;e&&(f=e.baseOptions);let p={method:`GET`,...f,...l},m={},h={};n!==void 0&&(h.account_address=n),r!==void 0&&(h.sell_item_contract_address=r),i!==void 0&&(h.from_indexed_at=i instanceof Date?i.toISOString():i),a!==void 0&&(h.page_size=a),o!==void 0&&(h.sort_by=o),s!==void 0&&(h.sort_direction=s),c!==void 0&&(h.page_cursor=c),H(d,h);let g=f&&f.headers?f.headers:{};return p.headers={...m,...g,...l.headers},{url:Li(d),options:p}}}},wa=function(e){let t=Ca(e);return{async cancelOrders(n,r,i){return Ri(await t.cancelOrders(n,r,i),R,z,e)},async createBid(n,r,i){return Ri(await t.createBid(n,r,i),R,z,e)},async createCollectionBid(n,r,i){return Ri(await t.createCollectionBid(n,r,i),R,z,e)},async createListing(n,r,i){return Ri(await t.createListing(n,r,i),R,z,e)},async fulfillmentData(n,r,i){return Ri(await t.fulfillmentData(n,r,i),R,z,e)},async getBid(n,r,i){return Ri(await t.getBid(n,r,i),R,z,e)},async getCollectionBid(n,r,i){return Ri(await t.getCollectionBid(n,r,i),R,z,e)},async getListing(n,r,i){return Ri(await t.getListing(n,r,i),R,z,e)},async getTrade(n,r,i){return Ri(await t.getTrade(n,r,i),R,z,e)},async listBids(n,r,i,a,o,s,c,l,u,d,f,p,m){return Ri(await t.listBids(n,r,i,a,o,s,c,l,u,d,f,p,m),R,z,e)},async listCollectionBids(n,r,i,a,o,s,c,l,u,d,f){return Ri(await t.listCollectionBids(n,r,i,a,o,s,c,l,u,d,f),R,z,e)},async listListings(n,r,i,a,o,s,c,l,u,d,f,p,m,h){return Ri(await t.listListings(n,r,i,a,o,s,c,l,u,d,f,p,m,h),R,z,e)},async listTrades(n,r,i,a,o,s,c,l,u){return Ri(await t.listTrades(n,r,i,a,o,s,c,l,u),R,z,e)}}},Ta=function(e,t,n){let r=wa(e);return{cancelOrders(e,i){return r.cancelOrders(e.chainName,e.cancelOrdersRequestBody,i).then(e=>e(n,t))},createBid(e,i){return r.createBid(e.chainName,e.createBidRequestBody,i).then(e=>e(n,t))},createCollectionBid(e,i){return r.createCollectionBid(e.chainName,e.createCollectionBidRequestBody,i).then(e=>e(n,t))},createListing(e,i){return r.createListing(e.chainName,e.createListingRequestBody,i).then(e=>e(n,t))},fulfillmentData(e,i){return r.fulfillmentData(e.chainName,e.fulfillmentDataRequest,i).then(e=>e(n,t))},getBid(e,i){return r.getBid(e.chainName,e.bidId,i).then(e=>e(n,t))},getCollectionBid(e,i){return r.getCollectionBid(e.chainName,e.collectionBidId,i).then(e=>e(n,t))},getListing(e,i){return r.getListing(e.chainName,e.listingId,i).then(e=>e(n,t))},getTrade(e,i){return r.getTrade(e.chainName,e.tradeId,i).then(e=>e(n,t))},listBids(e,i){return r.listBids(e.chainName,e.status,e.buyItemContractAddress,e.sellItemContractAddress,e.accountAddress,e.buyItemMetadataId,e.buyItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then(e=>e(n,t))},listCollectionBids(e,i){return r.listCollectionBids(e.chainName,e.status,e.buyItemContractAddress,e.sellItemContractAddress,e.accountAddress,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then(e=>e(n,t))},listListings(e,i){return r.listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemType,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then(e=>e(n,t))},listTrades(e,i){return r.listTrades(e.chainName,e.accountAddress,e.sellItemContractAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then(e=>e(n,t))}}};var Ea=class extends ji{cancelOrders(e,t){return wa(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then(e=>e(this.axios,this.basePath))}createBid(e,t){return wa(this.configuration).createBid(e.chainName,e.createBidRequestBody,t).then(e=>e(this.axios,this.basePath))}createCollectionBid(e,t){return wa(this.configuration).createCollectionBid(e.chainName,e.createCollectionBidRequestBody,t).then(e=>e(this.axios,this.basePath))}createListing(e,t){return wa(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then(e=>e(this.axios,this.basePath))}fulfillmentData(e,t){return wa(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then(e=>e(this.axios,this.basePath))}getBid(e,t){return wa(this.configuration).getBid(e.chainName,e.bidId,t).then(e=>e(this.axios,this.basePath))}getCollectionBid(e,t){return wa(this.configuration).getCollectionBid(e.chainName,e.collectionBidId,t).then(e=>e(this.axios,this.basePath))}getListing(e,t){return wa(this.configuration).getListing(e.chainName,e.listingId,t).then(e=>e(this.axios,this.basePath))}getTrade(e,t){return wa(this.configuration).getTrade(e.chainName,e.tradeId,t).then(e=>e(this.axios,this.basePath))}listBids(e,t){return wa(this.configuration).listBids(e.chainName,e.status,e.buyItemContractAddress,e.sellItemContractAddress,e.accountAddress,e.buyItemMetadataId,e.buyItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}listCollectionBids(e,t){return wa(this.configuration).listCollectionBids(e.chainName,e.status,e.buyItemContractAddress,e.sellItemContractAddress,e.accountAddress,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}listListings(e,t){return wa(this.configuration).listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemType,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}listTrades(e,t){return wa(this.configuration).listTrades(e.chainName,e.accountAddress,e.sellItemContractAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}};let Da={CreatedAt:`created_at`,UpdatedAt:`updated_at`,SellItemAmount:`sell_item_amount`},Oa={Asc:`asc`,Desc:`desc`},ka={CreatedAt:`created_at`,UpdatedAt:`updated_at`,SellItemAmount:`sell_item_amount`},Aa={Asc:`asc`,Desc:`desc`},ja={Native:`NATIVE`,Erc20:`ERC20`},Ma={CreatedAt:`created_at`,UpdatedAt:`updated_at`,BuyItemAmount:`buy_item_amount`},Na={Asc:`asc`,Desc:`desc`},Pa={IndexedAt:`indexed_at`},Fa={Asc:`asc`,Desc:`desc`},Ia=function(e){return{createCounterfactualAddressV2:async(t,n,r={})=>{V(`createCounterfactualAddressV2`,`chainName`,t),V(`createCounterfactualAddressV2`,`createCounterfactualAddressRequest`,n);let i=`/v2/chains/{chain_name}/passport/counterfactual-address`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getLinkedAddresses:async(t,n,r={})=>{V(`getLinkedAddresses`,`userId`,t),V(`getLinkedAddresses`,`chainName`,n);let i=`/v1/chains/{chain_name}/passport/users/{user_id}/linked-addresses`.replace(`{user_id}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};await Pi(c,e),H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{V(`getLinkedAddressesDeprecated`,`userId`,t);let r=`/passport-mr/v1/users/{userId}/linked-addresses`.replace(`{userId}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},getTransactionMetadata:async(t,n,r={})=>{V(`getTransactionMetadata`,`chainName`,t),V(`getTransactionMetadata`,`getTransactionMetadataRequest`,n);let i=`/v1/chains/{chain_name}/passport/transaction-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getTypedDataMetadata:async(t,n,r={})=>{V(`getTypedDataMetadata`,`chainName`,t),V(`getTypedDataMetadata`,`getTypedDataMetadataRequest`,n);let i=`/v1/chains/{chain_name}/passport/typeddata-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getUserMetadata:async(t,n={})=>{V(`getUserMetadata`,`userId`,t);let r=`/passport-mr/v1/users/{user_id}/metadata`.replace(`{user_id}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Ni(s,`x-immutable-api-key`,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}}}},La=function(e){let t=Ia(e);return{async createCounterfactualAddressV2(n,r,i){return Ri(await t.createCounterfactualAddressV2(n,r,i),R,z,e)},async getLinkedAddresses(n,r,i){return Ri(await t.getLinkedAddresses(n,r,i),R,z,e)},async getLinkedAddressesDeprecated(n,r){return Ri(await t.getLinkedAddressesDeprecated(n,r),R,z,e)},async getTransactionMetadata(n,r,i){return Ri(await t.getTransactionMetadata(n,r,i),R,z,e)},async getTypedDataMetadata(n,r,i){return Ri(await t.getTypedDataMetadata(n,r,i),R,z,e)},async getUserMetadata(n,r){return Ri(await t.getUserMetadata(n,r),R,z,e)}}},Ra=function(e,t,n){let r=La(e);return{createCounterfactualAddressV2(e,i){return r.createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,i).then(e=>e(n,t))},getLinkedAddresses(e,i){return r.getLinkedAddresses(e.userId,e.chainName,i).then(e=>e(n,t))},getLinkedAddressesDeprecated(e,i){return r.getLinkedAddressesDeprecated(e.userId,i).then(e=>e(n,t))},getTransactionMetadata(e,i){return r.getTransactionMetadata(e.chainName,e.getTransactionMetadataRequest,i).then(e=>e(n,t))},getTypedDataMetadata(e,i){return r.getTypedDataMetadata(e.chainName,e.getTypedDataMetadataRequest,i).then(e=>e(n,t))},getUserMetadata(e,i){return r.getUserMetadata(e.userId,i).then(e=>e(n,t))}}};var za=class extends ji{createCounterfactualAddressV2(e,t){return La(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then(e=>e(this.axios,this.basePath))}getLinkedAddresses(e,t){return La(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then(e=>e(this.axios,this.basePath))}getLinkedAddressesDeprecated(e,t){return La(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then(e=>e(this.axios,this.basePath))}getTransactionMetadata(e,t){return La(this.configuration).getTransactionMetadata(e.chainName,e.getTransactionMetadataRequest,t).then(e=>e(this.axios,this.basePath))}getTypedDataMetadata(e,t){return La(this.configuration).getTypedDataMetadata(e.chainName,e.getTypedDataMetadataRequest,t).then(e=>e(this.axios,this.basePath))}getUserMetadata(e,t){return La(this.configuration).getUserMetadata(e.userId,t).then(e=>e(this.axios,this.basePath))}};let Ba=function(e){return{getUserInfo:async(t={})=>{let n=new URL(`/passport-profile/v1/user/info`,B),r;e&&(r=e.baseOptions);let i={method:`GET`,...r,...t},a={};await Pi(a,e),H(n,{});let o=r&&r.headers?r.headers:{};return i.headers={...a,...o,...t.headers},{url:Li(n),options:i}},linkWalletV2:async(t,n={})=>{let r=new URL(`/passport-profile/v2/linked-wallets`,B),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Pi(o,e),o[`Content-Type`]=`application/json`,H(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Ii(t,a,e),{url:Li(r),options:a}}}},Va=function(e){let t=Ba(e);return{async getUserInfo(n){return Ri(await t.getUserInfo(n),R,z,e)},async linkWalletV2(n,r){return Ri(await t.linkWalletV2(n,r),R,z,e)}}},Ha=function(e,t,n){let r=Va(e);return{getUserInfo(e){return r.getUserInfo(e).then(e=>e(n,t))},linkWalletV2(e={},i){return r.linkWalletV2(e.linkWalletV2Request,i).then(e=>e(n,t))}}};var Ua=class extends ji{getUserInfo(e){return Va(this.configuration).getUserInfo(e).then(e=>e(this.axios,this.basePath))}linkWalletV2(e={},t){return Va(this.configuration).linkWalletV2(e.linkWalletV2Request,t).then(e=>e(this.axios,this.basePath))}};let Wa=function(e){return{quotesForNFTs:async(t,n,r,i,a,o={})=>{V(`quotesForNFTs`,`chainName`,t),V(`quotesForNFTs`,`contractAddress`,n),V(`quotesForNFTs`,`tokenId`,r);let s=`/v1/chains/{chain_name}/quotes/{contract_address}/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};r&&(f.token_id=r),i!==void 0&&(f.payment_token=i),a!==void 0&&(f.page_cursor=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}},quotesForStacks:async(t,n,r,i,a,o={})=>{V(`quotesForStacks`,`chainName`,t),V(`quotesForStacks`,`contractAddress`,n),V(`quotesForStacks`,`stackId`,r);let s=`/v1/chains/{chain_name}/quotes/{contract_address}/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};r&&(f.stack_id=r),i!==void 0&&(f.payment_token=i),a!==void 0&&(f.page_cursor=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}}}},Ga=function(e){let t=Wa(e);return{async quotesForNFTs(n,r,i,a,o,s){return Ri(await t.quotesForNFTs(n,r,i,a,o,s),R,z,e)},async quotesForStacks(n,r,i,a,o,s){return Ri(await t.quotesForStacks(n,r,i,a,o,s),R,z,e)}}},Ka=function(e,t,n){let r=Ga(e);return{quotesForNFTs(e,i){return r.quotesForNFTs(e.chainName,e.contractAddress,e.tokenId,e.paymentToken,e.pageCursor,i).then(e=>e(n,t))},quotesForStacks(e,i){return r.quotesForStacks(e.chainName,e.contractAddress,e.stackId,e.paymentToken,e.pageCursor,i).then(e=>e(n,t))}}};var qa=class extends ji{quotesForNFTs(e,t){return Ga(this.configuration).quotesForNFTs(e.chainName,e.contractAddress,e.tokenId,e.paymentToken,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}quotesForStacks(e,t){return Ga(this.configuration).quotesForStacks(e.chainName,e.contractAddress,e.stackId,e.paymentToken,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}};let Ja=function(e){return{getERC20Token:async(t,n,r={})=>{V(`getERC20Token`,`contractAddress`,t),V(`getERC20Token`,`chainName`,n);let i=`/v1/chains/{chain_name}/tokens/{contract_address}`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},listERC20Tokens:async(t,n,r,i,a,o,s={})=>{V(`listERC20Tokens`,`chainName`,t);let c=`/v1/chains/{chain_name}/tokens`.replace(`{chain_name}`,encodeURIComponent(String(t))),l=new URL(c,B),u;e&&(u=e.baseOptions);let d={method:`GET`,...u,...s},f={},p={};n!==void 0&&(p.from_updated_at=n instanceof Date?n.toISOString():n),r&&(p.verification_status=r),i!==void 0&&(p.is_canonical=i),a!==void 0&&(p.page_cursor=a),o!==void 0&&(p.page_size=o),H(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Li(l),options:d}}}},Ya=function(e){let t=Ja(e);return{async getERC20Token(n,r,i){return Ri(await t.getERC20Token(n,r,i),R,z,e)},async listERC20Tokens(n,r,i,a,o,s,c){return Ri(await t.listERC20Tokens(n,r,i,a,o,s,c),R,z,e)}}},Xa=function(e,t,n){let r=Ya(e);return{getERC20Token(e,i){return r.getERC20Token(e.contractAddress,e.chainName,i).then(e=>e(n,t))},listERC20Tokens(e,i){return r.listERC20Tokens(e.chainName,e.fromUpdatedAt,e.verificationStatus,e.isCanonical,e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Za=class extends ji{getERC20Token(e,t){return Ya(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then(e=>e(this.axios,this.basePath))}listERC20Tokens(e,t){return Ya(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.verificationStatus,e.isCanonical,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}},Qa=class{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(e={}){this.apiKey=e.apiKey,this.username=e.username,this.password=e.password,this.accessToken=e.accessToken,this.basePath=e.basePath,this.baseOptions=e.baseOptions,this.formDataCtor=e.formDataCtor}isJsonMime(e){return e!==null&&(RegExp(`^(application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(;.*)?$`,`i`).test(e)||e.toLowerCase()===`application/json-patch+json`)}};let $a={ValidationError:`VALIDATION_ERROR`},eo={UnauthorisedRequest:`UNAUTHORISED_REQUEST`},to={AuthenticationError:`AUTHENTICATION_ERROR`},no={ResourceNotFound:`RESOURCE_NOT_FOUND`},ro={ConflictError:`CONFLICT_ERROR`},io={TooManyRequestsError:`TOO_MANY_REQUESTS_ERROR`},ao={InternalServerError:`INTERNAL_SERVER_ERROR`},oo={NotImplementedError:`NOT_IMPLEMENTED_ERROR`},so={Active:`ACTIVE`},co={Mint:`mint`,Burn:`burn`,Transfer:`transfer`,Sale:`sale`,Deposit:`deposit`,Withdrawal:`withdrawal`},lo={Verified:`verified`,Unverified:`unverified`,Spam:`spam`,Inactive:`inactive`},uo={Cancelled:`CANCELLED`},fo={OnChain:`ON_CHAIN`,OffChain:`OFF_CHAIN`,Underfunded:`UNDERFUNDED`},po={Erc721:`ERC721`,Erc1155:`ERC1155`},mo={Erc1155Collection:`ERC1155_COLLECTION`},ho={Erc1155:`ERC1155`},go={Erc20Approve:`ERC20_APPROVE`},_o={Erc20:`ERC20`},vo={Erc20TransferFrom:`ERC20_TRANSFER_FROM`},yo={Erc20Transfer:`ERC20_TRANSFER`},bo={Erc721Approve:`ERC721_APPROVE`},xo={Erc721Collection:`ERC721_COLLECTION`,Erc1155Collection:`ERC1155_COLLECTION`},So={Erc721:`ERC721`},Co={Erc721SafeTransferFromBatch:`ERC721_SAFE_TRANSFER_FROM_BATCH`},wo={Erc721TransferFrom:`ERC721_TRANSFER_FROM`},To={Expired:`EXPIRED`},Eo={Filled:`FILLED`},Do={Royalty:`ROYALTY`,MakerEcosystem:`MAKER_ECOSYSTEM`,TakerEcosystem:`TAKER_ECOSYSTEM`,Protocol:`PROTOCOL`},Oo={Filled:`FILLED`},ko={Verified:`verified`,Unverified:`unverified`,Spam:`spam`,Inactive:`inactive`},Ao={Inactive:`INACTIVE`},jo={Erc20:`ERC20`},Mo={Royalty:`ROYALTY`,MakerEcosystem:`MAKER_ECOSYSTEM`,TakerEcosystem:`TAKER_ECOSYSTEM`,Protocol:`PROTOCOL`},No={Native:`NATIVE`},Po={Erc721:`ERC721`,Erc1155:`ERC1155`},Fo={Otp:`otp`,Web:`web`},Io={Pending:`pending`,Succeeded:`succeeded`,Failed:`failed`},Lo={Erc721:`ERC721`,Erc1155:`ERC1155`},Ro={Number:`number`,BoostPercentage:`boost_percentage`,BoostNumber:`boost_number`,Date:`date`},zo={Erc721SetApprovalForAll:`ERC721_SET_APPROVAL_FOR_ALL`,Erc1155SetApprovalForAll:`ERC1155_SET_APPROVAL_FOR_ALL`},Bo={Native:`NATIVE`,Erc20:`ERC20`,Erc721:`ERC721`,Erc1155:`ERC1155`,Erc721Collection:`ERC721_COLLECTION`,Erc1155Collection:`ERC1155_COLLECTION`},Vo={Requested:`requested`,Approved:`approved`,Rejected:`rejected`,Removed:`removed`,Added:`added`},Ho={Listing:`LISTING`,Bid:`BID`,CollectionBid:`COLLECTION_BID`},Uo={Pending:`PENDING`,Active:`ACTIVE`,Inactive:`INACTIVE`,Filled:`FILLED`,Expired:`EXPIRED`,Cancelled:`CANCELLED`},Wo={Common:`common`,Uncommon:`uncommon`,Rare:`rare`,Epic:`epic`,Legendary:`legendary`},Go={Pending:`PENDING`},Ko={FullRestricted:`FULL_RESTRICTED`,PartialRestricted:`PARTIAL_RESTRICTED`},qo={Royalty:`ROYALTY`},Jo={SeaportCreateListingMetadata:`SEAPORT_CREATE_LISTING_METADATA`},Yo={Erc1155Collection:`ERC1155Collection`},Xo={Erc1155:`ERC1155`},Zo={Erc20:`ERC20`},Qo={Erc721Collection:`ERC721Collection`},$o={Erc721:`ERC721`},es={Erc20:`ERC20`,Native:`NATIVE`},ts={SeaportFulfillAvailableAdvancedOrders:`SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS`},ns={Native:`NATIVE`},rs={Malicious:`malicious`,Benign:`benign`,Warning:`warning`,Unknown:`unknown`,Info:`info`},is={Erc20:`ERC20`},as={Evm:`evm`},os={Otp:`otp`,Web:`web`},ss={Unknown:`UNKNOWN`},cs={Unknown:`UNKNOWN`},ls={Success:`success`,Error:`error`,SimulationFailed:`simulation_failed`},us={Erc20:`ERC20`,Erc721:`ERC721`,Erc1155:`ERC1155`},ds={Completed:`completed`,Pending:`pending`},fs={Evm:`evm`};var ps=Ai({APIError400AllOfCodeEnum:()=>$a,APIError401AllOfCodeEnum:()=>eo,APIError403AllOfCodeEnum:()=>to,APIError404AllOfCodeEnum:()=>no,APIError409AllOfCodeEnum:()=>ro,APIError429AllOfCodeEnum:()=>io,APIError500AllOfCodeEnum:()=>ao,APIError501AllOfCodeEnum:()=>oo,ActiveOrderStatusNameEnum:()=>so,ActivitiesApi:()=>Hi,ActivitiesApiAxiosParamCreator:()=>zi,ActivitiesApiFactory:()=>Vi,ActivitiesApiFp:()=>Bi,ActivityType:()=>co,AssetVerificationStatus:()=>lo,CancelledOrderStatusCancellationTypeEnum:()=>fo,CancelledOrderStatusNameEnum:()=>uo,ChainsApi:()=>Ki,ChainsApiAxiosParamCreator:()=>Ui,ChainsApiFactory:()=>Gi,ChainsApiFp:()=>Wi,CollectionContractType:()=>po,CollectionsApi:()=>Xi,CollectionsApiAxiosParamCreator:()=>qi,CollectionsApiFactory:()=>Yi,CollectionsApiFp:()=>Ji,Configuration:()=>Qa,CraftingApi:()=>ea,CraftingApiAxiosParamCreator:()=>Zi,CraftingApiFactory:()=>$i,CraftingApiFp:()=>Qi,ERC1155CollectionItemTypeEnum:()=>mo,ERC1155ItemTypeEnum:()=>ho,ERC20ApproveMetadataTransactionTypeEnum:()=>go,ERC20ItemTypeEnum:()=>_o,ERC20TransferFromMetadataTransactionTypeEnum:()=>vo,ERC20TransferMetadataTransactionTypeEnum:()=>yo,ERC721ApproveMetadataTransactionTypeEnum:()=>bo,ERC721CollectionItemTypeEnum:()=>xo,ERC721ItemTypeEnum:()=>So,ERC721SafeTransferFromBatchMetadataTransactionTypeEnum:()=>Co,ERC721TransferFromMetadataTransactionTypeEnum:()=>wo,ExpiredOrderStatusNameEnum:()=>To,FailedOrderCancellationReasonCodeEnum:()=>Eo,FeeTypeEnum:()=>Do,FilledOrderStatusNameEnum:()=>Oo,GetTransactionByIDChainTypeEnum:()=>aa,GuardianApi:()=>ia,GuardianApiAxiosParamCreator:()=>ta,GuardianApiFactory:()=>ra,GuardianApiFp:()=>na,ImmutableVerificationStatusEnum:()=>ko,InactiveOrderStatusNameEnum:()=>Ao,ListBidsSortByEnum:()=>Da,ListBidsSortDirectionEnum:()=>Oa,ListCollectionBidsSortByEnum:()=>ka,ListCollectionBidsSortDirectionEnum:()=>Aa,ListListingsBuyItemTypeEnum:()=>ja,ListListingsSortByEnum:()=>Ma,ListListingsSortDirectionEnum:()=>Na,ListTradesSortByEnum:()=>Pa,ListTradesSortDirectionEnum:()=>Fa,MarketPriceERC20TokenTypeEnum:()=>jo,MarketPriceFeesTypeEnum:()=>Mo,MarketPriceNativeTokenTypeEnum:()=>No,MarketplaceContractType:()=>Po,MessageEvaluationResponseConfirmationMethodEnum:()=>Fo,MetadataApi:()=>la,MetadataApiAxiosParamCreator:()=>oa,MetadataApiFactory:()=>ca,MetadataApiFp:()=>sa,MetadataSearchApi:()=>pa,MetadataSearchApiAxiosParamCreator:()=>ua,MetadataSearchApiFactory:()=>fa,MetadataSearchApiFp:()=>da,MintRequestStatus:()=>Io,NFTContractType:()=>Lo,NFTMetadataAttributeDisplayTypeEnum:()=>Ro,NFTSetApprovalForAllMetadataTransactionTypeEnum:()=>zo,NativeItemTypeEnum:()=>Bo,NftOwnersApi:()=>va,NftOwnersApiAxiosParamCreator:()=>ha,NftOwnersApiFactory:()=>_a,NftOwnersApiFp:()=>ga,NftsApi:()=>Sa,NftsApiAxiosParamCreator:()=>ya,NftsApiFactory:()=>xa,NftsApiFp:()=>ba,OperatorAllowlistStatus:()=>Vo,OrderStatusName:()=>Uo,OrderTypeEnum:()=>Ho,OrdersApi:()=>Ea,OrdersApiAxiosParamCreator:()=>Ca,OrdersApiFactory:()=>Ta,OrdersApiFp:()=>wa,OrganisationTier:()=>Wo,PassportApi:()=>za,PassportApiAxiosParamCreator:()=>Ia,PassportApiFactory:()=>Ra,PassportApiFp:()=>La,PassportProfileApi:()=>Ua,PassportProfileApiAxiosParamCreator:()=>Ba,PassportProfileApiFactory:()=>Ha,PassportProfileApiFp:()=>Va,PendingOrderStatusNameEnum:()=>Go,PricingApi:()=>qa,PricingApiAxiosParamCreator:()=>Wa,PricingApiFactory:()=>Ka,PricingApiFp:()=>Ga,ProtocolDataOrderTypeEnum:()=>Ko,SaleFeeTypeEnum:()=>qo,SeaportCreateListingMetadataTypedDataTypeEnum:()=>Jo,SeaportERC1155CollectionItemTypeEnum:()=>Yo,SeaportERC1155ItemTypeEnum:()=>Xo,SeaportERC20ItemTypeEnum:()=>Zo,SeaportERC721CollectionItemTypeEnum:()=>Qo,SeaportERC721ItemTypeEnum:()=>$o,SeaportFeeTypeEnum:()=>es,SeaportFulfillAvailableAdvancedOrdersMetadataTransactionTypeEnum:()=>ts,SeaportNativeItemTypeEnum:()=>ns,SearchStacksSortByEnum:()=>ma,Severity:()=>rs,TokenContractType:()=>is,TokensApi:()=>Za,TokensApiAxiosParamCreator:()=>Ja,TokensApiFactory:()=>Xa,TokensApiFp:()=>Ya,TransactionApprovalRequestChainTypeEnum:()=>as,TransactionEvaluationResponseConfirmationMethodEnum:()=>os,UnknownMetadataTransactionTypeEnum:()=>ss,UnknownTypedDataMetadataTypedDataTypeEnum:()=>cs,ValidationStatus:()=>ls,VerificationRequestContractType:()=>us,VerificationRequestStatus:()=>ds,ZkEvmTransactionEvaluationRequestChainTypeEnum:()=>fs});let ms=function(e){return e.CheapestFirst=`cheapest_first`,e}({}),hs=function(e){return e.ValidationError=`VALIDATION_ERROR`,e}({}),gs=function(e){return e.UnauthorisedRequest=`UNAUTHORISED_REQUEST`,e}({}),_s=function(e){return e.AuthenticationError=`AUTHENTICATION_ERROR`,e}({}),vs=function(e){return e.ResourceNotFound=`RESOURCE_NOT_FOUND`,e}({}),ys=function(e){return e.ConflictError=`CONFLICT_ERROR`,e}({}),bs=function(e){return e.TooManyRequestsError=`TOO_MANY_REQUESTS_ERROR`,e}({}),xs=function(e){return e.InternalServerError=`INTERNAL_SERVER_ERROR`,e}({}),Ss=function(e){return e.Mint=`mint`,e.Burn=`burn`,e.Transfer=`transfer`,e.Sale=`sale`,e.Deposit=`deposit`,e.Withdrawal=`withdrawal`,e}({}),Cs=function(e){return e.Verified=`verified`,e.Unverified=`unverified`,e.Spam=`spam`,e.Inactive=`inactive`,e}({}),ws=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),Ts=function(e){return e.Erc20=`ERC20`,e}({}),Es=function(e){return e.Royalty=`ROYALTY`,e.MakerEcosystem=`MAKER_ECOSYSTEM`,e.TakerEcosystem=`TAKER_ECOSYSTEM`,e.Protocol=`PROTOCOL`,e}({}),Ds=function(e){return e.Native=`NATIVE`,e}({}),Os=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),ks=function(e){return e.Pending=`pending`,e.Succeeded=`succeeded`,e.Failed=`failed`,e}({}),As=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),js=function(e){return e.Number=`number`,e.BoostPercentage=`boost_percentage`,e.BoostNumber=`boost_number`,e.Date=`date`,e}({}),Ms=function(e){return e.Royalty=`ROYALTY`,e}({}),Ns=function(e){return e.Erc20=`ERC20`,e}({});var Ps=Ai({APIError400AllOfCodeEnum:()=>hs,APIError401AllOfCodeEnum:()=>gs,APIError403AllOfCodeEnum:()=>_s,APIError404AllOfCodeEnum:()=>vs,APIError409AllOfCodeEnum:()=>ys,APIError429AllOfCodeEnum:()=>bs,APIError500AllOfCodeEnum:()=>xs,ActivityType:()=>Ss,AssetVerificationStatus:()=>Cs,CollectionContractType:()=>ws,MarketPriceERC20TokenTypeEnum:()=>Ts,MarketPriceFeesTypeEnum:()=>Es,MarketPriceNativeTokenTypeEnum:()=>Ds,MarketplaceContractType:()=>Os,MintRequestStatus:()=>ks,NFTContractType:()=>As,NFTMetadataAttributeDisplayTypeEnum:()=>js,SaleFeeTypeEnum:()=>Ms,SearchStacksSortByEnum:()=>ms,TokenContractType:()=>Ns}),Fs=class{config;activitiesApi;chainsApi;collectionApi;nftOwnersApi;nftsApi;ordersApi;passportApi;passportProfileApi;guardianApi;constructor(e){this.config=e,this.activitiesApi=new Hi(e.indexer),this.chainsApi=new Ki(e.indexer),this.collectionApi=new Xi(e.indexer),this.nftOwnersApi=new va(e.indexer),this.nftsApi=new Sa(e.indexer),this.ordersApi=new Ea(e.orderBook),this.passportApi=new za(e.passport),this.passportProfileApi=new Ua(e.passport),this.guardianApi=new ia(e.passport)}};let Is=`http://localhost`.replace(/\/+$/,``);var Ls=class{basePath;axios;configuration;constructor(e,t=Is,n=R){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}},Rs=class extends Error{field;constructor(e,t){super(t),this.field=e,this.name=`RequiredError`}};let zs=`https://example.com`,Bs=function(e,t,n){if(n==null)throw new Rs(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},Vs=async function(e,t){t&&t.accessToken&&(e.Authorization=`Bearer `+(typeof t.accessToken==`function`?await t.accessToken():await t.accessToken))};function Hs(e,t,n=``){t!=null&&(typeof t==`object`?Array.isArray(t)?t.forEach(t=>Hs(e,t,n)):Object.keys(t).forEach(r=>Hs(e,t[r],`${n}${n===``?``:`.`}${r}`)):e.has(n)?e.append(n,t):e.set(n,t))}let Us=function(e,...t){let n=new URLSearchParams(e.search);Hs(n,t),e.search=n.toString()},Ws=function(e,t,n){let r=typeof e!=`string`;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers[`Content-Type`]):r)?JSON.stringify(e===void 0?{}:e):e||``},Gs=function(e){return e.pathname+e.search+e.hash},Ks=function(e,t,n,r){return(i=t,a=n)=>{let o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},qs=function(e){return{signDataV1WalletSignDataPost:async(t,n,r,i,a,o={})=>{Bs(`signDataV1WalletSignDataPost`,`xMagicChain`,t),Bs(`signDataV1WalletSignDataPost`,`signDataRequest`,n);let s=new URL(`/v1/wallet/sign/data`,zs),c;e&&(c=e.baseOptions);let l={method:`POST`,...c,...o},u={};await Vs(u,e),t!=null&&(u[`X-Magic-Chain`]=String(t)),r!=null&&(u[`X-Magic-API-Key`]=String(r)),i!=null&&(u[`X-Magic-Secret-Key`]=String(i)),a!=null&&(u[`X-OIDC-Provider-ID`]=String(a)),u[`Content-Type`]=`application/json`,Us(s,{});let d=c&&c.headers?c.headers:{};return l.headers={...u,...d,...o.headers},l.data=Ws(n,l,e),{url:Gs(s),options:l}},signMessageV1WalletSignMessagePost:async(t,n,r,i,a,o={})=>{Bs(`signMessageV1WalletSignMessagePost`,`xMagicChain`,t),Bs(`signMessageV1WalletSignMessagePost`,`signMessageRequest`,n);let s=new URL(`/v1/wallet/sign/message`,zs),c;e&&(c=e.baseOptions);let l={method:`POST`,...c,...o},u={};await Vs(u,e),t!=null&&(u[`X-Magic-Chain`]=String(t)),r!=null&&(u[`X-Magic-API-Key`]=String(r)),i!=null&&(u[`X-Magic-Secret-Key`]=String(i)),a!=null&&(u[`X-OIDC-Provider-ID`]=String(a)),u[`Content-Type`]=`application/json`,Us(s,{});let d=c&&c.headers?c.headers:{};return l.headers={...u,...d,...o.headers},l.data=Ws(n,l,e),{url:Gs(s),options:l}}}},Js=function(e){let t=qs(e);return{async signDataV1WalletSignDataPost(n,r,i,a,o,s){return Ks(await t.signDataV1WalletSignDataPost(n,r,i,a,o,s),R,Is,e)},async signMessageV1WalletSignMessagePost(n,r,i,a,o,s){return Ks(await t.signMessageV1WalletSignMessagePost(n,r,i,a,o,s),R,Is,e)}}};var Ys=class extends Ls{signDataV1WalletSignDataPost(e,t){return Js(this.configuration).signDataV1WalletSignDataPost(e.xMagicChain,e.signDataRequest,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}signMessageV1WalletSignMessagePost(e,t){return Js(this.configuration).signMessageV1WalletSignMessagePost(e.xMagicChain,e.signMessageRequest,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}};let Xs=function(e){return{createWalletV1WalletPost:async(t,n,r,i,a={})=>{Bs(`createWalletV1WalletPost`,`xMagicChain`,t);let o=new URL(`/v1/wallet`,zs),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...a},l={};await Vs(l,e),t!=null&&(l[`X-Magic-Chain`]=String(t)),n!=null&&(l[`X-Magic-API-Key`]=String(n)),r!=null&&(l[`X-Magic-Secret-Key`]=String(r)),i!=null&&(l[`X-OIDC-Provider-ID`]=String(i)),Us(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...a.headers},{url:Gs(o),options:c}}}},Zs=function(e){let t=Xs(e);return{async createWalletV1WalletPost(n,r,i,a,o){return Ks(await t.createWalletV1WalletPost(n,r,i,a,o),R,Is,e)}}};var Qs=class extends Ls{createWalletV1WalletPost(e,t){return Zs(this.configuration).createWalletV1WalletPost(e.xMagicChain,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}},$s=class{signOperationsApi;walletApi;constructor(e){let t=R.create({timeout:e.timeout,headers:{"Content-Type":`application/json`,"X-Magic-API-Key":e.magicPublishableApiKey,"X-OIDC-Provider-ID":e.magicProviderId}});this.signOperationsApi=new Ys(void 0,e.basePath,t),this.walletApi=new Qs(void 0,e.basePath,t)}};let ec={"x-sdk-version":`ts-immutable-sdk-2.24.1`},tc=({basePath:e,headers:t})=>{if(!e.trim())throw Error(`basePath can not be empty`);return new Qa({basePath:e,baseOptions:{headers:{...ec,...t||{}}}})},nc={getProduction:()=>({indexer:tc({basePath:`https://api.immutable.com`}),orderBook:tc({basePath:`https://api.immutable.com`}),passport:tc({basePath:`https://api.immutable.com`})}),getSandbox:()=>({indexer:tc({basePath:`https://api.sandbox.immutable.com`}),orderBook:tc({basePath:`https://api.sandbox.immutable.com`}),passport:tc({basePath:`https://api.sandbox.immutable.com`})})};var rc=class extends Error{code;details;link;traceId;constructor({message:e,code:t,details:n,link:r,trace_id:i}){super(e),this.code=t,this.details=n,this.link=r,this.traceId=i}};let ic={sdkVersion:`ts-immutable-sdk-multi-rollup-api-client-2.24.1`},ac=e=>{let{baseConfig:t,basePath:n,headers:r}=e;if(!n.trim())throw Error(`basePath can not be empty`);let i={...r||{},...We(t,e)||{},...ic},a={...t,basePath:n,baseOptions:{headers:i}};return new ps.Configuration(a)};var oc=class{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=ac(t);else switch(e.environment){case Ve.SANDBOX:this.apiConfig=ac({basePath:`https://api.sandbox.immutable.com`,baseConfig:e});break;case Ve.PRODUCTION:this.apiConfig=ac({basePath:`https://api.immutable.com`,baseConfig:e});break;default:this.apiConfig=ac({basePath:`https://api.sandbox.immutable.com`,baseConfig:e})}}};function sc(e){if(R.isAxiosError(e)&&e.response){let t=e.response.data;return t.code&&t.message?new rc({code:t.code,message:t.message,details:t.details||null,link:t.link||``,trace_id:t.trace_id||``}):new rc({code:e.code??e.response?.status.toString()??`unknown_error_code`,message:String(e),details:null,link:``,trace_id:``})}return new rc({code:`unknown_error_code`,message:String(e),details:null,link:``,trace_id:``})}var cc=class{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;crafting;pricing;metadataSearch;constructor(e){this.config=new oc(e),this.activities=new ps.ActivitiesApi(this.config.apiConfig),this.chains=new ps.ChainsApi(this.config.apiConfig),this.collections=new ps.CollectionsApi(this.config.apiConfig),this.nfts=new ps.NftsApi(this.config.apiConfig),this.nftOwners=new ps.NftOwnersApi(this.config.apiConfig),this.tokens=new ps.TokensApi(this.config.apiConfig),this.metadata=new ps.MetadataApi(this.config.apiConfig),this.crafting=new ps.CraftingApi(this.config.apiConfig),this.pricing=new ps.PricingApi(this.config.apiConfig),this.metadataSearch=new ps.MetadataSearchApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getActivity(e){return await this.activities.getActivity(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listChains(e){return await this.chains.listChains(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listCollections(e){return await this.collections.listCollections(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getCollection(e){return await this.collections.getCollection(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getNFT(e){return await this.nfts.getNFT(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTs(e){return await this.nfts.listNFTs(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then(e=>e.data).catch(e=>{throw sc(e)})}async createMintRequest(e){return await this.nfts.createMintRequest(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listMintRequests(e){return await this.nfts.listMintRequests(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getMintRequest(e){return await this.nfts.getMintRequest(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listTokens(e){return await this.tokens.listERC20Tokens(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getToken(e){return await this.tokens.getERC20Token(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getMetadata(e){return await this.metadata.getMetadata(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then(e=>e.data).catch(e=>{throw sc(e)})}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then(e=>e.data).catch(e=>{throw sc(e)})}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then(e=>e.data).catch(e=>{throw sc(e)})}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then(e=>e.data).catch(e=>{throw sc(e)})}async signCraftingPayload(e){return await this.crafting.signCraftingPayload(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listFilters(e){return await this.metadataSearch.listFilters(e).then(e=>e.data).catch(e=>{throw sc(e)})}async searchNFTs(e){return await this.metadataSearch.searchNFTs(e).then(e=>e.data).catch(e=>{throw sc(e)})}async searchStacks(e){return await this.metadataSearch.searchStacks(e).then(e=>e.data).catch(e=>{throw sc(e)})}async quotesForNFTs(e){return await this.pricing.quotesForNFTs(e).then(e=>e.data).catch(e=>{throw sc(e)})}async quotesForStacks(e){return await this.pricing.quotesForStacks(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listStacks(e){return await this.metadata.listStacks(e).then(e=>e.data).catch(e=>{throw sc(e)})}},lc=l({APIError:()=>rc,BlockchainData:()=>cc,Types:()=>Ps}),uc=class extends Error{};uc.prototype.name=`InvalidTokenError`;function dc(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n=`0`+n),`%`+n}))}function fc(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);switch(t.length%4){case 0:break;case 2:t+=`==`;break;case 3:t+=`=`;break;default:throw Error(`base64 string is not of the correct length`)}try{return dc(t)}catch{return atob(t)}}function pc(e,t){if(typeof e!=`string`)throw new uc(`Invalid token specified: must be a string`);t||={};let n=t.header===!0?0:1,r=e.split(`.`)[n];if(typeof r!=`string`)throw new uc(`Invalid token specified: missing part #${n+1}`);let i;try{i=fc(r)}catch(e){throw new uc(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new uc(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}var mc={debug:()=>void 0,info:()=>void 0,warn:()=>void 0,error:()=>void 0},hc,gc,_c=(e=>(e[e.NONE=0]=`NONE`,e[e.ERROR=1]=`ERROR`,e[e.WARN=2]=`WARN`,e[e.INFO=3]=`INFO`,e[e.DEBUG=4]=`DEBUG`,e))(_c||{});(e=>{function t(){hc=3,gc=mc}e.reset=t;function n(e){if(!(0<=e&&e<=4))throw Error(`Invalid log level`);hc=e}e.setLevel=n;function r(e){gc=e}e.setLogger=r})(_c||={});var vc=class e{constructor(e){this._name=e}debug(...t){hc>=4&&gc.debug(e._format(this._name,this._method),...t)}info(...t){hc>=3&&gc.info(e._format(this._name,this._method),...t)}warn(...t){hc>=2&&gc.warn(e._format(this._name,this._method),...t)}error(...t){hc>=1&&gc.error(e._format(this._name,this._method),...t)}throw(e){throw this.error(e),e}create(e){let t=Object.create(this);return t._method=e,t.debug(`begin`),t}static createStatic(t,n){let r=new e(`${t}.${n}`);return r.debug(`begin`),r}static _format(e,t){let n=`[${e}]`;return t?`${n} ${t}:`:n}static debug(t,...n){hc>=4&&gc.debug(e._format(t),...n)}static info(t,...n){hc>=3&&gc.info(e._format(t),...n)}static warn(t,...n){hc>=2&&gc.warn(e._format(t),...n)}static error(t,...n){hc>=1&&gc.error(e._format(t),...n)}};_c.reset();var yc=class{static decode(e){try{return pc(e)}catch(e){throw vc.error(`JwtUtils.decode`,e),e}}static async generateSignedJwt(e,t,n){let r=`${Cc.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${Cc.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign({name:`ECDSA`,hash:{name:`SHA-256`}},n,new TextEncoder().encode(r));return`${r}.${Cc.encodeBase64Url(new Uint8Array(i))}`}static async generateSignedJwtWithHmac(e,t,n){let r=`${Cc.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${Cc.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign(`HMAC`,n,new TextEncoder().encode(r));return`${r}.${Cc.encodeBase64Url(new Uint8Array(i))}`}},bc=`10000000-1000-4000-8000-100000000000`,xc=e=>btoa([...new Uint8Array(e)].map(e=>String.fromCharCode(e)).join(``)),Sc=class e{static _randomWord(){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}static generateUUIDv4(){return bc.replace(/[018]/g,t=>(t^e._randomWord()&15>>t/4).toString(16)).replace(/-/g,``)}static generateCodeVerifier(){return e.generateUUIDv4()+e.generateUUIDv4()+e.generateUUIDv4()}static async generateCodeChallenge(e){if(!crypto.subtle)throw Error(`Crypto.subtle is available only in secure contexts (HTTPS).`);try{let t=new TextEncoder().encode(e);return xc(await crypto.subtle.digest(`SHA-256`,t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}catch(e){throw vc.error(`CryptoUtils.generateCodeChallenge`,e),e}}static generateBasicAuth(e,t){return xc(new TextEncoder().encode([e,t].join(`:`)))}static async hash(e,t){let n=new TextEncoder().encode(t),r=await crypto.subtle.digest(e,n);return new Uint8Array(r)}static async customCalculateJwkThumbprint(t){let n;switch(t.kty){case`RSA`:n={e:t.e,kty:t.kty,n:t.n};break;case`EC`:n={crv:t.crv,kty:t.kty,x:t.x,y:t.y};break;case`OKP`:n={crv:t.crv,kty:t.kty,x:t.x};break;case`oct`:n={crv:t.k,kty:t.kty};break;default:throw Error(`Unknown jwk type`)}let r=await e.hash(`SHA-256`,JSON.stringify(n));return e.encodeBase64Url(r)}static async generateDPoPProof({url:t,accessToken:n,httpMethod:r,keyPair:i,nonce:a}){let o,s,c={jti:window.crypto.randomUUID(),htm:r??`GET`,htu:t,iat:Math.floor(Date.now()/1e3)};n&&(o=await e.hash(`SHA-256`,n),s=e.encodeBase64Url(o),c.ath=s),a&&(c.nonce=a);try{let e=await crypto.subtle.exportKey(`jwk`,i.publicKey),t={alg:`ES256`,typ:`dpop+jwt`,jwk:{crv:e.crv,kty:e.kty,x:e.x,y:e.y}};return await yc.generateSignedJwt(t,c,i.privateKey)}catch(e){throw e instanceof TypeError?Error(`Error exporting dpop public key: ${e.message}`):e}}static async generateDPoPJkt(t){try{let n=await crypto.subtle.exportKey(`jwk`,t.publicKey);return await e.customCalculateJwkThumbprint(n)}catch(e){throw e instanceof TypeError?Error(`Could not retrieve dpop keys from storage: ${e.message}`):e}}static async generateDPoPKeys(){return await window.crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`,`verify`])}static async generateClientAssertionJwt(t,n,r,i=`HS256`){let a=Math.floor(Date.now()/1e3),o={alg:i,typ:`JWT`},s={iss:t,sub:t,aud:r,jti:e.generateUUIDv4(),exp:a+300,iat:a},c={HS256:`SHA-256`,HS384:`SHA-384`,HS512:`SHA-512`}[i];if(!c)throw Error(`Unsupported algorithm: ${i}. Supported algorithms are: HS256, HS384, HS512`);let l=new TextEncoder,u=await crypto.subtle.importKey(`raw`,l.encode(n),{name:`HMAC`,hash:c},!1,[`sign`]);return await yc.generateSignedJwtWithHmac(o,s,u)}};Sc.encodeBase64Url=e=>xc(e).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`);var Cc=Sc,wc=class{constructor(e){this._name=e,this._callbacks=[],this._logger=new vc(`Event('${this._name}')`)}addHandler(e){return this._callbacks.push(e),()=>this.removeHandler(e)}removeHandler(e){let t=this._callbacks.lastIndexOf(e);t>=0&&this._callbacks.splice(t,1)}async raise(...e){this._logger.debug(`raise:`,...e);for(let t of this._callbacks)await t(...e)}},Tc=class{static center({...e}){return e.width??=[800,720,600,480].find(e=>e<=window.outerWidth/1.618)??360,e.left??=Math.max(0,Math.round(window.screenX+(window.outerWidth-e.width)/2)),e.height!=null&&(e.top??=Math.max(0,Math.round(window.screenY+(window.outerHeight-e.height)/2))),e}static serialize(e){return Object.entries(e).filter(([,e])=>e!=null).map(([e,t])=>`${e}=${typeof t==`boolean`?t?`yes`:`no`:t}`).join(`,`)}},Ec=class e extends wc{constructor(){super(...arguments),this._logger=new vc(`Timer('${this._name}')`),this._timerHandle=null,this._expiration=0,this._callback=()=>{let t=this._expiration-e.getEpochTime();this._logger.debug(`timer completes in`,t),this._expiration<=e.getEpochTime()&&(this.cancel(),super.raise())}}static getEpochTime(){return Math.floor(Date.now()/1e3)}init(t){let n=this._logger.create(`init`);t=Math.max(Math.floor(t),1);let r=e.getEpochTime()+t;if(this.expiration===r&&this._timerHandle){n.debug(`skipping since already initialized for expiration at`,this.expiration);return}this.cancel(),n.debug(`using duration`,t),this._expiration=r;let i=Math.min(t,5);this._timerHandle=setInterval(this._callback,i*1e3)}get expiration(){return this._expiration}cancel(){this._logger.create(`cancel`),this._timerHandle&&=(clearInterval(this._timerHandle),null)}},Dc=class{static readParams(e,t=`query`){if(!e)throw TypeError(`Invalid URL`);let n=new URL(e,`http://127.0.0.1`)[t===`fragment`?`hash`:`search`];return new URLSearchParams(n.slice(1))}},Oc=`;`,kc=class extends Error{constructor(e,t){if(super(e.error_description||e.error||``),this.form=t,this.name=`ErrorResponse`,!e.error)throw vc.error(`ErrorResponse`,`No error passed`),Error(`No error passed`);this.error=e.error,this.error_description=e.error_description??null,this.error_uri=e.error_uri??null,this.state=e.userState,this.session_state=e.session_state??null,this.url_state=e.url_state}},Ac=class extends Error{constructor(e){super(e),this.name=`ErrorTimeout`}},jc=class{constructor(e){this._logger=new vc(`AccessTokenEvents`),this._expiringTimer=new Ec(`Access token expiring`),this._expiredTimer=new Ec(`Access token expired`),this._expiringNotificationTimeInSeconds=e.expiringNotificationTimeInSeconds}async load(e){let t=this._logger.create(`load`);if(e.access_token&&e.expires_in!==void 0){let n=e.expires_in;if(t.debug(`access token present, remaining duration:`,n),n>0){let e=n-this._expiringNotificationTimeInSeconds;e<=0&&(e=1),t.debug(`registering expiring timer, raising in`,e,`seconds`),this._expiringTimer.init(e)}else t.debug(`canceling existing expiring timer because we're past expiration.`),this._expiringTimer.cancel();let r=n+1;t.debug(`registering expired timer, raising in`,r,`seconds`),this._expiredTimer.init(r)}else this._expiringTimer.cancel(),this._expiredTimer.cancel()}async unload(){this._logger.debug(`unload: canceling existing access token timers`),this._expiringTimer.cancel(),this._expiredTimer.cancel()}addAccessTokenExpiring(e){return this._expiringTimer.addHandler(e)}removeAccessTokenExpiring(e){this._expiringTimer.removeHandler(e)}addAccessTokenExpired(e){return this._expiredTimer.addHandler(e)}removeAccessTokenExpired(e){this._expiredTimer.removeHandler(e)}},Mc=class{constructor(e,t,n,r,i){this._callback=e,this._client_id=t,this._intervalInSeconds=r,this._stopOnError=i,this._logger=new vc(`CheckSessionIFrame`),this._timer=null,this._session_state=null,this._message=e=>{e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&(e.data===`error`?(this._logger.error(`error message from check session op iframe`),this._stopOnError&&this.stop()):e.data===`changed`?(this._logger.debug(`changed message from check session op iframe`),this.stop(),this._callback()):this._logger.debug(e.data+` message from check session op iframe`))};let a=new URL(n);this._frame_origin=a.origin,this._frame=window.document.createElement(`iframe`),this._frame.style.visibility=`hidden`,this._frame.style.position=`fixed`,this._frame.style.left=`-1000px`,this._frame.style.top=`0`,this._frame.width=`0`,this._frame.height=`0`,this._frame.src=a.href}load(){return new Promise(e=>{this._frame.onload=()=>{e()},window.document.body.appendChild(this._frame),window.addEventListener(`message`,this._message,!1)})}start(e){if(this._session_state===e)return;this._logger.create(`start`),this.stop(),this._session_state=e;let t=()=>{!this._frame.contentWindow||!this._session_state||this._frame.contentWindow.postMessage(this._client_id+` `+this._session_state,this._frame_origin)};t(),this._timer=setInterval(t,this._intervalInSeconds*1e3)}stop(){this._logger.create(`stop`),this._session_state=null,this._timer&&=(clearInterval(this._timer),null)}},Nc=class{constructor(){this._logger=new vc(`InMemoryWebStorage`),this._data={}}clear(){this._logger.create(`clear`),this._data={}}getItem(e){return this._logger.create(`getItem('${e}')`),this._data[e]}setItem(e,t){this._logger.create(`setItem('${e}')`),this._data[e]=t}removeItem(e){this._logger.create(`removeItem('${e}')`),delete this._data[e]}get length(){return Object.getOwnPropertyNames(this._data).length}key(e){return Object.getOwnPropertyNames(this._data)[e]}},Pc=class extends Error{constructor(e,t){super(t),this.name=`ErrorDPoPNonce`,this.nonce=e}},Fc=class{constructor(e=[],t=null,n={}){this._jwtHandler=t,this._extraHeaders=n,this._logger=new vc(`JsonService`),this._contentTypes=[],this._contentTypes.push(...e,`application/json`),t&&this._contentTypes.push(`application/jwt`)}async fetchWithTimeout(e,t={}){let{timeoutInSeconds:n,...r}=t;if(!n)return await fetch(e,r);let i=new AbortController,a=setTimeout(()=>i.abort(),n*1e3);try{return await fetch(e,{...t,signal:i.signal})}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?new Ac(`Network timed out`):e}finally{clearTimeout(a)}}async getJson(e,{token:t,credentials:n,timeoutInSeconds:r}={}){let i=this._logger.create(`getJson`),a={Accept:this._contentTypes.join(`, `)};t&&(i.debug(`token passed, setting Authorization header`),a.Authorization=`Bearer `+t),this._appendExtraHeaders(a);let o;try{i.debug(`url:`,e),o=await this.fetchWithTimeout(e,{method:`GET`,headers:a,timeoutInSeconds:r,credentials:n})}catch(e){throw i.error(`Network Error`),e}i.debug(`HTTP response received, status`,o.status);let s=o.headers.get(`Content-Type`);if(s&&!this._contentTypes.find(e=>s.startsWith(e))&&i.throw(Error(`Invalid response Content-Type: ${s??`undefined`}, from URL: ${e}`)),o.ok&&this._jwtHandler&&s?.startsWith(`application/jwt`))return await this._jwtHandler(await o.text());let c;try{c=await o.json()}catch(e){throw i.error(`Error parsing JSON response`,e),o.ok?e:Error(`${o.statusText} (${o.status})`)}if(!o.ok)throw i.error(`Error from server:`,c),c.error?new kc(c):Error(`${o.statusText} (${o.status}): ${JSON.stringify(c)}`);return c}async postForm(e,{body:t,basicAuth:n,timeoutInSeconds:r,initCredentials:i,extraHeaders:a}){let o=this._logger.create(`postForm`),s={Accept:this._contentTypes.join(`, `),"Content-Type":`application/x-www-form-urlencoded`,...a};n!==void 0&&(s.Authorization=`Basic `+n),this._appendExtraHeaders(s);let c;try{o.debug(`url:`,e),c=await this.fetchWithTimeout(e,{method:`POST`,headers:s,body:t,timeoutInSeconds:r,credentials:i})}catch(e){throw o.error(`Network error`),e}o.debug(`HTTP response received, status`,c.status);let l=c.headers.get(`Content-Type`);if(l&&!this._contentTypes.find(e=>l.startsWith(e)))throw Error(`Invalid response Content-Type: ${l??`undefined`}, from URL: ${e}`);let u=await c.text(),d={};if(u)try{d=JSON.parse(u)}catch(e){throw o.error(`Error parsing JSON response`,e),c.ok?e:Error(`${c.statusText} (${c.status})`)}if(!c.ok)throw o.error(`Error from server:`,d),c.headers.has(`dpop-nonce`)?new Pc(c.headers.get(`dpop-nonce`),`${JSON.stringify(d)}`):d.error?new kc(d,t):Error(`${c.statusText} (${c.status}): ${JSON.stringify(d)}`);return d}_appendExtraHeaders(e){let t=this._logger.create(`appendExtraHeaders`),n=Object.keys(this._extraHeaders),r=[`accept`,`content-type`],i=[`authorization`];n.length!==0&&n.forEach(n=>{if(r.includes(n.toLocaleLowerCase())){t.warn(`Protected header could not be set`,n,r);return}if(i.includes(n.toLocaleLowerCase())&&Object.keys(e).includes(n)){t.warn(`Header could not be overridden`,n,i);return}let a=typeof this._extraHeaders[n]==`function`?this._extraHeaders[n]():this._extraHeaders[n];a&&a!==``&&(e[n]=a)})}},Ic=class{constructor(e){this._settings=e,this._logger=new vc(`MetadataService`),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new Fc([`application/jwk-set+json`],null,this._settings.extraHeaders),this._settings.signingKeys&&(this._logger.debug(`using signingKeys from settings`),this._signingKeys=this._settings.signingKeys),this._settings.metadata&&(this._logger.debug(`using metadata from settings`),this._metadata=this._settings.metadata),this._settings.fetchRequestCredentials&&(this._logger.debug(`using fetchRequestCredentials from settings`),this._fetchRequestCredentials=this._settings.fetchRequestCredentials)}resetSigningKeys(){this._signingKeys=null}async getMetadata(){let e=this._logger.create(`getMetadata`);if(this._metadata)return e.debug(`using cached values`),this._metadata;if(!this._metadataUrl)throw e.throw(Error(`No authority or metadataUrl configured on settings`)),null;e.debug(`getting metadata from`,this._metadataUrl);let t=await this._jsonService.getJson(this._metadataUrl,{credentials:this._fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return e.debug(`merging remote JSON with seed metadata`),this._metadata=Object.assign({},t,this._settings.metadataSeed),this._metadata}getIssuer(){return this._getMetadataProperty(`issuer`)}getAuthorizationEndpoint(){return this._getMetadataProperty(`authorization_endpoint`)}getUserInfoEndpoint(){return this._getMetadataProperty(`userinfo_endpoint`)}getTokenEndpoint(e=!0){return this._getMetadataProperty(`token_endpoint`,e)}getCheckSessionIframe(){return this._getMetadataProperty(`check_session_iframe`,!0)}getEndSessionEndpoint(){return this._getMetadataProperty(`end_session_endpoint`,!0)}getRevocationEndpoint(e=!0){return this._getMetadataProperty(`revocation_endpoint`,e)}getKeysEndpoint(e=!0){return this._getMetadataProperty(`jwks_uri`,e)}async _getMetadataProperty(e,t=!1){let n=this._logger.create(`_getMetadataProperty('${e}')`),r=await this.getMetadata();if(n.debug(`resolved`),r[e]===void 0){if(t===!0){n.warn(`Metadata does not contain optional property`);return}n.throw(Error(`Metadata does not contain property `+e))}return r[e]}async getSigningKeys(){let e=this._logger.create(`getSigningKeys`);if(this._signingKeys)return e.debug(`returning signingKeys from cache`),this._signingKeys;let t=await this.getKeysEndpoint(!1);e.debug(`got jwks_uri`,t);let n=await this._jsonService.getJson(t,{timeoutInSeconds:this._settings.requestTimeoutInSeconds});if(e.debug(`got key set`,n),!Array.isArray(n.keys))throw e.throw(Error(`Missing keys on keyset`)),null;return this._signingKeys=n.keys,this._signingKeys}},Lc=class{constructor({prefix:e=`oidc.`,store:t=localStorage}={}){this._logger=new vc(`WebStorageStateStore`),this._store=t,this._prefix=e}async set(e,t){this._logger.create(`set('${e}')`),e=this._prefix+e,await this._store.setItem(e,t)}async get(e){return this._logger.create(`get('${e}')`),e=this._prefix+e,await this._store.getItem(e)}async remove(e){this._logger.create(`remove('${e}')`),e=this._prefix+e;let t=await this._store.getItem(e);return await this._store.removeItem(e),t}async getAllKeys(){this._logger.create(`getAllKeys`);let e=await this._store.length,t=[];for(let n=0;n<e;n++){let e=await this._store.key(n);e&&e.indexOf(this._prefix)===0&&t.push(e.substr(this._prefix.length))}return t}},Rc=`code`,zc=`openid`,Bc=`client_secret_post`,Vc=900,Hc=class{constructor({authority:e,metadataUrl:t,metadata:n,signingKeys:r,metadataSeed:i,client_id:a,client_secret:o,response_type:s=Rc,scope:c=zc,redirect_uri:l,post_logout_redirect_uri:u,client_authentication:d=Bc,token_endpoint_auth_signing_alg:f=`HS256`,prompt:p,display:m,max_age:h,ui_locales:g,acr_values:_,resource:v,response_mode:y,filterProtocolClaims:b=!0,loadUserInfo:x=!1,requestTimeoutInSeconds:S,staleStateAgeInSeconds:C=Vc,mergeClaimsStrategy:w={array:`replace`},disablePKCE:T=!1,stateStore:E,revokeTokenAdditionalContentTypes:D,fetchRequestCredentials:O,refreshTokenAllowedScope:k,extraQueryParams:A={},extraTokenParams:j={},extraHeaders:M={},dpop:N,omitScopeWhenRequesting:P=!1}){if(this.authority=e,t?this.metadataUrl=t:(this.metadataUrl=e,e&&(this.metadataUrl.endsWith(`/`)||(this.metadataUrl+=`/`),this.metadataUrl+=`.well-known/openid-configuration`)),this.metadata=n,this.metadataSeed=i,this.signingKeys=r,this.client_id=a,this.client_secret=o,this.response_type=s,this.scope=c,this.redirect_uri=l,this.post_logout_redirect_uri=u,this.client_authentication=d,this.token_endpoint_auth_signing_alg=f,this.prompt=p,this.display=m,this.max_age=h,this.ui_locales=g,this.acr_values=_,this.resource=v,this.response_mode=y,this.filterProtocolClaims=b??!0,this.loadUserInfo=!!x,this.staleStateAgeInSeconds=C,this.mergeClaimsStrategy=w,this.omitScopeWhenRequesting=P,this.disablePKCE=!!T,this.revokeTokenAdditionalContentTypes=D,this.fetchRequestCredentials=O||`same-origin`,this.requestTimeoutInSeconds=S,E)this.stateStore=E;else{let e=typeof window<`u`?window.localStorage:new Nc;this.stateStore=new Lc({store:e})}if(this.refreshTokenAllowedScope=k,this.extraQueryParams=A,this.extraTokenParams=j,this.extraHeaders=M,this.dpop=N,this.dpop&&!this.dpop?.store)throw Error(`A DPoPStore is required when dpop is enabled`)}},Uc=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new vc(`UserInfoService`),this._getClaimsFromJwt=async e=>{let t=this._logger.create(`_getClaimsFromJwt`);try{let n=yc.decode(e);return t.debug(`JWT decoding successful`),n}catch(e){throw t.error(`Error parsing JWT response`),e}},this._jsonService=new Fc(void 0,this._getClaimsFromJwt,this._settings.extraHeaders)}async getClaims(e){let t=this._logger.create(`getClaims`);e||this._logger.throw(Error(`No token passed`));let n=await this._metadataService.getUserInfoEndpoint();t.debug(`got userinfo url`,n);let r=await this._jsonService.getJson(n,{token:e,credentials:this._settings.fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return t.debug(`got claims`,r),r}},Wc=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new vc(`TokenClient`),this._jsonService=new Fc(this._settings.revokeTokenAdditionalContentTypes,null,this._settings.extraHeaders)}async exchangeCode({grant_type:e=`authorization_code`,redirect_uri:t=this._settings.redirect_uri,client_id:n=this._settings.client_id,client_secret:r=this._settings.client_secret,extraHeaders:i,...a}){let o=this._logger.create(`exchangeCode`);n||o.throw(Error(`A client_id is required`)),t||o.throw(Error(`A redirect_uri is required`)),a.code||o.throw(Error(`A code is required`));let s=new URLSearchParams({grant_type:e,redirect_uri:t});for(let[e,t]of Object.entries(a))t!=null&&s.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&r==null)throw o.throw(Error(`A client_secret is required`)),null;let c,l=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:c=Cc.generateBasicAuth(n,r);break;case`client_secret_post`:s.append(`client_id`,n),r&&s.append(`client_secret`,r);break;case`client_secret_jwt`:{let e=await Cc.generateClientAssertionJwt(n,r,l,this._settings.token_endpoint_auth_signing_alg);s.append(`client_id`,n),s.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),s.append(`client_assertion`,e);break}}o.debug(`got token endpoint`);let u=await this._jsonService.postForm(l,{body:s,basicAuth:c,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:i});return o.debug(`got response`),u}async exchangeCredentials({grant_type:e=`password`,client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,scope:r=this._settings.scope,...i}){let a=this._logger.create(`exchangeCredentials`);t||a.throw(Error(`A client_id is required`));let o=new URLSearchParams({grant_type:e});this._settings.omitScopeWhenRequesting||o.set(`scope`,r);for(let[e,t]of Object.entries(i))t!=null&&o.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&n==null)throw a.throw(Error(`A client_secret is required`)),null;let s,c=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:s=Cc.generateBasicAuth(t,n);break;case`client_secret_post`:o.append(`client_id`,t),n&&o.append(`client_secret`,n);break;case`client_secret_jwt`:{let e=await Cc.generateClientAssertionJwt(t,n,c,this._settings.token_endpoint_auth_signing_alg);o.append(`client_id`,t),o.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),o.append(`client_assertion`,e);break}}a.debug(`got token endpoint`);let l=await this._jsonService.postForm(c,{body:o,basicAuth:s,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials});return a.debug(`got response`),l}async exchangeRefreshToken({grant_type:e=`refresh_token`,client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,timeoutInSeconds:r,extraHeaders:i,...a}){let o=this._logger.create(`exchangeRefreshToken`);t||o.throw(Error(`A client_id is required`)),a.refresh_token||o.throw(Error(`A refresh_token is required`));let s=new URLSearchParams({grant_type:e});for(let[e,t]of Object.entries(a))Array.isArray(t)?t.forEach(t=>s.append(e,t)):t!=null&&s.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&n==null)throw o.throw(Error(`A client_secret is required`)),null;let c,l=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:c=Cc.generateBasicAuth(t,n);break;case`client_secret_post`:s.append(`client_id`,t),n&&s.append(`client_secret`,n);break;case`client_secret_jwt`:{let e=await Cc.generateClientAssertionJwt(t,n,l,this._settings.token_endpoint_auth_signing_alg);s.append(`client_id`,t),s.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),s.append(`client_assertion`,e);break}}o.debug(`got token endpoint`);let u=await this._jsonService.postForm(l,{body:s,basicAuth:c,timeoutInSeconds:r,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:i});return o.debug(`got response`),u}async revoke(e){let t=this._logger.create(`revoke`);e.token||t.throw(Error(`A token is required`));let n=await this._metadataService.getRevocationEndpoint(!1);t.debug(`got revocation endpoint, revoking ${e.token_type_hint??`default token type`}`);let r=new URLSearchParams;for(let[t,n]of Object.entries(e))n!=null&&r.set(t,n);r.set(`client_id`,this._settings.client_id),this._settings.client_secret&&r.set(`client_secret`,this._settings.client_secret),await this._jsonService.postForm(n,{body:r,timeoutInSeconds:this._settings.requestTimeoutInSeconds}),t.debug(`got response`)}},Gc=class{constructor(e,t,n){this._settings=e,this._metadataService=t,this._claimsService=n,this._logger=new vc(`ResponseValidator`),this._userInfoService=new Uc(this._settings,this._metadataService),this._tokenClient=new Wc(this._settings,this._metadataService)}async validateSigninResponse(e,t,n){let r=this._logger.create(`validateSigninResponse`);this._processSigninState(e,t),r.debug(`state processed`),await this._processCode(e,t,n),r.debug(`code processed`),e.isOpenId&&this._validateIdTokenAttributes(e),r.debug(`tokens validated`),await this._processClaims(e,t?.skipUserInfo,e.isOpenId),r.debug(`claims processed`)}async validateCredentialsResponse(e,t){let n=this._logger.create(`validateCredentialsResponse`),r=e.isOpenId&&!!e.id_token;r&&this._validateIdTokenAttributes(e),n.debug(`tokens validated`),await this._processClaims(e,t,r),n.debug(`claims processed`)}async validateRefreshResponse(e,t){let n=this._logger.create(`validateRefreshResponse`);e.userState=t.data,e.session_state??=t.session_state,e.scope??=t.scope,e.isOpenId&&e.id_token&&(this._validateIdTokenAttributes(e,t.id_token),n.debug(`ID Token validated`)),e.id_token||(e.id_token=t.id_token,e.profile=t.profile);let r=e.isOpenId&&!!e.id_token;await this._processClaims(e,!1,r),n.debug(`claims processed`)}validateSignoutResponse(e,t){let n=this._logger.create(`validateSignoutResponse`);if(t.id!==e.state&&n.throw(Error(`State does not match`)),n.debug(`state validated`),e.userState=t.data,e.error)throw n.warn(`Response was error`,e.error),new kc(e)}_processSigninState(e,t){let n=this._logger.create(`_processSigninState`);if(t.id!==e.state&&n.throw(Error(`State does not match`)),t.client_id||n.throw(Error(`No client_id on state`)),t.authority||n.throw(Error(`No authority on state`)),this._settings.authority!==t.authority&&n.throw(Error(`authority mismatch on settings vs. signin state`)),this._settings.client_id&&this._settings.client_id!==t.client_id&&n.throw(Error(`client_id mismatch on settings vs. signin state`)),n.debug(`state validated`),e.userState=t.data,e.url_state=t.url_state,e.scope??=t.scope,e.error)throw n.warn(`Response was error`,e.error),new kc(e);t.code_verifier&&!e.code&&n.throw(Error(`Expected code in response`))}async _processClaims(e,t=!1,n=!0){let r=this._logger.create(`_processClaims`);if(e.profile=this._claimsService.filterProtocolClaims(e.profile),t||!this._settings.loadUserInfo||!e.access_token){r.debug(`not loading user info`);return}r.debug(`loading user info`);let i=await this._userInfoService.getClaims(e.access_token);r.debug(`user info claims received from user info endpoint`),n&&i.sub!==e.profile.sub&&r.throw(Error(`subject from UserInfo response does not match subject in ID Token`)),e.profile=this._claimsService.mergeClaims(e.profile,this._claimsService.filterProtocolClaims(i)),r.debug(`user info claims received, updated profile:`,e.profile)}async _processCode(e,t,n){let r=this._logger.create(`_processCode`);if(e.code){r.debug(`Validating code`);let i=await this._tokenClient.exchangeCode({client_id:t.client_id,client_secret:t.client_secret,code:e.code,redirect_uri:t.redirect_uri,code_verifier:t.code_verifier,extraHeaders:n,...t.extraTokenParams});Object.assign(e,i)}else r.debug(`No code to process`)}_validateIdTokenAttributes(e,t){let n=this._logger.create(`_validateIdTokenAttributes`);n.debug(`decoding ID Token JWT`);let r=yc.decode(e.id_token??``);if(r.sub||n.throw(Error(`ID Token is missing a subject claim`)),t){let e=yc.decode(t);r.sub!==e.sub&&n.throw(Error(`sub in id_token does not match current sub`)),r.auth_time&&r.auth_time!==e.auth_time&&n.throw(Error(`auth_time in id_token does not match original auth_time`)),r.azp&&r.azp!==e.azp&&n.throw(Error(`azp in id_token does not match original azp`)),!r.azp&&e.azp&&n.throw(Error(`azp not in id_token, but present in original id_token`))}e.profile=r}},Kc=class e{constructor(e){this.id=e.id||Cc.generateUUIDv4(),this.data=e.data,e.created&&e.created>0?this.created=e.created:this.created=Ec.getEpochTime(),this.request_type=e.request_type,this.url_state=e.url_state}toStorageString(){return new vc(`State`).create(`toStorageString`),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state})}static fromStorageString(t){return vc.createStatic(`State`,`fromStorageString`),Promise.resolve(new e(JSON.parse(t)))}static async clearStaleState(t,n){let r=vc.createStatic(`State`,`clearStaleState`),i=Ec.getEpochTime()-n,a=await t.getAllKeys();r.debug(`got keys`,a);for(let n=0;n<a.length;n++){let o=a[n],s=await t.get(o),c=!1;if(s)try{let t=await e.fromStorageString(s);r.debug(`got item from key:`,o,t.created),t.created<=i&&(c=!0)}catch(e){r.error(`Error parsing state for key:`,o,e),c=!0}else r.debug(`no item in storage for key:`,o),c=!0;c&&(r.debug(`removed item for key:`,o),t.remove(o))}}},qc=class e extends Kc{constructor(e){super(e),this.code_verifier=e.code_verifier,this.code_challenge=e.code_challenge,this.authority=e.authority,this.client_id=e.client_id,this.redirect_uri=e.redirect_uri,this.scope=e.scope,this.client_secret=e.client_secret,this.extraTokenParams=e.extraTokenParams,this.response_mode=e.response_mode,this.skipUserInfo=e.skipUserInfo}static async create(t){let n=t.code_verifier===!0?Cc.generateCodeVerifier():t.code_verifier||void 0,r=n?await Cc.generateCodeChallenge(n):void 0;return new e({...t,code_verifier:n,code_challenge:r})}toStorageString(){return new vc(`SigninState`).create(`toStorageString`),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state,code_verifier:this.code_verifier,authority:this.authority,client_id:this.client_id,redirect_uri:this.redirect_uri,scope:this.scope,client_secret:this.client_secret,extraTokenParams:this.extraTokenParams,response_mode:this.response_mode,skipUserInfo:this.skipUserInfo})}static fromStorageString(t){vc.createStatic(`SigninState`,`fromStorageString`);let n=JSON.parse(t);return e.create(n)}},Jc=class e{constructor(e){this.url=e.url,this.state=e.state}static async create({url:t,authority:n,client_id:r,redirect_uri:i,response_type:a,scope:o,state_data:s,response_mode:c,request_type:l,client_secret:u,nonce:d,url_state:f,resource:p,skipUserInfo:m,extraQueryParams:h,extraTokenParams:g,disablePKCE:_,dpopJkt:v,omitScopeWhenRequesting:y,...b}){if(!t)throw this._logger.error(`create: No url passed`),Error(`url`);if(!r)throw this._logger.error(`create: No client_id passed`),Error(`client_id`);if(!i)throw this._logger.error(`create: No redirect_uri passed`),Error(`redirect_uri`);if(!a)throw this._logger.error(`create: No response_type passed`),Error(`response_type`);if(!o)throw this._logger.error(`create: No scope passed`),Error(`scope`);if(!n)throw this._logger.error(`create: No authority passed`),Error(`authority`);let x=await qc.create({data:s,request_type:l,url_state:f,code_verifier:!_,client_id:r,authority:n,redirect_uri:i,response_mode:c,client_secret:u,scope:o,extraTokenParams:g,skipUserInfo:m}),S=new URL(t);S.searchParams.append(`client_id`,r),S.searchParams.append(`redirect_uri`,i),S.searchParams.append(`response_type`,a),y||S.searchParams.append(`scope`,o),d&&S.searchParams.append(`nonce`,d),v&&S.searchParams.append(`dpop_jkt`,v);let C=x.id;f&&(C=`${C}${Oc}${f}`),S.searchParams.append(`state`,C),x.code_challenge&&(S.searchParams.append(`code_challenge`,x.code_challenge),S.searchParams.append(`code_challenge_method`,`S256`)),p&&(Array.isArray(p)?p:[p]).forEach(e=>S.searchParams.append(`resource`,e));for(let[e,t]of Object.entries({response_mode:c,...b,...h}))t!=null&&S.searchParams.append(e,t.toString());return new e({url:S.href,state:x})}};Jc._logger=new vc(`SigninRequest`);var Yc=Jc,Xc=`openid`,Zc=class{constructor(e){if(this.access_token=``,this.token_type=``,this.profile={},this.state=e.get(`state`),this.session_state=e.get(`session_state`),this.state){let e=decodeURIComponent(this.state).split(Oc);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(Oc))}this.error=e.get(`error`),this.error_description=e.get(`error_description`),this.error_uri=e.get(`error_uri`),this.code=e.get(`code`)}get expires_in(){if(this.expires_at!==void 0)return this.expires_at-Ec.getEpochTime()}set expires_in(e){typeof e==`string`&&(e=Number(e)),e!==void 0&&e>=0&&(this.expires_at=Math.floor(e)+Ec.getEpochTime())}get isOpenId(){return this.scope?.split(` `).includes(Xc)||!!this.id_token}},Qc=class{constructor({url:e,state_data:t,id_token_hint:n,post_logout_redirect_uri:r,extraQueryParams:i,request_type:a,client_id:o,url_state:s}){if(this._logger=new vc(`SignoutRequest`),!e)throw this._logger.error(`ctor: No url passed`),Error(`url`);let c=new URL(e);if(n&&c.searchParams.append(`id_token_hint`,n),o&&c.searchParams.append(`client_id`,o),r&&(c.searchParams.append(`post_logout_redirect_uri`,r),t||s)){this.state=new Kc({data:t,request_type:a,url_state:s});let e=this.state.id;s&&(e=`${e}${Oc}${s}`),c.searchParams.append(`state`,e)}for(let[e,t]of Object.entries({...i}))t!=null&&c.searchParams.append(e,t.toString());this.url=c.href}},$c=class{constructor(e){if(this.state=e.get(`state`),this.state){let e=decodeURIComponent(this.state).split(Oc);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(Oc))}this.error=e.get(`error`),this.error_description=e.get(`error_description`),this.error_uri=e.get(`error_uri`)}},el=[`nbf`,`jti`,`auth_time`,`nonce`,`acr`,`amr`,`azp`,`at_hash`],tl=[`sub`,`iss`,`aud`,`exp`,`iat`],nl=class{constructor(e){this._settings=e,this._logger=new vc(`ClaimsService`)}filterProtocolClaims(e){let t={...e};if(this._settings.filterProtocolClaims){let e;e=Array.isArray(this._settings.filterProtocolClaims)?this._settings.filterProtocolClaims:el;for(let n of e)tl.includes(n)||delete t[n]}return t}mergeClaims(e,t){let n={...e};for(let[e,r]of Object.entries(t))if(n[e]!==r)if(Array.isArray(n[e])||Array.isArray(r))if(this._settings.mergeClaimsStrategy.array==`replace`)n[e]=r;else{let t=Array.isArray(n[e])?n[e]:[n[e]];for(let e of Array.isArray(r)?r:[r])t.includes(e)||t.push(e);n[e]=t}else typeof n[e]==`object`&&typeof r==`object`?n[e]=this.mergeClaims(n[e],r):n[e]=r;return n}},rl=class{constructor(e,t){this.keys=e,this.nonce=t}},il=class{constructor(e,t){this._logger=new vc(`OidcClient`),this.settings=e instanceof Hc?e:new Hc(e),this.metadataService=t??new Ic(this.settings),this._claimsService=new nl(this.settings),this._validator=new Gc(this.settings,this.metadataService,this._claimsService),this._tokenClient=new Wc(this.settings,this.metadataService)}async createSigninRequest({state:e,request:t,request_uri:n,request_type:r,id_token_hint:i,login_hint:a,skipUserInfo:o,nonce:s,url_state:c,response_type:l=this.settings.response_type,scope:u=this.settings.scope,redirect_uri:d=this.settings.redirect_uri,prompt:f=this.settings.prompt,display:p=this.settings.display,max_age:m=this.settings.max_age,ui_locales:h=this.settings.ui_locales,acr_values:g=this.settings.acr_values,resource:_=this.settings.resource,response_mode:v=this.settings.response_mode,extraQueryParams:y=this.settings.extraQueryParams,extraTokenParams:b=this.settings.extraTokenParams,dpopJkt:x,omitScopeWhenRequesting:S=this.settings.omitScopeWhenRequesting}){let C=this._logger.create(`createSigninRequest`);if(l!==`code`)throw Error(`Only the Authorization Code flow (with PKCE) is supported`);let w=await this.metadataService.getAuthorizationEndpoint();C.debug(`Received authorization endpoint`,w);let T=await Yc.create({url:w,authority:this.settings.authority,client_id:this.settings.client_id,redirect_uri:d,response_type:l,scope:u,state_data:e,url_state:c,prompt:f,display:p,max_age:m,ui_locales:h,id_token_hint:i,login_hint:a,acr_values:g,dpopJkt:x,resource:_,request:t,request_uri:n,extraQueryParams:y,extraTokenParams:b,request_type:r,response_mode:v,client_secret:this.settings.client_secret,skipUserInfo:o,nonce:s,disablePKCE:this.settings.disablePKCE,omitScopeWhenRequesting:S});await this.clearStaleState();let E=T.state;return await this.settings.stateStore.set(E.id,E.toStorageString()),T}async readSigninResponseState(e,t=!1){let n=this._logger.create(`readSigninResponseState`),r=new Zc(Dc.readParams(e,this.settings.response_mode));if(!r.state)throw n.throw(Error(`No state in response`)),null;let i=await this.settings.stateStore[t?`remove`:`get`](r.state);if(!i)throw n.throw(Error(`No matching state found in storage`)),null;return{state:await qc.fromStorageString(i),response:r}}async processSigninResponse(e,t,n=!0){let r=this._logger.create(`processSigninResponse`),{state:i,response:a}=await this.readSigninResponseState(e,n);if(r.debug(`received state from storage; validating response`),this.settings.dpop&&this.settings.dpop.store){let e=await this.getDpopProof(this.settings.dpop.store);t={...t,DPoP:e}}try{await this._validator.validateSigninResponse(a,i,t)}catch(e){if(e instanceof Pc&&this.settings.dpop){let n=await this.getDpopProof(this.settings.dpop.store,e.nonce);t.DPoP=n,await this._validator.validateSigninResponse(a,i,t)}else throw e}return a}async getDpopProof(e,t){let n,r;return(await e.getAllKeys()).includes(this.settings.client_id)?(r=await e.get(this.settings.client_id),r.nonce!==t&&t&&(r.nonce=t,await e.set(this.settings.client_id,r))):(n=await Cc.generateDPoPKeys(),r=new rl(n,t),await e.set(this.settings.client_id,r)),await Cc.generateDPoPProof({url:await this.metadataService.getTokenEndpoint(!1),httpMethod:`POST`,keyPair:r.keys,nonce:r.nonce})}async processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n=!1,extraTokenParams:r={}}){let i=await this._tokenClient.exchangeCredentials({username:e,password:t,...r}),a=new Zc(new URLSearchParams);return Object.assign(a,i),await this._validator.validateCredentialsResponse(a,n),a}async useRefreshToken({state:e,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,extraTokenParams:a}){let o=this._logger.create(`useRefreshToken`),s;if(this.settings.refreshTokenAllowedScope===void 0)s=e.scope;else{let t=this.settings.refreshTokenAllowedScope.split(` `);s=(e.scope?.split(` `)||[]).filter(e=>t.includes(e)).join(` `)}if(this.settings.dpop&&this.settings.dpop.store){let e=await this.getDpopProof(this.settings.dpop.store);i={...i,DPoP:e}}let c;try{c=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:s,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,...a})}catch(o){if(o instanceof Pc&&this.settings.dpop)i.DPoP=await this.getDpopProof(this.settings.dpop.store,o.nonce),c=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:s,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,...a});else throw o}let l=new Zc(new URLSearchParams);return Object.assign(l,c),o.debug(`validating response`,l),await this._validator.validateRefreshResponse(l,{...e,scope:s}),l}async createSignoutRequest({state:e,id_token_hint:t,client_id:n,request_type:r,url_state:i,post_logout_redirect_uri:a=this.settings.post_logout_redirect_uri,extraQueryParams:o=this.settings.extraQueryParams}={}){let s=this._logger.create(`createSignoutRequest`),c=await this.metadataService.getEndSessionEndpoint();if(!c)throw s.throw(Error(`No end session endpoint`)),null;s.debug(`Received end session endpoint`,c),!n&&a&&!t&&(n=this.settings.client_id);let l=new Qc({url:c,id_token_hint:t,client_id:n,post_logout_redirect_uri:a,state_data:e,extraQueryParams:o,request_type:r,url_state:i});await this.clearStaleState();let u=l.state;return u&&(s.debug(`Signout request has state to persist`),await this.settings.stateStore.set(u.id,u.toStorageString())),l}async readSignoutResponseState(e,t=!1){let n=this._logger.create(`readSignoutResponseState`),r=new $c(Dc.readParams(e,this.settings.response_mode));if(!r.state){if(n.debug(`No state in response`),r.error)throw n.warn(`Response was error:`,r.error),new kc(r);return{state:void 0,response:r}}let i=await this.settings.stateStore[t?`remove`:`get`](r.state);if(!i)throw n.throw(Error(`No matching state found in storage`)),null;return{state:await Kc.fromStorageString(i),response:r}}async processSignoutResponse(e){let t=this._logger.create(`processSignoutResponse`),{state:n,response:r}=await this.readSignoutResponseState(e,!0);return n?(t.debug(`Received state from storage; validating response`),this._validator.validateSignoutResponse(r,n)):t.debug(`No state from storage; skipping response validation`),r}clearStaleState(){return this._logger.create(`clearStaleState`),Kc.clearStaleState(this.settings.stateStore,this.settings.staleStateAgeInSeconds)}async revokeToken(e,t){return this._logger.create(`revokeToken`),await this._tokenClient.revoke({token:e,token_type_hint:t})}},al=class{constructor(e){this._userManager=e,this._logger=new vc(`SessionMonitor`),this._start=async e=>{let t=e.session_state;if(!t)return;let n=this._logger.create(`_start`);if(e.profile?(this._sub=e.profile.sub,n.debug(`session_state`,t,`, sub`,this._sub)):(this._sub=void 0,n.debug(`session_state`,t,`, anonymous user`)),this._checkSessionIFrame){this._checkSessionIFrame.start(t);return}try{let e=await this._userManager.metadataService.getCheckSessionIframe();if(e){n.debug(`initializing check session iframe`);let r=this._userManager.settings.client_id,i=this._userManager.settings.checkSessionIntervalInSeconds,a=this._userManager.settings.stopCheckSessionOnError,o=new Mc(this._callback,r,e,i,a);await o.load(),this._checkSessionIFrame=o,o.start(t)}else n.warn(`no check session iframe found in the metadata`)}catch(e){n.error(`Error from getCheckSessionIframe:`,e instanceof Error?e.message:e)}},this._stop=()=>{let e=this._logger.create(`_stop`);if(this._sub=void 0,this._checkSessionIFrame&&this._checkSessionIFrame.stop(),this._userManager.settings.monitorAnonymousSession){let t=setInterval(async()=>{clearInterval(t);try{let e=await this._userManager.querySessionStatus();if(e){let t={session_state:e.session_state,profile:e.sub?{sub:e.sub}:null};this._start(t)}}catch(t){e.error(`error from querySessionStatus`,t instanceof Error?t.message:t)}},1e3)}},this._callback=async()=>{let e=this._logger.create(`_callback`);try{let t=await this._userManager.querySessionStatus(),n=!0;t&&this._checkSessionIFrame?t.sub===this._sub?(n=!1,this._checkSessionIFrame.start(t.session_state),e.debug(`same sub still logged in at OP, session state has changed, restarting check session iframe; session_state`,t.session_state),await this._userManager.events._raiseUserSessionChanged()):e.debug(`different subject signed into OP`,t.sub):e.debug(`subject no longer signed into OP`),n?this._sub?await this._userManager.events._raiseUserSignedOut():await this._userManager.events._raiseUserSignedIn():e.debug(`no change in session detected, no event to raise`)}catch(t){this._sub&&(e.debug(`Error calling queryCurrentSigninSession; raising signed out event`,t),await this._userManager.events._raiseUserSignedOut())}},e||this._logger.throw(Error(`No user manager passed`)),this._userManager.events.addUserLoaded(this._start),this._userManager.events.addUserUnloaded(this._stop),this._init().catch(e=>{this._logger.error(e)})}async _init(){this._logger.create(`_init`);let e=await this._userManager.getUser();if(e)this._start(e);else if(this._userManager.settings.monitorAnonymousSession){let e=await this._userManager.querySessionStatus();if(e){let t={session_state:e.session_state,profile:e.sub?{sub:e.sub}:null};this._start(t)}}}},ol=class e{constructor(e){this.id_token=e.id_token,this.session_state=e.session_state??null,this.access_token=e.access_token,this.refresh_token=e.refresh_token,this.token_type=e.token_type,this.scope=e.scope,this.profile=e.profile,this.expires_at=e.expires_at,this.state=e.userState,this.url_state=e.url_state}get expires_in(){if(this.expires_at!==void 0)return this.expires_at-Ec.getEpochTime()}set expires_in(e){e!==void 0&&(this.expires_at=Math.floor(e)+Ec.getEpochTime())}get expired(){let e=this.expires_in;if(e!==void 0)return e<=0}get scopes(){return this.scope?.split(` `)??[]}toStorageString(){return new vc(`User`).create(`toStorageString`),JSON.stringify({id_token:this.id_token,session_state:this.session_state,access_token:this.access_token,refresh_token:this.refresh_token,token_type:this.token_type,scope:this.scope,profile:this.profile,expires_at:this.expires_at})}static fromStorageString(t){return vc.createStatic(`User`,`fromStorageString`),new e(JSON.parse(t))}},sl=`oidc-client`,cl=class{constructor(){this._abort=new wc(`Window navigation aborted`),this._disposeHandlers=new Set,this._window=null}async navigate(e){let t=this._logger.create(`navigate`);if(!this._window)throw Error(`Attempted to navigate on a disposed window`);t.debug(`setting URL in window`),this._window.location.replace(e.url);let{url:n,keepOpen:r}=await new Promise((n,r)=>{let i=i=>{let a=i.data,o=e.scriptOrigin??window.location.origin;if(i.origin===o&&a?.source===sl){try{let n=Dc.readParams(a.url,e.response_mode).get(`state`);if(n||t.warn(`no state found in response url`),i.source!==this._window&&n!==e.state)return}catch{this._dispose(),r(Error(`Invalid response from window`))}n(a)}};window.addEventListener(`message`,i,!1),this._disposeHandlers.add(()=>window.removeEventListener(`message`,i,!1));let a=new BroadcastChannel(`oidc-client-popup-${e.state}`);a.addEventListener(`message`,i,!1),this._disposeHandlers.add(()=>a.close()),this._disposeHandlers.add(this._abort.addHandler(e=>{this._dispose(),r(e)}))});return t.debug(`got response from window`),this._dispose(),r||this.close(),{url:n}}_dispose(){this._logger.create(`_dispose`);for(let e of this._disposeHandlers)e();this._disposeHandlers.clear()}static _notifyParent(e,t,n=!1,r=window.location.origin){let i={source:sl,url:t,keepOpen:n},a=new vc(`_notifyParent`);if(e)a.debug(`With parent. Using parent.postMessage.`),e.postMessage(i,r);else{a.debug(`No parent. Using BroadcastChannel.`);let e=new URL(t).searchParams.get(`state`);if(!e)throw Error(`No parent and no state in URL. Can't complete notification.`);let n=new BroadcastChannel(`oidc-client-popup-${e}`);n.postMessage(i),n.close()}}},ll={location:!1,toolbar:!1,height:640,closePopupWindowAfterInSeconds:-1},ul=`_blank`,dl=60,fl=2,pl=10,ml=class extends Hc{constructor(e){let{popup_redirect_uri:t=e.redirect_uri,popup_post_logout_redirect_uri:n=e.post_logout_redirect_uri,popupWindowFeatures:r=ll,popupWindowTarget:i=ul,redirectMethod:a=`assign`,redirectTarget:o=`self`,iframeNotifyParentOrigin:s=e.iframeNotifyParentOrigin,iframeScriptOrigin:c=e.iframeScriptOrigin,requestTimeoutInSeconds:l,silent_redirect_uri:u=e.redirect_uri,silentRequestTimeoutInSeconds:d,automaticSilentRenew:f=!0,validateSubOnSilentRenew:p=!0,includeIdTokenInSilentRenew:m=!1,monitorSession:h=!1,monitorAnonymousSession:g=!1,checkSessionIntervalInSeconds:_=fl,query_status_response_type:v=`code`,stopCheckSessionOnError:y=!0,revokeTokenTypes:b=[`access_token`,`refresh_token`],revokeTokensOnSignout:x=!1,includeIdTokenInSilentSignout:S=!1,accessTokenExpiringNotificationTimeInSeconds:C=dl,userStore:w}=e;if(super(e),this.popup_redirect_uri=t,this.popup_post_logout_redirect_uri=n,this.popupWindowFeatures=r,this.popupWindowTarget=i,this.redirectMethod=a,this.redirectTarget=o,this.iframeNotifyParentOrigin=s,this.iframeScriptOrigin=c,this.silent_redirect_uri=u,this.silentRequestTimeoutInSeconds=d||l||pl,this.automaticSilentRenew=f,this.validateSubOnSilentRenew=p,this.includeIdTokenInSilentRenew=m,this.monitorSession=h,this.monitorAnonymousSession=g,this.checkSessionIntervalInSeconds=_,this.stopCheckSessionOnError=y,this.query_status_response_type=v,this.revokeTokenTypes=b,this.revokeTokensOnSignout=x,this.includeIdTokenInSilentSignout=S,this.accessTokenExpiringNotificationTimeInSeconds=C,w)this.userStore=w;else{let e=typeof window<`u`?window.sessionStorage:new Nc;this.userStore=new Lc({store:e})}}},hl=class e extends cl{constructor({silentRequestTimeoutInSeconds:t=pl}){super(),this._logger=new vc(`IFrameWindow`),this._timeoutInSeconds=t,this._frame=e.createHiddenIframe(),this._window=this._frame.contentWindow}static createHiddenIframe(){let e=window.document.createElement(`iframe`);return e.style.visibility=`hidden`,e.style.position=`fixed`,e.style.left=`-1000px`,e.style.top=`0`,e.width=`0`,e.height=`0`,window.document.body.appendChild(e),e}async navigate(e){this._logger.debug(`navigate: Using timeout of:`,this._timeoutInSeconds);let t=setTimeout(()=>void this._abort.raise(new Ac(`IFrame timed out without a response`)),this._timeoutInSeconds*1e3);return this._disposeHandlers.add(()=>clearTimeout(t)),await super.navigate(e)}close(){var e;this._frame&&=(this._frame.parentNode&&(this._frame.addEventListener(`load`,e=>{var t;let n=e.target;(t=n.parentNode)==null||t.removeChild(n),this._abort.raise(Error(`IFrame removed from DOM`))},!0),(e=this._frame.contentWindow)==null||e.location.replace(`about:blank`)),null),this._window=null}static notifyParent(e,t){return super._notifyParent(window.parent,e,!1,t)}},gl=class{constructor(e){this._settings=e,this._logger=new vc(`IFrameNavigator`)}async prepare({silentRequestTimeoutInSeconds:e=this._settings.silentRequestTimeoutInSeconds}){return new hl({silentRequestTimeoutInSeconds:e})}async callback(e){this._logger.create(`callback`),hl.notifyParent(e,this._settings.iframeNotifyParentOrigin)}},_l=500,vl=1e3,yl=class extends cl{constructor({popupWindowTarget:e=ul,popupWindowFeatures:t={},popupSignal:n,popupAbortOnClose:r}){super(),this._logger=new vc(`PopupWindow`);let i=Tc.center({...ll,...t});this._window=window.open(void 0,e,Tc.serialize(i)),this.abortOnClose=!!r,n&&n.addEventListener(`abort`,()=>{this._abort.raise(Error(n.reason??`Popup aborted`))}),t.closePopupWindowAfterInSeconds&&t.closePopupWindowAfterInSeconds>0&&setTimeout(()=>{if(!this._window||typeof this._window.closed!=`boolean`||this._window.closed){this._abort.raise(Error(`Popup blocked by user`));return}this.close()},t.closePopupWindowAfterInSeconds*vl)}async navigate(e){var t;(t=this._window)==null||t.focus();let n=setInterval(()=>{(!this._window||this._window.closed)&&(this._logger.debug(`Popup closed by user or isolated by redirect`),r(),this._disposeHandlers.delete(r),this.abortOnClose&&this._abort.raise(Error(`Popup closed by user`)))},_l),r=()=>clearInterval(n);return this._disposeHandlers.add(r),await super.navigate(e)}close(){this._window&&(this._window.closed||(this._window.close(),this._abort.raise(Error(`Popup closed`)))),this._window=null}static notifyOpener(e,t){super._notifyParent(window.opener,e,t),!t&&!window.opener&&window.close()}},bl=class{constructor(e){this._settings=e,this._logger=new vc(`PopupNavigator`)}async prepare({popupWindowFeatures:e=this._settings.popupWindowFeatures,popupWindowTarget:t=this._settings.popupWindowTarget,popupSignal:n,popupAbortOnClose:r}){return new yl({popupWindowFeatures:e,popupWindowTarget:t,popupSignal:n,popupAbortOnClose:r})}async callback(e,{keepOpen:t=!1}){this._logger.create(`callback`),yl.notifyOpener(e,t)}},xl=class{constructor(e){this._settings=e,this._logger=new vc(`RedirectNavigator`)}async prepare({redirectMethod:e=this._settings.redirectMethod,redirectTarget:t=this._settings.redirectTarget}){this._logger.create(`prepare`);let n=window.self;t===`top`&&(n=window.top??window.self);let r=n.location[e].bind(n.location),i;return{navigate:async e=>(this._logger.create(`navigate`),await new Promise((t,n)=>{i=n,window.addEventListener(`pageshow`,()=>t(window.location.href)),r(e.url)})),close:()=>{this._logger.create(`close`),i?.(Error(`Redirect aborted`)),n.stop()}}}async callback(){}},Sl=class extends jc{constructor(e){super({expiringNotificationTimeInSeconds:e.accessTokenExpiringNotificationTimeInSeconds}),this._logger=new vc(`UserManagerEvents`),this._userLoaded=new wc(`User loaded`),this._userUnloaded=new wc(`User unloaded`),this._silentRenewError=new wc(`Silent renew error`),this._userSignedIn=new wc(`User signed in`),this._userSignedOut=new wc(`User signed out`),this._userSessionChanged=new wc(`User session changed`)}async load(e,t=!0){await super.load(e),t&&await this._userLoaded.raise(e)}async unload(){await super.unload(),await this._userUnloaded.raise()}addUserLoaded(e){return this._userLoaded.addHandler(e)}removeUserLoaded(e){return this._userLoaded.removeHandler(e)}addUserUnloaded(e){return this._userUnloaded.addHandler(e)}removeUserUnloaded(e){return this._userUnloaded.removeHandler(e)}addSilentRenewError(e){return this._silentRenewError.addHandler(e)}removeSilentRenewError(e){return this._silentRenewError.removeHandler(e)}async _raiseSilentRenewError(e){await this._silentRenewError.raise(e)}addUserSignedIn(e){return this._userSignedIn.addHandler(e)}removeUserSignedIn(e){this._userSignedIn.removeHandler(e)}async _raiseUserSignedIn(){await this._userSignedIn.raise()}addUserSignedOut(e){return this._userSignedOut.addHandler(e)}removeUserSignedOut(e){this._userSignedOut.removeHandler(e)}async _raiseUserSignedOut(){await this._userSignedOut.raise()}addUserSessionChanged(e){return this._userSessionChanged.addHandler(e)}removeUserSessionChanged(e){this._userSessionChanged.removeHandler(e)}async _raiseUserSessionChanged(){await this._userSessionChanged.raise()}},Cl=class{constructor(e){this._userManager=e,this._logger=new vc(`SilentRenewService`),this._isStarted=!1,this._retryTimer=new Ec(`Retry Silent Renew`),this._tokenExpiring=async()=>{let e=this._logger.create(`_tokenExpiring`);try{await this._userManager.signinSilent(),e.debug(`silent token renewal successful`)}catch(t){if(t instanceof Ac){e.warn(`ErrorTimeout from signinSilent:`,t,`retry in 5s`),this._retryTimer.init(5);return}e.error(`Error from signinSilent:`,t),await this._userManager.events._raiseSilentRenewError(t)}}}async start(){let e=this._logger.create(`start`);if(!this._isStarted){this._isStarted=!0,this._userManager.events.addAccessTokenExpiring(this._tokenExpiring),this._retryTimer.addHandler(this._tokenExpiring);try{await this._userManager.getUser()}catch(t){e.error(`getUser error`,t)}}}stop(){this._isStarted&&=(this._retryTimer.cancel(),this._retryTimer.removeHandler(this._tokenExpiring),this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring),!1)}},wl=class{constructor(e){this.refresh_token=e.refresh_token,this.id_token=e.id_token,this.session_state=e.session_state,this.scope=e.scope,this.profile=e.profile,this.data=e.state}},Tl=class{constructor(e,t,n,r){this._logger=new vc(`UserManager`),this.settings=new ml(e),this._client=new il(e),this._redirectNavigator=t??new xl(this.settings),this._popupNavigator=n??new bl(this.settings),this._iframeNavigator=r??new gl(this.settings),this._events=new Sl(this.settings),this._silentRenewService=new Cl(this),this.settings.automaticSilentRenew&&this.startSilentRenew(),this._sessionMonitor=null,this.settings.monitorSession&&(this._sessionMonitor=new al(this))}get events(){return this._events}get metadataService(){return this._client.metadataService}async getUser(e=!1){let t=this._logger.create(`getUser`),n=await this._loadUser();return n?(t.info(`user loaded`),await this._events.load(n,e),n):(t.info(`user not found in storage`),null)}async removeUser(){let e=this._logger.create(`removeUser`);await this.storeUser(null),e.info(`user removed from storage`),await this._events.unload()}async signinRedirect(e={}){this._logger.create(`signinRedirect`);let{redirectMethod:t,...n}=e,r;this.settings.dpop?.bind_authorization_code&&(r=await this.generateDPoPJkt(this.settings.dpop));let i=await this._redirectNavigator.prepare({redirectMethod:t});await this._signinStart({request_type:`si:r`,dpopJkt:r,...n},i)}async signinRedirectCallback(e=window.location.href){let t=this._logger.create(`signinRedirectCallback`),n=await this._signinEnd(e);return n.profile&&n.profile.sub?t.info(`success, signed in subject`,n.profile.sub):t.info(`no subject`),n}async signinResourceOwnerCredentials({username:e,password:t,skipUserInfo:n=!1}){let r=this._logger.create(`signinResourceOwnerCredential`),i=await this._client.processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n,extraTokenParams:this.settings.extraTokenParams});r.debug(`got signin response`);let a=await this._buildUser(i);return a.profile&&a.profile.sub?r.info(`success, signed in subject`,a.profile.sub):r.info(`no subject`),a}async signinPopup(e={}){let t=this._logger.create(`signinPopup`),n;this.settings.dpop?.bind_authorization_code&&(n=await this.generateDPoPJkt(this.settings.dpop));let{popupWindowFeatures:r,popupWindowTarget:i,popupSignal:a,popupAbortOnClose:o,...s}=e,c=this.settings.popup_redirect_uri;c||t.throw(Error(`No popup_redirect_uri configured`));let l=await this._popupNavigator.prepare({popupWindowFeatures:r,popupWindowTarget:i,popupSignal:a,popupAbortOnClose:o}),u=await this._signin({request_type:`si:p`,redirect_uri:c,display:`popup`,dpopJkt:n,...s},l);return u&&(u.profile&&u.profile.sub?t.info(`success, signed in subject`,u.profile.sub):t.info(`no subject`)),u}async signinPopupCallback(e=window.location.href,t=!1){let n=this._logger.create(`signinPopupCallback`);await this._popupNavigator.callback(e,{keepOpen:t}),n.info(`success`)}async signinSilent(e={}){let t=this._logger.create(`signinSilent`),{silentRequestTimeoutInSeconds:n,...r}=e,i=await this._loadUser();if(!e.forceIframeAuth&&i?.refresh_token){t.debug(`using refresh token`);let e=new wl(i);return await this._useRefreshToken({state:e,redirect_uri:r.redirect_uri,resource:r.resource,extraTokenParams:r.extraTokenParams,timeoutInSeconds:n})}let a;this.settings.dpop?.bind_authorization_code&&(a=await this.generateDPoPJkt(this.settings.dpop));let o=this.settings.silent_redirect_uri;o||t.throw(Error(`No silent_redirect_uri configured`));let s;i&&this.settings.validateSubOnSilentRenew&&(t.debug(`subject prior to silent renew:`,i.profile.sub),s=i.profile.sub);let c=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n});return i=await this._signin({request_type:`si:s`,redirect_uri:o,prompt:`none`,id_token_hint:this.settings.includeIdTokenInSilentRenew?i?.id_token:void 0,dpopJkt:a,...r},c,s),i&&(i.profile?.sub?t.info(`success, signed in subject`,i.profile.sub):t.info(`no subject`)),i}async _useRefreshToken(e){let t=await this._client.useRefreshToken({timeoutInSeconds:this.settings.silentRequestTimeoutInSeconds,...e}),n=new ol({...e.state,...t});return await this.storeUser(n),await this._events.load(n),n}async signinSilentCallback(e=window.location.href){let t=this._logger.create(`signinSilentCallback`);await this._iframeNavigator.callback(e),t.info(`success`)}async signinCallback(e=window.location.href){let{state:t}=await this._client.readSigninResponseState(e);switch(t.request_type){case`si:r`:return await this.signinRedirectCallback(e);case`si:p`:await this.signinPopupCallback(e);break;case`si:s`:await this.signinSilentCallback(e);break;default:throw Error(`invalid response_type in state`)}}async signoutCallback(e=window.location.href,t=!1){let{state:n}=await this._client.readSignoutResponseState(e);if(n)switch(n.request_type){case`so:r`:return await this.signoutRedirectCallback(e);case`so:p`:await this.signoutPopupCallback(e,t);break;case`so:s`:await this.signoutSilentCallback(e);break;default:throw Error(`invalid response_type in state`)}}async querySessionStatus(e={}){let t=this._logger.create(`querySessionStatus`),{silentRequestTimeoutInSeconds:n,...r}=e,i=this.settings.silent_redirect_uri;i||t.throw(Error(`No silent_redirect_uri configured`));let a=await this._loadUser(),o=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n}),s=await this._signinStart({request_type:`si:s`,redirect_uri:i,prompt:`none`,id_token_hint:this.settings.includeIdTokenInSilentRenew?a?.id_token:void 0,response_type:this.settings.query_status_response_type,scope:`openid`,skipUserInfo:!0,...r},o);try{let e=await this._client.processSigninResponse(s.url,{});return t.debug(`got signin response`),e.session_state&&e.profile.sub?(t.info(`success for subject`,e.profile.sub),{session_state:e.session_state,sub:e.profile.sub}):(t.info(`success, user not authenticated`),null)}catch(e){if(this.settings.monitorAnonymousSession&&e instanceof kc)switch(e.error){case`login_required`:case`consent_required`:case`interaction_required`:case`account_selection_required`:return t.info(`success for anonymous user`),{session_state:e.session_state}}throw e}}async _signin(e,t,n){let r=await this._signinStart(e,t);return await this._signinEnd(r.url,n)}async _signinStart(e,t){let n=this._logger.create(`_signinStart`);try{let r=await this._client.createSigninRequest(e);return n.debug(`got signin request`),await t.navigate({url:r.url,state:r.state.id,response_mode:r.state.response_mode,scriptOrigin:this.settings.iframeScriptOrigin})}catch(e){throw n.debug(`error after preparing navigator, closing navigator window`),t.close(),e}}async _signinEnd(e,t){let n=this._logger.create(`_signinEnd`),r=await this._client.processSigninResponse(e,{});return n.debug(`got signin response`),await this._buildUser(r,t)}async _buildUser(e,t){let n=this._logger.create(`_buildUser`),r=new ol(e);if(t){if(t!==r.profile.sub)throw n.debug(`current user does not match user returned from signin. sub from signin:`,r.profile.sub),new kc({...e,error:`login_required`});n.debug(`current user matches user returned from signin`)}return await this.storeUser(r),n.debug(`user stored`),await this._events.load(r),r}async signoutRedirect(e={}){let t=this._logger.create(`signoutRedirect`),{redirectMethod:n,...r}=e,i=await this._redirectNavigator.prepare({redirectMethod:n});await this._signoutStart({request_type:`so:r`,post_logout_redirect_uri:this.settings.post_logout_redirect_uri,...r},i),t.info(`success`)}async signoutRedirectCallback(e=window.location.href){let t=this._logger.create(`signoutRedirectCallback`),n=await this._signoutEnd(e);return t.info(`success`),n}async signoutPopup(e={}){let t=this._logger.create(`signoutPopup`),{popupWindowFeatures:n,popupWindowTarget:r,popupSignal:i,...a}=e,o=this.settings.popup_post_logout_redirect_uri,s=await this._popupNavigator.prepare({popupWindowFeatures:n,popupWindowTarget:r,popupSignal:i});await this._signout({request_type:`so:p`,post_logout_redirect_uri:o,state:o==null?void 0:{},...a},s),t.info(`success`)}async signoutPopupCallback(e=window.location.href,t=!1){let n=this._logger.create(`signoutPopupCallback`);await this._popupNavigator.callback(e,{keepOpen:t}),n.info(`success`)}async _signout(e,t){let n=await this._signoutStart(e,t);return await this._signoutEnd(n.url)}async _signoutStart(e={},t){let n=this._logger.create(`_signoutStart`);try{let r=await this._loadUser();n.debug(`loaded current user from storage`),this.settings.revokeTokensOnSignout&&await this._revokeInternal(r);let i=e.id_token_hint||r&&r.id_token;i&&(n.debug(`setting id_token_hint in signout request`),e.id_token_hint=i),await this.removeUser(),n.debug(`user removed, creating signout request`);let a=await this._client.createSignoutRequest(e);return n.debug(`got signout request`),await t.navigate({url:a.url,state:a.state?.id,scriptOrigin:this.settings.iframeScriptOrigin})}catch(e){throw n.debug(`error after preparing navigator, closing navigator window`),t.close(),e}}async _signoutEnd(e){let t=this._logger.create(`_signoutEnd`),n=await this._client.processSignoutResponse(e);return t.debug(`got signout response`),n}async signoutSilent(e={}){let t=this._logger.create(`signoutSilent`),{silentRequestTimeoutInSeconds:n,...r}=e,i=this.settings.includeIdTokenInSilentSignout?(await this._loadUser())?.id_token:void 0,a=this.settings.popup_post_logout_redirect_uri,o=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n});await this._signout({request_type:`so:s`,post_logout_redirect_uri:a,id_token_hint:i,...r},o),t.info(`success`)}async signoutSilentCallback(e=window.location.href){let t=this._logger.create(`signoutSilentCallback`);await this._iframeNavigator.callback(e),t.info(`success`)}async revokeTokens(e){let t=await this._loadUser();await this._revokeInternal(t,e)}async _revokeInternal(e,t=this.settings.revokeTokenTypes){let n=this._logger.create(`_revokeInternal`);if(!e)return;let r=t.filter(t=>typeof e[t]==`string`);if(!r.length){n.debug(`no need to revoke due to no token(s)`);return}for(let t of r)await this._client.revokeToken(e[t],t),n.info(`${t} revoked successfully`),t!==`access_token`&&(e[t]=null);await this.storeUser(e),n.debug(`user stored`),await this._events.load(e)}startSilentRenew(){this._logger.create(`startSilentRenew`),this._silentRenewService.start()}stopSilentRenew(){this._silentRenewService.stop()}get _userStoreKey(){return`user:${this.settings.authority}:${this.settings.client_id}`}async _loadUser(){let e=this._logger.create(`_loadUser`),t=await this.settings.userStore.get(this._userStoreKey);return t?(e.debug(`user storageString loaded`),ol.fromStorageString(t)):(e.debug(`no user storageString`),null)}async storeUser(e){let t=this._logger.create(`storeUser`);if(e){t.debug(`storing user`);let n=e.toStorageString();await this.settings.userStore.set(this._userStoreKey,n)}else this._logger.debug(`removing user`),await this.settings.userStore.remove(this._userStoreKey),this.settings.dpop&&await this.settings.dpop.store.remove(this.settings.client_id)}async clearStaleState(){await this._client.clearStaleState()}async dpopProof(e,t,n,r){let i=await(this.settings.dpop?.store)?.get(this.settings.client_id);if(i)return await Cc.generateDPoPProof({url:e,accessToken:t?.access_token,httpMethod:n,keyPair:i.keys,nonce:r})}async generateDPoPJkt(e){let t=await e.store.get(this.settings.client_id);return t||(t=new rl(await Cc.generateDPoPKeys()),await e.store.set(this.settings.client_id,t)),await Cc.generateDPoPJkt(t.keys)}},El=d(c(((e,t)=>{
|
|
17
|
+
`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Tr(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&ii.assertOptions(n,{silentJSONParsing:ai.transitional(ai.boolean),forcedJSONParsing:ai.transitional(ai.boolean),clarifyTimeoutError:ai.transitional(ai.boolean),legacyInterceptorReqResOrdering:ai.transitional(ai.boolean),advertiseZstdAcceptEncoding:ai.transitional(ai.boolean),validateStatusUndefinedResolves:ai.transitional(ai.boolean)},!1),r!=null&&(I.isFunction(r)?t.paramsSerializer={serialize:r}:ii.assertOptions(r,{encode:ai.function,serialize:ai.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),ii.assertOptions(t,{baseUrl:ai.spelling(`baseURL`),withXsrfToken:ai.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&I.merge(i.common,i[t.method]);i&&I.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=En.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Vn;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(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=[ei.bind(this),void 0];for(e.unshift(...o),e.push(...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<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=ei.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=Tr(this.defaults,e),zn(Cr(e.baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}};I.forEach([`delete`,`get`,`head`,`options`],function(e){oi.prototype[e]=function(t,n){return this.request(Tr(n||{},{method:e,url:t,data:n&&I.hasOwnProp(n,`data`)?n.data:void 0}))}}),I.forEach([`post`,`put`,`patch`,`query`],function(e){function t(t){return function(n,r,i){return this.request(Tr(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}oi.prototype[e]=t(),e!==`query`&&(oi.prototype[e+`Form`]=t(!0))});var si=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 or(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)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function ci(e){return function(t){return e.apply(null,t)}}function li(e){return I.isObject(e)&&e.isAxiosError===!0}let ui={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,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(ui).forEach(([e,t])=>{ui[t]=e});function di(e){let t=new oi(e),n=Ke(oi.prototype.request,t);return I.extend(n,oi.prototype,t,{allOwnKeys:!0}),I.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return di(Tr(e,t))},n}let R=di(rr);R.Axios=oi,R.CanceledError=or,R.CancelToken=si,R.isCancel=ar,R.VERSION=`1.18.1`,R.toFormData=Pn,R.AxiosError=L,R.Cancel=R.CanceledError,R.all=function(e){return Promise.all(e)},R.spread=ci,R.isAxiosError=li,R.mergeConfig=Tr,R.AxiosHeaders=En,R.formToJSON=e=>er(I.isHTMLForm(e)?new FormData(e):e),R.getAdapter=Qr.getAdapter,R.HttpStatusCode=ui,R.default=R;let{Axios:fi,AxiosError:pi,CanceledError:mi,isCancel:hi,CancelToken:gi,VERSION:_i,all:vi,Cancel:yi,isAxiosError:bi,spread:xi,toFormData:Si,AxiosHeaders:Ci,HttpStatusCode:wi,formToJSON:Ti,getAdapter:Ei,mergeConfig:Di,create:Oi}=R;var ki=Object.defineProperty,Ai=(e,t)=>{let n={};for(var r in e)ki(n,r,{get:e[r],enumerable:!0});return t||ki(n,Symbol.toStringTag,{value:`Module`}),n};let z=`https://api.sandbox.immutable.com`.replace(/\/+$/,``);var ji=class{basePath;axios;configuration;constructor(e,t=z,n=R){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}},Mi=class extends Error{field;constructor(e,t){super(t),this.field=e,this.name=`RequiredError`}};let B=`https://example.com`,V=function(e,t,n){if(n==null)throw new Mi(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},Ni=async function(e,t,n){n&&n.apiKey&&(e[t]=typeof n.apiKey==`function`?await n.apiKey(t):await n.apiKey)},Pi=async function(e,t){t&&t.accessToken&&(e.Authorization=`Bearer `+(typeof t.accessToken==`function`?await t.accessToken():await t.accessToken))};function Fi(e,t,n=``){t!=null&&(typeof t==`object`?Array.isArray(t)?t.forEach(t=>Fi(e,t,n)):Object.keys(t).forEach(r=>Fi(e,t[r],`${n}${n===``?``:`.`}${r}`)):e.has(n)?e.append(n,t):e.set(n,t))}let H=function(e,...t){let n=new URLSearchParams(e.search);Fi(n,t),e.search=n.toString()},Ii=function(e,t,n){let r=typeof e!=`string`;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers[`Content-Type`]):r)?JSON.stringify(e===void 0?{}:e):e||``},Li=function(e){return e.pathname+e.search+e.hash},Ri=function(e,t,n,r){return(i=t,a=n)=>{let o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},zi=function(e){return{getActivity:async(t,n,r={})=>{V(`getActivity`,`chainName`,t),V(`getActivity`,`activityId`,n);let i=`/v1/chains/{chain_name}/activities/{activity_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{activity_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},listActivities:async(t,n,r,i,a,o,s,c,l={})=>{V(`listActivities`,`chainName`,t);let u=`/v1/chains/{chain_name}/activities`.replace(`{chain_name}`,encodeURIComponent(String(t))),d=new URL(u,B),f;e&&(f=e.baseOptions);let p={method:`GET`,...f,...l},m={},h={};n!==void 0&&(h.contract_address=n),r!==void 0&&(h.token_id=r),i!==void 0&&(h.account_address=i),a!==void 0&&(h.activity_type=a),o!==void 0&&(h.transaction_hash=o),s!==void 0&&(h.page_cursor=s),c!==void 0&&(h.page_size=c),H(d,h);let g=f&&f.headers?f.headers:{};return p.headers={...m,...g,...l.headers},{url:Li(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s,c={})=>{V(`listActivityHistory`,`chainName`,t),V(`listActivityHistory`,`fromUpdatedAt`,n);let l=`/v1/chains/{chain_name}/activity-history`.replace(`{chain_name}`,encodeURIComponent(String(t))),u=new URL(l,B),d;e&&(d=e.baseOptions);let f={method:`GET`,...d,...c},p={},m={};n!==void 0&&(m.from_updated_at=n instanceof Date?n.toISOString():n),r!==void 0&&(m.to_updated_at=r instanceof Date?r.toISOString():r),i!==void 0&&(m.contract_address=i),a!==void 0&&(m.activity_type=a),o!==void 0&&(m.page_cursor=o),s!==void 0&&(m.page_size=s),H(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Li(u),options:f}}}},Bi=function(e){let t=zi(e);return{async getActivity(n,r,i){return Ri(await t.getActivity(n,r,i),R,z,e)},async listActivities(n,r,i,a,o,s,c,l,u){return Ri(await t.listActivities(n,r,i,a,o,s,c,l,u),R,z,e)},async listActivityHistory(n,r,i,a,o,s,c,l){return Ri(await t.listActivityHistory(n,r,i,a,o,s,c,l),R,z,e)}}},Vi=function(e,t,n){let r=Bi(e);return{getActivity(e,i){return r.getActivity(e.chainName,e.activityId,i).then(e=>e(n,t))},listActivities(e,i){return r.listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listActivityHistory(e,i){return r.listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.activityType,e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Hi=class extends ji{getActivity(e,t){return Bi(this.configuration).getActivity(e.chainName,e.activityId,t).then(e=>e(this.axios,this.basePath))}listActivities(e,t){return Bi(this.configuration).listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listActivityHistory(e,t){return Bi(this.configuration).listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.activityType,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let Ui=function(e){return{listChains:async(t,n,r={})=>{let i=new URL(`/v1/chains`,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...r},s={},c={};t!==void 0&&(c.page_cursor=t),n!==void 0&&(c.page_size=n),H(i,c);let l=a&&a.headers?a.headers:{};return o.headers={...s,...l,...r.headers},{url:Li(i),options:o}}}},Wi=function(e){let t=Ui(e);return{async listChains(n,r,i){return Ri(await t.listChains(n,r,i),R,z,e)}}},Gi=function(e,t,n){let r=Wi(e);return{listChains(e={},i){return r.listChains(e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Ki=class extends ji{listChains(e={},t){return Wi(this.configuration).listChains(e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let qi=function(e){return{getCollection:async(t,n,r={})=>{V(`getCollection`,`contractAddress`,t),V(`getCollection`,`chainName`,n);let i=`/v1/chains/{chain_name}/collections/{contract_address}`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},listCollections:async(t,n,r,i,a,o,s={})=>{V(`listCollections`,`chainName`,t);let c=`/v1/chains/{chain_name}/collections`.replace(`{chain_name}`,encodeURIComponent(String(t))),l=new URL(c,B),u;e&&(u=e.baseOptions);let d={method:`GET`,...u,...s},f={},p={};n&&(p.contract_address=n),r&&(p.verification_status=r),i!==void 0&&(p.from_updated_at=i instanceof Date?i.toISOString():i),a!==void 0&&(p.page_cursor=a),o!==void 0&&(p.page_size=o),H(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Li(l),options:d}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{V(`listCollectionsByNFTOwner`,`accountAddress`,t),V(`listCollectionsByNFTOwner`,`chainName`,n);let o=`/v1/chains/{chain_name}/accounts/{account_address}/collections`.replace(`{account_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),s=new URL(o,B),c;e&&(c=e.baseOptions);let l={method:`GET`,...c,...a},u={},d={};r!==void 0&&(d.page_cursor=r),i!==void 0&&(d.page_size=i),H(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Li(s),options:l}},refreshCollectionMetadata:async(t,n,r,i={})=>{V(`refreshCollectionMetadata`,`contractAddress`,t),V(`refreshCollectionMetadata`,`chainName`,n),V(`refreshCollectionMetadata`,`refreshCollectionMetadataRequest`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Pi(l,e),await Ni(l,`x-immutable-api-key`,e),await Pi(l,e),l[`Content-Type`]=`application/json`,H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Ii(r,c,e),{url:Li(o),options:c}}}},Ji=function(e){let t=qi(e);return{async getCollection(n,r,i){return Ri(await t.getCollection(n,r,i),R,z,e)},async listCollections(n,r,i,a,o,s,c){return Ri(await t.listCollections(n,r,i,a,o,s,c),R,z,e)},async listCollectionsByNFTOwner(n,r,i,a,o){return Ri(await t.listCollectionsByNFTOwner(n,r,i,a,o),R,z,e)},async refreshCollectionMetadata(n,r,i,a){return Ri(await t.refreshCollectionMetadata(n,r,i,a),R,z,e)}}},Yi=function(e,t,n){let r=Ji(e);return{getCollection(e,i){return r.getCollection(e.contractAddress,e.chainName,i).then(e=>e(n,t))},listCollections(e,i){return r.listCollections(e.chainName,e.contractAddress,e.verificationStatus,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listCollectionsByNFTOwner(e,i){return r.listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},refreshCollectionMetadata(e,i){return r.refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,i).then(e=>e(n,t))}}};var Xi=class extends ji{getCollection(e,t){return Ji(this.configuration).getCollection(e.contractAddress,e.chainName,t).then(e=>e(this.axios,this.basePath))}listCollections(e,t){return Ji(this.configuration).listCollections(e.chainName,e.contractAddress,e.verificationStatus,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listCollectionsByNFTOwner(e,t){return Ji(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}refreshCollectionMetadata(e,t){return Ji(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then(e=>e(this.axios,this.basePath))}};let Zi=function(e){return{signCraftingPayload:async(t,n,r={})=>{V(`signCraftingPayload`,`chainName`,t),V(`signCraftingPayload`,`signCraftingRequest`,n);let i=`/v1/chains/{chain_name}/crafting/sign`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Ni(c,`x-immutable-api-key`,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}}}},Qi=function(e){let t=Zi(e);return{async signCraftingPayload(n,r,i){return Ri(await t.signCraftingPayload(n,r,i),R,z,e)}}},$i=function(e,t,n){let r=Qi(e);return{signCraftingPayload(e,i){return r.signCraftingPayload(e.chainName,e.signCraftingRequest,i).then(e=>e(n,t))}}};var ea=class extends ji{signCraftingPayload(e,t){return Qi(this.configuration).signCraftingPayload(e.chainName,e.signCraftingRequest,t).then(e=>e(this.axios,this.basePath))}};let ta=function(e){return{approvePendingERC191Message:async(t,n={})=>{V(`approvePendingERC191Message`,`messageID`,t);let r=`/guardian/v1/erc191-messages/{messageID}/approve`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`POST`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},approvePendingMessage:async(t,n={})=>{V(`approvePendingMessage`,`messageID`,t);let r=`/guardian/v1/messages/{messageID}/approve`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`POST`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},approvePendingTransaction:async(t,n,r={})=>{V(`approvePendingTransaction`,`payloadHash`,t),V(`approvePendingTransaction`,`transactionApprovalRequest`,n);let i=`/guardian/v1/transactions/{payloadHash}/approve`.replace(`{payloadHash}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},evaluateErc191Message:async(t,n={})=>{V(`evaluateErc191Message`,`eRC191MessageEvaluationRequest`,t);let r=new URL(`/guardian/v1/erc191-messages/evaluate`,B),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Pi(o,e),o[`Content-Type`]=`application/json`,H(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Ii(t,a,e),{url:Li(r),options:a}},evaluateMessage:async(t,n={})=>{V(`evaluateMessage`,`messageEvaluationRequest`,t);let r=new URL(`/guardian/v1/messages/evaluate`,B),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Pi(o,e),o[`Content-Type`]=`application/json`,H(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Ii(t,a,e),{url:Li(r),options:a}},evaluateTransaction:async(t,n,r={})=>{V(`evaluateTransaction`,`id`,t),V(`evaluateTransaction`,`transactionEvaluationRequest`,n);let i=`/guardian/v1/transactions/{id}/evaluate`.replace(`{id}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getErc191MessageByID:async(t,n={})=>{V(`getErc191MessageByID`,`messageID`,t);let r=`/guardian/v1/erc191-messages/{messageID}`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},getMessageByID:async(t,n={})=>{V(`getMessageByID`,`messageID`,t);let r=`/guardian/v1/messages/{messageID}`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},getTransactionByID:async(t,n,r,i={})=>{V(`getTransactionByID`,`transactionID`,t),V(`getTransactionByID`,`chainType`,n);let a=`/guardian/v1/transactions/{transactionID}`.replace(`{transactionID}`,encodeURIComponent(String(t))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={},u={};await Pi(l,e),n!==void 0&&(u.chainType=n),r!==void 0&&(u.chainID=r),H(o,u);let d=s&&s.headers?s.headers:{};return c.headers={...l,...d,...i.headers},{url:Li(o),options:c}}}},na=function(e){let t=ta(e);return{async approvePendingERC191Message(n,r){return Ri(await t.approvePendingERC191Message(n,r),R,z,e)},async approvePendingMessage(n,r){return Ri(await t.approvePendingMessage(n,r),R,z,e)},async approvePendingTransaction(n,r,i){return Ri(await t.approvePendingTransaction(n,r,i),R,z,e)},async evaluateErc191Message(n,r){return Ri(await t.evaluateErc191Message(n,r),R,z,e)},async evaluateMessage(n,r){return Ri(await t.evaluateMessage(n,r),R,z,e)},async evaluateTransaction(n,r,i){return Ri(await t.evaluateTransaction(n,r,i),R,z,e)},async getErc191MessageByID(n,r){return Ri(await t.getErc191MessageByID(n,r),R,z,e)},async getMessageByID(n,r){return Ri(await t.getMessageByID(n,r),R,z,e)},async getTransactionByID(n,r,i,a){return Ri(await t.getTransactionByID(n,r,i,a),R,z,e)}}},ra=function(e,t,n){let r=na(e);return{approvePendingERC191Message(e,i){return r.approvePendingERC191Message(e.messageID,i).then(e=>e(n,t))},approvePendingMessage(e,i){return r.approvePendingMessage(e.messageID,i).then(e=>e(n,t))},approvePendingTransaction(e,i){return r.approvePendingTransaction(e.payloadHash,e.transactionApprovalRequest,i).then(e=>e(n,t))},evaluateErc191Message(e,i){return r.evaluateErc191Message(e.eRC191MessageEvaluationRequest,i).then(e=>e(n,t))},evaluateMessage(e,i){return r.evaluateMessage(e.messageEvaluationRequest,i).then(e=>e(n,t))},evaluateTransaction(e,i){return r.evaluateTransaction(e.id,e.transactionEvaluationRequest,i).then(e=>e(n,t))},getErc191MessageByID(e,i){return r.getErc191MessageByID(e.messageID,i).then(e=>e(n,t))},getMessageByID(e,i){return r.getMessageByID(e.messageID,i).then(e=>e(n,t))},getTransactionByID(e,i){return r.getTransactionByID(e.transactionID,e.chainType,e.chainID,i).then(e=>e(n,t))}}};var ia=class extends ji{approvePendingERC191Message(e,t){return na(this.configuration).approvePendingERC191Message(e.messageID,t).then(e=>e(this.axios,this.basePath))}approvePendingMessage(e,t){return na(this.configuration).approvePendingMessage(e.messageID,t).then(e=>e(this.axios,this.basePath))}approvePendingTransaction(e,t){return na(this.configuration).approvePendingTransaction(e.payloadHash,e.transactionApprovalRequest,t).then(e=>e(this.axios,this.basePath))}evaluateErc191Message(e,t){return na(this.configuration).evaluateErc191Message(e.eRC191MessageEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}evaluateMessage(e,t){return na(this.configuration).evaluateMessage(e.messageEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}evaluateTransaction(e,t){return na(this.configuration).evaluateTransaction(e.id,e.transactionEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}getErc191MessageByID(e,t){return na(this.configuration).getErc191MessageByID(e.messageID,t).then(e=>e(this.axios,this.basePath))}getMessageByID(e,t){return na(this.configuration).getMessageByID(e.messageID,t).then(e=>e(this.axios,this.basePath))}getTransactionByID(e,t){return na(this.configuration).getTransactionByID(e.transactionID,e.chainType,e.chainID,t).then(e=>e(this.axios,this.basePath))}};let aa={Evm:`evm`},oa=function(e){return{getMetadata:async(t,n,r,i={})=>{V(`getMetadata`,`chainName`,t),V(`getMetadata`,`contractAddress`,n),V(`getMetadata`,`metadataId`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))).replace(`{metadata_id}`,encodeURIComponent(String(r))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Li(o),options:c}},listMetadata:async(t,n,r,i,a,o={})=>{V(`listMetadata`,`chainName`,t),V(`listMetadata`,`contractAddress`,n);let s=`/v1/chains/{chain_name}/collections/{contract_address}/metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};r!==void 0&&(f.from_updated_at=r instanceof Date?r.toISOString():r),i!==void 0&&(f.page_cursor=i),a!==void 0&&(f.page_size=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}},listMetadataForChain:async(t,n,r,i,a={})=>{V(`listMetadataForChain`,`chainName`,t);let o=`/v1/chains/{chain_name}/metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,B),c;e&&(c=e.baseOptions);let l={method:`GET`,...c,...a},u={},d={};n!==void 0&&(d.from_updated_at=n instanceof Date?n.toISOString():n),r!==void 0&&(d.page_cursor=r),i!==void 0&&(d.page_size=i),H(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Li(s),options:l}},listStacks:async(t,n,r={})=>{V(`listStacks`,`chainName`,t),V(`listStacks`,`stackId`,n);let i=`/v1/chains/{chain_name}/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={},l={};n&&(l.stack_id=n),H(a,l);let u=o&&o.headers?o.headers:{};return s.headers={...c,...u,...r.headers},{url:Li(a),options:s}},refreshMetadataByID:async(t,n,r,i={})=>{V(`refreshMetadataByID`,`chainName`,t),V(`refreshMetadataByID`,`contractAddress`,n),V(`refreshMetadataByID`,`refreshMetadataByIDRequest`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Ni(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Ii(r,c,e),{url:Li(o),options:c}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{V(`refreshNFTMetadataByTokenID`,`contractAddress`,t),V(`refreshNFTMetadataByTokenID`,`chainName`,n),V(`refreshNFTMetadataByTokenID`,`refreshNFTMetadataByTokenIDRequest`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Ni(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Ii(r,c,e),{url:Li(o),options:c}}}},sa=function(e){let t=oa(e);return{async getMetadata(n,r,i,a){return Ri(await t.getMetadata(n,r,i,a),R,z,e)},async listMetadata(n,r,i,a,o,s){return Ri(await t.listMetadata(n,r,i,a,o,s),R,z,e)},async listMetadataForChain(n,r,i,a,o){return Ri(await t.listMetadataForChain(n,r,i,a,o),R,z,e)},async listStacks(n,r,i){return Ri(await t.listStacks(n,r,i),R,z,e)},async refreshMetadataByID(n,r,i,a){return Ri(await t.refreshMetadataByID(n,r,i,a),R,z,e)},async refreshNFTMetadataByTokenID(n,r,i,a){return Ri(await t.refreshNFTMetadataByTokenID(n,r,i,a),R,z,e)}}},ca=function(e,t,n){let r=sa(e);return{getMetadata(e,i){return r.getMetadata(e.chainName,e.contractAddress,e.metadataId,i).then(e=>e(n,t))},listMetadata(e,i){return r.listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listMetadataForChain(e,i){return r.listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listStacks(e,i){return r.listStacks(e.chainName,e.stackId,i).then(e=>e(n,t))},refreshMetadataByID(e,i){return r.refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,i).then(e=>e(n,t))},refreshNFTMetadataByTokenID(e,i){return r.refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,i).then(e=>e(n,t))}}};var la=class extends ji{getMetadata(e,t){return sa(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then(e=>e(this.axios,this.basePath))}listMetadata(e,t){return sa(this.configuration).listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listMetadataForChain(e,t){return sa(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listStacks(e,t){return sa(this.configuration).listStacks(e.chainName,e.stackId,t).then(e=>e(this.axios,this.basePath))}refreshMetadataByID(e,t){return sa(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then(e=>e(this.axios,this.basePath))}refreshNFTMetadataByTokenID(e,t){return sa(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then(e=>e(this.axios,this.basePath))}};let ua=function(e){return{listFilters:async(t,n,r={})=>{V(`listFilters`,`chainName`,t),V(`listFilters`,`contractAddress`,n);let i=`/v1/chains/{chain_name}/search/filters/{contract_address}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},searchNFTs:async(t,n,r,i,a,o,s,c={})=>{V(`searchNFTs`,`chainName`,t),V(`searchNFTs`,`contractAddress`,n);let l=`/v1/chains/{chain_name}/search/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))),u=new URL(l,B),d;e&&(d=e.baseOptions);let f={method:`GET`,...d,...c},p={},m={};n&&(m.contract_address=n),r!==void 0&&(m.account_address=r),i&&(m.stack_id=i),a!==void 0&&(m.only_include_owner_listings=a),o!==void 0&&(m.page_size=o),s!==void 0&&(m.page_cursor=s),H(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Li(u),options:f}},searchStacks:async(t,n,r,i,a,o,s,c,l,u,d,f={})=>{V(`searchStacks`,`chainName`,t),V(`searchStacks`,`contractAddress`,n);let p=`/v1/chains/{chain_name}/search/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))),m=new URL(p,B),h;e&&(h=e.baseOptions);let g={method:`GET`,...h,...f},_={},v={};n&&(v.contract_address=n),r!==void 0&&(v.account_address=r),i!==void 0&&(v.only_include_owner_listings=i),a!==void 0&&(v.only_if_has_active_listings=a),o!==void 0&&(v.traits=o),s!==void 0&&(v.keyword=s),c!==void 0&&(v.payment_token=c),l!==void 0&&(v.sort_by=l),u!==void 0&&(v.page_size=u),d!==void 0&&(v.page_cursor=d),H(m,v);let y=h&&h.headers?h.headers:{};return g.headers={..._,...y,...f.headers},{url:Li(m),options:g}}}},da=function(e){let t=ua(e);return{async listFilters(n,r,i){return Ri(await t.listFilters(n,r,i),R,z,e)},async searchNFTs(n,r,i,a,o,s,c,l){return Ri(await t.searchNFTs(n,r,i,a,o,s,c,l),R,z,e)},async searchStacks(n,r,i,a,o,s,c,l,u,d,f,p){return Ri(await t.searchStacks(n,r,i,a,o,s,c,l,u,d,f,p),R,z,e)}}},fa=function(e,t,n){let r=da(e);return{listFilters(e,i){return r.listFilters(e.chainName,e.contractAddress,i).then(e=>e(n,t))},searchNFTs(e,i){return r.searchNFTs(e.chainName,e.contractAddress,e.accountAddress,e.stackId,e.onlyIncludeOwnerListings,e.pageSize,e.pageCursor,i).then(e=>e(n,t))},searchStacks(e,i){return r.searchStacks(e.chainName,e.contractAddress,e.accountAddress,e.onlyIncludeOwnerListings,e.onlyIfHasActiveListings,e.traits,e.keyword,e.paymentToken,e.sortBy,e.pageSize,e.pageCursor,i).then(e=>e(n,t))}}};var pa=class extends ji{listFilters(e,t){return da(this.configuration).listFilters(e.chainName,e.contractAddress,t).then(e=>e(this.axios,this.basePath))}searchNFTs(e,t){return da(this.configuration).searchNFTs(e.chainName,e.contractAddress,e.accountAddress,e.stackId,e.onlyIncludeOwnerListings,e.pageSize,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}searchStacks(e,t){return da(this.configuration).searchStacks(e.chainName,e.contractAddress,e.accountAddress,e.onlyIncludeOwnerListings,e.onlyIfHasActiveListings,e.traits,e.keyword,e.paymentToken,e.sortBy,e.pageSize,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}};let ma={CheapestFirst:`cheapest_first`},ha=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{V(`listAllNFTOwners`,`chainName`,t);let o=`/v1/chains/{chain_name}/nft-owners`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,B),c;e&&(c=e.baseOptions);let l={method:`GET`,...c,...a},u={},d={};n!==void 0&&(d.from_updated_at=n instanceof Date?n.toISOString():n),r!==void 0&&(d.page_cursor=r),i!==void 0&&(d.page_size=i),H(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Li(s),options:l}},listNFTOwners:async(t,n,r,i,a,o={})=>{V(`listNFTOwners`,`contractAddress`,t),V(`listNFTOwners`,`tokenId`,n),V(`listNFTOwners`,`chainName`,r);let s=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{token_id}`,encodeURIComponent(String(n))).replace(`{chain_name}`,encodeURIComponent(String(r))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};i!==void 0&&(f.page_cursor=i),a!==void 0&&(f.page_size=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}},listOwnersByContractAddress:async(t,n,r,i,a,o,s={})=>{V(`listOwnersByContractAddress`,`contractAddress`,t),V(`listOwnersByContractAddress`,`chainName`,n);let c=`/v1/chains/{chain_name}/collections/{contract_address}/owners`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),l=new URL(c,B),u;e&&(u=e.baseOptions);let d={method:`GET`,...u,...s},f={},p={};r&&(p.account_address=r),i!==void 0&&(p.from_updated_at=i instanceof Date?i.toISOString():i),a!==void 0&&(p.page_cursor=a),o!==void 0&&(p.page_size=o),H(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Li(l),options:d}}}},ga=function(e){let t=ha(e);return{async listAllNFTOwners(n,r,i,a,o){return Ri(await t.listAllNFTOwners(n,r,i,a,o),R,z,e)},async listNFTOwners(n,r,i,a,o,s){return Ri(await t.listNFTOwners(n,r,i,a,o,s),R,z,e)},async listOwnersByContractAddress(n,r,i,a,o,s,c){return Ri(await t.listOwnersByContractAddress(n,r,i,a,o,s,c),R,z,e)}}},_a=function(e,t,n){let r=ga(e);return{listAllNFTOwners(e,i){return r.listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listNFTOwners(e,i){return r.listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listOwnersByContractAddress(e,i){return r.listOwnersByContractAddress(e.contractAddress,e.chainName,e.accountAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var va=class extends ji{listAllNFTOwners(e,t){return ga(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listNFTOwners(e,t){return ga(this.configuration).listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listOwnersByContractAddress(e,t){return ga(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.accountAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let ya=function(e){return{createMintRequest:async(t,n,r,i={})=>{V(`createMintRequest`,`contractAddress`,t),V(`createMintRequest`,`chainName`,n),V(`createMintRequest`,`createMintRequestRequest`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Ni(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Ii(r,c,e),{url:Li(o),options:c}},getMintRequest:async(t,n,r,i={})=>{V(`getMintRequest`,`contractAddress`,t),V(`getMintRequest`,`chainName`,n),V(`getMintRequest`,`referenceId`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests/{reference_id}`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))).replace(`{reference_id}`,encodeURIComponent(String(r))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};await Ni(l,`x-immutable-api-key`,e),H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Li(o),options:c}},getNFT:async(t,n,r,i={})=>{V(`getNFT`,`contractAddress`,t),V(`getNFT`,`tokenId`,n),V(`getNFT`,`chainName`,r);let a=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{token_id}`,encodeURIComponent(String(n))).replace(`{chain_name}`,encodeURIComponent(String(r))),o=new URL(a,B),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};H(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Li(o),options:c}},listAllNFTs:async(t,n,r,i,a={})=>{V(`listAllNFTs`,`chainName`,t);let o=`/v1/chains/{chain_name}/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,B),c;e&&(c=e.baseOptions);let l={method:`GET`,...c,...a},u={},d={};n!==void 0&&(d.from_updated_at=n instanceof Date?n.toISOString():n),r!==void 0&&(d.page_cursor=r),i!==void 0&&(d.page_size=i),H(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Li(s),options:l}},listMintRequests:async(t,n,r,i,a,o={})=>{V(`listMintRequests`,`contractAddress`,t),V(`listMintRequests`,`chainName`,n);let s=`/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};await Ni(d,`x-immutable-api-key`,e),r!==void 0&&(f.page_cursor=r),i!==void 0&&(f.page_size=i),a!==void 0&&(f.status=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}},listNFTs:async(t,n,r,i,a,o,s={})=>{V(`listNFTs`,`contractAddress`,t),V(`listNFTs`,`chainName`,n);let c=`/v1/chains/{chain_name}/collections/{contract_address}/nfts`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),l=new URL(c,B),u;e&&(u=e.baseOptions);let d={method:`GET`,...u,...s},f={},p={};r&&(p.token_id=r),i!==void 0&&(p.from_updated_at=i instanceof Date?i.toISOString():i),a!==void 0&&(p.page_cursor=a),o!==void 0&&(p.page_size=o),H(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Li(l),options:d}},listNFTsByAccountAddress:async(t,n,r,i,a,o,s,c={})=>{V(`listNFTsByAccountAddress`,`accountAddress`,t),V(`listNFTsByAccountAddress`,`chainName`,n);let l=`/v1/chains/{chain_name}/accounts/{account_address}/nfts`.replace(`{account_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),u=new URL(l,B),d;e&&(d=e.baseOptions);let f={method:`GET`,...d,...c},p={},m={};r!==void 0&&(m.contract_address=r),i&&(m.token_id=i),a!==void 0&&(m.from_updated_at=a instanceof Date?a.toISOString():a),o!==void 0&&(m.page_cursor=o),s!==void 0&&(m.page_size=s),H(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Li(u),options:f}}}},ba=function(e){let t=ya(e);return{async createMintRequest(n,r,i,a){return Ri(await t.createMintRequest(n,r,i,a),R,z,e)},async getMintRequest(n,r,i,a){return Ri(await t.getMintRequest(n,r,i,a),R,z,e)},async getNFT(n,r,i,a){return Ri(await t.getNFT(n,r,i,a),R,z,e)},async listAllNFTs(n,r,i,a,o){return Ri(await t.listAllNFTs(n,r,i,a,o),R,z,e)},async listMintRequests(n,r,i,a,o,s){return Ri(await t.listMintRequests(n,r,i,a,o,s),R,z,e)},async listNFTs(n,r,i,a,o,s,c){return Ri(await t.listNFTs(n,r,i,a,o,s,c),R,z,e)},async listNFTsByAccountAddress(n,r,i,a,o,s,c,l){return Ri(await t.listNFTsByAccountAddress(n,r,i,a,o,s,c,l),R,z,e)}}},xa=function(e,t,n){let r=ba(e);return{createMintRequest(e,i){return r.createMintRequest(e.contractAddress,e.chainName,e.createMintRequestRequest,i).then(e=>e(n,t))},getMintRequest(e,i){return r.getMintRequest(e.contractAddress,e.chainName,e.referenceId,i).then(e=>e(n,t))},getNFT(e,i){return r.getNFT(e.contractAddress,e.tokenId,e.chainName,i).then(e=>e(n,t))},listAllNFTs(e,i){return r.listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listMintRequests(e,i){return r.listMintRequests(e.contractAddress,e.chainName,e.pageCursor,e.pageSize,e.status,i).then(e=>e(n,t))},listNFTs(e,i){return r.listNFTs(e.contractAddress,e.chainName,e.tokenId,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))},listNFTsByAccountAddress(e,i){return r.listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.tokenId,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Sa=class extends ji{createMintRequest(e,t){return ba(this.configuration).createMintRequest(e.contractAddress,e.chainName,e.createMintRequestRequest,t).then(e=>e(this.axios,this.basePath))}getMintRequest(e,t){return ba(this.configuration).getMintRequest(e.contractAddress,e.chainName,e.referenceId,t).then(e=>e(this.axios,this.basePath))}getNFT(e,t){return ba(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then(e=>e(this.axios,this.basePath))}listAllNFTs(e,t){return ba(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listMintRequests(e,t){return ba(this.configuration).listMintRequests(e.contractAddress,e.chainName,e.pageCursor,e.pageSize,e.status,t).then(e=>e(this.axios,this.basePath))}listNFTs(e,t){return ba(this.configuration).listNFTs(e.contractAddress,e.chainName,e.tokenId,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listNFTsByAccountAddress(e,t){return ba(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.tokenId,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let Ca=function(e){return{cancelOrders:async(t,n,r={})=>{V(`cancelOrders`,`chainName`,t),V(`cancelOrders`,`cancelOrdersRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/cancel`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},createBid:async(t,n,r={})=>{V(`createBid`,`chainName`,t),V(`createBid`,`createBidRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},createCollectionBid:async(t,n,r={})=>{V(`createCollectionBid`,`chainName`,t),V(`createCollectionBid`,`createCollectionBidRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/collection-bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},createListing:async(t,n,r={})=>{V(`createListing`,`chainName`,t),V(`createListing`,`createListingRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/listings`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},fulfillmentData:async(t,n,r={})=>{V(`fulfillmentData`,`chainName`,t),V(`fulfillmentData`,`fulfillmentDataRequest`,n);let i=`/v1/chains/{chain_name}/orders/fulfillment-data`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getBid:async(t,n,r={})=>{V(`getBid`,`chainName`,t),V(`getBid`,`bidId`,n);let i=`/v1/chains/{chain_name}/orders/bids/{bid_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{bid_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},getCollectionBid:async(t,n,r={})=>{V(`getCollectionBid`,`chainName`,t),V(`getCollectionBid`,`collectionBidId`,n);let i=`/v1/chains/{chain_name}/orders/collection-bids/{collection_bid_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{collection_bid_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},getListing:async(t,n,r={})=>{V(`getListing`,`chainName`,t),V(`getListing`,`listingId`,n);let i=`/v1/chains/{chain_name}/orders/listings/{listing_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{listing_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},getTrade:async(t,n,r={})=>{V(`getTrade`,`chainName`,t),V(`getTrade`,`tradeId`,n);let i=`/v1/chains/{chain_name}/trades/{trade_id}`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{trade_id}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},listBids:async(t,n,r,i,a,o,s,c,l,u,d,f,p={})=>{V(`listBids`,`chainName`,t);let m=`/v1/chains/{chain_name}/orders/bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),h=new URL(m,B),g;e&&(g=e.baseOptions);let _={method:`GET`,...g,...p},v={},y={};n!==void 0&&(y.status=n),r!==void 0&&(y.buy_item_contract_address=r),i!==void 0&&(y.sell_item_contract_address=i),a!==void 0&&(y.account_address=a),o!==void 0&&(y.buy_item_metadata_id=o),s!==void 0&&(y.buy_item_token_id=s),c!==void 0&&(y.from_updated_at=c instanceof Date?c.toISOString():c),l!==void 0&&(y.page_size=l),u!==void 0&&(y.sort_by=u),d!==void 0&&(y.sort_direction=d),f!==void 0&&(y.page_cursor=f),H(h,y);let b=g&&g.headers?g.headers:{};return _.headers={...v,...b,...p.headers},{url:Li(h),options:_}},listCollectionBids:async(t,n,r,i,a,o,s,c,l,u,d={})=>{V(`listCollectionBids`,`chainName`,t);let f=`/v1/chains/{chain_name}/orders/collection-bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),p=new URL(f,B),m;e&&(m=e.baseOptions);let h={method:`GET`,...m,...d},g={},_={};n!==void 0&&(_.status=n),r!==void 0&&(_.buy_item_contract_address=r),i!==void 0&&(_.sell_item_contract_address=i),a!==void 0&&(_.account_address=a),o!==void 0&&(_.from_updated_at=o instanceof Date?o.toISOString():o),s!==void 0&&(_.page_size=s),c!==void 0&&(_.sort_by=c),l!==void 0&&(_.sort_direction=l),u!==void 0&&(_.page_cursor=u),H(p,_);let v=m&&m.headers?m.headers:{};return h.headers={...g,...v,...d.headers},{url:Li(p),options:h}},listListings:async(t,n,r,i,a,o,s,c,l,u,d,f,p,m={})=>{V(`listListings`,`chainName`,t);let h=`/v1/chains/{chain_name}/orders/listings`.replace(`{chain_name}`,encodeURIComponent(String(t))),g=new URL(h,B),_;e&&(_=e.baseOptions);let v={method:`GET`,..._,...m},y={},b={};n!==void 0&&(b.status=n),r!==void 0&&(b.sell_item_contract_address=r),i!==void 0&&(b.buy_item_type=i),a!==void 0&&(b.buy_item_contract_address=a),o!==void 0&&(b.account_address=o),s!==void 0&&(b.sell_item_metadata_id=s),c!==void 0&&(b.sell_item_token_id=c),l!==void 0&&(b.from_updated_at=l instanceof Date?l.toISOString():l),u!==void 0&&(b.page_size=u),d!==void 0&&(b.sort_by=d),f!==void 0&&(b.sort_direction=f),p!==void 0&&(b.page_cursor=p),H(g,b);let x=_&&_.headers?_.headers:{};return v.headers={...y,...x,...m.headers},{url:Li(g),options:v}},listTrades:async(t,n,r,i,a,o,s,c,l={})=>{V(`listTrades`,`chainName`,t);let u=`/v1/chains/{chain_name}/trades`.replace(`{chain_name}`,encodeURIComponent(String(t))),d=new URL(u,B),f;e&&(f=e.baseOptions);let p={method:`GET`,...f,...l},m={},h={};n!==void 0&&(h.account_address=n),r!==void 0&&(h.sell_item_contract_address=r),i!==void 0&&(h.from_indexed_at=i instanceof Date?i.toISOString():i),a!==void 0&&(h.page_size=a),o!==void 0&&(h.sort_by=o),s!==void 0&&(h.sort_direction=s),c!==void 0&&(h.page_cursor=c),H(d,h);let g=f&&f.headers?f.headers:{};return p.headers={...m,...g,...l.headers},{url:Li(d),options:p}}}},wa=function(e){let t=Ca(e);return{async cancelOrders(n,r,i){return Ri(await t.cancelOrders(n,r,i),R,z,e)},async createBid(n,r,i){return Ri(await t.createBid(n,r,i),R,z,e)},async createCollectionBid(n,r,i){return Ri(await t.createCollectionBid(n,r,i),R,z,e)},async createListing(n,r,i){return Ri(await t.createListing(n,r,i),R,z,e)},async fulfillmentData(n,r,i){return Ri(await t.fulfillmentData(n,r,i),R,z,e)},async getBid(n,r,i){return Ri(await t.getBid(n,r,i),R,z,e)},async getCollectionBid(n,r,i){return Ri(await t.getCollectionBid(n,r,i),R,z,e)},async getListing(n,r,i){return Ri(await t.getListing(n,r,i),R,z,e)},async getTrade(n,r,i){return Ri(await t.getTrade(n,r,i),R,z,e)},async listBids(n,r,i,a,o,s,c,l,u,d,f,p,m){return Ri(await t.listBids(n,r,i,a,o,s,c,l,u,d,f,p,m),R,z,e)},async listCollectionBids(n,r,i,a,o,s,c,l,u,d,f){return Ri(await t.listCollectionBids(n,r,i,a,o,s,c,l,u,d,f),R,z,e)},async listListings(n,r,i,a,o,s,c,l,u,d,f,p,m,h){return Ri(await t.listListings(n,r,i,a,o,s,c,l,u,d,f,p,m,h),R,z,e)},async listTrades(n,r,i,a,o,s,c,l,u){return Ri(await t.listTrades(n,r,i,a,o,s,c,l,u),R,z,e)}}},Ta=function(e,t,n){let r=wa(e);return{cancelOrders(e,i){return r.cancelOrders(e.chainName,e.cancelOrdersRequestBody,i).then(e=>e(n,t))},createBid(e,i){return r.createBid(e.chainName,e.createBidRequestBody,i).then(e=>e(n,t))},createCollectionBid(e,i){return r.createCollectionBid(e.chainName,e.createCollectionBidRequestBody,i).then(e=>e(n,t))},createListing(e,i){return r.createListing(e.chainName,e.createListingRequestBody,i).then(e=>e(n,t))},fulfillmentData(e,i){return r.fulfillmentData(e.chainName,e.fulfillmentDataRequest,i).then(e=>e(n,t))},getBid(e,i){return r.getBid(e.chainName,e.bidId,i).then(e=>e(n,t))},getCollectionBid(e,i){return r.getCollectionBid(e.chainName,e.collectionBidId,i).then(e=>e(n,t))},getListing(e,i){return r.getListing(e.chainName,e.listingId,i).then(e=>e(n,t))},getTrade(e,i){return r.getTrade(e.chainName,e.tradeId,i).then(e=>e(n,t))},listBids(e,i){return r.listBids(e.chainName,e.status,e.buyItemContractAddress,e.sellItemContractAddress,e.accountAddress,e.buyItemMetadataId,e.buyItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then(e=>e(n,t))},listCollectionBids(e,i){return r.listCollectionBids(e.chainName,e.status,e.buyItemContractAddress,e.sellItemContractAddress,e.accountAddress,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then(e=>e(n,t))},listListings(e,i){return r.listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemType,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then(e=>e(n,t))},listTrades(e,i){return r.listTrades(e.chainName,e.accountAddress,e.sellItemContractAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then(e=>e(n,t))}}};var Ea=class extends ji{cancelOrders(e,t){return wa(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then(e=>e(this.axios,this.basePath))}createBid(e,t){return wa(this.configuration).createBid(e.chainName,e.createBidRequestBody,t).then(e=>e(this.axios,this.basePath))}createCollectionBid(e,t){return wa(this.configuration).createCollectionBid(e.chainName,e.createCollectionBidRequestBody,t).then(e=>e(this.axios,this.basePath))}createListing(e,t){return wa(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then(e=>e(this.axios,this.basePath))}fulfillmentData(e,t){return wa(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then(e=>e(this.axios,this.basePath))}getBid(e,t){return wa(this.configuration).getBid(e.chainName,e.bidId,t).then(e=>e(this.axios,this.basePath))}getCollectionBid(e,t){return wa(this.configuration).getCollectionBid(e.chainName,e.collectionBidId,t).then(e=>e(this.axios,this.basePath))}getListing(e,t){return wa(this.configuration).getListing(e.chainName,e.listingId,t).then(e=>e(this.axios,this.basePath))}getTrade(e,t){return wa(this.configuration).getTrade(e.chainName,e.tradeId,t).then(e=>e(this.axios,this.basePath))}listBids(e,t){return wa(this.configuration).listBids(e.chainName,e.status,e.buyItemContractAddress,e.sellItemContractAddress,e.accountAddress,e.buyItemMetadataId,e.buyItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}listCollectionBids(e,t){return wa(this.configuration).listCollectionBids(e.chainName,e.status,e.buyItemContractAddress,e.sellItemContractAddress,e.accountAddress,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}listListings(e,t){return wa(this.configuration).listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemType,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}listTrades(e,t){return wa(this.configuration).listTrades(e.chainName,e.accountAddress,e.sellItemContractAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}};let Da={CreatedAt:`created_at`,UpdatedAt:`updated_at`,SellItemAmount:`sell_item_amount`},Oa={Asc:`asc`,Desc:`desc`},ka={CreatedAt:`created_at`,UpdatedAt:`updated_at`,SellItemAmount:`sell_item_amount`},Aa={Asc:`asc`,Desc:`desc`},ja={Native:`NATIVE`,Erc20:`ERC20`},Ma={CreatedAt:`created_at`,UpdatedAt:`updated_at`,BuyItemAmount:`buy_item_amount`},Na={Asc:`asc`,Desc:`desc`},Pa={IndexedAt:`indexed_at`},Fa={Asc:`asc`,Desc:`desc`},Ia=function(e){return{createCounterfactualAddressV2:async(t,n,r={})=>{V(`createCounterfactualAddressV2`,`chainName`,t),V(`createCounterfactualAddressV2`,`createCounterfactualAddressRequest`,n);let i=`/v2/chains/{chain_name}/passport/counterfactual-address`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getLinkedAddresses:async(t,n,r={})=>{V(`getLinkedAddresses`,`userId`,t),V(`getLinkedAddresses`,`chainName`,n);let i=`/v1/chains/{chain_name}/passport/users/{user_id}/linked-addresses`.replace(`{user_id}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};await Pi(c,e),H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{V(`getLinkedAddressesDeprecated`,`userId`,t);let r=`/passport-mr/v1/users/{userId}/linked-addresses`.replace(`{userId}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Pi(s,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}},getTransactionMetadata:async(t,n,r={})=>{V(`getTransactionMetadata`,`chainName`,t),V(`getTransactionMetadata`,`getTransactionMetadataRequest`,n);let i=`/v1/chains/{chain_name}/passport/transaction-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getTypedDataMetadata:async(t,n,r={})=>{V(`getTypedDataMetadata`,`chainName`,t),V(`getTypedDataMetadata`,`getTypedDataMetadataRequest`,n);let i=`/v1/chains/{chain_name}/passport/typeddata-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Pi(c,e),c[`Content-Type`]=`application/json`,H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Ii(n,s,e),{url:Li(a),options:s}},getUserMetadata:async(t,n={})=>{V(`getUserMetadata`,`userId`,t);let r=`/passport-mr/v1/users/{user_id}/metadata`.replace(`{user_id}`,encodeURIComponent(String(t))),i=new URL(r,B),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Ni(s,`x-immutable-api-key`,e),H(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Li(i),options:o}}}},La=function(e){let t=Ia(e);return{async createCounterfactualAddressV2(n,r,i){return Ri(await t.createCounterfactualAddressV2(n,r,i),R,z,e)},async getLinkedAddresses(n,r,i){return Ri(await t.getLinkedAddresses(n,r,i),R,z,e)},async getLinkedAddressesDeprecated(n,r){return Ri(await t.getLinkedAddressesDeprecated(n,r),R,z,e)},async getTransactionMetadata(n,r,i){return Ri(await t.getTransactionMetadata(n,r,i),R,z,e)},async getTypedDataMetadata(n,r,i){return Ri(await t.getTypedDataMetadata(n,r,i),R,z,e)},async getUserMetadata(n,r){return Ri(await t.getUserMetadata(n,r),R,z,e)}}},Ra=function(e,t,n){let r=La(e);return{createCounterfactualAddressV2(e,i){return r.createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,i).then(e=>e(n,t))},getLinkedAddresses(e,i){return r.getLinkedAddresses(e.userId,e.chainName,i).then(e=>e(n,t))},getLinkedAddressesDeprecated(e,i){return r.getLinkedAddressesDeprecated(e.userId,i).then(e=>e(n,t))},getTransactionMetadata(e,i){return r.getTransactionMetadata(e.chainName,e.getTransactionMetadataRequest,i).then(e=>e(n,t))},getTypedDataMetadata(e,i){return r.getTypedDataMetadata(e.chainName,e.getTypedDataMetadataRequest,i).then(e=>e(n,t))},getUserMetadata(e,i){return r.getUserMetadata(e.userId,i).then(e=>e(n,t))}}};var za=class extends ji{createCounterfactualAddressV2(e,t){return La(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then(e=>e(this.axios,this.basePath))}getLinkedAddresses(e,t){return La(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then(e=>e(this.axios,this.basePath))}getLinkedAddressesDeprecated(e,t){return La(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then(e=>e(this.axios,this.basePath))}getTransactionMetadata(e,t){return La(this.configuration).getTransactionMetadata(e.chainName,e.getTransactionMetadataRequest,t).then(e=>e(this.axios,this.basePath))}getTypedDataMetadata(e,t){return La(this.configuration).getTypedDataMetadata(e.chainName,e.getTypedDataMetadataRequest,t).then(e=>e(this.axios,this.basePath))}getUserMetadata(e,t){return La(this.configuration).getUserMetadata(e.userId,t).then(e=>e(this.axios,this.basePath))}};let Ba=function(e){return{getUserInfo:async(t={})=>{let n=new URL(`/passport-profile/v1/user/info`,B),r;e&&(r=e.baseOptions);let i={method:`GET`,...r,...t},a={};await Pi(a,e),H(n,{});let o=r&&r.headers?r.headers:{};return i.headers={...a,...o,...t.headers},{url:Li(n),options:i}},linkWalletV2:async(t,n={})=>{let r=new URL(`/passport-profile/v2/linked-wallets`,B),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Pi(o,e),o[`Content-Type`]=`application/json`,H(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Ii(t,a,e),{url:Li(r),options:a}}}},Va=function(e){let t=Ba(e);return{async getUserInfo(n){return Ri(await t.getUserInfo(n),R,z,e)},async linkWalletV2(n,r){return Ri(await t.linkWalletV2(n,r),R,z,e)}}},Ha=function(e,t,n){let r=Va(e);return{getUserInfo(e){return r.getUserInfo(e).then(e=>e(n,t))},linkWalletV2(e={},i){return r.linkWalletV2(e.linkWalletV2Request,i).then(e=>e(n,t))}}};var Ua=class extends ji{getUserInfo(e){return Va(this.configuration).getUserInfo(e).then(e=>e(this.axios,this.basePath))}linkWalletV2(e={},t){return Va(this.configuration).linkWalletV2(e.linkWalletV2Request,t).then(e=>e(this.axios,this.basePath))}};let Wa=function(e){return{quotesForNFTs:async(t,n,r,i,a,o={})=>{V(`quotesForNFTs`,`chainName`,t),V(`quotesForNFTs`,`contractAddress`,n),V(`quotesForNFTs`,`tokenId`,r);let s=`/v1/chains/{chain_name}/quotes/{contract_address}/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};r&&(f.token_id=r),i!==void 0&&(f.payment_token=i),a!==void 0&&(f.page_cursor=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}},quotesForStacks:async(t,n,r,i,a,o={})=>{V(`quotesForStacks`,`chainName`,t),V(`quotesForStacks`,`contractAddress`,n),V(`quotesForStacks`,`stackId`,r);let s=`/v1/chains/{chain_name}/quotes/{contract_address}/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))).replace(`{contract_address}`,encodeURIComponent(String(n))),c=new URL(s,B),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};r&&(f.stack_id=r),i!==void 0&&(f.payment_token=i),a!==void 0&&(f.page_cursor=a),H(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Li(c),options:u}}}},Ga=function(e){let t=Wa(e);return{async quotesForNFTs(n,r,i,a,o,s){return Ri(await t.quotesForNFTs(n,r,i,a,o,s),R,z,e)},async quotesForStacks(n,r,i,a,o,s){return Ri(await t.quotesForStacks(n,r,i,a,o,s),R,z,e)}}},Ka=function(e,t,n){let r=Ga(e);return{quotesForNFTs(e,i){return r.quotesForNFTs(e.chainName,e.contractAddress,e.tokenId,e.paymentToken,e.pageCursor,i).then(e=>e(n,t))},quotesForStacks(e,i){return r.quotesForStacks(e.chainName,e.contractAddress,e.stackId,e.paymentToken,e.pageCursor,i).then(e=>e(n,t))}}};var qa=class extends ji{quotesForNFTs(e,t){return Ga(this.configuration).quotesForNFTs(e.chainName,e.contractAddress,e.tokenId,e.paymentToken,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}quotesForStacks(e,t){return Ga(this.configuration).quotesForStacks(e.chainName,e.contractAddress,e.stackId,e.paymentToken,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}};let Ja=function(e){return{getERC20Token:async(t,n,r={})=>{V(`getERC20Token`,`contractAddress`,t),V(`getERC20Token`,`chainName`,n);let i=`/v1/chains/{chain_name}/tokens/{contract_address}`.replace(`{contract_address}`,encodeURIComponent(String(t))).replace(`{chain_name}`,encodeURIComponent(String(n))),a=new URL(i,B),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};H(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Li(a),options:s}},listERC20Tokens:async(t,n,r,i,a,o,s={})=>{V(`listERC20Tokens`,`chainName`,t);let c=`/v1/chains/{chain_name}/tokens`.replace(`{chain_name}`,encodeURIComponent(String(t))),l=new URL(c,B),u;e&&(u=e.baseOptions);let d={method:`GET`,...u,...s},f={},p={};n!==void 0&&(p.from_updated_at=n instanceof Date?n.toISOString():n),r&&(p.verification_status=r),i!==void 0&&(p.is_canonical=i),a!==void 0&&(p.page_cursor=a),o!==void 0&&(p.page_size=o),H(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Li(l),options:d}}}},Ya=function(e){let t=Ja(e);return{async getERC20Token(n,r,i){return Ri(await t.getERC20Token(n,r,i),R,z,e)},async listERC20Tokens(n,r,i,a,o,s,c){return Ri(await t.listERC20Tokens(n,r,i,a,o,s,c),R,z,e)}}},Xa=function(e,t,n){let r=Ya(e);return{getERC20Token(e,i){return r.getERC20Token(e.contractAddress,e.chainName,i).then(e=>e(n,t))},listERC20Tokens(e,i){return r.listERC20Tokens(e.chainName,e.fromUpdatedAt,e.verificationStatus,e.isCanonical,e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Za=class extends ji{getERC20Token(e,t){return Ya(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then(e=>e(this.axios,this.basePath))}listERC20Tokens(e,t){return Ya(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.verificationStatus,e.isCanonical,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}},Qa=class{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(e={}){this.apiKey=e.apiKey,this.username=e.username,this.password=e.password,this.accessToken=e.accessToken,this.basePath=e.basePath,this.baseOptions=e.baseOptions,this.formDataCtor=e.formDataCtor}isJsonMime(e){return e!==null&&(RegExp(`^(application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(;.*)?$`,`i`).test(e)||e.toLowerCase()===`application/json-patch+json`)}};let $a={ValidationError:`VALIDATION_ERROR`},eo={UnauthorisedRequest:`UNAUTHORISED_REQUEST`},to={AuthenticationError:`AUTHENTICATION_ERROR`},no={ResourceNotFound:`RESOURCE_NOT_FOUND`},ro={ConflictError:`CONFLICT_ERROR`},io={TooManyRequestsError:`TOO_MANY_REQUESTS_ERROR`},ao={InternalServerError:`INTERNAL_SERVER_ERROR`},oo={NotImplementedError:`NOT_IMPLEMENTED_ERROR`},so={Active:`ACTIVE`},co={Mint:`mint`,Burn:`burn`,Transfer:`transfer`,Sale:`sale`,Deposit:`deposit`,Withdrawal:`withdrawal`},lo={Verified:`verified`,Unverified:`unverified`,Spam:`spam`,Inactive:`inactive`},uo={Cancelled:`CANCELLED`},fo={OnChain:`ON_CHAIN`,OffChain:`OFF_CHAIN`,Underfunded:`UNDERFUNDED`},po={Erc721:`ERC721`,Erc1155:`ERC1155`},mo={Erc1155Collection:`ERC1155_COLLECTION`},ho={Erc1155:`ERC1155`},go={Erc20Approve:`ERC20_APPROVE`},_o={Erc20:`ERC20`},vo={Erc20TransferFrom:`ERC20_TRANSFER_FROM`},yo={Erc20Transfer:`ERC20_TRANSFER`},bo={Erc721Approve:`ERC721_APPROVE`},xo={Erc721Collection:`ERC721_COLLECTION`,Erc1155Collection:`ERC1155_COLLECTION`},So={Erc721:`ERC721`},Co={Erc721SafeTransferFromBatch:`ERC721_SAFE_TRANSFER_FROM_BATCH`},wo={Erc721TransferFrom:`ERC721_TRANSFER_FROM`},To={Expired:`EXPIRED`},Eo={Filled:`FILLED`},Do={Royalty:`ROYALTY`,MakerEcosystem:`MAKER_ECOSYSTEM`,TakerEcosystem:`TAKER_ECOSYSTEM`,Protocol:`PROTOCOL`},Oo={Filled:`FILLED`},ko={Verified:`verified`,Unverified:`unverified`,Spam:`spam`,Inactive:`inactive`},Ao={Inactive:`INACTIVE`},jo={Erc20:`ERC20`},Mo={Royalty:`ROYALTY`,MakerEcosystem:`MAKER_ECOSYSTEM`,TakerEcosystem:`TAKER_ECOSYSTEM`,Protocol:`PROTOCOL`},No={Native:`NATIVE`},Po={Erc721:`ERC721`,Erc1155:`ERC1155`},Fo={Otp:`otp`,Web:`web`},Io={Pending:`pending`,Succeeded:`succeeded`,Failed:`failed`},Lo={Erc721:`ERC721`,Erc1155:`ERC1155`},Ro={Number:`number`,BoostPercentage:`boost_percentage`,BoostNumber:`boost_number`,Date:`date`},zo={Erc721SetApprovalForAll:`ERC721_SET_APPROVAL_FOR_ALL`,Erc1155SetApprovalForAll:`ERC1155_SET_APPROVAL_FOR_ALL`},Bo={Native:`NATIVE`,Erc20:`ERC20`,Erc721:`ERC721`,Erc1155:`ERC1155`,Erc721Collection:`ERC721_COLLECTION`,Erc1155Collection:`ERC1155_COLLECTION`},Vo={Requested:`requested`,Approved:`approved`,Rejected:`rejected`,Removed:`removed`,Added:`added`},Ho={Listing:`LISTING`,Bid:`BID`,CollectionBid:`COLLECTION_BID`},Uo={Pending:`PENDING`,Active:`ACTIVE`,Inactive:`INACTIVE`,Filled:`FILLED`,Expired:`EXPIRED`,Cancelled:`CANCELLED`},Wo={Common:`common`,Uncommon:`uncommon`,Rare:`rare`,Epic:`epic`,Legendary:`legendary`},Go={Pending:`PENDING`},Ko={FullRestricted:`FULL_RESTRICTED`,PartialRestricted:`PARTIAL_RESTRICTED`},qo={Royalty:`ROYALTY`},Jo={SeaportCreateListingMetadata:`SEAPORT_CREATE_LISTING_METADATA`},Yo={Erc1155Collection:`ERC1155Collection`},Xo={Erc1155:`ERC1155`},Zo={Erc20:`ERC20`},Qo={Erc721Collection:`ERC721Collection`},$o={Erc721:`ERC721`},es={Erc20:`ERC20`,Native:`NATIVE`},ts={SeaportFulfillAvailableAdvancedOrders:`SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS`},ns={Native:`NATIVE`},rs={Malicious:`malicious`,Benign:`benign`,Warning:`warning`,Unknown:`unknown`,Info:`info`},is={Erc20:`ERC20`},as={Evm:`evm`},os={Otp:`otp`,Web:`web`},ss={Unknown:`UNKNOWN`},cs={Unknown:`UNKNOWN`},ls={Success:`success`,Error:`error`,SimulationFailed:`simulation_failed`},us={Erc20:`ERC20`,Erc721:`ERC721`,Erc1155:`ERC1155`},ds={Completed:`completed`,Pending:`pending`},fs={Evm:`evm`};var ps=Ai({APIError400AllOfCodeEnum:()=>$a,APIError401AllOfCodeEnum:()=>eo,APIError403AllOfCodeEnum:()=>to,APIError404AllOfCodeEnum:()=>no,APIError409AllOfCodeEnum:()=>ro,APIError429AllOfCodeEnum:()=>io,APIError500AllOfCodeEnum:()=>ao,APIError501AllOfCodeEnum:()=>oo,ActiveOrderStatusNameEnum:()=>so,ActivitiesApi:()=>Hi,ActivitiesApiAxiosParamCreator:()=>zi,ActivitiesApiFactory:()=>Vi,ActivitiesApiFp:()=>Bi,ActivityType:()=>co,AssetVerificationStatus:()=>lo,CancelledOrderStatusCancellationTypeEnum:()=>fo,CancelledOrderStatusNameEnum:()=>uo,ChainsApi:()=>Ki,ChainsApiAxiosParamCreator:()=>Ui,ChainsApiFactory:()=>Gi,ChainsApiFp:()=>Wi,CollectionContractType:()=>po,CollectionsApi:()=>Xi,CollectionsApiAxiosParamCreator:()=>qi,CollectionsApiFactory:()=>Yi,CollectionsApiFp:()=>Ji,Configuration:()=>Qa,CraftingApi:()=>ea,CraftingApiAxiosParamCreator:()=>Zi,CraftingApiFactory:()=>$i,CraftingApiFp:()=>Qi,ERC1155CollectionItemTypeEnum:()=>mo,ERC1155ItemTypeEnum:()=>ho,ERC20ApproveMetadataTransactionTypeEnum:()=>go,ERC20ItemTypeEnum:()=>_o,ERC20TransferFromMetadataTransactionTypeEnum:()=>vo,ERC20TransferMetadataTransactionTypeEnum:()=>yo,ERC721ApproveMetadataTransactionTypeEnum:()=>bo,ERC721CollectionItemTypeEnum:()=>xo,ERC721ItemTypeEnum:()=>So,ERC721SafeTransferFromBatchMetadataTransactionTypeEnum:()=>Co,ERC721TransferFromMetadataTransactionTypeEnum:()=>wo,ExpiredOrderStatusNameEnum:()=>To,FailedOrderCancellationReasonCodeEnum:()=>Eo,FeeTypeEnum:()=>Do,FilledOrderStatusNameEnum:()=>Oo,GetTransactionByIDChainTypeEnum:()=>aa,GuardianApi:()=>ia,GuardianApiAxiosParamCreator:()=>ta,GuardianApiFactory:()=>ra,GuardianApiFp:()=>na,ImmutableVerificationStatusEnum:()=>ko,InactiveOrderStatusNameEnum:()=>Ao,ListBidsSortByEnum:()=>Da,ListBidsSortDirectionEnum:()=>Oa,ListCollectionBidsSortByEnum:()=>ka,ListCollectionBidsSortDirectionEnum:()=>Aa,ListListingsBuyItemTypeEnum:()=>ja,ListListingsSortByEnum:()=>Ma,ListListingsSortDirectionEnum:()=>Na,ListTradesSortByEnum:()=>Pa,ListTradesSortDirectionEnum:()=>Fa,MarketPriceERC20TokenTypeEnum:()=>jo,MarketPriceFeesTypeEnum:()=>Mo,MarketPriceNativeTokenTypeEnum:()=>No,MarketplaceContractType:()=>Po,MessageEvaluationResponseConfirmationMethodEnum:()=>Fo,MetadataApi:()=>la,MetadataApiAxiosParamCreator:()=>oa,MetadataApiFactory:()=>ca,MetadataApiFp:()=>sa,MetadataSearchApi:()=>pa,MetadataSearchApiAxiosParamCreator:()=>ua,MetadataSearchApiFactory:()=>fa,MetadataSearchApiFp:()=>da,MintRequestStatus:()=>Io,NFTContractType:()=>Lo,NFTMetadataAttributeDisplayTypeEnum:()=>Ro,NFTSetApprovalForAllMetadataTransactionTypeEnum:()=>zo,NativeItemTypeEnum:()=>Bo,NftOwnersApi:()=>va,NftOwnersApiAxiosParamCreator:()=>ha,NftOwnersApiFactory:()=>_a,NftOwnersApiFp:()=>ga,NftsApi:()=>Sa,NftsApiAxiosParamCreator:()=>ya,NftsApiFactory:()=>xa,NftsApiFp:()=>ba,OperatorAllowlistStatus:()=>Vo,OrderStatusName:()=>Uo,OrderTypeEnum:()=>Ho,OrdersApi:()=>Ea,OrdersApiAxiosParamCreator:()=>Ca,OrdersApiFactory:()=>Ta,OrdersApiFp:()=>wa,OrganisationTier:()=>Wo,PassportApi:()=>za,PassportApiAxiosParamCreator:()=>Ia,PassportApiFactory:()=>Ra,PassportApiFp:()=>La,PassportProfileApi:()=>Ua,PassportProfileApiAxiosParamCreator:()=>Ba,PassportProfileApiFactory:()=>Ha,PassportProfileApiFp:()=>Va,PendingOrderStatusNameEnum:()=>Go,PricingApi:()=>qa,PricingApiAxiosParamCreator:()=>Wa,PricingApiFactory:()=>Ka,PricingApiFp:()=>Ga,ProtocolDataOrderTypeEnum:()=>Ko,SaleFeeTypeEnum:()=>qo,SeaportCreateListingMetadataTypedDataTypeEnum:()=>Jo,SeaportERC1155CollectionItemTypeEnum:()=>Yo,SeaportERC1155ItemTypeEnum:()=>Xo,SeaportERC20ItemTypeEnum:()=>Zo,SeaportERC721CollectionItemTypeEnum:()=>Qo,SeaportERC721ItemTypeEnum:()=>$o,SeaportFeeTypeEnum:()=>es,SeaportFulfillAvailableAdvancedOrdersMetadataTransactionTypeEnum:()=>ts,SeaportNativeItemTypeEnum:()=>ns,SearchStacksSortByEnum:()=>ma,Severity:()=>rs,TokenContractType:()=>is,TokensApi:()=>Za,TokensApiAxiosParamCreator:()=>Ja,TokensApiFactory:()=>Xa,TokensApiFp:()=>Ya,TransactionApprovalRequestChainTypeEnum:()=>as,TransactionEvaluationResponseConfirmationMethodEnum:()=>os,UnknownMetadataTransactionTypeEnum:()=>ss,UnknownTypedDataMetadataTypedDataTypeEnum:()=>cs,ValidationStatus:()=>ls,VerificationRequestContractType:()=>us,VerificationRequestStatus:()=>ds,ZkEvmTransactionEvaluationRequestChainTypeEnum:()=>fs});let ms=function(e){return e.CheapestFirst=`cheapest_first`,e}({}),hs=function(e){return e.ValidationError=`VALIDATION_ERROR`,e}({}),gs=function(e){return e.UnauthorisedRequest=`UNAUTHORISED_REQUEST`,e}({}),_s=function(e){return e.AuthenticationError=`AUTHENTICATION_ERROR`,e}({}),vs=function(e){return e.ResourceNotFound=`RESOURCE_NOT_FOUND`,e}({}),ys=function(e){return e.ConflictError=`CONFLICT_ERROR`,e}({}),bs=function(e){return e.TooManyRequestsError=`TOO_MANY_REQUESTS_ERROR`,e}({}),xs=function(e){return e.InternalServerError=`INTERNAL_SERVER_ERROR`,e}({}),Ss=function(e){return e.Mint=`mint`,e.Burn=`burn`,e.Transfer=`transfer`,e.Sale=`sale`,e.Deposit=`deposit`,e.Withdrawal=`withdrawal`,e}({}),Cs=function(e){return e.Verified=`verified`,e.Unverified=`unverified`,e.Spam=`spam`,e.Inactive=`inactive`,e}({}),ws=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),Ts=function(e){return e.Erc20=`ERC20`,e}({}),Es=function(e){return e.Royalty=`ROYALTY`,e.MakerEcosystem=`MAKER_ECOSYSTEM`,e.TakerEcosystem=`TAKER_ECOSYSTEM`,e.Protocol=`PROTOCOL`,e}({}),Ds=function(e){return e.Native=`NATIVE`,e}({}),Os=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),ks=function(e){return e.Pending=`pending`,e.Succeeded=`succeeded`,e.Failed=`failed`,e}({}),As=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),js=function(e){return e.Number=`number`,e.BoostPercentage=`boost_percentage`,e.BoostNumber=`boost_number`,e.Date=`date`,e}({}),Ms=function(e){return e.Royalty=`ROYALTY`,e}({}),Ns=function(e){return e.Erc20=`ERC20`,e}({});var Ps=Ai({APIError400AllOfCodeEnum:()=>hs,APIError401AllOfCodeEnum:()=>gs,APIError403AllOfCodeEnum:()=>_s,APIError404AllOfCodeEnum:()=>vs,APIError409AllOfCodeEnum:()=>ys,APIError429AllOfCodeEnum:()=>bs,APIError500AllOfCodeEnum:()=>xs,ActivityType:()=>Ss,AssetVerificationStatus:()=>Cs,CollectionContractType:()=>ws,MarketPriceERC20TokenTypeEnum:()=>Ts,MarketPriceFeesTypeEnum:()=>Es,MarketPriceNativeTokenTypeEnum:()=>Ds,MarketplaceContractType:()=>Os,MintRequestStatus:()=>ks,NFTContractType:()=>As,NFTMetadataAttributeDisplayTypeEnum:()=>js,SaleFeeTypeEnum:()=>Ms,SearchStacksSortByEnum:()=>ms,TokenContractType:()=>Ns}),Fs=class{config;activitiesApi;chainsApi;collectionApi;nftOwnersApi;nftsApi;ordersApi;passportApi;passportProfileApi;guardianApi;constructor(e){this.config=e,this.activitiesApi=new Hi(e.indexer),this.chainsApi=new Ki(e.indexer),this.collectionApi=new Xi(e.indexer),this.nftOwnersApi=new va(e.indexer),this.nftsApi=new Sa(e.indexer),this.ordersApi=new Ea(e.orderBook),this.passportApi=new za(e.passport),this.passportProfileApi=new Ua(e.passport),this.guardianApi=new ia(e.passport)}};let Is=`http://localhost`.replace(/\/+$/,``);var Ls=class{basePath;axios;configuration;constructor(e,t=Is,n=R){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}},Rs=class extends Error{field;constructor(e,t){super(t),this.field=e,this.name=`RequiredError`}};let zs=`https://example.com`,Bs=function(e,t,n){if(n==null)throw new Rs(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},Vs=async function(e,t){t&&t.accessToken&&(e.Authorization=`Bearer `+(typeof t.accessToken==`function`?await t.accessToken():await t.accessToken))};function Hs(e,t,n=``){t!=null&&(typeof t==`object`?Array.isArray(t)?t.forEach(t=>Hs(e,t,n)):Object.keys(t).forEach(r=>Hs(e,t[r],`${n}${n===``?``:`.`}${r}`)):e.has(n)?e.append(n,t):e.set(n,t))}let Us=function(e,...t){let n=new URLSearchParams(e.search);Hs(n,t),e.search=n.toString()},Ws=function(e,t,n){let r=typeof e!=`string`;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers[`Content-Type`]):r)?JSON.stringify(e===void 0?{}:e):e||``},Gs=function(e){return e.pathname+e.search+e.hash},Ks=function(e,t,n,r){return(i=t,a=n)=>{let o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},qs=function(e){return{signDataV1WalletSignDataPost:async(t,n,r,i,a,o={})=>{Bs(`signDataV1WalletSignDataPost`,`xMagicChain`,t),Bs(`signDataV1WalletSignDataPost`,`signDataRequest`,n);let s=new URL(`/v1/wallet/sign/data`,zs),c;e&&(c=e.baseOptions);let l={method:`POST`,...c,...o},u={};await Vs(u,e),t!=null&&(u[`X-Magic-Chain`]=String(t)),r!=null&&(u[`X-Magic-API-Key`]=String(r)),i!=null&&(u[`X-Magic-Secret-Key`]=String(i)),a!=null&&(u[`X-OIDC-Provider-ID`]=String(a)),u[`Content-Type`]=`application/json`,Us(s,{});let d=c&&c.headers?c.headers:{};return l.headers={...u,...d,...o.headers},l.data=Ws(n,l,e),{url:Gs(s),options:l}},signMessageV1WalletSignMessagePost:async(t,n,r,i,a,o={})=>{Bs(`signMessageV1WalletSignMessagePost`,`xMagicChain`,t),Bs(`signMessageV1WalletSignMessagePost`,`signMessageRequest`,n);let s=new URL(`/v1/wallet/sign/message`,zs),c;e&&(c=e.baseOptions);let l={method:`POST`,...c,...o},u={};await Vs(u,e),t!=null&&(u[`X-Magic-Chain`]=String(t)),r!=null&&(u[`X-Magic-API-Key`]=String(r)),i!=null&&(u[`X-Magic-Secret-Key`]=String(i)),a!=null&&(u[`X-OIDC-Provider-ID`]=String(a)),u[`Content-Type`]=`application/json`,Us(s,{});let d=c&&c.headers?c.headers:{};return l.headers={...u,...d,...o.headers},l.data=Ws(n,l,e),{url:Gs(s),options:l}}}},Js=function(e){let t=qs(e);return{async signDataV1WalletSignDataPost(n,r,i,a,o,s){return Ks(await t.signDataV1WalletSignDataPost(n,r,i,a,o,s),R,Is,e)},async signMessageV1WalletSignMessagePost(n,r,i,a,o,s){return Ks(await t.signMessageV1WalletSignMessagePost(n,r,i,a,o,s),R,Is,e)}}};var Ys=class extends Ls{signDataV1WalletSignDataPost(e,t){return Js(this.configuration).signDataV1WalletSignDataPost(e.xMagicChain,e.signDataRequest,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}signMessageV1WalletSignMessagePost(e,t){return Js(this.configuration).signMessageV1WalletSignMessagePost(e.xMagicChain,e.signMessageRequest,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}};let Xs=function(e){return{createWalletV1WalletPost:async(t,n,r,i,a={})=>{Bs(`createWalletV1WalletPost`,`xMagicChain`,t);let o=new URL(`/v1/wallet`,zs),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...a},l={};await Vs(l,e),t!=null&&(l[`X-Magic-Chain`]=String(t)),n!=null&&(l[`X-Magic-API-Key`]=String(n)),r!=null&&(l[`X-Magic-Secret-Key`]=String(r)),i!=null&&(l[`X-OIDC-Provider-ID`]=String(i)),Us(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...a.headers},{url:Gs(o),options:c}}}},Zs=function(e){let t=Xs(e);return{async createWalletV1WalletPost(n,r,i,a,o){return Ks(await t.createWalletV1WalletPost(n,r,i,a,o),R,Is,e)}}};var Qs=class extends Ls{createWalletV1WalletPost(e,t){return Zs(this.configuration).createWalletV1WalletPost(e.xMagicChain,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}},$s=class{signOperationsApi;walletApi;constructor(e){let t=R.create({timeout:e.timeout,headers:{"Content-Type":`application/json`,"X-Magic-API-Key":e.magicPublishableApiKey,"X-OIDC-Provider-ID":e.magicProviderId}});this.signOperationsApi=new Ys(void 0,e.basePath,t),this.walletApi=new Qs(void 0,e.basePath,t)}};let ec={"x-sdk-version":`ts-immutable-sdk-2.24.3-0`},tc=({basePath:e,headers:t})=>{if(!e.trim())throw Error(`basePath can not be empty`);return new Qa({basePath:e,baseOptions:{headers:{...ec,...t||{}}}})},nc={getProduction:()=>({indexer:tc({basePath:`https://api.immutable.com`}),orderBook:tc({basePath:`https://api.immutable.com`}),passport:tc({basePath:`https://api.immutable.com`})}),getSandbox:()=>({indexer:tc({basePath:`https://api.sandbox.immutable.com`}),orderBook:tc({basePath:`https://api.sandbox.immutable.com`}),passport:tc({basePath:`https://api.sandbox.immutable.com`})})};var rc=class extends Error{code;details;link;traceId;constructor({message:e,code:t,details:n,link:r,trace_id:i}){super(e),this.code=t,this.details=n,this.link=r,this.traceId=i}};let ic={sdkVersion:`ts-immutable-sdk-multi-rollup-api-client-2.24.3-0`},ac=e=>{let{baseConfig:t,basePath:n,headers:r}=e;if(!n.trim())throw Error(`basePath can not be empty`);let i={...r||{},...We(t,e)||{},...ic},a={...t,basePath:n,baseOptions:{headers:i}};return new ps.Configuration(a)};var oc=class{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=ac(t);else switch(e.environment){case Ve.SANDBOX:this.apiConfig=ac({basePath:`https://api.sandbox.immutable.com`,baseConfig:e});break;case Ve.PRODUCTION:this.apiConfig=ac({basePath:`https://api.immutable.com`,baseConfig:e});break;default:this.apiConfig=ac({basePath:`https://api.sandbox.immutable.com`,baseConfig:e})}}};function sc(e){if(R.isAxiosError(e)&&e.response){let t=e.response.data;return t.code&&t.message?new rc({code:t.code,message:t.message,details:t.details||null,link:t.link||``,trace_id:t.trace_id||``}):new rc({code:e.code??e.response?.status.toString()??`unknown_error_code`,message:String(e),details:null,link:``,trace_id:``})}return new rc({code:`unknown_error_code`,message:String(e),details:null,link:``,trace_id:``})}var cc=class{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;crafting;pricing;metadataSearch;constructor(e){this.config=new oc(e),this.activities=new ps.ActivitiesApi(this.config.apiConfig),this.chains=new ps.ChainsApi(this.config.apiConfig),this.collections=new ps.CollectionsApi(this.config.apiConfig),this.nfts=new ps.NftsApi(this.config.apiConfig),this.nftOwners=new ps.NftOwnersApi(this.config.apiConfig),this.tokens=new ps.TokensApi(this.config.apiConfig),this.metadata=new ps.MetadataApi(this.config.apiConfig),this.crafting=new ps.CraftingApi(this.config.apiConfig),this.pricing=new ps.PricingApi(this.config.apiConfig),this.metadataSearch=new ps.MetadataSearchApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getActivity(e){return await this.activities.getActivity(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listChains(e){return await this.chains.listChains(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listCollections(e){return await this.collections.listCollections(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getCollection(e){return await this.collections.getCollection(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getNFT(e){return await this.nfts.getNFT(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTs(e){return await this.nfts.listNFTs(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then(e=>e.data).catch(e=>{throw sc(e)})}async createMintRequest(e){return await this.nfts.createMintRequest(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listMintRequests(e){return await this.nfts.listMintRequests(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getMintRequest(e){return await this.nfts.getMintRequest(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listTokens(e){return await this.tokens.listERC20Tokens(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getToken(e){return await this.tokens.getERC20Token(e).then(e=>e.data).catch(e=>{throw sc(e)})}async getMetadata(e){return await this.metadata.getMetadata(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then(e=>e.data).catch(e=>{throw sc(e)})}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then(e=>e.data).catch(e=>{throw sc(e)})}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then(e=>e.data).catch(e=>{throw sc(e)})}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then(e=>e.data).catch(e=>{throw sc(e)})}async signCraftingPayload(e){return await this.crafting.signCraftingPayload(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listFilters(e){return await this.metadataSearch.listFilters(e).then(e=>e.data).catch(e=>{throw sc(e)})}async searchNFTs(e){return await this.metadataSearch.searchNFTs(e).then(e=>e.data).catch(e=>{throw sc(e)})}async searchStacks(e){return await this.metadataSearch.searchStacks(e).then(e=>e.data).catch(e=>{throw sc(e)})}async quotesForNFTs(e){return await this.pricing.quotesForNFTs(e).then(e=>e.data).catch(e=>{throw sc(e)})}async quotesForStacks(e){return await this.pricing.quotesForStacks(e).then(e=>e.data).catch(e=>{throw sc(e)})}async listStacks(e){return await this.metadata.listStacks(e).then(e=>e.data).catch(e=>{throw sc(e)})}},lc=l({APIError:()=>rc,BlockchainData:()=>cc,Types:()=>Ps}),uc=class extends Error{};uc.prototype.name=`InvalidTokenError`;function dc(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n=`0`+n),`%`+n}))}function fc(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);switch(t.length%4){case 0:break;case 2:t+=`==`;break;case 3:t+=`=`;break;default:throw Error(`base64 string is not of the correct length`)}try{return dc(t)}catch{return atob(t)}}function pc(e,t){if(typeof e!=`string`)throw new uc(`Invalid token specified: must be a string`);t||={};let n=t.header===!0?0:1,r=e.split(`.`)[n];if(typeof r!=`string`)throw new uc(`Invalid token specified: missing part #${n+1}`);let i;try{i=fc(r)}catch(e){throw new uc(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new uc(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}var mc={debug:()=>void 0,info:()=>void 0,warn:()=>void 0,error:()=>void 0},hc,gc,_c=(e=>(e[e.NONE=0]=`NONE`,e[e.ERROR=1]=`ERROR`,e[e.WARN=2]=`WARN`,e[e.INFO=3]=`INFO`,e[e.DEBUG=4]=`DEBUG`,e))(_c||{});(e=>{function t(){hc=3,gc=mc}e.reset=t;function n(e){if(!(0<=e&&e<=4))throw Error(`Invalid log level`);hc=e}e.setLevel=n;function r(e){gc=e}e.setLogger=r})(_c||={});var vc=class e{constructor(e){this._name=e}debug(...t){hc>=4&&gc.debug(e._format(this._name,this._method),...t)}info(...t){hc>=3&&gc.info(e._format(this._name,this._method),...t)}warn(...t){hc>=2&&gc.warn(e._format(this._name,this._method),...t)}error(...t){hc>=1&&gc.error(e._format(this._name,this._method),...t)}throw(e){throw this.error(e),e}create(e){let t=Object.create(this);return t._method=e,t.debug(`begin`),t}static createStatic(t,n){let r=new e(`${t}.${n}`);return r.debug(`begin`),r}static _format(e,t){let n=`[${e}]`;return t?`${n} ${t}:`:n}static debug(t,...n){hc>=4&&gc.debug(e._format(t),...n)}static info(t,...n){hc>=3&&gc.info(e._format(t),...n)}static warn(t,...n){hc>=2&&gc.warn(e._format(t),...n)}static error(t,...n){hc>=1&&gc.error(e._format(t),...n)}};_c.reset();var yc=class{static decode(e){try{return pc(e)}catch(e){throw vc.error(`JwtUtils.decode`,e),e}}static async generateSignedJwt(e,t,n){let r=`${Cc.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${Cc.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign({name:`ECDSA`,hash:{name:`SHA-256`}},n,new TextEncoder().encode(r));return`${r}.${Cc.encodeBase64Url(new Uint8Array(i))}`}static async generateSignedJwtWithHmac(e,t,n){let r=`${Cc.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${Cc.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign(`HMAC`,n,new TextEncoder().encode(r));return`${r}.${Cc.encodeBase64Url(new Uint8Array(i))}`}},bc=`10000000-1000-4000-8000-100000000000`,xc=e=>btoa([...new Uint8Array(e)].map(e=>String.fromCharCode(e)).join(``)),Sc=class e{static _randomWord(){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}static generateUUIDv4(){return bc.replace(/[018]/g,t=>(t^e._randomWord()&15>>t/4).toString(16)).replace(/-/g,``)}static generateCodeVerifier(){return e.generateUUIDv4()+e.generateUUIDv4()+e.generateUUIDv4()}static async generateCodeChallenge(e){if(!crypto.subtle)throw Error(`Crypto.subtle is available only in secure contexts (HTTPS).`);try{let t=new TextEncoder().encode(e);return xc(await crypto.subtle.digest(`SHA-256`,t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}catch(e){throw vc.error(`CryptoUtils.generateCodeChallenge`,e),e}}static generateBasicAuth(e,t){return xc(new TextEncoder().encode([e,t].join(`:`)))}static async hash(e,t){let n=new TextEncoder().encode(t),r=await crypto.subtle.digest(e,n);return new Uint8Array(r)}static async customCalculateJwkThumbprint(t){let n;switch(t.kty){case`RSA`:n={e:t.e,kty:t.kty,n:t.n};break;case`EC`:n={crv:t.crv,kty:t.kty,x:t.x,y:t.y};break;case`OKP`:n={crv:t.crv,kty:t.kty,x:t.x};break;case`oct`:n={crv:t.k,kty:t.kty};break;default:throw Error(`Unknown jwk type`)}let r=await e.hash(`SHA-256`,JSON.stringify(n));return e.encodeBase64Url(r)}static async generateDPoPProof({url:t,accessToken:n,httpMethod:r,keyPair:i,nonce:a}){let o,s,c={jti:window.crypto.randomUUID(),htm:r??`GET`,htu:t,iat:Math.floor(Date.now()/1e3)};n&&(o=await e.hash(`SHA-256`,n),s=e.encodeBase64Url(o),c.ath=s),a&&(c.nonce=a);try{let e=await crypto.subtle.exportKey(`jwk`,i.publicKey),t={alg:`ES256`,typ:`dpop+jwt`,jwk:{crv:e.crv,kty:e.kty,x:e.x,y:e.y}};return await yc.generateSignedJwt(t,c,i.privateKey)}catch(e){throw e instanceof TypeError?Error(`Error exporting dpop public key: ${e.message}`):e}}static async generateDPoPJkt(t){try{let n=await crypto.subtle.exportKey(`jwk`,t.publicKey);return await e.customCalculateJwkThumbprint(n)}catch(e){throw e instanceof TypeError?Error(`Could not retrieve dpop keys from storage: ${e.message}`):e}}static async generateDPoPKeys(){return await window.crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`,`verify`])}static async generateClientAssertionJwt(t,n,r,i=`HS256`){let a=Math.floor(Date.now()/1e3),o={alg:i,typ:`JWT`},s={iss:t,sub:t,aud:r,jti:e.generateUUIDv4(),exp:a+300,iat:a},c={HS256:`SHA-256`,HS384:`SHA-384`,HS512:`SHA-512`}[i];if(!c)throw Error(`Unsupported algorithm: ${i}. Supported algorithms are: HS256, HS384, HS512`);let l=new TextEncoder,u=await crypto.subtle.importKey(`raw`,l.encode(n),{name:`HMAC`,hash:c},!1,[`sign`]);return await yc.generateSignedJwtWithHmac(o,s,u)}};Sc.encodeBase64Url=e=>xc(e).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`);var Cc=Sc,wc=class{constructor(e){this._name=e,this._callbacks=[],this._logger=new vc(`Event('${this._name}')`)}addHandler(e){return this._callbacks.push(e),()=>this.removeHandler(e)}removeHandler(e){let t=this._callbacks.lastIndexOf(e);t>=0&&this._callbacks.splice(t,1)}async raise(...e){this._logger.debug(`raise:`,...e);for(let t of this._callbacks)await t(...e)}},Tc=class{static center({...e}){return e.width??=[800,720,600,480].find(e=>e<=window.outerWidth/1.618)??360,e.left??=Math.max(0,Math.round(window.screenX+(window.outerWidth-e.width)/2)),e.height!=null&&(e.top??=Math.max(0,Math.round(window.screenY+(window.outerHeight-e.height)/2))),e}static serialize(e){return Object.entries(e).filter(([,e])=>e!=null).map(([e,t])=>`${e}=${typeof t==`boolean`?t?`yes`:`no`:t}`).join(`,`)}},Ec=class e extends wc{constructor(){super(...arguments),this._logger=new vc(`Timer('${this._name}')`),this._timerHandle=null,this._expiration=0,this._callback=()=>{let t=this._expiration-e.getEpochTime();this._logger.debug(`timer completes in`,t),this._expiration<=e.getEpochTime()&&(this.cancel(),super.raise())}}static getEpochTime(){return Math.floor(Date.now()/1e3)}init(t){let n=this._logger.create(`init`);t=Math.max(Math.floor(t),1);let r=e.getEpochTime()+t;if(this.expiration===r&&this._timerHandle){n.debug(`skipping since already initialized for expiration at`,this.expiration);return}this.cancel(),n.debug(`using duration`,t),this._expiration=r;let i=Math.min(t,5);this._timerHandle=setInterval(this._callback,i*1e3)}get expiration(){return this._expiration}cancel(){this._logger.create(`cancel`),this._timerHandle&&=(clearInterval(this._timerHandle),null)}},Dc=class{static readParams(e,t=`query`){if(!e)throw TypeError(`Invalid URL`);let n=new URL(e,`http://127.0.0.1`)[t===`fragment`?`hash`:`search`];return new URLSearchParams(n.slice(1))}},Oc=`;`,kc=class extends Error{constructor(e,t){if(super(e.error_description||e.error||``),this.form=t,this.name=`ErrorResponse`,!e.error)throw vc.error(`ErrorResponse`,`No error passed`),Error(`No error passed`);this.error=e.error,this.error_description=e.error_description??null,this.error_uri=e.error_uri??null,this.state=e.userState,this.session_state=e.session_state??null,this.url_state=e.url_state}},Ac=class extends Error{constructor(e){super(e),this.name=`ErrorTimeout`}},jc=class{constructor(e){this._logger=new vc(`AccessTokenEvents`),this._expiringTimer=new Ec(`Access token expiring`),this._expiredTimer=new Ec(`Access token expired`),this._expiringNotificationTimeInSeconds=e.expiringNotificationTimeInSeconds}async load(e){let t=this._logger.create(`load`);if(e.access_token&&e.expires_in!==void 0){let n=e.expires_in;if(t.debug(`access token present, remaining duration:`,n),n>0){let e=n-this._expiringNotificationTimeInSeconds;e<=0&&(e=1),t.debug(`registering expiring timer, raising in`,e,`seconds`),this._expiringTimer.init(e)}else t.debug(`canceling existing expiring timer because we're past expiration.`),this._expiringTimer.cancel();let r=n+1;t.debug(`registering expired timer, raising in`,r,`seconds`),this._expiredTimer.init(r)}else this._expiringTimer.cancel(),this._expiredTimer.cancel()}async unload(){this._logger.debug(`unload: canceling existing access token timers`),this._expiringTimer.cancel(),this._expiredTimer.cancel()}addAccessTokenExpiring(e){return this._expiringTimer.addHandler(e)}removeAccessTokenExpiring(e){this._expiringTimer.removeHandler(e)}addAccessTokenExpired(e){return this._expiredTimer.addHandler(e)}removeAccessTokenExpired(e){this._expiredTimer.removeHandler(e)}},Mc=class{constructor(e,t,n,r,i){this._callback=e,this._client_id=t,this._intervalInSeconds=r,this._stopOnError=i,this._logger=new vc(`CheckSessionIFrame`),this._timer=null,this._session_state=null,this._message=e=>{e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&(e.data===`error`?(this._logger.error(`error message from check session op iframe`),this._stopOnError&&this.stop()):e.data===`changed`?(this._logger.debug(`changed message from check session op iframe`),this.stop(),this._callback()):this._logger.debug(e.data+` message from check session op iframe`))};let a=new URL(n);this._frame_origin=a.origin,this._frame=window.document.createElement(`iframe`),this._frame.style.visibility=`hidden`,this._frame.style.position=`fixed`,this._frame.style.left=`-1000px`,this._frame.style.top=`0`,this._frame.width=`0`,this._frame.height=`0`,this._frame.src=a.href}load(){return new Promise(e=>{this._frame.onload=()=>{e()},window.document.body.appendChild(this._frame),window.addEventListener(`message`,this._message,!1)})}start(e){if(this._session_state===e)return;this._logger.create(`start`),this.stop(),this._session_state=e;let t=()=>{!this._frame.contentWindow||!this._session_state||this._frame.contentWindow.postMessage(this._client_id+` `+this._session_state,this._frame_origin)};t(),this._timer=setInterval(t,this._intervalInSeconds*1e3)}stop(){this._logger.create(`stop`),this._session_state=null,this._timer&&=(clearInterval(this._timer),null)}},Nc=class{constructor(){this._logger=new vc(`InMemoryWebStorage`),this._data={}}clear(){this._logger.create(`clear`),this._data={}}getItem(e){return this._logger.create(`getItem('${e}')`),this._data[e]}setItem(e,t){this._logger.create(`setItem('${e}')`),this._data[e]=t}removeItem(e){this._logger.create(`removeItem('${e}')`),delete this._data[e]}get length(){return Object.getOwnPropertyNames(this._data).length}key(e){return Object.getOwnPropertyNames(this._data)[e]}},Pc=class extends Error{constructor(e,t){super(t),this.name=`ErrorDPoPNonce`,this.nonce=e}},Fc=class{constructor(e=[],t=null,n={}){this._jwtHandler=t,this._extraHeaders=n,this._logger=new vc(`JsonService`),this._contentTypes=[],this._contentTypes.push(...e,`application/json`),t&&this._contentTypes.push(`application/jwt`)}async fetchWithTimeout(e,t={}){let{timeoutInSeconds:n,...r}=t;if(!n)return await fetch(e,r);let i=new AbortController,a=setTimeout(()=>i.abort(),n*1e3);try{return await fetch(e,{...t,signal:i.signal})}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?new Ac(`Network timed out`):e}finally{clearTimeout(a)}}async getJson(e,{token:t,credentials:n,timeoutInSeconds:r}={}){let i=this._logger.create(`getJson`),a={Accept:this._contentTypes.join(`, `)};t&&(i.debug(`token passed, setting Authorization header`),a.Authorization=`Bearer `+t),this._appendExtraHeaders(a);let o;try{i.debug(`url:`,e),o=await this.fetchWithTimeout(e,{method:`GET`,headers:a,timeoutInSeconds:r,credentials:n})}catch(e){throw i.error(`Network Error`),e}i.debug(`HTTP response received, status`,o.status);let s=o.headers.get(`Content-Type`);if(s&&!this._contentTypes.find(e=>s.startsWith(e))&&i.throw(Error(`Invalid response Content-Type: ${s??`undefined`}, from URL: ${e}`)),o.ok&&this._jwtHandler&&s?.startsWith(`application/jwt`))return await this._jwtHandler(await o.text());let c;try{c=await o.json()}catch(e){throw i.error(`Error parsing JSON response`,e),o.ok?e:Error(`${o.statusText} (${o.status})`)}if(!o.ok)throw i.error(`Error from server:`,c),c.error?new kc(c):Error(`${o.statusText} (${o.status}): ${JSON.stringify(c)}`);return c}async postForm(e,{body:t,basicAuth:n,timeoutInSeconds:r,initCredentials:i,extraHeaders:a}){let o=this._logger.create(`postForm`),s={Accept:this._contentTypes.join(`, `),"Content-Type":`application/x-www-form-urlencoded`,...a};n!==void 0&&(s.Authorization=`Basic `+n),this._appendExtraHeaders(s);let c;try{o.debug(`url:`,e),c=await this.fetchWithTimeout(e,{method:`POST`,headers:s,body:t,timeoutInSeconds:r,credentials:i})}catch(e){throw o.error(`Network error`),e}o.debug(`HTTP response received, status`,c.status);let l=c.headers.get(`Content-Type`);if(l&&!this._contentTypes.find(e=>l.startsWith(e)))throw Error(`Invalid response Content-Type: ${l??`undefined`}, from URL: ${e}`);let u=await c.text(),d={};if(u)try{d=JSON.parse(u)}catch(e){throw o.error(`Error parsing JSON response`,e),c.ok?e:Error(`${c.statusText} (${c.status})`)}if(!c.ok)throw o.error(`Error from server:`,d),c.headers.has(`dpop-nonce`)?new Pc(c.headers.get(`dpop-nonce`),`${JSON.stringify(d)}`):d.error?new kc(d,t):Error(`${c.statusText} (${c.status}): ${JSON.stringify(d)}`);return d}_appendExtraHeaders(e){let t=this._logger.create(`appendExtraHeaders`),n=Object.keys(this._extraHeaders),r=[`accept`,`content-type`],i=[`authorization`];n.length!==0&&n.forEach(n=>{if(r.includes(n.toLocaleLowerCase())){t.warn(`Protected header could not be set`,n,r);return}if(i.includes(n.toLocaleLowerCase())&&Object.keys(e).includes(n)){t.warn(`Header could not be overridden`,n,i);return}let a=typeof this._extraHeaders[n]==`function`?this._extraHeaders[n]():this._extraHeaders[n];a&&a!==``&&(e[n]=a)})}},Ic=class{constructor(e){this._settings=e,this._logger=new vc(`MetadataService`),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new Fc([`application/jwk-set+json`],null,this._settings.extraHeaders),this._settings.signingKeys&&(this._logger.debug(`using signingKeys from settings`),this._signingKeys=this._settings.signingKeys),this._settings.metadata&&(this._logger.debug(`using metadata from settings`),this._metadata=this._settings.metadata),this._settings.fetchRequestCredentials&&(this._logger.debug(`using fetchRequestCredentials from settings`),this._fetchRequestCredentials=this._settings.fetchRequestCredentials)}resetSigningKeys(){this._signingKeys=null}async getMetadata(){let e=this._logger.create(`getMetadata`);if(this._metadata)return e.debug(`using cached values`),this._metadata;if(!this._metadataUrl)throw e.throw(Error(`No authority or metadataUrl configured on settings`)),null;e.debug(`getting metadata from`,this._metadataUrl);let t=await this._jsonService.getJson(this._metadataUrl,{credentials:this._fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return e.debug(`merging remote JSON with seed metadata`),this._metadata=Object.assign({},t,this._settings.metadataSeed),this._metadata}getIssuer(){return this._getMetadataProperty(`issuer`)}getAuthorizationEndpoint(){return this._getMetadataProperty(`authorization_endpoint`)}getUserInfoEndpoint(){return this._getMetadataProperty(`userinfo_endpoint`)}getTokenEndpoint(e=!0){return this._getMetadataProperty(`token_endpoint`,e)}getCheckSessionIframe(){return this._getMetadataProperty(`check_session_iframe`,!0)}getEndSessionEndpoint(){return this._getMetadataProperty(`end_session_endpoint`,!0)}getRevocationEndpoint(e=!0){return this._getMetadataProperty(`revocation_endpoint`,e)}getKeysEndpoint(e=!0){return this._getMetadataProperty(`jwks_uri`,e)}async _getMetadataProperty(e,t=!1){let n=this._logger.create(`_getMetadataProperty('${e}')`),r=await this.getMetadata();if(n.debug(`resolved`),r[e]===void 0){if(t===!0){n.warn(`Metadata does not contain optional property`);return}n.throw(Error(`Metadata does not contain property `+e))}return r[e]}async getSigningKeys(){let e=this._logger.create(`getSigningKeys`);if(this._signingKeys)return e.debug(`returning signingKeys from cache`),this._signingKeys;let t=await this.getKeysEndpoint(!1);e.debug(`got jwks_uri`,t);let n=await this._jsonService.getJson(t,{timeoutInSeconds:this._settings.requestTimeoutInSeconds});if(e.debug(`got key set`,n),!Array.isArray(n.keys))throw e.throw(Error(`Missing keys on keyset`)),null;return this._signingKeys=n.keys,this._signingKeys}},Lc=class{constructor({prefix:e=`oidc.`,store:t=localStorage}={}){this._logger=new vc(`WebStorageStateStore`),this._store=t,this._prefix=e}async set(e,t){this._logger.create(`set('${e}')`),e=this._prefix+e,await this._store.setItem(e,t)}async get(e){return this._logger.create(`get('${e}')`),e=this._prefix+e,await this._store.getItem(e)}async remove(e){this._logger.create(`remove('${e}')`),e=this._prefix+e;let t=await this._store.getItem(e);return await this._store.removeItem(e),t}async getAllKeys(){this._logger.create(`getAllKeys`);let e=await this._store.length,t=[];for(let n=0;n<e;n++){let e=await this._store.key(n);e&&e.indexOf(this._prefix)===0&&t.push(e.substr(this._prefix.length))}return t}},Rc=`code`,zc=`openid`,Bc=`client_secret_post`,Vc=900,Hc=class{constructor({authority:e,metadataUrl:t,metadata:n,signingKeys:r,metadataSeed:i,client_id:a,client_secret:o,response_type:s=Rc,scope:c=zc,redirect_uri:l,post_logout_redirect_uri:u,client_authentication:d=Bc,token_endpoint_auth_signing_alg:f=`HS256`,prompt:p,display:m,max_age:h,ui_locales:g,acr_values:_,resource:v,response_mode:y,filterProtocolClaims:b=!0,loadUserInfo:x=!1,requestTimeoutInSeconds:S,staleStateAgeInSeconds:C=Vc,mergeClaimsStrategy:w={array:`replace`},disablePKCE:T=!1,stateStore:E,revokeTokenAdditionalContentTypes:D,fetchRequestCredentials:O,refreshTokenAllowedScope:k,extraQueryParams:A={},extraTokenParams:j={},extraHeaders:M={},dpop:N,omitScopeWhenRequesting:P=!1}){if(this.authority=e,t?this.metadataUrl=t:(this.metadataUrl=e,e&&(this.metadataUrl.endsWith(`/`)||(this.metadataUrl+=`/`),this.metadataUrl+=`.well-known/openid-configuration`)),this.metadata=n,this.metadataSeed=i,this.signingKeys=r,this.client_id=a,this.client_secret=o,this.response_type=s,this.scope=c,this.redirect_uri=l,this.post_logout_redirect_uri=u,this.client_authentication=d,this.token_endpoint_auth_signing_alg=f,this.prompt=p,this.display=m,this.max_age=h,this.ui_locales=g,this.acr_values=_,this.resource=v,this.response_mode=y,this.filterProtocolClaims=b??!0,this.loadUserInfo=!!x,this.staleStateAgeInSeconds=C,this.mergeClaimsStrategy=w,this.omitScopeWhenRequesting=P,this.disablePKCE=!!T,this.revokeTokenAdditionalContentTypes=D,this.fetchRequestCredentials=O||`same-origin`,this.requestTimeoutInSeconds=S,E)this.stateStore=E;else{let e=typeof window<`u`?window.localStorage:new Nc;this.stateStore=new Lc({store:e})}if(this.refreshTokenAllowedScope=k,this.extraQueryParams=A,this.extraTokenParams=j,this.extraHeaders=M,this.dpop=N,this.dpop&&!this.dpop?.store)throw Error(`A DPoPStore is required when dpop is enabled`)}},Uc=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new vc(`UserInfoService`),this._getClaimsFromJwt=async e=>{let t=this._logger.create(`_getClaimsFromJwt`);try{let n=yc.decode(e);return t.debug(`JWT decoding successful`),n}catch(e){throw t.error(`Error parsing JWT response`),e}},this._jsonService=new Fc(void 0,this._getClaimsFromJwt,this._settings.extraHeaders)}async getClaims(e){let t=this._logger.create(`getClaims`);e||this._logger.throw(Error(`No token passed`));let n=await this._metadataService.getUserInfoEndpoint();t.debug(`got userinfo url`,n);let r=await this._jsonService.getJson(n,{token:e,credentials:this._settings.fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return t.debug(`got claims`,r),r}},Wc=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new vc(`TokenClient`),this._jsonService=new Fc(this._settings.revokeTokenAdditionalContentTypes,null,this._settings.extraHeaders)}async exchangeCode({grant_type:e=`authorization_code`,redirect_uri:t=this._settings.redirect_uri,client_id:n=this._settings.client_id,client_secret:r=this._settings.client_secret,extraHeaders:i,...a}){let o=this._logger.create(`exchangeCode`);n||o.throw(Error(`A client_id is required`)),t||o.throw(Error(`A redirect_uri is required`)),a.code||o.throw(Error(`A code is required`));let s=new URLSearchParams({grant_type:e,redirect_uri:t});for(let[e,t]of Object.entries(a))t!=null&&s.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&r==null)throw o.throw(Error(`A client_secret is required`)),null;let c,l=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:c=Cc.generateBasicAuth(n,r);break;case`client_secret_post`:s.append(`client_id`,n),r&&s.append(`client_secret`,r);break;case`client_secret_jwt`:{let e=await Cc.generateClientAssertionJwt(n,r,l,this._settings.token_endpoint_auth_signing_alg);s.append(`client_id`,n),s.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),s.append(`client_assertion`,e);break}}o.debug(`got token endpoint`);let u=await this._jsonService.postForm(l,{body:s,basicAuth:c,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:i});return o.debug(`got response`),u}async exchangeCredentials({grant_type:e=`password`,client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,scope:r=this._settings.scope,...i}){let a=this._logger.create(`exchangeCredentials`);t||a.throw(Error(`A client_id is required`));let o=new URLSearchParams({grant_type:e});this._settings.omitScopeWhenRequesting||o.set(`scope`,r);for(let[e,t]of Object.entries(i))t!=null&&o.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&n==null)throw a.throw(Error(`A client_secret is required`)),null;let s,c=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:s=Cc.generateBasicAuth(t,n);break;case`client_secret_post`:o.append(`client_id`,t),n&&o.append(`client_secret`,n);break;case`client_secret_jwt`:{let e=await Cc.generateClientAssertionJwt(t,n,c,this._settings.token_endpoint_auth_signing_alg);o.append(`client_id`,t),o.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),o.append(`client_assertion`,e);break}}a.debug(`got token endpoint`);let l=await this._jsonService.postForm(c,{body:o,basicAuth:s,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials});return a.debug(`got response`),l}async exchangeRefreshToken({grant_type:e=`refresh_token`,client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,timeoutInSeconds:r,extraHeaders:i,...a}){let o=this._logger.create(`exchangeRefreshToken`);t||o.throw(Error(`A client_id is required`)),a.refresh_token||o.throw(Error(`A refresh_token is required`));let s=new URLSearchParams({grant_type:e});for(let[e,t]of Object.entries(a))Array.isArray(t)?t.forEach(t=>s.append(e,t)):t!=null&&s.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&n==null)throw o.throw(Error(`A client_secret is required`)),null;let c,l=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:c=Cc.generateBasicAuth(t,n);break;case`client_secret_post`:s.append(`client_id`,t),n&&s.append(`client_secret`,n);break;case`client_secret_jwt`:{let e=await Cc.generateClientAssertionJwt(t,n,l,this._settings.token_endpoint_auth_signing_alg);s.append(`client_id`,t),s.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),s.append(`client_assertion`,e);break}}o.debug(`got token endpoint`);let u=await this._jsonService.postForm(l,{body:s,basicAuth:c,timeoutInSeconds:r,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:i});return o.debug(`got response`),u}async revoke(e){let t=this._logger.create(`revoke`);e.token||t.throw(Error(`A token is required`));let n=await this._metadataService.getRevocationEndpoint(!1);t.debug(`got revocation endpoint, revoking ${e.token_type_hint??`default token type`}`);let r=new URLSearchParams;for(let[t,n]of Object.entries(e))n!=null&&r.set(t,n);r.set(`client_id`,this._settings.client_id),this._settings.client_secret&&r.set(`client_secret`,this._settings.client_secret),await this._jsonService.postForm(n,{body:r,timeoutInSeconds:this._settings.requestTimeoutInSeconds}),t.debug(`got response`)}},Gc=class{constructor(e,t,n){this._settings=e,this._metadataService=t,this._claimsService=n,this._logger=new vc(`ResponseValidator`),this._userInfoService=new Uc(this._settings,this._metadataService),this._tokenClient=new Wc(this._settings,this._metadataService)}async validateSigninResponse(e,t,n){let r=this._logger.create(`validateSigninResponse`);this._processSigninState(e,t),r.debug(`state processed`),await this._processCode(e,t,n),r.debug(`code processed`),e.isOpenId&&this._validateIdTokenAttributes(e),r.debug(`tokens validated`),await this._processClaims(e,t?.skipUserInfo,e.isOpenId),r.debug(`claims processed`)}async validateCredentialsResponse(e,t){let n=this._logger.create(`validateCredentialsResponse`),r=e.isOpenId&&!!e.id_token;r&&this._validateIdTokenAttributes(e),n.debug(`tokens validated`),await this._processClaims(e,t,r),n.debug(`claims processed`)}async validateRefreshResponse(e,t){let n=this._logger.create(`validateRefreshResponse`);e.userState=t.data,e.session_state??=t.session_state,e.scope??=t.scope,e.isOpenId&&e.id_token&&(this._validateIdTokenAttributes(e,t.id_token),n.debug(`ID Token validated`)),e.id_token||(e.id_token=t.id_token,e.profile=t.profile);let r=e.isOpenId&&!!e.id_token;await this._processClaims(e,!1,r),n.debug(`claims processed`)}validateSignoutResponse(e,t){let n=this._logger.create(`validateSignoutResponse`);if(t.id!==e.state&&n.throw(Error(`State does not match`)),n.debug(`state validated`),e.userState=t.data,e.error)throw n.warn(`Response was error`,e.error),new kc(e)}_processSigninState(e,t){let n=this._logger.create(`_processSigninState`);if(t.id!==e.state&&n.throw(Error(`State does not match`)),t.client_id||n.throw(Error(`No client_id on state`)),t.authority||n.throw(Error(`No authority on state`)),this._settings.authority!==t.authority&&n.throw(Error(`authority mismatch on settings vs. signin state`)),this._settings.client_id&&this._settings.client_id!==t.client_id&&n.throw(Error(`client_id mismatch on settings vs. signin state`)),n.debug(`state validated`),e.userState=t.data,e.url_state=t.url_state,e.scope??=t.scope,e.error)throw n.warn(`Response was error`,e.error),new kc(e);t.code_verifier&&!e.code&&n.throw(Error(`Expected code in response`))}async _processClaims(e,t=!1,n=!0){let r=this._logger.create(`_processClaims`);if(e.profile=this._claimsService.filterProtocolClaims(e.profile),t||!this._settings.loadUserInfo||!e.access_token){r.debug(`not loading user info`);return}r.debug(`loading user info`);let i=await this._userInfoService.getClaims(e.access_token);r.debug(`user info claims received from user info endpoint`),n&&i.sub!==e.profile.sub&&r.throw(Error(`subject from UserInfo response does not match subject in ID Token`)),e.profile=this._claimsService.mergeClaims(e.profile,this._claimsService.filterProtocolClaims(i)),r.debug(`user info claims received, updated profile:`,e.profile)}async _processCode(e,t,n){let r=this._logger.create(`_processCode`);if(e.code){r.debug(`Validating code`);let i=await this._tokenClient.exchangeCode({client_id:t.client_id,client_secret:t.client_secret,code:e.code,redirect_uri:t.redirect_uri,code_verifier:t.code_verifier,extraHeaders:n,...t.extraTokenParams});Object.assign(e,i)}else r.debug(`No code to process`)}_validateIdTokenAttributes(e,t){let n=this._logger.create(`_validateIdTokenAttributes`);n.debug(`decoding ID Token JWT`);let r=yc.decode(e.id_token??``);if(r.sub||n.throw(Error(`ID Token is missing a subject claim`)),t){let e=yc.decode(t);r.sub!==e.sub&&n.throw(Error(`sub in id_token does not match current sub`)),r.auth_time&&r.auth_time!==e.auth_time&&n.throw(Error(`auth_time in id_token does not match original auth_time`)),r.azp&&r.azp!==e.azp&&n.throw(Error(`azp in id_token does not match original azp`)),!r.azp&&e.azp&&n.throw(Error(`azp not in id_token, but present in original id_token`))}e.profile=r}},Kc=class e{constructor(e){this.id=e.id||Cc.generateUUIDv4(),this.data=e.data,e.created&&e.created>0?this.created=e.created:this.created=Ec.getEpochTime(),this.request_type=e.request_type,this.url_state=e.url_state}toStorageString(){return new vc(`State`).create(`toStorageString`),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state})}static fromStorageString(t){return vc.createStatic(`State`,`fromStorageString`),Promise.resolve(new e(JSON.parse(t)))}static async clearStaleState(t,n){let r=vc.createStatic(`State`,`clearStaleState`),i=Ec.getEpochTime()-n,a=await t.getAllKeys();r.debug(`got keys`,a);for(let n=0;n<a.length;n++){let o=a[n],s=await t.get(o),c=!1;if(s)try{let t=await e.fromStorageString(s);r.debug(`got item from key:`,o,t.created),t.created<=i&&(c=!0)}catch(e){r.error(`Error parsing state for key:`,o,e),c=!0}else r.debug(`no item in storage for key:`,o),c=!0;c&&(r.debug(`removed item for key:`,o),t.remove(o))}}},qc=class e extends Kc{constructor(e){super(e),this.code_verifier=e.code_verifier,this.code_challenge=e.code_challenge,this.authority=e.authority,this.client_id=e.client_id,this.redirect_uri=e.redirect_uri,this.scope=e.scope,this.client_secret=e.client_secret,this.extraTokenParams=e.extraTokenParams,this.response_mode=e.response_mode,this.skipUserInfo=e.skipUserInfo}static async create(t){let n=t.code_verifier===!0?Cc.generateCodeVerifier():t.code_verifier||void 0,r=n?await Cc.generateCodeChallenge(n):void 0;return new e({...t,code_verifier:n,code_challenge:r})}toStorageString(){return new vc(`SigninState`).create(`toStorageString`),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state,code_verifier:this.code_verifier,authority:this.authority,client_id:this.client_id,redirect_uri:this.redirect_uri,scope:this.scope,client_secret:this.client_secret,extraTokenParams:this.extraTokenParams,response_mode:this.response_mode,skipUserInfo:this.skipUserInfo})}static fromStorageString(t){vc.createStatic(`SigninState`,`fromStorageString`);let n=JSON.parse(t);return e.create(n)}},Jc=class e{constructor(e){this.url=e.url,this.state=e.state}static async create({url:t,authority:n,client_id:r,redirect_uri:i,response_type:a,scope:o,state_data:s,response_mode:c,request_type:l,client_secret:u,nonce:d,url_state:f,resource:p,skipUserInfo:m,extraQueryParams:h,extraTokenParams:g,disablePKCE:_,dpopJkt:v,omitScopeWhenRequesting:y,...b}){if(!t)throw this._logger.error(`create: No url passed`),Error(`url`);if(!r)throw this._logger.error(`create: No client_id passed`),Error(`client_id`);if(!i)throw this._logger.error(`create: No redirect_uri passed`),Error(`redirect_uri`);if(!a)throw this._logger.error(`create: No response_type passed`),Error(`response_type`);if(!o)throw this._logger.error(`create: No scope passed`),Error(`scope`);if(!n)throw this._logger.error(`create: No authority passed`),Error(`authority`);let x=await qc.create({data:s,request_type:l,url_state:f,code_verifier:!_,client_id:r,authority:n,redirect_uri:i,response_mode:c,client_secret:u,scope:o,extraTokenParams:g,skipUserInfo:m}),S=new URL(t);S.searchParams.append(`client_id`,r),S.searchParams.append(`redirect_uri`,i),S.searchParams.append(`response_type`,a),y||S.searchParams.append(`scope`,o),d&&S.searchParams.append(`nonce`,d),v&&S.searchParams.append(`dpop_jkt`,v);let C=x.id;f&&(C=`${C}${Oc}${f}`),S.searchParams.append(`state`,C),x.code_challenge&&(S.searchParams.append(`code_challenge`,x.code_challenge),S.searchParams.append(`code_challenge_method`,`S256`)),p&&(Array.isArray(p)?p:[p]).forEach(e=>S.searchParams.append(`resource`,e));for(let[e,t]of Object.entries({response_mode:c,...b,...h}))t!=null&&S.searchParams.append(e,t.toString());return new e({url:S.href,state:x})}};Jc._logger=new vc(`SigninRequest`);var Yc=Jc,Xc=`openid`,Zc=class{constructor(e){if(this.access_token=``,this.token_type=``,this.profile={},this.state=e.get(`state`),this.session_state=e.get(`session_state`),this.state){let e=decodeURIComponent(this.state).split(Oc);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(Oc))}this.error=e.get(`error`),this.error_description=e.get(`error_description`),this.error_uri=e.get(`error_uri`),this.code=e.get(`code`)}get expires_in(){if(this.expires_at!==void 0)return this.expires_at-Ec.getEpochTime()}set expires_in(e){typeof e==`string`&&(e=Number(e)),e!==void 0&&e>=0&&(this.expires_at=Math.floor(e)+Ec.getEpochTime())}get isOpenId(){return this.scope?.split(` `).includes(Xc)||!!this.id_token}},Qc=class{constructor({url:e,state_data:t,id_token_hint:n,post_logout_redirect_uri:r,extraQueryParams:i,request_type:a,client_id:o,url_state:s}){if(this._logger=new vc(`SignoutRequest`),!e)throw this._logger.error(`ctor: No url passed`),Error(`url`);let c=new URL(e);if(n&&c.searchParams.append(`id_token_hint`,n),o&&c.searchParams.append(`client_id`,o),r&&(c.searchParams.append(`post_logout_redirect_uri`,r),t||s)){this.state=new Kc({data:t,request_type:a,url_state:s});let e=this.state.id;s&&(e=`${e}${Oc}${s}`),c.searchParams.append(`state`,e)}for(let[e,t]of Object.entries({...i}))t!=null&&c.searchParams.append(e,t.toString());this.url=c.href}},$c=class{constructor(e){if(this.state=e.get(`state`),this.state){let e=decodeURIComponent(this.state).split(Oc);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(Oc))}this.error=e.get(`error`),this.error_description=e.get(`error_description`),this.error_uri=e.get(`error_uri`)}},el=[`nbf`,`jti`,`auth_time`,`nonce`,`acr`,`amr`,`azp`,`at_hash`],tl=[`sub`,`iss`,`aud`,`exp`,`iat`],nl=class{constructor(e){this._settings=e,this._logger=new vc(`ClaimsService`)}filterProtocolClaims(e){let t={...e};if(this._settings.filterProtocolClaims){let e;e=Array.isArray(this._settings.filterProtocolClaims)?this._settings.filterProtocolClaims:el;for(let n of e)tl.includes(n)||delete t[n]}return t}mergeClaims(e,t){let n={...e};for(let[e,r]of Object.entries(t))if(n[e]!==r)if(Array.isArray(n[e])||Array.isArray(r))if(this._settings.mergeClaimsStrategy.array==`replace`)n[e]=r;else{let t=Array.isArray(n[e])?n[e]:[n[e]];for(let e of Array.isArray(r)?r:[r])t.includes(e)||t.push(e);n[e]=t}else typeof n[e]==`object`&&typeof r==`object`?n[e]=this.mergeClaims(n[e],r):n[e]=r;return n}},rl=class{constructor(e,t){this.keys=e,this.nonce=t}},il=class{constructor(e,t){this._logger=new vc(`OidcClient`),this.settings=e instanceof Hc?e:new Hc(e),this.metadataService=t??new Ic(this.settings),this._claimsService=new nl(this.settings),this._validator=new Gc(this.settings,this.metadataService,this._claimsService),this._tokenClient=new Wc(this.settings,this.metadataService)}async createSigninRequest({state:e,request:t,request_uri:n,request_type:r,id_token_hint:i,login_hint:a,skipUserInfo:o,nonce:s,url_state:c,response_type:l=this.settings.response_type,scope:u=this.settings.scope,redirect_uri:d=this.settings.redirect_uri,prompt:f=this.settings.prompt,display:p=this.settings.display,max_age:m=this.settings.max_age,ui_locales:h=this.settings.ui_locales,acr_values:g=this.settings.acr_values,resource:_=this.settings.resource,response_mode:v=this.settings.response_mode,extraQueryParams:y=this.settings.extraQueryParams,extraTokenParams:b=this.settings.extraTokenParams,dpopJkt:x,omitScopeWhenRequesting:S=this.settings.omitScopeWhenRequesting}){let C=this._logger.create(`createSigninRequest`);if(l!==`code`)throw Error(`Only the Authorization Code flow (with PKCE) is supported`);let w=await this.metadataService.getAuthorizationEndpoint();C.debug(`Received authorization endpoint`,w);let T=await Yc.create({url:w,authority:this.settings.authority,client_id:this.settings.client_id,redirect_uri:d,response_type:l,scope:u,state_data:e,url_state:c,prompt:f,display:p,max_age:m,ui_locales:h,id_token_hint:i,login_hint:a,acr_values:g,dpopJkt:x,resource:_,request:t,request_uri:n,extraQueryParams:y,extraTokenParams:b,request_type:r,response_mode:v,client_secret:this.settings.client_secret,skipUserInfo:o,nonce:s,disablePKCE:this.settings.disablePKCE,omitScopeWhenRequesting:S});await this.clearStaleState();let E=T.state;return await this.settings.stateStore.set(E.id,E.toStorageString()),T}async readSigninResponseState(e,t=!1){let n=this._logger.create(`readSigninResponseState`),r=new Zc(Dc.readParams(e,this.settings.response_mode));if(!r.state)throw n.throw(Error(`No state in response`)),null;let i=await this.settings.stateStore[t?`remove`:`get`](r.state);if(!i)throw n.throw(Error(`No matching state found in storage`)),null;return{state:await qc.fromStorageString(i),response:r}}async processSigninResponse(e,t,n=!0){let r=this._logger.create(`processSigninResponse`),{state:i,response:a}=await this.readSigninResponseState(e,n);if(r.debug(`received state from storage; validating response`),this.settings.dpop&&this.settings.dpop.store){let e=await this.getDpopProof(this.settings.dpop.store);t={...t,DPoP:e}}try{await this._validator.validateSigninResponse(a,i,t)}catch(e){if(e instanceof Pc&&this.settings.dpop){let n=await this.getDpopProof(this.settings.dpop.store,e.nonce);t.DPoP=n,await this._validator.validateSigninResponse(a,i,t)}else throw e}return a}async getDpopProof(e,t){let n,r;return(await e.getAllKeys()).includes(this.settings.client_id)?(r=await e.get(this.settings.client_id),r.nonce!==t&&t&&(r.nonce=t,await e.set(this.settings.client_id,r))):(n=await Cc.generateDPoPKeys(),r=new rl(n,t),await e.set(this.settings.client_id,r)),await Cc.generateDPoPProof({url:await this.metadataService.getTokenEndpoint(!1),httpMethod:`POST`,keyPair:r.keys,nonce:r.nonce})}async processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n=!1,extraTokenParams:r={}}){let i=await this._tokenClient.exchangeCredentials({username:e,password:t,...r}),a=new Zc(new URLSearchParams);return Object.assign(a,i),await this._validator.validateCredentialsResponse(a,n),a}async useRefreshToken({state:e,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,extraTokenParams:a}){let o=this._logger.create(`useRefreshToken`),s;if(this.settings.refreshTokenAllowedScope===void 0)s=e.scope;else{let t=this.settings.refreshTokenAllowedScope.split(` `);s=(e.scope?.split(` `)||[]).filter(e=>t.includes(e)).join(` `)}if(this.settings.dpop&&this.settings.dpop.store){let e=await this.getDpopProof(this.settings.dpop.store);i={...i,DPoP:e}}let c;try{c=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:s,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,...a})}catch(o){if(o instanceof Pc&&this.settings.dpop)i.DPoP=await this.getDpopProof(this.settings.dpop.store,o.nonce),c=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:s,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,...a});else throw o}let l=new Zc(new URLSearchParams);return Object.assign(l,c),o.debug(`validating response`,l),await this._validator.validateRefreshResponse(l,{...e,scope:s}),l}async createSignoutRequest({state:e,id_token_hint:t,client_id:n,request_type:r,url_state:i,post_logout_redirect_uri:a=this.settings.post_logout_redirect_uri,extraQueryParams:o=this.settings.extraQueryParams}={}){let s=this._logger.create(`createSignoutRequest`),c=await this.metadataService.getEndSessionEndpoint();if(!c)throw s.throw(Error(`No end session endpoint`)),null;s.debug(`Received end session endpoint`,c),!n&&a&&!t&&(n=this.settings.client_id);let l=new Qc({url:c,id_token_hint:t,client_id:n,post_logout_redirect_uri:a,state_data:e,extraQueryParams:o,request_type:r,url_state:i});await this.clearStaleState();let u=l.state;return u&&(s.debug(`Signout request has state to persist`),await this.settings.stateStore.set(u.id,u.toStorageString())),l}async readSignoutResponseState(e,t=!1){let n=this._logger.create(`readSignoutResponseState`),r=new $c(Dc.readParams(e,this.settings.response_mode));if(!r.state){if(n.debug(`No state in response`),r.error)throw n.warn(`Response was error:`,r.error),new kc(r);return{state:void 0,response:r}}let i=await this.settings.stateStore[t?`remove`:`get`](r.state);if(!i)throw n.throw(Error(`No matching state found in storage`)),null;return{state:await Kc.fromStorageString(i),response:r}}async processSignoutResponse(e){let t=this._logger.create(`processSignoutResponse`),{state:n,response:r}=await this.readSignoutResponseState(e,!0);return n?(t.debug(`Received state from storage; validating response`),this._validator.validateSignoutResponse(r,n)):t.debug(`No state from storage; skipping response validation`),r}clearStaleState(){return this._logger.create(`clearStaleState`),Kc.clearStaleState(this.settings.stateStore,this.settings.staleStateAgeInSeconds)}async revokeToken(e,t){return this._logger.create(`revokeToken`),await this._tokenClient.revoke({token:e,token_type_hint:t})}},al=class{constructor(e){this._userManager=e,this._logger=new vc(`SessionMonitor`),this._start=async e=>{let t=e.session_state;if(!t)return;let n=this._logger.create(`_start`);if(e.profile?(this._sub=e.profile.sub,n.debug(`session_state`,t,`, sub`,this._sub)):(this._sub=void 0,n.debug(`session_state`,t,`, anonymous user`)),this._checkSessionIFrame){this._checkSessionIFrame.start(t);return}try{let e=await this._userManager.metadataService.getCheckSessionIframe();if(e){n.debug(`initializing check session iframe`);let r=this._userManager.settings.client_id,i=this._userManager.settings.checkSessionIntervalInSeconds,a=this._userManager.settings.stopCheckSessionOnError,o=new Mc(this._callback,r,e,i,a);await o.load(),this._checkSessionIFrame=o,o.start(t)}else n.warn(`no check session iframe found in the metadata`)}catch(e){n.error(`Error from getCheckSessionIframe:`,e instanceof Error?e.message:e)}},this._stop=()=>{let e=this._logger.create(`_stop`);if(this._sub=void 0,this._checkSessionIFrame&&this._checkSessionIFrame.stop(),this._userManager.settings.monitorAnonymousSession){let t=setInterval(async()=>{clearInterval(t);try{let e=await this._userManager.querySessionStatus();if(e){let t={session_state:e.session_state,profile:e.sub?{sub:e.sub}:null};this._start(t)}}catch(t){e.error(`error from querySessionStatus`,t instanceof Error?t.message:t)}},1e3)}},this._callback=async()=>{let e=this._logger.create(`_callback`);try{let t=await this._userManager.querySessionStatus(),n=!0;t&&this._checkSessionIFrame?t.sub===this._sub?(n=!1,this._checkSessionIFrame.start(t.session_state),e.debug(`same sub still logged in at OP, session state has changed, restarting check session iframe; session_state`,t.session_state),await this._userManager.events._raiseUserSessionChanged()):e.debug(`different subject signed into OP`,t.sub):e.debug(`subject no longer signed into OP`),n?this._sub?await this._userManager.events._raiseUserSignedOut():await this._userManager.events._raiseUserSignedIn():e.debug(`no change in session detected, no event to raise`)}catch(t){this._sub&&(e.debug(`Error calling queryCurrentSigninSession; raising signed out event`,t),await this._userManager.events._raiseUserSignedOut())}},e||this._logger.throw(Error(`No user manager passed`)),this._userManager.events.addUserLoaded(this._start),this._userManager.events.addUserUnloaded(this._stop),this._init().catch(e=>{this._logger.error(e)})}async _init(){this._logger.create(`_init`);let e=await this._userManager.getUser();if(e)this._start(e);else if(this._userManager.settings.monitorAnonymousSession){let e=await this._userManager.querySessionStatus();if(e){let t={session_state:e.session_state,profile:e.sub?{sub:e.sub}:null};this._start(t)}}}},ol=class e{constructor(e){this.id_token=e.id_token,this.session_state=e.session_state??null,this.access_token=e.access_token,this.refresh_token=e.refresh_token,this.token_type=e.token_type,this.scope=e.scope,this.profile=e.profile,this.expires_at=e.expires_at,this.state=e.userState,this.url_state=e.url_state}get expires_in(){if(this.expires_at!==void 0)return this.expires_at-Ec.getEpochTime()}set expires_in(e){e!==void 0&&(this.expires_at=Math.floor(e)+Ec.getEpochTime())}get expired(){let e=this.expires_in;if(e!==void 0)return e<=0}get scopes(){return this.scope?.split(` `)??[]}toStorageString(){return new vc(`User`).create(`toStorageString`),JSON.stringify({id_token:this.id_token,session_state:this.session_state,access_token:this.access_token,refresh_token:this.refresh_token,token_type:this.token_type,scope:this.scope,profile:this.profile,expires_at:this.expires_at})}static fromStorageString(t){return vc.createStatic(`User`,`fromStorageString`),new e(JSON.parse(t))}},sl=`oidc-client`,cl=class{constructor(){this._abort=new wc(`Window navigation aborted`),this._disposeHandlers=new Set,this._window=null}async navigate(e){let t=this._logger.create(`navigate`);if(!this._window)throw Error(`Attempted to navigate on a disposed window`);t.debug(`setting URL in window`),this._window.location.replace(e.url);let{url:n,keepOpen:r}=await new Promise((n,r)=>{let i=i=>{let a=i.data,o=e.scriptOrigin??window.location.origin;if(i.origin===o&&a?.source===sl){try{let n=Dc.readParams(a.url,e.response_mode).get(`state`);if(n||t.warn(`no state found in response url`),i.source!==this._window&&n!==e.state)return}catch{this._dispose(),r(Error(`Invalid response from window`))}n(a)}};window.addEventListener(`message`,i,!1),this._disposeHandlers.add(()=>window.removeEventListener(`message`,i,!1));let a=new BroadcastChannel(`oidc-client-popup-${e.state}`);a.addEventListener(`message`,i,!1),this._disposeHandlers.add(()=>a.close()),this._disposeHandlers.add(this._abort.addHandler(e=>{this._dispose(),r(e)}))});return t.debug(`got response from window`),this._dispose(),r||this.close(),{url:n}}_dispose(){this._logger.create(`_dispose`);for(let e of this._disposeHandlers)e();this._disposeHandlers.clear()}static _notifyParent(e,t,n=!1,r=window.location.origin){let i={source:sl,url:t,keepOpen:n},a=new vc(`_notifyParent`);if(e)a.debug(`With parent. Using parent.postMessage.`),e.postMessage(i,r);else{a.debug(`No parent. Using BroadcastChannel.`);let e=new URL(t).searchParams.get(`state`);if(!e)throw Error(`No parent and no state in URL. Can't complete notification.`);let n=new BroadcastChannel(`oidc-client-popup-${e}`);n.postMessage(i),n.close()}}},ll={location:!1,toolbar:!1,height:640,closePopupWindowAfterInSeconds:-1},ul=`_blank`,dl=60,fl=2,pl=10,ml=class extends Hc{constructor(e){let{popup_redirect_uri:t=e.redirect_uri,popup_post_logout_redirect_uri:n=e.post_logout_redirect_uri,popupWindowFeatures:r=ll,popupWindowTarget:i=ul,redirectMethod:a=`assign`,redirectTarget:o=`self`,iframeNotifyParentOrigin:s=e.iframeNotifyParentOrigin,iframeScriptOrigin:c=e.iframeScriptOrigin,requestTimeoutInSeconds:l,silent_redirect_uri:u=e.redirect_uri,silentRequestTimeoutInSeconds:d,automaticSilentRenew:f=!0,validateSubOnSilentRenew:p=!0,includeIdTokenInSilentRenew:m=!1,monitorSession:h=!1,monitorAnonymousSession:g=!1,checkSessionIntervalInSeconds:_=fl,query_status_response_type:v=`code`,stopCheckSessionOnError:y=!0,revokeTokenTypes:b=[`access_token`,`refresh_token`],revokeTokensOnSignout:x=!1,includeIdTokenInSilentSignout:S=!1,accessTokenExpiringNotificationTimeInSeconds:C=dl,userStore:w}=e;if(super(e),this.popup_redirect_uri=t,this.popup_post_logout_redirect_uri=n,this.popupWindowFeatures=r,this.popupWindowTarget=i,this.redirectMethod=a,this.redirectTarget=o,this.iframeNotifyParentOrigin=s,this.iframeScriptOrigin=c,this.silent_redirect_uri=u,this.silentRequestTimeoutInSeconds=d||l||pl,this.automaticSilentRenew=f,this.validateSubOnSilentRenew=p,this.includeIdTokenInSilentRenew=m,this.monitorSession=h,this.monitorAnonymousSession=g,this.checkSessionIntervalInSeconds=_,this.stopCheckSessionOnError=y,this.query_status_response_type=v,this.revokeTokenTypes=b,this.revokeTokensOnSignout=x,this.includeIdTokenInSilentSignout=S,this.accessTokenExpiringNotificationTimeInSeconds=C,w)this.userStore=w;else{let e=typeof window<`u`?window.sessionStorage:new Nc;this.userStore=new Lc({store:e})}}},hl=class e extends cl{constructor({silentRequestTimeoutInSeconds:t=pl}){super(),this._logger=new vc(`IFrameWindow`),this._timeoutInSeconds=t,this._frame=e.createHiddenIframe(),this._window=this._frame.contentWindow}static createHiddenIframe(){let e=window.document.createElement(`iframe`);return e.style.visibility=`hidden`,e.style.position=`fixed`,e.style.left=`-1000px`,e.style.top=`0`,e.width=`0`,e.height=`0`,window.document.body.appendChild(e),e}async navigate(e){this._logger.debug(`navigate: Using timeout of:`,this._timeoutInSeconds);let t=setTimeout(()=>void this._abort.raise(new Ac(`IFrame timed out without a response`)),this._timeoutInSeconds*1e3);return this._disposeHandlers.add(()=>clearTimeout(t)),await super.navigate(e)}close(){var e;this._frame&&=(this._frame.parentNode&&(this._frame.addEventListener(`load`,e=>{var t;let n=e.target;(t=n.parentNode)==null||t.removeChild(n),this._abort.raise(Error(`IFrame removed from DOM`))},!0),(e=this._frame.contentWindow)==null||e.location.replace(`about:blank`)),null),this._window=null}static notifyParent(e,t){return super._notifyParent(window.parent,e,!1,t)}},gl=class{constructor(e){this._settings=e,this._logger=new vc(`IFrameNavigator`)}async prepare({silentRequestTimeoutInSeconds:e=this._settings.silentRequestTimeoutInSeconds}){return new hl({silentRequestTimeoutInSeconds:e})}async callback(e){this._logger.create(`callback`),hl.notifyParent(e,this._settings.iframeNotifyParentOrigin)}},_l=500,vl=1e3,yl=class extends cl{constructor({popupWindowTarget:e=ul,popupWindowFeatures:t={},popupSignal:n,popupAbortOnClose:r}){super(),this._logger=new vc(`PopupWindow`);let i=Tc.center({...ll,...t});this._window=window.open(void 0,e,Tc.serialize(i)),this.abortOnClose=!!r,n&&n.addEventListener(`abort`,()=>{this._abort.raise(Error(n.reason??`Popup aborted`))}),t.closePopupWindowAfterInSeconds&&t.closePopupWindowAfterInSeconds>0&&setTimeout(()=>{if(!this._window||typeof this._window.closed!=`boolean`||this._window.closed){this._abort.raise(Error(`Popup blocked by user`));return}this.close()},t.closePopupWindowAfterInSeconds*vl)}async navigate(e){var t;(t=this._window)==null||t.focus();let n=setInterval(()=>{(!this._window||this._window.closed)&&(this._logger.debug(`Popup closed by user or isolated by redirect`),r(),this._disposeHandlers.delete(r),this.abortOnClose&&this._abort.raise(Error(`Popup closed by user`)))},_l),r=()=>clearInterval(n);return this._disposeHandlers.add(r),await super.navigate(e)}close(){this._window&&(this._window.closed||(this._window.close(),this._abort.raise(Error(`Popup closed`)))),this._window=null}static notifyOpener(e,t){super._notifyParent(window.opener,e,t),!t&&!window.opener&&window.close()}},bl=class{constructor(e){this._settings=e,this._logger=new vc(`PopupNavigator`)}async prepare({popupWindowFeatures:e=this._settings.popupWindowFeatures,popupWindowTarget:t=this._settings.popupWindowTarget,popupSignal:n,popupAbortOnClose:r}){return new yl({popupWindowFeatures:e,popupWindowTarget:t,popupSignal:n,popupAbortOnClose:r})}async callback(e,{keepOpen:t=!1}){this._logger.create(`callback`),yl.notifyOpener(e,t)}},xl=class{constructor(e){this._settings=e,this._logger=new vc(`RedirectNavigator`)}async prepare({redirectMethod:e=this._settings.redirectMethod,redirectTarget:t=this._settings.redirectTarget}){this._logger.create(`prepare`);let n=window.self;t===`top`&&(n=window.top??window.self);let r=n.location[e].bind(n.location),i;return{navigate:async e=>(this._logger.create(`navigate`),await new Promise((t,n)=>{i=n,window.addEventListener(`pageshow`,()=>t(window.location.href)),r(e.url)})),close:()=>{this._logger.create(`close`),i?.(Error(`Redirect aborted`)),n.stop()}}}async callback(){}},Sl=class extends jc{constructor(e){super({expiringNotificationTimeInSeconds:e.accessTokenExpiringNotificationTimeInSeconds}),this._logger=new vc(`UserManagerEvents`),this._userLoaded=new wc(`User loaded`),this._userUnloaded=new wc(`User unloaded`),this._silentRenewError=new wc(`Silent renew error`),this._userSignedIn=new wc(`User signed in`),this._userSignedOut=new wc(`User signed out`),this._userSessionChanged=new wc(`User session changed`)}async load(e,t=!0){await super.load(e),t&&await this._userLoaded.raise(e)}async unload(){await super.unload(),await this._userUnloaded.raise()}addUserLoaded(e){return this._userLoaded.addHandler(e)}removeUserLoaded(e){return this._userLoaded.removeHandler(e)}addUserUnloaded(e){return this._userUnloaded.addHandler(e)}removeUserUnloaded(e){return this._userUnloaded.removeHandler(e)}addSilentRenewError(e){return this._silentRenewError.addHandler(e)}removeSilentRenewError(e){return this._silentRenewError.removeHandler(e)}async _raiseSilentRenewError(e){await this._silentRenewError.raise(e)}addUserSignedIn(e){return this._userSignedIn.addHandler(e)}removeUserSignedIn(e){this._userSignedIn.removeHandler(e)}async _raiseUserSignedIn(){await this._userSignedIn.raise()}addUserSignedOut(e){return this._userSignedOut.addHandler(e)}removeUserSignedOut(e){this._userSignedOut.removeHandler(e)}async _raiseUserSignedOut(){await this._userSignedOut.raise()}addUserSessionChanged(e){return this._userSessionChanged.addHandler(e)}removeUserSessionChanged(e){this._userSessionChanged.removeHandler(e)}async _raiseUserSessionChanged(){await this._userSessionChanged.raise()}},Cl=class{constructor(e){this._userManager=e,this._logger=new vc(`SilentRenewService`),this._isStarted=!1,this._retryTimer=new Ec(`Retry Silent Renew`),this._tokenExpiring=async()=>{let e=this._logger.create(`_tokenExpiring`);try{await this._userManager.signinSilent(),e.debug(`silent token renewal successful`)}catch(t){if(t instanceof Ac){e.warn(`ErrorTimeout from signinSilent:`,t,`retry in 5s`),this._retryTimer.init(5);return}e.error(`Error from signinSilent:`,t),await this._userManager.events._raiseSilentRenewError(t)}}}async start(){let e=this._logger.create(`start`);if(!this._isStarted){this._isStarted=!0,this._userManager.events.addAccessTokenExpiring(this._tokenExpiring),this._retryTimer.addHandler(this._tokenExpiring);try{await this._userManager.getUser()}catch(t){e.error(`getUser error`,t)}}}stop(){this._isStarted&&=(this._retryTimer.cancel(),this._retryTimer.removeHandler(this._tokenExpiring),this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring),!1)}},wl=class{constructor(e){this.refresh_token=e.refresh_token,this.id_token=e.id_token,this.session_state=e.session_state,this.scope=e.scope,this.profile=e.profile,this.data=e.state}},Tl=class{constructor(e,t,n,r){this._logger=new vc(`UserManager`),this.settings=new ml(e),this._client=new il(e),this._redirectNavigator=t??new xl(this.settings),this._popupNavigator=n??new bl(this.settings),this._iframeNavigator=r??new gl(this.settings),this._events=new Sl(this.settings),this._silentRenewService=new Cl(this),this.settings.automaticSilentRenew&&this.startSilentRenew(),this._sessionMonitor=null,this.settings.monitorSession&&(this._sessionMonitor=new al(this))}get events(){return this._events}get metadataService(){return this._client.metadataService}async getUser(e=!1){let t=this._logger.create(`getUser`),n=await this._loadUser();return n?(t.info(`user loaded`),await this._events.load(n,e),n):(t.info(`user not found in storage`),null)}async removeUser(){let e=this._logger.create(`removeUser`);await this.storeUser(null),e.info(`user removed from storage`),await this._events.unload()}async signinRedirect(e={}){this._logger.create(`signinRedirect`);let{redirectMethod:t,...n}=e,r;this.settings.dpop?.bind_authorization_code&&(r=await this.generateDPoPJkt(this.settings.dpop));let i=await this._redirectNavigator.prepare({redirectMethod:t});await this._signinStart({request_type:`si:r`,dpopJkt:r,...n},i)}async signinRedirectCallback(e=window.location.href){let t=this._logger.create(`signinRedirectCallback`),n=await this._signinEnd(e);return n.profile&&n.profile.sub?t.info(`success, signed in subject`,n.profile.sub):t.info(`no subject`),n}async signinResourceOwnerCredentials({username:e,password:t,skipUserInfo:n=!1}){let r=this._logger.create(`signinResourceOwnerCredential`),i=await this._client.processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n,extraTokenParams:this.settings.extraTokenParams});r.debug(`got signin response`);let a=await this._buildUser(i);return a.profile&&a.profile.sub?r.info(`success, signed in subject`,a.profile.sub):r.info(`no subject`),a}async signinPopup(e={}){let t=this._logger.create(`signinPopup`),n;this.settings.dpop?.bind_authorization_code&&(n=await this.generateDPoPJkt(this.settings.dpop));let{popupWindowFeatures:r,popupWindowTarget:i,popupSignal:a,popupAbortOnClose:o,...s}=e,c=this.settings.popup_redirect_uri;c||t.throw(Error(`No popup_redirect_uri configured`));let l=await this._popupNavigator.prepare({popupWindowFeatures:r,popupWindowTarget:i,popupSignal:a,popupAbortOnClose:o}),u=await this._signin({request_type:`si:p`,redirect_uri:c,display:`popup`,dpopJkt:n,...s},l);return u&&(u.profile&&u.profile.sub?t.info(`success, signed in subject`,u.profile.sub):t.info(`no subject`)),u}async signinPopupCallback(e=window.location.href,t=!1){let n=this._logger.create(`signinPopupCallback`);await this._popupNavigator.callback(e,{keepOpen:t}),n.info(`success`)}async signinSilent(e={}){let t=this._logger.create(`signinSilent`),{silentRequestTimeoutInSeconds:n,...r}=e,i=await this._loadUser();if(!e.forceIframeAuth&&i?.refresh_token){t.debug(`using refresh token`);let e=new wl(i);return await this._useRefreshToken({state:e,redirect_uri:r.redirect_uri,resource:r.resource,extraTokenParams:r.extraTokenParams,timeoutInSeconds:n})}let a;this.settings.dpop?.bind_authorization_code&&(a=await this.generateDPoPJkt(this.settings.dpop));let o=this.settings.silent_redirect_uri;o||t.throw(Error(`No silent_redirect_uri configured`));let s;i&&this.settings.validateSubOnSilentRenew&&(t.debug(`subject prior to silent renew:`,i.profile.sub),s=i.profile.sub);let c=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n});return i=await this._signin({request_type:`si:s`,redirect_uri:o,prompt:`none`,id_token_hint:this.settings.includeIdTokenInSilentRenew?i?.id_token:void 0,dpopJkt:a,...r},c,s),i&&(i.profile?.sub?t.info(`success, signed in subject`,i.profile.sub):t.info(`no subject`)),i}async _useRefreshToken(e){let t=await this._client.useRefreshToken({timeoutInSeconds:this.settings.silentRequestTimeoutInSeconds,...e}),n=new ol({...e.state,...t});return await this.storeUser(n),await this._events.load(n),n}async signinSilentCallback(e=window.location.href){let t=this._logger.create(`signinSilentCallback`);await this._iframeNavigator.callback(e),t.info(`success`)}async signinCallback(e=window.location.href){let{state:t}=await this._client.readSigninResponseState(e);switch(t.request_type){case`si:r`:return await this.signinRedirectCallback(e);case`si:p`:await this.signinPopupCallback(e);break;case`si:s`:await this.signinSilentCallback(e);break;default:throw Error(`invalid response_type in state`)}}async signoutCallback(e=window.location.href,t=!1){let{state:n}=await this._client.readSignoutResponseState(e);if(n)switch(n.request_type){case`so:r`:return await this.signoutRedirectCallback(e);case`so:p`:await this.signoutPopupCallback(e,t);break;case`so:s`:await this.signoutSilentCallback(e);break;default:throw Error(`invalid response_type in state`)}}async querySessionStatus(e={}){let t=this._logger.create(`querySessionStatus`),{silentRequestTimeoutInSeconds:n,...r}=e,i=this.settings.silent_redirect_uri;i||t.throw(Error(`No silent_redirect_uri configured`));let a=await this._loadUser(),o=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n}),s=await this._signinStart({request_type:`si:s`,redirect_uri:i,prompt:`none`,id_token_hint:this.settings.includeIdTokenInSilentRenew?a?.id_token:void 0,response_type:this.settings.query_status_response_type,scope:`openid`,skipUserInfo:!0,...r},o);try{let e=await this._client.processSigninResponse(s.url,{});return t.debug(`got signin response`),e.session_state&&e.profile.sub?(t.info(`success for subject`,e.profile.sub),{session_state:e.session_state,sub:e.profile.sub}):(t.info(`success, user not authenticated`),null)}catch(e){if(this.settings.monitorAnonymousSession&&e instanceof kc)switch(e.error){case`login_required`:case`consent_required`:case`interaction_required`:case`account_selection_required`:return t.info(`success for anonymous user`),{session_state:e.session_state}}throw e}}async _signin(e,t,n){let r=await this._signinStart(e,t);return await this._signinEnd(r.url,n)}async _signinStart(e,t){let n=this._logger.create(`_signinStart`);try{let r=await this._client.createSigninRequest(e);return n.debug(`got signin request`),await t.navigate({url:r.url,state:r.state.id,response_mode:r.state.response_mode,scriptOrigin:this.settings.iframeScriptOrigin})}catch(e){throw n.debug(`error after preparing navigator, closing navigator window`),t.close(),e}}async _signinEnd(e,t){let n=this._logger.create(`_signinEnd`),r=await this._client.processSigninResponse(e,{});return n.debug(`got signin response`),await this._buildUser(r,t)}async _buildUser(e,t){let n=this._logger.create(`_buildUser`),r=new ol(e);if(t){if(t!==r.profile.sub)throw n.debug(`current user does not match user returned from signin. sub from signin:`,r.profile.sub),new kc({...e,error:`login_required`});n.debug(`current user matches user returned from signin`)}return await this.storeUser(r),n.debug(`user stored`),await this._events.load(r),r}async signoutRedirect(e={}){let t=this._logger.create(`signoutRedirect`),{redirectMethod:n,...r}=e,i=await this._redirectNavigator.prepare({redirectMethod:n});await this._signoutStart({request_type:`so:r`,post_logout_redirect_uri:this.settings.post_logout_redirect_uri,...r},i),t.info(`success`)}async signoutRedirectCallback(e=window.location.href){let t=this._logger.create(`signoutRedirectCallback`),n=await this._signoutEnd(e);return t.info(`success`),n}async signoutPopup(e={}){let t=this._logger.create(`signoutPopup`),{popupWindowFeatures:n,popupWindowTarget:r,popupSignal:i,...a}=e,o=this.settings.popup_post_logout_redirect_uri,s=await this._popupNavigator.prepare({popupWindowFeatures:n,popupWindowTarget:r,popupSignal:i});await this._signout({request_type:`so:p`,post_logout_redirect_uri:o,state:o==null?void 0:{},...a},s),t.info(`success`)}async signoutPopupCallback(e=window.location.href,t=!1){let n=this._logger.create(`signoutPopupCallback`);await this._popupNavigator.callback(e,{keepOpen:t}),n.info(`success`)}async _signout(e,t){let n=await this._signoutStart(e,t);return await this._signoutEnd(n.url)}async _signoutStart(e={},t){let n=this._logger.create(`_signoutStart`);try{let r=await this._loadUser();n.debug(`loaded current user from storage`),this.settings.revokeTokensOnSignout&&await this._revokeInternal(r);let i=e.id_token_hint||r&&r.id_token;i&&(n.debug(`setting id_token_hint in signout request`),e.id_token_hint=i),await this.removeUser(),n.debug(`user removed, creating signout request`);let a=await this._client.createSignoutRequest(e);return n.debug(`got signout request`),await t.navigate({url:a.url,state:a.state?.id,scriptOrigin:this.settings.iframeScriptOrigin})}catch(e){throw n.debug(`error after preparing navigator, closing navigator window`),t.close(),e}}async _signoutEnd(e){let t=this._logger.create(`_signoutEnd`),n=await this._client.processSignoutResponse(e);return t.debug(`got signout response`),n}async signoutSilent(e={}){let t=this._logger.create(`signoutSilent`),{silentRequestTimeoutInSeconds:n,...r}=e,i=this.settings.includeIdTokenInSilentSignout?(await this._loadUser())?.id_token:void 0,a=this.settings.popup_post_logout_redirect_uri,o=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n});await this._signout({request_type:`so:s`,post_logout_redirect_uri:a,id_token_hint:i,...r},o),t.info(`success`)}async signoutSilentCallback(e=window.location.href){let t=this._logger.create(`signoutSilentCallback`);await this._iframeNavigator.callback(e),t.info(`success`)}async revokeTokens(e){let t=await this._loadUser();await this._revokeInternal(t,e)}async _revokeInternal(e,t=this.settings.revokeTokenTypes){let n=this._logger.create(`_revokeInternal`);if(!e)return;let r=t.filter(t=>typeof e[t]==`string`);if(!r.length){n.debug(`no need to revoke due to no token(s)`);return}for(let t of r)await this._client.revokeToken(e[t],t),n.info(`${t} revoked successfully`),t!==`access_token`&&(e[t]=null);await this.storeUser(e),n.debug(`user stored`),await this._events.load(e)}startSilentRenew(){this._logger.create(`startSilentRenew`),this._silentRenewService.start()}stopSilentRenew(){this._silentRenewService.stop()}get _userStoreKey(){return`user:${this.settings.authority}:${this.settings.client_id}`}async _loadUser(){let e=this._logger.create(`_loadUser`),t=await this.settings.userStore.get(this._userStoreKey);return t?(e.debug(`user storageString loaded`),ol.fromStorageString(t)):(e.debug(`no user storageString`),null)}async storeUser(e){let t=this._logger.create(`storeUser`);if(e){t.debug(`storing user`);let n=e.toStorageString();await this.settings.userStore.set(this._userStoreKey,n)}else this._logger.debug(`removing user`),await this.settings.userStore.remove(this._userStoreKey),this.settings.dpop&&await this.settings.dpop.store.remove(this.settings.client_id)}async clearStaleState(){await this._client.clearStaleState()}async dpopProof(e,t,n,r){let i=await(this.settings.dpop?.store)?.get(this.settings.client_id);if(i)return await Cc.generateDPoPProof({url:e,accessToken:t?.access_token,httpMethod:n,keyPair:i.keys,nonce:r})}async generateDPoPJkt(e){let t=await e.store.get(this.settings.client_id);return t||(t=new rl(await Cc.generateDPoPKeys()),await e.store.set(this.settings.client_id,t)),await Cc.generateDPoPJkt(t.keys)}},El=d(c(((e,t)=>{
|
|
18
18
|
/*!
|
|
19
19
|
localForage -- Offline Storage, Improved
|
|
20
20
|
Version 1.10.0
|
|
@@ -847,4 +847,4 @@ var t=e&&e.__classPrivateFieldGet||function(e,t,n,r){if(n===`a`&&!r)throw TypeEr
|
|
|
847
847
|
* @license MIT
|
|
848
848
|
*/
|
|
849
849
|
var NY=d(c(((e,t)=>{(function(){"use strict";var e=`input is invalid type`,n=typeof window==`object`,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&typeof self==`object`;!r.JS_SHA3_NO_NODE_JS&&typeof process==`object`&&process.versions&&process.versions.node?r=global:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&typeof t==`object`&&t.exports,o=typeof define==`function`&&define.amd,s=!r.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};(r.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)===`[object Array]`}),s&&(r.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 ee(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(t){if(this.finalized)throw Error(`finalize already called`);var n,r=typeof t;if(r!==`string`){if(r===`object`){if(t===null)throw Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!s||!ArrayBuffer.isView(t)))throw Error(e)}else throw Error(e);n=!0}for(var i=this.blocks,a=this.byteCount,o=t.length,c=this.blockCount,l=0,u=this.s,d,f;l<o;){if(this.reset)for(this.reset=!1,i[0]=this.block,d=1;d<c+1;++d)i[d]=0;if(n)for(d=this.start;l<o&&d<a;++l)i[d>>2]|=t[l]<<p[d++&3];else for(d=this.start;l<o&&d<a;++l)f=t.charCodeAt(l),f<128?i[d>>2]|=f<<p[d++&3]:f<2048?(i[d>>2]|=(192|f>>6)<<p[d++&3],i[d>>2]|=(128|f&63)<<p[d++&3]):f<55296||f>=57344?(i[d>>2]|=(224|f>>12)<<p[d++&3],i[d>>2]|=(128|f>>6&63)<<p[d++&3],i[d>>2]|=(128|f&63)<<p[d++&3]):(f=65536+((f&1023)<<10|t.charCodeAt(++l)&1023),i[d>>2]|=(240|f>>18)<<p[d++&3],i[d>>2]|=(128|f>>12&63)<<p[d++&3],i[d>>2]|=(128|f>>6&63)<<p[d++&3],i[d>>2]|=(128|f&63)<<p[d++&3]);if(this.lastByteIndex=d,d>=a){for(this.start=d-a,this.block=i[c],d=0;d<c;++d)u[d]^=i[d];te(u),this.reset=!0}else this.start=d}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(t){var n,r=typeof t;if(r!==`string`){if(r===`object`){if(t===null)throw Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!s||!ArrayBuffer.isView(t)))throw Error(e)}else throw Error(e);n=!0}var i=0,a=t.length;if(n)i=a;else for(var o=0;o<t.length;++o){var c=t.charCodeAt(o);c<128?i+=1:c<2048?i+=2:c<55296||c>=57344?i+=3:(c=65536+((c&1023)<<10|t.charCodeAt(++o)&1023),i+=4)}return i+=this.encode(i*8),this.update(t),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];te(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&&(te(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&&te(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&&te(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 ee(e,t,n){P.call(this,e,t,n)}ee.prototype=new P,ee.prototype.finalize=function(){return this.encode(this.outputBits,!0),P.prototype.finalize.call(this)};var te=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,ee,te,ne,F,re,ie,ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe;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],de=e[11]<<4|e[10]>>>28,fe=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,A=e[21]<<3|e[20]>>>29,Te=e[31]<<9|e[30]>>>23,Ee=e[30]<<9|e[31]>>>23,se=e[40]<<18|e[41]>>>14,ce=e[41]<<18|e[40]>>>14,ee=e[2]<<1|e[3]>>>31,te=e[3]<<1|e[2]>>>31,_=e[13]<<12|e[12]>>>20,v=e[12]<<12|e[13]>>>20,pe=e[22]<<10|e[23]>>>22,me=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,De=e[42]<<2|e[43]>>>30,Oe=e[43]<<2|e[42]>>>30,ye=e[5]<<30|e[4]>>>2,be=e[4]<<30|e[5]>>>2,ne=e[14]<<6|e[15]>>>26,F=e[15]<<6|e[14]>>>26,y=e[25]<<11|e[24]>>>21,b=e[24]<<11|e[25]>>>21,he=e[34]<<15|e[35]>>>17,ge=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,xe=e[17]<<23|e[16]>>>9,Se=e[16]<<23|e[17]>>>9,re=e[26]<<25|e[27]>>>7,ie=e[27]<<25|e[26]>>>7,x=e[36]<<21|e[37]>>>11,S=e[37]<<21|e[36]>>>11,_e=e[47]<<24|e[46]>>>8,ve=e[46]<<24|e[47]>>>8,le=e[8]<<27|e[9]>>>5,ue=e[9]<<27|e[8]>>>5,D=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,Ce=e[29]<<7|e[28]>>>25,we=e[28]<<7|e[29]>>>25,ae=e[38]<<8|e[39]>>>24,oe=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]=ee^~ne&re,e[21]=te^~F&ie,e[30]=le^~de&pe,e[31]=ue^~fe&me,e[40]=ye^~xe&Ce,e[41]=be^~Se&we,e[2]=_^~y&x,e[3]=v^~b&S,e[12]=D^~k&j,e[13]=O^~A&M,e[22]=ne^~re&ae,e[23]=F^~ie&oe,e[32]=de^~pe&he,e[33]=fe^~me&ge,e[42]=xe^~Ce&Te,e[43]=Se^~we&Ee,e[4]=y^~x&C,e[5]=b^~S&w,e[14]=k^~j&N,e[15]=A^~M&P,e[24]=re^~ae&se,e[25]=ie^~oe&ce,e[34]=pe^~he&_e,e[35]=me^~ge&ve,e[44]=Ce^~Te&De,e[45]=we^~Ee&Oe,e[6]=x^~C&h,e[7]=S^~w&g,e[16]=j^~N&T,e[17]=M^~P&E,e[26]=ae^~se&ee,e[27]=oe^~ce&te,e[36]=he^~_e&le,e[37]=ge^~ve&ue,e[46]=Te^~De&ye,e[47]=Ee^~Oe&be,e[8]=C^~h&_,e[9]=w^~g&v,e[18]=N^~T&D,e[19]=P^~E&O,e[28]=se^~ee&ne,e[29]=ce^~te&F,e[38]=_e^~le&de,e[39]=ve^~ue&fe,e[48]=De^~ye&xe,e[49]=Oe^~be&Se,e[0]^=m[r],e[1]^=m[r+1]};if(a)t.exports=E;else{for(O=0;O<D.length;++O)r[D[O]]=E[D[O]];o&&define(function(){return E})}})()}))());function PY(e){return`0x`+NY.default.keccak_256(pY(e))}let FY=new sY(`address/5.7.0`);function IY(e){gY(e,20)||FY.throwArgumentError(`invalid address`,`address`,e),e=e.toLowerCase();let t=e.substring(2).split(``),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);let r=pY(PY(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(r[e>>1]&15)>=8&&(t[e+1]=t[e+1].toUpperCase());return`0x`+t.join(``)}function LY(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}let RY={};for(let e=0;e<10;e++)RY[String(e)]=String(e);for(let e=0;e<26;e++)RY[String.fromCharCode(65+e)]=String(10+e);let zY=Math.floor(LY(9007199254740991));function BY(e){e=e.toUpperCase(),e=e.substring(4)+e.substring(0,2)+`00`;let t=e.split(``).map(e=>RY[e]).join(``);for(;t.length>=zY;){let e=t.substring(0,zY);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n=`0`+n;return n}function VY(e){let t=null;if(typeof e!=`string`&&FY.throwArgumentError(`invalid address`,`address`,e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))e.substring(0,2)!==`0x`&&(e=`0x`+e),t=IY(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&FY.throwArgumentError(`bad address checksum`,`address`,e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==BY(e)&&FY.throwArgumentError(`bad icap checksum`,`address`,e),t=MY(e.substring(4));t.length<40;)t=`0`+t;t=IY(`0x`+t)}else FY.throwArgumentError(`invalid address`,`address`,e);return t}function HY(e,t,n){return yY(t)!==32&&FY.throwArgumentError(`salt must be 32 bytes`,`salt`,t),yY(n)!==32&&FY.throwArgumentError(`initCodeHash must be 32 bytes`,`initCodeHash`,n),VY(bY(PY(mY([`0xff`,VY(e),t,n])),12))}var UY;(function(e){e[e.MAINNET=1]=`MAINNET`,e[e.GOERLI=5]=`GOERLI`,e[e.SEPOLIA=11155111]=`SEPOLIA`,e[e.ARBITRUM_ONE=42161]=`ARBITRUM_ONE`,e[e.ARBITRUM_GOERLI=421613]=`ARBITRUM_GOERLI`,e[e.OPTIMISM=10]=`OPTIMISM`,e[e.OPTIMISM_GOERLI=420]=`OPTIMISM_GOERLI`,e[e.POLYGON=137]=`POLYGON`,e[e.POLYGON_MUMBAI=80001]=`POLYGON_MUMBAI`,e[e.CELO=42220]=`CELO`,e[e.CELO_ALFAJORES=44787]=`CELO_ALFAJORES`,e[e.BNB=56]=`BNB`})(UY||={});var WY;(function(e){e[e.EXACT_INPUT=0]=`EXACT_INPUT`,e[e.EXACT_OUTPUT=1]=`EXACT_OUTPUT`})(WY||={});var GY;(function(e){e[e.ROUND_DOWN=0]=`ROUND_DOWN`,e[e.ROUND_HALF_UP=1]=`ROUND_HALF_UP`,e[e.ROUND_UP=2]=`ROUND_UP`})(GY||={});var KY=Z.default.BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`);function qY(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function JY(e,t,n){return t&&qY(e.prototype,t),n&&qY(e,n),e}function YY(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var XY,ZY,QY=(0,XJ.default)(JJ.default),$Y=(0,XJ.default)(YJ.default),eX=(XY={},XY[GY.ROUND_DOWN]=QY.ROUND_DOWN,XY[GY.ROUND_HALF_UP]=QY.ROUND_HALF_UP,XY[GY.ROUND_UP]=QY.ROUND_UP,XY),tX=(ZY={},ZY[GY.ROUND_DOWN]=0,ZY[GY.ROUND_HALF_UP]=1,ZY[GY.ROUND_UP]=3,ZY),nX=function(){function e(e,t){t===void 0&&(t=Z.default.BigInt(1)),this.numerator=Z.default.BigInt(e),this.denominator=Z.default.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof Z.default||typeof t==`number`||typeof t==`string`)return new e(t);if(`numerator`in t&&`denominator`in t)return t;throw Error(`Could not parse fraction`)};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return Z.default.equal(this.denominator,n.denominator)?new e(Z.default.add(this.numerator,n.numerator),this.denominator):new e(Z.default.add(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator)),Z.default.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return Z.default.equal(this.denominator,n.denominator)?new e(Z.default.subtract(this.numerator,n.numerator),this.denominator):new e(Z.default.subtract(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator)),Z.default.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return Z.default.lessThan(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return Z.default.equal(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return Z.default.greaterThan(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(Z.default.multiply(this.numerator,n.numerator),Z.default.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){t===void 0&&(t={groupSeparator:``}),n===void 0&&(n=GY.ROUND_HALF_UP),!Number.isInteger(e)&&Q(!1),!(e>0)&&Q(!1),QY.set({precision:e+1,rounding:eX[n]});var r=new QY(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return t===void 0&&(t={groupSeparator:``}),n===void 0&&(n=GY.ROUND_HALF_UP),!Number.isInteger(e)&&Q(!1),!(e>=0)&&Q(!1),$Y.DP=e,$Y.RM=tX[n],new $Y(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},JY(e,[{key:`quotient`,get:function(){return Z.default.divide(this.numerator,this.denominator)}},{key:`remainder`,get:function(){return new e(Z.default.remainder(this.numerator,this.denominator),this.denominator)}},{key:`asFraction`,get:function(){return new e(this.numerator,this.denominator)}}]),e}(),rX=(0,XJ.default)(YJ.default),iX=function(e){YY(t,e);function t(t,n,r){var i=e.call(this,n,r)||this;return!Z.default.lessThanOrEqual(i.quotient,KY)&&Q(!1),i.currency=t,i.decimalScale=Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(t.decimals)),i}t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){!this.currency.equals(n.currency)&&Q(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){!this.currency.equals(n.currency)&&Q(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return t===void 0&&(t=6),r===void 0&&(r=GY.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return t===void 0&&(t=this.currency.decimals),r===void 0&&(r=GY.ROUND_DOWN),!(t<=this.currency.decimals)&&Q(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return e===void 0&&(e={groupSeparator:``}),rX.DP=this.currency.decimals,new rX(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},JY(t,[{key:`wrapped`,get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(nX),aX=new nX(Z.default.BigInt(100));function oX(e){return new sX(e.numerator,e.denominator)}var sX=function(e){YY(t,e);function t(){var t=e.apply(this,arguments)||this;return t.isPercent=!0,t}var n=t.prototype;return n.add=function(t){return oX(e.prototype.add.call(this,t))},n.subtract=function(t){return oX(e.prototype.subtract.call(this,t))},n.multiply=function(t){return oX(e.prototype.multiply.call(this,t))},n.divide=function(t){return oX(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return t===void 0&&(t=5),e.prototype.multiply.call(this,aX).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return t===void 0&&(t=2),e.prototype.multiply.call(this,aX).toFixed(t,n,r)},t}(nX),cX=function(e){YY(t,e);function t(){for(var t,n,r,i,a,o=arguments.length,s=Array(o),c=0;c<o;c++)s[c]=arguments[c];if(s.length===4)n=s[0],r=s[1],i=s[2],a=s[3];else{var l=s[0].quoteAmount.divide(s[0].baseAmount),u=[s[0].baseAmount.currency,s[0].quoteAmount.currency,l.denominator,l.numerator];n=u[0],r=u[1],i=u[2],a=u[3]}return t=e.call(this,a,i)||this,t.baseCurrency=n,t.quoteCurrency=r,t.scalar=new nX(Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(n.decimals)),Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(r.decimals))),t}var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){!this.quoteCurrency.equals(n.baseCurrency)&&Q(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){!t.currency.equals(this.baseCurrency)&&Q(!1);var n=e.prototype.multiply.call(this,t);return iX.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return e===void 0&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return e===void 0&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},JY(t,[{key:`adjustedForDecimals`,get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(nX),lX=function(e,t,n,r){!Number.isSafeInteger(e)&&Q(!1),!(t>=0&&t<255&&Number.isInteger(t))&&Q(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r},uX=function(e){YY(t,e);function t(){var t=e.apply(this,arguments)||this;return t.isNative=!0,t.isToken=!1,t}return t}(lX);function dX(e){try{return VY(e)}catch{throw Error(e+` is not a valid address.`)}}var fX=/^0x[0-9a-fA-F]{40}$/;function pX(e){if(fX.test(e))return e;throw Error(e+` is not a valid address.`)}var mX=function(e){YY(t,e);function t(t,n,r,i,a,o){var s=e.call(this,t,r,i,a)||this;return s.isNative=!1,s.isToken=!0,o?s.address=pX(n):s.address=dX(n),s}var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&Q(!1),this.address.toLowerCase()===e.address.toLowerCase()&&Q(!1),this.address.toLowerCase()<e.address.toLowerCase()},JY(t,[{key:`wrapped`,get:function(){return this}}]),t}(lX),hX,gX=(hX={},hX[1]=new mX(1,`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,18,`WETH`,`Wrapped Ether`),hX[3]=new mX(3,`0xc778417E063141139Fce010982780140Aa0cD5Ab`,18,`WETH`,`Wrapped Ether`),hX[4]=new mX(4,`0xc778417E063141139Fce010982780140Aa0cD5Ab`,18,`WETH`,`Wrapped Ether`),hX[5]=new mX(5,`0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6`,18,`WETH`,`Wrapped Ether`),hX[42]=new mX(42,`0xd0A1E359811322d97991E03f863a0C30C2cF029C`,18,`WETH`,`Wrapped Ether`),hX[10]=new mX(10,`0x4200000000000000000000000000000000000006`,18,`WETH`,`Wrapped Ether`),hX[69]=new mX(69,`0x4200000000000000000000000000000000000006`,18,`WETH`,`Wrapped Ether`),hX[42161]=new mX(42161,`0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`,18,`WETH`,`Wrapped Ether`),hX[421611]=new mX(421611,`0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681`,18,`WETH`,`Wrapped Ether`),hX),_X=function(e){YY(t,e);function t(t){return e.call(this,t,18,`ETH`,`Ether`)||this}t.onChain=function(e){return this._etherCache[e]??(this._etherCache[e]=new t(e))};var n=t.prototype;return n.equals=function(e){return e.isNative&&e.chainId===this.chainId},JY(t,[{key:`wrapped`,get:function(){var e=gX[this.chainId];return!e&&Q(!1),e}}]),t}(uX);_X._etherCache={};function vX(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function yX(e,t,n){return t&&vX(e.prototype,t),n&&vX(e,n),e}function bX(){return bX=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bX.apply(this,arguments)}function xX(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var SX;(function(e){e[e.MAINNET=1]=`MAINNET`,e[e.GOERLI=5]=`GOERLI`,e[e.SEPOLIA=11155111]=`SEPOLIA`,e[e.OPTIMISM=10]=`OPTIMISM`,e[e.OPTIMISM_GOERLI=420]=`OPTIMISM_GOERLI`,e[e.ARBITRUM_ONE=42161]=`ARBITRUM_ONE`,e[e.ARBITRUM_GOERLI=421613]=`ARBITRUM_GOERLI`,e[e.POLYGON=137]=`POLYGON`,e[e.POLYGON_MUMBAI=80001]=`POLYGON_MUMBAI`,e[e.CELO=42220]=`CELO`,e[e.CELO_ALFAJORES=44787]=`CELO_ALFAJORES`,e[e.GNOSIS=100]=`GNOSIS`,e[e.MOONBEAM=1284]=`MOONBEAM`,e[e.BNB=56]=`BNB`,e[e.AVALANCHE=43114]=`AVALANCHE`,e[e.BASE_GOERLI=84531]=`BASE_GOERLI`,e[e.BASE=8453]=`BASE`})(SX||={}),SX.MAINNET,SX.OPTIMISM,SX.OPTIMISM_GOERLI,SX.ARBITRUM_ONE,SX.ARBITRUM_GOERLI,SX.POLYGON,SX.POLYGON_MUMBAI,SX.GOERLI,SX.SEPOLIA,SX.CELO_ALFAJORES,SX.CELO,SX.BNB,SX.AVALANCHE,SX.BASE,SX.BASE_GOERLI;var CX;(function(e){e.ETHER=`ETH`,e.MATIC=`MATIC`,e.CELO=`CELO`,e.GNOSIS=`XDAI`,e.MOONBEAM=`GLMR`,e.BNB=`BNB`,e.AVAX=`AVAX`})(CX||={});var wX,TX,EX,DX,OX,kX;SX.MAINNET,SX.GOERLI,SX.OPTIMISM,SX.ARBITRUM_ONE,SX.POLYGON,SX.POLYGON_MUMBAI,SX.SEPOLIA;var AX={v3CoreFactoryAddress:`0x1F98431c8aD98523631AE4a59f267346ea31F984`,multicallAddress:`0x1F98415757620B543A52E61c46B32eB19261F984`,quoterAddress:`0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6`,v3MigratorAddress:`0xA5644E29708357803b5A882D272c41cC0dF92B34`,nonfungiblePositionManagerAddress:`0xC36442b4a4522E871399CD717aBDD847Ab11FE88`},jX=bX({},AX,{v1MixedRouteQuoterAddress:`0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E`}),MX=bX({},AX,{v1MixedRouteQuoterAddress:`0xBa60b6e6fF25488308789E6e0A65D838be34194e`}),NX=AX,PX=bX({},AX,{multicallAddress:`0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB`,tickLensAddress:`0xbfd8137f7d1516D3ea5cA83523914859ec47F573`}),FX=AX,IX={v3CoreFactoryAddress:`0xAfE208a311B21f13EF87E33A90049fC17A7acDEc`,multicallAddress:`0x633987602DE5C4F337e3DbF265303A1080324204`,quoterAddress:`0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8`,v3MigratorAddress:`0x3cFd4d48EDfDCC53D3f173F596f621064614C582`,nonfungiblePositionManagerAddress:`0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A`,tickLensAddress:`0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D`},LX={v3CoreFactoryAddress:`0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7`,multicallAddress:`0x963Df249eD09c358A4819E39d9Cd5736c3087184`,quoterAddress:`0x78D78E420Da98ad378D7799bE8f4AF69033EB077`,v3MigratorAddress:`0x32681814957e0C13117ddc0c2aba232b5c9e760f`,nonfungiblePositionManagerAddress:`0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613`,tickLensAddress:`0xD9270014D396281579760619CCf4c3af0501A47C`,swapRouter02Address:`0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2`},RX={v3CoreFactoryAddress:`0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10`,multicallAddress:`0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd`,quoterAddress:`0x9569CbA925c8ca2248772A9A4976A516743A246F`,v3MigratorAddress:`0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8`,nonfungiblePositionManagerAddress:`0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6`,tickLensAddress:`0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e`},zX={v3CoreFactoryAddress:`0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6`,multicallAddress:`0x8260CB40247290317a4c062F3542622367F206Ee`,quoterAddress:`0x1dd92b83591781D0C6d98d07391eea4b9a6008FA`,v3MigratorAddress:`0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3`,nonfungiblePositionManagerAddress:`0x622e4726a167799826d1E1D150b076A7725f5D81`,tickLensAddress:`0xb52429333da969a0C79a60930a4Bf0020E5D1DE8`},BX={v3CoreFactoryAddress:`0x0227628f3F023bb0B980b67D528571c95c6DaC1c`,multicallAddress:`0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07`,quoterAddress:`0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3`,v3MigratorAddress:`0x729004182cF005CEC8Bd85df140094b6aCbe8b15`,nonfungiblePositionManagerAddress:`0x1238536071E1c677A632429e3655c799b22cDA52`,tickLensAddress:`0xd7f33bcdb21b359c8ee6f0251d30e94832baad07`},VX={v3CoreFactoryAddress:`0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD`,multicallAddress:`0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2`,quoterAddress:`0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F`,v3MigratorAddress:`0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97`,nonfungiblePositionManagerAddress:`0x655C406EBFa14EE2006250925e54ec43AD184f8B`,tickLensAddress:`0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950`,swapRouter02Address:`0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE`},HX={v3CoreFactoryAddress:`0x33128a8fC17869897dcE68Ed026d694621f6FDfD`,multicallAddress:`0x091e99cb1C49331a94dD62755D168E941AbD0693`,quoterAddress:`0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a`,v3MigratorAddress:`0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7`,nonfungiblePositionManagerAddress:`0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1`,tickLensAddress:`0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d`,swapRouter02Address:`0x2626664c2603336E57B271c5C0b26F421741e481`},UX={v3CoreFactoryAddress:`0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2`,multicallAddress:`0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439`,quoterAddress:`0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9`,v3MigratorAddress:`0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE`,nonfungiblePositionManagerAddress:`0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30`,tickLensAddress:`0x1acB873Ee909D0c98adB18e4474943249F931b92`,swapRouter02Address:`0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d`};wX={},wX[SX.MAINNET]=jX,wX[SX.OPTIMISM]=NX,wX[SX.ARBITRUM_ONE]=PX,wX[SX.POLYGON]=FX,wX[SX.POLYGON_MUMBAI]=FX,wX[SX.GOERLI]=MX,wX[SX.CELO]=IX,wX[SX.CELO_ALFAJORES]=IX,wX[SX.BNB]=LX,wX[SX.OPTIMISM_GOERLI]=RX,wX[SX.ARBITRUM_GOERLI]=zX,wX[SX.SEPOLIA]=BX,wX[SX.AVALANCHE]=VX,wX[SX.BASE]=HX,wX[SX.BASE_GOERLI]=UX,TX={},TX[SX.MAINNET]=`0xC4e172459f1E7939D522503B81AFAaC1014CE6F6`,EX={},EX[SX.MAINNET]=`0x408ED6354d4973f66138C91495F2f2FCbd8724C3`,DX={},DX[SX.MAINNET]=`0x090D4613473dEE047c3f2706764f49E0821D256e`,OX={},OX[SX.MAINNET]=`0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8`,kX={},kX[SX.MAINNET]=`0x65770b5283117639760beA3F867b69b3697a91dd`;var WX;(function(e){e[e.EXACT_INPUT=0]=`EXACT_INPUT`,e[e.EXACT_OUTPUT=1]=`EXACT_OUTPUT`})(WX||={});var GX;(function(e){e[e.ROUND_DOWN=0]=`ROUND_DOWN`,e[e.ROUND_HALF_UP=1]=`ROUND_HALF_UP`,e[e.ROUND_UP=2]=`ROUND_UP`})(GX||={});var KX=Z.default.BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`),qX,JX,YX=(0,XJ.default)(JJ.default),XX=(0,XJ.default)(YJ.default),ZX=(qX={},qX[GX.ROUND_DOWN]=YX.ROUND_DOWN,qX[GX.ROUND_HALF_UP]=YX.ROUND_HALF_UP,qX[GX.ROUND_UP]=YX.ROUND_UP,qX),QX=(JX={},JX[GX.ROUND_DOWN]=0,JX[GX.ROUND_HALF_UP]=1,JX[GX.ROUND_UP]=3,JX),$X=function(){function e(e,t){t===void 0&&(t=Z.default.BigInt(1)),this.numerator=Z.default.BigInt(e),this.denominator=Z.default.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof Z.default||typeof t==`number`||typeof t==`string`)return new e(t);if(`numerator`in t&&`denominator`in t)return t;throw Error(`Could not parse fraction`)};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return Z.default.equal(this.denominator,n.denominator)?new e(Z.default.add(this.numerator,n.numerator),this.denominator):new e(Z.default.add(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator)),Z.default.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return Z.default.equal(this.denominator,n.denominator)?new e(Z.default.subtract(this.numerator,n.numerator),this.denominator):new e(Z.default.subtract(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator)),Z.default.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return Z.default.lessThan(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return Z.default.equal(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return Z.default.greaterThan(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(Z.default.multiply(this.numerator,n.numerator),Z.default.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(Z.default.multiply(this.numerator,n.denominator),Z.default.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){t===void 0&&(t={groupSeparator:``}),n===void 0&&(n=GX.ROUND_HALF_UP),!Number.isInteger(e)&&Q(!1),!(e>0)&&Q(!1),YX.set({precision:e+1,rounding:ZX[n]});var r=new YX(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return t===void 0&&(t={groupSeparator:``}),n===void 0&&(n=GX.ROUND_HALF_UP),!Number.isInteger(e)&&Q(!1),!(e>=0)&&Q(!1),XX.DP=e,XX.RM=QX[n],new XX(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},yX(e,[{key:`quotient`,get:function(){return Z.default.divide(this.numerator,this.denominator)}},{key:`remainder`,get:function(){return new e(Z.default.remainder(this.numerator,this.denominator),this.denominator)}},{key:`asFraction`,get:function(){return new e(this.numerator,this.denominator)}}]),e}(),eZ=(0,XJ.default)(YJ.default),tZ=function(e){xX(t,e);function t(t,n,r){var i=e.call(this,n,r)||this;return!Z.default.lessThanOrEqual(i.quotient,KX)&&Q(!1),i.currency=t,i.decimalScale=Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(t.decimals)),i}t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){!this.currency.equals(n.currency)&&Q(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){!this.currency.equals(n.currency)&&Q(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return t===void 0&&(t=6),r===void 0&&(r=GX.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return t===void 0&&(t=this.currency.decimals),r===void 0&&(r=GX.ROUND_DOWN),!(t<=this.currency.decimals)&&Q(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return e===void 0&&(e={groupSeparator:``}),eZ.DP=this.currency.decimals,new eZ(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},yX(t,[{key:`wrapped`,get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}($X),nZ=new $X(Z.default.BigInt(100));function rZ(e){return new iZ(e.numerator,e.denominator)}var iZ=function(e){xX(t,e);function t(){var t=e.apply(this,arguments)||this;return t.isPercent=!0,t}var n=t.prototype;return n.add=function(t){return rZ(e.prototype.add.call(this,t))},n.subtract=function(t){return rZ(e.prototype.subtract.call(this,t))},n.multiply=function(t){return rZ(e.prototype.multiply.call(this,t))},n.divide=function(t){return rZ(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return t===void 0&&(t=5),e.prototype.multiply.call(this,nZ).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return t===void 0&&(t=2),e.prototype.multiply.call(this,nZ).toFixed(t,n,r)},t}($X),aZ=function(e){xX(t,e);function t(){for(var t,n,r,i,a,o=arguments.length,s=Array(o),c=0;c<o;c++)s[c]=arguments[c];if(s.length===4)n=s[0],r=s[1],i=s[2],a=s[3];else{var l=s[0].quoteAmount.divide(s[0].baseAmount),u=[s[0].baseAmount.currency,s[0].quoteAmount.currency,l.denominator,l.numerator];n=u[0],r=u[1],i=u[2],a=u[3]}return t=e.call(this,a,i)||this,t.baseCurrency=n,t.quoteCurrency=r,t.scalar=new $X(Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(n.decimals)),Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(r.decimals))),t}var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){!this.quoteCurrency.equals(n.baseCurrency)&&Q(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){!t.currency.equals(this.baseCurrency)&&Q(!1);var n=e.prototype.multiply.call(this,t);return tZ.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return e===void 0&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return e===void 0&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},yX(t,[{key:`adjustedForDecimals`,get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}($X),oZ=function(e,t,n,r){!Number.isSafeInteger(e)&&Q(!1),!(t>=0&&t<255&&Number.isInteger(t))&&Q(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r},sZ=function(e){xX(t,e);function t(){var t=e.apply(this,arguments)||this;return t.isNative=!0,t.isToken=!1,t}return t}(oZ);function cZ(e){try{return VY(e)}catch{throw Error(e+` is not a valid address.`)}}var lZ=/^0x[0-9a-fA-F]{40}$/;function uZ(e){if(lZ.test(e))return e;throw Error(e+` is not a valid address.`)}var dZ=function(e){xX(t,e);function t(t,n,r,i,a,o){var s=e.call(this,t,r,i,a)||this;return s.isNative=!1,s.isToken=!0,o?s.address=uZ(n):s.address=cZ(n),s}var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&Q(!1),this.address.toLowerCase()===e.address.toLowerCase()&&Q(!1),this.address.toLowerCase()<e.address.toLowerCase()},yX(t,[{key:`wrapped`,get:function(){return this}}]),t}(oZ),fZ,pZ=(fZ={},fZ[1]=new dZ(1,`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,18,`WETH`,`Wrapped Ether`),fZ[3]=new dZ(3,`0xc778417E063141139Fce010982780140Aa0cD5Ab`,18,`WETH`,`Wrapped Ether`),fZ[4]=new dZ(4,`0xc778417E063141139Fce010982780140Aa0cD5Ab`,18,`WETH`,`Wrapped Ether`),fZ[5]=new dZ(5,`0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6`,18,`WETH`,`Wrapped Ether`),fZ[42]=new dZ(42,`0xd0A1E359811322d97991E03f863a0C30C2cF029C`,18,`WETH`,`Wrapped Ether`),fZ[10]=new dZ(10,`0x4200000000000000000000000000000000000006`,18,`WETH`,`Wrapped Ether`),fZ[69]=new dZ(69,`0x4200000000000000000000000000000000000006`,18,`WETH`,`Wrapped Ether`),fZ[42161]=new dZ(42161,`0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`,18,`WETH`,`Wrapped Ether`),fZ[421611]=new dZ(421611,`0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681`,18,`WETH`,`Wrapped Ether`),fZ),mZ=function(e){xX(t,e);function t(t){return e.call(this,t,18,`ETH`,`Ether`)||this}t.onChain=function(e){return this._etherCache[e]??(this._etherCache[e]=new t(e))};var n=t.prototype;return n.equals=function(e){return e.isNative&&e.chainId===this.chainId},yX(t,[{key:`wrapped`,get:function(){var e=pZ[this.chainId];return!e&&Q(!1),e}}]),t}(sZ);mZ._etherCache={};function hZ(e,t,n,r){if(!(n>0)&&Q(!1),!(e.length<=n)&&Q(!1),e.length===0)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var a=0,o=e.length;a<o;){var s=a+o>>>1;r(e[s],t)<=0?a=s+1:o=s}return e.splice(a,0,t),i?e.pop():null}var gZ=Z.default.BigInt(2**53-1),_Z=Z.default.BigInt(0),vZ=Z.default.BigInt(1),yZ=Z.default.BigInt(2);function bZ(e){if(!Z.default.greaterThanOrEqual(e,_Z)&&Q(!1),Z.default.lessThan(e,gZ))return Z.default.BigInt(Math.floor(Math.sqrt(Z.default.toNumber(e))));for(var t=e,n=Z.default.add(Z.default.divide(e,yZ),vZ);Z.default.lessThan(n,t);)t=n,n=Z.default.divide(Z.default.add(Z.default.divide(e,n),n),yZ);return t}let xZ=new sY(`properties/5.7.0`);function SZ(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function CZ(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||typeof e.prototype!=`object`)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}let wZ={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function TZ(e){if(e==null||wZ[typeof e])return!0;if(Array.isArray(e)||typeof e==`object`){if(!Object.isFrozen(e))return!1;let t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch{continue}if(!TZ(r))return!1}return!0}return xZ.throwArgumentError(`Cannot deepCopy ${typeof e}`,`object`,e)}function EZ(e){if(TZ(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>DZ(e)));if(typeof e==`object`){let t={};for(let n in e){let r=e[n];r!==void 0&&SZ(t,n,DZ(r))}return t}return xZ.throwArgumentError(`Cannot deepCopy ${typeof e}`,`object`,e)}function DZ(e){return EZ(e)}var OZ=class{constructor(e){for(let t in e)this[t]=DZ(e[t])}};let kZ=`abi/5.7.0`,AZ=new sY(kZ),jZ={},MZ={calldata:!0,memory:!0,storage:!0},NZ={calldata:!0,memory:!0};function PZ(e,t){if(e===`bytes`||e===`string`){if(MZ[t])return!0}else if(e===`address`){if(t===`payable`)return!0}else if((e.indexOf(`[`)>=0||e===`tuple`)&&NZ[t])return!0;return(MZ[t]||t===`payable`)&&AZ.throwArgumentError(`invalid modifier`,`name`,t),!1}function FZ(e,t){let n=e;function r(t){AZ.throwArgumentError(`unexpected character at position ${t}`,`param`,e)}e=e.replace(/\s/g,` `);function i(e){let n={type:``,name:``,parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}let a={type:``,name:``,state:{allowType:!0}},o=a;for(let n=0;n<e.length;n++){let a=e[n];switch(a){case`(`:o.state.allowType&&o.type===``?o.type=`tuple`:o.state.allowParams||r(n),o.state.allowType=!1,o.type=XZ(o.type),o.components=[i(o)],o=o.components[0];break;case`)`:delete o.state,o.name===`indexed`&&(t||r(n),o.indexed=!0,o.name=``),PZ(o.type,o.name)&&(o.name=``),o.type=XZ(o.type);let e=o;o=o.parent,o||r(n),delete e.parent,o.state.allowParams=!1,o.state.allowName=!0,o.state.allowArray=!0;break;case`,`:delete o.state,o.name===`indexed`&&(t||r(n),o.indexed=!0,o.name=``),PZ(o.type,o.name)&&(o.name=``),o.type=XZ(o.type);let s=i(o.parent);o.parent.components.push(s),delete o.parent,o=s;break;case` `:o.state.allowType&&o.type!==``&&(o.type=XZ(o.type),delete o.state.allowType,o.state.allowName=!0,o.state.allowParams=!0),o.state.allowName&&o.name!==``&&(o.name===`indexed`?(t||r(n),o.indexed&&r(n),o.indexed=!0,o.name=``):PZ(o.type,o.name)?o.name=``:o.state.allowName=!1);break;case`[`:o.state.allowArray||r(n),o.type+=a,o.state.allowArray=!1,o.state.allowName=!1,o.state.readArray=!0;break;case`]`:o.state.readArray||r(n),o.type+=a,o.state.readArray=!1,o.state.allowArray=!0,o.state.allowName=!0;break;default:o.state.allowType?(o.type+=a,o.state.allowParams=!0,o.state.allowArray=!0):o.state.allowName?(o.name+=a,delete o.state.allowArray):o.state.readArray?o.type+=a:r(n)}}return o.parent&&AZ.throwArgumentError(`unexpected eof`,`param`,e),delete a.state,o.name===`indexed`?(t||r(n.length-7),o.indexed&&r(n.length-7),o.indexed=!0,o.name=``):PZ(o.type,o.name)&&(o.name=``),a.type=XZ(a.type),a}function IZ(e,t){for(let n in t)SZ(e,n,t[n])}let LZ=Object.freeze({sighash:`sighash`,minimal:`minimal`,full:`full`,json:`json`}),RZ=new RegExp(/^(.*)\[([0-9]*)\]$/);var zZ=class e{constructor(t,n){t!==jZ&&AZ.throwError(`use fromString`,sY.errors.UNSUPPORTED_OPERATION,{operation:`new ParamType()`}),IZ(this,n);let r=this.type.match(RZ);r?IZ(this,{arrayLength:parseInt(r[2]||`-1`),arrayChildren:e.fromObject({type:r[1],components:this.components}),baseType:`array`}):IZ(this,{arrayLength:null,arrayChildren:null,baseType:this.components==null?this.type:`tuple`}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||=LZ.sighash,LZ[e]||AZ.throwArgumentError(`invalid format type`,`format`,e),e===LZ.json){let t={type:this.baseType===`tuple`?`tuple`:this.type,name:this.name||void 0};return typeof this.indexed==`boolean`&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t=``;return this.baseType===`array`?(t+=this.arrayChildren.format(e),t+=`[`+(this.arrayLength<0?``:String(this.arrayLength))+`]`):this.baseType===`tuple`?(e!==LZ.sighash&&(t+=this.type),t+=`(`+this.components.map(t=>t.format(e)).join(e===LZ.full?`, `:`,`)+`)`):t+=this.type,e!==LZ.sighash&&(this.indexed===!0&&(t+=` indexed`),e===LZ.full&&this.name&&(t+=` `+this.name)),t}static from(t,n){return typeof t==`string`?e.fromString(t,n):e.fromObject(t)}static fromObject(t){return e.isParamType(t)?t:new e(jZ,{name:t.name||null,type:XZ(t.type),indexed:t.indexed==null?null:!!t.indexed,components:t.components?t.components.map(e.fromObject):null})}static fromString(t,n){function r(t){return e.fromObject({name:t.name,type:t.type,indexed:t.indexed,components:t.components})}return r(FZ(t,!!n))}static isParamType(e){return!!(e!=null&&e._isParamType)}};function BZ(e,t){return eQ(e).map(e=>zZ.fromString(e,t))}var VZ=class e{constructor(e,t){e!==jZ&&AZ.throwError(`use a static from method`,sY.errors.UNSUPPORTED_OPERATION,{operation:`new Fragment()`}),IZ(this,t),this._isFragment=!0,Object.freeze(this)}static from(t){return e.isFragment(t)?t:typeof t==`string`?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isFragment(t))return t;switch(t.type){case`function`:return qZ.fromObject(t);case`event`:return HZ.fromObject(t);case`constructor`:return KZ.fromObject(t);case`error`:return YZ.fromObject(t);case`fallback`:case`receive`:return null}return AZ.throwArgumentError(`invalid fragment object`,`value`,t)}static fromString(e){return e=e.replace(/\s/g,` `),e=e.replace(/\(/g,` (`).replace(/\)/g,`) `).replace(/\s+/g,` `),e=e.trim(),e.split(` `)[0]===`event`?HZ.fromString(e.substring(5).trim()):e.split(` `)[0]===`function`?qZ.fromString(e.substring(8).trim()):e.split(`(`)[0].trim()===`constructor`?KZ.fromString(e.trim()):e.split(` `)[0]===`error`?YZ.fromString(e.substring(5).trim()):AZ.throwArgumentError(`unsupported fragment`,`value`,e)}static isFragment(e){return!!(e&&e._isFragment)}},HZ=class e extends VZ{format(e){if(e||=LZ.sighash,LZ[e]||AZ.throwArgumentError(`invalid format type`,`format`,e),e===LZ.json)return JSON.stringify({type:`event`,anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t=``;return e!==LZ.sighash&&(t+=`event `),t+=this.name+`(`+this.inputs.map(t=>t.format(e)).join(e===LZ.full?`, `:`,`)+`) `,e!==LZ.sighash&&this.anonymous&&(t+=`anonymous `),t.trim()}static from(t){return typeof t==`string`?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isEventFragment(t))return t;t.type!==`event`&&AZ.throwArgumentError(`invalid event object`,`value`,t);let n={name:QZ(t.name),anonymous:t.anonymous,inputs:t.inputs?t.inputs.map(zZ.fromObject):[],type:`event`};return new e(jZ,n)}static fromString(t){let n=t.match($Z);n||AZ.throwArgumentError(`invalid event string`,`value`,t);let r=!1;return n[3].split(` `).forEach(e=>{switch(e.trim()){case`anonymous`:r=!0;break;case``:break;default:AZ.warn(`unknown modifier: `+e)}}),e.fromObject({name:n[1].trim(),anonymous:r,inputs:BZ(n[2],!0),type:`event`})}static isEventFragment(e){return e&&e._isFragment&&e.type===`event`}};function UZ(e,t){t.gas=null;let n=e.split(`@`);return n.length===1?e:(n.length>2&&AZ.throwArgumentError(`invalid human-readable ABI signature`,`value`,e),n[1].match(/^[0-9]+$/)||AZ.throwArgumentError(`invalid human-readable ABI signature gas`,`value`,e),t.gas=DY.from(n[1]),n[0])}function WZ(e,t){t.constant=!1,t.payable=!1,t.stateMutability=`nonpayable`,e.split(` `).forEach(e=>{switch(e.trim()){case`constant`:t.constant=!0;break;case`payable`:t.payable=!0,t.stateMutability=`payable`;break;case`nonpayable`:t.payable=!1,t.stateMutability=`nonpayable`;break;case`pure`:t.constant=!0,t.stateMutability=`pure`;break;case`view`:t.constant=!0,t.stateMutability=`view`;break;case`external`:case`public`:case``:break;default:console.log(`unknown modifier: `+e)}})}function GZ(e){let t={constant:!1,payable:!0,stateMutability:`payable`};return e.stateMutability==null?e.payable==null?e.constant==null?e.type!==`constructor`&&AZ.throwArgumentError(`unable to determine stateMutability`,`value`,e):(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?`view`:`payable`):(t.payable=!!e.payable,e.constant==null&&!t.payable&&e.type!==`constructor`&&AZ.throwArgumentError(`unable to determine stateMutability`,`value`,e),t.constant=!!e.constant,t.constant?t.stateMutability=`view`:t.stateMutability=t.payable?`payable`:`nonpayable`,t.payable&&t.constant&&AZ.throwArgumentError(`cannot have constant payable function`,`value`,e)):(t.stateMutability=e.stateMutability,t.constant=t.stateMutability===`view`||t.stateMutability===`pure`,e.constant!=null&&!!e.constant!==t.constant&&AZ.throwArgumentError(`cannot have constant function with mutability `+t.stateMutability,`value`,e),t.payable=t.stateMutability===`payable`,e.payable!=null&&!!e.payable!==t.payable&&AZ.throwArgumentError(`cannot have payable function with mutability `+t.stateMutability,`value`,e)),t}var KZ=class e extends VZ{format(e){if(e||=LZ.sighash,LZ[e]||AZ.throwArgumentError(`invalid format type`,`format`,e),e===LZ.json)return JSON.stringify({type:`constructor`,stateMutability:this.stateMutability===`nonpayable`?void 0:this.stateMutability,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===LZ.sighash&&AZ.throwError(`cannot format a constructor for sighash`,sY.errors.UNSUPPORTED_OPERATION,{operation:`format(sighash)`});let t=`constructor(`+this.inputs.map(t=>t.format(e)).join(e===LZ.full?`, `:`,`)+`) `;return this.stateMutability&&this.stateMutability!==`nonpayable`&&(t+=this.stateMutability+` `),t.trim()}static from(t){return typeof t==`string`?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isConstructorFragment(t))return t;t.type!==`constructor`&&AZ.throwArgumentError(`invalid constructor object`,`value`,t);let n=GZ(t);n.constant&&AZ.throwArgumentError(`constructor cannot be constant`,`value`,t);let r={name:null,type:t.type,inputs:t.inputs?t.inputs.map(zZ.fromObject):[],payable:n.payable,stateMutability:n.stateMutability,gas:t.gas?DY.from(t.gas):null};return new e(jZ,r)}static fromString(t){let n={type:`constructor`};t=UZ(t,n);let r=t.match($Z);return(!r||r[1].trim()!==`constructor`)&&AZ.throwArgumentError(`invalid constructor string`,`value`,t),n.inputs=BZ(r[2].trim(),!1),WZ(r[3].trim(),n),e.fromObject(n)}static isConstructorFragment(e){return e&&e._isFragment&&e.type===`constructor`}},qZ=class e extends KZ{format(e){if(e||=LZ.sighash,LZ[e]||AZ.throwArgumentError(`invalid format type`,`format`,e),e===LZ.json)return JSON.stringify({type:`function`,name:this.name,constant:this.constant,stateMutability:this.stateMutability===`nonpayable`?void 0:this.stateMutability,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t=``;return e!==LZ.sighash&&(t+=`function `),t+=this.name+`(`+this.inputs.map(t=>t.format(e)).join(e===LZ.full?`, `:`,`)+`) `,e!==LZ.sighash&&(this.stateMutability?this.stateMutability!==`nonpayable`&&(t+=this.stateMutability+` `):this.constant&&(t+=`view `),this.outputs&&this.outputs.length&&(t+=`returns (`+this.outputs.map(t=>t.format(e)).join(`, `)+`) `),this.gas!=null&&(t+=`@`+this.gas.toString()+` `)),t.trim()}static from(t){return typeof t==`string`?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isFunctionFragment(t))return t;t.type!==`function`&&AZ.throwArgumentError(`invalid function object`,`value`,t);let n=GZ(t),r={type:t.type,name:QZ(t.name),constant:n.constant,inputs:t.inputs?t.inputs.map(zZ.fromObject):[],outputs:t.outputs?t.outputs.map(zZ.fromObject):[],payable:n.payable,stateMutability:n.stateMutability,gas:t.gas?DY.from(t.gas):null};return new e(jZ,r)}static fromString(t){let n={type:`function`};t=UZ(t,n);let r=t.split(` returns `);r.length>2&&AZ.throwArgumentError(`invalid function string`,`value`,t);let i=r[0].match($Z);if(i||AZ.throwArgumentError(`invalid function signature`,`value`,t),n.name=i[1].trim(),n.name&&QZ(n.name),n.inputs=BZ(i[2],!1),WZ(i[3].trim(),n),r.length>1){let e=r[1].match($Z);(e[1].trim()!=``||e[3].trim()!=``)&&AZ.throwArgumentError(`unexpected tokens`,`value`,t),n.outputs=BZ(e[2],!1)}else n.outputs=[];return e.fromObject(n)}static isFunctionFragment(e){return e&&e._isFragment&&e.type===`function`}};function JZ(e){let t=e.format();return(t===`Error(string)`||t===`Panic(uint256)`)&&AZ.throwArgumentError(`cannot specify user defined ${t} error`,`fragment`,e),e}var YZ=class e extends VZ{format(e){if(e||=LZ.sighash,LZ[e]||AZ.throwArgumentError(`invalid format type`,`format`,e),e===LZ.json)return JSON.stringify({type:`error`,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t=``;return e!==LZ.sighash&&(t+=`error `),t+=this.name+`(`+this.inputs.map(t=>t.format(e)).join(e===LZ.full?`, `:`,`)+`) `,t.trim()}static from(t){return typeof t==`string`?e.fromString(t):e.fromObject(t)}static fromObject(t){if(e.isErrorFragment(t))return t;t.type!==`error`&&AZ.throwArgumentError(`invalid error object`,`value`,t);let n={type:t.type,name:QZ(t.name),inputs:t.inputs?t.inputs.map(zZ.fromObject):[]};return JZ(new e(jZ,n))}static fromString(t){let n={type:`error`},r=t.match($Z);return r||AZ.throwArgumentError(`invalid error signature`,`value`,t),n.name=r[1].trim(),n.name&&QZ(n.name),n.inputs=BZ(r[2],!1),JZ(e.fromObject(n))}static isErrorFragment(e){return e&&e._isFragment&&e.type===`error`}};function XZ(e){return e.match(/^uint($|[^1-9])/)?e=`uint256`+e.substring(4):e.match(/^int($|[^1-9])/)&&(e=`int256`+e.substring(3)),e}let ZZ=RegExp(`^[a-zA-Z$_][a-zA-Z0-9$_]*$`);function QZ(e){return(!e||!e.match(ZZ))&&AZ.throwArgumentError(`invalid identifier "${e}"`,`value`,e),e}let $Z=RegExp(`^([^)(]*)\\((.*)\\)([^)(]*)$`);function eQ(e){e=e.trim();let t=[],n=``,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`,`&&r===0?(t.push(n),n=``):(n+=a,a===`(`?r++:a===`)`&&(r--,r===-1&&AZ.throwArgumentError(`unbalanced parenthesis`,`value`,e)))}return n&&t.push(n),t}let tQ=new sY(kZ);var nQ=class{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){tQ.throwArgumentError(e,this.localName,t)}},rQ=class{constructor(e){SZ(this,`wordSize`,e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return xY(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(mY(e._data))}writeBytes(e){let t=pY(e),n=t.length%this.wordSize;return n&&(t=mY([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=pY(DY.from(e));return t.length>this.wordSize&&tQ.throwError(`value out-of-bounds`,sY.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=mY([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){let e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}},iQ=class e{constructor(e,t,n,r){SZ(this,`_data`,pY(e)),SZ(this,`wordSize`,t||32),SZ(this,`_coerceFunc`,n),SZ(this,`allowLoose`,r),this._offset=0}get data(){return vY(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match(`^u?int([0-9]+)$`);return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(t,n){return this._coerceFunc?this._coerceFunc(t,n):e.coerce(t,n)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:tQ.throwError(`data out-of-bounds`,sY.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(t){return new e(this._data.slice(this._offset+t),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return DY.from(this.readBytes(this.wordSize))}},aQ=class extends nQ{constructor(e){super(`address`,`address`,e,!1)}defaultValue(){return`0x0000000000000000000000000000000000000000`}encode(e,t){try{t=VY(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return VY(SY(e.readValue().toHexString(),20))}},oQ=class extends nQ{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}};let sQ=new sY(kZ);function cQ(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&typeof n==`object`){let e={};r=t.map(t=>{let r=t.localName;return r||sQ.throwError(`cannot encode object for signature with missing names`,sY.errors.INVALID_ARGUMENT,{argument:`values`,coder:t,value:n}),e[r]&&sQ.throwError(`cannot encode object for signature with duplicate names`,sY.errors.INVALID_ARGUMENT,{argument:`values`,coder:t,value:n}),e[r]=!0,n[r]})}else sQ.throwArgumentError(`invalid tuple value`,`tuple`,n);t.length!==r.length&&sQ.throwArgumentError(`types/value length mismatch`,`tuple`,n);let i=new rQ(e.wordSize),a=new rQ(e.wordSize),o=[];t.forEach((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push(e=>{r(e+t)})}else e.encode(i,n)}),o.forEach(e=>{e(i.length)});let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function lQ(e,t){let n=[],r=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===sY.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===sY.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}i!=null&&n.push(i)});let i=t.reduce((e,t)=>{let n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});t.forEach((e,t)=>{let r=e.localName;if(!r||i[r]!==1||(r===`length`&&(r=`_length`),n[r]!=null))return;let a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a});for(let e=0;e<n.length;e++){let t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}var uQ=class extends nQ{constructor(e,t,n){let r=e.type+`[`+(t>=0?t:``)+`]`,i=t===-1||e.dynamic;super(`array`,r,n,i),this.coder=e,this.length=t}defaultValue(){let e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError(`expected array value`,t);let n=this.length;n===-1&&(n=t.length,e.writeValue(t.length)),sQ.checkArgumentCount(t.length,n,`coder array`+(this.localName?` `+this.localName:``));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return cQ(e,r,t)}decode(e){let t=this.length;t===-1&&(t=e.readValue().toNumber(),t*32>e._data.length&&sQ.throwError(`insufficient data length`,sY.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new oQ(this.coder));return e.coerce(this.name,lQ(e,n))}},dQ=class extends nQ{constructor(e){super(`bool`,`bool`,e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(+!!t)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}},fQ=class extends nQ{constructor(e,t){super(e,e,t,!0)}defaultValue(){return`0x`}encode(e,t){t=pY(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},pQ=class extends fQ{constructor(e){super(`bytes`,e)}decode(e){return e.coerce(this.name,vY(super.decode(e)))}},mQ=class extends nQ{constructor(e,t){let n=`bytes`+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return`0x0000000000000000000000000000000000000000000000000000000000000000`.substring(0,2+this.size*2)}encode(e,t){let n=pY(t);return n.length!==this.size&&this._throwError(`incorrect data length`,t),e.writeBytes(n)}decode(e){return e.coerce(this.name,vY(e.readBytes(this.size)))}},hQ=class extends nQ{constructor(e){super(`null`,``,e,!1)}defaultValue(){return null}encode(e,t){return t!=null&&this._throwError(`not null`,t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}};let gQ=DY.from(-1),_Q=DY.from(0),vQ=DY.from(1),yQ=DY.from(`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`);var bQ=class extends nQ{constructor(e,t,n){let r=(t?`int`:`uint`)+e*8;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=DY.from(t),r=yQ.mask(e.wordSize*8);if(this.signed){let e=r.mask(this.size*8-1);(n.gt(e)||n.lt(e.add(vQ).mul(gQ)))&&this._throwError(`value out-of-bounds`,t)}else(n.lt(_Q)||n.gt(r.mask(this.size*8)))&&this._throwError(`value out-of-bounds`,t);return n=n.toTwos(this.size*8).mask(this.size*8),this.signed&&(n=n.fromTwos(this.size*8).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(this.size*8);return this.signed&&(t=t.fromTwos(this.size*8)),e.coerce(this.name,t)}};let xQ=new sY(`strings/5.7.0`);var SQ;(function(e){e.current=``,e.NFC=`NFC`,e.NFD=`NFD`,e.NFKC=`NFKC`,e.NFKD=`NFKD`})(SQ||={});var CQ;(function(e){e.UNEXPECTED_CONTINUE=`unexpected continuation byte`,e.BAD_PREFIX=`bad codepoint prefix`,e.OVERRUN=`string overrun`,e.MISSING_CONTINUE=`missing continuation byte`,e.OUT_OF_RANGE=`out of UTF-8 range`,e.UTF16_SURROGATE=`UTF-16 surrogate`,e.OVERLONG=`overlong representation`})(CQ||={});function wQ(e,t,n,r,i){return xQ.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,`bytes`,n)}function TQ(e,t,n,r,i){if(e===CQ.BAD_PREFIX||e===CQ.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===CQ.OVERRUN?n.length-t-1:0}function EQ(e,t,n,r,i){return e===CQ.OVERLONG?(r.push(i),0):(r.push(65533),TQ(e,t,n,r,i))}let DQ=Object.freeze({error:wQ,ignore:TQ,replace:EQ});function OQ(e,t){t??=DQ.error,e=pY(e);let n=[],r=0;for(;r<e.length;){let i=e[r++];if(!(i>>7)){n.push(i);continue}let a=null,o=null;if((i&224)==192)a=1,o=127;else if((i&240)==224)a=2,o=2047;else if((i&248)==240)a=3,o=65535;else{(i&192)==128?r+=t(CQ.UNEXPECTED_CONTINUE,r-1,e,n):r+=t(CQ.BAD_PREFIX,r-1,e,n);continue}if(r-1+a>=e.length){r+=t(CQ.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if((i&192)!=128){r+=t(CQ.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|i&63,r++}if(s!==null){if(s>1114111){r+=t(CQ.OUT_OF_RANGE,r-1-a,e,n,s);continue}if(s>=55296&&s<=57343){r+=t(CQ.UTF16_SURROGATE,r-1-a,e,n,s);continue}if(s<=o){r+=t(CQ.OVERLONG,r-1-a,e,n,s);continue}n.push(s)}}return n}function kQ(e,t=SQ.current){t!=SQ.current&&(xQ.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(r&63|128);else if((r&64512)==55296){t++;let i=e.charCodeAt(t);if(t>=e.length||(i&64512)!=56320)throw Error(`invalid utf-8 string`);let a=65536+((r&1023)<<10)+(i&1023);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(a&63|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(r&63|128)}return pY(n)}function AQ(e){return e.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join(``)}function jQ(e,t){return AQ(OQ(e,t))}var MQ=class extends fQ{constructor(e){super(`string`,e)}defaultValue(){return``}encode(e,t){return super.encode(e,kQ(t))}decode(e){return jQ(super.decode(e))}},NQ=class extends nQ{constructor(e,t){let n=!1,r=[];e.forEach(e=>{e.dynamic&&(n=!0),r.push(e.type)});let i=`tuple(`+r.join(`,`)+`)`;super(`tuple`,i,t,n),this.coders=e}defaultValue(){let e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});let t=this.coders.reduce((e,t)=>{let n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});return this.coders.forEach((n,r)=>{let i=n.localName;!i||t[i]!==1||(i===`length`&&(i=`_length`),e[i]??(e[i]=e[r]))}),Object.freeze(e)}encode(e,t){return cQ(e,this.coders,t)}decode(e){return e.coerce(this.name,lQ(e,this.coders))}};let PQ=new sY(kZ),FQ=new RegExp(/^bytes([0-9]*)$/),IQ=new RegExp(/^(u?int)([0-9]*)$/),LQ=new class{constructor(e){SZ(this,`coerceFunc`,e||null)}_getCoder(e){switch(e.baseType){case`address`:return new aQ(e.name);case`bool`:return new dQ(e.name);case`string`:return new MQ(e.name);case`bytes`:return new pQ(e.name);case`array`:return new uQ(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case`tuple`:return new NQ((e.components||[]).map(e=>this._getCoder(e)),e.name);case``:return new hQ(e.name)}let t=e.type.match(IQ);if(t){let n=parseInt(t[2]||`256`);return(n===0||n>256||n%8!=0)&&PQ.throwArgumentError(`invalid `+t[1]+` bit length`,`param`,e),new bQ(n/8,t[1]===`int`,e.name)}if(t=e.type.match(FQ),t){let n=parseInt(t[1]);return(n===0||n>32)&&PQ.throwArgumentError(`invalid bytes length`,`param`,e),new mQ(n,e.name)}return PQ.throwArgumentError(`invalid type`,`type`,e.type)}_getWordSize(){return 32}_getReader(e,t){return new iQ(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new rQ(this._getWordSize())}getDefaultValue(e){return new NQ(e.map(e=>this._getCoder(zZ.from(e))),`_`).defaultValue()}encode(e,t){e.length!==t.length&&PQ.throwError(`types/values length mismatch`,sY.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});let n=new NQ(e.map(e=>this._getCoder(zZ.from(e))),`_`),r=this._getWriter();return n.encode(r,t),r.data}decode(e,t,n){return new NQ(e.map(e=>this._getCoder(zZ.from(e))),`_`).decode(this._getReader(pY(t),n))}};function RQ(e){return PY(kQ(e))}let zQ=new sY(kZ);var BQ=class extends OZ{},VQ=class extends OZ{},HQ=class extends OZ{},UQ=class extends OZ{static isIndexed(e){return!!(e&&e._isIndexed)}};let WQ={"0x08c379a0":{signature:`Error(string)`,name:`Error`,inputs:[`string`],reason:!0},"0x4e487b71":{signature:`Panic(uint256)`,name:`Panic`,inputs:[`uint256`]}};function GQ(e,t){let n=Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}var KQ=class{constructor(e){let t=[];t=typeof e==`string`?JSON.parse(e):e,SZ(this,`fragments`,t.map(e=>VZ.from(e)).filter(e=>e!=null)),SZ(this,`_abiCoder`,CZ(new.target,`getAbiCoder`)()),SZ(this,`functions`,{}),SZ(this,`errors`,{}),SZ(this,`events`,{}),SZ(this,`structs`,{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case`constructor`:if(this.deploy){zQ.warn(`duplicate definition - constructor`);return}SZ(this,`deploy`,e);return;case`function`:t=this.functions;break;case`event`:t=this.events;break;case`error`:t=this.errors;break;default:return}let n=e.format();if(t[n]){zQ.warn(`duplicate definition - `+n);return}t[n]=e}),this.deploy||SZ(this,`deploy`,KZ.from({payable:!1,type:`constructor`})),SZ(this,`_isInterface`,!0)}format(e){e||=LZ.full,e===LZ.sighash&&zQ.throwArgumentError(`interface does not support formatting sighash`,`format`,e);let t=this.fragments.map(t=>t.format(e));return e===LZ.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return LQ}static getAddress(e){return VY(e)}static getSighash(e){return bY(RQ(e.format()),0,4)}static getEventTopic(e){return RQ(e.format())}getFunction(e){if(gY(e)){for(let t in this.functions)if(e===this.getSighash(t))return this.functions[t];zQ.throwArgumentError(`no matching function`,`sighash`,e)}if(e.indexOf(`(`)===-1){let t=e.trim(),n=Object.keys(this.functions).filter(e=>e.split(`(`)[0]===t);return n.length===0?zQ.throwArgumentError(`no matching function`,`name`,t):n.length>1&&zQ.throwArgumentError(`multiple matching functions`,`name`,t),this.functions[n[0]]}let t=this.functions[qZ.fromString(e).format()];return t||zQ.throwArgumentError(`no matching function`,`signature`,e),t}getEvent(e){if(gY(e)){let t=e.toLowerCase();for(let e in this.events)if(t===this.getEventTopic(e))return this.events[e];zQ.throwArgumentError(`no matching event`,`topichash`,t)}if(e.indexOf(`(`)===-1){let t=e.trim(),n=Object.keys(this.events).filter(e=>e.split(`(`)[0]===t);return n.length===0?zQ.throwArgumentError(`no matching event`,`name`,t):n.length>1&&zQ.throwArgumentError(`multiple matching events`,`name`,t),this.events[n[0]]}let t=this.events[HZ.fromString(e).format()];return t||zQ.throwArgumentError(`no matching event`,`signature`,e),t}getError(e){if(gY(e)){let t=CZ(this.constructor,`getSighash`);for(let n in this.errors){let r=this.errors[n];if(e===t(r))return this.errors[n]}zQ.throwArgumentError(`no matching error`,`sighash`,e)}if(e.indexOf(`(`)===-1){let t=e.trim(),n=Object.keys(this.errors).filter(e=>e.split(`(`)[0]===t);return n.length===0?zQ.throwArgumentError(`no matching error`,`name`,t):n.length>1&&zQ.throwArgumentError(`multiple matching errors`,`name`,t),this.errors[n[0]]}let t=this.errors[qZ.fromString(e).format()];return t||zQ.throwArgumentError(`no matching error`,`signature`,e),t}getSighash(e){if(typeof e==`string`)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch{throw t}}return CZ(this.constructor,`getSighash`)(e)}getEventTopic(e){return typeof e==`string`&&(e=this.getEvent(e)),CZ(this.constructor,`getEventTopic`)(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){typeof e==`string`&&(e=this.getError(e));let n=pY(t);return vY(n.slice(0,4))!==this.getSighash(e)&&zQ.throwArgumentError(`data signature does not match error ${e.name}.`,`data`,vY(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return typeof e==`string`&&(e=this.getError(e)),vY(mY([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){typeof e==`string`&&(e=this.getFunction(e));let n=pY(t);return vY(n.slice(0,4))!==this.getSighash(e)&&zQ.throwArgumentError(`data signature does not match function ${e.name}.`,`data`,vY(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return typeof e==`string`&&(e=this.getFunction(e)),vY(mY([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){typeof e==`string`&&(e=this.getFunction(e));let n=pY(t),r=null,i=``,a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch{}break;case 4:{let e=vY(n.slice(0,4)),t=WQ[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),o===`Error`?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:o===`Panic`&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{let t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch{}break}}return zQ.throwError(`call revert exception`+i,sY.errors.CALL_EXCEPTION,{method:e.format(),data:vY(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return typeof e==`string`&&(e=this.getFunction(e)),vY(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){typeof e==`string`&&(e=this.getEvent(e)),t.length>e.inputs.length&&zQ.throwError(`too many arguments for `+e.format(),sY.errors.UNEXPECTED_ARGUMENT,{argument:`values`,value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));let r=(e,t)=>e.type===`string`?RQ(t):e.type===`bytes`?PY(vY(t)):(e.type===`bool`&&typeof t==`boolean`&&(t=t?`0x01`:`0x00`),e.type.match(/^u?int/)&&(t=DY.from(t).toHexString()),e.type===`address`&&this._abiCoder.encode([`address`],[t]),SY(vY(t),32));for(t.forEach((t,i)=>{let a=e.inputs[i];if(!a.indexed){t!=null&&zQ.throwArgumentError(`cannot filter non-indexed parameters; must be null`,`contract.`+a.name,t);return}t==null?n.push(null):a.baseType===`array`||a.baseType===`tuple`?zQ.throwArgumentError(`filtering with tuples or arrays not supported`,`contract.`+a.name,t):Array.isArray(t)?n.push(t.map(e=>r(a,e))):n.push(r(a,t))});n.length&&n[n.length-1]===null;)n.pop();return n}encodeEventLog(e,t){typeof e==`string`&&(e=this.getEvent(e));let n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&zQ.throwArgumentError(`event arguments/values mismatch`,`values`,t),e.inputs.forEach((e,a)=>{let o=t[a];if(e.indexed)if(e.type===`string`)n.push(RQ(o));else if(e.type===`bytes`)n.push(PY(o));else if(e.baseType===`tuple`||e.baseType===`array`)throw Error(`not implemented`);else n.push(this._abiCoder.encode([e.type],[o]));else r.push(e),i.push(o)}),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if(typeof e==`string`&&(e=this.getEvent(e)),n!=null&&!e.anonymous){let t=this.getEventTopic(e);(!gY(n[0],32)||n[0].toLowerCase()!==t)&&zQ.throwError(`fragment/topic mismatch`,sY.errors.INVALID_ARGUMENT,{argument:`topics[0]`,expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach((e,t)=>{e.indexed?e.type===`string`||e.type===`bytes`||e.baseType===`tuple`||e.baseType===`array`?(r.push(zZ.fromObject({type:`bytes32`,name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))});let o=n==null?null:this._abiCoder.decode(r,mY(n)),s=this._abiCoder.decode(i,t,!0),c=[],l=0,u=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(o==null)c[t]=new UQ({_isIndexed:!0,hash:null});else if(a[t])c[t]=new UQ({_isIndexed:!0,hash:o[u++]});else try{c[t]=o[u++]}catch(e){c[t]=e}else try{c[t]=s[l++]}catch(e){c[t]=e}if(e.name&&c[e.name]==null){let n=c[t];n instanceof Error?Object.defineProperty(c,e.name,{enumerable:!0,get:()=>{throw GQ(`property ${JSON.stringify(e.name)}`,n)}}):c[e.name]=n}});for(let e=0;e<c.length;e++){let t=c[e];t instanceof Error&&Object.defineProperty(c,e,{enumerable:!0,get:()=>{throw GQ(`index ${e}`,t)}})}return Object.freeze(c)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new VQ({args:this._abiCoder.decode(t.inputs,`0x`+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:DY.from(e.value||`0`)}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new BQ({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){let t=vY(e),n=this.getError(t.substring(0,10).toLowerCase());return n?new HQ({args:this._abiCoder.decode(n.inputs,`0x`+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!!(e&&e._isInterface)}};let qQ=RegExp(`^bytes([0-9]+)$`),JQ=RegExp(`^(u?int)([0-9]*)$`),YQ=RegExp(`^(.*)\\[([0-9]*)\\]$`),XQ=new sY(`solidity/5.7.0`);function ZQ(e,t,n){switch(e){case`address`:return n?hY(t,32):pY(t);case`string`:return kQ(t);case`bytes`:return pY(t);case`bool`:return t=t?`0x01`:`0x00`,n?hY(t,32):pY(t)}let r=e.match(JQ);if(r){let i=parseInt(r[2]||`256`);return(r[2]&&String(i)!==r[2]||i%8!=0||i===0||i>256)&&XQ.throwArgumentError(`invalid number type`,`type`,e),n&&(i=256),t=DY.from(t).toTwos(i),hY(t,i/8)}if(r=e.match(qQ),r){let i=parseInt(r[1]);return(String(i)!==r[1]||i===0||i>32)&&XQ.throwArgumentError(`invalid bytes type`,`type`,e),pY(t).byteLength!==i&&XQ.throwArgumentError(`invalid value for ${e}`,`value`,t),n?pY((t+`0000000000000000000000000000000000000000000000000000000000000000`).substring(0,66)):t}if(r=e.match(YQ),r&&Array.isArray(t)){let n=r[1];parseInt(r[2]||String(t.length))!=t.length&&XQ.throwArgumentError(`invalid array length for ${e}`,`value`,t);let i=[];return t.forEach(function(e){i.push(ZQ(n,e,!0))}),mY(i)}return XQ.throwArgumentError(`invalid type`,`type`,e)}function QQ(e,t){e.length!=t.length&&XQ.throwArgumentError("wrong number of values; expected ${ types.length }",`values`,t);let n=[];return e.forEach(function(e,r){n.push(ZQ(e,t[r]))}),vY(mY(n))}function $Q(e,t){return PY(QQ(e,t))}var e$=[{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`}],t$=[{inputs:[{internalType:`address`,name:`_factory`,type:`address`},{internalType:`address`,name:`_WETH9`,type:`address`},{internalType:`address`,name:`_tokenDescriptor_`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!0,internalType:`address`,name:`approved`,type:`address`},{indexed:!0,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`Approval`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!0,internalType:`address`,name:`operator`,type:`address`},{indexed:!1,internalType:`bool`,name:`approved`,type:`bool`}],name:`ApprovalForAll`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`tokenId`,type:`uint256`},{indexed:!1,internalType:`address`,name:`recipient`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`}],name:`Collect`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`tokenId`,type:`uint256`},{indexed:!1,internalType:`uint128`,name:`liquidity`,type:`uint128`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`}],name:`DecreaseLiquidity`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`tokenId`,type:`uint256`},{indexed:!1,internalType:`uint128`,name:`liquidity`,type:`uint128`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`}],name:`IncreaseLiquidity`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`from`,type:`address`},{indexed:!0,internalType:`address`,name:`to`,type:`address`},{indexed:!0,internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`Transfer`,type:`event`},{inputs:[],name:`DOMAIN_SEPARATOR`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`PERMIT_TYPEHASH`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`WETH9`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`approve`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`baseURI`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`pure`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`burn`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint128`,name:`amount0Max`,type:`uint128`},{internalType:`uint128`,name:`amount1Max`,type:`uint128`}],internalType:`struct INonfungiblePositionManager.CollectParams`,name:`params`,type:`tuple`}],name:`collect`,outputs:[{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token0`,type:`address`},{internalType:`address`,name:`token1`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`}],name:`createAndInitializePoolIfNecessary`,outputs:[{internalType:`address`,name:`pool`,type:`address`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`uint128`,name:`liquidity`,type:`uint128`},{internalType:`uint256`,name:`amount0Min`,type:`uint256`},{internalType:`uint256`,name:`amount1Min`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`}],internalType:`struct INonfungiblePositionManager.DecreaseLiquidityParams`,name:`params`,type:`tuple`}],name:`decreaseLiquidity`,outputs:[{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[],name:`factory`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`getApproved`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`uint256`,name:`amount0Desired`,type:`uint256`},{internalType:`uint256`,name:`amount1Desired`,type:`uint256`},{internalType:`uint256`,name:`amount0Min`,type:`uint256`},{internalType:`uint256`,name:`amount1Min`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`}],internalType:`struct INonfungiblePositionManager.IncreaseLiquidityParams`,name:`params`,type:`tuple`}],name:`increaseLiquidity`,outputs:[{internalType:`uint128`,name:`liquidity`,type:`uint128`},{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`},{internalType:`address`,name:`operator`,type:`address`}],name:`isApprovedForAll`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`token0`,type:`address`},{internalType:`address`,name:`token1`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint256`,name:`amount0Desired`,type:`uint256`},{internalType:`uint256`,name:`amount1Desired`,type:`uint256`},{internalType:`uint256`,name:`amount0Min`,type:`uint256`},{internalType:`uint256`,name:`amount1Min`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`deadline`,type:`uint256`}],internalType:`struct INonfungiblePositionManager.MintParams`,name:`params`,type:`tuple`}],name:`mint`,outputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`uint128`,name:`liquidity`,type:`uint128`},{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`ownerOf`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`spender`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`permit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`positions`,outputs:[{internalType:`uint96`,name:`nonce`,type:`uint96`},{internalType:`address`,name:`operator`,type:`address`},{internalType:`address`,name:`token0`,type:`address`},{internalType:`address`,name:`token1`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint128`,name:`liquidity`,type:`uint128`},{internalType:`uint256`,name:`feeGrowthInside0LastX128`,type:`uint256`},{internalType:`uint256`,name:`feeGrowthInside1LastX128`,type:`uint256`},{internalType:`uint128`,name:`tokensOwed0`,type:`uint128`},{internalType:`uint128`,name:`tokensOwed1`,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[],name:`refundETH`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`safeTransferFrom`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`bytes`,name:`_data`,type:`bytes`}],name:`safeTransferFrom`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowed`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowedIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`operator`,type:`address`},{internalType:`bool`,name:`approved`,type:`bool`}],name:`setApprovalForAll`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`sweepToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`index`,type:`uint256`}],name:`tokenByIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`owner`,type:`address`},{internalType:`uint256`,name:`index`,type:`uint256`}],name:`tokenOfOwnerByIndex`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`tokenURI`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`totalSupply`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`transferFrom`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amount0Owed`,type:`uint256`},{internalType:`uint256`,name:`amount1Owed`,type:`uint256`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`uniswapV3MintCallback`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`unwrapWETH9`,outputs:[],stateMutability:`payable`,type:`function`},{stateMutability:`payable`,type:`receive`}],n$=[{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowed`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowedIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`}],r$=[{inputs:[],name:`refundETH`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`sweepToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`sweepTokenWithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`unwrapWETH9`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`unwrapWETH9WithFee`,outputs:[],stateMutability:`payable`,type:`function`}],i$=[{inputs:[{internalType:`address`,name:`_factory`,type:`address`},{internalType:`address`,name:`_WETH9`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`WETH9`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`factory`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`uint256`,name:`amountIn`,type:`uint256`}],name:`quoteExactInput`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],name:`quoteExactInputSingle`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`uint256`,name:`amountOut`,type:`uint256`}],name:`quoteExactOutput`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],name:`quoteExactOutputSingle`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`int256`,name:`amount0Delta`,type:`int256`},{internalType:`int256`,name:`amount1Delta`,type:`int256`},{internalType:`bytes`,name:`path`,type:`bytes`}],name:`uniswapV3SwapCallback`,outputs:[],stateMutability:`view`,type:`function`}],a$=[{inputs:[{internalType:`address`,name:`_factory`,type:`address`},{internalType:`address`,name:`_WETH9`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`WETH9`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`factory`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`uint256`,name:`amountIn`,type:`uint256`}],name:`quoteExactInput`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint160[]`,name:`sqrtPriceX96AfterList`,type:`uint160[]`},{internalType:`uint32[]`,name:`initializedTicksCrossedList`,type:`uint32[]`},{internalType:`uint256`,name:`gasEstimate`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IQuoterV2.QuoteExactInputSingleParams`,name:`params`,type:`tuple`}],name:`quoteExactInputSingle`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceX96After`,type:`uint160`},{internalType:`uint32`,name:`initializedTicksCrossed`,type:`uint32`},{internalType:`uint256`,name:`gasEstimate`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`uint256`,name:`amountOut`,type:`uint256`}],name:`quoteExactOutput`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint160[]`,name:`sqrtPriceX96AfterList`,type:`uint160[]`},{internalType:`uint32[]`,name:`initializedTicksCrossedList`,type:`uint32[]`},{internalType:`uint256`,name:`gasEstimate`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IQuoterV2.QuoteExactOutputSingleParams`,name:`params`,type:`tuple`}],name:`quoteExactOutputSingle`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceX96After`,type:`uint160`},{internalType:`uint32`,name:`initializedTicksCrossed`,type:`uint32`},{internalType:`uint256`,name:`gasEstimate`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`int256`,name:`amount0Delta`,type:`int256`},{internalType:`int256`,name:`amount1Delta`,type:`int256`},{internalType:`bytes`,name:`path`,type:`bytes`}],name:`uniswapV3SwapCallback`,outputs:[],stateMutability:`view`,type:`function`}],o$=[{inputs:[{internalType:`contract IUniswapV3Factory`,name:`_factory`,type:`address`},{internalType:`contract INonfungiblePositionManager`,name:`_nonfungiblePositionManager`,type:`address`},{internalType:`uint256`,name:`_maxIncentiveStartLeadTime`,type:`uint256`},{internalType:`uint256`,name:`_maxIncentiveDuration`,type:`uint256`}],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`tokenId`,type:`uint256`},{indexed:!0,internalType:`address`,name:`oldOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`DepositTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`contract IERC20Minimal`,name:`rewardToken`,type:`address`},{indexed:!0,internalType:`contract IUniswapV3Pool`,name:`pool`,type:`address`},{indexed:!1,internalType:`uint256`,name:`startTime`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`endTime`,type:`uint256`},{indexed:!1,internalType:`address`,name:`refundee`,type:`address`},{indexed:!1,internalType:`uint256`,name:`reward`,type:`uint256`}],name:`IncentiveCreated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`incentiveId`,type:`bytes32`},{indexed:!1,internalType:`uint256`,name:`refund`,type:`uint256`}],name:`IncentiveEnded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`to`,type:`address`},{indexed:!1,internalType:`uint256`,name:`reward`,type:`uint256`}],name:`RewardClaimed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`tokenId`,type:`uint256`},{indexed:!0,internalType:`bytes32`,name:`incentiveId`,type:`bytes32`},{indexed:!1,internalType:`uint128`,name:`liquidity`,type:`uint128`}],name:`TokenStaked`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`uint256`,name:`tokenId`,type:`uint256`},{indexed:!0,internalType:`bytes32`,name:`incentiveId`,type:`bytes32`}],name:`TokenUnstaked`,type:`event`},{inputs:[{internalType:`contract IERC20Minimal`,name:`rewardToken`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`amountRequested`,type:`uint256`}],name:`claimReward`,outputs:[{internalType:`uint256`,name:`reward`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`contract IERC20Minimal`,name:`rewardToken`,type:`address`},{internalType:`contract IUniswapV3Pool`,name:`pool`,type:`address`},{internalType:`uint256`,name:`startTime`,type:`uint256`},{internalType:`uint256`,name:`endTime`,type:`uint256`},{internalType:`address`,name:`refundee`,type:`address`}],internalType:`struct IUniswapV3Staker.IncentiveKey`,name:`key`,type:`tuple`},{internalType:`uint256`,name:`reward`,type:`uint256`}],name:`createIncentive`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`deposits`,outputs:[{internalType:`address`,name:`owner`,type:`address`},{internalType:`uint48`,name:`numberOfStakes`,type:`uint48`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`contract IERC20Minimal`,name:`rewardToken`,type:`address`},{internalType:`contract IUniswapV3Pool`,name:`pool`,type:`address`},{internalType:`uint256`,name:`startTime`,type:`uint256`},{internalType:`uint256`,name:`endTime`,type:`uint256`},{internalType:`address`,name:`refundee`,type:`address`}],internalType:`struct IUniswapV3Staker.IncentiveKey`,name:`key`,type:`tuple`}],name:`endIncentive`,outputs:[{internalType:`uint256`,name:`refund`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`factory`,outputs:[{internalType:`contract IUniswapV3Factory`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`contract IERC20Minimal`,name:`rewardToken`,type:`address`},{internalType:`contract IUniswapV3Pool`,name:`pool`,type:`address`},{internalType:`uint256`,name:`startTime`,type:`uint256`},{internalType:`uint256`,name:`endTime`,type:`uint256`},{internalType:`address`,name:`refundee`,type:`address`}],internalType:`struct IUniswapV3Staker.IncentiveKey`,name:`key`,type:`tuple`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`getRewardInfo`,outputs:[{internalType:`uint256`,name:`reward`,type:`uint256`},{internalType:`uint160`,name:`secondsInsideX128`,type:`uint160`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],name:`incentives`,outputs:[{internalType:`uint256`,name:`totalRewardUnclaimed`,type:`uint256`},{internalType:`uint160`,name:`totalSecondsClaimedX128`,type:`uint160`},{internalType:`uint96`,name:`numberOfStakes`,type:`uint96`}],stateMutability:`view`,type:`function`},{inputs:[],name:`maxIncentiveDuration`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`maxIncentiveStartLeadTime`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[],name:`nonfungiblePositionManager`,outputs:[{internalType:`contract INonfungiblePositionManager`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:`from`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`onERC721Received`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`contract IERC20Minimal`,name:``,type:`address`},{internalType:`address`,name:``,type:`address`}],name:`rewards`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`contract IERC20Minimal`,name:`rewardToken`,type:`address`},{internalType:`contract IUniswapV3Pool`,name:`pool`,type:`address`},{internalType:`uint256`,name:`startTime`,type:`uint256`},{internalType:`uint256`,name:`endTime`,type:`uint256`},{internalType:`address`,name:`refundee`,type:`address`}],internalType:`struct IUniswapV3Staker.IncentiveKey`,name:`key`,type:`tuple`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`stakeToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`bytes32`,name:`incentiveId`,type:`bytes32`}],name:`stakes`,outputs:[{internalType:`uint160`,name:`secondsPerLiquidityInsideInitialX128`,type:`uint160`},{internalType:`uint128`,name:`liquidity`,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`address`,name:`to`,type:`address`}],name:`transferDeposit`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`contract IERC20Minimal`,name:`rewardToken`,type:`address`},{internalType:`contract IUniswapV3Pool`,name:`pool`,type:`address`},{internalType:`uint256`,name:`startTime`,type:`uint256`},{internalType:`uint256`,name:`endTime`,type:`uint256`},{internalType:`address`,name:`refundee`,type:`address`}],internalType:`struct IUniswapV3Staker.IncentiveKey`,name:`key`,type:`tuple`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`unstakeToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`address`,name:`to`,type:`address`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`withdrawToken`,outputs:[],stateMutability:`nonpayable`,type:`function`}],s$=[{inputs:[{internalType:`address`,name:`_factory`,type:`address`},{internalType:`address`,name:`_WETH9`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`WETH9`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`}],internalType:`struct ISwapRouter.ExactInputParams`,name:`params`,type:`tuple`}],name:`exactInput`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct ISwapRouter.ExactInputSingleParams`,name:`params`,type:`tuple`}],name:`exactInputSingle`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`}],internalType:`struct ISwapRouter.ExactOutputParams`,name:`params`,type:`tuple`}],name:`exactOutput`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct ISwapRouter.ExactOutputSingleParams`,name:`params`,type:`tuple`}],name:`exactOutputSingle`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[],name:`factory`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[],name:`refundETH`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowed`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowedIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`sweepToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`sweepTokenWithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`int256`,name:`amount0Delta`,type:`int256`},{internalType:`int256`,name:`amount1Delta`,type:`int256`},{internalType:`bytes`,name:`_data`,type:`bytes`}],name:`uniswapV3SwapCallback`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`unwrapWETH9`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`unwrapWETH9WithFee`,outputs:[],stateMutability:`payable`,type:`function`},{stateMutability:`payable`,type:`receive`}];function c$(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function l$(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){c$(a,r,i,o,s,`next`,e)}function s(e){c$(a,r,i,o,s,`throw`,e)}o(void 0)})}}function u$(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d$(e,t,n){return t&&u$(e.prototype,t),n&&u$(e,n),e}function f$(){return f$=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f$.apply(this,arguments)}function p$(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function m$(e,t){if(e){if(typeof e==`string`)return h$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h$(e,t)}}function h$(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g$(e,t){var n;if(typeof Symbol>`u`||e[Symbol.iterator]==null){if(Array.isArray(e)||(n=m$(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
850
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return n=e[Symbol.iterator](),n.next.bind(n)}function _$(e,t){return t={exports:{}},e(t,t.exports),t.exports}var v$=_$(function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r,i=typeof Symbol==`function`?Symbol:{},a=i.iterator||`@@iterator`,o=i.asyncIterator||`@@asyncIterator`,s=i.toStringTag||`@@toStringTag`;function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},``)}catch{c=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=t&&t.prototype instanceof g?t:g,a=Object.create(i.prototype);return a._invoke=T(e,n,new k(r||[])),a}e.wrap=l;function u(e,t,n){try{return{type:`normal`,arg:e.call(t,n)}}catch(e){return{type:`throw`,arg:e}}}var d=`suspendedStart`,f=`suspendedYield`,p=`executing`,m=`completed`,h={};function g(){}function _(){}function v(){}var y={};y[a]=function(){return this};var b=Object.getPrototypeOf,x=b&&b(b(A([])));x&&x!==t&&n.call(x,a)&&(y=x);var S=v.prototype=g.prototype=Object.create(y);_.prototype=S.constructor=v,v.constructor=_,_.displayName=c(v,s,`GeneratorFunction`);function C(e){[`next`,`throw`,`return`].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}e.isGeneratorFunction=function(e){var t=typeof e==`function`&&e.constructor;return t?t===_||(t.displayName||t.name)===`GeneratorFunction`:!1},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,c(e,s,`GeneratorFunction`)),e.prototype=Object.create(S),e},e.awrap=function(e){return{__await:e}};function w(e,t){function r(i,a,o,s){var c=u(e[i],e,a);if(c.type===`throw`)s(c.arg);else{var l=c.arg,d=l.value;return d&&typeof d==`object`&&n.call(d,`__await`)?t.resolve(d.__await).then(function(e){r(`next`,e,o,s)},function(e){r(`throw`,e,o,s)}):t.resolve(d).then(function(e){l.value=e,o(l)},function(e){return r(`throw`,e,o,s)})}}var i;function a(e,n){function a(){return new t(function(t,i){r(e,n,t,i)})}return i=i?i.then(a,a):a()}this._invoke=a}C(w.prototype),w.prototype[o]=function(){return this},e.AsyncIterator=w,e.async=function(t,n,r,i,a){a===void 0&&(a=Promise);var o=new w(l(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then(function(e){return e.done?e.value:o.next()})};function T(e,t,n){var r=d;return function(i,a){if(r===p)throw Error(`Generator is already running`);if(r===m){if(i===`throw`)throw a;return j()}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=E(o,n);if(s){if(s===h)continue;return s}}if(n.method===`next`)n.sent=n._sent=n.arg;else if(n.method===`throw`){if(r===d)throw r=m,n.arg;n.dispatchException(n.arg)}else n.method===`return`&&n.abrupt(`return`,n.arg);r=p;var c=u(e,t,n);if(c.type===`normal`){if(r=n.done?m:f,c.arg===h)continue;return{value:c.arg,done:n.done}}else c.type===`throw`&&(r=m,n.method=`throw`,n.arg=c.arg)}}}function E(e,t){var n=e.iterator[t.method];if(n===r){if(t.delegate=null,t.method===`throw`){if(e.iterator.return&&(t.method=`return`,t.arg=r,E(e,t),t.method===`throw`))return h;t.method=`throw`,t.arg=TypeError(`The iterator does not provide a 'throw' method`)}return h}var i=u(n,e.iterator,t.arg);if(i.type===`throw`)return t.method=`throw`,t.arg=i.arg,t.delegate=null,h;var a=i.arg;if(!a)return t.method=`throw`,t.arg=TypeError(`iterator result is not an object`),t.delegate=null,h;if(a.done)t[e.resultName]=a.value,t.next=e.nextLoc,t.method!==`return`&&(t.method=`next`,t.arg=r);else return a;return t.delegate=null,h}C(S),c(S,s,`Generator`),S[a]=function(){return this},S.toString=function(){return`[object Generator]`};function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type=`normal`,delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:`root`}],e.forEach(D,this),this.reset(!0)}e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}};function A(e){if(e){var t=e[a];if(t)return t.call(e);if(typeof e.next==`function`)return e;if(!isNaN(e.length)){var i=-1,o=function t(){for(;++i<e.length;)if(n.call(e,i))return t.value=e[i],t.done=!1,t;return t.value=r,t.done=!0,t};return o.next=o}}return{next:j}}e.values=A;function j(){return{value:r,done:!0}}return k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method=`next`,this.arg=r,this.tryEntries.forEach(O),!e)for(var t in this)t.charAt(0)===`t`&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=r)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(e.type===`throw`)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function i(n,i){return s.type=`throw`,s.arg=e,t.next=n,i&&(t.method=`next`,t.arg=r),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],s=o.completion;if(o.tryLoc===`root`)return i(`end`);if(o.tryLoc<=this.prev){var c=n.call(o,`catchLoc`),l=n.call(o,`finallyLoc`);if(c&&l){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else if(l){if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else throw Error(`try statement without catch or finally`)}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,`finallyLoc`)&&this.prev<i.finallyLoc){var a=i;break}}a&&(e===`break`||e===`continue`)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method=`next`,this.next=a.finallyLoc,h):this.complete(o)},complete:function(e,t){if(e.type===`throw`)throw e.arg;return e.type===`break`||e.type===`continue`?this.next=e.arg:e.type===`return`?(this.rval=this.arg=e.arg,this.method=`return`,this.next=`end`):e.type===`normal`&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(r.type===`throw`){var i=r.arg;O(n)}return i}}throw Error(`illegal catch attempt`)},delegateYield:function(e,t,n){return this.delegate={iterator:A(e),resultName:t,nextLoc:n},this.method===`next`&&(this.arg=r),h}},e}(e.exports);try{regeneratorRuntime=t}catch{Function(`r`,`regeneratorRuntime = r`)(t)}}),y$,b$=`0x1F98431c8aD98523631AE4a59f267346ea31F984`,x$=`0x0000000000000000000000000000000000000000`,S$=`0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`,C$;(function(e){e[e.LOWEST=100]=`LOWEST`,e[e.LOW=500]=`LOW`,e[e.MEDIUM=3e3]=`MEDIUM`,e[e.HIGH=1e4]=`HIGH`})(C$||={});var w$=(y$={},y$[C$.LOWEST]=1,y$[C$.LOW]=10,y$[C$.MEDIUM]=60,y$[C$.HIGH]=200,y$),T$=Z.default.BigInt(-1),E$=Z.default.BigInt(0),D$=Z.default.BigInt(1),O$=Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(96)),k$=Z.default.exponentiate(O$,Z.default.BigInt(2));function A$(e){var t=e.factoryAddress,n=e.tokenA,r=e.tokenB,i=e.fee,a=e.initCodeHashManualOverride,o=n.sortsBefore(r)?[n,r]:[r,n],s=o[0],c=o[1];return HY(t,$Q([`bytes`],[LQ.encode([`address`,`address`,`uint24`],[s.address,c.address,i])]),a??S$)}var j$=function(){function e(){}return e.addDelta=function(e,t){return Z.default.lessThan(t,E$)?Z.default.subtract(e,Z.default.multiply(t,T$)):Z.default.add(e,t)},e}(),M$=function(){function e(){}return e.mulDivRoundingUp=function(e,t,n){var r=Z.default.multiply(e,t),i=Z.default.divide(r,n);return Z.default.notEqual(Z.default.remainder(r,n),E$)&&(i=Z.default.add(i,D$)),i},e}(),N$=Z.default.subtract(Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(160)),D$);function P$(e,t){var n=Z.default.multiply(e,t);return Z.default.bitwiseAnd(n,KX)}function F$(e,t){var n=Z.default.add(e,t);return Z.default.bitwiseAnd(n,KX)}var I$=function(){function e(){}return e.getAmount0Delta=function(e,t,n,r){if(Z.default.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}var a=Z.default.leftShift(n,Z.default.BigInt(96)),o=Z.default.subtract(t,e);return r?M$.mulDivRoundingUp(M$.mulDivRoundingUp(a,o,t),D$,e):Z.default.divide(Z.default.divide(Z.default.multiply(a,o),t),e)},e.getAmount1Delta=function(e,t,n,r){if(Z.default.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}return r?M$.mulDivRoundingUp(n,Z.default.subtract(t,e),O$):Z.default.divide(Z.default.multiply(n,Z.default.subtract(t,e)),O$)},e.getNextSqrtPriceFromInput=function(e,t,n,r){return!Z.default.greaterThan(e,E$)&&Q(!1),!Z.default.greaterThan(t,E$)&&Q(!1),r?this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!0):this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!0)},e.getNextSqrtPriceFromOutput=function(e,t,n,r){return!Z.default.greaterThan(e,E$)&&Q(!1),!Z.default.greaterThan(t,E$)&&Q(!1),r?this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!1):this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!1)},e.getNextSqrtPriceFromAmount0RoundingUp=function(e,t,n,r){if(Z.default.equal(n,E$))return e;var i=Z.default.leftShift(t,Z.default.BigInt(96));if(r){var a=P$(n,e);if(Z.default.equal(Z.default.divide(a,n),e)){var o=F$(i,a);if(Z.default.greaterThanOrEqual(o,i))return M$.mulDivRoundingUp(i,e,o)}return M$.mulDivRoundingUp(i,D$,Z.default.add(Z.default.divide(i,e),n))}else{var s=P$(n,e);!Z.default.equal(Z.default.divide(s,n),e)&&Q(!1),!Z.default.greaterThan(i,s)&&Q(!1);var c=Z.default.subtract(i,s);return M$.mulDivRoundingUp(i,e,c)}},e.getNextSqrtPriceFromAmount1RoundingDown=function(e,t,n,r){if(r){var i=Z.default.lessThanOrEqual(n,N$)?Z.default.divide(Z.default.leftShift(n,Z.default.BigInt(96)),t):Z.default.divide(Z.default.multiply(n,O$),t);return Z.default.add(e,i)}else{var a=M$.mulDivRoundingUp(n,O$,t);return!Z.default.greaterThan(e,a)&&Q(!1),Z.default.subtract(e,a)}},e}(),L$=Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(6)),R$=function(){function e(){}return e.computeSwapStep=function(e,t,n,r,i){var a={},o=Z.default.greaterThanOrEqual(e,t),s=Z.default.greaterThanOrEqual(r,E$);if(s){var c=Z.default.divide(Z.default.multiply(r,Z.default.subtract(L$,Z.default.BigInt(i))),L$);a.amountIn=o?I$.getAmount0Delta(t,e,n,!0):I$.getAmount1Delta(e,t,n,!0),Z.default.greaterThanOrEqual(c,a.amountIn)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=I$.getNextSqrtPriceFromInput(e,n,c,o)}else a.amountOut=o?I$.getAmount1Delta(t,e,n,!1):I$.getAmount0Delta(e,t,n,!1),Z.default.greaterThanOrEqual(Z.default.multiply(r,T$),a.amountOut)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=I$.getNextSqrtPriceFromOutput(e,n,Z.default.multiply(r,T$),o);var l=Z.default.equal(t,a.sqrtRatioNextX96);return o?(a.amountIn=l&&s?a.amountIn:I$.getAmount0Delta(a.sqrtRatioNextX96,e,n,!0),a.amountOut=l&&!s?a.amountOut:I$.getAmount1Delta(a.sqrtRatioNextX96,e,n,!1)):(a.amountIn=l&&s?a.amountIn:I$.getAmount1Delta(e,a.sqrtRatioNextX96,n,!0),a.amountOut=l&&!s?a.amountOut:I$.getAmount0Delta(e,a.sqrtRatioNextX96,n,!1)),!s&&Z.default.greaterThan(a.amountOut,Z.default.multiply(r,T$))&&(a.amountOut=Z.default.multiply(r,T$)),s&&Z.default.notEqual(a.sqrtRatioNextX96,t)?a.feeAmount=Z.default.subtract(r,a.amountIn):a.feeAmount=M$.mulDivRoundingUp(a.amountIn,Z.default.BigInt(i),Z.default.subtract(L$,Z.default.BigInt(i))),[a.sqrtRatioNextX96,a.amountIn,a.amountOut,a.feeAmount]},e}(),z$=Z.default.BigInt(2),B$=[128,64,32,16,8,4,2,1].map(function(e){return[e,Z.default.exponentiate(z$,Z.default.BigInt(e))]});function V$(e){!Z.default.greaterThan(e,E$)&&Q(!1),!Z.default.lessThanOrEqual(e,KX)&&Q(!1);for(var t=0,n=g$(B$),r;!(r=n()).done;){var i=r.value,a=i[0],o=i[1];Z.default.greaterThanOrEqual(e,o)&&(e=Z.default.signedRightShift(e,Z.default.BigInt(a)),t+=a)}return t}function H$(e,t){return Z.default.signedRightShift(Z.default.multiply(e,Z.default.BigInt(t)),Z.default.BigInt(128))}var U$=Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(32)),W$=function(){function e(){}return e.getSqrtRatioAtTick=function(t){!(t>=e.MIN_TICK&&t<=e.MAX_TICK&&Number.isInteger(t))&&Q(!1);var n=t<0?t*-1:t,r=n&1?Z.default.BigInt(`0xfffcb933bd6fad37aa2d162d1a594001`):Z.default.BigInt(`0x100000000000000000000000000000000`);return n&2&&(r=H$(r,`0xfff97272373d413259a46990580e213a`)),n&4&&(r=H$(r,`0xfff2e50f5f656932ef12357cf3c7fdcc`)),n&8&&(r=H$(r,`0xffe5caca7e10e4e61c3624eaa0941cd0`)),n&16&&(r=H$(r,`0xffcb9843d60f6159c9db58835c926644`)),n&32&&(r=H$(r,`0xff973b41fa98c081472e6896dfb254c0`)),n&64&&(r=H$(r,`0xff2ea16466c96a3843ec78b326b52861`)),n&128&&(r=H$(r,`0xfe5dee046a99a2a811c461f1969c3053`)),n&256&&(r=H$(r,`0xfcbe86c7900a88aedcffc83b479aa3a4`)),n&512&&(r=H$(r,`0xf987a7253ac413176f2b074cf7815e54`)),n&1024&&(r=H$(r,`0xf3392b0822b70005940c7a398e4b70f3`)),n&2048&&(r=H$(r,`0xe7159475a2c29b7443b29c7fa6e889d9`)),n&4096&&(r=H$(r,`0xd097f3bdfd2022b8845ad8f792aa5825`)),n&8192&&(r=H$(r,`0xa9f746462d870fdf8a65dc1f90e061e5`)),n&16384&&(r=H$(r,`0x70d869a156d2a1b890bb3df62baf32f7`)),n&32768&&(r=H$(r,`0x31be135f97d08fd981231505542fcfa6`)),n&65536&&(r=H$(r,`0x9aa508b5b7a84e1c677de54f3e99bc9`)),n&131072&&(r=H$(r,`0x5d6af8dedb81196699c329225ee604`)),n&262144&&(r=H$(r,`0x2216e584f5fa1ea926041bedfe98`)),n&524288&&(r=H$(r,`0x48a170391f7dc42444e8fa2`)),t>0&&(r=Z.default.divide(KX,r)),Z.default.greaterThan(Z.default.remainder(r,U$),E$)?Z.default.add(Z.default.divide(r,U$),D$):Z.default.divide(r,U$)},e.getTickAtSqrtRatio=function(t){!(Z.default.greaterThanOrEqual(t,e.MIN_SQRT_RATIO)&&Z.default.lessThan(t,e.MAX_SQRT_RATIO))&&Q(!1);for(var n=Z.default.leftShift(t,Z.default.BigInt(32)),r=V$(n),i=Z.default.greaterThanOrEqual(Z.default.BigInt(r),Z.default.BigInt(128))?Z.default.signedRightShift(n,Z.default.BigInt(r-127)):Z.default.leftShift(n,Z.default.BigInt(127-r)),a=Z.default.leftShift(Z.default.subtract(Z.default.BigInt(r),Z.default.BigInt(128)),Z.default.BigInt(64)),o=0;o<14;o++){i=Z.default.signedRightShift(Z.default.multiply(i,i),Z.default.BigInt(127));var s=Z.default.signedRightShift(i,Z.default.BigInt(128));a=Z.default.bitwiseOr(a,Z.default.leftShift(s,Z.default.BigInt(63-o))),i=Z.default.signedRightShift(i,s)}var c=Z.default.multiply(a,Z.default.BigInt(`255738958999603826347141`)),l=Z.default.toNumber(Z.default.signedRightShift(Z.default.subtract(c,Z.default.BigInt(`3402992956809132418596140100660247210`)),Z.default.BigInt(128))),u=Z.default.toNumber(Z.default.signedRightShift(Z.default.add(c,Z.default.BigInt(`291339464771989622907027621153398088495`)),Z.default.BigInt(128)));return l===u?l:Z.default.lessThanOrEqual(e.getSqrtRatioAtTick(u),t)?u:l},e}();W$.MIN_TICK=-887272,W$.MAX_TICK=-W$.MIN_TICK,W$.MIN_SQRT_RATIO=Z.default.BigInt(`4295128739`),W$.MAX_SQRT_RATIO=Z.default.BigInt(`1461446703485210103287273052203988822378723970342`);var G$=function(){function e(){}var t=e.prototype;return t.getTick=function(){var t=l$(v$.mark(function t(n){return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:throw Error(e.ERROR_MESSAGE);case 1:case`end`:return t.stop()}},t)}));function n(e){return t.apply(this,arguments)}return n}(),t.nextInitializedTickWithinOneWord=function(){var t=l$(v$.mark(function t(n,r,i){return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:throw Error(e.ERROR_MESSAGE);case 1:case`end`:return t.stop()}},t)}));function n(e,n,r){return t.apply(this,arguments)}return n}(),e}();G$.ERROR_MESSAGE=`No tick data provider was given`;function K$(e,t){for(var n=0;n<e.length-1;n++)if(t(e[n],e[n+1])>0)return!1;return!0}function q$(e,t){return e.index-t.index}var J$=function(){function e(){}return e.validateList=function(e,t){!(t>0)&&Q(!1),!e.every(function(e){return e.index%t===0})&&Q(!1),!Z.default.equal(e.reduce(function(e,t){var n=t.liquidityNet;return Z.default.add(e,n)},E$),E$)&&Q(!1),!K$(e,q$)&&Q(!1)},e.isBelowSmallest=function(e,t){return!(e.length>0)&&Q(!1),t<e[0].index},e.isAtOrAboveLargest=function(e,t){return!(e.length>0)&&Q(!1),t>=e[e.length-1].index},e.getTick=function(e,t){var n=e[this.binarySearch(e,t)];return n.index!==t&&Q(!1),n},e.binarySearch=function(e,t){this.isBelowSmallest(e,t)&&Q(!1);for(var n=0,r=e.length-1,i;;){if(i=Math.floor((n+r)/2),e[i].index<=t&&(i===e.length-1||e[i+1].index>t))return i;e[i].index<t?n=i+1:r=i-1}},e.nextInitializedTick=function(t,n,r){return r?(e.isBelowSmallest(t,n)&&Q(!1),e.isAtOrAboveLargest(t,n)?t[t.length-1]:t[this.binarySearch(t,n)]):(this.isAtOrAboveLargest(t,n)&&Q(!1),this.isBelowSmallest(t,n)?t[0]:t[this.binarySearch(t,n)+1])},e.nextInitializedTickWithinOneWord=function(t,n,r,i){var a=Math.floor(n/i);if(r){var o=(a>>8<<8)*i;if(e.isBelowSmallest(t,n))return[o,!1];var s=e.nextInitializedTick(t,n,r).index,c=Math.max(o,s);return[c,c===s]}else{var l=(((a+1>>8)+1<<8)-1)*i;if(this.isAtOrAboveLargest(t,n))return[l,!1];var u=this.nextInitializedTick(t,n,r).index,d=Math.min(l,u);return[d,d===u]}},e}();function Y$(e){var t=Z.default.BigInt(e).toString(16);return t.length%2!=0&&(t=`0`+t),`0x`+t}function X$(e,t){var n=e.input.wrapped,r=e.pools.reduce(function(e,t,n){var r=e.inputToken,i=e.path,a=e.types,o=t.token0.equals(r)?t.token1:t.token0;return n===0?{inputToken:o,types:[`address`,`uint24`,`address`],path:[r.address,t.fee,o.address]}:{inputToken:o,types:[].concat(a,[`uint24`,`address`]),path:[].concat(i,[t.fee,o.address])}},{inputToken:n,path:[],types:[]}),i=r.path,a=r.types;return t?QQ(a.reverse(),i.reverse()):QQ(a,i)}function Z$(e,t){var n=Z.default.leftShift(Z.default.BigInt(e),Z.default.BigInt(192)),r=Z.default.BigInt(t);return bZ(Z.default.divide(n,r))}function Q$(e,t,n){if(Z.default.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=Z.default.divide(Z.default.multiply(e,t),O$);return Z.default.divide(Z.default.multiply(Z.default.BigInt(n),i),Z.default.subtract(t,e))}function $$(e,t,n){if(Z.default.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=Z.default.multiply(Z.default.multiply(Z.default.BigInt(n),e),t),a=Z.default.multiply(O$,Z.default.subtract(t,e));return Z.default.divide(i,a)}function e1(e,t,n){if(Z.default.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}return Z.default.divide(Z.default.multiply(Z.default.BigInt(n),O$),Z.default.subtract(t,e))}function t1(e,t,n,r,i,a){if(Z.default.greaterThan(t,n)){var o=[n,t];t=o[0],n=o[1]}var s=a?$$:Q$;if(Z.default.lessThanOrEqual(e,t))return s(t,n,r);if(Z.default.lessThan(e,n)){var c=s(e,n,r),l=e1(t,e,i);return Z.default.lessThan(c,l)?c:l}else return e1(t,n,i)}function n1(e,t,n){var r=W$.getSqrtRatioAtTick(n),i=Z.default.multiply(r,r);return e.sortsBefore(t)?new aZ(e,t,k$,i):new aZ(e,t,i,k$)}var r1=function(e){var t=e.index,n=e.liquidityGross,r=e.liquidityNet;!(t>=W$.MIN_TICK&&t<=W$.MAX_TICK)&&Q(!1),this.index=t,this.liquidityGross=Z.default.BigInt(n),this.liquidityNet=Z.default.BigInt(r)},i1=function(){function e(e,t){var n=e.map(function(e){return e instanceof r1?e:new r1(e)});J$.validateList(n,t),this.ticks=n}var t=e.prototype;return t.getTick=function(){var e=l$(v$.mark(function e(t){return v$.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(`return`,J$.getTick(this.ticks,t));case 1:case`end`:return e.stop()}},e,this)}));function t(t){return e.apply(this,arguments)}return t}(),t.nextInitializedTickWithinOneWord=function(){var e=l$(v$.mark(function e(t,n,r){return v$.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(`return`,J$.nextInitializedTickWithinOneWord(this.ticks,t,n,r));case 1:case`end`:return e.stop()}},e,this)}));function t(t,n,r){return e.apply(this,arguments)}return t}(),e}(),a1=new G$,o1=function(){function e(e,t,n,r,i,a,o){o===void 0&&(o=a1),!(Number.isInteger(n)&&n<1e6)&&Q(!1);var s=W$.getSqrtRatioAtTick(a),c=W$.getSqrtRatioAtTick(a+1);!(Z.default.greaterThanOrEqual(Z.default.BigInt(r),s)&&Z.default.lessThanOrEqual(Z.default.BigInt(r),c))&&Q(!1);var l=e.sortsBefore(t)?[e,t]:[t,e];this.token0=l[0],this.token1=l[1],this.fee=n,this.sqrtRatioX96=Z.default.BigInt(r),this.liquidity=Z.default.BigInt(i),this.tickCurrent=a,this.tickDataProvider=Array.isArray(o)?new i1(o,w$[n]):o}e.getAddress=function(e,t,n,r,i){return A$({factoryAddress:i??b$,fee:n,tokenA:e,tokenB:t,initCodeHashManualOverride:r})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return!this.involvesToken(e)&&Q(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.getOutputAmount=function(){var t=l$(v$.mark(function t(n,r){var i,a,o,s,c,l,u;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return!this.involvesToken(n.currency)&&Q(!1),i=n.currency.equals(this.token0),t.next=4,this.swap(i,n.quotient,r);case 4:return a=t.sent,o=a.amountCalculated,s=a.sqrtRatioX96,c=a.liquidity,l=a.tickCurrent,u=i?this.token1:this.token0,t.abrupt(`return`,[tZ.fromRawAmount(u,Z.default.multiply(o,T$)),new e(this.token0,this.token1,this.fee,s,c,l,this.tickDataProvider)]);case 11:case`end`:return t.stop()}},t,this)}));function n(e,n){return t.apply(this,arguments)}return n}(),t.getInputAmount=function(){var t=l$(v$.mark(function t(n,r){var i,a,o,s,c,l,u;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return!(n.currency.isToken&&this.involvesToken(n.currency))&&Q(!1),i=n.currency.equals(this.token1),t.next=4,this.swap(i,Z.default.multiply(n.quotient,T$),r);case 4:return a=t.sent,o=a.amountCalculated,s=a.sqrtRatioX96,c=a.liquidity,l=a.tickCurrent,u=i?this.token0:this.token1,t.abrupt(`return`,[tZ.fromRawAmount(u,o),new e(this.token0,this.token1,this.fee,s,c,l,this.tickDataProvider)]);case 11:case`end`:return t.stop()}},t,this)}));function n(e,n){return t.apply(this,arguments)}return n}(),t.swap=function(){var e=l$(v$.mark(function e(t,n,r){var i,a,o,s,c,l;return v$.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r||=t?Z.default.add(W$.MIN_SQRT_RATIO,D$):Z.default.subtract(W$.MAX_SQRT_RATIO,D$),t?(!Z.default.greaterThan(r,W$.MIN_SQRT_RATIO)&&Q(!1),!Z.default.lessThan(r,this.sqrtRatioX96)&&Q(!1)):(!Z.default.lessThan(r,W$.MAX_SQRT_RATIO)&&Q(!1),!Z.default.greaterThan(r,this.sqrtRatioX96)&&Q(!1)),i=Z.default.greaterThanOrEqual(n,E$),a={amountSpecifiedRemaining:n,amountCalculated:E$,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!(Z.default.notEqual(a.amountSpecifiedRemaining,E$)&&a.sqrtPriceX96!=r)){e.next=35;break}return o={},o.sqrtPriceStartX96=a.sqrtPriceX96,e.next=9,this.tickDataProvider.nextInitializedTickWithinOneWord(a.tick,t,this.tickSpacing);case 9:if(s=e.sent,o.tickNext=s[0],o.initialized=s[1],o.tickNext<W$.MIN_TICK?o.tickNext=W$.MIN_TICK:o.tickNext>W$.MAX_TICK&&(o.tickNext=W$.MAX_TICK),o.sqrtPriceNextX96=W$.getSqrtRatioAtTick(o.tickNext),c=R$.computeSwapStep(a.sqrtPriceX96,(t?Z.default.lessThan(o.sqrtPriceNextX96,r):Z.default.greaterThan(o.sqrtPriceNextX96,r))?r:o.sqrtPriceNextX96,a.liquidity,a.amountSpecifiedRemaining,this.fee),a.sqrtPriceX96=c[0],o.amountIn=c[1],o.amountOut=c[2],o.feeAmount=c[3],i?(a.amountSpecifiedRemaining=Z.default.subtract(a.amountSpecifiedRemaining,Z.default.add(o.amountIn,o.feeAmount)),a.amountCalculated=Z.default.subtract(a.amountCalculated,o.amountOut)):(a.amountSpecifiedRemaining=Z.default.add(a.amountSpecifiedRemaining,o.amountOut),a.amountCalculated=Z.default.add(a.amountCalculated,Z.default.add(o.amountIn,o.feeAmount))),!Z.default.equal(a.sqrtPriceX96,o.sqrtPriceNextX96)){e.next=32;break}if(!o.initialized){e.next=29;break}return e.t0=Z.default,e.next=25,this.tickDataProvider.getTick(o.tickNext);case 25:e.t1=e.sent.liquidityNet,l=e.t0.BigInt.call(e.t0,e.t1),t&&(l=Z.default.multiply(l,T$)),a.liquidity=j$.addDelta(a.liquidity,l);case 29:a.tick=t?o.tickNext-1:o.tickNext,e.next=33;break;case 32:Z.default.notEqual(a.sqrtPriceX96,o.sqrtPriceStartX96)&&(a.tick=W$.getTickAtSqrtRatio(a.sqrtPriceX96));case 33:e.next=4;break;case 35:return e.abrupt(`return`,{amountCalculated:a.amountCalculated,sqrtRatioX96:a.sqrtPriceX96,liquidity:a.liquidity,tickCurrent:a.tick});case 36:case`end`:return e.stop()}},e,this)}));function t(t,n,r){return e.apply(this,arguments)}return t}(),d$(e,[{key:`token0Price`,get:function(){return this._token0Price??=new aZ(this.token0,this.token1,k$,Z.default.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:`token1Price`,get:function(){return this._token1Price??=new aZ(this.token1,this.token0,Z.default.multiply(this.sqrtRatioX96,this.sqrtRatioX96),k$)}},{key:`chainId`,get:function(){return this.token0.chainId}},{key:`tickSpacing`,get:function(){return w$[this.fee]}}]),e}(),s1=function(){function e(e){var t=e.pool,n=e.liquidity,r=e.tickLower,i=e.tickUpper;this._token0Amount=null,this._token1Amount=null,this._mintAmounts=null,!(r<i)&&Q(!1),!(r>=W$.MIN_TICK&&r%t.tickSpacing===0)&&Q(!1),!(i<=W$.MAX_TICK&&i%t.tickSpacing===0)&&Q(!1),this.pool=t,this.tickLower=r,this.tickUpper=i,this.liquidity=Z.default.BigInt(n)}var t=e.prototype;return t.ratiosAfterSlippage=function(e){var t=this.pool.token0Price.asFraction.multiply(new iZ(1).subtract(e)),n=this.pool.token0Price.asFraction.multiply(e.add(1)),r=Z$(t.numerator,t.denominator);Z.default.lessThanOrEqual(r,W$.MIN_SQRT_RATIO)&&(r=Z.default.add(W$.MIN_SQRT_RATIO,Z.default.BigInt(1)));var i=Z$(n.numerator,n.denominator);return Z.default.greaterThanOrEqual(i,W$.MAX_SQRT_RATIO)&&(i=Z.default.subtract(W$.MAX_SQRT_RATIO,Z.default.BigInt(1))),{sqrtRatioX96Lower:r,sqrtRatioX96Upper:i}},t.mintAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,a=new o1(this.pool.token0,this.pool.token1,this.pool.fee,i,0,W$.getTickAtSqrtRatio(i)),o=new o1(this.pool.token0,this.pool.token1,this.pool.fee,r,0,W$.getTickAtSqrtRatio(r)),s=e.fromAmounts(f$({pool:this.pool,tickLower:this.tickLower,tickUpper:this.tickUpper},this.mintAmounts,{useFullPrecision:!1}));return{amount0:new e({pool:o,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount0,amount1:new e({pool:a,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount1}},t.burnAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,a=new o1(this.pool.token0,this.pool.token1,this.pool.fee,i,0,W$.getTickAtSqrtRatio(i)),o=new e({pool:new o1(this.pool.token0,this.pool.token1,this.pool.fee,r,0,W$.getTickAtSqrtRatio(r)),liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount0,s=new e({pool:a,liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount1;return{amount0:o.quotient,amount1:s.quotient}},e.fromAmounts=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount0,o=t.amount1,s=t.useFullPrecision,c=W$.getSqrtRatioAtTick(r),l=W$.getSqrtRatioAtTick(i);return new e({pool:n,tickLower:r,tickUpper:i,liquidity:t1(n.sqrtRatioX96,c,l,a,o,s)})},e.fromAmount0=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount0,o=t.useFullPrecision;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:a,amount1:KX,useFullPrecision:o})},e.fromAmount1=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount1;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:KX,amount1:a,useFullPrecision:!0})},d$(e,[{key:`token0PriceLower`,get:function(){return n1(this.pool.token0,this.pool.token1,this.tickLower)}},{key:`token0PriceUpper`,get:function(){return n1(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:`amount0`,get:function(){return this._token0Amount===null&&(this.pool.tickCurrent<this.tickLower?this._token0Amount=tZ.fromRawAmount(this.pool.token0,I$.getAmount0Delta(W$.getSqrtRatioAtTick(this.tickLower),W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this.pool.tickCurrent<this.tickUpper?this._token0Amount=tZ.fromRawAmount(this.pool.token0,I$.getAmount0Delta(this.pool.sqrtRatioX96,W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this._token0Amount=tZ.fromRawAmount(this.pool.token0,E$)),this._token0Amount}},{key:`amount1`,get:function(){return this._token1Amount===null&&(this.pool.tickCurrent<this.tickLower?this._token1Amount=tZ.fromRawAmount(this.pool.token1,E$):this.pool.tickCurrent<this.tickUpper?this._token1Amount=tZ.fromRawAmount(this.pool.token1,I$.getAmount1Delta(W$.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!1)):this._token1Amount=tZ.fromRawAmount(this.pool.token1,I$.getAmount1Delta(W$.getSqrtRatioAtTick(this.tickLower),W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount}},{key:`mintAmounts`,get:function(){return this._mintAmounts===null?this.pool.tickCurrent<this.tickLower?{amount0:I$.getAmount0Delta(W$.getSqrtRatioAtTick(this.tickLower),W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:E$}:this.pool.tickCurrent<this.tickUpper?{amount0:I$.getAmount0Delta(this.pool.sqrtRatioX96,W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:I$.getAmount1Delta(W$.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:E$,amount1:I$.getAmount1Delta(W$.getSqrtRatioAtTick(this.tickLower),W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts}}]),e}(),c1=function(){function e(e,t,n){this._midPrice=null,!(e.length>0)&&Q(!1);var r=e[0].chainId;!e.every(function(e){return e.chainId===r})&&Q(!1);var i=t.wrapped;!e[0].involvesToken(i)&&Q(!1),!e[e.length-1].involvesToken(n.wrapped)&&Q(!1);for(var a=[i],o=g$(e.entries()),s;!(s=o()).done;){var c=s.value,l=c[0],u=c[1],d=a[l];!(d.equals(u.token0)||d.equals(u.token1))&&Q(!1);var f=d.equals(u.token0)?u.token1:u.token0;a.push(f)}this.pools=e,this.tokenPath=a,this.input=t,this.output=n??a[a.length-1]}return d$(e,[{key:`chainId`,get:function(){return this.pools[0].chainId}},{key:`midPrice`,get:function(){if(this._midPrice!==null)return this._midPrice;var e=this.pools.slice(1).reduce(function(e,t){var n=e.nextInput,r=e.price;return n.equals(t.token0)?{nextInput:t.token1,price:r.multiply(t.token0Price)}:{nextInput:t.token0,price:r.multiply(t.token1Price)}},this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new aZ(this.input,this.output,e.denominator,e.numerator)}}]),e}();function l1(e,t){return!e.inputAmount.currency.equals(t.inputAmount.currency)&&Q(!1),!e.outputAmount.currency.equals(t.outputAmount.currency)&&Q(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce(function(e,t){return e+t.route.tokenPath.length},0)-t.swaps.reduce(function(e,t){return e+t.route.tokenPath.length},0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var u1=function(){function e(e){var t=e.routes,n=e.tradeType,r=t[0].inputAmount.currency,i=t[0].outputAmount.currency;!t.every(function(e){var t=e.route;return r.wrapped.equals(t.input.wrapped)})&&Q(!1),!t.every(function(e){var t=e.route;return i.wrapped.equals(t.output.wrapped)})&&Q(!1);for(var a=t.map(function(e){return e.route.pools.length}).reduce(function(e,t){return e+t},0),o=new Set,s=g$(t),c;!(c=s()).done;)for(var l=c.value.route,u=g$(l.pools),d;!(d=u()).done;){var f=d.value;o.add(o1.getAddress(f.token0,f.token1,f.fee))}a!=o.size&&Q(!1),this.swaps=t,this.tradeType=n}e.exactIn=function(){var t=l$(v$.mark(function t(n,r){return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(`return`,e.fromRoute(n,r,WX.EXACT_INPUT));case 1:case`end`:return t.stop()}},t)}));function n(e,n){return t.apply(this,arguments)}return n}(),e.exactOut=function(){var t=l$(v$.mark(function t(n,r){return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(`return`,e.fromRoute(n,r,WX.EXACT_OUTPUT));case 1:case`end`:return t.stop()}},t)}));function n(e,n){return t.apply(this,arguments)}return n}(),e.fromRoute=function(){var t=l$(v$.mark(function t(n,r,i){var a,o,s,c,l,u,d,f,p,m,h;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(a=Array(n.tokenPath.length),i!==WX.EXACT_INPUT){t.next=19;break}!r.currency.equals(n.input)&&Q(!1),a[0]=r.wrapped,c=0;case 5:if(!(c<n.tokenPath.length-1)){t.next=15;break}return l=n.pools[c],t.next=9,l.getOutputAmount(a[c]);case 9:u=t.sent,d=u[0],a[c+1]=d;case 12:c++,t.next=5;break;case 15:o=tZ.fromFractionalAmount(n.input,r.numerator,r.denominator),s=tZ.fromFractionalAmount(n.output,a[a.length-1].numerator,a[a.length-1].denominator),t.next=34;break;case 19:!r.currency.equals(n.output)&&Q(!1),a[a.length-1]=r.wrapped,f=n.tokenPath.length-1;case 22:if(!(f>0)){t.next=32;break}return p=n.pools[f-1],t.next=26,p.getInputAmount(a[f]);case 26:m=t.sent,h=m[0],a[f-1]=h;case 29:f--,t.next=22;break;case 32:o=tZ.fromFractionalAmount(n.input,a[0].numerator,a[0].denominator),s=tZ.fromFractionalAmount(n.output,r.numerator,r.denominator);case 34:return t.abrupt(`return`,new e({routes:[{inputAmount:o,outputAmount:s,route:n}],tradeType:i}));case 35:case`end`:return t.stop()}},t)}));function n(e,n,r){return t.apply(this,arguments)}return n}(),e.fromRoutes=function(){var t=l$(v$.mark(function t(n,r){var i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:i=[],a=g$(n);case 2:if((o=a()).done){t.next=43;break}if(s=o.value,c=s.route,l=s.amount,u=Array(c.tokenPath.length),d=void 0,f=void 0,r!==WX.EXACT_INPUT){t.next=25;break}!l.currency.equals(c.input)&&Q(!1),d=tZ.fromFractionalAmount(c.input,l.numerator,l.denominator),u[0]=tZ.fromFractionalAmount(c.input.wrapped,l.numerator,l.denominator),p=0;case 12:if(!(p<c.tokenPath.length-1)){t.next=22;break}return m=c.pools[p],t.next=16,m.getOutputAmount(u[p]);case 16:h=t.sent,g=h[0],u[p+1]=g;case 19:p++,t.next=12;break;case 22:f=tZ.fromFractionalAmount(c.output,u[u.length-1].numerator,u[u.length-1].denominator),t.next=40;break;case 25:!l.currency.equals(c.output)&&Q(!1),f=tZ.fromFractionalAmount(c.output,l.numerator,l.denominator),u[u.length-1]=tZ.fromFractionalAmount(c.output.wrapped,l.numerator,l.denominator),_=c.tokenPath.length-1;case 29:if(!(_>0)){t.next=39;break}return v=c.pools[_-1],t.next=33,v.getInputAmount(u[_]);case 33:y=t.sent,b=y[0],u[_-1]=b;case 36:_--,t.next=29;break;case 39:d=tZ.fromFractionalAmount(c.input,u[0].numerator,u[0].denominator);case 40:i.push({route:c,inputAmount:d,outputAmount:f});case 41:t.next=2;break;case 43:return t.abrupt(`return`,new e({routes:i,tradeType:r}));case 44:case`end`:return t.stop()}},t)}));function n(e,n){return t.apply(this,arguments)}return n}(),e.createUncheckedTrade=function(t){return new e(f$({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){if(t===void 0&&(t=this.outputAmount),e.lessThan(E$)&&Q(!1),this.tradeType===WX.EXACT_OUTPUT)return t;var n=new $X(D$).add(e).invert().multiply(t.quotient).quotient;return tZ.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(t===void 0&&(t=this.inputAmount),e.lessThan(E$)&&Q(!1),this.tradeType===WX.EXACT_INPUT)return t;var n=new $X(D$).add(e).multiply(t.quotient).quotient;return tZ.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new aZ(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=l$(v$.mark(function t(n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:l=a===void 0?{}:a,u=l.maxNumResults,d=u===void 0?3:u,f=l.maxHops,p=f===void 0?3:f,o===void 0&&(o=[]),s===void 0&&(s=r),c===void 0&&(c=[]),!(n.length>0)&&Q(!1),!(p>0)&&Q(!1),!(r===s||o.length>0)&&Q(!1),m=s.wrapped,h=i.wrapped,g=0;case 10:if(!(g<n.length)){t.next=46;break}if(_=n[g],!(!_.token0.equals(m.currency)&&!_.token1.equals(m.currency))){t.next=14;break}return t.abrupt(`continue`,43);case 14:return v=void 0,t.prev=15,t.next=19,_.getOutputAmount(m);case 19:y=t.sent,v=y[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientInputAmountError){t.next=27;break}return t.abrupt(`continue`,43);case 27:throw t.t0;case 28:if(!(v.currency.isToken&&v.currency.equals(h))){t.next=39;break}return t.t1=hZ,t.t2=c,t.next=33,e.fromRoute(new c1([].concat(o,[_]),r.currency,i),r,WX.EXACT_INPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=l1,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return b=n.slice(0,g).concat(n.slice(g+1,n.length)),t.next=43,e.bestTradeExactIn(b,r,i,{maxNumResults:d,maxHops:p-1},[].concat(o,[_]),v,c);case 43:g++,t.next=10;break;case 46:return t.abrupt(`return`,c);case 47:case`end`:return t.stop()}},t,null,[[15,23]])}));function n(e,n,r,i,a,o,s){return t.apply(this,arguments)}return n}(),e.bestTradeExactOut=function(){var t=l$(v$.mark(function t(n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:l=a===void 0?{}:a,u=l.maxNumResults,d=u===void 0?3:u,f=l.maxHops,p=f===void 0?3:f,o===void 0&&(o=[]),s===void 0&&(s=i),c===void 0&&(c=[]),!(n.length>0)&&Q(!1),!(p>0)&&Q(!1),!(i===s||o.length>0)&&Q(!1),m=s.wrapped,h=r.wrapped,g=0;case 10:if(!(g<n.length)){t.next=46;break}if(_=n[g],!(!_.token0.equals(m.currency)&&!_.token1.equals(m.currency))){t.next=14;break}return t.abrupt(`continue`,43);case 14:return v=void 0,t.prev=15,t.next=19,_.getInputAmount(m);case 19:y=t.sent,v=y[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientReservesError){t.next=27;break}return t.abrupt(`continue`,43);case 27:throw t.t0;case 28:if(!v.currency.equals(h)){t.next=39;break}return t.t1=hZ,t.t2=c,t.next=33,e.fromRoute(new c1([_].concat(o),r,i.currency),i,WX.EXACT_OUTPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=l1,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return b=n.slice(0,g).concat(n.slice(g+1,n.length)),t.next=43,e.bestTradeExactOut(b,r,i,{maxNumResults:d,maxHops:p-1},[_].concat(o),v,c);case 43:g++,t.next=10;break;case 46:return t.abrupt(`return`,c);case 47:case`end`:return t.stop()}},t,null,[[15,23]])}));function n(e,n,r,i,a,o,s){return t.apply(this,arguments)}return n}(),d$(e,[{key:`route`,get:function(){return this.swaps.length!=1&&Q(!1),this.swaps[0].route}},{key:`inputAmount`,get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map(function(e){return e.inputAmount}).reduce(function(e,t){return e.add(t)},tZ.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:`outputAmount`,get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map(function(e){return e.outputAmount}).reduce(function(e,t){return e.add(t)},tZ.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:`executionPrice`,get:function(){return this._executionPrice??=new aZ(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:`priceImpact`,get:function(){if(this._priceImpact)return this._priceImpact;for(var e=tZ.fromRawAmount(this.outputAmount.currency,0),t=g$(this.swaps),n;!(n=t()).done;){var r=n.value,i=r.route,a=r.inputAmount,o=i.midPrice;e=e.add(o.quote(a))}var s=e.subtract(this.outputAmount).divide(e);return this._priceImpact=new iZ(s.numerator,s.denominator),this._priceImpact}}]),e}(),d1=function(){function e(){}return e.encodeMulticall=function(t){return Array.isArray(t)||(t=[t]),t.length===1?t[0]:e.INTERFACE.encodeFunctionData(`multicall`,[t])},e}();d1.INTERFACE=new KQ(e$);function f1(e){return`nonce`in e}var p1=function(){function e(){}return e.encodePermit=function(t,n){return f1(n)?e.INTERFACE.encodeFunctionData(`selfPermitAllowed`,[t.address,Y$(n.nonce),Y$(n.expiry),n.v,n.r,n.s]):e.INTERFACE.encodeFunctionData(`selfPermit`,[t.address,Y$(n.amount),Y$(n.deadline),n.v,n.r,n.s])},e}();p1.INTERFACE=new KQ(n$);var m1=function(){function e(){}return e.encodeFeeBips=function(e){return Y$(e.multiply(1e4).quotient)},e.encodeUnwrapWETH9=function(t,n,r){if(n=cZ(n),r){var i=this.encodeFeeBips(r.fee),a=cZ(r.recipient);return e.INTERFACE.encodeFunctionData(`unwrapWETH9WithFee`,[Y$(t),n,i,a])}else return e.INTERFACE.encodeFunctionData(`unwrapWETH9`,[Y$(t),n])},e.encodeSweepToken=function(t,n,r,i){if(r=cZ(r),i){var a=this.encodeFeeBips(i.fee),o=cZ(i.recipient);return e.INTERFACE.encodeFunctionData(`sweepTokenWithFee`,[t.address,Y$(n),r,a,o])}else return e.INTERFACE.encodeFunctionData(`sweepToken`,[t.address,Y$(n),r])},e.encodeRefundETH=function(){return e.INTERFACE.encodeFunctionData(`refundETH`)},e}();m1.INTERFACE=new KQ(r$);var h1=Y$(Z.default.subtract(Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(128)),Z.default.BigInt(1)));function g1(e){return Object.keys(e).some(function(e){return e===`recipient`})}var _1=function(){function e(){}return e.encodeCreate=function(t){return e.INTERFACE.encodeFunctionData(`createAndInitializePoolIfNecessary`,[t.token0.address,t.token1.address,t.fee,Y$(t.sqrtRatioX96)])},e.createCallParameters=function(e){return{calldata:this.encodeCreate(e),value:Y$(0)}},e.addCallParameters=function(t,n){!Z.default.greaterThan(t.liquidity,E$)&&Q(!1);var r=[],i=t.mintAmounts,a=i.amount0,o=i.amount1,s=t.mintAmountsWithSlippage(n.slippageTolerance),c=Y$(s.amount0),l=Y$(s.amount1),u=Y$(n.deadline);if(g1(n)&&n.createPool&&r.push(this.encodeCreate(t.pool)),n.token0Permit&&r.push(p1.encodePermit(t.pool.token0,n.token0Permit)),n.token1Permit&&r.push(p1.encodePermit(t.pool.token1,n.token1Permit)),g1(n)){var d=cZ(n.recipient);r.push(e.INTERFACE.encodeFunctionData(`mint`,[{token0:t.pool.token0.address,token1:t.pool.token1.address,fee:t.pool.fee,tickLower:t.tickLower,tickUpper:t.tickUpper,amount0Desired:Y$(a),amount1Desired:Y$(o),amount0Min:c,amount1Min:l,recipient:d,deadline:u}]))}else r.push(e.INTERFACE.encodeFunctionData(`increaseLiquidity`,[{tokenId:Y$(n.tokenId),amount0Desired:Y$(a),amount1Desired:Y$(o),amount0Min:c,amount1Min:l,deadline:u}]));var f=Y$(0);if(n.useNative){var p=n.useNative.wrapped;!(t.pool.token0.equals(p)||t.pool.token1.equals(p))&&Q(!1);var m=t.pool.token0.equals(p)?a:o;Z.default.greaterThan(m,E$)&&r.push(m1.encodeRefundETH()),f=Y$(m)}return{calldata:d1.encodeMulticall(r),value:f}},e.encodeCollect=function(t){var n=[],r=Y$(t.tokenId),i=t.expectedCurrencyOwed0.currency.isNative||t.expectedCurrencyOwed1.currency.isNative,a=cZ(t.recipient);if(n.push(e.INTERFACE.encodeFunctionData(`collect`,[{tokenId:r,recipient:i?x$:a,amount0Max:h1,amount1Max:h1}])),i){var o=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed0.quotient:t.expectedCurrencyOwed1.quotient,s=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.currency:t.expectedCurrencyOwed0.currency,c=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.quotient:t.expectedCurrencyOwed0.quotient;n.push(m1.encodeUnwrapWETH9(o,a)),n.push(m1.encodeSweepToken(s,c,a))}return n},e.collectCallParameters=function(t){var n=e.encodeCollect(t);return{calldata:d1.encodeMulticall(n),value:Y$(0)}},e.removeCallParameters=function(t,n){var r=[],i=Y$(n.deadline),a=Y$(n.tokenId),o=new s1({pool:t.pool,liquidity:n.liquidityPercentage.multiply(t.liquidity).quotient,tickLower:t.tickLower,tickUpper:t.tickUpper});!Z.default.greaterThan(o.liquidity,E$)&&Q(!1);var s=o.burnAmountsWithSlippage(n.slippageTolerance),c=s.amount0,l=s.amount1;n.permit&&r.push(e.INTERFACE.encodeFunctionData(`permit`,[cZ(n.permit.spender),a,Y$(n.permit.deadline),n.permit.v,n.permit.r,n.permit.s])),r.push(e.INTERFACE.encodeFunctionData(`decreaseLiquidity`,[{tokenId:a,liquidity:Y$(o.liquidity),amount0Min:Y$(c),amount1Min:Y$(l),deadline:i}]));var u=n.collectOptions,d=u.expectedCurrencyOwed0,f=u.expectedCurrencyOwed1,p=p$(u,[`expectedCurrencyOwed0`,`expectedCurrencyOwed1`]);return r.push.apply(r,e.encodeCollect(f$({tokenId:Y$(n.tokenId),expectedCurrencyOwed0:d.add(tZ.fromRawAmount(d.currency,c)),expectedCurrencyOwed1:f.add(tZ.fromRawAmount(f.currency,l))},p))),n.liquidityPercentage.equalTo(D$)?n.burnToken&&r.push(e.INTERFACE.encodeFunctionData(`burn`,[a])):n.burnToken===!0&&Q(!1),{calldata:d1.encodeMulticall(r),value:Y$(0)}},e.safeTransferFromParameters=function(t){var n=cZ(t.recipient),r=cZ(t.sender);return{calldata:t.data?e.INTERFACE.encodeFunctionData(`safeTransferFrom(address,address,uint256,bytes)`,[r,n,Y$(t.tokenId),t.data]):e.INTERFACE.encodeFunctionData(`safeTransferFrom(address,address,uint256)`,[r,n,Y$(t.tokenId)]),value:Y$(0)}},e}();_1.INTERFACE=new KQ(t$);var v1=function(){function e(){}return e.quoteCallParameters=function(e,t,n,r){r===void 0&&(r={});var i=e.pools.length===1,a=Y$(t.quotient),o,s=r.useQuoterV2?this.V2INTERFACE:this.V1INTERFACE;if(i){var c={tokenIn:e.tokenPath[0].address,tokenOut:e.tokenPath[1].address,fee:e.pools[0].fee,sqrtPriceLimitX96:Y$(r?.sqrtPriceLimitX96??0)},l=f$({},c,n==WX.EXACT_INPUT?{amountIn:a}:{amount:a}),u=[c.tokenIn,c.tokenOut,c.fee,a,c.sqrtPriceLimitX96],d=n===WX.EXACT_INPUT?`quoteExactInputSingle`:`quoteExactOutputSingle`;o=s.encodeFunctionData(d,r.useQuoterV2?[l]:u)}else{r?.sqrtPriceLimitX96!==void 0&&Q(!1);var f=X$(e,n===WX.EXACT_OUTPUT),p=n===WX.EXACT_INPUT?`quoteExactInput`:`quoteExactOutput`;o=s.encodeFunctionData(p,[f,a])}return{calldata:o,value:Y$(0)}},e}();v1.V1INTERFACE=new KQ(i$),v1.V2INTERFACE=new KQ(a$);var y1=function(){function e(){}return e.encodeClaim=function(t,n){var r=[];r.push(e.INTERFACE.encodeFunctionData(`unstakeToken`,[this._encodeIncentiveKey(t),Y$(n.tokenId)]));var i=cZ(n.recipient),a=n.amount??0;return r.push(e.INTERFACE.encodeFunctionData(`claimReward`,[t.rewardToken.address,i,Y$(a)])),r},e.collectRewards=function(t,n){t=Array.isArray(t)?t:[t];for(var r=[],i=0;i<t.length;i++){var a=t[i];r=r.concat(this.encodeClaim(a,n)),r.push(e.INTERFACE.encodeFunctionData(`stakeToken`,[this._encodeIncentiveKey(a),Y$(n.tokenId)]))}return{calldata:d1.encodeMulticall(r),value:Y$(0)}},e.withdrawToken=function(t,n){var r=[];t=Array.isArray(t)?t:[t];for(var i={tokenId:n.tokenId,recipient:n.recipient,amount:n.amount},a=0;a<t.length;a++){var o=t[a];r=r.concat(this.encodeClaim(o,i))}var s=cZ(n.owner);return r.push(e.INTERFACE.encodeFunctionData(`withdrawToken`,[Y$(n.tokenId),s,n.data?n.data:Y$(0)])),{calldata:d1.encodeMulticall(r),value:Y$(0)}},e.encodeDeposit=function(t){t=Array.isArray(t)?t:[t];var n;if(t.length>1){for(var r=[],i=0;i<t.length;i++){var a=t[i];r.push(this._encodeIncentiveKey(a))}n=LQ.encode([e.INCENTIVE_KEY_ABI+`[]`],[r])}else n=LQ.encode([e.INCENTIVE_KEY_ABI],[this._encodeIncentiveKey(t[0])]);return n},e._encodeIncentiveKey=function(e){var t=e.pool,n=t.token0,r=t.token1,i=t.fee,a=cZ(e.refundee);return{rewardToken:e.rewardToken.address,pool:o1.getAddress(n,r,i),startTime:Y$(e.startTime),endTime:Y$(e.endTime),refundee:a}},e}();y1.INTERFACE=new KQ(o$),y1.INCENTIVE_KEY_ABI=`tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)`;var b1=function(){function e(){}return e.swapCallParameters=function(t,n){Array.isArray(t)||(t=[t]);var r=t[0],i=r.inputAmount.currency.wrapped,a=r.outputAmount.currency.wrapped;!t.every(function(e){return e.inputAmount.currency.wrapped.equals(i)})&&Q(!1),!t.every(function(e){return e.outputAmount.currency.wrapped.equals(a)})&&Q(!1);var o=[],s=tZ.fromRawAmount(t[0].inputAmount.currency,0),c=tZ.fromRawAmount(t[0].outputAmount.currency,0),l=t.reduce(function(e,t){return e.add(t.minimumAmountOut(n.slippageTolerance))},c),u=r.inputAmount.currency.isNative&&r.tradeType===WX.EXACT_OUTPUT,d=r.inputAmount.currency.isNative,f=r.outputAmount.currency.isNative,p=f||!!n.fee,m=d?t.reduce(function(e,t){return e.add(t.maximumAmountIn(n.slippageTolerance))},s):s;n.inputTokenPermit&&(!r.inputAmount.currency.isToken&&Q(!1),o.push(p1.encodePermit(r.inputAmount.currency,n.inputTokenPermit)));for(var h=cZ(n.recipient),g=Y$(n.deadline),_=g$(t),v;!(v=_()).done;)for(var y=v.value,b=g$(y.swaps),x;!(x=b()).done;){var S=x.value,C=S.route,w=S.inputAmount,T=S.outputAmount,E=Y$(y.maximumAmountIn(n.slippageTolerance,w).quotient),D=Y$(y.minimumAmountOut(n.slippageTolerance,T).quotient);if(C.pools.length===1)if(y.tradeType===WX.EXACT_INPUT){var O={tokenIn:C.tokenPath[0].address,tokenOut:C.tokenPath[1].address,fee:C.pools[0].fee,recipient:p?x$:h,deadline:g,amountIn:E,amountOutMinimum:D,sqrtPriceLimitX96:Y$(n.sqrtPriceLimitX96??0)};o.push(e.INTERFACE.encodeFunctionData(`exactInputSingle`,[O]))}else{var k={tokenIn:C.tokenPath[0].address,tokenOut:C.tokenPath[1].address,fee:C.pools[0].fee,recipient:p?x$:h,deadline:g,amountOut:D,amountInMaximum:E,sqrtPriceLimitX96:Y$(n.sqrtPriceLimitX96??0)};o.push(e.INTERFACE.encodeFunctionData(`exactOutputSingle`,[k]))}else{n.sqrtPriceLimitX96!==void 0&&Q(!1);var A=X$(C,y.tradeType===WX.EXACT_OUTPUT);if(y.tradeType===WX.EXACT_INPUT){var j={path:A,recipient:p?x$:h,deadline:g,amountIn:E,amountOutMinimum:D};o.push(e.INTERFACE.encodeFunctionData(`exactInput`,[j]))}else{var M={path:A,recipient:p?x$:h,deadline:g,amountOut:D,amountInMaximum:E};o.push(e.INTERFACE.encodeFunctionData(`exactOutput`,[M]))}}}return p&&(n.fee?f?o.push(m1.encodeUnwrapWETH9(l.quotient,h,n.fee)):o.push(m1.encodeSweepToken(r.outputAmount.currency.wrapped,l.quotient,h,n.fee)):o.push(m1.encodeUnwrapWETH9(l.quotient,h))),u&&o.push(m1.encodeRefundETH()),{calldata:d1.encodeMulticall(o),value:Y$(m.quotient)}},e}();b1.INTERFACE=new KQ(s$);var x1=[{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`approveMax`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`approveMaxMinusOne`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`approveZeroThenMax`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`approveZeroThenMaxMinusOne`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes`,name:`data`,type:`bytes`}],name:`callPositionManager`,outputs:[{internalType:`bytes`,name:`result`,type:`bytes`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`}],internalType:`struct IV3SwapRouter.ExactInputParams`,name:`params`,type:`tuple`}],name:`exactInput`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IV3SwapRouter.ExactInputSingleParams`,name:`params`,type:`tuple`}],name:`exactInputSingle`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`}],internalType:`struct IV3SwapRouter.ExactOutputParams`,name:`params`,type:`tuple`}],name:`exactOutput`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IV3SwapRouter.ExactOutputSingleParams`,name:`params`,type:`tuple`}],name:`exactOutputSingle`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`getApprovalType`,outputs:[{internalType:`enum IApproveAndCall.ApprovalType`,name:``,type:`uint8`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`token0`,type:`address`},{internalType:`address`,name:`token1`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`uint256`,name:`amount0Min`,type:`uint256`},{internalType:`uint256`,name:`amount1Min`,type:`uint256`}],internalType:`struct IApproveAndCall.IncreaseLiquidityParams`,name:`params`,type:`tuple`}],name:`increaseLiquidity`,outputs:[{internalType:`bytes`,name:`result`,type:`bytes`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`token0`,type:`address`},{internalType:`address`,name:`token1`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint256`,name:`amount0Min`,type:`uint256`},{internalType:`uint256`,name:`amount1Min`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],internalType:`struct IApproveAndCall.MintParams`,name:`params`,type:`tuple`}],name:`mint`,outputs:[{internalType:`bytes`,name:`result`,type:`bytes`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`previousBlockhash`,type:`bytes32`},{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowed`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowedIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMin`,type:`uint256`},{internalType:`address[]`,name:`path`,type:`address[]`},{internalType:`address`,name:`to`,type:`address`}],name:`swapExactTokensForTokens`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMax`,type:`uint256`},{internalType:`address[]`,name:`path`,type:`address[]`},{internalType:`address`,name:`to`,type:`address`}],name:`swapTokensForExactTokens`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`int256`,name:`amount0Delta`,type:`int256`},{internalType:`int256`,name:`amount1Delta`,type:`int256`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`uniswapV3SwapCallback`,outputs:[],stateMutability:`nonpayable`,type:`function`}],S1=[{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`}],name:`pull`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[],name:`refundETH`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`sweepToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`}],name:`sweepToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`sweepTokenWithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`sweepTokenWithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`unwrapWETH9`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`}],name:`unwrapWETH9`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`unwrapWETH9WithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`unwrapWETH9WithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`value`,type:`uint256`}],name:`wrapETH`,outputs:[],stateMutability:`payable`,type:`function`}],C1=class extends Error{message;code;constructor(e,t){super(e),this.message=e,this.code=t}},w1=class extends C1{constructor(e){super(e||`Invalid configuration`,`INVALID_CONFIGURATION`)}},T1=class extends C1{constructor(e,t){let n=`Chain with ID ${e} is not a supported chain in environment ${t}`;super(n,`CHAIN_NOT_SUPPORTED`)}},E1=class extends C1{constructor(e){super(e,`INVALID_SLIPPAGE`)}},D1=class extends C1{constructor(e){super(e,`INVALID_MAX_HOPS`)}},O1=class extends C1{constructor(e){super(e,`INVALID_ADDRESS`)}},k1=class extends C1{constructor(){super(`token in and token out addresses must be different`,`DUPLICATE_ADDRESSES`)}},A1=class extends C1{constructor(){super(`no routes available`,`NO_ROUTES_AVAILABLE`)}},j1=class extends C1{constructor(e){super(e,`PROVIDER_CALL_ERROR`)}},M1=class extends C1{constructor(e){super(e,`APPROVE_ERROR`)}};let N1=.1,P1=1e4,F1={"0xcdca1753":[`uint256`,`uint160[]`,`uint32[]`,`uint256`],"0xc6a5026a":[`uint256`,`uint160`,`uint32`,`uint256`],"0x2f80bb1d":[`uint256`,`uint160[]`,`uint32[]`,`uint256`],"0xbd21704a":[`uint256`,`uint160`,`uint32`,`uint256`]};function I1(e,t){return e===t||e.token0.equals(t.token0)&&e.token1.equals(t.token1)&&e.fee===t.fee}let L1=aN(`decimals()`).substring(0,10);async function R1(e,t,n){if(e===`native`)return n.decimals;try{let n=await t.call({to:e,data:L1});return parseInt(n,16)}catch(e){throw new j1(`failed to get ERC20 decimals: ${e instanceof Error?e.message:`Unknown Error`}`)}}function z1(e){if(e===`0x0000000000000000000000000000000000000000`)return!1;try{return Yj(e),!0}catch{return!1}}let B1=e=>e===`native`||z1(e),V1=e=>new mX(e.chainId,e.address,e.decimals,e.symbol,e.name),H1=e=>({chainId:e.chainId,address:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name,type:`erc20`}),U1=e=>{let t=V1(e.token);return iX.fromRawAmount(t,e.value.toString())},W1=(e,t)=>({value:e,token:t}),G1=e=>e.token.type===`erc20`,K1=e=>e.token.type===`native`,q1=e=>e.type===`native`,J1=(e,t)=>{if(e.token.address.toLowerCase()!==t.token.address.toLowerCase())throw Error(`Token mismatch: token addresses must be the same`);return{value:e.value+t.value,token:e.token}},Y1=(e,t)=>({value:e.value+t.value,token:e.token}),X1=(e,t)=>{if(G1(e)&&G1(t))return J1(e,t);if(K1(e)&&K1(t))return Y1(e,t);throw Error(`Token mismatch: token types must be the same`)},Z1=(e,t)=>{if(e.token.address.toLowerCase()!==t.token.address.toLowerCase())throw Error(`Token mismatch: token addresses must be the same`);return{value:e.value-t.value,token:e.token}},Q1=(e,t)=>({value:e.value-t.value,token:e.token}),$1=(e,t)=>{if(G1(e)&&G1(t))return Z1(e,t);if(K1(e)&&K1(t))return Q1(e,t);throw Error(`Token mismatch: token types must be the same`)},e0=e=>e.type===`native`?{address:`native`,chainId:e.chainId,decimals:e.decimals,symbol:e.symbol,name:e.name}:e,t0=e=>({token:e0(e.token),value:e.value}),n0=()=>Math.floor(Date.now()/1e3)+900,r0=13473,i0=13371,a0={chainId:r0,decimals:18,symbol:`tIMX`,name:`Immutable Testnet Token`,type:`native`},o0={chainId:r0,address:`0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439`,decimals:18,symbol:`WIMX`,name:`Wrapped Immutable Testnet Token`,type:`erc20`},s0=[o0],c0={chainId:i0,decimals:18,symbol:`IMX`,name:`Immutable Token`,type:`native`},l0={chainId:i0,address:`0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d`,decimals:18,symbol:`WIMX`,name:`Wrapped Immutable Token`,type:`erc20`},u0=[l0,{chainId:i0,address:`0x52a6c53869ce09a731cd772f245b97a4401d3348`,decimals:18,symbol:`ETH`,name:`Ethereum`,type:`erc20`},{chainId:i0,address:`0x6de8aCC0D406837030CE4dd28e7c08C5a96a30d2`,decimals:6,symbol:`USDC`,name:`USDC`,type:`erc20`},{chainId:i0,address:`0x68bcc7F1190AF20e7b572BCfb431c3Ac10A936Ab`,decimals:6,symbol:`USDT`,name:`USDT`,type:`erc20`}],d0=async e=>{let[t,n]=await Promise.all([e.getBlock(`latest`),e.send(`eth_maxPriorityFeePerGas`,[])]);if(!t?.baseFeePerGas)throw Error(`Base fee per gas not found in block`);let r=BigInt(n);return{maxFeePerGas:t.baseFeePerGas*BigInt(2)+r,maxPriorityFeePerGas:r,lastBaseFeePerGas:t.baseFeePerGas}},f0=async(e,t)=>{let n=await d0(e).catch(()=>null);return n?W1(n.maxFeePerGas,t):null},p0=(e,t,n)=>{let r=W1(n*t.value,t.token);return e?W1(r.value+t.value*BigInt(50876),t.token):r},m0=[{constant:!0,inputs:[],name:`name`,outputs:[{name:``,type:`string`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`_spender`,type:`address`},{name:`_value`,type:`uint256`}],name:`approve`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[],name:`totalSupply`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`_from`,type:`address`},{name:`_to`,type:`address`},{name:`_value`,type:`uint256`}],name:`transferFrom`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[],name:`decimals`,outputs:[{name:``,type:`uint8`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[{name:`_owner`,type:`address`}],name:`balanceOf`,outputs:[{name:`balance`,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[],name:`symbol`,outputs:[{name:``,type:`string`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`_to`,type:`address`},{name:`_value`,type:`uint256`}],name:`transfer`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[{name:`_owner`,type:`address`},{name:`_spender`,type:`address`}],name:`allowance`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{payable:!0,stateMutability:`payable`,type:`fallback`},{anonymous:!1,inputs:[{indexed:!0,name:`owner`,type:`address`},{indexed:!0,name:`spender`,type:`address`},{indexed:!1,name:`value`,type:`uint256`}],name:`Approval`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,name:`from`,type:`address`},{indexed:!0,name:`to`,type:`address`},{indexed:!1,name:`value`,type:`uint256`}],name:`Transfer`,type:`event`}];var h0=class{static abi=m0;static createInterface(){return new eI(m0)}static connect(e,t){return new JI(e,m0,t)}};let g0=async(e,t,n,r)=>{let i=h0.connect(n.token.address,e),a;try{a=await i.allowance(t,r)}catch(e){throw new M1(`failed to get allowance: ${e instanceof Error?e.message:`Unknown Error`}`)}return!(n.value-a<=0)},_0=(e,t,n)=>{if(e===n)throw new M1(`owner and spender addresses are the same`);return{data:h0.createInterface().encodeFunctionData(`approve`,[n,t.value]),to:t.token.address,value:0,from:e}},v0=(e,t,n,r,i)=>{let a=e===WY.EXACT_INPUT?t:n;return G1(a)?{spender:i.length===0?r.routerAddress:r.secondaryFeeAddress,amount:a}:null},y0=async(e,t,n,r)=>await g0(e,t,n,r)?_0(t,n,r):null;async function b0(e,t,n,r){return await h0.connect(r,e).approve.estimateGas(n,Oj,{from:t})}let x0=async(e,t,n,r)=>{let i=await y0(e,t,n.amount,n.spender);if(!i)return null;let a=await b0(e,t,n.spender,n.amount.token.address),o=r?p0(!1,r,a):null;return{transaction:i,gasFeeEstimate:o?t0(o):null}},S0=e=>e.type===`native`;var C0=class{nativeToken;wrappedToken;constructor(e,t){this.nativeToken=e,this.wrappedToken=t}wrapAmount(e){return W1(e.value,this.wrappedToken)}unwrapAmount(e){if(e.token.address.toLowerCase()!==this.wrappedToken.address.toLowerCase())throw Error(`cannot unwrap non-wrapped token ${e.token.address}`);return W1(e.value,this.nativeToken)}maybeWrapToken(e){return S0(e)?this.wrappedToken:e}maybeWrapAmount(e){return W1(e.value,this.maybeWrapToken(e.token))}isWrappedNative(e){return e.type===`erc20`&&e.address.toLowerCase()===this.wrappedToken.address.toLowerCase()}isWrapOrUnwrap(e,t){return e===this.nativeToken&&this.isWrappedNative(t)||this.isWrappedNative(e)&&t===this.nativeToken}};let w0=e=>{if(e.toString().split(`.`).length===1)return new sX(e,100);let t=(e/100).toString().split(`.`);return new sX(t[0]+t[1],10**t[1].length)};function T0(e){return e.tradeType===WY.EXACT_INPUT?e.amountOut:e.amountIn}function E0(e,t,n){let r=w0(n).add(1),i=(e===WY.EXACT_INPUT?r.invert():r).multiply(t.toString()).quotient;return BigInt(i.toString())}let D0=(e,t,n,r)=>{let i=T0(t),a=S0(r)?e.unwrapAmount(i):i;return{quotedAmount:a,quotedAmountWithMaxSlippage:W1(E0(t.tradeType,a.value,n),r)}};function O0(e,t,n,r){return n===WY.EXACT_OUTPUT?r.maybeWrapAmount(e):(t.addAmount(e),r.maybeWrapAmount(t.amountLessFees()))}var k0=class{secondaryFees;amount;constructor(e,t){this.secondaryFees=e,this.amount=W1(BigInt(0),t)}get token(){return this.amount.token}addAmount(e){this.amount=X1(this.amount,e)}amountWithFeesApplied(){return X1(this.amount,this.total())}amountLessFees(){return $1(this.amount,this.total())}withAmounts(){return this.secondaryFees.map(e=>{let t=this.amount.value*BigInt(e.basisPoints)/BigInt(P1);return{...e,amount:W1(t,this.amount.token)}})}total(){let e=W1(BigInt(0),this.amount.token);for(let t of this.secondaryFees){let n=this.amount.value*BigInt(t.basisPoints)/BigInt(P1);e=X1(e,W1(n,this.amount.token))}return e}};let A0=[{inputs:[{internalType:`address`,name:`_admin`,type:`address`},{internalType:`address`,name:`_uniRouter`,type:`address`},{internalType:`address`,name:`_wimx`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`ContractPaused`,type:`error`},{inputs:[],name:`DeadlinePassed`,type:`error`},{inputs:[],name:`FailedToRefundNativeTokens`,type:`error`},{inputs:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`FailedToSendFees`,type:`error`},{inputs:[{internalType:`uint256`,name:`required`,type:`uint256`},{internalType:`uint256`,name:`actual`,type:`uint256`}],name:`FailedToUnwrapNativeTokens`,type:`error`},{inputs:[],name:`FailedToWithdrawNativeTokens`,type:`error`},{inputs:[],name:`FeeTooHigh`,type:`error`},{inputs:[],name:`IncorrectRecipient`,type:`error`},{inputs:[],name:`InputTokenNotWrapped`,type:`error`},{inputs:[],name:`NativeTokenAmountMismatch`,type:`error`},{inputs:[],name:`Unauthorized`,type:`error`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`feeToken`,type:`address`},{indexed:!0,internalType:`address`,name:`feePayer`,type:`address`},{indexed:!0,internalType:`address`,name:`feeRecipient`,type:`address`},{indexed:!1,internalType:`uint256`,name:`feeAmount`,type:`uint256`}],name:`FeeTaken`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`feePayer`,type:`address`},{indexed:!0,internalType:`address`,name:`feeRecipient`,type:`address`},{indexed:!1,internalType:`uint256`,name:`feeAmount`,type:`uint256`}],name:`FeeTaken`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Paused`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`role`,type:`bytes32`},{indexed:!0,internalType:`bytes32`,name:`previousAdminRole`,type:`bytes32`},{indexed:!0,internalType:`bytes32`,name:`newAdminRole`,type:`bytes32`}],name:`RoleAdminChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`role`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`account`,type:`address`},{indexed:!0,internalType:`address`,name:`sender`,type:`address`}],name:`RoleGranted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`role`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`account`,type:`address`},{indexed:!0,internalType:`address`,name:`sender`,type:`address`}],name:`RoleRevoked`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Unpaused`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBasisPoints`,type:`uint256`}],internalType:`struct IImmutableSwapProxy.SecondaryFeeParams[]`,name:`secondaryFees`,type:`tuple[]`},{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IV3SwapRouter.ExactInputSingleParams`,name:`swapParams`,type:`tuple`}],name:`exactInputSingleWithSecondaryFee`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBasisPoints`,type:`uint256`}],internalType:`struct IImmutableSwapProxy.SecondaryFeeParams[]`,name:`secondaryFees`,type:`tuple[]`},{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`}],internalType:`struct IV3SwapRouter.ExactInputParams`,name:`swapParams`,type:`tuple`}],name:`exactInputWithSecondaryFee`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBasisPoints`,type:`uint256`}],internalType:`struct IImmutableSwapProxy.SecondaryFeeParams[]`,name:`secondaryFees`,type:`tuple[]`},{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IV3SwapRouter.ExactOutputSingleParams`,name:`swapParams`,type:`tuple`}],name:`exactOutputSingleWithSecondaryFee`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBasisPoints`,type:`uint256`}],internalType:`struct IImmutableSwapProxy.SecondaryFeeParams[]`,name:`secondaryFees`,type:`tuple[]`},{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`}],internalType:`struct IV3SwapRouter.ExactOutputParams`,name:`swapParams`,type:`tuple`}],name:`exactOutputWithSecondaryFee`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],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:`deadline`,type:`uint256`},{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:``,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`pause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`paused`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`renounceRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`unpause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`}],name:`unwrapNativeToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`address`,name:`erc20`,type:`address`}],name:`withdrawFunds`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`}],name:`withdrawFunds`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],j0=`0x60806040523480156200001157600080fd5b50604051620034dd380380620034dd83398101604081905262000034916200015c565b6001805460ff191690556200004b6000846200009e565b600180546001600160a01b039384166101008102610100600160a81b03199092169190911790915560038054929093166001600160a01b03199283161790925560028054909116909117905550620001a6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200013b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000fa3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b03811681146200015757600080fd5b919050565b6000806000606084860312156200017257600080fd5b6200017d846200013f565b92506200018d602085016200013f565b91506200019d604085016200013f565b90509250925092565b61332780620001b66000396000f3fe6080604052600436106101175760003560e01c806358e81a50116100a05780638456cb59116100645780638456cb59146102c457806391d14854146102d9578063a217fddf146102f9578063ac9650d81461030e578063d547741f1461032e57600080fd5b806358e81a50146102465780635ae401dc146102595780635c975abb146102795780635ebca7991461029157806368742da6146102a457600080fd5b80632f2ff15d116100e75780632f2ff15d146101cb57806336568abe146101eb578063383ebb0b1461020b5780633f4ba83a1461021e5780635640f6591461023357600080fd5b80620fa9fb1461012357806301ffc9a714610145578063116944b21461017a578063248a9ca31461019b57600080fd5b3661011e57005b600080fd5b34801561012f57600080fd5b5061014361013e366004612ab8565b61034e565b005b34801561015157600080fd5b50610165610160366004612af1565b61041a565b60405190151581526020015b60405180910390f35b61018d610188366004612c89565b610451565b604051908152602001610171565b3480156101a757600080fd5b5061018d6101b6366004612cde565b60009081526020819052604090206001015490565b3480156101d757600080fd5b506101436101e6366004612cf7565b610771565b3480156101f757600080fd5b50610143610206366004612cf7565b610796565b61018d610219366004612ddf565b610819565b34801561022a57600080fd5b50610143610b86565b61018d610241366004612ddf565b610bd6565b61018d610254366004612c89565b610ee4565b61026c610267366004612e8b565b61121e565b6040516101719190612f26565b34801561028557600080fd5b5060015460ff16610165565b61014361029f366004612cde565b611255565b3480156102b057600080fd5b506101436102bf366004612f88565b6113ad565b3480156102d057600080fd5b50610143611428565b3480156102e557600080fd5b506101656102f4366004612cf7565b611476565b34801561030557600080fd5b5061018d600081565b34801561031a57600080fd5b5061026c610329366004612fa5565b61149f565b34801561033a57600080fd5b50610143610349366004612cf7565b611593565b6103787f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b610394576040516282b42960e81b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff9190612fe6565b90506104156001600160a01b03831684836115b8565b505050565b60006001600160e01b03198216637965db0b60e01b148061044b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061045f60015460ff1690565b1561047d5760405163ab35696f60e01b815260040160405180910390fd5b61048a826060015161161b565b6104a75760405163519bdea760e01b815260040160405180910390fd5b608082015134801561065a57836080015181146104d7576040516342f7487960e11b815260040160405180910390fd5b60035484516001600160a01b03908116911614610507576040516324d0121760e01b815260040160405180910390fd5b60008061056f866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b828210156105655761055660408302860136819003810190612fff565b81526020019060010190610539565b5050505050611641565b608088018290526001546040516304e45aaf60e01b815292945090925061010090046001600160a01b0316906304e45aaf9084906105b1908a90600401613056565b60206040518083038185885af11580156105cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105f49190612fe6565b945061065384828a8a808060200260200160405190810160405280939291908181526020016000905b828210156106495761063a60408302860136819003810190612fff565b8152602001906001019061061d565b5050505050611679565b5050610768565b6000806106b8866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610565576106a960408302860136819003810190612fff565b8152602001906001019061068c565b60808801829052875191935091506106db906001600160a01b031633308561170c565b6001546040516304e45aaf60e01b81526101009091046001600160a01b0316906304e45aaf9061070f908990600401613056565b6020604051808303816000875af115801561072e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107529190612fe6565b9450610765866000015185838b8b61174a565b50505b50509392505050565b60008281526020819052604090206001015461078c8161184b565b6104158383611855565b6001600160a01b038116331461080b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61081582826118d9565b5050565b600061082760015460ff1690565b156108455760405163ab35696f60e01b815260040160405180910390fd5b610852826020015161161b565b61086f5760405163519bdea760e01b815260040160405180910390fd5b600061087e836000015161193e565b606084015190915034908115610a30576003546001600160a01b038481169116146108bc576040516324d0121760e01b815260040160405180910390fd5b846060015182146108e0576040516342f7487960e11b815260040160405180910390fd5b600061094286606001518989808060200260200160405190810160405280939291908181526020016000905b828210156109385761092960408302860136819003810190612fff565b8152602001906001019061090c565b5050505050611974565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b81346908490610985908b906004016130fc565b60206040518083038185885af11580156109a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109c89190612fe6565b9050610a2781848b8b808060200260200160405190810160405280939291908181526020016000905b82821015610a1d57610a0e60408302860136819003810190612fff565b815260200190600101906109f1565b50505050506119c3565b95505050610b7c565b6000610a938487606001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a8957610a7a60408302860136819003810190612fff565b81526020019060010190610a5d565b5050505050611aab565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b8134690610ad4908a906004016130fc565b6020604051808303816000875af1158015610af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b179190612fe6565b9050610b778582858c8c808060200260200160405190810160405280939291908181526020016000905b82821015610b6d57610b5e60408302860136819003810190612fff565b81526020019060010190610b41565b5050505050611b03565b955050505b5050509392505050565b610bb07fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b533611476565b610bcc576040516282b42960e81b815260040160405180910390fd5b610bd4611b57565b565b6000610be460015460ff1690565b15610c025760405163ab35696f60e01b815260040160405180910390fd5b610c0f826020015161161b565b610c2c5760405163519bdea760e01b815260040160405180910390fd5b6000610c3b8360000151611ba9565b6040840151909150348015610dd75784604001518114610c6e576040516342f7487960e11b815260040160405180910390fd5b6003546001600160a01b03848116911614610c9c576040516324d0121760e01b815260040160405180910390fd5b600080610cf68588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610ce760408302860136819003810190612fff565b81526020019060010190610cca565b6040898101839052600154905163b858183f60e01b815292945090925061010090046001600160a01b03169063b858183f908490610d38908b906004016130fc565b60206040518083038185885af1158015610d56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7b9190612fe6565b9550610dd084828b8b808060200260200160405190810160405280939291908181526020016000905b8282101561064957610dc160408302860136819003810190612fff565b81526020019060010190610da4565b5050610b7c565b600080610e318588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610e2260408302860136819003810190612fff565b81526020019060010190610e05565b604089018290529092509050610e526001600160a01b03861633308561170c565b60015460405163b858183f60e01b81526101009091046001600160a01b03169063b858183f90610e86908a906004016130fc565b6020604051808303816000875af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612fe6565b9550610ed88585838c8c61174a565b50505050509392505050565b6000610ef260015460ff1690565b15610f105760405163ab35696f60e01b815260040160405180910390fd5b610f1d826060015161161b565b610f3a5760405163519bdea760e01b815260040160405180910390fd5b60a0820151349081156110d75760035484516001600160a01b03908116911614610f77576040516324d0121760e01b815260040160405180910390fd5b8360a001518214610f9b576040516342f7487960e11b815260040160405180910390fd5b6000610ff38560a001518888808060200260200160405190810160405280939291908181526020016000905b8282101561093857610fe460408302860136819003810190612fff565b81526020019060010190610fc7565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df908490611036908a90600401613056565b60206040518083038185885af1158015611054573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110799190612fe6565b90506110ce81848a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a1d576110bf60408302860136819003810190612fff565b815260200190600101906110a2565b94505050610768565b600061113485600001518660a001518989808060200260200160405190810160405280939291908181526020016000905b82821015610a895761112560408302860136819003810190612fff565b81526020019060010190611108565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df90611175908990600401613056565b6020604051808303816000875af1158015611194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b89190612fe6565b9050611212866000015182858b8b808060200260200160405190810160405280939291908181526020016000905b82821015610b6d5761120360408302860136819003810190612fff565b815260200190600101906111e6565b98975050505050505050565b6060834211156112415760405163387b2e5560e11b815260040160405180910390fd5b61124b838361149f565b90505b9392505050565b60015460ff16156112795760405163ab35696f60e01b815260040160405180910390fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190612fe6565b905081811015611313576040516342fb4ceb60e11b81526004810183905260248101829052604401610802565b801561081557600354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b5050505060006113833383611bb5565b905080610415576040516342fb4ceb60e11b81526004810184905260248101839052604401610802565b6113d77f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b6113f3576040516282b42960e81b815260040160405180910390fd5b47156114255760006114058247611bb5565b90508061081557604051633398652560e11b815260040160405180910390fd5b50565b6114527ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f633611476565b61146e576040516282b42960e81b815260040160405180910390fd5b610bd4611c5f565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b038111156114b9576114b9612b66565b6040519080825280602002602001820160405280156114ec57816020015b60608152602001906001900390816114d75790505b50905060005b8281101561158c5761155c308585848181106115105761151061310f565b90506020028101906115229190613125565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c9a92505050565b82828151811061156e5761156e61310f565b6020026020010181905250808061158490613181565b9150506114f2565b5092915050565b6000828152602081905260409020600101546115ae8161184b565b61041583836118d9565b6040516001600160a01b03831660248201526044810182905261041590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611cbf565b60006001600160a01b03821633148061044b57506001600160a01b038216301492915050565b60008061164d83611d94565b506116588484611e07565b509050611665818561319a565b91506116718583611f30565b935093915050565b600061168361202d565b905060006116928583866120a4565b90506000806116a18386611e07565b915091506116ae816120d0565b8315611703576000826116c1858a61319a565b6116cb919061319a565b905080156117015760006116df3383611bb5565b9050806116ff576040516382e4f46960e01b815260040160405180910390fd5b505b505b50505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526117449085906323b872dd60e01b906084016115e4565b50505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190612fe6565b905060006117c48683876120a4565b90506000611824828686808060200260200160405190810160405280939291908181526020016000905b8282101561181a5761180b60408302860136819003810190612fff565b815260200190600101906117ee565b5050505050611e07565b91505061183188826121af565b8215611701576117016001600160a01b03891633856115b8565b61142581336122b8565b61185f8282611476565b610815576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556118953390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6118e38282611476565b15610815576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000806014835161194f919061319a565b9050600061195f84836014612311565b905061196c81600061241e565b949350505050565b60008061198083611d94565b90506000611990826127106131ad565b905060006119a18661271084612483565b6003549091506119ba906001600160a01b031682611f30565b95945050505050565b60008060006119d28685611e07565b915091506119df816120d0565b600260009054906101000a90046001600160a01b03166001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a2f57600080fd5b505af1158015611a43573d6000803e3d6000fd5b505050506000828787611a56919061319a565b611a60919061319a565b90508015611a96576000611a743383611bb5565b905080611a94576040516382e4f46960e01b815260040160405180910390fd5b505b611aa083886131ad565b979650505050505050565b600080611ab783611d94565b90506000611ac7826127106131ad565b90506000611ad88661271084612483565b9050611ae48782611f30565b611af96001600160a01b03881633308961170c565b9695505050505050565b6000806000611b128685611e07565b91509150611b2087826124c3565b600082611b2d888861319a565b611b37919061319a565b9050611b4d6001600160a01b03891633836115b8565b61121283886131ad565b611b5f6125ca565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061044b828261241e565b600081471015611c075760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610802565b6040516001600160a01b038416908390600081818185875af1925050503d8060008114611c50576040519150601f19603f3d011682016040523d82523d6000602084013e611c55565b606091505b5090949350505050565b611c67612613565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611b8c565b606061124e83836040518060600160405280602781526020016132cb60279139612659565b6000611d14826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126c79092919063ffffffff16565b9050805160001480611d35575080806020019051810190611d3591906131c0565b6104155760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610802565b6000805b8251811015611dde57828181518110611db357611db361310f565b60200260200101516020015182611dca91906131ad565b915080611dd681613181565b915050611d98565b506103e8811115611e025760405163cd4e616760e01b815260040160405180910390fd5b919050565b6000606082516001600160401b03811115611e2457611e24612b66565b604051908082528060200260200182016040528015611e6957816020015b6040805180820190915260008082526020820152815260200190600190039081611e425790505b50905060005b8351811015611f28576000611eae858381518110611e8f57611e8f61310f565b602002602001015160200151612710886126d69092919063ffffffff16565b90506040518060400160405280868481518110611ecd57611ecd61310f565b6020026020010151600001516001600160a01b0316815260200182815250838381518110611efd57611efd61310f565b6020908102919091010152611f1281856131ad565b9350508080611f2090613181565b915050611e6f565b509250929050565b600154604051636eb1769f60e11b81523060048201526001600160a01b0361010090920482166024820152829184169063dd62ed3e90604401602060405180830381865afa158015611f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faa9190612fe6565b10156108155760015460405163095ea7b360e01b81526101009091046001600160a01b039081166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015612009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041591906131c0565b60025460408051630910874560e11b8152905160009247926001600160a01b03909116916312210e8a91600480820192879290919082900301818387803b15801561207757600080fd5b505af115801561208b573d6000803e3d6000fd5b5047925061209d91508390508261319a565b9250505090565b600082156120c857816120b7848661319a565b6120c1919061319a565b905061124e565b509192915050565b60005b81518110156108155760008282815181106120f0576120f061310f565b60200260200101519050600061210e82600001518360200151611bb5565b90508061214557815160208301516040516208c3b360e61b81526001600160a01b0390921660048301526024820152604401610802565b81600001516001600160a01b0316336001600160a01b03167fe0e765ab26c1caf691c510426951246128b96830e49cc81d8c093fd551abac35846020015160405161219291815260200190565b60405180910390a3505080806121a790613181565b9150506120d3565b60005b815181101561041557612215338383815181106121d1576121d161310f565b6020026020010151600001518484815181106121ef576121ef61310f565b602002602001015160200151866001600160a01b031661170c909392919063ffffffff16565b8181815181106122275761222761310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106122835761228361310f565b60200260200101516020015160405161229e91815260200190565b60405180910390a4806122b081613181565b9150506121b2565b6122c28282611476565b610815576122cf81612778565b6122da83602061278a565b6040516020016122eb9291906131e2565b60408051601f198184030181529082905262461bcd60e51b825261080291600401613257565b60608161231f81601f6131ad565b101561235e5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610802565b61236882846131ad565b845110156123ac5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610802565b6060821580156123cb5760405191506000825260208201604052612415565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156124045780518352602092830192016123ec565b5050858452601f01601f1916604052505b50949350505050565b600061242b8260146131ad565b835110156124735760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610802565b500160200151600160601b900490565b60006124908484846126d6565b9050600082806124a2576124a261326a565b848609111561124e5760001981106124b957600080fd5b6001019392505050565b60005b8151811015610415576125278282815181106124e4576124e461310f565b6020026020010151600001518383815181106125025761250261310f565b602002602001015160200151856001600160a01b03166115b89092919063ffffffff16565b8181815181106125395761253961310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106125955761259561310f565b6020026020010151602001516040516125b091815260200190565b60405180910390a4806125c281613181565b9150506124c6565b60015460ff16610bd45760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610802565b60015460ff1615610bd45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610802565b6060600080856001600160a01b0316856040516126769190613280565b600060405180830381855af49150503d80600081146126b1576040519150601f19603f3d011682016040523d82523d6000602084013e6126b6565b606091505b5091509150611af986838387612925565b606061124b848460008561299e565b600083830281600019858709828110838203039150508084116126f857600080fd5b8060000361270b5750829004905061124e565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b606061044b6001600160a01b03831660145b6060600061279983600261329c565b6127a49060026131ad565b6001600160401b038111156127bb576127bb612b66565b6040519080825280601f01601f1916602001820160405280156127e5576020820181803683370190505b509050600360fc1b816000815181106128005761280061310f565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061282f5761282f61310f565b60200101906001600160f81b031916908160001a905350600061285384600261329c565b61285e9060016131ad565b90505b60018111156128d6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106128925761289261310f565b1a60f81b8282815181106128a8576128a861310f565b60200101906001600160f81b031916908160001a90535060049490941c936128cf816132b3565b9050612861565b50831561124e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610802565b6060831561299457825160000361298d576001600160a01b0385163b61298d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610802565b508161196c565b61196c8383612a6e565b6060824710156129ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610802565b600080866001600160a01b03168587604051612a1b9190613280565b60006040518083038185875af1925050503d8060008114612a58576040519150601f19603f3d011682016040523d82523d6000602084013e612a5d565b606091505b5091509150611aa087838387612925565b815115612a7e5781518083602001fd5b8060405162461bcd60e51b81526004016108029190613257565b6001600160a01b038116811461142557600080fd5b8035611e0281612a98565b60008060408385031215612acb57600080fd5b8235612ad681612a98565b91506020830135612ae681612a98565b809150509250929050565b600060208284031215612b0357600080fd5b81356001600160e01b03198116811461124e57600080fd5b60008083601f840112612b2d57600080fd5b5081356001600160401b03811115612b4457600080fd5b6020830191508360208260061b8501011115612b5f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612b9e57612b9e612b66565b60405290565b604051608081016001600160401b0381118282101715612b9e57612b9e612b66565b604051601f8201601f191681016001600160401b0381118282101715612bee57612bee612b66565b604052919050565b600060e08284031215612c0857600080fd5b612c10612b7c565b90508135612c1d81612a98565b81526020820135612c2d81612a98565b6020820152604082013562ffffff81168114612c4857600080fd5b6040820152612c5960608301612aad565b60608201526080820135608082015260a082013560a0820152612c7e60c08301612aad565b60c082015292915050565b60008060006101008486031215612c9f57600080fd5b83356001600160401b03811115612cb557600080fd5b612cc186828701612b1b565b9094509250612cd590508560208601612bf6565b90509250925092565b600060208284031215612cf057600080fd5b5035919050565b60008060408385031215612d0a57600080fd5b823591506020830135612ae681612a98565b600060808284031215612d2e57600080fd5b612d36612ba4565b905081356001600160401b0380821115612d4f57600080fd5b818401915084601f830112612d6357600080fd5b8135602082821115612d7757612d77612b66565b612d89601f8301601f19168201612bc6565b92508183528681838601011115612d9f57600080fd5b81818501828501376000818385010152828552612dbd818701612aad565b8186015250505050604082013560408201526060820135606082015292915050565b600080600060408486031215612df457600080fd5b83356001600160401b0380821115612e0b57600080fd5b612e1787838801612b1b565b90955093506020860135915080821115612e3057600080fd5b50612e3d86828701612d1c565b9150509250925092565b60008083601f840112612e5957600080fd5b5081356001600160401b03811115612e7057600080fd5b6020830191508360208260051b8501011115612b5f57600080fd5b600080600060408486031215612ea057600080fd5b8335925060208401356001600160401b03811115612ebd57600080fd5b612ec986828701612e47565b9497909650939450505050565b60005b83811015612ef1578181015183820152602001612ed9565b50506000910152565b60008151808452612f12816020860160208601612ed6565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612f7b57603f19888603018452612f69858351612efa565b94509285019290850190600101612f4d565b5092979650505050505050565b600060208284031215612f9a57600080fd5b813561124e81612a98565b60008060208385031215612fb857600080fd5b82356001600160401b03811115612fce57600080fd5b612fda85828601612e47565b90969095509350505050565b600060208284031215612ff857600080fd5b5051919050565b60006040828403121561301157600080fd5b604051604081018181106001600160401b038211171561303357613033612b66565b604052823561304181612a98565b81526020928301359281019290925250919050565b60e0810161044b828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b60008151608084526130ca6080850182612efa565b6020848101516001600160a01b0316908601526040808501519086015260609384015193909401929092525090919050565b60208152600061124e60208301846130b5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261313c57600080fd5b8301803591506001600160401b0382111561315657600080fd5b602001915036819003821315612b5f57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131935761319361316b565b5060010190565b8181038181111561044b5761044b61316b565b8082018082111561044b5761044b61316b565b6000602082840312156131d257600080fd5b8151801515811461124e57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161321a816017850160208801612ed6565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161324b816028840160208801612ed6565b01602801949350505050565b60208152600061124e6020830184612efa565b634e487b7160e01b600052601260045260246000fd5b60008251613292818460208701612ed6565b9190910192915050565b808202811582820484141761044b5761044b61316b565b6000816132c2576132c261316b565b50600019019056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220162c0f9d1b47c666f486fc65c7c7502bb0e7378e3166be6f93d98943154831c364736f6c63430008130033`,M0=e=>e.length>1;var N0=class extends YI{constructor(...e){M0(e)?super(...e):super(A0,j0,e[0])}getDeployTransaction(e,t,n,r){return super.getDeployTransaction(e,t,n,r||{})}deploy(e,t,n,r){return super.deploy(e,t,n,r||{})}connect(e){return super.connect(e)}static bytecode=j0;static abi=A0;static createInterface(){return new eI(A0)}static connect(e,t){return new JI(e,A0,t)}};let P0=[{inputs:[],name:`getCurrentBlockTimestamp`,outputs:[{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`addr`,type:`address`}],name:`getEthBalance`,outputs:[{internalType:`uint256`,name:`balance`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`uint256`,name:`gasLimit`,type:`uint256`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct UniswapInterfaceMulticall.Call[]`,name:`calls`,type:`tuple[]`}],name:`multicall`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`},{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`uint256`,name:`gasUsed`,type:`uint256`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct UniswapInterfaceMulticall.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`}],F0=`0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a`,I0=e=>e.length>1;var L0=class extends YI{constructor(...e){I0(e)?super(...e):super(P0,F0,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=F0;static abi=P0;static createInterface(){return new eI(P0)}static connect(e,t){return new JI(e,P0,t)}};let R0=[{inputs:[],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!0,internalType:`int24`,name:`tickLower`,type:`int24`},{indexed:!0,internalType:`int24`,name:`tickUpper`,type:`int24`},{indexed:!1,internalType:`uint128`,name:`amount`,type:`uint128`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`}],name:`Burn`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`address`,name:`recipient`,type:`address`},{indexed:!0,internalType:`int24`,name:`tickLower`,type:`int24`},{indexed:!0,internalType:`int24`,name:`tickUpper`,type:`int24`},{indexed:!1,internalType:`uint128`,name:`amount0`,type:`uint128`},{indexed:!1,internalType:`uint128`,name:`amount1`,type:`uint128`}],name:`Collect`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`recipient`,type:`address`},{indexed:!1,internalType:`uint128`,name:`amount0`,type:`uint128`},{indexed:!1,internalType:`uint128`,name:`amount1`,type:`uint128`}],name:`CollectProtocol`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`recipient`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`paid0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`paid1`,type:`uint256`}],name:`Flash`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint16`,name:`observationCardinalityNextOld`,type:`uint16`},{indexed:!1,internalType:`uint16`,name:`observationCardinalityNextNew`,type:`uint16`}],name:`IncreaseObservationCardinalityNext`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`},{indexed:!1,internalType:`int24`,name:`tick`,type:`int24`}],name:`Initialize`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!0,internalType:`int24`,name:`tickLower`,type:`int24`},{indexed:!0,internalType:`int24`,name:`tickUpper`,type:`int24`},{indexed:!1,internalType:`uint128`,name:`amount`,type:`uint128`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`}],name:`Mint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint8`,name:`feeProtocol0Old`,type:`uint8`},{indexed:!1,internalType:`uint8`,name:`feeProtocol1Old`,type:`uint8`},{indexed:!1,internalType:`uint8`,name:`feeProtocol0New`,type:`uint8`},{indexed:!1,internalType:`uint8`,name:`feeProtocol1New`,type:`uint8`}],name:`SetFeeProtocol`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`recipient`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount0`,type:`int256`},{indexed:!1,internalType:`int256`,name:`amount1`,type:`int256`},{indexed:!1,internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`},{indexed:!1,internalType:`uint128`,name:`liquidity`,type:`uint128`},{indexed:!1,internalType:`int24`,name:`tick`,type:`int24`}],name:`Swap`,type:`event`},{inputs:[{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint128`,name:`amount`,type:`uint128`}],name:`burn`,outputs:[{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint128`,name:`amount0Requested`,type:`uint128`},{internalType:`uint128`,name:`amount1Requested`,type:`uint128`}],name:`collect`,outputs:[{internalType:`uint128`,name:`amount0`,type:`uint128`},{internalType:`uint128`,name:`amount1`,type:`uint128`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint128`,name:`amount0Requested`,type:`uint128`},{internalType:`uint128`,name:`amount1Requested`,type:`uint128`}],name:`collectProtocol`,outputs:[{internalType:`uint128`,name:`amount0`,type:`uint128`},{internalType:`uint128`,name:`amount1`,type:`uint128`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`factory`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`fee`,outputs:[{internalType:`uint24`,name:``,type:`uint24`}],stateMutability:`view`,type:`function`},{inputs:[],name:`feeGrowthGlobal0X128`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`feeGrowthGlobal1X128`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`flash`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint16`,name:`observationCardinalityNext`,type:`uint16`}],name:`increaseObservationCardinalityNext`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`}],name:`initialize`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`liquidity`,outputs:[{internalType:`uint128`,name:``,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[],name:`maxLiquidityPerTick`,outputs:[{internalType:`uint128`,name:``,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint128`,name:`amount`,type:`uint128`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`mint`,outputs:[{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`observations`,outputs:[{internalType:`uint32`,name:`blockTimestamp`,type:`uint32`},{internalType:`int56`,name:`tickCumulative`,type:`int56`},{internalType:`uint160`,name:`secondsPerLiquidityCumulativeX128`,type:`uint160`},{internalType:`bool`,name:`initialized`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint32[]`,name:`secondsAgos`,type:`uint32[]`}],name:`observe`,outputs:[{internalType:`int56[]`,name:`tickCumulatives`,type:`int56[]`},{internalType:`uint160[]`,name:`secondsPerLiquidityCumulativeX128s`,type:`uint160[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],name:`positions`,outputs:[{internalType:`uint128`,name:`liquidity`,type:`uint128`},{internalType:`uint256`,name:`feeGrowthInside0LastX128`,type:`uint256`},{internalType:`uint256`,name:`feeGrowthInside1LastX128`,type:`uint256`},{internalType:`uint128`,name:`tokensOwed0`,type:`uint128`},{internalType:`uint128`,name:`tokensOwed1`,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[],name:`protocolFees`,outputs:[{internalType:`uint128`,name:`token0`,type:`uint128`},{internalType:`uint128`,name:`token1`,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint8`,name:`feeProtocol0`,type:`uint8`},{internalType:`uint8`,name:`feeProtocol1`,type:`uint8`}],name:`setFeeProtocol`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`slot0`,outputs:[{internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`},{internalType:`int24`,name:`tick`,type:`int24`},{internalType:`uint16`,name:`observationIndex`,type:`uint16`},{internalType:`uint16`,name:`observationCardinality`,type:`uint16`},{internalType:`uint16`,name:`observationCardinalityNext`,type:`uint16`},{internalType:`uint8`,name:`feeProtocol`,type:`uint8`},{internalType:`bool`,name:`unlocked`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`}],name:`snapshotCumulativesInside`,outputs:[{internalType:`int56`,name:`tickCumulativeInside`,type:`int56`},{internalType:`uint160`,name:`secondsPerLiquidityInsideX128`,type:`uint160`},{internalType:`uint32`,name:`secondsInside`,type:`uint32`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`bool`,name:`zeroForOne`,type:`bool`},{internalType:`int256`,name:`amountSpecified`,type:`int256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`swap`,outputs:[{internalType:`int256`,name:`amount0`,type:`int256`},{internalType:`int256`,name:`amount1`,type:`int256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`int16`,name:``,type:`int16`}],name:`tickBitmap`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`tickSpacing`,outputs:[{internalType:`int24`,name:``,type:`int24`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`int24`,name:``,type:`int24`}],name:`ticks`,outputs:[{internalType:`uint128`,name:`liquidityGross`,type:`uint128`},{internalType:`int128`,name:`liquidityNet`,type:`int128`},{internalType:`uint256`,name:`feeGrowthOutside0X128`,type:`uint256`},{internalType:`uint256`,name:`feeGrowthOutside1X128`,type:`uint256`},{internalType:`int56`,name:`tickCumulativeOutside`,type:`int56`},{internalType:`uint160`,name:`secondsPerLiquidityOutsideX128`,type:`uint160`},{internalType:`uint32`,name:`secondsOutside`,type:`uint32`},{internalType:`bool`,name:`initialized`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`token0`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`token1`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],z0=`0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a`,B0=e=>e.length>1;var V0=class extends YI{constructor(...e){B0(e)?super(...e):super(R0,z0,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=z0;static abi=R0;static createInterface(){return new eI(R0)}static connect(e,t){return new JI(e,R0,t)}};let H0=[{constant:!0,inputs:[],name:`name`,outputs:[{name:``,type:`string`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`guy`,type:`address`},{name:`wad`,type:`uint256`}],name:`approve`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[],name:`totalSupply`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`src`,type:`address`},{name:`dst`,type:`address`},{name:`wad`,type:`uint256`}],name:`transferFrom`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!1,inputs:[{name:`wad`,type:`uint256`}],name:`withdraw`,outputs:[],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[],name:`decimals`,outputs:[{name:``,type:`uint8`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[{name:``,type:`address`}],name:`balanceOf`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[],name:`symbol`,outputs:[{name:``,type:`string`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`dst`,type:`address`},{name:`wad`,type:`uint256`}],name:`transfer`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!1,inputs:[],name:`deposit`,outputs:[],payable:!0,stateMutability:`payable`,type:`function`},{constant:!0,inputs:[{name:``,type:`address`},{name:``,type:`address`}],name:`allowance`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{payable:!0,stateMutability:`payable`,type:`fallback`},{anonymous:!1,inputs:[{indexed:!0,name:`src`,type:`address`},{indexed:!0,name:`guy`,type:`address`},{indexed:!1,name:`wad`,type:`uint256`}],name:`Approval`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,name:`src`,type:`address`},{indexed:!0,name:`dst`,type:`address`},{indexed:!1,name:`wad`,type:`uint256`}],name:`Transfer`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,name:`dst`,type:`address`},{indexed:!1,name:`wad`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,name:`src`,type:`address`},{indexed:!1,name:`wad`,type:`uint256`}],name:`Withdrawal`,type:`event`}];var U0=class{static abi=H0;static createInterface(){return new eI(H0)}static connect(e,t){return new JI(e,H0,t)}};function W0(e,t,n,r){let i=e[0];if(typeof i!=`bigint`)throw Error(`Expected BigNumber`);let{midPrice:a,input:o,output:s}=t,c=H1(o),l=H1(s),u=r===WY.EXACT_INPUT?n:W1(i,c),d=r===WY.EXACT_INPUT?W1(i,l):n,f=new cX(o,s,u.value.toString(),d.value.toString()).subtract(a.asFraction).divide(a.asFraction).multiply(100);return{route:t,amountIn:u,amountOut:d,gasEstimate:BigInt(e[3]),tradeType:r,priceImpact:f}}async function G0(e,t,n,r,i,a){let o=n.map(e=>v1.quoteCallParameters(e,U1(r),i,{useQuoterV2:!0}).calldata);return(await Promise.allSettled(o.map(n=>e.send(`eth_call`,[{to:t,data:n},a])))).reduce((e,t,a)=>{if(t.status===`rejected`)return e;let s=F1[o[a].substring(0,10)];if(!s)throw Error(`No quoting function signature found`);if(t.value===`0x`)return e;try{let o=W0(qF.defaultAbiCoder().decode(s,t.value),n[a],r,i);e.push(o)}catch{}return e},[])}function K0({factoryAddress:e,erc20Pair:t,fee:n,initCodeHashManualOverride:r}){return t=q0(t),Zj(e,eA(qF.defaultAbiCoder().encode([`address`,`address`,`uint24`],[t[0].address,t[1].address,n])),r??`0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`)}let q0=e=>{if(e[0].address.toLowerCase()>e[1].address.toLowerCase()){let t=e[0];e[0]=e[1],e[1]=t}return e},J0=(e,t)=>{let n=new Map,r=[];[...e,...t].forEach(e=>{n.set(e.address,e),r.push(e.address)});let i=[...new Set([...r])],a=[];for(let e=0;e<i.length;e++)for(let t=e+1;t<i.length;t++){let r=n.get(i[e]),o=n.get(i[t]);r&&o&&a.push([r,o])}return a},Y0=[C$.LOWEST,C$.LOW,C$.MEDIUM,C$.HIGH],X0=(e,t,n)=>{let r=J0(e,t),i=[];for(let e=0;e<r.length;e++)for(let t=0;t<Y0.length;t++){let a=K0({factoryAddress:n,erc20Pair:r[e],fee:Y0[t]});i.push({erc20Pair:r[e],fee:Y0[t],poolAddress:a})}return i};async function Z0(e,t,n,r){let i=V0.createInterface(),a=Q0(t,i),o=[];return a&&n.forEach(e=>{e&&o.push({target:e,callData:a,gasLimit:BigInt(`1000000`)})}),r?.blockTag?e.multicall.staticCall(o,{blockTag:r.blockTag}):e.multicall.staticCall(o)}let Q0=(e,t)=>{let n=t?.getFunction(e);return n?t?.encodeFunctionData(n):void 0},$0=`liquidity`,e2=`slot0`,t2=async(e,t,n,r,i)=>{let a=X0(t,n,r),o=a.map(e=>e.poolAddress),s,c;try{[s,c]=await Promise.all([Z0(e,e2,o,{blockTag:i}),Z0(e,$0,o,{blockTag:i})])}catch(e){throw new j1(`failed multicall: ${e instanceof Error?e.message:`Unknown Error`}`)}let l=s.returnData,u=c.returnData,d=V0.createInterface(),f=[];return a.forEach((e,t)=>{let n=s.returnData[t].returnData===`0x`,r=c.returnData[t].returnData===`0x`;if(n||r)return;let i=d.decodeFunctionResult(e2,l[t].returnData),a=d.decodeFunctionResult($0,u[t].returnData),o=i.sqrtPriceX96===BigInt(0),p=a[0]===BigInt(0);if(o||p)return;let m=new o1(V1(e.erc20Pair[0]),V1(e.erc20Pair[1]),e.fee,i.sqrtPriceX96.toString(),a.toString(),Number(i.tick));f.push(m)}),f};var n2=class{provider;multicallContract;routingTokens;routingContracts;constructor(e,t,n,r){this.provider=e,this.multicallContract=t,this.routingTokens=n,this.routingContracts=r,this.provider=e,this.multicallContract=t,this.routingTokens=n,this.routingContracts=r}async findOptimalRoute(e,t,n,r=3,i=`latest`){let[a,o]=this.determineERC20InAndERC20Out(n,e,t),s=[a,o],c=await t2(this.multicallContract,s,this.routingTokens,this.routingContracts.coreFactory,i);if(c.length===0)throw new A1;let l=r2(a,o,c,r,[],[],a);if(l.length===0)throw new A1;return await this.getBestQuoteFromRoutes(l,e,n,i)}async getBestQuoteFromRoutes(e,t,n,r){let i=await G0(this.provider,this.routingContracts.quoter,e,t,n,r);if(i.length===0)throw new A1;if(n===WY.EXACT_INPUT)return this.bestQuoteForAmountIn(i);if(n===WY.EXACT_OUTPUT)return this.bestQuoteForAmountOut(i);throw Error(`Invalid trade type`)}bestQuoteForAmountIn(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountOut.value>t.amountOut.value&&(t=e[n]);return t}bestQuoteForAmountOut(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountIn.value<t.amountIn.value&&(t=e[n]);return t}determineERC20InAndERC20Out(e,t,n){return e===WY.EXACT_INPUT?[t.token,n]:[n,t.token]}};let r2=(e,t,n,r,i=[],a=[],o=e)=>{let s=V1(e),c=V1(t),l=V1(o);for(let e of n){let u=e.involvesToken(s),d=i.find(t=>I1(e,t));if(!u||d)continue;let f=e.token0.equals(s)?e.token1:e.token0;f.equals(c)?a.push(new c1([...i,e],l,c)):r>1&&r2(H1(f),t,n,r-1,[...i,e],a,o)}return a};function i2(e,t,n,r,i,a,o,s,c){let l=[];return r.tradeType===WY.EXACT_INPUT&&l.push(s.encodeFunctionData(`exactInputSingle`,[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountIn:a,amountOutMinimum:o,sqrtPriceLimitX96:0}])),r.tradeType===WY.EXACT_OUTPUT&&l.push(s.encodeFunctionData(`exactOutputSingle`,[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountInMaximum:a,amountOut:o,sqrtPriceLimitX96:0}])),q1(e)&&l.push(c.encodeFunctionData(`refundETH`)),q1(t)&&l.push(c.encodeFunctionData(`unwrapWETH9(uint256)`,[o])),l}function a2(e,t,n,r,i,a,o,s){let c=a.map(e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient})),l=[];return t.tradeType===WY.EXACT_INPUT&&l.push(o.encodeFunctionData(`exactInputSingleWithSecondaryFee`,[c,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountIn:r,amountOutMinimum:i,sqrtPriceLimitX96:0}])),t.tradeType===WY.EXACT_OUTPUT&&l.push(o.encodeFunctionData(`exactOutputSingleWithSecondaryFee`,[c,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountInMaximum:r,amountOut:i,sqrtPriceLimitX96:0}])),q1(s)&&l.push(o.encodeFunctionData(`unwrapNativeToken`,[i])),l}function o2(e,t,n,r,i,a,o,s,c){let l=X$(i,r.tradeType===WY.EXACT_OUTPUT),u=[];return r.tradeType===WY.EXACT_INPUT&&u.push(s.encodeFunctionData(`exactInput`,[{path:l,recipient:n,amountIn:a,amountOutMinimum:o}])),r.tradeType===WY.EXACT_OUTPUT&&u.push(s.encodeFunctionData(`exactOutput`,[{path:l,recipient:n,amountInMaximum:a,amountOut:o}])),q1(e)&&u.push(c.encodeFunctionData(`refundETH`)),q1(t)&&u.push(c.encodeFunctionData(`unwrapWETH9(uint256)`,[o])),u}function s2(e,t,n,r,i,a,o,s){let c=X$(n,t.tradeType===WY.EXACT_OUTPUT),l=a.map(e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient})),u=[];return t.tradeType===WY.EXACT_INPUT&&u.push(o.encodeFunctionData(`exactInputWithSecondaryFee`,[l,{path:c,recipient:e,amountIn:r,amountOutMinimum:i}])),t.tradeType===WY.EXACT_OUTPUT&&u.push(o.encodeFunctionData(`exactOutputWithSecondaryFee`,[l,{path:c,recipient:e,amountInMaximum:r,amountOut:i}])),q1(s)&&u.push(o.encodeFunctionData(`unwrapNativeToken`,[i])),u}function c2(e,t,n,r,i,a,o,s,c,l){let{route:u}=r.swaps[0],d=u.pools.length===1,f=i.length>0;return d?f?a2(n,r,u,c,l,i,a,t):i2(e,t,n,r,u,c,l,o,s):f?s2(n,r,u,c,l,i,a,t):o2(e,t,n,r,u,c,l,o,s)}function l2(e,t,n,r,i,a,o,s){let c=N0.createInterface(),l=c2(e,t,r,n,a,c,new eI(x1),new eI(S1),o,s);return c.encodeFunctionData(`multicall(uint256,bytes[])`,[i.deadlineOrPreviousBlockhash,l])}function u2(e,t,n,r,i,a,o){let s=u1.createUncheckedTrade({route:n.route,inputAmount:U1(n.amountIn),outputAmount:U1(n.amountOut),tradeType:n.tradeType}),c={slippageTolerance:w0(i),recipient:r,deadlineOrPreviousBlockhash:a},l=Y$(s.maximumAmountIn(c.slippageTolerance).quotient);return{calldata:l2(e,t,s,r,c,o,l,Y$(s.minimumAmountOut(c.slippageTolerance).quotient)),maximumAmountIn:l}}let d2=(e,t)=>e.type===`native`?t:`0x00`,f2=(e,t,n,r,i)=>q1(e)?i.length===0?n:r:t;function p2(e,t,n,r,i,a,o,s,c,l){let{calldata:u,maximumAmountIn:d}=u2(e,t,n,f2(t,r,o,s,l),i,a,l),f=l.length>0,p=c?p0(f,c,n.gasEstimate):null,m=d2(e,d);return{transaction:{data:u,to:l.length>0?s:o,value:m,from:r},gasFeeEstimate:p?t0(p):null}}let m2=(e,t,n,r)=>{if(e.tradeType===WY.EXACT_OUTPUT){let t=S0(n.token)?r.unwrapAmount(e.amountIn):e.amountIn;return n.addAmount(t),r.maybeWrapAmount(n.amountWithFeesApplied())}return r.maybeWrapAmount(t)};function h2(e,t,n,r){let i=m2(e,t,n,r);return{gasEstimate:e.gasEstimate,route:e.route,amountIn:i,amountOut:e.amountOut,tradeType:e.tradeType,priceImpact:e.priceImpact}}let g2={[r0]:{multicall:`0x4857Dfd11c712e862eC362cEee29F7974B70EfcD`,coreFactory:`0x56c2162254b0E4417288786eE402c2B41d4e181e`,quoter:`0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd`,swapRouter:`0x0b012055F770AE7BB7a8303968A7Fb6088A2296e`,immutableSwapProxy:`0xDdBDa144cEbe1cCd68E746CDff8a6e4Be51A9e98`},[i0]:{multicall:`0xc7efb32470dEE601959B15f1f923e017C6A918cA`,coreFactory:`0x56c2162254b0E4417288786eE402c2B41d4e181e`,quoter:`0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd`,swapRouter:`0xE5a02c2Be08406c3fB36F9Aa29bF7C7A09CAe50B`,immutableSwapProxy:`0xD67cc11151dBccCC424A16F8963ece3D0539BD61`}},_2={[r0]:{chainId:r0,rpcUrl:`https://rpc.testnet.immutable.com`,contracts:g2[r0],commonRoutingTokens:s0,nativeToken:a0,wrappedNativeToken:o0}},v2={[i0]:{chainId:i0,rpcUrl:`https://rpc.immutable.com`,contracts:g2[i0],commonRoutingTokens:u0,nativeToken:c0,wrappedNativeToken:l0}},y2={[Ve.SANDBOX]:_2,[Ve.PRODUCTION]:v2};function b2(e){for(let t of[`rpcURL`,`exchangeContracts`,`commonRoutingTokens`,`nativeToken`])if(!e[t])throw new w1(`Missing override: ${t}`);Object.entries(e.exchangeContracts).forEach(([e,t])=>{if(!z1(t))throw new w1(`Invalid exchange contract address for ${e}`)})}function x2(e){let t=0;for(let n of e){if(!z1(n.recipient))throw new w1(`Invalid secondary fee recipient address: ${n.recipient}`);if(n.basisPoints<=0||n.basisPoints>1e3)throw new w1(`Invalid secondary fee basis points: ${n.basisPoints}`);t+=n.basisPoints}if(t>1e3)throw new w1(`Invalid total secondary fee basis points: ${t}`)}var S2=class{baseConfig;chain;secondaryFees=[];constructor({chainId:e,baseConfig:t,secondaryFees:n,overrides:r}){if(this.baseConfig=t,this.secondaryFees=n||[],x2(this.secondaryFees),r){b2(r),this.chain={chainId:e,rpcUrl:r.rpcURL,contracts:r.exchangeContracts,commonRoutingTokens:r.commonRoutingTokens,nativeToken:r.nativeToken,wrappedNativeToken:r.wrappedNativeToken},this.secondaryFees=n||[];return}let i=y2[t.environment][e];if(!i)throw new T1(e,t.environment);this.chain=i}};let C2=(e,t,n,r,i)=>({amount:t0(e),amountWithMaxSlippage:t0(t),slippage:n,priceImpact:r,fees:i.withAmounts().map(e=>({...e,amount:t0(e.amount)}))});var w2=class e{provider;batchProvider;router;chainId;nativeToken;wrappedNativeToken;secondaryFees;nativeTokenService;swapProxyContractAddress;routerContractAddress;constructor(e){let t=new S2(e);this.chainId=t.chain.chainId,this.nativeToken=t.chain.nativeToken,this.wrappedNativeToken=t.chain.wrappedNativeToken,this.nativeTokenService=new C0(this.nativeToken,this.wrappedNativeToken),this.secondaryFees=t.secondaryFees,this.routerContractAddress=t.chain.contracts.swapRouter,this.swapProxyContractAddress=t.chain.contracts.immutableSwapProxy,this.provider=new bR(t.chain.rpcUrl,t.chain.chainId,{staticNetwork:!0}),this.batchProvider=new bR(t.chain.rpcUrl,t.chain.chainId);let n=L0.connect(t.chain.contracts.multicall,this.provider);this.router=new n2(this.batchProvider,n,t.chain.commonRoutingTokens,t.chain.contracts)}static validate(e,t,n,r,i){if(!z1(i))throw new O1(`Error: invalid from address`);if(!B1(e))throw new O1(`Error: invalid token in address`);if(!B1(t))throw new O1(`Error: invalid token out address`);if(e.toLocaleLowerCase()===t.toLocaleLowerCase())throw new k1;if(n>10)throw new D1(`Error: max hops must be less than or equal to 10`);if(n<1)throw new D1(`Error: max hops must be greater than or equal to 1`);if(r>50)throw new E1(`Error: slippage percent must be less than or equal to 50`);if(r<0)throw new E1(`Error: slippage percent must be greater than or equal to 0`)}async getSecondaryFees(e){return this.secondaryFees.length===0||await N0.connect(this.swapProxyContractAddress,e).paused()?[]:this.secondaryFees}parseTokenLiteral(e,t){return e===`native`?this.nativeToken:{type:`erc20`,address:e,chainId:this.chainId,decimals:t}}async getUnwrapTransaction(e,t,n,r){let i=n.encodeFunctionData(`withdraw`,[t]),a=r?t0(p0(!1,r,BigInt(35216))):null;return{transaction:{transaction:{data:i,to:this.wrappedNativeToken.address,from:e},gasFeeEstimate:a},approval:null}}getWrapTransaction(e,t,n,r){let i=n.encodeFunctionData(`deposit`),a=r?t0(p0(!1,r,BigInt(45038))):null;return{transaction:{transaction:{data:i,to:this.wrappedNativeToken.address,value:t,from:e},gasFeeEstimate:a},approval:null}}async getUnsignedWrapUnwrapTx(e,t,n,r){let i=t.token.type===`native`,a={token:e.type===`native`?this.wrappedNativeToken:this.nativeToken,value:t.value},o={amount:t0(a),amountWithMaxSlippage:t0(a),slippage:0,priceImpact:0,fees:[]},s=U0.createInterface(),c;return c=i?this.getWrapTransaction(n,a.value,s,r):await this.getUnwrapTransaction(n,a.value,s,r),{quote:o,approval:c.approval,swap:c.transaction}}async getUnsignedSwapTx(t,n,r,i,a,o,s,c){e.validate(n,r,o,a,t);let l=[R1(n,this.batchProvider,this.nativeToken),R1(r,this.batchProvider,this.nativeToken),this.getSecondaryFees(this.batchProvider),f0(this.batchProvider,this.nativeToken)],[u,d,f,p]=await Promise.all(l),m=this.parseTokenLiteral(n,u),h=this.parseTokenLiteral(r,d),[g,_]=c===WY.EXACT_INPUT?[m,h]:[h,m],v=W1(i,g);if(this.nativeTokenService.isWrapOrUnwrap(m,h))return this.getUnsignedWrapUnwrapTx(g,W1(i,m),t,p);let y=new k0(f,m),b=O0(v,y,c,this.nativeTokenService),x=h2(await this.router.findOptimalRoute(b,this.nativeTokenService.maybeWrapToken(_),c,o),v,y,this.nativeTokenService),S=p2(m,h,x,t,a,s,this.routerContractAddress,this.swapProxyContractAddress,p,f),{quotedAmount:C,quotedAmountWithMaxSlippage:w}=D0(this.nativeTokenService,x,a,_),T=v0(c,v,w,{routerAddress:this.routerContractAddress,secondaryFeeAddress:this.swapProxyContractAddress},f),E=T?await x0(this.provider,t,T,p):null;return{quote:C2(C,w,a,Number(x.priceImpact.toSignificant(10)),y),approval:E,swap:S}}async getUnsignedSwapTxFromAmountIn(e,t,n,r,i=N1,a=3,o=n0()){return await this.getUnsignedSwapTx(e,t,n,BigInt(r),i,a,o,WY.EXACT_INPUT)}async getUnsignedSwapTxFromAmountOut(e,t,n,r,i=N1,a=3,o=n0()){return await this.getUnsignedSwapTx(e,t,n,BigInt(r),i,a,o,WY.EXACT_OUTPUT)}},T2=d(c(((e,t)=>{function n({mustBeMetaMask:e=!1,silent:t=!1,timeout:n=3e3}={}){i();let r=!1;return new Promise(i=>{window.ethereum?a():(window.addEventListener(`ethereum#initialized`,a,{once:!0}),setTimeout(()=>{a()},n));function a(){if(r)return;r=!0,window.removeEventListener(`ethereum#initialized`,a);let{ethereum:n}=window;n&&(!e||n.isMetaMask)?i(n):(!t&&console.error(`@metamask/detect-provider:`,e&&n?`Non-MetaMask window.ethereum detected.`:`Unable to detect window.ethereum.`),i(null))}});function i(){if(typeof e!=`boolean`)throw Error(`@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.`);if(typeof t!=`boolean`)throw Error(`@metamask/detect-provider: Expected option 'silent' to be a boolean.`);if(typeof n!=`number`)throw Error(`@metamask/detect-provider: Expected option 'timeout' to be a number.`)}}t.exports=n}))(),1);let E2=function(e){return e.IMTBL_WIDGETS_PROVIDER=`imtbl-widgets-provider`,e.IMTBL_CONNECT_WIDGET_EVENT=`imtbl-connect-widget`,e.IMTBL_WALLET_WIDGET_EVENT=`imtbl-wallet-widget`,e.IMTBL_SWAP_WIDGET_EVENT=`imtbl-swap-widget`,e.IMTBL_BRIDGE_WIDGET_EVENT=`imtbl-bridge-widget`,e.IMTBL_ONRAMP_WIDGET_EVENT=`imtbl-onramp-widget`,e.IMTBL_SALE_WIDGET_EVENT=`imtbl-sale-widget`,e.IMTBL_COMMERCE_WIDGET_EVENT=`imtbl-commerce-widget`,e.IMTBL_ADD_TOKENS_WIDGET_EVENT=`imtbl-add-tokens-widget`,e.IMTBL_PURCHASE_WIDGET_EVENT=`imtbl-purchase-widget`,e.IMTBL_TRANSFER_WIDGET_EVENT=`imtbl-transfer-widget`,e}({}),D2=function(e){return e.PROVIDER_UPDATED=`PROVIDER_UPDATED`,e}({}),O2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.LANGUAGE_CHANGED=`language-changed`,e.WALLETCONNECT_PROVIDER_UPDATED=`walletconnect-provider-updated`,e}({}),k2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.NETWORK_SWITCH=`network-switch`,e.DISCONNECT_WALLET=`disconnect-wallet`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),A2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.REJECTED=`rejected`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),j2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.REJECTED=`rejected`,e.TRANSACTION_SUCCESS=`transaction-success`,e.LANGUAGE_CHANGED=`language-changed`,e.PAYMENT_METHOD=`payment-method`,e.REQUEST_BRIDGE=`request-bridge`,e.REQUEST_ONRAMP=`request-onramp`,e.REQUEST_SWAP=`request-swap`,e.PAYMENT_TOKEN=`payment-token`,e}({}),M2=function(e){return e.CRYPTO=`crypto`,e.DEBIT=`debit`,e.CREDIT=`credit`,e}({}),N2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.FAILURE=`failure`,e.TRANSACTION_SENT=`transaction-sent`,e.LANGUAGE_CHANGED=`language-changed`,e.CLAIM_WITHDRAWAL_SUCCESS=`claim-withdrawal-success`,e.CLAIM_WITHDRAWAL_FAILURE=`claim-withdrawal-failure`,e}({}),P2=function(e){return e.REQUEST_CONNECT=`request-connect`,e.REQUEST_WALLET=`request-wallet`,e.REQUEST_SWAP=`request-swap`,e.REQUEST_BRIDGE=`request-bridge`,e.REQUEST_ONRAMP=`request-onramp`,e.REQUEST_ADD_TOKENS=`request-add-tokens`,e.REQUEST_PURCHASE=`request-purchase`,e.REQUEST_GO_BACK=`request-go-back`,e}({}),F2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),I2=function(e){return e.INITIALISED=`INITIALISED`,e.PROVIDER_UPDATED=`PROVIDER_UPDATED`,e.CLOSE=`CLOSE`,e.SUCCESS=`SUCCESS`,e.FAILURE=`FAILURE`,e.DISCONNECTED=`DISCONNECTED`,e.USER_ACTION=`USER_ACTION`,e}({}),L2=function(e){return e.SWAP_SUCCESS=`SWAP_SUCCESS`,e.ONRAMP_SUCCESS=`ONRAMP_SUCCESS`,e.CONNECT_SUCCESS=`CONNECT_SUCCESS`,e.SALE_SUCCESS=`SALE_SUCCESS`,e.SALE_TRANSACTION_SUCCESS=`SALE_TRANSACTION_SUCCESS`,e.BRIDGE_SUCCESS=`BRIDGE_SUCCESS`,e.BRIDGE_CLAIM_WITHDRAWAL_SUCCESS=`BRIDGE_CLAIM_WITHDRAWAL_SUCCESS`,e.ADD_TOKENS_SUCCESS=`ADD_TOKENS_SUCCESS`,e.ADD_TOKENS_CONNECT_SUCCESS=`ADD_TOKENS_CONNECT_SUCCESS`,e.TRANSFER_SUCCESS=`TRANSFER_SUCCESS`,e}({}),R2=function(e){return e.BRIDGE_FAILED=`BRIDGE_FAILED`,e.BRIDGE_CLAIM_WITHDRAWAL_FAILED=`BRIDGE_CLAIM_WITHDRAWAL_FAILED`,e.SWAP_FAILED=`SWAP_FAILED`,e.SWAP_REJECTED=`SWAP_REJECTED`,e.CONNECT_FAILED=`CONNECT_FAILED`,e.SALE_FAILED=`SALE_FAILED`,e.ONRAMP_FAILED=`ONRAMP_FAILED`,e.ADD_TOKENS_FAILED=`ADD_TOKENS_FAILED`,e.TRANSFER_FAILED=`TRANSFER_FAILED`,e}({}),z2=function(e){return e.PAYMENT_METHOD_SELECTED=`PAYMENT_METHOD_SELECTED`,e.PAYMENT_TOKEN_SELECTED=`PAYMENT_TOKEN_SELECTED`,e.NETWORK_SWITCH=`NETWORK_SWITCH`,e}({}),B2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.LANGUAGE_CHANGED=`language-changed`,e.CONNECT_SUCCESS=`connect-success`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),V2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.CONNECT_SUCCESS=`connect-success`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),H2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.REJECTED=`rejected`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),U2=function(e){return e.CONNECT=`connect`,e.WALLET=`wallet`,e.SWAP=`swap`,e.BRIDGE=`bridge`,e.ONRAMP=`onramp`,e.SALE=`sale`,e.IMMUTABLE_COMMERCE=`immutableCommerce`,e.ADD_TOKENS=`addTokens`,e.PURCHASE=`purchase`,e.TRANSFER=`transfer`,e}({}),W2=function(e){return e.LAYER1=`LAYER1`,e.LAYER2=`LAYER2`,e}({}),G2=function(e){return e.FROM=`FROM`,e.TO=`TO`,e}({}),K2=function(e){return e.CONNECT=`CONNECT`,e.WALLET=`WALLET`,e.SALE=`SALE`,e.SWAP=`SWAP`,e.BRIDGE=`BRIDGE`,e.ONRAMP=`ONRAMP`,e.ADD_TOKENS=`ADD_TOKENS`,e.PURCHASE=`PURCHASE`,e.TRANSFER=`TRANSFER`,e}({}),q2=function(e){return e.LIGHT=`light`,e.DARK=`dark`,e}({}),J2=[`https://checkout-api.dev.immutable.com`,`https://checkout-api.sandbox.immutable.com`,`https://checkout-api.immutable.com`];var Y2=class{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=R.create(),this.setupInterceptors()}shouldAddPublishableKey(e){return J2.some(t=>e.startsWith(t))}setupInterceptors(){this.axiosInstance.interceptors.request.use(e=>{let t=this.config?.baseConfig?.publishableKey;if(t&&this.shouldAddPublishableKey(e.url||``)){if(!t.startsWith(`pk_imapik-`))throw Error(`Invalid Publishable key. Create your Publishable key in Immutable developer hub. https://hub.immutable.com`);e.headers[`x-immutable-publishable-key`]=t}return e},e=>Promise.reject(e))}async request(e){return await this.axiosInstance.request(e)}async get(e,t){let n={...t,url:e};return await this.request(n)}async post(e,t,n){let r={...n,data:t,url:e};return await this.request(r)}async put(e,t,n){let r={...n,data:t,url:e};return await this.request(r)}async delete(e,t,n){let r={...n,data:t,url:e};return await this.request(r)}};let X2=function(e){return e.MISSING_PARAMS=`MISSING_PARAMS`,e.WEB3_PROVIDER_ERROR=`WEB3_PROVIDER_ERROR`,e.PROVIDER_ERROR=`PROVIDER_ERROR`,e.DEFAULT_PROVIDER_ERROR=`DEFAULT_PROVIDER_ERROR`,e.CONNECT_PROVIDER_ERROR=`CONNECT_PROVIDER_ERROR`,e.GET_BALANCE_ERROR=`GET_BALANCE_ERROR`,e.GET_INDEXER_BALANCE_ERROR=`GET_INDEXER_BALANCE_ERROR`,e.GET_ERC20_INFO_ERROR=`GET_ERC20_INFO_ERROR`,e.GET_ERC20_BALANCE_ERROR=`GET_ERC20_BALANCE_ERROR`,e.GET_ERC721_BALANCE_ERROR=`GET_ERC721_BALANCE_ERROR`,e.GET_NETWORK_INFO_ERROR=`GET_NETWORK_INFO_ERROR`,e.METAMASK_PROVIDER_ERROR=`METAMASK_PROVIDER_ERROR`,e.CHAIN_NOT_SUPPORTED_ERROR=`CHAIN_NOT_SUPPORTED_ERROR`,e.PROVIDER_REQUEST_MISSING_ERROR=`PROVIDER_REQUEST_MISSING_ERROR`,e.PROVIDER_REQUEST_FAILED_ERROR=`PROVIDER_REQUEST_FAILED_ERROR`,e.USER_REJECTED_REQUEST_ERROR=`USER_REJECTED_REQUEST_ERROR`,e.TRANSACTION_FAILED=`TRANSACTION_FAILED`,e.INSUFFICIENT_FUNDS=`INSUFFICIENT_FUNDS`,e.UNPREDICTABLE_GAS_LIMIT=`UNPREDICTABLE_GAS_LIMIT`,e.INVALID_GAS_ESTIMATE_TYPE=`INVALID_GAS_ESTIMATE_TYPE`,e.UNSUPPORTED_TOKEN_TYPE_ERROR=`UNSUPPORTED_TOKEN_TYPE_ERROR`,e.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR=`UNSUPPORTED_BALANCE_REQUIREMENT_ERROR`,e.GET_ORDER_LISTING_ERROR=`GET_ORDER_LISTING_ERROR`,e.CANCEL_ORDER_LISTING_ERROR=`CANCEL_ORDER_LISTING_ERROR`,e.PREPARE_ORDER_LISTING_ERROR=`PREPARE_ORDER_LISTING_ERROR`,e.CREATE_ORDER_LISTING_ERROR=`CREATE_ORDER_LISTING_ERROR`,e.FULFILL_ORDER_LISTING_ERROR=`FULFILL_ORDER_LISTING_ERROR`,e.SWITCH_NETWORK_UNSUPPORTED=`SWITCH_NETWORK_UNSUPPORTED`,e.GET_ERC20_ALLOWANCE_ERROR=`GET_ERC20_ALLOWANCE_ERROR`,e.GET_ERC721_ALLOWANCE_ERROR=`GET_ERC721_ALLOWANCE_ERROR`,e.GET_ERC1155_ALLOWANCE_ERROR=`GET_ERC1155_ALLOWANCE_ERROR`,e.EXECUTE_APPROVAL_TRANSACTION_ERROR=`EXECUTE_APPROVAL_TRANSACTION_ERROR`,e.EXECUTE_FULFILLMENT_TRANSACTION_ERROR=`EXECUTE_FULFILLMENT_TRANSACTION_ERROR`,e.SIGN_MESSAGE_ERROR=`SIGN_MESSAGE_ERROR`,e.BRIDGE_GAS_ESTIMATE_ERROR=`BRIDGE_GAS_ESTIMATE_ERROR`,e.ORDER_FEE_ERROR=`ORDER_FEE_ERROR`,e.ITEM_REQUIREMENTS_ERROR=`ITEM_REQUIREMENTS_ERROR`,e.API_ERROR=`API_ERROR`,e.ORDER_EXPIRED_ERROR=`ORDER_EXPIRED_ERROR`,e.WIDGETS_SCRIPT_LOAD_ERROR=`WIDGETS_SCRIPT_LOAD_ERROR`,e.APPROVAL_TRANSACTION_FAILED=`APPROVAL_TRANSACTION_FAILED`,e}({});var $=class extends Error{message;type;data;constructor(e,t,n){super(e),this.message=e,this.type=t,this.data=n}};let Z2=async(e,t)=>{try{return await e()}catch(e){let n=e?.error?.message??(e.message||`UnknownError`),r=t.message?`[${t.type}]:${t.message}. Cause:${n}`:`[${t.type}] Cause:${n}`;throw e instanceof $?new $(r,t.type,{...t.data,innerErrorType:e.type,...e.data}):new $(r,t.type,{...t.data})}},Q2=function(e){return e[e.IMTBL_ZKEVM_MAINNET=13371]=`IMTBL_ZKEVM_MAINNET`,e[e.IMTBL_ZKEVM_TESTNET=13473]=`IMTBL_ZKEVM_TESTNET`,e[e.IMTBL_ZKEVM_DEVNET=15003]=`IMTBL_ZKEVM_DEVNET`,e[e.ETHEREUM=1]=`ETHEREUM`,e[e.SEPOLIA=11155111]=`SEPOLIA`,e}({}),$2=function(e){return e.ETHEREUM=`Ethereum`,e.SEPOLIA=`Sepolia`,e.IMTBL_ZKEVM_TESTNET=`Immutable zkEVM Testnet`,e.IMTBL_ZKEVM_DEVNET=`Immutable zkEVM Dev`,e.IMTBL_ZKEVM_MAINNET=`Immutable zkEVM`,e}({}),e4=function(e){return e.ETHEREUM=`ethereum`,e.SEPOLIA=`sepolia`,e.IMTBL_ZKEVM_MAINNET=`imtbl-zkevm-mainnet`,e.IMTBL_ZKEVM_TESTNET=`imtbl-zkevm-testnet`,e.IMTBL_ZKEVM_DEVNET=`imtbl-zkevm-devnet`,e}({}),t4=`development`,n4=`native`,r4={name:`IMX`,symbol:`IMX`,decimals:18,address:n4},i4={name:`tIMX`,symbol:`tIMX`,decimals:18,address:n4},a4={[t4]:`https://api.dev.immutable.com`,[Ve.SANDBOX]:`https://api.sandbox.immutable.com`,[Ve.PRODUCTION]:`https://api.immutable.com`},o4={[t4]:`https://checkout-api.dev.immutable.com`,[Ve.SANDBOX]:`https://checkout-api.sandbox.immutable.com`,[Ve.PRODUCTION]:`https://checkout-api.immutable.com`};Ve.SANDBOX,Ve.PRODUCTION;let s4=new Map([[1,{chainIdHex:`0x1`,chainName:`Ethereum`,rpcUrls:[`https://checkout-api.immutable.com/v1/rpc/eth-mainnet`],nativeCurrency:{name:`Ethereum`,symbol:`ETH`,decimals:18},blockExplorerUrls:[`https://etherscan.io/`]}],[13371,{chainIdHex:`0x343b`,chainName:`Immutable zkEVM`,rpcUrls:[`https://rpc.immutable.com`],nativeCurrency:r4}]]),c4=new Map([[11155111,{chainIdHex:`0xaa36a7`,chainName:`Sepolia`,rpcUrls:[`https://checkout-api.sandbox.immutable.com/v1/rpc/eth-sepolia`],nativeCurrency:{name:`Sep Eth`,symbol:`ETH`,decimals:18},blockExplorerUrls:[`https://sepolia.etherscan.io/`]}],[13473,{chainIdHex:`0x34a1`,chainName:`Immutable zkEVM Testnet`,rpcUrls:[`https://rpc.testnet.immutable.com`],nativeCurrency:i4}]]),l4=new Map([[11155111,{chainIdHex:`0xaa36a7`,chainName:`Sepolia`,rpcUrls:[`https://checkout-api.dev.immutable.com/v1/rpc/eth-sepolia`],nativeCurrency:{name:`Sep Eth`,symbol:`ETH`,decimals:18},blockExplorerUrls:[`https://sepolia.etherscan.io/`]}],[15003,{chainIdHex:`0x3a9b`,chainName:`Immutable zkEVM Dev`,rpcUrls:[`https://rpc.dev.immutable.com`],nativeCurrency:r4}]]),u4={13473:{url:`https://explorer.testnet.immutable.com`,nativeToken:c4.get(13473).nativeCurrency},13371:{url:`https://explorer.immutable.com`,nativeToken:s4.get(13371).nativeCurrency},11155111:{url:`https://eth-sepolia.blockscout.com`,nativeToken:c4.get(11155111).nativeCurrency},1:{url:`https://eth.blockscout.com/`,nativeToken:s4.get(1).nativeCurrency}},d4=[{constant:!0,inputs:[],name:`name`,outputs:[{name:``,type:`string`}],payable:!1,type:`function`},{constant:!0,inputs:[],name:`decimals`,outputs:[{name:``,type:`uint8`}],payable:!1,type:`function`},{constant:!0,inputs:[{name:`_owner`,type:`address`}],name:`balanceOf`,outputs:[{name:`balance`,type:`uint256`}],payable:!1,type:`function`},{constant:!0,inputs:[],name:`symbol`,outputs:[{name:``,type:`string`}],payable:!1,type:`function`},{constant:!0,inputs:[{name:`_owner`,type:`address`},{name:`_spender`,type:`address`}],name:`allowance`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`_spender`,type:`address`},{name:`_value`,type:`uint256`}],name:`approve`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`}],f4=[{constant:!1,inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`approve`,outputs:[],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[{internalType:`address`,name:`owner`,type:`address`},{internalType:`address`,name:`operator`,type:`address`}],name:`isApprovedForAll`,outputs:[{internalType:`bool`,name:``,type:`bool`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`getApproved`,outputs:[{internalType:`address`,name:``,type:`address`}],payable:!1,stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`ownerOf`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],p4=[{inputs:[{internalType:`address`,name:`account`,type:`address`},{internalType:`address`,name:`operator`,type:`address`}],name:`isApprovedForAll`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`operator`,type:`address`},{internalType:`bool`,name:`approved`,type:`bool`}],name:`setApprovalForAll`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`},{internalType:`uint256`,name:`id`,type:`uint256`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`}],m4={maxFeePerGas:BigInt(15e9),maxPriorityFeePerGas:BigInt(1e10)},h4=()=>`2.24.1`,g4=(e,t)=>{let n=()=>e?a4[t4]:t?a4[Ve.PRODUCTION]:a4[Ve.SANDBOX];return{checkDexAvailability:async()=>{let e;try{e=await R.post(`${n()}/v1/availability/checkout/swap`)}catch(t){if(e=t.response,e.status===403)return!1;throw new $(`Error fetching from api: ${e.status} ${e.statusText}`,`API_ERROR`,{error:t})}return!0}}},_4=function(e){return e.BRIDGE_TO_L2=`BRIDGE_TO_L2`,e.SWAP=`SWAP`,e}({}),v4=function(e){return e.ALL=`all`,e}({}),y4=function(e){return e.ALL=`all`,e.SWAP=`swap`,e.BRIDGE=`bridge`,e.ONRAMP=`onramp`,e}({}),b4=function(e){return e.ALL=`all`,e}({}),x4=function(e){return e.PASSPORT=`passport`,e.METAMASK=`metamask`,e.WALLETCONNECT=`walletconnect`,e}({}),S4=function(e){return e.PASSPORT=`com.immutable.passport`,e.METAMASK=`io.metamask`,e.WALLETCONNECT=`walletconnect`,e}({}),C4={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var w4=class extends wR{ethereumProvider;constructor(e,t,n){super(e,t,n),this.#e(e)}#e(e){!(`request`in e)||typeof e.request!=`function`||(this.ethereumProvider=e)}};let T4=function(e){return e.SUCCESS=`SUCCESS`,e.FAILED=`FAILED`,e.INSUFFICIENT_FUNDS=`INSUFFICIENT_FUNDS`,e.FULFILLMENTS_UNSETTLED=`FULFILLMENTS_UNSETTLED`,e}({}),E4=function(e){return e.NATIVE=`NATIVE`,e.ERC20=`ERC20`,e.ERC721=`ERC721`,e.ERC1155=`ERC1155`,e}({}),D4=function(e){return e.TRANSACTION=`TRANSACTION`,e.GAS=`GAS`,e}({}),O4=function(e){return e.NATIVE=`NATIVE`,e.ERC20=`ERC20`,e}({}),k4=function(e){return e.ROUTES_FOUND=`ROUTES_FOUND`,e.NO_ROUTES_FOUND=`NO_ROUTES_FOUND`,e.NO_ROUTE_OPTIONS=`NO_ROUTE_OPTIONS`,e}({}),A4=function(e){return e.GAS=`GAS`,e.BRIDGE_FEE=`BRIDGE_FEE`,e.SWAP_FEE=`SWAP_FEE`,e.IMMUTABLE_FEE=`IMMUTABLE_FEE`,e}({}),j4=function(e){return e.BRIDGE=`BRIDGE`,e.SWAP=`SWAP`,e.ONRAMP=`ONRAMP`,e}({}),M4=function(e){return e.ONRAMP=`onramp`,e}({});async function N4(e){if(!e.send)throw new $(`Parsed provider is not a valid WrappedBrowserProvider`,`WEB3_PROVIDER_ERROR`);let t=await e.send(`eth_chainId`,[]);if(typeof t!=`bigint`)throw new $(`Invalid chainId`,`WEB3_PROVIDER_ERROR`);return t}async function P4(e){let t=await e.getNetwork();return t.chainId&&typeof t.chainId==`bigint`?t.chainId:N4(e)}let F4=4902;async function I4(e,t,n){return await t.send(`wallet_switchEthereumChain`,[{chainId:e.get(n)?.chainIdHex}])}async function L4(e,t,n){if(t.send){let r=e.get(n),i={chainId:r?.chainIdHex,chainName:r?.chainName,rpcUrls:r?.rpcUrls,nativeCurrency:r?.nativeCurrency,blockExplorerUrls:r?.blockExplorerUrls};return await t.send(`wallet_addEthereumChain`,[i])}return Promise.reject(`Provider does not support request method`)}async function R4(e,{type:t=`all`,exclude:n}){let{networkMap:r}=e,i=await e.remote.getConfig(`allowedNetworks`);i||console.warn(`No allowed networks configured`);let a=(i||[]).filter(e=>{let r=t===`all`,i=!(n||[]).map(e=>e.chainId).includes(e.chainId);return r&&i}),o=[];return a.forEach(e=>{let t=r.get(e.chainId);t&&o.push({name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0})}),{networks:o}}async function z4(e,t){let{networkMap:n}=e;return Z2(async()=>{try{let e=await t.getNetwork();if(Array.from(n.keys()).includes(Number(e.chainId))){let t=n.get(Number(e.chainId));return{name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0}}return{chainId:Number(e.chainId),name:e.name,isSupported:!1}}catch{let e=await P4(t),r=Array.from(n.keys()).includes(Number(e));return{chainId:Number(e),isSupported:r}}},{type:`GET_NETWORK_INFO_ERROR`})}let B4=e=>e.error?.data?.originalError?.code===F4||e.error?.code===F4;async function V4(e,t,n){let{networkMap:r}=e;if(!(await R4(e,{type:`all`})).networks.some(e=>e.chainId===n))throw new $(`Chain:${n} is not a supported chain`,`CHAIN_NOT_SUPPORTED_ERROR`);if(t.ethereumProvider?.isPassport)throw new $(`Switching networks with Passport provider is not supported`,`SWITCH_NETWORK_UNSUPPORTED`);try{await I4(r,t,n)}catch(e){if(console.error(e),B4(e))try{await L4(r,t,n)}catch(e){throw new $(`User cancelled add network request`,`USER_REJECTED_REQUEST_ERROR`,{error:e})}else throw new $(`User cancelled switch network request`,`USER_REJECTED_REQUEST_ERROR`)}let i=new w4(t.ethereumProvider),a=await i.getNetwork();if(Number(a.chainId)!==n)throw new $(`User cancelled switch network request`,`USER_REJECTED_REQUEST_ERROR`);return{network:await z4(e,i),provider:i}}var H4=class{httpClient;endpoint;configCache;version=`v1`;constructor(e,t){this.endpoint=t.remoteConfigEndpoint,this.httpClient=e}parseResponse(e){let t=e.data;if(e.data&&typeof e.data!=`object`)try{t=JSON.parse(e.data)}catch(e){throw new $(`Invalid configuration`,`API_ERROR`,{error:e})}return t}async loadConfig(){if(this.configCache)return this.configCache;let e;try{e=await this.httpClient.get(`${this.endpoint}/${this.version}/config`)}catch(e){throw new $(`Error: ${e.message}`,`API_ERROR`,{error:e})}return this.configCache=this.parseResponse(e),this.configCache}async getConfig(e){let t=await this.loadConfig();if(t)return e?t[e]:t}getHttpClient=()=>this.httpClient},U4=class{httpClient;remoteConfig;baseUrl;chainSlug;tokensCache;constructor(e,t,n){this.baseUrl=n.baseUrl,this.chainSlug=n.chainSlug,this.httpClient=e,this.remoteConfig=t}async loadTokens(){if(this.tokensCache)return this.tokensCache;let e;try{e=await this.httpClient.get(`${this.baseUrl}/v1/chains/${this.chainSlug}/tokens?verification_status=verified&is_canonical=true`)}catch(e){throw new $(`Error: ${e.message}`,`API_ERROR`,{error:e})}let t=this.parseResponse(e);return this.tokensCache=await this.getMappingsForTokensResponse(t?.result||[]),this.tokensCache}async getChainTokensConfig(){return await this.loadTokens()??{}}async getTokensConfig(e){let t=await this.loadTokens();return!t||!t[e]?[]:t[e]??[]}async getMappingsForTokensResponse(e){let t={},n=await this.fetchIMXTokenMappings();return Object.keys(n).forEach(e=>{let r=parseInt(e,10);t[r]=[],t[r]?.push({address:n[e],decimals:18,name:`IMX`,symbol:`IMX`,bridge:`native`})}),e.forEach(e=>{let n=parseInt(e.chain.id.split(`eip155:`).pop()||``,10);if(!e.symbol||!e.decimals)return;t[n]||(t[n]=[]);let r={address:e.contract_address.toLowerCase(),decimals:e.decimals,name:e.name,symbol:e.symbol,icon:e.image_url??void 0,bridge:e.bridge_used??null};t[n]?.push(r);let i=parseInt(e.root_chain_id?.split(`eip155:`).pop()||``,10),a=e.root_contract_address?.toLowerCase();i&&a&&(t[i]||(t[i]=[]),a===`0x0000000000000000000000000000000000000eee`&&(a=`native`),t[i]?.push({...r,address:a}))}),t}parseResponse(e){let t=e.data;if(e.data&&typeof e.data!=`object`)try{t=JSON.parse(e.data)}catch(e){throw new $(`Invalid token data`,`API_ERROR`,{error:e})}return t}async fetchIMXTokenMappings(){return await this.remoteConfig.getConfig(`imxAddressMapping`)}},W4=class extends Error{message;constructor(e){super(e),this.message=e}};let G4=(e,t)=>t?l4:e?s4:c4,K4=(e,t)=>t?a4[t4]:e?a4[Ve.PRODUCTION]:a4[Ve.SANDBOX],q4=(e,t)=>t?`imtbl-zkevm-devnet`:e?`imtbl-zkevm-mainnet`:`imtbl-zkevm-testnet`,J4=e=>e.isProduction?1:11155111,Y4=e=>e.isDevelopment?15003:e.isProduction?13371:13473,X4=(e,t)=>t?o4[t4]:e?o4[Ve.PRODUCTION]:o4[Ve.SANDBOX];var Z4=class{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;tokens;environment;networkMap;publishableKey;l1ChainId;l2ChainId;overrides;constructor(e,t){if(!Object.values(Ve).includes(e.baseConfig.environment))throw new W4(`Invalid checkout configuration of environment`);this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===Ve.PRODUCTION,this.isOnRampEnabled=e.onRamp?.enable??!0,this.isSwapEnabled=e.swap?.enable??!0,this.isBridgeEnabled=e.bridge?.enable??!0,this.publishableKey=e.publishableKey??`<no-publishable-key>`,this.networkMap=e.overrides?.networkMap??G4(this.isProduction,this.isDevelopment);let n=e.overrides?.remoteConfigEndpoint??X4(this.isProduction,this.isDevelopment);this.remote=new H4(t,{remoteConfigEndpoint:n}),this.tokens=new U4(t,this.remote,{baseUrl:e.overrides?.baseUrl??K4(this.isProduction,this.isDevelopment),chainSlug:e.overrides?.chainSlug??q4(this.isProduction,this.isDevelopment)}),this.l1ChainId=J4(this),this.l2ChainId=e.overrides?.l2ChainId??Y4(this),this.overrides=e.overrides??{}}get sdkVersion(){return h4()}};let Q4=(e=``,t=``)=>e.toLowerCase()===t.toLowerCase(),$4=e=>e===15003||e===13473||e===13371,e3=(e,t)=>{let n=e.indexOf(`.`),r=e.substring(n+t+1);if(r&&parseFloat(r)>=1){let r=e.substring(0,n+t+1),i=1/10**t;return(parseFloat(r)+i).toString()}return parseFloat(e.substring(0,n+t+1)).toString()},t3=(e,t=6)=>e.indexOf(`.`)===-1?e:e3(e,t),n3=async(e,{type:t=`all`,chainId:n,exclude:r})=>{let i=[],a,o,s=n??J4(e),c=Y4(e);switch(t){case`swap`:i=await e.tokens.getTokensConfig(c),o=((await e.remote.getConfig(`dex`))?.blocklist||[]).map(e=>e.address.toLowerCase()),i=i.filter(e=>e.address&&!o.includes(e.address));break;case`onramp`:a=await e.remote.getConfig(`onramp`),a||(i=[]),i=a[`201811419111`]?.tokens||[];break;case`bridge`:i=(await e.tokens.getTokensConfig(s)).filter(e=>e.bridge===`native`);break;default:i=await e.tokens.getTokensConfig(s)}return!r||r?.length===0?{tokens:i}:{tokens:i.filter(e=>!r.map(e=>e.address).includes(e.address||``))}},r3=e=>!e||Q4(e,`native`);async function i3(e,t){return await Z2(async()=>{let n=new JI(t,JSON.stringify(d4),e),[r,i,a]=await Promise.all([n.name(),n.symbol(),n.decimals()]);return{name:r,symbol:i,decimals:a,address:t}},{type:`GET_ERC20_INFO_ERROR`})}var a3=class{url;nativeToken;ttl;chainId;cacheMap;httpClient;setCache(e,t){this.cacheMap[e]={data:t,ttl:new Date().getTime()+this.ttl*1e3}}getCache(e){let t=this.cacheMap[e];return!t||t.ttl<=new Date().getTime()?null:t.data}constructor(e,t,n){this.httpClient=e,this.chainId=t,this.url=u4[this.chainId].url;let r=u4[this.chainId].nativeToken;this.nativeToken={address:r.address??``,decimals:r.decimals.toString(),name:r.name,symbol:r.symbol},this.cacheMap={},this.ttl=n===void 0?5:n}static isChainSupported=e=>!!u4[e];static isBlockscoutError=e=>`code`in e;async getTokensByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}/tokens?type=${e.tokenType}`;e.nextPage&&(t+=`&${new URLSearchParams(e.nextPage)}`);let n=this.getCache(t);if(n)return Promise.resolve(n);let r=await this.httpClient.get(t),i={items:(r.data?.items?.map(e=>{let t={...e.token,address:e.token.address_hash,holders:e.token.holders_count};return{...e,token:t}})||[]).filter(e=>e.token.address&&e.token.address!==this.nativeToken.address),next_page_params:r.data?.next_page_params};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=wi.InternalServerError,n=`InternalServerError`;return R.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}async getNativeTokenByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}`,n=this.getCache(t);if(n)return Promise.resolve(n);let r=await this.httpClient.get(t),i={token:this.nativeToken,value:r.data.coin_balance};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=wi.InternalServerError,n=`InternalServerError`;return R.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}};let o3=(e,t,n)=>{e.isProduction||console.info(t,n)},s3=async(e,t,n)=>{let r=performance.now(),i=await n,a=(performance.now()-r)/1e3;return o3(e,t,a),i},c3=async(e,t,n)=>await Z2(async()=>{let r=await z4(e,t);if(!r.isSupported)throw new $(`Chain:${r.chainId} is not a supported chain`,`CHAIN_NOT_SUPPORTED_ERROR`,{chainName:r.name});let i=await t.getBalance(n);return{balance:i,formattedBalance:yO(i,r.nativeCurrency.decimals),token:r.nativeCurrency}},{type:`GET_BALANCE_ERROR`});async function l3(e,t,n){return await Z2(async()=>{let r=new JI(n,JSON.stringify(d4),e);return Promise.all([i3(e,n),r.balanceOf(t)]).then(([e,t])=>({balance:t,formattedBalance:yO(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:n}}))},{type:`GET_ERC20_BALANCE_ERROR`})}let u3=new Map,d3=()=>u3.clear(),f3=async(e,t,n,r)=>{let i=r!==void 0,a=Object.assign({},...(r??[]).map(e=>({[e.address?.toLowerCase()||`native`]:e}))),o=u3.get(n);o||(o=new a3(e.remote.getHttpClient(),n),u3.set(n,o));let s=[];await Promise.all([(async e=>{let n;try{do n=await e.getTokensByWalletAddress({walletAddress:t,tokenType:`ERC-20`,nextPage:n?.next_page_params}),s.push(...n.items);while(n.next_page_params)}catch(e){if(e?.code!==wi.NotFound)throw new $(e.message||`InternalServerError | getTokensByWalletAddress`,`GET_INDEXER_BALANCE_ERROR`,{error:e})}})(o),(async e=>{try{let n=await e.getNativeTokenByWalletAddress({walletAddress:t});n.token.address||=n4,s.push(n)}catch(e){if(e?.code!==wi.NotFound)throw new $(e.message||`InternalServerError | getNativeTokenByWalletAddress`,`GET_INDEXER_BALANCE_ERROR`,{error:e})}})(o)]);let c=[];return s.forEach(e=>{let t=a[e.token.address.toLowerCase()];if(i&&!t)return;let n=e.token||{};if(e.value==null)return;let r=BigInt(e.value),o=parseInt(n.decimals,10);Number.isNaN(o)&&(o=18);let s=n.icon_url??t.icon,l={...n,decimals:o,icon:s},u=yO(e.value,l.decimals);c.push({balance:r,formattedBalance:u,token:l})}),{balances:c}},p3=async(e,t,n,r)=>{let i=[];return r.forEach(r=>{!r.address||Q4(r.address,`native`)?i.push(c3(e,t,n)):i.push(l3(t,n,r.address))}),(await Promise.allSettled(i)).reduce((e,t)=>{if(t.status!==`fulfilled`||t.value.balance===0n)return e;let{value:n}=t;return(!n.token.address||Q4(n.token.address,`native`))&&(n.token.address=n4),e.balances.push(n),e},{balances:[]})},m3=async(e,t,n,r,i)=>{if(!t)throw new $(`indexer is disabled for this chain, you must provide a provider.`,`MISSING_PARAMS`);let a=n;return a||=await(await t.getSigner()).getAddress(),await s3(e,`Time to fetch balances using RPC for ${r}`,p3(e,t,a,i))},h3=async(e,t,n,r,i=!1)=>{if(!n&&!t)throw new $(`both walletAddress and provider are missing. At least one must be provided.`,`MISSING_PARAMS`);if(!e.networkMap.get(r))throw new $(`chain ID ${r} not supported by the environment`,`CHAIN_NOT_SUPPORTED_ERROR`);let{tokens:a}=await n3(e,{type:`all`,chainId:r});if(i&&d3(),a3.isChainSupported(r)){let i=n??await(await t?.getSigner())?.getAddress();try{return await s3(e,`Time to fetch balances using blockscout for ${r}`,f3(e,i,r,a))}catch(i){if(i.type===`GET_INDEXER_BALANCE_ERROR`&&i.data?.error?.code===wi.TooManyRequests)return m3(e,t,n,r,a);throw i}}return m3(e,t,n,r,a)};async function g3(e){if(!e?.send)throw new $(`Check wallet connection request failed`,`PROVIDER_REQUEST_FAILED_ERROR`,{rpcMethod:`eth_accounts`});let t=[];try{t=await e.send(`eth_accounts`,[])}catch(e){throw new $(`Check wallet connection request failed`,`PROVIDER_REQUEST_FAILED_ERROR`,{error:e,rpcMethod:`eth_accounts`})}return{isConnected:t&&t.length>0,walletAddress:t[0]??``}}async function _3(e){if(!e||!e.send)throw new $(`Incompatible provider`,`PROVIDER_REQUEST_MISSING_ERROR`,{details:`Attempting to connect with an incompatible provider`});return await Z2(async()=>{e.send&&await e.send(`eth_requestAccounts`,[])},{type:`USER_REJECTED_REQUEST_ERROR`}),e}async function v3(e){if(!e||!e.send)throw new $(`Incompatible provider`,`PROVIDER_REQUEST_MISSING_ERROR`,{details:`Attempting to connect with an incompatible provider`});return await Z2(async()=>{e.send&&await e.send(`wallet_requestPermissions`,[{eth_accounts:{}}])},{type:`USER_REJECTED_REQUEST_ERROR`}),e}var y3=class{config;constructor(e){this.config=e}async feeEstimate(){return(await this.config.remote.getConfig(`onramp`))[`201811419111`]?.fees}async createWidgetUrl(e,t=new Y2){return await this.getTransakWidgetUrl(e,t)}async getTransakWidgetUrl(e,t){let n=await this.config.remote.getConfig(`onramp`),r=`${a4[this.config.environment]}/checkout/v1/widget-url`,i={api_key:n[`201811419111`].publishableApiKey,network:`immutablezkevm`,default_payment_method:`credit_debit_card`,disable_payment_methods:``,products_availed:`buy`,exchange_screen_title:e.customSubTitle===``?` `:e.customSubTitle??`Buy`,theme_color:`FFFFFF`,default_crypto_currency:e.tokenSymbol||`IMX`,hide_menu:!(e.showMenu??!0),referrer_domain:window.location.origin};return e.isPassport&&e.email&&(i={...i,email:e.email,is_auto_fill_user_data:!0,disable_wallet_address_form:!0}),i=e.tokenAmount&&e.tokenSymbol?{...i,default_crypto_amount:e.tokenAmount,crypto_currency_code:e.tokenSymbol}:{...i,default_fiat_amount:50,default_fiat_currency:`usd`},e.walletAddress&&(i={...i,wallet_address:e.walletAddress}),e.allowedTokens&&(i={...i,crypto_currency_list:e.allowedTokens?.join(`,`).toLowerCase()}),(await t.post(r,i,{method:`POST`})).data.url}};async function b3(e,t,n,r){let i=t===J4(r)?Dq.DEPOSIT:Dq.WITHDRAW;return await e.getFee({action:i,gasMultiplier:`auto`,sourceChainId:t.toString(),destinationChainId:n.toString(),token:`NATIVE`,amount:BigInt(0)})}function x3(e,t,n,r){let i=n.get(e),a=n.get(t);if(!i)throw new $(`Chain:${e} is not a supported chain`,`CHAIN_NOT_SUPPORTED_ERROR`);if(!a)throw new $(`Chain:${t} is not a supported chain`,`CHAIN_NOT_SUPPORTED_ERROR`);let o=Bq;return r.isDevelopment&&(o=zq),r.isProduction&&(o=Vq),new RJ(new UJ({baseConfig:new Ue({environment:r.environment}),bridgeInstance:o,rootProvider:i,childProvider:a}))}async function S3(e,t){let n=await t.remote.getConfig(`dex`);return new w2({chainId:e,baseConfig:new Ue({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function C3(e){return new Cq({baseConfig:{environment:e.environment}})}function w3(e){return new cc({baseConfig:{environment:e.environment}})}function T3(e,t,n){return new JI(e,t,n)}async function E3(e,t){let n=J4(t),r=Y4(t);if(!e.get(n))throw Error(`Missing JsonRpcProvider for chain id: ${n}`);try{return{gasEstimateType:`BRIDGE_TO_L2`,fees:await b3(x3(n,r,e,t),n,r,t),token:t.networkMap.get(n)?.nativeCurrency}}catch{return{gasEstimateType:`BRIDGE_TO_L2`,fees:{sourceChainGas:BigInt(0),approvalFee:BigInt(0),bridgeFee:BigInt(0),imtblFee:BigInt(0),totalFees:BigInt(0)},token:t.networkMap.get(n)?.nativeCurrency}}}async function D3(e){let t=Y4(e),{inAddress:n,outAddress:r}=(await e.remote.getConfig(`gasEstimateTokens`))[t].swapAddresses;try{let{swap:i}=await(await S3(t,e)).getUnsignedSwapTxFromAmountIn(`0x0000000000000000000000000000000000000001`,n,r,BigInt(bO(`1`,18)));return i.gasFeeEstimate?{gasEstimateType:`SWAP`,fees:{totalFees:i.gasFeeEstimate.value?BigInt(i.gasFeeEstimate.value):void 0,token:{address:i.gasFeeEstimate.token.address,symbol:i.gasFeeEstimate.token.symbol??``,name:i.gasFeeEstimate.token.name??``,decimals:i.gasFeeEstimate.token.decimals??18}}}:{gasEstimateType:`SWAP`,fees:{}}}catch{return{gasEstimateType:`SWAP`,fees:{}}}}async function O3(e,t,n){switch(e.gasEstimateType){case`BRIDGE_TO_L2`:return await E3(t,n);case`SWAP`:return await D3(n);default:throw new $(`Invalid type provided for gasEstimateType`,`INVALID_GAS_ESTIMATE_TYPE`)}}let k3=e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas,A3=e=>{if(k3(e)){let{maxFeePerGas:t,maxPriorityFeePerGas:n}=e;return t===null||n===null?null:n+(t-n)/BigInt(2)}return e.gasPrice?e.gasPrice:null};function j3(e){if(typeof window>`u`)return;let t=t=>e(t.detail);return window.addEventListener(`eip6963:announceProvider`,t),window.dispatchEvent(new CustomEvent(`eip6963:requestProvider`)),()=>window.removeEventListener(`eip6963:announceProvider`,t)}function M3(){let e=new Set,t=[],n=()=>j3(n=>{t.some(({info:e})=>e.uuid===n.info.uuid)||(t=[...t,n],e.forEach(e=>e(t,{added:[n]})))}),r=n();return{_listeners(){return e},clear(){e.forEach(e=>e([],{removed:[...t]})),t=[]},destroy(){this.clear(),e.clear(),r?.()},findProvider({rdns:e}){return t.find(t=>t.info.rdns===e)},getProviders(){return t},reset(){this.clear(),r?.(),r=n()},subscribe(n,{emitImmediately:r}={}){return e.add(n),r&&n(t,{added:t}),()=>e.delete(n)}}}var N3=class e{static instance;store;resetTimeout;isInit=!1;constructor(){this.store=M3(),this.store.reset()}static getInstance(){return e.instance||=new e,e.instance}findProvider(e){return this.store.findProvider(e)}getProviders(){return this.store.getProviders()}subscribe(e){return this.store.subscribe(e)}clear(){this.store.clear()}reset(){clearTimeout(this.resetTimeout),this.resetTimeout=setTimeout(()=>{this.store.reset()},200)}initialise(){this.isInit||(this.isInit=!0,this.reset())}requestProviders(){window.dispatchEvent(new CustomEvent(`eip6963:requestProvider`))}destroy(){this.store.destroy()}};let P3={name:`MetaMask`,rdns:`io.metamask`,icon:`data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjMzIiB2aWV3Qm94PSIwIDAgMzUgMzMiIHdpZHRoPSIzNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjI1Ij48cGF0aCBkPSJtMzIuOTU4MiAxLTEzLjEzNDEgOS43MTgzIDIuNDQyNC01LjcyNzMxeiIgZmlsbD0iI2UxNzcyNiIgc3Ryb2tlPSIjZTE3NzI2Ii8+PGcgZmlsbD0iI2UyNzYyNSIgc3Ryb2tlPSIjZTI3NjI1Ij48cGF0aCBkPSJtMi42NjI5NiAxIDEzLjAxNzE0IDkuODA5LTIuMzI1NC01LjgxODAyeiIvPjxwYXRoIGQ9Im0yOC4yMjk1IDIzLjUzMzUtMy40OTQ3IDUuMzM4NiA3LjQ4MjkgMi4wNjAzIDIuMTQzNi03LjI4MjN6Ii8+PHBhdGggZD0ibTEuMjcyODEgMjMuNjUwMSAyLjEzMDU1IDcuMjgyMyA3LjQ2OTk0LTIuMDYwMy0zLjQ4MTY2LTUuMzM4NnoiLz48cGF0aCBkPSJtMTAuNDcwNiAxNC41MTQ5LTIuMDc4NiAzLjEzNTggNy40MDUuMzM2OS0uMjQ2OS03Ljk2OXoiLz48cGF0aCBkPSJtMjUuMTUwNSAxNC41MTQ5LTUuMTU3NS00LjU4NzA0LS4xNjg4IDguMDU5NzQgNy40MDQ5LS4zMzY5eiIvPjxwYXRoIGQ9Im0xMC44NzMzIDI4Ljg3MjEgNC40ODE5LTIuMTYzOS0zLjg1ODMtMy4wMDYyeiIvPjxwYXRoIGQ9Im0yMC4yNjU5IDI2LjcwODIgNC40Njg5IDIuMTYzOS0uNjEwNS01LjE3MDF6Ii8+PC9nPjxwYXRoIGQ9Im0yNC43MzQ4IDI4Ljg3MjEtNC40NjktMi4xNjM5LjM2MzggMi45MDI1LS4wMzkgMS4yMzF6IiBmaWxsPSIjZDViZmIyIiBzdHJva2U9IiNkNWJmYjIiLz48cGF0aCBkPSJtMTAuODczMiAyOC44NzIxIDQuMTU3MiAxLjk2OTYtLjAyNi0xLjIzMS4zNTA4LTIuOTAyNXoiIGZpbGw9IiNkNWJmYjIiIHN0cm9rZT0iI2Q1YmZiMiIvPjxwYXRoIGQ9Im0xNS4xMDg0IDIxLjc4NDItMy43MTU1LTEuMDg4NCAyLjYyNDMtMS4yMDUxeiIgZmlsbD0iIzIzMzQ0NyIgc3Ryb2tlPSIjMjMzNDQ3Ii8+PHBhdGggZD0ibTIwLjUxMjYgMjEuNzg0MiAxLjA5MTMtMi4yOTM1IDIuNjM3MiAxLjIwNTF6IiBmaWxsPSIjMjMzNDQ3IiBzdHJva2U9IiMyMzM0NDciLz48cGF0aCBkPSJtMTAuODczMyAyOC44NzIxLjY0OTUtNS4zMzg2LTQuMTMxMTcuMTE2N3oiIGZpbGw9IiNjYzYyMjgiIHN0cm9rZT0iI2NjNjIyOCIvPjxwYXRoIGQ9Im0yNC4wOTgyIDIzLjUzMzUuNjM2NiA1LjMzODYgMy40OTQ2LTUuMjIxOXoiIGZpbGw9IiNjYzYyMjgiIHN0cm9rZT0iI2NjNjIyOCIvPjxwYXRoIGQ9Im0yNy4yMjkxIDE3LjY1MDctNy40MDUuMzM2OS42ODg1IDMuNzk2NiAxLjA5MTMtMi4yOTM1IDIuNjM3MiAxLjIwNTF6IiBmaWxsPSIjY2M2MjI4IiBzdHJva2U9IiNjYzYyMjgiLz48cGF0aCBkPSJtMTEuMzkyOSAyMC42OTU4IDIuNjI0Mi0xLjIwNTEgMS4wOTEzIDIuMjkzNS42ODg1LTMuNzk2Ni03LjQwNDk1LS4zMzY5eiIgZmlsbD0iI2NjNjIyOCIgc3Ryb2tlPSIjY2M2MjI4Ii8+PHBhdGggZD0ibTguMzkyIDE3LjY1MDcgMy4xMDQ5IDYuMDUxMy0uMTAzOS0zLjAwNjJ6IiBmaWxsPSIjZTI3NTI1IiBzdHJva2U9IiNlMjc1MjUiLz48cGF0aCBkPSJtMjQuMjQxMiAyMC42OTU4LS4xMTY5IDMuMDA2MiAzLjEwNDktNi4wNTEzeiIgZmlsbD0iI2UyNzUyNSIgc3Ryb2tlPSIjZTI3NTI1Ii8+PHBhdGggZD0ibTE1Ljc5NyAxNy45ODc2LS42ODg2IDMuNzk2Ny44NzA0IDQuNDgzMy4xOTQ5LTUuOTA4N3oiIGZpbGw9IiNlMjc1MjUiIHN0cm9rZT0iI2UyNzUyNSIvPjxwYXRoIGQ9Im0xOS44MjQyIDE3Ljk4NzYtLjM2MzggMi4zNTg0LjE4MTkgNS45MjE2Ljg3MDQtNC40ODMzeiIgZmlsbD0iI2UyNzUyNSIgc3Ryb2tlPSIjZTI3NTI1Ii8+PHBhdGggZD0ibTIwLjUxMjcgMjEuNzg0Mi0uODcwNCA0LjQ4MzQuNjIzNi40NDA2IDMuODU4NC0zLjAwNjIuMTE2OS0zLjAwNjJ6IiBmaWxsPSIjZjU4NDFmIiBzdHJva2U9IiNmNTg0MWYiLz48cGF0aCBkPSJtMTEuMzkyOSAyMC42OTU4LjEwNCAzLjAwNjIgMy44NTgzIDMuMDA2Mi42MjM2LS40NDA2LS44NzA0LTQuNDgzNHoiIGZpbGw9IiNmNTg0MWYiIHN0cm9rZT0iI2Y1ODQxZiIvPjxwYXRoIGQ9Im0yMC41OTA2IDMwLjg0MTcuMDM5LTEuMjMxLS4zMzc4LS4yODUxaC00Ljk2MjZsLS4zMjQ4LjI4NTEuMDI2IDEuMjMxLTQuMTU3Mi0xLjk2OTYgMS40NTUxIDEuMTkyMSAyLjk0ODkgMi4wMzQ0aDUuMDUzNmwyLjk2Mi0yLjAzNDQgMS40NDItMS4xOTIxeiIgZmlsbD0iI2MwYWM5ZCIgc3Ryb2tlPSIjYzBhYzlkIi8+PHBhdGggZD0ibTIwLjI2NTkgMjYuNzA4Mi0uNjIzNi0uNDQwNmgtMy42NjM1bC0uNjIzNi40NDA2LS4zNTA4IDIuOTAyNS4zMjQ4LS4yODUxaDQuOTYyNmwuMzM3OC4yODUxeiIgZmlsbD0iIzE2MTYxNiIgc3Ryb2tlPSIjMTYxNjE2Ii8+PHBhdGggZD0ibTMzLjUxNjggMTEuMzUzMiAxLjEwNDMtNS4zNjQ0Ny0xLjY2MjktNC45ODg3My0xMi42OTIzIDkuMzk0NCA0Ljg4NDYgNC4xMjA1IDYuODk4MyAyLjAwODUgMS41Mi0xLjc3NTItLjY2MjYtLjQ3OTUgMS4wNTIzLS45NTg4LS44MDU0LS42MjIgMS4wNTIzLS44MDM0eiIgZmlsbD0iIzc2M2UxYSIgc3Ryb2tlPSIjNzYzZTFhIi8+PHBhdGggZD0ibTEgNS45ODg3MyAxLjExNzI0IDUuMzY0NDctLjcxNDUxLjUzMTMgMS4wNjUyNy44MDM0LS44MDU0NS42MjIgMS4wNTIyOC45NTg4LS42NjI1NS40Nzk1IDEuNTE5OTcgMS43NzUyIDYuODk4MzUtMi4wMDg1IDQuODg0Ni00LjEyMDUtMTIuNjkyMzMtOS4zOTQ0eiIgZmlsbD0iIzc2M2UxYSIgc3Ryb2tlPSIjNzYzZTFhIi8+PHBhdGggZD0ibTMyLjA0ODkgMTYuNTIzNC02Ljg5ODMtMi4wMDg1IDIuMDc4NiAzLjEzNTgtMy4xMDQ5IDYuMDUxMyA0LjEwNTItLjA1MTloNi4xMzE4eiIgZmlsbD0iI2Y1ODQxZiIgc3Ryb2tlPSIjZjU4NDFmIi8+PHBhdGggZD0ibTEwLjQ3MDUgMTQuNTE0OS02Ljg5ODI4IDIuMDA4NS0yLjI5OTQ0IDcuMTI2N2g2LjExODgzbDQuMTA1MTkuMDUxOS0zLjEwNDg3LTYuMDUxM3oiIGZpbGw9IiNmNTg0MWYiIHN0cm9rZT0iI2Y1ODQxZiIvPjxwYXRoIGQ9Im0xOS44MjQxIDE3Ljk4NzYuNDQxNy03LjU5MzIgMi4wMDA3LTUuNDAzNGgtOC45MTE5bDIuMDAwNiA1LjQwMzQuNDQxNyA3LjU5MzIuMTY4OSAyLjM4NDIuMDEzIDUuODk1OGgzLjY2MzVsLjAxMy01Ljg5NTh6IiBmaWxsPSIjZjU4NDFmIiBzdHJva2U9IiNmNTg0MWYiLz48L2c+PC9zdmc+`,uuid:`fb8e904e-1a71-454a-af65-dc1ee86311c3`},F3={icon:`data:image/svg+xml,<svg viewBox="0 0 48 48" class="SvgIcon undefined Logo Logo--PassportSymbolOutlined css-1dn9atd" xmlns="http://www.w3.org/2000/svg"><g data-testid="undefined__g"><circle cx="24" cy="24" r="22.5" fill="url(%23paint0_radial_6324_83922)"></circle><circle cx="24" cy="24" r="22.5" fill="url(%23paint1_radial_6324_83922)"></circle><path d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM23.0718 9.16608C23.7383 8.83951 24.4406 8.86188 25.087 9.2287C27.3282 10.5059 29.5627 11.7942 31.786 13.096C32.5018 13.5165 32.8686 14.1897 32.8708 15.0173C32.8843 17.9184 32.8798 20.8171 32.8708 23.7182C32.8708 23.8255 32.8015 23.9821 32.7143 24.0335C31.8531 24.548 30.9808 25.0423 30.0347 25.5881V25.1318C30.0347 22.148 30.0257 19.1664 30.0414 16.1827C30.0436 15.6101 29.8468 15.241 29.339 14.9525C26.7377 13.474 24.1499 11.9687 21.5575 10.4723C21.4457 10.4075 21.3361 10.3381 21.1661 10.2352C21.8326 9.85722 22.4321 9.47698 23.0673 9.16608H23.0718ZM22.5953 38.8451C22.45 38.7713 22.3426 38.7198 22.2375 38.6595C18.8041 36.68 15.3752 34.687 11.9307 32.7232C10.9644 32.173 10.5238 31.3879 10.5349 30.2852C10.5551 27.9411 10.5484 25.597 10.5372 23.2507C10.5327 22.1927 10.9622 21.4255 11.8926 20.8977C14.3105 19.5221 16.715 18.1264 19.1195 16.7284C19.3275 16.6076 19.4796 16.5875 19.6965 16.7172C20.5264 17.216 21.3719 17.6924 22.2554 18.2024C22.0876 18.3031 21.9601 18.3791 21.8304 18.4552C19.2268 19.9582 16.6278 21.4658 14.0175 22.9599C13.5903 23.2037 13.3912 23.5213 13.3957 24.0179C13.4091 25.8654 13.4114 27.713 13.3957 29.5605C13.3912 30.0705 13.5948 30.3948 14.0332 30.6453C16.7866 32.2199 19.5288 33.8125 22.28 35.3916C22.5126 35.5258 22.611 35.6645 22.6065 35.9418C22.5864 36.888 22.5998 37.8363 22.5998 38.8473L22.5953 38.8451ZM22.5953 33.553C22.356 33.4166 22.1838 33.3204 22.0116 33.2198C19.8285 31.9605 17.6477 30.6967 15.4602 29.4464C15.2231 29.3122 15.1359 29.1668 15.1381 28.8917C15.1538 27.4714 15.1471 26.0511 15.1426 24.6308C15.1426 24.4384 15.1717 24.3064 15.3618 24.1991C16.167 23.7495 16.9633 23.2798 17.7618 22.8212C17.8199 22.7877 17.8826 22.7631 17.9877 22.7116V24.3064C17.9877 25.1698 18.0011 26.0354 17.9832 26.8988C17.972 27.3909 18.1622 27.7241 18.5916 27.9657C19.8285 28.6636 21.0498 29.3883 22.2867 30.0839C22.5305 30.2203 22.6043 30.3724 22.5998 30.6408C22.5842 31.5847 22.5931 32.5308 22.5931 33.5508L22.5953 33.553ZM20.0746 14.91C19.6116 14.6371 19.2157 14.6393 18.7527 14.91C16.1581 16.4265 13.5523 17.9228 10.9487 19.4259C10.8391 19.4908 10.7251 19.5489 10.5305 19.6541C10.5998 18.6654 10.3873 17.7327 10.7251 16.8291C10.9085 16.3348 11.2529 15.9635 11.7092 15.6995C13.8811 14.4447 16.0507 13.1877 18.227 11.9396C19.0211 11.4833 19.8308 11.4945 20.6248 11.953C23.0964 13.3756 25.5657 14.8026 28.0306 16.2341C28.1357 16.2945 28.2677 16.4309 28.2677 16.5338C28.2856 17.5493 28.2788 18.567 28.2788 19.6563C27.3819 19.1396 26.5543 18.6609 25.7267 18.1823C23.8412 17.093 21.9512 16.0149 20.0746 14.91ZM37.4427 30.8779C37.3778 31.6764 36.9103 32.2423 36.2192 32.6404C33.5732 34.1614 30.9294 35.6913 28.2856 37.2168C27.4557 37.6954 26.6259 38.1741 25.7938 38.6527C25.6932 38.7109 25.5903 38.7601 25.4539 38.8317C25.4449 38.693 25.4337 38.5924 25.4337 38.4917C25.4337 37.6149 25.4382 36.7404 25.4293 35.8636C25.4293 35.6645 25.4762 35.5437 25.6596 35.4386C29.5157 33.2198 33.3696 30.9942 37.2212 28.7709C37.2794 28.7374 37.3443 28.7105 37.4539 28.6591C37.4539 29.4375 37.4986 30.1622 37.4427 30.8779ZM37.4628 25.3577C37.4561 26.2658 36.9663 26.9033 36.1901 27.3506C33.175 29.0841 30.1622 30.8265 27.1493 32.5666C26.5991 32.8842 26.0466 33.1996 25.4561 33.5396C25.4472 33.3897 25.436 33.2913 25.436 33.1907C25.436 32.3273 25.4449 31.4617 25.4293 30.5983C25.4248 30.3523 25.5075 30.2226 25.72 30.0995C28.46 28.5271 31.1911 26.9368 33.9355 25.3733C34.4231 25.096 34.6378 24.7538 34.6334 24.1812C34.6132 21.1974 34.6244 18.2136 34.6244 15.2298V14.7087C35.3402 15.1404 36.0112 15.496 36.624 15.9299C37.1832 16.3258 37.465 16.9253 37.4673 17.6164C37.4762 20.1976 37.4829 22.7788 37.465 25.3599L37.4628 25.3577Z" fill="%230D0D0D"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint2_radial_6324_83922)"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint3_radial_6324_83922)"></path><defs><radialGradient id="paint0_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.4442 13.3899) rotate(44.9817) scale(46.7487 99.1435)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint1_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.9515 43.7068) rotate(84.265) scale(24.2138 46.3215)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient><radialGradient id="paint2_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.7405 12.6825) rotate(44.9817) scale(49.8653 105.753)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint3_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(26.0816 45.0206) rotate(84.265) scale(25.828 49.4096)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient></defs></g></svg>`,name:`Immutable Passport`,rdns:`com.immutable.passport`,uuid:`b90118be-7234-4c89-b89b-d5d267663eb5`},I3=e=>({info:F3,provider:e}),L3=e=>({info:P3,provider:e});async function R3(){let e=await Z2(async()=>await(0,T2.default)(),{type:`METAMASK_PROVIDER_ERROR`});if(!e||!e.request)throw new $(`No MetaMask provider installed.`,`METAMASK_PROVIDER_ERROR`);return new w4(e)}async function z3(e,t){let n=null,r;switch(e){case`passport`:if(r=N3.getInstance().findProvider({rdns:F3.rdns}),!r)if(t)n=new w4(await t.connectEvm({announceProvider:!1}));else throw console.error(`WalletProviderName was PASSPORT but the passport instance was not provided to the Checkout constructor`),new $(`Passport not provided`,`DEFAULT_PROVIDER_ERROR`);break;case`metamask`:r=N3.getInstance().findProvider({rdns:P3.rdns}),r||(n=await R3());break;default:if(r=N3.getInstance().findProvider({rdns:e}),!r)throw console.error(`The WalletProviderName that was provided is not supported`),new $(`Provider not supported`,`DEFAULT_PROVIDER_ERROR`)}if(!n&&r&&(n=new w4(r.provider)),!n)throw console.error(`Failed to create provider`),new $(`Failed to create provider`,`DEFAULT_PROVIDER_ERROR`);return{provider:n,walletProviderName:e}}function B3(e){return e&&`send`in e&&typeof e.send==`function`}async function V3(e,t,n){return Z2(async()=>{if(`request`in t)return new w4(t);if(t.ethereumProvider?.isPassport)return t;let r={...C4,...n},i=await P4(t),a=(await t.getNetwork()).chainId;try{a||=(await t.getNetwork()).chainId}catch(e){throw new $(`Unable to detect the browserProvider network`,`WEB3_PROVIDER_ERROR`,{error:e})}if(a!==BigInt(i)&&!r.allowMistmatchedChainId)throw console.error(`web3ChainId`,a,`underlyingChainId`,i,r),new $(`Your wallet has changed network, please switch to a supported network`,`WEB3_PROVIDER_ERROR`);if(!(await R4(e,{type:`all`})).networks.some(e=>e.chainId===Number(i))&&!r.allowUnsupportedProvider)throw new $(`Your wallet is connected to an unsupported network, please switch to a supported network`,`WEB3_PROVIDER_ERROR`);return t},{type:`WEB3_PROVIDER_ERROR`})}async function H3(e,t){if(e.isProduction&&t?.has(1)||t?.has(11155111))return t;let n=new Map;return(await R4(e,{type:`all`})).networks.forEach(t=>{let r=e.networkMap.get(Number(t.chainId))?.rpcUrls[0],i=new bR(r);n.set(Number(t.chainId),i)}),n}let U3=(e,t,n)=>{let r=[];if(!e.sufficient)for(let t of e.allowances)t.sufficient||r.push(t);if(!t.sufficient)for(let e of t.allowances)e.sufficient||r.push(e);if(!n.sufficient)for(let e of n.allowances)e.sufficient||r.push(e);return r},W3=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`NATIVE`||e.isFee){n.push(e);return}let i={...e,isFee:`isFee`in e&&e.isFee},{amount:a}=i,o=t.get(r);o&&o.type===`NATIVE`?o.amount+=a:t.set(r,{...i})}),n.concat(Array.from(t.values()))},G3=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC20`||e.isFee){n.push(e);return}let i={...e,isFee:`isFee`in e&&e.isFee},{tokenAddress:a,spenderAddress:o,amount:s}=i,c=`${a}${o}`,l=t.get(c);l&&l.type===`ERC20`?l.amount+=s:t.set(c,{...i})}),n.concat(Array.from(t.values()))},K3=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC721`){n.push(e);return}let{contractAddress:i,spenderAddress:a,id:o}=e,s=`${i}${a}${o}`;t.get(s)||t.set(s,{...e})}),n.concat(Array.from(t.values()))},q3=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC1155`){n.push(e);return}let{contractAddress:i,spenderAddress:a,id:o,amount:s}=e,c=`${i}${a}${o}`,l=t.get(c);l&&l.type===`ERC1155`?l.amount+=s:t.set(c,{...e})}),n.concat(Array.from(t.values()))},J3=e=>q3(K3(G3(W3(e)))),Y3=async(e,t,n,r)=>{try{return await new JI(n,JSON.stringify(d4),e).allowance(t,r)}catch(e){throw new $(`Failed to get the allowance for ERC20`,`GET_ERC20_ALLOWANCE_ERROR`,{contractAddress:n,error:e})}},X3=async(e,t,n,r,i)=>{try{let a=await new JI(n,JSON.stringify(d4),e).approve.populateTransaction(r,i);return a&&(a.from=t),a}catch(e){throw new $(`Failed to get the approval transaction for ERC20`,`GET_ERC20_ALLOWANCE_ERROR`,{contractAddress:n,error:e})}},Z3=async(e,t,n)=>{let r=!0,i=[],a=new Map,o=new Map,s=new Map,c=new Map;for(let r of n){if(r.type!==`ERC20`)continue;let{tokenAddress:n,spenderAddress:i}=r,s=`${n}${i}`;a.set(s,r),o.set(s,Y3(e,t,n,i))}let l=await Promise.all(o.values()),u=Array.from(o.keys());for(let n=0;n<l.length;n++){let o=a.get(u[n]);if(!o||o.type!==`ERC20`)continue;if(l[n]>=o.amount){i.push({sufficient:!0,itemRequirement:o});continue}r=!1;let{tokenAddress:d,spenderAddress:f}=o,p=`${d}${f}`,m=o.amount-l[n];s.set(p,{type:`ERC20`,sufficient:!1,delta:m,itemRequirement:o,approvalTransaction:void 0}),c.set(p,X3(e,t,d,f,m))}let d=await Promise.all(c.values()),f=Array.from(c.keys());return d.forEach((e,t)=>{let n=s.get(f[t]);n&&(n.sufficient||(n.approvalTransaction=e))}),{sufficient:r,allowances:i.concat(Array.from(s.values()))}},Q3=async(e,t,n,r)=>{try{return await new JI(n,JSON.stringify(f4),e).isApprovedForAll(t,r)}catch(e){throw new $(`Failed to check approval for all ERC721s of collection`,`GET_ERC721_ALLOWANCE_ERROR`,{ownerAddress:t,contractAddress:n,spenderAddress:r,error:e})}},$3=async(e,t,n,r,i)=>{try{let a=await new JI(n,JSON.stringify(f4),e).approve.populateTransaction(r,i);return a&&(a.from=t),a}catch(e){throw new $(`Failed to get the approval transaction for ERC721`,`GET_ERC721_ALLOWANCE_ERROR`,{id:i.toString(),contractAddress:n,spenderAddress:r,ownerAddress:t,error:e})}},e6=async(e,t,n)=>{try{return await new JI(t,JSON.stringify(f4),e).getApproved(n)}catch(e){throw new $(`Failed to get approved address for ERC721`,`GET_ERC721_ALLOWANCE_ERROR`,{id:n.toString(),contractAddress:t,error:e})}},t6=(e,t)=>{try{if(!e.trim())throw new $(`Invalid ERC721 ID`,`GET_ERC721_ALLOWANCE_ERROR`,{id:e,contractAddress:t});return BigInt(e)}catch{throw new $(`Invalid ERC721 ID`,`GET_ERC721_ALLOWANCE_ERROR`,{id:e,contractAddress:t})}},n6=async(e,t,n)=>{let r=new Map,i=new Map;for(let a of t){if(a.type!==`ERC721`)continue;let{contractAddress:t,spenderAddress:o}=a,s=`${t}-${o}`;r.set(s,!1),!i.has(s)&&i.set(s,Q3(e,n,t,o))}let a=await Promise.all(i.values()),o=Array.from(i.keys());return a.forEach((e,t)=>{r.set(o[t],e)}),r},r6=async(e,t,n)=>{let r=!0,i=[],a=new Map,o=new Map,s=new Map,c=new Map,l=await n6(e,n,t);for(let t of n){if(t.type!==`ERC721`)continue;let{contractAddress:n,id:r,spenderAddress:s}=t,c=`${n}-${s}`;if(l.get(c)){i.push({sufficient:!0,itemRequirement:t});continue}let u=`${n}-${r}`,d=t6(r,n);a.set(u,t),o.set(u,e6(e,n,d))}let u=await Promise.all(o.values()),d=Array.from(o.keys());for(let n=0;n<u.length;n++){let o=a.get(d[n]);if(!o||o.type!==`ERC721`)continue;if(u[n]===o.spenderAddress){i.push({sufficient:!0,itemRequirement:o});continue}r=!1;let{contractAddress:l,id:f,spenderAddress:p}=o,m=`${l}-${f}`,h=t6(f,l);s.set(m,{type:`ERC721`,sufficient:!1,itemRequirement:o,approvalTransaction:void 0}),c.set(m,$3(e,t,l,p,h))}let f=await Promise.all(c.values()),p=Array.from(c.keys());return f.forEach((e,t)=>{let n=s.get(p[t]);n&&(n.sufficient||(n.approvalTransaction=e))}),{sufficient:r,allowances:i.concat(Array.from(s.values()))}},i6=async(e,t,n,r)=>{try{return await new JI(n,JSON.stringify(p4),e).isApprovedForAll(t,r)}catch(e){throw new $(`Failed to check approval for all ERC1155s of collection`,`GET_ERC1155_ALLOWANCE_ERROR`,{ownerAddress:t,contractAddress:n,spenderAddress:r,error:e})}},a6=async(e,t,n,r)=>{try{let i=await new JI(n,JSON.stringify(p4),e).setApprovalForAll.populateTransaction(r,!0);return i&&(i.from=t),i}catch(e){throw new $(`Failed to get the approval transaction for ERC1155`,`GET_ERC1155_ALLOWANCE_ERROR`,{contractAddress:n,spenderAddress:r,ownerAddress:t,error:e})}},o6=async(e,t,n)=>{let r=n.filter(e=>e.type===`ERC1155`),i=await Promise.all(r.map(async n=>await i6(e,t,n.contractAddress,n.spenderAddress)?{sufficient:!0,itemRequirement:n}:{type:`ERC1155`,sufficient:!1,itemRequirement:n,approvalTransaction:await a6(e,t,n.contractAddress,n.spenderAddress)}));return{sufficient:i.some(e=>e.sufficient),allowances:i}},s6=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`NATIVE`||e.isFee){n.push(e);return}let{amount:i}=e,a=t.get(r);a&&a.type===`NATIVE`?a.amount+=i:t.set(r,{...e})}),n.concat(Array.from(t.values()))},c6=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC20`||e.isFee){n.push(e);return}let{tokenAddress:i,amount:a}=e,o=`${i}`,s=t.get(o);s&&s.type===`ERC20`?s.amount+=a:t.set(o,{...e})}),n.concat(Array.from(t.values()))},l6=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC721`){n.push(e);return}let{contractAddress:i,id:a}=e,o=`${i}${a}`;t.get(o)||t.set(o,{...e})}),n.concat(Array.from(t.values()))},u6=e=>l6(c6(s6(e))),d6=e=>e.map(e=>{switch(e.type){case`ERC20`:return{address:e.tokenAddress};case`NATIVE`:return{address:n4};default:return{address:e.contractAddress}}}),f6=(e,t)=>{let n=BigInt(1),r=t.find(t=>{let n=t;return Q4(n.contractAddress,e.contractAddress)&&n.id===e.id}),i=n<0||n===0n||r&&r.balance>=n,a=n-(r?.balance??BigInt(0)),o=r;return o||={type:`ERC721`,balance:BigInt(0),formattedBalance:`0`,contractAddress:e.contractAddress,id:e.id},{sufficient:i??!1,type:`ERC721`,delta:{balance:a,formattedBalance:a.toString()},current:o,required:{...o,balance:BigInt(1),formattedBalance:`1`},isFee:!1}},p6=(e,t)=>e.type===`ERC20`?t.find(t=>Q4(t.token?.address,e.tokenAddress)):t.find(e=>r3(e.token?.address)),m6=async(e,t,n)=>{let r={};for(let i of e){if(i.type===`NATIVE`){r[n4]=r4;continue}let e=p6(i,t),a=e?.token.address??``,o=e?.token.name??``,s=e?.token.symbol??``,c=e?.token.decimals??18;if(!e&&i.type===`ERC20`){if(a=i.tokenAddress,a.toLowerCase()in r)continue;try{let e=new JI(i.tokenAddress,JSON.stringify(d4),n),[t,r,l]=await Promise.all([e.name(),e.symbol(),e.decimals()]);a=i.tokenAddress,c=l,o=t,s=r}catch{console.error(`Failed to query contract information`,i.tokenAddress)}}r[a.toLowerCase()]={address:a,name:o,symbol:s,decimals:c}}return r},h6=(e,t,n)=>{let r=p6(e,t),i=e.amount,a=i<0||i===0n||r&&r?.balance>=i,o=i-(r?.balance??BigInt(0));return e.type===`NATIVE`?(r||={type:`NATIVE`,balance:BigInt(0),formattedBalance:`0`,token:n},{sufficient:a??!1,type:`NATIVE`,delta:{balance:o,formattedBalance:yO(o,n.decimals)},current:{...r,type:`NATIVE`,token:n},required:{...r,type:`NATIVE`,balance:BigInt(e.amount),formattedBalance:yO(e.amount,n.decimals),token:n},isFee:e.isFee}):(r||={type:e.type,balance:BigInt(0),formattedBalance:`0`,token:n},{sufficient:a??!1,type:`ERC20`,delta:{balance:o,formattedBalance:yO(o,n.decimals)},current:{...r,token:n},required:{...r,token:n,balance:BigInt(e.amount),formattedBalance:yO(e.amount,n.decimals)},isFee:e.isFee})},g6=async(e,t,n,r,i=!1)=>{try{let a=new Map;d6(r).forEach(e=>{e.address&&a.set(e.address.toLocaleLowerCase(),e)});let{balances:o}=await h3(e,t,n,Y4(e),i);return o.filter(e=>a.get((e.token.address||`native`).toLocaleLowerCase()))}catch(e){throw new $(`Failed to get balances`,`GET_BALANCE_ERROR`,{error:e})}},_6=async(e,t,n)=>{let r=[],i=new Map,a=new Map;n.forEach(t=>{if(t.type!==`ERC721`)return;let n=new JI(t.contractAddress,JSON.stringify(f4),e);i.set(t.contractAddress,t),a.set(t.contractAddress,n.ownerOf(t.id))});try{let e=await Promise.all(a.values()),n=Array.from(a.keys());e.forEach((e,a)=>{let o=i.get(n[a]),s=0;o&&Q4(t,e)&&(s=1),r.push({type:`ERC721`,balance:BigInt(s),formattedBalance:s.toString(),contractAddress:o.contractAddress,id:o.id})})}catch(e){throw new $(`Failed to get ERC721 balances`,`GET_ERC721_BALANCE_ERROR`,{error:e})}return r},v6=async(e,t,n,r,i=!1)=>{let a=u6(r),o=[],s=[];if(a.forEach(e=>{switch(e.type){case`ERC20`:case`NATIVE`:o.push(e);break;case`ERC721`:s.push(e);break;default:}}),o.sort(e=>`isFee`in e&&e.isFee?1:-1),s.length===0&&o.length===0)throw new $(`Unsupported item requirement balance check`,`UNSUPPORTED_BALANCE_REQUIREMENT_ERROR`);let c=[];o.length>0&&c.push(g6(e,t,n,a,i)),s.length>0&&c.push(_6(t,n,a));let l=await Promise.all(c),u=[];if(o.length>0){let e=l.shift()??[],n=new Map(e.map(e=>[e.type===`NATIVE`?n4:e.token.address?.toLowerCase(),e])),r=await m6(o,e,t);o.forEach(e=>{let t=(e.tokenAddress??`native`).toLowerCase(),i=r[t],a=n.get(t),o=h6(e,[...n.values()],i);if(u.push(o),!a)return;let s=a.balance-o.required.balance;n.set(t,{...a,balance:s,formattedBalance:yO(s,o.required.token.decimals)})})}if(s.length>0){let e=l.shift()??[];s.forEach(t=>{u.push(f6(t,e))})}return{sufficient:u.find(e=>!e.sufficient)===void 0,balanceRequirements:u}},y6=async(e,t)=>{try{return await e.estimateGas(t)}catch(e){throw new $(`Failed to estimate gas for transaction`,`UNPREDICTABLE_GAS_LIMIT`,{error:e})}},b6=(e,t)=>t.type===`TRANSACTION`||t.gasToken.type===`NATIVE`?{type:`NATIVE`,amount:e,isFee:!0}:{type:`ERC20`,amount:e,tokenAddress:t.gasToken.tokenAddress,spenderAddress:``,isFee:!0},x6=async(e,t,n)=>{let r=[],i=BigInt(0);for(let n of t)n.approvalTransaction!==void 0&&r.push(y6(e,n.approvalTransaction));if(n.type===`TRANSACTION`)r.push(y6(e,n.transaction));else{let t=A3(await e.getFeeData());if(t!==null){let e=t*n.gasToken.limit;e&&(i+=e)}}return(await Promise.all(r)).forEach(e=>{i+=e}),i===0n?null:b6(i,n)},S6=async()=>!0,C6=async e=>{let t=g4(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};function w6(e){return e?.ethereumProvider?.isPassport===!0}let T6=async(e,t)=>{let n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:`onRamp`,promise:S6()}),n.swap&&r.push({id:`swap`,promise:C6(e)}),r.length>0){let e=r.map(e=>e.promise);(await Promise.allSettled(e)).forEach((e,t)=>{let i=r[t].id;n[i]=n[i]&&e.status===`fulfilled`&&e.value})}return n.bridge=n.bridge&&!w6(t),n},E6=async(e,t,n,r)=>{let i=new Map,a=new Map;if(t.size===0){let t={success:!1,error:new $(`No L1 or L2 provider available`,`PROVIDER_ERROR`),balances:[]};return i.set(J4(e),t),i.set(Y4(e),t),i}if(r.bridge){let r=J4(e);t.has(r)?a.set(r,h3(e,t.get(r),n,r)):i.set(J4(e),{success:!1,error:new $(`No L1 provider available for ${r}`,`PROVIDER_ERROR`),balances:[]})}let o=Y4(e);if(t.has(o)?a.set(o,h3(e,t.get(o),n,o)):i.set(Y4(e),{success:!1,error:new $(`No L2 provider available for ${o}`,`PROVIDER_ERROR`),balances:[]}),a.size>0){let e=Array.from(a.keys());(await Promise.allSettled(a.values())).forEach((t,n)=>{let r=e[n];t.status===`fulfilled`?i.set(r,{success:!0,balances:t.value.balances}):i.set(r,{success:!1,error:new $(`Error getting ${o} balances`,`GET_BALANCE_ERROR`),balances:[]})})}return i},D6=async(e,t,n,r,i)=>{let a=new Map;try{let o=await S3(t,e),s=[],c=[];for(let e of i)e!==r.address&&(s.push(o.getUnsignedSwapTxFromAmountOut(n,e,r.address,r.amount,1)),c.push(e));return(await s3(e,`Time to resolve swap quotes from the dex`,Promise.allSettled(s))).forEach((e,t)=>{if(e.status===`rejected`)return;let n=c[t];a.set(n,{quote:e.value.quote,approval:e.value.approval?.gasFeeEstimate??null,swap:e.value.swap.gasFeeEstimate})}),a}catch{return a}},O6=(e,t,n)=>{let r=BigInt(0),i=`0`,a;e&&(r=e.value,i=yO(e.value,e.token.decimals),a={name:e.token.name??``,symbol:e.token.symbol??``,address:e.token.address,decimals:e.token.decimals});let o=BigInt(0),s=`0`,c;t&&(o=t.value,s=yO(t.value,t.token.decimals),c={name:t.token.name??``,symbol:t.token.symbol??``,address:t.token.address,decimals:t.token.decimals});let l=[];for(let e of n)l.push({type:`SWAP_FEE`,amount:e.amount.value,formattedAmount:yO(e.amount.value,e.amount.token.decimals),basisPoints:e.basisPoints,token:{name:e.amount.token.name??``,symbol:e.amount.token.symbol??``,address:e.amount.token.address,decimals:e.amount.token.decimals}});return{approvalGasFee:{type:`GAS`,amount:r,formattedAmount:i,token:a},swapGasFee:{type:`GAS`,amount:o,formattedAmount:s,token:c},swapFees:l}},k6=(e,t,n,r)=>{let i=n.token.address,a=`ERC20`;return r3(i)&&(a=`NATIVE`),{type:`SWAP`,chainId:e,fundingItem:{type:a,fundsRequired:{amount:t,formattedAmount:t3(yO(t,n.token.decimals))},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:n.token},fees:r}},A6=e=>e.type===`ERC20`?!!e.required.token.address:e.type===`NATIVE`&&r3(e.required.token.address),j6=e=>{let t=``,n=BigInt(0);switch(e.type){case`ERC20`:t=e.required.token.address,n=e.delta.balance;break;case`NATIVE`:n=e.delta.balance;break;default:break}return{address:t,amount:n}},M6=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:BigInt(0),approvalGasTokenAddress:``};let n=t.value,r=t.token.address;if(e.length===0)return{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r};let i=e.find(e=>r3(e.token.address)&&r3(r)||Q4(e.token.address,r));return!i||i.balance<n?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}},N6=(e,t,n,r,i)=>{let a=new Map;if(t.approvalGasFee>BigInt(0)&&a.set(t.approvalGasTokenAddress,t.approvalGasFee),n){let e=a.get(n.token.address);e?a.set(n.token.address,e+n.value):a.set(n.token.address,n.value)}if(i){let e=a.get(i.address);e?a.set(i.address,e+i.amount):a.set(i.address,i.amount)}for(let e of r){let t=a.get(e.amount.token.address);if(t){a.set(e.amount.token.address,t+e.amount.value);continue}a.set(e.amount.token.address,e.amount.value)}for(let[t,n]of a.entries()){if(n===BigInt(0))continue;let r=e.find(e=>r3(e.token.address)&&r3(t)||Q4(e.token.address,t));if(!r||r.balance<n)return!1}return!0},P6=(e,t,n,r,i,a)=>{let o=BigInt(0),s=``,c=!1;if(t.balanceRequirements.forEach(t=>{(t.type===`NATIVE`||t.type===`ERC20`)&&t.required.token.address&&Q4(t.required.token.address,n)&&(s=t.required.token.address,c=!0,o=e-t.required.balance)}),!c)return!0;Q4(i.approvalGasTokenAddress,s)&&(o-=i.approvalGasFee);for(let e of a)Q4(e.amount.token.address,s)&&(o-=e.amount.value);return o>=r},F6=async(e,t,n,r,i,a,o)=>{let s=[];if(!t.swap||a.length===0||!A6(r))return s;let c=j6(r),l=Y4(e),u=i.get(l);if(!u)return s;let d=u.balances;if(d.length===0)return s;let f=await D6(e,Y4(e),n,c,a),p=Array.from(f.keys());for(let e of p){let t=f.get(e);if(!t)continue;let n=d.find(t=>Q4(t.token.address,e));if(!n)continue;let r=t.quote.amountWithMaxSlippage;if(n.balance<r.value)continue;let i=M6(d,t.approval);if(!i.sufficient||!N6(d,i,t.swap,t.quote.fees,{amount:r.value,address:e})||!P6(n.balance,o,e,r.value,i,t.quote.fees))continue;let a=O6(t.approval,t.swap,t.quote.fees);s.push(k6(l,r.value,n,a))}return s},I6=(e,t)=>t&&t.success?e.filter(e=>`address`in e?t.balances.find(t=>Q4(t.token.address,e.address)&&t.balance>0):t.balances.find(e=>!(`address`in e.token)&&e.balance>0)):[],L6=async(e,t)=>t.onRamp?(await n3(e,{type:`onramp`})).tokens:[],R6=async(e,t,n)=>{if(n.bridge){let n=J4(e),r=(await n3(e,{type:`bridge`,chainId:n})).tokens,i=t.get(n);return I6(r,i)}return[]},z6=async(e,t,n)=>{if(n.swap){let n=(await n3(e,{type:`swap`})).tokens,r=t.get(Y4(e));return I6(n,r)}return[]},B6=async(e,t,n)=>{let r={};return r.swap=await z6(e,t,n),r.bridge=await R6(e,t,n),r.onRamp=await L6(e,n),r},V6=e=>{for(let t of e.balances)if(r3(t.token.address))return t.balance;return BigInt(0)},H6=async(e,t,n,r)=>{let i=x3(n,r,t,e);try{return{...await i.getFee({action:Dq.DEPOSIT,gasMultiplier:`auto`,sourceChainId:n.toString(),destinationChainId:r.toString()}),approvalGas:BigInt(0)}}catch(e){throw new $(`Error estimating gas for bridge`,`BRIDGE_GAS_ESTIMATE_ERROR`,{error:e})}},U6=e=>e===13371?`imtbl-zkevm-mainnet`:e===13473?`imtbl-zkevm-testnet`:e===15003?`imtbl-zkevm-devnet`:``,W6=async(e,t)=>(await t.remote.getConfig(`imxAddressMapping`))[e]??``,G6=async(e,t)=>{if(r3(t))return{l1address:await W6(J4(e),e),l2address:n4};let n=U6(Y4(e)),r=(await w3(e).getToken({chainName:n,contractAddress:t})).result.root_contract_address;if(Q4(r??``,`0x0000000000000000000000000000000000000eee`))return{l1address:`native`,l2address:t};if(r!==null)return{l1address:r,l2address:t}},K6=(e,t)=>V6(e)>=t,q6=(e,t,n,r,i)=>{let a=i?.decimals??18,o=[];return t>0&&o.push({type:`BRIDGE_FEE`,amount:t,formattedAmount:yO(t,a),token:i}),n>0&&o.push({type:`IMMUTABLE_FEE`,amount:n,formattedAmount:yO(n,a),token:i}),{approvalGasFee:{type:`GAS`,amount:r,formattedAmount:yO(r,18),token:i},bridgeGasFee:{type:`GAS`,amount:e,formattedAmount:yO(e,18),token:i},bridgeFees:o}},J6=(e,t,n,r,i)=>({type:`BRIDGE`,chainId:e,fundingItem:{type:r,fundsRequired:{amount:n.amount,formattedAmount:t3(n.formattedAmount)},userBalance:{balance:t.balance,formattedBalance:t.formattedBalance},token:{name:t.token.name,symbol:t.token.symbol,address:t.token.address,decimals:t.token.decimals}},fees:i}),Y6=async(e,t,n,r,i)=>{if(!n.bridge)return;let a=J4(e),o=Y4(e),s=e.networkMap.get(a)?.nativeCurrency,c=i.get(a);if(!t.get(a))throw new $(`No L1 provider available`,`PROVIDER_ERROR`,{chainId:a.toString()});if(c===void 0||c.success===!1)return;let l=await R6(e,i,n);if(l.length===0)return;let u=await G6(e,r.l2address);if(!u)return;let{l1address:d}=u;if(r3(d)){if(!l.find(e=>r3(e.address)))return}else if(!l.find(e=>Q4(e.address,d)))return;let{sourceChainGas:f,approvalGas:p,bridgeFee:m,imtblFee:h,totalFees:g}=await H6(e,t,a,o);if(!K6(c,g))return;if(r3(d)){let e=c.balances.find(e=>r3(e.token.address));if(e&&e.balance>=r.amount+g){let t=q6(f,m,h,p,s);return J6(a,e,r,`NATIVE`,t)}return}let _=c.balances.find(e=>Q4(e.token.address,d));if(_&&_.balance>=r.amount){let e=q6(f,m,h,p,s);return J6(a,_,r,`ERC20`,e)}},X6=(e,t)=>{let n={l1balances:[],l2balances:[]},r=t.get(J4(e)),i=t.get(Y4(e));return!r||r.error!==void 0||!r.success||!i||i.error!==void 0||!i.success?n:{l1balances:r.balances,l2balances:i.balances}},Z6=(e,t)=>{let n=BigInt(0);return e.quote.fees.forEach(e=>{Q4(e.amount.token.address,t)&&(n+=e.amount.value)}),e.approval&&Q4(e.approval.token.address,t)&&(n+=e.approval.value),n},Q6=(e,t)=>{for(let n of e.balanceRequirements)if((n.type===`NATIVE`||n.type===`ERC20`)&&Q4(n.required.token.address,t))return n.required.balance;return BigInt(0)},$6=(e,t,n)=>{let r=n?.balance??BigInt(0);if(r>=e+t)return BigInt(0);if(r<=0)return e+t;let i=r-t;return i>=0?e-i:e+t-r},e8=(e,t,n,r,i)=>{let a=[];for(let[o,s]of e){let e=n.find(e=>Q4(e.token.address,o)),c=r.find(e=>Q4(e.l2address,o));if(!c)continue;let{l1address:l,l2address:u}=c;if(!l)continue;let d=t.find(e=>e.token.address===void 0&&Q4(l,`0x0000000000000000000000000000000000000eee`)?!0:Q4(e.token.address,l));if(!d)continue;let f=s.quote.amountWithMaxSlippage.value+Z6(s,o),p=Q6(i,o),m=$6(f,p,e);m<=0||m>=d.balance||a.push({amount:m,formattedAmount:t3(yO(m,d.token.decimals)),l2address:u})}return a},t8=async(e,t)=>{let n=t.map(t=>G6(e,t.address??``));return(await Promise.all(n)).filter(e=>e!==void 0)},n8=async(e,t,n,r,i)=>{let a=[];for(let e of i)e.address&&a.push(e.address);return await D6(e,Y4(e),t,{address:n,amount:r.delta.balance},a)},r8=(e,t,n,r,i,a)=>e.length===0||t.length===0||n.length===0||r.length===0||!i.bridge||!i.swap||a===void 0||a===``,i8=(e,t,n,r)=>{let i=[];for(let a of r){if(!t.includes(a.l1address)||Q4(a.l2address,e))continue;let r=n.find(e=>Q4(e.address,a.l2address));r&&i.push(r)}return i},a8=(e,t,n,r,i)=>{let a=new Map;for(let[e,n]of t)a.set(e,{success:n.success,balances:n.balances});let o=new Map;for(let e of n)e.token.address&&o.set(e.token.address,e);for(let e of r){let{amount:t,l2address:n}=e;if(n===``)continue;let r=BigInt(0),a=o.get(n);a&&(r=a.balance);let s=r+t,c=i.find(e=>Q4(e.address,n));o.set(n,{balance:s,formattedBalance:yO(s,c.decimals),token:c})}let s=Array.from(o.values());return a.set(Y4(e),{success:!0,balances:s}),a},o8=(e,t)=>{let n=[];for(let r of t){let{chainId:t,fundingItem:i}=r,{userBalance:a}=r.fundingItem,o=e.get(t);if(!o)continue;let s=BigInt(0),c=`0`,l=o.balances.find(e=>Q4(e.token.address,i.token.address));l&&(s=l.balance,c=l.formattedBalance),a.balance=s,a.formattedBalance=c,n.push(r)}return n},s8=(e,t,n)=>{let r=[];for(let i of e){if(!i)continue;let e=n.find(e=>i.fundingItem.token.address===void 0?Q4(e.l1address,`0x0000000000000000000000000000000000000eee`)&&e.l2address:Q4(e.l1address,i.fundingItem.token.address)&&e.l2address);if(!e)continue;let a=t.find(t=>Q4(t.fundingItem.token.address,e.l2address));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r},c8=async(e,t,n,r,i,a,o,s,c)=>{let{l1balances:l,l2balances:u}=X6(e,a),d=r.required.token.address;if(r8(o,s,l,u,n,d))return[];let f=await t8(e,s),p=i8(d,o,s,f);if(p.length===0)return[];let m=e8(await n8(e,i,d,r,p),l,u,f,c);if(m.length===0)return[];let h=new Map,g=new Map,_=[];for(let r of m)r.l2address&&(h.set(r.l2address,Y6(e,t,n,r,a)),g.set(r.l2address,{amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address}));let v=await Promise.all(h.values()),y=Array.from(h.keys()),b=[];if(v.forEach((e,t)=>{let n=y[t];if(e===void 0)return;b.push(n);let r=g.get(n);r&&_.push({amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address})}),b.length===0||_.length===0)return[];let x=await F6(e,n,i,r,a8(e,a,u,_,s),b,c);if(!x)return[];let S=o8(a,x);return s8(v,S,f)},l8=async(e,t,n)=>{if(![`ERC20`,`NATIVE`].includes(n.type))return;let{required:r,current:i,delta:a}=n,o=!1;if((await L6(e,t)).forEach(e=>{e.address&&r.token&&(r3(r.token.address)||Q4(e.address,r.token.address))&&(o=!0)}),o)return{type:`ONRAMP`,chainId:Y4(e),fundingItem:{type:r3(r.token.address)?`NATIVE`:`ERC20`,fundsRequired:{amount:a.balance,formattedAmount:t3(a.formattedBalance)},userBalance:{balance:i.balance,formattedBalance:i.formattedBalance},token:r.token}}},u8=e=>e.bridge||e.swap||e.onRamp,d8=e=>{let t=0,n;for(let r of e.balanceRequirements)r.sufficient||(t++,n=r);if(t===1)return n},f8=async(e,t,n,r,i)=>{let a;if(r===void 0||r.type!==`NATIVE`&&r.type!==`ERC20`)return;let o={amount:r.delta.balance,formattedAmount:r.delta.formattedBalance,l2address:r.required.token.address??``};return n.bridge&&r&&(a=await Y6(e,t,n,o,i)),a},p8=async(e,t,n,r,i,a,o)=>{let s=[];if(!t.swap||n===void 0||a===void 0)return s;let c=i.get(Y4(e));if(!c||c.error!==void 0||!c.success||a.length===0)return s;let l=a.filter(e=>e.address).map(e=>e.address);return l.length===0?s:await F6(e,t,r,n,i,l,o)},m8=async(e,t,n,r,i,a,o,s)=>{if(!r)return[];let c=a.get(J4(e)),l=a.get(Y4(e));if(!c||c.error!==void 0||!c.success||!l||l.error!==void 0||!l.success)return[];let u=(o?.bridge??[]).map(e=>e.address===void 0?`0x0000000000000000000000000000000000000eee`:e.address),d=o?.swap??[];return r.type!==`NATIVE`&&r.type!==`ERC20`?[]:await c8(e,t,n,r,i,a,u,d,s)},h8=async(e,t,n)=>{if(t.onRamp&&n!==void 0)return await l8(e,t,n)},g8={swap:1,bridge:2,onRamp:3,bridgeAndSwap:4},_8=(e,t,n,r)=>{if(!e)return;let i;i=`bridgeFundingStep`in e&&`swapFundingStep`in e?[e.bridgeFundingStep,e.swapFundingStep]:[e];let a={priority:t,steps:i};n.push(a),r?.(a)},v8=async(e,t,n,r,i)=>{if(!u8(r))return{type:`NO_ROUTE_OPTIONS`,message:`No routing options are available`};let a;try{a=await H3(e)}catch(e){throw new $(`Error occurred while creating read only providers`,`PROVIDER_ERROR`,{error:e})}let o=await s3(e,`Time to get token balances inside router`,E6(e,a,t,r)),s=await s3(e,`Time to get routing allowlist`,B6(e,o,r)),c=d8(n),l=[],u=[];return r.swap&&l.push(p8(e,r,c,t,o,s.swap,n).then(e=>{e.forEach(e=>{_8(e,g8.swap,u,i)})})),r.bridge&&l.push(f8(e,a,r,c,o).then(e=>{_8(e,g8.bridge,u,i)})),r.onRamp&&l.push(h8(e,r,c).then(e=>{_8(e,g8.onRamp,u,i)})),r.swap&&r.bridge&&l.push(m8(e,a,r,c,t,o,s,n).then(e=>{e.forEach(e=>{_8(e,g8.bridgeAndSwap,u,i)})})),await s3(e,`Time to resolve all routes`,Promise.all(l)),u.length===0?{type:`NO_ROUTES_FOUND`,message:`Smart Checkout did not find any funding routes to fulfill the transaction`}:{type:`ROUTES_FOUND`,fundingRoutes:u}},y8=e=>({sufficient:!1,balanceRequirements:e.balanceRequirements.map(e=>e.type===`ERC20`&&e.sufficient?{...e,sufficient:!1,delta:{balance:e.required.balance,formattedBalance:e.required.formattedBalance}}:e)}),b8=async(e,t,n,r,i,a,o,s,c)=>{let l=await s3(e,`Total time to run the routing calculator`,v8(e,t,!o||n&&s?y8(a):a,r,c));return s?.({sufficient:n,transactionRequirements:i,router:{availableRoutingOptions:r,routingOutcome:l}}),l},x8=async(e,t,n,r,i,a,o,s=!1)=>{let c=await(await t.getSigner()).getAddress(),l=J3(n),u=Z3(t,c,l),d=r6(t,c,l),f=o6(t,c,l),p=await s3(e,`Time to calculate token allowances`,Promise.all([u,d,f])),m=U3(p[0],p[1],p[2]),h=null;r&&(h=await s3(e,`Time to run gas calculator`,x6(t,m,r)),h!==null&&(l.push(h),l=J3(l)));let g=await s3(e,`Time to run balance checks`,v6(e,t,c,l,!0)),{sufficient:_}=g,v=g.balanceRequirements,y=await s3(e,`Time to fetch available routing options`,T6(e,t));return i?.onRamp===!1&&(y.onRamp=!1),i?.swap===!1&&(y.swap=!1),i?.bridge===!1&&(y.bridge=!1),a?(b8(e,c,_,y,v,g,s,a,o),{sufficient:_,transactionRequirements:v}):_?{sufficient:_,transactionRequirements:v}:{sufficient:_,transactionRequirements:v,router:{availableRoutingOptions:y,routingOutcome:await b8(e,c,_,y,v,g,s,a,o)}}};function S8(e){return e?.ethereumProvider?.isPassport===!0}function C8(e){return S8(e)}let w8=async(e,t)=>{let n=t,{chainId:r}=await e.getNetwork();return!$4(Number(r))||n.gasPrice!==void 0||(C8(e)?n.gasPrice=BigInt(0):(n.maxFeePerGas=m4.maxFeePerGas,n.maxPriorityFeePerGas=m4.maxPriorityFeePerGas)),n},T8=e=>e.code===`INSUFFICIENT_FUNDS`?new $(e.message,`INSUFFICIENT_FUNDS`,{error:e}):e.code===`ACTION_REJECTED`?new $(e.message,`USER_REJECTED_REQUEST_ERROR`,{error:e}):new $(e.message,`TRANSACTION_FAILED`,{error:e}),E8=async(e,t)=>{try{let n=await e.getSigner(),r=await w8(e,t);return{transactionResponse:await n.sendTransaction(r)}}catch(e){throw T8(e)}},D8=async(e,t)=>{let n=[];try{let r=await Promise.all(t.map(t=>E8(e,t)));n=await Promise.all(r.map(e=>e.transactionResponse.wait()))}catch(e){throw new $(`An error occurred while executing the approval transaction`,`EXECUTE_APPROVAL_TRANSACTION_ERROR`,{error:e})}for(let e of n)if(e?.status===0)return{type:`FAILED`,transactionHash:e.hash,reason:`Approval transaction failed and was reverted`};return{type:`SUCCESS`}},O8=async(e,t)=>{let n=[];try{let r=await Promise.all(t.map(t=>E8(e,t)));n=await Promise.all(r.map(e=>e.transactionResponse.wait()))}catch(e){throw new $(`An error occurred while executing the fulfillment transaction`,`EXECUTE_FULFILLMENT_TRANSACTION_ERROR`,{error:e})}for(let e of n)if(e?.status===0)return{type:`FAILED`,transactionHash:e.hash,reason:`Fulfillment transaction failed and was reverted`};return{type:`SUCCESS`}},k8=async(e,t)=>{try{let n=await(await e.getSigner()).signTypedData(t.unsignedMessage.domain,t.unsignedMessage.types,t.unsignedMessage.value);return{orderComponents:t.orderComponents,orderHash:t.orderHash,signedMessage:n}}catch(e){throw new $(`An error occurred while signing the message`,`SIGN_MESSAGE_ERROR`,{error:e})}},A8=async e=>{let t=[],n=[],r=[],i=[];for(let t of e)t.type===OK.TRANSACTION&&(t.purpose===kK.APPROVAL&&r.push(t.buildTransaction()),t.purpose===kK.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}},j8=async e=>{let t=[],n=[];for(let t of e)t.type===OK.TRANSACTION&&t.purpose===kK.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t},M8=async e=>{let t=[],n=[];for(let t of e)t.type===OK.TRANSACTION&&t.purpose===kK.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},N8=(e,t,n)=>{let r;for(let e of n)e.type===OK.SIGNABLE&&e.purpose===AK.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}},P8=(e,t,n=BigInt(1))=>{let r=e.amount,i=Math.round(r.percentageDecimal*10**6),a=t*BigInt(i)/BigInt(10**6);return a-a%n},F8=(e,t)=>{let n=e.amount;return bO(n.token,t)},I8=(e,t,n=18,r=BigInt(1))=>{let i=BigInt(0),a=BigInt(t),o=a*BigInt(1*10**6)/BigInt(10**6),s=[];for(let t of e){let e=BigInt(0);if(Object.hasOwn(t.amount,`percentageDecimal`))e=P8(t,a,r),i+=e;else if(Object.hasOwn(t.amount,`token`))e=F8(t,n),i+=e;else throw new $(`Unknown fee type parsed, must be percentageDecimal or token`,`ORDER_FEE_ERROR`);if(i>o)throw new $(`The combined fees are above the allowed maximum of 100%`,`ORDER_FEE_ERROR`);e>0&&s.push({amount:e.toString(),recipientAddress:t.recipient})}return s},L8=(e,t,n,r,i=!1)=>{switch(e){case`ERC20`:return{type:e,amount:n,tokenAddress:t,spenderAddress:r,isFee:i};default:return{type:`NATIVE`,amount:n,isFee:i}}},R8=(e,t)=>t.length>0?{type:`TRANSACTION`,transaction:t[0]}:{type:`GAS`,gasToken:{type:`NATIVE`,limit:BigInt(e)}},z8=async(e,t,n,r={waitFulfillmentSettlements:!0})=>{if(Ce(`checkout_sdk`,`buy_initiated`),n.length===0)throw new $(`No orders were provided to the orders array. Please provide at least one order.`,`FULFILL_ORDER_LISTING_ERROR`);let i,a=``,o=18,s=wq.estimatedFulfillmentGasGwei,c=C3(e),l=w3(e),u=await s3(e,`Time to get the address from the provider`,(await t.getSigner()).getAddress());d3(),h3(e,t,u,J4(e)),h3(e,t,u,Y4(e));let{id:d,takerFees:f,fillAmount:p}=n[0],m;try{i=await s3(e,`Time to fetch the listing from the orderbook`,c.getListing(d));let{seaportContractAddress:t,chainName:n}=c.config();m=n,a=t}catch(e){throw new $(`An error occurred while getting the order listing`,`GET_ORDER_LISTING_ERROR`,{error:e,orderId:d})}if(i.result.buy.length===0)throw new $(`An error occurred with the get order listing`,`GET_ORDER_LISTING_ERROR`,{orderId:d,message:`No buy side tokens found on order`});let h=i.result.buy[0];if(h.type===`ERC20`){let t=await s3(e,`Time to get decimals of token contract for the buy token`,l.getToken({contractAddress:h.contractAddress,chainName:m}));t.result.decimals&&(o=t.result.decimals)}let g=[];if(f&&f.length>0){let e=i.result.sell[0].type===`ERC721`?BigInt(1):BigInt(i.result.sell[0].amount);g=I8(f,h.amount,o,e)}let _=[],v=[],y=[],b=performance.now();try{let{actions:t}=await s3(e,`Time to call fulfillOrder from the orderbook`,c.fulfillOrder(d,u,g,p));y=t,_=await s3(e,`Time to construct the unsigned approval transactions`,j8(t))}catch(t){if(o3(e,`Time to call fulfillOrder from the orderbook`,(performance.now()-b)/1e3),t.message.includes(mK.EXPIRED))throw new $(`Order is expired`,`ORDER_EXPIRED_ERROR`,{orderId:d});if(!t.message.includes(`The fulfiller does not have the balances needed to fulfill`))throw new $(`Error occurred while trying to fulfill the order`,`FULFILL_ORDER_LISTING_ERROR`,{orderId:d,error:t})}try{v=await s3(e,`Time to construct the unsigned fulfillment transactions`,M8(y))}catch{}let x=BigInt(`0`),S=`NATIVE`,C=``,w=i.result.buy;if(w.length>0)switch(w[0].type){case`NATIVE`:S=`NATIVE`;break;case`ERC20`:S=`ERC20`,C=w[0].contractAddress;break;default:throw new $(`Purchasing token type is unsupported`,`UNSUPPORTED_TOKEN_TYPE_ERROR`,{orderId:d})}w.forEach(e=>{e.type!==`ERC721`&&(x+=BigInt(e.amount))}),i.result.fees.forEach(e=>{x+=BigInt(e.amount)}),i.result.sell[0].type===`ERC1155`&&p&&(x=x*BigInt(p)/BigInt(i.result.sell[0].amount));let T=await s3(e,`Total time running smart checkout`,x8(e,t,[L8(S,C,x,a)],R8(s,v)));if(T.sufficient){let e=await D8(t,_);if(e.type===`FAILED`)return{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:T};try{v.length===0&&(v=await M8(y))}catch(e){throw new $(`Error fetching fulfillment transaction`,`FULFILL_ORDER_LISTING_ERROR`,{error:e})}if(r.waitFulfillmentSettlements){let e=await O8(t,v);return e.type===`FAILED`?{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:T}:{status:`SUCCESS`,smartCheckoutResult:T}}let n;try{n=(await Promise.all(v.map(e=>E8(t,e)))).map(e=>e.transactionResponse)}catch(e){throw new $(`An error occurred while executing the fulfillment transaction`,`EXECUTE_FULFILLMENT_TRANSACTION_ERROR`,{message:e.message})}return{status:`FULFILLMENTS_UNSETTLED`,smartCheckoutResult:T,transactions:n}}return{status:`INSUFFICIENT_FUNDS`,smartCheckoutResult:T}},B8=async(e,t,n,r,i)=>{let a;if(r.length===0)throw new $(`No orderIds were provided to the orderIds array. Please provide at least one orderId.`,`CANCEL_ORDER_LISTING_ERROR`);let o=r[0];try{let r=await s3(e,`Time to get the address from the provider`,(await n.getSigner()).getAddress());a=await(await s3(e,`Time to get the cancel order from the orderbook`,t.cancelOrdersOnChain([o],r))).cancellationAction.buildTransaction()}catch(e){throw new $(`An error occurred while cancelling the order listing`,`CANCEL_ORDER_LISTING_ERROR`,{orderId:o,error:e})}if(i){let e=await O8(n,[a]);return e.type===`FAILED`?{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason}:{status:`SUCCESS`}}let s;try{s=(await Promise.all([a].map(e=>E8(n,e)))).map(e=>e.transactionResponse)}catch(e){throw new $(`An error occurred while executing the fulfillment transaction`,`EXECUTE_FULFILLMENT_TRANSACTION_ERROR`,{message:e.message})}return{status:`FULFILLMENTS_UNSETTLED`,transactions:s}},V8=async(e,t,n)=>{try{let r=await t.getSigner(),i=await r.getAddress(),{signableAction:a}=await e.prepareOrderCancellations(n),o=await r.signTypedData(a.message.domain,a.message.types,a.message.value),{result:s}=await e.cancelOrders(n,i,o),c=[],l=[],u=[];for(let e of s.successful_cancellations)c.push({orderId:e});for(let e of s.failed_cancellations)l.push({orderId:e.order,reason:e.reason_code});for(let e of s.pending_cancellations)u.push({orderId:e});return{successfulCancellations:c,failedCancellations:l,pendingCancellations:u}}catch(e){throw new $(`An error occurred while cancelling the order listing`,`CANCEL_ORDER_LISTING_ERROR`,{orderIds:n,error:e})}},H8=async(e,t,n,r={waitFulfillmentSettlements:!0,useGaslessCancel:!1})=>{let i=C3(e);return r.useGaslessCancel?await V8(i,t,n):await B8(e,i,t,n,r.waitFulfillmentSettlements??!0)};async function U8(e,t){let n=[];t.forEach(t=>{if(t.type===`ERC20`){let{tokenAddress:r}=t;n.push(T3(r,d4,e).decimals())}});let r=await Promise.all(n);return t.map((e,t)=>e.type===`NATIVE`?{...e,amount:bO(e.amount,18)}:e.type===`ERC20`?{...e,amount:bO(e.amount,r[t])}:e)}let W8=(e,t,n)=>({type:`ERC721`,id:e,contractAddress:t,spenderAddress:n}),G8=(e,t,n,r)=>({type:`ERC1155`,id:e,contractAddress:t,spenderAddress:n,amount:BigInt(r)}),K8=(e,t=18)=>{let n=bO(e.amount,t);return e.type===`NATIVE`?{type:`NATIVE`,amount:n.toString()}:{type:`ERC20`,amount:n.toString(),contractAddress:e.tokenAddress}},q8=async(e,t,n)=>{let r,i,a=``;if(Ce(`checkout_sdk`,`sell_initiated`),n.length===0)throw new $(`No orders were provided to the orders array. Please provide at least one order.`,`PREPARE_ORDER_LISTING_ERROR`);let{buyToken:o,sellToken:s,makerFees:c,orderExpiry:l}=n[0],u=18;o.type===`ERC20`&&(u=await s3(e,`Time to get decimals of token contract for the buy token`,new JI(o.tokenAddress,JSON.stringify(d4),t).decimals()));let d=K8(o,u),f=`type`in s;try{let n=await s3(e,`Time to get the address from the provider`,(await t.getSigner()).getAddress());r=C3(e);let{seaportContractAddress:o}=r.config();a=o;let c=f&&s.type===`ERC1155`?{type:`ERC1155`,contractAddress:s.collectionAddress,tokenId:s.id,amount:s.amount}:{type:`ERC721`,contractAddress:s.collectionAddress,tokenId:s.id};i=await s3(e,`Time to prepare the listing from the orderbook`,r.prepareListing({makerAddress:n,buy:d,sell:c,orderExpiry:l}))}catch(e){throw new $(`An error occurred while preparing the listing`,`PREPARE_ORDER_LISTING_ERROR`,{error:e,id:s.id,collectionAddress:s.collectionAddress})}let p=[];if(f&&s.type===`ERC1155`){let e=G8(s.id,s.collectionAddress,a,s.amount);p.push(e)}else{let e=W8(s.id,s.collectionAddress,a);p.push(e)}let m;if(m=w6(t)?{sufficient:!0,transactionRequirements:[]}:await s3(e,`Total time running smart checkout`,x8(e,t,p,{type:`GAS`,gasToken:{type:`NATIVE`,limit:BigInt(wq.estimatedFulfillmentGasGwei)}})),m.sufficient){let e=await D8(t,(await A8(i.actions)).approvalTransactions);if(e.type===`FAILED`)return{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:m};let n=N8(i.orderHash,i.orderComponents,i.actions);if(!n)throw new $(`The unsigned message is missing after preparing the listing`,`SIGN_MESSAGE_ERROR`,{id:s.id,collectionAddress:s.collectionAddress});let a=await k8(t,n),o=``,l={orderComponents:a.orderComponents,orderHash:a.orderHash,orderSignature:a.signedMessage,makerFees:[]};if(c!==void 0){let e=BigInt(1);f&&s.type===`ERC1155`&&(e=BigInt(s.amount));let t=I8(c,d.amount,u,e);if(t.length!==c.length)throw new $(`One of the fees is too small, must be greater than 0.000001`,`CREATE_ORDER_LISTING_ERROR`);l.makerFees=t}try{o=(await r.createListing(l)).result.id}catch(e){throw new $(`An error occurred while creating the listing`,`CREATE_ORDER_LISTING_ERROR`,{error:e,collectionId:s.id,collectionAddress:s.collectionAddress})}return{status:`SUCCESS`,orderIds:[o],smartCheckoutResult:m}}return{status:`INSUFFICIENT_FUNDS`,smartCheckoutResult:m}},J8=async(e,t,n,r,i,a,o,s,c)=>{if(!n.address||n.decimals===0)throw new $(`fromToken address or decimals is missing.`,`MISSING_PARAMS`);if(!r.address||r.decimals===0)throw new $(`toToken address or decimals is missing.`,`MISSING_PARAMS`);if(i&&a)throw new $(`Only one of fromAmount or toAmount can be provided.`,`MISSING_PARAMS`);if(!i&&!a)throw new $(`fromAmount or toAmount must be provided.`,`MISSING_PARAMS`);let l=await S3(Y4(e),e),u=await(await t.getSigner()).getAddress();return i?l.getUnsignedSwapTxFromAmountIn(u,n.address,r.address,BigInt(bO(i,n.decimals)),o,s,c):l.getUnsignedSwapTxFromAmountOut(u,n.address,r.address,BigInt(bO(a,r.decimals)),o,s,c)},Y8=async(e,t,n,r,i,a,o,s,c)=>{let l=await J8(e,t,n,r,i,a,o,s,c);if(l.approval&&(await(await E8(t,l.approval.transaction)).transactionResponse.wait())?.status===0)throw new $(`Approval transaction failed and was reverted`,`APPROVAL_TRANSACTION_FAILED`);let u=await(await E8(t,l.swap.transaction)).transactionResponse.wait();if(u?.status===0)throw new $(`Swap transaction failed and was reverted`,`TRANSACTION_FAILED`);return{swapReceipt:u,quote:l.quote,swap:l.swap}};async function X8(e){let t=[],n=e.exclude?.map(e=>e.walletProviderName)??[],r=Object.values(x4);n.length!==0&&(r=r.filter(e=>!n.includes(e)));for(let e of r)t.push({walletProviderName:e});return{wallets:t}}let Z8=async(e,t)=>Object.fromEntries(e.map(e=>[e.toLowerCase(),{sanctioned:!1}])),Q8=(e,t)=>!1,$8=(e,t)=>!1,e5=e=>!1,t5={baseConfig:{environment:Ve.SANDBOX},passport:void 0};var n5=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=t5){this.httpClient=new Y2(e),this.config=new Z4(e,this.httpClient),this.fiatRampService=new y3(this.config),this.readOnlyProviders=new Map,this.availability=g4(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport,N3.getInstance().initialise()}async widgets(e){let t=this,n=h4();try{let r=await import(`https://cdn.jsdelivr.net/npm/@imtbl/checkout-widgets@${h4()}/dist/browser/index.js`);if(r&&r.WidgetsFactory)return new r.WidgetsFactory(t,e.config);throw Error(`WidgetsFactory not found in loaded module for version: ${n}`)}catch(e){throw new $(`Failed to load widgets script`,`WIDGETS_SCRIPT_LOAD_ERROR`,{error:e})}}async createProvider(e){return await z3(e.walletProviderName,this.passport)}getInjectedProviders(){return N3.getInstance().getProviders()}findInjectedProvider(e){return N3.getInstance().findProvider(e)}onInjectedProvidersChange(e){return N3.getInstance().subscribe(e)}clearInjectedProviders(){return N3.getInstance().clear()}async checkIsWalletConnected(e){return g3(await V3(this.config,e.provider,{allowMistmatchedChainId:!0,allowUnsupportedProvider:!0}))}async getRiskAssessment(e){return await Z8(e,this.config)}checkIsAddressSanctioned(e,t){return Q8(e,t)}async connect(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return e.requestWalletPermissions&&!S8(t)?await v3(t):await _3(t),t}async addNetwork(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await L4(this.config.networkMap,t,e.chainId)}async switchNetwork(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await V4(this.config,t,e.chainId)}async getTokenInfo(e){return await i3(e.provider,e.tokenAddress)}async getBalance(e){let t=await V3(this.config,e.provider);return!e.tokenAddress||e.tokenAddress===``?await c3(this.config,t,e.walletAddress):await l3(t,e.walletAddress,e.tokenAddress)}async getAllBalances(e){let t=!e.provider||`ethereumProvider`in e.provider?e.provider:new w4(e.provider);return h3(this.config,t,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await R4(this.config,e)}async getTokenAllowList(e){return await n3(this.config,e)}async getWalletAllowList(e){return await X8(e)}async sendTransaction(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await E8(t,e.transaction)}async providerCall(e,t){let n=await V3(this.config,e,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});try{return await t(n)}catch(e){throw T8(e)}}async getNetworkInfo(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await z4(this.config,t)}async buy(e){e.orders.length>1&&console.warn(`This endpoint currently only processes the first order in the array.`);let t=await V3(this.config,e.provider);return await z8(this.config,t,e.orders,e.overrides)}async sell(e){e.orders.length>1&&console.warn(`This endpoint currently only processes the first order in the array.`);let t=await V3(this.config,e.provider);return await q8(this.config,t,e.orders)}async cancel(e){console.warn(`This endpoint currently only processes the first order in the array.`);let t=await V3(this.config,e.provider);return await H8(this.config,t,e.orderIds,e.overrides)}async smartCheckout(e){let t=await V3(this.config,e.provider),n=[];try{n=await U8(t,e.itemRequirements)}catch(e){throw new $(`Failed to map item requirements`,`ITEM_REQUIREMENTS_ERROR`,{error:e})}return await x8(this.config,t,n,e.transactionOrGasAmount,e.routingOptions,e.onComplete,e.onFundingRoute,e.fundingRouteFullAmount)}static isWrappedBrowserProvider(e){return B3(e)}async gasEstimate(e){return this.readOnlyProviders=await H3(this.config,this.readOnlyProviders),await O3(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(e){let t,n=`IMX`,r,i=`request`in e.browserProvider?new w4(e.browserProvider):e.browserProvider,a=await(await i.getSigner()).getAddress(),o=i.ethereumProvider?.isPassport||!1;o&&e.passport&&(r=(await e.passport.getUserInfo())?.email);let s=await n3(this.config,{type:`onramp`}),c=s.tokens?.find(t=>Q4(t.address,e.tokenAddress));c&&(t=e.tokenAmount,n=c.symbol);let l=s?.tokens?.filter(e=>e.symbol).map(e=>e.symbol);return await this.fiatRampService.createWidgetUrl({exchangeType:e.exchangeType,isPassport:o,walletAddress:a,tokenAmount:t,tokenSymbol:n,email:r,allowedTokens:l,showMenu:e.showMenu,customSubTitle:e.customSubTitle})}async getExchangeFeeEstimate(){return await this.fiatRampService.feeEstimate()}async isSwapAvailable(){return this.availability.checkDexAvailability()}async swap(e){let t=await V3(this.config,e.provider);return Y8(this.config,t,e.fromToken,e.toToken,e.fromAmount,e.toAmount,e.slippagePercent,e.maxHops,e.deadline)}async swapQuote(e){let t=await V3(this.config,e.provider);return J8(this.config,t,e.fromToken,e.toToken,e.fromAmount,e.toAmount,e.slippagePercent,e.maxHops,e.deadline)}},r5=class{static getTransactionLink(e,t){let n=u4?.[e]?.url;if(!(!n||!t))return`${n}/tx/${t}`}},i5=l({AddTokensEventType:()=>B2,BlockExplorerService:()=>r5,BridgeEventType:()=>N2,ChainId:()=>Q2,ChainName:()=>$2,ChainSlug:()=>e4,Checkout:()=>n5,CheckoutConfiguration:()=>Z4,CheckoutError:()=>$,CheckoutErrorType:()=>X2,CheckoutStatus:()=>T4,CommerceEventType:()=>I2,CommerceFailureEventType:()=>R2,CommerceFlowType:()=>K2,CommerceSuccessEventType:()=>L2,CommerceUserActionEventType:()=>z2,ConnectEventType:()=>O2,ConnectTargetLayer:()=>W2,ExchangeType:()=>M4,FeeType:()=>A4,FundingStepType:()=>j4,GasEstimateType:()=>_4,GasTokenType:()=>O4,IMMUTABLE_API_BASE_URL:()=>a4,IMTBLWidgetEvents:()=>E2,ItemType:()=>E4,NetworkFilterTypes:()=>v4,OnRampEventType:()=>F2,OrchestrationEventType:()=>P2,ProviderEventType:()=>D2,PurchaseEventType:()=>V2,RoutingOutcomeType:()=>k4,SaleEventType:()=>j2,SalePaymentTypes:()=>M2,SwapDirection:()=>G2,SwapEventType:()=>A2,TokenFilterTypes:()=>y4,TransactionOrGasType:()=>D4,TransferEventType:()=>H2,WalletEventType:()=>k2,WalletFilterTypes:()=>b4,WalletProviderName:()=>x4,WalletProviderRdns:()=>S4,WidgetTheme:()=>q2,WidgetType:()=>U2,WrappedBrowserProvider:()=>w4,fetchRiskAssessment:()=>Z8,getGasPriceInWei:()=>A3,getMetaMaskProviderDetail:()=>L3,getPassportProviderDetail:()=>I3,getUnderlyingChainId:()=>P4,isAddressSanctioned:()=>Q8,isSingleAddressSanctioned:()=>$8,metaMaskProviderInfo:()=>P3,passportProviderInfo:()=>F3,resultHasSanctionedWallets:()=>e5,validateProvider:()=>V3});return Object.defineProperty(e,"blockchainData",{enumerable:!0,get:function(){return lc}}),Object.defineProperty(e,"checkout",{enumerable:!0,get:function(){return i5}}),Object.defineProperty(e,"config",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(e,"orderbook",{enumerable:!0,get:function(){return Tq}}),Object.defineProperty(e,"passport",{enumerable:!0,get:function(){return LE}}),e})({});
|
|
850
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return n=e[Symbol.iterator](),n.next.bind(n)}function _$(e,t){return t={exports:{}},e(t,t.exports),t.exports}var v$=_$(function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r,i=typeof Symbol==`function`?Symbol:{},a=i.iterator||`@@iterator`,o=i.asyncIterator||`@@asyncIterator`,s=i.toStringTag||`@@toStringTag`;function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},``)}catch{c=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=t&&t.prototype instanceof g?t:g,a=Object.create(i.prototype);return a._invoke=T(e,n,new k(r||[])),a}e.wrap=l;function u(e,t,n){try{return{type:`normal`,arg:e.call(t,n)}}catch(e){return{type:`throw`,arg:e}}}var d=`suspendedStart`,f=`suspendedYield`,p=`executing`,m=`completed`,h={};function g(){}function _(){}function v(){}var y={};y[a]=function(){return this};var b=Object.getPrototypeOf,x=b&&b(b(A([])));x&&x!==t&&n.call(x,a)&&(y=x);var S=v.prototype=g.prototype=Object.create(y);_.prototype=S.constructor=v,v.constructor=_,_.displayName=c(v,s,`GeneratorFunction`);function C(e){[`next`,`throw`,`return`].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}e.isGeneratorFunction=function(e){var t=typeof e==`function`&&e.constructor;return t?t===_||(t.displayName||t.name)===`GeneratorFunction`:!1},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,c(e,s,`GeneratorFunction`)),e.prototype=Object.create(S),e},e.awrap=function(e){return{__await:e}};function w(e,t){function r(i,a,o,s){var c=u(e[i],e,a);if(c.type===`throw`)s(c.arg);else{var l=c.arg,d=l.value;return d&&typeof d==`object`&&n.call(d,`__await`)?t.resolve(d.__await).then(function(e){r(`next`,e,o,s)},function(e){r(`throw`,e,o,s)}):t.resolve(d).then(function(e){l.value=e,o(l)},function(e){return r(`throw`,e,o,s)})}}var i;function a(e,n){function a(){return new t(function(t,i){r(e,n,t,i)})}return i=i?i.then(a,a):a()}this._invoke=a}C(w.prototype),w.prototype[o]=function(){return this},e.AsyncIterator=w,e.async=function(t,n,r,i,a){a===void 0&&(a=Promise);var o=new w(l(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then(function(e){return e.done?e.value:o.next()})};function T(e,t,n){var r=d;return function(i,a){if(r===p)throw Error(`Generator is already running`);if(r===m){if(i===`throw`)throw a;return j()}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=E(o,n);if(s){if(s===h)continue;return s}}if(n.method===`next`)n.sent=n._sent=n.arg;else if(n.method===`throw`){if(r===d)throw r=m,n.arg;n.dispatchException(n.arg)}else n.method===`return`&&n.abrupt(`return`,n.arg);r=p;var c=u(e,t,n);if(c.type===`normal`){if(r=n.done?m:f,c.arg===h)continue;return{value:c.arg,done:n.done}}else c.type===`throw`&&(r=m,n.method=`throw`,n.arg=c.arg)}}}function E(e,t){var n=e.iterator[t.method];if(n===r){if(t.delegate=null,t.method===`throw`){if(e.iterator.return&&(t.method=`return`,t.arg=r,E(e,t),t.method===`throw`))return h;t.method=`throw`,t.arg=TypeError(`The iterator does not provide a 'throw' method`)}return h}var i=u(n,e.iterator,t.arg);if(i.type===`throw`)return t.method=`throw`,t.arg=i.arg,t.delegate=null,h;var a=i.arg;if(!a)return t.method=`throw`,t.arg=TypeError(`iterator result is not an object`),t.delegate=null,h;if(a.done)t[e.resultName]=a.value,t.next=e.nextLoc,t.method!==`return`&&(t.method=`next`,t.arg=r);else return a;return t.delegate=null,h}C(S),c(S,s,`Generator`),S[a]=function(){return this},S.toString=function(){return`[object Generator]`};function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type=`normal`,delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:`root`}],e.forEach(D,this),this.reset(!0)}e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}};function A(e){if(e){var t=e[a];if(t)return t.call(e);if(typeof e.next==`function`)return e;if(!isNaN(e.length)){var i=-1,o=function t(){for(;++i<e.length;)if(n.call(e,i))return t.value=e[i],t.done=!1,t;return t.value=r,t.done=!0,t};return o.next=o}}return{next:j}}e.values=A;function j(){return{value:r,done:!0}}return k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method=`next`,this.arg=r,this.tryEntries.forEach(O),!e)for(var t in this)t.charAt(0)===`t`&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=r)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(e.type===`throw`)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function i(n,i){return s.type=`throw`,s.arg=e,t.next=n,i&&(t.method=`next`,t.arg=r),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],s=o.completion;if(o.tryLoc===`root`)return i(`end`);if(o.tryLoc<=this.prev){var c=n.call(o,`catchLoc`),l=n.call(o,`finallyLoc`);if(c&&l){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else if(l){if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else throw Error(`try statement without catch or finally`)}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,`finallyLoc`)&&this.prev<i.finallyLoc){var a=i;break}}a&&(e===`break`||e===`continue`)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method=`next`,this.next=a.finallyLoc,h):this.complete(o)},complete:function(e,t){if(e.type===`throw`)throw e.arg;return e.type===`break`||e.type===`continue`?this.next=e.arg:e.type===`return`?(this.rval=this.arg=e.arg,this.method=`return`,this.next=`end`):e.type===`normal`&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(r.type===`throw`){var i=r.arg;O(n)}return i}}throw Error(`illegal catch attempt`)},delegateYield:function(e,t,n){return this.delegate={iterator:A(e),resultName:t,nextLoc:n},this.method===`next`&&(this.arg=r),h}},e}(e.exports);try{regeneratorRuntime=t}catch{Function(`r`,`regeneratorRuntime = r`)(t)}}),y$,b$=`0x1F98431c8aD98523631AE4a59f267346ea31F984`,x$=`0x0000000000000000000000000000000000000000`,S$=`0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`,C$;(function(e){e[e.LOWEST=100]=`LOWEST`,e[e.LOW=500]=`LOW`,e[e.MEDIUM=3e3]=`MEDIUM`,e[e.HIGH=1e4]=`HIGH`})(C$||={});var w$=(y$={},y$[C$.LOWEST]=1,y$[C$.LOW]=10,y$[C$.MEDIUM]=60,y$[C$.HIGH]=200,y$),T$=Z.default.BigInt(-1),E$=Z.default.BigInt(0),D$=Z.default.BigInt(1),O$=Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(96)),k$=Z.default.exponentiate(O$,Z.default.BigInt(2));function A$(e){var t=e.factoryAddress,n=e.tokenA,r=e.tokenB,i=e.fee,a=e.initCodeHashManualOverride,o=n.sortsBefore(r)?[n,r]:[r,n],s=o[0],c=o[1];return HY(t,$Q([`bytes`],[LQ.encode([`address`,`address`,`uint24`],[s.address,c.address,i])]),a??S$)}var j$=function(){function e(){}return e.addDelta=function(e,t){return Z.default.lessThan(t,E$)?Z.default.subtract(e,Z.default.multiply(t,T$)):Z.default.add(e,t)},e}(),M$=function(){function e(){}return e.mulDivRoundingUp=function(e,t,n){var r=Z.default.multiply(e,t),i=Z.default.divide(r,n);return Z.default.notEqual(Z.default.remainder(r,n),E$)&&(i=Z.default.add(i,D$)),i},e}(),N$=Z.default.subtract(Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(160)),D$);function P$(e,t){var n=Z.default.multiply(e,t);return Z.default.bitwiseAnd(n,KX)}function F$(e,t){var n=Z.default.add(e,t);return Z.default.bitwiseAnd(n,KX)}var I$=function(){function e(){}return e.getAmount0Delta=function(e,t,n,r){if(Z.default.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}var a=Z.default.leftShift(n,Z.default.BigInt(96)),o=Z.default.subtract(t,e);return r?M$.mulDivRoundingUp(M$.mulDivRoundingUp(a,o,t),D$,e):Z.default.divide(Z.default.divide(Z.default.multiply(a,o),t),e)},e.getAmount1Delta=function(e,t,n,r){if(Z.default.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}return r?M$.mulDivRoundingUp(n,Z.default.subtract(t,e),O$):Z.default.divide(Z.default.multiply(n,Z.default.subtract(t,e)),O$)},e.getNextSqrtPriceFromInput=function(e,t,n,r){return!Z.default.greaterThan(e,E$)&&Q(!1),!Z.default.greaterThan(t,E$)&&Q(!1),r?this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!0):this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!0)},e.getNextSqrtPriceFromOutput=function(e,t,n,r){return!Z.default.greaterThan(e,E$)&&Q(!1),!Z.default.greaterThan(t,E$)&&Q(!1),r?this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!1):this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!1)},e.getNextSqrtPriceFromAmount0RoundingUp=function(e,t,n,r){if(Z.default.equal(n,E$))return e;var i=Z.default.leftShift(t,Z.default.BigInt(96));if(r){var a=P$(n,e);if(Z.default.equal(Z.default.divide(a,n),e)){var o=F$(i,a);if(Z.default.greaterThanOrEqual(o,i))return M$.mulDivRoundingUp(i,e,o)}return M$.mulDivRoundingUp(i,D$,Z.default.add(Z.default.divide(i,e),n))}else{var s=P$(n,e);!Z.default.equal(Z.default.divide(s,n),e)&&Q(!1),!Z.default.greaterThan(i,s)&&Q(!1);var c=Z.default.subtract(i,s);return M$.mulDivRoundingUp(i,e,c)}},e.getNextSqrtPriceFromAmount1RoundingDown=function(e,t,n,r){if(r){var i=Z.default.lessThanOrEqual(n,N$)?Z.default.divide(Z.default.leftShift(n,Z.default.BigInt(96)),t):Z.default.divide(Z.default.multiply(n,O$),t);return Z.default.add(e,i)}else{var a=M$.mulDivRoundingUp(n,O$,t);return!Z.default.greaterThan(e,a)&&Q(!1),Z.default.subtract(e,a)}},e}(),L$=Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(6)),R$=function(){function e(){}return e.computeSwapStep=function(e,t,n,r,i){var a={},o=Z.default.greaterThanOrEqual(e,t),s=Z.default.greaterThanOrEqual(r,E$);if(s){var c=Z.default.divide(Z.default.multiply(r,Z.default.subtract(L$,Z.default.BigInt(i))),L$);a.amountIn=o?I$.getAmount0Delta(t,e,n,!0):I$.getAmount1Delta(e,t,n,!0),Z.default.greaterThanOrEqual(c,a.amountIn)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=I$.getNextSqrtPriceFromInput(e,n,c,o)}else a.amountOut=o?I$.getAmount1Delta(t,e,n,!1):I$.getAmount0Delta(e,t,n,!1),Z.default.greaterThanOrEqual(Z.default.multiply(r,T$),a.amountOut)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=I$.getNextSqrtPriceFromOutput(e,n,Z.default.multiply(r,T$),o);var l=Z.default.equal(t,a.sqrtRatioNextX96);return o?(a.amountIn=l&&s?a.amountIn:I$.getAmount0Delta(a.sqrtRatioNextX96,e,n,!0),a.amountOut=l&&!s?a.amountOut:I$.getAmount1Delta(a.sqrtRatioNextX96,e,n,!1)):(a.amountIn=l&&s?a.amountIn:I$.getAmount1Delta(e,a.sqrtRatioNextX96,n,!0),a.amountOut=l&&!s?a.amountOut:I$.getAmount0Delta(e,a.sqrtRatioNextX96,n,!1)),!s&&Z.default.greaterThan(a.amountOut,Z.default.multiply(r,T$))&&(a.amountOut=Z.default.multiply(r,T$)),s&&Z.default.notEqual(a.sqrtRatioNextX96,t)?a.feeAmount=Z.default.subtract(r,a.amountIn):a.feeAmount=M$.mulDivRoundingUp(a.amountIn,Z.default.BigInt(i),Z.default.subtract(L$,Z.default.BigInt(i))),[a.sqrtRatioNextX96,a.amountIn,a.amountOut,a.feeAmount]},e}(),z$=Z.default.BigInt(2),B$=[128,64,32,16,8,4,2,1].map(function(e){return[e,Z.default.exponentiate(z$,Z.default.BigInt(e))]});function V$(e){!Z.default.greaterThan(e,E$)&&Q(!1),!Z.default.lessThanOrEqual(e,KX)&&Q(!1);for(var t=0,n=g$(B$),r;!(r=n()).done;){var i=r.value,a=i[0],o=i[1];Z.default.greaterThanOrEqual(e,o)&&(e=Z.default.signedRightShift(e,Z.default.BigInt(a)),t+=a)}return t}function H$(e,t){return Z.default.signedRightShift(Z.default.multiply(e,Z.default.BigInt(t)),Z.default.BigInt(128))}var U$=Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(32)),W$=function(){function e(){}return e.getSqrtRatioAtTick=function(t){!(t>=e.MIN_TICK&&t<=e.MAX_TICK&&Number.isInteger(t))&&Q(!1);var n=t<0?t*-1:t,r=n&1?Z.default.BigInt(`0xfffcb933bd6fad37aa2d162d1a594001`):Z.default.BigInt(`0x100000000000000000000000000000000`);return n&2&&(r=H$(r,`0xfff97272373d413259a46990580e213a`)),n&4&&(r=H$(r,`0xfff2e50f5f656932ef12357cf3c7fdcc`)),n&8&&(r=H$(r,`0xffe5caca7e10e4e61c3624eaa0941cd0`)),n&16&&(r=H$(r,`0xffcb9843d60f6159c9db58835c926644`)),n&32&&(r=H$(r,`0xff973b41fa98c081472e6896dfb254c0`)),n&64&&(r=H$(r,`0xff2ea16466c96a3843ec78b326b52861`)),n&128&&(r=H$(r,`0xfe5dee046a99a2a811c461f1969c3053`)),n&256&&(r=H$(r,`0xfcbe86c7900a88aedcffc83b479aa3a4`)),n&512&&(r=H$(r,`0xf987a7253ac413176f2b074cf7815e54`)),n&1024&&(r=H$(r,`0xf3392b0822b70005940c7a398e4b70f3`)),n&2048&&(r=H$(r,`0xe7159475a2c29b7443b29c7fa6e889d9`)),n&4096&&(r=H$(r,`0xd097f3bdfd2022b8845ad8f792aa5825`)),n&8192&&(r=H$(r,`0xa9f746462d870fdf8a65dc1f90e061e5`)),n&16384&&(r=H$(r,`0x70d869a156d2a1b890bb3df62baf32f7`)),n&32768&&(r=H$(r,`0x31be135f97d08fd981231505542fcfa6`)),n&65536&&(r=H$(r,`0x9aa508b5b7a84e1c677de54f3e99bc9`)),n&131072&&(r=H$(r,`0x5d6af8dedb81196699c329225ee604`)),n&262144&&(r=H$(r,`0x2216e584f5fa1ea926041bedfe98`)),n&524288&&(r=H$(r,`0x48a170391f7dc42444e8fa2`)),t>0&&(r=Z.default.divide(KX,r)),Z.default.greaterThan(Z.default.remainder(r,U$),E$)?Z.default.add(Z.default.divide(r,U$),D$):Z.default.divide(r,U$)},e.getTickAtSqrtRatio=function(t){!(Z.default.greaterThanOrEqual(t,e.MIN_SQRT_RATIO)&&Z.default.lessThan(t,e.MAX_SQRT_RATIO))&&Q(!1);for(var n=Z.default.leftShift(t,Z.default.BigInt(32)),r=V$(n),i=Z.default.greaterThanOrEqual(Z.default.BigInt(r),Z.default.BigInt(128))?Z.default.signedRightShift(n,Z.default.BigInt(r-127)):Z.default.leftShift(n,Z.default.BigInt(127-r)),a=Z.default.leftShift(Z.default.subtract(Z.default.BigInt(r),Z.default.BigInt(128)),Z.default.BigInt(64)),o=0;o<14;o++){i=Z.default.signedRightShift(Z.default.multiply(i,i),Z.default.BigInt(127));var s=Z.default.signedRightShift(i,Z.default.BigInt(128));a=Z.default.bitwiseOr(a,Z.default.leftShift(s,Z.default.BigInt(63-o))),i=Z.default.signedRightShift(i,s)}var c=Z.default.multiply(a,Z.default.BigInt(`255738958999603826347141`)),l=Z.default.toNumber(Z.default.signedRightShift(Z.default.subtract(c,Z.default.BigInt(`3402992956809132418596140100660247210`)),Z.default.BigInt(128))),u=Z.default.toNumber(Z.default.signedRightShift(Z.default.add(c,Z.default.BigInt(`291339464771989622907027621153398088495`)),Z.default.BigInt(128)));return l===u?l:Z.default.lessThanOrEqual(e.getSqrtRatioAtTick(u),t)?u:l},e}();W$.MIN_TICK=-887272,W$.MAX_TICK=-W$.MIN_TICK,W$.MIN_SQRT_RATIO=Z.default.BigInt(`4295128739`),W$.MAX_SQRT_RATIO=Z.default.BigInt(`1461446703485210103287273052203988822378723970342`);var G$=function(){function e(){}var t=e.prototype;return t.getTick=function(){var t=l$(v$.mark(function t(n){return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:throw Error(e.ERROR_MESSAGE);case 1:case`end`:return t.stop()}},t)}));function n(e){return t.apply(this,arguments)}return n}(),t.nextInitializedTickWithinOneWord=function(){var t=l$(v$.mark(function t(n,r,i){return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:throw Error(e.ERROR_MESSAGE);case 1:case`end`:return t.stop()}},t)}));function n(e,n,r){return t.apply(this,arguments)}return n}(),e}();G$.ERROR_MESSAGE=`No tick data provider was given`;function K$(e,t){for(var n=0;n<e.length-1;n++)if(t(e[n],e[n+1])>0)return!1;return!0}function q$(e,t){return e.index-t.index}var J$=function(){function e(){}return e.validateList=function(e,t){!(t>0)&&Q(!1),!e.every(function(e){return e.index%t===0})&&Q(!1),!Z.default.equal(e.reduce(function(e,t){var n=t.liquidityNet;return Z.default.add(e,n)},E$),E$)&&Q(!1),!K$(e,q$)&&Q(!1)},e.isBelowSmallest=function(e,t){return!(e.length>0)&&Q(!1),t<e[0].index},e.isAtOrAboveLargest=function(e,t){return!(e.length>0)&&Q(!1),t>=e[e.length-1].index},e.getTick=function(e,t){var n=e[this.binarySearch(e,t)];return n.index!==t&&Q(!1),n},e.binarySearch=function(e,t){this.isBelowSmallest(e,t)&&Q(!1);for(var n=0,r=e.length-1,i;;){if(i=Math.floor((n+r)/2),e[i].index<=t&&(i===e.length-1||e[i+1].index>t))return i;e[i].index<t?n=i+1:r=i-1}},e.nextInitializedTick=function(t,n,r){return r?(e.isBelowSmallest(t,n)&&Q(!1),e.isAtOrAboveLargest(t,n)?t[t.length-1]:t[this.binarySearch(t,n)]):(this.isAtOrAboveLargest(t,n)&&Q(!1),this.isBelowSmallest(t,n)?t[0]:t[this.binarySearch(t,n)+1])},e.nextInitializedTickWithinOneWord=function(t,n,r,i){var a=Math.floor(n/i);if(r){var o=(a>>8<<8)*i;if(e.isBelowSmallest(t,n))return[o,!1];var s=e.nextInitializedTick(t,n,r).index,c=Math.max(o,s);return[c,c===s]}else{var l=(((a+1>>8)+1<<8)-1)*i;if(this.isAtOrAboveLargest(t,n))return[l,!1];var u=this.nextInitializedTick(t,n,r).index,d=Math.min(l,u);return[d,d===u]}},e}();function Y$(e){var t=Z.default.BigInt(e).toString(16);return t.length%2!=0&&(t=`0`+t),`0x`+t}function X$(e,t){var n=e.input.wrapped,r=e.pools.reduce(function(e,t,n){var r=e.inputToken,i=e.path,a=e.types,o=t.token0.equals(r)?t.token1:t.token0;return n===0?{inputToken:o,types:[`address`,`uint24`,`address`],path:[r.address,t.fee,o.address]}:{inputToken:o,types:[].concat(a,[`uint24`,`address`]),path:[].concat(i,[t.fee,o.address])}},{inputToken:n,path:[],types:[]}),i=r.path,a=r.types;return t?QQ(a.reverse(),i.reverse()):QQ(a,i)}function Z$(e,t){var n=Z.default.leftShift(Z.default.BigInt(e),Z.default.BigInt(192)),r=Z.default.BigInt(t);return bZ(Z.default.divide(n,r))}function Q$(e,t,n){if(Z.default.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=Z.default.divide(Z.default.multiply(e,t),O$);return Z.default.divide(Z.default.multiply(Z.default.BigInt(n),i),Z.default.subtract(t,e))}function $$(e,t,n){if(Z.default.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=Z.default.multiply(Z.default.multiply(Z.default.BigInt(n),e),t),a=Z.default.multiply(O$,Z.default.subtract(t,e));return Z.default.divide(i,a)}function e1(e,t,n){if(Z.default.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}return Z.default.divide(Z.default.multiply(Z.default.BigInt(n),O$),Z.default.subtract(t,e))}function t1(e,t,n,r,i,a){if(Z.default.greaterThan(t,n)){var o=[n,t];t=o[0],n=o[1]}var s=a?$$:Q$;if(Z.default.lessThanOrEqual(e,t))return s(t,n,r);if(Z.default.lessThan(e,n)){var c=s(e,n,r),l=e1(t,e,i);return Z.default.lessThan(c,l)?c:l}else return e1(t,n,i)}function n1(e,t,n){var r=W$.getSqrtRatioAtTick(n),i=Z.default.multiply(r,r);return e.sortsBefore(t)?new aZ(e,t,k$,i):new aZ(e,t,i,k$)}var r1=function(e){var t=e.index,n=e.liquidityGross,r=e.liquidityNet;!(t>=W$.MIN_TICK&&t<=W$.MAX_TICK)&&Q(!1),this.index=t,this.liquidityGross=Z.default.BigInt(n),this.liquidityNet=Z.default.BigInt(r)},i1=function(){function e(e,t){var n=e.map(function(e){return e instanceof r1?e:new r1(e)});J$.validateList(n,t),this.ticks=n}var t=e.prototype;return t.getTick=function(){var e=l$(v$.mark(function e(t){return v$.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(`return`,J$.getTick(this.ticks,t));case 1:case`end`:return e.stop()}},e,this)}));function t(t){return e.apply(this,arguments)}return t}(),t.nextInitializedTickWithinOneWord=function(){var e=l$(v$.mark(function e(t,n,r){return v$.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(`return`,J$.nextInitializedTickWithinOneWord(this.ticks,t,n,r));case 1:case`end`:return e.stop()}},e,this)}));function t(t,n,r){return e.apply(this,arguments)}return t}(),e}(),a1=new G$,o1=function(){function e(e,t,n,r,i,a,o){o===void 0&&(o=a1),!(Number.isInteger(n)&&n<1e6)&&Q(!1);var s=W$.getSqrtRatioAtTick(a),c=W$.getSqrtRatioAtTick(a+1);!(Z.default.greaterThanOrEqual(Z.default.BigInt(r),s)&&Z.default.lessThanOrEqual(Z.default.BigInt(r),c))&&Q(!1);var l=e.sortsBefore(t)?[e,t]:[t,e];this.token0=l[0],this.token1=l[1],this.fee=n,this.sqrtRatioX96=Z.default.BigInt(r),this.liquidity=Z.default.BigInt(i),this.tickCurrent=a,this.tickDataProvider=Array.isArray(o)?new i1(o,w$[n]):o}e.getAddress=function(e,t,n,r,i){return A$({factoryAddress:i??b$,fee:n,tokenA:e,tokenB:t,initCodeHashManualOverride:r})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return!this.involvesToken(e)&&Q(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.getOutputAmount=function(){var t=l$(v$.mark(function t(n,r){var i,a,o,s,c,l,u;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return!this.involvesToken(n.currency)&&Q(!1),i=n.currency.equals(this.token0),t.next=4,this.swap(i,n.quotient,r);case 4:return a=t.sent,o=a.amountCalculated,s=a.sqrtRatioX96,c=a.liquidity,l=a.tickCurrent,u=i?this.token1:this.token0,t.abrupt(`return`,[tZ.fromRawAmount(u,Z.default.multiply(o,T$)),new e(this.token0,this.token1,this.fee,s,c,l,this.tickDataProvider)]);case 11:case`end`:return t.stop()}},t,this)}));function n(e,n){return t.apply(this,arguments)}return n}(),t.getInputAmount=function(){var t=l$(v$.mark(function t(n,r){var i,a,o,s,c,l,u;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return!(n.currency.isToken&&this.involvesToken(n.currency))&&Q(!1),i=n.currency.equals(this.token1),t.next=4,this.swap(i,Z.default.multiply(n.quotient,T$),r);case 4:return a=t.sent,o=a.amountCalculated,s=a.sqrtRatioX96,c=a.liquidity,l=a.tickCurrent,u=i?this.token0:this.token1,t.abrupt(`return`,[tZ.fromRawAmount(u,o),new e(this.token0,this.token1,this.fee,s,c,l,this.tickDataProvider)]);case 11:case`end`:return t.stop()}},t,this)}));function n(e,n){return t.apply(this,arguments)}return n}(),t.swap=function(){var e=l$(v$.mark(function e(t,n,r){var i,a,o,s,c,l;return v$.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r||=t?Z.default.add(W$.MIN_SQRT_RATIO,D$):Z.default.subtract(W$.MAX_SQRT_RATIO,D$),t?(!Z.default.greaterThan(r,W$.MIN_SQRT_RATIO)&&Q(!1),!Z.default.lessThan(r,this.sqrtRatioX96)&&Q(!1)):(!Z.default.lessThan(r,W$.MAX_SQRT_RATIO)&&Q(!1),!Z.default.greaterThan(r,this.sqrtRatioX96)&&Q(!1)),i=Z.default.greaterThanOrEqual(n,E$),a={amountSpecifiedRemaining:n,amountCalculated:E$,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!(Z.default.notEqual(a.amountSpecifiedRemaining,E$)&&a.sqrtPriceX96!=r)){e.next=35;break}return o={},o.sqrtPriceStartX96=a.sqrtPriceX96,e.next=9,this.tickDataProvider.nextInitializedTickWithinOneWord(a.tick,t,this.tickSpacing);case 9:if(s=e.sent,o.tickNext=s[0],o.initialized=s[1],o.tickNext<W$.MIN_TICK?o.tickNext=W$.MIN_TICK:o.tickNext>W$.MAX_TICK&&(o.tickNext=W$.MAX_TICK),o.sqrtPriceNextX96=W$.getSqrtRatioAtTick(o.tickNext),c=R$.computeSwapStep(a.sqrtPriceX96,(t?Z.default.lessThan(o.sqrtPriceNextX96,r):Z.default.greaterThan(o.sqrtPriceNextX96,r))?r:o.sqrtPriceNextX96,a.liquidity,a.amountSpecifiedRemaining,this.fee),a.sqrtPriceX96=c[0],o.amountIn=c[1],o.amountOut=c[2],o.feeAmount=c[3],i?(a.amountSpecifiedRemaining=Z.default.subtract(a.amountSpecifiedRemaining,Z.default.add(o.amountIn,o.feeAmount)),a.amountCalculated=Z.default.subtract(a.amountCalculated,o.amountOut)):(a.amountSpecifiedRemaining=Z.default.add(a.amountSpecifiedRemaining,o.amountOut),a.amountCalculated=Z.default.add(a.amountCalculated,Z.default.add(o.amountIn,o.feeAmount))),!Z.default.equal(a.sqrtPriceX96,o.sqrtPriceNextX96)){e.next=32;break}if(!o.initialized){e.next=29;break}return e.t0=Z.default,e.next=25,this.tickDataProvider.getTick(o.tickNext);case 25:e.t1=e.sent.liquidityNet,l=e.t0.BigInt.call(e.t0,e.t1),t&&(l=Z.default.multiply(l,T$)),a.liquidity=j$.addDelta(a.liquidity,l);case 29:a.tick=t?o.tickNext-1:o.tickNext,e.next=33;break;case 32:Z.default.notEqual(a.sqrtPriceX96,o.sqrtPriceStartX96)&&(a.tick=W$.getTickAtSqrtRatio(a.sqrtPriceX96));case 33:e.next=4;break;case 35:return e.abrupt(`return`,{amountCalculated:a.amountCalculated,sqrtRatioX96:a.sqrtPriceX96,liquidity:a.liquidity,tickCurrent:a.tick});case 36:case`end`:return e.stop()}},e,this)}));function t(t,n,r){return e.apply(this,arguments)}return t}(),d$(e,[{key:`token0Price`,get:function(){return this._token0Price??=new aZ(this.token0,this.token1,k$,Z.default.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:`token1Price`,get:function(){return this._token1Price??=new aZ(this.token1,this.token0,Z.default.multiply(this.sqrtRatioX96,this.sqrtRatioX96),k$)}},{key:`chainId`,get:function(){return this.token0.chainId}},{key:`tickSpacing`,get:function(){return w$[this.fee]}}]),e}(),s1=function(){function e(e){var t=e.pool,n=e.liquidity,r=e.tickLower,i=e.tickUpper;this._token0Amount=null,this._token1Amount=null,this._mintAmounts=null,!(r<i)&&Q(!1),!(r>=W$.MIN_TICK&&r%t.tickSpacing===0)&&Q(!1),!(i<=W$.MAX_TICK&&i%t.tickSpacing===0)&&Q(!1),this.pool=t,this.tickLower=r,this.tickUpper=i,this.liquidity=Z.default.BigInt(n)}var t=e.prototype;return t.ratiosAfterSlippage=function(e){var t=this.pool.token0Price.asFraction.multiply(new iZ(1).subtract(e)),n=this.pool.token0Price.asFraction.multiply(e.add(1)),r=Z$(t.numerator,t.denominator);Z.default.lessThanOrEqual(r,W$.MIN_SQRT_RATIO)&&(r=Z.default.add(W$.MIN_SQRT_RATIO,Z.default.BigInt(1)));var i=Z$(n.numerator,n.denominator);return Z.default.greaterThanOrEqual(i,W$.MAX_SQRT_RATIO)&&(i=Z.default.subtract(W$.MAX_SQRT_RATIO,Z.default.BigInt(1))),{sqrtRatioX96Lower:r,sqrtRatioX96Upper:i}},t.mintAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,a=new o1(this.pool.token0,this.pool.token1,this.pool.fee,i,0,W$.getTickAtSqrtRatio(i)),o=new o1(this.pool.token0,this.pool.token1,this.pool.fee,r,0,W$.getTickAtSqrtRatio(r)),s=e.fromAmounts(f$({pool:this.pool,tickLower:this.tickLower,tickUpper:this.tickUpper},this.mintAmounts,{useFullPrecision:!1}));return{amount0:new e({pool:o,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount0,amount1:new e({pool:a,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount1}},t.burnAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,a=new o1(this.pool.token0,this.pool.token1,this.pool.fee,i,0,W$.getTickAtSqrtRatio(i)),o=new e({pool:new o1(this.pool.token0,this.pool.token1,this.pool.fee,r,0,W$.getTickAtSqrtRatio(r)),liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount0,s=new e({pool:a,liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount1;return{amount0:o.quotient,amount1:s.quotient}},e.fromAmounts=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount0,o=t.amount1,s=t.useFullPrecision,c=W$.getSqrtRatioAtTick(r),l=W$.getSqrtRatioAtTick(i);return new e({pool:n,tickLower:r,tickUpper:i,liquidity:t1(n.sqrtRatioX96,c,l,a,o,s)})},e.fromAmount0=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount0,o=t.useFullPrecision;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:a,amount1:KX,useFullPrecision:o})},e.fromAmount1=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,a=t.amount1;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:KX,amount1:a,useFullPrecision:!0})},d$(e,[{key:`token0PriceLower`,get:function(){return n1(this.pool.token0,this.pool.token1,this.tickLower)}},{key:`token0PriceUpper`,get:function(){return n1(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:`amount0`,get:function(){return this._token0Amount===null&&(this.pool.tickCurrent<this.tickLower?this._token0Amount=tZ.fromRawAmount(this.pool.token0,I$.getAmount0Delta(W$.getSqrtRatioAtTick(this.tickLower),W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this.pool.tickCurrent<this.tickUpper?this._token0Amount=tZ.fromRawAmount(this.pool.token0,I$.getAmount0Delta(this.pool.sqrtRatioX96,W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this._token0Amount=tZ.fromRawAmount(this.pool.token0,E$)),this._token0Amount}},{key:`amount1`,get:function(){return this._token1Amount===null&&(this.pool.tickCurrent<this.tickLower?this._token1Amount=tZ.fromRawAmount(this.pool.token1,E$):this.pool.tickCurrent<this.tickUpper?this._token1Amount=tZ.fromRawAmount(this.pool.token1,I$.getAmount1Delta(W$.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!1)):this._token1Amount=tZ.fromRawAmount(this.pool.token1,I$.getAmount1Delta(W$.getSqrtRatioAtTick(this.tickLower),W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount}},{key:`mintAmounts`,get:function(){return this._mintAmounts===null?this.pool.tickCurrent<this.tickLower?{amount0:I$.getAmount0Delta(W$.getSqrtRatioAtTick(this.tickLower),W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:E$}:this.pool.tickCurrent<this.tickUpper?{amount0:I$.getAmount0Delta(this.pool.sqrtRatioX96,W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:I$.getAmount1Delta(W$.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:E$,amount1:I$.getAmount1Delta(W$.getSqrtRatioAtTick(this.tickLower),W$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts}}]),e}(),c1=function(){function e(e,t,n){this._midPrice=null,!(e.length>0)&&Q(!1);var r=e[0].chainId;!e.every(function(e){return e.chainId===r})&&Q(!1);var i=t.wrapped;!e[0].involvesToken(i)&&Q(!1),!e[e.length-1].involvesToken(n.wrapped)&&Q(!1);for(var a=[i],o=g$(e.entries()),s;!(s=o()).done;){var c=s.value,l=c[0],u=c[1],d=a[l];!(d.equals(u.token0)||d.equals(u.token1))&&Q(!1);var f=d.equals(u.token0)?u.token1:u.token0;a.push(f)}this.pools=e,this.tokenPath=a,this.input=t,this.output=n??a[a.length-1]}return d$(e,[{key:`chainId`,get:function(){return this.pools[0].chainId}},{key:`midPrice`,get:function(){if(this._midPrice!==null)return this._midPrice;var e=this.pools.slice(1).reduce(function(e,t){var n=e.nextInput,r=e.price;return n.equals(t.token0)?{nextInput:t.token1,price:r.multiply(t.token0Price)}:{nextInput:t.token0,price:r.multiply(t.token1Price)}},this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new aZ(this.input,this.output,e.denominator,e.numerator)}}]),e}();function l1(e,t){return!e.inputAmount.currency.equals(t.inputAmount.currency)&&Q(!1),!e.outputAmount.currency.equals(t.outputAmount.currency)&&Q(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce(function(e,t){return e+t.route.tokenPath.length},0)-t.swaps.reduce(function(e,t){return e+t.route.tokenPath.length},0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var u1=function(){function e(e){var t=e.routes,n=e.tradeType,r=t[0].inputAmount.currency,i=t[0].outputAmount.currency;!t.every(function(e){var t=e.route;return r.wrapped.equals(t.input.wrapped)})&&Q(!1),!t.every(function(e){var t=e.route;return i.wrapped.equals(t.output.wrapped)})&&Q(!1);for(var a=t.map(function(e){return e.route.pools.length}).reduce(function(e,t){return e+t},0),o=new Set,s=g$(t),c;!(c=s()).done;)for(var l=c.value.route,u=g$(l.pools),d;!(d=u()).done;){var f=d.value;o.add(o1.getAddress(f.token0,f.token1,f.fee))}a!=o.size&&Q(!1),this.swaps=t,this.tradeType=n}e.exactIn=function(){var t=l$(v$.mark(function t(n,r){return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(`return`,e.fromRoute(n,r,WX.EXACT_INPUT));case 1:case`end`:return t.stop()}},t)}));function n(e,n){return t.apply(this,arguments)}return n}(),e.exactOut=function(){var t=l$(v$.mark(function t(n,r){return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(`return`,e.fromRoute(n,r,WX.EXACT_OUTPUT));case 1:case`end`:return t.stop()}},t)}));function n(e,n){return t.apply(this,arguments)}return n}(),e.fromRoute=function(){var t=l$(v$.mark(function t(n,r,i){var a,o,s,c,l,u,d,f,p,m,h;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(a=Array(n.tokenPath.length),i!==WX.EXACT_INPUT){t.next=19;break}!r.currency.equals(n.input)&&Q(!1),a[0]=r.wrapped,c=0;case 5:if(!(c<n.tokenPath.length-1)){t.next=15;break}return l=n.pools[c],t.next=9,l.getOutputAmount(a[c]);case 9:u=t.sent,d=u[0],a[c+1]=d;case 12:c++,t.next=5;break;case 15:o=tZ.fromFractionalAmount(n.input,r.numerator,r.denominator),s=tZ.fromFractionalAmount(n.output,a[a.length-1].numerator,a[a.length-1].denominator),t.next=34;break;case 19:!r.currency.equals(n.output)&&Q(!1),a[a.length-1]=r.wrapped,f=n.tokenPath.length-1;case 22:if(!(f>0)){t.next=32;break}return p=n.pools[f-1],t.next=26,p.getInputAmount(a[f]);case 26:m=t.sent,h=m[0],a[f-1]=h;case 29:f--,t.next=22;break;case 32:o=tZ.fromFractionalAmount(n.input,a[0].numerator,a[0].denominator),s=tZ.fromFractionalAmount(n.output,r.numerator,r.denominator);case 34:return t.abrupt(`return`,new e({routes:[{inputAmount:o,outputAmount:s,route:n}],tradeType:i}));case 35:case`end`:return t.stop()}},t)}));function n(e,n,r){return t.apply(this,arguments)}return n}(),e.fromRoutes=function(){var t=l$(v$.mark(function t(n,r){var i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:i=[],a=g$(n);case 2:if((o=a()).done){t.next=43;break}if(s=o.value,c=s.route,l=s.amount,u=Array(c.tokenPath.length),d=void 0,f=void 0,r!==WX.EXACT_INPUT){t.next=25;break}!l.currency.equals(c.input)&&Q(!1),d=tZ.fromFractionalAmount(c.input,l.numerator,l.denominator),u[0]=tZ.fromFractionalAmount(c.input.wrapped,l.numerator,l.denominator),p=0;case 12:if(!(p<c.tokenPath.length-1)){t.next=22;break}return m=c.pools[p],t.next=16,m.getOutputAmount(u[p]);case 16:h=t.sent,g=h[0],u[p+1]=g;case 19:p++,t.next=12;break;case 22:f=tZ.fromFractionalAmount(c.output,u[u.length-1].numerator,u[u.length-1].denominator),t.next=40;break;case 25:!l.currency.equals(c.output)&&Q(!1),f=tZ.fromFractionalAmount(c.output,l.numerator,l.denominator),u[u.length-1]=tZ.fromFractionalAmount(c.output.wrapped,l.numerator,l.denominator),_=c.tokenPath.length-1;case 29:if(!(_>0)){t.next=39;break}return v=c.pools[_-1],t.next=33,v.getInputAmount(u[_]);case 33:y=t.sent,b=y[0],u[_-1]=b;case 36:_--,t.next=29;break;case 39:d=tZ.fromFractionalAmount(c.input,u[0].numerator,u[0].denominator);case 40:i.push({route:c,inputAmount:d,outputAmount:f});case 41:t.next=2;break;case 43:return t.abrupt(`return`,new e({routes:i,tradeType:r}));case 44:case`end`:return t.stop()}},t)}));function n(e,n){return t.apply(this,arguments)}return n}(),e.createUncheckedTrade=function(t){return new e(f$({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){if(t===void 0&&(t=this.outputAmount),e.lessThan(E$)&&Q(!1),this.tradeType===WX.EXACT_OUTPUT)return t;var n=new $X(D$).add(e).invert().multiply(t.quotient).quotient;return tZ.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(t===void 0&&(t=this.inputAmount),e.lessThan(E$)&&Q(!1),this.tradeType===WX.EXACT_INPUT)return t;var n=new $X(D$).add(e).multiply(t.quotient).quotient;return tZ.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new aZ(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=l$(v$.mark(function t(n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:l=a===void 0?{}:a,u=l.maxNumResults,d=u===void 0?3:u,f=l.maxHops,p=f===void 0?3:f,o===void 0&&(o=[]),s===void 0&&(s=r),c===void 0&&(c=[]),!(n.length>0)&&Q(!1),!(p>0)&&Q(!1),!(r===s||o.length>0)&&Q(!1),m=s.wrapped,h=i.wrapped,g=0;case 10:if(!(g<n.length)){t.next=46;break}if(_=n[g],!(!_.token0.equals(m.currency)&&!_.token1.equals(m.currency))){t.next=14;break}return t.abrupt(`continue`,43);case 14:return v=void 0,t.prev=15,t.next=19,_.getOutputAmount(m);case 19:y=t.sent,v=y[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientInputAmountError){t.next=27;break}return t.abrupt(`continue`,43);case 27:throw t.t0;case 28:if(!(v.currency.isToken&&v.currency.equals(h))){t.next=39;break}return t.t1=hZ,t.t2=c,t.next=33,e.fromRoute(new c1([].concat(o,[_]),r.currency,i),r,WX.EXACT_INPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=l1,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return b=n.slice(0,g).concat(n.slice(g+1,n.length)),t.next=43,e.bestTradeExactIn(b,r,i,{maxNumResults:d,maxHops:p-1},[].concat(o,[_]),v,c);case 43:g++,t.next=10;break;case 46:return t.abrupt(`return`,c);case 47:case`end`:return t.stop()}},t,null,[[15,23]])}));function n(e,n,r,i,a,o,s){return t.apply(this,arguments)}return n}(),e.bestTradeExactOut=function(){var t=l$(v$.mark(function t(n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b;return v$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:l=a===void 0?{}:a,u=l.maxNumResults,d=u===void 0?3:u,f=l.maxHops,p=f===void 0?3:f,o===void 0&&(o=[]),s===void 0&&(s=i),c===void 0&&(c=[]),!(n.length>0)&&Q(!1),!(p>0)&&Q(!1),!(i===s||o.length>0)&&Q(!1),m=s.wrapped,h=r.wrapped,g=0;case 10:if(!(g<n.length)){t.next=46;break}if(_=n[g],!(!_.token0.equals(m.currency)&&!_.token1.equals(m.currency))){t.next=14;break}return t.abrupt(`continue`,43);case 14:return v=void 0,t.prev=15,t.next=19,_.getInputAmount(m);case 19:y=t.sent,v=y[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientReservesError){t.next=27;break}return t.abrupt(`continue`,43);case 27:throw t.t0;case 28:if(!v.currency.equals(h)){t.next=39;break}return t.t1=hZ,t.t2=c,t.next=33,e.fromRoute(new c1([_].concat(o),r,i.currency),i,WX.EXACT_OUTPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=l1,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return b=n.slice(0,g).concat(n.slice(g+1,n.length)),t.next=43,e.bestTradeExactOut(b,r,i,{maxNumResults:d,maxHops:p-1},[_].concat(o),v,c);case 43:g++,t.next=10;break;case 46:return t.abrupt(`return`,c);case 47:case`end`:return t.stop()}},t,null,[[15,23]])}));function n(e,n,r,i,a,o,s){return t.apply(this,arguments)}return n}(),d$(e,[{key:`route`,get:function(){return this.swaps.length!=1&&Q(!1),this.swaps[0].route}},{key:`inputAmount`,get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map(function(e){return e.inputAmount}).reduce(function(e,t){return e.add(t)},tZ.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:`outputAmount`,get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map(function(e){return e.outputAmount}).reduce(function(e,t){return e.add(t)},tZ.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:`executionPrice`,get:function(){return this._executionPrice??=new aZ(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:`priceImpact`,get:function(){if(this._priceImpact)return this._priceImpact;for(var e=tZ.fromRawAmount(this.outputAmount.currency,0),t=g$(this.swaps),n;!(n=t()).done;){var r=n.value,i=r.route,a=r.inputAmount,o=i.midPrice;e=e.add(o.quote(a))}var s=e.subtract(this.outputAmount).divide(e);return this._priceImpact=new iZ(s.numerator,s.denominator),this._priceImpact}}]),e}(),d1=function(){function e(){}return e.encodeMulticall=function(t){return Array.isArray(t)||(t=[t]),t.length===1?t[0]:e.INTERFACE.encodeFunctionData(`multicall`,[t])},e}();d1.INTERFACE=new KQ(e$);function f1(e){return`nonce`in e}var p1=function(){function e(){}return e.encodePermit=function(t,n){return f1(n)?e.INTERFACE.encodeFunctionData(`selfPermitAllowed`,[t.address,Y$(n.nonce),Y$(n.expiry),n.v,n.r,n.s]):e.INTERFACE.encodeFunctionData(`selfPermit`,[t.address,Y$(n.amount),Y$(n.deadline),n.v,n.r,n.s])},e}();p1.INTERFACE=new KQ(n$);var m1=function(){function e(){}return e.encodeFeeBips=function(e){return Y$(e.multiply(1e4).quotient)},e.encodeUnwrapWETH9=function(t,n,r){if(n=cZ(n),r){var i=this.encodeFeeBips(r.fee),a=cZ(r.recipient);return e.INTERFACE.encodeFunctionData(`unwrapWETH9WithFee`,[Y$(t),n,i,a])}else return e.INTERFACE.encodeFunctionData(`unwrapWETH9`,[Y$(t),n])},e.encodeSweepToken=function(t,n,r,i){if(r=cZ(r),i){var a=this.encodeFeeBips(i.fee),o=cZ(i.recipient);return e.INTERFACE.encodeFunctionData(`sweepTokenWithFee`,[t.address,Y$(n),r,a,o])}else return e.INTERFACE.encodeFunctionData(`sweepToken`,[t.address,Y$(n),r])},e.encodeRefundETH=function(){return e.INTERFACE.encodeFunctionData(`refundETH`)},e}();m1.INTERFACE=new KQ(r$);var h1=Y$(Z.default.subtract(Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(128)),Z.default.BigInt(1)));function g1(e){return Object.keys(e).some(function(e){return e===`recipient`})}var _1=function(){function e(){}return e.encodeCreate=function(t){return e.INTERFACE.encodeFunctionData(`createAndInitializePoolIfNecessary`,[t.token0.address,t.token1.address,t.fee,Y$(t.sqrtRatioX96)])},e.createCallParameters=function(e){return{calldata:this.encodeCreate(e),value:Y$(0)}},e.addCallParameters=function(t,n){!Z.default.greaterThan(t.liquidity,E$)&&Q(!1);var r=[],i=t.mintAmounts,a=i.amount0,o=i.amount1,s=t.mintAmountsWithSlippage(n.slippageTolerance),c=Y$(s.amount0),l=Y$(s.amount1),u=Y$(n.deadline);if(g1(n)&&n.createPool&&r.push(this.encodeCreate(t.pool)),n.token0Permit&&r.push(p1.encodePermit(t.pool.token0,n.token0Permit)),n.token1Permit&&r.push(p1.encodePermit(t.pool.token1,n.token1Permit)),g1(n)){var d=cZ(n.recipient);r.push(e.INTERFACE.encodeFunctionData(`mint`,[{token0:t.pool.token0.address,token1:t.pool.token1.address,fee:t.pool.fee,tickLower:t.tickLower,tickUpper:t.tickUpper,amount0Desired:Y$(a),amount1Desired:Y$(o),amount0Min:c,amount1Min:l,recipient:d,deadline:u}]))}else r.push(e.INTERFACE.encodeFunctionData(`increaseLiquidity`,[{tokenId:Y$(n.tokenId),amount0Desired:Y$(a),amount1Desired:Y$(o),amount0Min:c,amount1Min:l,deadline:u}]));var f=Y$(0);if(n.useNative){var p=n.useNative.wrapped;!(t.pool.token0.equals(p)||t.pool.token1.equals(p))&&Q(!1);var m=t.pool.token0.equals(p)?a:o;Z.default.greaterThan(m,E$)&&r.push(m1.encodeRefundETH()),f=Y$(m)}return{calldata:d1.encodeMulticall(r),value:f}},e.encodeCollect=function(t){var n=[],r=Y$(t.tokenId),i=t.expectedCurrencyOwed0.currency.isNative||t.expectedCurrencyOwed1.currency.isNative,a=cZ(t.recipient);if(n.push(e.INTERFACE.encodeFunctionData(`collect`,[{tokenId:r,recipient:i?x$:a,amount0Max:h1,amount1Max:h1}])),i){var o=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed0.quotient:t.expectedCurrencyOwed1.quotient,s=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.currency:t.expectedCurrencyOwed0.currency,c=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.quotient:t.expectedCurrencyOwed0.quotient;n.push(m1.encodeUnwrapWETH9(o,a)),n.push(m1.encodeSweepToken(s,c,a))}return n},e.collectCallParameters=function(t){var n=e.encodeCollect(t);return{calldata:d1.encodeMulticall(n),value:Y$(0)}},e.removeCallParameters=function(t,n){var r=[],i=Y$(n.deadline),a=Y$(n.tokenId),o=new s1({pool:t.pool,liquidity:n.liquidityPercentage.multiply(t.liquidity).quotient,tickLower:t.tickLower,tickUpper:t.tickUpper});!Z.default.greaterThan(o.liquidity,E$)&&Q(!1);var s=o.burnAmountsWithSlippage(n.slippageTolerance),c=s.amount0,l=s.amount1;n.permit&&r.push(e.INTERFACE.encodeFunctionData(`permit`,[cZ(n.permit.spender),a,Y$(n.permit.deadline),n.permit.v,n.permit.r,n.permit.s])),r.push(e.INTERFACE.encodeFunctionData(`decreaseLiquidity`,[{tokenId:a,liquidity:Y$(o.liquidity),amount0Min:Y$(c),amount1Min:Y$(l),deadline:i}]));var u=n.collectOptions,d=u.expectedCurrencyOwed0,f=u.expectedCurrencyOwed1,p=p$(u,[`expectedCurrencyOwed0`,`expectedCurrencyOwed1`]);return r.push.apply(r,e.encodeCollect(f$({tokenId:Y$(n.tokenId),expectedCurrencyOwed0:d.add(tZ.fromRawAmount(d.currency,c)),expectedCurrencyOwed1:f.add(tZ.fromRawAmount(f.currency,l))},p))),n.liquidityPercentage.equalTo(D$)?n.burnToken&&r.push(e.INTERFACE.encodeFunctionData(`burn`,[a])):n.burnToken===!0&&Q(!1),{calldata:d1.encodeMulticall(r),value:Y$(0)}},e.safeTransferFromParameters=function(t){var n=cZ(t.recipient),r=cZ(t.sender);return{calldata:t.data?e.INTERFACE.encodeFunctionData(`safeTransferFrom(address,address,uint256,bytes)`,[r,n,Y$(t.tokenId),t.data]):e.INTERFACE.encodeFunctionData(`safeTransferFrom(address,address,uint256)`,[r,n,Y$(t.tokenId)]),value:Y$(0)}},e}();_1.INTERFACE=new KQ(t$);var v1=function(){function e(){}return e.quoteCallParameters=function(e,t,n,r){r===void 0&&(r={});var i=e.pools.length===1,a=Y$(t.quotient),o,s=r.useQuoterV2?this.V2INTERFACE:this.V1INTERFACE;if(i){var c={tokenIn:e.tokenPath[0].address,tokenOut:e.tokenPath[1].address,fee:e.pools[0].fee,sqrtPriceLimitX96:Y$(r?.sqrtPriceLimitX96??0)},l=f$({},c,n==WX.EXACT_INPUT?{amountIn:a}:{amount:a}),u=[c.tokenIn,c.tokenOut,c.fee,a,c.sqrtPriceLimitX96],d=n===WX.EXACT_INPUT?`quoteExactInputSingle`:`quoteExactOutputSingle`;o=s.encodeFunctionData(d,r.useQuoterV2?[l]:u)}else{r?.sqrtPriceLimitX96!==void 0&&Q(!1);var f=X$(e,n===WX.EXACT_OUTPUT),p=n===WX.EXACT_INPUT?`quoteExactInput`:`quoteExactOutput`;o=s.encodeFunctionData(p,[f,a])}return{calldata:o,value:Y$(0)}},e}();v1.V1INTERFACE=new KQ(i$),v1.V2INTERFACE=new KQ(a$);var y1=function(){function e(){}return e.encodeClaim=function(t,n){var r=[];r.push(e.INTERFACE.encodeFunctionData(`unstakeToken`,[this._encodeIncentiveKey(t),Y$(n.tokenId)]));var i=cZ(n.recipient),a=n.amount??0;return r.push(e.INTERFACE.encodeFunctionData(`claimReward`,[t.rewardToken.address,i,Y$(a)])),r},e.collectRewards=function(t,n){t=Array.isArray(t)?t:[t];for(var r=[],i=0;i<t.length;i++){var a=t[i];r=r.concat(this.encodeClaim(a,n)),r.push(e.INTERFACE.encodeFunctionData(`stakeToken`,[this._encodeIncentiveKey(a),Y$(n.tokenId)]))}return{calldata:d1.encodeMulticall(r),value:Y$(0)}},e.withdrawToken=function(t,n){var r=[];t=Array.isArray(t)?t:[t];for(var i={tokenId:n.tokenId,recipient:n.recipient,amount:n.amount},a=0;a<t.length;a++){var o=t[a];r=r.concat(this.encodeClaim(o,i))}var s=cZ(n.owner);return r.push(e.INTERFACE.encodeFunctionData(`withdrawToken`,[Y$(n.tokenId),s,n.data?n.data:Y$(0)])),{calldata:d1.encodeMulticall(r),value:Y$(0)}},e.encodeDeposit=function(t){t=Array.isArray(t)?t:[t];var n;if(t.length>1){for(var r=[],i=0;i<t.length;i++){var a=t[i];r.push(this._encodeIncentiveKey(a))}n=LQ.encode([e.INCENTIVE_KEY_ABI+`[]`],[r])}else n=LQ.encode([e.INCENTIVE_KEY_ABI],[this._encodeIncentiveKey(t[0])]);return n},e._encodeIncentiveKey=function(e){var t=e.pool,n=t.token0,r=t.token1,i=t.fee,a=cZ(e.refundee);return{rewardToken:e.rewardToken.address,pool:o1.getAddress(n,r,i),startTime:Y$(e.startTime),endTime:Y$(e.endTime),refundee:a}},e}();y1.INTERFACE=new KQ(o$),y1.INCENTIVE_KEY_ABI=`tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)`;var b1=function(){function e(){}return e.swapCallParameters=function(t,n){Array.isArray(t)||(t=[t]);var r=t[0],i=r.inputAmount.currency.wrapped,a=r.outputAmount.currency.wrapped;!t.every(function(e){return e.inputAmount.currency.wrapped.equals(i)})&&Q(!1),!t.every(function(e){return e.outputAmount.currency.wrapped.equals(a)})&&Q(!1);var o=[],s=tZ.fromRawAmount(t[0].inputAmount.currency,0),c=tZ.fromRawAmount(t[0].outputAmount.currency,0),l=t.reduce(function(e,t){return e.add(t.minimumAmountOut(n.slippageTolerance))},c),u=r.inputAmount.currency.isNative&&r.tradeType===WX.EXACT_OUTPUT,d=r.inputAmount.currency.isNative,f=r.outputAmount.currency.isNative,p=f||!!n.fee,m=d?t.reduce(function(e,t){return e.add(t.maximumAmountIn(n.slippageTolerance))},s):s;n.inputTokenPermit&&(!r.inputAmount.currency.isToken&&Q(!1),o.push(p1.encodePermit(r.inputAmount.currency,n.inputTokenPermit)));for(var h=cZ(n.recipient),g=Y$(n.deadline),_=g$(t),v;!(v=_()).done;)for(var y=v.value,b=g$(y.swaps),x;!(x=b()).done;){var S=x.value,C=S.route,w=S.inputAmount,T=S.outputAmount,E=Y$(y.maximumAmountIn(n.slippageTolerance,w).quotient),D=Y$(y.minimumAmountOut(n.slippageTolerance,T).quotient);if(C.pools.length===1)if(y.tradeType===WX.EXACT_INPUT){var O={tokenIn:C.tokenPath[0].address,tokenOut:C.tokenPath[1].address,fee:C.pools[0].fee,recipient:p?x$:h,deadline:g,amountIn:E,amountOutMinimum:D,sqrtPriceLimitX96:Y$(n.sqrtPriceLimitX96??0)};o.push(e.INTERFACE.encodeFunctionData(`exactInputSingle`,[O]))}else{var k={tokenIn:C.tokenPath[0].address,tokenOut:C.tokenPath[1].address,fee:C.pools[0].fee,recipient:p?x$:h,deadline:g,amountOut:D,amountInMaximum:E,sqrtPriceLimitX96:Y$(n.sqrtPriceLimitX96??0)};o.push(e.INTERFACE.encodeFunctionData(`exactOutputSingle`,[k]))}else{n.sqrtPriceLimitX96!==void 0&&Q(!1);var A=X$(C,y.tradeType===WX.EXACT_OUTPUT);if(y.tradeType===WX.EXACT_INPUT){var j={path:A,recipient:p?x$:h,deadline:g,amountIn:E,amountOutMinimum:D};o.push(e.INTERFACE.encodeFunctionData(`exactInput`,[j]))}else{var M={path:A,recipient:p?x$:h,deadline:g,amountOut:D,amountInMaximum:E};o.push(e.INTERFACE.encodeFunctionData(`exactOutput`,[M]))}}}return p&&(n.fee?f?o.push(m1.encodeUnwrapWETH9(l.quotient,h,n.fee)):o.push(m1.encodeSweepToken(r.outputAmount.currency.wrapped,l.quotient,h,n.fee)):o.push(m1.encodeUnwrapWETH9(l.quotient,h))),u&&o.push(m1.encodeRefundETH()),{calldata:d1.encodeMulticall(o),value:Y$(m.quotient)}},e}();b1.INTERFACE=new KQ(s$);var x1=[{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`approveMax`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`approveMaxMinusOne`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`approveZeroThenMax`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`approveZeroThenMaxMinusOne`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes`,name:`data`,type:`bytes`}],name:`callPositionManager`,outputs:[{internalType:`bytes`,name:`result`,type:`bytes`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`}],internalType:`struct IV3SwapRouter.ExactInputParams`,name:`params`,type:`tuple`}],name:`exactInput`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IV3SwapRouter.ExactInputSingleParams`,name:`params`,type:`tuple`}],name:`exactInputSingle`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`}],internalType:`struct IV3SwapRouter.ExactOutputParams`,name:`params`,type:`tuple`}],name:`exactOutput`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IV3SwapRouter.ExactOutputSingleParams`,name:`params`,type:`tuple`}],name:`exactOutputSingle`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`getApprovalType`,outputs:[{internalType:`enum IApproveAndCall.ApprovalType`,name:``,type:`uint8`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`token0`,type:`address`},{internalType:`address`,name:`token1`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`},{internalType:`uint256`,name:`amount0Min`,type:`uint256`},{internalType:`uint256`,name:`amount1Min`,type:`uint256`}],internalType:`struct IApproveAndCall.IncreaseLiquidityParams`,name:`params`,type:`tuple`}],name:`increaseLiquidity`,outputs:[{internalType:`bytes`,name:`result`,type:`bytes`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`token0`,type:`address`},{internalType:`address`,name:`token1`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint256`,name:`amount0Min`,type:`uint256`},{internalType:`uint256`,name:`amount1Min`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],internalType:`struct IApproveAndCall.MintParams`,name:`params`,type:`tuple`}],name:`mint`,outputs:[{internalType:`bytes`,name:`result`,type:`bytes`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`previousBlockhash`,type:`bytes32`},{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermit`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowed`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`nonce`,type:`uint256`},{internalType:`uint256`,name:`expiry`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitAllowedIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint8`,name:`v`,type:`uint8`},{internalType:`bytes32`,name:`r`,type:`bytes32`},{internalType:`bytes32`,name:`s`,type:`bytes32`}],name:`selfPermitIfNecessary`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMin`,type:`uint256`},{internalType:`address[]`,name:`path`,type:`address[]`},{internalType:`address`,name:`to`,type:`address`}],name:`swapExactTokensForTokens`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMax`,type:`uint256`},{internalType:`address[]`,name:`path`,type:`address[]`},{internalType:`address`,name:`to`,type:`address`}],name:`swapTokensForExactTokens`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`int256`,name:`amount0Delta`,type:`int256`},{internalType:`int256`,name:`amount1Delta`,type:`int256`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`uniswapV3SwapCallback`,outputs:[],stateMutability:`nonpayable`,type:`function`}],S1=[{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`value`,type:`uint256`}],name:`pull`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[],name:`refundETH`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`sweepToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`}],name:`sweepToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`sweepTokenWithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`sweepTokenWithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`unwrapWETH9`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`}],name:`unwrapWETH9`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`unwrapWETH9WithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`},{internalType:`uint256`,name:`feeBips`,type:`uint256`},{internalType:`address`,name:`feeRecipient`,type:`address`}],name:`unwrapWETH9WithFee`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint256`,name:`value`,type:`uint256`}],name:`wrapETH`,outputs:[],stateMutability:`payable`,type:`function`}],C1=class extends Error{message;code;constructor(e,t){super(e),this.message=e,this.code=t}},w1=class extends C1{constructor(e){super(e||`Invalid configuration`,`INVALID_CONFIGURATION`)}},T1=class extends C1{constructor(e,t){let n=`Chain with ID ${e} is not a supported chain in environment ${t}`;super(n,`CHAIN_NOT_SUPPORTED`)}},E1=class extends C1{constructor(e){super(e,`INVALID_SLIPPAGE`)}},D1=class extends C1{constructor(e){super(e,`INVALID_MAX_HOPS`)}},O1=class extends C1{constructor(e){super(e,`INVALID_ADDRESS`)}},k1=class extends C1{constructor(){super(`token in and token out addresses must be different`,`DUPLICATE_ADDRESSES`)}},A1=class extends C1{constructor(){super(`no routes available`,`NO_ROUTES_AVAILABLE`)}},j1=class extends C1{constructor(e){super(e,`PROVIDER_CALL_ERROR`)}},M1=class extends C1{constructor(e){super(e,`APPROVE_ERROR`)}};let N1=.1,P1=1e4,F1={"0xcdca1753":[`uint256`,`uint160[]`,`uint32[]`,`uint256`],"0xc6a5026a":[`uint256`,`uint160`,`uint32`,`uint256`],"0x2f80bb1d":[`uint256`,`uint160[]`,`uint32[]`,`uint256`],"0xbd21704a":[`uint256`,`uint160`,`uint32`,`uint256`]};function I1(e,t){return e===t||e.token0.equals(t.token0)&&e.token1.equals(t.token1)&&e.fee===t.fee}let L1=aN(`decimals()`).substring(0,10);async function R1(e,t,n){if(e===`native`)return n.decimals;try{let n=await t.call({to:e,data:L1});return parseInt(n,16)}catch(e){throw new j1(`failed to get ERC20 decimals: ${e instanceof Error?e.message:`Unknown Error`}`)}}function z1(e){if(e===`0x0000000000000000000000000000000000000000`)return!1;try{return Yj(e),!0}catch{return!1}}let B1=e=>e===`native`||z1(e),V1=e=>new mX(e.chainId,e.address,e.decimals,e.symbol,e.name),H1=e=>({chainId:e.chainId,address:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name,type:`erc20`}),U1=e=>{let t=V1(e.token);return iX.fromRawAmount(t,e.value.toString())},W1=(e,t)=>({value:e,token:t}),G1=e=>e.token.type===`erc20`,K1=e=>e.token.type===`native`,q1=e=>e.type===`native`,J1=(e,t)=>{if(e.token.address.toLowerCase()!==t.token.address.toLowerCase())throw Error(`Token mismatch: token addresses must be the same`);return{value:e.value+t.value,token:e.token}},Y1=(e,t)=>({value:e.value+t.value,token:e.token}),X1=(e,t)=>{if(G1(e)&&G1(t))return J1(e,t);if(K1(e)&&K1(t))return Y1(e,t);throw Error(`Token mismatch: token types must be the same`)},Z1=(e,t)=>{if(e.token.address.toLowerCase()!==t.token.address.toLowerCase())throw Error(`Token mismatch: token addresses must be the same`);return{value:e.value-t.value,token:e.token}},Q1=(e,t)=>({value:e.value-t.value,token:e.token}),$1=(e,t)=>{if(G1(e)&&G1(t))return Z1(e,t);if(K1(e)&&K1(t))return Q1(e,t);throw Error(`Token mismatch: token types must be the same`)},e0=e=>e.type===`native`?{address:`native`,chainId:e.chainId,decimals:e.decimals,symbol:e.symbol,name:e.name}:e,t0=e=>({token:e0(e.token),value:e.value}),n0=()=>Math.floor(Date.now()/1e3)+900,r0=13473,i0=13371,a0={chainId:r0,decimals:18,symbol:`tIMX`,name:`Immutable Testnet Token`,type:`native`},o0={chainId:r0,address:`0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439`,decimals:18,symbol:`WIMX`,name:`Wrapped Immutable Testnet Token`,type:`erc20`},s0=[o0],c0={chainId:i0,decimals:18,symbol:`IMX`,name:`Immutable Token`,type:`native`},l0={chainId:i0,address:`0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d`,decimals:18,symbol:`WIMX`,name:`Wrapped Immutable Token`,type:`erc20`},u0=[l0,{chainId:i0,address:`0x52a6c53869ce09a731cd772f245b97a4401d3348`,decimals:18,symbol:`ETH`,name:`Ethereum`,type:`erc20`},{chainId:i0,address:`0x6de8aCC0D406837030CE4dd28e7c08C5a96a30d2`,decimals:6,symbol:`USDC`,name:`USDC`,type:`erc20`},{chainId:i0,address:`0x68bcc7F1190AF20e7b572BCfb431c3Ac10A936Ab`,decimals:6,symbol:`USDT`,name:`USDT`,type:`erc20`}],d0=async e=>{let[t,n]=await Promise.all([e.getBlock(`latest`),e.send(`eth_maxPriorityFeePerGas`,[])]);if(!t?.baseFeePerGas)throw Error(`Base fee per gas not found in block`);let r=BigInt(n);return{maxFeePerGas:t.baseFeePerGas*BigInt(2)+r,maxPriorityFeePerGas:r,lastBaseFeePerGas:t.baseFeePerGas}},f0=async(e,t)=>{let n=await d0(e).catch(()=>null);return n?W1(n.maxFeePerGas,t):null},p0=(e,t,n)=>{let r=W1(n*t.value,t.token);return e?W1(r.value+t.value*BigInt(50876),t.token):r},m0=[{constant:!0,inputs:[],name:`name`,outputs:[{name:``,type:`string`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`_spender`,type:`address`},{name:`_value`,type:`uint256`}],name:`approve`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[],name:`totalSupply`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`_from`,type:`address`},{name:`_to`,type:`address`},{name:`_value`,type:`uint256`}],name:`transferFrom`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[],name:`decimals`,outputs:[{name:``,type:`uint8`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[{name:`_owner`,type:`address`}],name:`balanceOf`,outputs:[{name:`balance`,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[],name:`symbol`,outputs:[{name:``,type:`string`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`_to`,type:`address`},{name:`_value`,type:`uint256`}],name:`transfer`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[{name:`_owner`,type:`address`},{name:`_spender`,type:`address`}],name:`allowance`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{payable:!0,stateMutability:`payable`,type:`fallback`},{anonymous:!1,inputs:[{indexed:!0,name:`owner`,type:`address`},{indexed:!0,name:`spender`,type:`address`},{indexed:!1,name:`value`,type:`uint256`}],name:`Approval`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,name:`from`,type:`address`},{indexed:!0,name:`to`,type:`address`},{indexed:!1,name:`value`,type:`uint256`}],name:`Transfer`,type:`event`}];var h0=class{static abi=m0;static createInterface(){return new eI(m0)}static connect(e,t){return new JI(e,m0,t)}};let g0=async(e,t,n,r)=>{let i=h0.connect(n.token.address,e),a;try{a=await i.allowance(t,r)}catch(e){throw new M1(`failed to get allowance: ${e instanceof Error?e.message:`Unknown Error`}`)}return!(n.value-a<=0)},_0=(e,t,n)=>{if(e===n)throw new M1(`owner and spender addresses are the same`);return{data:h0.createInterface().encodeFunctionData(`approve`,[n,t.value]),to:t.token.address,value:0,from:e}},v0=(e,t,n,r,i)=>{let a=e===WY.EXACT_INPUT?t:n;return G1(a)?{spender:i.length===0?r.routerAddress:r.secondaryFeeAddress,amount:a}:null},y0=async(e,t,n,r)=>await g0(e,t,n,r)?_0(t,n,r):null;async function b0(e,t,n,r){return await h0.connect(r,e).approve.estimateGas(n,Oj,{from:t})}let x0=async(e,t,n,r)=>{let i=await y0(e,t,n.amount,n.spender);if(!i)return null;let a=await b0(e,t,n.spender,n.amount.token.address),o=r?p0(!1,r,a):null;return{transaction:i,gasFeeEstimate:o?t0(o):null}},S0=e=>e.type===`native`;var C0=class{nativeToken;wrappedToken;constructor(e,t){this.nativeToken=e,this.wrappedToken=t}wrapAmount(e){return W1(e.value,this.wrappedToken)}unwrapAmount(e){if(e.token.address.toLowerCase()!==this.wrappedToken.address.toLowerCase())throw Error(`cannot unwrap non-wrapped token ${e.token.address}`);return W1(e.value,this.nativeToken)}maybeWrapToken(e){return S0(e)?this.wrappedToken:e}maybeWrapAmount(e){return W1(e.value,this.maybeWrapToken(e.token))}isWrappedNative(e){return e.type===`erc20`&&e.address.toLowerCase()===this.wrappedToken.address.toLowerCase()}isWrapOrUnwrap(e,t){return e===this.nativeToken&&this.isWrappedNative(t)||this.isWrappedNative(e)&&t===this.nativeToken}};let w0=e=>{if(e.toString().split(`.`).length===1)return new sX(e,100);let t=(e/100).toString().split(`.`);return new sX(t[0]+t[1],10**t[1].length)};function T0(e){return e.tradeType===WY.EXACT_INPUT?e.amountOut:e.amountIn}function E0(e,t,n){let r=w0(n).add(1),i=(e===WY.EXACT_INPUT?r.invert():r).multiply(t.toString()).quotient;return BigInt(i.toString())}let D0=(e,t,n,r)=>{let i=T0(t),a=S0(r)?e.unwrapAmount(i):i;return{quotedAmount:a,quotedAmountWithMaxSlippage:W1(E0(t.tradeType,a.value,n),r)}};function O0(e,t,n,r){return n===WY.EXACT_OUTPUT?r.maybeWrapAmount(e):(t.addAmount(e),r.maybeWrapAmount(t.amountLessFees()))}var k0=class{secondaryFees;amount;constructor(e,t){this.secondaryFees=e,this.amount=W1(BigInt(0),t)}get token(){return this.amount.token}addAmount(e){this.amount=X1(this.amount,e)}amountWithFeesApplied(){return X1(this.amount,this.total())}amountLessFees(){return $1(this.amount,this.total())}withAmounts(){return this.secondaryFees.map(e=>{let t=this.amount.value*BigInt(e.basisPoints)/BigInt(P1);return{...e,amount:W1(t,this.amount.token)}})}total(){let e=W1(BigInt(0),this.amount.token);for(let t of this.secondaryFees){let n=this.amount.value*BigInt(t.basisPoints)/BigInt(P1);e=X1(e,W1(n,this.amount.token))}return e}};let A0=[{inputs:[{internalType:`address`,name:`_admin`,type:`address`},{internalType:`address`,name:`_uniRouter`,type:`address`},{internalType:`address`,name:`_wimx`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[],name:`ContractPaused`,type:`error`},{inputs:[],name:`DeadlinePassed`,type:`error`},{inputs:[],name:`FailedToRefundNativeTokens`,type:`error`},{inputs:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`FailedToSendFees`,type:`error`},{inputs:[{internalType:`uint256`,name:`required`,type:`uint256`},{internalType:`uint256`,name:`actual`,type:`uint256`}],name:`FailedToUnwrapNativeTokens`,type:`error`},{inputs:[],name:`FailedToWithdrawNativeTokens`,type:`error`},{inputs:[],name:`FeeTooHigh`,type:`error`},{inputs:[],name:`IncorrectRecipient`,type:`error`},{inputs:[],name:`InputTokenNotWrapped`,type:`error`},{inputs:[],name:`NativeTokenAmountMismatch`,type:`error`},{inputs:[],name:`Unauthorized`,type:`error`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`feeToken`,type:`address`},{indexed:!0,internalType:`address`,name:`feePayer`,type:`address`},{indexed:!0,internalType:`address`,name:`feeRecipient`,type:`address`},{indexed:!1,internalType:`uint256`,name:`feeAmount`,type:`uint256`}],name:`FeeTaken`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`feePayer`,type:`address`},{indexed:!0,internalType:`address`,name:`feeRecipient`,type:`address`},{indexed:!1,internalType:`uint256`,name:`feeAmount`,type:`uint256`}],name:`FeeTaken`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Paused`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`role`,type:`bytes32`},{indexed:!0,internalType:`bytes32`,name:`previousAdminRole`,type:`bytes32`},{indexed:!0,internalType:`bytes32`,name:`newAdminRole`,type:`bytes32`}],name:`RoleAdminChanged`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`role`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`account`,type:`address`},{indexed:!0,internalType:`address`,name:`sender`,type:`address`}],name:`RoleGranted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`role`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`account`,type:`address`},{indexed:!0,internalType:`address`,name:`sender`,type:`address`}],name:`RoleRevoked`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Unpaused`,type:`event`},{inputs:[],name:`DEFAULT_ADMIN_ROLE`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBasisPoints`,type:`uint256`}],internalType:`struct IImmutableSwapProxy.SecondaryFeeParams[]`,name:`secondaryFees`,type:`tuple[]`},{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IV3SwapRouter.ExactInputSingleParams`,name:`swapParams`,type:`tuple`}],name:`exactInputSingleWithSecondaryFee`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBasisPoints`,type:`uint256`}],internalType:`struct IImmutableSwapProxy.SecondaryFeeParams[]`,name:`secondaryFees`,type:`tuple[]`},{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`amountOutMinimum`,type:`uint256`}],internalType:`struct IV3SwapRouter.ExactInputParams`,name:`swapParams`,type:`tuple`}],name:`exactInputWithSecondaryFee`,outputs:[{internalType:`uint256`,name:`amountOut`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBasisPoints`,type:`uint256`}],internalType:`struct IImmutableSwapProxy.SecondaryFeeParams[]`,name:`secondaryFees`,type:`tuple[]`},{components:[{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint24`,name:`fee`,type:`uint24`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`}],internalType:`struct IV3SwapRouter.ExactOutputSingleParams`,name:`swapParams`,type:`tuple`}],name:`exactOutputSingleWithSecondaryFee`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address payable`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`feeBasisPoints`,type:`uint256`}],internalType:`struct IImmutableSwapProxy.SecondaryFeeParams[]`,name:`secondaryFees`,type:`tuple[]`},{components:[{internalType:`bytes`,name:`path`,type:`bytes`},{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amountOut`,type:`uint256`},{internalType:`uint256`,name:`amountInMaximum`,type:`uint256`}],internalType:`struct IV3SwapRouter.ExactOutputParams`,name:`swapParams`,type:`tuple`}],name:`exactOutputWithSecondaryFee`,outputs:[{internalType:`uint256`,name:`amountIn`,type:`uint256`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`}],name:`getRoleAdmin`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],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:`deadline`,type:`uint256`},{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:``,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`pause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`paused`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`renounceRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`role`,type:`bytes32`},{internalType:`address`,name:`account`,type:`address`}],name:`revokeRole`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`unpause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`amountMinimum`,type:`uint256`}],name:`unwrapNativeToken`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`address`,name:`erc20`,type:`address`}],name:`withdrawFunds`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`}],name:`withdrawFunds`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}],j0=`0x60806040523480156200001157600080fd5b50604051620034dd380380620034dd83398101604081905262000034916200015c565b6001805460ff191690556200004b6000846200009e565b600180546001600160a01b039384166101008102610100600160a81b03199092169190911790915560038054929093166001600160a01b03199283161790925560028054909116909117905550620001a6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200013b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000fa3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b03811681146200015757600080fd5b919050565b6000806000606084860312156200017257600080fd5b6200017d846200013f565b92506200018d602085016200013f565b91506200019d604085016200013f565b90509250925092565b61332780620001b66000396000f3fe6080604052600436106101175760003560e01c806358e81a50116100a05780638456cb59116100645780638456cb59146102c457806391d14854146102d9578063a217fddf146102f9578063ac9650d81461030e578063d547741f1461032e57600080fd5b806358e81a50146102465780635ae401dc146102595780635c975abb146102795780635ebca7991461029157806368742da6146102a457600080fd5b80632f2ff15d116100e75780632f2ff15d146101cb57806336568abe146101eb578063383ebb0b1461020b5780633f4ba83a1461021e5780635640f6591461023357600080fd5b80620fa9fb1461012357806301ffc9a714610145578063116944b21461017a578063248a9ca31461019b57600080fd5b3661011e57005b600080fd5b34801561012f57600080fd5b5061014361013e366004612ab8565b61034e565b005b34801561015157600080fd5b50610165610160366004612af1565b61041a565b60405190151581526020015b60405180910390f35b61018d610188366004612c89565b610451565b604051908152602001610171565b3480156101a757600080fd5b5061018d6101b6366004612cde565b60009081526020819052604090206001015490565b3480156101d757600080fd5b506101436101e6366004612cf7565b610771565b3480156101f757600080fd5b50610143610206366004612cf7565b610796565b61018d610219366004612ddf565b610819565b34801561022a57600080fd5b50610143610b86565b61018d610241366004612ddf565b610bd6565b61018d610254366004612c89565b610ee4565b61026c610267366004612e8b565b61121e565b6040516101719190612f26565b34801561028557600080fd5b5060015460ff16610165565b61014361029f366004612cde565b611255565b3480156102b057600080fd5b506101436102bf366004612f88565b6113ad565b3480156102d057600080fd5b50610143611428565b3480156102e557600080fd5b506101656102f4366004612cf7565b611476565b34801561030557600080fd5b5061018d600081565b34801561031a57600080fd5b5061026c610329366004612fa5565b61149f565b34801561033a57600080fd5b50610143610349366004612cf7565b611593565b6103787f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b610394576040516282b42960e81b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff9190612fe6565b90506104156001600160a01b03831684836115b8565b505050565b60006001600160e01b03198216637965db0b60e01b148061044b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061045f60015460ff1690565b1561047d5760405163ab35696f60e01b815260040160405180910390fd5b61048a826060015161161b565b6104a75760405163519bdea760e01b815260040160405180910390fd5b608082015134801561065a57836080015181146104d7576040516342f7487960e11b815260040160405180910390fd5b60035484516001600160a01b03908116911614610507576040516324d0121760e01b815260040160405180910390fd5b60008061056f866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b828210156105655761055660408302860136819003810190612fff565b81526020019060010190610539565b5050505050611641565b608088018290526001546040516304e45aaf60e01b815292945090925061010090046001600160a01b0316906304e45aaf9084906105b1908a90600401613056565b60206040518083038185885af11580156105cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105f49190612fe6565b945061065384828a8a808060200260200160405190810160405280939291908181526020016000905b828210156106495761063a60408302860136819003810190612fff565b8152602001906001019061061d565b5050505050611679565b5050610768565b6000806106b8866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610565576106a960408302860136819003810190612fff565b8152602001906001019061068c565b60808801829052875191935091506106db906001600160a01b031633308561170c565b6001546040516304e45aaf60e01b81526101009091046001600160a01b0316906304e45aaf9061070f908990600401613056565b6020604051808303816000875af115801561072e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107529190612fe6565b9450610765866000015185838b8b61174a565b50505b50509392505050565b60008281526020819052604090206001015461078c8161184b565b6104158383611855565b6001600160a01b038116331461080b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61081582826118d9565b5050565b600061082760015460ff1690565b156108455760405163ab35696f60e01b815260040160405180910390fd5b610852826020015161161b565b61086f5760405163519bdea760e01b815260040160405180910390fd5b600061087e836000015161193e565b606084015190915034908115610a30576003546001600160a01b038481169116146108bc576040516324d0121760e01b815260040160405180910390fd5b846060015182146108e0576040516342f7487960e11b815260040160405180910390fd5b600061094286606001518989808060200260200160405190810160405280939291908181526020016000905b828210156109385761092960408302860136819003810190612fff565b8152602001906001019061090c565b5050505050611974565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b81346908490610985908b906004016130fc565b60206040518083038185885af11580156109a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109c89190612fe6565b9050610a2781848b8b808060200260200160405190810160405280939291908181526020016000905b82821015610a1d57610a0e60408302860136819003810190612fff565b815260200190600101906109f1565b50505050506119c3565b95505050610b7c565b6000610a938487606001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a8957610a7a60408302860136819003810190612fff565b81526020019060010190610a5d565b5050505050611aab565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b8134690610ad4908a906004016130fc565b6020604051808303816000875af1158015610af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b179190612fe6565b9050610b778582858c8c808060200260200160405190810160405280939291908181526020016000905b82821015610b6d57610b5e60408302860136819003810190612fff565b81526020019060010190610b41565b5050505050611b03565b955050505b5050509392505050565b610bb07fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b533611476565b610bcc576040516282b42960e81b815260040160405180910390fd5b610bd4611b57565b565b6000610be460015460ff1690565b15610c025760405163ab35696f60e01b815260040160405180910390fd5b610c0f826020015161161b565b610c2c5760405163519bdea760e01b815260040160405180910390fd5b6000610c3b8360000151611ba9565b6040840151909150348015610dd75784604001518114610c6e576040516342f7487960e11b815260040160405180910390fd5b6003546001600160a01b03848116911614610c9c576040516324d0121760e01b815260040160405180910390fd5b600080610cf68588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610ce760408302860136819003810190612fff565b81526020019060010190610cca565b6040898101839052600154905163b858183f60e01b815292945090925061010090046001600160a01b03169063b858183f908490610d38908b906004016130fc565b60206040518083038185885af1158015610d56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7b9190612fe6565b9550610dd084828b8b808060200260200160405190810160405280939291908181526020016000905b8282101561064957610dc160408302860136819003810190612fff565b81526020019060010190610da4565b5050610b7c565b600080610e318588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610e2260408302860136819003810190612fff565b81526020019060010190610e05565b604089018290529092509050610e526001600160a01b03861633308561170c565b60015460405163b858183f60e01b81526101009091046001600160a01b03169063b858183f90610e86908a906004016130fc565b6020604051808303816000875af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612fe6565b9550610ed88585838c8c61174a565b50505050509392505050565b6000610ef260015460ff1690565b15610f105760405163ab35696f60e01b815260040160405180910390fd5b610f1d826060015161161b565b610f3a5760405163519bdea760e01b815260040160405180910390fd5b60a0820151349081156110d75760035484516001600160a01b03908116911614610f77576040516324d0121760e01b815260040160405180910390fd5b8360a001518214610f9b576040516342f7487960e11b815260040160405180910390fd5b6000610ff38560a001518888808060200260200160405190810160405280939291908181526020016000905b8282101561093857610fe460408302860136819003810190612fff565b81526020019060010190610fc7565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df908490611036908a90600401613056565b60206040518083038185885af1158015611054573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110799190612fe6565b90506110ce81848a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a1d576110bf60408302860136819003810190612fff565b815260200190600101906110a2565b94505050610768565b600061113485600001518660a001518989808060200260200160405190810160405280939291908181526020016000905b82821015610a895761112560408302860136819003810190612fff565b81526020019060010190611108565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df90611175908990600401613056565b6020604051808303816000875af1158015611194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b89190612fe6565b9050611212866000015182858b8b808060200260200160405190810160405280939291908181526020016000905b82821015610b6d5761120360408302860136819003810190612fff565b815260200190600101906111e6565b98975050505050505050565b6060834211156112415760405163387b2e5560e11b815260040160405180910390fd5b61124b838361149f565b90505b9392505050565b60015460ff16156112795760405163ab35696f60e01b815260040160405180910390fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190612fe6565b905081811015611313576040516342fb4ceb60e11b81526004810183905260248101829052604401610802565b801561081557600354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b5050505060006113833383611bb5565b905080610415576040516342fb4ceb60e11b81526004810184905260248101839052604401610802565b6113d77f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b6113f3576040516282b42960e81b815260040160405180910390fd5b47156114255760006114058247611bb5565b90508061081557604051633398652560e11b815260040160405180910390fd5b50565b6114527ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f633611476565b61146e576040516282b42960e81b815260040160405180910390fd5b610bd4611c5f565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b038111156114b9576114b9612b66565b6040519080825280602002602001820160405280156114ec57816020015b60608152602001906001900390816114d75790505b50905060005b8281101561158c5761155c308585848181106115105761151061310f565b90506020028101906115229190613125565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c9a92505050565b82828151811061156e5761156e61310f565b6020026020010181905250808061158490613181565b9150506114f2565b5092915050565b6000828152602081905260409020600101546115ae8161184b565b61041583836118d9565b6040516001600160a01b03831660248201526044810182905261041590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611cbf565b60006001600160a01b03821633148061044b57506001600160a01b038216301492915050565b60008061164d83611d94565b506116588484611e07565b509050611665818561319a565b91506116718583611f30565b935093915050565b600061168361202d565b905060006116928583866120a4565b90506000806116a18386611e07565b915091506116ae816120d0565b8315611703576000826116c1858a61319a565b6116cb919061319a565b905080156117015760006116df3383611bb5565b9050806116ff576040516382e4f46960e01b815260040160405180910390fd5b505b505b50505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526117449085906323b872dd60e01b906084016115e4565b50505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190612fe6565b905060006117c48683876120a4565b90506000611824828686808060200260200160405190810160405280939291908181526020016000905b8282101561181a5761180b60408302860136819003810190612fff565b815260200190600101906117ee565b5050505050611e07565b91505061183188826121af565b8215611701576117016001600160a01b03891633856115b8565b61142581336122b8565b61185f8282611476565b610815576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556118953390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6118e38282611476565b15610815576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000806014835161194f919061319a565b9050600061195f84836014612311565b905061196c81600061241e565b949350505050565b60008061198083611d94565b90506000611990826127106131ad565b905060006119a18661271084612483565b6003549091506119ba906001600160a01b031682611f30565b95945050505050565b60008060006119d28685611e07565b915091506119df816120d0565b600260009054906101000a90046001600160a01b03166001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a2f57600080fd5b505af1158015611a43573d6000803e3d6000fd5b505050506000828787611a56919061319a565b611a60919061319a565b90508015611a96576000611a743383611bb5565b905080611a94576040516382e4f46960e01b815260040160405180910390fd5b505b611aa083886131ad565b979650505050505050565b600080611ab783611d94565b90506000611ac7826127106131ad565b90506000611ad88661271084612483565b9050611ae48782611f30565b611af96001600160a01b03881633308961170c565b9695505050505050565b6000806000611b128685611e07565b91509150611b2087826124c3565b600082611b2d888861319a565b611b37919061319a565b9050611b4d6001600160a01b03891633836115b8565b61121283886131ad565b611b5f6125ca565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061044b828261241e565b600081471015611c075760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610802565b6040516001600160a01b038416908390600081818185875af1925050503d8060008114611c50576040519150601f19603f3d011682016040523d82523d6000602084013e611c55565b606091505b5090949350505050565b611c67612613565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611b8c565b606061124e83836040518060600160405280602781526020016132cb60279139612659565b6000611d14826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126c79092919063ffffffff16565b9050805160001480611d35575080806020019051810190611d3591906131c0565b6104155760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610802565b6000805b8251811015611dde57828181518110611db357611db361310f565b60200260200101516020015182611dca91906131ad565b915080611dd681613181565b915050611d98565b506103e8811115611e025760405163cd4e616760e01b815260040160405180910390fd5b919050565b6000606082516001600160401b03811115611e2457611e24612b66565b604051908082528060200260200182016040528015611e6957816020015b6040805180820190915260008082526020820152815260200190600190039081611e425790505b50905060005b8351811015611f28576000611eae858381518110611e8f57611e8f61310f565b602002602001015160200151612710886126d69092919063ffffffff16565b90506040518060400160405280868481518110611ecd57611ecd61310f565b6020026020010151600001516001600160a01b0316815260200182815250838381518110611efd57611efd61310f565b6020908102919091010152611f1281856131ad565b9350508080611f2090613181565b915050611e6f565b509250929050565b600154604051636eb1769f60e11b81523060048201526001600160a01b0361010090920482166024820152829184169063dd62ed3e90604401602060405180830381865afa158015611f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faa9190612fe6565b10156108155760015460405163095ea7b360e01b81526101009091046001600160a01b039081166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015612009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041591906131c0565b60025460408051630910874560e11b8152905160009247926001600160a01b03909116916312210e8a91600480820192879290919082900301818387803b15801561207757600080fd5b505af115801561208b573d6000803e3d6000fd5b5047925061209d91508390508261319a565b9250505090565b600082156120c857816120b7848661319a565b6120c1919061319a565b905061124e565b509192915050565b60005b81518110156108155760008282815181106120f0576120f061310f565b60200260200101519050600061210e82600001518360200151611bb5565b90508061214557815160208301516040516208c3b360e61b81526001600160a01b0390921660048301526024820152604401610802565b81600001516001600160a01b0316336001600160a01b03167fe0e765ab26c1caf691c510426951246128b96830e49cc81d8c093fd551abac35846020015160405161219291815260200190565b60405180910390a3505080806121a790613181565b9150506120d3565b60005b815181101561041557612215338383815181106121d1576121d161310f565b6020026020010151600001518484815181106121ef576121ef61310f565b602002602001015160200151866001600160a01b031661170c909392919063ffffffff16565b8181815181106122275761222761310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106122835761228361310f565b60200260200101516020015160405161229e91815260200190565b60405180910390a4806122b081613181565b9150506121b2565b6122c28282611476565b610815576122cf81612778565b6122da83602061278a565b6040516020016122eb9291906131e2565b60408051601f198184030181529082905262461bcd60e51b825261080291600401613257565b60608161231f81601f6131ad565b101561235e5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610802565b61236882846131ad565b845110156123ac5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610802565b6060821580156123cb5760405191506000825260208201604052612415565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156124045780518352602092830192016123ec565b5050858452601f01601f1916604052505b50949350505050565b600061242b8260146131ad565b835110156124735760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610802565b500160200151600160601b900490565b60006124908484846126d6565b9050600082806124a2576124a261326a565b848609111561124e5760001981106124b957600080fd5b6001019392505050565b60005b8151811015610415576125278282815181106124e4576124e461310f565b6020026020010151600001518383815181106125025761250261310f565b602002602001015160200151856001600160a01b03166115b89092919063ffffffff16565b8181815181106125395761253961310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106125955761259561310f565b6020026020010151602001516040516125b091815260200190565b60405180910390a4806125c281613181565b9150506124c6565b60015460ff16610bd45760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610802565b60015460ff1615610bd45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610802565b6060600080856001600160a01b0316856040516126769190613280565b600060405180830381855af49150503d80600081146126b1576040519150601f19603f3d011682016040523d82523d6000602084013e6126b6565b606091505b5091509150611af986838387612925565b606061124b848460008561299e565b600083830281600019858709828110838203039150508084116126f857600080fd5b8060000361270b5750829004905061124e565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b606061044b6001600160a01b03831660145b6060600061279983600261329c565b6127a49060026131ad565b6001600160401b038111156127bb576127bb612b66565b6040519080825280601f01601f1916602001820160405280156127e5576020820181803683370190505b509050600360fc1b816000815181106128005761280061310f565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061282f5761282f61310f565b60200101906001600160f81b031916908160001a905350600061285384600261329c565b61285e9060016131ad565b90505b60018111156128d6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106128925761289261310f565b1a60f81b8282815181106128a8576128a861310f565b60200101906001600160f81b031916908160001a90535060049490941c936128cf816132b3565b9050612861565b50831561124e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610802565b6060831561299457825160000361298d576001600160a01b0385163b61298d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610802565b508161196c565b61196c8383612a6e565b6060824710156129ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610802565b600080866001600160a01b03168587604051612a1b9190613280565b60006040518083038185875af1925050503d8060008114612a58576040519150601f19603f3d011682016040523d82523d6000602084013e612a5d565b606091505b5091509150611aa087838387612925565b815115612a7e5781518083602001fd5b8060405162461bcd60e51b81526004016108029190613257565b6001600160a01b038116811461142557600080fd5b8035611e0281612a98565b60008060408385031215612acb57600080fd5b8235612ad681612a98565b91506020830135612ae681612a98565b809150509250929050565b600060208284031215612b0357600080fd5b81356001600160e01b03198116811461124e57600080fd5b60008083601f840112612b2d57600080fd5b5081356001600160401b03811115612b4457600080fd5b6020830191508360208260061b8501011115612b5f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612b9e57612b9e612b66565b60405290565b604051608081016001600160401b0381118282101715612b9e57612b9e612b66565b604051601f8201601f191681016001600160401b0381118282101715612bee57612bee612b66565b604052919050565b600060e08284031215612c0857600080fd5b612c10612b7c565b90508135612c1d81612a98565b81526020820135612c2d81612a98565b6020820152604082013562ffffff81168114612c4857600080fd5b6040820152612c5960608301612aad565b60608201526080820135608082015260a082013560a0820152612c7e60c08301612aad565b60c082015292915050565b60008060006101008486031215612c9f57600080fd5b83356001600160401b03811115612cb557600080fd5b612cc186828701612b1b565b9094509250612cd590508560208601612bf6565b90509250925092565b600060208284031215612cf057600080fd5b5035919050565b60008060408385031215612d0a57600080fd5b823591506020830135612ae681612a98565b600060808284031215612d2e57600080fd5b612d36612ba4565b905081356001600160401b0380821115612d4f57600080fd5b818401915084601f830112612d6357600080fd5b8135602082821115612d7757612d77612b66565b612d89601f8301601f19168201612bc6565b92508183528681838601011115612d9f57600080fd5b81818501828501376000818385010152828552612dbd818701612aad565b8186015250505050604082013560408201526060820135606082015292915050565b600080600060408486031215612df457600080fd5b83356001600160401b0380821115612e0b57600080fd5b612e1787838801612b1b565b90955093506020860135915080821115612e3057600080fd5b50612e3d86828701612d1c565b9150509250925092565b60008083601f840112612e5957600080fd5b5081356001600160401b03811115612e7057600080fd5b6020830191508360208260051b8501011115612b5f57600080fd5b600080600060408486031215612ea057600080fd5b8335925060208401356001600160401b03811115612ebd57600080fd5b612ec986828701612e47565b9497909650939450505050565b60005b83811015612ef1578181015183820152602001612ed9565b50506000910152565b60008151808452612f12816020860160208601612ed6565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612f7b57603f19888603018452612f69858351612efa565b94509285019290850190600101612f4d565b5092979650505050505050565b600060208284031215612f9a57600080fd5b813561124e81612a98565b60008060208385031215612fb857600080fd5b82356001600160401b03811115612fce57600080fd5b612fda85828601612e47565b90969095509350505050565b600060208284031215612ff857600080fd5b5051919050565b60006040828403121561301157600080fd5b604051604081018181106001600160401b038211171561303357613033612b66565b604052823561304181612a98565b81526020928301359281019290925250919050565b60e0810161044b828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b60008151608084526130ca6080850182612efa565b6020848101516001600160a01b0316908601526040808501519086015260609384015193909401929092525090919050565b60208152600061124e60208301846130b5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261313c57600080fd5b8301803591506001600160401b0382111561315657600080fd5b602001915036819003821315612b5f57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131935761319361316b565b5060010190565b8181038181111561044b5761044b61316b565b8082018082111561044b5761044b61316b565b6000602082840312156131d257600080fd5b8151801515811461124e57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161321a816017850160208801612ed6565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161324b816028840160208801612ed6565b01602801949350505050565b60208152600061124e6020830184612efa565b634e487b7160e01b600052601260045260246000fd5b60008251613292818460208701612ed6565b9190910192915050565b808202811582820484141761044b5761044b61316b565b6000816132c2576132c261316b565b50600019019056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220162c0f9d1b47c666f486fc65c7c7502bb0e7378e3166be6f93d98943154831c364736f6c63430008130033`,M0=e=>e.length>1;var N0=class extends YI{constructor(...e){M0(e)?super(...e):super(A0,j0,e[0])}getDeployTransaction(e,t,n,r){return super.getDeployTransaction(e,t,n,r||{})}deploy(e,t,n,r){return super.deploy(e,t,n,r||{})}connect(e){return super.connect(e)}static bytecode=j0;static abi=A0;static createInterface(){return new eI(A0)}static connect(e,t){return new JI(e,A0,t)}};let P0=[{inputs:[],name:`getCurrentBlockTimestamp`,outputs:[{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`addr`,type:`address`}],name:`getEthBalance`,outputs:[{internalType:`uint256`,name:`balance`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`uint256`,name:`gasLimit`,type:`uint256`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct UniswapInterfaceMulticall.Call[]`,name:`calls`,type:`tuple[]`}],name:`multicall`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`},{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`uint256`,name:`gasUsed`,type:`uint256`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct UniswapInterfaceMulticall.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`nonpayable`,type:`function`}],F0=`0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a`,I0=e=>e.length>1;var L0=class extends YI{constructor(...e){I0(e)?super(...e):super(P0,F0,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=F0;static abi=P0;static createInterface(){return new eI(P0)}static connect(e,t){return new JI(e,P0,t)}};let R0=[{inputs:[],stateMutability:`nonpayable`,type:`constructor`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!0,internalType:`int24`,name:`tickLower`,type:`int24`},{indexed:!0,internalType:`int24`,name:`tickUpper`,type:`int24`},{indexed:!1,internalType:`uint128`,name:`amount`,type:`uint128`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`}],name:`Burn`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!1,internalType:`address`,name:`recipient`,type:`address`},{indexed:!0,internalType:`int24`,name:`tickLower`,type:`int24`},{indexed:!0,internalType:`int24`,name:`tickUpper`,type:`int24`},{indexed:!1,internalType:`uint128`,name:`amount0`,type:`uint128`},{indexed:!1,internalType:`uint128`,name:`amount1`,type:`uint128`}],name:`Collect`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`recipient`,type:`address`},{indexed:!1,internalType:`uint128`,name:`amount0`,type:`uint128`},{indexed:!1,internalType:`uint128`,name:`amount1`,type:`uint128`}],name:`CollectProtocol`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`recipient`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`paid0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`paid1`,type:`uint256`}],name:`Flash`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint16`,name:`observationCardinalityNextOld`,type:`uint16`},{indexed:!1,internalType:`uint16`,name:`observationCardinalityNextNew`,type:`uint16`}],name:`IncreaseObservationCardinalityNext`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`},{indexed:!1,internalType:`int24`,name:`tick`,type:`int24`}],name:`Initialize`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`owner`,type:`address`},{indexed:!0,internalType:`int24`,name:`tickLower`,type:`int24`},{indexed:!0,internalType:`int24`,name:`tickUpper`,type:`int24`},{indexed:!1,internalType:`uint128`,name:`amount`,type:`uint128`},{indexed:!1,internalType:`uint256`,name:`amount0`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amount1`,type:`uint256`}],name:`Mint`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint8`,name:`feeProtocol0Old`,type:`uint8`},{indexed:!1,internalType:`uint8`,name:`feeProtocol1Old`,type:`uint8`},{indexed:!1,internalType:`uint8`,name:`feeProtocol0New`,type:`uint8`},{indexed:!1,internalType:`uint8`,name:`feeProtocol1New`,type:`uint8`}],name:`SetFeeProtocol`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!0,internalType:`address`,name:`recipient`,type:`address`},{indexed:!1,internalType:`int256`,name:`amount0`,type:`int256`},{indexed:!1,internalType:`int256`,name:`amount1`,type:`int256`},{indexed:!1,internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`},{indexed:!1,internalType:`uint128`,name:`liquidity`,type:`uint128`},{indexed:!1,internalType:`int24`,name:`tick`,type:`int24`}],name:`Swap`,type:`event`},{inputs:[{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint128`,name:`amount`,type:`uint128`}],name:`burn`,outputs:[{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint128`,name:`amount0Requested`,type:`uint128`},{internalType:`uint128`,name:`amount1Requested`,type:`uint128`}],name:`collect`,outputs:[{internalType:`uint128`,name:`amount0`,type:`uint128`},{internalType:`uint128`,name:`amount1`,type:`uint128`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint128`,name:`amount0Requested`,type:`uint128`},{internalType:`uint128`,name:`amount1Requested`,type:`uint128`}],name:`collectProtocol`,outputs:[{internalType:`uint128`,name:`amount0`,type:`uint128`},{internalType:`uint128`,name:`amount1`,type:`uint128`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`factory`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`fee`,outputs:[{internalType:`uint24`,name:``,type:`uint24`}],stateMutability:`view`,type:`function`},{inputs:[],name:`feeGrowthGlobal0X128`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`feeGrowthGlobal1X128`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`flash`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint16`,name:`observationCardinalityNext`,type:`uint16`}],name:`increaseObservationCardinalityNext`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`}],name:`initialize`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`liquidity`,outputs:[{internalType:`uint128`,name:``,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[],name:`maxLiquidityPerTick`,outputs:[{internalType:`uint128`,name:``,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`},{internalType:`uint128`,name:`amount`,type:`uint128`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`mint`,outputs:[{internalType:`uint256`,name:`amount0`,type:`uint256`},{internalType:`uint256`,name:`amount1`,type:`uint256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:``,type:`uint256`}],name:`observations`,outputs:[{internalType:`uint32`,name:`blockTimestamp`,type:`uint32`},{internalType:`int56`,name:`tickCumulative`,type:`int56`},{internalType:`uint160`,name:`secondsPerLiquidityCumulativeX128`,type:`uint160`},{internalType:`bool`,name:`initialized`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint32[]`,name:`secondsAgos`,type:`uint32[]`}],name:`observe`,outputs:[{internalType:`int56[]`,name:`tickCumulatives`,type:`int56[]`},{internalType:`uint160[]`,name:`secondsPerLiquidityCumulativeX128s`,type:`uint160[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],name:`positions`,outputs:[{internalType:`uint128`,name:`liquidity`,type:`uint128`},{internalType:`uint256`,name:`feeGrowthInside0LastX128`,type:`uint256`},{internalType:`uint256`,name:`feeGrowthInside1LastX128`,type:`uint256`},{internalType:`uint128`,name:`tokensOwed0`,type:`uint128`},{internalType:`uint128`,name:`tokensOwed1`,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[],name:`protocolFees`,outputs:[{internalType:`uint128`,name:`token0`,type:`uint128`},{internalType:`uint128`,name:`token1`,type:`uint128`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint8`,name:`feeProtocol0`,type:`uint8`},{internalType:`uint8`,name:`feeProtocol1`,type:`uint8`}],name:`setFeeProtocol`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`slot0`,outputs:[{internalType:`uint160`,name:`sqrtPriceX96`,type:`uint160`},{internalType:`int24`,name:`tick`,type:`int24`},{internalType:`uint16`,name:`observationIndex`,type:`uint16`},{internalType:`uint16`,name:`observationCardinality`,type:`uint16`},{internalType:`uint16`,name:`observationCardinalityNext`,type:`uint16`},{internalType:`uint8`,name:`feeProtocol`,type:`uint8`},{internalType:`bool`,name:`unlocked`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`int24`,name:`tickLower`,type:`int24`},{internalType:`int24`,name:`tickUpper`,type:`int24`}],name:`snapshotCumulativesInside`,outputs:[{internalType:`int56`,name:`tickCumulativeInside`,type:`int56`},{internalType:`uint160`,name:`secondsPerLiquidityInsideX128`,type:`uint160`},{internalType:`uint32`,name:`secondsInside`,type:`uint32`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`recipient`,type:`address`},{internalType:`bool`,name:`zeroForOne`,type:`bool`},{internalType:`int256`,name:`amountSpecified`,type:`int256`},{internalType:`uint160`,name:`sqrtPriceLimitX96`,type:`uint160`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`swap`,outputs:[{internalType:`int256`,name:`amount0`,type:`int256`},{internalType:`int256`,name:`amount1`,type:`int256`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`int16`,name:``,type:`int16`}],name:`tickBitmap`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`tickSpacing`,outputs:[{internalType:`int24`,name:``,type:`int24`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`int24`,name:``,type:`int24`}],name:`ticks`,outputs:[{internalType:`uint128`,name:`liquidityGross`,type:`uint128`},{internalType:`int128`,name:`liquidityNet`,type:`int128`},{internalType:`uint256`,name:`feeGrowthOutside0X128`,type:`uint256`},{internalType:`uint256`,name:`feeGrowthOutside1X128`,type:`uint256`},{internalType:`int56`,name:`tickCumulativeOutside`,type:`int56`},{internalType:`uint160`,name:`secondsPerLiquidityOutsideX128`,type:`uint160`},{internalType:`uint32`,name:`secondsOutside`,type:`uint32`},{internalType:`bool`,name:`initialized`,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`token0`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`token1`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],z0=`0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a`,B0=e=>e.length>1;var V0=class extends YI{constructor(...e){B0(e)?super(...e):super(R0,z0,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=z0;static abi=R0;static createInterface(){return new eI(R0)}static connect(e,t){return new JI(e,R0,t)}};let H0=[{constant:!0,inputs:[],name:`name`,outputs:[{name:``,type:`string`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`guy`,type:`address`},{name:`wad`,type:`uint256`}],name:`approve`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[],name:`totalSupply`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`src`,type:`address`},{name:`dst`,type:`address`},{name:`wad`,type:`uint256`}],name:`transferFrom`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!1,inputs:[{name:`wad`,type:`uint256`}],name:`withdraw`,outputs:[],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[],name:`decimals`,outputs:[{name:``,type:`uint8`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[{name:``,type:`address`}],name:`balanceOf`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[],name:`symbol`,outputs:[{name:``,type:`string`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`dst`,type:`address`},{name:`wad`,type:`uint256`}],name:`transfer`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!1,inputs:[],name:`deposit`,outputs:[],payable:!0,stateMutability:`payable`,type:`function`},{constant:!0,inputs:[{name:``,type:`address`},{name:``,type:`address`}],name:`allowance`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{payable:!0,stateMutability:`payable`,type:`fallback`},{anonymous:!1,inputs:[{indexed:!0,name:`src`,type:`address`},{indexed:!0,name:`guy`,type:`address`},{indexed:!1,name:`wad`,type:`uint256`}],name:`Approval`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,name:`src`,type:`address`},{indexed:!0,name:`dst`,type:`address`},{indexed:!1,name:`wad`,type:`uint256`}],name:`Transfer`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,name:`dst`,type:`address`},{indexed:!1,name:`wad`,type:`uint256`}],name:`Deposit`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,name:`src`,type:`address`},{indexed:!1,name:`wad`,type:`uint256`}],name:`Withdrawal`,type:`event`}];var U0=class{static abi=H0;static createInterface(){return new eI(H0)}static connect(e,t){return new JI(e,H0,t)}};function W0(e,t,n,r){let i=e[0];if(typeof i!=`bigint`)throw Error(`Expected BigNumber`);let{midPrice:a,input:o,output:s}=t,c=H1(o),l=H1(s),u=r===WY.EXACT_INPUT?n:W1(i,c),d=r===WY.EXACT_INPUT?W1(i,l):n,f=new cX(o,s,u.value.toString(),d.value.toString()).subtract(a.asFraction).divide(a.asFraction).multiply(100);return{route:t,amountIn:u,amountOut:d,gasEstimate:BigInt(e[3]),tradeType:r,priceImpact:f}}async function G0(e,t,n,r,i,a){let o=n.map(e=>v1.quoteCallParameters(e,U1(r),i,{useQuoterV2:!0}).calldata);return(await Promise.allSettled(o.map(n=>e.send(`eth_call`,[{to:t,data:n},a])))).reduce((e,t,a)=>{if(t.status===`rejected`)return e;let s=F1[o[a].substring(0,10)];if(!s)throw Error(`No quoting function signature found`);if(t.value===`0x`)return e;try{let o=W0(qF.defaultAbiCoder().decode(s,t.value),n[a],r,i);e.push(o)}catch{}return e},[])}function K0({factoryAddress:e,erc20Pair:t,fee:n,initCodeHashManualOverride:r}){return t=q0(t),Zj(e,eA(qF.defaultAbiCoder().encode([`address`,`address`,`uint24`],[t[0].address,t[1].address,n])),r??`0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`)}let q0=e=>{if(e[0].address.toLowerCase()>e[1].address.toLowerCase()){let t=e[0];e[0]=e[1],e[1]=t}return e},J0=(e,t)=>{let n=new Map,r=[];[...e,...t].forEach(e=>{n.set(e.address,e),r.push(e.address)});let i=[...new Set([...r])],a=[];for(let e=0;e<i.length;e++)for(let t=e+1;t<i.length;t++){let r=n.get(i[e]),o=n.get(i[t]);r&&o&&a.push([r,o])}return a},Y0=[C$.LOWEST,C$.LOW,C$.MEDIUM,C$.HIGH],X0=(e,t,n)=>{let r=J0(e,t),i=[];for(let e=0;e<r.length;e++)for(let t=0;t<Y0.length;t++){let a=K0({factoryAddress:n,erc20Pair:r[e],fee:Y0[t]});i.push({erc20Pair:r[e],fee:Y0[t],poolAddress:a})}return i};async function Z0(e,t,n,r){let i=V0.createInterface(),a=Q0(t,i),o=[];return a&&n.forEach(e=>{e&&o.push({target:e,callData:a,gasLimit:BigInt(`1000000`)})}),r?.blockTag?e.multicall.staticCall(o,{blockTag:r.blockTag}):e.multicall.staticCall(o)}let Q0=(e,t)=>{let n=t?.getFunction(e);return n?t?.encodeFunctionData(n):void 0},$0=`liquidity`,e2=`slot0`,t2=async(e,t,n,r,i)=>{let a=X0(t,n,r),o=a.map(e=>e.poolAddress),s,c;try{[s,c]=await Promise.all([Z0(e,e2,o,{blockTag:i}),Z0(e,$0,o,{blockTag:i})])}catch(e){throw new j1(`failed multicall: ${e instanceof Error?e.message:`Unknown Error`}`)}let l=s.returnData,u=c.returnData,d=V0.createInterface(),f=[];return a.forEach((e,t)=>{let n=s.returnData[t].returnData===`0x`,r=c.returnData[t].returnData===`0x`;if(n||r)return;let i=d.decodeFunctionResult(e2,l[t].returnData),a=d.decodeFunctionResult($0,u[t].returnData),o=i.sqrtPriceX96===BigInt(0),p=a[0]===BigInt(0);if(o||p)return;let m=new o1(V1(e.erc20Pair[0]),V1(e.erc20Pair[1]),e.fee,i.sqrtPriceX96.toString(),a.toString(),Number(i.tick));f.push(m)}),f};var n2=class{provider;multicallContract;routingTokens;routingContracts;constructor(e,t,n,r){this.provider=e,this.multicallContract=t,this.routingTokens=n,this.routingContracts=r,this.provider=e,this.multicallContract=t,this.routingTokens=n,this.routingContracts=r}async findOptimalRoute(e,t,n,r=3,i=`latest`){let[a,o]=this.determineERC20InAndERC20Out(n,e,t),s=[a,o],c=await t2(this.multicallContract,s,this.routingTokens,this.routingContracts.coreFactory,i);if(c.length===0)throw new A1;let l=r2(a,o,c,r,[],[],a);if(l.length===0)throw new A1;return await this.getBestQuoteFromRoutes(l,e,n,i)}async getBestQuoteFromRoutes(e,t,n,r){let i=await G0(this.provider,this.routingContracts.quoter,e,t,n,r);if(i.length===0)throw new A1;if(n===WY.EXACT_INPUT)return this.bestQuoteForAmountIn(i);if(n===WY.EXACT_OUTPUT)return this.bestQuoteForAmountOut(i);throw Error(`Invalid trade type`)}bestQuoteForAmountIn(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountOut.value>t.amountOut.value&&(t=e[n]);return t}bestQuoteForAmountOut(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountIn.value<t.amountIn.value&&(t=e[n]);return t}determineERC20InAndERC20Out(e,t,n){return e===WY.EXACT_INPUT?[t.token,n]:[n,t.token]}};let r2=(e,t,n,r,i=[],a=[],o=e)=>{let s=V1(e),c=V1(t),l=V1(o);for(let e of n){let u=e.involvesToken(s),d=i.find(t=>I1(e,t));if(!u||d)continue;let f=e.token0.equals(s)?e.token1:e.token0;f.equals(c)?a.push(new c1([...i,e],l,c)):r>1&&r2(H1(f),t,n,r-1,[...i,e],a,o)}return a};function i2(e,t,n,r,i,a,o,s,c){let l=[];return r.tradeType===WY.EXACT_INPUT&&l.push(s.encodeFunctionData(`exactInputSingle`,[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountIn:a,amountOutMinimum:o,sqrtPriceLimitX96:0}])),r.tradeType===WY.EXACT_OUTPUT&&l.push(s.encodeFunctionData(`exactOutputSingle`,[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountInMaximum:a,amountOut:o,sqrtPriceLimitX96:0}])),q1(e)&&l.push(c.encodeFunctionData(`refundETH`)),q1(t)&&l.push(c.encodeFunctionData(`unwrapWETH9(uint256)`,[o])),l}function a2(e,t,n,r,i,a,o,s){let c=a.map(e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient})),l=[];return t.tradeType===WY.EXACT_INPUT&&l.push(o.encodeFunctionData(`exactInputSingleWithSecondaryFee`,[c,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountIn:r,amountOutMinimum:i,sqrtPriceLimitX96:0}])),t.tradeType===WY.EXACT_OUTPUT&&l.push(o.encodeFunctionData(`exactOutputSingleWithSecondaryFee`,[c,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountInMaximum:r,amountOut:i,sqrtPriceLimitX96:0}])),q1(s)&&l.push(o.encodeFunctionData(`unwrapNativeToken`,[i])),l}function o2(e,t,n,r,i,a,o,s,c){let l=X$(i,r.tradeType===WY.EXACT_OUTPUT),u=[];return r.tradeType===WY.EXACT_INPUT&&u.push(s.encodeFunctionData(`exactInput`,[{path:l,recipient:n,amountIn:a,amountOutMinimum:o}])),r.tradeType===WY.EXACT_OUTPUT&&u.push(s.encodeFunctionData(`exactOutput`,[{path:l,recipient:n,amountInMaximum:a,amountOut:o}])),q1(e)&&u.push(c.encodeFunctionData(`refundETH`)),q1(t)&&u.push(c.encodeFunctionData(`unwrapWETH9(uint256)`,[o])),u}function s2(e,t,n,r,i,a,o,s){let c=X$(n,t.tradeType===WY.EXACT_OUTPUT),l=a.map(e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient})),u=[];return t.tradeType===WY.EXACT_INPUT&&u.push(o.encodeFunctionData(`exactInputWithSecondaryFee`,[l,{path:c,recipient:e,amountIn:r,amountOutMinimum:i}])),t.tradeType===WY.EXACT_OUTPUT&&u.push(o.encodeFunctionData(`exactOutputWithSecondaryFee`,[l,{path:c,recipient:e,amountInMaximum:r,amountOut:i}])),q1(s)&&u.push(o.encodeFunctionData(`unwrapNativeToken`,[i])),u}function c2(e,t,n,r,i,a,o,s,c,l){let{route:u}=r.swaps[0],d=u.pools.length===1,f=i.length>0;return d?f?a2(n,r,u,c,l,i,a,t):i2(e,t,n,r,u,c,l,o,s):f?s2(n,r,u,c,l,i,a,t):o2(e,t,n,r,u,c,l,o,s)}function l2(e,t,n,r,i,a,o,s){let c=N0.createInterface(),l=c2(e,t,r,n,a,c,new eI(x1),new eI(S1),o,s);return c.encodeFunctionData(`multicall(uint256,bytes[])`,[i.deadlineOrPreviousBlockhash,l])}function u2(e,t,n,r,i,a,o){let s=u1.createUncheckedTrade({route:n.route,inputAmount:U1(n.amountIn),outputAmount:U1(n.amountOut),tradeType:n.tradeType}),c={slippageTolerance:w0(i),recipient:r,deadlineOrPreviousBlockhash:a},l=Y$(s.maximumAmountIn(c.slippageTolerance).quotient);return{calldata:l2(e,t,s,r,c,o,l,Y$(s.minimumAmountOut(c.slippageTolerance).quotient)),maximumAmountIn:l}}let d2=(e,t)=>e.type===`native`?t:`0x00`,f2=(e,t,n,r,i)=>q1(e)?i.length===0?n:r:t;function p2(e,t,n,r,i,a,o,s,c,l){let{calldata:u,maximumAmountIn:d}=u2(e,t,n,f2(t,r,o,s,l),i,a,l),f=l.length>0,p=c?p0(f,c,n.gasEstimate):null,m=d2(e,d);return{transaction:{data:u,to:l.length>0?s:o,value:m,from:r},gasFeeEstimate:p?t0(p):null}}let m2=(e,t,n,r)=>{if(e.tradeType===WY.EXACT_OUTPUT){let t=S0(n.token)?r.unwrapAmount(e.amountIn):e.amountIn;return n.addAmount(t),r.maybeWrapAmount(n.amountWithFeesApplied())}return r.maybeWrapAmount(t)};function h2(e,t,n,r){let i=m2(e,t,n,r);return{gasEstimate:e.gasEstimate,route:e.route,amountIn:i,amountOut:e.amountOut,tradeType:e.tradeType,priceImpact:e.priceImpact}}let g2={[r0]:{multicall:`0x4857Dfd11c712e862eC362cEee29F7974B70EfcD`,coreFactory:`0x56c2162254b0E4417288786eE402c2B41d4e181e`,quoter:`0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd`,swapRouter:`0x0b012055F770AE7BB7a8303968A7Fb6088A2296e`,immutableSwapProxy:`0xDdBDa144cEbe1cCd68E746CDff8a6e4Be51A9e98`},[i0]:{multicall:`0xc7efb32470dEE601959B15f1f923e017C6A918cA`,coreFactory:`0x56c2162254b0E4417288786eE402c2B41d4e181e`,quoter:`0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd`,swapRouter:`0xE5a02c2Be08406c3fB36F9Aa29bF7C7A09CAe50B`,immutableSwapProxy:`0xD67cc11151dBccCC424A16F8963ece3D0539BD61`}},_2={[r0]:{chainId:r0,rpcUrl:`https://rpc.testnet.immutable.com`,contracts:g2[r0],commonRoutingTokens:s0,nativeToken:a0,wrappedNativeToken:o0}},v2={[i0]:{chainId:i0,rpcUrl:`https://rpc.immutable.com`,contracts:g2[i0],commonRoutingTokens:u0,nativeToken:c0,wrappedNativeToken:l0}},y2={[Ve.SANDBOX]:_2,[Ve.PRODUCTION]:v2};function b2(e){for(let t of[`rpcURL`,`exchangeContracts`,`commonRoutingTokens`,`nativeToken`])if(!e[t])throw new w1(`Missing override: ${t}`);Object.entries(e.exchangeContracts).forEach(([e,t])=>{if(!z1(t))throw new w1(`Invalid exchange contract address for ${e}`)})}function x2(e){let t=0;for(let n of e){if(!z1(n.recipient))throw new w1(`Invalid secondary fee recipient address: ${n.recipient}`);if(n.basisPoints<=0||n.basisPoints>1e3)throw new w1(`Invalid secondary fee basis points: ${n.basisPoints}`);t+=n.basisPoints}if(t>1e3)throw new w1(`Invalid total secondary fee basis points: ${t}`)}var S2=class{baseConfig;chain;secondaryFees=[];constructor({chainId:e,baseConfig:t,secondaryFees:n,overrides:r}){if(this.baseConfig=t,this.secondaryFees=n||[],x2(this.secondaryFees),r){b2(r),this.chain={chainId:e,rpcUrl:r.rpcURL,contracts:r.exchangeContracts,commonRoutingTokens:r.commonRoutingTokens,nativeToken:r.nativeToken,wrappedNativeToken:r.wrappedNativeToken},this.secondaryFees=n||[];return}let i=y2[t.environment][e];if(!i)throw new T1(e,t.environment);this.chain=i}};let C2=(e,t,n,r,i)=>({amount:t0(e),amountWithMaxSlippage:t0(t),slippage:n,priceImpact:r,fees:i.withAmounts().map(e=>({...e,amount:t0(e.amount)}))});var w2=class e{provider;batchProvider;router;chainId;nativeToken;wrappedNativeToken;secondaryFees;nativeTokenService;swapProxyContractAddress;routerContractAddress;constructor(e){let t=new S2(e);this.chainId=t.chain.chainId,this.nativeToken=t.chain.nativeToken,this.wrappedNativeToken=t.chain.wrappedNativeToken,this.nativeTokenService=new C0(this.nativeToken,this.wrappedNativeToken),this.secondaryFees=t.secondaryFees,this.routerContractAddress=t.chain.contracts.swapRouter,this.swapProxyContractAddress=t.chain.contracts.immutableSwapProxy,this.provider=new bR(t.chain.rpcUrl,t.chain.chainId,{staticNetwork:!0}),this.batchProvider=new bR(t.chain.rpcUrl,t.chain.chainId);let n=L0.connect(t.chain.contracts.multicall,this.provider);this.router=new n2(this.batchProvider,n,t.chain.commonRoutingTokens,t.chain.contracts)}static validate(e,t,n,r,i){if(!z1(i))throw new O1(`Error: invalid from address`);if(!B1(e))throw new O1(`Error: invalid token in address`);if(!B1(t))throw new O1(`Error: invalid token out address`);if(e.toLocaleLowerCase()===t.toLocaleLowerCase())throw new k1;if(n>10)throw new D1(`Error: max hops must be less than or equal to 10`);if(n<1)throw new D1(`Error: max hops must be greater than or equal to 1`);if(r>50)throw new E1(`Error: slippage percent must be less than or equal to 50`);if(r<0)throw new E1(`Error: slippage percent must be greater than or equal to 0`)}async getSecondaryFees(e){return this.secondaryFees.length===0||await N0.connect(this.swapProxyContractAddress,e).paused()?[]:this.secondaryFees}parseTokenLiteral(e,t){return e===`native`?this.nativeToken:{type:`erc20`,address:e,chainId:this.chainId,decimals:t}}async getUnwrapTransaction(e,t,n,r){let i=n.encodeFunctionData(`withdraw`,[t]),a=r?t0(p0(!1,r,BigInt(35216))):null;return{transaction:{transaction:{data:i,to:this.wrappedNativeToken.address,from:e},gasFeeEstimate:a},approval:null}}getWrapTransaction(e,t,n,r){let i=n.encodeFunctionData(`deposit`),a=r?t0(p0(!1,r,BigInt(45038))):null;return{transaction:{transaction:{data:i,to:this.wrappedNativeToken.address,value:t,from:e},gasFeeEstimate:a},approval:null}}async getUnsignedWrapUnwrapTx(e,t,n,r){let i=t.token.type===`native`,a={token:e.type===`native`?this.wrappedNativeToken:this.nativeToken,value:t.value},o={amount:t0(a),amountWithMaxSlippage:t0(a),slippage:0,priceImpact:0,fees:[]},s=U0.createInterface(),c;return c=i?this.getWrapTransaction(n,a.value,s,r):await this.getUnwrapTransaction(n,a.value,s,r),{quote:o,approval:c.approval,swap:c.transaction}}async getUnsignedSwapTx(t,n,r,i,a,o,s,c){e.validate(n,r,o,a,t);let l=[R1(n,this.batchProvider,this.nativeToken),R1(r,this.batchProvider,this.nativeToken),this.getSecondaryFees(this.batchProvider),f0(this.batchProvider,this.nativeToken)],[u,d,f,p]=await Promise.all(l),m=this.parseTokenLiteral(n,u),h=this.parseTokenLiteral(r,d),[g,_]=c===WY.EXACT_INPUT?[m,h]:[h,m],v=W1(i,g);if(this.nativeTokenService.isWrapOrUnwrap(m,h))return this.getUnsignedWrapUnwrapTx(g,W1(i,m),t,p);let y=new k0(f,m),b=O0(v,y,c,this.nativeTokenService),x=h2(await this.router.findOptimalRoute(b,this.nativeTokenService.maybeWrapToken(_),c,o),v,y,this.nativeTokenService),S=p2(m,h,x,t,a,s,this.routerContractAddress,this.swapProxyContractAddress,p,f),{quotedAmount:C,quotedAmountWithMaxSlippage:w}=D0(this.nativeTokenService,x,a,_),T=v0(c,v,w,{routerAddress:this.routerContractAddress,secondaryFeeAddress:this.swapProxyContractAddress},f),E=T?await x0(this.provider,t,T,p):null;return{quote:C2(C,w,a,Number(x.priceImpact.toSignificant(10)),y),approval:E,swap:S}}async getUnsignedSwapTxFromAmountIn(e,t,n,r,i=N1,a=3,o=n0()){return await this.getUnsignedSwapTx(e,t,n,BigInt(r),i,a,o,WY.EXACT_INPUT)}async getUnsignedSwapTxFromAmountOut(e,t,n,r,i=N1,a=3,o=n0()){return await this.getUnsignedSwapTx(e,t,n,BigInt(r),i,a,o,WY.EXACT_OUTPUT)}},T2=d(c(((e,t)=>{function n({mustBeMetaMask:e=!1,silent:t=!1,timeout:n=3e3}={}){i();let r=!1;return new Promise(i=>{window.ethereum?a():(window.addEventListener(`ethereum#initialized`,a,{once:!0}),setTimeout(()=>{a()},n));function a(){if(r)return;r=!0,window.removeEventListener(`ethereum#initialized`,a);let{ethereum:n}=window;n&&(!e||n.isMetaMask)?i(n):(!t&&console.error(`@metamask/detect-provider:`,e&&n?`Non-MetaMask window.ethereum detected.`:`Unable to detect window.ethereum.`),i(null))}});function i(){if(typeof e!=`boolean`)throw Error(`@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.`);if(typeof t!=`boolean`)throw Error(`@metamask/detect-provider: Expected option 'silent' to be a boolean.`);if(typeof n!=`number`)throw Error(`@metamask/detect-provider: Expected option 'timeout' to be a number.`)}}t.exports=n}))(),1);let E2=function(e){return e.IMTBL_WIDGETS_PROVIDER=`imtbl-widgets-provider`,e.IMTBL_CONNECT_WIDGET_EVENT=`imtbl-connect-widget`,e.IMTBL_WALLET_WIDGET_EVENT=`imtbl-wallet-widget`,e.IMTBL_SWAP_WIDGET_EVENT=`imtbl-swap-widget`,e.IMTBL_BRIDGE_WIDGET_EVENT=`imtbl-bridge-widget`,e.IMTBL_ONRAMP_WIDGET_EVENT=`imtbl-onramp-widget`,e.IMTBL_SALE_WIDGET_EVENT=`imtbl-sale-widget`,e.IMTBL_COMMERCE_WIDGET_EVENT=`imtbl-commerce-widget`,e.IMTBL_ADD_TOKENS_WIDGET_EVENT=`imtbl-add-tokens-widget`,e.IMTBL_PURCHASE_WIDGET_EVENT=`imtbl-purchase-widget`,e.IMTBL_TRANSFER_WIDGET_EVENT=`imtbl-transfer-widget`,e}({}),D2=function(e){return e.PROVIDER_UPDATED=`PROVIDER_UPDATED`,e}({}),O2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.LANGUAGE_CHANGED=`language-changed`,e.WALLETCONNECT_PROVIDER_UPDATED=`walletconnect-provider-updated`,e}({}),k2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.NETWORK_SWITCH=`network-switch`,e.DISCONNECT_WALLET=`disconnect-wallet`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),A2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.REJECTED=`rejected`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),j2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.REJECTED=`rejected`,e.TRANSACTION_SUCCESS=`transaction-success`,e.LANGUAGE_CHANGED=`language-changed`,e.PAYMENT_METHOD=`payment-method`,e.REQUEST_BRIDGE=`request-bridge`,e.REQUEST_ONRAMP=`request-onramp`,e.REQUEST_SWAP=`request-swap`,e.PAYMENT_TOKEN=`payment-token`,e}({}),M2=function(e){return e.CRYPTO=`crypto`,e.DEBIT=`debit`,e.CREDIT=`credit`,e}({}),N2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.FAILURE=`failure`,e.TRANSACTION_SENT=`transaction-sent`,e.LANGUAGE_CHANGED=`language-changed`,e.CLAIM_WITHDRAWAL_SUCCESS=`claim-withdrawal-success`,e.CLAIM_WITHDRAWAL_FAILURE=`claim-withdrawal-failure`,e}({}),P2=function(e){return e.REQUEST_CONNECT=`request-connect`,e.REQUEST_WALLET=`request-wallet`,e.REQUEST_SWAP=`request-swap`,e.REQUEST_BRIDGE=`request-bridge`,e.REQUEST_ONRAMP=`request-onramp`,e.REQUEST_ADD_TOKENS=`request-add-tokens`,e.REQUEST_PURCHASE=`request-purchase`,e.REQUEST_GO_BACK=`request-go-back`,e}({}),F2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),I2=function(e){return e.INITIALISED=`INITIALISED`,e.PROVIDER_UPDATED=`PROVIDER_UPDATED`,e.CLOSE=`CLOSE`,e.SUCCESS=`SUCCESS`,e.FAILURE=`FAILURE`,e.DISCONNECTED=`DISCONNECTED`,e.USER_ACTION=`USER_ACTION`,e}({}),L2=function(e){return e.SWAP_SUCCESS=`SWAP_SUCCESS`,e.ONRAMP_SUCCESS=`ONRAMP_SUCCESS`,e.CONNECT_SUCCESS=`CONNECT_SUCCESS`,e.SALE_SUCCESS=`SALE_SUCCESS`,e.SALE_TRANSACTION_SUCCESS=`SALE_TRANSACTION_SUCCESS`,e.BRIDGE_SUCCESS=`BRIDGE_SUCCESS`,e.BRIDGE_CLAIM_WITHDRAWAL_SUCCESS=`BRIDGE_CLAIM_WITHDRAWAL_SUCCESS`,e.ADD_TOKENS_SUCCESS=`ADD_TOKENS_SUCCESS`,e.ADD_TOKENS_CONNECT_SUCCESS=`ADD_TOKENS_CONNECT_SUCCESS`,e.TRANSFER_SUCCESS=`TRANSFER_SUCCESS`,e}({}),R2=function(e){return e.BRIDGE_FAILED=`BRIDGE_FAILED`,e.BRIDGE_CLAIM_WITHDRAWAL_FAILED=`BRIDGE_CLAIM_WITHDRAWAL_FAILED`,e.SWAP_FAILED=`SWAP_FAILED`,e.SWAP_REJECTED=`SWAP_REJECTED`,e.CONNECT_FAILED=`CONNECT_FAILED`,e.SALE_FAILED=`SALE_FAILED`,e.ONRAMP_FAILED=`ONRAMP_FAILED`,e.ADD_TOKENS_FAILED=`ADD_TOKENS_FAILED`,e.TRANSFER_FAILED=`TRANSFER_FAILED`,e}({}),z2=function(e){return e.PAYMENT_METHOD_SELECTED=`PAYMENT_METHOD_SELECTED`,e.PAYMENT_TOKEN_SELECTED=`PAYMENT_TOKEN_SELECTED`,e.NETWORK_SWITCH=`NETWORK_SWITCH`,e}({}),B2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.LANGUAGE_CHANGED=`language-changed`,e.CONNECT_SUCCESS=`connect-success`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),V2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.CONNECT_SUCCESS=`connect-success`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),H2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.REJECTED=`rejected`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),U2=function(e){return e.CONNECT=`connect`,e.WALLET=`wallet`,e.SWAP=`swap`,e.BRIDGE=`bridge`,e.ONRAMP=`onramp`,e.SALE=`sale`,e.IMMUTABLE_COMMERCE=`immutableCommerce`,e.ADD_TOKENS=`addTokens`,e.PURCHASE=`purchase`,e.TRANSFER=`transfer`,e}({}),W2=function(e){return e.LAYER1=`LAYER1`,e.LAYER2=`LAYER2`,e}({}),G2=function(e){return e.FROM=`FROM`,e.TO=`TO`,e}({}),K2=function(e){return e.CONNECT=`CONNECT`,e.WALLET=`WALLET`,e.SALE=`SALE`,e.SWAP=`SWAP`,e.BRIDGE=`BRIDGE`,e.ONRAMP=`ONRAMP`,e.ADD_TOKENS=`ADD_TOKENS`,e.PURCHASE=`PURCHASE`,e.TRANSFER=`TRANSFER`,e}({}),q2=function(e){return e.LIGHT=`light`,e.DARK=`dark`,e}({}),J2=[`https://checkout-api.dev.immutable.com`,`https://checkout-api.sandbox.immutable.com`,`https://checkout-api.immutable.com`];var Y2=class{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=R.create(),this.setupInterceptors()}shouldAddPublishableKey(e){return J2.some(t=>e.startsWith(t))}setupInterceptors(){this.axiosInstance.interceptors.request.use(e=>{let t=this.config?.baseConfig?.publishableKey;if(t&&this.shouldAddPublishableKey(e.url||``)){if(!t.startsWith(`pk_imapik-`))throw Error(`Invalid Publishable key. Create your Publishable key in Immutable developer hub. https://hub.immutable.com`);e.headers[`x-immutable-publishable-key`]=t}return e},e=>Promise.reject(e))}async request(e){return await this.axiosInstance.request(e)}async get(e,t){let n={...t,url:e};return await this.request(n)}async post(e,t,n){let r={...n,data:t,url:e};return await this.request(r)}async put(e,t,n){let r={...n,data:t,url:e};return await this.request(r)}async delete(e,t,n){let r={...n,data:t,url:e};return await this.request(r)}};let X2=function(e){return e.MISSING_PARAMS=`MISSING_PARAMS`,e.WEB3_PROVIDER_ERROR=`WEB3_PROVIDER_ERROR`,e.PROVIDER_ERROR=`PROVIDER_ERROR`,e.DEFAULT_PROVIDER_ERROR=`DEFAULT_PROVIDER_ERROR`,e.CONNECT_PROVIDER_ERROR=`CONNECT_PROVIDER_ERROR`,e.GET_BALANCE_ERROR=`GET_BALANCE_ERROR`,e.GET_INDEXER_BALANCE_ERROR=`GET_INDEXER_BALANCE_ERROR`,e.GET_ERC20_INFO_ERROR=`GET_ERC20_INFO_ERROR`,e.GET_ERC20_BALANCE_ERROR=`GET_ERC20_BALANCE_ERROR`,e.GET_ERC721_BALANCE_ERROR=`GET_ERC721_BALANCE_ERROR`,e.GET_NETWORK_INFO_ERROR=`GET_NETWORK_INFO_ERROR`,e.METAMASK_PROVIDER_ERROR=`METAMASK_PROVIDER_ERROR`,e.CHAIN_NOT_SUPPORTED_ERROR=`CHAIN_NOT_SUPPORTED_ERROR`,e.PROVIDER_REQUEST_MISSING_ERROR=`PROVIDER_REQUEST_MISSING_ERROR`,e.PROVIDER_REQUEST_FAILED_ERROR=`PROVIDER_REQUEST_FAILED_ERROR`,e.USER_REJECTED_REQUEST_ERROR=`USER_REJECTED_REQUEST_ERROR`,e.TRANSACTION_FAILED=`TRANSACTION_FAILED`,e.INSUFFICIENT_FUNDS=`INSUFFICIENT_FUNDS`,e.UNPREDICTABLE_GAS_LIMIT=`UNPREDICTABLE_GAS_LIMIT`,e.INVALID_GAS_ESTIMATE_TYPE=`INVALID_GAS_ESTIMATE_TYPE`,e.UNSUPPORTED_TOKEN_TYPE_ERROR=`UNSUPPORTED_TOKEN_TYPE_ERROR`,e.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR=`UNSUPPORTED_BALANCE_REQUIREMENT_ERROR`,e.GET_ORDER_LISTING_ERROR=`GET_ORDER_LISTING_ERROR`,e.CANCEL_ORDER_LISTING_ERROR=`CANCEL_ORDER_LISTING_ERROR`,e.PREPARE_ORDER_LISTING_ERROR=`PREPARE_ORDER_LISTING_ERROR`,e.CREATE_ORDER_LISTING_ERROR=`CREATE_ORDER_LISTING_ERROR`,e.FULFILL_ORDER_LISTING_ERROR=`FULFILL_ORDER_LISTING_ERROR`,e.SWITCH_NETWORK_UNSUPPORTED=`SWITCH_NETWORK_UNSUPPORTED`,e.GET_ERC20_ALLOWANCE_ERROR=`GET_ERC20_ALLOWANCE_ERROR`,e.GET_ERC721_ALLOWANCE_ERROR=`GET_ERC721_ALLOWANCE_ERROR`,e.GET_ERC1155_ALLOWANCE_ERROR=`GET_ERC1155_ALLOWANCE_ERROR`,e.EXECUTE_APPROVAL_TRANSACTION_ERROR=`EXECUTE_APPROVAL_TRANSACTION_ERROR`,e.EXECUTE_FULFILLMENT_TRANSACTION_ERROR=`EXECUTE_FULFILLMENT_TRANSACTION_ERROR`,e.SIGN_MESSAGE_ERROR=`SIGN_MESSAGE_ERROR`,e.BRIDGE_GAS_ESTIMATE_ERROR=`BRIDGE_GAS_ESTIMATE_ERROR`,e.ORDER_FEE_ERROR=`ORDER_FEE_ERROR`,e.ITEM_REQUIREMENTS_ERROR=`ITEM_REQUIREMENTS_ERROR`,e.API_ERROR=`API_ERROR`,e.ORDER_EXPIRED_ERROR=`ORDER_EXPIRED_ERROR`,e.WIDGETS_SCRIPT_LOAD_ERROR=`WIDGETS_SCRIPT_LOAD_ERROR`,e.APPROVAL_TRANSACTION_FAILED=`APPROVAL_TRANSACTION_FAILED`,e}({});var $=class extends Error{message;type;data;constructor(e,t,n){super(e),this.message=e,this.type=t,this.data=n}};let Z2=async(e,t)=>{try{return await e()}catch(e){let n=e?.error?.message??(e.message||`UnknownError`),r=t.message?`[${t.type}]:${t.message}. Cause:${n}`:`[${t.type}] Cause:${n}`;throw e instanceof $?new $(r,t.type,{...t.data,innerErrorType:e.type,...e.data}):new $(r,t.type,{...t.data})}},Q2=function(e){return e[e.IMTBL_ZKEVM_MAINNET=13371]=`IMTBL_ZKEVM_MAINNET`,e[e.IMTBL_ZKEVM_TESTNET=13473]=`IMTBL_ZKEVM_TESTNET`,e[e.IMTBL_ZKEVM_DEVNET=15003]=`IMTBL_ZKEVM_DEVNET`,e[e.ETHEREUM=1]=`ETHEREUM`,e[e.SEPOLIA=11155111]=`SEPOLIA`,e}({}),$2=function(e){return e.ETHEREUM=`Ethereum`,e.SEPOLIA=`Sepolia`,e.IMTBL_ZKEVM_TESTNET=`Immutable zkEVM Testnet`,e.IMTBL_ZKEVM_DEVNET=`Immutable zkEVM Dev`,e.IMTBL_ZKEVM_MAINNET=`Immutable zkEVM`,e}({}),e4=function(e){return e.ETHEREUM=`ethereum`,e.SEPOLIA=`sepolia`,e.IMTBL_ZKEVM_MAINNET=`imtbl-zkevm-mainnet`,e.IMTBL_ZKEVM_TESTNET=`imtbl-zkevm-testnet`,e.IMTBL_ZKEVM_DEVNET=`imtbl-zkevm-devnet`,e}({}),t4=`development`,n4=`native`,r4={name:`IMX`,symbol:`IMX`,decimals:18,address:n4},i4={name:`tIMX`,symbol:`tIMX`,decimals:18,address:n4},a4={[t4]:`https://api.dev.immutable.com`,[Ve.SANDBOX]:`https://api.sandbox.immutable.com`,[Ve.PRODUCTION]:`https://api.immutable.com`},o4={[t4]:`https://checkout-api.dev.immutable.com`,[Ve.SANDBOX]:`https://checkout-api.sandbox.immutable.com`,[Ve.PRODUCTION]:`https://checkout-api.immutable.com`};Ve.SANDBOX,Ve.PRODUCTION;let s4=new Map([[1,{chainIdHex:`0x1`,chainName:`Ethereum`,rpcUrls:[`https://checkout-api.immutable.com/v1/rpc/eth-mainnet`],nativeCurrency:{name:`Ethereum`,symbol:`ETH`,decimals:18},blockExplorerUrls:[`https://etherscan.io/`]}],[13371,{chainIdHex:`0x343b`,chainName:`Immutable zkEVM`,rpcUrls:[`https://rpc.immutable.com`],nativeCurrency:r4}]]),c4=new Map([[11155111,{chainIdHex:`0xaa36a7`,chainName:`Sepolia`,rpcUrls:[`https://checkout-api.sandbox.immutable.com/v1/rpc/eth-sepolia`],nativeCurrency:{name:`Sep Eth`,symbol:`ETH`,decimals:18},blockExplorerUrls:[`https://sepolia.etherscan.io/`]}],[13473,{chainIdHex:`0x34a1`,chainName:`Immutable zkEVM Testnet`,rpcUrls:[`https://rpc.testnet.immutable.com`],nativeCurrency:i4}]]),l4=new Map([[11155111,{chainIdHex:`0xaa36a7`,chainName:`Sepolia`,rpcUrls:[`https://checkout-api.dev.immutable.com/v1/rpc/eth-sepolia`],nativeCurrency:{name:`Sep Eth`,symbol:`ETH`,decimals:18},blockExplorerUrls:[`https://sepolia.etherscan.io/`]}],[15003,{chainIdHex:`0x3a9b`,chainName:`Immutable zkEVM Dev`,rpcUrls:[`https://rpc.dev.immutable.com`],nativeCurrency:r4}]]),u4={13473:{url:`https://explorer.testnet.immutable.com`,nativeToken:c4.get(13473).nativeCurrency},13371:{url:`https://explorer.immutable.com`,nativeToken:s4.get(13371).nativeCurrency},11155111:{url:`https://eth-sepolia.blockscout.com`,nativeToken:c4.get(11155111).nativeCurrency},1:{url:`https://eth.blockscout.com/`,nativeToken:s4.get(1).nativeCurrency}},d4=[{constant:!0,inputs:[],name:`name`,outputs:[{name:``,type:`string`}],payable:!1,type:`function`},{constant:!0,inputs:[],name:`decimals`,outputs:[{name:``,type:`uint8`}],payable:!1,type:`function`},{constant:!0,inputs:[{name:`_owner`,type:`address`}],name:`balanceOf`,outputs:[{name:`balance`,type:`uint256`}],payable:!1,type:`function`},{constant:!0,inputs:[],name:`symbol`,outputs:[{name:``,type:`string`}],payable:!1,type:`function`},{constant:!0,inputs:[{name:`_owner`,type:`address`},{name:`_spender`,type:`address`}],name:`allowance`,outputs:[{name:``,type:`uint256`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!1,inputs:[{name:`_spender`,type:`address`},{name:`_value`,type:`uint256`}],name:`approve`,outputs:[{name:``,type:`bool`}],payable:!1,stateMutability:`nonpayable`,type:`function`}],f4=[{constant:!1,inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`approve`,outputs:[],payable:!1,stateMutability:`nonpayable`,type:`function`},{constant:!0,inputs:[{internalType:`address`,name:`owner`,type:`address`},{internalType:`address`,name:`operator`,type:`address`}],name:`isApprovedForAll`,outputs:[{internalType:`bool`,name:``,type:`bool`}],payable:!1,stateMutability:`view`,type:`function`},{constant:!0,inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`getApproved`,outputs:[{internalType:`address`,name:``,type:`address`}],payable:!1,stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`tokenId`,type:`uint256`}],name:`ownerOf`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`}],p4=[{inputs:[{internalType:`address`,name:`account`,type:`address`},{internalType:`address`,name:`operator`,type:`address`}],name:`isApprovedForAll`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`operator`,type:`address`},{internalType:`bool`,name:`approved`,type:`bool`}],name:`setApprovalForAll`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`},{internalType:`uint256`,name:`id`,type:`uint256`}],name:`balanceOf`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`}],m4={maxFeePerGas:BigInt(15e9),maxPriorityFeePerGas:BigInt(1e10)},h4=()=>`2.24.3-0`,g4=(e,t)=>{let n=()=>e?a4[t4]:t?a4[Ve.PRODUCTION]:a4[Ve.SANDBOX];return{checkDexAvailability:async()=>{let e;try{e=await R.post(`${n()}/v1/availability/checkout/swap`)}catch(t){if(e=t.response,e.status===403)return!1;throw new $(`Error fetching from api: ${e.status} ${e.statusText}`,`API_ERROR`,{error:t})}return!0}}},_4=function(e){return e.BRIDGE_TO_L2=`BRIDGE_TO_L2`,e.SWAP=`SWAP`,e}({}),v4=function(e){return e.ALL=`all`,e}({}),y4=function(e){return e.ALL=`all`,e.SWAP=`swap`,e.BRIDGE=`bridge`,e.ONRAMP=`onramp`,e}({}),b4=function(e){return e.ALL=`all`,e}({}),x4=function(e){return e.PASSPORT=`passport`,e.METAMASK=`metamask`,e.WALLETCONNECT=`walletconnect`,e}({}),S4=function(e){return e.PASSPORT=`com.immutable.passport`,e.METAMASK=`io.metamask`,e.WALLETCONNECT=`walletconnect`,e}({}),C4={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var w4=class extends wR{ethereumProvider;constructor(e,t,n){super(e,t,n),this.#e(e)}#e(e){!(`request`in e)||typeof e.request!=`function`||(this.ethereumProvider=e)}};let T4=function(e){return e.SUCCESS=`SUCCESS`,e.FAILED=`FAILED`,e.INSUFFICIENT_FUNDS=`INSUFFICIENT_FUNDS`,e.FULFILLMENTS_UNSETTLED=`FULFILLMENTS_UNSETTLED`,e}({}),E4=function(e){return e.NATIVE=`NATIVE`,e.ERC20=`ERC20`,e.ERC721=`ERC721`,e.ERC1155=`ERC1155`,e}({}),D4=function(e){return e.TRANSACTION=`TRANSACTION`,e.GAS=`GAS`,e}({}),O4=function(e){return e.NATIVE=`NATIVE`,e.ERC20=`ERC20`,e}({}),k4=function(e){return e.ROUTES_FOUND=`ROUTES_FOUND`,e.NO_ROUTES_FOUND=`NO_ROUTES_FOUND`,e.NO_ROUTE_OPTIONS=`NO_ROUTE_OPTIONS`,e}({}),A4=function(e){return e.GAS=`GAS`,e.BRIDGE_FEE=`BRIDGE_FEE`,e.SWAP_FEE=`SWAP_FEE`,e.IMMUTABLE_FEE=`IMMUTABLE_FEE`,e}({}),j4=function(e){return e.BRIDGE=`BRIDGE`,e.SWAP=`SWAP`,e.ONRAMP=`ONRAMP`,e}({}),M4=function(e){return e.ONRAMP=`onramp`,e}({});async function N4(e){if(!e.send)throw new $(`Parsed provider is not a valid WrappedBrowserProvider`,`WEB3_PROVIDER_ERROR`);let t=await e.send(`eth_chainId`,[]);if(typeof t!=`bigint`)throw new $(`Invalid chainId`,`WEB3_PROVIDER_ERROR`);return t}async function P4(e){let t=await e.getNetwork();return t.chainId&&typeof t.chainId==`bigint`?t.chainId:N4(e)}let F4=4902;async function I4(e,t,n){return await t.send(`wallet_switchEthereumChain`,[{chainId:e.get(n)?.chainIdHex}])}async function L4(e,t,n){if(t.send){let r=e.get(n),i={chainId:r?.chainIdHex,chainName:r?.chainName,rpcUrls:r?.rpcUrls,nativeCurrency:r?.nativeCurrency,blockExplorerUrls:r?.blockExplorerUrls};return await t.send(`wallet_addEthereumChain`,[i])}return Promise.reject(`Provider does not support request method`)}async function R4(e,{type:t=`all`,exclude:n}){let{networkMap:r}=e,i=await e.remote.getConfig(`allowedNetworks`);i||console.warn(`No allowed networks configured`);let a=(i||[]).filter(e=>{let r=t===`all`,i=!(n||[]).map(e=>e.chainId).includes(e.chainId);return r&&i}),o=[];return a.forEach(e=>{let t=r.get(e.chainId);t&&o.push({name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0})}),{networks:o}}async function z4(e,t){let{networkMap:n}=e;return Z2(async()=>{try{let e=await t.getNetwork();if(Array.from(n.keys()).includes(Number(e.chainId))){let t=n.get(Number(e.chainId));return{name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0}}return{chainId:Number(e.chainId),name:e.name,isSupported:!1}}catch{let e=await P4(t),r=Array.from(n.keys()).includes(Number(e));return{chainId:Number(e),isSupported:r}}},{type:`GET_NETWORK_INFO_ERROR`})}let B4=e=>e.error?.data?.originalError?.code===F4||e.error?.code===F4;async function V4(e,t,n){let{networkMap:r}=e;if(!(await R4(e,{type:`all`})).networks.some(e=>e.chainId===n))throw new $(`Chain:${n} is not a supported chain`,`CHAIN_NOT_SUPPORTED_ERROR`);if(t.ethereumProvider?.isPassport)throw new $(`Switching networks with Passport provider is not supported`,`SWITCH_NETWORK_UNSUPPORTED`);try{await I4(r,t,n)}catch(e){if(console.error(e),B4(e))try{await L4(r,t,n)}catch(e){throw new $(`User cancelled add network request`,`USER_REJECTED_REQUEST_ERROR`,{error:e})}else throw new $(`User cancelled switch network request`,`USER_REJECTED_REQUEST_ERROR`)}let i=new w4(t.ethereumProvider),a=await i.getNetwork();if(Number(a.chainId)!==n)throw new $(`User cancelled switch network request`,`USER_REJECTED_REQUEST_ERROR`);return{network:await z4(e,i),provider:i}}var H4=class{httpClient;endpoint;configCache;version=`v1`;constructor(e,t){this.endpoint=t.remoteConfigEndpoint,this.httpClient=e}parseResponse(e){let t=e.data;if(e.data&&typeof e.data!=`object`)try{t=JSON.parse(e.data)}catch(e){throw new $(`Invalid configuration`,`API_ERROR`,{error:e})}return t}async loadConfig(){if(this.configCache)return this.configCache;let e;try{e=await this.httpClient.get(`${this.endpoint}/${this.version}/config`)}catch(e){throw new $(`Error: ${e.message}`,`API_ERROR`,{error:e})}return this.configCache=this.parseResponse(e),this.configCache}async getConfig(e){let t=await this.loadConfig();if(t)return e?t[e]:t}getHttpClient=()=>this.httpClient},U4=class{httpClient;remoteConfig;baseUrl;chainSlug;tokensCache;constructor(e,t,n){this.baseUrl=n.baseUrl,this.chainSlug=n.chainSlug,this.httpClient=e,this.remoteConfig=t}async loadTokens(){if(this.tokensCache)return this.tokensCache;let e;try{e=await this.httpClient.get(`${this.baseUrl}/v1/chains/${this.chainSlug}/tokens?verification_status=verified&is_canonical=true`)}catch(e){throw new $(`Error: ${e.message}`,`API_ERROR`,{error:e})}let t=this.parseResponse(e);return this.tokensCache=await this.getMappingsForTokensResponse(t?.result||[]),this.tokensCache}async getChainTokensConfig(){return await this.loadTokens()??{}}async getTokensConfig(e){let t=await this.loadTokens();return!t||!t[e]?[]:t[e]??[]}async getMappingsForTokensResponse(e){let t={},n=await this.fetchIMXTokenMappings();return Object.keys(n).forEach(e=>{let r=parseInt(e,10);t[r]=[],t[r]?.push({address:n[e],decimals:18,name:`IMX`,symbol:`IMX`,bridge:`native`})}),e.forEach(e=>{let n=parseInt(e.chain.id.split(`eip155:`).pop()||``,10);if(!e.symbol||!e.decimals)return;t[n]||(t[n]=[]);let r={address:e.contract_address.toLowerCase(),decimals:e.decimals,name:e.name,symbol:e.symbol,icon:e.image_url??void 0,bridge:e.bridge_used??null};t[n]?.push(r);let i=parseInt(e.root_chain_id?.split(`eip155:`).pop()||``,10),a=e.root_contract_address?.toLowerCase();i&&a&&(t[i]||(t[i]=[]),a===`0x0000000000000000000000000000000000000eee`&&(a=`native`),t[i]?.push({...r,address:a}))}),t}parseResponse(e){let t=e.data;if(e.data&&typeof e.data!=`object`)try{t=JSON.parse(e.data)}catch(e){throw new $(`Invalid token data`,`API_ERROR`,{error:e})}return t}async fetchIMXTokenMappings(){return await this.remoteConfig.getConfig(`imxAddressMapping`)}},W4=class extends Error{message;constructor(e){super(e),this.message=e}};let G4=(e,t)=>t?l4:e?s4:c4,K4=(e,t)=>t?a4[t4]:e?a4[Ve.PRODUCTION]:a4[Ve.SANDBOX],q4=(e,t)=>t?`imtbl-zkevm-devnet`:e?`imtbl-zkevm-mainnet`:`imtbl-zkevm-testnet`,J4=e=>e.isProduction?1:11155111,Y4=e=>e.isDevelopment?15003:e.isProduction?13371:13473,X4=(e,t)=>t?o4[t4]:e?o4[Ve.PRODUCTION]:o4[Ve.SANDBOX];var Z4=class{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;tokens;environment;networkMap;publishableKey;l1ChainId;l2ChainId;overrides;constructor(e,t){if(!Object.values(Ve).includes(e.baseConfig.environment))throw new W4(`Invalid checkout configuration of environment`);this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===Ve.PRODUCTION,this.isOnRampEnabled=e.onRamp?.enable??!0,this.isSwapEnabled=e.swap?.enable??!0,this.isBridgeEnabled=e.bridge?.enable??!0,this.publishableKey=e.publishableKey??`<no-publishable-key>`,this.networkMap=e.overrides?.networkMap??G4(this.isProduction,this.isDevelopment);let n=e.overrides?.remoteConfigEndpoint??X4(this.isProduction,this.isDevelopment);this.remote=new H4(t,{remoteConfigEndpoint:n}),this.tokens=new U4(t,this.remote,{baseUrl:e.overrides?.baseUrl??K4(this.isProduction,this.isDevelopment),chainSlug:e.overrides?.chainSlug??q4(this.isProduction,this.isDevelopment)}),this.l1ChainId=J4(this),this.l2ChainId=e.overrides?.l2ChainId??Y4(this),this.overrides=e.overrides??{}}get sdkVersion(){return h4()}};let Q4=(e=``,t=``)=>e.toLowerCase()===t.toLowerCase(),$4=e=>e===15003||e===13473||e===13371,e3=(e,t)=>{let n=e.indexOf(`.`),r=e.substring(n+t+1);if(r&&parseFloat(r)>=1){let r=e.substring(0,n+t+1),i=1/10**t;return(parseFloat(r)+i).toString()}return parseFloat(e.substring(0,n+t+1)).toString()},t3=(e,t=6)=>e.indexOf(`.`)===-1?e:e3(e,t),n3=async(e,{type:t=`all`,chainId:n,exclude:r})=>{let i=[],a,o,s=n??J4(e),c=Y4(e);switch(t){case`swap`:i=await e.tokens.getTokensConfig(c),o=((await e.remote.getConfig(`dex`))?.blocklist||[]).map(e=>e.address.toLowerCase()),i=i.filter(e=>e.address&&!o.includes(e.address));break;case`onramp`:a=await e.remote.getConfig(`onramp`),a||(i=[]),i=a[`201811419111`]?.tokens||[];break;case`bridge`:i=(await e.tokens.getTokensConfig(s)).filter(e=>e.bridge===`native`);break;default:i=await e.tokens.getTokensConfig(s)}return!r||r?.length===0?{tokens:i}:{tokens:i.filter(e=>!r.map(e=>e.address).includes(e.address||``))}},r3=e=>!e||Q4(e,`native`);async function i3(e,t){return await Z2(async()=>{let n=new JI(t,JSON.stringify(d4),e),[r,i,a]=await Promise.all([n.name(),n.symbol(),n.decimals()]);return{name:r,symbol:i,decimals:a,address:t}},{type:`GET_ERC20_INFO_ERROR`})}var a3=class{url;nativeToken;ttl;chainId;cacheMap;httpClient;setCache(e,t){this.cacheMap[e]={data:t,ttl:new Date().getTime()+this.ttl*1e3}}getCache(e){let t=this.cacheMap[e];return!t||t.ttl<=new Date().getTime()?null:t.data}constructor(e,t,n){this.httpClient=e,this.chainId=t,this.url=u4[this.chainId].url;let r=u4[this.chainId].nativeToken;this.nativeToken={address:r.address??``,decimals:r.decimals.toString(),name:r.name,symbol:r.symbol},this.cacheMap={},this.ttl=n===void 0?5:n}static isChainSupported=e=>!!u4[e];static isBlockscoutError=e=>`code`in e;async getTokensByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}/tokens?type=${e.tokenType}`;e.nextPage&&(t+=`&${new URLSearchParams(e.nextPage)}`);let n=this.getCache(t);if(n)return Promise.resolve(n);let r=await this.httpClient.get(t),i={items:(r.data?.items?.map(e=>{let t={...e.token,address:e.token.address_hash,holders:e.token.holders_count};return{...e,token:t}})||[]).filter(e=>e.token.address&&e.token.address!==this.nativeToken.address),next_page_params:r.data?.next_page_params};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=wi.InternalServerError,n=`InternalServerError`;return R.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}async getNativeTokenByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}`,n=this.getCache(t);if(n)return Promise.resolve(n);let r=await this.httpClient.get(t),i={token:this.nativeToken,value:r.data.coin_balance};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=wi.InternalServerError,n=`InternalServerError`;return R.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}};let o3=(e,t,n)=>{e.isProduction||console.info(t,n)},s3=async(e,t,n)=>{let r=performance.now(),i=await n,a=(performance.now()-r)/1e3;return o3(e,t,a),i},c3=async(e,t,n)=>await Z2(async()=>{let r=await z4(e,t);if(!r.isSupported)throw new $(`Chain:${r.chainId} is not a supported chain`,`CHAIN_NOT_SUPPORTED_ERROR`,{chainName:r.name});let i=await t.getBalance(n);return{balance:i,formattedBalance:yO(i,r.nativeCurrency.decimals),token:r.nativeCurrency}},{type:`GET_BALANCE_ERROR`});async function l3(e,t,n){return await Z2(async()=>{let r=new JI(n,JSON.stringify(d4),e);return Promise.all([i3(e,n),r.balanceOf(t)]).then(([e,t])=>({balance:t,formattedBalance:yO(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:n}}))},{type:`GET_ERC20_BALANCE_ERROR`})}let u3=new Map,d3=()=>u3.clear(),f3=async(e,t,n,r)=>{let i=r!==void 0,a=Object.assign({},...(r??[]).map(e=>({[e.address?.toLowerCase()||`native`]:e}))),o=u3.get(n);o||(o=new a3(e.remote.getHttpClient(),n),u3.set(n,o));let s=[];await Promise.all([(async e=>{let n;try{do n=await e.getTokensByWalletAddress({walletAddress:t,tokenType:`ERC-20`,nextPage:n?.next_page_params}),s.push(...n.items);while(n.next_page_params)}catch(e){if(e?.code!==wi.NotFound)throw new $(e.message||`InternalServerError | getTokensByWalletAddress`,`GET_INDEXER_BALANCE_ERROR`,{error:e})}})(o),(async e=>{try{let n=await e.getNativeTokenByWalletAddress({walletAddress:t});n.token.address||=n4,s.push(n)}catch(e){if(e?.code!==wi.NotFound)throw new $(e.message||`InternalServerError | getNativeTokenByWalletAddress`,`GET_INDEXER_BALANCE_ERROR`,{error:e})}})(o)]);let c=[];return s.forEach(e=>{let t=a[e.token.address.toLowerCase()];if(i&&!t)return;let n=e.token||{};if(e.value==null)return;let r=BigInt(e.value),o=parseInt(n.decimals,10);Number.isNaN(o)&&(o=18);let s=n.icon_url??t.icon,l={...n,decimals:o,icon:s},u=yO(e.value,l.decimals);c.push({balance:r,formattedBalance:u,token:l})}),{balances:c}},p3=async(e,t,n,r)=>{let i=[];return r.forEach(r=>{!r.address||Q4(r.address,`native`)?i.push(c3(e,t,n)):i.push(l3(t,n,r.address))}),(await Promise.allSettled(i)).reduce((e,t)=>{if(t.status!==`fulfilled`||t.value.balance===0n)return e;let{value:n}=t;return(!n.token.address||Q4(n.token.address,`native`))&&(n.token.address=n4),e.balances.push(n),e},{balances:[]})},m3=async(e,t,n,r,i)=>{if(!t)throw new $(`indexer is disabled for this chain, you must provide a provider.`,`MISSING_PARAMS`);let a=n;return a||=await(await t.getSigner()).getAddress(),await s3(e,`Time to fetch balances using RPC for ${r}`,p3(e,t,a,i))},h3=async(e,t,n,r,i=!1)=>{if(!n&&!t)throw new $(`both walletAddress and provider are missing. At least one must be provided.`,`MISSING_PARAMS`);if(!e.networkMap.get(r))throw new $(`chain ID ${r} not supported by the environment`,`CHAIN_NOT_SUPPORTED_ERROR`);let{tokens:a}=await n3(e,{type:`all`,chainId:r});if(i&&d3(),a3.isChainSupported(r)){let i=n??await(await t?.getSigner())?.getAddress();try{return await s3(e,`Time to fetch balances using blockscout for ${r}`,f3(e,i,r,a))}catch(i){if(i.type===`GET_INDEXER_BALANCE_ERROR`&&i.data?.error?.code===wi.TooManyRequests)return m3(e,t,n,r,a);throw i}}return m3(e,t,n,r,a)};async function g3(e){if(!e?.send)throw new $(`Check wallet connection request failed`,`PROVIDER_REQUEST_FAILED_ERROR`,{rpcMethod:`eth_accounts`});let t=[];try{t=await e.send(`eth_accounts`,[])}catch(e){throw new $(`Check wallet connection request failed`,`PROVIDER_REQUEST_FAILED_ERROR`,{error:e,rpcMethod:`eth_accounts`})}return{isConnected:t&&t.length>0,walletAddress:t[0]??``}}async function _3(e){if(!e||!e.send)throw new $(`Incompatible provider`,`PROVIDER_REQUEST_MISSING_ERROR`,{details:`Attempting to connect with an incompatible provider`});return await Z2(async()=>{e.send&&await e.send(`eth_requestAccounts`,[])},{type:`USER_REJECTED_REQUEST_ERROR`}),e}async function v3(e){if(!e||!e.send)throw new $(`Incompatible provider`,`PROVIDER_REQUEST_MISSING_ERROR`,{details:`Attempting to connect with an incompatible provider`});return await Z2(async()=>{e.send&&await e.send(`wallet_requestPermissions`,[{eth_accounts:{}}])},{type:`USER_REJECTED_REQUEST_ERROR`}),e}var y3=class{config;constructor(e){this.config=e}async feeEstimate(){return(await this.config.remote.getConfig(`onramp`))[`201811419111`]?.fees}async createWidgetUrl(e,t=new Y2){return await this.getTransakWidgetUrl(e,t)}async getTransakWidgetUrl(e,t){let n=await this.config.remote.getConfig(`onramp`),r=`${a4[this.config.environment]}/checkout/v1/widget-url`,i={api_key:n[`201811419111`].publishableApiKey,network:`immutablezkevm`,default_payment_method:`credit_debit_card`,disable_payment_methods:``,products_availed:`buy`,exchange_screen_title:e.customSubTitle===``?` `:e.customSubTitle??`Buy`,theme_color:`FFFFFF`,default_crypto_currency:e.tokenSymbol||`IMX`,hide_menu:!(e.showMenu??!0),referrer_domain:window.location.origin};return e.isPassport&&e.email&&(i={...i,email:e.email,is_auto_fill_user_data:!0,disable_wallet_address_form:!0}),i=e.tokenAmount&&e.tokenSymbol?{...i,default_crypto_amount:e.tokenAmount,crypto_currency_code:e.tokenSymbol}:{...i,default_fiat_amount:50,default_fiat_currency:`usd`},e.walletAddress&&(i={...i,wallet_address:e.walletAddress}),e.allowedTokens&&(i={...i,crypto_currency_list:e.allowedTokens?.join(`,`).toLowerCase()}),(await t.post(r,i,{method:`POST`})).data.url}};async function b3(e,t,n,r){let i=t===J4(r)?Dq.DEPOSIT:Dq.WITHDRAW;return await e.getFee({action:i,gasMultiplier:`auto`,sourceChainId:t.toString(),destinationChainId:n.toString(),token:`NATIVE`,amount:BigInt(0)})}function x3(e,t,n,r){let i=n.get(e),a=n.get(t);if(!i)throw new $(`Chain:${e} is not a supported chain`,`CHAIN_NOT_SUPPORTED_ERROR`);if(!a)throw new $(`Chain:${t} is not a supported chain`,`CHAIN_NOT_SUPPORTED_ERROR`);let o=Bq;return r.isDevelopment&&(o=zq),r.isProduction&&(o=Vq),new RJ(new UJ({baseConfig:new Ue({environment:r.environment}),bridgeInstance:o,rootProvider:i,childProvider:a}))}async function S3(e,t){let n=await t.remote.getConfig(`dex`);return new w2({chainId:e,baseConfig:new Ue({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function C3(e){return new Cq({baseConfig:{environment:e.environment}})}function w3(e){return new cc({baseConfig:{environment:e.environment}})}function T3(e,t,n){return new JI(e,t,n)}async function E3(e,t){let n=J4(t),r=Y4(t);if(!e.get(n))throw Error(`Missing JsonRpcProvider for chain id: ${n}`);try{return{gasEstimateType:`BRIDGE_TO_L2`,fees:await b3(x3(n,r,e,t),n,r,t),token:t.networkMap.get(n)?.nativeCurrency}}catch{return{gasEstimateType:`BRIDGE_TO_L2`,fees:{sourceChainGas:BigInt(0),approvalFee:BigInt(0),bridgeFee:BigInt(0),imtblFee:BigInt(0),totalFees:BigInt(0)},token:t.networkMap.get(n)?.nativeCurrency}}}async function D3(e){let t=Y4(e),{inAddress:n,outAddress:r}=(await e.remote.getConfig(`gasEstimateTokens`))[t].swapAddresses;try{let{swap:i}=await(await S3(t,e)).getUnsignedSwapTxFromAmountIn(`0x0000000000000000000000000000000000000001`,n,r,BigInt(bO(`1`,18)));return i.gasFeeEstimate?{gasEstimateType:`SWAP`,fees:{totalFees:i.gasFeeEstimate.value?BigInt(i.gasFeeEstimate.value):void 0,token:{address:i.gasFeeEstimate.token.address,symbol:i.gasFeeEstimate.token.symbol??``,name:i.gasFeeEstimate.token.name??``,decimals:i.gasFeeEstimate.token.decimals??18}}}:{gasEstimateType:`SWAP`,fees:{}}}catch{return{gasEstimateType:`SWAP`,fees:{}}}}async function O3(e,t,n){switch(e.gasEstimateType){case`BRIDGE_TO_L2`:return await E3(t,n);case`SWAP`:return await D3(n);default:throw new $(`Invalid type provided for gasEstimateType`,`INVALID_GAS_ESTIMATE_TYPE`)}}let k3=e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas,A3=e=>{if(k3(e)){let{maxFeePerGas:t,maxPriorityFeePerGas:n}=e;return t===null||n===null?null:n+(t-n)/BigInt(2)}return e.gasPrice?e.gasPrice:null};function j3(e){if(typeof window>`u`)return;let t=t=>e(t.detail);return window.addEventListener(`eip6963:announceProvider`,t),window.dispatchEvent(new CustomEvent(`eip6963:requestProvider`)),()=>window.removeEventListener(`eip6963:announceProvider`,t)}function M3(){let e=new Set,t=[],n=()=>j3(n=>{t.some(({info:e})=>e.uuid===n.info.uuid)||(t=[...t,n],e.forEach(e=>e(t,{added:[n]})))}),r=n();return{_listeners(){return e},clear(){e.forEach(e=>e([],{removed:[...t]})),t=[]},destroy(){this.clear(),e.clear(),r?.()},findProvider({rdns:e}){return t.find(t=>t.info.rdns===e)},getProviders(){return t},reset(){this.clear(),r?.(),r=n()},subscribe(n,{emitImmediately:r}={}){return e.add(n),r&&n(t,{added:t}),()=>e.delete(n)}}}var N3=class e{static instance;store;resetTimeout;isInit=!1;constructor(){this.store=M3(),this.store.reset()}static getInstance(){return e.instance||=new e,e.instance}findProvider(e){return this.store.findProvider(e)}getProviders(){return this.store.getProviders()}subscribe(e){return this.store.subscribe(e)}clear(){this.store.clear()}reset(){clearTimeout(this.resetTimeout),this.resetTimeout=setTimeout(()=>{this.store.reset()},200)}initialise(){this.isInit||(this.isInit=!0,this.reset())}requestProviders(){window.dispatchEvent(new CustomEvent(`eip6963:requestProvider`))}destroy(){this.store.destroy()}};let P3={name:`MetaMask`,rdns:`io.metamask`,icon:`data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjMzIiB2aWV3Qm94PSIwIDAgMzUgMzMiIHdpZHRoPSIzNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjI1Ij48cGF0aCBkPSJtMzIuOTU4MiAxLTEzLjEzNDEgOS43MTgzIDIuNDQyNC01LjcyNzMxeiIgZmlsbD0iI2UxNzcyNiIgc3Ryb2tlPSIjZTE3NzI2Ii8+PGcgZmlsbD0iI2UyNzYyNSIgc3Ryb2tlPSIjZTI3NjI1Ij48cGF0aCBkPSJtMi42NjI5NiAxIDEzLjAxNzE0IDkuODA5LTIuMzI1NC01LjgxODAyeiIvPjxwYXRoIGQ9Im0yOC4yMjk1IDIzLjUzMzUtMy40OTQ3IDUuMzM4NiA3LjQ4MjkgMi4wNjAzIDIuMTQzNi03LjI4MjN6Ii8+PHBhdGggZD0ibTEuMjcyODEgMjMuNjUwMSAyLjEzMDU1IDcuMjgyMyA3LjQ2OTk0LTIuMDYwMy0zLjQ4MTY2LTUuMzM4NnoiLz48cGF0aCBkPSJtMTAuNDcwNiAxNC41MTQ5LTIuMDc4NiAzLjEzNTggNy40MDUuMzM2OS0uMjQ2OS03Ljk2OXoiLz48cGF0aCBkPSJtMjUuMTUwNSAxNC41MTQ5LTUuMTU3NS00LjU4NzA0LS4xNjg4IDguMDU5NzQgNy40MDQ5LS4zMzY5eiIvPjxwYXRoIGQ9Im0xMC44NzMzIDI4Ljg3MjEgNC40ODE5LTIuMTYzOS0zLjg1ODMtMy4wMDYyeiIvPjxwYXRoIGQ9Im0yMC4yNjU5IDI2LjcwODIgNC40Njg5IDIuMTYzOS0uNjEwNS01LjE3MDF6Ii8+PC9nPjxwYXRoIGQ9Im0yNC43MzQ4IDI4Ljg3MjEtNC40NjktMi4xNjM5LjM2MzggMi45MDI1LS4wMzkgMS4yMzF6IiBmaWxsPSIjZDViZmIyIiBzdHJva2U9IiNkNWJmYjIiLz48cGF0aCBkPSJtMTAuODczMiAyOC44NzIxIDQuMTU3MiAxLjk2OTYtLjAyNi0xLjIzMS4zNTA4LTIuOTAyNXoiIGZpbGw9IiNkNWJmYjIiIHN0cm9rZT0iI2Q1YmZiMiIvPjxwYXRoIGQ9Im0xNS4xMDg0IDIxLjc4NDItMy43MTU1LTEuMDg4NCAyLjYyNDMtMS4yMDUxeiIgZmlsbD0iIzIzMzQ0NyIgc3Ryb2tlPSIjMjMzNDQ3Ii8+PHBhdGggZD0ibTIwLjUxMjYgMjEuNzg0MiAxLjA5MTMtMi4yOTM1IDIuNjM3MiAxLjIwNTF6IiBmaWxsPSIjMjMzNDQ3IiBzdHJva2U9IiMyMzM0NDciLz48cGF0aCBkPSJtMTAuODczMyAyOC44NzIxLjY0OTUtNS4zMzg2LTQuMTMxMTcuMTE2N3oiIGZpbGw9IiNjYzYyMjgiIHN0cm9rZT0iI2NjNjIyOCIvPjxwYXRoIGQ9Im0yNC4wOTgyIDIzLjUzMzUuNjM2NiA1LjMzODYgMy40OTQ2LTUuMjIxOXoiIGZpbGw9IiNjYzYyMjgiIHN0cm9rZT0iI2NjNjIyOCIvPjxwYXRoIGQ9Im0yNy4yMjkxIDE3LjY1MDctNy40MDUuMzM2OS42ODg1IDMuNzk2NiAxLjA5MTMtMi4yOTM1IDIuNjM3MiAxLjIwNTF6IiBmaWxsPSIjY2M2MjI4IiBzdHJva2U9IiNjYzYyMjgiLz48cGF0aCBkPSJtMTEuMzkyOSAyMC42OTU4IDIuNjI0Mi0xLjIwNTEgMS4wOTEzIDIuMjkzNS42ODg1LTMuNzk2Ni03LjQwNDk1LS4zMzY5eiIgZmlsbD0iI2NjNjIyOCIgc3Ryb2tlPSIjY2M2MjI4Ii8+PHBhdGggZD0ibTguMzkyIDE3LjY1MDcgMy4xMDQ5IDYuMDUxMy0uMTAzOS0zLjAwNjJ6IiBmaWxsPSIjZTI3NTI1IiBzdHJva2U9IiNlMjc1MjUiLz48cGF0aCBkPSJtMjQuMjQxMiAyMC42OTU4LS4xMTY5IDMuMDA2MiAzLjEwNDktNi4wNTEzeiIgZmlsbD0iI2UyNzUyNSIgc3Ryb2tlPSIjZTI3NTI1Ii8+PHBhdGggZD0ibTE1Ljc5NyAxNy45ODc2LS42ODg2IDMuNzk2Ny44NzA0IDQuNDgzMy4xOTQ5LTUuOTA4N3oiIGZpbGw9IiNlMjc1MjUiIHN0cm9rZT0iI2UyNzUyNSIvPjxwYXRoIGQ9Im0xOS44MjQyIDE3Ljk4NzYtLjM2MzggMi4zNTg0LjE4MTkgNS45MjE2Ljg3MDQtNC40ODMzeiIgZmlsbD0iI2UyNzUyNSIgc3Ryb2tlPSIjZTI3NTI1Ii8+PHBhdGggZD0ibTIwLjUxMjcgMjEuNzg0Mi0uODcwNCA0LjQ4MzQuNjIzNi40NDA2IDMuODU4NC0zLjAwNjIuMTE2OS0zLjAwNjJ6IiBmaWxsPSIjZjU4NDFmIiBzdHJva2U9IiNmNTg0MWYiLz48cGF0aCBkPSJtMTEuMzkyOSAyMC42OTU4LjEwNCAzLjAwNjIgMy44NTgzIDMuMDA2Mi42MjM2LS40NDA2LS44NzA0LTQuNDgzNHoiIGZpbGw9IiNmNTg0MWYiIHN0cm9rZT0iI2Y1ODQxZiIvPjxwYXRoIGQ9Im0yMC41OTA2IDMwLjg0MTcuMDM5LTEuMjMxLS4zMzc4LS4yODUxaC00Ljk2MjZsLS4zMjQ4LjI4NTEuMDI2IDEuMjMxLTQuMTU3Mi0xLjk2OTYgMS40NTUxIDEuMTkyMSAyLjk0ODkgMi4wMzQ0aDUuMDUzNmwyLjk2Mi0yLjAzNDQgMS40NDItMS4xOTIxeiIgZmlsbD0iI2MwYWM5ZCIgc3Ryb2tlPSIjYzBhYzlkIi8+PHBhdGggZD0ibTIwLjI2NTkgMjYuNzA4Mi0uNjIzNi0uNDQwNmgtMy42NjM1bC0uNjIzNi40NDA2LS4zNTA4IDIuOTAyNS4zMjQ4LS4yODUxaDQuOTYyNmwuMzM3OC4yODUxeiIgZmlsbD0iIzE2MTYxNiIgc3Ryb2tlPSIjMTYxNjE2Ii8+PHBhdGggZD0ibTMzLjUxNjggMTEuMzUzMiAxLjEwNDMtNS4zNjQ0Ny0xLjY2MjktNC45ODg3My0xMi42OTIzIDkuMzk0NCA0Ljg4NDYgNC4xMjA1IDYuODk4MyAyLjAwODUgMS41Mi0xLjc3NTItLjY2MjYtLjQ3OTUgMS4wNTIzLS45NTg4LS44MDU0LS42MjIgMS4wNTIzLS44MDM0eiIgZmlsbD0iIzc2M2UxYSIgc3Ryb2tlPSIjNzYzZTFhIi8+PHBhdGggZD0ibTEgNS45ODg3MyAxLjExNzI0IDUuMzY0NDctLjcxNDUxLjUzMTMgMS4wNjUyNy44MDM0LS44MDU0NS42MjIgMS4wNTIyOC45NTg4LS42NjI1NS40Nzk1IDEuNTE5OTcgMS43NzUyIDYuODk4MzUtMi4wMDg1IDQuODg0Ni00LjEyMDUtMTIuNjkyMzMtOS4zOTQ0eiIgZmlsbD0iIzc2M2UxYSIgc3Ryb2tlPSIjNzYzZTFhIi8+PHBhdGggZD0ibTMyLjA0ODkgMTYuNTIzNC02Ljg5ODMtMi4wMDg1IDIuMDc4NiAzLjEzNTgtMy4xMDQ5IDYuMDUxMyA0LjEwNTItLjA1MTloNi4xMzE4eiIgZmlsbD0iI2Y1ODQxZiIgc3Ryb2tlPSIjZjU4NDFmIi8+PHBhdGggZD0ibTEwLjQ3MDUgMTQuNTE0OS02Ljg5ODI4IDIuMDA4NS0yLjI5OTQ0IDcuMTI2N2g2LjExODgzbDQuMTA1MTkuMDUxOS0zLjEwNDg3LTYuMDUxM3oiIGZpbGw9IiNmNTg0MWYiIHN0cm9rZT0iI2Y1ODQxZiIvPjxwYXRoIGQ9Im0xOS44MjQxIDE3Ljk4NzYuNDQxNy03LjU5MzIgMi4wMDA3LTUuNDAzNGgtOC45MTE5bDIuMDAwNiA1LjQwMzQuNDQxNyA3LjU5MzIuMTY4OSAyLjM4NDIuMDEzIDUuODk1OGgzLjY2MzVsLjAxMy01Ljg5NTh6IiBmaWxsPSIjZjU4NDFmIiBzdHJva2U9IiNmNTg0MWYiLz48L2c+PC9zdmc+`,uuid:`fb8e904e-1a71-454a-af65-dc1ee86311c3`},F3={icon:`data:image/svg+xml,<svg viewBox="0 0 48 48" class="SvgIcon undefined Logo Logo--PassportSymbolOutlined css-1dn9atd" xmlns="http://www.w3.org/2000/svg"><g data-testid="undefined__g"><circle cx="24" cy="24" r="22.5" fill="url(%23paint0_radial_6324_83922)"></circle><circle cx="24" cy="24" r="22.5" fill="url(%23paint1_radial_6324_83922)"></circle><path d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM23.0718 9.16608C23.7383 8.83951 24.4406 8.86188 25.087 9.2287C27.3282 10.5059 29.5627 11.7942 31.786 13.096C32.5018 13.5165 32.8686 14.1897 32.8708 15.0173C32.8843 17.9184 32.8798 20.8171 32.8708 23.7182C32.8708 23.8255 32.8015 23.9821 32.7143 24.0335C31.8531 24.548 30.9808 25.0423 30.0347 25.5881V25.1318C30.0347 22.148 30.0257 19.1664 30.0414 16.1827C30.0436 15.6101 29.8468 15.241 29.339 14.9525C26.7377 13.474 24.1499 11.9687 21.5575 10.4723C21.4457 10.4075 21.3361 10.3381 21.1661 10.2352C21.8326 9.85722 22.4321 9.47698 23.0673 9.16608H23.0718ZM22.5953 38.8451C22.45 38.7713 22.3426 38.7198 22.2375 38.6595C18.8041 36.68 15.3752 34.687 11.9307 32.7232C10.9644 32.173 10.5238 31.3879 10.5349 30.2852C10.5551 27.9411 10.5484 25.597 10.5372 23.2507C10.5327 22.1927 10.9622 21.4255 11.8926 20.8977C14.3105 19.5221 16.715 18.1264 19.1195 16.7284C19.3275 16.6076 19.4796 16.5875 19.6965 16.7172C20.5264 17.216 21.3719 17.6924 22.2554 18.2024C22.0876 18.3031 21.9601 18.3791 21.8304 18.4552C19.2268 19.9582 16.6278 21.4658 14.0175 22.9599C13.5903 23.2037 13.3912 23.5213 13.3957 24.0179C13.4091 25.8654 13.4114 27.713 13.3957 29.5605C13.3912 30.0705 13.5948 30.3948 14.0332 30.6453C16.7866 32.2199 19.5288 33.8125 22.28 35.3916C22.5126 35.5258 22.611 35.6645 22.6065 35.9418C22.5864 36.888 22.5998 37.8363 22.5998 38.8473L22.5953 38.8451ZM22.5953 33.553C22.356 33.4166 22.1838 33.3204 22.0116 33.2198C19.8285 31.9605 17.6477 30.6967 15.4602 29.4464C15.2231 29.3122 15.1359 29.1668 15.1381 28.8917C15.1538 27.4714 15.1471 26.0511 15.1426 24.6308C15.1426 24.4384 15.1717 24.3064 15.3618 24.1991C16.167 23.7495 16.9633 23.2798 17.7618 22.8212C17.8199 22.7877 17.8826 22.7631 17.9877 22.7116V24.3064C17.9877 25.1698 18.0011 26.0354 17.9832 26.8988C17.972 27.3909 18.1622 27.7241 18.5916 27.9657C19.8285 28.6636 21.0498 29.3883 22.2867 30.0839C22.5305 30.2203 22.6043 30.3724 22.5998 30.6408C22.5842 31.5847 22.5931 32.5308 22.5931 33.5508L22.5953 33.553ZM20.0746 14.91C19.6116 14.6371 19.2157 14.6393 18.7527 14.91C16.1581 16.4265 13.5523 17.9228 10.9487 19.4259C10.8391 19.4908 10.7251 19.5489 10.5305 19.6541C10.5998 18.6654 10.3873 17.7327 10.7251 16.8291C10.9085 16.3348 11.2529 15.9635 11.7092 15.6995C13.8811 14.4447 16.0507 13.1877 18.227 11.9396C19.0211 11.4833 19.8308 11.4945 20.6248 11.953C23.0964 13.3756 25.5657 14.8026 28.0306 16.2341C28.1357 16.2945 28.2677 16.4309 28.2677 16.5338C28.2856 17.5493 28.2788 18.567 28.2788 19.6563C27.3819 19.1396 26.5543 18.6609 25.7267 18.1823C23.8412 17.093 21.9512 16.0149 20.0746 14.91ZM37.4427 30.8779C37.3778 31.6764 36.9103 32.2423 36.2192 32.6404C33.5732 34.1614 30.9294 35.6913 28.2856 37.2168C27.4557 37.6954 26.6259 38.1741 25.7938 38.6527C25.6932 38.7109 25.5903 38.7601 25.4539 38.8317C25.4449 38.693 25.4337 38.5924 25.4337 38.4917C25.4337 37.6149 25.4382 36.7404 25.4293 35.8636C25.4293 35.6645 25.4762 35.5437 25.6596 35.4386C29.5157 33.2198 33.3696 30.9942 37.2212 28.7709C37.2794 28.7374 37.3443 28.7105 37.4539 28.6591C37.4539 29.4375 37.4986 30.1622 37.4427 30.8779ZM37.4628 25.3577C37.4561 26.2658 36.9663 26.9033 36.1901 27.3506C33.175 29.0841 30.1622 30.8265 27.1493 32.5666C26.5991 32.8842 26.0466 33.1996 25.4561 33.5396C25.4472 33.3897 25.436 33.2913 25.436 33.1907C25.436 32.3273 25.4449 31.4617 25.4293 30.5983C25.4248 30.3523 25.5075 30.2226 25.72 30.0995C28.46 28.5271 31.1911 26.9368 33.9355 25.3733C34.4231 25.096 34.6378 24.7538 34.6334 24.1812C34.6132 21.1974 34.6244 18.2136 34.6244 15.2298V14.7087C35.3402 15.1404 36.0112 15.496 36.624 15.9299C37.1832 16.3258 37.465 16.9253 37.4673 17.6164C37.4762 20.1976 37.4829 22.7788 37.465 25.3599L37.4628 25.3577Z" fill="%230D0D0D"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint2_radial_6324_83922)"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint3_radial_6324_83922)"></path><defs><radialGradient id="paint0_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.4442 13.3899) rotate(44.9817) scale(46.7487 99.1435)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint1_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.9515 43.7068) rotate(84.265) scale(24.2138 46.3215)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient><radialGradient id="paint2_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.7405 12.6825) rotate(44.9817) scale(49.8653 105.753)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint3_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(26.0816 45.0206) rotate(84.265) scale(25.828 49.4096)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient></defs></g></svg>`,name:`Immutable Passport`,rdns:`com.immutable.passport`,uuid:`b90118be-7234-4c89-b89b-d5d267663eb5`},I3=e=>({info:F3,provider:e}),L3=e=>({info:P3,provider:e});async function R3(){let e=await Z2(async()=>await(0,T2.default)(),{type:`METAMASK_PROVIDER_ERROR`});if(!e||!e.request)throw new $(`No MetaMask provider installed.`,`METAMASK_PROVIDER_ERROR`);return new w4(e)}async function z3(e,t){let n=null,r;switch(e){case`passport`:if(r=N3.getInstance().findProvider({rdns:F3.rdns}),!r)if(t)n=new w4(await t.connectEvm({announceProvider:!1}));else throw console.error(`WalletProviderName was PASSPORT but the passport instance was not provided to the Checkout constructor`),new $(`Passport not provided`,`DEFAULT_PROVIDER_ERROR`);break;case`metamask`:r=N3.getInstance().findProvider({rdns:P3.rdns}),r||(n=await R3());break;default:if(r=N3.getInstance().findProvider({rdns:e}),!r)throw console.error(`The WalletProviderName that was provided is not supported`),new $(`Provider not supported`,`DEFAULT_PROVIDER_ERROR`)}if(!n&&r&&(n=new w4(r.provider)),!n)throw console.error(`Failed to create provider`),new $(`Failed to create provider`,`DEFAULT_PROVIDER_ERROR`);return{provider:n,walletProviderName:e}}function B3(e){return e&&`send`in e&&typeof e.send==`function`}async function V3(e,t,n){return Z2(async()=>{if(`request`in t)return new w4(t);if(t.ethereumProvider?.isPassport)return t;let r={...C4,...n},i=await P4(t),a=(await t.getNetwork()).chainId;try{a||=(await t.getNetwork()).chainId}catch(e){throw new $(`Unable to detect the browserProvider network`,`WEB3_PROVIDER_ERROR`,{error:e})}if(a!==BigInt(i)&&!r.allowMistmatchedChainId)throw console.error(`web3ChainId`,a,`underlyingChainId`,i,r),new $(`Your wallet has changed network, please switch to a supported network`,`WEB3_PROVIDER_ERROR`);if(!(await R4(e,{type:`all`})).networks.some(e=>e.chainId===Number(i))&&!r.allowUnsupportedProvider)throw new $(`Your wallet is connected to an unsupported network, please switch to a supported network`,`WEB3_PROVIDER_ERROR`);return t},{type:`WEB3_PROVIDER_ERROR`})}async function H3(e,t){if(e.isProduction&&t?.has(1)||t?.has(11155111))return t;let n=new Map;return(await R4(e,{type:`all`})).networks.forEach(t=>{let r=e.networkMap.get(Number(t.chainId))?.rpcUrls[0],i=new bR(r);n.set(Number(t.chainId),i)}),n}let U3=(e,t,n)=>{let r=[];if(!e.sufficient)for(let t of e.allowances)t.sufficient||r.push(t);if(!t.sufficient)for(let e of t.allowances)e.sufficient||r.push(e);if(!n.sufficient)for(let e of n.allowances)e.sufficient||r.push(e);return r},W3=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`NATIVE`||e.isFee){n.push(e);return}let i={...e,isFee:`isFee`in e&&e.isFee},{amount:a}=i,o=t.get(r);o&&o.type===`NATIVE`?o.amount+=a:t.set(r,{...i})}),n.concat(Array.from(t.values()))},G3=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC20`||e.isFee){n.push(e);return}let i={...e,isFee:`isFee`in e&&e.isFee},{tokenAddress:a,spenderAddress:o,amount:s}=i,c=`${a}${o}`,l=t.get(c);l&&l.type===`ERC20`?l.amount+=s:t.set(c,{...i})}),n.concat(Array.from(t.values()))},K3=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC721`){n.push(e);return}let{contractAddress:i,spenderAddress:a,id:o}=e,s=`${i}${a}${o}`;t.get(s)||t.set(s,{...e})}),n.concat(Array.from(t.values()))},q3=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC1155`){n.push(e);return}let{contractAddress:i,spenderAddress:a,id:o,amount:s}=e,c=`${i}${a}${o}`,l=t.get(c);l&&l.type===`ERC1155`?l.amount+=s:t.set(c,{...e})}),n.concat(Array.from(t.values()))},J3=e=>q3(K3(G3(W3(e)))),Y3=async(e,t,n,r)=>{try{return await new JI(n,JSON.stringify(d4),e).allowance(t,r)}catch(e){throw new $(`Failed to get the allowance for ERC20`,`GET_ERC20_ALLOWANCE_ERROR`,{contractAddress:n,error:e})}},X3=async(e,t,n,r,i)=>{try{let a=await new JI(n,JSON.stringify(d4),e).approve.populateTransaction(r,i);return a&&(a.from=t),a}catch(e){throw new $(`Failed to get the approval transaction for ERC20`,`GET_ERC20_ALLOWANCE_ERROR`,{contractAddress:n,error:e})}},Z3=async(e,t,n)=>{let r=!0,i=[],a=new Map,o=new Map,s=new Map,c=new Map;for(let r of n){if(r.type!==`ERC20`)continue;let{tokenAddress:n,spenderAddress:i}=r,s=`${n}${i}`;a.set(s,r),o.set(s,Y3(e,t,n,i))}let l=await Promise.all(o.values()),u=Array.from(o.keys());for(let n=0;n<l.length;n++){let o=a.get(u[n]);if(!o||o.type!==`ERC20`)continue;if(l[n]>=o.amount){i.push({sufficient:!0,itemRequirement:o});continue}r=!1;let{tokenAddress:d,spenderAddress:f}=o,p=`${d}${f}`,m=o.amount-l[n];s.set(p,{type:`ERC20`,sufficient:!1,delta:m,itemRequirement:o,approvalTransaction:void 0}),c.set(p,X3(e,t,d,f,m))}let d=await Promise.all(c.values()),f=Array.from(c.keys());return d.forEach((e,t)=>{let n=s.get(f[t]);n&&(n.sufficient||(n.approvalTransaction=e))}),{sufficient:r,allowances:i.concat(Array.from(s.values()))}},Q3=async(e,t,n,r)=>{try{return await new JI(n,JSON.stringify(f4),e).isApprovedForAll(t,r)}catch(e){throw new $(`Failed to check approval for all ERC721s of collection`,`GET_ERC721_ALLOWANCE_ERROR`,{ownerAddress:t,contractAddress:n,spenderAddress:r,error:e})}},$3=async(e,t,n,r,i)=>{try{let a=await new JI(n,JSON.stringify(f4),e).approve.populateTransaction(r,i);return a&&(a.from=t),a}catch(e){throw new $(`Failed to get the approval transaction for ERC721`,`GET_ERC721_ALLOWANCE_ERROR`,{id:i.toString(),contractAddress:n,spenderAddress:r,ownerAddress:t,error:e})}},e6=async(e,t,n)=>{try{return await new JI(t,JSON.stringify(f4),e).getApproved(n)}catch(e){throw new $(`Failed to get approved address for ERC721`,`GET_ERC721_ALLOWANCE_ERROR`,{id:n.toString(),contractAddress:t,error:e})}},t6=(e,t)=>{try{if(!e.trim())throw new $(`Invalid ERC721 ID`,`GET_ERC721_ALLOWANCE_ERROR`,{id:e,contractAddress:t});return BigInt(e)}catch{throw new $(`Invalid ERC721 ID`,`GET_ERC721_ALLOWANCE_ERROR`,{id:e,contractAddress:t})}},n6=async(e,t,n)=>{let r=new Map,i=new Map;for(let a of t){if(a.type!==`ERC721`)continue;let{contractAddress:t,spenderAddress:o}=a,s=`${t}-${o}`;r.set(s,!1),!i.has(s)&&i.set(s,Q3(e,n,t,o))}let a=await Promise.all(i.values()),o=Array.from(i.keys());return a.forEach((e,t)=>{r.set(o[t],e)}),r},r6=async(e,t,n)=>{let r=!0,i=[],a=new Map,o=new Map,s=new Map,c=new Map,l=await n6(e,n,t);for(let t of n){if(t.type!==`ERC721`)continue;let{contractAddress:n,id:r,spenderAddress:s}=t,c=`${n}-${s}`;if(l.get(c)){i.push({sufficient:!0,itemRequirement:t});continue}let u=`${n}-${r}`,d=t6(r,n);a.set(u,t),o.set(u,e6(e,n,d))}let u=await Promise.all(o.values()),d=Array.from(o.keys());for(let n=0;n<u.length;n++){let o=a.get(d[n]);if(!o||o.type!==`ERC721`)continue;if(u[n]===o.spenderAddress){i.push({sufficient:!0,itemRequirement:o});continue}r=!1;let{contractAddress:l,id:f,spenderAddress:p}=o,m=`${l}-${f}`,h=t6(f,l);s.set(m,{type:`ERC721`,sufficient:!1,itemRequirement:o,approvalTransaction:void 0}),c.set(m,$3(e,t,l,p,h))}let f=await Promise.all(c.values()),p=Array.from(c.keys());return f.forEach((e,t)=>{let n=s.get(p[t]);n&&(n.sufficient||(n.approvalTransaction=e))}),{sufficient:r,allowances:i.concat(Array.from(s.values()))}},i6=async(e,t,n,r)=>{try{return await new JI(n,JSON.stringify(p4),e).isApprovedForAll(t,r)}catch(e){throw new $(`Failed to check approval for all ERC1155s of collection`,`GET_ERC1155_ALLOWANCE_ERROR`,{ownerAddress:t,contractAddress:n,spenderAddress:r,error:e})}},a6=async(e,t,n,r)=>{try{let i=await new JI(n,JSON.stringify(p4),e).setApprovalForAll.populateTransaction(r,!0);return i&&(i.from=t),i}catch(e){throw new $(`Failed to get the approval transaction for ERC1155`,`GET_ERC1155_ALLOWANCE_ERROR`,{contractAddress:n,spenderAddress:r,ownerAddress:t,error:e})}},o6=async(e,t,n)=>{let r=n.filter(e=>e.type===`ERC1155`),i=await Promise.all(r.map(async n=>await i6(e,t,n.contractAddress,n.spenderAddress)?{sufficient:!0,itemRequirement:n}:{type:`ERC1155`,sufficient:!1,itemRequirement:n,approvalTransaction:await a6(e,t,n.contractAddress,n.spenderAddress)}));return{sufficient:i.some(e=>e.sufficient),allowances:i}},s6=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`NATIVE`||e.isFee){n.push(e);return}let{amount:i}=e,a=t.get(r);a&&a.type===`NATIVE`?a.amount+=i:t.set(r,{...e})}),n.concat(Array.from(t.values()))},c6=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC20`||e.isFee){n.push(e);return}let{tokenAddress:i,amount:a}=e,o=`${i}`,s=t.get(o);s&&s.type===`ERC20`?s.amount+=a:t.set(o,{...e})}),n.concat(Array.from(t.values()))},l6=e=>{let t=new Map,n=[];return e.forEach(e=>{let{type:r}=e;if(r!==`ERC721`){n.push(e);return}let{contractAddress:i,id:a}=e,o=`${i}${a}`;t.get(o)||t.set(o,{...e})}),n.concat(Array.from(t.values()))},u6=e=>l6(c6(s6(e))),d6=e=>e.map(e=>{switch(e.type){case`ERC20`:return{address:e.tokenAddress};case`NATIVE`:return{address:n4};default:return{address:e.contractAddress}}}),f6=(e,t)=>{let n=BigInt(1),r=t.find(t=>{let n=t;return Q4(n.contractAddress,e.contractAddress)&&n.id===e.id}),i=n<0||n===0n||r&&r.balance>=n,a=n-(r?.balance??BigInt(0)),o=r;return o||={type:`ERC721`,balance:BigInt(0),formattedBalance:`0`,contractAddress:e.contractAddress,id:e.id},{sufficient:i??!1,type:`ERC721`,delta:{balance:a,formattedBalance:a.toString()},current:o,required:{...o,balance:BigInt(1),formattedBalance:`1`},isFee:!1}},p6=(e,t)=>e.type===`ERC20`?t.find(t=>Q4(t.token?.address,e.tokenAddress)):t.find(e=>r3(e.token?.address)),m6=async(e,t,n)=>{let r={};for(let i of e){if(i.type===`NATIVE`){r[n4]=r4;continue}let e=p6(i,t),a=e?.token.address??``,o=e?.token.name??``,s=e?.token.symbol??``,c=e?.token.decimals??18;if(!e&&i.type===`ERC20`){if(a=i.tokenAddress,a.toLowerCase()in r)continue;try{let e=new JI(i.tokenAddress,JSON.stringify(d4),n),[t,r,l]=await Promise.all([e.name(),e.symbol(),e.decimals()]);a=i.tokenAddress,c=l,o=t,s=r}catch{console.error(`Failed to query contract information`,i.tokenAddress)}}r[a.toLowerCase()]={address:a,name:o,symbol:s,decimals:c}}return r},h6=(e,t,n)=>{let r=p6(e,t),i=e.amount,a=i<0||i===0n||r&&r?.balance>=i,o=i-(r?.balance??BigInt(0));return e.type===`NATIVE`?(r||={type:`NATIVE`,balance:BigInt(0),formattedBalance:`0`,token:n},{sufficient:a??!1,type:`NATIVE`,delta:{balance:o,formattedBalance:yO(o,n.decimals)},current:{...r,type:`NATIVE`,token:n},required:{...r,type:`NATIVE`,balance:BigInt(e.amount),formattedBalance:yO(e.amount,n.decimals),token:n},isFee:e.isFee}):(r||={type:e.type,balance:BigInt(0),formattedBalance:`0`,token:n},{sufficient:a??!1,type:`ERC20`,delta:{balance:o,formattedBalance:yO(o,n.decimals)},current:{...r,token:n},required:{...r,token:n,balance:BigInt(e.amount),formattedBalance:yO(e.amount,n.decimals)},isFee:e.isFee})},g6=async(e,t,n,r,i=!1)=>{try{let a=new Map;d6(r).forEach(e=>{e.address&&a.set(e.address.toLocaleLowerCase(),e)});let{balances:o}=await h3(e,t,n,Y4(e),i);return o.filter(e=>a.get((e.token.address||`native`).toLocaleLowerCase()))}catch(e){throw new $(`Failed to get balances`,`GET_BALANCE_ERROR`,{error:e})}},_6=async(e,t,n)=>{let r=[],i=new Map,a=new Map;n.forEach(t=>{if(t.type!==`ERC721`)return;let n=new JI(t.contractAddress,JSON.stringify(f4),e);i.set(t.contractAddress,t),a.set(t.contractAddress,n.ownerOf(t.id))});try{let e=await Promise.all(a.values()),n=Array.from(a.keys());e.forEach((e,a)=>{let o=i.get(n[a]),s=0;o&&Q4(t,e)&&(s=1),r.push({type:`ERC721`,balance:BigInt(s),formattedBalance:s.toString(),contractAddress:o.contractAddress,id:o.id})})}catch(e){throw new $(`Failed to get ERC721 balances`,`GET_ERC721_BALANCE_ERROR`,{error:e})}return r},v6=async(e,t,n,r,i=!1)=>{let a=u6(r),o=[],s=[];if(a.forEach(e=>{switch(e.type){case`ERC20`:case`NATIVE`:o.push(e);break;case`ERC721`:s.push(e);break;default:}}),o.sort(e=>`isFee`in e&&e.isFee?1:-1),s.length===0&&o.length===0)throw new $(`Unsupported item requirement balance check`,`UNSUPPORTED_BALANCE_REQUIREMENT_ERROR`);let c=[];o.length>0&&c.push(g6(e,t,n,a,i)),s.length>0&&c.push(_6(t,n,a));let l=await Promise.all(c),u=[];if(o.length>0){let e=l.shift()??[],n=new Map(e.map(e=>[e.type===`NATIVE`?n4:e.token.address?.toLowerCase(),e])),r=await m6(o,e,t);o.forEach(e=>{let t=(e.tokenAddress??`native`).toLowerCase(),i=r[t],a=n.get(t),o=h6(e,[...n.values()],i);if(u.push(o),!a)return;let s=a.balance-o.required.balance;n.set(t,{...a,balance:s,formattedBalance:yO(s,o.required.token.decimals)})})}if(s.length>0){let e=l.shift()??[];s.forEach(t=>{u.push(f6(t,e))})}return{sufficient:u.find(e=>!e.sufficient)===void 0,balanceRequirements:u}},y6=async(e,t)=>{try{return await e.estimateGas(t)}catch(e){throw new $(`Failed to estimate gas for transaction`,`UNPREDICTABLE_GAS_LIMIT`,{error:e})}},b6=(e,t)=>t.type===`TRANSACTION`||t.gasToken.type===`NATIVE`?{type:`NATIVE`,amount:e,isFee:!0}:{type:`ERC20`,amount:e,tokenAddress:t.gasToken.tokenAddress,spenderAddress:``,isFee:!0},x6=async(e,t,n)=>{let r=[],i=BigInt(0);for(let n of t)n.approvalTransaction!==void 0&&r.push(y6(e,n.approvalTransaction));if(n.type===`TRANSACTION`)r.push(y6(e,n.transaction));else{let t=A3(await e.getFeeData());if(t!==null){let e=t*n.gasToken.limit;e&&(i+=e)}}return(await Promise.all(r)).forEach(e=>{i+=e}),i===0n?null:b6(i,n)},S6=async()=>!0,C6=async e=>{let t=g4(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};function w6(e){return e?.ethereumProvider?.isPassport===!0}let T6=async(e,t)=>{let n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:`onRamp`,promise:S6()}),n.swap&&r.push({id:`swap`,promise:C6(e)}),r.length>0){let e=r.map(e=>e.promise);(await Promise.allSettled(e)).forEach((e,t)=>{let i=r[t].id;n[i]=n[i]&&e.status===`fulfilled`&&e.value})}return n.bridge=n.bridge&&!w6(t),n},E6=async(e,t,n,r)=>{let i=new Map,a=new Map;if(t.size===0){let t={success:!1,error:new $(`No L1 or L2 provider available`,`PROVIDER_ERROR`),balances:[]};return i.set(J4(e),t),i.set(Y4(e),t),i}if(r.bridge){let r=J4(e);t.has(r)?a.set(r,h3(e,t.get(r),n,r)):i.set(J4(e),{success:!1,error:new $(`No L1 provider available for ${r}`,`PROVIDER_ERROR`),balances:[]})}let o=Y4(e);if(t.has(o)?a.set(o,h3(e,t.get(o),n,o)):i.set(Y4(e),{success:!1,error:new $(`No L2 provider available for ${o}`,`PROVIDER_ERROR`),balances:[]}),a.size>0){let e=Array.from(a.keys());(await Promise.allSettled(a.values())).forEach((t,n)=>{let r=e[n];t.status===`fulfilled`?i.set(r,{success:!0,balances:t.value.balances}):i.set(r,{success:!1,error:new $(`Error getting ${o} balances`,`GET_BALANCE_ERROR`),balances:[]})})}return i},D6=async(e,t,n,r,i)=>{let a=new Map;try{let o=await S3(t,e),s=[],c=[];for(let e of i)e!==r.address&&(s.push(o.getUnsignedSwapTxFromAmountOut(n,e,r.address,r.amount,1)),c.push(e));return(await s3(e,`Time to resolve swap quotes from the dex`,Promise.allSettled(s))).forEach((e,t)=>{if(e.status===`rejected`)return;let n=c[t];a.set(n,{quote:e.value.quote,approval:e.value.approval?.gasFeeEstimate??null,swap:e.value.swap.gasFeeEstimate})}),a}catch{return a}},O6=(e,t,n)=>{let r=BigInt(0),i=`0`,a;e&&(r=e.value,i=yO(e.value,e.token.decimals),a={name:e.token.name??``,symbol:e.token.symbol??``,address:e.token.address,decimals:e.token.decimals});let o=BigInt(0),s=`0`,c;t&&(o=t.value,s=yO(t.value,t.token.decimals),c={name:t.token.name??``,symbol:t.token.symbol??``,address:t.token.address,decimals:t.token.decimals});let l=[];for(let e of n)l.push({type:`SWAP_FEE`,amount:e.amount.value,formattedAmount:yO(e.amount.value,e.amount.token.decimals),basisPoints:e.basisPoints,token:{name:e.amount.token.name??``,symbol:e.amount.token.symbol??``,address:e.amount.token.address,decimals:e.amount.token.decimals}});return{approvalGasFee:{type:`GAS`,amount:r,formattedAmount:i,token:a},swapGasFee:{type:`GAS`,amount:o,formattedAmount:s,token:c},swapFees:l}},k6=(e,t,n,r)=>{let i=n.token.address,a=`ERC20`;return r3(i)&&(a=`NATIVE`),{type:`SWAP`,chainId:e,fundingItem:{type:a,fundsRequired:{amount:t,formattedAmount:t3(yO(t,n.token.decimals))},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:n.token},fees:r}},A6=e=>e.type===`ERC20`?!!e.required.token.address:e.type===`NATIVE`&&r3(e.required.token.address),j6=e=>{let t=``,n=BigInt(0);switch(e.type){case`ERC20`:t=e.required.token.address,n=e.delta.balance;break;case`NATIVE`:n=e.delta.balance;break;default:break}return{address:t,amount:n}},M6=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:BigInt(0),approvalGasTokenAddress:``};let n=t.value,r=t.token.address;if(e.length===0)return{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r};let i=e.find(e=>r3(e.token.address)&&r3(r)||Q4(e.token.address,r));return!i||i.balance<n?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}},N6=(e,t,n,r,i)=>{let a=new Map;if(t.approvalGasFee>BigInt(0)&&a.set(t.approvalGasTokenAddress,t.approvalGasFee),n){let e=a.get(n.token.address);e?a.set(n.token.address,e+n.value):a.set(n.token.address,n.value)}if(i){let e=a.get(i.address);e?a.set(i.address,e+i.amount):a.set(i.address,i.amount)}for(let e of r){let t=a.get(e.amount.token.address);if(t){a.set(e.amount.token.address,t+e.amount.value);continue}a.set(e.amount.token.address,e.amount.value)}for(let[t,n]of a.entries()){if(n===BigInt(0))continue;let r=e.find(e=>r3(e.token.address)&&r3(t)||Q4(e.token.address,t));if(!r||r.balance<n)return!1}return!0},P6=(e,t,n,r,i,a)=>{let o=BigInt(0),s=``,c=!1;if(t.balanceRequirements.forEach(t=>{(t.type===`NATIVE`||t.type===`ERC20`)&&t.required.token.address&&Q4(t.required.token.address,n)&&(s=t.required.token.address,c=!0,o=e-t.required.balance)}),!c)return!0;Q4(i.approvalGasTokenAddress,s)&&(o-=i.approvalGasFee);for(let e of a)Q4(e.amount.token.address,s)&&(o-=e.amount.value);return o>=r},F6=async(e,t,n,r,i,a,o)=>{let s=[];if(!t.swap||a.length===0||!A6(r))return s;let c=j6(r),l=Y4(e),u=i.get(l);if(!u)return s;let d=u.balances;if(d.length===0)return s;let f=await D6(e,Y4(e),n,c,a),p=Array.from(f.keys());for(let e of p){let t=f.get(e);if(!t)continue;let n=d.find(t=>Q4(t.token.address,e));if(!n)continue;let r=t.quote.amountWithMaxSlippage;if(n.balance<r.value)continue;let i=M6(d,t.approval);if(!i.sufficient||!N6(d,i,t.swap,t.quote.fees,{amount:r.value,address:e})||!P6(n.balance,o,e,r.value,i,t.quote.fees))continue;let a=O6(t.approval,t.swap,t.quote.fees);s.push(k6(l,r.value,n,a))}return s},I6=(e,t)=>t&&t.success?e.filter(e=>`address`in e?t.balances.find(t=>Q4(t.token.address,e.address)&&t.balance>0):t.balances.find(e=>!(`address`in e.token)&&e.balance>0)):[],L6=async(e,t)=>t.onRamp?(await n3(e,{type:`onramp`})).tokens:[],R6=async(e,t,n)=>{if(n.bridge){let n=J4(e),r=(await n3(e,{type:`bridge`,chainId:n})).tokens,i=t.get(n);return I6(r,i)}return[]},z6=async(e,t,n)=>{if(n.swap){let n=(await n3(e,{type:`swap`})).tokens,r=t.get(Y4(e));return I6(n,r)}return[]},B6=async(e,t,n)=>{let r={};return r.swap=await z6(e,t,n),r.bridge=await R6(e,t,n),r.onRamp=await L6(e,n),r},V6=e=>{for(let t of e.balances)if(r3(t.token.address))return t.balance;return BigInt(0)},H6=async(e,t,n,r)=>{let i=x3(n,r,t,e);try{return{...await i.getFee({action:Dq.DEPOSIT,gasMultiplier:`auto`,sourceChainId:n.toString(),destinationChainId:r.toString()}),approvalGas:BigInt(0)}}catch(e){throw new $(`Error estimating gas for bridge`,`BRIDGE_GAS_ESTIMATE_ERROR`,{error:e})}},U6=e=>e===13371?`imtbl-zkevm-mainnet`:e===13473?`imtbl-zkevm-testnet`:e===15003?`imtbl-zkevm-devnet`:``,W6=async(e,t)=>(await t.remote.getConfig(`imxAddressMapping`))[e]??``,G6=async(e,t)=>{if(r3(t))return{l1address:await W6(J4(e),e),l2address:n4};let n=U6(Y4(e)),r=(await w3(e).getToken({chainName:n,contractAddress:t})).result.root_contract_address;if(Q4(r??``,`0x0000000000000000000000000000000000000eee`))return{l1address:`native`,l2address:t};if(r!==null)return{l1address:r,l2address:t}},K6=(e,t)=>V6(e)>=t,q6=(e,t,n,r,i)=>{let a=i?.decimals??18,o=[];return t>0&&o.push({type:`BRIDGE_FEE`,amount:t,formattedAmount:yO(t,a),token:i}),n>0&&o.push({type:`IMMUTABLE_FEE`,amount:n,formattedAmount:yO(n,a),token:i}),{approvalGasFee:{type:`GAS`,amount:r,formattedAmount:yO(r,18),token:i},bridgeGasFee:{type:`GAS`,amount:e,formattedAmount:yO(e,18),token:i},bridgeFees:o}},J6=(e,t,n,r,i)=>({type:`BRIDGE`,chainId:e,fundingItem:{type:r,fundsRequired:{amount:n.amount,formattedAmount:t3(n.formattedAmount)},userBalance:{balance:t.balance,formattedBalance:t.formattedBalance},token:{name:t.token.name,symbol:t.token.symbol,address:t.token.address,decimals:t.token.decimals}},fees:i}),Y6=async(e,t,n,r,i)=>{if(!n.bridge)return;let a=J4(e),o=Y4(e),s=e.networkMap.get(a)?.nativeCurrency,c=i.get(a);if(!t.get(a))throw new $(`No L1 provider available`,`PROVIDER_ERROR`,{chainId:a.toString()});if(c===void 0||c.success===!1)return;let l=await R6(e,i,n);if(l.length===0)return;let u=await G6(e,r.l2address);if(!u)return;let{l1address:d}=u;if(r3(d)){if(!l.find(e=>r3(e.address)))return}else if(!l.find(e=>Q4(e.address,d)))return;let{sourceChainGas:f,approvalGas:p,bridgeFee:m,imtblFee:h,totalFees:g}=await H6(e,t,a,o);if(!K6(c,g))return;if(r3(d)){let e=c.balances.find(e=>r3(e.token.address));if(e&&e.balance>=r.amount+g){let t=q6(f,m,h,p,s);return J6(a,e,r,`NATIVE`,t)}return}let _=c.balances.find(e=>Q4(e.token.address,d));if(_&&_.balance>=r.amount){let e=q6(f,m,h,p,s);return J6(a,_,r,`ERC20`,e)}},X6=(e,t)=>{let n={l1balances:[],l2balances:[]},r=t.get(J4(e)),i=t.get(Y4(e));return!r||r.error!==void 0||!r.success||!i||i.error!==void 0||!i.success?n:{l1balances:r.balances,l2balances:i.balances}},Z6=(e,t)=>{let n=BigInt(0);return e.quote.fees.forEach(e=>{Q4(e.amount.token.address,t)&&(n+=e.amount.value)}),e.approval&&Q4(e.approval.token.address,t)&&(n+=e.approval.value),n},Q6=(e,t)=>{for(let n of e.balanceRequirements)if((n.type===`NATIVE`||n.type===`ERC20`)&&Q4(n.required.token.address,t))return n.required.balance;return BigInt(0)},$6=(e,t,n)=>{let r=n?.balance??BigInt(0);if(r>=e+t)return BigInt(0);if(r<=0)return e+t;let i=r-t;return i>=0?e-i:e+t-r},e8=(e,t,n,r,i)=>{let a=[];for(let[o,s]of e){let e=n.find(e=>Q4(e.token.address,o)),c=r.find(e=>Q4(e.l2address,o));if(!c)continue;let{l1address:l,l2address:u}=c;if(!l)continue;let d=t.find(e=>e.token.address===void 0&&Q4(l,`0x0000000000000000000000000000000000000eee`)?!0:Q4(e.token.address,l));if(!d)continue;let f=s.quote.amountWithMaxSlippage.value+Z6(s,o),p=Q6(i,o),m=$6(f,p,e);m<=0||m>=d.balance||a.push({amount:m,formattedAmount:t3(yO(m,d.token.decimals)),l2address:u})}return a},t8=async(e,t)=>{let n=t.map(t=>G6(e,t.address??``));return(await Promise.all(n)).filter(e=>e!==void 0)},n8=async(e,t,n,r,i)=>{let a=[];for(let e of i)e.address&&a.push(e.address);return await D6(e,Y4(e),t,{address:n,amount:r.delta.balance},a)},r8=(e,t,n,r,i,a)=>e.length===0||t.length===0||n.length===0||r.length===0||!i.bridge||!i.swap||a===void 0||a===``,i8=(e,t,n,r)=>{let i=[];for(let a of r){if(!t.includes(a.l1address)||Q4(a.l2address,e))continue;let r=n.find(e=>Q4(e.address,a.l2address));r&&i.push(r)}return i},a8=(e,t,n,r,i)=>{let a=new Map;for(let[e,n]of t)a.set(e,{success:n.success,balances:n.balances});let o=new Map;for(let e of n)e.token.address&&o.set(e.token.address,e);for(let e of r){let{amount:t,l2address:n}=e;if(n===``)continue;let r=BigInt(0),a=o.get(n);a&&(r=a.balance);let s=r+t,c=i.find(e=>Q4(e.address,n));o.set(n,{balance:s,formattedBalance:yO(s,c.decimals),token:c})}let s=Array.from(o.values());return a.set(Y4(e),{success:!0,balances:s}),a},o8=(e,t)=>{let n=[];for(let r of t){let{chainId:t,fundingItem:i}=r,{userBalance:a}=r.fundingItem,o=e.get(t);if(!o)continue;let s=BigInt(0),c=`0`,l=o.balances.find(e=>Q4(e.token.address,i.token.address));l&&(s=l.balance,c=l.formattedBalance),a.balance=s,a.formattedBalance=c,n.push(r)}return n},s8=(e,t,n)=>{let r=[];for(let i of e){if(!i)continue;let e=n.find(e=>i.fundingItem.token.address===void 0?Q4(e.l1address,`0x0000000000000000000000000000000000000eee`)&&e.l2address:Q4(e.l1address,i.fundingItem.token.address)&&e.l2address);if(!e)continue;let a=t.find(t=>Q4(t.fundingItem.token.address,e.l2address));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r},c8=async(e,t,n,r,i,a,o,s,c)=>{let{l1balances:l,l2balances:u}=X6(e,a),d=r.required.token.address;if(r8(o,s,l,u,n,d))return[];let f=await t8(e,s),p=i8(d,o,s,f);if(p.length===0)return[];let m=e8(await n8(e,i,d,r,p),l,u,f,c);if(m.length===0)return[];let h=new Map,g=new Map,_=[];for(let r of m)r.l2address&&(h.set(r.l2address,Y6(e,t,n,r,a)),g.set(r.l2address,{amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address}));let v=await Promise.all(h.values()),y=Array.from(h.keys()),b=[];if(v.forEach((e,t)=>{let n=y[t];if(e===void 0)return;b.push(n);let r=g.get(n);r&&_.push({amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address})}),b.length===0||_.length===0)return[];let x=await F6(e,n,i,r,a8(e,a,u,_,s),b,c);if(!x)return[];let S=o8(a,x);return s8(v,S,f)},l8=async(e,t,n)=>{if(![`ERC20`,`NATIVE`].includes(n.type))return;let{required:r,current:i,delta:a}=n,o=!1;if((await L6(e,t)).forEach(e=>{e.address&&r.token&&(r3(r.token.address)||Q4(e.address,r.token.address))&&(o=!0)}),o)return{type:`ONRAMP`,chainId:Y4(e),fundingItem:{type:r3(r.token.address)?`NATIVE`:`ERC20`,fundsRequired:{amount:a.balance,formattedAmount:t3(a.formattedBalance)},userBalance:{balance:i.balance,formattedBalance:i.formattedBalance},token:r.token}}},u8=e=>e.bridge||e.swap||e.onRamp,d8=e=>{let t=0,n;for(let r of e.balanceRequirements)r.sufficient||(t++,n=r);if(t===1)return n},f8=async(e,t,n,r,i)=>{let a;if(r===void 0||r.type!==`NATIVE`&&r.type!==`ERC20`)return;let o={amount:r.delta.balance,formattedAmount:r.delta.formattedBalance,l2address:r.required.token.address??``};return n.bridge&&r&&(a=await Y6(e,t,n,o,i)),a},p8=async(e,t,n,r,i,a,o)=>{let s=[];if(!t.swap||n===void 0||a===void 0)return s;let c=i.get(Y4(e));if(!c||c.error!==void 0||!c.success||a.length===0)return s;let l=a.filter(e=>e.address).map(e=>e.address);return l.length===0?s:await F6(e,t,r,n,i,l,o)},m8=async(e,t,n,r,i,a,o,s)=>{if(!r)return[];let c=a.get(J4(e)),l=a.get(Y4(e));if(!c||c.error!==void 0||!c.success||!l||l.error!==void 0||!l.success)return[];let u=(o?.bridge??[]).map(e=>e.address===void 0?`0x0000000000000000000000000000000000000eee`:e.address),d=o?.swap??[];return r.type!==`NATIVE`&&r.type!==`ERC20`?[]:await c8(e,t,n,r,i,a,u,d,s)},h8=async(e,t,n)=>{if(t.onRamp&&n!==void 0)return await l8(e,t,n)},g8={swap:1,bridge:2,onRamp:3,bridgeAndSwap:4},_8=(e,t,n,r)=>{if(!e)return;let i;i=`bridgeFundingStep`in e&&`swapFundingStep`in e?[e.bridgeFundingStep,e.swapFundingStep]:[e];let a={priority:t,steps:i};n.push(a),r?.(a)},v8=async(e,t,n,r,i)=>{if(!u8(r))return{type:`NO_ROUTE_OPTIONS`,message:`No routing options are available`};let a;try{a=await H3(e)}catch(e){throw new $(`Error occurred while creating read only providers`,`PROVIDER_ERROR`,{error:e})}let o=await s3(e,`Time to get token balances inside router`,E6(e,a,t,r)),s=await s3(e,`Time to get routing allowlist`,B6(e,o,r)),c=d8(n),l=[],u=[];return r.swap&&l.push(p8(e,r,c,t,o,s.swap,n).then(e=>{e.forEach(e=>{_8(e,g8.swap,u,i)})})),r.bridge&&l.push(f8(e,a,r,c,o).then(e=>{_8(e,g8.bridge,u,i)})),r.onRamp&&l.push(h8(e,r,c).then(e=>{_8(e,g8.onRamp,u,i)})),r.swap&&r.bridge&&l.push(m8(e,a,r,c,t,o,s,n).then(e=>{e.forEach(e=>{_8(e,g8.bridgeAndSwap,u,i)})})),await s3(e,`Time to resolve all routes`,Promise.all(l)),u.length===0?{type:`NO_ROUTES_FOUND`,message:`Smart Checkout did not find any funding routes to fulfill the transaction`}:{type:`ROUTES_FOUND`,fundingRoutes:u}},y8=e=>({sufficient:!1,balanceRequirements:e.balanceRequirements.map(e=>e.type===`ERC20`&&e.sufficient?{...e,sufficient:!1,delta:{balance:e.required.balance,formattedBalance:e.required.formattedBalance}}:e)}),b8=async(e,t,n,r,i,a,o,s,c)=>{let l=await s3(e,`Total time to run the routing calculator`,v8(e,t,!o||n&&s?y8(a):a,r,c));return s?.({sufficient:n,transactionRequirements:i,router:{availableRoutingOptions:r,routingOutcome:l}}),l},x8=async(e,t,n,r,i,a,o,s=!1)=>{let c=await(await t.getSigner()).getAddress(),l=J3(n),u=Z3(t,c,l),d=r6(t,c,l),f=o6(t,c,l),p=await s3(e,`Time to calculate token allowances`,Promise.all([u,d,f])),m=U3(p[0],p[1],p[2]),h=null;r&&(h=await s3(e,`Time to run gas calculator`,x6(t,m,r)),h!==null&&(l.push(h),l=J3(l)));let g=await s3(e,`Time to run balance checks`,v6(e,t,c,l,!0)),{sufficient:_}=g,v=g.balanceRequirements,y=await s3(e,`Time to fetch available routing options`,T6(e,t));return i?.onRamp===!1&&(y.onRamp=!1),i?.swap===!1&&(y.swap=!1),i?.bridge===!1&&(y.bridge=!1),a?(b8(e,c,_,y,v,g,s,a,o),{sufficient:_,transactionRequirements:v}):_?{sufficient:_,transactionRequirements:v}:{sufficient:_,transactionRequirements:v,router:{availableRoutingOptions:y,routingOutcome:await b8(e,c,_,y,v,g,s,a,o)}}};function S8(e){return e?.ethereumProvider?.isPassport===!0}function C8(e){return S8(e)}let w8=async(e,t)=>{let n=t,{chainId:r}=await e.getNetwork();return!$4(Number(r))||n.gasPrice!==void 0||(C8(e)?n.gasPrice=BigInt(0):(n.maxFeePerGas=m4.maxFeePerGas,n.maxPriorityFeePerGas=m4.maxPriorityFeePerGas)),n},T8=e=>e.code===`INSUFFICIENT_FUNDS`?new $(e.message,`INSUFFICIENT_FUNDS`,{error:e}):e.code===`ACTION_REJECTED`?new $(e.message,`USER_REJECTED_REQUEST_ERROR`,{error:e}):new $(e.message,`TRANSACTION_FAILED`,{error:e}),E8=async(e,t)=>{try{let n=await e.getSigner(),r=await w8(e,t);return{transactionResponse:await n.sendTransaction(r)}}catch(e){throw T8(e)}},D8=async(e,t)=>{let n=[];try{let r=await Promise.all(t.map(t=>E8(e,t)));n=await Promise.all(r.map(e=>e.transactionResponse.wait()))}catch(e){throw new $(`An error occurred while executing the approval transaction`,`EXECUTE_APPROVAL_TRANSACTION_ERROR`,{error:e})}for(let e of n)if(e?.status===0)return{type:`FAILED`,transactionHash:e.hash,reason:`Approval transaction failed and was reverted`};return{type:`SUCCESS`}},O8=async(e,t)=>{let n=[];try{let r=await Promise.all(t.map(t=>E8(e,t)));n=await Promise.all(r.map(e=>e.transactionResponse.wait()))}catch(e){throw new $(`An error occurred while executing the fulfillment transaction`,`EXECUTE_FULFILLMENT_TRANSACTION_ERROR`,{error:e})}for(let e of n)if(e?.status===0)return{type:`FAILED`,transactionHash:e.hash,reason:`Fulfillment transaction failed and was reverted`};return{type:`SUCCESS`}},k8=async(e,t)=>{try{let n=await(await e.getSigner()).signTypedData(t.unsignedMessage.domain,t.unsignedMessage.types,t.unsignedMessage.value);return{orderComponents:t.orderComponents,orderHash:t.orderHash,signedMessage:n}}catch(e){throw new $(`An error occurred while signing the message`,`SIGN_MESSAGE_ERROR`,{error:e})}},A8=async e=>{let t=[],n=[],r=[],i=[];for(let t of e)t.type===OK.TRANSACTION&&(t.purpose===kK.APPROVAL&&r.push(t.buildTransaction()),t.purpose===kK.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}},j8=async e=>{let t=[],n=[];for(let t of e)t.type===OK.TRANSACTION&&t.purpose===kK.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t},M8=async e=>{let t=[],n=[];for(let t of e)t.type===OK.TRANSACTION&&t.purpose===kK.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},N8=(e,t,n)=>{let r;for(let e of n)e.type===OK.SIGNABLE&&e.purpose===AK.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}},P8=(e,t,n=BigInt(1))=>{let r=e.amount,i=Math.round(r.percentageDecimal*10**6),a=t*BigInt(i)/BigInt(10**6);return a-a%n},F8=(e,t)=>{let n=e.amount;return bO(n.token,t)},I8=(e,t,n=18,r=BigInt(1))=>{let i=BigInt(0),a=BigInt(t),o=a*BigInt(1*10**6)/BigInt(10**6),s=[];for(let t of e){let e=BigInt(0);if(Object.hasOwn(t.amount,`percentageDecimal`))e=P8(t,a,r),i+=e;else if(Object.hasOwn(t.amount,`token`))e=F8(t,n),i+=e;else throw new $(`Unknown fee type parsed, must be percentageDecimal or token`,`ORDER_FEE_ERROR`);if(i>o)throw new $(`The combined fees are above the allowed maximum of 100%`,`ORDER_FEE_ERROR`);e>0&&s.push({amount:e.toString(),recipientAddress:t.recipient})}return s},L8=(e,t,n,r,i=!1)=>{switch(e){case`ERC20`:return{type:e,amount:n,tokenAddress:t,spenderAddress:r,isFee:i};default:return{type:`NATIVE`,amount:n,isFee:i}}},R8=(e,t)=>t.length>0?{type:`TRANSACTION`,transaction:t[0]}:{type:`GAS`,gasToken:{type:`NATIVE`,limit:BigInt(e)}},z8=async(e,t,n,r={waitFulfillmentSettlements:!0})=>{if(Ce(`checkout_sdk`,`buy_initiated`),n.length===0)throw new $(`No orders were provided to the orders array. Please provide at least one order.`,`FULFILL_ORDER_LISTING_ERROR`);let i,a=``,o=18,s=wq.estimatedFulfillmentGasGwei,c=C3(e),l=w3(e),u=await s3(e,`Time to get the address from the provider`,(await t.getSigner()).getAddress());d3(),h3(e,t,u,J4(e)),h3(e,t,u,Y4(e));let{id:d,takerFees:f,fillAmount:p}=n[0],m;try{i=await s3(e,`Time to fetch the listing from the orderbook`,c.getListing(d));let{seaportContractAddress:t,chainName:n}=c.config();m=n,a=t}catch(e){throw new $(`An error occurred while getting the order listing`,`GET_ORDER_LISTING_ERROR`,{error:e,orderId:d})}if(i.result.buy.length===0)throw new $(`An error occurred with the get order listing`,`GET_ORDER_LISTING_ERROR`,{orderId:d,message:`No buy side tokens found on order`});let h=i.result.buy[0];if(h.type===`ERC20`){let t=await s3(e,`Time to get decimals of token contract for the buy token`,l.getToken({contractAddress:h.contractAddress,chainName:m}));t.result.decimals&&(o=t.result.decimals)}let g=[];if(f&&f.length>0){let e=i.result.sell[0].type===`ERC721`?BigInt(1):BigInt(i.result.sell[0].amount);g=I8(f,h.amount,o,e)}let _=[],v=[],y=[],b=performance.now();try{let{actions:t}=await s3(e,`Time to call fulfillOrder from the orderbook`,c.fulfillOrder(d,u,g,p));y=t,_=await s3(e,`Time to construct the unsigned approval transactions`,j8(t))}catch(t){if(o3(e,`Time to call fulfillOrder from the orderbook`,(performance.now()-b)/1e3),t.message.includes(mK.EXPIRED))throw new $(`Order is expired`,`ORDER_EXPIRED_ERROR`,{orderId:d});if(!t.message.includes(`The fulfiller does not have the balances needed to fulfill`))throw new $(`Error occurred while trying to fulfill the order`,`FULFILL_ORDER_LISTING_ERROR`,{orderId:d,error:t})}try{v=await s3(e,`Time to construct the unsigned fulfillment transactions`,M8(y))}catch{}let x=BigInt(`0`),S=`NATIVE`,C=``,w=i.result.buy;if(w.length>0)switch(w[0].type){case`NATIVE`:S=`NATIVE`;break;case`ERC20`:S=`ERC20`,C=w[0].contractAddress;break;default:throw new $(`Purchasing token type is unsupported`,`UNSUPPORTED_TOKEN_TYPE_ERROR`,{orderId:d})}w.forEach(e=>{e.type!==`ERC721`&&(x+=BigInt(e.amount))}),i.result.fees.forEach(e=>{x+=BigInt(e.amount)}),i.result.sell[0].type===`ERC1155`&&p&&(x=x*BigInt(p)/BigInt(i.result.sell[0].amount));let T=await s3(e,`Total time running smart checkout`,x8(e,t,[L8(S,C,x,a)],R8(s,v)));if(T.sufficient){let e=await D8(t,_);if(e.type===`FAILED`)return{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:T};try{v.length===0&&(v=await M8(y))}catch(e){throw new $(`Error fetching fulfillment transaction`,`FULFILL_ORDER_LISTING_ERROR`,{error:e})}if(r.waitFulfillmentSettlements){let e=await O8(t,v);return e.type===`FAILED`?{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:T}:{status:`SUCCESS`,smartCheckoutResult:T}}let n;try{n=(await Promise.all(v.map(e=>E8(t,e)))).map(e=>e.transactionResponse)}catch(e){throw new $(`An error occurred while executing the fulfillment transaction`,`EXECUTE_FULFILLMENT_TRANSACTION_ERROR`,{message:e.message})}return{status:`FULFILLMENTS_UNSETTLED`,smartCheckoutResult:T,transactions:n}}return{status:`INSUFFICIENT_FUNDS`,smartCheckoutResult:T}},B8=async(e,t,n,r,i)=>{let a;if(r.length===0)throw new $(`No orderIds were provided to the orderIds array. Please provide at least one orderId.`,`CANCEL_ORDER_LISTING_ERROR`);let o=r[0];try{let r=await s3(e,`Time to get the address from the provider`,(await n.getSigner()).getAddress());a=await(await s3(e,`Time to get the cancel order from the orderbook`,t.cancelOrdersOnChain([o],r))).cancellationAction.buildTransaction()}catch(e){throw new $(`An error occurred while cancelling the order listing`,`CANCEL_ORDER_LISTING_ERROR`,{orderId:o,error:e})}if(i){let e=await O8(n,[a]);return e.type===`FAILED`?{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason}:{status:`SUCCESS`}}let s;try{s=(await Promise.all([a].map(e=>E8(n,e)))).map(e=>e.transactionResponse)}catch(e){throw new $(`An error occurred while executing the fulfillment transaction`,`EXECUTE_FULFILLMENT_TRANSACTION_ERROR`,{message:e.message})}return{status:`FULFILLMENTS_UNSETTLED`,transactions:s}},V8=async(e,t,n)=>{try{let r=await t.getSigner(),i=await r.getAddress(),{signableAction:a}=await e.prepareOrderCancellations(n),o=await r.signTypedData(a.message.domain,a.message.types,a.message.value),{result:s}=await e.cancelOrders(n,i,o),c=[],l=[],u=[];for(let e of s.successful_cancellations)c.push({orderId:e});for(let e of s.failed_cancellations)l.push({orderId:e.order,reason:e.reason_code});for(let e of s.pending_cancellations)u.push({orderId:e});return{successfulCancellations:c,failedCancellations:l,pendingCancellations:u}}catch(e){throw new $(`An error occurred while cancelling the order listing`,`CANCEL_ORDER_LISTING_ERROR`,{orderIds:n,error:e})}},H8=async(e,t,n,r={waitFulfillmentSettlements:!0,useGaslessCancel:!1})=>{let i=C3(e);return r.useGaslessCancel?await V8(i,t,n):await B8(e,i,t,n,r.waitFulfillmentSettlements??!0)};async function U8(e,t){let n=[];t.forEach(t=>{if(t.type===`ERC20`){let{tokenAddress:r}=t;n.push(T3(r,d4,e).decimals())}});let r=await Promise.all(n);return t.map((e,t)=>e.type===`NATIVE`?{...e,amount:bO(e.amount,18)}:e.type===`ERC20`?{...e,amount:bO(e.amount,r[t])}:e)}let W8=(e,t,n)=>({type:`ERC721`,id:e,contractAddress:t,spenderAddress:n}),G8=(e,t,n,r)=>({type:`ERC1155`,id:e,contractAddress:t,spenderAddress:n,amount:BigInt(r)}),K8=(e,t=18)=>{let n=bO(e.amount,t);return e.type===`NATIVE`?{type:`NATIVE`,amount:n.toString()}:{type:`ERC20`,amount:n.toString(),contractAddress:e.tokenAddress}},q8=async(e,t,n)=>{let r,i,a=``;if(Ce(`checkout_sdk`,`sell_initiated`),n.length===0)throw new $(`No orders were provided to the orders array. Please provide at least one order.`,`PREPARE_ORDER_LISTING_ERROR`);let{buyToken:o,sellToken:s,makerFees:c,orderExpiry:l}=n[0],u=18;o.type===`ERC20`&&(u=await s3(e,`Time to get decimals of token contract for the buy token`,new JI(o.tokenAddress,JSON.stringify(d4),t).decimals()));let d=K8(o,u),f=`type`in s;try{let n=await s3(e,`Time to get the address from the provider`,(await t.getSigner()).getAddress());r=C3(e);let{seaportContractAddress:o}=r.config();a=o;let c=f&&s.type===`ERC1155`?{type:`ERC1155`,contractAddress:s.collectionAddress,tokenId:s.id,amount:s.amount}:{type:`ERC721`,contractAddress:s.collectionAddress,tokenId:s.id};i=await s3(e,`Time to prepare the listing from the orderbook`,r.prepareListing({makerAddress:n,buy:d,sell:c,orderExpiry:l}))}catch(e){throw new $(`An error occurred while preparing the listing`,`PREPARE_ORDER_LISTING_ERROR`,{error:e,id:s.id,collectionAddress:s.collectionAddress})}let p=[];if(f&&s.type===`ERC1155`){let e=G8(s.id,s.collectionAddress,a,s.amount);p.push(e)}else{let e=W8(s.id,s.collectionAddress,a);p.push(e)}let m;if(m=w6(t)?{sufficient:!0,transactionRequirements:[]}:await s3(e,`Total time running smart checkout`,x8(e,t,p,{type:`GAS`,gasToken:{type:`NATIVE`,limit:BigInt(wq.estimatedFulfillmentGasGwei)}})),m.sufficient){let e=await D8(t,(await A8(i.actions)).approvalTransactions);if(e.type===`FAILED`)return{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:m};let n=N8(i.orderHash,i.orderComponents,i.actions);if(!n)throw new $(`The unsigned message is missing after preparing the listing`,`SIGN_MESSAGE_ERROR`,{id:s.id,collectionAddress:s.collectionAddress});let a=await k8(t,n),o=``,l={orderComponents:a.orderComponents,orderHash:a.orderHash,orderSignature:a.signedMessage,makerFees:[]};if(c!==void 0){let e=BigInt(1);f&&s.type===`ERC1155`&&(e=BigInt(s.amount));let t=I8(c,d.amount,u,e);if(t.length!==c.length)throw new $(`One of the fees is too small, must be greater than 0.000001`,`CREATE_ORDER_LISTING_ERROR`);l.makerFees=t}try{o=(await r.createListing(l)).result.id}catch(e){throw new $(`An error occurred while creating the listing`,`CREATE_ORDER_LISTING_ERROR`,{error:e,collectionId:s.id,collectionAddress:s.collectionAddress})}return{status:`SUCCESS`,orderIds:[o],smartCheckoutResult:m}}return{status:`INSUFFICIENT_FUNDS`,smartCheckoutResult:m}},J8=async(e,t,n,r,i,a,o,s,c)=>{if(!n.address||n.decimals===0)throw new $(`fromToken address or decimals is missing.`,`MISSING_PARAMS`);if(!r.address||r.decimals===0)throw new $(`toToken address or decimals is missing.`,`MISSING_PARAMS`);if(i&&a)throw new $(`Only one of fromAmount or toAmount can be provided.`,`MISSING_PARAMS`);if(!i&&!a)throw new $(`fromAmount or toAmount must be provided.`,`MISSING_PARAMS`);let l=await S3(Y4(e),e),u=await(await t.getSigner()).getAddress();return i?l.getUnsignedSwapTxFromAmountIn(u,n.address,r.address,BigInt(bO(i,n.decimals)),o,s,c):l.getUnsignedSwapTxFromAmountOut(u,n.address,r.address,BigInt(bO(a,r.decimals)),o,s,c)},Y8=async(e,t,n,r,i,a,o,s,c)=>{let l=await J8(e,t,n,r,i,a,o,s,c);if(l.approval&&(await(await E8(t,l.approval.transaction)).transactionResponse.wait())?.status===0)throw new $(`Approval transaction failed and was reverted`,`APPROVAL_TRANSACTION_FAILED`);let u=await(await E8(t,l.swap.transaction)).transactionResponse.wait();if(u?.status===0)throw new $(`Swap transaction failed and was reverted`,`TRANSACTION_FAILED`);return{swapReceipt:u,quote:l.quote,swap:l.swap}};async function X8(e){let t=[],n=e.exclude?.map(e=>e.walletProviderName)??[],r=Object.values(x4);n.length!==0&&(r=r.filter(e=>!n.includes(e)));for(let e of r)t.push({walletProviderName:e});return{wallets:t}}let Z8=async(e,t)=>Object.fromEntries(e.map(e=>[e.toLowerCase(),{sanctioned:!1}])),Q8=(e,t)=>!1,$8=(e,t)=>!1,e5=e=>!1,t5={baseConfig:{environment:Ve.SANDBOX},passport:void 0};var n5=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=t5){this.httpClient=new Y2(e),this.config=new Z4(e,this.httpClient),this.fiatRampService=new y3(this.config),this.readOnlyProviders=new Map,this.availability=g4(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport,N3.getInstance().initialise()}async widgets(e){let t=this,n=h4();try{let r=await import([`https://cdn.jsdelivr.net/npm/@imtbl/checkout-widgets@`,n,`/dist/browser/index.js`].join(``));if(r&&r.WidgetsFactory)return new r.WidgetsFactory(t,e.config);throw Error(`WidgetsFactory not found in loaded module for version: ${n}`)}catch(e){throw new $(`Failed to load widgets script`,`WIDGETS_SCRIPT_LOAD_ERROR`,{error:e})}}async createProvider(e){return await z3(e.walletProviderName,this.passport)}getInjectedProviders(){return N3.getInstance().getProviders()}findInjectedProvider(e){return N3.getInstance().findProvider(e)}onInjectedProvidersChange(e){return N3.getInstance().subscribe(e)}clearInjectedProviders(){return N3.getInstance().clear()}async checkIsWalletConnected(e){return g3(await V3(this.config,e.provider,{allowMistmatchedChainId:!0,allowUnsupportedProvider:!0}))}async getRiskAssessment(e){return await Z8(e,this.config)}checkIsAddressSanctioned(e,t){return Q8(e,t)}async connect(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return e.requestWalletPermissions&&!S8(t)?await v3(t):await _3(t),t}async addNetwork(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await L4(this.config.networkMap,t,e.chainId)}async switchNetwork(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await V4(this.config,t,e.chainId)}async getTokenInfo(e){return await i3(e.provider,e.tokenAddress)}async getBalance(e){let t=await V3(this.config,e.provider);return!e.tokenAddress||e.tokenAddress===``?await c3(this.config,t,e.walletAddress):await l3(t,e.walletAddress,e.tokenAddress)}async getAllBalances(e){let t=!e.provider||`ethereumProvider`in e.provider?e.provider:new w4(e.provider);return h3(this.config,t,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await R4(this.config,e)}async getTokenAllowList(e){return await n3(this.config,e)}async getWalletAllowList(e){return await X8(e)}async sendTransaction(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await E8(t,e.transaction)}async providerCall(e,t){let n=await V3(this.config,e,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});try{return await t(n)}catch(e){throw T8(e)}}async getNetworkInfo(e){let t=await V3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await z4(this.config,t)}async buy(e){e.orders.length>1&&console.warn(`This endpoint currently only processes the first order in the array.`);let t=await V3(this.config,e.provider);return await z8(this.config,t,e.orders,e.overrides)}async sell(e){e.orders.length>1&&console.warn(`This endpoint currently only processes the first order in the array.`);let t=await V3(this.config,e.provider);return await q8(this.config,t,e.orders)}async cancel(e){console.warn(`This endpoint currently only processes the first order in the array.`);let t=await V3(this.config,e.provider);return await H8(this.config,t,e.orderIds,e.overrides)}async smartCheckout(e){let t=await V3(this.config,e.provider),n=[];try{n=await U8(t,e.itemRequirements)}catch(e){throw new $(`Failed to map item requirements`,`ITEM_REQUIREMENTS_ERROR`,{error:e})}return await x8(this.config,t,n,e.transactionOrGasAmount,e.routingOptions,e.onComplete,e.onFundingRoute,e.fundingRouteFullAmount)}static isWrappedBrowserProvider(e){return B3(e)}async gasEstimate(e){return this.readOnlyProviders=await H3(this.config,this.readOnlyProviders),await O3(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(e){let t,n=`IMX`,r,i=`request`in e.browserProvider?new w4(e.browserProvider):e.browserProvider,a=await(await i.getSigner()).getAddress(),o=i.ethereumProvider?.isPassport||!1;o&&e.passport&&(r=(await e.passport.getUserInfo())?.email);let s=await n3(this.config,{type:`onramp`}),c=s.tokens?.find(t=>Q4(t.address,e.tokenAddress));c&&(t=e.tokenAmount,n=c.symbol);let l=s?.tokens?.filter(e=>e.symbol).map(e=>e.symbol);return await this.fiatRampService.createWidgetUrl({exchangeType:e.exchangeType,isPassport:o,walletAddress:a,tokenAmount:t,tokenSymbol:n,email:r,allowedTokens:l,showMenu:e.showMenu,customSubTitle:e.customSubTitle})}async getExchangeFeeEstimate(){return await this.fiatRampService.feeEstimate()}async isSwapAvailable(){return this.availability.checkDexAvailability()}async swap(e){let t=await V3(this.config,e.provider);return Y8(this.config,t,e.fromToken,e.toToken,e.fromAmount,e.toAmount,e.slippagePercent,e.maxHops,e.deadline)}async swapQuote(e){let t=await V3(this.config,e.provider);return J8(this.config,t,e.fromToken,e.toToken,e.fromAmount,e.toAmount,e.slippagePercent,e.maxHops,e.deadline)}},r5=class{static getTransactionLink(e,t){let n=u4?.[e]?.url;if(!(!n||!t))return`${n}/tx/${t}`}},i5=l({AddTokensEventType:()=>B2,BlockExplorerService:()=>r5,BridgeEventType:()=>N2,ChainId:()=>Q2,ChainName:()=>$2,ChainSlug:()=>e4,Checkout:()=>n5,CheckoutConfiguration:()=>Z4,CheckoutError:()=>$,CheckoutErrorType:()=>X2,CheckoutStatus:()=>T4,CommerceEventType:()=>I2,CommerceFailureEventType:()=>R2,CommerceFlowType:()=>K2,CommerceSuccessEventType:()=>L2,CommerceUserActionEventType:()=>z2,ConnectEventType:()=>O2,ConnectTargetLayer:()=>W2,ExchangeType:()=>M4,FeeType:()=>A4,FundingStepType:()=>j4,GasEstimateType:()=>_4,GasTokenType:()=>O4,IMMUTABLE_API_BASE_URL:()=>a4,IMTBLWidgetEvents:()=>E2,ItemType:()=>E4,NetworkFilterTypes:()=>v4,OnRampEventType:()=>F2,OrchestrationEventType:()=>P2,ProviderEventType:()=>D2,PurchaseEventType:()=>V2,RoutingOutcomeType:()=>k4,SaleEventType:()=>j2,SalePaymentTypes:()=>M2,SwapDirection:()=>G2,SwapEventType:()=>A2,TokenFilterTypes:()=>y4,TransactionOrGasType:()=>D4,TransferEventType:()=>H2,WalletEventType:()=>k2,WalletFilterTypes:()=>b4,WalletProviderName:()=>x4,WalletProviderRdns:()=>S4,WidgetTheme:()=>q2,WidgetType:()=>U2,WrappedBrowserProvider:()=>w4,fetchRiskAssessment:()=>Z8,getGasPriceInWei:()=>A3,getMetaMaskProviderDetail:()=>L3,getPassportProviderDetail:()=>I3,getUnderlyingChainId:()=>P4,isAddressSanctioned:()=>Q8,isSingleAddressSanctioned:()=>$8,metaMaskProviderInfo:()=>P3,passportProviderInfo:()=>F3,resultHasSanctionedWallets:()=>e5,validateProvider:()=>V3});return Object.defineProperty(e,"blockchainData",{enumerable:!0,get:function(){return lc}}),Object.defineProperty(e,"checkout",{enumerable:!0,get:function(){return i5}}),Object.defineProperty(e,"config",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(e,"orderbook",{enumerable:!0,get:function(){return Tq}}),Object.defineProperty(e,"passport",{enumerable:!0,get:function(){return LE}}),e})({});
|