@imtbl/sdk 2.24.10-0 → 2.24.10-1
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,14 +6,14 @@ var immutable=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Mo
|
|
|
6
6
|
`);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(`
|
|
7
7
|
`),r=t===-1?-1:n.indexOf(`
|
|
8
8
|
`,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=`
|
|
9
|
-
`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=mn(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&qn.assertOptions(n,{silentJSONParsing:Jn.transitional(Jn.boolean),forcedJSONParsing:Jn.transitional(Jn.boolean),clarifyTimeoutError:Jn.transitional(Jn.boolean),legacyInterceptorReqResOrdering:Jn.transitional(Jn.boolean),advertiseZstdAcceptEncoding:Jn.transitional(Jn.boolean),validateStatusUndefinedResolves:Jn.transitional(Jn.boolean)},!1),r!=null&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:qn.assertOptions(r,{encode:Jn.function,serialize:Jn.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),qn.assertOptions(t,{baseUrl:Jn.spelling(`baseURL`),withXsrfToken:Jn.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&L.merge(i.common,i[t.method]);i&&L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=mt.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||kt;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=[Un.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=Un.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=mn(this.defaults,e),Dt(fn(e.baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}};L.forEach([`delete`,`get`,`head`,`options`],function(e){Yn.prototype[e]=function(t,n){return this.request(mn(n||{},{method:e,url:t,data:n&&L.hasOwnProp(n,`data`)?n.data:void 0}))}}),L.forEach([`post`,`put`,`patch`,`query`],function(e){function t(t){return function(n,r,i){return this.request(mn(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}Yn.prototype[e]=t(),e!==`query`&&(Yn.prototype[e+`Form`]=t(!0))});var Xn=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 Jt(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 Zn(e){return function(t){return e.apply(null,t)}}function Qn(e){return L.isObject(e)&&e.isAxiosError===!0}let $n={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($n).forEach(([e,t])=>{$n[t]=e});function er(e){let t=new Yn(e),n=v(Yn.prototype.request,t);return L.extend(n,Yn.prototype,t,{allOwnKeys:!0}),L.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return er(mn(e,t))},n}let z=er(Gt);z.Axios=Yn,z.CanceledError=Jt,z.CancelToken=Xn,z.isCancel=qt,z.VERSION=`1.18.1`,z.toFormData=St,z.AxiosError=R,z.Cancel=z.CanceledError,z.all=function(e){return Promise.all(e)},z.spread=Zn,z.isAxiosError=Qn,z.mergeConfig=mn,z.AxiosHeaders=mt,z.formToJSON=e=>Ht(L.isHTMLForm(e)?new FormData(e):e),z.getAdapter=Vn.getAdapter,z.HttpStatusCode=$n,z.default=z;let{Axios:tr,AxiosError:nr,CanceledError:rr,isCancel:ir,CancelToken:ar,VERSION:or,all:sr,Cancel:cr,isAxiosError:lr,spread:ur,toFormData:dr,AxiosHeaders:fr,HttpStatusCode:pr,formToJSON:mr,getAdapter:hr,mergeConfig:gr,create:_r}=z;var vr=Object.defineProperty,yr=(e,t)=>{let n={};for(var r in e)vr(n,r,{get:e[r],enumerable:!0});return t||vr(n,Symbol.toStringTag,{value:`Module`}),n};let B=`https://api.sandbox.immutable.com`.replace(/\/+$/,``);var br=class{basePath;axios;configuration;constructor(e,t=B,n=z){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}},xr=class extends Error{field;constructor(e,t){super(t),this.field=e,this.name=`RequiredError`}};let V=`https://example.com`,H=function(e,t,n){if(n==null)throw new xr(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},Sr=async function(e,t,n){n&&n.apiKey&&(e[t]=typeof n.apiKey==`function`?await n.apiKey(t):await n.apiKey)},Cr=async function(e,t){t&&t.accessToken&&(e.Authorization=`Bearer `+(typeof t.accessToken==`function`?await t.accessToken():await t.accessToken))};function wr(e,t,n=``){t!=null&&(typeof t==`object`?Array.isArray(t)?t.forEach(t=>wr(e,t,n)):Object.keys(t).forEach(r=>wr(e,t[r],`${n}${n===``?``:`.`}${r}`)):e.has(n)?e.append(n,t):e.set(n,t))}let Tr=function(e,...t){let n=new URLSearchParams(e.search);wr(n,t),e.search=n.toString()},Er=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||``},Dr=function(e){return e.pathname+e.search+e.hash},Or=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)}},kr=function(e){return{getActivity:async(t,n,r={})=>{H(`getActivity`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},listActivities:async(t,n,r,i,a,o,s,c,l={})=>{H(`listActivities`,`chainName`,t);let u=`/v1/chains/{chain_name}/activities`.replace(`{chain_name}`,encodeURIComponent(String(t))),d=new URL(u,V),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),Tr(d,h);let g=f&&f.headers?f.headers:{};return p.headers={...m,...g,...l.headers},{url:Dr(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s,c={})=>{H(`listActivityHistory`,`chainName`,t),H(`listActivityHistory`,`fromUpdatedAt`,n);let l=`/v1/chains/{chain_name}/activity-history`.replace(`{chain_name}`,encodeURIComponent(String(t))),u=new URL(l,V),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),Tr(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Dr(u),options:f}}}},Ar=function(e){let t=kr(e);return{async getActivity(n,r,i){return Or(await t.getActivity(n,r,i),z,B,e)},async listActivities(n,r,i,a,o,s,c,l,u){return Or(await t.listActivities(n,r,i,a,o,s,c,l,u),z,B,e)},async listActivityHistory(n,r,i,a,o,s,c,l){return Or(await t.listActivityHistory(n,r,i,a,o,s,c,l),z,B,e)}}},jr=function(e,t,n){let r=Ar(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 Mr=class extends br{getActivity(e,t){return Ar(this.configuration).getActivity(e.chainName,e.activityId,t).then(e=>e(this.axios,this.basePath))}listActivities(e,t){return Ar(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 Ar(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 Nr=function(e){return{listChains:async(t,n,r={})=>{let i=new URL(`/v1/chains`,V),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),Tr(i,c);let l=a&&a.headers?a.headers:{};return o.headers={...s,...l,...r.headers},{url:Dr(i),options:o}}}},Pr=function(e){let t=Nr(e);return{async listChains(n,r,i){return Or(await t.listChains(n,r,i),z,B,e)}}},Fr=function(e,t,n){let r=Pr(e);return{listChains(e={},i){return r.listChains(e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Ir=class extends br{listChains(e={},t){return Pr(this.configuration).listChains(e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let Lr=function(e){return{getCollection:async(t,n,r={})=>{H(`getCollection`,`contractAddress`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},listCollections:async(t,n,r,i,a,o,s={})=>{H(`listCollections`,`chainName`,t);let c=`/v1/chains/{chain_name}/collections`.replace(`{chain_name}`,encodeURIComponent(String(t))),l=new URL(c,V),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),Tr(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Dr(l),options:d}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{H(`listCollectionsByNFTOwner`,`accountAddress`,t),H(`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,V),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),Tr(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Dr(s),options:l}},refreshCollectionMetadata:async(t,n,r,i={})=>{H(`refreshCollectionMetadata`,`contractAddress`,t),H(`refreshCollectionMetadata`,`chainName`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Cr(l,e),await Sr(l,`x-immutable-api-key`,e),await Cr(l,e),l[`Content-Type`]=`application/json`,Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Er(r,c,e),{url:Dr(o),options:c}}}},Rr=function(e){let t=Lr(e);return{async getCollection(n,r,i){return Or(await t.getCollection(n,r,i),z,B,e)},async listCollections(n,r,i,a,o,s,c){return Or(await t.listCollections(n,r,i,a,o,s,c),z,B,e)},async listCollectionsByNFTOwner(n,r,i,a,o){return Or(await t.listCollectionsByNFTOwner(n,r,i,a,o),z,B,e)},async refreshCollectionMetadata(n,r,i,a){return Or(await t.refreshCollectionMetadata(n,r,i,a),z,B,e)}}},zr=function(e,t,n){let r=Rr(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 Br=class extends br{getCollection(e,t){return Rr(this.configuration).getCollection(e.contractAddress,e.chainName,t).then(e=>e(this.axios,this.basePath))}listCollections(e,t){return Rr(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 Rr(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}refreshCollectionMetadata(e,t){return Rr(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then(e=>e(this.axios,this.basePath))}};let Vr=function(e){return{signCraftingPayload:async(t,n,r={})=>{H(`signCraftingPayload`,`chainName`,t),H(`signCraftingPayload`,`signCraftingRequest`,n);let i=`/v1/chains/{chain_name}/crafting/sign`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Sr(c,`x-immutable-api-key`,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}}}},Hr=function(e){let t=Vr(e);return{async signCraftingPayload(n,r,i){return Or(await t.signCraftingPayload(n,r,i),z,B,e)}}},Ur=function(e,t,n){let r=Hr(e);return{signCraftingPayload(e,i){return r.signCraftingPayload(e.chainName,e.signCraftingRequest,i).then(e=>e(n,t))}}};var Wr=class extends br{signCraftingPayload(e,t){return Hr(this.configuration).signCraftingPayload(e.chainName,e.signCraftingRequest,t).then(e=>e(this.axios,this.basePath))}};let Gr=function(e){return{approvePendingERC191Message:async(t,n={})=>{H(`approvePendingERC191Message`,`messageID`,t);let r=`/guardian/v1/erc191-messages/{messageID}/approve`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`POST`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},approvePendingMessage:async(t,n={})=>{H(`approvePendingMessage`,`messageID`,t);let r=`/guardian/v1/messages/{messageID}/approve`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`POST`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},approvePendingTransaction:async(t,n,r={})=>{H(`approvePendingTransaction`,`payloadHash`,t),H(`approvePendingTransaction`,`transactionApprovalRequest`,n);let i=`/guardian/v1/transactions/{payloadHash}/approve`.replace(`{payloadHash}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},evaluateErc191Message:async(t,n={})=>{H(`evaluateErc191Message`,`eRC191MessageEvaluationRequest`,t);let r=new URL(`/guardian/v1/erc191-messages/evaluate`,V),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Cr(o,e),o[`Content-Type`]=`application/json`,Tr(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Er(t,a,e),{url:Dr(r),options:a}},evaluateMessage:async(t,n={})=>{H(`evaluateMessage`,`messageEvaluationRequest`,t);let r=new URL(`/guardian/v1/messages/evaluate`,V),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Cr(o,e),o[`Content-Type`]=`application/json`,Tr(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Er(t,a,e),{url:Dr(r),options:a}},evaluateTransaction:async(t,n,r={})=>{H(`evaluateTransaction`,`id`,t),H(`evaluateTransaction`,`transactionEvaluationRequest`,n);let i=`/guardian/v1/transactions/{id}/evaluate`.replace(`{id}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getErc191MessageByID:async(t,n={})=>{H(`getErc191MessageByID`,`messageID`,t);let r=`/guardian/v1/erc191-messages/{messageID}`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},getMessageByID:async(t,n={})=>{H(`getMessageByID`,`messageID`,t);let r=`/guardian/v1/messages/{messageID}`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},getTransactionByID:async(t,n,r,i={})=>{H(`getTransactionByID`,`transactionID`,t),H(`getTransactionByID`,`chainType`,n);let a=`/guardian/v1/transactions/{transactionID}`.replace(`{transactionID}`,encodeURIComponent(String(t))),o=new URL(a,V),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={},u={};await Cr(l,e),n!==void 0&&(u.chainType=n),r!==void 0&&(u.chainID=r),Tr(o,u);let d=s&&s.headers?s.headers:{};return c.headers={...l,...d,...i.headers},{url:Dr(o),options:c}}}},Kr=function(e){let t=Gr(e);return{async approvePendingERC191Message(n,r){return Or(await t.approvePendingERC191Message(n,r),z,B,e)},async approvePendingMessage(n,r){return Or(await t.approvePendingMessage(n,r),z,B,e)},async approvePendingTransaction(n,r,i){return Or(await t.approvePendingTransaction(n,r,i),z,B,e)},async evaluateErc191Message(n,r){return Or(await t.evaluateErc191Message(n,r),z,B,e)},async evaluateMessage(n,r){return Or(await t.evaluateMessage(n,r),z,B,e)},async evaluateTransaction(n,r,i){return Or(await t.evaluateTransaction(n,r,i),z,B,e)},async getErc191MessageByID(n,r){return Or(await t.getErc191MessageByID(n,r),z,B,e)},async getMessageByID(n,r){return Or(await t.getMessageByID(n,r),z,B,e)},async getTransactionByID(n,r,i,a){return Or(await t.getTransactionByID(n,r,i,a),z,B,e)}}},qr=function(e,t,n){let r=Kr(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 Jr=class extends br{approvePendingERC191Message(e,t){return Kr(this.configuration).approvePendingERC191Message(e.messageID,t).then(e=>e(this.axios,this.basePath))}approvePendingMessage(e,t){return Kr(this.configuration).approvePendingMessage(e.messageID,t).then(e=>e(this.axios,this.basePath))}approvePendingTransaction(e,t){return Kr(this.configuration).approvePendingTransaction(e.payloadHash,e.transactionApprovalRequest,t).then(e=>e(this.axios,this.basePath))}evaluateErc191Message(e,t){return Kr(this.configuration).evaluateErc191Message(e.eRC191MessageEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}evaluateMessage(e,t){return Kr(this.configuration).evaluateMessage(e.messageEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}evaluateTransaction(e,t){return Kr(this.configuration).evaluateTransaction(e.id,e.transactionEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}getErc191MessageByID(e,t){return Kr(this.configuration).getErc191MessageByID(e.messageID,t).then(e=>e(this.axios,this.basePath))}getMessageByID(e,t){return Kr(this.configuration).getMessageByID(e.messageID,t).then(e=>e(this.axios,this.basePath))}getTransactionByID(e,t){return Kr(this.configuration).getTransactionByID(e.transactionID,e.chainType,e.chainID,t).then(e=>e(this.axios,this.basePath))}};let Yr={Evm:`evm`},Xr=function(e){return{getMetadata:async(t,n,r,i={})=>{H(`getMetadata`,`chainName`,t),H(`getMetadata`,`contractAddress`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Dr(o),options:c}},listMetadata:async(t,n,r,i,a,o={})=>{H(`listMetadata`,`chainName`,t),H(`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,V),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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}},listMetadataForChain:async(t,n,r,i,a={})=>{H(`listMetadataForChain`,`chainName`,t);let o=`/v1/chains/{chain_name}/metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,V),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),Tr(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Dr(s),options:l}},listStacks:async(t,n,r={})=>{H(`listStacks`,`chainName`,t),H(`listStacks`,`stackId`,n);let i=`/v1/chains/{chain_name}/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={},l={};n&&(l.stack_id=n),Tr(a,l);let u=o&&o.headers?o.headers:{};return s.headers={...c,...u,...r.headers},{url:Dr(a),options:s}},refreshMetadataByID:async(t,n,r,i={})=>{H(`refreshMetadataByID`,`chainName`,t),H(`refreshMetadataByID`,`contractAddress`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Sr(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Er(r,c,e),{url:Dr(o),options:c}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{H(`refreshNFTMetadataByTokenID`,`contractAddress`,t),H(`refreshNFTMetadataByTokenID`,`chainName`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Sr(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Er(r,c,e),{url:Dr(o),options:c}}}},Zr=function(e){let t=Xr(e);return{async getMetadata(n,r,i,a){return Or(await t.getMetadata(n,r,i,a),z,B,e)},async listMetadata(n,r,i,a,o,s){return Or(await t.listMetadata(n,r,i,a,o,s),z,B,e)},async listMetadataForChain(n,r,i,a,o){return Or(await t.listMetadataForChain(n,r,i,a,o),z,B,e)},async listStacks(n,r,i){return Or(await t.listStacks(n,r,i),z,B,e)},async refreshMetadataByID(n,r,i,a){return Or(await t.refreshMetadataByID(n,r,i,a),z,B,e)},async refreshNFTMetadataByTokenID(n,r,i,a){return Or(await t.refreshNFTMetadataByTokenID(n,r,i,a),z,B,e)}}},Qr=function(e,t,n){let r=Zr(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 $r=class extends br{getMetadata(e,t){return Zr(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then(e=>e(this.axios,this.basePath))}listMetadata(e,t){return Zr(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 Zr(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listStacks(e,t){return Zr(this.configuration).listStacks(e.chainName,e.stackId,t).then(e=>e(this.axios,this.basePath))}refreshMetadataByID(e,t){return Zr(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then(e=>e(this.axios,this.basePath))}refreshNFTMetadataByTokenID(e,t){return Zr(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then(e=>e(this.axios,this.basePath))}};let ei=function(e){return{listFilters:async(t,n,r={})=>{H(`listFilters`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},searchNFTs:async(t,n,r,i,a,o,s,c={})=>{H(`searchNFTs`,`chainName`,t),H(`searchNFTs`,`contractAddress`,n);let l=`/v1/chains/{chain_name}/search/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))),u=new URL(l,V),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),Tr(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Dr(u),options:f}},searchStacks:async(t,n,r,i,a,o,s,c,l,u,d,f={})=>{H(`searchStacks`,`chainName`,t),H(`searchStacks`,`contractAddress`,n);let p=`/v1/chains/{chain_name}/search/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))),m=new URL(p,V),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),Tr(m,v);let y=h&&h.headers?h.headers:{};return g.headers={..._,...y,...f.headers},{url:Dr(m),options:g}}}},ti=function(e){let t=ei(e);return{async listFilters(n,r,i){return Or(await t.listFilters(n,r,i),z,B,e)},async searchNFTs(n,r,i,a,o,s,c,l){return Or(await t.searchNFTs(n,r,i,a,o,s,c,l),z,B,e)},async searchStacks(n,r,i,a,o,s,c,l,u,d,f,p){return Or(await t.searchStacks(n,r,i,a,o,s,c,l,u,d,f,p),z,B,e)}}},ni=function(e,t,n){let r=ti(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 ri=class extends br{listFilters(e,t){return ti(this.configuration).listFilters(e.chainName,e.contractAddress,t).then(e=>e(this.axios,this.basePath))}searchNFTs(e,t){return ti(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 ti(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 ii={CheapestFirst:`cheapest_first`},ai=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{H(`listAllNFTOwners`,`chainName`,t);let o=`/v1/chains/{chain_name}/nft-owners`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,V),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),Tr(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Dr(s),options:l}},listNFTOwners:async(t,n,r,i,a,o={})=>{H(`listNFTOwners`,`contractAddress`,t),H(`listNFTOwners`,`tokenId`,n),H(`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,V),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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}},listOwnersByContractAddress:async(t,n,r,i,a,o,s={})=>{H(`listOwnersByContractAddress`,`contractAddress`,t),H(`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,V),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),Tr(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Dr(l),options:d}}}},oi=function(e){let t=ai(e);return{async listAllNFTOwners(n,r,i,a,o){return Or(await t.listAllNFTOwners(n,r,i,a,o),z,B,e)},async listNFTOwners(n,r,i,a,o,s){return Or(await t.listNFTOwners(n,r,i,a,o,s),z,B,e)},async listOwnersByContractAddress(n,r,i,a,o,s,c){return Or(await t.listOwnersByContractAddress(n,r,i,a,o,s,c),z,B,e)}}},si=function(e,t,n){let r=oi(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 ci=class extends br{listAllNFTOwners(e,t){return oi(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listNFTOwners(e,t){return oi(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 oi(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.accountAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let li=function(e){return{createMintRequest:async(t,n,r,i={})=>{H(`createMintRequest`,`contractAddress`,t),H(`createMintRequest`,`chainName`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Sr(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Er(r,c,e),{url:Dr(o),options:c}},getMintRequest:async(t,n,r,i={})=>{H(`getMintRequest`,`contractAddress`,t),H(`getMintRequest`,`chainName`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};await Sr(l,`x-immutable-api-key`,e),Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Dr(o),options:c}},getNFT:async(t,n,r,i={})=>{H(`getNFT`,`contractAddress`,t),H(`getNFT`,`tokenId`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Dr(o),options:c}},listAllNFTs:async(t,n,r,i,a={})=>{H(`listAllNFTs`,`chainName`,t);let o=`/v1/chains/{chain_name}/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,V),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),Tr(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Dr(s),options:l}},listMintRequests:async(t,n,r,i,a,o={})=>{H(`listMintRequests`,`contractAddress`,t),H(`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,V),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};await Sr(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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}},listNFTs:async(t,n,r,i,a,o,s={})=>{H(`listNFTs`,`contractAddress`,t),H(`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,V),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),Tr(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Dr(l),options:d}},listNFTsByAccountAddress:async(t,n,r,i,a,o,s,c={})=>{H(`listNFTsByAccountAddress`,`accountAddress`,t),H(`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,V),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),Tr(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Dr(u),options:f}}}},ui=function(e){let t=li(e);return{async createMintRequest(n,r,i,a){return Or(await t.createMintRequest(n,r,i,a),z,B,e)},async getMintRequest(n,r,i,a){return Or(await t.getMintRequest(n,r,i,a),z,B,e)},async getNFT(n,r,i,a){return Or(await t.getNFT(n,r,i,a),z,B,e)},async listAllNFTs(n,r,i,a,o){return Or(await t.listAllNFTs(n,r,i,a,o),z,B,e)},async listMintRequests(n,r,i,a,o,s){return Or(await t.listMintRequests(n,r,i,a,o,s),z,B,e)},async listNFTs(n,r,i,a,o,s,c){return Or(await t.listNFTs(n,r,i,a,o,s,c),z,B,e)},async listNFTsByAccountAddress(n,r,i,a,o,s,c,l){return Or(await t.listNFTsByAccountAddress(n,r,i,a,o,s,c,l),z,B,e)}}},di=function(e,t,n){let r=ui(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 fi=class extends br{createMintRequest(e,t){return ui(this.configuration).createMintRequest(e.contractAddress,e.chainName,e.createMintRequestRequest,t).then(e=>e(this.axios,this.basePath))}getMintRequest(e,t){return ui(this.configuration).getMintRequest(e.contractAddress,e.chainName,e.referenceId,t).then(e=>e(this.axios,this.basePath))}getNFT(e,t){return ui(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then(e=>e(this.axios,this.basePath))}listAllNFTs(e,t){return ui(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listMintRequests(e,t){return ui(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 ui(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 ui(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 pi=function(e){return{cancelOrders:async(t,n,r={})=>{H(`cancelOrders`,`chainName`,t),H(`cancelOrders`,`cancelOrdersRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/cancel`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},createBid:async(t,n,r={})=>{H(`createBid`,`chainName`,t),H(`createBid`,`createBidRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},createCollectionBid:async(t,n,r={})=>{H(`createCollectionBid`,`chainName`,t),H(`createCollectionBid`,`createCollectionBidRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/collection-bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},createListing:async(t,n,r={})=>{H(`createListing`,`chainName`,t),H(`createListing`,`createListingRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/listings`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},fulfillmentData:async(t,n,r={})=>{H(`fulfillmentData`,`chainName`,t),H(`fulfillmentData`,`fulfillmentDataRequest`,n);let i=`/v1/chains/{chain_name}/orders/fulfillment-data`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getBid:async(t,n,r={})=>{H(`getBid`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},getCollectionBid:async(t,n,r={})=>{H(`getCollectionBid`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},getListing:async(t,n,r={})=>{H(`getListing`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},getTrade:async(t,n,r={})=>{H(`getTrade`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},listBids:async(t,n,r,i,a,o,s,c,l,u,d,f,p={})=>{H(`listBids`,`chainName`,t);let m=`/v1/chains/{chain_name}/orders/bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),h=new URL(m,V),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),Tr(h,y);let b=g&&g.headers?g.headers:{};return _.headers={...v,...b,...p.headers},{url:Dr(h),options:_}},listCollectionBids:async(t,n,r,i,a,o,s,c,l,u,d={})=>{H(`listCollectionBids`,`chainName`,t);let f=`/v1/chains/{chain_name}/orders/collection-bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),p=new URL(f,V),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),Tr(p,_);let v=m&&m.headers?m.headers:{};return h.headers={...g,...v,...d.headers},{url:Dr(p),options:h}},listListings:async(t,n,r,i,a,o,s,c,l,u,d,f,p,m={})=>{H(`listListings`,`chainName`,t);let h=`/v1/chains/{chain_name}/orders/listings`.replace(`{chain_name}`,encodeURIComponent(String(t))),g=new URL(h,V),_;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),Tr(g,b);let x=_&&_.headers?_.headers:{};return v.headers={...y,...x,...m.headers},{url:Dr(g),options:v}},listTrades:async(t,n,r,i,a,o,s,c,l={})=>{H(`listTrades`,`chainName`,t);let u=`/v1/chains/{chain_name}/trades`.replace(`{chain_name}`,encodeURIComponent(String(t))),d=new URL(u,V),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),Tr(d,h);let g=f&&f.headers?f.headers:{};return p.headers={...m,...g,...l.headers},{url:Dr(d),options:p}}}},mi=function(e){let t=pi(e);return{async cancelOrders(n,r,i){return Or(await t.cancelOrders(n,r,i),z,B,e)},async createBid(n,r,i){return Or(await t.createBid(n,r,i),z,B,e)},async createCollectionBid(n,r,i){return Or(await t.createCollectionBid(n,r,i),z,B,e)},async createListing(n,r,i){return Or(await t.createListing(n,r,i),z,B,e)},async fulfillmentData(n,r,i){return Or(await t.fulfillmentData(n,r,i),z,B,e)},async getBid(n,r,i){return Or(await t.getBid(n,r,i),z,B,e)},async getCollectionBid(n,r,i){return Or(await t.getCollectionBid(n,r,i),z,B,e)},async getListing(n,r,i){return Or(await t.getListing(n,r,i),z,B,e)},async getTrade(n,r,i){return Or(await t.getTrade(n,r,i),z,B,e)},async listBids(n,r,i,a,o,s,c,l,u,d,f,p,m){return Or(await t.listBids(n,r,i,a,o,s,c,l,u,d,f,p,m),z,B,e)},async listCollectionBids(n,r,i,a,o,s,c,l,u,d,f){return Or(await t.listCollectionBids(n,r,i,a,o,s,c,l,u,d,f),z,B,e)},async listListings(n,r,i,a,o,s,c,l,u,d,f,p,m,h){return Or(await t.listListings(n,r,i,a,o,s,c,l,u,d,f,p,m,h),z,B,e)},async listTrades(n,r,i,a,o,s,c,l,u){return Or(await t.listTrades(n,r,i,a,o,s,c,l,u),z,B,e)}}},hi=function(e,t,n){let r=mi(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 gi=class extends br{cancelOrders(e,t){return mi(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then(e=>e(this.axios,this.basePath))}createBid(e,t){return mi(this.configuration).createBid(e.chainName,e.createBidRequestBody,t).then(e=>e(this.axios,this.basePath))}createCollectionBid(e,t){return mi(this.configuration).createCollectionBid(e.chainName,e.createCollectionBidRequestBody,t).then(e=>e(this.axios,this.basePath))}createListing(e,t){return mi(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then(e=>e(this.axios,this.basePath))}fulfillmentData(e,t){return mi(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then(e=>e(this.axios,this.basePath))}getBid(e,t){return mi(this.configuration).getBid(e.chainName,e.bidId,t).then(e=>e(this.axios,this.basePath))}getCollectionBid(e,t){return mi(this.configuration).getCollectionBid(e.chainName,e.collectionBidId,t).then(e=>e(this.axios,this.basePath))}getListing(e,t){return mi(this.configuration).getListing(e.chainName,e.listingId,t).then(e=>e(this.axios,this.basePath))}getTrade(e,t){return mi(this.configuration).getTrade(e.chainName,e.tradeId,t).then(e=>e(this.axios,this.basePath))}listBids(e,t){return mi(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 mi(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 mi(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 mi(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 _i={CreatedAt:`created_at`,UpdatedAt:`updated_at`,SellItemAmount:`sell_item_amount`},vi={Asc:`asc`,Desc:`desc`},yi={CreatedAt:`created_at`,UpdatedAt:`updated_at`,SellItemAmount:`sell_item_amount`},bi={Asc:`asc`,Desc:`desc`},xi={Native:`NATIVE`,Erc20:`ERC20`},Si={CreatedAt:`created_at`,UpdatedAt:`updated_at`,BuyItemAmount:`buy_item_amount`},Ci={Asc:`asc`,Desc:`desc`},wi={IndexedAt:`indexed_at`},Ti={Asc:`asc`,Desc:`desc`},Ei=function(e){return{createCounterfactualAddressV2:async(t,n,r={})=>{H(`createCounterfactualAddressV2`,`chainName`,t),H(`createCounterfactualAddressV2`,`createCounterfactualAddressRequest`,n);let i=`/v2/chains/{chain_name}/passport/counterfactual-address`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getLinkedAddresses:async(t,n,r={})=>{H(`getLinkedAddresses`,`userId`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};await Cr(c,e),Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{H(`getLinkedAddressesDeprecated`,`userId`,t);let r=`/passport-mr/v1/users/{userId}/linked-addresses`.replace(`{userId}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},getTransactionMetadata:async(t,n,r={})=>{H(`getTransactionMetadata`,`chainName`,t),H(`getTransactionMetadata`,`getTransactionMetadataRequest`,n);let i=`/v1/chains/{chain_name}/passport/transaction-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getTypedDataMetadata:async(t,n,r={})=>{H(`getTypedDataMetadata`,`chainName`,t),H(`getTypedDataMetadata`,`getTypedDataMetadataRequest`,n);let i=`/v1/chains/{chain_name}/passport/typeddata-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getUserMetadata:async(t,n={})=>{H(`getUserMetadata`,`userId`,t);let r=`/passport-mr/v1/users/{user_id}/metadata`.replace(`{user_id}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Sr(s,`x-immutable-api-key`,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}}}},Di=function(e){let t=Ei(e);return{async createCounterfactualAddressV2(n,r,i){return Or(await t.createCounterfactualAddressV2(n,r,i),z,B,e)},async getLinkedAddresses(n,r,i){return Or(await t.getLinkedAddresses(n,r,i),z,B,e)},async getLinkedAddressesDeprecated(n,r){return Or(await t.getLinkedAddressesDeprecated(n,r),z,B,e)},async getTransactionMetadata(n,r,i){return Or(await t.getTransactionMetadata(n,r,i),z,B,e)},async getTypedDataMetadata(n,r,i){return Or(await t.getTypedDataMetadata(n,r,i),z,B,e)},async getUserMetadata(n,r){return Or(await t.getUserMetadata(n,r),z,B,e)}}},Oi=function(e,t,n){let r=Di(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 ki=class extends br{createCounterfactualAddressV2(e,t){return Di(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then(e=>e(this.axios,this.basePath))}getLinkedAddresses(e,t){return Di(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then(e=>e(this.axios,this.basePath))}getLinkedAddressesDeprecated(e,t){return Di(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then(e=>e(this.axios,this.basePath))}getTransactionMetadata(e,t){return Di(this.configuration).getTransactionMetadata(e.chainName,e.getTransactionMetadataRequest,t).then(e=>e(this.axios,this.basePath))}getTypedDataMetadata(e,t){return Di(this.configuration).getTypedDataMetadata(e.chainName,e.getTypedDataMetadataRequest,t).then(e=>e(this.axios,this.basePath))}getUserMetadata(e,t){return Di(this.configuration).getUserMetadata(e.userId,t).then(e=>e(this.axios,this.basePath))}};let Ai=function(e){return{getUserInfo:async(t={})=>{let n=new URL(`/passport-profile/v1/user/info`,V),r;e&&(r=e.baseOptions);let i={method:`GET`,...r,...t},a={};await Cr(a,e),Tr(n,{});let o=r&&r.headers?r.headers:{};return i.headers={...a,...o,...t.headers},{url:Dr(n),options:i}},linkWalletV2:async(t,n={})=>{let r=new URL(`/passport-profile/v2/linked-wallets`,V),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Cr(o,e),o[`Content-Type`]=`application/json`,Tr(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Er(t,a,e),{url:Dr(r),options:a}}}},ji=function(e){let t=Ai(e);return{async getUserInfo(n){return Or(await t.getUserInfo(n),z,B,e)},async linkWalletV2(n,r){return Or(await t.linkWalletV2(n,r),z,B,e)}}},Mi=function(e,t,n){let r=ji(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 Ni=class extends br{getUserInfo(e){return ji(this.configuration).getUserInfo(e).then(e=>e(this.axios,this.basePath))}linkWalletV2(e={},t){return ji(this.configuration).linkWalletV2(e.linkWalletV2Request,t).then(e=>e(this.axios,this.basePath))}};let Pi=function(e){return{quotesForNFTs:async(t,n,r,i,a,o={})=>{H(`quotesForNFTs`,`chainName`,t),H(`quotesForNFTs`,`contractAddress`,n),H(`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,V),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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}},quotesForStacks:async(t,n,r,i,a,o={})=>{H(`quotesForStacks`,`chainName`,t),H(`quotesForStacks`,`contractAddress`,n),H(`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,V),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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}}}},Fi=function(e){let t=Pi(e);return{async quotesForNFTs(n,r,i,a,o,s){return Or(await t.quotesForNFTs(n,r,i,a,o,s),z,B,e)},async quotesForStacks(n,r,i,a,o,s){return Or(await t.quotesForStacks(n,r,i,a,o,s),z,B,e)}}},Ii=function(e,t,n){let r=Fi(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 Li=class extends br{quotesForNFTs(e,t){return Fi(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 Fi(this.configuration).quotesForStacks(e.chainName,e.contractAddress,e.stackId,e.paymentToken,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}};let Ri=function(e){return{getERC20Token:async(t,n,r={})=>{H(`getERC20Token`,`contractAddress`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},listERC20Tokens:async(t,n,r,i,a,o,s={})=>{H(`listERC20Tokens`,`chainName`,t);let c=`/v1/chains/{chain_name}/tokens`.replace(`{chain_name}`,encodeURIComponent(String(t))),l=new URL(c,V),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),Tr(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Dr(l),options:d}}}},zi=function(e){let t=Ri(e);return{async getERC20Token(n,r,i){return Or(await t.getERC20Token(n,r,i),z,B,e)},async listERC20Tokens(n,r,i,a,o,s,c){return Or(await t.listERC20Tokens(n,r,i,a,o,s,c),z,B,e)}}},Bi=function(e,t,n){let r=zi(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 Vi=class extends br{getERC20Token(e,t){return zi(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then(e=>e(this.axios,this.basePath))}listERC20Tokens(e,t){return zi(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.verificationStatus,e.isCanonical,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}},Hi=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 Ui={ValidationError:`VALIDATION_ERROR`},Wi={UnauthorisedRequest:`UNAUTHORISED_REQUEST`},Gi={AuthenticationError:`AUTHENTICATION_ERROR`},Ki={ResourceNotFound:`RESOURCE_NOT_FOUND`},qi={ConflictError:`CONFLICT_ERROR`},Ji={TooManyRequestsError:`TOO_MANY_REQUESTS_ERROR`},Yi={InternalServerError:`INTERNAL_SERVER_ERROR`},Xi={NotImplementedError:`NOT_IMPLEMENTED_ERROR`},Zi={Active:`ACTIVE`},Qi={Mint:`mint`,Burn:`burn`,Transfer:`transfer`,Sale:`sale`,Deposit:`deposit`,Withdrawal:`withdrawal`},$i={Verified:`verified`,Unverified:`unverified`,Spam:`spam`,Inactive:`inactive`},ea={Cancelled:`CANCELLED`},ta={OnChain:`ON_CHAIN`,OffChain:`OFF_CHAIN`,Underfunded:`UNDERFUNDED`},na={Erc721:`ERC721`,Erc1155:`ERC1155`},ra={Erc1155Collection:`ERC1155_COLLECTION`},ia={Erc1155:`ERC1155`},aa={Erc20Approve:`ERC20_APPROVE`},oa={Erc20:`ERC20`},sa={Erc20TransferFrom:`ERC20_TRANSFER_FROM`},ca={Erc20Transfer:`ERC20_TRANSFER`},la={Erc721Approve:`ERC721_APPROVE`},ua={Erc721Collection:`ERC721_COLLECTION`,Erc1155Collection:`ERC1155_COLLECTION`},da={Erc721:`ERC721`},fa={Erc721SafeTransferFromBatch:`ERC721_SAFE_TRANSFER_FROM_BATCH`},pa={Erc721TransferFrom:`ERC721_TRANSFER_FROM`},ma={Expired:`EXPIRED`},ha={Filled:`FILLED`},ga={Royalty:`ROYALTY`,MakerEcosystem:`MAKER_ECOSYSTEM`,TakerEcosystem:`TAKER_ECOSYSTEM`,Protocol:`PROTOCOL`},_a={Filled:`FILLED`},va={Verified:`verified`,Unverified:`unverified`,Spam:`spam`,Inactive:`inactive`},ya={Inactive:`INACTIVE`},ba={Erc20:`ERC20`},xa={Royalty:`ROYALTY`,MakerEcosystem:`MAKER_ECOSYSTEM`,TakerEcosystem:`TAKER_ECOSYSTEM`,Protocol:`PROTOCOL`},Sa={Native:`NATIVE`},Ca={Erc721:`ERC721`,Erc1155:`ERC1155`},wa={Otp:`otp`,Web:`web`},Ta={Pending:`pending`,Succeeded:`succeeded`,Failed:`failed`},Ea={Erc721:`ERC721`,Erc1155:`ERC1155`},Da={Number:`number`,BoostPercentage:`boost_percentage`,BoostNumber:`boost_number`,Date:`date`},Oa={Erc721SetApprovalForAll:`ERC721_SET_APPROVAL_FOR_ALL`,Erc1155SetApprovalForAll:`ERC1155_SET_APPROVAL_FOR_ALL`},ka={Native:`NATIVE`,Erc20:`ERC20`,Erc721:`ERC721`,Erc1155:`ERC1155`,Erc721Collection:`ERC721_COLLECTION`,Erc1155Collection:`ERC1155_COLLECTION`},Aa={Requested:`requested`,Approved:`approved`,Rejected:`rejected`,Removed:`removed`,Added:`added`},ja={Listing:`LISTING`,Bid:`BID`,CollectionBid:`COLLECTION_BID`},Ma={Pending:`PENDING`,Active:`ACTIVE`,Inactive:`INACTIVE`,Filled:`FILLED`,Expired:`EXPIRED`,Cancelled:`CANCELLED`},Na={Common:`common`,Uncommon:`uncommon`,Rare:`rare`,Epic:`epic`,Legendary:`legendary`},Pa={Pending:`PENDING`},Fa={FullRestricted:`FULL_RESTRICTED`,PartialRestricted:`PARTIAL_RESTRICTED`},Ia={Royalty:`ROYALTY`},La={SeaportCreateListingMetadata:`SEAPORT_CREATE_LISTING_METADATA`},Ra={Erc1155Collection:`ERC1155Collection`},za={Erc1155:`ERC1155`},Ba={Erc20:`ERC20`},Va={Erc721Collection:`ERC721Collection`},Ha={Erc721:`ERC721`},Ua={Erc20:`ERC20`,Native:`NATIVE`},Wa={SeaportFulfillAvailableAdvancedOrders:`SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS`},Ga={Native:`NATIVE`},Ka={Malicious:`malicious`,Benign:`benign`,Warning:`warning`,Unknown:`unknown`,Info:`info`},qa={Erc20:`ERC20`},Ja={Evm:`evm`},Ya={Otp:`otp`,Web:`web`},Xa={Unknown:`UNKNOWN`},Za={Unknown:`UNKNOWN`},Qa={Success:`success`,Error:`error`,SimulationFailed:`simulation_failed`},$a={Erc20:`ERC20`,Erc721:`ERC721`,Erc1155:`ERC1155`},eo={Completed:`completed`,Pending:`pending`},to={Evm:`evm`};var no=yr({APIError400AllOfCodeEnum:()=>Ui,APIError401AllOfCodeEnum:()=>Wi,APIError403AllOfCodeEnum:()=>Gi,APIError404AllOfCodeEnum:()=>Ki,APIError409AllOfCodeEnum:()=>qi,APIError429AllOfCodeEnum:()=>Ji,APIError500AllOfCodeEnum:()=>Yi,APIError501AllOfCodeEnum:()=>Xi,ActiveOrderStatusNameEnum:()=>Zi,ActivitiesApi:()=>Mr,ActivitiesApiAxiosParamCreator:()=>kr,ActivitiesApiFactory:()=>jr,ActivitiesApiFp:()=>Ar,ActivityType:()=>Qi,AssetVerificationStatus:()=>$i,CancelledOrderStatusCancellationTypeEnum:()=>ta,CancelledOrderStatusNameEnum:()=>ea,ChainsApi:()=>Ir,ChainsApiAxiosParamCreator:()=>Nr,ChainsApiFactory:()=>Fr,ChainsApiFp:()=>Pr,CollectionContractType:()=>na,CollectionsApi:()=>Br,CollectionsApiAxiosParamCreator:()=>Lr,CollectionsApiFactory:()=>zr,CollectionsApiFp:()=>Rr,Configuration:()=>Hi,CraftingApi:()=>Wr,CraftingApiAxiosParamCreator:()=>Vr,CraftingApiFactory:()=>Ur,CraftingApiFp:()=>Hr,ERC1155CollectionItemTypeEnum:()=>ra,ERC1155ItemTypeEnum:()=>ia,ERC20ApproveMetadataTransactionTypeEnum:()=>aa,ERC20ItemTypeEnum:()=>oa,ERC20TransferFromMetadataTransactionTypeEnum:()=>sa,ERC20TransferMetadataTransactionTypeEnum:()=>ca,ERC721ApproveMetadataTransactionTypeEnum:()=>la,ERC721CollectionItemTypeEnum:()=>ua,ERC721ItemTypeEnum:()=>da,ERC721SafeTransferFromBatchMetadataTransactionTypeEnum:()=>fa,ERC721TransferFromMetadataTransactionTypeEnum:()=>pa,ExpiredOrderStatusNameEnum:()=>ma,FailedOrderCancellationReasonCodeEnum:()=>ha,FeeTypeEnum:()=>ga,FilledOrderStatusNameEnum:()=>_a,GetTransactionByIDChainTypeEnum:()=>Yr,GuardianApi:()=>Jr,GuardianApiAxiosParamCreator:()=>Gr,GuardianApiFactory:()=>qr,GuardianApiFp:()=>Kr,ImmutableVerificationStatusEnum:()=>va,InactiveOrderStatusNameEnum:()=>ya,ListBidsSortByEnum:()=>_i,ListBidsSortDirectionEnum:()=>vi,ListCollectionBidsSortByEnum:()=>yi,ListCollectionBidsSortDirectionEnum:()=>bi,ListListingsBuyItemTypeEnum:()=>xi,ListListingsSortByEnum:()=>Si,ListListingsSortDirectionEnum:()=>Ci,ListTradesSortByEnum:()=>wi,ListTradesSortDirectionEnum:()=>Ti,MarketPriceERC20TokenTypeEnum:()=>ba,MarketPriceFeesTypeEnum:()=>xa,MarketPriceNativeTokenTypeEnum:()=>Sa,MarketplaceContractType:()=>Ca,MessageEvaluationResponseConfirmationMethodEnum:()=>wa,MetadataApi:()=>$r,MetadataApiAxiosParamCreator:()=>Xr,MetadataApiFactory:()=>Qr,MetadataApiFp:()=>Zr,MetadataSearchApi:()=>ri,MetadataSearchApiAxiosParamCreator:()=>ei,MetadataSearchApiFactory:()=>ni,MetadataSearchApiFp:()=>ti,MintRequestStatus:()=>Ta,NFTContractType:()=>Ea,NFTMetadataAttributeDisplayTypeEnum:()=>Da,NFTSetApprovalForAllMetadataTransactionTypeEnum:()=>Oa,NativeItemTypeEnum:()=>ka,NftOwnersApi:()=>ci,NftOwnersApiAxiosParamCreator:()=>ai,NftOwnersApiFactory:()=>si,NftOwnersApiFp:()=>oi,NftsApi:()=>fi,NftsApiAxiosParamCreator:()=>li,NftsApiFactory:()=>di,NftsApiFp:()=>ui,OperatorAllowlistStatus:()=>Aa,OrderStatusName:()=>Ma,OrderTypeEnum:()=>ja,OrdersApi:()=>gi,OrdersApiAxiosParamCreator:()=>pi,OrdersApiFactory:()=>hi,OrdersApiFp:()=>mi,OrganisationTier:()=>Na,PassportApi:()=>ki,PassportApiAxiosParamCreator:()=>Ei,PassportApiFactory:()=>Oi,PassportApiFp:()=>Di,PassportProfileApi:()=>Ni,PassportProfileApiAxiosParamCreator:()=>Ai,PassportProfileApiFactory:()=>Mi,PassportProfileApiFp:()=>ji,PendingOrderStatusNameEnum:()=>Pa,PricingApi:()=>Li,PricingApiAxiosParamCreator:()=>Pi,PricingApiFactory:()=>Ii,PricingApiFp:()=>Fi,ProtocolDataOrderTypeEnum:()=>Fa,SaleFeeTypeEnum:()=>Ia,SeaportCreateListingMetadataTypedDataTypeEnum:()=>La,SeaportERC1155CollectionItemTypeEnum:()=>Ra,SeaportERC1155ItemTypeEnum:()=>za,SeaportERC20ItemTypeEnum:()=>Ba,SeaportERC721CollectionItemTypeEnum:()=>Va,SeaportERC721ItemTypeEnum:()=>Ha,SeaportFeeTypeEnum:()=>Ua,SeaportFulfillAvailableAdvancedOrdersMetadataTransactionTypeEnum:()=>Wa,SeaportNativeItemTypeEnum:()=>Ga,SearchStacksSortByEnum:()=>ii,Severity:()=>Ka,TokenContractType:()=>qa,TokensApi:()=>Vi,TokensApiAxiosParamCreator:()=>Ri,TokensApiFactory:()=>Bi,TokensApiFp:()=>zi,TransactionApprovalRequestChainTypeEnum:()=>Ja,TransactionEvaluationResponseConfirmationMethodEnum:()=>Ya,UnknownMetadataTransactionTypeEnum:()=>Xa,UnknownTypedDataMetadataTypedDataTypeEnum:()=>Za,ValidationStatus:()=>Qa,VerificationRequestContractType:()=>$a,VerificationRequestStatus:()=>eo,ZkEvmTransactionEvaluationRequestChainTypeEnum:()=>to});let ro=function(e){return e.CheapestFirst=`cheapest_first`,e}({}),io=function(e){return e.ValidationError=`VALIDATION_ERROR`,e}({}),ao=function(e){return e.UnauthorisedRequest=`UNAUTHORISED_REQUEST`,e}({}),oo=function(e){return e.AuthenticationError=`AUTHENTICATION_ERROR`,e}({}),so=function(e){return e.ResourceNotFound=`RESOURCE_NOT_FOUND`,e}({}),co=function(e){return e.ConflictError=`CONFLICT_ERROR`,e}({}),lo=function(e){return e.TooManyRequestsError=`TOO_MANY_REQUESTS_ERROR`,e}({}),uo=function(e){return e.InternalServerError=`INTERNAL_SERVER_ERROR`,e}({}),fo=function(e){return e.Mint=`mint`,e.Burn=`burn`,e.Transfer=`transfer`,e.Sale=`sale`,e.Deposit=`deposit`,e.Withdrawal=`withdrawal`,e}({}),po=function(e){return e.Verified=`verified`,e.Unverified=`unverified`,e.Spam=`spam`,e.Inactive=`inactive`,e}({}),mo=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),ho=function(e){return e.Erc20=`ERC20`,e}({}),go=function(e){return e.Royalty=`ROYALTY`,e.MakerEcosystem=`MAKER_ECOSYSTEM`,e.TakerEcosystem=`TAKER_ECOSYSTEM`,e.Protocol=`PROTOCOL`,e}({}),_o=function(e){return e.Native=`NATIVE`,e}({}),vo=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),yo=function(e){return e.Pending=`pending`,e.Succeeded=`succeeded`,e.Failed=`failed`,e}({}),bo=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),xo=function(e){return e.Number=`number`,e.BoostPercentage=`boost_percentage`,e.BoostNumber=`boost_number`,e.Date=`date`,e}({}),So=function(e){return e.Royalty=`ROYALTY`,e}({}),Co=function(e){return e.Erc20=`ERC20`,e}({});var wo=yr({APIError400AllOfCodeEnum:()=>io,APIError401AllOfCodeEnum:()=>ao,APIError403AllOfCodeEnum:()=>oo,APIError404AllOfCodeEnum:()=>so,APIError409AllOfCodeEnum:()=>co,APIError429AllOfCodeEnum:()=>lo,APIError500AllOfCodeEnum:()=>uo,ActivityType:()=>fo,AssetVerificationStatus:()=>po,CollectionContractType:()=>mo,MarketPriceERC20TokenTypeEnum:()=>ho,MarketPriceFeesTypeEnum:()=>go,MarketPriceNativeTokenTypeEnum:()=>_o,MarketplaceContractType:()=>vo,MintRequestStatus:()=>yo,NFTContractType:()=>bo,NFTMetadataAttributeDisplayTypeEnum:()=>xo,SaleFeeTypeEnum:()=>So,SearchStacksSortByEnum:()=>ro,TokenContractType:()=>Co}),To=class{config;activitiesApi;chainsApi;collectionApi;nftOwnersApi;nftsApi;ordersApi;passportApi;passportProfileApi;guardianApi;constructor(e){this.config=e,this.activitiesApi=new Mr(e.indexer),this.chainsApi=new Ir(e.indexer),this.collectionApi=new Br(e.indexer),this.nftOwnersApi=new ci(e.indexer),this.nftsApi=new fi(e.indexer),this.ordersApi=new gi(e.orderBook),this.passportApi=new ki(e.passport),this.passportProfileApi=new Ni(e.passport),this.guardianApi=new Jr(e.passport)}};let Eo=`http://localhost`.replace(/\/+$/,``);var Do=class{basePath;axios;configuration;constructor(e,t=Eo,n=z){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}},Oo=class extends Error{field;constructor(e,t){super(t),this.field=e,this.name=`RequiredError`}};let ko=`https://example.com`,Ao=function(e,t,n){if(n==null)throw new Oo(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},jo=async function(e,t){t&&t.accessToken&&(e.Authorization=`Bearer `+(typeof t.accessToken==`function`?await t.accessToken():await t.accessToken))};function Mo(e,t,n=``){t!=null&&(typeof t==`object`?Array.isArray(t)?t.forEach(t=>Mo(e,t,n)):Object.keys(t).forEach(r=>Mo(e,t[r],`${n}${n===``?``:`.`}${r}`)):e.has(n)?e.append(n,t):e.set(n,t))}let No=function(e,...t){let n=new URLSearchParams(e.search);Mo(n,t),e.search=n.toString()},Po=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||``},Fo=function(e){return e.pathname+e.search+e.hash},Io=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)}},Lo=function(e){return{signDataV1WalletSignDataPost:async(t,n,r,i,a,o={})=>{Ao(`signDataV1WalletSignDataPost`,`xMagicChain`,t),Ao(`signDataV1WalletSignDataPost`,`signDataRequest`,n);let s=new URL(`/v1/wallet/sign/data`,ko),c;e&&(c=e.baseOptions);let l={method:`POST`,...c,...o},u={};await jo(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`,No(s,{});let d=c&&c.headers?c.headers:{};return l.headers={...u,...d,...o.headers},l.data=Po(n,l,e),{url:Fo(s),options:l}},signMessageV1WalletSignMessagePost:async(t,n,r,i,a,o={})=>{Ao(`signMessageV1WalletSignMessagePost`,`xMagicChain`,t),Ao(`signMessageV1WalletSignMessagePost`,`signMessageRequest`,n);let s=new URL(`/v1/wallet/sign/message`,ko),c;e&&(c=e.baseOptions);let l={method:`POST`,...c,...o},u={};await jo(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`,No(s,{});let d=c&&c.headers?c.headers:{};return l.headers={...u,...d,...o.headers},l.data=Po(n,l,e),{url:Fo(s),options:l}}}},Ro=function(e){let t=Lo(e);return{async signDataV1WalletSignDataPost(n,r,i,a,o,s){return Io(await t.signDataV1WalletSignDataPost(n,r,i,a,o,s),z,Eo,e)},async signMessageV1WalletSignMessagePost(n,r,i,a,o,s){return Io(await t.signMessageV1WalletSignMessagePost(n,r,i,a,o,s),z,Eo,e)}}};var zo=class extends Do{signDataV1WalletSignDataPost(e,t){return Ro(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 Ro(this.configuration).signMessageV1WalletSignMessagePost(e.xMagicChain,e.signMessageRequest,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}};let Bo=function(e){return{createWalletV1WalletPost:async(t,n,r,i,a={})=>{Ao(`createWalletV1WalletPost`,`xMagicChain`,t);let o=new URL(`/v1/wallet`,ko),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...a},l={};await jo(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)),No(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...a.headers},{url:Fo(o),options:c}}}},Vo=function(e){let t=Bo(e);return{async createWalletV1WalletPost(n,r,i,a,o){return Io(await t.createWalletV1WalletPost(n,r,i,a,o),z,Eo,e)}}};var Ho=class extends Do{createWalletV1WalletPost(e,t){return Vo(this.configuration).createWalletV1WalletPost(e.xMagicChain,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}},Uo=class{signOperationsApi;walletApi;constructor(e){let t=z.create({timeout:e.timeout,headers:{"Content-Type":`application/json`,"X-Magic-API-Key":e.magicPublishableApiKey,"X-OIDC-Provider-ID":e.magicProviderId}});this.signOperationsApi=new zo(void 0,e.basePath,t),this.walletApi=new Ho(void 0,e.basePath,t)}};let Wo={"x-sdk-version":`ts-immutable-sdk-2.24.10-0`},Go=({basePath:e,headers:t})=>{if(!e.trim())throw Error(`basePath can not be empty`);return new Hi({basePath:e,baseOptions:{headers:{...Wo,...t||{}}}})},Ko={getProduction:()=>({indexer:Go({basePath:`https://api.immutable.com`}),orderBook:Go({basePath:`https://api.immutable.com`}),passport:Go({basePath:`https://api.immutable.com`})}),getSandbox:()=>({indexer:Go({basePath:`https://api.sandbox.immutable.com`}),orderBook:Go({basePath:`https://api.sandbox.immutable.com`}),passport:Go({basePath:`https://api.sandbox.immutable.com`})})};var qo=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 Jo={sdkVersion:`ts-immutable-sdk-multi-rollup-api-client-2.24.10-0`},Yo=e=>{let{baseConfig:t,basePath:n,headers:r}=e;if(!n.trim())throw Error(`basePath can not be empty`);let i={...r||{},...g(t,e)||{},...Jo},a={...t,basePath:n,baseOptions:{headers:i}};return new no.Configuration(a)};var Xo=class{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=Yo(t);else switch(e.environment){case p.SANDBOX:this.apiConfig=Yo({basePath:`https://api.sandbox.immutable.com`,baseConfig:e});break;case p.PRODUCTION:this.apiConfig=Yo({basePath:`https://api.immutable.com`,baseConfig:e});break;default:this.apiConfig=Yo({basePath:`https://api.sandbox.immutable.com`,baseConfig:e})}}};function Zo(e){if(z.isAxiosError(e)&&e.response){let t=e.response.data;return t.code&&t.message?new qo({code:t.code,message:t.message,details:t.details||null,link:t.link||``,trace_id:t.trace_id||``}):new qo({code:e.code??e.response?.status.toString()??`unknown_error_code`,message:String(e),details:null,link:``,trace_id:``})}return new qo({code:`unknown_error_code`,message:String(e),details:null,link:``,trace_id:``})}var Qo=class{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;crafting;pricing;metadataSearch;constructor(e){this.config=new Xo(e),this.activities=new no.ActivitiesApi(this.config.apiConfig),this.chains=new no.ChainsApi(this.config.apiConfig),this.collections=new no.CollectionsApi(this.config.apiConfig),this.nfts=new no.NftsApi(this.config.apiConfig),this.nftOwners=new no.NftOwnersApi(this.config.apiConfig),this.tokens=new no.TokensApi(this.config.apiConfig),this.metadata=new no.MetadataApi(this.config.apiConfig),this.crafting=new no.CraftingApi(this.config.apiConfig),this.pricing=new no.PricingApi(this.config.apiConfig),this.metadataSearch=new no.MetadataSearchApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getActivity(e){return await this.activities.getActivity(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listChains(e){return await this.chains.listChains(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listCollections(e){return await this.collections.listCollections(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getCollection(e){return await this.collections.getCollection(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getNFT(e){return await this.nfts.getNFT(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTs(e){return await this.nfts.listNFTs(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async createMintRequest(e){return await this.nfts.createMintRequest(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listMintRequests(e){return await this.nfts.listMintRequests(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getMintRequest(e){return await this.nfts.getMintRequest(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listTokens(e){return await this.tokens.listERC20Tokens(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getToken(e){return await this.tokens.getERC20Token(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getMetadata(e){return await this.metadata.getMetadata(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async signCraftingPayload(e){return await this.crafting.signCraftingPayload(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listFilters(e){return await this.metadataSearch.listFilters(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async searchNFTs(e){return await this.metadataSearch.searchNFTs(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async searchStacks(e){return await this.metadataSearch.searchStacks(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async quotesForNFTs(e){return await this.pricing.quotesForNFTs(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async quotesForStacks(e){return await this.pricing.quotesForStacks(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listStacks(e){return await this.metadata.listStacks(e).then(e=>e.data).catch(e=>{throw Zo(e)})}},$o=l({APIError:()=>qo,BlockchainData:()=>Qo,Types:()=>wo}),es=class extends Error{};es.prototype.name=`InvalidTokenError`;function ts(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 ns(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 ts(t)}catch{return atob(t)}}function rs(e,t){if(typeof e!=`string`)throw new es(`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 es(`Invalid token specified: missing part #${n+1}`);let i;try{i=ns(r)}catch(e){throw new es(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new es(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}var is={debug:()=>void 0,info:()=>void 0,warn:()=>void 0,error:()=>void 0},as,os,ss=(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))(ss||{});(e=>{function t(){as=3,os=is}e.reset=t;function n(e){if(!(0<=e&&e<=4))throw Error(`Invalid log level`);as=e}e.setLevel=n;function r(e){os=e}e.setLogger=r})(ss||={});var cs=class e{constructor(e){this._name=e}debug(...t){as>=4&&os.debug(e._format(this._name,this._method),...t)}info(...t){as>=3&&os.info(e._format(this._name,this._method),...t)}warn(...t){as>=2&&os.warn(e._format(this._name,this._method),...t)}error(...t){as>=1&&os.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){as>=4&&os.debug(e._format(t),...n)}static info(t,...n){as>=3&&os.info(e._format(t),...n)}static warn(t,...n){as>=2&&os.warn(e._format(t),...n)}static error(t,...n){as>=1&&os.error(e._format(t),...n)}};ss.reset();var ls=class{static decode(e){try{return rs(e)}catch(e){throw cs.error(`JwtUtils.decode`,e),e}}static async generateSignedJwt(e,t,n){let r=`${ps.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${ps.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}.${ps.encodeBase64Url(new Uint8Array(i))}`}static async generateSignedJwtWithHmac(e,t,n){let r=`${ps.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${ps.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign(`HMAC`,n,new TextEncoder().encode(r));return`${r}.${ps.encodeBase64Url(new Uint8Array(i))}`}},us=`10000000-1000-4000-8000-100000000000`,ds=e=>btoa([...new Uint8Array(e)].map(e=>String.fromCharCode(e)).join(``)),fs=class e{static _randomWord(){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}static generateUUIDv4(){return us.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 ds(await crypto.subtle.digest(`SHA-256`,t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}catch(e){throw cs.error(`CryptoUtils.generateCodeChallenge`,e),e}}static generateBasicAuth(e,t){return ds(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 ls.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 ls.generateSignedJwtWithHmac(o,s,u)}};fs.encodeBase64Url=e=>ds(e).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`);var ps=fs,ms=class{constructor(e){this._name=e,this._callbacks=[],this._logger=new cs(`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)}},hs=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(`,`)}},gs=class e extends ms{constructor(){super(...arguments),this._logger=new cs(`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)}},_s=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))}},vs=`;`,ys=class extends Error{constructor(e,t){if(super(e.error_description||e.error||``),this.form=t,this.name=`ErrorResponse`,!e.error)throw cs.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}},bs=class extends Error{constructor(e){super(e),this.name=`ErrorTimeout`}},xs=class{constructor(e){this._logger=new cs(`AccessTokenEvents`),this._expiringTimer=new gs(`Access token expiring`),this._expiredTimer=new gs(`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)}},Ss=class{constructor(e,t,n,r,i){this._callback=e,this._client_id=t,this._intervalInSeconds=r,this._stopOnError=i,this._logger=new cs(`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)}},Cs=class{constructor(){this._logger=new cs(`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]}},ws=class extends Error{constructor(e,t){super(t),this.name=`ErrorDPoPNonce`,this.nonce=e}},Ts=class{constructor(e=[],t=null,n={}){this._jwtHandler=t,this._extraHeaders=n,this._logger=new cs(`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 bs(`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 ys(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 ws(c.headers.get(`dpop-nonce`),`${JSON.stringify(d)}`):d.error?new ys(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)})}},Es=class{constructor(e){this._settings=e,this._logger=new cs(`MetadataService`),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new Ts([`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}},Ds=class{constructor({prefix:e=`oidc.`,store:t=localStorage}={}){this._logger=new cs(`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}},Os=`code`,ks=`openid`,As=`client_secret_post`,js=900,Ms=class{constructor({authority:e,metadataUrl:t,metadata:n,signingKeys:r,metadataSeed:i,client_id:a,client_secret:o,response_type:s=Os,scope:c=ks,redirect_uri:l,post_logout_redirect_uri:u,client_authentication:d=As,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=js,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 Cs;this.stateStore=new Ds({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`)}},Ns=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new cs(`UserInfoService`),this._getClaimsFromJwt=async e=>{let t=this._logger.create(`_getClaimsFromJwt`);try{let n=ls.decode(e);return t.debug(`JWT decoding successful`),n}catch(e){throw t.error(`Error parsing JWT response`),e}},this._jsonService=new Ts(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}},Ps=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new cs(`TokenClient`),this._jsonService=new Ts(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=ps.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 ps.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=ps.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 ps.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=ps.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 ps.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`)}},Fs=class{constructor(e,t,n){this._settings=e,this._metadataService=t,this._claimsService=n,this._logger=new cs(`ResponseValidator`),this._userInfoService=new Ns(this._settings,this._metadataService),this._tokenClient=new Ps(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 ys(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 ys(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=ls.decode(e.id_token??``);if(r.sub||n.throw(Error(`ID Token is missing a subject claim`)),t){let e=ls.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}},Is=class e{constructor(e){this.id=e.id||ps.generateUUIDv4(),this.data=e.data,e.created&&e.created>0?this.created=e.created:this.created=gs.getEpochTime(),this.request_type=e.request_type,this.url_state=e.url_state}toStorageString(){return new cs(`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 cs.createStatic(`State`,`fromStorageString`),Promise.resolve(new e(JSON.parse(t)))}static async clearStaleState(t,n){let r=cs.createStatic(`State`,`clearStaleState`),i=gs.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))}}},Ls=class e extends Is{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?ps.generateCodeVerifier():t.code_verifier||void 0,r=n?await ps.generateCodeChallenge(n):void 0;return new e({...t,code_verifier:n,code_challenge:r})}toStorageString(){return new cs(`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){cs.createStatic(`SigninState`,`fromStorageString`);let n=JSON.parse(t);return e.create(n)}},Rs=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 Ls.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}${vs}${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})}};Rs._logger=new cs(`SigninRequest`);var zs=Rs,Bs=`openid`,Vs=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(vs);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(vs))}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-gs.getEpochTime()}set expires_in(e){typeof e==`string`&&(e=Number(e)),e!==void 0&&e>=0&&(this.expires_at=Math.floor(e)+gs.getEpochTime())}get isOpenId(){return this.scope?.split(` `).includes(Bs)||!!this.id_token}},Hs=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 cs(`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 Is({data:t,request_type:a,url_state:s});let e=this.state.id;s&&(e=`${e}${vs}${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}},Us=class{constructor(e){if(this.state=e.get(`state`),this.state){let e=decodeURIComponent(this.state).split(vs);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(vs))}this.error=e.get(`error`),this.error_description=e.get(`error_description`),this.error_uri=e.get(`error_uri`)}},Ws=[`nbf`,`jti`,`auth_time`,`nonce`,`acr`,`amr`,`azp`,`at_hash`],Gs=[`sub`,`iss`,`aud`,`exp`,`iat`],Ks=class{constructor(e){this._settings=e,this._logger=new cs(`ClaimsService`)}filterProtocolClaims(e){let t={...e};if(this._settings.filterProtocolClaims){let e;e=Array.isArray(this._settings.filterProtocolClaims)?this._settings.filterProtocolClaims:Ws;for(let n of e)Gs.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}},qs=class{constructor(e,t){this.keys=e,this.nonce=t}},Js=class{constructor(e,t){this._logger=new cs(`OidcClient`),this.settings=e instanceof Ms?e:new Ms(e),this.metadataService=t??new Es(this.settings),this._claimsService=new Ks(this.settings),this._validator=new Fs(this.settings,this.metadataService,this._claimsService),this._tokenClient=new Ps(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 zs.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 Vs(_s.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 Ls.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 ws&&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 ps.generateDPoPKeys(),r=new qs(n,t),await e.set(this.settings.client_id,r)),await ps.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 Vs(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 ws&&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 Vs(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 Hs({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 Us(_s.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 ys(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 Is.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`),Is.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})}},Ys=class{constructor(e){this._userManager=e,this._logger=new cs(`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 Ss(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)}}}},Xs=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-gs.getEpochTime()}set expires_in(e){e!==void 0&&(this.expires_at=Math.floor(e)+gs.getEpochTime())}get expired(){let e=this.expires_in;if(e!==void 0)return e<=0}get scopes(){return this.scope?.split(` `)??[]}toStorageString(){return new cs(`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 cs.createStatic(`User`,`fromStorageString`),new e(JSON.parse(t))}},Zs=`oidc-client`,Qs=class{constructor(){this._abort=new ms(`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===Zs){try{let n=_s.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:Zs,url:t,keepOpen:n},a=new cs(`_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()}}},$s={location:!1,toolbar:!1,height:640,closePopupWindowAfterInSeconds:-1},ec=`_blank`,tc=60,nc=2,rc=10,ic=class extends Ms{constructor(e){let{popup_redirect_uri:t=e.redirect_uri,popup_post_logout_redirect_uri:n=e.post_logout_redirect_uri,popupWindowFeatures:r=$s,popupWindowTarget:i=ec,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:_=nc,query_status_response_type:v=`code`,stopCheckSessionOnError:y=!0,revokeTokenTypes:b=[`access_token`,`refresh_token`],revokeTokensOnSignout:x=!1,includeIdTokenInSilentSignout:S=!1,accessTokenExpiringNotificationTimeInSeconds:C=tc,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||rc,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 Cs;this.userStore=new Ds({store:e})}}},ac=class e extends Qs{constructor({silentRequestTimeoutInSeconds:t=rc}){super(),this._logger=new cs(`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 bs(`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)}},oc=class{constructor(e){this._settings=e,this._logger=new cs(`IFrameNavigator`)}async prepare({silentRequestTimeoutInSeconds:e=this._settings.silentRequestTimeoutInSeconds}){return new ac({silentRequestTimeoutInSeconds:e})}async callback(e){this._logger.create(`callback`),ac.notifyParent(e,this._settings.iframeNotifyParentOrigin)}},sc=500,cc=1e3,lc=class extends Qs{constructor({popupWindowTarget:e=ec,popupWindowFeatures:t={},popupSignal:n,popupAbortOnClose:r}){super(),this._logger=new cs(`PopupWindow`);let i=hs.center({...$s,...t});this._window=window.open(void 0,e,hs.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*cc)}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`)))},sc),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()}},uc=class{constructor(e){this._settings=e,this._logger=new cs(`PopupNavigator`)}async prepare({popupWindowFeatures:e=this._settings.popupWindowFeatures,popupWindowTarget:t=this._settings.popupWindowTarget,popupSignal:n,popupAbortOnClose:r}){return new lc({popupWindowFeatures:e,popupWindowTarget:t,popupSignal:n,popupAbortOnClose:r})}async callback(e,{keepOpen:t=!1}){this._logger.create(`callback`),lc.notifyOpener(e,t)}},dc=class{constructor(e){this._settings=e,this._logger=new cs(`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(){}},fc=class extends xs{constructor(e){super({expiringNotificationTimeInSeconds:e.accessTokenExpiringNotificationTimeInSeconds}),this._logger=new cs(`UserManagerEvents`),this._userLoaded=new ms(`User loaded`),this._userUnloaded=new ms(`User unloaded`),this._silentRenewError=new ms(`Silent renew error`),this._userSignedIn=new ms(`User signed in`),this._userSignedOut=new ms(`User signed out`),this._userSessionChanged=new ms(`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()}},pc=class{constructor(e){this._userManager=e,this._logger=new cs(`SilentRenewService`),this._isStarted=!1,this._retryTimer=new gs(`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 bs){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)}},mc=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}},hc=class{constructor(e,t,n,r){this._logger=new cs(`UserManager`),this.settings=new ic(e),this._client=new Js(e),this._redirectNavigator=t??new dc(this.settings),this._popupNavigator=n??new uc(this.settings),this._iframeNavigator=r??new oc(this.settings),this._events=new fc(this.settings),this._silentRenewService=new pc(this),this.settings.automaticSilentRenew&&this.startSilentRenew(),this._sessionMonitor=null,this.settings.monitorSession&&(this._sessionMonitor=new Ys(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 mc(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 Xs({...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 ys)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 Xs(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 ys({...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`),Xs.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 ps.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 qs(await ps.generateDPoPKeys()),await e.store.set(this.settings.client_id,t)),await ps.generateDPoPJkt(t.keys)}},gc=d(c(((e,t)=>{
|
|
9
|
+
`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=mn(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&qn.assertOptions(n,{silentJSONParsing:Jn.transitional(Jn.boolean),forcedJSONParsing:Jn.transitional(Jn.boolean),clarifyTimeoutError:Jn.transitional(Jn.boolean),legacyInterceptorReqResOrdering:Jn.transitional(Jn.boolean),advertiseZstdAcceptEncoding:Jn.transitional(Jn.boolean),validateStatusUndefinedResolves:Jn.transitional(Jn.boolean)},!1),r!=null&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:qn.assertOptions(r,{encode:Jn.function,serialize:Jn.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),qn.assertOptions(t,{baseUrl:Jn.spelling(`baseURL`),withXsrfToken:Jn.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&L.merge(i.common,i[t.method]);i&&L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=mt.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||kt;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=[Un.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=Un.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=mn(this.defaults,e),Dt(fn(e.baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}};L.forEach([`delete`,`get`,`head`,`options`],function(e){Yn.prototype[e]=function(t,n){return this.request(mn(n||{},{method:e,url:t,data:n&&L.hasOwnProp(n,`data`)?n.data:void 0}))}}),L.forEach([`post`,`put`,`patch`,`query`],function(e){function t(t){return function(n,r,i){return this.request(mn(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}Yn.prototype[e]=t(),e!==`query`&&(Yn.prototype[e+`Form`]=t(!0))});var Xn=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 Jt(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 Zn(e){return function(t){return e.apply(null,t)}}function Qn(e){return L.isObject(e)&&e.isAxiosError===!0}let $n={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($n).forEach(([e,t])=>{$n[t]=e});function er(e){let t=new Yn(e),n=v(Yn.prototype.request,t);return L.extend(n,Yn.prototype,t,{allOwnKeys:!0}),L.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return er(mn(e,t))},n}let z=er(Gt);z.Axios=Yn,z.CanceledError=Jt,z.CancelToken=Xn,z.isCancel=qt,z.VERSION=`1.18.1`,z.toFormData=St,z.AxiosError=R,z.Cancel=z.CanceledError,z.all=function(e){return Promise.all(e)},z.spread=Zn,z.isAxiosError=Qn,z.mergeConfig=mn,z.AxiosHeaders=mt,z.formToJSON=e=>Ht(L.isHTMLForm(e)?new FormData(e):e),z.getAdapter=Vn.getAdapter,z.HttpStatusCode=$n,z.default=z;let{Axios:tr,AxiosError:nr,CanceledError:rr,isCancel:ir,CancelToken:ar,VERSION:or,all:sr,Cancel:cr,isAxiosError:lr,spread:ur,toFormData:dr,AxiosHeaders:fr,HttpStatusCode:pr,formToJSON:mr,getAdapter:hr,mergeConfig:gr,create:_r}=z;var vr=Object.defineProperty,yr=(e,t)=>{let n={};for(var r in e)vr(n,r,{get:e[r],enumerable:!0});return t||vr(n,Symbol.toStringTag,{value:`Module`}),n};let B=`https://api.sandbox.immutable.com`.replace(/\/+$/,``);var br=class{basePath;axios;configuration;constructor(e,t=B,n=z){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}},xr=class extends Error{field;constructor(e,t){super(t),this.field=e,this.name=`RequiredError`}};let V=`https://example.com`,H=function(e,t,n){if(n==null)throw new xr(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},Sr=async function(e,t,n){n&&n.apiKey&&(e[t]=typeof n.apiKey==`function`?await n.apiKey(t):await n.apiKey)},Cr=async function(e,t){t&&t.accessToken&&(e.Authorization=`Bearer `+(typeof t.accessToken==`function`?await t.accessToken():await t.accessToken))};function wr(e,t,n=``){t!=null&&(typeof t==`object`?Array.isArray(t)?t.forEach(t=>wr(e,t,n)):Object.keys(t).forEach(r=>wr(e,t[r],`${n}${n===``?``:`.`}${r}`)):e.has(n)?e.append(n,t):e.set(n,t))}let Tr=function(e,...t){let n=new URLSearchParams(e.search);wr(n,t),e.search=n.toString()},Er=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||``},Dr=function(e){return e.pathname+e.search+e.hash},Or=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)}},kr=function(e){return{getActivity:async(t,n,r={})=>{H(`getActivity`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},listActivities:async(t,n,r,i,a,o,s,c,l={})=>{H(`listActivities`,`chainName`,t);let u=`/v1/chains/{chain_name}/activities`.replace(`{chain_name}`,encodeURIComponent(String(t))),d=new URL(u,V),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),Tr(d,h);let g=f&&f.headers?f.headers:{};return p.headers={...m,...g,...l.headers},{url:Dr(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s,c={})=>{H(`listActivityHistory`,`chainName`,t),H(`listActivityHistory`,`fromUpdatedAt`,n);let l=`/v1/chains/{chain_name}/activity-history`.replace(`{chain_name}`,encodeURIComponent(String(t))),u=new URL(l,V),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),Tr(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Dr(u),options:f}}}},Ar=function(e){let t=kr(e);return{async getActivity(n,r,i){return Or(await t.getActivity(n,r,i),z,B,e)},async listActivities(n,r,i,a,o,s,c,l,u){return Or(await t.listActivities(n,r,i,a,o,s,c,l,u),z,B,e)},async listActivityHistory(n,r,i,a,o,s,c,l){return Or(await t.listActivityHistory(n,r,i,a,o,s,c,l),z,B,e)}}},jr=function(e,t,n){let r=Ar(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 Mr=class extends br{getActivity(e,t){return Ar(this.configuration).getActivity(e.chainName,e.activityId,t).then(e=>e(this.axios,this.basePath))}listActivities(e,t){return Ar(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 Ar(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 Nr=function(e){return{listChains:async(t,n,r={})=>{let i=new URL(`/v1/chains`,V),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),Tr(i,c);let l=a&&a.headers?a.headers:{};return o.headers={...s,...l,...r.headers},{url:Dr(i),options:o}}}},Pr=function(e){let t=Nr(e);return{async listChains(n,r,i){return Or(await t.listChains(n,r,i),z,B,e)}}},Fr=function(e,t,n){let r=Pr(e);return{listChains(e={},i){return r.listChains(e.pageCursor,e.pageSize,i).then(e=>e(n,t))}}};var Ir=class extends br{listChains(e={},t){return Pr(this.configuration).listChains(e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let Lr=function(e){return{getCollection:async(t,n,r={})=>{H(`getCollection`,`contractAddress`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},listCollections:async(t,n,r,i,a,o,s={})=>{H(`listCollections`,`chainName`,t);let c=`/v1/chains/{chain_name}/collections`.replace(`{chain_name}`,encodeURIComponent(String(t))),l=new URL(c,V),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),Tr(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Dr(l),options:d}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{H(`listCollectionsByNFTOwner`,`accountAddress`,t),H(`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,V),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),Tr(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Dr(s),options:l}},refreshCollectionMetadata:async(t,n,r,i={})=>{H(`refreshCollectionMetadata`,`contractAddress`,t),H(`refreshCollectionMetadata`,`chainName`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Cr(l,e),await Sr(l,`x-immutable-api-key`,e),await Cr(l,e),l[`Content-Type`]=`application/json`,Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Er(r,c,e),{url:Dr(o),options:c}}}},Rr=function(e){let t=Lr(e);return{async getCollection(n,r,i){return Or(await t.getCollection(n,r,i),z,B,e)},async listCollections(n,r,i,a,o,s,c){return Or(await t.listCollections(n,r,i,a,o,s,c),z,B,e)},async listCollectionsByNFTOwner(n,r,i,a,o){return Or(await t.listCollectionsByNFTOwner(n,r,i,a,o),z,B,e)},async refreshCollectionMetadata(n,r,i,a){return Or(await t.refreshCollectionMetadata(n,r,i,a),z,B,e)}}},zr=function(e,t,n){let r=Rr(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 Br=class extends br{getCollection(e,t){return Rr(this.configuration).getCollection(e.contractAddress,e.chainName,t).then(e=>e(this.axios,this.basePath))}listCollections(e,t){return Rr(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 Rr(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}refreshCollectionMetadata(e,t){return Rr(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then(e=>e(this.axios,this.basePath))}};let Vr=function(e){return{signCraftingPayload:async(t,n,r={})=>{H(`signCraftingPayload`,`chainName`,t),H(`signCraftingPayload`,`signCraftingRequest`,n);let i=`/v1/chains/{chain_name}/crafting/sign`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Sr(c,`x-immutable-api-key`,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}}}},Hr=function(e){let t=Vr(e);return{async signCraftingPayload(n,r,i){return Or(await t.signCraftingPayload(n,r,i),z,B,e)}}},Ur=function(e,t,n){let r=Hr(e);return{signCraftingPayload(e,i){return r.signCraftingPayload(e.chainName,e.signCraftingRequest,i).then(e=>e(n,t))}}};var Wr=class extends br{signCraftingPayload(e,t){return Hr(this.configuration).signCraftingPayload(e.chainName,e.signCraftingRequest,t).then(e=>e(this.axios,this.basePath))}};let Gr=function(e){return{approvePendingERC191Message:async(t,n={})=>{H(`approvePendingERC191Message`,`messageID`,t);let r=`/guardian/v1/erc191-messages/{messageID}/approve`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`POST`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},approvePendingMessage:async(t,n={})=>{H(`approvePendingMessage`,`messageID`,t);let r=`/guardian/v1/messages/{messageID}/approve`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`POST`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},approvePendingTransaction:async(t,n,r={})=>{H(`approvePendingTransaction`,`payloadHash`,t),H(`approvePendingTransaction`,`transactionApprovalRequest`,n);let i=`/guardian/v1/transactions/{payloadHash}/approve`.replace(`{payloadHash}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},evaluateErc191Message:async(t,n={})=>{H(`evaluateErc191Message`,`eRC191MessageEvaluationRequest`,t);let r=new URL(`/guardian/v1/erc191-messages/evaluate`,V),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Cr(o,e),o[`Content-Type`]=`application/json`,Tr(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Er(t,a,e),{url:Dr(r),options:a}},evaluateMessage:async(t,n={})=>{H(`evaluateMessage`,`messageEvaluationRequest`,t);let r=new URL(`/guardian/v1/messages/evaluate`,V),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Cr(o,e),o[`Content-Type`]=`application/json`,Tr(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Er(t,a,e),{url:Dr(r),options:a}},evaluateTransaction:async(t,n,r={})=>{H(`evaluateTransaction`,`id`,t),H(`evaluateTransaction`,`transactionEvaluationRequest`,n);let i=`/guardian/v1/transactions/{id}/evaluate`.replace(`{id}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getErc191MessageByID:async(t,n={})=>{H(`getErc191MessageByID`,`messageID`,t);let r=`/guardian/v1/erc191-messages/{messageID}`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},getMessageByID:async(t,n={})=>{H(`getMessageByID`,`messageID`,t);let r=`/guardian/v1/messages/{messageID}`.replace(`{messageID}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},getTransactionByID:async(t,n,r,i={})=>{H(`getTransactionByID`,`transactionID`,t),H(`getTransactionByID`,`chainType`,n);let a=`/guardian/v1/transactions/{transactionID}`.replace(`{transactionID}`,encodeURIComponent(String(t))),o=new URL(a,V),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={},u={};await Cr(l,e),n!==void 0&&(u.chainType=n),r!==void 0&&(u.chainID=r),Tr(o,u);let d=s&&s.headers?s.headers:{};return c.headers={...l,...d,...i.headers},{url:Dr(o),options:c}}}},Kr=function(e){let t=Gr(e);return{async approvePendingERC191Message(n,r){return Or(await t.approvePendingERC191Message(n,r),z,B,e)},async approvePendingMessage(n,r){return Or(await t.approvePendingMessage(n,r),z,B,e)},async approvePendingTransaction(n,r,i){return Or(await t.approvePendingTransaction(n,r,i),z,B,e)},async evaluateErc191Message(n,r){return Or(await t.evaluateErc191Message(n,r),z,B,e)},async evaluateMessage(n,r){return Or(await t.evaluateMessage(n,r),z,B,e)},async evaluateTransaction(n,r,i){return Or(await t.evaluateTransaction(n,r,i),z,B,e)},async getErc191MessageByID(n,r){return Or(await t.getErc191MessageByID(n,r),z,B,e)},async getMessageByID(n,r){return Or(await t.getMessageByID(n,r),z,B,e)},async getTransactionByID(n,r,i,a){return Or(await t.getTransactionByID(n,r,i,a),z,B,e)}}},qr=function(e,t,n){let r=Kr(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 Jr=class extends br{approvePendingERC191Message(e,t){return Kr(this.configuration).approvePendingERC191Message(e.messageID,t).then(e=>e(this.axios,this.basePath))}approvePendingMessage(e,t){return Kr(this.configuration).approvePendingMessage(e.messageID,t).then(e=>e(this.axios,this.basePath))}approvePendingTransaction(e,t){return Kr(this.configuration).approvePendingTransaction(e.payloadHash,e.transactionApprovalRequest,t).then(e=>e(this.axios,this.basePath))}evaluateErc191Message(e,t){return Kr(this.configuration).evaluateErc191Message(e.eRC191MessageEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}evaluateMessage(e,t){return Kr(this.configuration).evaluateMessage(e.messageEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}evaluateTransaction(e,t){return Kr(this.configuration).evaluateTransaction(e.id,e.transactionEvaluationRequest,t).then(e=>e(this.axios,this.basePath))}getErc191MessageByID(e,t){return Kr(this.configuration).getErc191MessageByID(e.messageID,t).then(e=>e(this.axios,this.basePath))}getMessageByID(e,t){return Kr(this.configuration).getMessageByID(e.messageID,t).then(e=>e(this.axios,this.basePath))}getTransactionByID(e,t){return Kr(this.configuration).getTransactionByID(e.transactionID,e.chainType,e.chainID,t).then(e=>e(this.axios,this.basePath))}};let Yr={Evm:`evm`},Xr=function(e){return{getMetadata:async(t,n,r,i={})=>{H(`getMetadata`,`chainName`,t),H(`getMetadata`,`contractAddress`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Dr(o),options:c}},listMetadata:async(t,n,r,i,a,o={})=>{H(`listMetadata`,`chainName`,t),H(`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,V),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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}},listMetadataForChain:async(t,n,r,i,a={})=>{H(`listMetadataForChain`,`chainName`,t);let o=`/v1/chains/{chain_name}/metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,V),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),Tr(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Dr(s),options:l}},listStacks:async(t,n,r={})=>{H(`listStacks`,`chainName`,t),H(`listStacks`,`stackId`,n);let i=`/v1/chains/{chain_name}/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={},l={};n&&(l.stack_id=n),Tr(a,l);let u=o&&o.headers?o.headers:{};return s.headers={...c,...u,...r.headers},{url:Dr(a),options:s}},refreshMetadataByID:async(t,n,r,i={})=>{H(`refreshMetadataByID`,`chainName`,t),H(`refreshMetadataByID`,`contractAddress`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Sr(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Er(r,c,e),{url:Dr(o),options:c}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{H(`refreshNFTMetadataByTokenID`,`contractAddress`,t),H(`refreshNFTMetadataByTokenID`,`chainName`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Sr(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Er(r,c,e),{url:Dr(o),options:c}}}},Zr=function(e){let t=Xr(e);return{async getMetadata(n,r,i,a){return Or(await t.getMetadata(n,r,i,a),z,B,e)},async listMetadata(n,r,i,a,o,s){return Or(await t.listMetadata(n,r,i,a,o,s),z,B,e)},async listMetadataForChain(n,r,i,a,o){return Or(await t.listMetadataForChain(n,r,i,a,o),z,B,e)},async listStacks(n,r,i){return Or(await t.listStacks(n,r,i),z,B,e)},async refreshMetadataByID(n,r,i,a){return Or(await t.refreshMetadataByID(n,r,i,a),z,B,e)},async refreshNFTMetadataByTokenID(n,r,i,a){return Or(await t.refreshNFTMetadataByTokenID(n,r,i,a),z,B,e)}}},Qr=function(e,t,n){let r=Zr(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 $r=class extends br{getMetadata(e,t){return Zr(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then(e=>e(this.axios,this.basePath))}listMetadata(e,t){return Zr(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 Zr(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listStacks(e,t){return Zr(this.configuration).listStacks(e.chainName,e.stackId,t).then(e=>e(this.axios,this.basePath))}refreshMetadataByID(e,t){return Zr(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then(e=>e(this.axios,this.basePath))}refreshNFTMetadataByTokenID(e,t){return Zr(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then(e=>e(this.axios,this.basePath))}};let ei=function(e){return{listFilters:async(t,n,r={})=>{H(`listFilters`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},searchNFTs:async(t,n,r,i,a,o,s,c={})=>{H(`searchNFTs`,`chainName`,t),H(`searchNFTs`,`contractAddress`,n);let l=`/v1/chains/{chain_name}/search/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))),u=new URL(l,V),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),Tr(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Dr(u),options:f}},searchStacks:async(t,n,r,i,a,o,s,c,l,u,d,f={})=>{H(`searchStacks`,`chainName`,t),H(`searchStacks`,`contractAddress`,n);let p=`/v1/chains/{chain_name}/search/stacks`.replace(`{chain_name}`,encodeURIComponent(String(t))),m=new URL(p,V),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),Tr(m,v);let y=h&&h.headers?h.headers:{};return g.headers={..._,...y,...f.headers},{url:Dr(m),options:g}}}},ti=function(e){let t=ei(e);return{async listFilters(n,r,i){return Or(await t.listFilters(n,r,i),z,B,e)},async searchNFTs(n,r,i,a,o,s,c,l){return Or(await t.searchNFTs(n,r,i,a,o,s,c,l),z,B,e)},async searchStacks(n,r,i,a,o,s,c,l,u,d,f,p){return Or(await t.searchStacks(n,r,i,a,o,s,c,l,u,d,f,p),z,B,e)}}},ni=function(e,t,n){let r=ti(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 ri=class extends br{listFilters(e,t){return ti(this.configuration).listFilters(e.chainName,e.contractAddress,t).then(e=>e(this.axios,this.basePath))}searchNFTs(e,t){return ti(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 ti(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 ii={CheapestFirst:`cheapest_first`},ai=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{H(`listAllNFTOwners`,`chainName`,t);let o=`/v1/chains/{chain_name}/nft-owners`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,V),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),Tr(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Dr(s),options:l}},listNFTOwners:async(t,n,r,i,a,o={})=>{H(`listNFTOwners`,`contractAddress`,t),H(`listNFTOwners`,`tokenId`,n),H(`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,V),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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}},listOwnersByContractAddress:async(t,n,r,i,a,o,s={})=>{H(`listOwnersByContractAddress`,`contractAddress`,t),H(`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,V),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),Tr(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Dr(l),options:d}}}},oi=function(e){let t=ai(e);return{async listAllNFTOwners(n,r,i,a,o){return Or(await t.listAllNFTOwners(n,r,i,a,o),z,B,e)},async listNFTOwners(n,r,i,a,o,s){return Or(await t.listNFTOwners(n,r,i,a,o,s),z,B,e)},async listOwnersByContractAddress(n,r,i,a,o,s,c){return Or(await t.listOwnersByContractAddress(n,r,i,a,o,s,c),z,B,e)}}},si=function(e,t,n){let r=oi(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 ci=class extends br{listAllNFTOwners(e,t){return oi(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listNFTOwners(e,t){return oi(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 oi(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.accountAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}};let li=function(e){return{createMintRequest:async(t,n,r,i={})=>{H(`createMintRequest`,`contractAddress`,t),H(`createMintRequest`,`chainName`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...i},l={};await Sr(l,`x-immutable-api-key`,e),l[`Content-Type`]=`application/json`,Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},c.data=Er(r,c,e),{url:Dr(o),options:c}},getMintRequest:async(t,n,r,i={})=>{H(`getMintRequest`,`contractAddress`,t),H(`getMintRequest`,`chainName`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};await Sr(l,`x-immutable-api-key`,e),Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Dr(o),options:c}},getNFT:async(t,n,r,i={})=>{H(`getNFT`,`contractAddress`,t),H(`getNFT`,`tokenId`,n),H(`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,V),s;e&&(s=e.baseOptions);let c={method:`GET`,...s,...i},l={};Tr(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...i.headers},{url:Dr(o),options:c}},listAllNFTs:async(t,n,r,i,a={})=>{H(`listAllNFTs`,`chainName`,t);let o=`/v1/chains/{chain_name}/nfts`.replace(`{chain_name}`,encodeURIComponent(String(t))),s=new URL(o,V),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),Tr(s,d);let f=c&&c.headers?c.headers:{};return l.headers={...u,...f,...a.headers},{url:Dr(s),options:l}},listMintRequests:async(t,n,r,i,a,o={})=>{H(`listMintRequests`,`contractAddress`,t),H(`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,V),l;e&&(l=e.baseOptions);let u={method:`GET`,...l,...o},d={},f={};await Sr(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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}},listNFTs:async(t,n,r,i,a,o,s={})=>{H(`listNFTs`,`contractAddress`,t),H(`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,V),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),Tr(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Dr(l),options:d}},listNFTsByAccountAddress:async(t,n,r,i,a,o,s,c={})=>{H(`listNFTsByAccountAddress`,`accountAddress`,t),H(`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,V),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),Tr(u,m);let h=d&&d.headers?d.headers:{};return f.headers={...p,...h,...c.headers},{url:Dr(u),options:f}}}},ui=function(e){let t=li(e);return{async createMintRequest(n,r,i,a){return Or(await t.createMintRequest(n,r,i,a),z,B,e)},async getMintRequest(n,r,i,a){return Or(await t.getMintRequest(n,r,i,a),z,B,e)},async getNFT(n,r,i,a){return Or(await t.getNFT(n,r,i,a),z,B,e)},async listAllNFTs(n,r,i,a,o){return Or(await t.listAllNFTs(n,r,i,a,o),z,B,e)},async listMintRequests(n,r,i,a,o,s){return Or(await t.listMintRequests(n,r,i,a,o,s),z,B,e)},async listNFTs(n,r,i,a,o,s,c){return Or(await t.listNFTs(n,r,i,a,o,s,c),z,B,e)},async listNFTsByAccountAddress(n,r,i,a,o,s,c,l){return Or(await t.listNFTsByAccountAddress(n,r,i,a,o,s,c,l),z,B,e)}}},di=function(e,t,n){let r=ui(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 fi=class extends br{createMintRequest(e,t){return ui(this.configuration).createMintRequest(e.contractAddress,e.chainName,e.createMintRequestRequest,t).then(e=>e(this.axios,this.basePath))}getMintRequest(e,t){return ui(this.configuration).getMintRequest(e.contractAddress,e.chainName,e.referenceId,t).then(e=>e(this.axios,this.basePath))}getNFT(e,t){return ui(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then(e=>e(this.axios,this.basePath))}listAllNFTs(e,t){return ui(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}listMintRequests(e,t){return ui(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 ui(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 ui(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 pi=function(e){return{cancelOrders:async(t,n,r={})=>{H(`cancelOrders`,`chainName`,t),H(`cancelOrders`,`cancelOrdersRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/cancel`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},createBid:async(t,n,r={})=>{H(`createBid`,`chainName`,t),H(`createBid`,`createBidRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},createCollectionBid:async(t,n,r={})=>{H(`createCollectionBid`,`chainName`,t),H(`createCollectionBid`,`createCollectionBidRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/collection-bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},createListing:async(t,n,r={})=>{H(`createListing`,`chainName`,t),H(`createListing`,`createListingRequestBody`,n);let i=`/v1/chains/{chain_name}/orders/listings`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},fulfillmentData:async(t,n,r={})=>{H(`fulfillmentData`,`chainName`,t),H(`fulfillmentData`,`fulfillmentDataRequest`,n);let i=`/v1/chains/{chain_name}/orders/fulfillment-data`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getBid:async(t,n,r={})=>{H(`getBid`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},getCollectionBid:async(t,n,r={})=>{H(`getCollectionBid`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},getListing:async(t,n,r={})=>{H(`getListing`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},getTrade:async(t,n,r={})=>{H(`getTrade`,`chainName`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},listBids:async(t,n,r,i,a,o,s,c,l,u,d,f,p={})=>{H(`listBids`,`chainName`,t);let m=`/v1/chains/{chain_name}/orders/bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),h=new URL(m,V),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),Tr(h,y);let b=g&&g.headers?g.headers:{};return _.headers={...v,...b,...p.headers},{url:Dr(h),options:_}},listCollectionBids:async(t,n,r,i,a,o,s,c,l,u,d={})=>{H(`listCollectionBids`,`chainName`,t);let f=`/v1/chains/{chain_name}/orders/collection-bids`.replace(`{chain_name}`,encodeURIComponent(String(t))),p=new URL(f,V),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),Tr(p,_);let v=m&&m.headers?m.headers:{};return h.headers={...g,...v,...d.headers},{url:Dr(p),options:h}},listListings:async(t,n,r,i,a,o,s,c,l,u,d,f,p,m={})=>{H(`listListings`,`chainName`,t);let h=`/v1/chains/{chain_name}/orders/listings`.replace(`{chain_name}`,encodeURIComponent(String(t))),g=new URL(h,V),_;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),Tr(g,b);let x=_&&_.headers?_.headers:{};return v.headers={...y,...x,...m.headers},{url:Dr(g),options:v}},listTrades:async(t,n,r,i,a,o,s,c,l={})=>{H(`listTrades`,`chainName`,t);let u=`/v1/chains/{chain_name}/trades`.replace(`{chain_name}`,encodeURIComponent(String(t))),d=new URL(u,V),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),Tr(d,h);let g=f&&f.headers?f.headers:{};return p.headers={...m,...g,...l.headers},{url:Dr(d),options:p}}}},mi=function(e){let t=pi(e);return{async cancelOrders(n,r,i){return Or(await t.cancelOrders(n,r,i),z,B,e)},async createBid(n,r,i){return Or(await t.createBid(n,r,i),z,B,e)},async createCollectionBid(n,r,i){return Or(await t.createCollectionBid(n,r,i),z,B,e)},async createListing(n,r,i){return Or(await t.createListing(n,r,i),z,B,e)},async fulfillmentData(n,r,i){return Or(await t.fulfillmentData(n,r,i),z,B,e)},async getBid(n,r,i){return Or(await t.getBid(n,r,i),z,B,e)},async getCollectionBid(n,r,i){return Or(await t.getCollectionBid(n,r,i),z,B,e)},async getListing(n,r,i){return Or(await t.getListing(n,r,i),z,B,e)},async getTrade(n,r,i){return Or(await t.getTrade(n,r,i),z,B,e)},async listBids(n,r,i,a,o,s,c,l,u,d,f,p,m){return Or(await t.listBids(n,r,i,a,o,s,c,l,u,d,f,p,m),z,B,e)},async listCollectionBids(n,r,i,a,o,s,c,l,u,d,f){return Or(await t.listCollectionBids(n,r,i,a,o,s,c,l,u,d,f),z,B,e)},async listListings(n,r,i,a,o,s,c,l,u,d,f,p,m,h){return Or(await t.listListings(n,r,i,a,o,s,c,l,u,d,f,p,m,h),z,B,e)},async listTrades(n,r,i,a,o,s,c,l,u){return Or(await t.listTrades(n,r,i,a,o,s,c,l,u),z,B,e)}}},hi=function(e,t,n){let r=mi(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 gi=class extends br{cancelOrders(e,t){return mi(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then(e=>e(this.axios,this.basePath))}createBid(e,t){return mi(this.configuration).createBid(e.chainName,e.createBidRequestBody,t).then(e=>e(this.axios,this.basePath))}createCollectionBid(e,t){return mi(this.configuration).createCollectionBid(e.chainName,e.createCollectionBidRequestBody,t).then(e=>e(this.axios,this.basePath))}createListing(e,t){return mi(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then(e=>e(this.axios,this.basePath))}fulfillmentData(e,t){return mi(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then(e=>e(this.axios,this.basePath))}getBid(e,t){return mi(this.configuration).getBid(e.chainName,e.bidId,t).then(e=>e(this.axios,this.basePath))}getCollectionBid(e,t){return mi(this.configuration).getCollectionBid(e.chainName,e.collectionBidId,t).then(e=>e(this.axios,this.basePath))}getListing(e,t){return mi(this.configuration).getListing(e.chainName,e.listingId,t).then(e=>e(this.axios,this.basePath))}getTrade(e,t){return mi(this.configuration).getTrade(e.chainName,e.tradeId,t).then(e=>e(this.axios,this.basePath))}listBids(e,t){return mi(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 mi(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 mi(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 mi(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 _i={CreatedAt:`created_at`,UpdatedAt:`updated_at`,SellItemAmount:`sell_item_amount`},vi={Asc:`asc`,Desc:`desc`},yi={CreatedAt:`created_at`,UpdatedAt:`updated_at`,SellItemAmount:`sell_item_amount`},bi={Asc:`asc`,Desc:`desc`},xi={Native:`NATIVE`,Erc20:`ERC20`},Si={CreatedAt:`created_at`,UpdatedAt:`updated_at`,BuyItemAmount:`buy_item_amount`},Ci={Asc:`asc`,Desc:`desc`},wi={IndexedAt:`indexed_at`},Ti={Asc:`asc`,Desc:`desc`},Ei=function(e){return{createCounterfactualAddressV2:async(t,n,r={})=>{H(`createCounterfactualAddressV2`,`chainName`,t),H(`createCounterfactualAddressV2`,`createCounterfactualAddressRequest`,n);let i=`/v2/chains/{chain_name}/passport/counterfactual-address`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getLinkedAddresses:async(t,n,r={})=>{H(`getLinkedAddresses`,`userId`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};await Cr(c,e),Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{H(`getLinkedAddressesDeprecated`,`userId`,t);let r=`/passport-mr/v1/users/{userId}/linked-addresses`.replace(`{userId}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Cr(s,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}},getTransactionMetadata:async(t,n,r={})=>{H(`getTransactionMetadata`,`chainName`,t),H(`getTransactionMetadata`,`getTransactionMetadataRequest`,n);let i=`/v1/chains/{chain_name}/passport/transaction-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getTypedDataMetadata:async(t,n,r={})=>{H(`getTypedDataMetadata`,`chainName`,t),H(`getTypedDataMetadata`,`getTypedDataMetadataRequest`,n);let i=`/v1/chains/{chain_name}/passport/typeddata-metadata`.replace(`{chain_name}`,encodeURIComponent(String(t))),a=new URL(i,V),o;e&&(o=e.baseOptions);let s={method:`POST`,...o,...r},c={};await Cr(c,e),c[`Content-Type`]=`application/json`,Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},s.data=Er(n,s,e),{url:Dr(a),options:s}},getUserMetadata:async(t,n={})=>{H(`getUserMetadata`,`userId`,t);let r=`/passport-mr/v1/users/{user_id}/metadata`.replace(`{user_id}`,encodeURIComponent(String(t))),i=new URL(r,V),a;e&&(a=e.baseOptions);let o={method:`GET`,...a,...n},s={};await Sr(s,`x-immutable-api-key`,e),Tr(i,{});let c=a&&a.headers?a.headers:{};return o.headers={...s,...c,...n.headers},{url:Dr(i),options:o}}}},Di=function(e){let t=Ei(e);return{async createCounterfactualAddressV2(n,r,i){return Or(await t.createCounterfactualAddressV2(n,r,i),z,B,e)},async getLinkedAddresses(n,r,i){return Or(await t.getLinkedAddresses(n,r,i),z,B,e)},async getLinkedAddressesDeprecated(n,r){return Or(await t.getLinkedAddressesDeprecated(n,r),z,B,e)},async getTransactionMetadata(n,r,i){return Or(await t.getTransactionMetadata(n,r,i),z,B,e)},async getTypedDataMetadata(n,r,i){return Or(await t.getTypedDataMetadata(n,r,i),z,B,e)},async getUserMetadata(n,r){return Or(await t.getUserMetadata(n,r),z,B,e)}}},Oi=function(e,t,n){let r=Di(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 ki=class extends br{createCounterfactualAddressV2(e,t){return Di(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then(e=>e(this.axios,this.basePath))}getLinkedAddresses(e,t){return Di(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then(e=>e(this.axios,this.basePath))}getLinkedAddressesDeprecated(e,t){return Di(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then(e=>e(this.axios,this.basePath))}getTransactionMetadata(e,t){return Di(this.configuration).getTransactionMetadata(e.chainName,e.getTransactionMetadataRequest,t).then(e=>e(this.axios,this.basePath))}getTypedDataMetadata(e,t){return Di(this.configuration).getTypedDataMetadata(e.chainName,e.getTypedDataMetadataRequest,t).then(e=>e(this.axios,this.basePath))}getUserMetadata(e,t){return Di(this.configuration).getUserMetadata(e.userId,t).then(e=>e(this.axios,this.basePath))}};let Ai=function(e){return{getUserInfo:async(t={})=>{let n=new URL(`/passport-profile/v1/user/info`,V),r;e&&(r=e.baseOptions);let i={method:`GET`,...r,...t},a={};await Cr(a,e),Tr(n,{});let o=r&&r.headers?r.headers:{};return i.headers={...a,...o,...t.headers},{url:Dr(n),options:i}},linkWalletV2:async(t,n={})=>{let r=new URL(`/passport-profile/v2/linked-wallets`,V),i;e&&(i=e.baseOptions);let a={method:`POST`,...i,...n},o={};await Cr(o,e),o[`Content-Type`]=`application/json`,Tr(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=Er(t,a,e),{url:Dr(r),options:a}}}},ji=function(e){let t=Ai(e);return{async getUserInfo(n){return Or(await t.getUserInfo(n),z,B,e)},async linkWalletV2(n,r){return Or(await t.linkWalletV2(n,r),z,B,e)}}},Mi=function(e,t,n){let r=ji(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 Ni=class extends br{getUserInfo(e){return ji(this.configuration).getUserInfo(e).then(e=>e(this.axios,this.basePath))}linkWalletV2(e={},t){return ji(this.configuration).linkWalletV2(e.linkWalletV2Request,t).then(e=>e(this.axios,this.basePath))}};let Pi=function(e){return{quotesForNFTs:async(t,n,r,i,a,o={})=>{H(`quotesForNFTs`,`chainName`,t),H(`quotesForNFTs`,`contractAddress`,n),H(`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,V),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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}},quotesForStacks:async(t,n,r,i,a,o={})=>{H(`quotesForStacks`,`chainName`,t),H(`quotesForStacks`,`contractAddress`,n),H(`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,V),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),Tr(c,f);let p=l&&l.headers?l.headers:{};return u.headers={...d,...p,...o.headers},{url:Dr(c),options:u}}}},Fi=function(e){let t=Pi(e);return{async quotesForNFTs(n,r,i,a,o,s){return Or(await t.quotesForNFTs(n,r,i,a,o,s),z,B,e)},async quotesForStacks(n,r,i,a,o,s){return Or(await t.quotesForStacks(n,r,i,a,o,s),z,B,e)}}},Ii=function(e,t,n){let r=Fi(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 Li=class extends br{quotesForNFTs(e,t){return Fi(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 Fi(this.configuration).quotesForStacks(e.chainName,e.contractAddress,e.stackId,e.paymentToken,e.pageCursor,t).then(e=>e(this.axios,this.basePath))}};let Ri=function(e){return{getERC20Token:async(t,n,r={})=>{H(`getERC20Token`,`contractAddress`,t),H(`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,V),o;e&&(o=e.baseOptions);let s={method:`GET`,...o,...r},c={};Tr(a,{});let l=o&&o.headers?o.headers:{};return s.headers={...c,...l,...r.headers},{url:Dr(a),options:s}},listERC20Tokens:async(t,n,r,i,a,o,s={})=>{H(`listERC20Tokens`,`chainName`,t);let c=`/v1/chains/{chain_name}/tokens`.replace(`{chain_name}`,encodeURIComponent(String(t))),l=new URL(c,V),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),Tr(l,p);let m=u&&u.headers?u.headers:{};return d.headers={...f,...m,...s.headers},{url:Dr(l),options:d}}}},zi=function(e){let t=Ri(e);return{async getERC20Token(n,r,i){return Or(await t.getERC20Token(n,r,i),z,B,e)},async listERC20Tokens(n,r,i,a,o,s,c){return Or(await t.listERC20Tokens(n,r,i,a,o,s,c),z,B,e)}}},Bi=function(e,t,n){let r=zi(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 Vi=class extends br{getERC20Token(e,t){return zi(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then(e=>e(this.axios,this.basePath))}listERC20Tokens(e,t){return zi(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.verificationStatus,e.isCanonical,e.pageCursor,e.pageSize,t).then(e=>e(this.axios,this.basePath))}},Hi=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 Ui={ValidationError:`VALIDATION_ERROR`},Wi={UnauthorisedRequest:`UNAUTHORISED_REQUEST`},Gi={AuthenticationError:`AUTHENTICATION_ERROR`},Ki={ResourceNotFound:`RESOURCE_NOT_FOUND`},qi={ConflictError:`CONFLICT_ERROR`},Ji={TooManyRequestsError:`TOO_MANY_REQUESTS_ERROR`},Yi={InternalServerError:`INTERNAL_SERVER_ERROR`},Xi={NotImplementedError:`NOT_IMPLEMENTED_ERROR`},Zi={Active:`ACTIVE`},Qi={Mint:`mint`,Burn:`burn`,Transfer:`transfer`,Sale:`sale`,Deposit:`deposit`,Withdrawal:`withdrawal`},$i={Verified:`verified`,Unverified:`unverified`,Spam:`spam`,Inactive:`inactive`},ea={Cancelled:`CANCELLED`},ta={OnChain:`ON_CHAIN`,OffChain:`OFF_CHAIN`,Underfunded:`UNDERFUNDED`},na={Erc721:`ERC721`,Erc1155:`ERC1155`},ra={Erc1155Collection:`ERC1155_COLLECTION`},ia={Erc1155:`ERC1155`},aa={Erc20Approve:`ERC20_APPROVE`},oa={Erc20:`ERC20`},sa={Erc20TransferFrom:`ERC20_TRANSFER_FROM`},ca={Erc20Transfer:`ERC20_TRANSFER`},la={Erc721Approve:`ERC721_APPROVE`},ua={Erc721Collection:`ERC721_COLLECTION`,Erc1155Collection:`ERC1155_COLLECTION`},da={Erc721:`ERC721`},fa={Erc721SafeTransferFromBatch:`ERC721_SAFE_TRANSFER_FROM_BATCH`},pa={Erc721TransferFrom:`ERC721_TRANSFER_FROM`},ma={Expired:`EXPIRED`},ha={Filled:`FILLED`},ga={Royalty:`ROYALTY`,MakerEcosystem:`MAKER_ECOSYSTEM`,TakerEcosystem:`TAKER_ECOSYSTEM`,Protocol:`PROTOCOL`},_a={Filled:`FILLED`},va={Verified:`verified`,Unverified:`unverified`,Spam:`spam`,Inactive:`inactive`},ya={Inactive:`INACTIVE`},ba={Erc20:`ERC20`},xa={Royalty:`ROYALTY`,MakerEcosystem:`MAKER_ECOSYSTEM`,TakerEcosystem:`TAKER_ECOSYSTEM`,Protocol:`PROTOCOL`},Sa={Native:`NATIVE`},Ca={Erc721:`ERC721`,Erc1155:`ERC1155`},wa={Otp:`otp`,Web:`web`},Ta={Pending:`pending`,Succeeded:`succeeded`,Failed:`failed`},Ea={Erc721:`ERC721`,Erc1155:`ERC1155`},Da={Number:`number`,BoostPercentage:`boost_percentage`,BoostNumber:`boost_number`,Date:`date`},Oa={Erc721SetApprovalForAll:`ERC721_SET_APPROVAL_FOR_ALL`,Erc1155SetApprovalForAll:`ERC1155_SET_APPROVAL_FOR_ALL`},ka={Native:`NATIVE`,Erc20:`ERC20`,Erc721:`ERC721`,Erc1155:`ERC1155`,Erc721Collection:`ERC721_COLLECTION`,Erc1155Collection:`ERC1155_COLLECTION`},Aa={Requested:`requested`,Approved:`approved`,Rejected:`rejected`,Removed:`removed`,Added:`added`},ja={Listing:`LISTING`,Bid:`BID`,CollectionBid:`COLLECTION_BID`},Ma={Pending:`PENDING`,Active:`ACTIVE`,Inactive:`INACTIVE`,Filled:`FILLED`,Expired:`EXPIRED`,Cancelled:`CANCELLED`},Na={Common:`common`,Uncommon:`uncommon`,Rare:`rare`,Epic:`epic`,Legendary:`legendary`},Pa={Pending:`PENDING`},Fa={FullRestricted:`FULL_RESTRICTED`,PartialRestricted:`PARTIAL_RESTRICTED`},Ia={Royalty:`ROYALTY`},La={SeaportCreateListingMetadata:`SEAPORT_CREATE_LISTING_METADATA`},Ra={Erc1155Collection:`ERC1155Collection`},za={Erc1155:`ERC1155`},Ba={Erc20:`ERC20`},Va={Erc721Collection:`ERC721Collection`},Ha={Erc721:`ERC721`},Ua={Erc20:`ERC20`,Native:`NATIVE`},Wa={SeaportFulfillAvailableAdvancedOrders:`SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS`},Ga={Native:`NATIVE`},Ka={Malicious:`malicious`,Benign:`benign`,Warning:`warning`,Unknown:`unknown`,Info:`info`},qa={Erc20:`ERC20`},Ja={Evm:`evm`},Ya={Otp:`otp`,Web:`web`},Xa={Unknown:`UNKNOWN`},Za={Unknown:`UNKNOWN`},Qa={Success:`success`,Error:`error`,SimulationFailed:`simulation_failed`},$a={Erc20:`ERC20`,Erc721:`ERC721`,Erc1155:`ERC1155`},eo={Completed:`completed`,Pending:`pending`},to={Evm:`evm`};var no=yr({APIError400AllOfCodeEnum:()=>Ui,APIError401AllOfCodeEnum:()=>Wi,APIError403AllOfCodeEnum:()=>Gi,APIError404AllOfCodeEnum:()=>Ki,APIError409AllOfCodeEnum:()=>qi,APIError429AllOfCodeEnum:()=>Ji,APIError500AllOfCodeEnum:()=>Yi,APIError501AllOfCodeEnum:()=>Xi,ActiveOrderStatusNameEnum:()=>Zi,ActivitiesApi:()=>Mr,ActivitiesApiAxiosParamCreator:()=>kr,ActivitiesApiFactory:()=>jr,ActivitiesApiFp:()=>Ar,ActivityType:()=>Qi,AssetVerificationStatus:()=>$i,CancelledOrderStatusCancellationTypeEnum:()=>ta,CancelledOrderStatusNameEnum:()=>ea,ChainsApi:()=>Ir,ChainsApiAxiosParamCreator:()=>Nr,ChainsApiFactory:()=>Fr,ChainsApiFp:()=>Pr,CollectionContractType:()=>na,CollectionsApi:()=>Br,CollectionsApiAxiosParamCreator:()=>Lr,CollectionsApiFactory:()=>zr,CollectionsApiFp:()=>Rr,Configuration:()=>Hi,CraftingApi:()=>Wr,CraftingApiAxiosParamCreator:()=>Vr,CraftingApiFactory:()=>Ur,CraftingApiFp:()=>Hr,ERC1155CollectionItemTypeEnum:()=>ra,ERC1155ItemTypeEnum:()=>ia,ERC20ApproveMetadataTransactionTypeEnum:()=>aa,ERC20ItemTypeEnum:()=>oa,ERC20TransferFromMetadataTransactionTypeEnum:()=>sa,ERC20TransferMetadataTransactionTypeEnum:()=>ca,ERC721ApproveMetadataTransactionTypeEnum:()=>la,ERC721CollectionItemTypeEnum:()=>ua,ERC721ItemTypeEnum:()=>da,ERC721SafeTransferFromBatchMetadataTransactionTypeEnum:()=>fa,ERC721TransferFromMetadataTransactionTypeEnum:()=>pa,ExpiredOrderStatusNameEnum:()=>ma,FailedOrderCancellationReasonCodeEnum:()=>ha,FeeTypeEnum:()=>ga,FilledOrderStatusNameEnum:()=>_a,GetTransactionByIDChainTypeEnum:()=>Yr,GuardianApi:()=>Jr,GuardianApiAxiosParamCreator:()=>Gr,GuardianApiFactory:()=>qr,GuardianApiFp:()=>Kr,ImmutableVerificationStatusEnum:()=>va,InactiveOrderStatusNameEnum:()=>ya,ListBidsSortByEnum:()=>_i,ListBidsSortDirectionEnum:()=>vi,ListCollectionBidsSortByEnum:()=>yi,ListCollectionBidsSortDirectionEnum:()=>bi,ListListingsBuyItemTypeEnum:()=>xi,ListListingsSortByEnum:()=>Si,ListListingsSortDirectionEnum:()=>Ci,ListTradesSortByEnum:()=>wi,ListTradesSortDirectionEnum:()=>Ti,MarketPriceERC20TokenTypeEnum:()=>ba,MarketPriceFeesTypeEnum:()=>xa,MarketPriceNativeTokenTypeEnum:()=>Sa,MarketplaceContractType:()=>Ca,MessageEvaluationResponseConfirmationMethodEnum:()=>wa,MetadataApi:()=>$r,MetadataApiAxiosParamCreator:()=>Xr,MetadataApiFactory:()=>Qr,MetadataApiFp:()=>Zr,MetadataSearchApi:()=>ri,MetadataSearchApiAxiosParamCreator:()=>ei,MetadataSearchApiFactory:()=>ni,MetadataSearchApiFp:()=>ti,MintRequestStatus:()=>Ta,NFTContractType:()=>Ea,NFTMetadataAttributeDisplayTypeEnum:()=>Da,NFTSetApprovalForAllMetadataTransactionTypeEnum:()=>Oa,NativeItemTypeEnum:()=>ka,NftOwnersApi:()=>ci,NftOwnersApiAxiosParamCreator:()=>ai,NftOwnersApiFactory:()=>si,NftOwnersApiFp:()=>oi,NftsApi:()=>fi,NftsApiAxiosParamCreator:()=>li,NftsApiFactory:()=>di,NftsApiFp:()=>ui,OperatorAllowlistStatus:()=>Aa,OrderStatusName:()=>Ma,OrderTypeEnum:()=>ja,OrdersApi:()=>gi,OrdersApiAxiosParamCreator:()=>pi,OrdersApiFactory:()=>hi,OrdersApiFp:()=>mi,OrganisationTier:()=>Na,PassportApi:()=>ki,PassportApiAxiosParamCreator:()=>Ei,PassportApiFactory:()=>Oi,PassportApiFp:()=>Di,PassportProfileApi:()=>Ni,PassportProfileApiAxiosParamCreator:()=>Ai,PassportProfileApiFactory:()=>Mi,PassportProfileApiFp:()=>ji,PendingOrderStatusNameEnum:()=>Pa,PricingApi:()=>Li,PricingApiAxiosParamCreator:()=>Pi,PricingApiFactory:()=>Ii,PricingApiFp:()=>Fi,ProtocolDataOrderTypeEnum:()=>Fa,SaleFeeTypeEnum:()=>Ia,SeaportCreateListingMetadataTypedDataTypeEnum:()=>La,SeaportERC1155CollectionItemTypeEnum:()=>Ra,SeaportERC1155ItemTypeEnum:()=>za,SeaportERC20ItemTypeEnum:()=>Ba,SeaportERC721CollectionItemTypeEnum:()=>Va,SeaportERC721ItemTypeEnum:()=>Ha,SeaportFeeTypeEnum:()=>Ua,SeaportFulfillAvailableAdvancedOrdersMetadataTransactionTypeEnum:()=>Wa,SeaportNativeItemTypeEnum:()=>Ga,SearchStacksSortByEnum:()=>ii,Severity:()=>Ka,TokenContractType:()=>qa,TokensApi:()=>Vi,TokensApiAxiosParamCreator:()=>Ri,TokensApiFactory:()=>Bi,TokensApiFp:()=>zi,TransactionApprovalRequestChainTypeEnum:()=>Ja,TransactionEvaluationResponseConfirmationMethodEnum:()=>Ya,UnknownMetadataTransactionTypeEnum:()=>Xa,UnknownTypedDataMetadataTypedDataTypeEnum:()=>Za,ValidationStatus:()=>Qa,VerificationRequestContractType:()=>$a,VerificationRequestStatus:()=>eo,ZkEvmTransactionEvaluationRequestChainTypeEnum:()=>to});let ro=function(e){return e.CheapestFirst=`cheapest_first`,e}({}),io=function(e){return e.ValidationError=`VALIDATION_ERROR`,e}({}),ao=function(e){return e.UnauthorisedRequest=`UNAUTHORISED_REQUEST`,e}({}),oo=function(e){return e.AuthenticationError=`AUTHENTICATION_ERROR`,e}({}),so=function(e){return e.ResourceNotFound=`RESOURCE_NOT_FOUND`,e}({}),co=function(e){return e.ConflictError=`CONFLICT_ERROR`,e}({}),lo=function(e){return e.TooManyRequestsError=`TOO_MANY_REQUESTS_ERROR`,e}({}),uo=function(e){return e.InternalServerError=`INTERNAL_SERVER_ERROR`,e}({}),fo=function(e){return e.Mint=`mint`,e.Burn=`burn`,e.Transfer=`transfer`,e.Sale=`sale`,e.Deposit=`deposit`,e.Withdrawal=`withdrawal`,e}({}),po=function(e){return e.Verified=`verified`,e.Unverified=`unverified`,e.Spam=`spam`,e.Inactive=`inactive`,e}({}),mo=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),ho=function(e){return e.Erc20=`ERC20`,e}({}),go=function(e){return e.Royalty=`ROYALTY`,e.MakerEcosystem=`MAKER_ECOSYSTEM`,e.TakerEcosystem=`TAKER_ECOSYSTEM`,e.Protocol=`PROTOCOL`,e}({}),_o=function(e){return e.Native=`NATIVE`,e}({}),vo=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),yo=function(e){return e.Pending=`pending`,e.Succeeded=`succeeded`,e.Failed=`failed`,e}({}),bo=function(e){return e.Erc721=`ERC721`,e.Erc1155=`ERC1155`,e}({}),xo=function(e){return e.Number=`number`,e.BoostPercentage=`boost_percentage`,e.BoostNumber=`boost_number`,e.Date=`date`,e}({}),So=function(e){return e.Royalty=`ROYALTY`,e}({}),Co=function(e){return e.Erc20=`ERC20`,e}({});var wo=yr({APIError400AllOfCodeEnum:()=>io,APIError401AllOfCodeEnum:()=>ao,APIError403AllOfCodeEnum:()=>oo,APIError404AllOfCodeEnum:()=>so,APIError409AllOfCodeEnum:()=>co,APIError429AllOfCodeEnum:()=>lo,APIError500AllOfCodeEnum:()=>uo,ActivityType:()=>fo,AssetVerificationStatus:()=>po,CollectionContractType:()=>mo,MarketPriceERC20TokenTypeEnum:()=>ho,MarketPriceFeesTypeEnum:()=>go,MarketPriceNativeTokenTypeEnum:()=>_o,MarketplaceContractType:()=>vo,MintRequestStatus:()=>yo,NFTContractType:()=>bo,NFTMetadataAttributeDisplayTypeEnum:()=>xo,SaleFeeTypeEnum:()=>So,SearchStacksSortByEnum:()=>ro,TokenContractType:()=>Co}),To=class{config;activitiesApi;chainsApi;collectionApi;nftOwnersApi;nftsApi;ordersApi;passportApi;passportProfileApi;guardianApi;constructor(e){this.config=e,this.activitiesApi=new Mr(e.indexer),this.chainsApi=new Ir(e.indexer),this.collectionApi=new Br(e.indexer),this.nftOwnersApi=new ci(e.indexer),this.nftsApi=new fi(e.indexer),this.ordersApi=new gi(e.orderBook),this.passportApi=new ki(e.passport),this.passportProfileApi=new Ni(e.passport),this.guardianApi=new Jr(e.passport)}};let Eo=`http://localhost`.replace(/\/+$/,``);var Do=class{basePath;axios;configuration;constructor(e,t=Eo,n=z){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}},Oo=class extends Error{field;constructor(e,t){super(t),this.field=e,this.name=`RequiredError`}};let ko=`https://example.com`,Ao=function(e,t,n){if(n==null)throw new Oo(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},jo=async function(e,t){t&&t.accessToken&&(e.Authorization=`Bearer `+(typeof t.accessToken==`function`?await t.accessToken():await t.accessToken))};function Mo(e,t,n=``){t!=null&&(typeof t==`object`?Array.isArray(t)?t.forEach(t=>Mo(e,t,n)):Object.keys(t).forEach(r=>Mo(e,t[r],`${n}${n===``?``:`.`}${r}`)):e.has(n)?e.append(n,t):e.set(n,t))}let No=function(e,...t){let n=new URLSearchParams(e.search);Mo(n,t),e.search=n.toString()},Po=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||``},Fo=function(e){return e.pathname+e.search+e.hash},Io=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)}},Lo=function(e){return{signDataV1WalletSignDataPost:async(t,n,r,i,a,o={})=>{Ao(`signDataV1WalletSignDataPost`,`xMagicChain`,t),Ao(`signDataV1WalletSignDataPost`,`signDataRequest`,n);let s=new URL(`/v1/wallet/sign/data`,ko),c;e&&(c=e.baseOptions);let l={method:`POST`,...c,...o},u={};await jo(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`,No(s,{});let d=c&&c.headers?c.headers:{};return l.headers={...u,...d,...o.headers},l.data=Po(n,l,e),{url:Fo(s),options:l}},signMessageV1WalletSignMessagePost:async(t,n,r,i,a,o={})=>{Ao(`signMessageV1WalletSignMessagePost`,`xMagicChain`,t),Ao(`signMessageV1WalletSignMessagePost`,`signMessageRequest`,n);let s=new URL(`/v1/wallet/sign/message`,ko),c;e&&(c=e.baseOptions);let l={method:`POST`,...c,...o},u={};await jo(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`,No(s,{});let d=c&&c.headers?c.headers:{};return l.headers={...u,...d,...o.headers},l.data=Po(n,l,e),{url:Fo(s),options:l}}}},Ro=function(e){let t=Lo(e);return{async signDataV1WalletSignDataPost(n,r,i,a,o,s){return Io(await t.signDataV1WalletSignDataPost(n,r,i,a,o,s),z,Eo,e)},async signMessageV1WalletSignMessagePost(n,r,i,a,o,s){return Io(await t.signMessageV1WalletSignMessagePost(n,r,i,a,o,s),z,Eo,e)}}};var zo=class extends Do{signDataV1WalletSignDataPost(e,t){return Ro(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 Ro(this.configuration).signMessageV1WalletSignMessagePost(e.xMagicChain,e.signMessageRequest,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}};let Bo=function(e){return{createWalletV1WalletPost:async(t,n,r,i,a={})=>{Ao(`createWalletV1WalletPost`,`xMagicChain`,t);let o=new URL(`/v1/wallet`,ko),s;e&&(s=e.baseOptions);let c={method:`POST`,...s,...a},l={};await jo(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)),No(o,{});let u=s&&s.headers?s.headers:{};return c.headers={...l,...u,...a.headers},{url:Fo(o),options:c}}}},Vo=function(e){let t=Bo(e);return{async createWalletV1WalletPost(n,r,i,a,o){return Io(await t.createWalletV1WalletPost(n,r,i,a,o),z,Eo,e)}}};var Ho=class extends Do{createWalletV1WalletPost(e,t){return Vo(this.configuration).createWalletV1WalletPost(e.xMagicChain,e.xMagicAPIKey,e.xMagicSecretKey,e.xOIDCProviderID,t).then(e=>e(this.axios,this.basePath))}},Uo=class{signOperationsApi;walletApi;constructor(e){let t=z.create({timeout:e.timeout,headers:{"Content-Type":`application/json`,"X-Magic-API-Key":e.magicPublishableApiKey,"X-OIDC-Provider-ID":e.magicProviderId}});this.signOperationsApi=new zo(void 0,e.basePath,t),this.walletApi=new Ho(void 0,e.basePath,t)}};let Wo={"x-sdk-version":`ts-immutable-sdk-2.24.10-1`},Go=({basePath:e,headers:t})=>{if(!e.trim())throw Error(`basePath can not be empty`);return new Hi({basePath:e,baseOptions:{headers:{...Wo,...t||{}}}})},Ko={getProduction:()=>({indexer:Go({basePath:`https://api.immutable.com`}),orderBook:Go({basePath:`https://api.immutable.com`}),passport:Go({basePath:`https://api.immutable.com`})}),getSandbox:()=>({indexer:Go({basePath:`https://api.sandbox.immutable.com`}),orderBook:Go({basePath:`https://api.sandbox.immutable.com`}),passport:Go({basePath:`https://api.sandbox.immutable.com`})})};var qo=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 Jo={sdkVersion:`ts-immutable-sdk-multi-rollup-api-client-2.24.10-1`},Yo=e=>{let{baseConfig:t,basePath:n,headers:r}=e;if(!n.trim())throw Error(`basePath can not be empty`);let i={...r||{},...g(t,e)||{},...Jo},a={...t,basePath:n,baseOptions:{headers:i}};return new no.Configuration(a)};var Xo=class{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=Yo(t);else switch(e.environment){case p.SANDBOX:this.apiConfig=Yo({basePath:`https://api.sandbox.immutable.com`,baseConfig:e});break;case p.PRODUCTION:this.apiConfig=Yo({basePath:`https://api.immutable.com`,baseConfig:e});break;default:this.apiConfig=Yo({basePath:`https://api.sandbox.immutable.com`,baseConfig:e})}}};function Zo(e){if(z.isAxiosError(e)&&e.response){let t=e.response.data;return t.code&&t.message?new qo({code:t.code,message:t.message,details:t.details||null,link:t.link||``,trace_id:t.trace_id||``}):new qo({code:e.code??e.response?.status.toString()??`unknown_error_code`,message:String(e),details:null,link:``,trace_id:``})}return new qo({code:`unknown_error_code`,message:String(e),details:null,link:``,trace_id:``})}var Qo=class{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;crafting;pricing;metadataSearch;constructor(e){this.config=new Xo(e),this.activities=new no.ActivitiesApi(this.config.apiConfig),this.chains=new no.ChainsApi(this.config.apiConfig),this.collections=new no.CollectionsApi(this.config.apiConfig),this.nfts=new no.NftsApi(this.config.apiConfig),this.nftOwners=new no.NftOwnersApi(this.config.apiConfig),this.tokens=new no.TokensApi(this.config.apiConfig),this.metadata=new no.MetadataApi(this.config.apiConfig),this.crafting=new no.CraftingApi(this.config.apiConfig),this.pricing=new no.PricingApi(this.config.apiConfig),this.metadataSearch=new no.MetadataSearchApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getActivity(e){return await this.activities.getActivity(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listChains(e){return await this.chains.listChains(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listCollections(e){return await this.collections.listCollections(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getCollection(e){return await this.collections.getCollection(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getNFT(e){return await this.nfts.getNFT(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTs(e){return await this.nfts.listNFTs(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async createMintRequest(e){return await this.nfts.createMintRequest(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listMintRequests(e){return await this.nfts.listMintRequests(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getMintRequest(e){return await this.nfts.getMintRequest(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listTokens(e){return await this.tokens.listERC20Tokens(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getToken(e){return await this.tokens.getERC20Token(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async getMetadata(e){return await this.metadata.getMetadata(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async signCraftingPayload(e){return await this.crafting.signCraftingPayload(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listFilters(e){return await this.metadataSearch.listFilters(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async searchNFTs(e){return await this.metadataSearch.searchNFTs(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async searchStacks(e){return await this.metadataSearch.searchStacks(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async quotesForNFTs(e){return await this.pricing.quotesForNFTs(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async quotesForStacks(e){return await this.pricing.quotesForStacks(e).then(e=>e.data).catch(e=>{throw Zo(e)})}async listStacks(e){return await this.metadata.listStacks(e).then(e=>e.data).catch(e=>{throw Zo(e)})}},$o=l({APIError:()=>qo,BlockchainData:()=>Qo,Types:()=>wo}),es=class extends Error{};es.prototype.name=`InvalidTokenError`;function ts(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 ns(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 ts(t)}catch{return atob(t)}}function rs(e,t){if(typeof e!=`string`)throw new es(`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 es(`Invalid token specified: missing part #${n+1}`);let i;try{i=ns(r)}catch(e){throw new es(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new es(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}var is={debug:()=>void 0,info:()=>void 0,warn:()=>void 0,error:()=>void 0},as,os,ss=(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))(ss||{});(e=>{function t(){as=3,os=is}e.reset=t;function n(e){if(!(0<=e&&e<=4))throw Error(`Invalid log level`);as=e}e.setLevel=n;function r(e){os=e}e.setLogger=r})(ss||={});var cs=class e{constructor(e){this._name=e}debug(...t){as>=4&&os.debug(e._format(this._name,this._method),...t)}info(...t){as>=3&&os.info(e._format(this._name,this._method),...t)}warn(...t){as>=2&&os.warn(e._format(this._name,this._method),...t)}error(...t){as>=1&&os.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){as>=4&&os.debug(e._format(t),...n)}static info(t,...n){as>=3&&os.info(e._format(t),...n)}static warn(t,...n){as>=2&&os.warn(e._format(t),...n)}static error(t,...n){as>=1&&os.error(e._format(t),...n)}};ss.reset();var ls=class{static decode(e){try{return rs(e)}catch(e){throw cs.error(`JwtUtils.decode`,e),e}}static async generateSignedJwt(e,t,n){let r=`${ps.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${ps.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}.${ps.encodeBase64Url(new Uint8Array(i))}`}static async generateSignedJwtWithHmac(e,t,n){let r=`${ps.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${ps.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign(`HMAC`,n,new TextEncoder().encode(r));return`${r}.${ps.encodeBase64Url(new Uint8Array(i))}`}},us=`10000000-1000-4000-8000-100000000000`,ds=e=>btoa([...new Uint8Array(e)].map(e=>String.fromCharCode(e)).join(``)),fs=class e{static _randomWord(){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}static generateUUIDv4(){return us.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 ds(await crypto.subtle.digest(`SHA-256`,t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}catch(e){throw cs.error(`CryptoUtils.generateCodeChallenge`,e),e}}static generateBasicAuth(e,t){return ds(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 ls.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 ls.generateSignedJwtWithHmac(o,s,u)}};fs.encodeBase64Url=e=>ds(e).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`);var ps=fs,ms=class{constructor(e){this._name=e,this._callbacks=[],this._logger=new cs(`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)}},hs=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(`,`)}},gs=class e extends ms{constructor(){super(...arguments),this._logger=new cs(`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)}},_s=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))}},vs=`;`,ys=class extends Error{constructor(e,t){if(super(e.error_description||e.error||``),this.form=t,this.name=`ErrorResponse`,!e.error)throw cs.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}},bs=class extends Error{constructor(e){super(e),this.name=`ErrorTimeout`}},xs=class{constructor(e){this._logger=new cs(`AccessTokenEvents`),this._expiringTimer=new gs(`Access token expiring`),this._expiredTimer=new gs(`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)}},Ss=class{constructor(e,t,n,r,i){this._callback=e,this._client_id=t,this._intervalInSeconds=r,this._stopOnError=i,this._logger=new cs(`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)}},Cs=class{constructor(){this._logger=new cs(`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]}},ws=class extends Error{constructor(e,t){super(t),this.name=`ErrorDPoPNonce`,this.nonce=e}},Ts=class{constructor(e=[],t=null,n={}){this._jwtHandler=t,this._extraHeaders=n,this._logger=new cs(`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 bs(`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 ys(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 ws(c.headers.get(`dpop-nonce`),`${JSON.stringify(d)}`):d.error?new ys(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)})}},Es=class{constructor(e){this._settings=e,this._logger=new cs(`MetadataService`),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new Ts([`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}},Ds=class{constructor({prefix:e=`oidc.`,store:t=localStorage}={}){this._logger=new cs(`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}},Os=`code`,ks=`openid`,As=`client_secret_post`,js=900,Ms=class{constructor({authority:e,metadataUrl:t,metadata:n,signingKeys:r,metadataSeed:i,client_id:a,client_secret:o,response_type:s=Os,scope:c=ks,redirect_uri:l,post_logout_redirect_uri:u,client_authentication:d=As,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=js,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 Cs;this.stateStore=new Ds({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`)}},Ns=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new cs(`UserInfoService`),this._getClaimsFromJwt=async e=>{let t=this._logger.create(`_getClaimsFromJwt`);try{let n=ls.decode(e);return t.debug(`JWT decoding successful`),n}catch(e){throw t.error(`Error parsing JWT response`),e}},this._jsonService=new Ts(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}},Ps=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new cs(`TokenClient`),this._jsonService=new Ts(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=ps.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 ps.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=ps.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 ps.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=ps.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 ps.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`)}},Fs=class{constructor(e,t,n){this._settings=e,this._metadataService=t,this._claimsService=n,this._logger=new cs(`ResponseValidator`),this._userInfoService=new Ns(this._settings,this._metadataService),this._tokenClient=new Ps(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 ys(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 ys(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=ls.decode(e.id_token??``);if(r.sub||n.throw(Error(`ID Token is missing a subject claim`)),t){let e=ls.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}},Is=class e{constructor(e){this.id=e.id||ps.generateUUIDv4(),this.data=e.data,e.created&&e.created>0?this.created=e.created:this.created=gs.getEpochTime(),this.request_type=e.request_type,this.url_state=e.url_state}toStorageString(){return new cs(`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 cs.createStatic(`State`,`fromStorageString`),Promise.resolve(new e(JSON.parse(t)))}static async clearStaleState(t,n){let r=cs.createStatic(`State`,`clearStaleState`),i=gs.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))}}},Ls=class e extends Is{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?ps.generateCodeVerifier():t.code_verifier||void 0,r=n?await ps.generateCodeChallenge(n):void 0;return new e({...t,code_verifier:n,code_challenge:r})}toStorageString(){return new cs(`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){cs.createStatic(`SigninState`,`fromStorageString`);let n=JSON.parse(t);return e.create(n)}},Rs=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 Ls.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}${vs}${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})}};Rs._logger=new cs(`SigninRequest`);var zs=Rs,Bs=`openid`,Vs=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(vs);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(vs))}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-gs.getEpochTime()}set expires_in(e){typeof e==`string`&&(e=Number(e)),e!==void 0&&e>=0&&(this.expires_at=Math.floor(e)+gs.getEpochTime())}get isOpenId(){return this.scope?.split(` `).includes(Bs)||!!this.id_token}},Hs=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 cs(`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 Is({data:t,request_type:a,url_state:s});let e=this.state.id;s&&(e=`${e}${vs}${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}},Us=class{constructor(e){if(this.state=e.get(`state`),this.state){let e=decodeURIComponent(this.state).split(vs);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(vs))}this.error=e.get(`error`),this.error_description=e.get(`error_description`),this.error_uri=e.get(`error_uri`)}},Ws=[`nbf`,`jti`,`auth_time`,`nonce`,`acr`,`amr`,`azp`,`at_hash`],Gs=[`sub`,`iss`,`aud`,`exp`,`iat`],Ks=class{constructor(e){this._settings=e,this._logger=new cs(`ClaimsService`)}filterProtocolClaims(e){let t={...e};if(this._settings.filterProtocolClaims){let e;e=Array.isArray(this._settings.filterProtocolClaims)?this._settings.filterProtocolClaims:Ws;for(let n of e)Gs.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}},qs=class{constructor(e,t){this.keys=e,this.nonce=t}},Js=class{constructor(e,t){this._logger=new cs(`OidcClient`),this.settings=e instanceof Ms?e:new Ms(e),this.metadataService=t??new Es(this.settings),this._claimsService=new Ks(this.settings),this._validator=new Fs(this.settings,this.metadataService,this._claimsService),this._tokenClient=new Ps(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 zs.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 Vs(_s.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 Ls.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 ws&&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 ps.generateDPoPKeys(),r=new qs(n,t),await e.set(this.settings.client_id,r)),await ps.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 Vs(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 ws&&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 Vs(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 Hs({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 Us(_s.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 ys(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 Is.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`),Is.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})}},Ys=class{constructor(e){this._userManager=e,this._logger=new cs(`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 Ss(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)}}}},Xs=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-gs.getEpochTime()}set expires_in(e){e!==void 0&&(this.expires_at=Math.floor(e)+gs.getEpochTime())}get expired(){let e=this.expires_in;if(e!==void 0)return e<=0}get scopes(){return this.scope?.split(` `)??[]}toStorageString(){return new cs(`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 cs.createStatic(`User`,`fromStorageString`),new e(JSON.parse(t))}},Zs=`oidc-client`,Qs=class{constructor(){this._abort=new ms(`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===Zs){try{let n=_s.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:Zs,url:t,keepOpen:n},a=new cs(`_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()}}},$s={location:!1,toolbar:!1,height:640,closePopupWindowAfterInSeconds:-1},ec=`_blank`,tc=60,nc=2,rc=10,ic=class extends Ms{constructor(e){let{popup_redirect_uri:t=e.redirect_uri,popup_post_logout_redirect_uri:n=e.post_logout_redirect_uri,popupWindowFeatures:r=$s,popupWindowTarget:i=ec,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:_=nc,query_status_response_type:v=`code`,stopCheckSessionOnError:y=!0,revokeTokenTypes:b=[`access_token`,`refresh_token`],revokeTokensOnSignout:x=!1,includeIdTokenInSilentSignout:S=!1,accessTokenExpiringNotificationTimeInSeconds:C=tc,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||rc,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 Cs;this.userStore=new Ds({store:e})}}},ac=class e extends Qs{constructor({silentRequestTimeoutInSeconds:t=rc}){super(),this._logger=new cs(`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 bs(`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)}},oc=class{constructor(e){this._settings=e,this._logger=new cs(`IFrameNavigator`)}async prepare({silentRequestTimeoutInSeconds:e=this._settings.silentRequestTimeoutInSeconds}){return new ac({silentRequestTimeoutInSeconds:e})}async callback(e){this._logger.create(`callback`),ac.notifyParent(e,this._settings.iframeNotifyParentOrigin)}},sc=500,cc=1e3,lc=class extends Qs{constructor({popupWindowTarget:e=ec,popupWindowFeatures:t={},popupSignal:n,popupAbortOnClose:r}){super(),this._logger=new cs(`PopupWindow`);let i=hs.center({...$s,...t});this._window=window.open(void 0,e,hs.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*cc)}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`)))},sc),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()}},uc=class{constructor(e){this._settings=e,this._logger=new cs(`PopupNavigator`)}async prepare({popupWindowFeatures:e=this._settings.popupWindowFeatures,popupWindowTarget:t=this._settings.popupWindowTarget,popupSignal:n,popupAbortOnClose:r}){return new lc({popupWindowFeatures:e,popupWindowTarget:t,popupSignal:n,popupAbortOnClose:r})}async callback(e,{keepOpen:t=!1}){this._logger.create(`callback`),lc.notifyOpener(e,t)}},dc=class{constructor(e){this._settings=e,this._logger=new cs(`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(){}},fc=class extends xs{constructor(e){super({expiringNotificationTimeInSeconds:e.accessTokenExpiringNotificationTimeInSeconds}),this._logger=new cs(`UserManagerEvents`),this._userLoaded=new ms(`User loaded`),this._userUnloaded=new ms(`User unloaded`),this._silentRenewError=new ms(`Silent renew error`),this._userSignedIn=new ms(`User signed in`),this._userSignedOut=new ms(`User signed out`),this._userSessionChanged=new ms(`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()}},pc=class{constructor(e){this._userManager=e,this._logger=new cs(`SilentRenewService`),this._isStarted=!1,this._retryTimer=new gs(`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 bs){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)}},mc=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}},hc=class{constructor(e,t,n,r){this._logger=new cs(`UserManager`),this.settings=new ic(e),this._client=new Js(e),this._redirectNavigator=t??new dc(this.settings),this._popupNavigator=n??new uc(this.settings),this._iframeNavigator=r??new oc(this.settings),this._events=new fc(this.settings),this._silentRenewService=new pc(this),this.settings.automaticSilentRenew&&this.startSilentRenew(),this._sessionMonitor=null,this.settings.monitorSession&&(this._sessionMonitor=new Ys(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 mc(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 Xs({...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 ys)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 Xs(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 ys({...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`),Xs.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 ps.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 qs(await ps.generateDPoPKeys()),await e.store.set(this.settings.client_id,t)),await ps.generateDPoPJkt(t.keys)}},gc=d(c(((e,t)=>{
|
|
10
10
|
/*!
|
|
11
11
|
localForage -- Offline Storage, Improved
|
|
12
12
|
Version 1.10.0
|
|
13
13
|
https://localforage.github.io/localForage
|
|
14
14
|
(c) 2013-2017 Mozilla, Apache License 2.0
|
|
15
15
|
*/
|
|
16
|
-
(function(n){if(typeof e==`object`&&t!==void 0)t.exports=n();else if(typeof define==`function`&&define.amd)define([],n);else{var r=typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:this;r.localforage=n()}})(function(){return(function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var c=typeof require==`function`&&require;if(!s&&c)return c(o,!0);if(a)return a(o,!0);var l=Error(`Cannot find module '`+o+`'`);throw l.code=`MODULE_NOT_FOUND`,l}var u=n[o]={exports:{}};t[o][0].call(u.exports,function(e){var n=t[o][1][e];return i(n||e)},u,u.exports,e,t,n,r)}return n[o].exports}for(var a=typeof require==`function`&&require,o=0;o<r.length;o++)i(r[o]);return i})({1:[function(e,t,n){(function(e){"use strict";var n=e.MutationObserver||e.WebKitMutationObserver,r;if(n){var i=0,a=new n(u),o=e.document.createTextNode(``);a.observe(o,{characterData:!0}),r=function(){o.data=i=++i%2}}else if(!e.setImmediate&&e.MessageChannel!==void 0){var s=new e.MessageChannel;s.port1.onmessage=u,r=function(){s.port2.postMessage(0)}}else r=`document`in e&&`onreadystatechange`in e.document.createElement(`script`)?function(){var t=e.document.createElement(`script`);t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};var c,l=[];function u(){c=!0;for(var e,t,n=l.length;n;){for(t=l,l=[],e=-1;++e<n;)t[e]();n=l.length}c=!1}t.exports=d;function d(e){l.push(e)===1&&!c&&r()}}).call(this,typeof global<`u`?global:typeof self<`u`?self:typeof window<`u`?window:{})},{}],2:[function(e,t,n){"use strict";var r=e(1);function i(){}var a={},o=[`REJECTED`],s=[`FULFILLED`],c=[`PENDING`];t.exports=l;function l(e){if(typeof e!=`function`)throw TypeError(`resolver must be a function`);this.state=c,this.queue=[],this.outcome=void 0,e!==i&&p(this,e)}l.prototype.catch=function(e){return this.then(null,e)},l.prototype.then=function(e,t){if(typeof e!=`function`&&this.state===s||typeof t!=`function`&&this.state===o)return this;var n=new this.constructor(i);return this.state===c?this.queue.push(new u(n,e,t)):d(n,this.state===s?e:t,this.outcome),n};function u(e,t,n){this.promise=e,typeof t==`function`&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),typeof n==`function`&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}u.prototype.callFulfilled=function(e){a.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){d(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){a.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){d(this.promise,this.onRejected,e)};function d(e,t,n){r(function(){var r;try{r=t(n)}catch(t){return a.reject(e,t)}r===e?a.reject(e,TypeError(`Cannot resolve promise with itself`)):a.resolve(e,r)})}a.resolve=function(e,t){var n=m(f,t);if(n.status===`error`)return a.reject(e,n.value);var r=n.value;if(r)p(e,r);else{e.state=s,e.outcome=t;for(var i=-1,o=e.queue.length;++i<o;)e.queue[i].callFulfilled(t)}return e},a.reject=function(e,t){e.state=o,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e};function f(e){var t=e&&e.then;if(e&&(typeof e==`object`||typeof e==`function`)&&typeof t==`function`)return function(){t.apply(e,arguments)}}function p(e,t){var n=!1;function r(t){n||(n=!0,a.reject(e,t))}function i(t){n||(n=!0,a.resolve(e,t))}function o(){t(i,r)}var s=m(o);s.status===`error`&&r(s.value)}function m(e,t){var n={};try{n.value=e(t),n.status=`success`}catch(e){n.status=`error`,n.value=e}return n}l.resolve=h;function h(e){return e instanceof this?e:a.resolve(new this(i),e)}l.reject=g;function g(e){var t=new this(i);return a.reject(t,e)}l.all=_;function _(e){var t=this;if(Object.prototype.toString.call(e)!==`[object Array]`)return this.reject(TypeError(`must be an array`));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var o=Array(n),s=0,c=-1,l=new this(i);++c<n;)u(e[c],c);return l;function u(e,i){t.resolve(e).then(c,function(e){r||(r=!0,a.reject(l,e))});function c(e){o[i]=e,++s===n&&!r&&(r=!0,a.resolve(l,o))}}}l.race=v;function v(e){var t=this;if(Object.prototype.toString.call(e)!==`[object Array]`)return this.reject(TypeError(`must be an array`));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var o=-1,s=new this(i);++o<n;)c(e[o]);return s;function c(e){t.resolve(e).then(function(e){r||(r=!0,a.resolve(s,e))},function(e){r||(r=!0,a.reject(s,e))})}}},{1:1}],3:[function(e,t,n){(function(t){"use strict";typeof t.Promise!=`function`&&(t.Promise=e(2))}).call(this,typeof global<`u`?global:typeof self<`u`?self:typeof window<`u`?window:{})},{2:2}],4:[function(e,t,n){"use strict";var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e};function i(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function a(){try{if(typeof indexedDB<`u`)return indexedDB;if(typeof webkitIndexedDB<`u`)return webkitIndexedDB;if(typeof mozIndexedDB<`u`)return mozIndexedDB;if(typeof OIndexedDB<`u`)return OIndexedDB;if(typeof msIndexedDB<`u`)return msIndexedDB}catch{return}}var o=a();function s(){try{if(!o||!o.open)return!1;var e=typeof openDatabase<`u`&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t=typeof fetch==`function`&&fetch.toString().indexOf(`[native code`)!==-1;return(!e||t)&&typeof indexedDB<`u`&&typeof IDBKeyRange<`u`}catch{return!1}}function c(e,t){e||=[],t||={};try{return new Blob(e,t)}catch(i){if(i.name!==`TypeError`)throw i;for(var n=new(typeof BlobBuilder<`u`?BlobBuilder:typeof MSBlobBuilder<`u`?MSBlobBuilder:typeof MozBlobBuilder<`u`?MozBlobBuilder:WebKitBlobBuilder),r=0;r<e.length;r+=1)n.append(e[r]);return n.getBlob(t.type)}}typeof Promise>`u`&&e(3);var l=Promise;function u(e,t){t&&e.then(function(e){t(null,e)},function(e){t(e)})}function d(e,t,n){typeof t==`function`&&e.then(t),typeof n==`function`&&e.catch(n)}function f(e){return typeof e!=`string`&&(console.warn(e+` used as a key, but it is not a string.`),e=String(e)),e}function p(){if(arguments.length&&typeof arguments[arguments.length-1]==`function`)return arguments[arguments.length-1]}var m=`local-forage-detect-blob-support`,h=void 0,g={},_=Object.prototype.toString,v=`readonly`,y=`readwrite`;function b(e){for(var t=e.length,n=new ArrayBuffer(t),r=new Uint8Array(n),i=0;i<t;i++)r[i]=e.charCodeAt(i);return n}function x(e){return new l(function(t){var n=e.transaction(m,y),r=c([``]);n.objectStore(m).put(r,`key`),n.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},n.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/);t(navigator.userAgent.match(/Edge\//)||!e||parseInt(e[1],10)>=43)}}).catch(function(){return!1})}function S(e){return typeof h==`boolean`?l.resolve(h):x(e).then(function(e){return h=e,h})}function C(e){var t=g[e.name],n={};n.promise=new l(function(e,t){n.resolve=e,n.reject=t}),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then(function(){return n.promise}):t.dbReady=n.promise}function w(e){var t=g[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function T(e,t){var n=g[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function E(e,t){return new l(function(n,r){if(g[e.name]=g[e.name]||ee(),e.db)if(t)C(e),e.db.close();else return n(e.db);var i=[e.name];t&&i.push(e.version);var a=o.open.apply(o,i);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(m)}catch(n){if(n.name===`ConstraintError`)console.warn(`The database "`+e.name+`" has been upgraded from version `+t.oldVersion+` to version `+t.newVersion+`, but the storage "`+e.storeName+`" already exists.`);else throw n}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var t=a.result;t.onversionchange=function(e){e.target.close()},n(t),w(e)}})}function D(e){return E(e,!1)}function O(e){return E(e,!0)}function k(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,i=e.version>e.db.version;if(r&&(e.version!==t&&console.warn(`The database "`+e.name+`" can't be downgraded from version `+e.db.version+` to version `+e.version+`.`),e.version=e.db.version),i||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function A(e){return new l(function(t,n){var r=new FileReader;r.onerror=n,r.onloadend=function(n){t({__local_forage_encoded_blob:!0,data:btoa(n.target.result||``),type:e.type})},r.readAsBinaryString(e)})}function j(e){return c([b(atob(e.data))],{type:e.type})}function M(e){return e&&e.__local_forage_encoded_blob}function N(e){var t=this,n=t._initReady().then(function(){var e=g[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady});return d(n,e,e),n}function P(e){C(e);for(var t=g[e.name],n=t.forages,r=0;r<n.length;r++){var i=n[r];i._dbInfo.db&&(i._dbInfo.db.close(),i._dbInfo.db=null)}return e.db=null,D(e).then(function(t){return e.db=t,k(e)?O(e):t}).then(function(r){e.db=t.db=r;for(var i=0;i<n.length;i++)n[i]._dbInfo.db=r}).catch(function(t){throw T(e,t),t})}function F(e,t,n,r){r===void 0&&(r=1);try{n(null,e.db.transaction(e.storeName,t))}catch(i){if(r>0&&(!e.db||i.name===`InvalidStateError`||i.name===`NotFoundError`))return l.resolve().then(function(){if(!e.db||i.name===`NotFoundError`&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),O(e)}).then(function(){return P(e).then(function(){F(e,t,n,r-1)})}).catch(n);n(i)}}function ee(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function te(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var i=g[n.name];i||(i=ee(),g[n.name]=i),i.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=N);var a=[];function o(){return l.resolve()}for(var s=0;s<i.forages.length;s++){var c=i.forages[s];c!==t&&a.push(c._initReady().catch(o))}var u=i.forages.slice(0);return l.all(a).then(function(){return n.db=i.db,D(n)}).then(function(e){return n.db=e,k(n,t._defaultConfig.version)?O(n):e}).then(function(e){n.db=i.db=e,t._dbInfo=n;for(var r=0;r<u.length;r++){var a=u[r];a!==t&&(a._dbInfo.db=n.db,a._dbInfo.version=n.version)}})}function I(e,t){var n=this;e=f(e);var r=new l(function(t,r){n.ready().then(function(){F(n._dbInfo,v,function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).get(e);o.onsuccess=function(){var e=o.result;e===void 0&&(e=null),M(e)&&(e=j(e)),t(e)},o.onerror=function(){r(o.error)}}catch(e){r(e)}})}).catch(r)});return u(r,t),r}function ne(e,t){var n=this,r=new l(function(t,r){n.ready().then(function(){F(n._dbInfo,v,function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).openCursor(),s=1;o.onsuccess=function(){var n=o.result;if(n){var r=n.value;M(r)&&(r=j(r));var i=e(r,n.key,s++);i===void 0?n.continue():t(i)}else t()},o.onerror=function(){r(o.error)}}catch(e){r(e)}})}).catch(r)});return u(r,t),r}function re(e,t,n){var r=this;e=f(e);var i=new l(function(n,i){var a;r.ready().then(function(){return a=r._dbInfo,_.call(t)===`[object Blob]`?S(a.db).then(function(e){return e?t:A(t)}):t}).then(function(t){F(r._dbInfo,y,function(a,o){if(a)return i(a);try{var s=o.objectStore(r._dbInfo.storeName);t===null&&(t=void 0);var c=s.put(t,e);o.oncomplete=function(){t===void 0&&(t=null),n(t)},o.onabort=o.onerror=function(){i(c.error?c.error:c.transaction.error)}}catch(e){i(e)}})}).catch(i)});return u(i,n),i}function ie(e,t){var n=this;e=f(e);var r=new l(function(t,r){n.ready().then(function(){F(n._dbInfo,y,function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){r(o.error)},a.onabort=function(){r(o.error?o.error:o.transaction.error)}}catch(e){r(e)}})}).catch(r)});return u(r,t),r}function ae(e){var t=this,n=new l(function(e,n){t.ready().then(function(){F(t._dbInfo,y,function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).clear();i.oncomplete=function(){e()},i.onabort=i.onerror=function(){n(a.error?a.error:a.transaction.error)}}catch(e){n(e)}})}).catch(n)});return u(n,e),n}function oe(e){var t=this,n=new l(function(e,n){t.ready().then(function(){F(t._dbInfo,v,function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){n(a.error)}}catch(e){n(e)}})}).catch(n)});return u(n,e),n}function se(e,t){var n=this,r=new l(function(t,r){if(e<0){t(null);return}n.ready().then(function(){F(n._dbInfo,v,function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName),s=!1,c=o.openKeyCursor();c.onsuccess=function(){var n=c.result;if(!n){t(null);return}e===0||s?t(n.key):(s=!0,n.advance(e))},c.onerror=function(){r(c.error)}}catch(e){r(e)}})}).catch(r)});return u(r,t),r}function ce(e){var t=this,n=new l(function(e,n){t.ready().then(function(){F(t._dbInfo,v,function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).openKeyCursor(),o=[];a.onsuccess=function(){var t=a.result;if(!t){e(o);return}o.push(t.key),t.continue()},a.onerror=function(){n(a.error)}}catch(e){n(e)}})}).catch(n)});return u(n,e),n}function le(e,t){t=p.apply(this,arguments);var n=this.config();e=typeof e!=`function`&&e||{},e.name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r=this,i;if(!e.name)i=l.reject(`Invalid arguments`);else{var a=e.name===n.name&&r._dbInfo.db?l.resolve(r._dbInfo.db):D(e).then(function(t){var n=g[e.name],r=n.forages;n.db=t;for(var i=0;i<r.length;i++)r[i]._dbInfo.db=t;return t});i=e.storeName?a.then(function(t){if(t.objectStoreNames.contains(e.storeName)){var n=t.version+1;C(e);var r=g[e.name],i=r.forages;t.close();for(var a=0;a<i.length;a++){var s=i[a];s._dbInfo.db=null,s._dbInfo.version=n}return new l(function(t,r){var i=o.open(e.name,n);i.onerror=function(e){i.result.close(),r(e)},i.onupgradeneeded=function(){i.result.deleteObjectStore(e.storeName)},i.onsuccess=function(){var e=i.result;e.close(),t(e)}}).then(function(e){r.db=e;for(var t=0;t<i.length;t++){var n=i[t];n._dbInfo.db=e,w(n._dbInfo)}}).catch(function(t){throw(T(e,t)||l.resolve()).catch(function(){}),t})}}):a.then(function(t){C(e);var n=g[e.name],r=n.forages;t.close();for(var i=0;i<r.length;i++){var a=r[i];a._dbInfo.db=null}return new l(function(t,n){var r=o.deleteDatabase(e.name);r.onerror=function(){var e=r.result;e&&e.close(),n(r.error)},r.onblocked=function(){console.warn(`dropInstance blocked for database "`+e.name+`" until all open connections are closed`)},r.onsuccess=function(){var e=r.result;e&&e.close(),t(e)}}).then(function(e){n.db=e;for(var t=0;t<r.length;t++){var i=r[t];w(i._dbInfo)}}).catch(function(t){throw(T(e,t)||l.resolve()).catch(function(){}),t})})}return u(i,t),i}var ue={_driver:`asyncStorage`,_initStorage:te,_support:s(),iterate:ne,getItem:I,setItem:re,removeItem:ie,clear:ae,length:oe,key:se,keys:ce,dropInstance:le};function de(){return typeof openDatabase==`function`}var fe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,pe=`~~local_forage_type~`,me=/^~~local_forage_type~([^~]+)~/,he=`__lfsc__:`,ge=he.length,_e=`arbf`,ve=`blob`,ye=`si08`,be=`ui08`,xe=`uic8`,Se=`si16`,Ce=`si32`,we=`ur16`,Te=`ui32`,Ee=`fl32`,De=`fl64`,Oe=ge+_e.length,ke=Object.prototype.toString;function Ae(e){var t=e.length*.75,n=e.length,r,i=0,a,o,s,c;e[e.length-1]===`=`&&(t--,e[e.length-2]===`=`&&t--);var l=new ArrayBuffer(t),u=new Uint8Array(l);for(r=0;r<n;r+=4)a=fe.indexOf(e[r]),o=fe.indexOf(e[r+1]),s=fe.indexOf(e[r+2]),c=fe.indexOf(e[r+3]),u[i++]=a<<2|o>>4,u[i++]=(o&15)<<4|s>>2,u[i++]=(s&3)<<6|c&63;return l}function je(e){var t=new Uint8Array(e),n=``,r;for(r=0;r<t.length;r+=3)n+=fe[t[r]>>2],n+=fe[(t[r]&3)<<4|t[r+1]>>4],n+=fe[(t[r+1]&15)<<2|t[r+2]>>6],n+=fe[t[r+2]&63];return t.length%3==2?n=n.substring(0,n.length-1)+`=`:t.length%3==1&&(n=n.substring(0,n.length-2)+`==`),n}function Me(e,t){var n=``;if(e&&(n=ke.call(e)),e&&(n===`[object ArrayBuffer]`||e.buffer&&ke.call(e.buffer)===`[object ArrayBuffer]`)){var r,i=he;e instanceof ArrayBuffer?(r=e,i+=_e):(r=e.buffer,n===`[object Int8Array]`?i+=ye:n===`[object Uint8Array]`?i+=be:n===`[object Uint8ClampedArray]`?i+=xe:n===`[object Int16Array]`?i+=Se:n===`[object Uint16Array]`?i+=we:n===`[object Int32Array]`?i+=Ce:n===`[object Uint32Array]`?i+=Te:n===`[object Float32Array]`?i+=Ee:n===`[object Float64Array]`?i+=De:t(Error(`Failed to get type for BinaryArray`))),t(i+je(r))}else if(n===`[object Blob]`){var a=new FileReader;a.onload=function(){var n=pe+e.type+`~`+je(this.result);t(he+ve+n)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error(`Couldn't convert value into a JSON string: `,e),t(null,n)}}function Ne(e){if(e.substring(0,ge)!==he)return JSON.parse(e);var t=e.substring(Oe),n=e.substring(ge,Oe),r;if(n===ve&&me.test(t)){var i=t.match(me);r=i[1],t=t.substring(i[0].length)}var a=Ae(t);switch(n){case _e:return a;case ve:return c([a],{type:r});case ye:return new Int8Array(a);case be:return new Uint8Array(a);case xe:return new Uint8ClampedArray(a);case Se:return new Int16Array(a);case we:return new Uint16Array(a);case Ce:return new Int32Array(a);case Te:return new Uint32Array(a);case Ee:return new Float32Array(a);case De:return new Float64Array(a);default:throw Error(`Unkown type: `+n)}}var Pe={serialize:Me,deserialize:Ne,stringToBuffer:Ae,bufferToString:je};function Fe(e,t,n,r){e.executeSql(`CREATE TABLE IF NOT EXISTS `+t.storeName+` (id INTEGER PRIMARY KEY, key unique, value)`,[],n,r)}function Ie(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=typeof e[r]==`string`?e[r]:e[r].toString();var i=new l(function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction(function(i){Fe(i,n,function(){t._dbInfo=n,e()},function(e,t){r(t)})},r)});return n.serializer=Pe,i}function Le(e,t,n,r,i,a){e.executeSql(n,r,i,function(e,o){o.code===o.SYNTAX_ERR?e.executeSql(`SELECT name FROM sqlite_master WHERE type='table' AND name = ?`,[t.storeName],function(e,s){s.rows.length?a(e,o):Fe(e,t,function(){e.executeSql(n,r,i,a)},a)},a):a(e,o)},a)}function Re(e,t){var n=this;e=f(e);var r=new l(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Le(n,i,`SELECT * FROM `+i.storeName+` WHERE key = ? LIMIT 1`,[e],function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&=i.serializer.deserialize(r),t(r)},function(e,t){r(t)})})}).catch(r)});return u(r,t),r}function ze(e,t){var n=this,r=new l(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Le(n,i,`SELECT * FROM `+i.storeName,[],function(n,r){for(var a=r.rows,o=a.length,s=0;s<o;s++){var c=a.item(s),l=c.value;if(l&&=i.serializer.deserialize(l),l=e(l,c.key,s+1),l!==void 0){t(l);return}}t()},function(e,t){r(t)})})}).catch(r)});return u(r,t),r}function Be(e,t,n,r){var i=this;e=f(e);var a=new l(function(a,o){i.ready().then(function(){t===void 0&&(t=null);var s=t,c=i._dbInfo;c.serializer.serialize(t,function(t,l){l?o(l):c.db.transaction(function(n){Le(n,c,`INSERT OR REPLACE INTO `+c.storeName+` (key, value) VALUES (?, ?)`,[e,t],function(){a(s)},function(e,t){o(t)})},function(t){if(t.code===t.QUOTA_ERR){if(r>0){a(Be.apply(i,[e,s,n,r-1]));return}o(t)}})})}).catch(o)});return u(a,n),a}function Ve(e,t,n){return Be.apply(this,[e,t,n,1])}function He(e,t){var n=this;e=f(e);var r=new l(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Le(n,i,`DELETE FROM `+i.storeName+` WHERE key = ?`,[e],function(){t()},function(e,t){r(t)})})}).catch(r)});return u(r,t),r}function Ue(e){var t=this,n=new l(function(e,n){t.ready().then(function(){var r=t._dbInfo;r.db.transaction(function(t){Le(t,r,`DELETE FROM `+r.storeName,[],function(){e()},function(e,t){n(t)})})}).catch(n)});return u(n,e),n}function We(e){var t=this,n=new l(function(e,n){t.ready().then(function(){var r=t._dbInfo;r.db.transaction(function(t){Le(t,r,`SELECT COUNT(key) as c FROM `+r.storeName,[],function(t,n){var r=n.rows.item(0).c;e(r)},function(e,t){n(t)})})}).catch(n)});return u(n,e),n}function Ge(e,t){var n=this,r=new l(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Le(n,i,`SELECT key FROM `+i.storeName+` WHERE id = ? LIMIT 1`,[e+1],function(e,n){t(n.rows.length?n.rows.item(0).key:null)},function(e,t){r(t)})})}).catch(r)});return u(r,t),r}function Ke(e){var t=this,n=new l(function(e,n){t.ready().then(function(){var r=t._dbInfo;r.db.transaction(function(t){Le(t,r,`SELECT key FROM `+r.storeName,[],function(t,n){for(var r=[],i=0;i<n.rows.length;i++)r.push(n.rows.item(i).key);e(r)},function(e,t){n(t)})})}).catch(n)});return u(n,e),n}function qe(e){return new l(function(t,n){e.transaction(function(r){r.executeSql(`SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'`,[],function(n,r){for(var i=[],a=0;a<r.rows.length;a++)i.push(r.rows.item(a).name);t({db:e,storeNames:i})},function(e,t){n(t)})},function(e){n(e)})})}function Je(e,t){t=p.apply(this,arguments);var n=this.config();e=typeof e!=`function`&&e||{},e.name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r=this,i=e.name?new l(function(t){var i=e.name===n.name?r._dbInfo.db:openDatabase(e.name,``,``,0);e.storeName?t({db:i,storeNames:[e.storeName]}):t(qe(i))}).then(function(e){return new l(function(t,n){e.db.transaction(function(r){function i(e){return new l(function(t,n){r.executeSql(`DROP TABLE IF EXISTS `+e,[],function(){t()},function(e,t){n(t)})})}for(var a=[],o=0,s=e.storeNames.length;o<s;o++)a.push(i(e.storeNames[o]));l.all(a).then(function(){t()}).catch(function(e){n(e)})},function(e){n(e)})})}):l.reject(`Invalid arguments`);return u(i,t),i}var Ye={_driver:`webSQLStorage`,_initStorage:Ie,_support:de(),iterate:ze,getItem:Re,setItem:Ve,removeItem:He,clear:Ue,length:We,key:Ge,keys:Ke,dropInstance:Je};function Xe(){try{return typeof localStorage<`u`&&`setItem`in localStorage&&!!localStorage.setItem}catch{return!1}}function L(e,t){var n=e.name+`/`;return e.storeName!==t.storeName&&(n+=e.storeName+`/`),n}function Ze(){var e=`_localforage_support_test`;try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch{return!0}}function Qe(){return!Ze()||localStorage.length>0}function $e(e){var t=this,n={};if(e)for(var r in e)n[r]=e[r];return n.keyPrefix=L(e,t._defaultConfig),Qe()?(t._dbInfo=n,n.serializer=Pe,l.resolve()):l.reject()}function et(e){var t=this,n=t.ready().then(function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);r.indexOf(e)===0&&localStorage.removeItem(r)}});return u(n,e),n}function tt(e,t){var n=this;e=f(e);var r=n.ready().then(function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&=t.serializer.deserialize(r),r});return u(r,t),r}function nt(e,t){var n=this,r=n.ready().then(function(){for(var t=n._dbInfo,r=t.keyPrefix,i=r.length,a=localStorage.length,o=1,s=0;s<a;s++){var c=localStorage.key(s);if(c.indexOf(r)===0){var l=localStorage.getItem(c);if(l&&=t.serializer.deserialize(l),l=e(l,c.substring(i),o++),l!==void 0)return l}}});return u(r,t),r}function rt(e,t){var n=this,r=n.ready().then(function(){var t=n._dbInfo,r;try{r=localStorage.key(e)}catch{r=null}return r&&=r.substring(t.keyPrefix.length),r});return u(r,t),r}function it(e){var t=this,n=t.ready().then(function(){for(var e=t._dbInfo,n=localStorage.length,r=[],i=0;i<n;i++){var a=localStorage.key(i);a.indexOf(e.keyPrefix)===0&&r.push(a.substring(e.keyPrefix.length))}return r});return u(n,e),n}function at(e){var t=this.keys().then(function(e){return e.length});return u(t,e),t}function ot(e,t){var n=this;e=f(e);var r=n.ready().then(function(){var t=n._dbInfo;localStorage.removeItem(t.keyPrefix+e)});return u(r,t),r}function st(e,t,n){var r=this;e=f(e);var i=r.ready().then(function(){t===void 0&&(t=null);var n=t;return new l(function(i,a){var o=r._dbInfo;o.serializer.serialize(t,function(t,r){if(r)a(r);else try{localStorage.setItem(o.keyPrefix+e,t),i(n)}catch(e){(e.name===`QuotaExceededError`||e.name===`NS_ERROR_DOM_QUOTA_REACHED`)&&a(e),a(e)}})})});return u(i,n),i}function ct(e,t){if(t=p.apply(this,arguments),e=typeof e!=`function`&&e||{},!e.name){var n=this.config();e.name=e.name||n.name,e.storeName=e.storeName||n.storeName}var r=this,i=e.name?new l(function(t){e.storeName?t(L(e,r._defaultConfig)):t(e.name+`/`)}).then(function(e){for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);n.indexOf(e)===0&&localStorage.removeItem(n)}}):l.reject(`Invalid arguments`);return u(i,t),i}var lt={_driver:`localStorageWrapper`,_initStorage:$e,_support:Xe(),iterate:nt,getItem:tt,setItem:st,removeItem:ot,clear:et,length:at,key:rt,keys:it,dropInstance:ct},ut=function(e,t){return e===t||typeof e==`number`&&typeof t==`number`&&isNaN(e)&&isNaN(t)},dt=function(e,t){for(var n=e.length,r=0;r<n;){if(ut(e[r],t))return!0;r++}return!1},ft=Array.isArray||function(e){return Object.prototype.toString.call(e)===`[object Array]`},pt={},mt={},ht={INDEXEDDB:ue,WEBSQL:Ye,LOCALSTORAGE:lt},gt=[ht.INDEXEDDB._driver,ht.WEBSQL._driver,ht.LOCALSTORAGE._driver],R=[`dropInstance`],_t=[`clear`,`getItem`,`iterate`,`key`,`keys`,`length`,`removeItem`,`setItem`].concat(R),vt={description:``,driver:gt.slice(),name:`localforage`,size:4980736,storeName:`keyvaluepairs`,version:1};function yt(e,t){e[t]=function(){var n=arguments;return e.ready().then(function(){return e[t].apply(e,n)})}}function bt(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var n in t)t.hasOwnProperty(n)&&(ft(t[n])?arguments[0][n]=t[n].slice():arguments[0][n]=t[n])}return arguments[0]}t.exports=new(function(){function e(t){for(var n in i(this,e),ht)if(ht.hasOwnProperty(n)){var r=ht[n],a=r._driver;this[n]=a,pt[a]||this.defineDriver(r)}this._defaultConfig=bt({},vt),this._config=bt({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return e.prototype.config=function(e){if((e===void 0?`undefined`:r(e))===`object`){if(this._ready)return Error(`Can't call config() after localforage has been used.`);for(var t in e){if(t===`storeName`&&(e[t]=e[t].replace(/\W/g,`_`)),t===`version`&&typeof e[t]!=`number`)return Error(`Database version must be a number.`);this._config[t]=e[t]}return`driver`in e&&e.driver?this.setDriver(this._config.driver):!0}else if(typeof e==`string`)return this._config[e];else return this._config},e.prototype.defineDriver=function(e,t,n){var r=new l(function(t,n){try{var r=e._driver,i=Error(`Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver`);if(!e._driver){n(i);return}for(var a=_t.concat(`_initStorage`),o=0,s=a.length;o<s;o++){var c=a[o];if((!dt(R,c)||e[c])&&typeof e[c]!=`function`){n(i);return}}(function(){for(var t=function(e){return function(){var t=Error(`Method `+e+` is not implemented by the current driver`),n=l.reject(t);return u(n,arguments[arguments.length-1]),n}},n=0,r=R.length;n<r;n++){var i=R[n];e[i]||(e[i]=t(i))}})();var d=function(n){pt[r]&&console.info(`Redefining LocalForage driver: `+r),pt[r]=e,mt[r]=n,t()};`_support`in e?e._support&&typeof e._support==`function`?e._support().then(d,n):d(!!e._support):d(!0)}catch(e){n(e)}});return d(r,t,n),r},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,n){var r=pt[e]?l.resolve(pt[e]):l.reject(Error(`Driver not found.`));return d(r,t,n),r},e.prototype.getSerializer=function(e){var t=l.resolve(Pe);return d(t,e),t},e.prototype.ready=function(e){var t=this,n=t._driverSet.then(function(){return t._ready===null&&(t._ready=t._initDriver()),t._ready});return d(n,e,e),n},e.prototype.setDriver=function(e,t,n){var r=this;ft(e)||(e=[e]);var i=this._getSupportedDrivers(e);function a(){r._config.driver=r.driver()}function o(e){return r._extend(e),a(),r._ready=r._initStorage(r._config),r._ready}function s(e){return function(){var t=0;function n(){for(;t<e.length;){var i=e[t];return t++,r._dbInfo=null,r._ready=null,r.getDriver(i).then(o).catch(n)}a();var s=Error(`No available storage method found.`);return r._driverSet=l.reject(s),r._driverSet}return n()}}var c=this._driverSet===null?l.resolve():this._driverSet.catch(function(){return l.resolve()});return this._driverSet=c.then(function(){var e=i[0];return r._dbInfo=null,r._ready=null,r.getDriver(e).then(function(e){r._driver=e._driver,a(),r._wrapLibraryMethodsWithReady(),r._initDriver=s(i)})}).catch(function(){a();var e=Error(`No available storage method found.`);return r._driverSet=l.reject(e),r._driverSet}),d(this._driverSet,t,n),this._driverSet},e.prototype.supports=function(e){return!!mt[e]},e.prototype._extend=function(e){bt(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var i=e[n];this.supports(i)&&t.push(i)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=_t.length;e<t;e++)yt(this,_t[e])},e.prototype.createInstance=function(t){return new e(t)},e}())},{3:3}]},{},[4])(4)})}))(),1);let _c={sdkVersion:`2.24.10-0`,runtimeId:(()=>{let e=new Uint8Array(32);if(typeof crypto<`u`&&typeof crypto.getRandomValues==`function`)crypto.getRandomValues(e);else for(let t=0;t<e.length;t+=1)e[t]=Math.floor(Math.random()*256);let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t}${t[Number.parseInt(t[1],16)]}`})(),enabled:!0},vc=e=>{e.clientId!==void 0&&(_c.clientId=e.clientId)},yc=()=>_c.sdkVersion,bc=()=>_c.clientId,xc=()=>_c.runtimeId,Sc=()=>_c.enabled,Cc=()=>{_c.enabled=!1};function wc(e,t){return(...n)=>{try{let r=e(...n);return r instanceof Promise?r.catch(()=>t):r}catch{return t}}}let Tc=e=>{let{module:t,name:n,time:r,durationMs:i,error:a}=e,o=[],s=n;return typeof i==`number`&&o.push([`durationMs`,String(i)]),a&&(s=`trackError_${n}`,o.push([`isTrackError`,`true`]),a.name&&o.push([`errorName`,a.name]),a.code&&o.push([`errorCode`,a.code])),{event:`${t}.${s}`,time:new Date(r).toISOString(),...o.length>0?{properties:o}:{}}},Ec=(e,t)=>({version:1,data:{details:{rid:t.rid,sdkVersion:t.sdkVersion,...t.clientId?{passportClientId:t.clientId}:{}},events:e.map(Tc)}}),Dc=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`)},Oc=async e=>{let t=Ec(e,{rid:xc(),sdkVersion:yc(),clientId:bc()});return(await fetch(`https://api.immutable.com/v1/sdk/metrics`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({payload:Dc(JSON.stringify(t))})})).status},kc=[],Ac=!1,jc=async e=>{if(!(!Sc()||e.length===0))try{let t=await Oc(e);(t===204||t<200||t>=300)&&Cc()}catch{Cc()}},Mc=e=>{Sc()&&(kc.push(e),!Ac&&(Ac=!0,queueMicrotask(()=>{if(Ac=!1,!Sc()){kc=[];return}let e=kc;kc=[],jc(e).catch(()=>void 0)})))},Nc=e=>{let t=e;if(typeof t.type==`string`&&t.type.length>0)return t.type;if(typeof t.code==`string`&&t.code.length>0)return t.code;if(typeof t.code==`number`&&Number.isFinite(t.code))return String(t.code)},Pc=e=>{let t=Nc(e);return{name:e.name,...t?{code:t}:{}}},Fc=wc((e,t,n)=>{if(!Sc())return;let r=typeof n?.durationMs==`number`&&Number.isFinite(n.durationMs)?Math.round(n.durationMs):void 0;Mc({module:e,name:t,time:Date.now(),...r===void 0?{}:{durationMs:r},...n?.error?{error:Pc(n.error)}:{}})}),Ic=`__IMX-auth-runtime-id`,Lc=()=>{let e=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);return`${e()}${e()}-${e()}-${e()}-${e()}-${e()}${e()}${e()}`},Rc=()=>{if(!(typeof window>`u`||!window.localStorage))try{let e=window.localStorage.getItem(`__IMX-metrics-runtime`);if(!e)return;let t=JSON.parse(e);return typeof t.rid==`string`&&t.rid.length>0?t.rid:void 0}catch{return}},zc=()=>{if(typeof window>`u`||!window.localStorage)return Lc();let e=window.localStorage.getItem(Ic);if(e)return e;let t=Rc()??Lc();return window.localStorage.setItem(Ic,t),t},Bc=function(e){return e.AUTHENTICATION_ERROR=`AUTHENTICATION_ERROR`,e.INVALID_CONFIGURATION=`INVALID_CONFIGURATION`,e.WALLET_CONNECTION_ERROR=`WALLET_CONNECTION_ERROR`,e.NOT_LOGGED_IN_ERROR=`NOT_LOGGED_IN_ERROR`,e.SILENT_LOGIN_ERROR=`SILENT_LOGIN_ERROR`,e.REFRESH_TOKEN_ERROR=`REFRESH_TOKEN_ERROR`,e.USER_REGISTRATION_ERROR=`USER_REGISTRATION_ERROR`,e.USER_NOT_REGISTERED_ERROR=`USER_NOT_REGISTERED_ERROR`,e.LOGOUT_ERROR=`LOGOUT_ERROR`,e.TRANSFER_ERROR=`TRANSFER_ERROR`,e.CREATE_ORDER_ERROR=`CREATE_ORDER_ERROR`,e.CANCEL_ORDER_ERROR=`CANCEL_ORDER_ERROR`,e.EXCHANGE_TRANSFER_ERROR=`EXCHANGE_TRANSFER_ERROR`,e.CREATE_TRADE_ERROR=`CREATE_TRADE_ERROR`,e.OPERATION_NOT_SUPPORTED_ERROR=`OPERATION_NOT_SUPPORTED_ERROR`,e.LINK_WALLET_ALREADY_LINKED_ERROR=`LINK_WALLET_ALREADY_LINKED_ERROR`,e.LINK_WALLET_MAX_WALLETS_LINKED_ERROR=`LINK_WALLET_MAX_WALLETS_LINKED_ERROR`,e.LINK_WALLET_VALIDATION_ERROR=`LINK_WALLET_VALIDATION_ERROR`,e.LINK_WALLET_DUPLICATE_NONCE_ERROR=`LINK_WALLET_DUPLICATE_NONCE_ERROR`,e.LINK_WALLET_GENERIC_ERROR=`LINK_WALLET_GENERIC_ERROR`,e.SERVICE_UNAVAILABLE_ERROR=`SERVICE_UNAVAILABLE_ERROR`,e.TRANSACTION_REJECTED=`TRANSACTION_REJECTED`,e}({});function Vc(e){return typeof e==`object`&&!!e&&`code`in e&&`message`in e}let Hc=e=>{if(Vc(e))return e;if(typeof e==`object`&&e&&`response`in e){let{response:t}=e;if(t?.data&&Vc(t.data))return t.data}},Uc=(e,t)=>{let n=t,r=n?.response?.status,i=n?.config?.url,a=n?.config?.baseURL,o=typeof i==`string`&&typeof a==`string`&&!/^https?:\/\//i.test(i)?`${a}${i}`:i;return r==null&&o==null||e.includes(`[httpStatus=`)?e:`${e} [httpStatus=${r??`unknown`} url=${o??`unknown`}]`};var Wc=class extends Error{type;constructor(e,t){super(e),this.type=t}};let Gc=async(e,t)=>{try{return await e()}catch(e){let n;if(e instanceof Wc&&e.type===`SERVICE_UNAVAILABLE_ERROR`)throw new Wc(e.message,e.type);let r=Hc(e);throw n=r?r.message:e.message,t===`USER_REGISTRATION_ERROR`&&(n=Uc(n,e)),new Wc(n,t)}},Kc=(e,t,n)=>{let r=t.map(t=>!e[t]&&t).filter(e=>e).join(`, `);if(r!==``)throw new Wc(n?`${n} - ${r} cannot be null`:`${r} cannot be null`,`INVALID_CONFIGURATION`)};var qc=class{authenticationDomain;passportDomain;oidcConfiguration;crossSdkBridgeEnabled;popupOverlayOptions;constructor({authenticationDomain:e,passportDomain:t,crossSdkBridgeEnabled:n,popupOverlayOptions:r,...i}){Kc(i,[`clientId`,`redirectUri`]),this.oidcConfiguration=i,this.crossSdkBridgeEnabled=n||!1,this.popupOverlayOptions=r,this.authenticationDomain=e||`https://auth.immutable.com`,this.passportDomain=t||`https://passport.immutable.com`}};(function(e){return e.ZKEVM=`zkEvm`,e})({});let Jc=e=>!!e.zkEvm;(function(e){return e.OptedIn=`opted_in`,e.Unsubscribed=`unsubscribed`,e.Subscribed=`subscribed`,e})({}),function(e){return e.LOGGED_OUT=`loggedOut`,e.LOGGED_IN=`loggedIn`,e.TOKEN_REFRESHED=`tokenRefreshed`,e.USER_REMOVED=`userRemoved`,e}({});let Yc=`passport-overlay`,Xc=`passport-overlay-contents`,Zc=`${Yc}-close`,Qc=`${Yc}-try-again`,$c=`
|
|
16
|
+
(function(n){if(typeof e==`object`&&t!==void 0)t.exports=n();else if(typeof define==`function`&&define.amd)define([],n);else{var r=typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:this;r.localforage=n()}})(function(){return(function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var c=typeof require==`function`&&require;if(!s&&c)return c(o,!0);if(a)return a(o,!0);var l=Error(`Cannot find module '`+o+`'`);throw l.code=`MODULE_NOT_FOUND`,l}var u=n[o]={exports:{}};t[o][0].call(u.exports,function(e){var n=t[o][1][e];return i(n||e)},u,u.exports,e,t,n,r)}return n[o].exports}for(var a=typeof require==`function`&&require,o=0;o<r.length;o++)i(r[o]);return i})({1:[function(e,t,n){(function(e){"use strict";var n=e.MutationObserver||e.WebKitMutationObserver,r;if(n){var i=0,a=new n(u),o=e.document.createTextNode(``);a.observe(o,{characterData:!0}),r=function(){o.data=i=++i%2}}else if(!e.setImmediate&&e.MessageChannel!==void 0){var s=new e.MessageChannel;s.port1.onmessage=u,r=function(){s.port2.postMessage(0)}}else r=`document`in e&&`onreadystatechange`in e.document.createElement(`script`)?function(){var t=e.document.createElement(`script`);t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};var c,l=[];function u(){c=!0;for(var e,t,n=l.length;n;){for(t=l,l=[],e=-1;++e<n;)t[e]();n=l.length}c=!1}t.exports=d;function d(e){l.push(e)===1&&!c&&r()}}).call(this,typeof global<`u`?global:typeof self<`u`?self:typeof window<`u`?window:{})},{}],2:[function(e,t,n){"use strict";var r=e(1);function i(){}var a={},o=[`REJECTED`],s=[`FULFILLED`],c=[`PENDING`];t.exports=l;function l(e){if(typeof e!=`function`)throw TypeError(`resolver must be a function`);this.state=c,this.queue=[],this.outcome=void 0,e!==i&&p(this,e)}l.prototype.catch=function(e){return this.then(null,e)},l.prototype.then=function(e,t){if(typeof e!=`function`&&this.state===s||typeof t!=`function`&&this.state===o)return this;var n=new this.constructor(i);return this.state===c?this.queue.push(new u(n,e,t)):d(n,this.state===s?e:t,this.outcome),n};function u(e,t,n){this.promise=e,typeof t==`function`&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),typeof n==`function`&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}u.prototype.callFulfilled=function(e){a.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){d(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){a.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){d(this.promise,this.onRejected,e)};function d(e,t,n){r(function(){var r;try{r=t(n)}catch(t){return a.reject(e,t)}r===e?a.reject(e,TypeError(`Cannot resolve promise with itself`)):a.resolve(e,r)})}a.resolve=function(e,t){var n=m(f,t);if(n.status===`error`)return a.reject(e,n.value);var r=n.value;if(r)p(e,r);else{e.state=s,e.outcome=t;for(var i=-1,o=e.queue.length;++i<o;)e.queue[i].callFulfilled(t)}return e},a.reject=function(e,t){e.state=o,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e};function f(e){var t=e&&e.then;if(e&&(typeof e==`object`||typeof e==`function`)&&typeof t==`function`)return function(){t.apply(e,arguments)}}function p(e,t){var n=!1;function r(t){n||(n=!0,a.reject(e,t))}function i(t){n||(n=!0,a.resolve(e,t))}function o(){t(i,r)}var s=m(o);s.status===`error`&&r(s.value)}function m(e,t){var n={};try{n.value=e(t),n.status=`success`}catch(e){n.status=`error`,n.value=e}return n}l.resolve=h;function h(e){return e instanceof this?e:a.resolve(new this(i),e)}l.reject=g;function g(e){var t=new this(i);return a.reject(t,e)}l.all=_;function _(e){var t=this;if(Object.prototype.toString.call(e)!==`[object Array]`)return this.reject(TypeError(`must be an array`));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var o=Array(n),s=0,c=-1,l=new this(i);++c<n;)u(e[c],c);return l;function u(e,i){t.resolve(e).then(c,function(e){r||(r=!0,a.reject(l,e))});function c(e){o[i]=e,++s===n&&!r&&(r=!0,a.resolve(l,o))}}}l.race=v;function v(e){var t=this;if(Object.prototype.toString.call(e)!==`[object Array]`)return this.reject(TypeError(`must be an array`));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var o=-1,s=new this(i);++o<n;)c(e[o]);return s;function c(e){t.resolve(e).then(function(e){r||(r=!0,a.resolve(s,e))},function(e){r||(r=!0,a.reject(s,e))})}}},{1:1}],3:[function(e,t,n){(function(t){"use strict";typeof t.Promise!=`function`&&(t.Promise=e(2))}).call(this,typeof global<`u`?global:typeof self<`u`?self:typeof window<`u`?window:{})},{2:2}],4:[function(e,t,n){"use strict";var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e};function i(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function a(){try{if(typeof indexedDB<`u`)return indexedDB;if(typeof webkitIndexedDB<`u`)return webkitIndexedDB;if(typeof mozIndexedDB<`u`)return mozIndexedDB;if(typeof OIndexedDB<`u`)return OIndexedDB;if(typeof msIndexedDB<`u`)return msIndexedDB}catch{return}}var o=a();function s(){try{if(!o||!o.open)return!1;var e=typeof openDatabase<`u`&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t=typeof fetch==`function`&&fetch.toString().indexOf(`[native code`)!==-1;return(!e||t)&&typeof indexedDB<`u`&&typeof IDBKeyRange<`u`}catch{return!1}}function c(e,t){e||=[],t||={};try{return new Blob(e,t)}catch(i){if(i.name!==`TypeError`)throw i;for(var n=new(typeof BlobBuilder<`u`?BlobBuilder:typeof MSBlobBuilder<`u`?MSBlobBuilder:typeof MozBlobBuilder<`u`?MozBlobBuilder:WebKitBlobBuilder),r=0;r<e.length;r+=1)n.append(e[r]);return n.getBlob(t.type)}}typeof Promise>`u`&&e(3);var l=Promise;function u(e,t){t&&e.then(function(e){t(null,e)},function(e){t(e)})}function d(e,t,n){typeof t==`function`&&e.then(t),typeof n==`function`&&e.catch(n)}function f(e){return typeof e!=`string`&&(console.warn(e+` used as a key, but it is not a string.`),e=String(e)),e}function p(){if(arguments.length&&typeof arguments[arguments.length-1]==`function`)return arguments[arguments.length-1]}var m=`local-forage-detect-blob-support`,h=void 0,g={},_=Object.prototype.toString,v=`readonly`,y=`readwrite`;function b(e){for(var t=e.length,n=new ArrayBuffer(t),r=new Uint8Array(n),i=0;i<t;i++)r[i]=e.charCodeAt(i);return n}function x(e){return new l(function(t){var n=e.transaction(m,y),r=c([``]);n.objectStore(m).put(r,`key`),n.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},n.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/);t(navigator.userAgent.match(/Edge\//)||!e||parseInt(e[1],10)>=43)}}).catch(function(){return!1})}function S(e){return typeof h==`boolean`?l.resolve(h):x(e).then(function(e){return h=e,h})}function C(e){var t=g[e.name],n={};n.promise=new l(function(e,t){n.resolve=e,n.reject=t}),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then(function(){return n.promise}):t.dbReady=n.promise}function w(e){var t=g[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function T(e,t){var n=g[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function E(e,t){return new l(function(n,r){if(g[e.name]=g[e.name]||ee(),e.db)if(t)C(e),e.db.close();else return n(e.db);var i=[e.name];t&&i.push(e.version);var a=o.open.apply(o,i);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(m)}catch(n){if(n.name===`ConstraintError`)console.warn(`The database "`+e.name+`" has been upgraded from version `+t.oldVersion+` to version `+t.newVersion+`, but the storage "`+e.storeName+`" already exists.`);else throw n}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var t=a.result;t.onversionchange=function(e){e.target.close()},n(t),w(e)}})}function D(e){return E(e,!1)}function O(e){return E(e,!0)}function k(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,i=e.version>e.db.version;if(r&&(e.version!==t&&console.warn(`The database "`+e.name+`" can't be downgraded from version `+e.db.version+` to version `+e.version+`.`),e.version=e.db.version),i||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function A(e){return new l(function(t,n){var r=new FileReader;r.onerror=n,r.onloadend=function(n){t({__local_forage_encoded_blob:!0,data:btoa(n.target.result||``),type:e.type})},r.readAsBinaryString(e)})}function j(e){return c([b(atob(e.data))],{type:e.type})}function M(e){return e&&e.__local_forage_encoded_blob}function N(e){var t=this,n=t._initReady().then(function(){var e=g[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady});return d(n,e,e),n}function P(e){C(e);for(var t=g[e.name],n=t.forages,r=0;r<n.length;r++){var i=n[r];i._dbInfo.db&&(i._dbInfo.db.close(),i._dbInfo.db=null)}return e.db=null,D(e).then(function(t){return e.db=t,k(e)?O(e):t}).then(function(r){e.db=t.db=r;for(var i=0;i<n.length;i++)n[i]._dbInfo.db=r}).catch(function(t){throw T(e,t),t})}function F(e,t,n,r){r===void 0&&(r=1);try{n(null,e.db.transaction(e.storeName,t))}catch(i){if(r>0&&(!e.db||i.name===`InvalidStateError`||i.name===`NotFoundError`))return l.resolve().then(function(){if(!e.db||i.name===`NotFoundError`&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),O(e)}).then(function(){return P(e).then(function(){F(e,t,n,r-1)})}).catch(n);n(i)}}function ee(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function te(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var i=g[n.name];i||(i=ee(),g[n.name]=i),i.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=N);var a=[];function o(){return l.resolve()}for(var s=0;s<i.forages.length;s++){var c=i.forages[s];c!==t&&a.push(c._initReady().catch(o))}var u=i.forages.slice(0);return l.all(a).then(function(){return n.db=i.db,D(n)}).then(function(e){return n.db=e,k(n,t._defaultConfig.version)?O(n):e}).then(function(e){n.db=i.db=e,t._dbInfo=n;for(var r=0;r<u.length;r++){var a=u[r];a!==t&&(a._dbInfo.db=n.db,a._dbInfo.version=n.version)}})}function I(e,t){var n=this;e=f(e);var r=new l(function(t,r){n.ready().then(function(){F(n._dbInfo,v,function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).get(e);o.onsuccess=function(){var e=o.result;e===void 0&&(e=null),M(e)&&(e=j(e)),t(e)},o.onerror=function(){r(o.error)}}catch(e){r(e)}})}).catch(r)});return u(r,t),r}function ne(e,t){var n=this,r=new l(function(t,r){n.ready().then(function(){F(n._dbInfo,v,function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).openCursor(),s=1;o.onsuccess=function(){var n=o.result;if(n){var r=n.value;M(r)&&(r=j(r));var i=e(r,n.key,s++);i===void 0?n.continue():t(i)}else t()},o.onerror=function(){r(o.error)}}catch(e){r(e)}})}).catch(r)});return u(r,t),r}function re(e,t,n){var r=this;e=f(e);var i=new l(function(n,i){var a;r.ready().then(function(){return a=r._dbInfo,_.call(t)===`[object Blob]`?S(a.db).then(function(e){return e?t:A(t)}):t}).then(function(t){F(r._dbInfo,y,function(a,o){if(a)return i(a);try{var s=o.objectStore(r._dbInfo.storeName);t===null&&(t=void 0);var c=s.put(t,e);o.oncomplete=function(){t===void 0&&(t=null),n(t)},o.onabort=o.onerror=function(){i(c.error?c.error:c.transaction.error)}}catch(e){i(e)}})}).catch(i)});return u(i,n),i}function ie(e,t){var n=this;e=f(e);var r=new l(function(t,r){n.ready().then(function(){F(n._dbInfo,y,function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){r(o.error)},a.onabort=function(){r(o.error?o.error:o.transaction.error)}}catch(e){r(e)}})}).catch(r)});return u(r,t),r}function ae(e){var t=this,n=new l(function(e,n){t.ready().then(function(){F(t._dbInfo,y,function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).clear();i.oncomplete=function(){e()},i.onabort=i.onerror=function(){n(a.error?a.error:a.transaction.error)}}catch(e){n(e)}})}).catch(n)});return u(n,e),n}function oe(e){var t=this,n=new l(function(e,n){t.ready().then(function(){F(t._dbInfo,v,function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){n(a.error)}}catch(e){n(e)}})}).catch(n)});return u(n,e),n}function se(e,t){var n=this,r=new l(function(t,r){if(e<0){t(null);return}n.ready().then(function(){F(n._dbInfo,v,function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName),s=!1,c=o.openKeyCursor();c.onsuccess=function(){var n=c.result;if(!n){t(null);return}e===0||s?t(n.key):(s=!0,n.advance(e))},c.onerror=function(){r(c.error)}}catch(e){r(e)}})}).catch(r)});return u(r,t),r}function ce(e){var t=this,n=new l(function(e,n){t.ready().then(function(){F(t._dbInfo,v,function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).openKeyCursor(),o=[];a.onsuccess=function(){var t=a.result;if(!t){e(o);return}o.push(t.key),t.continue()},a.onerror=function(){n(a.error)}}catch(e){n(e)}})}).catch(n)});return u(n,e),n}function le(e,t){t=p.apply(this,arguments);var n=this.config();e=typeof e!=`function`&&e||{},e.name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r=this,i;if(!e.name)i=l.reject(`Invalid arguments`);else{var a=e.name===n.name&&r._dbInfo.db?l.resolve(r._dbInfo.db):D(e).then(function(t){var n=g[e.name],r=n.forages;n.db=t;for(var i=0;i<r.length;i++)r[i]._dbInfo.db=t;return t});i=e.storeName?a.then(function(t){if(t.objectStoreNames.contains(e.storeName)){var n=t.version+1;C(e);var r=g[e.name],i=r.forages;t.close();for(var a=0;a<i.length;a++){var s=i[a];s._dbInfo.db=null,s._dbInfo.version=n}return new l(function(t,r){var i=o.open(e.name,n);i.onerror=function(e){i.result.close(),r(e)},i.onupgradeneeded=function(){i.result.deleteObjectStore(e.storeName)},i.onsuccess=function(){var e=i.result;e.close(),t(e)}}).then(function(e){r.db=e;for(var t=0;t<i.length;t++){var n=i[t];n._dbInfo.db=e,w(n._dbInfo)}}).catch(function(t){throw(T(e,t)||l.resolve()).catch(function(){}),t})}}):a.then(function(t){C(e);var n=g[e.name],r=n.forages;t.close();for(var i=0;i<r.length;i++){var a=r[i];a._dbInfo.db=null}return new l(function(t,n){var r=o.deleteDatabase(e.name);r.onerror=function(){var e=r.result;e&&e.close(),n(r.error)},r.onblocked=function(){console.warn(`dropInstance blocked for database "`+e.name+`" until all open connections are closed`)},r.onsuccess=function(){var e=r.result;e&&e.close(),t(e)}}).then(function(e){n.db=e;for(var t=0;t<r.length;t++){var i=r[t];w(i._dbInfo)}}).catch(function(t){throw(T(e,t)||l.resolve()).catch(function(){}),t})})}return u(i,t),i}var ue={_driver:`asyncStorage`,_initStorage:te,_support:s(),iterate:ne,getItem:I,setItem:re,removeItem:ie,clear:ae,length:oe,key:se,keys:ce,dropInstance:le};function de(){return typeof openDatabase==`function`}var fe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,pe=`~~local_forage_type~`,me=/^~~local_forage_type~([^~]+)~/,he=`__lfsc__:`,ge=he.length,_e=`arbf`,ve=`blob`,ye=`si08`,be=`ui08`,xe=`uic8`,Se=`si16`,Ce=`si32`,we=`ur16`,Te=`ui32`,Ee=`fl32`,De=`fl64`,Oe=ge+_e.length,ke=Object.prototype.toString;function Ae(e){var t=e.length*.75,n=e.length,r,i=0,a,o,s,c;e[e.length-1]===`=`&&(t--,e[e.length-2]===`=`&&t--);var l=new ArrayBuffer(t),u=new Uint8Array(l);for(r=0;r<n;r+=4)a=fe.indexOf(e[r]),o=fe.indexOf(e[r+1]),s=fe.indexOf(e[r+2]),c=fe.indexOf(e[r+3]),u[i++]=a<<2|o>>4,u[i++]=(o&15)<<4|s>>2,u[i++]=(s&3)<<6|c&63;return l}function je(e){var t=new Uint8Array(e),n=``,r;for(r=0;r<t.length;r+=3)n+=fe[t[r]>>2],n+=fe[(t[r]&3)<<4|t[r+1]>>4],n+=fe[(t[r+1]&15)<<2|t[r+2]>>6],n+=fe[t[r+2]&63];return t.length%3==2?n=n.substring(0,n.length-1)+`=`:t.length%3==1&&(n=n.substring(0,n.length-2)+`==`),n}function Me(e,t){var n=``;if(e&&(n=ke.call(e)),e&&(n===`[object ArrayBuffer]`||e.buffer&&ke.call(e.buffer)===`[object ArrayBuffer]`)){var r,i=he;e instanceof ArrayBuffer?(r=e,i+=_e):(r=e.buffer,n===`[object Int8Array]`?i+=ye:n===`[object Uint8Array]`?i+=be:n===`[object Uint8ClampedArray]`?i+=xe:n===`[object Int16Array]`?i+=Se:n===`[object Uint16Array]`?i+=we:n===`[object Int32Array]`?i+=Ce:n===`[object Uint32Array]`?i+=Te:n===`[object Float32Array]`?i+=Ee:n===`[object Float64Array]`?i+=De:t(Error(`Failed to get type for BinaryArray`))),t(i+je(r))}else if(n===`[object Blob]`){var a=new FileReader;a.onload=function(){var n=pe+e.type+`~`+je(this.result);t(he+ve+n)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error(`Couldn't convert value into a JSON string: `,e),t(null,n)}}function Ne(e){if(e.substring(0,ge)!==he)return JSON.parse(e);var t=e.substring(Oe),n=e.substring(ge,Oe),r;if(n===ve&&me.test(t)){var i=t.match(me);r=i[1],t=t.substring(i[0].length)}var a=Ae(t);switch(n){case _e:return a;case ve:return c([a],{type:r});case ye:return new Int8Array(a);case be:return new Uint8Array(a);case xe:return new Uint8ClampedArray(a);case Se:return new Int16Array(a);case we:return new Uint16Array(a);case Ce:return new Int32Array(a);case Te:return new Uint32Array(a);case Ee:return new Float32Array(a);case De:return new Float64Array(a);default:throw Error(`Unkown type: `+n)}}var Pe={serialize:Me,deserialize:Ne,stringToBuffer:Ae,bufferToString:je};function Fe(e,t,n,r){e.executeSql(`CREATE TABLE IF NOT EXISTS `+t.storeName+` (id INTEGER PRIMARY KEY, key unique, value)`,[],n,r)}function Ie(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=typeof e[r]==`string`?e[r]:e[r].toString();var i=new l(function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction(function(i){Fe(i,n,function(){t._dbInfo=n,e()},function(e,t){r(t)})},r)});return n.serializer=Pe,i}function Le(e,t,n,r,i,a){e.executeSql(n,r,i,function(e,o){o.code===o.SYNTAX_ERR?e.executeSql(`SELECT name FROM sqlite_master WHERE type='table' AND name = ?`,[t.storeName],function(e,s){s.rows.length?a(e,o):Fe(e,t,function(){e.executeSql(n,r,i,a)},a)},a):a(e,o)},a)}function Re(e,t){var n=this;e=f(e);var r=new l(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Le(n,i,`SELECT * FROM `+i.storeName+` WHERE key = ? LIMIT 1`,[e],function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&=i.serializer.deserialize(r),t(r)},function(e,t){r(t)})})}).catch(r)});return u(r,t),r}function ze(e,t){var n=this,r=new l(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Le(n,i,`SELECT * FROM `+i.storeName,[],function(n,r){for(var a=r.rows,o=a.length,s=0;s<o;s++){var c=a.item(s),l=c.value;if(l&&=i.serializer.deserialize(l),l=e(l,c.key,s+1),l!==void 0){t(l);return}}t()},function(e,t){r(t)})})}).catch(r)});return u(r,t),r}function Be(e,t,n,r){var i=this;e=f(e);var a=new l(function(a,o){i.ready().then(function(){t===void 0&&(t=null);var s=t,c=i._dbInfo;c.serializer.serialize(t,function(t,l){l?o(l):c.db.transaction(function(n){Le(n,c,`INSERT OR REPLACE INTO `+c.storeName+` (key, value) VALUES (?, ?)`,[e,t],function(){a(s)},function(e,t){o(t)})},function(t){if(t.code===t.QUOTA_ERR){if(r>0){a(Be.apply(i,[e,s,n,r-1]));return}o(t)}})})}).catch(o)});return u(a,n),a}function Ve(e,t,n){return Be.apply(this,[e,t,n,1])}function He(e,t){var n=this;e=f(e);var r=new l(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Le(n,i,`DELETE FROM `+i.storeName+` WHERE key = ?`,[e],function(){t()},function(e,t){r(t)})})}).catch(r)});return u(r,t),r}function Ue(e){var t=this,n=new l(function(e,n){t.ready().then(function(){var r=t._dbInfo;r.db.transaction(function(t){Le(t,r,`DELETE FROM `+r.storeName,[],function(){e()},function(e,t){n(t)})})}).catch(n)});return u(n,e),n}function We(e){var t=this,n=new l(function(e,n){t.ready().then(function(){var r=t._dbInfo;r.db.transaction(function(t){Le(t,r,`SELECT COUNT(key) as c FROM `+r.storeName,[],function(t,n){var r=n.rows.item(0).c;e(r)},function(e,t){n(t)})})}).catch(n)});return u(n,e),n}function Ge(e,t){var n=this,r=new l(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Le(n,i,`SELECT key FROM `+i.storeName+` WHERE id = ? LIMIT 1`,[e+1],function(e,n){t(n.rows.length?n.rows.item(0).key:null)},function(e,t){r(t)})})}).catch(r)});return u(r,t),r}function Ke(e){var t=this,n=new l(function(e,n){t.ready().then(function(){var r=t._dbInfo;r.db.transaction(function(t){Le(t,r,`SELECT key FROM `+r.storeName,[],function(t,n){for(var r=[],i=0;i<n.rows.length;i++)r.push(n.rows.item(i).key);e(r)},function(e,t){n(t)})})}).catch(n)});return u(n,e),n}function qe(e){return new l(function(t,n){e.transaction(function(r){r.executeSql(`SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'`,[],function(n,r){for(var i=[],a=0;a<r.rows.length;a++)i.push(r.rows.item(a).name);t({db:e,storeNames:i})},function(e,t){n(t)})},function(e){n(e)})})}function Je(e,t){t=p.apply(this,arguments);var n=this.config();e=typeof e!=`function`&&e||{},e.name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r=this,i=e.name?new l(function(t){var i=e.name===n.name?r._dbInfo.db:openDatabase(e.name,``,``,0);e.storeName?t({db:i,storeNames:[e.storeName]}):t(qe(i))}).then(function(e){return new l(function(t,n){e.db.transaction(function(r){function i(e){return new l(function(t,n){r.executeSql(`DROP TABLE IF EXISTS `+e,[],function(){t()},function(e,t){n(t)})})}for(var a=[],o=0,s=e.storeNames.length;o<s;o++)a.push(i(e.storeNames[o]));l.all(a).then(function(){t()}).catch(function(e){n(e)})},function(e){n(e)})})}):l.reject(`Invalid arguments`);return u(i,t),i}var Ye={_driver:`webSQLStorage`,_initStorage:Ie,_support:de(),iterate:ze,getItem:Re,setItem:Ve,removeItem:He,clear:Ue,length:We,key:Ge,keys:Ke,dropInstance:Je};function Xe(){try{return typeof localStorage<`u`&&`setItem`in localStorage&&!!localStorage.setItem}catch{return!1}}function L(e,t){var n=e.name+`/`;return e.storeName!==t.storeName&&(n+=e.storeName+`/`),n}function Ze(){var e=`_localforage_support_test`;try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch{return!0}}function Qe(){return!Ze()||localStorage.length>0}function $e(e){var t=this,n={};if(e)for(var r in e)n[r]=e[r];return n.keyPrefix=L(e,t._defaultConfig),Qe()?(t._dbInfo=n,n.serializer=Pe,l.resolve()):l.reject()}function et(e){var t=this,n=t.ready().then(function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);r.indexOf(e)===0&&localStorage.removeItem(r)}});return u(n,e),n}function tt(e,t){var n=this;e=f(e);var r=n.ready().then(function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&=t.serializer.deserialize(r),r});return u(r,t),r}function nt(e,t){var n=this,r=n.ready().then(function(){for(var t=n._dbInfo,r=t.keyPrefix,i=r.length,a=localStorage.length,o=1,s=0;s<a;s++){var c=localStorage.key(s);if(c.indexOf(r)===0){var l=localStorage.getItem(c);if(l&&=t.serializer.deserialize(l),l=e(l,c.substring(i),o++),l!==void 0)return l}}});return u(r,t),r}function rt(e,t){var n=this,r=n.ready().then(function(){var t=n._dbInfo,r;try{r=localStorage.key(e)}catch{r=null}return r&&=r.substring(t.keyPrefix.length),r});return u(r,t),r}function it(e){var t=this,n=t.ready().then(function(){for(var e=t._dbInfo,n=localStorage.length,r=[],i=0;i<n;i++){var a=localStorage.key(i);a.indexOf(e.keyPrefix)===0&&r.push(a.substring(e.keyPrefix.length))}return r});return u(n,e),n}function at(e){var t=this.keys().then(function(e){return e.length});return u(t,e),t}function ot(e,t){var n=this;e=f(e);var r=n.ready().then(function(){var t=n._dbInfo;localStorage.removeItem(t.keyPrefix+e)});return u(r,t),r}function st(e,t,n){var r=this;e=f(e);var i=r.ready().then(function(){t===void 0&&(t=null);var n=t;return new l(function(i,a){var o=r._dbInfo;o.serializer.serialize(t,function(t,r){if(r)a(r);else try{localStorage.setItem(o.keyPrefix+e,t),i(n)}catch(e){(e.name===`QuotaExceededError`||e.name===`NS_ERROR_DOM_QUOTA_REACHED`)&&a(e),a(e)}})})});return u(i,n),i}function ct(e,t){if(t=p.apply(this,arguments),e=typeof e!=`function`&&e||{},!e.name){var n=this.config();e.name=e.name||n.name,e.storeName=e.storeName||n.storeName}var r=this,i=e.name?new l(function(t){e.storeName?t(L(e,r._defaultConfig)):t(e.name+`/`)}).then(function(e){for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);n.indexOf(e)===0&&localStorage.removeItem(n)}}):l.reject(`Invalid arguments`);return u(i,t),i}var lt={_driver:`localStorageWrapper`,_initStorage:$e,_support:Xe(),iterate:nt,getItem:tt,setItem:st,removeItem:ot,clear:et,length:at,key:rt,keys:it,dropInstance:ct},ut=function(e,t){return e===t||typeof e==`number`&&typeof t==`number`&&isNaN(e)&&isNaN(t)},dt=function(e,t){for(var n=e.length,r=0;r<n;){if(ut(e[r],t))return!0;r++}return!1},ft=Array.isArray||function(e){return Object.prototype.toString.call(e)===`[object Array]`},pt={},mt={},ht={INDEXEDDB:ue,WEBSQL:Ye,LOCALSTORAGE:lt},gt=[ht.INDEXEDDB._driver,ht.WEBSQL._driver,ht.LOCALSTORAGE._driver],R=[`dropInstance`],_t=[`clear`,`getItem`,`iterate`,`key`,`keys`,`length`,`removeItem`,`setItem`].concat(R),vt={description:``,driver:gt.slice(),name:`localforage`,size:4980736,storeName:`keyvaluepairs`,version:1};function yt(e,t){e[t]=function(){var n=arguments;return e.ready().then(function(){return e[t].apply(e,n)})}}function bt(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var n in t)t.hasOwnProperty(n)&&(ft(t[n])?arguments[0][n]=t[n].slice():arguments[0][n]=t[n])}return arguments[0]}t.exports=new(function(){function e(t){for(var n in i(this,e),ht)if(ht.hasOwnProperty(n)){var r=ht[n],a=r._driver;this[n]=a,pt[a]||this.defineDriver(r)}this._defaultConfig=bt({},vt),this._config=bt({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return e.prototype.config=function(e){if((e===void 0?`undefined`:r(e))===`object`){if(this._ready)return Error(`Can't call config() after localforage has been used.`);for(var t in e){if(t===`storeName`&&(e[t]=e[t].replace(/\W/g,`_`)),t===`version`&&typeof e[t]!=`number`)return Error(`Database version must be a number.`);this._config[t]=e[t]}return`driver`in e&&e.driver?this.setDriver(this._config.driver):!0}else if(typeof e==`string`)return this._config[e];else return this._config},e.prototype.defineDriver=function(e,t,n){var r=new l(function(t,n){try{var r=e._driver,i=Error(`Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver`);if(!e._driver){n(i);return}for(var a=_t.concat(`_initStorage`),o=0,s=a.length;o<s;o++){var c=a[o];if((!dt(R,c)||e[c])&&typeof e[c]!=`function`){n(i);return}}(function(){for(var t=function(e){return function(){var t=Error(`Method `+e+` is not implemented by the current driver`),n=l.reject(t);return u(n,arguments[arguments.length-1]),n}},n=0,r=R.length;n<r;n++){var i=R[n];e[i]||(e[i]=t(i))}})();var d=function(n){pt[r]&&console.info(`Redefining LocalForage driver: `+r),pt[r]=e,mt[r]=n,t()};`_support`in e?e._support&&typeof e._support==`function`?e._support().then(d,n):d(!!e._support):d(!0)}catch(e){n(e)}});return d(r,t,n),r},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,n){var r=pt[e]?l.resolve(pt[e]):l.reject(Error(`Driver not found.`));return d(r,t,n),r},e.prototype.getSerializer=function(e){var t=l.resolve(Pe);return d(t,e),t},e.prototype.ready=function(e){var t=this,n=t._driverSet.then(function(){return t._ready===null&&(t._ready=t._initDriver()),t._ready});return d(n,e,e),n},e.prototype.setDriver=function(e,t,n){var r=this;ft(e)||(e=[e]);var i=this._getSupportedDrivers(e);function a(){r._config.driver=r.driver()}function o(e){return r._extend(e),a(),r._ready=r._initStorage(r._config),r._ready}function s(e){return function(){var t=0;function n(){for(;t<e.length;){var i=e[t];return t++,r._dbInfo=null,r._ready=null,r.getDriver(i).then(o).catch(n)}a();var s=Error(`No available storage method found.`);return r._driverSet=l.reject(s),r._driverSet}return n()}}var c=this._driverSet===null?l.resolve():this._driverSet.catch(function(){return l.resolve()});return this._driverSet=c.then(function(){var e=i[0];return r._dbInfo=null,r._ready=null,r.getDriver(e).then(function(e){r._driver=e._driver,a(),r._wrapLibraryMethodsWithReady(),r._initDriver=s(i)})}).catch(function(){a();var e=Error(`No available storage method found.`);return r._driverSet=l.reject(e),r._driverSet}),d(this._driverSet,t,n),this._driverSet},e.prototype.supports=function(e){return!!mt[e]},e.prototype._extend=function(e){bt(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var i=e[n];this.supports(i)&&t.push(i)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=_t.length;e<t;e++)yt(this,_t[e])},e.prototype.createInstance=function(t){return new e(t)},e}())},{3:3}]},{},[4])(4)})}))(),1);let _c={sdkVersion:`2.24.10-1`,runtimeId:(()=>{let e=new Uint8Array(32);if(typeof crypto<`u`&&typeof crypto.getRandomValues==`function`)crypto.getRandomValues(e);else for(let t=0;t<e.length;t+=1)e[t]=Math.floor(Math.random()*256);let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t}${t[Number.parseInt(t[1],16)]}`})(),enabled:!0},vc=e=>{e.clientId!==void 0&&(_c.clientId=e.clientId)},yc=()=>_c.sdkVersion,bc=()=>_c.clientId,xc=()=>_c.runtimeId,Sc=()=>_c.enabled,Cc=()=>{_c.enabled=!1};function wc(e,t){return(...n)=>{try{let r=e(...n);return r instanceof Promise?r.catch(()=>t):r}catch{return t}}}let Tc=e=>{let{module:t,name:n,time:r,durationMs:i,error:a}=e,o=[],s=n;return typeof i==`number`&&o.push([`durationMs`,String(i)]),a&&(s=`trackError_${n}`,o.push([`isTrackError`,`true`]),a.name&&o.push([`errorName`,a.name]),a.code&&o.push([`errorCode`,a.code])),{event:`${t}.${s}`,time:new Date(r).toISOString(),...o.length>0?{properties:o}:{}}},Ec=(e,t)=>({version:1,data:{details:{rid:t.rid,sdkVersion:t.sdkVersion,...t.clientId?{passportClientId:t.clientId}:{}},events:e.map(Tc)}}),Dc=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`)},Oc=async e=>{let t=Ec(e,{rid:xc(),sdkVersion:yc(),clientId:bc()});return(await fetch(`https://api.immutable.com/v1/sdk/metrics`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({payload:Dc(JSON.stringify(t))})})).status},kc=[],Ac=!1,jc=async e=>{if(!(!Sc()||e.length===0))try{let t=await Oc(e);(t===204||t<200||t>=300)&&Cc()}catch{Cc()}},Mc=e=>{Sc()&&(kc.push(e),!Ac&&(Ac=!0,queueMicrotask(()=>{if(Ac=!1,!Sc()){kc=[];return}let e=kc;kc=[],jc(e).catch(()=>void 0)})))},Nc=e=>{let t=e;if(typeof t.type==`string`&&t.type.length>0)return t.type;if(typeof t.code==`string`&&t.code.length>0)return t.code;if(typeof t.code==`number`&&Number.isFinite(t.code))return String(t.code)},Pc=e=>{let t=Nc(e);return{name:e.name,...t?{code:t}:{}}},Fc=wc((e,t,n)=>{if(!Sc())return;let r=typeof n?.durationMs==`number`&&Number.isFinite(n.durationMs)?Math.round(n.durationMs):void 0;Mc({module:e,name:t,time:Date.now(),...r===void 0?{}:{durationMs:r},...n?.error?{error:Pc(n.error)}:{}})}),Ic=`__IMX-auth-runtime-id`,Lc=()=>{let e=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);return`${e()}${e()}-${e()}-${e()}-${e()}-${e()}${e()}${e()}`},Rc=()=>{if(!(typeof window>`u`||!window.localStorage))try{let e=window.localStorage.getItem(`__IMX-metrics-runtime`);if(!e)return;let t=JSON.parse(e);return typeof t.rid==`string`&&t.rid.length>0?t.rid:void 0}catch{return}},zc=()=>{if(typeof window>`u`||!window.localStorage)return Lc();let e=window.localStorage.getItem(Ic);if(e)return e;let t=Rc()??Lc();return window.localStorage.setItem(Ic,t),t},Bc=function(e){return e.AUTHENTICATION_ERROR=`AUTHENTICATION_ERROR`,e.INVALID_CONFIGURATION=`INVALID_CONFIGURATION`,e.WALLET_CONNECTION_ERROR=`WALLET_CONNECTION_ERROR`,e.NOT_LOGGED_IN_ERROR=`NOT_LOGGED_IN_ERROR`,e.SILENT_LOGIN_ERROR=`SILENT_LOGIN_ERROR`,e.REFRESH_TOKEN_ERROR=`REFRESH_TOKEN_ERROR`,e.USER_REGISTRATION_ERROR=`USER_REGISTRATION_ERROR`,e.USER_NOT_REGISTERED_ERROR=`USER_NOT_REGISTERED_ERROR`,e.LOGOUT_ERROR=`LOGOUT_ERROR`,e.TRANSFER_ERROR=`TRANSFER_ERROR`,e.CREATE_ORDER_ERROR=`CREATE_ORDER_ERROR`,e.CANCEL_ORDER_ERROR=`CANCEL_ORDER_ERROR`,e.EXCHANGE_TRANSFER_ERROR=`EXCHANGE_TRANSFER_ERROR`,e.CREATE_TRADE_ERROR=`CREATE_TRADE_ERROR`,e.OPERATION_NOT_SUPPORTED_ERROR=`OPERATION_NOT_SUPPORTED_ERROR`,e.LINK_WALLET_ALREADY_LINKED_ERROR=`LINK_WALLET_ALREADY_LINKED_ERROR`,e.LINK_WALLET_MAX_WALLETS_LINKED_ERROR=`LINK_WALLET_MAX_WALLETS_LINKED_ERROR`,e.LINK_WALLET_VALIDATION_ERROR=`LINK_WALLET_VALIDATION_ERROR`,e.LINK_WALLET_DUPLICATE_NONCE_ERROR=`LINK_WALLET_DUPLICATE_NONCE_ERROR`,e.LINK_WALLET_GENERIC_ERROR=`LINK_WALLET_GENERIC_ERROR`,e.SERVICE_UNAVAILABLE_ERROR=`SERVICE_UNAVAILABLE_ERROR`,e.TRANSACTION_REJECTED=`TRANSACTION_REJECTED`,e}({});function Vc(e){return typeof e==`object`&&!!e&&`code`in e&&`message`in e}let Hc=e=>{if(Vc(e))return e;if(typeof e==`object`&&e&&`response`in e){let{response:t}=e;if(t?.data&&Vc(t.data))return t.data}},Uc=(e,t)=>{let n=t,r=n?.response?.status,i=n?.config?.url,a=n?.config?.baseURL,o=typeof i==`string`&&typeof a==`string`&&!/^https?:\/\//i.test(i)?`${a}${i}`:i;return r==null&&o==null||e.includes(`[httpStatus=`)?e:`${e} [httpStatus=${r??`unknown`} url=${o??`unknown`}]`};var Wc=class extends Error{type;constructor(e,t){super(e),this.type=t}};let Gc=async(e,t)=>{try{return await e()}catch(e){let n;if(e instanceof Wc&&e.type===`SERVICE_UNAVAILABLE_ERROR`)throw new Wc(e.message,e.type);let r=Hc(e);throw n=r?r.message:e.message,t===`USER_REGISTRATION_ERROR`&&(n=Uc(n,e)),new Wc(n,t)}},Kc=(e,t,n)=>{let r=t.map(t=>!e[t]&&t).filter(e=>e).join(`, `);if(r!==``)throw new Wc(n?`${n} - ${r} cannot be null`:`${r} cannot be null`,`INVALID_CONFIGURATION`)};var qc=class{authenticationDomain;passportDomain;oidcConfiguration;crossSdkBridgeEnabled;popupOverlayOptions;constructor({authenticationDomain:e,passportDomain:t,crossSdkBridgeEnabled:n,popupOverlayOptions:r,...i}){Kc(i,[`clientId`,`redirectUri`]),this.oidcConfiguration=i,this.crossSdkBridgeEnabled=n||!1,this.popupOverlayOptions=r,this.authenticationDomain=e||`https://auth.immutable.com`,this.passportDomain=t||`https://passport.immutable.com`}};(function(e){return e.ZKEVM=`zkEvm`,e})({});let Jc=e=>!!e.zkEvm;(function(e){return e.OptedIn=`opted_in`,e.Unsubscribed=`unsubscribed`,e.Subscribed=`subscribed`,e})({}),function(e){return e.LOGGED_OUT=`loggedOut`,e.LOGGED_IN=`loggedIn`,e.TOKEN_REFRESHED=`tokenRefreshed`,e.USER_REMOVED=`userRemoved`,e}({});let Yc=`passport-overlay`,Xc=`passport-overlay-contents`,Zc=`${Yc}-close`,Qc=`${Yc}-try-again`,$c=`
|
|
17
17
|
<svg
|
|
18
18
|
style="
|
|
19
19
|
max-width: 123px !important;
|
|
@@ -839,4 +839,4 @@ var t=e&&e.__classPrivateFieldGet||function(e,t,n,r){if(n===`a`&&!r)throw TypeEr
|
|
|
839
839
|
* @license MIT
|
|
840
840
|
*/
|
|
841
841
|
var gY=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 F(e,t,i).bytepad([`KMAC`,a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},C(r,S,e,t)}}],E={},D=[],O=0;O<T.length;++O)for(var k=T[O],A=k.bits,j=0;j<A.length;++j){var M=k.name+`_`+A[j];if(D.push(M),E[M]=k.createMethod(A[j],k.padding),k.name!==`sha3`){var N=k.name+A[j];D.push(N),E[N]=E[M]}}function P(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(n&31)>>3;for(var r=0;r<50;++r)this.s[r]=0}P.prototype.update=function(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];ee(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];ee(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&&(ee(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&&ee(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&&ee(t)}return r&&(s=a<<2,c=t[i],o[s]=c&255,r>1&&(o[s+1]=c>>8&255),r>2&&(o[s+2]=c>>16&255)),o};function F(e,t,n){P.call(this,e,t,n)}F.prototype=new P,F.prototype.finalize=function(){return this.encode(this.outputBits,!0),P.prototype.finalize.call(this)};var ee=function(e){var t,n,r,i,a,o,s,c,l,u,d,f,p,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,ee,te,I,ne,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;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],ue=e[11]<<4|e[10]>>>28,de=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,A=e[21]<<3|e[20]>>>29,we=e[31]<<9|e[30]>>>23,Te=e[30]<<9|e[31]>>>23,oe=e[40]<<18|e[41]>>>14,se=e[41]<<18|e[40]>>>14,F=e[2]<<1|e[3]>>>31,ee=e[3]<<1|e[2]>>>31,_=e[13]<<12|e[12]>>>20,v=e[12]<<12|e[13]>>>20,fe=e[22]<<10|e[23]>>>22,pe=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,Ee=e[42]<<2|e[43]>>>30,De=e[43]<<2|e[42]>>>30,ve=e[5]<<30|e[4]>>>2,ye=e[4]<<30|e[5]>>>2,te=e[14]<<6|e[15]>>>26,I=e[15]<<6|e[14]>>>26,y=e[25]<<11|e[24]>>>21,b=e[24]<<11|e[25]>>>21,me=e[34]<<15|e[35]>>>17,he=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,be=e[17]<<23|e[16]>>>9,xe=e[16]<<23|e[17]>>>9,ne=e[26]<<25|e[27]>>>7,re=e[27]<<25|e[26]>>>7,x=e[36]<<21|e[37]>>>11,S=e[37]<<21|e[36]>>>11,ge=e[47]<<24|e[46]>>>8,_e=e[46]<<24|e[47]>>>8,ce=e[8]<<27|e[9]>>>5,le=e[9]<<27|e[8]>>>5,D=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,Se=e[29]<<7|e[28]>>>25,Ce=e[28]<<7|e[29]>>>25,ie=e[38]<<8|e[39]>>>24,ae=e[39]<<8|e[38]>>>24,C=e[48]<<14|e[49]>>>18,w=e[49]<<14|e[48]>>>18,e[0]=h^~_&y,e[1]=g^~v&b,e[10]=T^~D&k,e[11]=E^~O&A,e[20]=F^~te&ne,e[21]=ee^~I&re,e[30]=ce^~ue&fe,e[31]=le^~de&pe,e[40]=ve^~be&Se,e[41]=ye^~xe&Ce,e[2]=_^~y&x,e[3]=v^~b&S,e[12]=D^~k&j,e[13]=O^~A&M,e[22]=te^~ne&ie,e[23]=I^~re&ae,e[32]=ue^~fe&me,e[33]=de^~pe&he,e[42]=be^~Se&we,e[43]=xe^~Ce&Te,e[4]=y^~x&C,e[5]=b^~S&w,e[14]=k^~j&N,e[15]=A^~M&P,e[24]=ne^~ie&oe,e[25]=re^~ae&se,e[34]=fe^~me&ge,e[35]=pe^~he&_e,e[44]=Se^~we&Ee,e[45]=Ce^~Te&De,e[6]=x^~C&h,e[7]=S^~w&g,e[16]=j^~N&T,e[17]=M^~P&E,e[26]=ie^~oe&F,e[27]=ae^~se&ee,e[36]=me^~ge&ce,e[37]=he^~_e&le,e[46]=we^~Ee&ve,e[47]=Te^~De&ye,e[8]=C^~h&_,e[9]=w^~g&v,e[18]=N^~T&D,e[19]=P^~E&O,e[28]=oe^~F&te,e[29]=se^~ee&I,e[38]=ge^~ce&ue,e[39]=_e^~le&de,e[48]=Ee^~ve&be,e[49]=De^~ye&xe,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 _Y(e){return`0x`+gY.default.keccak_256(XJ(e))}let vY=new WJ(`address/5.7.0`);function yY(e){$J(e,20)||vY.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=XJ(_Y(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 bY(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}let xY={};for(let e=0;e<10;e++)xY[String(e)]=String(e);for(let e=0;e<26;e++)xY[String.fromCharCode(65+e)]=String(10+e);let SY=Math.floor(bY(9007199254740991));function CY(e){e=e.toUpperCase(),e=e.substring(4)+e.substring(0,2)+`00`;let t=e.split(``).map(e=>xY[e]).join(``);for(;t.length>=SY;){let e=t.substring(0,SY);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 wY(e){let t=null;if(typeof e!=`string`&&vY.throwArgumentError(`invalid address`,`address`,e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))e.substring(0,2)!==`0x`&&(e=`0x`+e),t=yY(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&vY.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)!==CY(e)&&vY.throwArgumentError(`bad icap checksum`,`address`,e),t=hY(e.substring(4));t.length<40;)t=`0`+t;t=yY(`0x`+t)}else vY.throwArgumentError(`invalid address`,`address`,e);return t}function TY(e,t,n){return nY(t)!==32&&vY.throwArgumentError(`salt must be 32 bytes`,`salt`,t),nY(n)!==32&&vY.throwArgumentError(`initCodeHash must be 32 bytes`,`initCodeHash`,n),wY(rY(_Y(ZJ([`0xff`,wY(e),t,n])),12))}var EY;(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`})(EY||={});var DY;(function(e){e[e.EXACT_INPUT=0]=`EXACT_INPUT`,e[e.EXACT_OUTPUT=1]=`EXACT_OUTPUT`})(DY||={});var OY;(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`})(OY||={});var kY=Z.default.BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`);function AY(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&&AY(e.prototype,t),n&&AY(e,n),e}function MY(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var NY,PY,FY=(0,NJ.default)(jJ.default),IY=(0,NJ.default)(MJ.default),LY=(NY={},NY[OY.ROUND_DOWN]=FY.ROUND_DOWN,NY[OY.ROUND_HALF_UP]=FY.ROUND_HALF_UP,NY[OY.ROUND_UP]=FY.ROUND_UP,NY),RY=(PY={},PY[OY.ROUND_DOWN]=0,PY[OY.ROUND_HALF_UP]=1,PY[OY.ROUND_UP]=3,PY),zY=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=OY.ROUND_HALF_UP),!Number.isInteger(e)&&Q(!1),!(e>0)&&Q(!1),FY.set({precision:e+1,rounding:LY[n]});var r=new FY(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=OY.ROUND_HALF_UP),!Number.isInteger(e)&&Q(!1),!(e>=0)&&Q(!1),IY.DP=e,IY.RM=RY[n],new IY(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}(),BY=(0,NJ.default)(MJ.default),VY=function(e){MY(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=OY.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=OY.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:``}),BY.DP=this.currency.decimals,new BY(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}(zY),HY=new zY(Z.default.BigInt(100));function UY(e){return new WY(e.numerator,e.denominator)}var WY=function(e){MY(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 UY(e.prototype.add.call(this,t))},n.subtract=function(t){return UY(e.prototype.subtract.call(this,t))},n.multiply=function(t){return UY(e.prototype.multiply.call(this,t))},n.divide=function(t){return UY(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return t===void 0&&(t=5),e.prototype.multiply.call(this,HY).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return t===void 0&&(t=2),e.prototype.multiply.call(this,HY).toFixed(t,n,r)},t}(zY),GY=function(e){MY(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 zY(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 VY.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}(zY),KY=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},qY=function(e){MY(t,e);function t(){var t=e.apply(this,arguments)||this;return t.isNative=!0,t.isToken=!1,t}return t}(KY);function JY(e){try{return wY(e)}catch{throw Error(e+` is not a valid address.`)}}var YY=/^0x[0-9a-fA-F]{40}$/;function XY(e){if(YY.test(e))return e;throw Error(e+` is not a valid address.`)}var ZY=function(e){MY(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=XY(n):s.address=JY(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}(KY),QY,$Y=(QY={},QY[1]=new ZY(1,`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,18,`WETH`,`Wrapped Ether`),QY[3]=new ZY(3,`0xc778417E063141139Fce010982780140Aa0cD5Ab`,18,`WETH`,`Wrapped Ether`),QY[4]=new ZY(4,`0xc778417E063141139Fce010982780140Aa0cD5Ab`,18,`WETH`,`Wrapped Ether`),QY[5]=new ZY(5,`0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6`,18,`WETH`,`Wrapped Ether`),QY[42]=new ZY(42,`0xd0A1E359811322d97991E03f863a0C30C2cF029C`,18,`WETH`,`Wrapped Ether`),QY[10]=new ZY(10,`0x4200000000000000000000000000000000000006`,18,`WETH`,`Wrapped Ether`),QY[69]=new ZY(69,`0x4200000000000000000000000000000000000006`,18,`WETH`,`Wrapped Ether`),QY[42161]=new ZY(42161,`0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`,18,`WETH`,`Wrapped Ether`),QY[421611]=new ZY(421611,`0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681`,18,`WETH`,`Wrapped Ether`),QY),eX=function(e){MY(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=$Y[this.chainId];return!e&&Q(!1),e}}]),t}(qY);eX._etherCache={};function tX(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 nX(e,t,n){return t&&tX(e.prototype,t),n&&tX(e,n),e}function rX(){return rX=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},rX.apply(this,arguments)}function iX(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var aX;(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`})(aX||={}),aX.MAINNET,aX.OPTIMISM,aX.OPTIMISM_GOERLI,aX.ARBITRUM_ONE,aX.ARBITRUM_GOERLI,aX.POLYGON,aX.POLYGON_MUMBAI,aX.GOERLI,aX.SEPOLIA,aX.CELO_ALFAJORES,aX.CELO,aX.BNB,aX.AVALANCHE,aX.BASE,aX.BASE_GOERLI;var oX;(function(e){e.ETHER=`ETH`,e.MATIC=`MATIC`,e.CELO=`CELO`,e.GNOSIS=`XDAI`,e.MOONBEAM=`GLMR`,e.BNB=`BNB`,e.AVAX=`AVAX`})(oX||={});var sX,cX,lX,uX,dX,fX;aX.MAINNET,aX.GOERLI,aX.OPTIMISM,aX.ARBITRUM_ONE,aX.POLYGON,aX.POLYGON_MUMBAI,aX.SEPOLIA;var pX={v3CoreFactoryAddress:`0x1F98431c8aD98523631AE4a59f267346ea31F984`,multicallAddress:`0x1F98415757620B543A52E61c46B32eB19261F984`,quoterAddress:`0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6`,v3MigratorAddress:`0xA5644E29708357803b5A882D272c41cC0dF92B34`,nonfungiblePositionManagerAddress:`0xC36442b4a4522E871399CD717aBDD847Ab11FE88`},mX=rX({},pX,{v1MixedRouteQuoterAddress:`0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E`}),hX=rX({},pX,{v1MixedRouteQuoterAddress:`0xBa60b6e6fF25488308789E6e0A65D838be34194e`}),gX=pX,_X=rX({},pX,{multicallAddress:`0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB`,tickLensAddress:`0xbfd8137f7d1516D3ea5cA83523914859ec47F573`}),vX=pX,yX={v3CoreFactoryAddress:`0xAfE208a311B21f13EF87E33A90049fC17A7acDEc`,multicallAddress:`0x633987602DE5C4F337e3DbF265303A1080324204`,quoterAddress:`0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8`,v3MigratorAddress:`0x3cFd4d48EDfDCC53D3f173F596f621064614C582`,nonfungiblePositionManagerAddress:`0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A`,tickLensAddress:`0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D`},bX={v3CoreFactoryAddress:`0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7`,multicallAddress:`0x963Df249eD09c358A4819E39d9Cd5736c3087184`,quoterAddress:`0x78D78E420Da98ad378D7799bE8f4AF69033EB077`,v3MigratorAddress:`0x32681814957e0C13117ddc0c2aba232b5c9e760f`,nonfungiblePositionManagerAddress:`0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613`,tickLensAddress:`0xD9270014D396281579760619CCf4c3af0501A47C`,swapRouter02Address:`0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2`},xX={v3CoreFactoryAddress:`0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10`,multicallAddress:`0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd`,quoterAddress:`0x9569CbA925c8ca2248772A9A4976A516743A246F`,v3MigratorAddress:`0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8`,nonfungiblePositionManagerAddress:`0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6`,tickLensAddress:`0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e`},SX={v3CoreFactoryAddress:`0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6`,multicallAddress:`0x8260CB40247290317a4c062F3542622367F206Ee`,quoterAddress:`0x1dd92b83591781D0C6d98d07391eea4b9a6008FA`,v3MigratorAddress:`0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3`,nonfungiblePositionManagerAddress:`0x622e4726a167799826d1E1D150b076A7725f5D81`,tickLensAddress:`0xb52429333da969a0C79a60930a4Bf0020E5D1DE8`},CX={v3CoreFactoryAddress:`0x0227628f3F023bb0B980b67D528571c95c6DaC1c`,multicallAddress:`0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07`,quoterAddress:`0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3`,v3MigratorAddress:`0x729004182cF005CEC8Bd85df140094b6aCbe8b15`,nonfungiblePositionManagerAddress:`0x1238536071E1c677A632429e3655c799b22cDA52`,tickLensAddress:`0xd7f33bcdb21b359c8ee6f0251d30e94832baad07`},wX={v3CoreFactoryAddress:`0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD`,multicallAddress:`0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2`,quoterAddress:`0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F`,v3MigratorAddress:`0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97`,nonfungiblePositionManagerAddress:`0x655C406EBFa14EE2006250925e54ec43AD184f8B`,tickLensAddress:`0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950`,swapRouter02Address:`0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE`},TX={v3CoreFactoryAddress:`0x33128a8fC17869897dcE68Ed026d694621f6FDfD`,multicallAddress:`0x091e99cb1C49331a94dD62755D168E941AbD0693`,quoterAddress:`0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a`,v3MigratorAddress:`0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7`,nonfungiblePositionManagerAddress:`0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1`,tickLensAddress:`0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d`,swapRouter02Address:`0x2626664c2603336E57B271c5C0b26F421741e481`},EX={v3CoreFactoryAddress:`0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2`,multicallAddress:`0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439`,quoterAddress:`0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9`,v3MigratorAddress:`0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE`,nonfungiblePositionManagerAddress:`0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30`,tickLensAddress:`0x1acB873Ee909D0c98adB18e4474943249F931b92`,swapRouter02Address:`0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d`};sX={},sX[aX.MAINNET]=mX,sX[aX.OPTIMISM]=gX,sX[aX.ARBITRUM_ONE]=_X,sX[aX.POLYGON]=vX,sX[aX.POLYGON_MUMBAI]=vX,sX[aX.GOERLI]=hX,sX[aX.CELO]=yX,sX[aX.CELO_ALFAJORES]=yX,sX[aX.BNB]=bX,sX[aX.OPTIMISM_GOERLI]=xX,sX[aX.ARBITRUM_GOERLI]=SX,sX[aX.SEPOLIA]=CX,sX[aX.AVALANCHE]=wX,sX[aX.BASE]=TX,sX[aX.BASE_GOERLI]=EX,cX={},cX[aX.MAINNET]=`0xC4e172459f1E7939D522503B81AFAaC1014CE6F6`,lX={},lX[aX.MAINNET]=`0x408ED6354d4973f66138C91495F2f2FCbd8724C3`,uX={},uX[aX.MAINNET]=`0x090D4613473dEE047c3f2706764f49E0821D256e`,dX={},dX[aX.MAINNET]=`0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8`,fX={},fX[aX.MAINNET]=`0x65770b5283117639760beA3F867b69b3697a91dd`;var DX;(function(e){e[e.EXACT_INPUT=0]=`EXACT_INPUT`,e[e.EXACT_OUTPUT=1]=`EXACT_OUTPUT`})(DX||={});var OX;(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`})(OX||={});var kX=Z.default.BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`),AX,jX,MX=(0,NJ.default)(jJ.default),NX=(0,NJ.default)(MJ.default),PX=(AX={},AX[OX.ROUND_DOWN]=MX.ROUND_DOWN,AX[OX.ROUND_HALF_UP]=MX.ROUND_HALF_UP,AX[OX.ROUND_UP]=MX.ROUND_UP,AX),FX=(jX={},jX[OX.ROUND_DOWN]=0,jX[OX.ROUND_HALF_UP]=1,jX[OX.ROUND_UP]=3,jX),IX=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=OX.ROUND_HALF_UP),!Number.isInteger(e)&&Q(!1),!(e>0)&&Q(!1),MX.set({precision:e+1,rounding:PX[n]});var r=new MX(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=OX.ROUND_HALF_UP),!Number.isInteger(e)&&Q(!1),!(e>=0)&&Q(!1),NX.DP=e,NX.RM=FX[n],new NX(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},nX(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}(),LX=(0,NJ.default)(MJ.default),RX=function(e){iX(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=OX.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=OX.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:``}),LX.DP=this.currency.decimals,new LX(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},nX(t,[{key:`wrapped`,get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(IX),zX=new IX(Z.default.BigInt(100));function BX(e){return new VX(e.numerator,e.denominator)}var VX=function(e){iX(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 BX(e.prototype.add.call(this,t))},n.subtract=function(t){return BX(e.prototype.subtract.call(this,t))},n.multiply=function(t){return BX(e.prototype.multiply.call(this,t))},n.divide=function(t){return BX(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return t===void 0&&(t=5),e.prototype.multiply.call(this,zX).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return t===void 0&&(t=2),e.prototype.multiply.call(this,zX).toFixed(t,n,r)},t}(IX),HX=function(e){iX(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 IX(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 RX.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)},nX(t,[{key:`adjustedForDecimals`,get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(IX),UX=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},WX=function(e){iX(t,e);function t(){var t=e.apply(this,arguments)||this;return t.isNative=!0,t.isToken=!1,t}return t}(UX);function GX(e){try{return wY(e)}catch{throw Error(e+` is not a valid address.`)}}var KX=/^0x[0-9a-fA-F]{40}$/;function qX(e){if(KX.test(e))return e;throw Error(e+` is not a valid address.`)}var JX=function(e){iX(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=qX(n):s.address=GX(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()},nX(t,[{key:`wrapped`,get:function(){return this}}]),t}(UX),YX,XX=(YX={},YX[1]=new JX(1,`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,18,`WETH`,`Wrapped Ether`),YX[3]=new JX(3,`0xc778417E063141139Fce010982780140Aa0cD5Ab`,18,`WETH`,`Wrapped Ether`),YX[4]=new JX(4,`0xc778417E063141139Fce010982780140Aa0cD5Ab`,18,`WETH`,`Wrapped Ether`),YX[5]=new JX(5,`0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6`,18,`WETH`,`Wrapped Ether`),YX[42]=new JX(42,`0xd0A1E359811322d97991E03f863a0C30C2cF029C`,18,`WETH`,`Wrapped Ether`),YX[10]=new JX(10,`0x4200000000000000000000000000000000000006`,18,`WETH`,`Wrapped Ether`),YX[69]=new JX(69,`0x4200000000000000000000000000000000000006`,18,`WETH`,`Wrapped Ether`),YX[42161]=new JX(42161,`0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`,18,`WETH`,`Wrapped Ether`),YX[421611]=new JX(421611,`0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681`,18,`WETH`,`Wrapped Ether`),YX),ZX=function(e){iX(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},nX(t,[{key:`wrapped`,get:function(){var e=XX[this.chainId];return!e&&Q(!1),e}}]),t}(WX);ZX._etherCache={};function QX(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 $X=Z.default.BigInt(2**53-1),eZ=Z.default.BigInt(0),tZ=Z.default.BigInt(1),nZ=Z.default.BigInt(2);function rZ(e){if(!Z.default.greaterThanOrEqual(e,eZ)&&Q(!1),Z.default.lessThan(e,$X))return Z.default.BigInt(Math.floor(Math.sqrt(Z.default.toNumber(e))));for(var t=e,n=Z.default.add(Z.default.divide(e,nZ),tZ);Z.default.lessThan(n,t);)t=n,n=Z.default.divide(Z.default.add(Z.default.divide(e,n),n),nZ);return t}let iZ=new WJ(`properties/5.7.0`);function aZ(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function oZ(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 sZ={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function cZ(e){if(e==null||sZ[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(!cZ(r))return!1}return!0}return iZ.throwArgumentError(`Cannot deepCopy ${typeof e}`,`object`,e)}function lZ(e){if(cZ(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>uZ(e)));if(typeof e==`object`){let t={};for(let n in e){let r=e[n];r!==void 0&&aZ(t,n,uZ(r))}return t}return iZ.throwArgumentError(`Cannot deepCopy ${typeof e}`,`object`,e)}function uZ(e){return lZ(e)}var dZ=class{constructor(e){for(let t in e)this[t]=uZ(e[t])}};let fZ=`abi/5.7.0`,pZ=new WJ(fZ),mZ={},hZ={calldata:!0,memory:!0,storage:!0},gZ={calldata:!0,memory:!0};function _Z(e,t){if(e===`bytes`||e===`string`){if(hZ[t])return!0}else if(e===`address`){if(t===`payable`)return!0}else if((e.indexOf(`[`)>=0||e===`tuple`)&&gZ[t])return!0;return(hZ[t]||t===`payable`)&&pZ.throwArgumentError(`invalid modifier`,`name`,t),!1}function vZ(e,t){let n=e;function r(t){pZ.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=NZ(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=``),_Z(o.type,o.name)&&(o.name=``),o.type=NZ(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=``),_Z(o.type,o.name)&&(o.name=``),o.type=NZ(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=NZ(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=``):_Z(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&&pZ.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=``):_Z(o.type,o.name)&&(o.name=``),a.type=NZ(a.type),a}function yZ(e,t){for(let n in t)aZ(e,n,t[n])}let bZ=Object.freeze({sighash:`sighash`,minimal:`minimal`,full:`full`,json:`json`}),xZ=new RegExp(/^(.*)\[([0-9]*)\]$/);var SZ=class e{constructor(t,n){t!==mZ&&pZ.throwError(`use fromString`,WJ.errors.UNSUPPORTED_OPERATION,{operation:`new ParamType()`}),yZ(this,n);let r=this.type.match(xZ);r?yZ(this,{arrayLength:parseInt(r[2]||`-1`),arrayChildren:e.fromObject({type:r[1],components:this.components}),baseType:`array`}):yZ(this,{arrayLength:null,arrayChildren:null,baseType:this.components==null?this.type:`tuple`}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||=bZ.sighash,bZ[e]||pZ.throwArgumentError(`invalid format type`,`format`,e),e===bZ.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!==bZ.sighash&&(t+=this.type),t+=`(`+this.components.map(t=>t.format(e)).join(e===bZ.full?`, `:`,`)+`)`):t+=this.type,e!==bZ.sighash&&(this.indexed===!0&&(t+=` indexed`),e===bZ.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(mZ,{name:t.name||null,type:NZ(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(vZ(t,!!n))}static isParamType(e){return!!(e!=null&&e._isParamType)}};function CZ(e,t){return LZ(e).map(e=>SZ.fromString(e,t))}var wZ=class e{constructor(e,t){e!==mZ&&pZ.throwError(`use a static from method`,WJ.errors.UNSUPPORTED_OPERATION,{operation:`new Fragment()`}),yZ(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 AZ.fromObject(t);case`event`:return TZ.fromObject(t);case`constructor`:return kZ.fromObject(t);case`error`:return MZ.fromObject(t);case`fallback`:case`receive`:return null}return pZ.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`?TZ.fromString(e.substring(5).trim()):e.split(` `)[0]===`function`?AZ.fromString(e.substring(8).trim()):e.split(`(`)[0].trim()===`constructor`?kZ.fromString(e.trim()):e.split(` `)[0]===`error`?MZ.fromString(e.substring(5).trim()):pZ.throwArgumentError(`unsupported fragment`,`value`,e)}static isFragment(e){return!!(e&&e._isFragment)}},TZ=class e extends wZ{format(e){if(e||=bZ.sighash,bZ[e]||pZ.throwArgumentError(`invalid format type`,`format`,e),e===bZ.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!==bZ.sighash&&(t+=`event `),t+=this.name+`(`+this.inputs.map(t=>t.format(e)).join(e===bZ.full?`, `:`,`)+`) `,e!==bZ.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`&&pZ.throwArgumentError(`invalid event object`,`value`,t);let n={name:FZ(t.name),anonymous:t.anonymous,inputs:t.inputs?t.inputs.map(SZ.fromObject):[],type:`event`};return new e(mZ,n)}static fromString(t){let n=t.match(IZ);n||pZ.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:pZ.warn(`unknown modifier: `+e)}}),e.fromObject({name:n[1].trim(),anonymous:r,inputs:CZ(n[2],!0),type:`event`})}static isEventFragment(e){return e&&e._isFragment&&e.type===`event`}};function EZ(e,t){t.gas=null;let n=e.split(`@`);return n.length===1?e:(n.length>2&&pZ.throwArgumentError(`invalid human-readable ABI signature`,`value`,e),n[1].match(/^[0-9]+$/)||pZ.throwArgumentError(`invalid human-readable ABI signature gas`,`value`,e),t.gas=uY.from(n[1]),n[0])}function DZ(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 OZ(e){let t={constant:!1,payable:!0,stateMutability:`payable`};return e.stateMutability==null?e.payable==null?e.constant==null?e.type!==`constructor`&&pZ.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`&&pZ.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&&pZ.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&&pZ.throwArgumentError(`cannot have constant function with mutability `+t.stateMutability,`value`,e),t.payable=t.stateMutability===`payable`,e.payable!=null&&!!e.payable!==t.payable&&pZ.throwArgumentError(`cannot have payable function with mutability `+t.stateMutability,`value`,e)),t}var kZ=class e extends wZ{format(e){if(e||=bZ.sighash,bZ[e]||pZ.throwArgumentError(`invalid format type`,`format`,e),e===bZ.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===bZ.sighash&&pZ.throwError(`cannot format a constructor for sighash`,WJ.errors.UNSUPPORTED_OPERATION,{operation:`format(sighash)`});let t=`constructor(`+this.inputs.map(t=>t.format(e)).join(e===bZ.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`&&pZ.throwArgumentError(`invalid constructor object`,`value`,t);let n=OZ(t);n.constant&&pZ.throwArgumentError(`constructor cannot be constant`,`value`,t);let r={name:null,type:t.type,inputs:t.inputs?t.inputs.map(SZ.fromObject):[],payable:n.payable,stateMutability:n.stateMutability,gas:t.gas?uY.from(t.gas):null};return new e(mZ,r)}static fromString(t){let n={type:`constructor`};t=EZ(t,n);let r=t.match(IZ);return(!r||r[1].trim()!==`constructor`)&&pZ.throwArgumentError(`invalid constructor string`,`value`,t),n.inputs=CZ(r[2].trim(),!1),DZ(r[3].trim(),n),e.fromObject(n)}static isConstructorFragment(e){return e&&e._isFragment&&e.type===`constructor`}},AZ=class e extends kZ{format(e){if(e||=bZ.sighash,bZ[e]||pZ.throwArgumentError(`invalid format type`,`format`,e),e===bZ.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!==bZ.sighash&&(t+=`function `),t+=this.name+`(`+this.inputs.map(t=>t.format(e)).join(e===bZ.full?`, `:`,`)+`) `,e!==bZ.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`&&pZ.throwArgumentError(`invalid function object`,`value`,t);let n=OZ(t),r={type:t.type,name:FZ(t.name),constant:n.constant,inputs:t.inputs?t.inputs.map(SZ.fromObject):[],outputs:t.outputs?t.outputs.map(SZ.fromObject):[],payable:n.payable,stateMutability:n.stateMutability,gas:t.gas?uY.from(t.gas):null};return new e(mZ,r)}static fromString(t){let n={type:`function`};t=EZ(t,n);let r=t.split(` returns `);r.length>2&&pZ.throwArgumentError(`invalid function string`,`value`,t);let i=r[0].match(IZ);if(i||pZ.throwArgumentError(`invalid function signature`,`value`,t),n.name=i[1].trim(),n.name&&FZ(n.name),n.inputs=CZ(i[2],!1),DZ(i[3].trim(),n),r.length>1){let e=r[1].match(IZ);(e[1].trim()!=``||e[3].trim()!=``)&&pZ.throwArgumentError(`unexpected tokens`,`value`,t),n.outputs=CZ(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)`)&&pZ.throwArgumentError(`cannot specify user defined ${t} error`,`fragment`,e),e}var MZ=class e extends wZ{format(e){if(e||=bZ.sighash,bZ[e]||pZ.throwArgumentError(`invalid format type`,`format`,e),e===bZ.json)return JSON.stringify({type:`error`,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t=``;return e!==bZ.sighash&&(t+=`error `),t+=this.name+`(`+this.inputs.map(t=>t.format(e)).join(e===bZ.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`&&pZ.throwArgumentError(`invalid error object`,`value`,t);let n={type:t.type,name:FZ(t.name),inputs:t.inputs?t.inputs.map(SZ.fromObject):[]};return jZ(new e(mZ,n))}static fromString(t){let n={type:`error`},r=t.match(IZ);return r||pZ.throwArgumentError(`invalid error signature`,`value`,t),n.name=r[1].trim(),n.name&&FZ(n.name),n.inputs=CZ(r[2],!1),jZ(e.fromObject(n))}static isErrorFragment(e){return e&&e._isFragment&&e.type===`error`}};function NZ(e){return e.match(/^uint($|[^1-9])/)?e=`uint256`+e.substring(4):e.match(/^int($|[^1-9])/)&&(e=`int256`+e.substring(3)),e}let PZ=RegExp(`^[a-zA-Z$_][a-zA-Z0-9$_]*$`);function FZ(e){return(!e||!e.match(PZ))&&pZ.throwArgumentError(`invalid identifier "${e}"`,`value`,e),e}let IZ=RegExp(`^([^)(]*)\\((.*)\\)([^)(]*)$`);function LZ(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&&pZ.throwArgumentError(`unbalanced parenthesis`,`value`,e)))}return n&&t.push(n),t}let RZ=new WJ(fZ);var zZ=class{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){RZ.throwArgumentError(e,this.localName,t)}},BZ=class{constructor(e){aZ(this,`wordSize`,e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return iY(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(ZJ(e._data))}writeBytes(e){let t=XJ(e),n=t.length%this.wordSize;return n&&(t=ZJ([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=XJ(uY.from(e));return t.length>this.wordSize&&RZ.throwError(`value out-of-bounds`,WJ.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=ZJ([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)}}},VZ=class e{constructor(e,t,n,r){aZ(this,`_data`,XJ(e)),aZ(this,`wordSize`,t||32),aZ(this,`_coerceFunc`,n),aZ(this,`allowLoose`,r),this._offset=0}get data(){return tY(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:RZ.throwError(`data out-of-bounds`,WJ.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 uY.from(this.readBytes(this.wordSize))}},HZ=class extends zZ{constructor(e){super(`address`,`address`,e,!1)}defaultValue(){return`0x0000000000000000000000000000000000000000`}encode(e,t){try{t=wY(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return wY(aY(e.readValue().toHexString(),20))}},UZ=class extends zZ{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 WZ=new WJ(fZ);function GZ(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||WZ.throwError(`cannot encode object for signature with missing names`,WJ.errors.INVALID_ARGUMENT,{argument:`values`,coder:t,value:n}),e[r]&&WZ.throwError(`cannot encode object for signature with duplicate names`,WJ.errors.INVALID_ARGUMENT,{argument:`values`,coder:t,value:n}),e[r]=!0,n[r]})}else WZ.throwArgumentError(`invalid tuple value`,`tuple`,n);t.length!==r.length&&WZ.throwArgumentError(`types/value length mismatch`,`tuple`,n);let i=new BZ(e.wordSize),a=new BZ(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 KZ(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===WJ.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===WJ.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 qZ=class extends zZ{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)),WZ.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 GZ(e,r,t)}decode(e){let t=this.length;t===-1&&(t=e.readValue().toNumber(),t*32>e._data.length&&WZ.throwError(`insufficient data length`,WJ.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new UZ(this.coder));return e.coerce(this.name,KZ(e,n))}},JZ=class extends zZ{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())}},YZ=class extends zZ{constructor(e,t){super(e,e,t,!0)}defaultValue(){return`0x`}encode(e,t){t=XJ(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},XZ=class extends YZ{constructor(e){super(`bytes`,e)}decode(e){return e.coerce(this.name,tY(super.decode(e)))}},ZZ=class extends zZ{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=XJ(t);return n.length!==this.size&&this._throwError(`incorrect data length`,t),e.writeBytes(n)}decode(e){return e.coerce(this.name,tY(e.readBytes(this.size)))}},QZ=class extends zZ{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 $Z=uY.from(-1),eQ=uY.from(0),tQ=uY.from(1),nQ=uY.from(`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`);var rQ=class extends zZ{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=uY.from(t),r=nQ.mask(e.wordSize*8);if(this.signed){let e=r.mask(this.size*8-1);(n.gt(e)||n.lt(e.add(tQ).mul($Z)))&&this._throwError(`value out-of-bounds`,t)}else(n.lt(eQ)||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 iQ=new WJ(`strings/5.7.0`);var aQ;(function(e){e.current=``,e.NFC=`NFC`,e.NFD=`NFD`,e.NFKC=`NFKC`,e.NFKD=`NFKD`})(aQ||={});var oQ;(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`})(oQ||={});function sQ(e,t,n,r,i){return iQ.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,`bytes`,n)}function cQ(e,t,n,r,i){if(e===oQ.BAD_PREFIX||e===oQ.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===oQ.OVERRUN?n.length-t-1:0}function lQ(e,t,n,r,i){return e===oQ.OVERLONG?(r.push(i),0):(r.push(65533),cQ(e,t,n,r,i))}let uQ=Object.freeze({error:sQ,ignore:cQ,replace:lQ});function dQ(e,t){t??=uQ.error,e=XJ(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(oQ.UNEXPECTED_CONTINUE,r-1,e,n):r+=t(oQ.BAD_PREFIX,r-1,e,n);continue}if(r-1+a>=e.length){r+=t(oQ.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(oQ.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|i&63,r++}if(s!==null){if(s>1114111){r+=t(oQ.OUT_OF_RANGE,r-1-a,e,n,s);continue}if(s>=55296&&s<=57343){r+=t(oQ.UTF16_SURROGATE,r-1-a,e,n,s);continue}if(s<=o){r+=t(oQ.OVERLONG,r-1-a,e,n,s);continue}n.push(s)}}return n}function fQ(e,t=aQ.current){t!=aQ.current&&(iQ.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 XJ(n)}function pQ(e){return e.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join(``)}function mQ(e,t){return pQ(dQ(e,t))}var hQ=class extends YZ{constructor(e){super(`string`,e)}defaultValue(){return``}encode(e,t){return super.encode(e,fQ(t))}decode(e){return mQ(super.decode(e))}},gQ=class extends zZ{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 GZ(e,this.coders,t)}decode(e){return e.coerce(this.name,KZ(e,this.coders))}};let _Q=new WJ(fZ),vQ=new RegExp(/^bytes([0-9]*)$/),yQ=new RegExp(/^(u?int)([0-9]*)$/),bQ=new class{constructor(e){aZ(this,`coerceFunc`,e||null)}_getCoder(e){switch(e.baseType){case`address`:return new HZ(e.name);case`bool`:return new JZ(e.name);case`string`:return new hQ(e.name);case`bytes`:return new XZ(e.name);case`array`:return new qZ(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case`tuple`:return new gQ((e.components||[]).map(e=>this._getCoder(e)),e.name);case``:return new QZ(e.name)}let t=e.type.match(yQ);if(t){let n=parseInt(t[2]||`256`);return(n===0||n>256||n%8!=0)&&_Q.throwArgumentError(`invalid `+t[1]+` bit length`,`param`,e),new rQ(n/8,t[1]===`int`,e.name)}if(t=e.type.match(vQ),t){let n=parseInt(t[1]);return(n===0||n>32)&&_Q.throwArgumentError(`invalid bytes length`,`param`,e),new ZZ(n,e.name)}return _Q.throwArgumentError(`invalid type`,`type`,e.type)}_getWordSize(){return 32}_getReader(e,t){return new VZ(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new BZ(this._getWordSize())}getDefaultValue(e){return new gQ(e.map(e=>this._getCoder(SZ.from(e))),`_`).defaultValue()}encode(e,t){e.length!==t.length&&_Q.throwError(`types/values length mismatch`,WJ.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});let n=new gQ(e.map(e=>this._getCoder(SZ.from(e))),`_`),r=this._getWriter();return n.encode(r,t),r.data}decode(e,t,n){return new gQ(e.map(e=>this._getCoder(SZ.from(e))),`_`).decode(this._getReader(XJ(t),n))}};function xQ(e){return _Y(fQ(e))}let SQ=new WJ(fZ);var CQ=class extends dZ{},wQ=class extends dZ{},TQ=class extends dZ{},EQ=class extends dZ{static isIndexed(e){return!!(e&&e._isIndexed)}};let DQ={"0x08c379a0":{signature:`Error(string)`,name:`Error`,inputs:[`string`],reason:!0},"0x4e487b71":{signature:`Panic(uint256)`,name:`Panic`,inputs:[`uint256`]}};function OQ(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,aZ(this,`fragments`,t.map(e=>wZ.from(e)).filter(e=>e!=null)),aZ(this,`_abiCoder`,oZ(new.target,`getAbiCoder`)()),aZ(this,`functions`,{}),aZ(this,`errors`,{}),aZ(this,`events`,{}),aZ(this,`structs`,{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case`constructor`:if(this.deploy){SQ.warn(`duplicate definition - constructor`);return}aZ(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]){SQ.warn(`duplicate definition - `+n);return}t[n]=e}),this.deploy||aZ(this,`deploy`,kZ.from({payable:!1,type:`constructor`})),aZ(this,`_isInterface`,!0)}format(e){e||=bZ.full,e===bZ.sighash&&SQ.throwArgumentError(`interface does not support formatting sighash`,`format`,e);let t=this.fragments.map(t=>t.format(e));return e===bZ.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return bQ}static getAddress(e){return wY(e)}static getSighash(e){return rY(xQ(e.format()),0,4)}static getEventTopic(e){return xQ(e.format())}getFunction(e){if($J(e)){for(let t in this.functions)if(e===this.getSighash(t))return this.functions[t];SQ.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?SQ.throwArgumentError(`no matching function`,`name`,t):n.length>1&&SQ.throwArgumentError(`multiple matching functions`,`name`,t),this.functions[n[0]]}let t=this.functions[AZ.fromString(e).format()];return t||SQ.throwArgumentError(`no matching function`,`signature`,e),t}getEvent(e){if($J(e)){let t=e.toLowerCase();for(let e in this.events)if(t===this.getEventTopic(e))return this.events[e];SQ.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?SQ.throwArgumentError(`no matching event`,`name`,t):n.length>1&&SQ.throwArgumentError(`multiple matching events`,`name`,t),this.events[n[0]]}let t=this.events[TZ.fromString(e).format()];return t||SQ.throwArgumentError(`no matching event`,`signature`,e),t}getError(e){if($J(e)){let t=oZ(this.constructor,`getSighash`);for(let n in this.errors){let r=this.errors[n];if(e===t(r))return this.errors[n]}SQ.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?SQ.throwArgumentError(`no matching error`,`name`,t):n.length>1&&SQ.throwArgumentError(`multiple matching errors`,`name`,t),this.errors[n[0]]}let t=this.errors[AZ.fromString(e).format()];return t||SQ.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 oZ(this.constructor,`getSighash`)(e)}getEventTopic(e){return typeof e==`string`&&(e=this.getEvent(e)),oZ(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=XJ(t);return tY(n.slice(0,4))!==this.getSighash(e)&&SQ.throwArgumentError(`data signature does not match error ${e.name}.`,`data`,tY(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return typeof e==`string`&&(e=this.getError(e)),tY(ZJ([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){typeof e==`string`&&(e=this.getFunction(e));let n=XJ(t);return tY(n.slice(0,4))!==this.getSighash(e)&&SQ.throwArgumentError(`data signature does not match function ${e.name}.`,`data`,tY(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return typeof e==`string`&&(e=this.getFunction(e)),tY(ZJ([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){typeof e==`string`&&(e=this.getFunction(e));let n=XJ(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=tY(n.slice(0,4)),t=DQ[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 SQ.throwError(`call revert exception`+i,WJ.errors.CALL_EXCEPTION,{method:e.format(),data:tY(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return typeof e==`string`&&(e=this.getFunction(e)),tY(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){typeof e==`string`&&(e=this.getEvent(e)),t.length>e.inputs.length&&SQ.throwError(`too many arguments for `+e.format(),WJ.errors.UNEXPECTED_ARGUMENT,{argument:`values`,value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));let r=(e,t)=>e.type===`string`?xQ(t):e.type===`bytes`?_Y(tY(t)):(e.type===`bool`&&typeof t==`boolean`&&(t=t?`0x01`:`0x00`),e.type.match(/^u?int/)&&(t=uY.from(t).toHexString()),e.type===`address`&&this._abiCoder.encode([`address`],[t]),aY(tY(t),32));for(t.forEach((t,i)=>{let a=e.inputs[i];if(!a.indexed){t!=null&&SQ.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`?SQ.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&&SQ.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(xQ(o));else if(e.type===`bytes`)n.push(_Y(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);(!$J(n[0],32)||n[0].toLowerCase()!==t)&&SQ.throwError(`fragment/topic mismatch`,WJ.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(SZ.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,ZJ(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 EQ({_isIndexed:!0,hash:null});else if(a[t])c[t]=new EQ({_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 OQ(`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 OQ(`index ${e}`,t)}})}return Object.freeze(c)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new wQ({args:this._abiCoder.decode(t.inputs,`0x`+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:uY.from(e.value||`0`)}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new CQ({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){let t=tY(e),n=this.getError(t.substring(0,10).toLowerCase());return n?new TQ({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 AQ=RegExp(`^bytes([0-9]+)$`),jQ=RegExp(`^(u?int)([0-9]*)$`),MQ=RegExp(`^(.*)\\[([0-9]*)\\]$`),NQ=new WJ(`solidity/5.7.0`);function PQ(e,t,n){switch(e){case`address`:return n?QJ(t,32):XJ(t);case`string`:return fQ(t);case`bytes`:return XJ(t);case`bool`:return t=t?`0x01`:`0x00`,n?QJ(t,32):XJ(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)&&NQ.throwArgumentError(`invalid number type`,`type`,e),n&&(i=256),t=uY.from(t).toTwos(i),QJ(t,i/8)}if(r=e.match(AQ),r){let i=parseInt(r[1]);return(String(i)!==r[1]||i===0||i>32)&&NQ.throwArgumentError(`invalid bytes type`,`type`,e),XJ(t).byteLength!==i&&NQ.throwArgumentError(`invalid value for ${e}`,`value`,t),n?XJ((t+`0000000000000000000000000000000000000000000000000000000000000000`).substring(0,66)):t}if(r=e.match(MQ),r&&Array.isArray(t)){let n=r[1];parseInt(r[2]||String(t.length))!=t.length&&NQ.throwArgumentError(`invalid array length for ${e}`,`value`,t);let i=[];return t.forEach(function(e){i.push(PQ(n,e,!0))}),ZJ(i)}return NQ.throwArgumentError(`invalid type`,`type`,e)}function FQ(e,t){e.length!=t.length&&NQ.throwArgumentError("wrong number of values; expected ${ types.length }",`values`,t);let n=[];return e.forEach(function(e,r){n.push(PQ(e,t[r]))}),tY(ZJ(n))}function IQ(e,t){return _Y(FQ(e,t))}var LQ=[{inputs:[{internalType:`bytes[]`,name:`data`,type:`bytes[]`}],name:`multicall`,outputs:[{internalType:`bytes[]`,name:`results`,type:`bytes[]`}],stateMutability:`payable`,type:`function`}],RQ=[{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`}],zQ=[{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`}],BQ=[{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`}],VQ=[{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`}],HQ=[{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`}],UQ=[{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`}],WQ=[{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 GQ(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 KQ(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){GQ(a,r,i,o,s,`next`,e)}function s(e){GQ(a,r,i,o,s,`throw`,e)}o(void 0)})}}function qQ(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 JQ(e,t,n){return t&&qQ(e.prototype,t),n&&qQ(e,n),e}function YQ(){return YQ=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},YQ.apply(this,arguments)}function XQ(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 ZQ(e,t){if(e){if(typeof e==`string`)return QQ(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 QQ(e,t)}}function QQ(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 $Q(e,t){var n;if(typeof Symbol>`u`||e[Symbol.iterator]==null){if(Array.isArray(e)||(n=ZQ(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.
|
|
842
|
-
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$(e,t){return t={exports:{}},e(t,t.exports),t.exports}var t$=e$(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)}}),n$,r$=`0x1F98431c8aD98523631AE4a59f267346ea31F984`,i$=`0x0000000000000000000000000000000000000000`,a$=`0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`,o$;(function(e){e[e.LOWEST=100]=`LOWEST`,e[e.LOW=500]=`LOW`,e[e.MEDIUM=3e3]=`MEDIUM`,e[e.HIGH=1e4]=`HIGH`})(o$||={});var s$=(n$={},n$[o$.LOWEST]=1,n$[o$.LOW]=10,n$[o$.MEDIUM]=60,n$[o$.HIGH]=200,n$),c$=Z.default.BigInt(-1),l$=Z.default.BigInt(0),u$=Z.default.BigInt(1),d$=Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(96)),f$=Z.default.exponentiate(d$,Z.default.BigInt(2));function p$(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 TY(t,IQ([`bytes`],[bQ.encode([`address`,`address`,`uint24`],[s.address,c.address,i])]),a??a$)}var m$=function(){function e(){}return e.addDelta=function(e,t){return Z.default.lessThan(t,l$)?Z.default.subtract(e,Z.default.multiply(t,c$)):Z.default.add(e,t)},e}(),h$=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),l$)&&(i=Z.default.add(i,u$)),i},e}(),g$=Z.default.subtract(Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(160)),u$);function _$(e,t){var n=Z.default.multiply(e,t);return Z.default.bitwiseAnd(n,kX)}function v$(e,t){var n=Z.default.add(e,t);return Z.default.bitwiseAnd(n,kX)}var y$=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?h$.mulDivRoundingUp(h$.mulDivRoundingUp(a,o,t),u$,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?h$.mulDivRoundingUp(n,Z.default.subtract(t,e),d$):Z.default.divide(Z.default.multiply(n,Z.default.subtract(t,e)),d$)},e.getNextSqrtPriceFromInput=function(e,t,n,r){return!Z.default.greaterThan(e,l$)&&Q(!1),!Z.default.greaterThan(t,l$)&&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,l$)&&Q(!1),!Z.default.greaterThan(t,l$)&&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,l$))return e;var i=Z.default.leftShift(t,Z.default.BigInt(96));if(r){var a=_$(n,e);if(Z.default.equal(Z.default.divide(a,n),e)){var o=v$(i,a);if(Z.default.greaterThanOrEqual(o,i))return h$.mulDivRoundingUp(i,e,o)}return h$.mulDivRoundingUp(i,u$,Z.default.add(Z.default.divide(i,e),n))}else{var s=_$(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 h$.mulDivRoundingUp(i,e,c)}},e.getNextSqrtPriceFromAmount1RoundingDown=function(e,t,n,r){if(r){var i=Z.default.lessThanOrEqual(n,g$)?Z.default.divide(Z.default.leftShift(n,Z.default.BigInt(96)),t):Z.default.divide(Z.default.multiply(n,d$),t);return Z.default.add(e,i)}else{var a=h$.mulDivRoundingUp(n,d$,t);return!Z.default.greaterThan(e,a)&&Q(!1),Z.default.subtract(e,a)}},e}(),b$=Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(6)),x$=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,l$);if(s){var c=Z.default.divide(Z.default.multiply(r,Z.default.subtract(b$,Z.default.BigInt(i))),b$);a.amountIn=o?y$.getAmount0Delta(t,e,n,!0):y$.getAmount1Delta(e,t,n,!0),Z.default.greaterThanOrEqual(c,a.amountIn)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=y$.getNextSqrtPriceFromInput(e,n,c,o)}else a.amountOut=o?y$.getAmount1Delta(t,e,n,!1):y$.getAmount0Delta(e,t,n,!1),Z.default.greaterThanOrEqual(Z.default.multiply(r,c$),a.amountOut)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=y$.getNextSqrtPriceFromOutput(e,n,Z.default.multiply(r,c$),o);var l=Z.default.equal(t,a.sqrtRatioNextX96);return o?(a.amountIn=l&&s?a.amountIn:y$.getAmount0Delta(a.sqrtRatioNextX96,e,n,!0),a.amountOut=l&&!s?a.amountOut:y$.getAmount1Delta(a.sqrtRatioNextX96,e,n,!1)):(a.amountIn=l&&s?a.amountIn:y$.getAmount1Delta(e,a.sqrtRatioNextX96,n,!0),a.amountOut=l&&!s?a.amountOut:y$.getAmount0Delta(e,a.sqrtRatioNextX96,n,!1)),!s&&Z.default.greaterThan(a.amountOut,Z.default.multiply(r,c$))&&(a.amountOut=Z.default.multiply(r,c$)),s&&Z.default.notEqual(a.sqrtRatioNextX96,t)?a.feeAmount=Z.default.subtract(r,a.amountIn):a.feeAmount=h$.mulDivRoundingUp(a.amountIn,Z.default.BigInt(i),Z.default.subtract(b$,Z.default.BigInt(i))),[a.sqrtRatioNextX96,a.amountIn,a.amountOut,a.feeAmount]},e}(),S$=Z.default.BigInt(2),C$=[128,64,32,16,8,4,2,1].map(function(e){return[e,Z.default.exponentiate(S$,Z.default.BigInt(e))]});function w$(e){!Z.default.greaterThan(e,l$)&&Q(!1),!Z.default.lessThanOrEqual(e,kX)&&Q(!1);for(var t=0,n=$Q(C$),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 T$(e,t){return Z.default.signedRightShift(Z.default.multiply(e,Z.default.BigInt(t)),Z.default.BigInt(128))}var E$=Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(32)),D$=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=T$(r,`0xfff97272373d413259a46990580e213a`)),n&4&&(r=T$(r,`0xfff2e50f5f656932ef12357cf3c7fdcc`)),n&8&&(r=T$(r,`0xffe5caca7e10e4e61c3624eaa0941cd0`)),n&16&&(r=T$(r,`0xffcb9843d60f6159c9db58835c926644`)),n&32&&(r=T$(r,`0xff973b41fa98c081472e6896dfb254c0`)),n&64&&(r=T$(r,`0xff2ea16466c96a3843ec78b326b52861`)),n&128&&(r=T$(r,`0xfe5dee046a99a2a811c461f1969c3053`)),n&256&&(r=T$(r,`0xfcbe86c7900a88aedcffc83b479aa3a4`)),n&512&&(r=T$(r,`0xf987a7253ac413176f2b074cf7815e54`)),n&1024&&(r=T$(r,`0xf3392b0822b70005940c7a398e4b70f3`)),n&2048&&(r=T$(r,`0xe7159475a2c29b7443b29c7fa6e889d9`)),n&4096&&(r=T$(r,`0xd097f3bdfd2022b8845ad8f792aa5825`)),n&8192&&(r=T$(r,`0xa9f746462d870fdf8a65dc1f90e061e5`)),n&16384&&(r=T$(r,`0x70d869a156d2a1b890bb3df62baf32f7`)),n&32768&&(r=T$(r,`0x31be135f97d08fd981231505542fcfa6`)),n&65536&&(r=T$(r,`0x9aa508b5b7a84e1c677de54f3e99bc9`)),n&131072&&(r=T$(r,`0x5d6af8dedb81196699c329225ee604`)),n&262144&&(r=T$(r,`0x2216e584f5fa1ea926041bedfe98`)),n&524288&&(r=T$(r,`0x48a170391f7dc42444e8fa2`)),t>0&&(r=Z.default.divide(kX,r)),Z.default.greaterThan(Z.default.remainder(r,E$),l$)?Z.default.add(Z.default.divide(r,E$),u$):Z.default.divide(r,E$)},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=w$(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}();D$.MIN_TICK=-887272,D$.MAX_TICK=-D$.MIN_TICK,D$.MIN_SQRT_RATIO=Z.default.BigInt(`4295128739`),D$.MAX_SQRT_RATIO=Z.default.BigInt(`1461446703485210103287273052203988822378723970342`);var O$=function(){function e(){}var t=e.prototype;return t.getTick=function(){var t=KQ(t$.mark(function t(n){return t$.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=KQ(t$.mark(function t(n,r,i){return t$.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}();O$.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 A$(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)},l$),l$)&&Q(!1),!k$(e,A$)&&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 M$(e){var t=Z.default.BigInt(e).toString(16);return t.length%2!=0&&(t=`0`+t),`0x`+t}function N$(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?FQ(a.reverse(),i.reverse()):FQ(a,i)}function P$(e,t){var n=Z.default.leftShift(Z.default.BigInt(e),Z.default.BigInt(192)),r=Z.default.BigInt(t);return rZ(Z.default.divide(n,r))}function F$(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),d$);return Z.default.divide(Z.default.multiply(Z.default.BigInt(n),i),Z.default.subtract(t,e))}function I$(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(d$,Z.default.subtract(t,e));return Z.default.divide(i,a)}function L$(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),d$),Z.default.subtract(t,e))}function R$(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?I$:F$;if(Z.default.lessThanOrEqual(e,t))return s(t,n,r);if(Z.default.lessThan(e,n)){var c=s(e,n,r),l=L$(t,e,i);return Z.default.lessThan(c,l)?c:l}else return L$(t,n,i)}function z$(e,t,n){var r=D$.getSqrtRatioAtTick(n),i=Z.default.multiply(r,r);return e.sortsBefore(t)?new HX(e,t,f$,i):new HX(e,t,i,f$)}var B$=function(e){var t=e.index,n=e.liquidityGross,r=e.liquidityNet;!(t>=D$.MIN_TICK&&t<=D$.MAX_TICK)&&Q(!1),this.index=t,this.liquidityGross=Z.default.BigInt(n),this.liquidityNet=Z.default.BigInt(r)},V$=function(){function e(e,t){var n=e.map(function(e){return e instanceof B$?e:new B$(e)});j$.validateList(n,t),this.ticks=n}var t=e.prototype;return t.getTick=function(){var e=KQ(t$.mark(function e(t){return t$.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=KQ(t$.mark(function e(t,n,r){return t$.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}(),H$=new O$,U$=function(){function e(e,t,n,r,i,a,o){o===void 0&&(o=H$),!(Number.isInteger(n)&&n<1e6)&&Q(!1);var s=D$.getSqrtRatioAtTick(a),c=D$.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 V$(o,s$[n]):o}e.getAddress=function(e,t,n,r,i){return p$({factoryAddress:i??r$,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=KQ(t$.mark(function t(n,r){var i,a,o,s,c,l,u;return t$.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`,[RX.fromRawAmount(u,Z.default.multiply(o,c$)),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=KQ(t$.mark(function t(n,r){var i,a,o,s,c,l,u;return t$.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,c$),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`,[RX.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=KQ(t$.mark(function e(t,n,r){var i,a,o,s,c,l;return t$.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r||=t?Z.default.add(D$.MIN_SQRT_RATIO,u$):Z.default.subtract(D$.MAX_SQRT_RATIO,u$),t?(!Z.default.greaterThan(r,D$.MIN_SQRT_RATIO)&&Q(!1),!Z.default.lessThan(r,this.sqrtRatioX96)&&Q(!1)):(!Z.default.lessThan(r,D$.MAX_SQRT_RATIO)&&Q(!1),!Z.default.greaterThan(r,this.sqrtRatioX96)&&Q(!1)),i=Z.default.greaterThanOrEqual(n,l$),a={amountSpecifiedRemaining:n,amountCalculated:l$,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!(Z.default.notEqual(a.amountSpecifiedRemaining,l$)&&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<D$.MIN_TICK?o.tickNext=D$.MIN_TICK:o.tickNext>D$.MAX_TICK&&(o.tickNext=D$.MAX_TICK),o.sqrtPriceNextX96=D$.getSqrtRatioAtTick(o.tickNext),c=x$.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,c$)),a.liquidity=m$.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=D$.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}(),JQ(e,[{key:`token0Price`,get:function(){return this._token0Price??=new HX(this.token0,this.token1,f$,Z.default.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:`token1Price`,get:function(){return this._token1Price??=new HX(this.token1,this.token0,Z.default.multiply(this.sqrtRatioX96,this.sqrtRatioX96),f$)}},{key:`chainId`,get:function(){return this.token0.chainId}},{key:`tickSpacing`,get:function(){return s$[this.fee]}}]),e}(),W$=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>=D$.MIN_TICK&&r%t.tickSpacing===0)&&Q(!1),!(i<=D$.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 VX(1).subtract(e)),n=this.pool.token0Price.asFraction.multiply(e.add(1)),r=P$(t.numerator,t.denominator);Z.default.lessThanOrEqual(r,D$.MIN_SQRT_RATIO)&&(r=Z.default.add(D$.MIN_SQRT_RATIO,Z.default.BigInt(1)));var i=P$(n.numerator,n.denominator);return Z.default.greaterThanOrEqual(i,D$.MAX_SQRT_RATIO)&&(i=Z.default.subtract(D$.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 U$(this.pool.token0,this.pool.token1,this.pool.fee,i,0,D$.getTickAtSqrtRatio(i)),o=new U$(this.pool.token0,this.pool.token1,this.pool.fee,r,0,D$.getTickAtSqrtRatio(r)),s=e.fromAmounts(YQ({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 U$(this.pool.token0,this.pool.token1,this.pool.fee,i,0,D$.getTickAtSqrtRatio(i)),o=new e({pool:new U$(this.pool.token0,this.pool.token1,this.pool.fee,r,0,D$.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=D$.getSqrtRatioAtTick(r),l=D$.getSqrtRatioAtTick(i);return new e({pool:n,tickLower:r,tickUpper:i,liquidity:R$(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})},JQ(e,[{key:`token0PriceLower`,get:function(){return z$(this.pool.token0,this.pool.token1,this.tickLower)}},{key:`token0PriceUpper`,get:function(){return z$(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:`amount0`,get:function(){return this._token0Amount===null&&(this.pool.tickCurrent<this.tickLower?this._token0Amount=RX.fromRawAmount(this.pool.token0,y$.getAmount0Delta(D$.getSqrtRatioAtTick(this.tickLower),D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this.pool.tickCurrent<this.tickUpper?this._token0Amount=RX.fromRawAmount(this.pool.token0,y$.getAmount0Delta(this.pool.sqrtRatioX96,D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this._token0Amount=RX.fromRawAmount(this.pool.token0,l$)),this._token0Amount}},{key:`amount1`,get:function(){return this._token1Amount===null&&(this.pool.tickCurrent<this.tickLower?this._token1Amount=RX.fromRawAmount(this.pool.token1,l$):this.pool.tickCurrent<this.tickUpper?this._token1Amount=RX.fromRawAmount(this.pool.token1,y$.getAmount1Delta(D$.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!1)):this._token1Amount=RX.fromRawAmount(this.pool.token1,y$.getAmount1Delta(D$.getSqrtRatioAtTick(this.tickLower),D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount}},{key:`mintAmounts`,get:function(){return this._mintAmounts===null?this.pool.tickCurrent<this.tickLower?{amount0:y$.getAmount0Delta(D$.getSqrtRatioAtTick(this.tickLower),D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:l$}:this.pool.tickCurrent<this.tickUpper?{amount0:y$.getAmount0Delta(this.pool.sqrtRatioX96,D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:y$.getAmount1Delta(D$.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:l$,amount1:y$.getAmount1Delta(D$.getSqrtRatioAtTick(this.tickLower),D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts}}]),e}(),G$=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=$Q(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 JQ(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 HX(this.input,this.output,e.denominator,e.numerator)}}]),e}();function K$(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 q$=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=$Q(t),c;!(c=s()).done;)for(var l=c.value.route,u=$Q(l.pools),d;!(d=u()).done;){var f=d.value;o.add(U$.getAddress(f.token0,f.token1,f.fee))}a!=o.size&&Q(!1),this.swaps=t,this.tradeType=n}e.exactIn=function(){var t=KQ(t$.mark(function t(n,r){return t$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(`return`,e.fromRoute(n,r,DX.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=KQ(t$.mark(function t(n,r){return t$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(`return`,e.fromRoute(n,r,DX.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=KQ(t$.mark(function t(n,r,i){var a,o,s,c,l,u,d,f,p,m,h;return t$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(a=Array(n.tokenPath.length),i!==DX.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=RX.fromFractionalAmount(n.input,r.numerator,r.denominator),s=RX.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=RX.fromFractionalAmount(n.input,a[0].numerator,a[0].denominator),s=RX.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=KQ(t$.mark(function t(n,r){var i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b;return t$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:i=[],a=$Q(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!==DX.EXACT_INPUT){t.next=25;break}!l.currency.equals(c.input)&&Q(!1),d=RX.fromFractionalAmount(c.input,l.numerator,l.denominator),u[0]=RX.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=RX.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=RX.fromFractionalAmount(c.output,l.numerator,l.denominator),u[u.length-1]=RX.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=RX.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(YQ({},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(l$)&&Q(!1),this.tradeType===DX.EXACT_OUTPUT)return t;var n=new IX(u$).add(e).invert().multiply(t.quotient).quotient;return RX.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(t===void 0&&(t=this.inputAmount),e.lessThan(l$)&&Q(!1),this.tradeType===DX.EXACT_INPUT)return t;var n=new IX(u$).add(e).multiply(t.quotient).quotient;return RX.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new HX(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=KQ(t$.mark(function t(n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b;return t$.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=QX,t.t2=c,t.next=33,e.fromRoute(new G$([].concat(o,[_]),r.currency,i),r,DX.EXACT_INPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=K$,(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=KQ(t$.mark(function t(n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b;return t$.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=QX,t.t2=c,t.next=33,e.fromRoute(new G$([_].concat(o),r,i.currency),i,DX.EXACT_OUTPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=K$,(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}(),JQ(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)},RX.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)},RX.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:`executionPrice`,get:function(){return this._executionPrice??=new HX(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=RX.fromRawAmount(this.outputAmount.currency,0),t=$Q(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 VX(s.numerator,s.denominator),this._priceImpact}}]),e}(),J$=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}();J$.INTERFACE=new kQ(LQ);function Y$(e){return`nonce`in e}var X$=function(){function e(){}return e.encodePermit=function(t,n){return Y$(n)?e.INTERFACE.encodeFunctionData(`selfPermitAllowed`,[t.address,M$(n.nonce),M$(n.expiry),n.v,n.r,n.s]):e.INTERFACE.encodeFunctionData(`selfPermit`,[t.address,M$(n.amount),M$(n.deadline),n.v,n.r,n.s])},e}();X$.INTERFACE=new kQ(zQ);var Z$=function(){function e(){}return e.encodeFeeBips=function(e){return M$(e.multiply(1e4).quotient)},e.encodeUnwrapWETH9=function(t,n,r){if(n=GX(n),r){var i=this.encodeFeeBips(r.fee),a=GX(r.recipient);return e.INTERFACE.encodeFunctionData(`unwrapWETH9WithFee`,[M$(t),n,i,a])}else return e.INTERFACE.encodeFunctionData(`unwrapWETH9`,[M$(t),n])},e.encodeSweepToken=function(t,n,r,i){if(r=GX(r),i){var a=this.encodeFeeBips(i.fee),o=GX(i.recipient);return e.INTERFACE.encodeFunctionData(`sweepTokenWithFee`,[t.address,M$(n),r,a,o])}else return e.INTERFACE.encodeFunctionData(`sweepToken`,[t.address,M$(n),r])},e.encodeRefundETH=function(){return e.INTERFACE.encodeFunctionData(`refundETH`)},e}();Z$.INTERFACE=new kQ(BQ);var Q$=M$(Z.default.subtract(Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(128)),Z.default.BigInt(1)));function $$(e){return Object.keys(e).some(function(e){return e===`recipient`})}var e1=function(){function e(){}return e.encodeCreate=function(t){return e.INTERFACE.encodeFunctionData(`createAndInitializePoolIfNecessary`,[t.token0.address,t.token1.address,t.fee,M$(t.sqrtRatioX96)])},e.createCallParameters=function(e){return{calldata:this.encodeCreate(e),value:M$(0)}},e.addCallParameters=function(t,n){!Z.default.greaterThan(t.liquidity,l$)&&Q(!1);var r=[],i=t.mintAmounts,a=i.amount0,o=i.amount1,s=t.mintAmountsWithSlippage(n.slippageTolerance),c=M$(s.amount0),l=M$(s.amount1),u=M$(n.deadline);if($$(n)&&n.createPool&&r.push(this.encodeCreate(t.pool)),n.token0Permit&&r.push(X$.encodePermit(t.pool.token0,n.token0Permit)),n.token1Permit&&r.push(X$.encodePermit(t.pool.token1,n.token1Permit)),$$(n)){var d=GX(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:M$(a),amount1Desired:M$(o),amount0Min:c,amount1Min:l,recipient:d,deadline:u}]))}else r.push(e.INTERFACE.encodeFunctionData(`increaseLiquidity`,[{tokenId:M$(n.tokenId),amount0Desired:M$(a),amount1Desired:M$(o),amount0Min:c,amount1Min:l,deadline:u}]));var f=M$(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,l$)&&r.push(Z$.encodeRefundETH()),f=M$(m)}return{calldata:J$.encodeMulticall(r),value:f}},e.encodeCollect=function(t){var n=[],r=M$(t.tokenId),i=t.expectedCurrencyOwed0.currency.isNative||t.expectedCurrencyOwed1.currency.isNative,a=GX(t.recipient);if(n.push(e.INTERFACE.encodeFunctionData(`collect`,[{tokenId:r,recipient:i?i$:a,amount0Max:Q$,amount1Max:Q$}])),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(Z$.encodeUnwrapWETH9(o,a)),n.push(Z$.encodeSweepToken(s,c,a))}return n},e.collectCallParameters=function(t){var n=e.encodeCollect(t);return{calldata:J$.encodeMulticall(n),value:M$(0)}},e.removeCallParameters=function(t,n){var r=[],i=M$(n.deadline),a=M$(n.tokenId),o=new W$({pool:t.pool,liquidity:n.liquidityPercentage.multiply(t.liquidity).quotient,tickLower:t.tickLower,tickUpper:t.tickUpper});!Z.default.greaterThan(o.liquidity,l$)&&Q(!1);var s=o.burnAmountsWithSlippage(n.slippageTolerance),c=s.amount0,l=s.amount1;n.permit&&r.push(e.INTERFACE.encodeFunctionData(`permit`,[GX(n.permit.spender),a,M$(n.permit.deadline),n.permit.v,n.permit.r,n.permit.s])),r.push(e.INTERFACE.encodeFunctionData(`decreaseLiquidity`,[{tokenId:a,liquidity:M$(o.liquidity),amount0Min:M$(c),amount1Min:M$(l),deadline:i}]));var u=n.collectOptions,d=u.expectedCurrencyOwed0,f=u.expectedCurrencyOwed1,p=XQ(u,[`expectedCurrencyOwed0`,`expectedCurrencyOwed1`]);return r.push.apply(r,e.encodeCollect(YQ({tokenId:M$(n.tokenId),expectedCurrencyOwed0:d.add(RX.fromRawAmount(d.currency,c)),expectedCurrencyOwed1:f.add(RX.fromRawAmount(f.currency,l))},p))),n.liquidityPercentage.equalTo(u$)?n.burnToken&&r.push(e.INTERFACE.encodeFunctionData(`burn`,[a])):n.burnToken===!0&&Q(!1),{calldata:J$.encodeMulticall(r),value:M$(0)}},e.safeTransferFromParameters=function(t){var n=GX(t.recipient),r=GX(t.sender);return{calldata:t.data?e.INTERFACE.encodeFunctionData(`safeTransferFrom(address,address,uint256,bytes)`,[r,n,M$(t.tokenId),t.data]):e.INTERFACE.encodeFunctionData(`safeTransferFrom(address,address,uint256)`,[r,n,M$(t.tokenId)]),value:M$(0)}},e}();e1.INTERFACE=new kQ(RQ);var t1=function(){function e(){}return e.quoteCallParameters=function(e,t,n,r){r===void 0&&(r={});var i=e.pools.length===1,a=M$(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:M$(r?.sqrtPriceLimitX96??0)},l=YQ({},c,n==DX.EXACT_INPUT?{amountIn:a}:{amount:a}),u=[c.tokenIn,c.tokenOut,c.fee,a,c.sqrtPriceLimitX96],d=n===DX.EXACT_INPUT?`quoteExactInputSingle`:`quoteExactOutputSingle`;o=s.encodeFunctionData(d,r.useQuoterV2?[l]:u)}else{r?.sqrtPriceLimitX96!==void 0&&Q(!1);var f=N$(e,n===DX.EXACT_OUTPUT),p=n===DX.EXACT_INPUT?`quoteExactInput`:`quoteExactOutput`;o=s.encodeFunctionData(p,[f,a])}return{calldata:o,value:M$(0)}},e}();t1.V1INTERFACE=new kQ(VQ),t1.V2INTERFACE=new kQ(HQ);var n1=function(){function e(){}return e.encodeClaim=function(t,n){var r=[];r.push(e.INTERFACE.encodeFunctionData(`unstakeToken`,[this._encodeIncentiveKey(t),M$(n.tokenId)]));var i=GX(n.recipient),a=n.amount??0;return r.push(e.INTERFACE.encodeFunctionData(`claimReward`,[t.rewardToken.address,i,M$(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),M$(n.tokenId)]))}return{calldata:J$.encodeMulticall(r),value:M$(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=GX(n.owner);return r.push(e.INTERFACE.encodeFunctionData(`withdrawToken`,[M$(n.tokenId),s,n.data?n.data:M$(0)])),{calldata:J$.encodeMulticall(r),value:M$(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=bQ.encode([e.INCENTIVE_KEY_ABI+`[]`],[r])}else n=bQ.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=GX(e.refundee);return{rewardToken:e.rewardToken.address,pool:U$.getAddress(n,r,i),startTime:M$(e.startTime),endTime:M$(e.endTime),refundee:a}},e}();n1.INTERFACE=new kQ(UQ),n1.INCENTIVE_KEY_ABI=`tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)`;var r1=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=RX.fromRawAmount(t[0].inputAmount.currency,0),c=RX.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===DX.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(X$.encodePermit(r.inputAmount.currency,n.inputTokenPermit)));for(var h=GX(n.recipient),g=M$(n.deadline),_=$Q(t),v;!(v=_()).done;)for(var y=v.value,b=$Q(y.swaps),x;!(x=b()).done;){var S=x.value,C=S.route,w=S.inputAmount,T=S.outputAmount,E=M$(y.maximumAmountIn(n.slippageTolerance,w).quotient),D=M$(y.minimumAmountOut(n.slippageTolerance,T).quotient);if(C.pools.length===1)if(y.tradeType===DX.EXACT_INPUT){var O={tokenIn:C.tokenPath[0].address,tokenOut:C.tokenPath[1].address,fee:C.pools[0].fee,recipient:p?i$:h,deadline:g,amountIn:E,amountOutMinimum:D,sqrtPriceLimitX96:M$(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?i$:h,deadline:g,amountOut:D,amountInMaximum:E,sqrtPriceLimitX96:M$(n.sqrtPriceLimitX96??0)};o.push(e.INTERFACE.encodeFunctionData(`exactOutputSingle`,[k]))}else{n.sqrtPriceLimitX96!==void 0&&Q(!1);var A=N$(C,y.tradeType===DX.EXACT_OUTPUT);if(y.tradeType===DX.EXACT_INPUT){var j={path:A,recipient:p?i$:h,deadline:g,amountIn:E,amountOutMinimum:D};o.push(e.INTERFACE.encodeFunctionData(`exactInput`,[j]))}else{var M={path:A,recipient:p?i$:h,deadline:g,amountOut:D,amountInMaximum:E};o.push(e.INTERFACE.encodeFunctionData(`exactOutput`,[M]))}}}return p&&(n.fee?f?o.push(Z$.encodeUnwrapWETH9(l.quotient,h,n.fee)):o.push(Z$.encodeSweepToken(r.outputAmount.currency.wrapped,l.quotient,h,n.fee)):o.push(Z$.encodeUnwrapWETH9(l.quotient,h))),u&&o.push(Z$.encodeRefundETH()),{calldata:J$.encodeMulticall(o),value:M$(m.quotient)}},e}();r1.INTERFACE=new kQ(WQ);var i1=[{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`}],a1=[{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`}],o1=class extends Error{message;code;constructor(e,t){super(e),this.message=e,this.code=t}},s1=class extends o1{constructor(e){super(e||`Invalid configuration`,`INVALID_CONFIGURATION`)}},c1=class extends o1{constructor(e,t){let n=`Chain with ID ${e} is not a supported chain in environment ${t}`;super(n,`CHAIN_NOT_SUPPORTED`)}},l1=class extends o1{constructor(e){super(e,`INVALID_SLIPPAGE`)}},u1=class extends o1{constructor(e){super(e,`INVALID_MAX_HOPS`)}},d1=class extends o1{constructor(e){super(e,`INVALID_ADDRESS`)}},f1=class extends o1{constructor(){super(`token in and token out addresses must be different`,`DUPLICATE_ADDRESSES`)}},p1=class extends o1{constructor(){super(`no routes available`,`NO_ROUTES_AVAILABLE`)}},m1=class extends o1{constructor(e){super(e,`PROVIDER_CALL_ERROR`)}},h1=class extends o1{constructor(e){super(e,`APPROVE_ERROR`)}};let g1=.1,_1=1e4,v1={"0xcdca1753":[`uint256`,`uint160[]`,`uint32[]`,`uint256`],"0xc6a5026a":[`uint256`,`uint160`,`uint32`,`uint256`],"0x2f80bb1d":[`uint256`,`uint160[]`,`uint32[]`,`uint256`],"0xbd21704a":[`uint256`,`uint160`,`uint32`,`uint256`]};function y1(e,t){return e===t||e.token0.equals(t.token0)&&e.token1.equals(t.token1)&&e.fee===t.fee}let b1=TM(`decimals()`).substring(0,10);async function x1(e,t,n){if(e===`native`)return n.decimals;try{let n=await t.call({to:e,data:b1});return parseInt(n,16)}catch(e){throw new m1(`failed to get ERC20 decimals: ${e instanceof Error?e.message:`Unknown Error`}`)}}function S1(e){if(e===`0x0000000000000000000000000000000000000000`)return!1;try{return hj(e),!0}catch{return!1}}let C1=e=>e===`native`||S1(e),w1=e=>new ZY(e.chainId,e.address,e.decimals,e.symbol,e.name),T1=e=>({chainId:e.chainId,address:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name,type:`erc20`}),E1=e=>{let t=w1(e.token);return VY.fromRawAmount(t,e.value.toString())},D1=(e,t)=>({value:e,token:t}),O1=e=>e.token.type===`erc20`,k1=e=>e.token.type===`native`,A1=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}},M1=(e,t)=>({value:e.value+t.value,token:e.token}),N1=(e,t)=>{if(O1(e)&&O1(t))return j1(e,t);if(k1(e)&&k1(t))return M1(e,t);throw Error(`Token mismatch: token types must be the same`)},P1=(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}},F1=(e,t)=>({value:e.value-t.value,token:e.token}),I1=(e,t)=>{if(O1(e)&&O1(t))return P1(e,t);if(k1(e)&&k1(t))return F1(e,t);throw Error(`Token mismatch: token types must be the same`)},L1=e=>e.type===`native`?{address:`native`,chainId:e.chainId,decimals:e.decimals,symbol:e.symbol,name:e.name}:e,R1=e=>({token:L1(e.token),value:e.value}),z1=()=>Math.floor(Date.now()/1e3)+900,B1=13473,V1=13371,H1={chainId:B1,decimals:18,symbol:`tIMX`,name:`Immutable Testnet Token`,type:`native`},U1={chainId:B1,address:`0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439`,decimals:18,symbol:`WIMX`,name:`Wrapped Immutable Testnet Token`,type:`erc20`},W1=[U1],G1={chainId:V1,decimals:18,symbol:`IMX`,name:`Immutable Token`,type:`native`},K1={chainId:V1,address:`0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d`,decimals:18,symbol:`WIMX`,name:`Wrapped Immutable Token`,type:`erc20`},q1=[K1,{chainId:V1,address:`0x52a6c53869ce09a731cd772f245b97a4401d3348`,decimals:18,symbol:`ETH`,name:`Ethereum`,type:`erc20`},{chainId:V1,address:`0x6de8aCC0D406837030CE4dd28e7c08C5a96a30d2`,decimals:6,symbol:`USDC`,name:`USDC`,type:`erc20`},{chainId:V1,address:`0x68bcc7F1190AF20e7b572BCfb431c3Ac10A936Ab`,decimals:6,symbol:`USDT`,name:`USDT`,type:`erc20`}],J1=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}},Y1=async(e,t)=>{let n=await J1(e).catch(()=>null);return n?D1(n.maxFeePerGas,t):null},X1=(e,t,n)=>{let r=D1(n*t.value,t.token);return e?D1(r.value+t.value*BigInt(50876),t.token):r},Z1=[{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 Q1=class{static abi=Z1;static createInterface(){return new bF(Z1)}static connect(e,t){return new mI(e,Z1,t)}};let $1=async(e,t,n,r)=>{let i=Q1.connect(n.token.address,e),a;try{a=await i.allowance(t,r)}catch(e){throw new h1(`failed to get allowance: ${e instanceof Error?e.message:`Unknown Error`}`)}return!(n.value-a<=0)},e0=(e,t,n)=>{if(e===n)throw new h1(`owner and spender addresses are the same`);return{data:Q1.createInterface().encodeFunctionData(`approve`,[n,t.value]),to:t.token.address,value:0,from:e}},t0=(e,t,n,r,i)=>{let a=e===DY.EXACT_INPUT?t:n;return O1(a)?{spender:i.length===0?r.routerAddress:r.secondaryFeeAddress,amount:a}:null},n0=async(e,t,n,r)=>await $1(e,t,n,r)?e0(t,n,r):null;async function r0(e,t,n,r){return await Q1.connect(r,e).approve.estimateGas(n,JA,{from:t})}let i0=async(e,t,n,r)=>{let i=await n0(e,t,n.amount,n.spender);if(!i)return null;let a=await r0(e,t,n.spender,n.amount.token.address),o=r?X1(!1,r,a):null;return{transaction:i,gasFeeEstimate:o?R1(o):null}},a0=e=>e.type===`native`;var o0=class{nativeToken;wrappedToken;constructor(e,t){this.nativeToken=e,this.wrappedToken=t}wrapAmount(e){return D1(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 D1(e.value,this.nativeToken)}maybeWrapToken(e){return a0(e)?this.wrappedToken:e}maybeWrapAmount(e){return D1(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 s0=e=>{if(e.toString().split(`.`).length===1)return new WY(e,100);let t=(e/100).toString().split(`.`);return new WY(t[0]+t[1],10**t[1].length)};function c0(e){return e.tradeType===DY.EXACT_INPUT?e.amountOut:e.amountIn}function l0(e,t,n){let r=s0(n).add(1),i=(e===DY.EXACT_INPUT?r.invert():r).multiply(t.toString()).quotient;return BigInt(i.toString())}let u0=(e,t,n,r)=>{let i=c0(t),a=a0(r)?e.unwrapAmount(i):i;return{quotedAmount:a,quotedAmountWithMaxSlippage:D1(l0(t.tradeType,a.value,n),r)}};function d0(e,t,n,r){return n===DY.EXACT_OUTPUT?r.maybeWrapAmount(e):(t.addAmount(e),r.maybeWrapAmount(t.amountLessFees()))}var f0=class{secondaryFees;amount;constructor(e,t){this.secondaryFees=e,this.amount=D1(BigInt(0),t)}get token(){return this.amount.token}addAmount(e){this.amount=N1(this.amount,e)}amountWithFeesApplied(){return N1(this.amount,this.total())}amountLessFees(){return I1(this.amount,this.total())}withAmounts(){return this.secondaryFees.map(e=>{let t=this.amount.value*BigInt(e.basisPoints)/BigInt(_1);return{...e,amount:D1(t,this.amount.token)}})}total(){let e=D1(BigInt(0),this.amount.token);for(let t of this.secondaryFees){let n=this.amount.value*BigInt(t.basisPoints)/BigInt(_1);e=N1(e,D1(n,this.amount.token))}return e}};let p0=[{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`}],m0=`0x60806040523480156200001157600080fd5b50604051620034dd380380620034dd83398101604081905262000034916200015c565b6001805460ff191690556200004b6000846200009e565b600180546001600160a01b039384166101008102610100600160a81b03199092169190911790915560038054929093166001600160a01b03199283161790925560028054909116909117905550620001a6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200013b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000fa3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b03811681146200015757600080fd5b919050565b6000806000606084860312156200017257600080fd5b6200017d846200013f565b92506200018d602085016200013f565b91506200019d604085016200013f565b90509250925092565b61332780620001b66000396000f3fe6080604052600436106101175760003560e01c806358e81a50116100a05780638456cb59116100645780638456cb59146102c457806391d14854146102d9578063a217fddf146102f9578063ac9650d81461030e578063d547741f1461032e57600080fd5b806358e81a50146102465780635ae401dc146102595780635c975abb146102795780635ebca7991461029157806368742da6146102a457600080fd5b80632f2ff15d116100e75780632f2ff15d146101cb57806336568abe146101eb578063383ebb0b1461020b5780633f4ba83a1461021e5780635640f6591461023357600080fd5b80620fa9fb1461012357806301ffc9a714610145578063116944b21461017a578063248a9ca31461019b57600080fd5b3661011e57005b600080fd5b34801561012f57600080fd5b5061014361013e366004612ab8565b61034e565b005b34801561015157600080fd5b50610165610160366004612af1565b61041a565b60405190151581526020015b60405180910390f35b61018d610188366004612c89565b610451565b604051908152602001610171565b3480156101a757600080fd5b5061018d6101b6366004612cde565b60009081526020819052604090206001015490565b3480156101d757600080fd5b506101436101e6366004612cf7565b610771565b3480156101f757600080fd5b50610143610206366004612cf7565b610796565b61018d610219366004612ddf565b610819565b34801561022a57600080fd5b50610143610b86565b61018d610241366004612ddf565b610bd6565b61018d610254366004612c89565b610ee4565b61026c610267366004612e8b565b61121e565b6040516101719190612f26565b34801561028557600080fd5b5060015460ff16610165565b61014361029f366004612cde565b611255565b3480156102b057600080fd5b506101436102bf366004612f88565b6113ad565b3480156102d057600080fd5b50610143611428565b3480156102e557600080fd5b506101656102f4366004612cf7565b611476565b34801561030557600080fd5b5061018d600081565b34801561031a57600080fd5b5061026c610329366004612fa5565b61149f565b34801561033a57600080fd5b50610143610349366004612cf7565b611593565b6103787f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b610394576040516282b42960e81b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff9190612fe6565b90506104156001600160a01b03831684836115b8565b505050565b60006001600160e01b03198216637965db0b60e01b148061044b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061045f60015460ff1690565b1561047d5760405163ab35696f60e01b815260040160405180910390fd5b61048a826060015161161b565b6104a75760405163519bdea760e01b815260040160405180910390fd5b608082015134801561065a57836080015181146104d7576040516342f7487960e11b815260040160405180910390fd5b60035484516001600160a01b03908116911614610507576040516324d0121760e01b815260040160405180910390fd5b60008061056f866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b828210156105655761055660408302860136819003810190612fff565b81526020019060010190610539565b5050505050611641565b608088018290526001546040516304e45aaf60e01b815292945090925061010090046001600160a01b0316906304e45aaf9084906105b1908a90600401613056565b60206040518083038185885af11580156105cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105f49190612fe6565b945061065384828a8a808060200260200160405190810160405280939291908181526020016000905b828210156106495761063a60408302860136819003810190612fff565b8152602001906001019061061d565b5050505050611679565b5050610768565b6000806106b8866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610565576106a960408302860136819003810190612fff565b8152602001906001019061068c565b60808801829052875191935091506106db906001600160a01b031633308561170c565b6001546040516304e45aaf60e01b81526101009091046001600160a01b0316906304e45aaf9061070f908990600401613056565b6020604051808303816000875af115801561072e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107529190612fe6565b9450610765866000015185838b8b61174a565b50505b50509392505050565b60008281526020819052604090206001015461078c8161184b565b6104158383611855565b6001600160a01b038116331461080b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61081582826118d9565b5050565b600061082760015460ff1690565b156108455760405163ab35696f60e01b815260040160405180910390fd5b610852826020015161161b565b61086f5760405163519bdea760e01b815260040160405180910390fd5b600061087e836000015161193e565b606084015190915034908115610a30576003546001600160a01b038481169116146108bc576040516324d0121760e01b815260040160405180910390fd5b846060015182146108e0576040516342f7487960e11b815260040160405180910390fd5b600061094286606001518989808060200260200160405190810160405280939291908181526020016000905b828210156109385761092960408302860136819003810190612fff565b8152602001906001019061090c565b5050505050611974565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b81346908490610985908b906004016130fc565b60206040518083038185885af11580156109a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109c89190612fe6565b9050610a2781848b8b808060200260200160405190810160405280939291908181526020016000905b82821015610a1d57610a0e60408302860136819003810190612fff565b815260200190600101906109f1565b50505050506119c3565b95505050610b7c565b6000610a938487606001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a8957610a7a60408302860136819003810190612fff565b81526020019060010190610a5d565b5050505050611aab565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b8134690610ad4908a906004016130fc565b6020604051808303816000875af1158015610af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b179190612fe6565b9050610b778582858c8c808060200260200160405190810160405280939291908181526020016000905b82821015610b6d57610b5e60408302860136819003810190612fff565b81526020019060010190610b41565b5050505050611b03565b955050505b5050509392505050565b610bb07fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b533611476565b610bcc576040516282b42960e81b815260040160405180910390fd5b610bd4611b57565b565b6000610be460015460ff1690565b15610c025760405163ab35696f60e01b815260040160405180910390fd5b610c0f826020015161161b565b610c2c5760405163519bdea760e01b815260040160405180910390fd5b6000610c3b8360000151611ba9565b6040840151909150348015610dd75784604001518114610c6e576040516342f7487960e11b815260040160405180910390fd5b6003546001600160a01b03848116911614610c9c576040516324d0121760e01b815260040160405180910390fd5b600080610cf68588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610ce760408302860136819003810190612fff565b81526020019060010190610cca565b6040898101839052600154905163b858183f60e01b815292945090925061010090046001600160a01b03169063b858183f908490610d38908b906004016130fc565b60206040518083038185885af1158015610d56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7b9190612fe6565b9550610dd084828b8b808060200260200160405190810160405280939291908181526020016000905b8282101561064957610dc160408302860136819003810190612fff565b81526020019060010190610da4565b5050610b7c565b600080610e318588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610e2260408302860136819003810190612fff565b81526020019060010190610e05565b604089018290529092509050610e526001600160a01b03861633308561170c565b60015460405163b858183f60e01b81526101009091046001600160a01b03169063b858183f90610e86908a906004016130fc565b6020604051808303816000875af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612fe6565b9550610ed88585838c8c61174a565b50505050509392505050565b6000610ef260015460ff1690565b15610f105760405163ab35696f60e01b815260040160405180910390fd5b610f1d826060015161161b565b610f3a5760405163519bdea760e01b815260040160405180910390fd5b60a0820151349081156110d75760035484516001600160a01b03908116911614610f77576040516324d0121760e01b815260040160405180910390fd5b8360a001518214610f9b576040516342f7487960e11b815260040160405180910390fd5b6000610ff38560a001518888808060200260200160405190810160405280939291908181526020016000905b8282101561093857610fe460408302860136819003810190612fff565b81526020019060010190610fc7565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df908490611036908a90600401613056565b60206040518083038185885af1158015611054573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110799190612fe6565b90506110ce81848a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a1d576110bf60408302860136819003810190612fff565b815260200190600101906110a2565b94505050610768565b600061113485600001518660a001518989808060200260200160405190810160405280939291908181526020016000905b82821015610a895761112560408302860136819003810190612fff565b81526020019060010190611108565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df90611175908990600401613056565b6020604051808303816000875af1158015611194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b89190612fe6565b9050611212866000015182858b8b808060200260200160405190810160405280939291908181526020016000905b82821015610b6d5761120360408302860136819003810190612fff565b815260200190600101906111e6565b98975050505050505050565b6060834211156112415760405163387b2e5560e11b815260040160405180910390fd5b61124b838361149f565b90505b9392505050565b60015460ff16156112795760405163ab35696f60e01b815260040160405180910390fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190612fe6565b905081811015611313576040516342fb4ceb60e11b81526004810183905260248101829052604401610802565b801561081557600354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b5050505060006113833383611bb5565b905080610415576040516342fb4ceb60e11b81526004810184905260248101839052604401610802565b6113d77f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b6113f3576040516282b42960e81b815260040160405180910390fd5b47156114255760006114058247611bb5565b90508061081557604051633398652560e11b815260040160405180910390fd5b50565b6114527ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f633611476565b61146e576040516282b42960e81b815260040160405180910390fd5b610bd4611c5f565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b038111156114b9576114b9612b66565b6040519080825280602002602001820160405280156114ec57816020015b60608152602001906001900390816114d75790505b50905060005b8281101561158c5761155c308585848181106115105761151061310f565b90506020028101906115229190613125565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c9a92505050565b82828151811061156e5761156e61310f565b6020026020010181905250808061158490613181565b9150506114f2565b5092915050565b6000828152602081905260409020600101546115ae8161184b565b61041583836118d9565b6040516001600160a01b03831660248201526044810182905261041590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611cbf565b60006001600160a01b03821633148061044b57506001600160a01b038216301492915050565b60008061164d83611d94565b506116588484611e07565b509050611665818561319a565b91506116718583611f30565b935093915050565b600061168361202d565b905060006116928583866120a4565b90506000806116a18386611e07565b915091506116ae816120d0565b8315611703576000826116c1858a61319a565b6116cb919061319a565b905080156117015760006116df3383611bb5565b9050806116ff576040516382e4f46960e01b815260040160405180910390fd5b505b505b50505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526117449085906323b872dd60e01b906084016115e4565b50505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190612fe6565b905060006117c48683876120a4565b90506000611824828686808060200260200160405190810160405280939291908181526020016000905b8282101561181a5761180b60408302860136819003810190612fff565b815260200190600101906117ee565b5050505050611e07565b91505061183188826121af565b8215611701576117016001600160a01b03891633856115b8565b61142581336122b8565b61185f8282611476565b610815576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556118953390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6118e38282611476565b15610815576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000806014835161194f919061319a565b9050600061195f84836014612311565b905061196c81600061241e565b949350505050565b60008061198083611d94565b90506000611990826127106131ad565b905060006119a18661271084612483565b6003549091506119ba906001600160a01b031682611f30565b95945050505050565b60008060006119d28685611e07565b915091506119df816120d0565b600260009054906101000a90046001600160a01b03166001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a2f57600080fd5b505af1158015611a43573d6000803e3d6000fd5b505050506000828787611a56919061319a565b611a60919061319a565b90508015611a96576000611a743383611bb5565b905080611a94576040516382e4f46960e01b815260040160405180910390fd5b505b611aa083886131ad565b979650505050505050565b600080611ab783611d94565b90506000611ac7826127106131ad565b90506000611ad88661271084612483565b9050611ae48782611f30565b611af96001600160a01b03881633308961170c565b9695505050505050565b6000806000611b128685611e07565b91509150611b2087826124c3565b600082611b2d888861319a565b611b37919061319a565b9050611b4d6001600160a01b03891633836115b8565b61121283886131ad565b611b5f6125ca565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061044b828261241e565b600081471015611c075760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610802565b6040516001600160a01b038416908390600081818185875af1925050503d8060008114611c50576040519150601f19603f3d011682016040523d82523d6000602084013e611c55565b606091505b5090949350505050565b611c67612613565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611b8c565b606061124e83836040518060600160405280602781526020016132cb60279139612659565b6000611d14826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126c79092919063ffffffff16565b9050805160001480611d35575080806020019051810190611d3591906131c0565b6104155760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610802565b6000805b8251811015611dde57828181518110611db357611db361310f565b60200260200101516020015182611dca91906131ad565b915080611dd681613181565b915050611d98565b506103e8811115611e025760405163cd4e616760e01b815260040160405180910390fd5b919050565b6000606082516001600160401b03811115611e2457611e24612b66565b604051908082528060200260200182016040528015611e6957816020015b6040805180820190915260008082526020820152815260200190600190039081611e425790505b50905060005b8351811015611f28576000611eae858381518110611e8f57611e8f61310f565b602002602001015160200151612710886126d69092919063ffffffff16565b90506040518060400160405280868481518110611ecd57611ecd61310f565b6020026020010151600001516001600160a01b0316815260200182815250838381518110611efd57611efd61310f565b6020908102919091010152611f1281856131ad565b9350508080611f2090613181565b915050611e6f565b509250929050565b600154604051636eb1769f60e11b81523060048201526001600160a01b0361010090920482166024820152829184169063dd62ed3e90604401602060405180830381865afa158015611f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faa9190612fe6565b10156108155760015460405163095ea7b360e01b81526101009091046001600160a01b039081166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015612009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041591906131c0565b60025460408051630910874560e11b8152905160009247926001600160a01b03909116916312210e8a91600480820192879290919082900301818387803b15801561207757600080fd5b505af115801561208b573d6000803e3d6000fd5b5047925061209d91508390508261319a565b9250505090565b600082156120c857816120b7848661319a565b6120c1919061319a565b905061124e565b509192915050565b60005b81518110156108155760008282815181106120f0576120f061310f565b60200260200101519050600061210e82600001518360200151611bb5565b90508061214557815160208301516040516208c3b360e61b81526001600160a01b0390921660048301526024820152604401610802565b81600001516001600160a01b0316336001600160a01b03167fe0e765ab26c1caf691c510426951246128b96830e49cc81d8c093fd551abac35846020015160405161219291815260200190565b60405180910390a3505080806121a790613181565b9150506120d3565b60005b815181101561041557612215338383815181106121d1576121d161310f565b6020026020010151600001518484815181106121ef576121ef61310f565b602002602001015160200151866001600160a01b031661170c909392919063ffffffff16565b8181815181106122275761222761310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106122835761228361310f565b60200260200101516020015160405161229e91815260200190565b60405180910390a4806122b081613181565b9150506121b2565b6122c28282611476565b610815576122cf81612778565b6122da83602061278a565b6040516020016122eb9291906131e2565b60408051601f198184030181529082905262461bcd60e51b825261080291600401613257565b60608161231f81601f6131ad565b101561235e5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610802565b61236882846131ad565b845110156123ac5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610802565b6060821580156123cb5760405191506000825260208201604052612415565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156124045780518352602092830192016123ec565b5050858452601f01601f1916604052505b50949350505050565b600061242b8260146131ad565b835110156124735760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610802565b500160200151600160601b900490565b60006124908484846126d6565b9050600082806124a2576124a261326a565b848609111561124e5760001981106124b957600080fd5b6001019392505050565b60005b8151811015610415576125278282815181106124e4576124e461310f565b6020026020010151600001518383815181106125025761250261310f565b602002602001015160200151856001600160a01b03166115b89092919063ffffffff16565b8181815181106125395761253961310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106125955761259561310f565b6020026020010151602001516040516125b091815260200190565b60405180910390a4806125c281613181565b9150506124c6565b60015460ff16610bd45760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610802565b60015460ff1615610bd45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610802565b6060600080856001600160a01b0316856040516126769190613280565b600060405180830381855af49150503d80600081146126b1576040519150601f19603f3d011682016040523d82523d6000602084013e6126b6565b606091505b5091509150611af986838387612925565b606061124b848460008561299e565b600083830281600019858709828110838203039150508084116126f857600080fd5b8060000361270b5750829004905061124e565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b606061044b6001600160a01b03831660145b6060600061279983600261329c565b6127a49060026131ad565b6001600160401b038111156127bb576127bb612b66565b6040519080825280601f01601f1916602001820160405280156127e5576020820181803683370190505b509050600360fc1b816000815181106128005761280061310f565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061282f5761282f61310f565b60200101906001600160f81b031916908160001a905350600061285384600261329c565b61285e9060016131ad565b90505b60018111156128d6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106128925761289261310f565b1a60f81b8282815181106128a8576128a861310f565b60200101906001600160f81b031916908160001a90535060049490941c936128cf816132b3565b9050612861565b50831561124e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610802565b6060831561299457825160000361298d576001600160a01b0385163b61298d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610802565b508161196c565b61196c8383612a6e565b6060824710156129ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610802565b600080866001600160a01b03168587604051612a1b9190613280565b60006040518083038185875af1925050503d8060008114612a58576040519150601f19603f3d011682016040523d82523d6000602084013e612a5d565b606091505b5091509150611aa087838387612925565b815115612a7e5781518083602001fd5b8060405162461bcd60e51b81526004016108029190613257565b6001600160a01b038116811461142557600080fd5b8035611e0281612a98565b60008060408385031215612acb57600080fd5b8235612ad681612a98565b91506020830135612ae681612a98565b809150509250929050565b600060208284031215612b0357600080fd5b81356001600160e01b03198116811461124e57600080fd5b60008083601f840112612b2d57600080fd5b5081356001600160401b03811115612b4457600080fd5b6020830191508360208260061b8501011115612b5f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612b9e57612b9e612b66565b60405290565b604051608081016001600160401b0381118282101715612b9e57612b9e612b66565b604051601f8201601f191681016001600160401b0381118282101715612bee57612bee612b66565b604052919050565b600060e08284031215612c0857600080fd5b612c10612b7c565b90508135612c1d81612a98565b81526020820135612c2d81612a98565b6020820152604082013562ffffff81168114612c4857600080fd5b6040820152612c5960608301612aad565b60608201526080820135608082015260a082013560a0820152612c7e60c08301612aad565b60c082015292915050565b60008060006101008486031215612c9f57600080fd5b83356001600160401b03811115612cb557600080fd5b612cc186828701612b1b565b9094509250612cd590508560208601612bf6565b90509250925092565b600060208284031215612cf057600080fd5b5035919050565b60008060408385031215612d0a57600080fd5b823591506020830135612ae681612a98565b600060808284031215612d2e57600080fd5b612d36612ba4565b905081356001600160401b0380821115612d4f57600080fd5b818401915084601f830112612d6357600080fd5b8135602082821115612d7757612d77612b66565b612d89601f8301601f19168201612bc6565b92508183528681838601011115612d9f57600080fd5b81818501828501376000818385010152828552612dbd818701612aad565b8186015250505050604082013560408201526060820135606082015292915050565b600080600060408486031215612df457600080fd5b83356001600160401b0380821115612e0b57600080fd5b612e1787838801612b1b565b90955093506020860135915080821115612e3057600080fd5b50612e3d86828701612d1c565b9150509250925092565b60008083601f840112612e5957600080fd5b5081356001600160401b03811115612e7057600080fd5b6020830191508360208260051b8501011115612b5f57600080fd5b600080600060408486031215612ea057600080fd5b8335925060208401356001600160401b03811115612ebd57600080fd5b612ec986828701612e47565b9497909650939450505050565b60005b83811015612ef1578181015183820152602001612ed9565b50506000910152565b60008151808452612f12816020860160208601612ed6565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612f7b57603f19888603018452612f69858351612efa565b94509285019290850190600101612f4d565b5092979650505050505050565b600060208284031215612f9a57600080fd5b813561124e81612a98565b60008060208385031215612fb857600080fd5b82356001600160401b03811115612fce57600080fd5b612fda85828601612e47565b90969095509350505050565b600060208284031215612ff857600080fd5b5051919050565b60006040828403121561301157600080fd5b604051604081018181106001600160401b038211171561303357613033612b66565b604052823561304181612a98565b81526020928301359281019290925250919050565b60e0810161044b828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b60008151608084526130ca6080850182612efa565b6020848101516001600160a01b0316908601526040808501519086015260609384015193909401929092525090919050565b60208152600061124e60208301846130b5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261313c57600080fd5b8301803591506001600160401b0382111561315657600080fd5b602001915036819003821315612b5f57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131935761319361316b565b5060010190565b8181038181111561044b5761044b61316b565b8082018082111561044b5761044b61316b565b6000602082840312156131d257600080fd5b8151801515811461124e57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161321a816017850160208801612ed6565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161324b816028840160208801612ed6565b01602801949350505050565b60208152600061124e6020830184612efa565b634e487b7160e01b600052601260045260246000fd5b60008251613292818460208701612ed6565b9190910192915050565b808202811582820484141761044b5761044b61316b565b6000816132c2576132c261316b565b50600019019056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220162c0f9d1b47c666f486fc65c7c7502bb0e7378e3166be6f93d98943154831c364736f6c63430008130033`,h0=e=>e.length>1;var g0=class extends hI{constructor(...e){h0(e)?super(...e):super(p0,m0,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=m0;static abi=p0;static createInterface(){return new bF(p0)}static connect(e,t){return new mI(e,p0,t)}};let _0=[{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`}],v0=`0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a`,y0=e=>e.length>1;var b0=class extends hI{constructor(...e){y0(e)?super(...e):super(_0,v0,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=v0;static abi=_0;static createInterface(){return new bF(_0)}static connect(e,t){return new mI(e,_0,t)}};let x0=[{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`}],S0=`0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a`,C0=e=>e.length>1;var w0=class extends hI{constructor(...e){C0(e)?super(...e):super(x0,S0,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=S0;static abi=x0;static createInterface(){return new bF(x0)}static connect(e,t){return new mI(e,x0,t)}};let T0=[{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 E0=class{static abi=T0;static createInterface(){return new bF(T0)}static connect(e,t){return new mI(e,T0,t)}};function D0(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=T1(o),l=T1(s),u=r===DY.EXACT_INPUT?n:D1(i,c),d=r===DY.EXACT_INPUT?D1(i,l):n,f=new GY(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 O0(e,t,n,r,i,a){let o=n.map(e=>t1.quoteCallParameters(e,E1(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=v1[o[a].substring(0,10)];if(!s)throw Error(`No quoting function signature found`);if(t.value===`0x`)return e;try{let o=D0(pF.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=A0(t),_j(e,bk(pF.defaultAbiCoder().encode([`address`,`address`,`uint24`],[t[0].address,t[1].address,n])),r??`0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`)}let A0=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},M0=[o$.LOWEST,o$.LOW,o$.MEDIUM,o$.HIGH],N0=(e,t,n)=>{let r=j0(e,t),i=[];for(let e=0;e<r.length;e++)for(let t=0;t<M0.length;t++){let a=k0({factoryAddress:n,erc20Pair:r[e],fee:M0[t]});i.push({erc20Pair:r[e],fee:M0[t],poolAddress:a})}return i};async function P0(e,t,n,r){let i=w0.createInterface(),a=F0(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 F0=(e,t)=>{let n=t?.getFunction(e);return n?t?.encodeFunctionData(n):void 0},I0=`liquidity`,L0=`slot0`,R0=async(e,t,n,r,i)=>{let a=N0(t,n,r),o=a.map(e=>e.poolAddress),s,c;try{[s,c]=await Promise.all([P0(e,L0,o,{blockTag:i}),P0(e,I0,o,{blockTag:i})])}catch(e){throw new m1(`failed multicall: ${e instanceof Error?e.message:`Unknown Error`}`)}let l=s.returnData,u=c.returnData,d=w0.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(L0,l[t].returnData),a=d.decodeFunctionResult(I0,u[t].returnData),o=i.sqrtPriceX96===BigInt(0),p=a[0]===BigInt(0);if(o||p)return;let m=new U$(w1(e.erc20Pair[0]),w1(e.erc20Pair[1]),e.fee,i.sqrtPriceX96.toString(),a.toString(),Number(i.tick));f.push(m)}),f};var z0=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 R0(this.multicallContract,s,this.routingTokens,this.routingContracts.coreFactory,i);if(c.length===0)throw new p1;let l=B0(a,o,c,r,[],[],a);if(l.length===0)throw new p1;return await this.getBestQuoteFromRoutes(l,e,n,i)}async getBestQuoteFromRoutes(e,t,n,r){let i=await O0(this.provider,this.routingContracts.quoter,e,t,n,r);if(i.length===0)throw new p1;if(n===DY.EXACT_INPUT)return this.bestQuoteForAmountIn(i);if(n===DY.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===DY.EXACT_INPUT?[t.token,n]:[n,t.token]}};let B0=(e,t,n,r,i=[],a=[],o=e)=>{let s=w1(e),c=w1(t),l=w1(o);for(let e of n){let u=e.involvesToken(s),d=i.find(t=>y1(e,t));if(!u||d)continue;let f=e.token0.equals(s)?e.token1:e.token0;f.equals(c)?a.push(new G$([...i,e],l,c)):r>1&&B0(T1(f),t,n,r-1,[...i,e],a,o)}return a};function V0(e,t,n,r,i,a,o,s,c){let l=[];return r.tradeType===DY.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===DY.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}])),A1(e)&&l.push(c.encodeFunctionData(`refundETH`)),A1(t)&&l.push(c.encodeFunctionData(`unwrapWETH9(uint256)`,[o])),l}function H0(e,t,n,r,i,a,o,s){let c=a.map(e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient})),l=[];return t.tradeType===DY.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===DY.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}])),A1(s)&&l.push(o.encodeFunctionData(`unwrapNativeToken`,[i])),l}function U0(e,t,n,r,i,a,o,s,c){let l=N$(i,r.tradeType===DY.EXACT_OUTPUT),u=[];return r.tradeType===DY.EXACT_INPUT&&u.push(s.encodeFunctionData(`exactInput`,[{path:l,recipient:n,amountIn:a,amountOutMinimum:o}])),r.tradeType===DY.EXACT_OUTPUT&&u.push(s.encodeFunctionData(`exactOutput`,[{path:l,recipient:n,amountInMaximum:a,amountOut:o}])),A1(e)&&u.push(c.encodeFunctionData(`refundETH`)),A1(t)&&u.push(c.encodeFunctionData(`unwrapWETH9(uint256)`,[o])),u}function W0(e,t,n,r,i,a,o,s){let c=N$(n,t.tradeType===DY.EXACT_OUTPUT),l=a.map(e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient})),u=[];return t.tradeType===DY.EXACT_INPUT&&u.push(o.encodeFunctionData(`exactInputWithSecondaryFee`,[l,{path:c,recipient:e,amountIn:r,amountOutMinimum:i}])),t.tradeType===DY.EXACT_OUTPUT&&u.push(o.encodeFunctionData(`exactOutputWithSecondaryFee`,[l,{path:c,recipient:e,amountInMaximum:r,amountOut:i}])),A1(s)&&u.push(o.encodeFunctionData(`unwrapNativeToken`,[i])),u}function G0(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?H0(n,r,u,c,l,i,a,t):V0(e,t,n,r,u,c,l,o,s):f?W0(n,r,u,c,l,i,a,t):U0(e,t,n,r,u,c,l,o,s)}function K0(e,t,n,r,i,a,o,s){let c=g0.createInterface(),l=G0(e,t,r,n,a,c,new bF(i1),new bF(a1),o,s);return c.encodeFunctionData(`multicall(uint256,bytes[])`,[i.deadlineOrPreviousBlockhash,l])}function q0(e,t,n,r,i,a,o){let s=q$.createUncheckedTrade({route:n.route,inputAmount:E1(n.amountIn),outputAmount:E1(n.amountOut),tradeType:n.tradeType}),c={slippageTolerance:s0(i),recipient:r,deadlineOrPreviousBlockhash:a},l=M$(s.maximumAmountIn(c.slippageTolerance).quotient);return{calldata:K0(e,t,s,r,c,o,l,M$(s.minimumAmountOut(c.slippageTolerance).quotient)),maximumAmountIn:l}}let J0=(e,t)=>e.type===`native`?t:`0x00`,Y0=(e,t,n,r,i)=>A1(e)?i.length===0?n:r:t;function X0(e,t,n,r,i,a,o,s,c,l){let{calldata:u,maximumAmountIn:d}=q0(e,t,n,Y0(t,r,o,s,l),i,a,l),f=l.length>0,p=c?X1(f,c,n.gasEstimate):null,m=J0(e,d);return{transaction:{data:u,to:l.length>0?s:o,value:m,from:r},gasFeeEstimate:p?R1(p):null}}let Z0=(e,t,n,r)=>{if(e.tradeType===DY.EXACT_OUTPUT){let t=a0(n.token)?r.unwrapAmount(e.amountIn):e.amountIn;return n.addAmount(t),r.maybeWrapAmount(n.amountWithFeesApplied())}return r.maybeWrapAmount(t)};function Q0(e,t,n,r){let i=Z0(e,t,n,r);return{gasEstimate:e.gasEstimate,route:e.route,amountIn:i,amountOut:e.amountOut,tradeType:e.tradeType,priceImpact:e.priceImpact}}let $0={[B1]:{multicall:`0x4857Dfd11c712e862eC362cEee29F7974B70EfcD`,coreFactory:`0x56c2162254b0E4417288786eE402c2B41d4e181e`,quoter:`0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd`,swapRouter:`0x0b012055F770AE7BB7a8303968A7Fb6088A2296e`,immutableSwapProxy:`0xDdBDa144cEbe1cCd68E746CDff8a6e4Be51A9e98`},[V1]:{multicall:`0xc7efb32470dEE601959B15f1f923e017C6A918cA`,coreFactory:`0x56c2162254b0E4417288786eE402c2B41d4e181e`,quoter:`0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd`,swapRouter:`0xE5a02c2Be08406c3fB36F9Aa29bF7C7A09CAe50B`,immutableSwapProxy:`0xD67cc11151dBccCC424A16F8963ece3D0539BD61`}},e2={[B1]:{chainId:B1,rpcUrl:`https://rpc.testnet.immutable.com`,contracts:$0[B1],commonRoutingTokens:W1,nativeToken:H1,wrappedNativeToken:U1}},t2={[V1]:{chainId:V1,rpcUrl:`https://rpc.immutable.com`,contracts:$0[V1],commonRoutingTokens:q1,nativeToken:G1,wrappedNativeToken:K1}},n2={[p.SANDBOX]:e2,[p.PRODUCTION]:t2};function r2(e){for(let t of[`rpcURL`,`exchangeContracts`,`commonRoutingTokens`,`nativeToken`])if(!e[t])throw new s1(`Missing override: ${t}`);Object.entries(e.exchangeContracts).forEach(([e,t])=>{if(!S1(t))throw new s1(`Invalid exchange contract address for ${e}`)})}function i2(e){let t=0;for(let n of e){if(!S1(n.recipient))throw new s1(`Invalid secondary fee recipient address: ${n.recipient}`);if(n.basisPoints<=0||n.basisPoints>1e3)throw new s1(`Invalid secondary fee basis points: ${n.basisPoints}`);t+=n.basisPoints}if(t>1e3)throw new s1(`Invalid total secondary fee basis points: ${t}`)}var a2=class{baseConfig;chain;secondaryFees=[];constructor({chainId:e,baseConfig:t,secondaryFees:n,overrides:r}){if(this.baseConfig=t,this.secondaryFees=n||[],i2(this.secondaryFees),r){r2(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=n2[t.environment][e];if(!i)throw new c1(e,t.environment);this.chain=i}};let o2=(e,t,n,r,i)=>({amount:R1(e),amountWithMaxSlippage:R1(t),slippage:n,priceImpact:r,fees:i.withAmounts().map(e=>({...e,amount:R1(e.amount)}))});var s2=class e{provider;batchProvider;router;chainId;nativeToken;wrappedNativeToken;secondaryFees;nativeTokenService;swapProxyContractAddress;routerContractAddress;constructor(e){let t=new a2(e);this.chainId=t.chain.chainId,this.nativeToken=t.chain.nativeToken,this.wrappedNativeToken=t.chain.wrappedNativeToken,this.nativeTokenService=new o0(this.nativeToken,this.wrappedNativeToken),this.secondaryFees=t.secondaryFees,this.routerContractAddress=t.chain.contracts.swapRouter,this.swapProxyContractAddress=t.chain.contracts.immutableSwapProxy,this.provider=new BL(t.chain.rpcUrl,t.chain.chainId,{staticNetwork:!0}),this.batchProvider=new BL(t.chain.rpcUrl,t.chain.chainId);let n=b0.connect(t.chain.contracts.multicall,this.provider);this.router=new z0(this.batchProvider,n,t.chain.commonRoutingTokens,t.chain.contracts)}static validate(e,t,n,r,i){if(!S1(i))throw new d1(`Error: invalid from address`);if(!C1(e))throw new d1(`Error: invalid token in address`);if(!C1(t))throw new d1(`Error: invalid token out address`);if(e.toLocaleLowerCase()===t.toLocaleLowerCase())throw new f1;if(n>10)throw new u1(`Error: max hops must be less than or equal to 10`);if(n<1)throw new u1(`Error: max hops must be greater than or equal to 1`);if(r>50)throw new l1(`Error: slippage percent must be less than or equal to 50`);if(r<0)throw new l1(`Error: slippage percent must be greater than or equal to 0`)}async getSecondaryFees(e){return this.secondaryFees.length===0||await g0.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?R1(X1(!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?R1(X1(!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:R1(a),amountWithMaxSlippage:R1(a),slippage:0,priceImpact:0,fees:[]},s=E0.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=[x1(n,this.batchProvider,this.nativeToken),x1(r,this.batchProvider,this.nativeToken),this.getSecondaryFees(this.batchProvider),Y1(this.batchProvider,this.nativeToken)],[u,d,f,p]=await Promise.all(l),m=this.parseTokenLiteral(n,u),h=this.parseTokenLiteral(r,d),[g,_]=c===DY.EXACT_INPUT?[m,h]:[h,m],v=D1(i,g);if(this.nativeTokenService.isWrapOrUnwrap(m,h))return this.getUnsignedWrapUnwrapTx(g,D1(i,m),t,p);let y=new f0(f,m),b=d0(v,y,c,this.nativeTokenService),x=Q0(await this.router.findOptimalRoute(b,this.nativeTokenService.maybeWrapToken(_),c,o),v,y,this.nativeTokenService),S=X0(m,h,x,t,a,s,this.routerContractAddress,this.swapProxyContractAddress,p,f),{quotedAmount:C,quotedAmountWithMaxSlippage:w}=u0(this.nativeTokenService,x,a,_),T=t0(c,v,w,{routerAddress:this.routerContractAddress,secondaryFeeAddress:this.swapProxyContractAddress},f),E=T?await i0(this.provider,t,T,p):null;return{quote:o2(C,w,a,Number(x.priceImpact.toSignificant(10)),y),approval:E,swap:S}}async getUnsignedSwapTxFromAmountIn(e,t,n,r,i=g1,a=3,o=z1()){return await this.getUnsignedSwapTx(e,t,n,BigInt(r),i,a,o,DY.EXACT_INPUT)}async getUnsignedSwapTxFromAmountOut(e,t,n,r,i=g1,a=3,o=z1()){return await this.getUnsignedSwapTx(e,t,n,BigInt(r),i,a,o,DY.EXACT_OUTPUT)}},c2=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 l2=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}({}),u2=function(e){return e.PROVIDER_UPDATED=`PROVIDER_UPDATED`,e}({}),d2=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}({}),f2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.NETWORK_SWITCH=`network-switch`,e.DISCONNECT_WALLET=`disconnect-wallet`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),p2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.REJECTED=`rejected`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),m2=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}({}),h2=function(e){return e.CRYPTO=`crypto`,e.DEBIT=`debit`,e.CREDIT=`credit`,e}({}),g2=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}({}),_2=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}({}),v2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),y2=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}({}),b2=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}({}),x2=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}({}),S2=function(e){return e.PAYMENT_METHOD_SELECTED=`PAYMENT_METHOD_SELECTED`,e.PAYMENT_TOKEN_SELECTED=`PAYMENT_TOKEN_SELECTED`,e.NETWORK_SWITCH=`NETWORK_SWITCH`,e}({}),C2=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}({}),w2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.CONNECT_SUCCESS=`connect-success`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),T2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.REJECTED=`rejected`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),E2=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}({}),D2=function(e){return e.LAYER1=`LAYER1`,e.LAYER2=`LAYER2`,e}({}),O2=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}({}),A2=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 M2=class{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=z.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 N2=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 P2=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})}},F2=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}({}),I2=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}({}),L2=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}({}),R2=`development`,z2=`native`,B2={name:`IMX`,symbol:`IMX`,decimals:18,address:z2},V2={name:`tIMX`,symbol:`tIMX`,decimals:18,address:z2},H2={[R2]:`https://api.dev.immutable.com`,[p.SANDBOX]:`https://api.sandbox.immutable.com`,[p.PRODUCTION]:`https://api.immutable.com`},U2={[R2]:`https://checkout-api.dev.immutable.com`,[p.SANDBOX]:`https://checkout-api.sandbox.immutable.com`,[p.PRODUCTION]:`https://checkout-api.immutable.com`};p.SANDBOX,p.PRODUCTION;let W2=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:B2}]]),G2=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:V2}]]),K2=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:B2}]]),q2={13473:{url:`https://explorer.testnet.immutable.com`,nativeToken:G2.get(13473).nativeCurrency},13371:{url:`https://explorer.immutable.com`,nativeToken:W2.get(13371).nativeCurrency},11155111:{url:`https://eth-sepolia.blockscout.com`,nativeToken:G2.get(11155111).nativeCurrency},1:{url:`https://eth.blockscout.com/`,nativeToken:W2.get(1).nativeCurrency}},J2=[{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`}],Y2=[{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`}],X2=[{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`}],Z2={maxFeePerGas:BigInt(15e9),maxPriorityFeePerGas:BigInt(1e10)},Q2=()=>`2.24.10-0`,$2=(e,t)=>{let n=()=>e?H2[R2]:t?H2[p.PRODUCTION]:H2[p.SANDBOX];return{checkDexAvailability:async()=>{let e;try{e=await z.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}}},e4=function(e){return e.BRIDGE_TO_L2=`BRIDGE_TO_L2`,e.SWAP=`SWAP`,e}({}),t4=function(e){return e.ALL=`all`,e}({}),n4=function(e){return e.ALL=`all`,e.SWAP=`swap`,e.BRIDGE=`bridge`,e.ONRAMP=`onramp`,e}({}),r4=function(e){return e.ALL=`all`,e}({}),i4=function(e){return e.PASSPORT=`passport`,e.METAMASK=`metamask`,e.WALLETCONNECT=`walletconnect`,e}({}),a4=function(e){return e.PASSPORT=`com.immutable.passport`,e.METAMASK=`io.metamask`,e.WALLETCONNECT=`walletconnect`,e}({}),o4={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var s4=class extends WL{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 c4=function(e){return e.SUCCESS=`SUCCESS`,e.FAILED=`FAILED`,e.INSUFFICIENT_FUNDS=`INSUFFICIENT_FUNDS`,e.FULFILLMENTS_UNSETTLED=`FULFILLMENTS_UNSETTLED`,e}({}),l4=function(e){return e.NATIVE=`NATIVE`,e.ERC20=`ERC20`,e.ERC721=`ERC721`,e.ERC1155=`ERC1155`,e}({}),u4=function(e){return e.TRANSACTION=`TRANSACTION`,e.GAS=`GAS`,e}({}),d4=function(e){return e.NATIVE=`NATIVE`,e.ERC20=`ERC20`,e}({}),f4=function(e){return e.ROUTES_FOUND=`ROUTES_FOUND`,e.NO_ROUTES_FOUND=`NO_ROUTES_FOUND`,e.NO_ROUTE_OPTIONS=`NO_ROUTE_OPTIONS`,e}({}),p4=function(e){return e.GAS=`GAS`,e.BRIDGE_FEE=`BRIDGE_FEE`,e.SWAP_FEE=`SWAP_FEE`,e.IMMUTABLE_FEE=`IMMUTABLE_FEE`,e}({}),m4=function(e){return e.BRIDGE=`BRIDGE`,e.SWAP=`SWAP`,e.ONRAMP=`ONRAMP`,e}({}),h4=function(e){return e.ONRAMP=`onramp`,e}({});async function g4(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 _4(e){let t=await e.getNetwork();return t.chainId&&typeof t.chainId==`bigint`?t.chainId:g4(e)}let v4=4902;async function y4(e,t,n){return await t.send(`wallet_switchEthereumChain`,[{chainId:e.get(n)?.chainIdHex}])}async function b4(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 x4(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 S4(e,t){let{networkMap:n}=e;return P2(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 _4(t),r=Array.from(n.keys()).includes(Number(e));return{chainId:Number(e),isSupported:r}}},{type:`GET_NETWORK_INFO_ERROR`})}let C4=e=>e.error?.data?.originalError?.code===v4||e.error?.code===v4;async function w4(e,t,n){let{networkMap:r}=e;if(!(await x4(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 y4(r,t,n)}catch(e){if(console.error(e),C4(e))try{await b4(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 s4(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 S4(e,i),provider:i}}var T4=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},E4=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`)}},D4=class extends Error{message;constructor(e){super(e),this.message=e}};let O4=(e,t)=>t?K2:e?W2:G2,k4=(e,t)=>t?H2[R2]:e?H2[p.PRODUCTION]:H2[p.SANDBOX],A4=(e,t)=>t?`imtbl-zkevm-devnet`:e?`imtbl-zkevm-mainnet`:`imtbl-zkevm-testnet`,j4=e=>e.isProduction?1:11155111,M4=e=>e.isDevelopment?15003:e.isProduction?13371:13473,N4=(e,t)=>t?U2[R2]:e?U2[p.PRODUCTION]:U2[p.SANDBOX];var P4=class{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;tokens;environment;networkMap;publishableKey;l1ChainId;l2ChainId;overrides;constructor(e,t){if(!Object.values(p).includes(e.baseConfig.environment))throw new D4(`Invalid checkout configuration of environment`);this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===p.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??O4(this.isProduction,this.isDevelopment);let n=e.overrides?.remoteConfigEndpoint??N4(this.isProduction,this.isDevelopment);this.remote=new T4(t,{remoteConfigEndpoint:n}),this.tokens=new E4(t,this.remote,{baseUrl:e.overrides?.baseUrl??k4(this.isProduction,this.isDevelopment),chainSlug:e.overrides?.chainSlug??A4(this.isProduction,this.isDevelopment)}),this.l1ChainId=j4(this),this.l2ChainId=e.overrides?.l2ChainId??M4(this),this.overrides=e.overrides??{}}get sdkVersion(){return Q2()}};let F4=(e=``,t=``)=>e.toLowerCase()===t.toLowerCase(),I4=e=>e===15003||e===13473||e===13371,L4=(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()},R4=(e,t=6)=>e.indexOf(`.`)===-1?e:L4(e,t),z4=async(e,{type:t=`all`,chainId:n,exclude:r})=>{let i=[],a,o,s=n??j4(e),c=M4(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||``))}},B4=e=>!e||F4(e,`native`);async function V4(e,t){return await P2(async()=>{let n=new mI(t,JSON.stringify(J2),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 H4=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=q2[this.chainId].url;let r=q2[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=>!!q2[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=pr.InternalServerError,n=`InternalServerError`;return z.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=pr.InternalServerError,n=`InternalServerError`;return z.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}};let U4=(e,t,n)=>{e.isProduction||console.info(t,n)},W4=async(e,t,n)=>{let r=performance.now(),i=await n,a=(performance.now()-r)/1e3;return U4(e,t,a),i},G4=async(e,t,n)=>await P2(async()=>{let r=await S4(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:zD(i,r.nativeCurrency.decimals),token:r.nativeCurrency}},{type:`GET_BALANCE_ERROR`});async function K4(e,t,n){return await P2(async()=>{let r=new mI(n,JSON.stringify(J2),e);return Promise.all([V4(e,n),r.balanceOf(t)]).then(([e,t])=>({balance:t,formattedBalance:zD(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:n}}))},{type:`GET_ERC20_BALANCE_ERROR`})}let q4=new Map,J4=()=>q4.clear(),Y4=async(e,t,n,r)=>{let i=r!==void 0,a=Object.assign({},...(r??[]).map(e=>({[e.address?.toLowerCase()||`native`]:e}))),o=q4.get(n);o||(o=new H4(e.remote.getHttpClient(),n),q4.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!==pr.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||=z2,s.push(n)}catch(e){if(e?.code!==pr.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=zD(e.value,l.decimals);c.push({balance:r,formattedBalance:u,token:l})}),{balances:c}},X4=async(e,t,n,r)=>{let i=[];return r.forEach(r=>{!r.address||F4(r.address,`native`)?i.push(G4(e,t,n)):i.push(K4(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||F4(n.token.address,`native`))&&(n.token.address=z2),e.balances.push(n),e},{balances:[]})},Z4=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 W4(e,`Time to fetch balances using RPC for ${r}`,X4(e,t,a,i))},Q4=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 z4(e,{type:`all`,chainId:r});if(i&&J4(),H4.isChainSupported(r)){let i=n??await(await t?.getSigner())?.getAddress();try{return await W4(e,`Time to fetch balances using blockscout for ${r}`,Y4(e,i,r,a))}catch(i){if(i.type===`GET_INDEXER_BALANCE_ERROR`&&i.data?.error?.code===pr.TooManyRequests)return Z4(e,t,n,r,a);throw i}}return Z4(e,t,n,r,a)};async function $4(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 e3(e){if(!e||!e.send)throw new $(`Incompatible provider`,`PROVIDER_REQUEST_MISSING_ERROR`,{details:`Attempting to connect with an incompatible provider`});return await P2(async()=>{e.send&&await e.send(`eth_requestAccounts`,[])},{type:`USER_REJECTED_REQUEST_ERROR`}),e}async function t3(e){if(!e||!e.send)throw new $(`Incompatible provider`,`PROVIDER_REQUEST_MISSING_ERROR`,{details:`Attempting to connect with an incompatible provider`});return await P2(async()=>{e.send&&await e.send(`wallet_requestPermissions`,[{eth_accounts:{}}])},{type:`USER_REJECTED_REQUEST_ERROR`}),e}var n3=class{config;constructor(e){this.config=e}async feeEstimate(){return(await this.config.remote.getConfig(`onramp`))[`201811419111`]?.fees}async createWidgetUrl(e,t=new M2){return await this.getTransakWidgetUrl(e,t)}async getTransakWidgetUrl(e,t){let n=await this.config.remote.getConfig(`onramp`),r=`${H2[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 r3(e,t,n,r){let i=t===j4(r)?qK.DEPOSIT:qK.WITHDRAW;return await e.getFee({action:i,gasMultiplier:`auto`,sourceChainId:t.toString(),destinationChainId:n.toString(),token:`NATIVE`,amount:BigInt(0)})}function i3(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=oq;return r.isDevelopment&&(o=aq),r.isProduction&&(o=sq),new xJ(new EJ({baseConfig:new h({environment:r.environment}),bridgeInstance:o,rootProvider:i,childProvider:a}))}async function a3(e,t){let n=await t.remote.getConfig(`dex`);return new s2({chainId:e,baseConfig:new h({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function o3(e){return new UK({baseConfig:{environment:e.environment}})}function s3(e){return new Qo({baseConfig:{environment:e.environment}})}function c3(e,t,n){return new mI(e,t,n)}async function l3(e,t){let n=j4(t),r=M4(t);if(!e.get(n))throw Error(`Missing JsonRpcProvider for chain id: ${n}`);try{return{gasEstimateType:`BRIDGE_TO_L2`,fees:await r3(i3(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 u3(e){let t=M4(e),{inAddress:n,outAddress:r}=(await e.remote.getConfig(`gasEstimateTokens`))[t].swapAddresses;try{let{swap:i}=await(await a3(t,e)).getUnsignedSwapTxFromAmountIn(`0x0000000000000000000000000000000000000001`,n,r,BigInt(BD(`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 d3(e,t,n){switch(e.gasEstimateType){case`BRIDGE_TO_L2`:return await l3(t,n);case`SWAP`:return await u3(n);default:throw new $(`Invalid type provided for gasEstimateType`,`INVALID_GAS_ESTIMATE_TYPE`)}}let f3=e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas,p3=e=>{if(f3(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 m3(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 h3(){let e=new Set,t=[],n=()=>m3(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 g3=class e{static instance;store;resetTimeout;isInit=!1;constructor(){this.store=h3(),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 _3={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`},v3={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`},y3=e=>({info:v3,provider:e}),b3=e=>({info:_3,provider:e});async function x3(){let e=await P2(async()=>await(0,c2.default)(),{type:`METAMASK_PROVIDER_ERROR`});if(!e||!e.request)throw new $(`No MetaMask provider installed.`,`METAMASK_PROVIDER_ERROR`);return new s4(e)}async function S3(e,t){let n=null,r;switch(e){case`passport`:if(r=g3.getInstance().findProvider({rdns:v3.rdns}),!r)if(t)n=new s4(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=g3.getInstance().findProvider({rdns:_3.rdns}),r||(n=await x3());break;default:if(r=g3.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 s4(r.provider)),!n)throw console.error(`Failed to create provider`),new $(`Failed to create provider`,`DEFAULT_PROVIDER_ERROR`);return{provider:n,walletProviderName:e}}function C3(e){return e&&`send`in e&&typeof e.send==`function`}async function w3(e,t,n){return P2(async()=>{if(`request`in t)return new s4(t);if(t.ethereumProvider?.isPassport)return t;let r={...o4,...n},i=await _4(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 x4(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 T3(e,t){if(e.isProduction&&t?.has(1)||t?.has(11155111))return t;let n=new Map;return(await x4(e,{type:`all`})).networks.forEach(t=>{let r=e.networkMap.get(Number(t.chainId))?.rpcUrls[0],i=new BL(r);n.set(Number(t.chainId),i)}),n}let E3=(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},D3=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()))},O3=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()))},A3=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=>A3(k3(O3(D3(e)))),M3=async(e,t,n,r)=>{try{return await new mI(n,JSON.stringify(J2),e).allowance(t,r)}catch(e){throw new $(`Failed to get the allowance for ERC20`,`GET_ERC20_ALLOWANCE_ERROR`,{contractAddress:n,error:e})}},N3=async(e,t,n,r,i)=>{try{let a=await new mI(n,JSON.stringify(J2),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})}},P3=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,M3(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,N3(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()))}},F3=async(e,t,n,r)=>{try{return await new mI(n,JSON.stringify(Y2),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})}},I3=async(e,t,n,r,i)=>{try{let a=await new mI(n,JSON.stringify(Y2),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})}},L3=async(e,t,n)=>{try{return await new mI(t,JSON.stringify(Y2),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})}},R3=(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})}},z3=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,F3(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},B3=async(e,t,n)=>{let r=!0,i=[],a=new Map,o=new Map,s=new Map,c=new Map,l=await z3(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=R3(r,n);a.set(u,t),o.set(u,L3(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=R3(f,l);s.set(m,{type:`ERC721`,sufficient:!1,itemRequirement:o,approvalTransaction:void 0}),c.set(m,I3(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()))}},V3=async(e,t,n,r)=>{try{return await new mI(n,JSON.stringify(X2),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})}},H3=async(e,t,n,r)=>{try{let i=await new mI(n,JSON.stringify(X2),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})}},U3=async(e,t,n)=>{let r=n.filter(e=>e.type===`ERC1155`),i=await Promise.all(r.map(async n=>await V3(e,t,n.contractAddress,n.spenderAddress)?{sufficient:!0,itemRequirement:n}:{type:`ERC1155`,sufficient:!1,itemRequirement:n,approvalTransaction:await H3(e,t,n.contractAddress,n.spenderAddress)}));return{sufficient:i.some(e=>e.sufficient),allowances:i}},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{amount:i}=e,a=t.get(r);a&&a.type===`NATIVE`?a.amount+=i:t.set(r,{...e})}),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{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()))},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,id:a}=e,o=`${i}${a}`;t.get(o)||t.set(o,{...e})}),n.concat(Array.from(t.values()))},q3=e=>K3(G3(W3(e))),J3=e=>e.map(e=>{switch(e.type){case`ERC20`:return{address:e.tokenAddress};case`NATIVE`:return{address:z2};default:return{address:e.contractAddress}}}),Y3=(e,t)=>{let n=BigInt(1),r=t.find(t=>{let n=t;return F4(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}},X3=(e,t)=>e.type===`ERC20`?t.find(t=>F4(t.token?.address,e.tokenAddress)):t.find(e=>B4(e.token?.address)),Z3=async(e,t,n)=>{let r={};for(let i of e){if(i.type===`NATIVE`){r[z2]=B2;continue}let e=X3(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 mI(i.tokenAddress,JSON.stringify(J2),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},Q3=(e,t,n)=>{let r=X3(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:zD(o,n.decimals)},current:{...r,type:`NATIVE`,token:n},required:{...r,type:`NATIVE`,balance:BigInt(e.amount),formattedBalance:zD(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:zD(o,n.decimals)},current:{...r,token:n},required:{...r,token:n,balance:BigInt(e.amount),formattedBalance:zD(e.amount,n.decimals)},isFee:e.isFee})},$3=async(e,t,n,r,i=!1)=>{try{let a=new Map;J3(r).forEach(e=>{e.address&&a.set(e.address.toLocaleLowerCase(),e)});let{balances:o}=await Q4(e,t,n,M4(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})}},e6=async(e,t,n)=>{let r=[],i=new Map,a=new Map;n.forEach(t=>{if(t.type!==`ERC721`)return;let n=new mI(t.contractAddress,JSON.stringify(Y2),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&&F4(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},t6=async(e,t,n,r,i=!1)=>{let a=q3(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($3(e,t,n,a,i)),s.length>0&&c.push(e6(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`?z2:e.token.address?.toLowerCase(),e])),r=await Z3(o,e,t);o.forEach(e=>{let t=(e.tokenAddress??`native`).toLowerCase(),i=r[t],a=n.get(t),o=Q3(e,[...n.values()],i);if(u.push(o),!a)return;let s=a.balance-o.required.balance;n.set(t,{...a,balance:s,formattedBalance:zD(s,o.required.token.decimals)})})}if(s.length>0){let e=l.shift()??[];s.forEach(t=>{u.push(Y3(t,e))})}return{sufficient:u.find(e=>!e.sufficient)===void 0,balanceRequirements:u}},n6=async(e,t)=>{try{return await e.estimateGas(t)}catch(e){throw new $(`Failed to estimate gas for transaction`,`UNPREDICTABLE_GAS_LIMIT`,{error:e})}},r6=(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},i6=async(e,t,n)=>{let r=[];for(let n of t)n.approvalTransaction!==void 0&&r.push(n6(e,n.approvalTransaction));n.type===`TRANSACTION`&&r.push(n6(e,n.transaction));let[i,a]=await Promise.all([e.getFeeData(),Promise.all(r)]),o=p3(i);if(o===null)return null;let s=a.reduce((e,t)=>e+t,BigInt(0));n.type===`GAS`&&(s+=n.gasToken.limit);let c=s*o;return c===BigInt(0)?null:r6(c,n)},a6=async()=>!0,o6=async e=>{let t=$2(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};function s6(e){return e?.ethereumProvider?.isPassport===!0}let c6=async(e,t)=>{let n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:`onRamp`,promise:a6()}),n.swap&&r.push({id:`swap`,promise:o6(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&&!s6(t),n},l6=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(M4(e),t),i}if(r.bridge){let r=j4(e);t.has(r)?a.set(r,Q4(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=M4(e);if(t.has(o)?a.set(o,Q4(e,t.get(o),n,o)):i.set(M4(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},u6=async(e,t,n,r,i)=>{let a=new Map;try{let o=await a3(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 W4(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}},d6=(e,t,n)=>{let r=BigInt(0),i=`0`,a;e&&(r=e.value,i=zD(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=zD(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:zD(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}},f6=(e,t,n,r)=>{let i=n.token.address,a=`ERC20`;return B4(i)&&(a=`NATIVE`),{type:`SWAP`,chainId:e,fundingItem:{type:a,fundsRequired:{amount:t,formattedAmount:R4(zD(t,n.token.decimals))},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:n.token},fees:r}},p6=e=>e.type===`ERC20`?!!e.required.token.address:e.type===`NATIVE`&&B4(e.required.token.address),m6=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}},h6=(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=>B4(e.token.address)&&B4(r)||F4(e.token.address,r));return!i||i.balance<n?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}},g6=(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=>B4(e.token.address)&&B4(t)||F4(e.token.address,t));if(!r||r.balance<n)return!1}return!0},_6=(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&&F4(t.required.token.address,n)&&(s=t.required.token.address,c=!0,o=e-t.required.balance)}),!c)return!0;F4(i.approvalGasTokenAddress,s)&&(o-=i.approvalGasFee);for(let e of a)F4(e.amount.token.address,s)&&(o-=e.amount.value);return o>=r},v6=async(e,t,n,r,i,a,o)=>{let s=[];if(!t.swap||a.length===0||!p6(r))return s;let c=m6(r),l=M4(e),u=i.get(l);if(!u)return s;let d=u.balances;if(d.length===0)return s;let f=await u6(e,M4(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=>F4(t.token.address,e));if(!n)continue;let r=t.quote.amountWithMaxSlippage;if(n.balance<r.value)continue;let i=h6(d,t.approval);if(!i.sufficient||!g6(d,i,t.swap,t.quote.fees,{amount:r.value,address:e})||!_6(n.balance,o,e,r.value,i,t.quote.fees))continue;let a=d6(t.approval,t.swap,t.quote.fees);s.push(f6(l,r.value,n,a))}return s},y6=(e,t)=>t&&t.success?e.filter(e=>`address`in e?t.balances.find(t=>F4(t.token.address,e.address)&&t.balance>0):t.balances.find(e=>!(`address`in e.token)&&e.balance>0)):[],b6=async(e,t)=>t.onRamp?(await z4(e,{type:`onramp`})).tokens:[],x6=async(e,t,n)=>{if(n.bridge){let n=j4(e),r=(await z4(e,{type:`bridge`,chainId:n})).tokens,i=t.get(n);return y6(r,i)}return[]},S6=async(e,t,n)=>{if(n.swap){let n=(await z4(e,{type:`swap`})).tokens,r=t.get(M4(e));return y6(n,r)}return[]},C6=async(e,t,n)=>{let r={};return r.swap=await S6(e,t,n),r.bridge=await x6(e,t,n),r.onRamp=await b6(e,n),r},w6=e=>{for(let t of e.balances)if(B4(t.token.address))return t.balance;return BigInt(0)},T6=async(e,t,n,r)=>{let i=i3(n,r,t,e);try{return{...await i.getFee({action:qK.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})}},E6=e=>e===13371?`imtbl-zkevm-mainnet`:e===13473?`imtbl-zkevm-testnet`:e===15003?`imtbl-zkevm-devnet`:``,D6=async(e,t)=>(await t.remote.getConfig(`imxAddressMapping`))[e]??``,O6=async(e,t)=>{if(B4(t))return{l1address:await D6(j4(e),e),l2address:z2};let n=E6(M4(e)),r=(await s3(e).getToken({chainName:n,contractAddress:t})).result.root_contract_address;if(F4(r??``,`0x0000000000000000000000000000000000000eee`))return{l1address:`native`,l2address:t};if(r!==null)return{l1address:r,l2address:t}},k6=(e,t)=>w6(e)>=t,A6=(e,t,n,r,i)=>{let a=i?.decimals??18,o=[];return t>0&&o.push({type:`BRIDGE_FEE`,amount:t,formattedAmount:zD(t,a),token:i}),n>0&&o.push({type:`IMMUTABLE_FEE`,amount:n,formattedAmount:zD(n,a),token:i}),{approvalGasFee:{type:`GAS`,amount:r,formattedAmount:zD(r,18),token:i},bridgeGasFee:{type:`GAS`,amount:e,formattedAmount:zD(e,18),token:i},bridgeFees:o}},j6=(e,t,n,r,i)=>({type:`BRIDGE`,chainId:e,fundingItem:{type:r,fundsRequired:{amount:n.amount,formattedAmount:R4(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}),M6=async(e,t,n,r,i)=>{if(!n.bridge)return;let a=j4(e),o=M4(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 x6(e,i,n);if(l.length===0)return;let u=await O6(e,r.l2address);if(!u)return;let{l1address:d}=u;if(B4(d)){if(!l.find(e=>B4(e.address)))return}else if(!l.find(e=>F4(e.address,d)))return;let{sourceChainGas:f,approvalGas:p,bridgeFee:m,imtblFee:h,totalFees:g}=await T6(e,t,a,o);if(!k6(c,g))return;if(B4(d)){let e=c.balances.find(e=>B4(e.token.address));if(e&&e.balance>=r.amount+g){let t=A6(f,m,h,p,s);return j6(a,e,r,`NATIVE`,t)}return}let _=c.balances.find(e=>F4(e.token.address,d));if(_&&_.balance>=r.amount){let e=A6(f,m,h,p,s);return j6(a,_,r,`ERC20`,e)}},N6=(e,t)=>{let n={l1balances:[],l2balances:[]},r=t.get(j4(e)),i=t.get(M4(e));return!r||r.error!==void 0||!r.success||!i||i.error!==void 0||!i.success?n:{l1balances:r.balances,l2balances:i.balances}},P6=(e,t)=>{let n=BigInt(0);return e.quote.fees.forEach(e=>{F4(e.amount.token.address,t)&&(n+=e.amount.value)}),e.approval&&F4(e.approval.token.address,t)&&(n+=e.approval.value),n},F6=(e,t)=>{for(let n of e.balanceRequirements)if((n.type===`NATIVE`||n.type===`ERC20`)&&F4(n.required.token.address,t))return n.required.balance;return BigInt(0)},I6=(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},L6=(e,t,n,r,i)=>{let a=[];for(let[o,s]of e){let e=n.find(e=>F4(e.token.address,o)),c=r.find(e=>F4(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&&F4(l,`0x0000000000000000000000000000000000000eee`)?!0:F4(e.token.address,l));if(!d)continue;let f=s.quote.amountWithMaxSlippage.value+P6(s,o),p=F6(i,o),m=I6(f,p,e);m<=0||m>=d.balance||a.push({amount:m,formattedAmount:R4(zD(m,d.token.decimals)),l2address:u})}return a},R6=async(e,t)=>{let n=t.map(t=>O6(e,t.address??``));return(await Promise.all(n)).filter(e=>e!==void 0)},z6=async(e,t,n,r,i)=>{let a=[];for(let e of i)e.address&&a.push(e.address);return await u6(e,M4(e),t,{address:n,amount:r.delta.balance},a)},B6=(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===``,V6=(e,t,n,r)=>{let i=[];for(let a of r){if(!t.includes(a.l1address)||F4(a.l2address,e))continue;let r=n.find(e=>F4(e.address,a.l2address));r&&i.push(r)}return i},H6=(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=>F4(e.address,n));o.set(n,{balance:s,formattedBalance:zD(s,c.decimals),token:c})}let s=Array.from(o.values());return a.set(M4(e),{success:!0,balances:s}),a},U6=(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=>F4(e.token.address,i.token.address));l&&(s=l.balance,c=l.formattedBalance),a.balance=s,a.formattedBalance=c,n.push(r)}return n},W6=(e,t,n)=>{let r=[];for(let i of e){if(!i)continue;let e=n.find(e=>i.fundingItem.token.address===void 0?F4(e.l1address,`0x0000000000000000000000000000000000000eee`)&&e.l2address:F4(e.l1address,i.fundingItem.token.address)&&e.l2address);if(!e)continue;let a=t.find(t=>F4(t.fundingItem.token.address,e.l2address));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r},G6=async(e,t,n,r,i,a,o,s,c)=>{let{l1balances:l,l2balances:u}=N6(e,a),d=r.required.token.address;if(B6(o,s,l,u,n,d))return[];let f=await R6(e,s),p=V6(d,o,s,f);if(p.length===0)return[];let m=L6(await z6(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,M6(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 v6(e,n,i,r,H6(e,a,u,_,s),b,c);if(!x)return[];let S=U6(a,x);return W6(v,S,f)},K6=async(e,t,n)=>{if(![`ERC20`,`NATIVE`].includes(n.type))return;let{required:r,current:i,delta:a}=n,o=!1;if((await b6(e,t)).forEach(e=>{e.address&&r.token&&(B4(r.token.address)||F4(e.address,r.token.address))&&(o=!0)}),o)return{type:`ONRAMP`,chainId:M4(e),fundingItem:{type:B4(r.token.address)?`NATIVE`:`ERC20`,fundsRequired:{amount:a.balance,formattedAmount:R4(a.formattedBalance)},userBalance:{balance:i.balance,formattedBalance:i.formattedBalance},token:r.token}}},q6=e=>e.bridge||e.swap||e.onRamp,J6=e=>{let t=0,n;for(let r of e.balanceRequirements)r.sufficient||(t++,n=r);if(t===1)return n},Y6=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 M6(e,t,n,o,i)),a},X6=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(M4(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 v6(e,t,r,n,i,l,o)},Z6=async(e,t,n,r,i,a,o,s)=>{if(!r)return[];let c=a.get(j4(e)),l=a.get(M4(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 G6(e,t,n,r,i,a,u,d,s)},Q6=async(e,t,n)=>{if(t.onRamp&&n!==void 0)return await K6(e,t,n)},$6={swap:1,bridge:2,onRamp:3,bridgeAndSwap:4},e8=(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)},t8=async(e,t,n,r,i)=>{if(!q6(r))return{type:`NO_ROUTE_OPTIONS`,message:`No routing options are available`};let a;try{a=await T3(e)}catch(e){throw new $(`Error occurred while creating read only providers`,`PROVIDER_ERROR`,{error:e})}let o=await W4(e,`Time to get token balances inside router`,l6(e,a,t,r)),s=await W4(e,`Time to get routing allowlist`,C6(e,o,r)),c=J6(n),l=[],u=[];return r.swap&&l.push(X6(e,r,c,t,o,s.swap,n).then(e=>{e.forEach(e=>{e8(e,$6.swap,u,i)})})),r.bridge&&l.push(Y6(e,a,r,c,o).then(e=>{e8(e,$6.bridge,u,i)})),r.onRamp&&l.push(Q6(e,r,c).then(e=>{e8(e,$6.onRamp,u,i)})),r.swap&&r.bridge&&l.push(Z6(e,a,r,c,t,o,s,n).then(e=>{e.forEach(e=>{e8(e,$6.bridgeAndSwap,u,i)})})),await W4(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}},n8=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)}),r8=async(e,t,n,r,i,a,o,s,c)=>{let l=await W4(e,`Total time to run the routing calculator`,t8(e,t,!o||n&&s?n8(a):a,r,c));return s?.({sufficient:n,transactionRequirements:i,router:{availableRoutingOptions:r,routingOutcome:l}}),l},i8=async(e,t,n,r,i,a,o,s=!1)=>{let c=await(await t.getSigner()).getAddress(),l=j3(n),u=P3(t,c,l),d=B3(t,c,l),f=U3(t,c,l),p=await W4(e,`Time to calculate token allowances`,Promise.all([u,d,f])),m=E3(p[0],p[1],p[2]),h=null;r&&(h=await W4(e,`Time to run gas calculator`,i6(t,m,r)),h!==null&&(l.push(h),l=j3(l)));let g=await W4(e,`Time to run balance checks`,t6(e,t,c,l,!0)),{sufficient:_}=g,v=g.balanceRequirements,y=await W4(e,`Time to fetch available routing options`,c6(e,t));return i?.onRamp===!1&&(y.onRamp=!1),i?.swap===!1&&(y.swap=!1),i?.bridge===!1&&(y.bridge=!1),a?(r8(e,c,_,y,v,g,s,a,o),{sufficient:_,transactionRequirements:v}):_?{sufficient:_,transactionRequirements:v}:{sufficient:_,transactionRequirements:v,router:{availableRoutingOptions:y,routingOutcome:await r8(e,c,_,y,v,g,s,a,o)}}};function a8(e){return e?.ethereumProvider?.isPassport===!0}function o8(e){return a8(e)}let s8=async(e,t)=>{let n=t,{chainId:r}=await e.getNetwork();return!I4(Number(r))||n.gasPrice!==void 0||(o8(e)?n.gasPrice=BigInt(0):(n.maxFeePerGas=Z2.maxFeePerGas,n.maxPriorityFeePerGas=Z2.maxPriorityFeePerGas)),n},c8=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}),l8=async(e,t)=>{try{let n=await e.getSigner(),r=await s8(e,t);return{transactionResponse:await n.sendTransaction(r)}}catch(e){throw c8(e)}},u8=async(e,t)=>{let n=[];try{let r=await Promise.all(t.map(t=>l8(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`}},d8=async(e,t)=>{let n=[];try{let r=await Promise.all(t.map(t=>l8(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`}},f8=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})}},p8=async e=>{let t=[],n=[],r=[],i=[];for(let t of e)t.type===JG.TRANSACTION&&(t.purpose===YG.APPROVAL&&r.push(t.buildTransaction()),t.purpose===YG.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}},m8=async e=>{let t=[],n=[];for(let t of e)t.type===JG.TRANSACTION&&t.purpose===YG.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t},h8=async e=>{let t=[],n=[];for(let t of e)t.type===JG.TRANSACTION&&t.purpose===YG.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},g8=(e,t,n)=>{let r;for(let e of n)e.type===JG.SIGNABLE&&e.purpose===XG.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}},_8=(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},v8=(e,t)=>{let n=e.amount;return BD(n.token,t)},y8=(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=_8(t,a,r),i+=e;else if(Object.hasOwn(t.amount,`token`))e=v8(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},b8=(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}}},x8=(e,t)=>t.length>0?{type:`TRANSACTION`,transaction:t[0]}:{type:`GAS`,gasToken:{type:`NATIVE`,limit:BigInt(e)}},S8=async(e,t,n,r={waitFulfillmentSettlements:!0})=>{if(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=WK.estimatedFulfillmentGasGwei,c=o3(e),l=s3(e),u=await W4(e,`Time to get the address from the provider`,(await t.getSigner()).getAddress());J4(),Q4(e,t,u,j4(e)),Q4(e,t,u,M4(e));let{id:d,takerFees:f,fillAmount:p}=n[0],m;try{i=await W4(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 W4(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=y8(f,h.amount,o,e)}let _=[],v=[],y=[],b=performance.now();try{let{actions:t}=await W4(e,`Time to call fulfillOrder from the orderbook`,c.fulfillOrder(d,u,g,p));y=t,_=await W4(e,`Time to construct the unsigned approval transactions`,m8(t))}catch(t){if(U4(e,`Time to call fulfillOrder from the orderbook`,(performance.now()-b)/1e3),t.message.includes(PG.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 W4(e,`Time to construct the unsigned fulfillment transactions`,h8(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 W4(e,`Total time running smart checkout`,i8(e,t,[b8(S,C,x,a)],s6(t)?void 0:x8(s,v)));if(T.sufficient){let e=await u8(t,_);if(e.type===`FAILED`)return{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:T};try{v.length===0&&(v=await h8(y))}catch(e){throw new $(`Error fetching fulfillment transaction`,`FULFILL_ORDER_LISTING_ERROR`,{error:e})}if(r.waitFulfillmentSettlements){let e=await d8(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=>l8(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}},C8=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 W4(e,`Time to get the address from the provider`,(await n.getSigner()).getAddress());a=await(await W4(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 d8(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=>l8(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}},w8=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})}},T8=async(e,t,n,r={waitFulfillmentSettlements:!0,useGaslessCancel:!1})=>{let i=o3(e);return r.useGaslessCancel?await w8(i,t,n):await C8(e,i,t,n,r.waitFulfillmentSettlements??!0)};async function E8(e,t){let n=[];t.forEach(t=>{if(t.type===`ERC20`){let{tokenAddress:r}=t;n.push(c3(r,J2,e).decimals())}});let r=await Promise.all(n);return t.map((e,t)=>e.type===`NATIVE`?{...e,amount:BD(e.amount,18)}:e.type===`ERC20`?{...e,amount:BD(e.amount,r[t])}:e)}let D8=(e,t,n)=>({type:`ERC721`,id:e,contractAddress:t,spenderAddress:n}),O8=(e,t,n,r)=>({type:`ERC1155`,id:e,contractAddress:t,spenderAddress:n,amount:BigInt(r)}),k8=(e,t=18)=>{let n=BD(e.amount,t);return e.type===`NATIVE`?{type:`NATIVE`,amount:n.toString()}:{type:`ERC20`,amount:n.toString(),contractAddress:e.tokenAddress}},A8=async(e,t,n)=>{let r,i,a=``;if(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 W4(e,`Time to get decimals of token contract for the buy token`,new mI(o.tokenAddress,JSON.stringify(J2),t).decimals()));let d=k8(o,u),f=`type`in s;try{let n=await W4(e,`Time to get the address from the provider`,(await t.getSigner()).getAddress());r=o3(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 W4(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=O8(s.id,s.collectionAddress,a,s.amount);p.push(e)}else{let e=D8(s.id,s.collectionAddress,a);p.push(e)}let m;if(m=s6(t)?{sufficient:!0,transactionRequirements:[]}:await W4(e,`Total time running smart checkout`,i8(e,t,p,{type:`GAS`,gasToken:{type:`NATIVE`,limit:BigInt(WK.estimatedFulfillmentGasGwei)}})),m.sufficient){let e=await u8(t,(await p8(i.actions)).approvalTransactions);if(e.type===`FAILED`)return{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:m};let n=g8(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 f8(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=y8(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 a3(M4(e),e),u=await(await t.getSigner()).getAddress();return i?l.getUnsignedSwapTxFromAmountIn(u,n.address,r.address,BigInt(BD(i,n.decimals)),o,s,c):l.getUnsignedSwapTxFromAmountOut(u,n.address,r.address,BigInt(BD(a,r.decimals)),o,s,c)},M8=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 l8(t,l.approval.transaction)).transactionResponse.wait())?.status===0)throw new $(`Approval transaction failed and was reverted`,`APPROVAL_TRANSACTION_FAILED`);let u=await(await l8(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 N8(e){let t=[],n=e.exclude?.map(e=>e.walletProviderName)??[],r=Object.values(i4);n.length!==0&&(r=r.filter(e=>!n.includes(e)));for(let e of r)t.push({walletProviderName:e});return{wallets:t}}let P8=async(e,t)=>Object.fromEntries(e.map(e=>[e.toLowerCase(),{sanctioned:!1}])),F8=(e,t)=>!1,I8=(e,t)=>!1,L8=e=>!1,R8={baseConfig:{environment:p.SANDBOX},passport:void 0};var z8=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=R8){this.httpClient=new M2(e),this.config=new P4(e,this.httpClient),this.fiatRampService=new n3(this.config),this.readOnlyProviders=new Map,this.availability=$2(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport,g3.getInstance().initialise()}async widgets(e){let t=this,n=Q2();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 S3(e.walletProviderName,this.passport)}getInjectedProviders(){return g3.getInstance().getProviders()}findInjectedProvider(e){return g3.getInstance().findProvider(e)}onInjectedProvidersChange(e){return g3.getInstance().subscribe(e)}clearInjectedProviders(){return g3.getInstance().clear()}async checkIsWalletConnected(e){return $4(await w3(this.config,e.provider,{allowMistmatchedChainId:!0,allowUnsupportedProvider:!0}))}async getRiskAssessment(e){return await P8(e,this.config)}checkIsAddressSanctioned(e,t){return F8(e,t)}async connect(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return e.requestWalletPermissions&&!a8(t)?await t3(t):await e3(t),t}async addNetwork(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await b4(this.config.networkMap,t,e.chainId)}async switchNetwork(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await w4(this.config,t,e.chainId)}async getTokenInfo(e){return await V4(e.provider,e.tokenAddress)}async getBalance(e){let t=await w3(this.config,e.provider);return!e.tokenAddress||e.tokenAddress===``?await G4(this.config,t,e.walletAddress):await K4(t,e.walletAddress,e.tokenAddress)}async getAllBalances(e){let t=!e.provider||`ethereumProvider`in e.provider?e.provider:new s4(e.provider);return Q4(this.config,t,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await x4(this.config,e)}async getTokenAllowList(e){return await z4(this.config,e)}async getWalletAllowList(e){return await N8(e)}async sendTransaction(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await l8(t,e.transaction)}async providerCall(e,t){let n=await w3(this.config,e,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});try{return await t(n)}catch(e){throw c8(e)}}async getNetworkInfo(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await S4(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 w3(this.config,e.provider);return await S8(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 w3(this.config,e.provider);return await A8(this.config,t,e.orders)}async cancel(e){console.warn(`This endpoint currently only processes the first order in the array.`);let t=await w3(this.config,e.provider);return await T8(this.config,t,e.orderIds,e.overrides)}async smartCheckout(e){let t=await w3(this.config,e.provider),n=[];try{n=await E8(t,e.itemRequirements)}catch(e){throw new $(`Failed to map item requirements`,`ITEM_REQUIREMENTS_ERROR`,{error:e})}return await i8(this.config,t,n,e.transactionOrGasAmount,e.routingOptions,e.onComplete,e.onFundingRoute,e.fundingRouteFullAmount)}static isWrappedBrowserProvider(e){return C3(e)}async gasEstimate(e){return this.readOnlyProviders=await T3(this.config,this.readOnlyProviders),await d3(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(e){let t,n=`IMX`,r,i=`request`in e.browserProvider?new s4(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 z4(this.config,{type:`onramp`}),c=s.tokens?.find(t=>F4(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 w3(this.config,e.provider);return M8(this.config,t,e.fromToken,e.toToken,e.fromAmount,e.toAmount,e.slippagePercent,e.maxHops,e.deadline)}async swapQuote(e){let t=await w3(this.config,e.provider);return j8(this.config,t,e.fromToken,e.toToken,e.fromAmount,e.toAmount,e.slippagePercent,e.maxHops,e.deadline)}},B8=class{static getTransactionLink(e,t){let n=q2?.[e]?.url;if(!(!n||!t))return`${n}/tx/${t}`}},V8=l({AddTokensEventType:()=>C2,BlockExplorerService:()=>B8,BridgeEventType:()=>g2,ChainId:()=>F2,ChainName:()=>I2,ChainSlug:()=>L2,Checkout:()=>z8,CheckoutConfiguration:()=>P4,CheckoutError:()=>$,CheckoutErrorType:()=>N2,CheckoutStatus:()=>c4,CommerceEventType:()=>y2,CommerceFailureEventType:()=>x2,CommerceFlowType:()=>k2,CommerceSuccessEventType:()=>b2,CommerceUserActionEventType:()=>S2,ConnectEventType:()=>d2,ConnectTargetLayer:()=>D2,ExchangeType:()=>h4,FeeType:()=>p4,FundingStepType:()=>m4,GasEstimateType:()=>e4,GasTokenType:()=>d4,IMMUTABLE_API_BASE_URL:()=>H2,IMTBLWidgetEvents:()=>l2,ItemType:()=>l4,NetworkFilterTypes:()=>t4,OnRampEventType:()=>v2,OrchestrationEventType:()=>_2,ProviderEventType:()=>u2,PurchaseEventType:()=>w2,RoutingOutcomeType:()=>f4,SaleEventType:()=>m2,SalePaymentTypes:()=>h2,SwapDirection:()=>O2,SwapEventType:()=>p2,TokenFilterTypes:()=>n4,TransactionOrGasType:()=>u4,TransferEventType:()=>T2,WalletEventType:()=>f2,WalletFilterTypes:()=>r4,WalletProviderName:()=>i4,WalletProviderRdns:()=>a4,WidgetTheme:()=>A2,WidgetType:()=>E2,WrappedBrowserProvider:()=>s4,fetchRiskAssessment:()=>P8,getGasPriceInWei:()=>p3,getMetaMaskProviderDetail:()=>b3,getPassportProviderDetail:()=>y3,getUnderlyingChainId:()=>_4,isAddressSanctioned:()=>F8,isSingleAddressSanctioned:()=>I8,metaMaskProviderInfo:()=>_3,passportProviderInfo:()=>v3,resultHasSanctionedWallets:()=>L8,validateProvider:()=>w3});return Object.defineProperty(e,"blockchainData",{enumerable:!0,get:function(){return $o}}),Object.defineProperty(e,"checkout",{enumerable:!0,get:function(){return V8}}),Object.defineProperty(e,"config",{enumerable:!0,get:function(){return _}}),Object.defineProperty(e,"orderbook",{enumerable:!0,get:function(){return GK}}),Object.defineProperty(e,"passport",{enumerable:!0,get:function(){return rE}}),e})({});
|
|
842
|
+
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$(e,t){return t={exports:{}},e(t,t.exports),t.exports}var t$=e$(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)}}),n$,r$=`0x1F98431c8aD98523631AE4a59f267346ea31F984`,i$=`0x0000000000000000000000000000000000000000`,a$=`0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`,o$;(function(e){e[e.LOWEST=100]=`LOWEST`,e[e.LOW=500]=`LOW`,e[e.MEDIUM=3e3]=`MEDIUM`,e[e.HIGH=1e4]=`HIGH`})(o$||={});var s$=(n$={},n$[o$.LOWEST]=1,n$[o$.LOW]=10,n$[o$.MEDIUM]=60,n$[o$.HIGH]=200,n$),c$=Z.default.BigInt(-1),l$=Z.default.BigInt(0),u$=Z.default.BigInt(1),d$=Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(96)),f$=Z.default.exponentiate(d$,Z.default.BigInt(2));function p$(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 TY(t,IQ([`bytes`],[bQ.encode([`address`,`address`,`uint24`],[s.address,c.address,i])]),a??a$)}var m$=function(){function e(){}return e.addDelta=function(e,t){return Z.default.lessThan(t,l$)?Z.default.subtract(e,Z.default.multiply(t,c$)):Z.default.add(e,t)},e}(),h$=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),l$)&&(i=Z.default.add(i,u$)),i},e}(),g$=Z.default.subtract(Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(160)),u$);function _$(e,t){var n=Z.default.multiply(e,t);return Z.default.bitwiseAnd(n,kX)}function v$(e,t){var n=Z.default.add(e,t);return Z.default.bitwiseAnd(n,kX)}var y$=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?h$.mulDivRoundingUp(h$.mulDivRoundingUp(a,o,t),u$,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?h$.mulDivRoundingUp(n,Z.default.subtract(t,e),d$):Z.default.divide(Z.default.multiply(n,Z.default.subtract(t,e)),d$)},e.getNextSqrtPriceFromInput=function(e,t,n,r){return!Z.default.greaterThan(e,l$)&&Q(!1),!Z.default.greaterThan(t,l$)&&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,l$)&&Q(!1),!Z.default.greaterThan(t,l$)&&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,l$))return e;var i=Z.default.leftShift(t,Z.default.BigInt(96));if(r){var a=_$(n,e);if(Z.default.equal(Z.default.divide(a,n),e)){var o=v$(i,a);if(Z.default.greaterThanOrEqual(o,i))return h$.mulDivRoundingUp(i,e,o)}return h$.mulDivRoundingUp(i,u$,Z.default.add(Z.default.divide(i,e),n))}else{var s=_$(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 h$.mulDivRoundingUp(i,e,c)}},e.getNextSqrtPriceFromAmount1RoundingDown=function(e,t,n,r){if(r){var i=Z.default.lessThanOrEqual(n,g$)?Z.default.divide(Z.default.leftShift(n,Z.default.BigInt(96)),t):Z.default.divide(Z.default.multiply(n,d$),t);return Z.default.add(e,i)}else{var a=h$.mulDivRoundingUp(n,d$,t);return!Z.default.greaterThan(e,a)&&Q(!1),Z.default.subtract(e,a)}},e}(),b$=Z.default.exponentiate(Z.default.BigInt(10),Z.default.BigInt(6)),x$=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,l$);if(s){var c=Z.default.divide(Z.default.multiply(r,Z.default.subtract(b$,Z.default.BigInt(i))),b$);a.amountIn=o?y$.getAmount0Delta(t,e,n,!0):y$.getAmount1Delta(e,t,n,!0),Z.default.greaterThanOrEqual(c,a.amountIn)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=y$.getNextSqrtPriceFromInput(e,n,c,o)}else a.amountOut=o?y$.getAmount1Delta(t,e,n,!1):y$.getAmount0Delta(e,t,n,!1),Z.default.greaterThanOrEqual(Z.default.multiply(r,c$),a.amountOut)?a.sqrtRatioNextX96=t:a.sqrtRatioNextX96=y$.getNextSqrtPriceFromOutput(e,n,Z.default.multiply(r,c$),o);var l=Z.default.equal(t,a.sqrtRatioNextX96);return o?(a.amountIn=l&&s?a.amountIn:y$.getAmount0Delta(a.sqrtRatioNextX96,e,n,!0),a.amountOut=l&&!s?a.amountOut:y$.getAmount1Delta(a.sqrtRatioNextX96,e,n,!1)):(a.amountIn=l&&s?a.amountIn:y$.getAmount1Delta(e,a.sqrtRatioNextX96,n,!0),a.amountOut=l&&!s?a.amountOut:y$.getAmount0Delta(e,a.sqrtRatioNextX96,n,!1)),!s&&Z.default.greaterThan(a.amountOut,Z.default.multiply(r,c$))&&(a.amountOut=Z.default.multiply(r,c$)),s&&Z.default.notEqual(a.sqrtRatioNextX96,t)?a.feeAmount=Z.default.subtract(r,a.amountIn):a.feeAmount=h$.mulDivRoundingUp(a.amountIn,Z.default.BigInt(i),Z.default.subtract(b$,Z.default.BigInt(i))),[a.sqrtRatioNextX96,a.amountIn,a.amountOut,a.feeAmount]},e}(),S$=Z.default.BigInt(2),C$=[128,64,32,16,8,4,2,1].map(function(e){return[e,Z.default.exponentiate(S$,Z.default.BigInt(e))]});function w$(e){!Z.default.greaterThan(e,l$)&&Q(!1),!Z.default.lessThanOrEqual(e,kX)&&Q(!1);for(var t=0,n=$Q(C$),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 T$(e,t){return Z.default.signedRightShift(Z.default.multiply(e,Z.default.BigInt(t)),Z.default.BigInt(128))}var E$=Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(32)),D$=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=T$(r,`0xfff97272373d413259a46990580e213a`)),n&4&&(r=T$(r,`0xfff2e50f5f656932ef12357cf3c7fdcc`)),n&8&&(r=T$(r,`0xffe5caca7e10e4e61c3624eaa0941cd0`)),n&16&&(r=T$(r,`0xffcb9843d60f6159c9db58835c926644`)),n&32&&(r=T$(r,`0xff973b41fa98c081472e6896dfb254c0`)),n&64&&(r=T$(r,`0xff2ea16466c96a3843ec78b326b52861`)),n&128&&(r=T$(r,`0xfe5dee046a99a2a811c461f1969c3053`)),n&256&&(r=T$(r,`0xfcbe86c7900a88aedcffc83b479aa3a4`)),n&512&&(r=T$(r,`0xf987a7253ac413176f2b074cf7815e54`)),n&1024&&(r=T$(r,`0xf3392b0822b70005940c7a398e4b70f3`)),n&2048&&(r=T$(r,`0xe7159475a2c29b7443b29c7fa6e889d9`)),n&4096&&(r=T$(r,`0xd097f3bdfd2022b8845ad8f792aa5825`)),n&8192&&(r=T$(r,`0xa9f746462d870fdf8a65dc1f90e061e5`)),n&16384&&(r=T$(r,`0x70d869a156d2a1b890bb3df62baf32f7`)),n&32768&&(r=T$(r,`0x31be135f97d08fd981231505542fcfa6`)),n&65536&&(r=T$(r,`0x9aa508b5b7a84e1c677de54f3e99bc9`)),n&131072&&(r=T$(r,`0x5d6af8dedb81196699c329225ee604`)),n&262144&&(r=T$(r,`0x2216e584f5fa1ea926041bedfe98`)),n&524288&&(r=T$(r,`0x48a170391f7dc42444e8fa2`)),t>0&&(r=Z.default.divide(kX,r)),Z.default.greaterThan(Z.default.remainder(r,E$),l$)?Z.default.add(Z.default.divide(r,E$),u$):Z.default.divide(r,E$)},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=w$(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}();D$.MIN_TICK=-887272,D$.MAX_TICK=-D$.MIN_TICK,D$.MIN_SQRT_RATIO=Z.default.BigInt(`4295128739`),D$.MAX_SQRT_RATIO=Z.default.BigInt(`1461446703485210103287273052203988822378723970342`);var O$=function(){function e(){}var t=e.prototype;return t.getTick=function(){var t=KQ(t$.mark(function t(n){return t$.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=KQ(t$.mark(function t(n,r,i){return t$.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}();O$.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 A$(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)},l$),l$)&&Q(!1),!k$(e,A$)&&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 M$(e){var t=Z.default.BigInt(e).toString(16);return t.length%2!=0&&(t=`0`+t),`0x`+t}function N$(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?FQ(a.reverse(),i.reverse()):FQ(a,i)}function P$(e,t){var n=Z.default.leftShift(Z.default.BigInt(e),Z.default.BigInt(192)),r=Z.default.BigInt(t);return rZ(Z.default.divide(n,r))}function F$(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),d$);return Z.default.divide(Z.default.multiply(Z.default.BigInt(n),i),Z.default.subtract(t,e))}function I$(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(d$,Z.default.subtract(t,e));return Z.default.divide(i,a)}function L$(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),d$),Z.default.subtract(t,e))}function R$(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?I$:F$;if(Z.default.lessThanOrEqual(e,t))return s(t,n,r);if(Z.default.lessThan(e,n)){var c=s(e,n,r),l=L$(t,e,i);return Z.default.lessThan(c,l)?c:l}else return L$(t,n,i)}function z$(e,t,n){var r=D$.getSqrtRatioAtTick(n),i=Z.default.multiply(r,r);return e.sortsBefore(t)?new HX(e,t,f$,i):new HX(e,t,i,f$)}var B$=function(e){var t=e.index,n=e.liquidityGross,r=e.liquidityNet;!(t>=D$.MIN_TICK&&t<=D$.MAX_TICK)&&Q(!1),this.index=t,this.liquidityGross=Z.default.BigInt(n),this.liquidityNet=Z.default.BigInt(r)},V$=function(){function e(e,t){var n=e.map(function(e){return e instanceof B$?e:new B$(e)});j$.validateList(n,t),this.ticks=n}var t=e.prototype;return t.getTick=function(){var e=KQ(t$.mark(function e(t){return t$.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=KQ(t$.mark(function e(t,n,r){return t$.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}(),H$=new O$,U$=function(){function e(e,t,n,r,i,a,o){o===void 0&&(o=H$),!(Number.isInteger(n)&&n<1e6)&&Q(!1);var s=D$.getSqrtRatioAtTick(a),c=D$.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 V$(o,s$[n]):o}e.getAddress=function(e,t,n,r,i){return p$({factoryAddress:i??r$,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=KQ(t$.mark(function t(n,r){var i,a,o,s,c,l,u;return t$.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`,[RX.fromRawAmount(u,Z.default.multiply(o,c$)),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=KQ(t$.mark(function t(n,r){var i,a,o,s,c,l,u;return t$.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,c$),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`,[RX.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=KQ(t$.mark(function e(t,n,r){var i,a,o,s,c,l;return t$.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r||=t?Z.default.add(D$.MIN_SQRT_RATIO,u$):Z.default.subtract(D$.MAX_SQRT_RATIO,u$),t?(!Z.default.greaterThan(r,D$.MIN_SQRT_RATIO)&&Q(!1),!Z.default.lessThan(r,this.sqrtRatioX96)&&Q(!1)):(!Z.default.lessThan(r,D$.MAX_SQRT_RATIO)&&Q(!1),!Z.default.greaterThan(r,this.sqrtRatioX96)&&Q(!1)),i=Z.default.greaterThanOrEqual(n,l$),a={amountSpecifiedRemaining:n,amountCalculated:l$,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!(Z.default.notEqual(a.amountSpecifiedRemaining,l$)&&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<D$.MIN_TICK?o.tickNext=D$.MIN_TICK:o.tickNext>D$.MAX_TICK&&(o.tickNext=D$.MAX_TICK),o.sqrtPriceNextX96=D$.getSqrtRatioAtTick(o.tickNext),c=x$.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,c$)),a.liquidity=m$.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=D$.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}(),JQ(e,[{key:`token0Price`,get:function(){return this._token0Price??=new HX(this.token0,this.token1,f$,Z.default.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:`token1Price`,get:function(){return this._token1Price??=new HX(this.token1,this.token0,Z.default.multiply(this.sqrtRatioX96,this.sqrtRatioX96),f$)}},{key:`chainId`,get:function(){return this.token0.chainId}},{key:`tickSpacing`,get:function(){return s$[this.fee]}}]),e}(),W$=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>=D$.MIN_TICK&&r%t.tickSpacing===0)&&Q(!1),!(i<=D$.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 VX(1).subtract(e)),n=this.pool.token0Price.asFraction.multiply(e.add(1)),r=P$(t.numerator,t.denominator);Z.default.lessThanOrEqual(r,D$.MIN_SQRT_RATIO)&&(r=Z.default.add(D$.MIN_SQRT_RATIO,Z.default.BigInt(1)));var i=P$(n.numerator,n.denominator);return Z.default.greaterThanOrEqual(i,D$.MAX_SQRT_RATIO)&&(i=Z.default.subtract(D$.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 U$(this.pool.token0,this.pool.token1,this.pool.fee,i,0,D$.getTickAtSqrtRatio(i)),o=new U$(this.pool.token0,this.pool.token1,this.pool.fee,r,0,D$.getTickAtSqrtRatio(r)),s=e.fromAmounts(YQ({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 U$(this.pool.token0,this.pool.token1,this.pool.fee,i,0,D$.getTickAtSqrtRatio(i)),o=new e({pool:new U$(this.pool.token0,this.pool.token1,this.pool.fee,r,0,D$.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=D$.getSqrtRatioAtTick(r),l=D$.getSqrtRatioAtTick(i);return new e({pool:n,tickLower:r,tickUpper:i,liquidity:R$(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})},JQ(e,[{key:`token0PriceLower`,get:function(){return z$(this.pool.token0,this.pool.token1,this.tickLower)}},{key:`token0PriceUpper`,get:function(){return z$(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:`amount0`,get:function(){return this._token0Amount===null&&(this.pool.tickCurrent<this.tickLower?this._token0Amount=RX.fromRawAmount(this.pool.token0,y$.getAmount0Delta(D$.getSqrtRatioAtTick(this.tickLower),D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this.pool.tickCurrent<this.tickUpper?this._token0Amount=RX.fromRawAmount(this.pool.token0,y$.getAmount0Delta(this.pool.sqrtRatioX96,D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this._token0Amount=RX.fromRawAmount(this.pool.token0,l$)),this._token0Amount}},{key:`amount1`,get:function(){return this._token1Amount===null&&(this.pool.tickCurrent<this.tickLower?this._token1Amount=RX.fromRawAmount(this.pool.token1,l$):this.pool.tickCurrent<this.tickUpper?this._token1Amount=RX.fromRawAmount(this.pool.token1,y$.getAmount1Delta(D$.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!1)):this._token1Amount=RX.fromRawAmount(this.pool.token1,y$.getAmount1Delta(D$.getSqrtRatioAtTick(this.tickLower),D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount}},{key:`mintAmounts`,get:function(){return this._mintAmounts===null?this.pool.tickCurrent<this.tickLower?{amount0:y$.getAmount0Delta(D$.getSqrtRatioAtTick(this.tickLower),D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:l$}:this.pool.tickCurrent<this.tickUpper?{amount0:y$.getAmount0Delta(this.pool.sqrtRatioX96,D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:y$.getAmount1Delta(D$.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:l$,amount1:y$.getAmount1Delta(D$.getSqrtRatioAtTick(this.tickLower),D$.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts}}]),e}(),G$=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=$Q(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 JQ(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 HX(this.input,this.output,e.denominator,e.numerator)}}]),e}();function K$(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 q$=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=$Q(t),c;!(c=s()).done;)for(var l=c.value.route,u=$Q(l.pools),d;!(d=u()).done;){var f=d.value;o.add(U$.getAddress(f.token0,f.token1,f.fee))}a!=o.size&&Q(!1),this.swaps=t,this.tradeType=n}e.exactIn=function(){var t=KQ(t$.mark(function t(n,r){return t$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(`return`,e.fromRoute(n,r,DX.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=KQ(t$.mark(function t(n,r){return t$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(`return`,e.fromRoute(n,r,DX.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=KQ(t$.mark(function t(n,r,i){var a,o,s,c,l,u,d,f,p,m,h;return t$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(a=Array(n.tokenPath.length),i!==DX.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=RX.fromFractionalAmount(n.input,r.numerator,r.denominator),s=RX.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=RX.fromFractionalAmount(n.input,a[0].numerator,a[0].denominator),s=RX.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=KQ(t$.mark(function t(n,r){var i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b;return t$.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:i=[],a=$Q(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!==DX.EXACT_INPUT){t.next=25;break}!l.currency.equals(c.input)&&Q(!1),d=RX.fromFractionalAmount(c.input,l.numerator,l.denominator),u[0]=RX.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=RX.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=RX.fromFractionalAmount(c.output,l.numerator,l.denominator),u[u.length-1]=RX.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=RX.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(YQ({},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(l$)&&Q(!1),this.tradeType===DX.EXACT_OUTPUT)return t;var n=new IX(u$).add(e).invert().multiply(t.quotient).quotient;return RX.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(t===void 0&&(t=this.inputAmount),e.lessThan(l$)&&Q(!1),this.tradeType===DX.EXACT_INPUT)return t;var n=new IX(u$).add(e).multiply(t.quotient).quotient;return RX.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new HX(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=KQ(t$.mark(function t(n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b;return t$.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=QX,t.t2=c,t.next=33,e.fromRoute(new G$([].concat(o,[_]),r.currency,i),r,DX.EXACT_INPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=K$,(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=KQ(t$.mark(function t(n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g,_,v,y,b;return t$.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=QX,t.t2=c,t.next=33,e.fromRoute(new G$([_].concat(o),r,i.currency),i,DX.EXACT_OUTPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=K$,(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}(),JQ(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)},RX.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)},RX.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:`executionPrice`,get:function(){return this._executionPrice??=new HX(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=RX.fromRawAmount(this.outputAmount.currency,0),t=$Q(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 VX(s.numerator,s.denominator),this._priceImpact}}]),e}(),J$=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}();J$.INTERFACE=new kQ(LQ);function Y$(e){return`nonce`in e}var X$=function(){function e(){}return e.encodePermit=function(t,n){return Y$(n)?e.INTERFACE.encodeFunctionData(`selfPermitAllowed`,[t.address,M$(n.nonce),M$(n.expiry),n.v,n.r,n.s]):e.INTERFACE.encodeFunctionData(`selfPermit`,[t.address,M$(n.amount),M$(n.deadline),n.v,n.r,n.s])},e}();X$.INTERFACE=new kQ(zQ);var Z$=function(){function e(){}return e.encodeFeeBips=function(e){return M$(e.multiply(1e4).quotient)},e.encodeUnwrapWETH9=function(t,n,r){if(n=GX(n),r){var i=this.encodeFeeBips(r.fee),a=GX(r.recipient);return e.INTERFACE.encodeFunctionData(`unwrapWETH9WithFee`,[M$(t),n,i,a])}else return e.INTERFACE.encodeFunctionData(`unwrapWETH9`,[M$(t),n])},e.encodeSweepToken=function(t,n,r,i){if(r=GX(r),i){var a=this.encodeFeeBips(i.fee),o=GX(i.recipient);return e.INTERFACE.encodeFunctionData(`sweepTokenWithFee`,[t.address,M$(n),r,a,o])}else return e.INTERFACE.encodeFunctionData(`sweepToken`,[t.address,M$(n),r])},e.encodeRefundETH=function(){return e.INTERFACE.encodeFunctionData(`refundETH`)},e}();Z$.INTERFACE=new kQ(BQ);var Q$=M$(Z.default.subtract(Z.default.exponentiate(Z.default.BigInt(2),Z.default.BigInt(128)),Z.default.BigInt(1)));function $$(e){return Object.keys(e).some(function(e){return e===`recipient`})}var e1=function(){function e(){}return e.encodeCreate=function(t){return e.INTERFACE.encodeFunctionData(`createAndInitializePoolIfNecessary`,[t.token0.address,t.token1.address,t.fee,M$(t.sqrtRatioX96)])},e.createCallParameters=function(e){return{calldata:this.encodeCreate(e),value:M$(0)}},e.addCallParameters=function(t,n){!Z.default.greaterThan(t.liquidity,l$)&&Q(!1);var r=[],i=t.mintAmounts,a=i.amount0,o=i.amount1,s=t.mintAmountsWithSlippage(n.slippageTolerance),c=M$(s.amount0),l=M$(s.amount1),u=M$(n.deadline);if($$(n)&&n.createPool&&r.push(this.encodeCreate(t.pool)),n.token0Permit&&r.push(X$.encodePermit(t.pool.token0,n.token0Permit)),n.token1Permit&&r.push(X$.encodePermit(t.pool.token1,n.token1Permit)),$$(n)){var d=GX(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:M$(a),amount1Desired:M$(o),amount0Min:c,amount1Min:l,recipient:d,deadline:u}]))}else r.push(e.INTERFACE.encodeFunctionData(`increaseLiquidity`,[{tokenId:M$(n.tokenId),amount0Desired:M$(a),amount1Desired:M$(o),amount0Min:c,amount1Min:l,deadline:u}]));var f=M$(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,l$)&&r.push(Z$.encodeRefundETH()),f=M$(m)}return{calldata:J$.encodeMulticall(r),value:f}},e.encodeCollect=function(t){var n=[],r=M$(t.tokenId),i=t.expectedCurrencyOwed0.currency.isNative||t.expectedCurrencyOwed1.currency.isNative,a=GX(t.recipient);if(n.push(e.INTERFACE.encodeFunctionData(`collect`,[{tokenId:r,recipient:i?i$:a,amount0Max:Q$,amount1Max:Q$}])),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(Z$.encodeUnwrapWETH9(o,a)),n.push(Z$.encodeSweepToken(s,c,a))}return n},e.collectCallParameters=function(t){var n=e.encodeCollect(t);return{calldata:J$.encodeMulticall(n),value:M$(0)}},e.removeCallParameters=function(t,n){var r=[],i=M$(n.deadline),a=M$(n.tokenId),o=new W$({pool:t.pool,liquidity:n.liquidityPercentage.multiply(t.liquidity).quotient,tickLower:t.tickLower,tickUpper:t.tickUpper});!Z.default.greaterThan(o.liquidity,l$)&&Q(!1);var s=o.burnAmountsWithSlippage(n.slippageTolerance),c=s.amount0,l=s.amount1;n.permit&&r.push(e.INTERFACE.encodeFunctionData(`permit`,[GX(n.permit.spender),a,M$(n.permit.deadline),n.permit.v,n.permit.r,n.permit.s])),r.push(e.INTERFACE.encodeFunctionData(`decreaseLiquidity`,[{tokenId:a,liquidity:M$(o.liquidity),amount0Min:M$(c),amount1Min:M$(l),deadline:i}]));var u=n.collectOptions,d=u.expectedCurrencyOwed0,f=u.expectedCurrencyOwed1,p=XQ(u,[`expectedCurrencyOwed0`,`expectedCurrencyOwed1`]);return r.push.apply(r,e.encodeCollect(YQ({tokenId:M$(n.tokenId),expectedCurrencyOwed0:d.add(RX.fromRawAmount(d.currency,c)),expectedCurrencyOwed1:f.add(RX.fromRawAmount(f.currency,l))},p))),n.liquidityPercentage.equalTo(u$)?n.burnToken&&r.push(e.INTERFACE.encodeFunctionData(`burn`,[a])):n.burnToken===!0&&Q(!1),{calldata:J$.encodeMulticall(r),value:M$(0)}},e.safeTransferFromParameters=function(t){var n=GX(t.recipient),r=GX(t.sender);return{calldata:t.data?e.INTERFACE.encodeFunctionData(`safeTransferFrom(address,address,uint256,bytes)`,[r,n,M$(t.tokenId),t.data]):e.INTERFACE.encodeFunctionData(`safeTransferFrom(address,address,uint256)`,[r,n,M$(t.tokenId)]),value:M$(0)}},e}();e1.INTERFACE=new kQ(RQ);var t1=function(){function e(){}return e.quoteCallParameters=function(e,t,n,r){r===void 0&&(r={});var i=e.pools.length===1,a=M$(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:M$(r?.sqrtPriceLimitX96??0)},l=YQ({},c,n==DX.EXACT_INPUT?{amountIn:a}:{amount:a}),u=[c.tokenIn,c.tokenOut,c.fee,a,c.sqrtPriceLimitX96],d=n===DX.EXACT_INPUT?`quoteExactInputSingle`:`quoteExactOutputSingle`;o=s.encodeFunctionData(d,r.useQuoterV2?[l]:u)}else{r?.sqrtPriceLimitX96!==void 0&&Q(!1);var f=N$(e,n===DX.EXACT_OUTPUT),p=n===DX.EXACT_INPUT?`quoteExactInput`:`quoteExactOutput`;o=s.encodeFunctionData(p,[f,a])}return{calldata:o,value:M$(0)}},e}();t1.V1INTERFACE=new kQ(VQ),t1.V2INTERFACE=new kQ(HQ);var n1=function(){function e(){}return e.encodeClaim=function(t,n){var r=[];r.push(e.INTERFACE.encodeFunctionData(`unstakeToken`,[this._encodeIncentiveKey(t),M$(n.tokenId)]));var i=GX(n.recipient),a=n.amount??0;return r.push(e.INTERFACE.encodeFunctionData(`claimReward`,[t.rewardToken.address,i,M$(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),M$(n.tokenId)]))}return{calldata:J$.encodeMulticall(r),value:M$(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=GX(n.owner);return r.push(e.INTERFACE.encodeFunctionData(`withdrawToken`,[M$(n.tokenId),s,n.data?n.data:M$(0)])),{calldata:J$.encodeMulticall(r),value:M$(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=bQ.encode([e.INCENTIVE_KEY_ABI+`[]`],[r])}else n=bQ.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=GX(e.refundee);return{rewardToken:e.rewardToken.address,pool:U$.getAddress(n,r,i),startTime:M$(e.startTime),endTime:M$(e.endTime),refundee:a}},e}();n1.INTERFACE=new kQ(UQ),n1.INCENTIVE_KEY_ABI=`tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)`;var r1=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=RX.fromRawAmount(t[0].inputAmount.currency,0),c=RX.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===DX.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(X$.encodePermit(r.inputAmount.currency,n.inputTokenPermit)));for(var h=GX(n.recipient),g=M$(n.deadline),_=$Q(t),v;!(v=_()).done;)for(var y=v.value,b=$Q(y.swaps),x;!(x=b()).done;){var S=x.value,C=S.route,w=S.inputAmount,T=S.outputAmount,E=M$(y.maximumAmountIn(n.slippageTolerance,w).quotient),D=M$(y.minimumAmountOut(n.slippageTolerance,T).quotient);if(C.pools.length===1)if(y.tradeType===DX.EXACT_INPUT){var O={tokenIn:C.tokenPath[0].address,tokenOut:C.tokenPath[1].address,fee:C.pools[0].fee,recipient:p?i$:h,deadline:g,amountIn:E,amountOutMinimum:D,sqrtPriceLimitX96:M$(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?i$:h,deadline:g,amountOut:D,amountInMaximum:E,sqrtPriceLimitX96:M$(n.sqrtPriceLimitX96??0)};o.push(e.INTERFACE.encodeFunctionData(`exactOutputSingle`,[k]))}else{n.sqrtPriceLimitX96!==void 0&&Q(!1);var A=N$(C,y.tradeType===DX.EXACT_OUTPUT);if(y.tradeType===DX.EXACT_INPUT){var j={path:A,recipient:p?i$:h,deadline:g,amountIn:E,amountOutMinimum:D};o.push(e.INTERFACE.encodeFunctionData(`exactInput`,[j]))}else{var M={path:A,recipient:p?i$:h,deadline:g,amountOut:D,amountInMaximum:E};o.push(e.INTERFACE.encodeFunctionData(`exactOutput`,[M]))}}}return p&&(n.fee?f?o.push(Z$.encodeUnwrapWETH9(l.quotient,h,n.fee)):o.push(Z$.encodeSweepToken(r.outputAmount.currency.wrapped,l.quotient,h,n.fee)):o.push(Z$.encodeUnwrapWETH9(l.quotient,h))),u&&o.push(Z$.encodeRefundETH()),{calldata:J$.encodeMulticall(o),value:M$(m.quotient)}},e}();r1.INTERFACE=new kQ(WQ);var i1=[{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`}],a1=[{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`}],o1=class extends Error{message;code;constructor(e,t){super(e),this.message=e,this.code=t}},s1=class extends o1{constructor(e){super(e||`Invalid configuration`,`INVALID_CONFIGURATION`)}},c1=class extends o1{constructor(e,t){let n=`Chain with ID ${e} is not a supported chain in environment ${t}`;super(n,`CHAIN_NOT_SUPPORTED`)}},l1=class extends o1{constructor(e){super(e,`INVALID_SLIPPAGE`)}},u1=class extends o1{constructor(e){super(e,`INVALID_MAX_HOPS`)}},d1=class extends o1{constructor(e){super(e,`INVALID_ADDRESS`)}},f1=class extends o1{constructor(){super(`token in and token out addresses must be different`,`DUPLICATE_ADDRESSES`)}},p1=class extends o1{constructor(){super(`no routes available`,`NO_ROUTES_AVAILABLE`)}},m1=class extends o1{constructor(e){super(e,`PROVIDER_CALL_ERROR`)}},h1=class extends o1{constructor(e){super(e,`APPROVE_ERROR`)}};let g1=.1,_1=1e4,v1={"0xcdca1753":[`uint256`,`uint160[]`,`uint32[]`,`uint256`],"0xc6a5026a":[`uint256`,`uint160`,`uint32`,`uint256`],"0x2f80bb1d":[`uint256`,`uint160[]`,`uint32[]`,`uint256`],"0xbd21704a":[`uint256`,`uint160`,`uint32`,`uint256`]};function y1(e,t){return e===t||e.token0.equals(t.token0)&&e.token1.equals(t.token1)&&e.fee===t.fee}let b1=TM(`decimals()`).substring(0,10);async function x1(e,t,n){if(e===`native`)return n.decimals;try{let n=await t.call({to:e,data:b1});return parseInt(n,16)}catch(e){throw new m1(`failed to get ERC20 decimals: ${e instanceof Error?e.message:`Unknown Error`}`)}}function S1(e){if(e===`0x0000000000000000000000000000000000000000`)return!1;try{return hj(e),!0}catch{return!1}}let C1=e=>e===`native`||S1(e),w1=e=>new ZY(e.chainId,e.address,e.decimals,e.symbol,e.name),T1=e=>({chainId:e.chainId,address:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name,type:`erc20`}),E1=e=>{let t=w1(e.token);return VY.fromRawAmount(t,e.value.toString())},D1=(e,t)=>({value:e,token:t}),O1=e=>e.token.type===`erc20`,k1=e=>e.token.type===`native`,A1=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}},M1=(e,t)=>({value:e.value+t.value,token:e.token}),N1=(e,t)=>{if(O1(e)&&O1(t))return j1(e,t);if(k1(e)&&k1(t))return M1(e,t);throw Error(`Token mismatch: token types must be the same`)},P1=(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}},F1=(e,t)=>({value:e.value-t.value,token:e.token}),I1=(e,t)=>{if(O1(e)&&O1(t))return P1(e,t);if(k1(e)&&k1(t))return F1(e,t);throw Error(`Token mismatch: token types must be the same`)},L1=e=>e.type===`native`?{address:`native`,chainId:e.chainId,decimals:e.decimals,symbol:e.symbol,name:e.name}:e,R1=e=>({token:L1(e.token),value:e.value}),z1=()=>Math.floor(Date.now()/1e3)+900,B1=13473,V1=13371,H1={chainId:B1,decimals:18,symbol:`tIMX`,name:`Immutable Testnet Token`,type:`native`},U1={chainId:B1,address:`0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439`,decimals:18,symbol:`WIMX`,name:`Wrapped Immutable Testnet Token`,type:`erc20`},W1=[U1],G1={chainId:V1,decimals:18,symbol:`IMX`,name:`Immutable Token`,type:`native`},K1={chainId:V1,address:`0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d`,decimals:18,symbol:`WIMX`,name:`Wrapped Immutable Token`,type:`erc20`},q1=[K1,{chainId:V1,address:`0x52a6c53869ce09a731cd772f245b97a4401d3348`,decimals:18,symbol:`ETH`,name:`Ethereum`,type:`erc20`},{chainId:V1,address:`0x6de8aCC0D406837030CE4dd28e7c08C5a96a30d2`,decimals:6,symbol:`USDC`,name:`USDC`,type:`erc20`},{chainId:V1,address:`0x68bcc7F1190AF20e7b572BCfb431c3Ac10A936Ab`,decimals:6,symbol:`USDT`,name:`USDT`,type:`erc20`}],J1=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}},Y1=async(e,t)=>{let n=await J1(e).catch(()=>null);return n?D1(n.maxFeePerGas,t):null},X1=(e,t,n)=>{let r=D1(n*t.value,t.token);return e?D1(r.value+t.value*BigInt(50876),t.token):r},Z1=[{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 Q1=class{static abi=Z1;static createInterface(){return new bF(Z1)}static connect(e,t){return new mI(e,Z1,t)}};let $1=async(e,t,n,r)=>{let i=Q1.connect(n.token.address,e),a;try{a=await i.allowance(t,r)}catch(e){throw new h1(`failed to get allowance: ${e instanceof Error?e.message:`Unknown Error`}`)}return!(n.value-a<=0)},e0=(e,t,n)=>{if(e===n)throw new h1(`owner and spender addresses are the same`);return{data:Q1.createInterface().encodeFunctionData(`approve`,[n,t.value]),to:t.token.address,value:0,from:e}},t0=(e,t,n,r,i)=>{let a=e===DY.EXACT_INPUT?t:n;return O1(a)?{spender:i.length===0?r.routerAddress:r.secondaryFeeAddress,amount:a}:null},n0=async(e,t,n,r)=>await $1(e,t,n,r)?e0(t,n,r):null;async function r0(e,t,n,r){return await Q1.connect(r,e).approve.estimateGas(n,JA,{from:t})}let i0=async(e,t,n,r)=>{let i=await n0(e,t,n.amount,n.spender);if(!i)return null;let a=await r0(e,t,n.spender,n.amount.token.address),o=r?X1(!1,r,a):null;return{transaction:i,gasFeeEstimate:o?R1(o):null}},a0=e=>e.type===`native`;var o0=class{nativeToken;wrappedToken;constructor(e,t){this.nativeToken=e,this.wrappedToken=t}wrapAmount(e){return D1(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 D1(e.value,this.nativeToken)}maybeWrapToken(e){return a0(e)?this.wrappedToken:e}maybeWrapAmount(e){return D1(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 s0=e=>{if(e.toString().split(`.`).length===1)return new WY(e,100);let t=(e/100).toString().split(`.`);return new WY(t[0]+t[1],10**t[1].length)};function c0(e){return e.tradeType===DY.EXACT_INPUT?e.amountOut:e.amountIn}function l0(e,t,n){let r=s0(n).add(1),i=(e===DY.EXACT_INPUT?r.invert():r).multiply(t.toString()).quotient;return BigInt(i.toString())}let u0=(e,t,n,r)=>{let i=c0(t),a=a0(r)?e.unwrapAmount(i):i;return{quotedAmount:a,quotedAmountWithMaxSlippage:D1(l0(t.tradeType,a.value,n),r)}};function d0(e,t,n,r){return n===DY.EXACT_OUTPUT?r.maybeWrapAmount(e):(t.addAmount(e),r.maybeWrapAmount(t.amountLessFees()))}var f0=class{secondaryFees;amount;constructor(e,t){this.secondaryFees=e,this.amount=D1(BigInt(0),t)}get token(){return this.amount.token}addAmount(e){this.amount=N1(this.amount,e)}amountWithFeesApplied(){return N1(this.amount,this.total())}amountLessFees(){return I1(this.amount,this.total())}withAmounts(){return this.secondaryFees.map(e=>{let t=this.amount.value*BigInt(e.basisPoints)/BigInt(_1);return{...e,amount:D1(t,this.amount.token)}})}total(){let e=D1(BigInt(0),this.amount.token);for(let t of this.secondaryFees){let n=this.amount.value*BigInt(t.basisPoints)/BigInt(_1);e=N1(e,D1(n,this.amount.token))}return e}};let p0=[{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`}],m0=`0x60806040523480156200001157600080fd5b50604051620034dd380380620034dd83398101604081905262000034916200015c565b6001805460ff191690556200004b6000846200009e565b600180546001600160a01b039384166101008102610100600160a81b03199092169190911790915560038054929093166001600160a01b03199283161790925560028054909116909117905550620001a6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200013b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000fa3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b03811681146200015757600080fd5b919050565b6000806000606084860312156200017257600080fd5b6200017d846200013f565b92506200018d602085016200013f565b91506200019d604085016200013f565b90509250925092565b61332780620001b66000396000f3fe6080604052600436106101175760003560e01c806358e81a50116100a05780638456cb59116100645780638456cb59146102c457806391d14854146102d9578063a217fddf146102f9578063ac9650d81461030e578063d547741f1461032e57600080fd5b806358e81a50146102465780635ae401dc146102595780635c975abb146102795780635ebca7991461029157806368742da6146102a457600080fd5b80632f2ff15d116100e75780632f2ff15d146101cb57806336568abe146101eb578063383ebb0b1461020b5780633f4ba83a1461021e5780635640f6591461023357600080fd5b80620fa9fb1461012357806301ffc9a714610145578063116944b21461017a578063248a9ca31461019b57600080fd5b3661011e57005b600080fd5b34801561012f57600080fd5b5061014361013e366004612ab8565b61034e565b005b34801561015157600080fd5b50610165610160366004612af1565b61041a565b60405190151581526020015b60405180910390f35b61018d610188366004612c89565b610451565b604051908152602001610171565b3480156101a757600080fd5b5061018d6101b6366004612cde565b60009081526020819052604090206001015490565b3480156101d757600080fd5b506101436101e6366004612cf7565b610771565b3480156101f757600080fd5b50610143610206366004612cf7565b610796565b61018d610219366004612ddf565b610819565b34801561022a57600080fd5b50610143610b86565b61018d610241366004612ddf565b610bd6565b61018d610254366004612c89565b610ee4565b61026c610267366004612e8b565b61121e565b6040516101719190612f26565b34801561028557600080fd5b5060015460ff16610165565b61014361029f366004612cde565b611255565b3480156102b057600080fd5b506101436102bf366004612f88565b6113ad565b3480156102d057600080fd5b50610143611428565b3480156102e557600080fd5b506101656102f4366004612cf7565b611476565b34801561030557600080fd5b5061018d600081565b34801561031a57600080fd5b5061026c610329366004612fa5565b61149f565b34801561033a57600080fd5b50610143610349366004612cf7565b611593565b6103787f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b610394576040516282b42960e81b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff9190612fe6565b90506104156001600160a01b03831684836115b8565b505050565b60006001600160e01b03198216637965db0b60e01b148061044b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061045f60015460ff1690565b1561047d5760405163ab35696f60e01b815260040160405180910390fd5b61048a826060015161161b565b6104a75760405163519bdea760e01b815260040160405180910390fd5b608082015134801561065a57836080015181146104d7576040516342f7487960e11b815260040160405180910390fd5b60035484516001600160a01b03908116911614610507576040516324d0121760e01b815260040160405180910390fd5b60008061056f866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b828210156105655761055660408302860136819003810190612fff565b81526020019060010190610539565b5050505050611641565b608088018290526001546040516304e45aaf60e01b815292945090925061010090046001600160a01b0316906304e45aaf9084906105b1908a90600401613056565b60206040518083038185885af11580156105cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105f49190612fe6565b945061065384828a8a808060200260200160405190810160405280939291908181526020016000905b828210156106495761063a60408302860136819003810190612fff565b8152602001906001019061061d565b5050505050611679565b5050610768565b6000806106b8866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610565576106a960408302860136819003810190612fff565b8152602001906001019061068c565b60808801829052875191935091506106db906001600160a01b031633308561170c565b6001546040516304e45aaf60e01b81526101009091046001600160a01b0316906304e45aaf9061070f908990600401613056565b6020604051808303816000875af115801561072e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107529190612fe6565b9450610765866000015185838b8b61174a565b50505b50509392505050565b60008281526020819052604090206001015461078c8161184b565b6104158383611855565b6001600160a01b038116331461080b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61081582826118d9565b5050565b600061082760015460ff1690565b156108455760405163ab35696f60e01b815260040160405180910390fd5b610852826020015161161b565b61086f5760405163519bdea760e01b815260040160405180910390fd5b600061087e836000015161193e565b606084015190915034908115610a30576003546001600160a01b038481169116146108bc576040516324d0121760e01b815260040160405180910390fd5b846060015182146108e0576040516342f7487960e11b815260040160405180910390fd5b600061094286606001518989808060200260200160405190810160405280939291908181526020016000905b828210156109385761092960408302860136819003810190612fff565b8152602001906001019061090c565b5050505050611974565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b81346908490610985908b906004016130fc565b60206040518083038185885af11580156109a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109c89190612fe6565b9050610a2781848b8b808060200260200160405190810160405280939291908181526020016000905b82821015610a1d57610a0e60408302860136819003810190612fff565b815260200190600101906109f1565b50505050506119c3565b95505050610b7c565b6000610a938487606001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a8957610a7a60408302860136819003810190612fff565b81526020019060010190610a5d565b5050505050611aab565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b8134690610ad4908a906004016130fc565b6020604051808303816000875af1158015610af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b179190612fe6565b9050610b778582858c8c808060200260200160405190810160405280939291908181526020016000905b82821015610b6d57610b5e60408302860136819003810190612fff565b81526020019060010190610b41565b5050505050611b03565b955050505b5050509392505050565b610bb07fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b533611476565b610bcc576040516282b42960e81b815260040160405180910390fd5b610bd4611b57565b565b6000610be460015460ff1690565b15610c025760405163ab35696f60e01b815260040160405180910390fd5b610c0f826020015161161b565b610c2c5760405163519bdea760e01b815260040160405180910390fd5b6000610c3b8360000151611ba9565b6040840151909150348015610dd75784604001518114610c6e576040516342f7487960e11b815260040160405180910390fd5b6003546001600160a01b03848116911614610c9c576040516324d0121760e01b815260040160405180910390fd5b600080610cf68588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610ce760408302860136819003810190612fff565b81526020019060010190610cca565b6040898101839052600154905163b858183f60e01b815292945090925061010090046001600160a01b03169063b858183f908490610d38908b906004016130fc565b60206040518083038185885af1158015610d56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7b9190612fe6565b9550610dd084828b8b808060200260200160405190810160405280939291908181526020016000905b8282101561064957610dc160408302860136819003810190612fff565b81526020019060010190610da4565b5050610b7c565b600080610e318588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610e2260408302860136819003810190612fff565b81526020019060010190610e05565b604089018290529092509050610e526001600160a01b03861633308561170c565b60015460405163b858183f60e01b81526101009091046001600160a01b03169063b858183f90610e86908a906004016130fc565b6020604051808303816000875af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612fe6565b9550610ed88585838c8c61174a565b50505050509392505050565b6000610ef260015460ff1690565b15610f105760405163ab35696f60e01b815260040160405180910390fd5b610f1d826060015161161b565b610f3a5760405163519bdea760e01b815260040160405180910390fd5b60a0820151349081156110d75760035484516001600160a01b03908116911614610f77576040516324d0121760e01b815260040160405180910390fd5b8360a001518214610f9b576040516342f7487960e11b815260040160405180910390fd5b6000610ff38560a001518888808060200260200160405190810160405280939291908181526020016000905b8282101561093857610fe460408302860136819003810190612fff565b81526020019060010190610fc7565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df908490611036908a90600401613056565b60206040518083038185885af1158015611054573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110799190612fe6565b90506110ce81848a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a1d576110bf60408302860136819003810190612fff565b815260200190600101906110a2565b94505050610768565b600061113485600001518660a001518989808060200260200160405190810160405280939291908181526020016000905b82821015610a895761112560408302860136819003810190612fff565b81526020019060010190611108565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df90611175908990600401613056565b6020604051808303816000875af1158015611194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b89190612fe6565b9050611212866000015182858b8b808060200260200160405190810160405280939291908181526020016000905b82821015610b6d5761120360408302860136819003810190612fff565b815260200190600101906111e6565b98975050505050505050565b6060834211156112415760405163387b2e5560e11b815260040160405180910390fd5b61124b838361149f565b90505b9392505050565b60015460ff16156112795760405163ab35696f60e01b815260040160405180910390fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190612fe6565b905081811015611313576040516342fb4ceb60e11b81526004810183905260248101829052604401610802565b801561081557600354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b5050505060006113833383611bb5565b905080610415576040516342fb4ceb60e11b81526004810184905260248101839052604401610802565b6113d77f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b6113f3576040516282b42960e81b815260040160405180910390fd5b47156114255760006114058247611bb5565b90508061081557604051633398652560e11b815260040160405180910390fd5b50565b6114527ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f633611476565b61146e576040516282b42960e81b815260040160405180910390fd5b610bd4611c5f565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b038111156114b9576114b9612b66565b6040519080825280602002602001820160405280156114ec57816020015b60608152602001906001900390816114d75790505b50905060005b8281101561158c5761155c308585848181106115105761151061310f565b90506020028101906115229190613125565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c9a92505050565b82828151811061156e5761156e61310f565b6020026020010181905250808061158490613181565b9150506114f2565b5092915050565b6000828152602081905260409020600101546115ae8161184b565b61041583836118d9565b6040516001600160a01b03831660248201526044810182905261041590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611cbf565b60006001600160a01b03821633148061044b57506001600160a01b038216301492915050565b60008061164d83611d94565b506116588484611e07565b509050611665818561319a565b91506116718583611f30565b935093915050565b600061168361202d565b905060006116928583866120a4565b90506000806116a18386611e07565b915091506116ae816120d0565b8315611703576000826116c1858a61319a565b6116cb919061319a565b905080156117015760006116df3383611bb5565b9050806116ff576040516382e4f46960e01b815260040160405180910390fd5b505b505b50505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526117449085906323b872dd60e01b906084016115e4565b50505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190612fe6565b905060006117c48683876120a4565b90506000611824828686808060200260200160405190810160405280939291908181526020016000905b8282101561181a5761180b60408302860136819003810190612fff565b815260200190600101906117ee565b5050505050611e07565b91505061183188826121af565b8215611701576117016001600160a01b03891633856115b8565b61142581336122b8565b61185f8282611476565b610815576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556118953390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6118e38282611476565b15610815576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000806014835161194f919061319a565b9050600061195f84836014612311565b905061196c81600061241e565b949350505050565b60008061198083611d94565b90506000611990826127106131ad565b905060006119a18661271084612483565b6003549091506119ba906001600160a01b031682611f30565b95945050505050565b60008060006119d28685611e07565b915091506119df816120d0565b600260009054906101000a90046001600160a01b03166001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a2f57600080fd5b505af1158015611a43573d6000803e3d6000fd5b505050506000828787611a56919061319a565b611a60919061319a565b90508015611a96576000611a743383611bb5565b905080611a94576040516382e4f46960e01b815260040160405180910390fd5b505b611aa083886131ad565b979650505050505050565b600080611ab783611d94565b90506000611ac7826127106131ad565b90506000611ad88661271084612483565b9050611ae48782611f30565b611af96001600160a01b03881633308961170c565b9695505050505050565b6000806000611b128685611e07565b91509150611b2087826124c3565b600082611b2d888861319a565b611b37919061319a565b9050611b4d6001600160a01b03891633836115b8565b61121283886131ad565b611b5f6125ca565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061044b828261241e565b600081471015611c075760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610802565b6040516001600160a01b038416908390600081818185875af1925050503d8060008114611c50576040519150601f19603f3d011682016040523d82523d6000602084013e611c55565b606091505b5090949350505050565b611c67612613565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611b8c565b606061124e83836040518060600160405280602781526020016132cb60279139612659565b6000611d14826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126c79092919063ffffffff16565b9050805160001480611d35575080806020019051810190611d3591906131c0565b6104155760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610802565b6000805b8251811015611dde57828181518110611db357611db361310f565b60200260200101516020015182611dca91906131ad565b915080611dd681613181565b915050611d98565b506103e8811115611e025760405163cd4e616760e01b815260040160405180910390fd5b919050565b6000606082516001600160401b03811115611e2457611e24612b66565b604051908082528060200260200182016040528015611e6957816020015b6040805180820190915260008082526020820152815260200190600190039081611e425790505b50905060005b8351811015611f28576000611eae858381518110611e8f57611e8f61310f565b602002602001015160200151612710886126d69092919063ffffffff16565b90506040518060400160405280868481518110611ecd57611ecd61310f565b6020026020010151600001516001600160a01b0316815260200182815250838381518110611efd57611efd61310f565b6020908102919091010152611f1281856131ad565b9350508080611f2090613181565b915050611e6f565b509250929050565b600154604051636eb1769f60e11b81523060048201526001600160a01b0361010090920482166024820152829184169063dd62ed3e90604401602060405180830381865afa158015611f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faa9190612fe6565b10156108155760015460405163095ea7b360e01b81526101009091046001600160a01b039081166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015612009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041591906131c0565b60025460408051630910874560e11b8152905160009247926001600160a01b03909116916312210e8a91600480820192879290919082900301818387803b15801561207757600080fd5b505af115801561208b573d6000803e3d6000fd5b5047925061209d91508390508261319a565b9250505090565b600082156120c857816120b7848661319a565b6120c1919061319a565b905061124e565b509192915050565b60005b81518110156108155760008282815181106120f0576120f061310f565b60200260200101519050600061210e82600001518360200151611bb5565b90508061214557815160208301516040516208c3b360e61b81526001600160a01b0390921660048301526024820152604401610802565b81600001516001600160a01b0316336001600160a01b03167fe0e765ab26c1caf691c510426951246128b96830e49cc81d8c093fd551abac35846020015160405161219291815260200190565b60405180910390a3505080806121a790613181565b9150506120d3565b60005b815181101561041557612215338383815181106121d1576121d161310f565b6020026020010151600001518484815181106121ef576121ef61310f565b602002602001015160200151866001600160a01b031661170c909392919063ffffffff16565b8181815181106122275761222761310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106122835761228361310f565b60200260200101516020015160405161229e91815260200190565b60405180910390a4806122b081613181565b9150506121b2565b6122c28282611476565b610815576122cf81612778565b6122da83602061278a565b6040516020016122eb9291906131e2565b60408051601f198184030181529082905262461bcd60e51b825261080291600401613257565b60608161231f81601f6131ad565b101561235e5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610802565b61236882846131ad565b845110156123ac5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610802565b6060821580156123cb5760405191506000825260208201604052612415565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156124045780518352602092830192016123ec565b5050858452601f01601f1916604052505b50949350505050565b600061242b8260146131ad565b835110156124735760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610802565b500160200151600160601b900490565b60006124908484846126d6565b9050600082806124a2576124a261326a565b848609111561124e5760001981106124b957600080fd5b6001019392505050565b60005b8151811015610415576125278282815181106124e4576124e461310f565b6020026020010151600001518383815181106125025761250261310f565b602002602001015160200151856001600160a01b03166115b89092919063ffffffff16565b8181815181106125395761253961310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106125955761259561310f565b6020026020010151602001516040516125b091815260200190565b60405180910390a4806125c281613181565b9150506124c6565b60015460ff16610bd45760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610802565b60015460ff1615610bd45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610802565b6060600080856001600160a01b0316856040516126769190613280565b600060405180830381855af49150503d80600081146126b1576040519150601f19603f3d011682016040523d82523d6000602084013e6126b6565b606091505b5091509150611af986838387612925565b606061124b848460008561299e565b600083830281600019858709828110838203039150508084116126f857600080fd5b8060000361270b5750829004905061124e565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b606061044b6001600160a01b03831660145b6060600061279983600261329c565b6127a49060026131ad565b6001600160401b038111156127bb576127bb612b66565b6040519080825280601f01601f1916602001820160405280156127e5576020820181803683370190505b509050600360fc1b816000815181106128005761280061310f565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061282f5761282f61310f565b60200101906001600160f81b031916908160001a905350600061285384600261329c565b61285e9060016131ad565b90505b60018111156128d6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106128925761289261310f565b1a60f81b8282815181106128a8576128a861310f565b60200101906001600160f81b031916908160001a90535060049490941c936128cf816132b3565b9050612861565b50831561124e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610802565b6060831561299457825160000361298d576001600160a01b0385163b61298d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610802565b508161196c565b61196c8383612a6e565b6060824710156129ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610802565b600080866001600160a01b03168587604051612a1b9190613280565b60006040518083038185875af1925050503d8060008114612a58576040519150601f19603f3d011682016040523d82523d6000602084013e612a5d565b606091505b5091509150611aa087838387612925565b815115612a7e5781518083602001fd5b8060405162461bcd60e51b81526004016108029190613257565b6001600160a01b038116811461142557600080fd5b8035611e0281612a98565b60008060408385031215612acb57600080fd5b8235612ad681612a98565b91506020830135612ae681612a98565b809150509250929050565b600060208284031215612b0357600080fd5b81356001600160e01b03198116811461124e57600080fd5b60008083601f840112612b2d57600080fd5b5081356001600160401b03811115612b4457600080fd5b6020830191508360208260061b8501011115612b5f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612b9e57612b9e612b66565b60405290565b604051608081016001600160401b0381118282101715612b9e57612b9e612b66565b604051601f8201601f191681016001600160401b0381118282101715612bee57612bee612b66565b604052919050565b600060e08284031215612c0857600080fd5b612c10612b7c565b90508135612c1d81612a98565b81526020820135612c2d81612a98565b6020820152604082013562ffffff81168114612c4857600080fd5b6040820152612c5960608301612aad565b60608201526080820135608082015260a082013560a0820152612c7e60c08301612aad565b60c082015292915050565b60008060006101008486031215612c9f57600080fd5b83356001600160401b03811115612cb557600080fd5b612cc186828701612b1b565b9094509250612cd590508560208601612bf6565b90509250925092565b600060208284031215612cf057600080fd5b5035919050565b60008060408385031215612d0a57600080fd5b823591506020830135612ae681612a98565b600060808284031215612d2e57600080fd5b612d36612ba4565b905081356001600160401b0380821115612d4f57600080fd5b818401915084601f830112612d6357600080fd5b8135602082821115612d7757612d77612b66565b612d89601f8301601f19168201612bc6565b92508183528681838601011115612d9f57600080fd5b81818501828501376000818385010152828552612dbd818701612aad565b8186015250505050604082013560408201526060820135606082015292915050565b600080600060408486031215612df457600080fd5b83356001600160401b0380821115612e0b57600080fd5b612e1787838801612b1b565b90955093506020860135915080821115612e3057600080fd5b50612e3d86828701612d1c565b9150509250925092565b60008083601f840112612e5957600080fd5b5081356001600160401b03811115612e7057600080fd5b6020830191508360208260051b8501011115612b5f57600080fd5b600080600060408486031215612ea057600080fd5b8335925060208401356001600160401b03811115612ebd57600080fd5b612ec986828701612e47565b9497909650939450505050565b60005b83811015612ef1578181015183820152602001612ed9565b50506000910152565b60008151808452612f12816020860160208601612ed6565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612f7b57603f19888603018452612f69858351612efa565b94509285019290850190600101612f4d565b5092979650505050505050565b600060208284031215612f9a57600080fd5b813561124e81612a98565b60008060208385031215612fb857600080fd5b82356001600160401b03811115612fce57600080fd5b612fda85828601612e47565b90969095509350505050565b600060208284031215612ff857600080fd5b5051919050565b60006040828403121561301157600080fd5b604051604081018181106001600160401b038211171561303357613033612b66565b604052823561304181612a98565b81526020928301359281019290925250919050565b60e0810161044b828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b60008151608084526130ca6080850182612efa565b6020848101516001600160a01b0316908601526040808501519086015260609384015193909401929092525090919050565b60208152600061124e60208301846130b5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261313c57600080fd5b8301803591506001600160401b0382111561315657600080fd5b602001915036819003821315612b5f57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131935761319361316b565b5060010190565b8181038181111561044b5761044b61316b565b8082018082111561044b5761044b61316b565b6000602082840312156131d257600080fd5b8151801515811461124e57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161321a816017850160208801612ed6565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161324b816028840160208801612ed6565b01602801949350505050565b60208152600061124e6020830184612efa565b634e487b7160e01b600052601260045260246000fd5b60008251613292818460208701612ed6565b9190910192915050565b808202811582820484141761044b5761044b61316b565b6000816132c2576132c261316b565b50600019019056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220162c0f9d1b47c666f486fc65c7c7502bb0e7378e3166be6f93d98943154831c364736f6c63430008130033`,h0=e=>e.length>1;var g0=class extends hI{constructor(...e){h0(e)?super(...e):super(p0,m0,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=m0;static abi=p0;static createInterface(){return new bF(p0)}static connect(e,t){return new mI(e,p0,t)}};let _0=[{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`}],v0=`0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a`,y0=e=>e.length>1;var b0=class extends hI{constructor(...e){y0(e)?super(...e):super(_0,v0,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=v0;static abi=_0;static createInterface(){return new bF(_0)}static connect(e,t){return new mI(e,_0,t)}};let x0=[{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`}],S0=`0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a`,C0=e=>e.length>1;var w0=class extends hI{constructor(...e){C0(e)?super(...e):super(x0,S0,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=S0;static abi=x0;static createInterface(){return new bF(x0)}static connect(e,t){return new mI(e,x0,t)}};let T0=[{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 E0=class{static abi=T0;static createInterface(){return new bF(T0)}static connect(e,t){return new mI(e,T0,t)}};function D0(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=T1(o),l=T1(s),u=r===DY.EXACT_INPUT?n:D1(i,c),d=r===DY.EXACT_INPUT?D1(i,l):n,f=new GY(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 O0(e,t,n,r,i,a){let o=n.map(e=>t1.quoteCallParameters(e,E1(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=v1[o[a].substring(0,10)];if(!s)throw Error(`No quoting function signature found`);if(t.value===`0x`)return e;try{let o=D0(pF.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=A0(t),_j(e,bk(pF.defaultAbiCoder().encode([`address`,`address`,`uint24`],[t[0].address,t[1].address,n])),r??`0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`)}let A0=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},M0=[o$.LOWEST,o$.LOW,o$.MEDIUM,o$.HIGH],N0=(e,t,n)=>{let r=j0(e,t),i=[];for(let e=0;e<r.length;e++)for(let t=0;t<M0.length;t++){let a=k0({factoryAddress:n,erc20Pair:r[e],fee:M0[t]});i.push({erc20Pair:r[e],fee:M0[t],poolAddress:a})}return i};async function P0(e,t,n,r){let i=w0.createInterface(),a=F0(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 F0=(e,t)=>{let n=t?.getFunction(e);return n?t?.encodeFunctionData(n):void 0},I0=`liquidity`,L0=`slot0`,R0=async(e,t,n,r,i)=>{let a=N0(t,n,r),o=a.map(e=>e.poolAddress),s,c;try{[s,c]=await Promise.all([P0(e,L0,o,{blockTag:i}),P0(e,I0,o,{blockTag:i})])}catch(e){throw new m1(`failed multicall: ${e instanceof Error?e.message:`Unknown Error`}`)}let l=s.returnData,u=c.returnData,d=w0.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(L0,l[t].returnData),a=d.decodeFunctionResult(I0,u[t].returnData),o=i.sqrtPriceX96===BigInt(0),p=a[0]===BigInt(0);if(o||p)return;let m=new U$(w1(e.erc20Pair[0]),w1(e.erc20Pair[1]),e.fee,i.sqrtPriceX96.toString(),a.toString(),Number(i.tick));f.push(m)}),f};var z0=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 R0(this.multicallContract,s,this.routingTokens,this.routingContracts.coreFactory,i);if(c.length===0)throw new p1;let l=B0(a,o,c,r,[],[],a);if(l.length===0)throw new p1;return await this.getBestQuoteFromRoutes(l,e,n,i)}async getBestQuoteFromRoutes(e,t,n,r){let i=await O0(this.provider,this.routingContracts.quoter,e,t,n,r);if(i.length===0)throw new p1;if(n===DY.EXACT_INPUT)return this.bestQuoteForAmountIn(i);if(n===DY.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===DY.EXACT_INPUT?[t.token,n]:[n,t.token]}};let B0=(e,t,n,r,i=[],a=[],o=e)=>{let s=w1(e),c=w1(t),l=w1(o);for(let e of n){let u=e.involvesToken(s),d=i.find(t=>y1(e,t));if(!u||d)continue;let f=e.token0.equals(s)?e.token1:e.token0;f.equals(c)?a.push(new G$([...i,e],l,c)):r>1&&B0(T1(f),t,n,r-1,[...i,e],a,o)}return a};function V0(e,t,n,r,i,a,o,s,c){let l=[];return r.tradeType===DY.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===DY.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}])),A1(e)&&l.push(c.encodeFunctionData(`refundETH`)),A1(t)&&l.push(c.encodeFunctionData(`unwrapWETH9(uint256)`,[o])),l}function H0(e,t,n,r,i,a,o,s){let c=a.map(e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient})),l=[];return t.tradeType===DY.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===DY.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}])),A1(s)&&l.push(o.encodeFunctionData(`unwrapNativeToken`,[i])),l}function U0(e,t,n,r,i,a,o,s,c){let l=N$(i,r.tradeType===DY.EXACT_OUTPUT),u=[];return r.tradeType===DY.EXACT_INPUT&&u.push(s.encodeFunctionData(`exactInput`,[{path:l,recipient:n,amountIn:a,amountOutMinimum:o}])),r.tradeType===DY.EXACT_OUTPUT&&u.push(s.encodeFunctionData(`exactOutput`,[{path:l,recipient:n,amountInMaximum:a,amountOut:o}])),A1(e)&&u.push(c.encodeFunctionData(`refundETH`)),A1(t)&&u.push(c.encodeFunctionData(`unwrapWETH9(uint256)`,[o])),u}function W0(e,t,n,r,i,a,o,s){let c=N$(n,t.tradeType===DY.EXACT_OUTPUT),l=a.map(e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient})),u=[];return t.tradeType===DY.EXACT_INPUT&&u.push(o.encodeFunctionData(`exactInputWithSecondaryFee`,[l,{path:c,recipient:e,amountIn:r,amountOutMinimum:i}])),t.tradeType===DY.EXACT_OUTPUT&&u.push(o.encodeFunctionData(`exactOutputWithSecondaryFee`,[l,{path:c,recipient:e,amountInMaximum:r,amountOut:i}])),A1(s)&&u.push(o.encodeFunctionData(`unwrapNativeToken`,[i])),u}function G0(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?H0(n,r,u,c,l,i,a,t):V0(e,t,n,r,u,c,l,o,s):f?W0(n,r,u,c,l,i,a,t):U0(e,t,n,r,u,c,l,o,s)}function K0(e,t,n,r,i,a,o,s){let c=g0.createInterface(),l=G0(e,t,r,n,a,c,new bF(i1),new bF(a1),o,s);return c.encodeFunctionData(`multicall(uint256,bytes[])`,[i.deadlineOrPreviousBlockhash,l])}function q0(e,t,n,r,i,a,o){let s=q$.createUncheckedTrade({route:n.route,inputAmount:E1(n.amountIn),outputAmount:E1(n.amountOut),tradeType:n.tradeType}),c={slippageTolerance:s0(i),recipient:r,deadlineOrPreviousBlockhash:a},l=M$(s.maximumAmountIn(c.slippageTolerance).quotient);return{calldata:K0(e,t,s,r,c,o,l,M$(s.minimumAmountOut(c.slippageTolerance).quotient)),maximumAmountIn:l}}let J0=(e,t)=>e.type===`native`?t:`0x00`,Y0=(e,t,n,r,i)=>A1(e)?i.length===0?n:r:t;function X0(e,t,n,r,i,a,o,s,c,l){let{calldata:u,maximumAmountIn:d}=q0(e,t,n,Y0(t,r,o,s,l),i,a,l),f=l.length>0,p=c?X1(f,c,n.gasEstimate):null,m=J0(e,d);return{transaction:{data:u,to:l.length>0?s:o,value:m,from:r},gasFeeEstimate:p?R1(p):null}}let Z0=(e,t,n,r)=>{if(e.tradeType===DY.EXACT_OUTPUT){let t=a0(n.token)?r.unwrapAmount(e.amountIn):e.amountIn;return n.addAmount(t),r.maybeWrapAmount(n.amountWithFeesApplied())}return r.maybeWrapAmount(t)};function Q0(e,t,n,r){let i=Z0(e,t,n,r);return{gasEstimate:e.gasEstimate,route:e.route,amountIn:i,amountOut:e.amountOut,tradeType:e.tradeType,priceImpact:e.priceImpact}}let $0={[B1]:{multicall:`0x4857Dfd11c712e862eC362cEee29F7974B70EfcD`,coreFactory:`0x56c2162254b0E4417288786eE402c2B41d4e181e`,quoter:`0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd`,swapRouter:`0x0b012055F770AE7BB7a8303968A7Fb6088A2296e`,immutableSwapProxy:`0xDdBDa144cEbe1cCd68E746CDff8a6e4Be51A9e98`},[V1]:{multicall:`0xc7efb32470dEE601959B15f1f923e017C6A918cA`,coreFactory:`0x56c2162254b0E4417288786eE402c2B41d4e181e`,quoter:`0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd`,swapRouter:`0xE5a02c2Be08406c3fB36F9Aa29bF7C7A09CAe50B`,immutableSwapProxy:`0xD67cc11151dBccCC424A16F8963ece3D0539BD61`}},e2={[B1]:{chainId:B1,rpcUrl:`https://rpc.testnet.immutable.com`,contracts:$0[B1],commonRoutingTokens:W1,nativeToken:H1,wrappedNativeToken:U1}},t2={[V1]:{chainId:V1,rpcUrl:`https://rpc.immutable.com`,contracts:$0[V1],commonRoutingTokens:q1,nativeToken:G1,wrappedNativeToken:K1}},n2={[p.SANDBOX]:e2,[p.PRODUCTION]:t2};function r2(e){for(let t of[`rpcURL`,`exchangeContracts`,`commonRoutingTokens`,`nativeToken`])if(!e[t])throw new s1(`Missing override: ${t}`);Object.entries(e.exchangeContracts).forEach(([e,t])=>{if(!S1(t))throw new s1(`Invalid exchange contract address for ${e}`)})}function i2(e){let t=0;for(let n of e){if(!S1(n.recipient))throw new s1(`Invalid secondary fee recipient address: ${n.recipient}`);if(n.basisPoints<=0||n.basisPoints>1e3)throw new s1(`Invalid secondary fee basis points: ${n.basisPoints}`);t+=n.basisPoints}if(t>1e3)throw new s1(`Invalid total secondary fee basis points: ${t}`)}var a2=class{baseConfig;chain;secondaryFees=[];constructor({chainId:e,baseConfig:t,secondaryFees:n,overrides:r}){if(this.baseConfig=t,this.secondaryFees=n||[],i2(this.secondaryFees),r){r2(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=n2[t.environment][e];if(!i)throw new c1(e,t.environment);this.chain=i}};let o2=(e,t,n,r,i)=>({amount:R1(e),amountWithMaxSlippage:R1(t),slippage:n,priceImpact:r,fees:i.withAmounts().map(e=>({...e,amount:R1(e.amount)}))});var s2=class e{provider;batchProvider;router;chainId;nativeToken;wrappedNativeToken;secondaryFees;nativeTokenService;swapProxyContractAddress;routerContractAddress;constructor(e){let t=new a2(e);this.chainId=t.chain.chainId,this.nativeToken=t.chain.nativeToken,this.wrappedNativeToken=t.chain.wrappedNativeToken,this.nativeTokenService=new o0(this.nativeToken,this.wrappedNativeToken),this.secondaryFees=t.secondaryFees,this.routerContractAddress=t.chain.contracts.swapRouter,this.swapProxyContractAddress=t.chain.contracts.immutableSwapProxy,this.provider=new BL(t.chain.rpcUrl,t.chain.chainId,{staticNetwork:!0}),this.batchProvider=new BL(t.chain.rpcUrl,t.chain.chainId);let n=b0.connect(t.chain.contracts.multicall,this.provider);this.router=new z0(this.batchProvider,n,t.chain.commonRoutingTokens,t.chain.contracts)}static validate(e,t,n,r,i){if(!S1(i))throw new d1(`Error: invalid from address`);if(!C1(e))throw new d1(`Error: invalid token in address`);if(!C1(t))throw new d1(`Error: invalid token out address`);if(e.toLocaleLowerCase()===t.toLocaleLowerCase())throw new f1;if(n>10)throw new u1(`Error: max hops must be less than or equal to 10`);if(n<1)throw new u1(`Error: max hops must be greater than or equal to 1`);if(r>50)throw new l1(`Error: slippage percent must be less than or equal to 50`);if(r<0)throw new l1(`Error: slippage percent must be greater than or equal to 0`)}async getSecondaryFees(e){return this.secondaryFees.length===0||await g0.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?R1(X1(!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?R1(X1(!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:R1(a),amountWithMaxSlippage:R1(a),slippage:0,priceImpact:0,fees:[]},s=E0.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=[x1(n,this.batchProvider,this.nativeToken),x1(r,this.batchProvider,this.nativeToken),this.getSecondaryFees(this.batchProvider),Y1(this.batchProvider,this.nativeToken)],[u,d,f,p]=await Promise.all(l),m=this.parseTokenLiteral(n,u),h=this.parseTokenLiteral(r,d),[g,_]=c===DY.EXACT_INPUT?[m,h]:[h,m],v=D1(i,g);if(this.nativeTokenService.isWrapOrUnwrap(m,h))return this.getUnsignedWrapUnwrapTx(g,D1(i,m),t,p);let y=new f0(f,m),b=d0(v,y,c,this.nativeTokenService),x=Q0(await this.router.findOptimalRoute(b,this.nativeTokenService.maybeWrapToken(_),c,o),v,y,this.nativeTokenService),S=X0(m,h,x,t,a,s,this.routerContractAddress,this.swapProxyContractAddress,p,f),{quotedAmount:C,quotedAmountWithMaxSlippage:w}=u0(this.nativeTokenService,x,a,_),T=t0(c,v,w,{routerAddress:this.routerContractAddress,secondaryFeeAddress:this.swapProxyContractAddress},f),E=T?await i0(this.provider,t,T,p):null;return{quote:o2(C,w,a,Number(x.priceImpact.toSignificant(10)),y),approval:E,swap:S}}async getUnsignedSwapTxFromAmountIn(e,t,n,r,i=g1,a=3,o=z1()){return await this.getUnsignedSwapTx(e,t,n,BigInt(r),i,a,o,DY.EXACT_INPUT)}async getUnsignedSwapTxFromAmountOut(e,t,n,r,i=g1,a=3,o=z1()){return await this.getUnsignedSwapTx(e,t,n,BigInt(r),i,a,o,DY.EXACT_OUTPUT)}},c2=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 l2=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}({}),u2=function(e){return e.PROVIDER_UPDATED=`PROVIDER_UPDATED`,e}({}),d2=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}({}),f2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.NETWORK_SWITCH=`network-switch`,e.DISCONNECT_WALLET=`disconnect-wallet`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),p2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.REJECTED=`rejected`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),m2=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}({}),h2=function(e){return e.CRYPTO=`crypto`,e.DEBIT=`debit`,e.CREDIT=`credit`,e}({}),g2=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}({}),_2=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}({}),v2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.SUCCESS=`success`,e.FAILURE=`failure`,e.LANGUAGE_CHANGED=`language-changed`,e}({}),y2=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}({}),b2=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}({}),x2=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}({}),S2=function(e){return e.PAYMENT_METHOD_SELECTED=`PAYMENT_METHOD_SELECTED`,e.PAYMENT_TOKEN_SELECTED=`PAYMENT_TOKEN_SELECTED`,e.NETWORK_SWITCH=`NETWORK_SWITCH`,e}({}),C2=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}({}),w2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.CONNECT_SUCCESS=`connect-success`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),T2=function(e){return e.CLOSE_WIDGET=`close-widget`,e.REJECTED=`rejected`,e.SUCCESS=`success`,e.FAILURE=`failure`,e}({}),E2=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}({}),D2=function(e){return e.LAYER1=`LAYER1`,e.LAYER2=`LAYER2`,e}({}),O2=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}({}),A2=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 M2=class{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=z.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 N2=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 P2=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})}},F2=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}({}),I2=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}({}),L2=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}({}),R2=`development`,z2=`native`,B2={name:`IMX`,symbol:`IMX`,decimals:18,address:z2},V2={name:`tIMX`,symbol:`tIMX`,decimals:18,address:z2},H2={[R2]:`https://api.dev.immutable.com`,[p.SANDBOX]:`https://api.sandbox.immutable.com`,[p.PRODUCTION]:`https://api.immutable.com`},U2={[R2]:`https://checkout-api.dev.immutable.com`,[p.SANDBOX]:`https://checkout-api.sandbox.immutable.com`,[p.PRODUCTION]:`https://checkout-api.immutable.com`};p.SANDBOX,p.PRODUCTION;let W2=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:B2}]]),G2=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:V2}]]),K2=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:B2}]]),q2={13473:{url:`https://explorer.testnet.immutable.com`,nativeToken:G2.get(13473).nativeCurrency},13371:{url:`https://explorer.immutable.com`,nativeToken:W2.get(13371).nativeCurrency},11155111:{url:`https://eth-sepolia.blockscout.com`,nativeToken:G2.get(11155111).nativeCurrency},1:{url:`https://eth.blockscout.com/`,nativeToken:W2.get(1).nativeCurrency}},J2=[{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`}],Y2=[{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`}],X2=[{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`}],Z2={maxFeePerGas:BigInt(15e9),maxPriorityFeePerGas:BigInt(1e10)},Q2=()=>`2.24.10-1`,$2=(e,t)=>{let n=()=>e?H2[R2]:t?H2[p.PRODUCTION]:H2[p.SANDBOX];return{checkDexAvailability:async()=>{let e;try{e=await z.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}}},e4=function(e){return e.BRIDGE_TO_L2=`BRIDGE_TO_L2`,e.SWAP=`SWAP`,e}({}),t4=function(e){return e.ALL=`all`,e}({}),n4=function(e){return e.ALL=`all`,e.SWAP=`swap`,e.BRIDGE=`bridge`,e.ONRAMP=`onramp`,e}({}),r4=function(e){return e.ALL=`all`,e}({}),i4=function(e){return e.PASSPORT=`passport`,e.METAMASK=`metamask`,e.WALLETCONNECT=`walletconnect`,e}({}),a4=function(e){return e.PASSPORT=`com.immutable.passport`,e.METAMASK=`io.metamask`,e.WALLETCONNECT=`walletconnect`,e}({}),o4={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var s4=class extends WL{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 c4=function(e){return e.SUCCESS=`SUCCESS`,e.FAILED=`FAILED`,e.INSUFFICIENT_FUNDS=`INSUFFICIENT_FUNDS`,e.FULFILLMENTS_UNSETTLED=`FULFILLMENTS_UNSETTLED`,e}({}),l4=function(e){return e.NATIVE=`NATIVE`,e.ERC20=`ERC20`,e.ERC721=`ERC721`,e.ERC1155=`ERC1155`,e}({}),u4=function(e){return e.TRANSACTION=`TRANSACTION`,e.GAS=`GAS`,e}({}),d4=function(e){return e.NATIVE=`NATIVE`,e.ERC20=`ERC20`,e}({}),f4=function(e){return e.ROUTES_FOUND=`ROUTES_FOUND`,e.NO_ROUTES_FOUND=`NO_ROUTES_FOUND`,e.NO_ROUTE_OPTIONS=`NO_ROUTE_OPTIONS`,e}({}),p4=function(e){return e.GAS=`GAS`,e.BRIDGE_FEE=`BRIDGE_FEE`,e.SWAP_FEE=`SWAP_FEE`,e.IMMUTABLE_FEE=`IMMUTABLE_FEE`,e}({}),m4=function(e){return e.BRIDGE=`BRIDGE`,e.SWAP=`SWAP`,e.ONRAMP=`ONRAMP`,e}({}),h4=function(e){return e.ONRAMP=`onramp`,e}({});async function g4(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 _4(e){let t=await e.getNetwork();return t.chainId&&typeof t.chainId==`bigint`?t.chainId:g4(e)}let v4=4902;async function y4(e,t,n){return await t.send(`wallet_switchEthereumChain`,[{chainId:e.get(n)?.chainIdHex}])}async function b4(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 x4(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 S4(e,t){let{networkMap:n}=e;return P2(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 _4(t),r=Array.from(n.keys()).includes(Number(e));return{chainId:Number(e),isSupported:r}}},{type:`GET_NETWORK_INFO_ERROR`})}let C4=e=>e.error?.data?.originalError?.code===v4||e.error?.code===v4;async function w4(e,t,n){let{networkMap:r}=e;if(!(await x4(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 y4(r,t,n)}catch(e){if(console.error(e),C4(e))try{await b4(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 s4(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 S4(e,i),provider:i}}var T4=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},E4=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`)}},D4=class extends Error{message;constructor(e){super(e),this.message=e}};let O4=(e,t)=>t?K2:e?W2:G2,k4=(e,t)=>t?H2[R2]:e?H2[p.PRODUCTION]:H2[p.SANDBOX],A4=(e,t)=>t?`imtbl-zkevm-devnet`:e?`imtbl-zkevm-mainnet`:`imtbl-zkevm-testnet`,j4=e=>e.isProduction?1:11155111,M4=e=>e.isDevelopment?15003:e.isProduction?13371:13473,N4=(e,t)=>t?U2[R2]:e?U2[p.PRODUCTION]:U2[p.SANDBOX];var P4=class{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;tokens;environment;networkMap;publishableKey;l1ChainId;l2ChainId;overrides;constructor(e,t){if(!Object.values(p).includes(e.baseConfig.environment))throw new D4(`Invalid checkout configuration of environment`);this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===p.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??O4(this.isProduction,this.isDevelopment);let n=e.overrides?.remoteConfigEndpoint??N4(this.isProduction,this.isDevelopment);this.remote=new T4(t,{remoteConfigEndpoint:n}),this.tokens=new E4(t,this.remote,{baseUrl:e.overrides?.baseUrl??k4(this.isProduction,this.isDevelopment),chainSlug:e.overrides?.chainSlug??A4(this.isProduction,this.isDevelopment)}),this.l1ChainId=j4(this),this.l2ChainId=e.overrides?.l2ChainId??M4(this),this.overrides=e.overrides??{}}get sdkVersion(){return Q2()}};let F4=(e=``,t=``)=>e.toLowerCase()===t.toLowerCase(),I4=e=>e===15003||e===13473||e===13371,L4=(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()},R4=(e,t=6)=>e.indexOf(`.`)===-1?e:L4(e,t),z4=async(e,{type:t=`all`,chainId:n,exclude:r})=>{let i=[],a,o,s=n??j4(e),c=M4(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||``))}},B4=e=>!e||F4(e,`native`);async function V4(e,t){return await P2(async()=>{let n=new mI(t,JSON.stringify(J2),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 H4=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=q2[this.chainId].url;let r=q2[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=>!!q2[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=pr.InternalServerError,n=`InternalServerError`;return z.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=pr.InternalServerError,n=`InternalServerError`;return z.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}};let U4=(e,t,n)=>{e.isProduction||console.info(t,n)},W4=async(e,t,n)=>{let r=performance.now(),i=await n,a=(performance.now()-r)/1e3;return U4(e,t,a),i},G4=async(e,t,n)=>await P2(async()=>{let r=await S4(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:zD(i,r.nativeCurrency.decimals),token:r.nativeCurrency}},{type:`GET_BALANCE_ERROR`});async function K4(e,t,n){return await P2(async()=>{let r=new mI(n,JSON.stringify(J2),e);return Promise.all([V4(e,n),r.balanceOf(t)]).then(([e,t])=>({balance:t,formattedBalance:zD(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:n}}))},{type:`GET_ERC20_BALANCE_ERROR`})}let q4=new Map,J4=()=>q4.clear(),Y4=async(e,t,n,r)=>{let i=r!==void 0,a=Object.assign({},...(r??[]).map(e=>({[e.address?.toLowerCase()||`native`]:e}))),o=q4.get(n);o||(o=new H4(e.remote.getHttpClient(),n),q4.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!==pr.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||=z2,s.push(n)}catch(e){if(e?.code!==pr.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=zD(e.value,l.decimals);c.push({balance:r,formattedBalance:u,token:l})}),{balances:c}},X4=async(e,t,n,r)=>{let i=[];return r.forEach(r=>{!r.address||F4(r.address,`native`)?i.push(G4(e,t,n)):i.push(K4(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||F4(n.token.address,`native`))&&(n.token.address=z2),e.balances.push(n),e},{balances:[]})},Z4=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 W4(e,`Time to fetch balances using RPC for ${r}`,X4(e,t,a,i))},Q4=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 z4(e,{type:`all`,chainId:r});if(i&&J4(),H4.isChainSupported(r)){let i=n??await(await t?.getSigner())?.getAddress();try{return await W4(e,`Time to fetch balances using blockscout for ${r}`,Y4(e,i,r,a))}catch(i){if(i.type===`GET_INDEXER_BALANCE_ERROR`&&i.data?.error?.code===pr.TooManyRequests)return Z4(e,t,n,r,a);throw i}}return Z4(e,t,n,r,a)};async function $4(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 e3(e){if(!e||!e.send)throw new $(`Incompatible provider`,`PROVIDER_REQUEST_MISSING_ERROR`,{details:`Attempting to connect with an incompatible provider`});return await P2(async()=>{e.send&&await e.send(`eth_requestAccounts`,[])},{type:`USER_REJECTED_REQUEST_ERROR`}),e}async function t3(e){if(!e||!e.send)throw new $(`Incompatible provider`,`PROVIDER_REQUEST_MISSING_ERROR`,{details:`Attempting to connect with an incompatible provider`});return await P2(async()=>{e.send&&await e.send(`wallet_requestPermissions`,[{eth_accounts:{}}])},{type:`USER_REJECTED_REQUEST_ERROR`}),e}var n3=class{config;constructor(e){this.config=e}async feeEstimate(){return(await this.config.remote.getConfig(`onramp`))[`201811419111`]?.fees}async createWidgetUrl(e,t=new M2){return await this.getTransakWidgetUrl(e,t)}async getTransakWidgetUrl(e,t){let n=await this.config.remote.getConfig(`onramp`),r=`${H2[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 r3(e,t,n,r){let i=t===j4(r)?qK.DEPOSIT:qK.WITHDRAW;return await e.getFee({action:i,gasMultiplier:`auto`,sourceChainId:t.toString(),destinationChainId:n.toString(),token:`NATIVE`,amount:BigInt(0)})}function i3(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=oq;return r.isDevelopment&&(o=aq),r.isProduction&&(o=sq),new xJ(new EJ({baseConfig:new h({environment:r.environment}),bridgeInstance:o,rootProvider:i,childProvider:a}))}async function a3(e,t){let n=await t.remote.getConfig(`dex`);return new s2({chainId:e,baseConfig:new h({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function o3(e){return new UK({baseConfig:{environment:e.environment}})}function s3(e){return new Qo({baseConfig:{environment:e.environment}})}function c3(e,t,n){return new mI(e,t,n)}async function l3(e,t){let n=j4(t),r=M4(t);if(!e.get(n))throw Error(`Missing JsonRpcProvider for chain id: ${n}`);try{return{gasEstimateType:`BRIDGE_TO_L2`,fees:await r3(i3(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 u3(e){let t=M4(e),{inAddress:n,outAddress:r}=(await e.remote.getConfig(`gasEstimateTokens`))[t].swapAddresses;try{let{swap:i}=await(await a3(t,e)).getUnsignedSwapTxFromAmountIn(`0x0000000000000000000000000000000000000001`,n,r,BigInt(BD(`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 d3(e,t,n){switch(e.gasEstimateType){case`BRIDGE_TO_L2`:return await l3(t,n);case`SWAP`:return await u3(n);default:throw new $(`Invalid type provided for gasEstimateType`,`INVALID_GAS_ESTIMATE_TYPE`)}}let f3=e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas,p3=e=>{if(f3(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 m3(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 h3(){let e=new Set,t=[],n=()=>m3(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 g3=class e{static instance;store;resetTimeout;isInit=!1;constructor(){this.store=h3(),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 _3={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`},v3={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`},y3=e=>({info:v3,provider:e}),b3=e=>({info:_3,provider:e});async function x3(){let e=await P2(async()=>await(0,c2.default)(),{type:`METAMASK_PROVIDER_ERROR`});if(!e||!e.request)throw new $(`No MetaMask provider installed.`,`METAMASK_PROVIDER_ERROR`);return new s4(e)}async function S3(e,t){let n=null,r;switch(e){case`passport`:if(r=g3.getInstance().findProvider({rdns:v3.rdns}),!r)if(t)n=new s4(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=g3.getInstance().findProvider({rdns:_3.rdns}),r||(n=await x3());break;default:if(r=g3.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 s4(r.provider)),!n)throw console.error(`Failed to create provider`),new $(`Failed to create provider`,`DEFAULT_PROVIDER_ERROR`);return{provider:n,walletProviderName:e}}function C3(e){return e&&`send`in e&&typeof e.send==`function`}async function w3(e,t,n){return P2(async()=>{if(`request`in t)return new s4(t);if(t.ethereumProvider?.isPassport)return t;let r={...o4,...n},i=await _4(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 x4(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 T3(e,t){if(e.isProduction&&t?.has(1)||t?.has(11155111))return t;let n=new Map;return(await x4(e,{type:`all`})).networks.forEach(t=>{let r=e.networkMap.get(Number(t.chainId))?.rpcUrls[0],i=new BL(r);n.set(Number(t.chainId),i)}),n}let E3=(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},D3=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()))},O3=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()))},A3=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=>A3(k3(O3(D3(e)))),M3=async(e,t,n,r)=>{try{return await new mI(n,JSON.stringify(J2),e).allowance(t,r)}catch(e){throw new $(`Failed to get the allowance for ERC20`,`GET_ERC20_ALLOWANCE_ERROR`,{contractAddress:n,error:e})}},N3=async(e,t,n,r,i)=>{try{let a=await new mI(n,JSON.stringify(J2),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})}},P3=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,M3(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,N3(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()))}},F3=async(e,t,n,r)=>{try{return await new mI(n,JSON.stringify(Y2),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})}},I3=async(e,t,n,r,i)=>{try{let a=await new mI(n,JSON.stringify(Y2),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})}},L3=async(e,t,n)=>{try{return await new mI(t,JSON.stringify(Y2),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})}},R3=(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})}},z3=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,F3(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},B3=async(e,t,n)=>{let r=!0,i=[],a=new Map,o=new Map,s=new Map,c=new Map,l=await z3(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=R3(r,n);a.set(u,t),o.set(u,L3(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=R3(f,l);s.set(m,{type:`ERC721`,sufficient:!1,itemRequirement:o,approvalTransaction:void 0}),c.set(m,I3(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()))}},V3=async(e,t,n,r)=>{try{return await new mI(n,JSON.stringify(X2),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})}},H3=async(e,t,n,r)=>{try{let i=await new mI(n,JSON.stringify(X2),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})}},U3=async(e,t,n)=>{let r=n.filter(e=>e.type===`ERC1155`),i=await Promise.all(r.map(async n=>await V3(e,t,n.contractAddress,n.spenderAddress)?{sufficient:!0,itemRequirement:n}:{type:`ERC1155`,sufficient:!1,itemRequirement:n,approvalTransaction:await H3(e,t,n.contractAddress,n.spenderAddress)}));return{sufficient:i.some(e=>e.sufficient),allowances:i}},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{amount:i}=e,a=t.get(r);a&&a.type===`NATIVE`?a.amount+=i:t.set(r,{...e})}),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{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()))},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,id:a}=e,o=`${i}${a}`;t.get(o)||t.set(o,{...e})}),n.concat(Array.from(t.values()))},q3=e=>K3(G3(W3(e))),J3=e=>e.map(e=>{switch(e.type){case`ERC20`:return{address:e.tokenAddress};case`NATIVE`:return{address:z2};default:return{address:e.contractAddress}}}),Y3=(e,t)=>{let n=BigInt(1),r=t.find(t=>{let n=t;return F4(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}},X3=(e,t)=>e.type===`ERC20`?t.find(t=>F4(t.token?.address,e.tokenAddress)):t.find(e=>B4(e.token?.address)),Z3=async(e,t,n)=>{let r={};for(let i of e){if(i.type===`NATIVE`){r[z2]=B2;continue}let e=X3(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 mI(i.tokenAddress,JSON.stringify(J2),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},Q3=(e,t,n)=>{let r=X3(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:zD(o,n.decimals)},current:{...r,type:`NATIVE`,token:n},required:{...r,type:`NATIVE`,balance:BigInt(e.amount),formattedBalance:zD(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:zD(o,n.decimals)},current:{...r,token:n},required:{...r,token:n,balance:BigInt(e.amount),formattedBalance:zD(e.amount,n.decimals)},isFee:e.isFee})},$3=async(e,t,n,r,i=!1)=>{try{let a=new Map;J3(r).forEach(e=>{e.address&&a.set(e.address.toLocaleLowerCase(),e)});let{balances:o}=await Q4(e,t,n,M4(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})}},e6=async(e,t,n)=>{let r=[],i=new Map,a=new Map;n.forEach(t=>{if(t.type!==`ERC721`)return;let n=new mI(t.contractAddress,JSON.stringify(Y2),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&&F4(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},t6=async(e,t,n,r,i=!1)=>{let a=q3(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($3(e,t,n,a,i)),s.length>0&&c.push(e6(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`?z2:e.token.address?.toLowerCase(),e])),r=await Z3(o,e,t);o.forEach(e=>{let t=(e.tokenAddress??`native`).toLowerCase(),i=r[t],a=n.get(t),o=Q3(e,[...n.values()],i);if(u.push(o),!a)return;let s=a.balance-o.required.balance;n.set(t,{...a,balance:s,formattedBalance:zD(s,o.required.token.decimals)})})}if(s.length>0){let e=l.shift()??[];s.forEach(t=>{u.push(Y3(t,e))})}return{sufficient:u.find(e=>!e.sufficient)===void 0,balanceRequirements:u}},n6=async(e,t)=>{try{return await e.estimateGas(t)}catch(e){throw new $(`Failed to estimate gas for transaction`,`UNPREDICTABLE_GAS_LIMIT`,{error:e})}},r6=(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},i6=async(e,t,n)=>{let r=[];for(let n of t)n.approvalTransaction!==void 0&&r.push(n6(e,n.approvalTransaction));n.type===`TRANSACTION`&&r.push(n6(e,n.transaction));let[i,a]=await Promise.all([e.getFeeData(),Promise.all(r)]),o=p3(i);if(o===null)return null;let s=a.reduce((e,t)=>e+t,BigInt(0));n.type===`GAS`&&(s+=n.gasToken.limit);let c=s*o;return c===BigInt(0)?null:r6(c,n)},a6=async()=>!0,o6=async e=>{let t=$2(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};function s6(e){return e?.ethereumProvider?.isPassport===!0}let c6=async(e,t)=>{let n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:`onRamp`,promise:a6()}),n.swap&&r.push({id:`swap`,promise:o6(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&&!s6(t),n},l6=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(M4(e),t),i}if(r.bridge){let r=j4(e);t.has(r)?a.set(r,Q4(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=M4(e);if(t.has(o)?a.set(o,Q4(e,t.get(o),n,o)):i.set(M4(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},u6=async(e,t,n,r,i)=>{let a=new Map;try{let o=await a3(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 W4(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}},d6=(e,t,n)=>{let r=BigInt(0),i=`0`,a;e&&(r=e.value,i=zD(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=zD(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:zD(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}},f6=(e,t,n,r)=>{let i=n.token.address,a=`ERC20`;return B4(i)&&(a=`NATIVE`),{type:`SWAP`,chainId:e,fundingItem:{type:a,fundsRequired:{amount:t,formattedAmount:R4(zD(t,n.token.decimals))},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:n.token},fees:r}},p6=e=>e.type===`ERC20`?!!e.required.token.address:e.type===`NATIVE`&&B4(e.required.token.address),m6=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}},h6=(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=>B4(e.token.address)&&B4(r)||F4(e.token.address,r));return!i||i.balance<n?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}},g6=(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=>B4(e.token.address)&&B4(t)||F4(e.token.address,t));if(!r||r.balance<n)return!1}return!0},_6=(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&&F4(t.required.token.address,n)&&(s=t.required.token.address,c=!0,o=e-t.required.balance)}),!c)return!0;F4(i.approvalGasTokenAddress,s)&&(o-=i.approvalGasFee);for(let e of a)F4(e.amount.token.address,s)&&(o-=e.amount.value);return o>=r},v6=async(e,t,n,r,i,a,o)=>{let s=[];if(!t.swap||a.length===0||!p6(r))return s;let c=m6(r),l=M4(e),u=i.get(l);if(!u)return s;let d=u.balances;if(d.length===0)return s;let f=await u6(e,M4(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=>F4(t.token.address,e));if(!n)continue;let r=t.quote.amountWithMaxSlippage;if(n.balance<r.value)continue;let i=h6(d,t.approval);if(!i.sufficient||!g6(d,i,t.swap,t.quote.fees,{amount:r.value,address:e})||!_6(n.balance,o,e,r.value,i,t.quote.fees))continue;let a=d6(t.approval,t.swap,t.quote.fees);s.push(f6(l,r.value,n,a))}return s},y6=(e,t)=>t&&t.success?e.filter(e=>`address`in e?t.balances.find(t=>F4(t.token.address,e.address)&&t.balance>0):t.balances.find(e=>!(`address`in e.token)&&e.balance>0)):[],b6=async(e,t)=>t.onRamp?(await z4(e,{type:`onramp`})).tokens:[],x6=async(e,t,n)=>{if(n.bridge){let n=j4(e),r=(await z4(e,{type:`bridge`,chainId:n})).tokens,i=t.get(n);return y6(r,i)}return[]},S6=async(e,t,n)=>{if(n.swap){let n=(await z4(e,{type:`swap`})).tokens,r=t.get(M4(e));return y6(n,r)}return[]},C6=async(e,t,n)=>{let r={};return r.swap=await S6(e,t,n),r.bridge=await x6(e,t,n),r.onRamp=await b6(e,n),r},w6=e=>{for(let t of e.balances)if(B4(t.token.address))return t.balance;return BigInt(0)},T6=async(e,t,n,r)=>{let i=i3(n,r,t,e);try{return{...await i.getFee({action:qK.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})}},E6=e=>e===13371?`imtbl-zkevm-mainnet`:e===13473?`imtbl-zkevm-testnet`:e===15003?`imtbl-zkevm-devnet`:``,D6=async(e,t)=>(await t.remote.getConfig(`imxAddressMapping`))[e]??``,O6=async(e,t)=>{if(B4(t))return{l1address:await D6(j4(e),e),l2address:z2};let n=E6(M4(e)),r=(await s3(e).getToken({chainName:n,contractAddress:t})).result.root_contract_address;if(F4(r??``,`0x0000000000000000000000000000000000000eee`))return{l1address:`native`,l2address:t};if(r!==null)return{l1address:r,l2address:t}},k6=(e,t)=>w6(e)>=t,A6=(e,t,n,r,i)=>{let a=i?.decimals??18,o=[];return t>0&&o.push({type:`BRIDGE_FEE`,amount:t,formattedAmount:zD(t,a),token:i}),n>0&&o.push({type:`IMMUTABLE_FEE`,amount:n,formattedAmount:zD(n,a),token:i}),{approvalGasFee:{type:`GAS`,amount:r,formattedAmount:zD(r,18),token:i},bridgeGasFee:{type:`GAS`,amount:e,formattedAmount:zD(e,18),token:i},bridgeFees:o}},j6=(e,t,n,r,i)=>({type:`BRIDGE`,chainId:e,fundingItem:{type:r,fundsRequired:{amount:n.amount,formattedAmount:R4(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}),M6=async(e,t,n,r,i)=>{if(!n.bridge)return;let a=j4(e),o=M4(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 x6(e,i,n);if(l.length===0)return;let u=await O6(e,r.l2address);if(!u)return;let{l1address:d}=u;if(B4(d)){if(!l.find(e=>B4(e.address)))return}else if(!l.find(e=>F4(e.address,d)))return;let{sourceChainGas:f,approvalGas:p,bridgeFee:m,imtblFee:h,totalFees:g}=await T6(e,t,a,o);if(!k6(c,g))return;if(B4(d)){let e=c.balances.find(e=>B4(e.token.address));if(e&&e.balance>=r.amount+g){let t=A6(f,m,h,p,s);return j6(a,e,r,`NATIVE`,t)}return}let _=c.balances.find(e=>F4(e.token.address,d));if(_&&_.balance>=r.amount){let e=A6(f,m,h,p,s);return j6(a,_,r,`ERC20`,e)}},N6=(e,t)=>{let n={l1balances:[],l2balances:[]},r=t.get(j4(e)),i=t.get(M4(e));return!r||r.error!==void 0||!r.success||!i||i.error!==void 0||!i.success?n:{l1balances:r.balances,l2balances:i.balances}},P6=(e,t)=>{let n=BigInt(0);return e.quote.fees.forEach(e=>{F4(e.amount.token.address,t)&&(n+=e.amount.value)}),e.approval&&F4(e.approval.token.address,t)&&(n+=e.approval.value),n},F6=(e,t)=>{for(let n of e.balanceRequirements)if((n.type===`NATIVE`||n.type===`ERC20`)&&F4(n.required.token.address,t))return n.required.balance;return BigInt(0)},I6=(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},L6=(e,t,n,r,i)=>{let a=[];for(let[o,s]of e){let e=n.find(e=>F4(e.token.address,o)),c=r.find(e=>F4(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&&F4(l,`0x0000000000000000000000000000000000000eee`)?!0:F4(e.token.address,l));if(!d)continue;let f=s.quote.amountWithMaxSlippage.value+P6(s,o),p=F6(i,o),m=I6(f,p,e);m<=0||m>=d.balance||a.push({amount:m,formattedAmount:R4(zD(m,d.token.decimals)),l2address:u})}return a},R6=async(e,t)=>{let n=t.map(t=>O6(e,t.address??``));return(await Promise.all(n)).filter(e=>e!==void 0)},z6=async(e,t,n,r,i)=>{let a=[];for(let e of i)e.address&&a.push(e.address);return await u6(e,M4(e),t,{address:n,amount:r.delta.balance},a)},B6=(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===``,V6=(e,t,n,r)=>{let i=[];for(let a of r){if(!t.includes(a.l1address)||F4(a.l2address,e))continue;let r=n.find(e=>F4(e.address,a.l2address));r&&i.push(r)}return i},H6=(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=>F4(e.address,n));o.set(n,{balance:s,formattedBalance:zD(s,c.decimals),token:c})}let s=Array.from(o.values());return a.set(M4(e),{success:!0,balances:s}),a},U6=(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=>F4(e.token.address,i.token.address));l&&(s=l.balance,c=l.formattedBalance),a.balance=s,a.formattedBalance=c,n.push(r)}return n},W6=(e,t,n)=>{let r=[];for(let i of e){if(!i)continue;let e=n.find(e=>i.fundingItem.token.address===void 0?F4(e.l1address,`0x0000000000000000000000000000000000000eee`)&&e.l2address:F4(e.l1address,i.fundingItem.token.address)&&e.l2address);if(!e)continue;let a=t.find(t=>F4(t.fundingItem.token.address,e.l2address));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r},G6=async(e,t,n,r,i,a,o,s,c)=>{let{l1balances:l,l2balances:u}=N6(e,a),d=r.required.token.address;if(B6(o,s,l,u,n,d))return[];let f=await R6(e,s),p=V6(d,o,s,f);if(p.length===0)return[];let m=L6(await z6(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,M6(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 v6(e,n,i,r,H6(e,a,u,_,s),b,c);if(!x)return[];let S=U6(a,x);return W6(v,S,f)},K6=async(e,t,n)=>{if(![`ERC20`,`NATIVE`].includes(n.type))return;let{required:r,current:i,delta:a}=n,o=!1;if((await b6(e,t)).forEach(e=>{e.address&&r.token&&(B4(r.token.address)||F4(e.address,r.token.address))&&(o=!0)}),o)return{type:`ONRAMP`,chainId:M4(e),fundingItem:{type:B4(r.token.address)?`NATIVE`:`ERC20`,fundsRequired:{amount:a.balance,formattedAmount:R4(a.formattedBalance)},userBalance:{balance:i.balance,formattedBalance:i.formattedBalance},token:r.token}}},q6=e=>e.bridge||e.swap||e.onRamp,J6=e=>{let t=0,n;for(let r of e.balanceRequirements)r.sufficient||(t++,n=r);if(t===1)return n},Y6=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 M6(e,t,n,o,i)),a},X6=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(M4(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 v6(e,t,r,n,i,l,o)},Z6=async(e,t,n,r,i,a,o,s)=>{if(!r)return[];let c=a.get(j4(e)),l=a.get(M4(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 G6(e,t,n,r,i,a,u,d,s)},Q6=async(e,t,n)=>{if(t.onRamp&&n!==void 0)return await K6(e,t,n)},$6={swap:1,bridge:2,onRamp:3,bridgeAndSwap:4},e8=(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)},t8=async(e,t,n,r,i)=>{if(!q6(r))return{type:`NO_ROUTE_OPTIONS`,message:`No routing options are available`};let a;try{a=await T3(e)}catch(e){throw new $(`Error occurred while creating read only providers`,`PROVIDER_ERROR`,{error:e})}let o=await W4(e,`Time to get token balances inside router`,l6(e,a,t,r)),s=await W4(e,`Time to get routing allowlist`,C6(e,o,r)),c=J6(n),l=[],u=[];return r.swap&&l.push(X6(e,r,c,t,o,s.swap,n).then(e=>{e.forEach(e=>{e8(e,$6.swap,u,i)})})),r.bridge&&l.push(Y6(e,a,r,c,o).then(e=>{e8(e,$6.bridge,u,i)})),r.onRamp&&l.push(Q6(e,r,c).then(e=>{e8(e,$6.onRamp,u,i)})),r.swap&&r.bridge&&l.push(Z6(e,a,r,c,t,o,s,n).then(e=>{e.forEach(e=>{e8(e,$6.bridgeAndSwap,u,i)})})),await W4(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}},n8=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)}),r8=async(e,t,n,r,i,a,o,s,c)=>{let l=await W4(e,`Total time to run the routing calculator`,t8(e,t,!o||n&&s?n8(a):a,r,c));return s?.({sufficient:n,transactionRequirements:i,router:{availableRoutingOptions:r,routingOutcome:l}}),l},i8=async(e,t,n,r,i,a,o,s=!1)=>{let c=await(await t.getSigner()).getAddress(),l=j3(n),u=P3(t,c,l),d=B3(t,c,l),f=U3(t,c,l),p=await W4(e,`Time to calculate token allowances`,Promise.all([u,d,f])),m=E3(p[0],p[1],p[2]),h=null;r&&(h=await W4(e,`Time to run gas calculator`,i6(t,m,r)),h!==null&&(l.push(h),l=j3(l)));let g=await W4(e,`Time to run balance checks`,t6(e,t,c,l,!0)),{sufficient:_}=g,v=g.balanceRequirements,y=await W4(e,`Time to fetch available routing options`,c6(e,t));return i?.onRamp===!1&&(y.onRamp=!1),i?.swap===!1&&(y.swap=!1),i?.bridge===!1&&(y.bridge=!1),a?(r8(e,c,_,y,v,g,s,a,o),{sufficient:_,transactionRequirements:v}):_?{sufficient:_,transactionRequirements:v}:{sufficient:_,transactionRequirements:v,router:{availableRoutingOptions:y,routingOutcome:await r8(e,c,_,y,v,g,s,a,o)}}};function a8(e){return e?.ethereumProvider?.isPassport===!0}function o8(e){return a8(e)}let s8=async(e,t)=>{let n=t,{chainId:r}=await e.getNetwork();return!I4(Number(r))||n.gasPrice!==void 0||(o8(e)?n.gasPrice=BigInt(0):(n.maxFeePerGas=Z2.maxFeePerGas,n.maxPriorityFeePerGas=Z2.maxPriorityFeePerGas)),n},c8=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}),l8=async(e,t)=>{try{let n=await e.getSigner(),r=await s8(e,t);return{transactionResponse:await n.sendTransaction(r)}}catch(e){throw c8(e)}},u8=async(e,t)=>{let n=[];try{let r=await Promise.all(t.map(t=>l8(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`}},d8=async(e,t)=>{let n=[];try{let r=await Promise.all(t.map(t=>l8(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`}},f8=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})}},p8=async e=>{let t=[],n=[],r=[],i=[];for(let t of e)t.type===JG.TRANSACTION&&(t.purpose===YG.APPROVAL&&r.push(t.buildTransaction()),t.purpose===YG.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}},m8=async e=>{let t=[],n=[];for(let t of e)t.type===JG.TRANSACTION&&t.purpose===YG.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t},h8=async e=>{let t=[],n=[];for(let t of e)t.type===JG.TRANSACTION&&t.purpose===YG.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},g8=(e,t,n)=>{let r;for(let e of n)e.type===JG.SIGNABLE&&e.purpose===XG.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}},_8=(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},v8=(e,t)=>{let n=e.amount;return BD(n.token,t)},y8=(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=_8(t,a,r),i+=e;else if(Object.hasOwn(t.amount,`token`))e=v8(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},b8=(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}}},x8=(e,t)=>t.length>0?{type:`TRANSACTION`,transaction:t[0]}:{type:`GAS`,gasToken:{type:`NATIVE`,limit:BigInt(e)}},S8=async(e,t,n,r={waitFulfillmentSettlements:!0})=>{if(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=WK.estimatedFulfillmentGasGwei,c=o3(e),l=s3(e),u=await W4(e,`Time to get the address from the provider`,(await t.getSigner()).getAddress());J4(),Q4(e,t,u,j4(e)),Q4(e,t,u,M4(e));let{id:d,takerFees:f,fillAmount:p}=n[0],m;try{i=await W4(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 W4(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=y8(f,h.amount,o,e)}let _=[],v=[],y=[],b=performance.now();try{let{actions:t}=await W4(e,`Time to call fulfillOrder from the orderbook`,c.fulfillOrder(d,u,g,p));y=t,_=await W4(e,`Time to construct the unsigned approval transactions`,m8(t))}catch(t){if(U4(e,`Time to call fulfillOrder from the orderbook`,(performance.now()-b)/1e3),t.message.includes(PG.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 W4(e,`Time to construct the unsigned fulfillment transactions`,h8(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 W4(e,`Total time running smart checkout`,i8(e,t,[b8(S,C,x,a)],s6(t)?void 0:x8(s,v)));if(T.sufficient){let e=await u8(t,_);if(e.type===`FAILED`)return{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:T};try{v.length===0&&(v=await h8(y))}catch(e){throw new $(`Error fetching fulfillment transaction`,`FULFILL_ORDER_LISTING_ERROR`,{error:e})}if(r.waitFulfillmentSettlements){let e=await d8(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=>l8(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}},C8=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 W4(e,`Time to get the address from the provider`,(await n.getSigner()).getAddress());a=await(await W4(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 d8(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=>l8(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}},w8=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})}},T8=async(e,t,n,r={waitFulfillmentSettlements:!0,useGaslessCancel:!1})=>{let i=o3(e);return r.useGaslessCancel?await w8(i,t,n):await C8(e,i,t,n,r.waitFulfillmentSettlements??!0)};async function E8(e,t){let n=[];t.forEach(t=>{if(t.type===`ERC20`){let{tokenAddress:r}=t;n.push(c3(r,J2,e).decimals())}});let r=await Promise.all(n);return t.map((e,t)=>e.type===`NATIVE`?{...e,amount:BD(e.amount,18)}:e.type===`ERC20`?{...e,amount:BD(e.amount,r[t])}:e)}let D8=(e,t,n)=>({type:`ERC721`,id:e,contractAddress:t,spenderAddress:n}),O8=(e,t,n,r)=>({type:`ERC1155`,id:e,contractAddress:t,spenderAddress:n,amount:BigInt(r)}),k8=(e,t=18)=>{let n=BD(e.amount,t);return e.type===`NATIVE`?{type:`NATIVE`,amount:n.toString()}:{type:`ERC20`,amount:n.toString(),contractAddress:e.tokenAddress}},A8=async(e,t,n)=>{let r,i,a=``;if(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 W4(e,`Time to get decimals of token contract for the buy token`,new mI(o.tokenAddress,JSON.stringify(J2),t).decimals()));let d=k8(o,u),f=`type`in s;try{let n=await W4(e,`Time to get the address from the provider`,(await t.getSigner()).getAddress());r=o3(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 W4(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=O8(s.id,s.collectionAddress,a,s.amount);p.push(e)}else{let e=D8(s.id,s.collectionAddress,a);p.push(e)}let m;if(m=s6(t)?{sufficient:!0,transactionRequirements:[]}:await W4(e,`Total time running smart checkout`,i8(e,t,p,{type:`GAS`,gasToken:{type:`NATIVE`,limit:BigInt(WK.estimatedFulfillmentGasGwei)}})),m.sufficient){let e=await u8(t,(await p8(i.actions)).approvalTransactions);if(e.type===`FAILED`)return{status:`FAILED`,transactionHash:e.transactionHash,reason:e.reason,smartCheckoutResult:m};let n=g8(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 f8(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=y8(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 a3(M4(e),e),u=await(await t.getSigner()).getAddress();return i?l.getUnsignedSwapTxFromAmountIn(u,n.address,r.address,BigInt(BD(i,n.decimals)),o,s,c):l.getUnsignedSwapTxFromAmountOut(u,n.address,r.address,BigInt(BD(a,r.decimals)),o,s,c)},M8=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 l8(t,l.approval.transaction)).transactionResponse.wait())?.status===0)throw new $(`Approval transaction failed and was reverted`,`APPROVAL_TRANSACTION_FAILED`);let u=await(await l8(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 N8(e){let t=[],n=e.exclude?.map(e=>e.walletProviderName)??[],r=Object.values(i4);n.length!==0&&(r=r.filter(e=>!n.includes(e)));for(let e of r)t.push({walletProviderName:e});return{wallets:t}}let P8=async(e,t)=>Object.fromEntries(e.map(e=>[e.toLowerCase(),{sanctioned:!1}])),F8=(e,t)=>!1,I8=(e,t)=>!1,L8=e=>!1,R8={baseConfig:{environment:p.SANDBOX},passport:void 0};var z8=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=R8){this.httpClient=new M2(e),this.config=new P4(e,this.httpClient),this.fiatRampService=new n3(this.config),this.readOnlyProviders=new Map,this.availability=$2(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport,g3.getInstance().initialise()}async widgets(e){let t=this,n=Q2();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 S3(e.walletProviderName,this.passport)}getInjectedProviders(){return g3.getInstance().getProviders()}findInjectedProvider(e){return g3.getInstance().findProvider(e)}onInjectedProvidersChange(e){return g3.getInstance().subscribe(e)}clearInjectedProviders(){return g3.getInstance().clear()}async checkIsWalletConnected(e){return $4(await w3(this.config,e.provider,{allowMistmatchedChainId:!0,allowUnsupportedProvider:!0}))}async getRiskAssessment(e){return await P8(e,this.config)}checkIsAddressSanctioned(e,t){return F8(e,t)}async connect(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return e.requestWalletPermissions&&!a8(t)?await t3(t):await e3(t),t}async addNetwork(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await b4(this.config.networkMap,t,e.chainId)}async switchNetwork(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await w4(this.config,t,e.chainId)}async getTokenInfo(e){return await V4(e.provider,e.tokenAddress)}async getBalance(e){let t=await w3(this.config,e.provider);return!e.tokenAddress||e.tokenAddress===``?await G4(this.config,t,e.walletAddress):await K4(t,e.walletAddress,e.tokenAddress)}async getAllBalances(e){let t=!e.provider||`ethereumProvider`in e.provider?e.provider:new s4(e.provider);return Q4(this.config,t,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await x4(this.config,e)}async getTokenAllowList(e){return await z4(this.config,e)}async getWalletAllowList(e){return await N8(e)}async sendTransaction(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await l8(t,e.transaction)}async providerCall(e,t){let n=await w3(this.config,e,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});try{return await t(n)}catch(e){throw c8(e)}}async getNetworkInfo(e){let t=await w3(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await S4(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 w3(this.config,e.provider);return await S8(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 w3(this.config,e.provider);return await A8(this.config,t,e.orders)}async cancel(e){console.warn(`This endpoint currently only processes the first order in the array.`);let t=await w3(this.config,e.provider);return await T8(this.config,t,e.orderIds,e.overrides)}async smartCheckout(e){let t=await w3(this.config,e.provider),n=[];try{n=await E8(t,e.itemRequirements)}catch(e){throw new $(`Failed to map item requirements`,`ITEM_REQUIREMENTS_ERROR`,{error:e})}return await i8(this.config,t,n,e.transactionOrGasAmount,e.routingOptions,e.onComplete,e.onFundingRoute,e.fundingRouteFullAmount)}static isWrappedBrowserProvider(e){return C3(e)}async gasEstimate(e){return this.readOnlyProviders=await T3(this.config,this.readOnlyProviders),await d3(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(e){let t,n=`IMX`,r,i=`request`in e.browserProvider?new s4(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 z4(this.config,{type:`onramp`}),c=s.tokens?.find(t=>F4(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 w3(this.config,e.provider);return M8(this.config,t,e.fromToken,e.toToken,e.fromAmount,e.toAmount,e.slippagePercent,e.maxHops,e.deadline)}async swapQuote(e){let t=await w3(this.config,e.provider);return j8(this.config,t,e.fromToken,e.toToken,e.fromAmount,e.toAmount,e.slippagePercent,e.maxHops,e.deadline)}},B8=class{static getTransactionLink(e,t){let n=q2?.[e]?.url;if(!(!n||!t))return`${n}/tx/${t}`}},V8=l({AddTokensEventType:()=>C2,BlockExplorerService:()=>B8,BridgeEventType:()=>g2,ChainId:()=>F2,ChainName:()=>I2,ChainSlug:()=>L2,Checkout:()=>z8,CheckoutConfiguration:()=>P4,CheckoutError:()=>$,CheckoutErrorType:()=>N2,CheckoutStatus:()=>c4,CommerceEventType:()=>y2,CommerceFailureEventType:()=>x2,CommerceFlowType:()=>k2,CommerceSuccessEventType:()=>b2,CommerceUserActionEventType:()=>S2,ConnectEventType:()=>d2,ConnectTargetLayer:()=>D2,ExchangeType:()=>h4,FeeType:()=>p4,FundingStepType:()=>m4,GasEstimateType:()=>e4,GasTokenType:()=>d4,IMMUTABLE_API_BASE_URL:()=>H2,IMTBLWidgetEvents:()=>l2,ItemType:()=>l4,NetworkFilterTypes:()=>t4,OnRampEventType:()=>v2,OrchestrationEventType:()=>_2,ProviderEventType:()=>u2,PurchaseEventType:()=>w2,RoutingOutcomeType:()=>f4,SaleEventType:()=>m2,SalePaymentTypes:()=>h2,SwapDirection:()=>O2,SwapEventType:()=>p2,TokenFilterTypes:()=>n4,TransactionOrGasType:()=>u4,TransferEventType:()=>T2,WalletEventType:()=>f2,WalletFilterTypes:()=>r4,WalletProviderName:()=>i4,WalletProviderRdns:()=>a4,WidgetTheme:()=>A2,WidgetType:()=>E2,WrappedBrowserProvider:()=>s4,fetchRiskAssessment:()=>P8,getGasPriceInWei:()=>p3,getMetaMaskProviderDetail:()=>b3,getPassportProviderDetail:()=>y3,getUnderlyingChainId:()=>_4,isAddressSanctioned:()=>F8,isSingleAddressSanctioned:()=>I8,metaMaskProviderInfo:()=>_3,passportProviderInfo:()=>v3,resultHasSanctionedWallets:()=>L8,validateProvider:()=>w3});return Object.defineProperty(e,"blockchainData",{enumerable:!0,get:function(){return $o}}),Object.defineProperty(e,"checkout",{enumerable:!0,get:function(){return V8}}),Object.defineProperty(e,"config",{enumerable:!0,get:function(){return _}}),Object.defineProperty(e,"orderbook",{enumerable:!0,get:function(){return GK}}),Object.defineProperty(e,"passport",{enumerable:!0,get:function(){return rE}}),e})({});
|